@agentlang/lstudio 0.2.8 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/{AwsJson1_1Protocol-O03MqGHR.js → AwsJson1_1Protocol-D3m2m9fb.js} +1 -1
- package/assets/{fs-BekVvfTa.js → fs-gSDwXF4f.js} +1 -1
- package/assets/{index-GP_CVGV-.js → index-B9GRINGP.js} +1 -1
- package/assets/{index-DenQ5g7Q.js → index-CuU9Losi.js} +1 -1
- package/assets/{index-DSr08Yfg.js → index-CwdZpuEI.js} +1 -1
- package/assets/{index-D4z_hbl0-7apY8tMF.js → index-D4z_hbl0-D1BooYO0.js} +1 -1
- package/assets/{index-C-0w4m2-.js → index-DdR4b0uB.js} +10 -10
- package/assets/{index-CUa3xhLV.js → index-da-v082e.js} +1 -1
- package/assets/{index.browser-MeAKJq84.js → index.browser-BE_vlm_Q.js} +3 -3
- package/assets/{loadCognitoIdentity-CAxaQN8S.js → loadCognitoIdentity-p1wrVdPF.js} +1 -1
- package/assets/{loadSts-BoHiO84y.js → loadSts-DRW2hi5S.js} +1 -1
- package/assets/{replService-BU2dKC1u.js → replService-Bc6KTaiE.js} +1 -1
- package/assets/{util-CJpDeEiw.js → util-DDY6CFDn.js} +1 -1
- package/assets/{winston-1qzyIKCb-C-lvSNdD.js → winston-1qzyIKCb-dZKKcPVN.js} +1 -1
- package/assets/{winston-Cjrg2M7e.js → winston-BZRY9u-T.js} +1 -1
- package/assets/{winston-CeEjT9W8.js → winston-CA8__yEX.js} +1 -1
- package/assets/{winston-CtxF18qc-DXziPzs7.js → winston-CtxF18qc-CvnoCdHd.js} +1 -1
- package/index.html +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CwdZpuEI.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/winston-CA8__yEX.js","assets/util-DDY6CFDn.js","assets/_commonjs-dynamic-modules-B7n8ZNar.js","assets/__vite-browser-external-DLjrMatA.js","assets/winston-BZRY9u-T.js","assets/util-DZRIOW0Z-CproX86h.js","assets/util-CNqBjtt6-GUXK7Yxz.js","assets/inherits_browser-nmOknR35-Bp0mvRSL.js","assets/index-69shuAsh-DF18H7zf.js","assets/_commonjsHelpers-B4e78b8K-W3E8ocG7.js","assets/index-D4z_hbl0-D1BooYO0.js","assets/winston-1qzyIKCb-dZKKcPVN.js","assets/index-DsIu-45t-Bejjlpz4.js","assets/index-DSosZ5sh-Ceejs_jv.js","assets/index-6mKfgpcs-DsgiI2lM.js","assets/_commonjs-dynamic-modules-BpilXLfW-DfYEAvWy.js","assets/index-ChvoNxcO.js","assets/preload-helper-BlTxHScW.js","assets/index-BJBOx-Z---hbiLl7B.js","assets/index.browser-BHPvGrwi-6Mh8eUw-.js","assets/winston-CtxF18qc-CvnoCdHd.js","assets/index-WGenATk8-DLiSeXer.js","assets/index-KGBiLwKE-Doz2tX9S.js","assets/index-Bto-kj6R-C0A_3Pwb.js","assets/index.browser-BE_vlm_Q.js","assets/normalizeProvider-EC8cbfMc.js","assets/index-B9GRINGP.js","assets/index-CuU9Losi.js","assets/AwsJson1_1Protocol-D3m2m9fb.js","assets/index-BHDiPh0o.js","assets/index-3_2F9LQx.js","assets/fs-gSDwXF4f.js","assets/replService-Bc6KTaiE.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{g as getDefaultExportFromCjs,c as commonjsGlobal,a as getAugmentedNamespace}from"./_commonjsHelpers-D6-XlEtG.js";import chalk from"./index-ChvoNxcO.js";import{_ as __vitePreload}from"./preload-helper-BlTxHScW.js";import{c as crypto$1}from"./__vite-browser-external-DLjrMatA.js";import{E as E$a,L as L$a}from"./inherits_browser-nmOknR35-Bp0mvRSL.js";import{Y as Yr$2}from"./index-6mKfgpcs-DsgiI2lM.js";import{f as f$k,u as u$k,l as l$c}from"./_commonjsHelpers-B4e78b8K-W3E8ocG7.js";import{S as Sr$2,L as Lr$2,D as Dr$1}from"./index-DsIu-45t-Bejjlpz4.js";import{F as Ft$5,G as Gt$3,J as J$9}from"./index-69shuAsh-DF18H7zf.js";import G$9 from"./index-BJBOx-Z---hbiLl7B.js";import{g as e$c}from"./index.browser-BHPvGrwi-6Mh8eUw-.js";import{r as r$g}from"./_commonjs-dynamic-modules-BpilXLfW-DfYEAvWy.js";import{I as I$a}from"./index-DSosZ5sh-Ceejs_jv.js";import{b as requireIeee754,a as requireBase64Js,r as require$$0$2,c as commonjsRequire}from"./_commonjs-dynamic-modules-B7n8ZNar.js";function _mergeNamespaces(la,aa){for(var ca=0;ca<aa.length;ca++){const ua=aa[ca];if(typeof ua!="string"&&!Array.isArray(ua)){for(const Sa in ua)if(Sa!=="default"&&!(Sa in la)){const hl=Object.getOwnPropertyDescriptor(ua,Sa);hl&&Object.defineProperty(la,Sa,hl.get?hl:{enumerable:!0,get:()=>ua[Sa]})}}}return Object.freeze(Object.defineProperty(la,Symbol.toStringTag,{value:"Module"}))}(function(){const aa=document.createElement("link").relList;if(aa&&aa.supports&&aa.supports("modulepreload"))return;for(const Sa of document.querySelectorAll('link[rel="modulepreload"]'))ua(Sa);new MutationObserver(Sa=>{for(const hl of Sa)if(hl.type==="childList")for(const pl of hl.addedNodes)pl.tagName==="LINK"&&pl.rel==="modulepreload"&&ua(pl)}).observe(document,{childList:!0,subtree:!0});function ca(Sa){const hl={};return Sa.integrity&&(hl.integrity=Sa.integrity),Sa.referrerPolicy&&(hl.referrerPolicy=Sa.referrerPolicy),Sa.crossOrigin==="use-credentials"?hl.credentials="include":Sa.crossOrigin==="anonymous"?hl.credentials="omit":hl.credentials="same-origin",hl}function ua(Sa){if(Sa.ep)return;Sa.ep=!0;const hl=ca(Sa);fetch(Sa.href,hl)}})();var jsxRuntime={exports:{}},reactJsxRuntime_production={};/**
|
|
3
3
|
* @license React
|
|
4
4
|
* react-jsx-runtime.production.js
|
|
@@ -8102,7 +8102,7 @@ workflow TempEvent { ${la} }`);if(isWorkflowDefinition$1(ca.defs[0]))aa=ca.defs[
|
|
|
8102
8102
|
*
|
|
8103
8103
|
* @author Feross Aboukhadijeh <https://feross.org>
|
|
8104
8104
|
* @license MIT
|
|
8105
|
-
*/var hasRequiredBuffer;function requireBuffer(){return hasRequiredBuffer||(hasRequiredBuffer=1,(function(la){const aa=requireBase64Js(),ca=requireIeee754(),ua=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;la.Buffer=ml,la.SlowBuffer=eg,la.INSPECT_MAX_BYTES=50;const Sa=2147483647;la.kMaxLength=Sa,ml.TYPED_ARRAY_SUPPORT=hl(),!ml.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function hl(){try{const Ndt=new Uint8Array(1),mY={foo:function(){return 42}};return Object.setPrototypeOf(mY,Uint8Array.prototype),Object.setPrototypeOf(Ndt,mY),Ndt.foo()===42}catch{return!1}}Object.defineProperty(ml.prototype,"parent",{enumerable:!0,get:function(){if(ml.isBuffer(this))return this.buffer}}),Object.defineProperty(ml.prototype,"offset",{enumerable:!0,get:function(){if(ml.isBuffer(this))return this.byteOffset}});function pl(Ndt){if(Ndt>Sa)throw new RangeError('The value "'+Ndt+'" is invalid for option "size"');const mY=new Uint8Array(Ndt);return Object.setPrototypeOf(mY,ml.prototype),mY}function ml(Ndt,mY,Phe){if(typeof Ndt=="number"){if(typeof mY=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return ff(Ndt)}return gl(Ndt,mY,Phe)}ml.poolSize=8192;function gl(Ndt,mY,Phe){if(typeof Ndt=="string")return jf(Ndt,mY);if(ArrayBuffer.isView(Ndt))return rp(Ndt);if(Ndt==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Ndt);if(spt(Ndt,ArrayBuffer)||Ndt&&spt(Ndt.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(spt(Ndt,SharedArrayBuffer)||Ndt&&spt(Ndt.buffer,SharedArrayBuffer)))return np(Ndt,mY,Phe);if(typeof Ndt=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const Odt=Ndt.valueOf&&Ndt.valueOf();if(Odt!=null&&Odt!==Ndt)return ml.from(Odt,mY,Phe);const zhe=qm(Ndt);if(zhe)return zhe;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof Ndt[Symbol.toPrimitive]=="function")return ml.from(Ndt[Symbol.toPrimitive]("string"),mY,Phe);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Ndt)}ml.from=function(Ndt,mY,Phe){return gl(Ndt,mY,Phe)},Object.setPrototypeOf(ml.prototype,Uint8Array.prototype),Object.setPrototypeOf(ml,Uint8Array);function wc(Ndt){if(typeof Ndt!="number")throw new TypeError('"size" argument must be of type number');if(Ndt<0)throw new RangeError('The value "'+Ndt+'" is invalid for option "size"')}function xu(Ndt,mY,Phe){return wc(Ndt),Ndt<=0?pl(Ndt):mY!==void 0?typeof Phe=="string"?pl(Ndt).fill(mY,Phe):pl(Ndt).fill(mY):pl(Ndt)}ml.alloc=function(Ndt,mY,Phe){return xu(Ndt,mY,Phe)};function ff(Ndt){return wc(Ndt),pl(Ndt<0?0:Vm(Ndt)|0)}ml.allocUnsafe=function(Ndt){return ff(Ndt)},ml.allocUnsafeSlow=function(Ndt){return ff(Ndt)};function jf(Ndt,mY){if((typeof mY!="string"||mY==="")&&(mY="utf8"),!ml.isEncoding(mY))throw new TypeError("Unknown encoding: "+mY);const Phe=tg(Ndt,mY)|0;let Odt=pl(Phe);const zhe=Odt.write(Ndt,mY);return zhe!==Phe&&(Odt=Odt.slice(0,zhe)),Odt}function Uf(Ndt){const mY=Ndt.length<0?0:Vm(Ndt.length)|0,Phe=pl(mY);for(let Odt=0;Odt<mY;Odt+=1)Phe[Odt]=Ndt[Odt]&255;return Phe}function rp(Ndt){if(spt(Ndt,Uint8Array)){const mY=new Uint8Array(Ndt);return np(mY.buffer,mY.byteOffset,mY.byteLength)}return Uf(Ndt)}function np(Ndt,mY,Phe){if(mY<0||Ndt.byteLength<mY)throw new RangeError('"offset" is outside of buffer bounds');if(Ndt.byteLength<mY+(Phe||0))throw new RangeError('"length" is outside of buffer bounds');let Odt;return mY===void 0&&Phe===void 0?Odt=new Uint8Array(Ndt):Phe===void 0?Odt=new Uint8Array(Ndt,mY):Odt=new Uint8Array(Ndt,mY,Phe),Object.setPrototypeOf(Odt,ml.prototype),Odt}function qm(Ndt){if(ml.isBuffer(Ndt)){const mY=Vm(Ndt.length)|0,Phe=pl(mY);return Phe.length===0||Ndt.copy(Phe,0,0,mY),Phe}if(Ndt.length!==void 0)return typeof Ndt.length!="number"||_pt(Ndt.length)?pl(0):Uf(Ndt);if(Ndt.type==="Buffer"&&Array.isArray(Ndt.data))return Uf(Ndt.data)}function Vm(Ndt){if(Ndt>=Sa)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Sa.toString(16)+" bytes");return Ndt|0}function eg(Ndt){return+Ndt!=Ndt&&(Ndt=0),ml.alloc(+Ndt)}ml.isBuffer=function(mY){return mY!=null&&mY._isBuffer===!0&&mY!==ml.prototype},ml.compare=function(mY,Phe){if(spt(mY,Uint8Array)&&(mY=ml.from(mY,mY.offset,mY.byteLength)),spt(Phe,Uint8Array)&&(Phe=ml.from(Phe,Phe.offset,Phe.byteLength)),!ml.isBuffer(mY)||!ml.isBuffer(Phe))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(mY===Phe)return 0;let Odt=mY.length,zhe=Phe.length;for(let Fhe=0,jhe=Math.min(Odt,zhe);Fhe<jhe;++Fhe)if(mY[Fhe]!==Phe[Fhe]){Odt=mY[Fhe],zhe=Phe[Fhe];break}return Odt<zhe?-1:zhe<Odt?1:0},ml.isEncoding=function(mY){switch(String(mY).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},ml.concat=function(mY,Phe){if(!Array.isArray(mY))throw new TypeError('"list" argument must be an Array of Buffers');if(mY.length===0)return ml.alloc(0);let Odt;if(Phe===void 0)for(Phe=0,Odt=0;Odt<mY.length;++Odt)Phe+=mY[Odt].length;const zhe=ml.allocUnsafe(Phe);let Fhe=0;for(Odt=0;Odt<mY.length;++Odt){let jhe=mY[Odt];if(spt(jhe,Uint8Array))Fhe+jhe.length>zhe.length?(ml.isBuffer(jhe)||(jhe=ml.from(jhe)),jhe.copy(zhe,Fhe)):Uint8Array.prototype.set.call(zhe,jhe,Fhe);else if(ml.isBuffer(jhe))jhe.copy(zhe,Fhe);else throw new TypeError('"list" argument must be an Array of Buffers');Fhe+=jhe.length}return zhe};function tg(Ndt,mY){if(ml.isBuffer(Ndt))return Ndt.length;if(ArrayBuffer.isView(Ndt)||spt(Ndt,ArrayBuffer))return Ndt.byteLength;if(typeof Ndt!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof Ndt);const Phe=Ndt.length,Odt=arguments.length>2&&arguments[2]===!0;if(!Odt&&Phe===0)return 0;let zhe=!1;for(;;)switch(mY){case"ascii":case"latin1":case"binary":return Phe;case"utf8":case"utf-8":return Qht(Ndt).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Phe*2;case"hex":return Phe>>>1;case"base64":return Bpt(Ndt).length;default:if(zhe)return Odt?-1:Qht(Ndt).length;mY=(""+mY).toLowerCase(),zhe=!0}}ml.byteLength=tg;function rg(Ndt,mY,Phe){let Odt=!1;if((mY===void 0||mY<0)&&(mY=0),mY>this.length||((Phe===void 0||Phe>this.length)&&(Phe=this.length),Phe<=0)||(Phe>>>=0,mY>>>=0,Phe<=mY))return"";for(Ndt||(Ndt="utf8");;)switch(Ndt){case"hex":return BN(this,mY,Phe);case"utf8":case"utf-8":return G0(this,mY,Phe);case"ascii":return f_(this,mY,Phe);case"latin1":case"binary":return zN(this,mY,Phe);case"base64":return Y0(this,mY,Phe);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return iF(this,mY,Phe);default:if(Odt)throw new TypeError("Unknown encoding: "+Ndt);Ndt=(Ndt+"").toLowerCase(),Odt=!0}}ml.prototype._isBuffer=!0;function ig(Ndt,mY,Phe){const Odt=Ndt[mY];Ndt[mY]=Ndt[Phe],Ndt[Phe]=Odt}ml.prototype.swap16=function(){const mY=this.length;if(mY%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let Phe=0;Phe<mY;Phe+=2)ig(this,Phe,Phe+1);return this},ml.prototype.swap32=function(){const mY=this.length;if(mY%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let Phe=0;Phe<mY;Phe+=4)ig(this,Phe,Phe+3),ig(this,Phe+1,Phe+2);return this},ml.prototype.swap64=function(){const mY=this.length;if(mY%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let Phe=0;Phe<mY;Phe+=8)ig(this,Phe,Phe+7),ig(this,Phe+1,Phe+6),ig(this,Phe+2,Phe+5),ig(this,Phe+3,Phe+4);return this},ml.prototype.toString=function(){const mY=this.length;return mY===0?"":arguments.length===0?G0(this,0,mY):rg.apply(this,arguments)},ml.prototype.toLocaleString=ml.prototype.toString,ml.prototype.equals=function(mY){if(!ml.isBuffer(mY))throw new TypeError("Argument must be a Buffer");return this===mY?!0:ml.compare(this,mY)===0},ml.prototype.inspect=function(){let mY="";const Phe=la.INSPECT_MAX_BYTES;return mY=this.toString("hex",0,Phe).replace(/(.{2})/g,"$1 ").trim(),this.length>Phe&&(mY+=" ... "),"<Buffer "+mY+">"},ua&&(ml.prototype[ua]=ml.prototype.inspect),ml.prototype.compare=function(mY,Phe,Odt,zhe,Fhe){if(spt(mY,Uint8Array)&&(mY=ml.from(mY,mY.offset,mY.byteLength)),!ml.isBuffer(mY))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof mY);if(Phe===void 0&&(Phe=0),Odt===void 0&&(Odt=mY?mY.length:0),zhe===void 0&&(zhe=0),Fhe===void 0&&(Fhe=this.length),Phe<0||Odt>mY.length||zhe<0||Fhe>this.length)throw new RangeError("out of range index");if(zhe>=Fhe&&Phe>=Odt)return 0;if(zhe>=Fhe)return-1;if(Phe>=Odt)return 1;if(Phe>>>=0,Odt>>>=0,zhe>>>=0,Fhe>>>=0,this===mY)return 0;let jhe=Fhe-zhe,Tdt=Odt-Phe;const Idt=Math.min(jhe,Tdt),Zht=this.slice(zhe,Fhe),Rdt=mY.slice(Phe,Odt);for(let cpt=0;cpt<Idt;++cpt)if(Zht[cpt]!==Rdt[cpt]){jhe=Zht[cpt],Tdt=Rdt[cpt];break}return jhe<Tdt?-1:Tdt<jhe?1:0};function vv(Ndt,mY,Phe,Odt,zhe){if(Ndt.length===0)return-1;if(typeof Phe=="string"?(Odt=Phe,Phe=0):Phe>2147483647?Phe=2147483647:Phe<-2147483648&&(Phe=-2147483648),Phe=+Phe,_pt(Phe)&&(Phe=zhe?0:Ndt.length-1),Phe<0&&(Phe=Ndt.length+Phe),Phe>=Ndt.length){if(zhe)return-1;Phe=Ndt.length-1}else if(Phe<0)if(zhe)Phe=0;else return-1;if(typeof mY=="string"&&(mY=ml.from(mY,Odt)),ml.isBuffer(mY))return mY.length===0?-1:R1(Ndt,mY,Phe,Odt,zhe);if(typeof mY=="number")return mY=mY&255,typeof Uint8Array.prototype.indexOf=="function"?zhe?Uint8Array.prototype.indexOf.call(Ndt,mY,Phe):Uint8Array.prototype.lastIndexOf.call(Ndt,mY,Phe):R1(Ndt,[mY],Phe,Odt,zhe);throw new TypeError("val must be string, number or Buffer")}function R1(Ndt,mY,Phe,Odt,zhe){let Fhe=1,jhe=Ndt.length,Tdt=mY.length;if(Odt!==void 0&&(Odt=String(Odt).toLowerCase(),Odt==="ucs2"||Odt==="ucs-2"||Odt==="utf16le"||Odt==="utf-16le")){if(Ndt.length<2||mY.length<2)return-1;Fhe=2,jhe/=2,Tdt/=2,Phe/=2}function Idt(Rdt,cpt){return Fhe===1?Rdt[cpt]:Rdt.readUInt16BE(cpt*Fhe)}let Zht;if(zhe){let Rdt=-1;for(Zht=Phe;Zht<jhe;Zht++)if(Idt(Ndt,Zht)===Idt(mY,Rdt===-1?0:Zht-Rdt)){if(Rdt===-1&&(Rdt=Zht),Zht-Rdt+1===Tdt)return Rdt*Fhe}else Rdt!==-1&&(Zht-=Zht-Rdt),Rdt=-1}else for(Phe+Tdt>jhe&&(Phe=jhe-Tdt),Zht=Phe;Zht>=0;Zht--){let Rdt=!0;for(let cpt=0;cpt<Tdt;cpt++)if(Idt(Ndt,Zht+cpt)!==Idt(mY,cpt)){Rdt=!1;break}if(Rdt)return Zht}return-1}ml.prototype.includes=function(mY,Phe,Odt){return this.indexOf(mY,Phe,Odt)!==-1},ml.prototype.indexOf=function(mY,Phe,Odt){return vv(this,mY,Phe,Odt,!0)},ml.prototype.lastIndexOf=function(mY,Phe,Odt){return vv(this,mY,Phe,Odt,!1)};function O1(Ndt,mY,Phe,Odt){Phe=Number(Phe)||0;const zhe=Ndt.length-Phe;Odt?(Odt=Number(Odt),Odt>zhe&&(Odt=zhe)):Odt=zhe;const Fhe=mY.length;Odt>Fhe/2&&(Odt=Fhe/2);let jhe;for(jhe=0;jhe<Odt;++jhe){const Tdt=parseInt(mY.substr(jhe*2,2),16);if(_pt(Tdt))return jhe;Ndt[Phe+jhe]=Tdt}return jhe}function K0(Ndt,mY,Phe,Odt){return Apt(Qht(mY,Ndt.length-Phe),Ndt,Phe,Odt)}function J0(Ndt,mY,Phe,Odt){return Apt(kpt(mY),Ndt,Phe,Odt)}function Hw(Ndt,mY,Phe,Odt){return Apt(Bpt(mY),Ndt,Phe,Odt)}function qw(Ndt,mY,Phe,Odt){return Apt(Dpt(mY,Ndt.length-Phe),Ndt,Phe,Odt)}ml.prototype.write=function(mY,Phe,Odt,zhe){if(Phe===void 0)zhe="utf8",Odt=this.length,Phe=0;else if(Odt===void 0&&typeof Phe=="string")zhe=Phe,Odt=this.length,Phe=0;else if(isFinite(Phe))Phe=Phe>>>0,isFinite(Odt)?(Odt=Odt>>>0,zhe===void 0&&(zhe="utf8")):(zhe=Odt,Odt=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const Fhe=this.length-Phe;if((Odt===void 0||Odt>Fhe)&&(Odt=Fhe),mY.length>0&&(Odt<0||Phe<0)||Phe>this.length)throw new RangeError("Attempt to write outside buffer bounds");zhe||(zhe="utf8");let jhe=!1;for(;;)switch(zhe){case"hex":return O1(this,mY,Phe,Odt);case"utf8":case"utf-8":return K0(this,mY,Phe,Odt);case"ascii":case"latin1":case"binary":return J0(this,mY,Phe,Odt);case"base64":return Hw(this,mY,Phe,Odt);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return qw(this,mY,Phe,Odt);default:if(jhe)throw new TypeError("Unknown encoding: "+zhe);zhe=(""+zhe).toLowerCase(),jhe=!0}},ml.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Y0(Ndt,mY,Phe){return mY===0&&Phe===Ndt.length?aa.fromByteArray(Ndt):aa.fromByteArray(Ndt.slice(mY,Phe))}function G0(Ndt,mY,Phe){Phe=Math.min(Ndt.length,Phe);const Odt=[];let zhe=mY;for(;zhe<Phe;){const Fhe=Ndt[zhe];let jhe=null,Tdt=Fhe>239?4:Fhe>223?3:Fhe>191?2:1;if(zhe+Tdt<=Phe){let Idt,Zht,Rdt,cpt;switch(Tdt){case 1:Fhe<128&&(jhe=Fhe);break;case 2:Idt=Ndt[zhe+1],(Idt&192)===128&&(cpt=(Fhe&31)<<6|Idt&63,cpt>127&&(jhe=cpt));break;case 3:Idt=Ndt[zhe+1],Zht=Ndt[zhe+2],(Idt&192)===128&&(Zht&192)===128&&(cpt=(Fhe&15)<<12|(Idt&63)<<6|Zht&63,cpt>2047&&(cpt<55296||cpt>57343)&&(jhe=cpt));break;case 4:Idt=Ndt[zhe+1],Zht=Ndt[zhe+2],Rdt=Ndt[zhe+3],(Idt&192)===128&&(Zht&192)===128&&(Rdt&192)===128&&(cpt=(Fhe&15)<<18|(Idt&63)<<12|(Zht&63)<<6|Rdt&63,cpt>65535&&cpt<1114112&&(jhe=cpt))}}jhe===null?(jhe=65533,Tdt=1):jhe>65535&&(jhe-=65536,Odt.push(jhe>>>10&1023|55296),jhe=56320|jhe&1023),Odt.push(jhe),zhe+=Tdt}return d_(Odt)}const X0=4096;function d_(Ndt){const mY=Ndt.length;if(mY<=X0)return String.fromCharCode.apply(String,Ndt);let Phe="",Odt=0;for(;Odt<mY;)Phe+=String.fromCharCode.apply(String,Ndt.slice(Odt,Odt+=X0));return Phe}function f_(Ndt,mY,Phe){let Odt="";Phe=Math.min(Ndt.length,Phe);for(let zhe=mY;zhe<Phe;++zhe)Odt+=String.fromCharCode(Ndt[zhe]&127);return Odt}function zN(Ndt,mY,Phe){let Odt="";Phe=Math.min(Ndt.length,Phe);for(let zhe=mY;zhe<Phe;++zhe)Odt+=String.fromCharCode(Ndt[zhe]);return Odt}function BN(Ndt,mY,Phe){const Odt=Ndt.length;(!mY||mY<0)&&(mY=0),(!Phe||Phe<0||Phe>Odt)&&(Phe=Odt);let zhe="";for(let Fhe=mY;Fhe<Phe;++Fhe)zhe+=jpt[Ndt[Fhe]];return zhe}function iF(Ndt,mY,Phe){const Odt=Ndt.slice(mY,Phe);let zhe="";for(let Fhe=0;Fhe<Odt.length-1;Fhe+=2)zhe+=String.fromCharCode(Odt[Fhe]+Odt[Fhe+1]*256);return zhe}ml.prototype.slice=function(mY,Phe){const Odt=this.length;mY=~~mY,Phe=Phe===void 0?Odt:~~Phe,mY<0?(mY+=Odt,mY<0&&(mY=0)):mY>Odt&&(mY=Odt),Phe<0?(Phe+=Odt,Phe<0&&(Phe=0)):Phe>Odt&&(Phe=Odt),Phe<mY&&(Phe=mY);const zhe=this.subarray(mY,Phe);return Object.setPrototypeOf(zhe,ml.prototype),zhe};function yY(Ndt,mY,Phe){if(Ndt%1!==0||Ndt<0)throw new RangeError("offset is not uint");if(Ndt+mY>Phe)throw new RangeError("Trying to access beyond buffer length")}ml.prototype.readUintLE=ml.prototype.readUIntLE=function(mY,Phe,Odt){mY=mY>>>0,Phe=Phe>>>0,Odt||yY(mY,Phe,this.length);let zhe=this[mY],Fhe=1,jhe=0;for(;++jhe<Phe&&(Fhe*=256);)zhe+=this[mY+jhe]*Fhe;return zhe},ml.prototype.readUintBE=ml.prototype.readUIntBE=function(mY,Phe,Odt){mY=mY>>>0,Phe=Phe>>>0,Odt||yY(mY,Phe,this.length);let zhe=this[mY+--Phe],Fhe=1;for(;Phe>0&&(Fhe*=256);)zhe+=this[mY+--Phe]*Fhe;return zhe},ml.prototype.readUint8=ml.prototype.readUInt8=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,1,this.length),this[mY]},ml.prototype.readUint16LE=ml.prototype.readUInt16LE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,2,this.length),this[mY]|this[mY+1]<<8},ml.prototype.readUint16BE=ml.prototype.readUInt16BE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,2,this.length),this[mY]<<8|this[mY+1]},ml.prototype.readUint32LE=ml.prototype.readUInt32LE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,4,this.length),(this[mY]|this[mY+1]<<8|this[mY+2]<<16)+this[mY+3]*16777216},ml.prototype.readUint32BE=ml.prototype.readUInt32BE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,4,this.length),this[mY]*16777216+(this[mY+1]<<16|this[mY+2]<<8|this[mY+3])},ml.prototype.readBigUInt64LE=Opt(function(mY){mY=mY>>>0,dht(mY,"offset");const Phe=this[mY],Odt=this[mY+7];(Phe===void 0||Odt===void 0)&&Mdt(mY,this.length-8);const zhe=Phe+this[++mY]*2**8+this[++mY]*2**16+this[++mY]*2**24,Fhe=this[++mY]+this[++mY]*2**8+this[++mY]*2**16+Odt*2**24;return BigInt(zhe)+(BigInt(Fhe)<<BigInt(32))}),ml.prototype.readBigUInt64BE=Opt(function(mY){mY=mY>>>0,dht(mY,"offset");const Phe=this[mY],Odt=this[mY+7];(Phe===void 0||Odt===void 0)&&Mdt(mY,this.length-8);const zhe=Phe*2**24+this[++mY]*2**16+this[++mY]*2**8+this[++mY],Fhe=this[++mY]*2**24+this[++mY]*2**16+this[++mY]*2**8+Odt;return(BigInt(zhe)<<BigInt(32))+BigInt(Fhe)}),ml.prototype.readIntLE=function(mY,Phe,Odt){mY=mY>>>0,Phe=Phe>>>0,Odt||yY(mY,Phe,this.length);let zhe=this[mY],Fhe=1,jhe=0;for(;++jhe<Phe&&(Fhe*=256);)zhe+=this[mY+jhe]*Fhe;return Fhe*=128,zhe>=Fhe&&(zhe-=Math.pow(2,8*Phe)),zhe},ml.prototype.readIntBE=function(mY,Phe,Odt){mY=mY>>>0,Phe=Phe>>>0,Odt||yY(mY,Phe,this.length);let zhe=Phe,Fhe=1,jhe=this[mY+--zhe];for(;zhe>0&&(Fhe*=256);)jhe+=this[mY+--zhe]*Fhe;return Fhe*=128,jhe>=Fhe&&(jhe-=Math.pow(2,8*Phe)),jhe},ml.prototype.readInt8=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,1,this.length),this[mY]&128?(255-this[mY]+1)*-1:this[mY]},ml.prototype.readInt16LE=function(mY,Phe){mY=mY>>>0,Phe||yY(mY,2,this.length);const Odt=this[mY]|this[mY+1]<<8;return Odt&32768?Odt|4294901760:Odt},ml.prototype.readInt16BE=function(mY,Phe){mY=mY>>>0,Phe||yY(mY,2,this.length);const Odt=this[mY+1]|this[mY]<<8;return Odt&32768?Odt|4294901760:Odt},ml.prototype.readInt32LE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,4,this.length),this[mY]|this[mY+1]<<8|this[mY+2]<<16|this[mY+3]<<24},ml.prototype.readInt32BE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,4,this.length),this[mY]<<24|this[mY+1]<<16|this[mY+2]<<8|this[mY+3]},ml.prototype.readBigInt64LE=Opt(function(mY){mY=mY>>>0,dht(mY,"offset");const Phe=this[mY],Odt=this[mY+7];(Phe===void 0||Odt===void 0)&&Mdt(mY,this.length-8);const zhe=this[mY+4]+this[mY+5]*2**8+this[mY+6]*2**16+(Odt<<24);return(BigInt(zhe)<<BigInt(32))+BigInt(Phe+this[++mY]*2**8+this[++mY]*2**16+this[++mY]*2**24)}),ml.prototype.readBigInt64BE=Opt(function(mY){mY=mY>>>0,dht(mY,"offset");const Phe=this[mY],Odt=this[mY+7];(Phe===void 0||Odt===void 0)&&Mdt(mY,this.length-8);const zhe=(Phe<<24)+this[++mY]*2**16+this[++mY]*2**8+this[++mY];return(BigInt(zhe)<<BigInt(32))+BigInt(this[++mY]*2**24+this[++mY]*2**16+this[++mY]*2**8+Odt)}),ml.prototype.readFloatLE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,4,this.length),ca.read(this,mY,!0,23,4)},ml.prototype.readFloatBE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,4,this.length),ca.read(this,mY,!1,23,4)},ml.prototype.readDoubleLE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,8,this.length),ca.read(this,mY,!0,52,8)},ml.prototype.readDoubleBE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,8,this.length),ca.read(this,mY,!1,52,8)};function vQ(Ndt,mY,Phe,Odt,zhe,Fhe){if(!ml.isBuffer(Ndt))throw new TypeError('"buffer" argument must be a Buffer instance');if(mY>zhe||mY<Fhe)throw new RangeError('"value" argument is out of bounds');if(Phe+Odt>Ndt.length)throw new RangeError("Index out of range")}ml.prototype.writeUintLE=ml.prototype.writeUIntLE=function(mY,Phe,Odt,zhe){if(mY=+mY,Phe=Phe>>>0,Odt=Odt>>>0,!zhe){const Tdt=Math.pow(2,8*Odt)-1;vQ(this,mY,Phe,Odt,Tdt,0)}let Fhe=1,jhe=0;for(this[Phe]=mY&255;++jhe<Odt&&(Fhe*=256);)this[Phe+jhe]=mY/Fhe&255;return Phe+Odt},ml.prototype.writeUintBE=ml.prototype.writeUIntBE=function(mY,Phe,Odt,zhe){if(mY=+mY,Phe=Phe>>>0,Odt=Odt>>>0,!zhe){const Tdt=Math.pow(2,8*Odt)-1;vQ(this,mY,Phe,Odt,Tdt,0)}let Fhe=Odt-1,jhe=1;for(this[Phe+Fhe]=mY&255;--Fhe>=0&&(jhe*=256);)this[Phe+Fhe]=mY/jhe&255;return Phe+Odt},ml.prototype.writeUint8=ml.prototype.writeUInt8=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,1,255,0),this[Phe]=mY&255,Phe+1},ml.prototype.writeUint16LE=ml.prototype.writeUInt16LE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,2,65535,0),this[Phe]=mY&255,this[Phe+1]=mY>>>8,Phe+2},ml.prototype.writeUint16BE=ml.prototype.writeUInt16BE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,2,65535,0),this[Phe]=mY>>>8,this[Phe+1]=mY&255,Phe+2},ml.prototype.writeUint32LE=ml.prototype.writeUInt32LE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,4,4294967295,0),this[Phe+3]=mY>>>24,this[Phe+2]=mY>>>16,this[Phe+1]=mY>>>8,this[Phe]=mY&255,Phe+4},ml.prototype.writeUint32BE=ml.prototype.writeUInt32BE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,4,4294967295,0),this[Phe]=mY>>>24,this[Phe+1]=mY>>>16,this[Phe+2]=mY>>>8,this[Phe+3]=mY&255,Phe+4};function Ohe(Ndt,mY,Phe,Odt,zhe){Bhe(mY,Odt,zhe,Ndt,Phe,7);let Fhe=Number(mY&BigInt(4294967295));Ndt[Phe++]=Fhe,Fhe=Fhe>>8,Ndt[Phe++]=Fhe,Fhe=Fhe>>8,Ndt[Phe++]=Fhe,Fhe=Fhe>>8,Ndt[Phe++]=Fhe;let jhe=Number(mY>>BigInt(32)&BigInt(4294967295));return Ndt[Phe++]=jhe,jhe=jhe>>8,Ndt[Phe++]=jhe,jhe=jhe>>8,Ndt[Phe++]=jhe,jhe=jhe>>8,Ndt[Phe++]=jhe,Phe}function bY(Ndt,mY,Phe,Odt,zhe){Bhe(mY,Odt,zhe,Ndt,Phe,7);let Fhe=Number(mY&BigInt(4294967295));Ndt[Phe+7]=Fhe,Fhe=Fhe>>8,Ndt[Phe+6]=Fhe,Fhe=Fhe>>8,Ndt[Phe+5]=Fhe,Fhe=Fhe>>8,Ndt[Phe+4]=Fhe;let jhe=Number(mY>>BigInt(32)&BigInt(4294967295));return Ndt[Phe+3]=jhe,jhe=jhe>>8,Ndt[Phe+2]=jhe,jhe=jhe>>8,Ndt[Phe+1]=jhe,jhe=jhe>>8,Ndt[Phe]=jhe,Phe+8}ml.prototype.writeBigUInt64LE=Opt(function(mY,Phe=0){return Ohe(this,mY,Phe,BigInt(0),BigInt("0xffffffffffffffff"))}),ml.prototype.writeBigUInt64BE=Opt(function(mY,Phe=0){return bY(this,mY,Phe,BigInt(0),BigInt("0xffffffffffffffff"))}),ml.prototype.writeIntLE=function(mY,Phe,Odt,zhe){if(mY=+mY,Phe=Phe>>>0,!zhe){const Idt=Math.pow(2,8*Odt-1);vQ(this,mY,Phe,Odt,Idt-1,-Idt)}let Fhe=0,jhe=1,Tdt=0;for(this[Phe]=mY&255;++Fhe<Odt&&(jhe*=256);)mY<0&&Tdt===0&&this[Phe+Fhe-1]!==0&&(Tdt=1),this[Phe+Fhe]=(mY/jhe>>0)-Tdt&255;return Phe+Odt},ml.prototype.writeIntBE=function(mY,Phe,Odt,zhe){if(mY=+mY,Phe=Phe>>>0,!zhe){const Idt=Math.pow(2,8*Odt-1);vQ(this,mY,Phe,Odt,Idt-1,-Idt)}let Fhe=Odt-1,jhe=1,Tdt=0;for(this[Phe+Fhe]=mY&255;--Fhe>=0&&(jhe*=256);)mY<0&&Tdt===0&&this[Phe+Fhe+1]!==0&&(Tdt=1),this[Phe+Fhe]=(mY/jhe>>0)-Tdt&255;return Phe+Odt},ml.prototype.writeInt8=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,1,127,-128),mY<0&&(mY=255+mY+1),this[Phe]=mY&255,Phe+1},ml.prototype.writeInt16LE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,2,32767,-32768),this[Phe]=mY&255,this[Phe+1]=mY>>>8,Phe+2},ml.prototype.writeInt16BE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,2,32767,-32768),this[Phe]=mY>>>8,this[Phe+1]=mY&255,Phe+2},ml.prototype.writeInt32LE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,4,2147483647,-2147483648),this[Phe]=mY&255,this[Phe+1]=mY>>>8,this[Phe+2]=mY>>>16,this[Phe+3]=mY>>>24,Phe+4},ml.prototype.writeInt32BE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,4,2147483647,-2147483648),mY<0&&(mY=4294967295+mY+1),this[Phe]=mY>>>24,this[Phe+1]=mY>>>16,this[Phe+2]=mY>>>8,this[Phe+3]=mY&255,Phe+4},ml.prototype.writeBigInt64LE=Opt(function(mY,Phe=0){return Ohe(this,mY,Phe,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),ml.prototype.writeBigInt64BE=Opt(function(mY,Phe=0){return bY(this,mY,Phe,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Lhe(Ndt,mY,Phe,Odt,zhe,Fhe){if(Phe+Odt>Ndt.length)throw new RangeError("Index out of range");if(Phe<0)throw new RangeError("Index out of range")}function Dhe(Ndt,mY,Phe,Odt,zhe){return mY=+mY,Phe=Phe>>>0,zhe||Lhe(Ndt,mY,Phe,4),ca.write(Ndt,mY,Phe,Odt,23,4),Phe+4}ml.prototype.writeFloatLE=function(mY,Phe,Odt){return Dhe(this,mY,Phe,!0,Odt)},ml.prototype.writeFloatBE=function(mY,Phe,Odt){return Dhe(this,mY,Phe,!1,Odt)};function kdt(Ndt,mY,Phe,Odt,zhe){return mY=+mY,Phe=Phe>>>0,zhe||Lhe(Ndt,mY,Phe,8),ca.write(Ndt,mY,Phe,Odt,52,8),Phe+8}ml.prototype.writeDoubleLE=function(mY,Phe,Odt){return kdt(this,mY,Phe,!0,Odt)},ml.prototype.writeDoubleBE=function(mY,Phe,Odt){return kdt(this,mY,Phe,!1,Odt)},ml.prototype.copy=function(mY,Phe,Odt,zhe){if(!ml.isBuffer(mY))throw new TypeError("argument should be a Buffer");if(Odt||(Odt=0),!zhe&&zhe!==0&&(zhe=this.length),Phe>=mY.length&&(Phe=mY.length),Phe||(Phe=0),zhe>0&&zhe<Odt&&(zhe=Odt),zhe===Odt||mY.length===0||this.length===0)return 0;if(Phe<0)throw new RangeError("targetStart out of bounds");if(Odt<0||Odt>=this.length)throw new RangeError("Index out of range");if(zhe<0)throw new RangeError("sourceEnd out of bounds");zhe>this.length&&(zhe=this.length),mY.length-Phe<zhe-Odt&&(zhe=mY.length-Phe+Odt);const Fhe=zhe-Odt;return this===mY&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(Phe,Odt,zhe):Uint8Array.prototype.set.call(mY,this.subarray(Odt,zhe),Phe),Fhe},ml.prototype.fill=function(mY,Phe,Odt,zhe){if(typeof mY=="string"){if(typeof Phe=="string"?(zhe=Phe,Phe=0,Odt=this.length):typeof Odt=="string"&&(zhe=Odt,Odt=this.length),zhe!==void 0&&typeof zhe!="string")throw new TypeError("encoding must be a string");if(typeof zhe=="string"&&!ml.isEncoding(zhe))throw new TypeError("Unknown encoding: "+zhe);if(mY.length===1){const jhe=mY.charCodeAt(0);(zhe==="utf8"&&jhe<128||zhe==="latin1")&&(mY=jhe)}}else typeof mY=="number"?mY=mY&255:typeof mY=="boolean"&&(mY=Number(mY));if(Phe<0||this.length<Phe||this.length<Odt)throw new RangeError("Out of range index");if(Odt<=Phe)return this;Phe=Phe>>>0,Odt=Odt===void 0?this.length:Odt>>>0,mY||(mY=0);let Fhe;if(typeof mY=="number")for(Fhe=Phe;Fhe<Odt;++Fhe)this[Fhe]=mY;else{const jhe=ml.isBuffer(mY)?mY:ml.from(mY,zhe),Tdt=jhe.length;if(Tdt===0)throw new TypeError('The value "'+mY+'" is invalid for argument "value"');for(Fhe=0;Fhe<Odt-Phe;++Fhe)this[Fhe+Phe]=jhe[Fhe%Tdt]}return this};const eht={};function oht(Ndt,mY,Phe){eht[Ndt]=class extends Phe{constructor(){super(),Object.defineProperty(this,"message",{value:mY.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${Ndt}]`,this.stack,delete this.name}get code(){return Ndt}set code(zhe){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:zhe,writable:!0})}toString(){return`${this.name} [${Ndt}]: ${this.message}`}}}oht("ERR_BUFFER_OUT_OF_BOUNDS",function(Ndt){return Ndt?`${Ndt} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),oht("ERR_INVALID_ARG_TYPE",function(Ndt,mY){return`The "${Ndt}" argument must be of type number. Received type ${typeof mY}`},TypeError),oht("ERR_OUT_OF_RANGE",function(Ndt,mY,Phe){let Odt=`The value of "${Ndt}" is out of range.`,zhe=Phe;return Number.isInteger(Phe)&&Math.abs(Phe)>2**32?zhe=iht(String(Phe)):typeof Phe=="bigint"&&(zhe=String(Phe),(Phe>BigInt(2)**BigInt(32)||Phe<-(BigInt(2)**BigInt(32)))&&(zhe=iht(zhe)),zhe+="n"),Odt+=` It must be ${mY}. Received ${zhe}`,Odt},RangeError);function iht(Ndt){let mY="",Phe=Ndt.length;const Odt=Ndt[0]==="-"?1:0;for(;Phe>=Odt+4;Phe-=3)mY=`_${Ndt.slice(Phe-3,Phe)}${mY}`;return`${Ndt.slice(0,Phe)}${mY}`}function Uhe(Ndt,mY,Phe){dht(mY,"offset"),(Ndt[mY]===void 0||Ndt[mY+Phe]===void 0)&&Mdt(mY,Ndt.length-(Phe+1))}function Bhe(Ndt,mY,Phe,Odt,zhe,Fhe){if(Ndt>Phe||Ndt<mY){const jhe=typeof mY=="bigint"?"n":"";let Tdt;throw mY===0||mY===BigInt(0)?Tdt=`>= 0${jhe} and < 2${jhe} ** ${(Fhe+1)*8}${jhe}`:Tdt=`>= -(2${jhe} ** ${(Fhe+1)*8-1}${jhe}) and < 2 ** ${(Fhe+1)*8-1}${jhe}`,new eht.ERR_OUT_OF_RANGE("value",Tdt,Ndt)}Uhe(Odt,zhe,Fhe)}function dht(Ndt,mY){if(typeof Ndt!="number")throw new eht.ERR_INVALID_ARG_TYPE(mY,"number",Ndt)}function Mdt(Ndt,mY,Phe){throw Math.floor(Ndt)!==Ndt?(dht(Ndt,Phe),new eht.ERR_OUT_OF_RANGE("offset","an integer",Ndt)):mY<0?new eht.ERR_BUFFER_OUT_OF_BOUNDS:new eht.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${mY}`,Ndt)}const opt=/[^+/0-9A-Za-z-_]/g;function gpt(Ndt){if(Ndt=Ndt.split("=")[0],Ndt=Ndt.trim().replace(opt,""),Ndt.length<2)return"";for(;Ndt.length%4!==0;)Ndt=Ndt+"=";return Ndt}function Qht(Ndt,mY){mY=mY||1/0;let Phe;const Odt=Ndt.length;let zhe=null;const Fhe=[];for(let jhe=0;jhe<Odt;++jhe){if(Phe=Ndt.charCodeAt(jhe),Phe>55295&&Phe<57344){if(!zhe){if(Phe>56319){(mY-=3)>-1&&Fhe.push(239,191,189);continue}else if(jhe+1===Odt){(mY-=3)>-1&&Fhe.push(239,191,189);continue}zhe=Phe;continue}if(Phe<56320){(mY-=3)>-1&&Fhe.push(239,191,189),zhe=Phe;continue}Phe=(zhe-55296<<10|Phe-56320)+65536}else zhe&&(mY-=3)>-1&&Fhe.push(239,191,189);if(zhe=null,Phe<128){if((mY-=1)<0)break;Fhe.push(Phe)}else if(Phe<2048){if((mY-=2)<0)break;Fhe.push(Phe>>6|192,Phe&63|128)}else if(Phe<65536){if((mY-=3)<0)break;Fhe.push(Phe>>12|224,Phe>>6&63|128,Phe&63|128)}else if(Phe<1114112){if((mY-=4)<0)break;Fhe.push(Phe>>18|240,Phe>>12&63|128,Phe>>6&63|128,Phe&63|128)}else throw new Error("Invalid code point")}return Fhe}function kpt(Ndt){const mY=[];for(let Phe=0;Phe<Ndt.length;++Phe)mY.push(Ndt.charCodeAt(Phe)&255);return mY}function Dpt(Ndt,mY){let Phe,Odt,zhe;const Fhe=[];for(let jhe=0;jhe<Ndt.length&&!((mY-=2)<0);++jhe)Phe=Ndt.charCodeAt(jhe),Odt=Phe>>8,zhe=Phe%256,Fhe.push(zhe),Fhe.push(Odt);return Fhe}function Bpt(Ndt){return aa.toByteArray(gpt(Ndt))}function Apt(Ndt,mY,Phe,Odt){let zhe;for(zhe=0;zhe<Odt&&!(zhe+Phe>=mY.length||zhe>=Ndt.length);++zhe)mY[zhe+Phe]=Ndt[zhe];return zhe}function spt(Ndt,mY){return Ndt instanceof mY||Ndt!=null&&Ndt.constructor!=null&&Ndt.constructor.name!=null&&Ndt.constructor.name===mY.name}function _pt(Ndt){return Ndt!==Ndt}const jpt=(function(){const Ndt="0123456789abcdef",mY=new Array(256);for(let Phe=0;Phe<16;++Phe){const Odt=Phe*16;for(let zhe=0;zhe<16;++zhe)mY[Odt+zhe]=Ndt[Phe]+Ndt[zhe]}return mY})();function Opt(Ndt){return typeof BigInt>"u"?zpt:Ndt}function zpt(){throw new Error("BigInt not supported")}})(buffer)),buffer}var safeBuffer={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */var hasRequiredSafeBuffer;function requireSafeBuffer(){return hasRequiredSafeBuffer||(hasRequiredSafeBuffer=1,(function(la,aa){var ca=requireBuffer(),ua=ca.Buffer;function Sa(pl,ml){for(var gl in pl)ml[gl]=pl[gl]}ua.from&&ua.alloc&&ua.allocUnsafe&&ua.allocUnsafeSlow?la.exports=ca:(Sa(ca,aa),aa.Buffer=hl);function hl(pl,ml,gl){return ua(pl,ml,gl)}hl.prototype=Object.create(ua.prototype),Sa(ua,hl),hl.from=function(pl,ml,gl){if(typeof pl=="number")throw new TypeError("Argument must not be a number");return ua(pl,ml,gl)},hl.alloc=function(pl,ml,gl){if(typeof pl!="number")throw new TypeError("Argument must be a number");var wc=ua(pl);return ml!==void 0?typeof gl=="string"?wc.fill(ml,gl):wc.fill(ml):wc.fill(0),wc},hl.allocUnsafe=function(pl){if(typeof pl!="number")throw new TypeError("Argument must be a number");return ua(pl)},hl.allocUnsafeSlow=function(pl){if(typeof pl!="number")throw new TypeError("Argument must be a number");return ca.SlowBuffer(pl)}})(safeBuffer,safeBuffer.exports)),safeBuffer.exports}var define_process_env_default$8={};let DailyRotateFile$1,winston$1;isNodeEnv$1&&(await __vitePreload(()=>import("./index-DSr08Yfg.js").then(la=>la.i),__vite__mapDeps([0,1,2,3,4,5])).then(la=>{DailyRotateFile$1=la.default}),await __vitePreload(()=>import("./winston-Cjrg2M7e.js").then(la=>la.w),__vite__mapDeps([6,1,2,3,4,5])).then(la=>{winston$1=la.default}));let logger$3;function getLogLevel$1(){var la;return isNodeEnv$1&&define_process_env_default$8&&define_process_env_default$8.DEBUG?"debug":((la=AppConfig?.logging)===null||la===void 0?void 0:la.level)||"info"}function initializeLogger$1(){const la=getLogLevel$1();if(isNodeEnv$1){const aa=new DailyRotateFile$1({level:la,filename:"logs/app-%DATE%.log",datePattern:"YYYY-MM-DD",maxSize:"20m",maxFiles:"7d"});logger$3=winston$1.createLogger({level:la,format:winston$1.format.combine(winston$1.format.timestamp(),winston$1.format.printf(({timestamp:ca,level:ua,message:Sa})=>`[${ca}] ${ua}: ${Sa}`)),transports:[aa]})}else{let aa=function(ca){return ua=>{console.log(`${ca}: ${ua}`)}};logger$3={debug:aa("DEBUG"),info:aa("INFO"),warn:aa("WARN"),error:aa("ERROR")}}}initializeLogger$1();const PlannerInstructions$1=`Agentlang is a very-high-level declarative language that makes it easy to define business applications as 'models'.
|
|
8105
|
+
*/var hasRequiredBuffer;function requireBuffer(){return hasRequiredBuffer||(hasRequiredBuffer=1,(function(la){const aa=requireBase64Js(),ca=requireIeee754(),ua=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;la.Buffer=ml,la.SlowBuffer=eg,la.INSPECT_MAX_BYTES=50;const Sa=2147483647;la.kMaxLength=Sa,ml.TYPED_ARRAY_SUPPORT=hl(),!ml.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function hl(){try{const Ndt=new Uint8Array(1),mY={foo:function(){return 42}};return Object.setPrototypeOf(mY,Uint8Array.prototype),Object.setPrototypeOf(Ndt,mY),Ndt.foo()===42}catch{return!1}}Object.defineProperty(ml.prototype,"parent",{enumerable:!0,get:function(){if(ml.isBuffer(this))return this.buffer}}),Object.defineProperty(ml.prototype,"offset",{enumerable:!0,get:function(){if(ml.isBuffer(this))return this.byteOffset}});function pl(Ndt){if(Ndt>Sa)throw new RangeError('The value "'+Ndt+'" is invalid for option "size"');const mY=new Uint8Array(Ndt);return Object.setPrototypeOf(mY,ml.prototype),mY}function ml(Ndt,mY,Phe){if(typeof Ndt=="number"){if(typeof mY=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return ff(Ndt)}return gl(Ndt,mY,Phe)}ml.poolSize=8192;function gl(Ndt,mY,Phe){if(typeof Ndt=="string")return jf(Ndt,mY);if(ArrayBuffer.isView(Ndt))return rp(Ndt);if(Ndt==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Ndt);if(spt(Ndt,ArrayBuffer)||Ndt&&spt(Ndt.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(spt(Ndt,SharedArrayBuffer)||Ndt&&spt(Ndt.buffer,SharedArrayBuffer)))return np(Ndt,mY,Phe);if(typeof Ndt=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const Odt=Ndt.valueOf&&Ndt.valueOf();if(Odt!=null&&Odt!==Ndt)return ml.from(Odt,mY,Phe);const zhe=qm(Ndt);if(zhe)return zhe;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof Ndt[Symbol.toPrimitive]=="function")return ml.from(Ndt[Symbol.toPrimitive]("string"),mY,Phe);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Ndt)}ml.from=function(Ndt,mY,Phe){return gl(Ndt,mY,Phe)},Object.setPrototypeOf(ml.prototype,Uint8Array.prototype),Object.setPrototypeOf(ml,Uint8Array);function wc(Ndt){if(typeof Ndt!="number")throw new TypeError('"size" argument must be of type number');if(Ndt<0)throw new RangeError('The value "'+Ndt+'" is invalid for option "size"')}function xu(Ndt,mY,Phe){return wc(Ndt),Ndt<=0?pl(Ndt):mY!==void 0?typeof Phe=="string"?pl(Ndt).fill(mY,Phe):pl(Ndt).fill(mY):pl(Ndt)}ml.alloc=function(Ndt,mY,Phe){return xu(Ndt,mY,Phe)};function ff(Ndt){return wc(Ndt),pl(Ndt<0?0:Vm(Ndt)|0)}ml.allocUnsafe=function(Ndt){return ff(Ndt)},ml.allocUnsafeSlow=function(Ndt){return ff(Ndt)};function jf(Ndt,mY){if((typeof mY!="string"||mY==="")&&(mY="utf8"),!ml.isEncoding(mY))throw new TypeError("Unknown encoding: "+mY);const Phe=tg(Ndt,mY)|0;let Odt=pl(Phe);const zhe=Odt.write(Ndt,mY);return zhe!==Phe&&(Odt=Odt.slice(0,zhe)),Odt}function Uf(Ndt){const mY=Ndt.length<0?0:Vm(Ndt.length)|0,Phe=pl(mY);for(let Odt=0;Odt<mY;Odt+=1)Phe[Odt]=Ndt[Odt]&255;return Phe}function rp(Ndt){if(spt(Ndt,Uint8Array)){const mY=new Uint8Array(Ndt);return np(mY.buffer,mY.byteOffset,mY.byteLength)}return Uf(Ndt)}function np(Ndt,mY,Phe){if(mY<0||Ndt.byteLength<mY)throw new RangeError('"offset" is outside of buffer bounds');if(Ndt.byteLength<mY+(Phe||0))throw new RangeError('"length" is outside of buffer bounds');let Odt;return mY===void 0&&Phe===void 0?Odt=new Uint8Array(Ndt):Phe===void 0?Odt=new Uint8Array(Ndt,mY):Odt=new Uint8Array(Ndt,mY,Phe),Object.setPrototypeOf(Odt,ml.prototype),Odt}function qm(Ndt){if(ml.isBuffer(Ndt)){const mY=Vm(Ndt.length)|0,Phe=pl(mY);return Phe.length===0||Ndt.copy(Phe,0,0,mY),Phe}if(Ndt.length!==void 0)return typeof Ndt.length!="number"||_pt(Ndt.length)?pl(0):Uf(Ndt);if(Ndt.type==="Buffer"&&Array.isArray(Ndt.data))return Uf(Ndt.data)}function Vm(Ndt){if(Ndt>=Sa)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Sa.toString(16)+" bytes");return Ndt|0}function eg(Ndt){return+Ndt!=Ndt&&(Ndt=0),ml.alloc(+Ndt)}ml.isBuffer=function(mY){return mY!=null&&mY._isBuffer===!0&&mY!==ml.prototype},ml.compare=function(mY,Phe){if(spt(mY,Uint8Array)&&(mY=ml.from(mY,mY.offset,mY.byteLength)),spt(Phe,Uint8Array)&&(Phe=ml.from(Phe,Phe.offset,Phe.byteLength)),!ml.isBuffer(mY)||!ml.isBuffer(Phe))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(mY===Phe)return 0;let Odt=mY.length,zhe=Phe.length;for(let Fhe=0,jhe=Math.min(Odt,zhe);Fhe<jhe;++Fhe)if(mY[Fhe]!==Phe[Fhe]){Odt=mY[Fhe],zhe=Phe[Fhe];break}return Odt<zhe?-1:zhe<Odt?1:0},ml.isEncoding=function(mY){switch(String(mY).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},ml.concat=function(mY,Phe){if(!Array.isArray(mY))throw new TypeError('"list" argument must be an Array of Buffers');if(mY.length===0)return ml.alloc(0);let Odt;if(Phe===void 0)for(Phe=0,Odt=0;Odt<mY.length;++Odt)Phe+=mY[Odt].length;const zhe=ml.allocUnsafe(Phe);let Fhe=0;for(Odt=0;Odt<mY.length;++Odt){let jhe=mY[Odt];if(spt(jhe,Uint8Array))Fhe+jhe.length>zhe.length?(ml.isBuffer(jhe)||(jhe=ml.from(jhe)),jhe.copy(zhe,Fhe)):Uint8Array.prototype.set.call(zhe,jhe,Fhe);else if(ml.isBuffer(jhe))jhe.copy(zhe,Fhe);else throw new TypeError('"list" argument must be an Array of Buffers');Fhe+=jhe.length}return zhe};function tg(Ndt,mY){if(ml.isBuffer(Ndt))return Ndt.length;if(ArrayBuffer.isView(Ndt)||spt(Ndt,ArrayBuffer))return Ndt.byteLength;if(typeof Ndt!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof Ndt);const Phe=Ndt.length,Odt=arguments.length>2&&arguments[2]===!0;if(!Odt&&Phe===0)return 0;let zhe=!1;for(;;)switch(mY){case"ascii":case"latin1":case"binary":return Phe;case"utf8":case"utf-8":return Qht(Ndt).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Phe*2;case"hex":return Phe>>>1;case"base64":return Bpt(Ndt).length;default:if(zhe)return Odt?-1:Qht(Ndt).length;mY=(""+mY).toLowerCase(),zhe=!0}}ml.byteLength=tg;function rg(Ndt,mY,Phe){let Odt=!1;if((mY===void 0||mY<0)&&(mY=0),mY>this.length||((Phe===void 0||Phe>this.length)&&(Phe=this.length),Phe<=0)||(Phe>>>=0,mY>>>=0,Phe<=mY))return"";for(Ndt||(Ndt="utf8");;)switch(Ndt){case"hex":return BN(this,mY,Phe);case"utf8":case"utf-8":return G0(this,mY,Phe);case"ascii":return f_(this,mY,Phe);case"latin1":case"binary":return zN(this,mY,Phe);case"base64":return Y0(this,mY,Phe);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return iF(this,mY,Phe);default:if(Odt)throw new TypeError("Unknown encoding: "+Ndt);Ndt=(Ndt+"").toLowerCase(),Odt=!0}}ml.prototype._isBuffer=!0;function ig(Ndt,mY,Phe){const Odt=Ndt[mY];Ndt[mY]=Ndt[Phe],Ndt[Phe]=Odt}ml.prototype.swap16=function(){const mY=this.length;if(mY%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let Phe=0;Phe<mY;Phe+=2)ig(this,Phe,Phe+1);return this},ml.prototype.swap32=function(){const mY=this.length;if(mY%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let Phe=0;Phe<mY;Phe+=4)ig(this,Phe,Phe+3),ig(this,Phe+1,Phe+2);return this},ml.prototype.swap64=function(){const mY=this.length;if(mY%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let Phe=0;Phe<mY;Phe+=8)ig(this,Phe,Phe+7),ig(this,Phe+1,Phe+6),ig(this,Phe+2,Phe+5),ig(this,Phe+3,Phe+4);return this},ml.prototype.toString=function(){const mY=this.length;return mY===0?"":arguments.length===0?G0(this,0,mY):rg.apply(this,arguments)},ml.prototype.toLocaleString=ml.prototype.toString,ml.prototype.equals=function(mY){if(!ml.isBuffer(mY))throw new TypeError("Argument must be a Buffer");return this===mY?!0:ml.compare(this,mY)===0},ml.prototype.inspect=function(){let mY="";const Phe=la.INSPECT_MAX_BYTES;return mY=this.toString("hex",0,Phe).replace(/(.{2})/g,"$1 ").trim(),this.length>Phe&&(mY+=" ... "),"<Buffer "+mY+">"},ua&&(ml.prototype[ua]=ml.prototype.inspect),ml.prototype.compare=function(mY,Phe,Odt,zhe,Fhe){if(spt(mY,Uint8Array)&&(mY=ml.from(mY,mY.offset,mY.byteLength)),!ml.isBuffer(mY))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof mY);if(Phe===void 0&&(Phe=0),Odt===void 0&&(Odt=mY?mY.length:0),zhe===void 0&&(zhe=0),Fhe===void 0&&(Fhe=this.length),Phe<0||Odt>mY.length||zhe<0||Fhe>this.length)throw new RangeError("out of range index");if(zhe>=Fhe&&Phe>=Odt)return 0;if(zhe>=Fhe)return-1;if(Phe>=Odt)return 1;if(Phe>>>=0,Odt>>>=0,zhe>>>=0,Fhe>>>=0,this===mY)return 0;let jhe=Fhe-zhe,Tdt=Odt-Phe;const Idt=Math.min(jhe,Tdt),Zht=this.slice(zhe,Fhe),Rdt=mY.slice(Phe,Odt);for(let cpt=0;cpt<Idt;++cpt)if(Zht[cpt]!==Rdt[cpt]){jhe=Zht[cpt],Tdt=Rdt[cpt];break}return jhe<Tdt?-1:Tdt<jhe?1:0};function vv(Ndt,mY,Phe,Odt,zhe){if(Ndt.length===0)return-1;if(typeof Phe=="string"?(Odt=Phe,Phe=0):Phe>2147483647?Phe=2147483647:Phe<-2147483648&&(Phe=-2147483648),Phe=+Phe,_pt(Phe)&&(Phe=zhe?0:Ndt.length-1),Phe<0&&(Phe=Ndt.length+Phe),Phe>=Ndt.length){if(zhe)return-1;Phe=Ndt.length-1}else if(Phe<0)if(zhe)Phe=0;else return-1;if(typeof mY=="string"&&(mY=ml.from(mY,Odt)),ml.isBuffer(mY))return mY.length===0?-1:R1(Ndt,mY,Phe,Odt,zhe);if(typeof mY=="number")return mY=mY&255,typeof Uint8Array.prototype.indexOf=="function"?zhe?Uint8Array.prototype.indexOf.call(Ndt,mY,Phe):Uint8Array.prototype.lastIndexOf.call(Ndt,mY,Phe):R1(Ndt,[mY],Phe,Odt,zhe);throw new TypeError("val must be string, number or Buffer")}function R1(Ndt,mY,Phe,Odt,zhe){let Fhe=1,jhe=Ndt.length,Tdt=mY.length;if(Odt!==void 0&&(Odt=String(Odt).toLowerCase(),Odt==="ucs2"||Odt==="ucs-2"||Odt==="utf16le"||Odt==="utf-16le")){if(Ndt.length<2||mY.length<2)return-1;Fhe=2,jhe/=2,Tdt/=2,Phe/=2}function Idt(Rdt,cpt){return Fhe===1?Rdt[cpt]:Rdt.readUInt16BE(cpt*Fhe)}let Zht;if(zhe){let Rdt=-1;for(Zht=Phe;Zht<jhe;Zht++)if(Idt(Ndt,Zht)===Idt(mY,Rdt===-1?0:Zht-Rdt)){if(Rdt===-1&&(Rdt=Zht),Zht-Rdt+1===Tdt)return Rdt*Fhe}else Rdt!==-1&&(Zht-=Zht-Rdt),Rdt=-1}else for(Phe+Tdt>jhe&&(Phe=jhe-Tdt),Zht=Phe;Zht>=0;Zht--){let Rdt=!0;for(let cpt=0;cpt<Tdt;cpt++)if(Idt(Ndt,Zht+cpt)!==Idt(mY,cpt)){Rdt=!1;break}if(Rdt)return Zht}return-1}ml.prototype.includes=function(mY,Phe,Odt){return this.indexOf(mY,Phe,Odt)!==-1},ml.prototype.indexOf=function(mY,Phe,Odt){return vv(this,mY,Phe,Odt,!0)},ml.prototype.lastIndexOf=function(mY,Phe,Odt){return vv(this,mY,Phe,Odt,!1)};function O1(Ndt,mY,Phe,Odt){Phe=Number(Phe)||0;const zhe=Ndt.length-Phe;Odt?(Odt=Number(Odt),Odt>zhe&&(Odt=zhe)):Odt=zhe;const Fhe=mY.length;Odt>Fhe/2&&(Odt=Fhe/2);let jhe;for(jhe=0;jhe<Odt;++jhe){const Tdt=parseInt(mY.substr(jhe*2,2),16);if(_pt(Tdt))return jhe;Ndt[Phe+jhe]=Tdt}return jhe}function K0(Ndt,mY,Phe,Odt){return Apt(Qht(mY,Ndt.length-Phe),Ndt,Phe,Odt)}function J0(Ndt,mY,Phe,Odt){return Apt(kpt(mY),Ndt,Phe,Odt)}function Hw(Ndt,mY,Phe,Odt){return Apt(Bpt(mY),Ndt,Phe,Odt)}function qw(Ndt,mY,Phe,Odt){return Apt(Dpt(mY,Ndt.length-Phe),Ndt,Phe,Odt)}ml.prototype.write=function(mY,Phe,Odt,zhe){if(Phe===void 0)zhe="utf8",Odt=this.length,Phe=0;else if(Odt===void 0&&typeof Phe=="string")zhe=Phe,Odt=this.length,Phe=0;else if(isFinite(Phe))Phe=Phe>>>0,isFinite(Odt)?(Odt=Odt>>>0,zhe===void 0&&(zhe="utf8")):(zhe=Odt,Odt=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const Fhe=this.length-Phe;if((Odt===void 0||Odt>Fhe)&&(Odt=Fhe),mY.length>0&&(Odt<0||Phe<0)||Phe>this.length)throw new RangeError("Attempt to write outside buffer bounds");zhe||(zhe="utf8");let jhe=!1;for(;;)switch(zhe){case"hex":return O1(this,mY,Phe,Odt);case"utf8":case"utf-8":return K0(this,mY,Phe,Odt);case"ascii":case"latin1":case"binary":return J0(this,mY,Phe,Odt);case"base64":return Hw(this,mY,Phe,Odt);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return qw(this,mY,Phe,Odt);default:if(jhe)throw new TypeError("Unknown encoding: "+zhe);zhe=(""+zhe).toLowerCase(),jhe=!0}},ml.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Y0(Ndt,mY,Phe){return mY===0&&Phe===Ndt.length?aa.fromByteArray(Ndt):aa.fromByteArray(Ndt.slice(mY,Phe))}function G0(Ndt,mY,Phe){Phe=Math.min(Ndt.length,Phe);const Odt=[];let zhe=mY;for(;zhe<Phe;){const Fhe=Ndt[zhe];let jhe=null,Tdt=Fhe>239?4:Fhe>223?3:Fhe>191?2:1;if(zhe+Tdt<=Phe){let Idt,Zht,Rdt,cpt;switch(Tdt){case 1:Fhe<128&&(jhe=Fhe);break;case 2:Idt=Ndt[zhe+1],(Idt&192)===128&&(cpt=(Fhe&31)<<6|Idt&63,cpt>127&&(jhe=cpt));break;case 3:Idt=Ndt[zhe+1],Zht=Ndt[zhe+2],(Idt&192)===128&&(Zht&192)===128&&(cpt=(Fhe&15)<<12|(Idt&63)<<6|Zht&63,cpt>2047&&(cpt<55296||cpt>57343)&&(jhe=cpt));break;case 4:Idt=Ndt[zhe+1],Zht=Ndt[zhe+2],Rdt=Ndt[zhe+3],(Idt&192)===128&&(Zht&192)===128&&(Rdt&192)===128&&(cpt=(Fhe&15)<<18|(Idt&63)<<12|(Zht&63)<<6|Rdt&63,cpt>65535&&cpt<1114112&&(jhe=cpt))}}jhe===null?(jhe=65533,Tdt=1):jhe>65535&&(jhe-=65536,Odt.push(jhe>>>10&1023|55296),jhe=56320|jhe&1023),Odt.push(jhe),zhe+=Tdt}return d_(Odt)}const X0=4096;function d_(Ndt){const mY=Ndt.length;if(mY<=X0)return String.fromCharCode.apply(String,Ndt);let Phe="",Odt=0;for(;Odt<mY;)Phe+=String.fromCharCode.apply(String,Ndt.slice(Odt,Odt+=X0));return Phe}function f_(Ndt,mY,Phe){let Odt="";Phe=Math.min(Ndt.length,Phe);for(let zhe=mY;zhe<Phe;++zhe)Odt+=String.fromCharCode(Ndt[zhe]&127);return Odt}function zN(Ndt,mY,Phe){let Odt="";Phe=Math.min(Ndt.length,Phe);for(let zhe=mY;zhe<Phe;++zhe)Odt+=String.fromCharCode(Ndt[zhe]);return Odt}function BN(Ndt,mY,Phe){const Odt=Ndt.length;(!mY||mY<0)&&(mY=0),(!Phe||Phe<0||Phe>Odt)&&(Phe=Odt);let zhe="";for(let Fhe=mY;Fhe<Phe;++Fhe)zhe+=jpt[Ndt[Fhe]];return zhe}function iF(Ndt,mY,Phe){const Odt=Ndt.slice(mY,Phe);let zhe="";for(let Fhe=0;Fhe<Odt.length-1;Fhe+=2)zhe+=String.fromCharCode(Odt[Fhe]+Odt[Fhe+1]*256);return zhe}ml.prototype.slice=function(mY,Phe){const Odt=this.length;mY=~~mY,Phe=Phe===void 0?Odt:~~Phe,mY<0?(mY+=Odt,mY<0&&(mY=0)):mY>Odt&&(mY=Odt),Phe<0?(Phe+=Odt,Phe<0&&(Phe=0)):Phe>Odt&&(Phe=Odt),Phe<mY&&(Phe=mY);const zhe=this.subarray(mY,Phe);return Object.setPrototypeOf(zhe,ml.prototype),zhe};function yY(Ndt,mY,Phe){if(Ndt%1!==0||Ndt<0)throw new RangeError("offset is not uint");if(Ndt+mY>Phe)throw new RangeError("Trying to access beyond buffer length")}ml.prototype.readUintLE=ml.prototype.readUIntLE=function(mY,Phe,Odt){mY=mY>>>0,Phe=Phe>>>0,Odt||yY(mY,Phe,this.length);let zhe=this[mY],Fhe=1,jhe=0;for(;++jhe<Phe&&(Fhe*=256);)zhe+=this[mY+jhe]*Fhe;return zhe},ml.prototype.readUintBE=ml.prototype.readUIntBE=function(mY,Phe,Odt){mY=mY>>>0,Phe=Phe>>>0,Odt||yY(mY,Phe,this.length);let zhe=this[mY+--Phe],Fhe=1;for(;Phe>0&&(Fhe*=256);)zhe+=this[mY+--Phe]*Fhe;return zhe},ml.prototype.readUint8=ml.prototype.readUInt8=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,1,this.length),this[mY]},ml.prototype.readUint16LE=ml.prototype.readUInt16LE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,2,this.length),this[mY]|this[mY+1]<<8},ml.prototype.readUint16BE=ml.prototype.readUInt16BE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,2,this.length),this[mY]<<8|this[mY+1]},ml.prototype.readUint32LE=ml.prototype.readUInt32LE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,4,this.length),(this[mY]|this[mY+1]<<8|this[mY+2]<<16)+this[mY+3]*16777216},ml.prototype.readUint32BE=ml.prototype.readUInt32BE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,4,this.length),this[mY]*16777216+(this[mY+1]<<16|this[mY+2]<<8|this[mY+3])},ml.prototype.readBigUInt64LE=Opt(function(mY){mY=mY>>>0,dht(mY,"offset");const Phe=this[mY],Odt=this[mY+7];(Phe===void 0||Odt===void 0)&&Mdt(mY,this.length-8);const zhe=Phe+this[++mY]*2**8+this[++mY]*2**16+this[++mY]*2**24,Fhe=this[++mY]+this[++mY]*2**8+this[++mY]*2**16+Odt*2**24;return BigInt(zhe)+(BigInt(Fhe)<<BigInt(32))}),ml.prototype.readBigUInt64BE=Opt(function(mY){mY=mY>>>0,dht(mY,"offset");const Phe=this[mY],Odt=this[mY+7];(Phe===void 0||Odt===void 0)&&Mdt(mY,this.length-8);const zhe=Phe*2**24+this[++mY]*2**16+this[++mY]*2**8+this[++mY],Fhe=this[++mY]*2**24+this[++mY]*2**16+this[++mY]*2**8+Odt;return(BigInt(zhe)<<BigInt(32))+BigInt(Fhe)}),ml.prototype.readIntLE=function(mY,Phe,Odt){mY=mY>>>0,Phe=Phe>>>0,Odt||yY(mY,Phe,this.length);let zhe=this[mY],Fhe=1,jhe=0;for(;++jhe<Phe&&(Fhe*=256);)zhe+=this[mY+jhe]*Fhe;return Fhe*=128,zhe>=Fhe&&(zhe-=Math.pow(2,8*Phe)),zhe},ml.prototype.readIntBE=function(mY,Phe,Odt){mY=mY>>>0,Phe=Phe>>>0,Odt||yY(mY,Phe,this.length);let zhe=Phe,Fhe=1,jhe=this[mY+--zhe];for(;zhe>0&&(Fhe*=256);)jhe+=this[mY+--zhe]*Fhe;return Fhe*=128,jhe>=Fhe&&(jhe-=Math.pow(2,8*Phe)),jhe},ml.prototype.readInt8=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,1,this.length),this[mY]&128?(255-this[mY]+1)*-1:this[mY]},ml.prototype.readInt16LE=function(mY,Phe){mY=mY>>>0,Phe||yY(mY,2,this.length);const Odt=this[mY]|this[mY+1]<<8;return Odt&32768?Odt|4294901760:Odt},ml.prototype.readInt16BE=function(mY,Phe){mY=mY>>>0,Phe||yY(mY,2,this.length);const Odt=this[mY+1]|this[mY]<<8;return Odt&32768?Odt|4294901760:Odt},ml.prototype.readInt32LE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,4,this.length),this[mY]|this[mY+1]<<8|this[mY+2]<<16|this[mY+3]<<24},ml.prototype.readInt32BE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,4,this.length),this[mY]<<24|this[mY+1]<<16|this[mY+2]<<8|this[mY+3]},ml.prototype.readBigInt64LE=Opt(function(mY){mY=mY>>>0,dht(mY,"offset");const Phe=this[mY],Odt=this[mY+7];(Phe===void 0||Odt===void 0)&&Mdt(mY,this.length-8);const zhe=this[mY+4]+this[mY+5]*2**8+this[mY+6]*2**16+(Odt<<24);return(BigInt(zhe)<<BigInt(32))+BigInt(Phe+this[++mY]*2**8+this[++mY]*2**16+this[++mY]*2**24)}),ml.prototype.readBigInt64BE=Opt(function(mY){mY=mY>>>0,dht(mY,"offset");const Phe=this[mY],Odt=this[mY+7];(Phe===void 0||Odt===void 0)&&Mdt(mY,this.length-8);const zhe=(Phe<<24)+this[++mY]*2**16+this[++mY]*2**8+this[++mY];return(BigInt(zhe)<<BigInt(32))+BigInt(this[++mY]*2**24+this[++mY]*2**16+this[++mY]*2**8+Odt)}),ml.prototype.readFloatLE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,4,this.length),ca.read(this,mY,!0,23,4)},ml.prototype.readFloatBE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,4,this.length),ca.read(this,mY,!1,23,4)},ml.prototype.readDoubleLE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,8,this.length),ca.read(this,mY,!0,52,8)},ml.prototype.readDoubleBE=function(mY,Phe){return mY=mY>>>0,Phe||yY(mY,8,this.length),ca.read(this,mY,!1,52,8)};function vQ(Ndt,mY,Phe,Odt,zhe,Fhe){if(!ml.isBuffer(Ndt))throw new TypeError('"buffer" argument must be a Buffer instance');if(mY>zhe||mY<Fhe)throw new RangeError('"value" argument is out of bounds');if(Phe+Odt>Ndt.length)throw new RangeError("Index out of range")}ml.prototype.writeUintLE=ml.prototype.writeUIntLE=function(mY,Phe,Odt,zhe){if(mY=+mY,Phe=Phe>>>0,Odt=Odt>>>0,!zhe){const Tdt=Math.pow(2,8*Odt)-1;vQ(this,mY,Phe,Odt,Tdt,0)}let Fhe=1,jhe=0;for(this[Phe]=mY&255;++jhe<Odt&&(Fhe*=256);)this[Phe+jhe]=mY/Fhe&255;return Phe+Odt},ml.prototype.writeUintBE=ml.prototype.writeUIntBE=function(mY,Phe,Odt,zhe){if(mY=+mY,Phe=Phe>>>0,Odt=Odt>>>0,!zhe){const Tdt=Math.pow(2,8*Odt)-1;vQ(this,mY,Phe,Odt,Tdt,0)}let Fhe=Odt-1,jhe=1;for(this[Phe+Fhe]=mY&255;--Fhe>=0&&(jhe*=256);)this[Phe+Fhe]=mY/jhe&255;return Phe+Odt},ml.prototype.writeUint8=ml.prototype.writeUInt8=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,1,255,0),this[Phe]=mY&255,Phe+1},ml.prototype.writeUint16LE=ml.prototype.writeUInt16LE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,2,65535,0),this[Phe]=mY&255,this[Phe+1]=mY>>>8,Phe+2},ml.prototype.writeUint16BE=ml.prototype.writeUInt16BE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,2,65535,0),this[Phe]=mY>>>8,this[Phe+1]=mY&255,Phe+2},ml.prototype.writeUint32LE=ml.prototype.writeUInt32LE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,4,4294967295,0),this[Phe+3]=mY>>>24,this[Phe+2]=mY>>>16,this[Phe+1]=mY>>>8,this[Phe]=mY&255,Phe+4},ml.prototype.writeUint32BE=ml.prototype.writeUInt32BE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,4,4294967295,0),this[Phe]=mY>>>24,this[Phe+1]=mY>>>16,this[Phe+2]=mY>>>8,this[Phe+3]=mY&255,Phe+4};function Ohe(Ndt,mY,Phe,Odt,zhe){Bhe(mY,Odt,zhe,Ndt,Phe,7);let Fhe=Number(mY&BigInt(4294967295));Ndt[Phe++]=Fhe,Fhe=Fhe>>8,Ndt[Phe++]=Fhe,Fhe=Fhe>>8,Ndt[Phe++]=Fhe,Fhe=Fhe>>8,Ndt[Phe++]=Fhe;let jhe=Number(mY>>BigInt(32)&BigInt(4294967295));return Ndt[Phe++]=jhe,jhe=jhe>>8,Ndt[Phe++]=jhe,jhe=jhe>>8,Ndt[Phe++]=jhe,jhe=jhe>>8,Ndt[Phe++]=jhe,Phe}function bY(Ndt,mY,Phe,Odt,zhe){Bhe(mY,Odt,zhe,Ndt,Phe,7);let Fhe=Number(mY&BigInt(4294967295));Ndt[Phe+7]=Fhe,Fhe=Fhe>>8,Ndt[Phe+6]=Fhe,Fhe=Fhe>>8,Ndt[Phe+5]=Fhe,Fhe=Fhe>>8,Ndt[Phe+4]=Fhe;let jhe=Number(mY>>BigInt(32)&BigInt(4294967295));return Ndt[Phe+3]=jhe,jhe=jhe>>8,Ndt[Phe+2]=jhe,jhe=jhe>>8,Ndt[Phe+1]=jhe,jhe=jhe>>8,Ndt[Phe]=jhe,Phe+8}ml.prototype.writeBigUInt64LE=Opt(function(mY,Phe=0){return Ohe(this,mY,Phe,BigInt(0),BigInt("0xffffffffffffffff"))}),ml.prototype.writeBigUInt64BE=Opt(function(mY,Phe=0){return bY(this,mY,Phe,BigInt(0),BigInt("0xffffffffffffffff"))}),ml.prototype.writeIntLE=function(mY,Phe,Odt,zhe){if(mY=+mY,Phe=Phe>>>0,!zhe){const Idt=Math.pow(2,8*Odt-1);vQ(this,mY,Phe,Odt,Idt-1,-Idt)}let Fhe=0,jhe=1,Tdt=0;for(this[Phe]=mY&255;++Fhe<Odt&&(jhe*=256);)mY<0&&Tdt===0&&this[Phe+Fhe-1]!==0&&(Tdt=1),this[Phe+Fhe]=(mY/jhe>>0)-Tdt&255;return Phe+Odt},ml.prototype.writeIntBE=function(mY,Phe,Odt,zhe){if(mY=+mY,Phe=Phe>>>0,!zhe){const Idt=Math.pow(2,8*Odt-1);vQ(this,mY,Phe,Odt,Idt-1,-Idt)}let Fhe=Odt-1,jhe=1,Tdt=0;for(this[Phe+Fhe]=mY&255;--Fhe>=0&&(jhe*=256);)mY<0&&Tdt===0&&this[Phe+Fhe+1]!==0&&(Tdt=1),this[Phe+Fhe]=(mY/jhe>>0)-Tdt&255;return Phe+Odt},ml.prototype.writeInt8=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,1,127,-128),mY<0&&(mY=255+mY+1),this[Phe]=mY&255,Phe+1},ml.prototype.writeInt16LE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,2,32767,-32768),this[Phe]=mY&255,this[Phe+1]=mY>>>8,Phe+2},ml.prototype.writeInt16BE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,2,32767,-32768),this[Phe]=mY>>>8,this[Phe+1]=mY&255,Phe+2},ml.prototype.writeInt32LE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,4,2147483647,-2147483648),this[Phe]=mY&255,this[Phe+1]=mY>>>8,this[Phe+2]=mY>>>16,this[Phe+3]=mY>>>24,Phe+4},ml.prototype.writeInt32BE=function(mY,Phe,Odt){return mY=+mY,Phe=Phe>>>0,Odt||vQ(this,mY,Phe,4,2147483647,-2147483648),mY<0&&(mY=4294967295+mY+1),this[Phe]=mY>>>24,this[Phe+1]=mY>>>16,this[Phe+2]=mY>>>8,this[Phe+3]=mY&255,Phe+4},ml.prototype.writeBigInt64LE=Opt(function(mY,Phe=0){return Ohe(this,mY,Phe,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),ml.prototype.writeBigInt64BE=Opt(function(mY,Phe=0){return bY(this,mY,Phe,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Lhe(Ndt,mY,Phe,Odt,zhe,Fhe){if(Phe+Odt>Ndt.length)throw new RangeError("Index out of range");if(Phe<0)throw new RangeError("Index out of range")}function Dhe(Ndt,mY,Phe,Odt,zhe){return mY=+mY,Phe=Phe>>>0,zhe||Lhe(Ndt,mY,Phe,4),ca.write(Ndt,mY,Phe,Odt,23,4),Phe+4}ml.prototype.writeFloatLE=function(mY,Phe,Odt){return Dhe(this,mY,Phe,!0,Odt)},ml.prototype.writeFloatBE=function(mY,Phe,Odt){return Dhe(this,mY,Phe,!1,Odt)};function kdt(Ndt,mY,Phe,Odt,zhe){return mY=+mY,Phe=Phe>>>0,zhe||Lhe(Ndt,mY,Phe,8),ca.write(Ndt,mY,Phe,Odt,52,8),Phe+8}ml.prototype.writeDoubleLE=function(mY,Phe,Odt){return kdt(this,mY,Phe,!0,Odt)},ml.prototype.writeDoubleBE=function(mY,Phe,Odt){return kdt(this,mY,Phe,!1,Odt)},ml.prototype.copy=function(mY,Phe,Odt,zhe){if(!ml.isBuffer(mY))throw new TypeError("argument should be a Buffer");if(Odt||(Odt=0),!zhe&&zhe!==0&&(zhe=this.length),Phe>=mY.length&&(Phe=mY.length),Phe||(Phe=0),zhe>0&&zhe<Odt&&(zhe=Odt),zhe===Odt||mY.length===0||this.length===0)return 0;if(Phe<0)throw new RangeError("targetStart out of bounds");if(Odt<0||Odt>=this.length)throw new RangeError("Index out of range");if(zhe<0)throw new RangeError("sourceEnd out of bounds");zhe>this.length&&(zhe=this.length),mY.length-Phe<zhe-Odt&&(zhe=mY.length-Phe+Odt);const Fhe=zhe-Odt;return this===mY&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(Phe,Odt,zhe):Uint8Array.prototype.set.call(mY,this.subarray(Odt,zhe),Phe),Fhe},ml.prototype.fill=function(mY,Phe,Odt,zhe){if(typeof mY=="string"){if(typeof Phe=="string"?(zhe=Phe,Phe=0,Odt=this.length):typeof Odt=="string"&&(zhe=Odt,Odt=this.length),zhe!==void 0&&typeof zhe!="string")throw new TypeError("encoding must be a string");if(typeof zhe=="string"&&!ml.isEncoding(zhe))throw new TypeError("Unknown encoding: "+zhe);if(mY.length===1){const jhe=mY.charCodeAt(0);(zhe==="utf8"&&jhe<128||zhe==="latin1")&&(mY=jhe)}}else typeof mY=="number"?mY=mY&255:typeof mY=="boolean"&&(mY=Number(mY));if(Phe<0||this.length<Phe||this.length<Odt)throw new RangeError("Out of range index");if(Odt<=Phe)return this;Phe=Phe>>>0,Odt=Odt===void 0?this.length:Odt>>>0,mY||(mY=0);let Fhe;if(typeof mY=="number")for(Fhe=Phe;Fhe<Odt;++Fhe)this[Fhe]=mY;else{const jhe=ml.isBuffer(mY)?mY:ml.from(mY,zhe),Tdt=jhe.length;if(Tdt===0)throw new TypeError('The value "'+mY+'" is invalid for argument "value"');for(Fhe=0;Fhe<Odt-Phe;++Fhe)this[Fhe+Phe]=jhe[Fhe%Tdt]}return this};const eht={};function oht(Ndt,mY,Phe){eht[Ndt]=class extends Phe{constructor(){super(),Object.defineProperty(this,"message",{value:mY.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${Ndt}]`,this.stack,delete this.name}get code(){return Ndt}set code(zhe){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:zhe,writable:!0})}toString(){return`${this.name} [${Ndt}]: ${this.message}`}}}oht("ERR_BUFFER_OUT_OF_BOUNDS",function(Ndt){return Ndt?`${Ndt} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),oht("ERR_INVALID_ARG_TYPE",function(Ndt,mY){return`The "${Ndt}" argument must be of type number. Received type ${typeof mY}`},TypeError),oht("ERR_OUT_OF_RANGE",function(Ndt,mY,Phe){let Odt=`The value of "${Ndt}" is out of range.`,zhe=Phe;return Number.isInteger(Phe)&&Math.abs(Phe)>2**32?zhe=iht(String(Phe)):typeof Phe=="bigint"&&(zhe=String(Phe),(Phe>BigInt(2)**BigInt(32)||Phe<-(BigInt(2)**BigInt(32)))&&(zhe=iht(zhe)),zhe+="n"),Odt+=` It must be ${mY}. Received ${zhe}`,Odt},RangeError);function iht(Ndt){let mY="",Phe=Ndt.length;const Odt=Ndt[0]==="-"?1:0;for(;Phe>=Odt+4;Phe-=3)mY=`_${Ndt.slice(Phe-3,Phe)}${mY}`;return`${Ndt.slice(0,Phe)}${mY}`}function Uhe(Ndt,mY,Phe){dht(mY,"offset"),(Ndt[mY]===void 0||Ndt[mY+Phe]===void 0)&&Mdt(mY,Ndt.length-(Phe+1))}function Bhe(Ndt,mY,Phe,Odt,zhe,Fhe){if(Ndt>Phe||Ndt<mY){const jhe=typeof mY=="bigint"?"n":"";let Tdt;throw mY===0||mY===BigInt(0)?Tdt=`>= 0${jhe} and < 2${jhe} ** ${(Fhe+1)*8}${jhe}`:Tdt=`>= -(2${jhe} ** ${(Fhe+1)*8-1}${jhe}) and < 2 ** ${(Fhe+1)*8-1}${jhe}`,new eht.ERR_OUT_OF_RANGE("value",Tdt,Ndt)}Uhe(Odt,zhe,Fhe)}function dht(Ndt,mY){if(typeof Ndt!="number")throw new eht.ERR_INVALID_ARG_TYPE(mY,"number",Ndt)}function Mdt(Ndt,mY,Phe){throw Math.floor(Ndt)!==Ndt?(dht(Ndt,Phe),new eht.ERR_OUT_OF_RANGE("offset","an integer",Ndt)):mY<0?new eht.ERR_BUFFER_OUT_OF_BOUNDS:new eht.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${mY}`,Ndt)}const opt=/[^+/0-9A-Za-z-_]/g;function gpt(Ndt){if(Ndt=Ndt.split("=")[0],Ndt=Ndt.trim().replace(opt,""),Ndt.length<2)return"";for(;Ndt.length%4!==0;)Ndt=Ndt+"=";return Ndt}function Qht(Ndt,mY){mY=mY||1/0;let Phe;const Odt=Ndt.length;let zhe=null;const Fhe=[];for(let jhe=0;jhe<Odt;++jhe){if(Phe=Ndt.charCodeAt(jhe),Phe>55295&&Phe<57344){if(!zhe){if(Phe>56319){(mY-=3)>-1&&Fhe.push(239,191,189);continue}else if(jhe+1===Odt){(mY-=3)>-1&&Fhe.push(239,191,189);continue}zhe=Phe;continue}if(Phe<56320){(mY-=3)>-1&&Fhe.push(239,191,189),zhe=Phe;continue}Phe=(zhe-55296<<10|Phe-56320)+65536}else zhe&&(mY-=3)>-1&&Fhe.push(239,191,189);if(zhe=null,Phe<128){if((mY-=1)<0)break;Fhe.push(Phe)}else if(Phe<2048){if((mY-=2)<0)break;Fhe.push(Phe>>6|192,Phe&63|128)}else if(Phe<65536){if((mY-=3)<0)break;Fhe.push(Phe>>12|224,Phe>>6&63|128,Phe&63|128)}else if(Phe<1114112){if((mY-=4)<0)break;Fhe.push(Phe>>18|240,Phe>>12&63|128,Phe>>6&63|128,Phe&63|128)}else throw new Error("Invalid code point")}return Fhe}function kpt(Ndt){const mY=[];for(let Phe=0;Phe<Ndt.length;++Phe)mY.push(Ndt.charCodeAt(Phe)&255);return mY}function Dpt(Ndt,mY){let Phe,Odt,zhe;const Fhe=[];for(let jhe=0;jhe<Ndt.length&&!((mY-=2)<0);++jhe)Phe=Ndt.charCodeAt(jhe),Odt=Phe>>8,zhe=Phe%256,Fhe.push(zhe),Fhe.push(Odt);return Fhe}function Bpt(Ndt){return aa.toByteArray(gpt(Ndt))}function Apt(Ndt,mY,Phe,Odt){let zhe;for(zhe=0;zhe<Odt&&!(zhe+Phe>=mY.length||zhe>=Ndt.length);++zhe)mY[zhe+Phe]=Ndt[zhe];return zhe}function spt(Ndt,mY){return Ndt instanceof mY||Ndt!=null&&Ndt.constructor!=null&&Ndt.constructor.name!=null&&Ndt.constructor.name===mY.name}function _pt(Ndt){return Ndt!==Ndt}const jpt=(function(){const Ndt="0123456789abcdef",mY=new Array(256);for(let Phe=0;Phe<16;++Phe){const Odt=Phe*16;for(let zhe=0;zhe<16;++zhe)mY[Odt+zhe]=Ndt[Phe]+Ndt[zhe]}return mY})();function Opt(Ndt){return typeof BigInt>"u"?zpt:Ndt}function zpt(){throw new Error("BigInt not supported")}})(buffer)),buffer}var safeBuffer={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */var hasRequiredSafeBuffer;function requireSafeBuffer(){return hasRequiredSafeBuffer||(hasRequiredSafeBuffer=1,(function(la,aa){var ca=requireBuffer(),ua=ca.Buffer;function Sa(pl,ml){for(var gl in pl)ml[gl]=pl[gl]}ua.from&&ua.alloc&&ua.allocUnsafe&&ua.allocUnsafeSlow?la.exports=ca:(Sa(ca,aa),aa.Buffer=hl);function hl(pl,ml,gl){return ua(pl,ml,gl)}hl.prototype=Object.create(ua.prototype),Sa(ua,hl),hl.from=function(pl,ml,gl){if(typeof pl=="number")throw new TypeError("Argument must not be a number");return ua(pl,ml,gl)},hl.alloc=function(pl,ml,gl){if(typeof pl!="number")throw new TypeError("Argument must be a number");var wc=ua(pl);return ml!==void 0?typeof gl=="string"?wc.fill(ml,gl):wc.fill(ml):wc.fill(0),wc},hl.allocUnsafe=function(pl){if(typeof pl!="number")throw new TypeError("Argument must be a number");return ua(pl)},hl.allocUnsafeSlow=function(pl){if(typeof pl!="number")throw new TypeError("Argument must be a number");return ca.SlowBuffer(pl)}})(safeBuffer,safeBuffer.exports)),safeBuffer.exports}var define_process_env_default$8={};let DailyRotateFile$1,winston$1;isNodeEnv$1&&(await __vitePreload(()=>import("./index-CwdZpuEI.js").then(la=>la.i),__vite__mapDeps([0,1,2,3,4,5])).then(la=>{DailyRotateFile$1=la.default}),await __vitePreload(()=>import("./winston-BZRY9u-T.js").then(la=>la.w),__vite__mapDeps([6,1,2,3,4,5])).then(la=>{winston$1=la.default}));let logger$3;function getLogLevel$1(){var la;return isNodeEnv$1&&define_process_env_default$8&&define_process_env_default$8.DEBUG?"debug":((la=AppConfig?.logging)===null||la===void 0?void 0:la.level)||"info"}function initializeLogger$1(){const la=getLogLevel$1();if(isNodeEnv$1){const aa=new DailyRotateFile$1({level:la,filename:"logs/app-%DATE%.log",datePattern:"YYYY-MM-DD",maxSize:"20m",maxFiles:"7d"});logger$3=winston$1.createLogger({level:la,format:winston$1.format.combine(winston$1.format.timestamp(),winston$1.format.printf(({timestamp:ca,level:ua,message:Sa})=>`[${ca}] ${ua}: ${Sa}`)),transports:[aa]})}else{let aa=function(ca){return ua=>{console.log(`${ca}: ${ua}`)}};logger$3={debug:aa("DEBUG"),info:aa("INFO"),warn:aa("WARN"),error:aa("ERROR")}}}initializeLogger$1();const PlannerInstructions$1=`Agentlang is a very-high-level declarative language that makes it easy to define business applications as 'models'.
|
|
8106
8106
|
The model of a business application consists of entity definitions and workflows defined in "modules".
|
|
8107
8107
|
A module is be encoded in a syntax inspired by JavaScript and JSON. Example of a simple module follows:
|
|
8108
8108
|
|
|
@@ -16174,7 +16174,7 @@ workflow TempEvent { ${la} }`);if(isWorkflowDefinition(ca.defs[0]))aa=ca.defs[0]
|
|
|
16174
16174
|
`));const ua=((ca=la.diagnostics)!==null&&ca!==void 0?ca:[]).filter(pl=>pl.severity===1),Sa=new Set,hl=new Set;if(ua.length>0){for(const pl of ua)if(!Sa.has(pl.range.start.line)&&!hl.has(pl.range.start.character)){const ml=la.textDocument.getText(pl.range),gl=`(${pl.range.start.line+1}:${pl.range.start.character+1}) unexpected token(s) '${ml}'`,wc=aa[pl.range.start.line];wc.indexOf(ErrorIndicator)>0?aa[pl.range.start.line]=`${wc}, ${gl}`:aa[pl.range.start.line]=`${wc} ${ErrorIndicator} ${gl}`,Sa.add(pl.range.start.line),hl.add(pl.range.start.character)}return trimErrorLines(aa)}else return}function trimErrorLines(la){let aa=0;for(let ua=0;ua<la.length;++ua)if(la[ua].indexOf(ErrorIndicator)>0){aa=ua;break}let ca=aa;for(let ua=aa+1;ua<la.length;++ua)if(la[ua].indexOf(ErrorIndicator)>0){ca=ua;break}return aa>0&&--aa,ca!=la.length&&++ca,la.slice(aa,ca)}function trimErrorMessage(la){if(la.indexOf("Expecting:")>=0){const aa=la.indexOf("but found:");if(aa>0)return`Expecting a valid token sequence, ${la.substring(aa)}`}return la}function maybeRaiseParserErrors(la){const aa=la.textDocument.getText().split(`
|
|
16175
16175
|
`);let ca=!1;const ua=new Set;la.parseResult.lexerErrors.length>0&&(la.parseResult.lexerErrors.forEach(hl=>{if(!ua.has(hl.line)){const pl=trimErrorMessage(hl.message),ml=`${ErrorIndicator} (${hl.line}:${hl.column}) ${pl}`;aa[hl.line-1]=`${aa[hl.line-1]} ${ml}`,ua.add(hl.line)}}),ca=!0),la.parseResult.parserErrors.length>0&&(la.parseResult.parserErrors.forEach(hl=>{const pl=trimErrorMessage(hl.message);if(hl.token.startLine&&hl.token.endLine){if(!ua.has(hl.token.startLine)){const ml=`${ErrorIndicator} (${hl.token.startLine}:${hl.token.startColumn}) ${pl}`;aa[hl.token.endLine-1]=`${aa[hl.token.endLine-1]} ${ml}`,aa.join(`
|
|
16176
16176
|
`),ua.add(hl.token.startLine)}}else aa.push(`ERROR: ${pl}`)}),ca=!0);const Sa=maybeGetValidationErrors(la,aa);if(ca||Sa!==void 0)throw new Error(aa.join(`
|
|
16177
|
-
`))}async function introspect(la){let aa=[];const ca=await parse$2$1(`module Temp workflow Test {${la}}`);if(maybeRaiseParserErrors(ca),isWorkflowDefinition(ca.parseResult.value.defs[0]))aa=introspectHelper(ca.parseResult.value.defs[0].statements);else throw new Error("Failed to parse statements");return aa}function introspectHelper(la){const aa=[];return la.forEach(ca=>{aa.push(introspectStatement(ca))}),aa}function introspectStatement(la){const aa=introspectPattern(la.pattern),ca=firstAliasSpec(la);ca&&(ca.alias?aa.setAlias(ca.alias):ca.aliases.length>0&&aa.setAliases(ca.aliases));const ua=firstCatchSpec(la);return ua&&ua.handlers.forEach(Sa=>{aa.addHandler(Sa.except,introspectStatement(Sa.stmt))}),aa}function introspectPattern(la){let aa;if(la.crudMap?(isQueryPattern(la)?aa=introspectQueryPattern(la.crudMap):aa=introspectCreatePattern(la.crudMap),la.crudMap.into&&(aa=introspectInto(la.crudMap.into,aa))):la.expr?aa=introspectExpression(la.expr):la.forEach?aa=introspectForEach(la.forEach):la.if?aa=introspectIf(la.if):la.delete?aa=introspectDelete(la.delete):la.return?aa=introspectReturn(la.return):la.fullTextSearch&&(aa=introspectFullTextSearch(la.fullTextSearch)),aa)return aa;throw new Error(`Failed to introspect pattern: ${la}`)}function introspectInto(la,aa){return la.entries.forEach(ca=>{ca.attribute&&aa.addInto(ca.alias,ca.attribute)}),aa}function isQueryPattern(la){if(la.crudMap){const aa=la.crudMap,ca=aa.name.endsWith(QuerySuffix);return!ca&&aa.body?aa.body.attributes.length>0&&aa.body.attributes.every(ua=>ua.name.endsWith(QuerySuffix)):ca}return!1}function introspectGroup(la){return new GroupExpressionPattern(introspectExpression(la.ge))}function introspectNegExpr(la){return new NegExpressionPattern(introspectExpression(la.ne))}function introspectNotExpr(la){return new NotExpressionPattern(introspectExpression(la.ne))}function introspectPrimExpr(la){if(isLiteral(la))return introspectLiteral(la);if(isGroup(la))return introspectGroup(la);if(isNegExpr(la))return introspectNegExpr(la);if(isNotExpr(la))return introspectNotExpr(la);throw new Error(`Not a PrimExpr - ${la}`)}function introspectExpression(la){if(la!==void 0){if(isPrimExpr(la))return introspectPrimExpr(la);if(la.$cstNode)return new ExpressionPattern(la.$cstNode.text)}throw new Error("Failed to introspect expression - "+la)}function introspectQueryPattern(la){var aa;if(la){const ca=new CrudPattern(la.name);return(aa=la.body)===null||aa===void 0||aa.attributes.forEach(ua=>{ca.addAttribute(ua.name,introspectExpression(ua.value),ua.op)}),la.relationships.forEach(ua=>{ca.addRelationship(ua.name,introspectPattern(ua.pattern))}),ca.isCreate=!1,ca.isQueryUpdate=!1,ca.isQuery=!0,ca}throw new Error(`Failed to introspect query-pattern: ${la}`)}function introspectCreatePattern(la){var aa;if(la){const ca=new CrudPattern(la.name);ca.isCreate=!1,ca.isQuery=!1;let ua=!1;return(aa=la.body)===null||aa===void 0||aa.attributes.forEach(Sa=>{!ua&&Sa.name.endsWith(QuerySuffix)&&(ua=!0),ca.addAttribute(Sa.name,introspectExpression(Sa.value),Sa.op)}),la.relationships.forEach(Sa=>{ca.addRelationship(Sa.name,introspectPattern(Sa.pattern))}),ca.isQueryUpdate=ua,ua?(ca.isCreate=!1,ca.isQuery=!1):(ca.isCreate=!0,ca.isQuery=!1),ca}throw new Error(`Failed to introspect create-pattern: ${la}`)}function asFnCallPattern(la){return new FunctionCallPattern(la.name,la.args.map(aa=>isExpr(aa)?introspectExpression(aa):introspectLiteral(aa)))}function introspectLiteral(la){if(la.id)return LiteralPattern.Id(la.id);if(la.num)return LiteralPattern.Number(la.num);if(la.ref)return LiteralPattern.Reference(la.ref);if(la.str!==void 0)return LiteralPattern.String(la.str);if(la.bool)return LiteralPattern.Boolean(la.bool=="true");if(la.fnCall)return asFnCallPattern(la.fnCall);if(la.asyncFnCall)return asFnCallPattern(la.asyncFnCall.fnCall).asAsync();if(la.array)return LiteralPattern.Array(la.array.vals.map(aa=>introspectStatement(aa)));if(la.map)return introspectMapLiteral(la.map);throw new Error(`Invalid literal - ${la}`)}function introspectMapLiteral(la){const aa=new Map;return la.entries.forEach(ca=>{aa.set(ca.key,introspectExpression(ca.value))}),LiteralPattern.Map(aa)}function introspectForEach(la){const aa=new ForEachPattern(la.var,introspectPattern(la.src));return la.statements.forEach(ca=>{aa.addPattern(introspectStatement(ca))}),aa}function introspectIf(la){const aa=new IfPattern(introspectExpression(la.cond));return la.statements.forEach(ca=>{aa.addPattern(introspectStatement(ca))}),la.else&&aa.setElse(la.else.statements.map(ca=>introspectStatement(ca))),aa}function introspectDelete(la){return new DeletePattern(introspectPattern(la.pattern))}function introspectReturn(la){return new ReturnPattern(introspectPattern(la.pattern))}function introspectFullTextSearch(la){let aa;return la.options&&(aa=introspectMapLiteral(la.options)),new FullTextSearchPattern(la.name,introspectLiteral(la.query),aa)}var util$1$1;(function(la){la.assertEqual=Sa=>{};function aa(Sa){}la.assertIs=aa;function ca(Sa){throw new Error}la.assertNever=ca,la.arrayToEnum=Sa=>{const hl={};for(const pl of Sa)hl[pl]=pl;return hl},la.getValidEnumValues=Sa=>{const hl=la.objectKeys(Sa).filter(ml=>typeof Sa[Sa[ml]]!="number"),pl={};for(const ml of hl)pl[ml]=Sa[ml];return la.objectValues(pl)},la.objectValues=Sa=>la.objectKeys(Sa).map(function(hl){return Sa[hl]}),la.objectKeys=typeof Object.keys=="function"?Sa=>Object.keys(Sa):Sa=>{const hl=[];for(const pl in Sa)Object.prototype.hasOwnProperty.call(Sa,pl)&&hl.push(pl);return hl},la.find=(Sa,hl)=>{for(const pl of Sa)if(hl(pl))return pl},la.isInteger=typeof Number.isInteger=="function"?Sa=>Number.isInteger(Sa):Sa=>typeof Sa=="number"&&Number.isFinite(Sa)&&Math.floor(Sa)===Sa;function ua(Sa,hl=" | "){return Sa.map(pl=>typeof pl=="string"?`'${pl}'`:pl).join(hl)}la.joinValues=ua,la.jsonStringifyReplacer=(Sa,hl)=>typeof hl=="bigint"?hl.toString():hl})(util$1$1||(util$1$1={}));var objectUtil;(function(la){la.mergeShapes=(aa,ca)=>({...aa,...ca})})(objectUtil||(objectUtil={}));const ZodParsedType=util$1$1.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),getParsedType=la=>{switch(typeof la){case"undefined":return ZodParsedType.undefined;case"string":return ZodParsedType.string;case"number":return Number.isNaN(la)?ZodParsedType.nan:ZodParsedType.number;case"boolean":return ZodParsedType.boolean;case"function":return ZodParsedType.function;case"bigint":return ZodParsedType.bigint;case"symbol":return ZodParsedType.symbol;case"object":return Array.isArray(la)?ZodParsedType.array:la===null?ZodParsedType.null:la.then&&typeof la.then=="function"&&la.catch&&typeof la.catch=="function"?ZodParsedType.promise:typeof Map<"u"&&la instanceof Map?ZodParsedType.map:typeof Set<"u"&&la instanceof Set?ZodParsedType.set:typeof Date<"u"&&la instanceof Date?ZodParsedType.date:ZodParsedType.object;default:return ZodParsedType.unknown}},ZodIssueCode=util$1$1.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class ZodError extends Error{get errors(){return this.issues}constructor(aa){super(),this.issues=[],this.addIssue=ua=>{this.issues=[...this.issues,ua]},this.addIssues=(ua=[])=>{this.issues=[...this.issues,...ua]};const ca=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,ca):this.__proto__=ca,this.name="ZodError",this.issues=aa}format(aa){const ca=aa||function(hl){return hl.message},ua={_errors:[]},Sa=hl=>{for(const pl of hl.issues)if(pl.code==="invalid_union")pl.unionErrors.map(Sa);else if(pl.code==="invalid_return_type")Sa(pl.returnTypeError);else if(pl.code==="invalid_arguments")Sa(pl.argumentsError);else if(pl.path.length===0)ua._errors.push(ca(pl));else{let ml=ua,gl=0;for(;gl<pl.path.length;){const wc=pl.path[gl];gl===pl.path.length-1?(ml[wc]=ml[wc]||{_errors:[]},ml[wc]._errors.push(ca(pl))):ml[wc]=ml[wc]||{_errors:[]},ml=ml[wc],gl++}}};return Sa(this),ua}static assert(aa){if(!(aa instanceof ZodError))throw new Error(`Not a ZodError: ${aa}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,util$1$1.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(aa=ca=>ca.message){const ca={},ua=[];for(const Sa of this.issues)if(Sa.path.length>0){const hl=Sa.path[0];ca[hl]=ca[hl]||[],ca[hl].push(aa(Sa))}else ua.push(aa(Sa));return{formErrors:ua,fieldErrors:ca}}get formErrors(){return this.flatten()}}ZodError.create=la=>new ZodError(la);const errorMap=(la,aa)=>{let ca;switch(la.code){case ZodIssueCode.invalid_type:la.received===ZodParsedType.undefined?ca="Required":ca=`Expected ${la.expected}, received ${la.received}`;break;case ZodIssueCode.invalid_literal:ca=`Invalid literal value, expected ${JSON.stringify(la.expected,util$1$1.jsonStringifyReplacer)}`;break;case ZodIssueCode.unrecognized_keys:ca=`Unrecognized key(s) in object: ${util$1$1.joinValues(la.keys,", ")}`;break;case ZodIssueCode.invalid_union:ca="Invalid input";break;case ZodIssueCode.invalid_union_discriminator:ca=`Invalid discriminator value. Expected ${util$1$1.joinValues(la.options)}`;break;case ZodIssueCode.invalid_enum_value:ca=`Invalid enum value. Expected ${util$1$1.joinValues(la.options)}, received '${la.received}'`;break;case ZodIssueCode.invalid_arguments:ca="Invalid function arguments";break;case ZodIssueCode.invalid_return_type:ca="Invalid function return type";break;case ZodIssueCode.invalid_date:ca="Invalid date";break;case ZodIssueCode.invalid_string:typeof la.validation=="object"?"includes"in la.validation?(ca=`Invalid input: must include "${la.validation.includes}"`,typeof la.validation.position=="number"&&(ca=`${ca} at one or more positions greater than or equal to ${la.validation.position}`)):"startsWith"in la.validation?ca=`Invalid input: must start with "${la.validation.startsWith}"`:"endsWith"in la.validation?ca=`Invalid input: must end with "${la.validation.endsWith}"`:util$1$1.assertNever(la.validation):la.validation!=="regex"?ca=`Invalid ${la.validation}`:ca="Invalid";break;case ZodIssueCode.too_small:la.type==="array"?ca=`Array must contain ${la.exact?"exactly":la.inclusive?"at least":"more than"} ${la.minimum} element(s)`:la.type==="string"?ca=`String must contain ${la.exact?"exactly":la.inclusive?"at least":"over"} ${la.minimum} character(s)`:la.type==="number"?ca=`Number must be ${la.exact?"exactly equal to ":la.inclusive?"greater than or equal to ":"greater than "}${la.minimum}`:la.type==="bigint"?ca=`Number must be ${la.exact?"exactly equal to ":la.inclusive?"greater than or equal to ":"greater than "}${la.minimum}`:la.type==="date"?ca=`Date must be ${la.exact?"exactly equal to ":la.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(la.minimum))}`:ca="Invalid input";break;case ZodIssueCode.too_big:la.type==="array"?ca=`Array must contain ${la.exact?"exactly":la.inclusive?"at most":"less than"} ${la.maximum} element(s)`:la.type==="string"?ca=`String must contain ${la.exact?"exactly":la.inclusive?"at most":"under"} ${la.maximum} character(s)`:la.type==="number"?ca=`Number must be ${la.exact?"exactly":la.inclusive?"less than or equal to":"less than"} ${la.maximum}`:la.type==="bigint"?ca=`BigInt must be ${la.exact?"exactly":la.inclusive?"less than or equal to":"less than"} ${la.maximum}`:la.type==="date"?ca=`Date must be ${la.exact?"exactly":la.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(la.maximum))}`:ca="Invalid input";break;case ZodIssueCode.custom:ca="Invalid input";break;case ZodIssueCode.invalid_intersection_types:ca="Intersection results could not be merged";break;case ZodIssueCode.not_multiple_of:ca=`Number must be a multiple of ${la.multipleOf}`;break;case ZodIssueCode.not_finite:ca="Number must be finite";break;default:ca=aa.defaultError,util$1$1.assertNever(la)}return{message:ca}};let overrideErrorMap=errorMap;function getErrorMap(){return overrideErrorMap}const makeIssue=la=>{const{data:aa,path:ca,errorMaps:ua,issueData:Sa}=la,hl=[...ca,...Sa.path||[]],pl={...Sa,path:hl};if(Sa.message!==void 0)return{...Sa,path:hl,message:Sa.message};let ml="";const gl=ua.filter(wc=>!!wc).slice().reverse();for(const wc of gl)ml=wc(pl,{data:aa,defaultError:ml}).message;return{...Sa,path:hl,message:ml}};function addIssueToContext(la,aa){const ca=getErrorMap(),ua=makeIssue({issueData:aa,data:la.data,path:la.path,errorMaps:[la.common.contextualErrorMap,la.schemaErrorMap,ca,ca===errorMap?void 0:errorMap].filter(Sa=>!!Sa)});la.common.issues.push(ua)}class ParseStatus{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(aa,ca){const ua=[];for(const Sa of ca){if(Sa.status==="aborted")return INVALID;Sa.status==="dirty"&&aa.dirty(),ua.push(Sa.value)}return{status:aa.value,value:ua}}static async mergeObjectAsync(aa,ca){const ua=[];for(const Sa of ca){const hl=await Sa.key,pl=await Sa.value;ua.push({key:hl,value:pl})}return ParseStatus.mergeObjectSync(aa,ua)}static mergeObjectSync(aa,ca){const ua={};for(const Sa of ca){const{key:hl,value:pl}=Sa;if(hl.status==="aborted"||pl.status==="aborted")return INVALID;hl.status==="dirty"&&aa.dirty(),pl.status==="dirty"&&aa.dirty(),hl.value!=="__proto__"&&(typeof pl.value<"u"||Sa.alwaysSet)&&(ua[hl.value]=pl.value)}return{status:aa.value,value:ua}}}const INVALID=Object.freeze({status:"aborted"}),DIRTY=la=>({status:"dirty",value:la}),OK=la=>({status:"valid",value:la}),isAborted=la=>la.status==="aborted",isDirty=la=>la.status==="dirty",isValid=la=>la.status==="valid",isAsync=la=>typeof Promise<"u"&&la instanceof Promise;var errorUtil;(function(la){la.errToObj=aa=>typeof aa=="string"?{message:aa}:aa||{},la.toString=aa=>typeof aa=="string"?aa:aa?.message})(errorUtil||(errorUtil={}));class ParseInputLazyPath{constructor(aa,ca,ua,Sa){this._cachedPath=[],this.parent=aa,this.data=ca,this._path=ua,this._key=Sa}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const handleResult=(la,aa)=>{if(isValid(aa))return{success:!0,data:aa.value};if(!la.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const ca=new ZodError(la.common.issues);return this._error=ca,this._error}}};function processCreateParams(la){if(!la)return{};const{errorMap:aa,invalid_type_error:ca,required_error:ua,description:Sa}=la;if(aa&&(ca||ua))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return aa?{errorMap:aa,description:Sa}:{errorMap:(hl,pl)=>{const{message:ml}=la;return hl.code==="invalid_enum_value"?{message:ml??pl.defaultError}:typeof pl.data>"u"?{message:ml??ua??pl.defaultError}:hl.code!=="invalid_type"?{message:pl.defaultError}:{message:ml??ca??pl.defaultError}},description:Sa}}class ZodType{get description(){return this._def.description}_getType(aa){return getParsedType(aa.data)}_getOrReturnCtx(aa,ca){return ca||{common:aa.parent.common,data:aa.data,parsedType:getParsedType(aa.data),schemaErrorMap:this._def.errorMap,path:aa.path,parent:aa.parent}}_processInputParams(aa){return{status:new ParseStatus,ctx:{common:aa.parent.common,data:aa.data,parsedType:getParsedType(aa.data),schemaErrorMap:this._def.errorMap,path:aa.path,parent:aa.parent}}}_parseSync(aa){const ca=this._parse(aa);if(isAsync(ca))throw new Error("Synchronous parse encountered promise.");return ca}_parseAsync(aa){const ca=this._parse(aa);return Promise.resolve(ca)}parse(aa,ca){const ua=this.safeParse(aa,ca);if(ua.success)return ua.data;throw ua.error}safeParse(aa,ca){const ua={common:{issues:[],async:ca?.async??!1,contextualErrorMap:ca?.errorMap},path:ca?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:aa,parsedType:getParsedType(aa)},Sa=this._parseSync({data:aa,path:ua.path,parent:ua});return handleResult(ua,Sa)}"~validate"(aa){const ca={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:aa,parsedType:getParsedType(aa)};if(!this["~standard"].async)try{const ua=this._parseSync({data:aa,path:[],parent:ca});return isValid(ua)?{value:ua.value}:{issues:ca.common.issues}}catch(ua){ua?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),ca.common={issues:[],async:!0}}return this._parseAsync({data:aa,path:[],parent:ca}).then(ua=>isValid(ua)?{value:ua.value}:{issues:ca.common.issues})}async parseAsync(aa,ca){const ua=await this.safeParseAsync(aa,ca);if(ua.success)return ua.data;throw ua.error}async safeParseAsync(aa,ca){const ua={common:{issues:[],contextualErrorMap:ca?.errorMap,async:!0},path:ca?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:aa,parsedType:getParsedType(aa)},Sa=this._parse({data:aa,path:ua.path,parent:ua}),hl=await(isAsync(Sa)?Sa:Promise.resolve(Sa));return handleResult(ua,hl)}refine(aa,ca){const ua=Sa=>typeof ca=="string"||typeof ca>"u"?{message:ca}:typeof ca=="function"?ca(Sa):ca;return this._refinement((Sa,hl)=>{const pl=aa(Sa),ml=()=>hl.addIssue({code:ZodIssueCode.custom,...ua(Sa)});return typeof Promise<"u"&&pl instanceof Promise?pl.then(gl=>gl?!0:(ml(),!1)):pl?!0:(ml(),!1)})}refinement(aa,ca){return this._refinement((ua,Sa)=>aa(ua)?!0:(Sa.addIssue(typeof ca=="function"?ca(ua,Sa):ca),!1))}_refinement(aa){return new ZodEffects({schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"refinement",refinement:aa}})}superRefine(aa){return this._refinement(aa)}constructor(aa){this.spa=this.safeParseAsync,this._def=aa,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:ca=>this["~validate"](ca)}}optional(){return ZodOptional.create(this,this._def)}nullable(){return ZodNullable.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ZodArray.create(this)}promise(){return ZodPromise.create(this,this._def)}or(aa){return ZodUnion.create([this,aa],this._def)}and(aa){return ZodIntersection.create(this,aa,this._def)}transform(aa){return new ZodEffects({...processCreateParams(this._def),schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"transform",transform:aa}})}default(aa){const ca=typeof aa=="function"?aa:()=>aa;return new ZodDefault({...processCreateParams(this._def),innerType:this,defaultValue:ca,typeName:ZodFirstPartyTypeKind.ZodDefault})}brand(){return new ZodBranded({typeName:ZodFirstPartyTypeKind.ZodBranded,type:this,...processCreateParams(this._def)})}catch(aa){const ca=typeof aa=="function"?aa:()=>aa;return new ZodCatch({...processCreateParams(this._def),innerType:this,catchValue:ca,typeName:ZodFirstPartyTypeKind.ZodCatch})}describe(aa){const ca=this.constructor;return new ca({...this._def,description:aa})}pipe(aa){return ZodPipeline.create(this,aa)}readonly(){return ZodReadonly.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const cuidRegex=/^c[^\s-]{8,}$/i,cuid2Regex=/^[0-9a-z]+$/,ulidRegex=/^[0-9A-HJKMNP-TV-Z]{26}$/i,uuidRegex=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,nanoidRegex=/^[a-z0-9_-]{21}$/i,jwtRegex=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,durationRegex=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,emailRegex=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,_emojiRegex="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let emojiRegex$2;const ipv4Regex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4CidrRegex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6Regex=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,ipv6CidrRegex=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64Regex=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64urlRegex=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,dateRegexSource="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",dateRegex=new RegExp(`^${dateRegexSource}$`);function timeRegexSource(la){let aa="[0-5]\\d";la.precision?aa=`${aa}\\.\\d{${la.precision}}`:la.precision==null&&(aa=`${aa}(\\.\\d+)?`);const ca=la.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${aa})${ca}`}function timeRegex(la){return new RegExp(`^${timeRegexSource(la)}$`)}function datetimeRegex(la){let aa=`${dateRegexSource}T${timeRegexSource(la)}`;const ca=[];return ca.push(la.local?"Z?":"Z"),la.offset&&ca.push("([+-]\\d{2}:?\\d{2})"),aa=`${aa}(${ca.join("|")})`,new RegExp(`^${aa}$`)}function isValidIP(la,aa){return!!((aa==="v4"||!aa)&&ipv4Regex.test(la)||(aa==="v6"||!aa)&&ipv6Regex.test(la))}function isValidJWT(la,aa){if(!jwtRegex.test(la))return!1;try{const[ca]=la.split(".");if(!ca)return!1;const ua=ca.replace(/-/g,"+").replace(/_/g,"/").padEnd(ca.length+(4-ca.length%4)%4,"="),Sa=JSON.parse(atob(ua));return!(typeof Sa!="object"||Sa===null||"typ"in Sa&&Sa?.typ!=="JWT"||!Sa.alg||aa&&Sa.alg!==aa)}catch{return!1}}function isValidCidr(la,aa){return!!((aa==="v4"||!aa)&&ipv4CidrRegex.test(la)||(aa==="v6"||!aa)&&ipv6CidrRegex.test(la))}class ZodString extends ZodType{_parse(aa){if(this._def.coerce&&(aa.data=String(aa.data)),this._getType(aa)!==ZodParsedType.string){const Sa=this._getOrReturnCtx(aa);return addIssueToContext(Sa,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.string,received:Sa.parsedType}),INVALID}const ca=new ParseStatus;let ua;for(const Sa of this._def.checks)if(Sa.kind==="min")aa.data.length<Sa.value&&(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.too_small,minimum:Sa.value,type:"string",inclusive:!0,exact:!1,message:Sa.message}),ca.dirty());else if(Sa.kind==="max")aa.data.length>Sa.value&&(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.too_big,maximum:Sa.value,type:"string",inclusive:!0,exact:!1,message:Sa.message}),ca.dirty());else if(Sa.kind==="length"){const hl=aa.data.length>Sa.value,pl=aa.data.length<Sa.value;(hl||pl)&&(ua=this._getOrReturnCtx(aa,ua),hl?addIssueToContext(ua,{code:ZodIssueCode.too_big,maximum:Sa.value,type:"string",inclusive:!0,exact:!0,message:Sa.message}):pl&&addIssueToContext(ua,{code:ZodIssueCode.too_small,minimum:Sa.value,type:"string",inclusive:!0,exact:!0,message:Sa.message}),ca.dirty())}else if(Sa.kind==="email")emailRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"email",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty());else if(Sa.kind==="emoji")emojiRegex$2||(emojiRegex$2=new RegExp(_emojiRegex,"u")),emojiRegex$2.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"emoji",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty());else if(Sa.kind==="uuid")uuidRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"uuid",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty());else if(Sa.kind==="nanoid")nanoidRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"nanoid",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty());else if(Sa.kind==="cuid")cuidRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"cuid",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty());else if(Sa.kind==="cuid2")cuid2Regex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"cuid2",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty());else if(Sa.kind==="ulid")ulidRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"ulid",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty());else if(Sa.kind==="url")try{new URL(aa.data)}catch{ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"url",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty()}else Sa.kind==="regex"?(Sa.regex.lastIndex=0,Sa.regex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"regex",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty())):Sa.kind==="trim"?aa.data=aa.data.trim():Sa.kind==="includes"?aa.data.includes(Sa.value,Sa.position)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.invalid_string,validation:{includes:Sa.value,position:Sa.position},message:Sa.message}),ca.dirty()):Sa.kind==="toLowerCase"?aa.data=aa.data.toLowerCase():Sa.kind==="toUpperCase"?aa.data=aa.data.toUpperCase():Sa.kind==="startsWith"?aa.data.startsWith(Sa.value)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.invalid_string,validation:{startsWith:Sa.value},message:Sa.message}),ca.dirty()):Sa.kind==="endsWith"?aa.data.endsWith(Sa.value)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.invalid_string,validation:{endsWith:Sa.value},message:Sa.message}),ca.dirty()):Sa.kind==="datetime"?datetimeRegex(Sa).test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.invalid_string,validation:"datetime",message:Sa.message}),ca.dirty()):Sa.kind==="date"?dateRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.invalid_string,validation:"date",message:Sa.message}),ca.dirty()):Sa.kind==="time"?timeRegex(Sa).test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.invalid_string,validation:"time",message:Sa.message}),ca.dirty()):Sa.kind==="duration"?durationRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"duration",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty()):Sa.kind==="ip"?isValidIP(aa.data,Sa.version)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"ip",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty()):Sa.kind==="jwt"?isValidJWT(aa.data,Sa.alg)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"jwt",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty()):Sa.kind==="cidr"?isValidCidr(aa.data,Sa.version)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"cidr",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty()):Sa.kind==="base64"?base64Regex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"base64",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty()):Sa.kind==="base64url"?base64urlRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"base64url",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty()):util$1$1.assertNever(Sa);return{status:ca.value,value:aa.data}}_regex(aa,ca,ua){return this.refinement(Sa=>aa.test(Sa),{validation:ca,code:ZodIssueCode.invalid_string,...errorUtil.errToObj(ua)})}_addCheck(aa){return new ZodString({...this._def,checks:[...this._def.checks,aa]})}email(aa){return this._addCheck({kind:"email",...errorUtil.errToObj(aa)})}url(aa){return this._addCheck({kind:"url",...errorUtil.errToObj(aa)})}emoji(aa){return this._addCheck({kind:"emoji",...errorUtil.errToObj(aa)})}uuid(aa){return this._addCheck({kind:"uuid",...errorUtil.errToObj(aa)})}nanoid(aa){return this._addCheck({kind:"nanoid",...errorUtil.errToObj(aa)})}cuid(aa){return this._addCheck({kind:"cuid",...errorUtil.errToObj(aa)})}cuid2(aa){return this._addCheck({kind:"cuid2",...errorUtil.errToObj(aa)})}ulid(aa){return this._addCheck({kind:"ulid",...errorUtil.errToObj(aa)})}base64(aa){return this._addCheck({kind:"base64",...errorUtil.errToObj(aa)})}base64url(aa){return this._addCheck({kind:"base64url",...errorUtil.errToObj(aa)})}jwt(aa){return this._addCheck({kind:"jwt",...errorUtil.errToObj(aa)})}ip(aa){return this._addCheck({kind:"ip",...errorUtil.errToObj(aa)})}cidr(aa){return this._addCheck({kind:"cidr",...errorUtil.errToObj(aa)})}datetime(aa){return typeof aa=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:aa}):this._addCheck({kind:"datetime",precision:typeof aa?.precision>"u"?null:aa?.precision,offset:aa?.offset??!1,local:aa?.local??!1,...errorUtil.errToObj(aa?.message)})}date(aa){return this._addCheck({kind:"date",message:aa})}time(aa){return typeof aa=="string"?this._addCheck({kind:"time",precision:null,message:aa}):this._addCheck({kind:"time",precision:typeof aa?.precision>"u"?null:aa?.precision,...errorUtil.errToObj(aa?.message)})}duration(aa){return this._addCheck({kind:"duration",...errorUtil.errToObj(aa)})}regex(aa,ca){return this._addCheck({kind:"regex",regex:aa,...errorUtil.errToObj(ca)})}includes(aa,ca){return this._addCheck({kind:"includes",value:aa,position:ca?.position,...errorUtil.errToObj(ca?.message)})}startsWith(aa,ca){return this._addCheck({kind:"startsWith",value:aa,...errorUtil.errToObj(ca)})}endsWith(aa,ca){return this._addCheck({kind:"endsWith",value:aa,...errorUtil.errToObj(ca)})}min(aa,ca){return this._addCheck({kind:"min",value:aa,...errorUtil.errToObj(ca)})}max(aa,ca){return this._addCheck({kind:"max",value:aa,...errorUtil.errToObj(ca)})}length(aa,ca){return this._addCheck({kind:"length",value:aa,...errorUtil.errToObj(ca)})}nonempty(aa){return this.min(1,errorUtil.errToObj(aa))}trim(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(aa=>aa.kind==="datetime")}get isDate(){return!!this._def.checks.find(aa=>aa.kind==="date")}get isTime(){return!!this._def.checks.find(aa=>aa.kind==="time")}get isDuration(){return!!this._def.checks.find(aa=>aa.kind==="duration")}get isEmail(){return!!this._def.checks.find(aa=>aa.kind==="email")}get isURL(){return!!this._def.checks.find(aa=>aa.kind==="url")}get isEmoji(){return!!this._def.checks.find(aa=>aa.kind==="emoji")}get isUUID(){return!!this._def.checks.find(aa=>aa.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(aa=>aa.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(aa=>aa.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(aa=>aa.kind==="cuid2")}get isULID(){return!!this._def.checks.find(aa=>aa.kind==="ulid")}get isIP(){return!!this._def.checks.find(aa=>aa.kind==="ip")}get isCIDR(){return!!this._def.checks.find(aa=>aa.kind==="cidr")}get isBase64(){return!!this._def.checks.find(aa=>aa.kind==="base64")}get isBase64url(){return!!this._def.checks.find(aa=>aa.kind==="base64url")}get minLength(){let aa=null;for(const ca of this._def.checks)ca.kind==="min"&&(aa===null||ca.value>aa)&&(aa=ca.value);return aa}get maxLength(){let aa=null;for(const ca of this._def.checks)ca.kind==="max"&&(aa===null||ca.value<aa)&&(aa=ca.value);return aa}}ZodString.create=la=>new ZodString({checks:[],typeName:ZodFirstPartyTypeKind.ZodString,coerce:la?.coerce??!1,...processCreateParams(la)});function floatSafeRemainder(la,aa){const ca=(la.toString().split(".")[1]||"").length,ua=(aa.toString().split(".")[1]||"").length,Sa=ca>ua?ca:ua,hl=Number.parseInt(la.toFixed(Sa).replace(".","")),pl=Number.parseInt(aa.toFixed(Sa).replace(".",""));return hl%pl/10**Sa}class ZodNumber extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(aa){if(this._def.coerce&&(aa.data=Number(aa.data)),this._getType(aa)!==ZodParsedType.number){const Sa=this._getOrReturnCtx(aa);return addIssueToContext(Sa,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.number,received:Sa.parsedType}),INVALID}let ca;const ua=new ParseStatus;for(const Sa of this._def.checks)Sa.kind==="int"?util$1$1.isInteger(aa.data)||(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:"integer",received:"float",message:Sa.message}),ua.dirty()):Sa.kind==="min"?(Sa.inclusive?aa.data<Sa.value:aa.data<=Sa.value)&&(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.too_small,minimum:Sa.value,type:"number",inclusive:Sa.inclusive,exact:!1,message:Sa.message}),ua.dirty()):Sa.kind==="max"?(Sa.inclusive?aa.data>Sa.value:aa.data>=Sa.value)&&(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.too_big,maximum:Sa.value,type:"number",inclusive:Sa.inclusive,exact:!1,message:Sa.message}),ua.dirty()):Sa.kind==="multipleOf"?floatSafeRemainder(aa.data,Sa.value)!==0&&(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.not_multiple_of,multipleOf:Sa.value,message:Sa.message}),ua.dirty()):Sa.kind==="finite"?Number.isFinite(aa.data)||(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.not_finite,message:Sa.message}),ua.dirty()):util$1$1.assertNever(Sa);return{status:ua.value,value:aa.data}}gte(aa,ca){return this.setLimit("min",aa,!0,errorUtil.toString(ca))}gt(aa,ca){return this.setLimit("min",aa,!1,errorUtil.toString(ca))}lte(aa,ca){return this.setLimit("max",aa,!0,errorUtil.toString(ca))}lt(aa,ca){return this.setLimit("max",aa,!1,errorUtil.toString(ca))}setLimit(aa,ca,ua,Sa){return new ZodNumber({...this._def,checks:[...this._def.checks,{kind:aa,value:ca,inclusive:ua,message:errorUtil.toString(Sa)}]})}_addCheck(aa){return new ZodNumber({...this._def,checks:[...this._def.checks,aa]})}int(aa){return this._addCheck({kind:"int",message:errorUtil.toString(aa)})}positive(aa){return this._addCheck({kind:"min",value:0,inclusive:!1,message:errorUtil.toString(aa)})}negative(aa){return this._addCheck({kind:"max",value:0,inclusive:!1,message:errorUtil.toString(aa)})}nonpositive(aa){return this._addCheck({kind:"max",value:0,inclusive:!0,message:errorUtil.toString(aa)})}nonnegative(aa){return this._addCheck({kind:"min",value:0,inclusive:!0,message:errorUtil.toString(aa)})}multipleOf(aa,ca){return this._addCheck({kind:"multipleOf",value:aa,message:errorUtil.toString(ca)})}finite(aa){return this._addCheck({kind:"finite",message:errorUtil.toString(aa)})}safe(aa){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:errorUtil.toString(aa)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:errorUtil.toString(aa)})}get minValue(){let aa=null;for(const ca of this._def.checks)ca.kind==="min"&&(aa===null||ca.value>aa)&&(aa=ca.value);return aa}get maxValue(){let aa=null;for(const ca of this._def.checks)ca.kind==="max"&&(aa===null||ca.value<aa)&&(aa=ca.value);return aa}get isInt(){return!!this._def.checks.find(aa=>aa.kind==="int"||aa.kind==="multipleOf"&&util$1$1.isInteger(aa.value))}get isFinite(){let aa=null,ca=null;for(const ua of this._def.checks){if(ua.kind==="finite"||ua.kind==="int"||ua.kind==="multipleOf")return!0;ua.kind==="min"?(ca===null||ua.value>ca)&&(ca=ua.value):ua.kind==="max"&&(aa===null||ua.value<aa)&&(aa=ua.value)}return Number.isFinite(ca)&&Number.isFinite(aa)}}ZodNumber.create=la=>new ZodNumber({checks:[],typeName:ZodFirstPartyTypeKind.ZodNumber,coerce:la?.coerce||!1,...processCreateParams(la)});class ZodBigInt extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(aa){if(this._def.coerce)try{aa.data=BigInt(aa.data)}catch{return this._getInvalidInput(aa)}if(this._getType(aa)!==ZodParsedType.bigint)return this._getInvalidInput(aa);let ca;const ua=new ParseStatus;for(const Sa of this._def.checks)Sa.kind==="min"?(Sa.inclusive?aa.data<Sa.value:aa.data<=Sa.value)&&(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.too_small,type:"bigint",minimum:Sa.value,inclusive:Sa.inclusive,message:Sa.message}),ua.dirty()):Sa.kind==="max"?(Sa.inclusive?aa.data>Sa.value:aa.data>=Sa.value)&&(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.too_big,type:"bigint",maximum:Sa.value,inclusive:Sa.inclusive,message:Sa.message}),ua.dirty()):Sa.kind==="multipleOf"?aa.data%Sa.value!==BigInt(0)&&(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.not_multiple_of,multipleOf:Sa.value,message:Sa.message}),ua.dirty()):util$1$1.assertNever(Sa);return{status:ua.value,value:aa.data}}_getInvalidInput(aa){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.bigint,received:ca.parsedType}),INVALID}gte(aa,ca){return this.setLimit("min",aa,!0,errorUtil.toString(ca))}gt(aa,ca){return this.setLimit("min",aa,!1,errorUtil.toString(ca))}lte(aa,ca){return this.setLimit("max",aa,!0,errorUtil.toString(ca))}lt(aa,ca){return this.setLimit("max",aa,!1,errorUtil.toString(ca))}setLimit(aa,ca,ua,Sa){return new ZodBigInt({...this._def,checks:[...this._def.checks,{kind:aa,value:ca,inclusive:ua,message:errorUtil.toString(Sa)}]})}_addCheck(aa){return new ZodBigInt({...this._def,checks:[...this._def.checks,aa]})}positive(aa){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:errorUtil.toString(aa)})}negative(aa){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:errorUtil.toString(aa)})}nonpositive(aa){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:errorUtil.toString(aa)})}nonnegative(aa){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:errorUtil.toString(aa)})}multipleOf(aa,ca){return this._addCheck({kind:"multipleOf",value:aa,message:errorUtil.toString(ca)})}get minValue(){let aa=null;for(const ca of this._def.checks)ca.kind==="min"&&(aa===null||ca.value>aa)&&(aa=ca.value);return aa}get maxValue(){let aa=null;for(const ca of this._def.checks)ca.kind==="max"&&(aa===null||ca.value<aa)&&(aa=ca.value);return aa}}ZodBigInt.create=la=>new ZodBigInt({checks:[],typeName:ZodFirstPartyTypeKind.ZodBigInt,coerce:la?.coerce??!1,...processCreateParams(la)});class ZodBoolean extends ZodType{_parse(aa){if(this._def.coerce&&(aa.data=!!aa.data),this._getType(aa)!==ZodParsedType.boolean){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.boolean,received:ca.parsedType}),INVALID}return OK(aa.data)}}ZodBoolean.create=la=>new ZodBoolean({typeName:ZodFirstPartyTypeKind.ZodBoolean,coerce:la?.coerce||!1,...processCreateParams(la)});class ZodDate extends ZodType{_parse(aa){if(this._def.coerce&&(aa.data=new Date(aa.data)),this._getType(aa)!==ZodParsedType.date){const Sa=this._getOrReturnCtx(aa);return addIssueToContext(Sa,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.date,received:Sa.parsedType}),INVALID}if(Number.isNaN(aa.data.getTime())){const Sa=this._getOrReturnCtx(aa);return addIssueToContext(Sa,{code:ZodIssueCode.invalid_date}),INVALID}const ca=new ParseStatus;let ua;for(const Sa of this._def.checks)Sa.kind==="min"?aa.data.getTime()<Sa.value&&(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.too_small,message:Sa.message,inclusive:!0,exact:!1,minimum:Sa.value,type:"date"}),ca.dirty()):Sa.kind==="max"?aa.data.getTime()>Sa.value&&(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.too_big,message:Sa.message,inclusive:!0,exact:!1,maximum:Sa.value,type:"date"}),ca.dirty()):util$1$1.assertNever(Sa);return{status:ca.value,value:new Date(aa.data.getTime())}}_addCheck(aa){return new ZodDate({...this._def,checks:[...this._def.checks,aa]})}min(aa,ca){return this._addCheck({kind:"min",value:aa.getTime(),message:errorUtil.toString(ca)})}max(aa,ca){return this._addCheck({kind:"max",value:aa.getTime(),message:errorUtil.toString(ca)})}get minDate(){let aa=null;for(const ca of this._def.checks)ca.kind==="min"&&(aa===null||ca.value>aa)&&(aa=ca.value);return aa!=null?new Date(aa):null}get maxDate(){let aa=null;for(const ca of this._def.checks)ca.kind==="max"&&(aa===null||ca.value<aa)&&(aa=ca.value);return aa!=null?new Date(aa):null}}ZodDate.create=la=>new ZodDate({checks:[],coerce:la?.coerce||!1,typeName:ZodFirstPartyTypeKind.ZodDate,...processCreateParams(la)});class ZodSymbol extends ZodType{_parse(aa){if(this._getType(aa)!==ZodParsedType.symbol){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.symbol,received:ca.parsedType}),INVALID}return OK(aa.data)}}ZodSymbol.create=la=>new ZodSymbol({typeName:ZodFirstPartyTypeKind.ZodSymbol,...processCreateParams(la)});class ZodUndefined extends ZodType{_parse(aa){if(this._getType(aa)!==ZodParsedType.undefined){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.undefined,received:ca.parsedType}),INVALID}return OK(aa.data)}}ZodUndefined.create=la=>new ZodUndefined({typeName:ZodFirstPartyTypeKind.ZodUndefined,...processCreateParams(la)});class ZodNull extends ZodType{_parse(aa){if(this._getType(aa)!==ZodParsedType.null){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.null,received:ca.parsedType}),INVALID}return OK(aa.data)}}ZodNull.create=la=>new ZodNull({typeName:ZodFirstPartyTypeKind.ZodNull,...processCreateParams(la)});class ZodAny extends ZodType{constructor(){super(...arguments),this._any=!0}_parse(aa){return OK(aa.data)}}ZodAny.create=la=>new ZodAny({typeName:ZodFirstPartyTypeKind.ZodAny,...processCreateParams(la)});class ZodUnknown extends ZodType{constructor(){super(...arguments),this._unknown=!0}_parse(aa){return OK(aa.data)}}ZodUnknown.create=la=>new ZodUnknown({typeName:ZodFirstPartyTypeKind.ZodUnknown,...processCreateParams(la)});class ZodNever extends ZodType{_parse(aa){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.never,received:ca.parsedType}),INVALID}}ZodNever.create=la=>new ZodNever({typeName:ZodFirstPartyTypeKind.ZodNever,...processCreateParams(la)});class ZodVoid extends ZodType{_parse(aa){if(this._getType(aa)!==ZodParsedType.undefined){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.void,received:ca.parsedType}),INVALID}return OK(aa.data)}}ZodVoid.create=la=>new ZodVoid({typeName:ZodFirstPartyTypeKind.ZodVoid,...processCreateParams(la)});class ZodArray extends ZodType{_parse(aa){const{ctx:ca,status:ua}=this._processInputParams(aa),Sa=this._def;if(ca.parsedType!==ZodParsedType.array)return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.array,received:ca.parsedType}),INVALID;if(Sa.exactLength!==null){const pl=ca.data.length>Sa.exactLength.value,ml=ca.data.length<Sa.exactLength.value;(pl||ml)&&(addIssueToContext(ca,{code:pl?ZodIssueCode.too_big:ZodIssueCode.too_small,minimum:ml?Sa.exactLength.value:void 0,maximum:pl?Sa.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:Sa.exactLength.message}),ua.dirty())}if(Sa.minLength!==null&&ca.data.length<Sa.minLength.value&&(addIssueToContext(ca,{code:ZodIssueCode.too_small,minimum:Sa.minLength.value,type:"array",inclusive:!0,exact:!1,message:Sa.minLength.message}),ua.dirty()),Sa.maxLength!==null&&ca.data.length>Sa.maxLength.value&&(addIssueToContext(ca,{code:ZodIssueCode.too_big,maximum:Sa.maxLength.value,type:"array",inclusive:!0,exact:!1,message:Sa.maxLength.message}),ua.dirty()),ca.common.async)return Promise.all([...ca.data].map((pl,ml)=>Sa.type._parseAsync(new ParseInputLazyPath(ca,pl,ca.path,ml)))).then(pl=>ParseStatus.mergeArray(ua,pl));const hl=[...ca.data].map((pl,ml)=>Sa.type._parseSync(new ParseInputLazyPath(ca,pl,ca.path,ml)));return ParseStatus.mergeArray(ua,hl)}get element(){return this._def.type}min(aa,ca){return new ZodArray({...this._def,minLength:{value:aa,message:errorUtil.toString(ca)}})}max(aa,ca){return new ZodArray({...this._def,maxLength:{value:aa,message:errorUtil.toString(ca)}})}length(aa,ca){return new ZodArray({...this._def,exactLength:{value:aa,message:errorUtil.toString(ca)}})}nonempty(aa){return this.min(1,aa)}}ZodArray.create=(la,aa)=>new ZodArray({type:la,minLength:null,maxLength:null,exactLength:null,typeName:ZodFirstPartyTypeKind.ZodArray,...processCreateParams(aa)});function deepPartialify(la){if(la instanceof ZodObject){const aa={};for(const ca in la.shape){const ua=la.shape[ca];aa[ca]=ZodOptional.create(deepPartialify(ua))}return new ZodObject({...la._def,shape:()=>aa})}else return la instanceof ZodArray?new ZodArray({...la._def,type:deepPartialify(la.element)}):la instanceof ZodOptional?ZodOptional.create(deepPartialify(la.unwrap())):la instanceof ZodNullable?ZodNullable.create(deepPartialify(la.unwrap())):la instanceof ZodTuple?ZodTuple.create(la.items.map(aa=>deepPartialify(aa))):la}class ZodObject extends ZodType{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const aa=this._def.shape(),ca=util$1$1.objectKeys(aa);return this._cached={shape:aa,keys:ca},this._cached}_parse(aa){if(this._getType(aa)!==ZodParsedType.object){const gl=this._getOrReturnCtx(aa);return addIssueToContext(gl,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:gl.parsedType}),INVALID}const{status:ca,ctx:ua}=this._processInputParams(aa),{shape:Sa,keys:hl}=this._getCached(),pl=[];if(!(this._def.catchall instanceof ZodNever&&this._def.unknownKeys==="strip"))for(const gl in ua.data)hl.includes(gl)||pl.push(gl);const ml=[];for(const gl of hl){const wc=Sa[gl],xu=ua.data[gl];ml.push({key:{status:"valid",value:gl},value:wc._parse(new ParseInputLazyPath(ua,xu,ua.path,gl)),alwaysSet:gl in ua.data})}if(this._def.catchall instanceof ZodNever){const gl=this._def.unknownKeys;if(gl==="passthrough")for(const wc of pl)ml.push({key:{status:"valid",value:wc},value:{status:"valid",value:ua.data[wc]}});else if(gl==="strict")pl.length>0&&(addIssueToContext(ua,{code:ZodIssueCode.unrecognized_keys,keys:pl}),ca.dirty());else if(gl!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const gl=this._def.catchall;for(const wc of pl){const xu=ua.data[wc];ml.push({key:{status:"valid",value:wc},value:gl._parse(new ParseInputLazyPath(ua,xu,ua.path,wc)),alwaysSet:wc in ua.data})}}return ua.common.async?Promise.resolve().then(async()=>{const gl=[];for(const wc of ml){const xu=await wc.key,ff=await wc.value;gl.push({key:xu,value:ff,alwaysSet:wc.alwaysSet})}return gl}).then(gl=>ParseStatus.mergeObjectSync(ca,gl)):ParseStatus.mergeObjectSync(ca,ml)}get shape(){return this._def.shape()}strict(aa){return errorUtil.errToObj,new ZodObject({...this._def,unknownKeys:"strict",...aa!==void 0?{errorMap:(ca,ua)=>{const Sa=this._def.errorMap?.(ca,ua).message??ua.defaultError;return ca.code==="unrecognized_keys"?{message:errorUtil.errToObj(aa).message??Sa}:{message:Sa}}}:{}})}strip(){return new ZodObject({...this._def,unknownKeys:"strip"})}passthrough(){return new ZodObject({...this._def,unknownKeys:"passthrough"})}extend(aa){return new ZodObject({...this._def,shape:()=>({...this._def.shape(),...aa})})}merge(aa){return new ZodObject({unknownKeys:aa._def.unknownKeys,catchall:aa._def.catchall,shape:()=>({...this._def.shape(),...aa._def.shape()}),typeName:ZodFirstPartyTypeKind.ZodObject})}setKey(aa,ca){return this.augment({[aa]:ca})}catchall(aa){return new ZodObject({...this._def,catchall:aa})}pick(aa){const ca={};for(const ua of util$1$1.objectKeys(aa))aa[ua]&&this.shape[ua]&&(ca[ua]=this.shape[ua]);return new ZodObject({...this._def,shape:()=>ca})}omit(aa){const ca={};for(const ua of util$1$1.objectKeys(this.shape))aa[ua]||(ca[ua]=this.shape[ua]);return new ZodObject({...this._def,shape:()=>ca})}deepPartial(){return deepPartialify(this)}partial(aa){const ca={};for(const ua of util$1$1.objectKeys(this.shape)){const Sa=this.shape[ua];aa&&!aa[ua]?ca[ua]=Sa:ca[ua]=Sa.optional()}return new ZodObject({...this._def,shape:()=>ca})}required(aa){const ca={};for(const ua of util$1$1.objectKeys(this.shape))if(aa&&!aa[ua])ca[ua]=this.shape[ua];else{let Sa=this.shape[ua];for(;Sa instanceof ZodOptional;)Sa=Sa._def.innerType;ca[ua]=Sa}return new ZodObject({...this._def,shape:()=>ca})}keyof(){return createZodEnum(util$1$1.objectKeys(this.shape))}}ZodObject.create=(la,aa)=>new ZodObject({shape:()=>la,unknownKeys:"strip",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(aa)});ZodObject.strictCreate=(la,aa)=>new ZodObject({shape:()=>la,unknownKeys:"strict",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(aa)});ZodObject.lazycreate=(la,aa)=>new ZodObject({shape:la,unknownKeys:"strip",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(aa)});class ZodUnion extends ZodType{_parse(aa){const{ctx:ca}=this._processInputParams(aa),ua=this._def.options;function Sa(hl){for(const ml of hl)if(ml.result.status==="valid")return ml.result;for(const ml of hl)if(ml.result.status==="dirty")return ca.common.issues.push(...ml.ctx.common.issues),ml.result;const pl=hl.map(ml=>new ZodError(ml.ctx.common.issues));return addIssueToContext(ca,{code:ZodIssueCode.invalid_union,unionErrors:pl}),INVALID}if(ca.common.async)return Promise.all(ua.map(async hl=>{const pl={...ca,common:{...ca.common,issues:[]},parent:null};return{result:await hl._parseAsync({data:ca.data,path:ca.path,parent:pl}),ctx:pl}})).then(Sa);{let hl;const pl=[];for(const gl of ua){const wc={...ca,common:{...ca.common,issues:[]},parent:null},xu=gl._parseSync({data:ca.data,path:ca.path,parent:wc});if(xu.status==="valid")return xu;xu.status==="dirty"&&!hl&&(hl={result:xu,ctx:wc}),wc.common.issues.length&&pl.push(wc.common.issues)}if(hl)return ca.common.issues.push(...hl.ctx.common.issues),hl.result;const ml=pl.map(gl=>new ZodError(gl));return addIssueToContext(ca,{code:ZodIssueCode.invalid_union,unionErrors:ml}),INVALID}}get options(){return this._def.options}}ZodUnion.create=(la,aa)=>new ZodUnion({options:la,typeName:ZodFirstPartyTypeKind.ZodUnion,...processCreateParams(aa)});const getDiscriminator=la=>la instanceof ZodLazy?getDiscriminator(la.schema):la instanceof ZodEffects?getDiscriminator(la.innerType()):la instanceof ZodLiteral?[la.value]:la instanceof ZodEnum?la.options:la instanceof ZodNativeEnum?util$1$1.objectValues(la.enum):la instanceof ZodDefault?getDiscriminator(la._def.innerType):la instanceof ZodUndefined?[void 0]:la instanceof ZodNull?[null]:la instanceof ZodOptional?[void 0,...getDiscriminator(la.unwrap())]:la instanceof ZodNullable?[null,...getDiscriminator(la.unwrap())]:la instanceof ZodBranded||la instanceof ZodReadonly?getDiscriminator(la.unwrap()):la instanceof ZodCatch?getDiscriminator(la._def.innerType):[];class ZodDiscriminatedUnion extends ZodType{_parse(aa){const{ctx:ca}=this._processInputParams(aa);if(ca.parsedType!==ZodParsedType.object)return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:ca.parsedType}),INVALID;const ua=this.discriminator,Sa=ca.data[ua],hl=this.optionsMap.get(Sa);return hl?ca.common.async?hl._parseAsync({data:ca.data,path:ca.path,parent:ca}):hl._parseSync({data:ca.data,path:ca.path,parent:ca}):(addIssueToContext(ca,{code:ZodIssueCode.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[ua]}),INVALID)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(aa,ca,ua){const Sa=new Map;for(const hl of ca){const pl=getDiscriminator(hl.shape[aa]);if(!pl.length)throw new Error(`A discriminator value for key \`${aa}\` could not be extracted from all schema options`);for(const ml of pl){if(Sa.has(ml))throw new Error(`Discriminator property ${String(aa)} has duplicate value ${String(ml)}`);Sa.set(ml,hl)}}return new ZodDiscriminatedUnion({typeName:ZodFirstPartyTypeKind.ZodDiscriminatedUnion,discriminator:aa,options:ca,optionsMap:Sa,...processCreateParams(ua)})}}function mergeValues(la,aa){const ca=getParsedType(la),ua=getParsedType(aa);if(la===aa)return{valid:!0,data:la};if(ca===ZodParsedType.object&&ua===ZodParsedType.object){const Sa=util$1$1.objectKeys(aa),hl=util$1$1.objectKeys(la).filter(ml=>Sa.indexOf(ml)!==-1),pl={...la,...aa};for(const ml of hl){const gl=mergeValues(la[ml],aa[ml]);if(!gl.valid)return{valid:!1};pl[ml]=gl.data}return{valid:!0,data:pl}}else if(ca===ZodParsedType.array&&ua===ZodParsedType.array){if(la.length!==aa.length)return{valid:!1};const Sa=[];for(let hl=0;hl<la.length;hl++){const pl=la[hl],ml=aa[hl],gl=mergeValues(pl,ml);if(!gl.valid)return{valid:!1};Sa.push(gl.data)}return{valid:!0,data:Sa}}else return ca===ZodParsedType.date&&ua===ZodParsedType.date&&+la==+aa?{valid:!0,data:la}:{valid:!1}}class ZodIntersection extends ZodType{_parse(aa){const{status:ca,ctx:ua}=this._processInputParams(aa),Sa=(hl,pl)=>{if(isAborted(hl)||isAborted(pl))return INVALID;const ml=mergeValues(hl.value,pl.value);return ml.valid?((isDirty(hl)||isDirty(pl))&&ca.dirty(),{status:ca.value,value:ml.data}):(addIssueToContext(ua,{code:ZodIssueCode.invalid_intersection_types}),INVALID)};return ua.common.async?Promise.all([this._def.left._parseAsync({data:ua.data,path:ua.path,parent:ua}),this._def.right._parseAsync({data:ua.data,path:ua.path,parent:ua})]).then(([hl,pl])=>Sa(hl,pl)):Sa(this._def.left._parseSync({data:ua.data,path:ua.path,parent:ua}),this._def.right._parseSync({data:ua.data,path:ua.path,parent:ua}))}}ZodIntersection.create=(la,aa,ca)=>new ZodIntersection({left:la,right:aa,typeName:ZodFirstPartyTypeKind.ZodIntersection,...processCreateParams(ca)});class ZodTuple extends ZodType{_parse(aa){const{status:ca,ctx:ua}=this._processInputParams(aa);if(ua.parsedType!==ZodParsedType.array)return addIssueToContext(ua,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.array,received:ua.parsedType}),INVALID;if(ua.data.length<this._def.items.length)return addIssueToContext(ua,{code:ZodIssueCode.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),INVALID;!this._def.rest&&ua.data.length>this._def.items.length&&(addIssueToContext(ua,{code:ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),ca.dirty());const Sa=[...ua.data].map((hl,pl)=>{const ml=this._def.items[pl]||this._def.rest;return ml?ml._parse(new ParseInputLazyPath(ua,hl,ua.path,pl)):null}).filter(hl=>!!hl);return ua.common.async?Promise.all(Sa).then(hl=>ParseStatus.mergeArray(ca,hl)):ParseStatus.mergeArray(ca,Sa)}get items(){return this._def.items}rest(aa){return new ZodTuple({...this._def,rest:aa})}}ZodTuple.create=(la,aa)=>{if(!Array.isArray(la))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ZodTuple({items:la,typeName:ZodFirstPartyTypeKind.ZodTuple,rest:null,...processCreateParams(aa)})};class ZodRecord extends ZodType{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(aa){const{status:ca,ctx:ua}=this._processInputParams(aa);if(ua.parsedType!==ZodParsedType.object)return addIssueToContext(ua,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:ua.parsedType}),INVALID;const Sa=[],hl=this._def.keyType,pl=this._def.valueType;for(const ml in ua.data)Sa.push({key:hl._parse(new ParseInputLazyPath(ua,ml,ua.path,ml)),value:pl._parse(new ParseInputLazyPath(ua,ua.data[ml],ua.path,ml)),alwaysSet:ml in ua.data});return ua.common.async?ParseStatus.mergeObjectAsync(ca,Sa):ParseStatus.mergeObjectSync(ca,Sa)}get element(){return this._def.valueType}static create(aa,ca,ua){return ca instanceof ZodType?new ZodRecord({keyType:aa,valueType:ca,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(ua)}):new ZodRecord({keyType:ZodString.create(),valueType:aa,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(ca)})}}class ZodMap extends ZodType{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(aa){const{status:ca,ctx:ua}=this._processInputParams(aa);if(ua.parsedType!==ZodParsedType.map)return addIssueToContext(ua,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.map,received:ua.parsedType}),INVALID;const Sa=this._def.keyType,hl=this._def.valueType,pl=[...ua.data.entries()].map(([ml,gl],wc)=>({key:Sa._parse(new ParseInputLazyPath(ua,ml,ua.path,[wc,"key"])),value:hl._parse(new ParseInputLazyPath(ua,gl,ua.path,[wc,"value"]))}));if(ua.common.async){const ml=new Map;return Promise.resolve().then(async()=>{for(const gl of pl){const wc=await gl.key,xu=await gl.value;if(wc.status==="aborted"||xu.status==="aborted")return INVALID;(wc.status==="dirty"||xu.status==="dirty")&&ca.dirty(),ml.set(wc.value,xu.value)}return{status:ca.value,value:ml}})}else{const ml=new Map;for(const gl of pl){const wc=gl.key,xu=gl.value;if(wc.status==="aborted"||xu.status==="aborted")return INVALID;(wc.status==="dirty"||xu.status==="dirty")&&ca.dirty(),ml.set(wc.value,xu.value)}return{status:ca.value,value:ml}}}}ZodMap.create=(la,aa,ca)=>new ZodMap({valueType:aa,keyType:la,typeName:ZodFirstPartyTypeKind.ZodMap,...processCreateParams(ca)});class ZodSet extends ZodType{_parse(aa){const{status:ca,ctx:ua}=this._processInputParams(aa);if(ua.parsedType!==ZodParsedType.set)return addIssueToContext(ua,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.set,received:ua.parsedType}),INVALID;const Sa=this._def;Sa.minSize!==null&&ua.data.size<Sa.minSize.value&&(addIssueToContext(ua,{code:ZodIssueCode.too_small,minimum:Sa.minSize.value,type:"set",inclusive:!0,exact:!1,message:Sa.minSize.message}),ca.dirty()),Sa.maxSize!==null&&ua.data.size>Sa.maxSize.value&&(addIssueToContext(ua,{code:ZodIssueCode.too_big,maximum:Sa.maxSize.value,type:"set",inclusive:!0,exact:!1,message:Sa.maxSize.message}),ca.dirty());const hl=this._def.valueType;function pl(gl){const wc=new Set;for(const xu of gl){if(xu.status==="aborted")return INVALID;xu.status==="dirty"&&ca.dirty(),wc.add(xu.value)}return{status:ca.value,value:wc}}const ml=[...ua.data.values()].map((gl,wc)=>hl._parse(new ParseInputLazyPath(ua,gl,ua.path,wc)));return ua.common.async?Promise.all(ml).then(gl=>pl(gl)):pl(ml)}min(aa,ca){return new ZodSet({...this._def,minSize:{value:aa,message:errorUtil.toString(ca)}})}max(aa,ca){return new ZodSet({...this._def,maxSize:{value:aa,message:errorUtil.toString(ca)}})}size(aa,ca){return this.min(aa,ca).max(aa,ca)}nonempty(aa){return this.min(1,aa)}}ZodSet.create=(la,aa)=>new ZodSet({valueType:la,minSize:null,maxSize:null,typeName:ZodFirstPartyTypeKind.ZodSet,...processCreateParams(aa)});class ZodLazy extends ZodType{get schema(){return this._def.getter()}_parse(aa){const{ctx:ca}=this._processInputParams(aa);return this._def.getter()._parse({data:ca.data,path:ca.path,parent:ca})}}ZodLazy.create=(la,aa)=>new ZodLazy({getter:la,typeName:ZodFirstPartyTypeKind.ZodLazy,...processCreateParams(aa)});class ZodLiteral extends ZodType{_parse(aa){if(aa.data!==this._def.value){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{received:ca.data,code:ZodIssueCode.invalid_literal,expected:this._def.value}),INVALID}return{status:"valid",value:aa.data}}get value(){return this._def.value}}ZodLiteral.create=(la,aa)=>new ZodLiteral({value:la,typeName:ZodFirstPartyTypeKind.ZodLiteral,...processCreateParams(aa)});function createZodEnum(la,aa){return new ZodEnum({values:la,typeName:ZodFirstPartyTypeKind.ZodEnum,...processCreateParams(aa)})}class ZodEnum extends ZodType{_parse(aa){if(typeof aa.data!="string"){const ca=this._getOrReturnCtx(aa),ua=this._def.values;return addIssueToContext(ca,{expected:util$1$1.joinValues(ua),received:ca.parsedType,code:ZodIssueCode.invalid_type}),INVALID}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(aa.data)){const ca=this._getOrReturnCtx(aa),ua=this._def.values;return addIssueToContext(ca,{received:ca.data,code:ZodIssueCode.invalid_enum_value,options:ua}),INVALID}return OK(aa.data)}get options(){return this._def.values}get enum(){const aa={};for(const ca of this._def.values)aa[ca]=ca;return aa}get Values(){const aa={};for(const ca of this._def.values)aa[ca]=ca;return aa}get Enum(){const aa={};for(const ca of this._def.values)aa[ca]=ca;return aa}extract(aa,ca=this._def){return ZodEnum.create(aa,{...this._def,...ca})}exclude(aa,ca=this._def){return ZodEnum.create(this.options.filter(ua=>!aa.includes(ua)),{...this._def,...ca})}}ZodEnum.create=createZodEnum;class ZodNativeEnum extends ZodType{_parse(aa){const ca=util$1$1.getValidEnumValues(this._def.values),ua=this._getOrReturnCtx(aa);if(ua.parsedType!==ZodParsedType.string&&ua.parsedType!==ZodParsedType.number){const Sa=util$1$1.objectValues(ca);return addIssueToContext(ua,{expected:util$1$1.joinValues(Sa),received:ua.parsedType,code:ZodIssueCode.invalid_type}),INVALID}if(this._cache||(this._cache=new Set(util$1$1.getValidEnumValues(this._def.values))),!this._cache.has(aa.data)){const Sa=util$1$1.objectValues(ca);return addIssueToContext(ua,{received:ua.data,code:ZodIssueCode.invalid_enum_value,options:Sa}),INVALID}return OK(aa.data)}get enum(){return this._def.values}}ZodNativeEnum.create=(la,aa)=>new ZodNativeEnum({values:la,typeName:ZodFirstPartyTypeKind.ZodNativeEnum,...processCreateParams(aa)});class ZodPromise extends ZodType{unwrap(){return this._def.type}_parse(aa){const{ctx:ca}=this._processInputParams(aa);if(ca.parsedType!==ZodParsedType.promise&&ca.common.async===!1)return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.promise,received:ca.parsedType}),INVALID;const ua=ca.parsedType===ZodParsedType.promise?ca.data:Promise.resolve(ca.data);return OK(ua.then(Sa=>this._def.type.parseAsync(Sa,{path:ca.path,errorMap:ca.common.contextualErrorMap})))}}ZodPromise.create=(la,aa)=>new ZodPromise({type:la,typeName:ZodFirstPartyTypeKind.ZodPromise,...processCreateParams(aa)});class ZodEffects extends ZodType{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ZodFirstPartyTypeKind.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(aa){const{status:ca,ctx:ua}=this._processInputParams(aa),Sa=this._def.effect||null,hl={addIssue:pl=>{addIssueToContext(ua,pl),pl.fatal?ca.abort():ca.dirty()},get path(){return ua.path}};if(hl.addIssue=hl.addIssue.bind(hl),Sa.type==="preprocess"){const pl=Sa.transform(ua.data,hl);if(ua.common.async)return Promise.resolve(pl).then(async ml=>{if(ca.value==="aborted")return INVALID;const gl=await this._def.schema._parseAsync({data:ml,path:ua.path,parent:ua});return gl.status==="aborted"?INVALID:gl.status==="dirty"||ca.value==="dirty"?DIRTY(gl.value):gl});{if(ca.value==="aborted")return INVALID;const ml=this._def.schema._parseSync({data:pl,path:ua.path,parent:ua});return ml.status==="aborted"?INVALID:ml.status==="dirty"||ca.value==="dirty"?DIRTY(ml.value):ml}}if(Sa.type==="refinement"){const pl=ml=>{const gl=Sa.refinement(ml,hl);if(ua.common.async)return Promise.resolve(gl);if(gl instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return ml};if(ua.common.async===!1){const ml=this._def.schema._parseSync({data:ua.data,path:ua.path,parent:ua});return ml.status==="aborted"?INVALID:(ml.status==="dirty"&&ca.dirty(),pl(ml.value),{status:ca.value,value:ml.value})}else return this._def.schema._parseAsync({data:ua.data,path:ua.path,parent:ua}).then(ml=>ml.status==="aborted"?INVALID:(ml.status==="dirty"&&ca.dirty(),pl(ml.value).then(()=>({status:ca.value,value:ml.value}))))}if(Sa.type==="transform")if(ua.common.async===!1){const pl=this._def.schema._parseSync({data:ua.data,path:ua.path,parent:ua});if(!isValid(pl))return INVALID;const ml=Sa.transform(pl.value,hl);if(ml instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:ca.value,value:ml}}else return this._def.schema._parseAsync({data:ua.data,path:ua.path,parent:ua}).then(pl=>isValid(pl)?Promise.resolve(Sa.transform(pl.value,hl)).then(ml=>({status:ca.value,value:ml})):INVALID);util$1$1.assertNever(Sa)}}ZodEffects.create=(la,aa,ca)=>new ZodEffects({schema:la,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:aa,...processCreateParams(ca)});ZodEffects.createWithPreprocess=(la,aa,ca)=>new ZodEffects({schema:aa,effect:{type:"preprocess",transform:la},typeName:ZodFirstPartyTypeKind.ZodEffects,...processCreateParams(ca)});class ZodOptional extends ZodType{_parse(aa){return this._getType(aa)===ZodParsedType.undefined?OK(void 0):this._def.innerType._parse(aa)}unwrap(){return this._def.innerType}}ZodOptional.create=(la,aa)=>new ZodOptional({innerType:la,typeName:ZodFirstPartyTypeKind.ZodOptional,...processCreateParams(aa)});class ZodNullable extends ZodType{_parse(aa){return this._getType(aa)===ZodParsedType.null?OK(null):this._def.innerType._parse(aa)}unwrap(){return this._def.innerType}}ZodNullable.create=(la,aa)=>new ZodNullable({innerType:la,typeName:ZodFirstPartyTypeKind.ZodNullable,...processCreateParams(aa)});class ZodDefault extends ZodType{_parse(aa){const{ctx:ca}=this._processInputParams(aa);let ua=ca.data;return ca.parsedType===ZodParsedType.undefined&&(ua=this._def.defaultValue()),this._def.innerType._parse({data:ua,path:ca.path,parent:ca})}removeDefault(){return this._def.innerType}}ZodDefault.create=(la,aa)=>new ZodDefault({innerType:la,typeName:ZodFirstPartyTypeKind.ZodDefault,defaultValue:typeof aa.default=="function"?aa.default:()=>aa.default,...processCreateParams(aa)});class ZodCatch extends ZodType{_parse(aa){const{ctx:ca}=this._processInputParams(aa),ua={...ca,common:{...ca.common,issues:[]}},Sa=this._def.innerType._parse({data:ua.data,path:ua.path,parent:{...ua}});return isAsync(Sa)?Sa.then(hl=>({status:"valid",value:hl.status==="valid"?hl.value:this._def.catchValue({get error(){return new ZodError(ua.common.issues)},input:ua.data})})):{status:"valid",value:Sa.status==="valid"?Sa.value:this._def.catchValue({get error(){return new ZodError(ua.common.issues)},input:ua.data})}}removeCatch(){return this._def.innerType}}ZodCatch.create=(la,aa)=>new ZodCatch({innerType:la,typeName:ZodFirstPartyTypeKind.ZodCatch,catchValue:typeof aa.catch=="function"?aa.catch:()=>aa.catch,...processCreateParams(aa)});class ZodNaN extends ZodType{_parse(aa){if(this._getType(aa)!==ZodParsedType.nan){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.nan,received:ca.parsedType}),INVALID}return{status:"valid",value:aa.data}}}ZodNaN.create=la=>new ZodNaN({typeName:ZodFirstPartyTypeKind.ZodNaN,...processCreateParams(la)});class ZodBranded extends ZodType{_parse(aa){const{ctx:ca}=this._processInputParams(aa),ua=ca.data;return this._def.type._parse({data:ua,path:ca.path,parent:ca})}unwrap(){return this._def.type}}class ZodPipeline extends ZodType{_parse(aa){const{status:ca,ctx:ua}=this._processInputParams(aa);if(ua.common.async)return(async()=>{const Sa=await this._def.in._parseAsync({data:ua.data,path:ua.path,parent:ua});return Sa.status==="aborted"?INVALID:Sa.status==="dirty"?(ca.dirty(),DIRTY(Sa.value)):this._def.out._parseAsync({data:Sa.value,path:ua.path,parent:ua})})();{const Sa=this._def.in._parseSync({data:ua.data,path:ua.path,parent:ua});return Sa.status==="aborted"?INVALID:Sa.status==="dirty"?(ca.dirty(),{status:"dirty",value:Sa.value}):this._def.out._parseSync({data:Sa.value,path:ua.path,parent:ua})}}static create(aa,ca){return new ZodPipeline({in:aa,out:ca,typeName:ZodFirstPartyTypeKind.ZodPipeline})}}class ZodReadonly extends ZodType{_parse(aa){const ca=this._def.innerType._parse(aa),ua=Sa=>(isValid(Sa)&&(Sa.value=Object.freeze(Sa.value)),Sa);return isAsync(ca)?ca.then(Sa=>ua(Sa)):ua(ca)}unwrap(){return this._def.innerType}}ZodReadonly.create=(la,aa)=>new ZodReadonly({innerType:la,typeName:ZodFirstPartyTypeKind.ZodReadonly,...processCreateParams(aa)});var ZodFirstPartyTypeKind;(function(la){la.ZodString="ZodString",la.ZodNumber="ZodNumber",la.ZodNaN="ZodNaN",la.ZodBigInt="ZodBigInt",la.ZodBoolean="ZodBoolean",la.ZodDate="ZodDate",la.ZodSymbol="ZodSymbol",la.ZodUndefined="ZodUndefined",la.ZodNull="ZodNull",la.ZodAny="ZodAny",la.ZodUnknown="ZodUnknown",la.ZodNever="ZodNever",la.ZodVoid="ZodVoid",la.ZodArray="ZodArray",la.ZodObject="ZodObject",la.ZodUnion="ZodUnion",la.ZodDiscriminatedUnion="ZodDiscriminatedUnion",la.ZodIntersection="ZodIntersection",la.ZodTuple="ZodTuple",la.ZodRecord="ZodRecord",la.ZodMap="ZodMap",la.ZodSet="ZodSet",la.ZodFunction="ZodFunction",la.ZodLazy="ZodLazy",la.ZodLiteral="ZodLiteral",la.ZodEnum="ZodEnum",la.ZodEffects="ZodEffects",la.ZodNativeEnum="ZodNativeEnum",la.ZodOptional="ZodOptional",la.ZodNullable="ZodNullable",la.ZodDefault="ZodDefault",la.ZodCatch="ZodCatch",la.ZodPromise="ZodPromise",la.ZodBranded="ZodBranded",la.ZodPipeline="ZodPipeline",la.ZodReadonly="ZodReadonly"})(ZodFirstPartyTypeKind||(ZodFirstPartyTypeKind={}));const stringType=ZodString.create,numberType=ZodNumber.create,booleanType=ZodBoolean.create,anyType=ZodAny.create;ZodNever.create;const arrayType=ZodArray.create,objectType=ZodObject.create;ZodUnion.create;const discriminatedUnionType=ZodDiscriminatedUnion.create;ZodIntersection.create;ZodTuple.create;const recordType=ZodRecord.create,literalType=ZodLiteral.create,enumType=ZodEnum.create;ZodPromise.create;ZodOptional.create;ZodNullable.create;objectType({service:objectType({port:numberType(),host:stringType().optional(),httpFileHandling:booleanType().default(!1)}).default({port:8080,host:"localhost",httpFileHandling:!1}),store:discriminatedUnionType("type",[objectType({type:literalType("postgres"),host:stringType().default("localhost"),username:stringType().default("postgres"),password:stringType().default("postgres"),dbname:stringType().default("postgres"),port:numberType().default(5432)}),objectType({type:literalType("mysql"),host:stringType().default("localhost"),username:stringType().default("mysql"),password:stringType().default("mysql"),dbname:stringType().default("mysql"),port:numberType().default(3306)}),objectType({type:literalType("sqlite"),dbname:stringType().optional()})]).optional(),integrations:objectType({host:stringType(),username:stringType().optional(),password:stringType().optional(),connections:recordType(stringType(),stringType())}).optional(),graphql:objectType({enabled:booleanType().default(!1)}).optional(),rbac:objectType({enabled:booleanType().default(!1),roles:arrayType(stringType()).optional()}).optional(),auth:objectType({enabled:booleanType().default(!1)}).optional(),auditTrail:objectType({enabled:booleanType().default(!1)}).optional(),monitoring:objectType({enabled:booleanType().default(!1)}).optional(),authentication:discriminatedUnionType("service",[objectType({service:literalType("okta"),superuserEmail:stringType(),domain:stringType(),cookieDomain:stringType().optional(),authServer:stringType().default("default"),clientSecret:stringType(),apiToken:stringType(),scope:stringType().default("openid offline_access"),cookieTtlMs:numberType().default(12096e5),introspect:booleanType().default(!0),authorizeRedirectUrl:stringType(),clientUrl:stringType(),roleClaim:stringType().default("roles"),defaultRole:stringType().default("user"),clientId:stringType()}),objectType({service:literalType("cognito"),superuserEmail:stringType(),superuserPassword:stringType().optional(),isIdentityStore:booleanType().default(!1),userPoolId:stringType(),clientId:stringType(),whitelistEnabled:booleanType().default(!1),disableUserSessions:booleanType().default(!1)})]).optional(),openapi:arrayType(objectType({specUrl:stringType(),baseUrl:stringType().optional(),name:stringType()})).optional(),logging:objectType({level:enumType(["error","warn","info","debug"]).default("info")}).optional(),retry:arrayType(objectType({name:stringType(),attempts:numberType(),backoff:objectType({strategy:enumType(["linear","exponential","constant"]),delay:numberType(),magnitude:enumType(["seconds","milliSeconds","minutes"]),factor:numberType()})})).optional()});function isMonitoringEnabled(){var la;return((la=void 0)===null||la===void 0?void 0:la.enabled)===!0}class TtlCache{constructor(aa){this.store=new Map,this.ttlMs=aa}set(aa,ca,ua){ua=ua||this.ttlMs;const Sa=Date.now()+ua;return this.store.set(aa,{value:ca,expireTime:Sa}),setTimeout(()=>{const hl=this.store.get(aa);hl&&hl.expireTime===Sa&&this.store.delete(aa)},ua),ca}get(aa){const ca=this.store.get(aa);if(ca!==void 0){if(Date.now()>ca.expireTime){this.store.delete(aa);return}return ca.value}}delete(aa){this.store.delete(aa)}}const AdminUserId="00000000-0000-0000-0000-000000000000";function isAuthEnabled(){var la;return((la=void 0)===null||la===void 0?void 0:la.enabled)==!0}function isRbacEnabled(){var la;return isAuthEnabled()&&((la=void 0)===null||la===void 0?void 0:la.enabled)==!0}const AdminSession={sessionId:crypto.randomUUID(),userId:AdminUserId},LocalEnv=new Map;function getLocalEnv$1(la,aa){const ca=LocalEnv.get(la);if(ca!==void 0)return ca;if(typeof E$a<"u"&&E$a.env){const ua=E$a.env[la];if(ua!==void 0)return ua}return aa}const PathAttributeName="__path__",PathAttributeNameQuery="__path__?",ParentAttributeName="__parent__",DeletedFlagAttributeName="__is_deleted__";function asUnauthMessage(la){return typeof la=="string"?la:`User not authorised to perform '${la.opr}' on ${la.entity}`}class UnauthorisedError extends Error{constructor(aa,ca){super(aa?asUnauthMessage(aa):"User not authorised to perform this operation",ca)}}let BadRequestError$2=class extends Error{constructor(la,aa){super(la?asUnauthMessage(la):"BadRequest",aa)}};class UserNotFoundError extends Error{constructor(aa,ca){super(aa||"User not found",ca)}}class UserNotConfirmedError extends Error{constructor(aa,ca){super(aa||"User account is not confirmed. Please check your email for verification code.",ca)}}class PasswordResetRequiredError extends Error{constructor(aa,ca){super(aa||"Password reset is required for this account",ca)}}class TooManyRequestsError extends Error{constructor(aa,ca){super(aa||"Too many requests. Please try again later.",ca)}}class InvalidParameterError extends Error{constructor(aa,ca){super(aa||"Invalid parameters provided",ca)}}class ExpiredCodeError extends Error{constructor(aa,ca){super(aa||"The verification code has expired. Please request a new one.",ca)}}class CodeMismatchError extends Error{constructor(aa,ca){super(aa||"The verification code is incorrect. Please try again.",ca)}}let FetchModuleFn;function setModuleFnFetcher(la){FetchModuleFn=la}const ForceReadPermFlag="f-r-f",FlowSuspensionTag="--";var SubGraphType;(function(la){la[la.EVENT=0]="EVENT",la[la.IF=1]="IF",la[la.FOR_EACH=2]="FOR_EACH",la[la.DELETE=3]="DELETE",la[la.PURGE=4]="PURGE",la[la.RETURN=5]="RETURN",la[la.AGENT=6]="AGENT",la[la.THROW=7]="THROW",la[la.NONE=8]="NONE"})(SubGraphType||(SubGraphType={}));class ExecGraph{static isEmpty(aa){return Object.is(ExecGraph.Empty,aa)}constructor(){this.parentGraph=void 0,this.hasAgentsFlag=!1,this.loopBody=!1,this.rootNodes=new Array,this.subGraphs=new Array}pushNode(aa){return this.rootNodes.push(aa),this}pushSubGraph(aa){return aa.parentGraph=this,this.subGraphs.push(aa),this}getSubGraphsLength(){return this.subGraphs.length}getLastSubGraphIndex(){return this.subGraphs.length-1}fetchSubGraphAt(aa){if(aa<0||aa>=this.subGraphs.length)throw new Error(`Invalid sub-graph index: ${aa}`);return this.subGraphs[aa]}fetchForEachBodySubGraph(){return this.fetchSubGraphAt(this.subGraphs.length-1)}fetchIfConsequentSubGraph(){return this.subGraphs.length>=2?this.fetchSubGraphAt(this.subGraphs.length-2):this.fetchSubGraphAt(this.subGraphs.length-1)}fetchIfAlternativeSubGraph(){if(this.subGraphs.length>=2)return this.fetchSubGraphAt(this.subGraphs.length-1)}getRootNodes(){return this.rootNodes}setActiveModuleName(aa){return aa&&(this.activeModuleName=aa),this}getActiveModuleName(){return this.activeModuleName}getParentGraph(){return this.parentGraph}setEventName(aa){return aa!==void 0&&(this.eventName=aa),this}getEventName(){return this.eventName}setHasAgents(aa){return this.hasAgentsFlag=aa,this.parentGraph&&this.parentGraph.setHasAgents(aa),this}hasAgents(){return this.hasAgentsFlag}canCache(){return!this.hasAgentsFlag}setIsLoopBody(){return this.loopBody=!0,this}isLoopBody(){return this.loopBody}asObject(){const aa=new Array;return this.rootNodes.forEach(ca=>{var ua;const Sa=ca.asObject();if(ca.subGraphIndex>=0){const hl=this.subGraphs[ca.subGraphIndex],pl=hl.asObject();if(ca.subGraphType==SubGraphType.FOR_EACH){const ml=ca.code;Sa.var=(ua=ml.pattern.forEach)===null||ua===void 0?void 0:ua.var,Sa.source=pl,Sa.body=hl.fetchForEachBodySubGraph().asObject()}else if(ca.subGraphType==SubGraphType.IF){Sa.condition=pl,Sa.body=hl.fetchIfConsequentSubGraph().asObject();const ml=hl.fetchIfAlternativeSubGraph();ml&&(Sa.else=ml.asObject())}else Sa.subGraph=pl}aa.push(Sa)}),aa}}ExecGraph.Empty=new ExecGraph;var RuntimeModeTag;(function(la){la[la.DEV=0]="DEV",la[la.PROD=1]="PROD",la[la.TEST=2]="TEST",la[la.INIT_SCHEMA=3]="INIT_SCHEMA",la[la.RUN_MIGRATION=4]="RUN_MIGRATION",la[la.UNDO_MIGRATION=5]="UNDO_MIGRATION",la[la.GENERATE_MIGRATION=6]="GENERATE_MIGRATION"})(RuntimeModeTag||(RuntimeModeTag={}));RuntimeModeTag.DEV;let DailyRotateFile,winston;isNodeEnv&&(await __vitePreload(()=>import("./index-D4z_hbl0-7apY8tMF.js"),__vite__mapDeps([12,11,13,1,3,9,5,14,15,16,17,18,19,10,20,21,4])).then(la=>la.i).then(la=>{DailyRotateFile=la.default}),await __vitePreload(()=>import("./winston-CtxF18qc-DXziPzs7.js"),__vite__mapDeps([22,11,13,1,3,9,5,14,15,16,18,19,10,20,21,17,4])).then(la=>la.w).then(la=>{winston=la.default}));let logger$1;function getLogLevel(){var la;return isNodeEnv&&E$a.env&&E$a.env.DEBUG?"debug":((la=void 0)===null||la===void 0?void 0:la.level)||"info"}function initializeLogger(){const la=getLogLevel();if(isNodeEnv){const aa=new DailyRotateFile({level:la,filename:"logs/app-%DATE%.log",datePattern:"YYYY-MM-DD",maxSize:"20m",maxFiles:"7d"});logger$1=winston.createLogger({level:la,format:winston.format.combine(winston.format.timestamp(),winston.format.printf(({timestamp:ca,level:ua,message:Sa})=>`[${ca}] ${ua}: ${Sa}`)),transports:[aa]})}else{let aa=function(ca){return ua=>{console.log(`${ca}: ${ua}`)}};logger$1={debug:aa("DEBUG"),info:aa("INFO"),warn:aa("WARN"),error:aa("ERROR")}}}initializeLogger();const PlannerInstructions=`Agentlang is a very-high-level declarative language that makes it easy to define business applications as 'models'.
|
|
16177
|
+
`))}async function introspect(la){let aa=[];const ca=await parse$2$1(`module Temp workflow Test {${la}}`);if(maybeRaiseParserErrors(ca),isWorkflowDefinition(ca.parseResult.value.defs[0]))aa=introspectHelper(ca.parseResult.value.defs[0].statements);else throw new Error("Failed to parse statements");return aa}function introspectHelper(la){const aa=[];return la.forEach(ca=>{aa.push(introspectStatement(ca))}),aa}function introspectStatement(la){const aa=introspectPattern(la.pattern),ca=firstAliasSpec(la);ca&&(ca.alias?aa.setAlias(ca.alias):ca.aliases.length>0&&aa.setAliases(ca.aliases));const ua=firstCatchSpec(la);return ua&&ua.handlers.forEach(Sa=>{aa.addHandler(Sa.except,introspectStatement(Sa.stmt))}),aa}function introspectPattern(la){let aa;if(la.crudMap?(isQueryPattern(la)?aa=introspectQueryPattern(la.crudMap):aa=introspectCreatePattern(la.crudMap),la.crudMap.into&&(aa=introspectInto(la.crudMap.into,aa))):la.expr?aa=introspectExpression(la.expr):la.forEach?aa=introspectForEach(la.forEach):la.if?aa=introspectIf(la.if):la.delete?aa=introspectDelete(la.delete):la.return?aa=introspectReturn(la.return):la.fullTextSearch&&(aa=introspectFullTextSearch(la.fullTextSearch)),aa)return aa;throw new Error(`Failed to introspect pattern: ${la}`)}function introspectInto(la,aa){return la.entries.forEach(ca=>{ca.attribute&&aa.addInto(ca.alias,ca.attribute)}),aa}function isQueryPattern(la){if(la.crudMap){const aa=la.crudMap,ca=aa.name.endsWith(QuerySuffix);return!ca&&aa.body?aa.body.attributes.length>0&&aa.body.attributes.every(ua=>ua.name.endsWith(QuerySuffix)):ca}return!1}function introspectGroup(la){return new GroupExpressionPattern(introspectExpression(la.ge))}function introspectNegExpr(la){return new NegExpressionPattern(introspectExpression(la.ne))}function introspectNotExpr(la){return new NotExpressionPattern(introspectExpression(la.ne))}function introspectPrimExpr(la){if(isLiteral(la))return introspectLiteral(la);if(isGroup(la))return introspectGroup(la);if(isNegExpr(la))return introspectNegExpr(la);if(isNotExpr(la))return introspectNotExpr(la);throw new Error(`Not a PrimExpr - ${la}`)}function introspectExpression(la){if(la!==void 0){if(isPrimExpr(la))return introspectPrimExpr(la);if(la.$cstNode)return new ExpressionPattern(la.$cstNode.text)}throw new Error("Failed to introspect expression - "+la)}function introspectQueryPattern(la){var aa;if(la){const ca=new CrudPattern(la.name);return(aa=la.body)===null||aa===void 0||aa.attributes.forEach(ua=>{ca.addAttribute(ua.name,introspectExpression(ua.value),ua.op)}),la.relationships.forEach(ua=>{ca.addRelationship(ua.name,introspectPattern(ua.pattern))}),ca.isCreate=!1,ca.isQueryUpdate=!1,ca.isQuery=!0,ca}throw new Error(`Failed to introspect query-pattern: ${la}`)}function introspectCreatePattern(la){var aa;if(la){const ca=new CrudPattern(la.name);ca.isCreate=!1,ca.isQuery=!1;let ua=!1;return(aa=la.body)===null||aa===void 0||aa.attributes.forEach(Sa=>{!ua&&Sa.name.endsWith(QuerySuffix)&&(ua=!0),ca.addAttribute(Sa.name,introspectExpression(Sa.value),Sa.op)}),la.relationships.forEach(Sa=>{ca.addRelationship(Sa.name,introspectPattern(Sa.pattern))}),ca.isQueryUpdate=ua,ua?(ca.isCreate=!1,ca.isQuery=!1):(ca.isCreate=!0,ca.isQuery=!1),ca}throw new Error(`Failed to introspect create-pattern: ${la}`)}function asFnCallPattern(la){return new FunctionCallPattern(la.name,la.args.map(aa=>isExpr(aa)?introspectExpression(aa):introspectLiteral(aa)))}function introspectLiteral(la){if(la.id)return LiteralPattern.Id(la.id);if(la.num)return LiteralPattern.Number(la.num);if(la.ref)return LiteralPattern.Reference(la.ref);if(la.str!==void 0)return LiteralPattern.String(la.str);if(la.bool)return LiteralPattern.Boolean(la.bool=="true");if(la.fnCall)return asFnCallPattern(la.fnCall);if(la.asyncFnCall)return asFnCallPattern(la.asyncFnCall.fnCall).asAsync();if(la.array)return LiteralPattern.Array(la.array.vals.map(aa=>introspectStatement(aa)));if(la.map)return introspectMapLiteral(la.map);throw new Error(`Invalid literal - ${la}`)}function introspectMapLiteral(la){const aa=new Map;return la.entries.forEach(ca=>{aa.set(ca.key,introspectExpression(ca.value))}),LiteralPattern.Map(aa)}function introspectForEach(la){const aa=new ForEachPattern(la.var,introspectPattern(la.src));return la.statements.forEach(ca=>{aa.addPattern(introspectStatement(ca))}),aa}function introspectIf(la){const aa=new IfPattern(introspectExpression(la.cond));return la.statements.forEach(ca=>{aa.addPattern(introspectStatement(ca))}),la.else&&aa.setElse(la.else.statements.map(ca=>introspectStatement(ca))),aa}function introspectDelete(la){return new DeletePattern(introspectPattern(la.pattern))}function introspectReturn(la){return new ReturnPattern(introspectPattern(la.pattern))}function introspectFullTextSearch(la){let aa;return la.options&&(aa=introspectMapLiteral(la.options)),new FullTextSearchPattern(la.name,introspectLiteral(la.query),aa)}var util$1$1;(function(la){la.assertEqual=Sa=>{};function aa(Sa){}la.assertIs=aa;function ca(Sa){throw new Error}la.assertNever=ca,la.arrayToEnum=Sa=>{const hl={};for(const pl of Sa)hl[pl]=pl;return hl},la.getValidEnumValues=Sa=>{const hl=la.objectKeys(Sa).filter(ml=>typeof Sa[Sa[ml]]!="number"),pl={};for(const ml of hl)pl[ml]=Sa[ml];return la.objectValues(pl)},la.objectValues=Sa=>la.objectKeys(Sa).map(function(hl){return Sa[hl]}),la.objectKeys=typeof Object.keys=="function"?Sa=>Object.keys(Sa):Sa=>{const hl=[];for(const pl in Sa)Object.prototype.hasOwnProperty.call(Sa,pl)&&hl.push(pl);return hl},la.find=(Sa,hl)=>{for(const pl of Sa)if(hl(pl))return pl},la.isInteger=typeof Number.isInteger=="function"?Sa=>Number.isInteger(Sa):Sa=>typeof Sa=="number"&&Number.isFinite(Sa)&&Math.floor(Sa)===Sa;function ua(Sa,hl=" | "){return Sa.map(pl=>typeof pl=="string"?`'${pl}'`:pl).join(hl)}la.joinValues=ua,la.jsonStringifyReplacer=(Sa,hl)=>typeof hl=="bigint"?hl.toString():hl})(util$1$1||(util$1$1={}));var objectUtil;(function(la){la.mergeShapes=(aa,ca)=>({...aa,...ca})})(objectUtil||(objectUtil={}));const ZodParsedType=util$1$1.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),getParsedType=la=>{switch(typeof la){case"undefined":return ZodParsedType.undefined;case"string":return ZodParsedType.string;case"number":return Number.isNaN(la)?ZodParsedType.nan:ZodParsedType.number;case"boolean":return ZodParsedType.boolean;case"function":return ZodParsedType.function;case"bigint":return ZodParsedType.bigint;case"symbol":return ZodParsedType.symbol;case"object":return Array.isArray(la)?ZodParsedType.array:la===null?ZodParsedType.null:la.then&&typeof la.then=="function"&&la.catch&&typeof la.catch=="function"?ZodParsedType.promise:typeof Map<"u"&&la instanceof Map?ZodParsedType.map:typeof Set<"u"&&la instanceof Set?ZodParsedType.set:typeof Date<"u"&&la instanceof Date?ZodParsedType.date:ZodParsedType.object;default:return ZodParsedType.unknown}},ZodIssueCode=util$1$1.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class ZodError extends Error{get errors(){return this.issues}constructor(aa){super(),this.issues=[],this.addIssue=ua=>{this.issues=[...this.issues,ua]},this.addIssues=(ua=[])=>{this.issues=[...this.issues,...ua]};const ca=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,ca):this.__proto__=ca,this.name="ZodError",this.issues=aa}format(aa){const ca=aa||function(hl){return hl.message},ua={_errors:[]},Sa=hl=>{for(const pl of hl.issues)if(pl.code==="invalid_union")pl.unionErrors.map(Sa);else if(pl.code==="invalid_return_type")Sa(pl.returnTypeError);else if(pl.code==="invalid_arguments")Sa(pl.argumentsError);else if(pl.path.length===0)ua._errors.push(ca(pl));else{let ml=ua,gl=0;for(;gl<pl.path.length;){const wc=pl.path[gl];gl===pl.path.length-1?(ml[wc]=ml[wc]||{_errors:[]},ml[wc]._errors.push(ca(pl))):ml[wc]=ml[wc]||{_errors:[]},ml=ml[wc],gl++}}};return Sa(this),ua}static assert(aa){if(!(aa instanceof ZodError))throw new Error(`Not a ZodError: ${aa}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,util$1$1.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(aa=ca=>ca.message){const ca={},ua=[];for(const Sa of this.issues)if(Sa.path.length>0){const hl=Sa.path[0];ca[hl]=ca[hl]||[],ca[hl].push(aa(Sa))}else ua.push(aa(Sa));return{formErrors:ua,fieldErrors:ca}}get formErrors(){return this.flatten()}}ZodError.create=la=>new ZodError(la);const errorMap=(la,aa)=>{let ca;switch(la.code){case ZodIssueCode.invalid_type:la.received===ZodParsedType.undefined?ca="Required":ca=`Expected ${la.expected}, received ${la.received}`;break;case ZodIssueCode.invalid_literal:ca=`Invalid literal value, expected ${JSON.stringify(la.expected,util$1$1.jsonStringifyReplacer)}`;break;case ZodIssueCode.unrecognized_keys:ca=`Unrecognized key(s) in object: ${util$1$1.joinValues(la.keys,", ")}`;break;case ZodIssueCode.invalid_union:ca="Invalid input";break;case ZodIssueCode.invalid_union_discriminator:ca=`Invalid discriminator value. Expected ${util$1$1.joinValues(la.options)}`;break;case ZodIssueCode.invalid_enum_value:ca=`Invalid enum value. Expected ${util$1$1.joinValues(la.options)}, received '${la.received}'`;break;case ZodIssueCode.invalid_arguments:ca="Invalid function arguments";break;case ZodIssueCode.invalid_return_type:ca="Invalid function return type";break;case ZodIssueCode.invalid_date:ca="Invalid date";break;case ZodIssueCode.invalid_string:typeof la.validation=="object"?"includes"in la.validation?(ca=`Invalid input: must include "${la.validation.includes}"`,typeof la.validation.position=="number"&&(ca=`${ca} at one or more positions greater than or equal to ${la.validation.position}`)):"startsWith"in la.validation?ca=`Invalid input: must start with "${la.validation.startsWith}"`:"endsWith"in la.validation?ca=`Invalid input: must end with "${la.validation.endsWith}"`:util$1$1.assertNever(la.validation):la.validation!=="regex"?ca=`Invalid ${la.validation}`:ca="Invalid";break;case ZodIssueCode.too_small:la.type==="array"?ca=`Array must contain ${la.exact?"exactly":la.inclusive?"at least":"more than"} ${la.minimum} element(s)`:la.type==="string"?ca=`String must contain ${la.exact?"exactly":la.inclusive?"at least":"over"} ${la.minimum} character(s)`:la.type==="number"?ca=`Number must be ${la.exact?"exactly equal to ":la.inclusive?"greater than or equal to ":"greater than "}${la.minimum}`:la.type==="bigint"?ca=`Number must be ${la.exact?"exactly equal to ":la.inclusive?"greater than or equal to ":"greater than "}${la.minimum}`:la.type==="date"?ca=`Date must be ${la.exact?"exactly equal to ":la.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(la.minimum))}`:ca="Invalid input";break;case ZodIssueCode.too_big:la.type==="array"?ca=`Array must contain ${la.exact?"exactly":la.inclusive?"at most":"less than"} ${la.maximum} element(s)`:la.type==="string"?ca=`String must contain ${la.exact?"exactly":la.inclusive?"at most":"under"} ${la.maximum} character(s)`:la.type==="number"?ca=`Number must be ${la.exact?"exactly":la.inclusive?"less than or equal to":"less than"} ${la.maximum}`:la.type==="bigint"?ca=`BigInt must be ${la.exact?"exactly":la.inclusive?"less than or equal to":"less than"} ${la.maximum}`:la.type==="date"?ca=`Date must be ${la.exact?"exactly":la.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(la.maximum))}`:ca="Invalid input";break;case ZodIssueCode.custom:ca="Invalid input";break;case ZodIssueCode.invalid_intersection_types:ca="Intersection results could not be merged";break;case ZodIssueCode.not_multiple_of:ca=`Number must be a multiple of ${la.multipleOf}`;break;case ZodIssueCode.not_finite:ca="Number must be finite";break;default:ca=aa.defaultError,util$1$1.assertNever(la)}return{message:ca}};let overrideErrorMap=errorMap;function getErrorMap(){return overrideErrorMap}const makeIssue=la=>{const{data:aa,path:ca,errorMaps:ua,issueData:Sa}=la,hl=[...ca,...Sa.path||[]],pl={...Sa,path:hl};if(Sa.message!==void 0)return{...Sa,path:hl,message:Sa.message};let ml="";const gl=ua.filter(wc=>!!wc).slice().reverse();for(const wc of gl)ml=wc(pl,{data:aa,defaultError:ml}).message;return{...Sa,path:hl,message:ml}};function addIssueToContext(la,aa){const ca=getErrorMap(),ua=makeIssue({issueData:aa,data:la.data,path:la.path,errorMaps:[la.common.contextualErrorMap,la.schemaErrorMap,ca,ca===errorMap?void 0:errorMap].filter(Sa=>!!Sa)});la.common.issues.push(ua)}class ParseStatus{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(aa,ca){const ua=[];for(const Sa of ca){if(Sa.status==="aborted")return INVALID;Sa.status==="dirty"&&aa.dirty(),ua.push(Sa.value)}return{status:aa.value,value:ua}}static async mergeObjectAsync(aa,ca){const ua=[];for(const Sa of ca){const hl=await Sa.key,pl=await Sa.value;ua.push({key:hl,value:pl})}return ParseStatus.mergeObjectSync(aa,ua)}static mergeObjectSync(aa,ca){const ua={};for(const Sa of ca){const{key:hl,value:pl}=Sa;if(hl.status==="aborted"||pl.status==="aborted")return INVALID;hl.status==="dirty"&&aa.dirty(),pl.status==="dirty"&&aa.dirty(),hl.value!=="__proto__"&&(typeof pl.value<"u"||Sa.alwaysSet)&&(ua[hl.value]=pl.value)}return{status:aa.value,value:ua}}}const INVALID=Object.freeze({status:"aborted"}),DIRTY=la=>({status:"dirty",value:la}),OK=la=>({status:"valid",value:la}),isAborted=la=>la.status==="aborted",isDirty=la=>la.status==="dirty",isValid=la=>la.status==="valid",isAsync=la=>typeof Promise<"u"&&la instanceof Promise;var errorUtil;(function(la){la.errToObj=aa=>typeof aa=="string"?{message:aa}:aa||{},la.toString=aa=>typeof aa=="string"?aa:aa?.message})(errorUtil||(errorUtil={}));class ParseInputLazyPath{constructor(aa,ca,ua,Sa){this._cachedPath=[],this.parent=aa,this.data=ca,this._path=ua,this._key=Sa}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const handleResult=(la,aa)=>{if(isValid(aa))return{success:!0,data:aa.value};if(!la.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const ca=new ZodError(la.common.issues);return this._error=ca,this._error}}};function processCreateParams(la){if(!la)return{};const{errorMap:aa,invalid_type_error:ca,required_error:ua,description:Sa}=la;if(aa&&(ca||ua))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return aa?{errorMap:aa,description:Sa}:{errorMap:(hl,pl)=>{const{message:ml}=la;return hl.code==="invalid_enum_value"?{message:ml??pl.defaultError}:typeof pl.data>"u"?{message:ml??ua??pl.defaultError}:hl.code!=="invalid_type"?{message:pl.defaultError}:{message:ml??ca??pl.defaultError}},description:Sa}}class ZodType{get description(){return this._def.description}_getType(aa){return getParsedType(aa.data)}_getOrReturnCtx(aa,ca){return ca||{common:aa.parent.common,data:aa.data,parsedType:getParsedType(aa.data),schemaErrorMap:this._def.errorMap,path:aa.path,parent:aa.parent}}_processInputParams(aa){return{status:new ParseStatus,ctx:{common:aa.parent.common,data:aa.data,parsedType:getParsedType(aa.data),schemaErrorMap:this._def.errorMap,path:aa.path,parent:aa.parent}}}_parseSync(aa){const ca=this._parse(aa);if(isAsync(ca))throw new Error("Synchronous parse encountered promise.");return ca}_parseAsync(aa){const ca=this._parse(aa);return Promise.resolve(ca)}parse(aa,ca){const ua=this.safeParse(aa,ca);if(ua.success)return ua.data;throw ua.error}safeParse(aa,ca){const ua={common:{issues:[],async:ca?.async??!1,contextualErrorMap:ca?.errorMap},path:ca?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:aa,parsedType:getParsedType(aa)},Sa=this._parseSync({data:aa,path:ua.path,parent:ua});return handleResult(ua,Sa)}"~validate"(aa){const ca={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:aa,parsedType:getParsedType(aa)};if(!this["~standard"].async)try{const ua=this._parseSync({data:aa,path:[],parent:ca});return isValid(ua)?{value:ua.value}:{issues:ca.common.issues}}catch(ua){ua?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),ca.common={issues:[],async:!0}}return this._parseAsync({data:aa,path:[],parent:ca}).then(ua=>isValid(ua)?{value:ua.value}:{issues:ca.common.issues})}async parseAsync(aa,ca){const ua=await this.safeParseAsync(aa,ca);if(ua.success)return ua.data;throw ua.error}async safeParseAsync(aa,ca){const ua={common:{issues:[],contextualErrorMap:ca?.errorMap,async:!0},path:ca?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:aa,parsedType:getParsedType(aa)},Sa=this._parse({data:aa,path:ua.path,parent:ua}),hl=await(isAsync(Sa)?Sa:Promise.resolve(Sa));return handleResult(ua,hl)}refine(aa,ca){const ua=Sa=>typeof ca=="string"||typeof ca>"u"?{message:ca}:typeof ca=="function"?ca(Sa):ca;return this._refinement((Sa,hl)=>{const pl=aa(Sa),ml=()=>hl.addIssue({code:ZodIssueCode.custom,...ua(Sa)});return typeof Promise<"u"&&pl instanceof Promise?pl.then(gl=>gl?!0:(ml(),!1)):pl?!0:(ml(),!1)})}refinement(aa,ca){return this._refinement((ua,Sa)=>aa(ua)?!0:(Sa.addIssue(typeof ca=="function"?ca(ua,Sa):ca),!1))}_refinement(aa){return new ZodEffects({schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"refinement",refinement:aa}})}superRefine(aa){return this._refinement(aa)}constructor(aa){this.spa=this.safeParseAsync,this._def=aa,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:ca=>this["~validate"](ca)}}optional(){return ZodOptional.create(this,this._def)}nullable(){return ZodNullable.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ZodArray.create(this)}promise(){return ZodPromise.create(this,this._def)}or(aa){return ZodUnion.create([this,aa],this._def)}and(aa){return ZodIntersection.create(this,aa,this._def)}transform(aa){return new ZodEffects({...processCreateParams(this._def),schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"transform",transform:aa}})}default(aa){const ca=typeof aa=="function"?aa:()=>aa;return new ZodDefault({...processCreateParams(this._def),innerType:this,defaultValue:ca,typeName:ZodFirstPartyTypeKind.ZodDefault})}brand(){return new ZodBranded({typeName:ZodFirstPartyTypeKind.ZodBranded,type:this,...processCreateParams(this._def)})}catch(aa){const ca=typeof aa=="function"?aa:()=>aa;return new ZodCatch({...processCreateParams(this._def),innerType:this,catchValue:ca,typeName:ZodFirstPartyTypeKind.ZodCatch})}describe(aa){const ca=this.constructor;return new ca({...this._def,description:aa})}pipe(aa){return ZodPipeline.create(this,aa)}readonly(){return ZodReadonly.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const cuidRegex=/^c[^\s-]{8,}$/i,cuid2Regex=/^[0-9a-z]+$/,ulidRegex=/^[0-9A-HJKMNP-TV-Z]{26}$/i,uuidRegex=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,nanoidRegex=/^[a-z0-9_-]{21}$/i,jwtRegex=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,durationRegex=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,emailRegex=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,_emojiRegex="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let emojiRegex$2;const ipv4Regex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4CidrRegex=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6Regex=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,ipv6CidrRegex=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64Regex=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64urlRegex=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,dateRegexSource="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",dateRegex=new RegExp(`^${dateRegexSource}$`);function timeRegexSource(la){let aa="[0-5]\\d";la.precision?aa=`${aa}\\.\\d{${la.precision}}`:la.precision==null&&(aa=`${aa}(\\.\\d+)?`);const ca=la.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${aa})${ca}`}function timeRegex(la){return new RegExp(`^${timeRegexSource(la)}$`)}function datetimeRegex(la){let aa=`${dateRegexSource}T${timeRegexSource(la)}`;const ca=[];return ca.push(la.local?"Z?":"Z"),la.offset&&ca.push("([+-]\\d{2}:?\\d{2})"),aa=`${aa}(${ca.join("|")})`,new RegExp(`^${aa}$`)}function isValidIP(la,aa){return!!((aa==="v4"||!aa)&&ipv4Regex.test(la)||(aa==="v6"||!aa)&&ipv6Regex.test(la))}function isValidJWT(la,aa){if(!jwtRegex.test(la))return!1;try{const[ca]=la.split(".");if(!ca)return!1;const ua=ca.replace(/-/g,"+").replace(/_/g,"/").padEnd(ca.length+(4-ca.length%4)%4,"="),Sa=JSON.parse(atob(ua));return!(typeof Sa!="object"||Sa===null||"typ"in Sa&&Sa?.typ!=="JWT"||!Sa.alg||aa&&Sa.alg!==aa)}catch{return!1}}function isValidCidr(la,aa){return!!((aa==="v4"||!aa)&&ipv4CidrRegex.test(la)||(aa==="v6"||!aa)&&ipv6CidrRegex.test(la))}class ZodString extends ZodType{_parse(aa){if(this._def.coerce&&(aa.data=String(aa.data)),this._getType(aa)!==ZodParsedType.string){const Sa=this._getOrReturnCtx(aa);return addIssueToContext(Sa,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.string,received:Sa.parsedType}),INVALID}const ca=new ParseStatus;let ua;for(const Sa of this._def.checks)if(Sa.kind==="min")aa.data.length<Sa.value&&(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.too_small,minimum:Sa.value,type:"string",inclusive:!0,exact:!1,message:Sa.message}),ca.dirty());else if(Sa.kind==="max")aa.data.length>Sa.value&&(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.too_big,maximum:Sa.value,type:"string",inclusive:!0,exact:!1,message:Sa.message}),ca.dirty());else if(Sa.kind==="length"){const hl=aa.data.length>Sa.value,pl=aa.data.length<Sa.value;(hl||pl)&&(ua=this._getOrReturnCtx(aa,ua),hl?addIssueToContext(ua,{code:ZodIssueCode.too_big,maximum:Sa.value,type:"string",inclusive:!0,exact:!0,message:Sa.message}):pl&&addIssueToContext(ua,{code:ZodIssueCode.too_small,minimum:Sa.value,type:"string",inclusive:!0,exact:!0,message:Sa.message}),ca.dirty())}else if(Sa.kind==="email")emailRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"email",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty());else if(Sa.kind==="emoji")emojiRegex$2||(emojiRegex$2=new RegExp(_emojiRegex,"u")),emojiRegex$2.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"emoji",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty());else if(Sa.kind==="uuid")uuidRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"uuid",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty());else if(Sa.kind==="nanoid")nanoidRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"nanoid",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty());else if(Sa.kind==="cuid")cuidRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"cuid",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty());else if(Sa.kind==="cuid2")cuid2Regex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"cuid2",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty());else if(Sa.kind==="ulid")ulidRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"ulid",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty());else if(Sa.kind==="url")try{new URL(aa.data)}catch{ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"url",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty()}else Sa.kind==="regex"?(Sa.regex.lastIndex=0,Sa.regex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"regex",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty())):Sa.kind==="trim"?aa.data=aa.data.trim():Sa.kind==="includes"?aa.data.includes(Sa.value,Sa.position)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.invalid_string,validation:{includes:Sa.value,position:Sa.position},message:Sa.message}),ca.dirty()):Sa.kind==="toLowerCase"?aa.data=aa.data.toLowerCase():Sa.kind==="toUpperCase"?aa.data=aa.data.toUpperCase():Sa.kind==="startsWith"?aa.data.startsWith(Sa.value)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.invalid_string,validation:{startsWith:Sa.value},message:Sa.message}),ca.dirty()):Sa.kind==="endsWith"?aa.data.endsWith(Sa.value)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.invalid_string,validation:{endsWith:Sa.value},message:Sa.message}),ca.dirty()):Sa.kind==="datetime"?datetimeRegex(Sa).test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.invalid_string,validation:"datetime",message:Sa.message}),ca.dirty()):Sa.kind==="date"?dateRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.invalid_string,validation:"date",message:Sa.message}),ca.dirty()):Sa.kind==="time"?timeRegex(Sa).test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.invalid_string,validation:"time",message:Sa.message}),ca.dirty()):Sa.kind==="duration"?durationRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"duration",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty()):Sa.kind==="ip"?isValidIP(aa.data,Sa.version)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"ip",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty()):Sa.kind==="jwt"?isValidJWT(aa.data,Sa.alg)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"jwt",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty()):Sa.kind==="cidr"?isValidCidr(aa.data,Sa.version)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"cidr",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty()):Sa.kind==="base64"?base64Regex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"base64",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty()):Sa.kind==="base64url"?base64urlRegex.test(aa.data)||(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{validation:"base64url",code:ZodIssueCode.invalid_string,message:Sa.message}),ca.dirty()):util$1$1.assertNever(Sa);return{status:ca.value,value:aa.data}}_regex(aa,ca,ua){return this.refinement(Sa=>aa.test(Sa),{validation:ca,code:ZodIssueCode.invalid_string,...errorUtil.errToObj(ua)})}_addCheck(aa){return new ZodString({...this._def,checks:[...this._def.checks,aa]})}email(aa){return this._addCheck({kind:"email",...errorUtil.errToObj(aa)})}url(aa){return this._addCheck({kind:"url",...errorUtil.errToObj(aa)})}emoji(aa){return this._addCheck({kind:"emoji",...errorUtil.errToObj(aa)})}uuid(aa){return this._addCheck({kind:"uuid",...errorUtil.errToObj(aa)})}nanoid(aa){return this._addCheck({kind:"nanoid",...errorUtil.errToObj(aa)})}cuid(aa){return this._addCheck({kind:"cuid",...errorUtil.errToObj(aa)})}cuid2(aa){return this._addCheck({kind:"cuid2",...errorUtil.errToObj(aa)})}ulid(aa){return this._addCheck({kind:"ulid",...errorUtil.errToObj(aa)})}base64(aa){return this._addCheck({kind:"base64",...errorUtil.errToObj(aa)})}base64url(aa){return this._addCheck({kind:"base64url",...errorUtil.errToObj(aa)})}jwt(aa){return this._addCheck({kind:"jwt",...errorUtil.errToObj(aa)})}ip(aa){return this._addCheck({kind:"ip",...errorUtil.errToObj(aa)})}cidr(aa){return this._addCheck({kind:"cidr",...errorUtil.errToObj(aa)})}datetime(aa){return typeof aa=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:aa}):this._addCheck({kind:"datetime",precision:typeof aa?.precision>"u"?null:aa?.precision,offset:aa?.offset??!1,local:aa?.local??!1,...errorUtil.errToObj(aa?.message)})}date(aa){return this._addCheck({kind:"date",message:aa})}time(aa){return typeof aa=="string"?this._addCheck({kind:"time",precision:null,message:aa}):this._addCheck({kind:"time",precision:typeof aa?.precision>"u"?null:aa?.precision,...errorUtil.errToObj(aa?.message)})}duration(aa){return this._addCheck({kind:"duration",...errorUtil.errToObj(aa)})}regex(aa,ca){return this._addCheck({kind:"regex",regex:aa,...errorUtil.errToObj(ca)})}includes(aa,ca){return this._addCheck({kind:"includes",value:aa,position:ca?.position,...errorUtil.errToObj(ca?.message)})}startsWith(aa,ca){return this._addCheck({kind:"startsWith",value:aa,...errorUtil.errToObj(ca)})}endsWith(aa,ca){return this._addCheck({kind:"endsWith",value:aa,...errorUtil.errToObj(ca)})}min(aa,ca){return this._addCheck({kind:"min",value:aa,...errorUtil.errToObj(ca)})}max(aa,ca){return this._addCheck({kind:"max",value:aa,...errorUtil.errToObj(ca)})}length(aa,ca){return this._addCheck({kind:"length",value:aa,...errorUtil.errToObj(ca)})}nonempty(aa){return this.min(1,errorUtil.errToObj(aa))}trim(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(aa=>aa.kind==="datetime")}get isDate(){return!!this._def.checks.find(aa=>aa.kind==="date")}get isTime(){return!!this._def.checks.find(aa=>aa.kind==="time")}get isDuration(){return!!this._def.checks.find(aa=>aa.kind==="duration")}get isEmail(){return!!this._def.checks.find(aa=>aa.kind==="email")}get isURL(){return!!this._def.checks.find(aa=>aa.kind==="url")}get isEmoji(){return!!this._def.checks.find(aa=>aa.kind==="emoji")}get isUUID(){return!!this._def.checks.find(aa=>aa.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(aa=>aa.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(aa=>aa.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(aa=>aa.kind==="cuid2")}get isULID(){return!!this._def.checks.find(aa=>aa.kind==="ulid")}get isIP(){return!!this._def.checks.find(aa=>aa.kind==="ip")}get isCIDR(){return!!this._def.checks.find(aa=>aa.kind==="cidr")}get isBase64(){return!!this._def.checks.find(aa=>aa.kind==="base64")}get isBase64url(){return!!this._def.checks.find(aa=>aa.kind==="base64url")}get minLength(){let aa=null;for(const ca of this._def.checks)ca.kind==="min"&&(aa===null||ca.value>aa)&&(aa=ca.value);return aa}get maxLength(){let aa=null;for(const ca of this._def.checks)ca.kind==="max"&&(aa===null||ca.value<aa)&&(aa=ca.value);return aa}}ZodString.create=la=>new ZodString({checks:[],typeName:ZodFirstPartyTypeKind.ZodString,coerce:la?.coerce??!1,...processCreateParams(la)});function floatSafeRemainder(la,aa){const ca=(la.toString().split(".")[1]||"").length,ua=(aa.toString().split(".")[1]||"").length,Sa=ca>ua?ca:ua,hl=Number.parseInt(la.toFixed(Sa).replace(".","")),pl=Number.parseInt(aa.toFixed(Sa).replace(".",""));return hl%pl/10**Sa}class ZodNumber extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(aa){if(this._def.coerce&&(aa.data=Number(aa.data)),this._getType(aa)!==ZodParsedType.number){const Sa=this._getOrReturnCtx(aa);return addIssueToContext(Sa,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.number,received:Sa.parsedType}),INVALID}let ca;const ua=new ParseStatus;for(const Sa of this._def.checks)Sa.kind==="int"?util$1$1.isInteger(aa.data)||(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:"integer",received:"float",message:Sa.message}),ua.dirty()):Sa.kind==="min"?(Sa.inclusive?aa.data<Sa.value:aa.data<=Sa.value)&&(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.too_small,minimum:Sa.value,type:"number",inclusive:Sa.inclusive,exact:!1,message:Sa.message}),ua.dirty()):Sa.kind==="max"?(Sa.inclusive?aa.data>Sa.value:aa.data>=Sa.value)&&(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.too_big,maximum:Sa.value,type:"number",inclusive:Sa.inclusive,exact:!1,message:Sa.message}),ua.dirty()):Sa.kind==="multipleOf"?floatSafeRemainder(aa.data,Sa.value)!==0&&(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.not_multiple_of,multipleOf:Sa.value,message:Sa.message}),ua.dirty()):Sa.kind==="finite"?Number.isFinite(aa.data)||(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.not_finite,message:Sa.message}),ua.dirty()):util$1$1.assertNever(Sa);return{status:ua.value,value:aa.data}}gte(aa,ca){return this.setLimit("min",aa,!0,errorUtil.toString(ca))}gt(aa,ca){return this.setLimit("min",aa,!1,errorUtil.toString(ca))}lte(aa,ca){return this.setLimit("max",aa,!0,errorUtil.toString(ca))}lt(aa,ca){return this.setLimit("max",aa,!1,errorUtil.toString(ca))}setLimit(aa,ca,ua,Sa){return new ZodNumber({...this._def,checks:[...this._def.checks,{kind:aa,value:ca,inclusive:ua,message:errorUtil.toString(Sa)}]})}_addCheck(aa){return new ZodNumber({...this._def,checks:[...this._def.checks,aa]})}int(aa){return this._addCheck({kind:"int",message:errorUtil.toString(aa)})}positive(aa){return this._addCheck({kind:"min",value:0,inclusive:!1,message:errorUtil.toString(aa)})}negative(aa){return this._addCheck({kind:"max",value:0,inclusive:!1,message:errorUtil.toString(aa)})}nonpositive(aa){return this._addCheck({kind:"max",value:0,inclusive:!0,message:errorUtil.toString(aa)})}nonnegative(aa){return this._addCheck({kind:"min",value:0,inclusive:!0,message:errorUtil.toString(aa)})}multipleOf(aa,ca){return this._addCheck({kind:"multipleOf",value:aa,message:errorUtil.toString(ca)})}finite(aa){return this._addCheck({kind:"finite",message:errorUtil.toString(aa)})}safe(aa){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:errorUtil.toString(aa)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:errorUtil.toString(aa)})}get minValue(){let aa=null;for(const ca of this._def.checks)ca.kind==="min"&&(aa===null||ca.value>aa)&&(aa=ca.value);return aa}get maxValue(){let aa=null;for(const ca of this._def.checks)ca.kind==="max"&&(aa===null||ca.value<aa)&&(aa=ca.value);return aa}get isInt(){return!!this._def.checks.find(aa=>aa.kind==="int"||aa.kind==="multipleOf"&&util$1$1.isInteger(aa.value))}get isFinite(){let aa=null,ca=null;for(const ua of this._def.checks){if(ua.kind==="finite"||ua.kind==="int"||ua.kind==="multipleOf")return!0;ua.kind==="min"?(ca===null||ua.value>ca)&&(ca=ua.value):ua.kind==="max"&&(aa===null||ua.value<aa)&&(aa=ua.value)}return Number.isFinite(ca)&&Number.isFinite(aa)}}ZodNumber.create=la=>new ZodNumber({checks:[],typeName:ZodFirstPartyTypeKind.ZodNumber,coerce:la?.coerce||!1,...processCreateParams(la)});class ZodBigInt extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(aa){if(this._def.coerce)try{aa.data=BigInt(aa.data)}catch{return this._getInvalidInput(aa)}if(this._getType(aa)!==ZodParsedType.bigint)return this._getInvalidInput(aa);let ca;const ua=new ParseStatus;for(const Sa of this._def.checks)Sa.kind==="min"?(Sa.inclusive?aa.data<Sa.value:aa.data<=Sa.value)&&(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.too_small,type:"bigint",minimum:Sa.value,inclusive:Sa.inclusive,message:Sa.message}),ua.dirty()):Sa.kind==="max"?(Sa.inclusive?aa.data>Sa.value:aa.data>=Sa.value)&&(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.too_big,type:"bigint",maximum:Sa.value,inclusive:Sa.inclusive,message:Sa.message}),ua.dirty()):Sa.kind==="multipleOf"?aa.data%Sa.value!==BigInt(0)&&(ca=this._getOrReturnCtx(aa,ca),addIssueToContext(ca,{code:ZodIssueCode.not_multiple_of,multipleOf:Sa.value,message:Sa.message}),ua.dirty()):util$1$1.assertNever(Sa);return{status:ua.value,value:aa.data}}_getInvalidInput(aa){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.bigint,received:ca.parsedType}),INVALID}gte(aa,ca){return this.setLimit("min",aa,!0,errorUtil.toString(ca))}gt(aa,ca){return this.setLimit("min",aa,!1,errorUtil.toString(ca))}lte(aa,ca){return this.setLimit("max",aa,!0,errorUtil.toString(ca))}lt(aa,ca){return this.setLimit("max",aa,!1,errorUtil.toString(ca))}setLimit(aa,ca,ua,Sa){return new ZodBigInt({...this._def,checks:[...this._def.checks,{kind:aa,value:ca,inclusive:ua,message:errorUtil.toString(Sa)}]})}_addCheck(aa){return new ZodBigInt({...this._def,checks:[...this._def.checks,aa]})}positive(aa){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:errorUtil.toString(aa)})}negative(aa){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:errorUtil.toString(aa)})}nonpositive(aa){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:errorUtil.toString(aa)})}nonnegative(aa){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:errorUtil.toString(aa)})}multipleOf(aa,ca){return this._addCheck({kind:"multipleOf",value:aa,message:errorUtil.toString(ca)})}get minValue(){let aa=null;for(const ca of this._def.checks)ca.kind==="min"&&(aa===null||ca.value>aa)&&(aa=ca.value);return aa}get maxValue(){let aa=null;for(const ca of this._def.checks)ca.kind==="max"&&(aa===null||ca.value<aa)&&(aa=ca.value);return aa}}ZodBigInt.create=la=>new ZodBigInt({checks:[],typeName:ZodFirstPartyTypeKind.ZodBigInt,coerce:la?.coerce??!1,...processCreateParams(la)});class ZodBoolean extends ZodType{_parse(aa){if(this._def.coerce&&(aa.data=!!aa.data),this._getType(aa)!==ZodParsedType.boolean){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.boolean,received:ca.parsedType}),INVALID}return OK(aa.data)}}ZodBoolean.create=la=>new ZodBoolean({typeName:ZodFirstPartyTypeKind.ZodBoolean,coerce:la?.coerce||!1,...processCreateParams(la)});class ZodDate extends ZodType{_parse(aa){if(this._def.coerce&&(aa.data=new Date(aa.data)),this._getType(aa)!==ZodParsedType.date){const Sa=this._getOrReturnCtx(aa);return addIssueToContext(Sa,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.date,received:Sa.parsedType}),INVALID}if(Number.isNaN(aa.data.getTime())){const Sa=this._getOrReturnCtx(aa);return addIssueToContext(Sa,{code:ZodIssueCode.invalid_date}),INVALID}const ca=new ParseStatus;let ua;for(const Sa of this._def.checks)Sa.kind==="min"?aa.data.getTime()<Sa.value&&(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.too_small,message:Sa.message,inclusive:!0,exact:!1,minimum:Sa.value,type:"date"}),ca.dirty()):Sa.kind==="max"?aa.data.getTime()>Sa.value&&(ua=this._getOrReturnCtx(aa,ua),addIssueToContext(ua,{code:ZodIssueCode.too_big,message:Sa.message,inclusive:!0,exact:!1,maximum:Sa.value,type:"date"}),ca.dirty()):util$1$1.assertNever(Sa);return{status:ca.value,value:new Date(aa.data.getTime())}}_addCheck(aa){return new ZodDate({...this._def,checks:[...this._def.checks,aa]})}min(aa,ca){return this._addCheck({kind:"min",value:aa.getTime(),message:errorUtil.toString(ca)})}max(aa,ca){return this._addCheck({kind:"max",value:aa.getTime(),message:errorUtil.toString(ca)})}get minDate(){let aa=null;for(const ca of this._def.checks)ca.kind==="min"&&(aa===null||ca.value>aa)&&(aa=ca.value);return aa!=null?new Date(aa):null}get maxDate(){let aa=null;for(const ca of this._def.checks)ca.kind==="max"&&(aa===null||ca.value<aa)&&(aa=ca.value);return aa!=null?new Date(aa):null}}ZodDate.create=la=>new ZodDate({checks:[],coerce:la?.coerce||!1,typeName:ZodFirstPartyTypeKind.ZodDate,...processCreateParams(la)});class ZodSymbol extends ZodType{_parse(aa){if(this._getType(aa)!==ZodParsedType.symbol){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.symbol,received:ca.parsedType}),INVALID}return OK(aa.data)}}ZodSymbol.create=la=>new ZodSymbol({typeName:ZodFirstPartyTypeKind.ZodSymbol,...processCreateParams(la)});class ZodUndefined extends ZodType{_parse(aa){if(this._getType(aa)!==ZodParsedType.undefined){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.undefined,received:ca.parsedType}),INVALID}return OK(aa.data)}}ZodUndefined.create=la=>new ZodUndefined({typeName:ZodFirstPartyTypeKind.ZodUndefined,...processCreateParams(la)});class ZodNull extends ZodType{_parse(aa){if(this._getType(aa)!==ZodParsedType.null){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.null,received:ca.parsedType}),INVALID}return OK(aa.data)}}ZodNull.create=la=>new ZodNull({typeName:ZodFirstPartyTypeKind.ZodNull,...processCreateParams(la)});class ZodAny extends ZodType{constructor(){super(...arguments),this._any=!0}_parse(aa){return OK(aa.data)}}ZodAny.create=la=>new ZodAny({typeName:ZodFirstPartyTypeKind.ZodAny,...processCreateParams(la)});class ZodUnknown extends ZodType{constructor(){super(...arguments),this._unknown=!0}_parse(aa){return OK(aa.data)}}ZodUnknown.create=la=>new ZodUnknown({typeName:ZodFirstPartyTypeKind.ZodUnknown,...processCreateParams(la)});class ZodNever extends ZodType{_parse(aa){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.never,received:ca.parsedType}),INVALID}}ZodNever.create=la=>new ZodNever({typeName:ZodFirstPartyTypeKind.ZodNever,...processCreateParams(la)});class ZodVoid extends ZodType{_parse(aa){if(this._getType(aa)!==ZodParsedType.undefined){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.void,received:ca.parsedType}),INVALID}return OK(aa.data)}}ZodVoid.create=la=>new ZodVoid({typeName:ZodFirstPartyTypeKind.ZodVoid,...processCreateParams(la)});class ZodArray extends ZodType{_parse(aa){const{ctx:ca,status:ua}=this._processInputParams(aa),Sa=this._def;if(ca.parsedType!==ZodParsedType.array)return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.array,received:ca.parsedType}),INVALID;if(Sa.exactLength!==null){const pl=ca.data.length>Sa.exactLength.value,ml=ca.data.length<Sa.exactLength.value;(pl||ml)&&(addIssueToContext(ca,{code:pl?ZodIssueCode.too_big:ZodIssueCode.too_small,minimum:ml?Sa.exactLength.value:void 0,maximum:pl?Sa.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:Sa.exactLength.message}),ua.dirty())}if(Sa.minLength!==null&&ca.data.length<Sa.minLength.value&&(addIssueToContext(ca,{code:ZodIssueCode.too_small,minimum:Sa.minLength.value,type:"array",inclusive:!0,exact:!1,message:Sa.minLength.message}),ua.dirty()),Sa.maxLength!==null&&ca.data.length>Sa.maxLength.value&&(addIssueToContext(ca,{code:ZodIssueCode.too_big,maximum:Sa.maxLength.value,type:"array",inclusive:!0,exact:!1,message:Sa.maxLength.message}),ua.dirty()),ca.common.async)return Promise.all([...ca.data].map((pl,ml)=>Sa.type._parseAsync(new ParseInputLazyPath(ca,pl,ca.path,ml)))).then(pl=>ParseStatus.mergeArray(ua,pl));const hl=[...ca.data].map((pl,ml)=>Sa.type._parseSync(new ParseInputLazyPath(ca,pl,ca.path,ml)));return ParseStatus.mergeArray(ua,hl)}get element(){return this._def.type}min(aa,ca){return new ZodArray({...this._def,minLength:{value:aa,message:errorUtil.toString(ca)}})}max(aa,ca){return new ZodArray({...this._def,maxLength:{value:aa,message:errorUtil.toString(ca)}})}length(aa,ca){return new ZodArray({...this._def,exactLength:{value:aa,message:errorUtil.toString(ca)}})}nonempty(aa){return this.min(1,aa)}}ZodArray.create=(la,aa)=>new ZodArray({type:la,minLength:null,maxLength:null,exactLength:null,typeName:ZodFirstPartyTypeKind.ZodArray,...processCreateParams(aa)});function deepPartialify(la){if(la instanceof ZodObject){const aa={};for(const ca in la.shape){const ua=la.shape[ca];aa[ca]=ZodOptional.create(deepPartialify(ua))}return new ZodObject({...la._def,shape:()=>aa})}else return la instanceof ZodArray?new ZodArray({...la._def,type:deepPartialify(la.element)}):la instanceof ZodOptional?ZodOptional.create(deepPartialify(la.unwrap())):la instanceof ZodNullable?ZodNullable.create(deepPartialify(la.unwrap())):la instanceof ZodTuple?ZodTuple.create(la.items.map(aa=>deepPartialify(aa))):la}class ZodObject extends ZodType{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const aa=this._def.shape(),ca=util$1$1.objectKeys(aa);return this._cached={shape:aa,keys:ca},this._cached}_parse(aa){if(this._getType(aa)!==ZodParsedType.object){const gl=this._getOrReturnCtx(aa);return addIssueToContext(gl,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:gl.parsedType}),INVALID}const{status:ca,ctx:ua}=this._processInputParams(aa),{shape:Sa,keys:hl}=this._getCached(),pl=[];if(!(this._def.catchall instanceof ZodNever&&this._def.unknownKeys==="strip"))for(const gl in ua.data)hl.includes(gl)||pl.push(gl);const ml=[];for(const gl of hl){const wc=Sa[gl],xu=ua.data[gl];ml.push({key:{status:"valid",value:gl},value:wc._parse(new ParseInputLazyPath(ua,xu,ua.path,gl)),alwaysSet:gl in ua.data})}if(this._def.catchall instanceof ZodNever){const gl=this._def.unknownKeys;if(gl==="passthrough")for(const wc of pl)ml.push({key:{status:"valid",value:wc},value:{status:"valid",value:ua.data[wc]}});else if(gl==="strict")pl.length>0&&(addIssueToContext(ua,{code:ZodIssueCode.unrecognized_keys,keys:pl}),ca.dirty());else if(gl!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const gl=this._def.catchall;for(const wc of pl){const xu=ua.data[wc];ml.push({key:{status:"valid",value:wc},value:gl._parse(new ParseInputLazyPath(ua,xu,ua.path,wc)),alwaysSet:wc in ua.data})}}return ua.common.async?Promise.resolve().then(async()=>{const gl=[];for(const wc of ml){const xu=await wc.key,ff=await wc.value;gl.push({key:xu,value:ff,alwaysSet:wc.alwaysSet})}return gl}).then(gl=>ParseStatus.mergeObjectSync(ca,gl)):ParseStatus.mergeObjectSync(ca,ml)}get shape(){return this._def.shape()}strict(aa){return errorUtil.errToObj,new ZodObject({...this._def,unknownKeys:"strict",...aa!==void 0?{errorMap:(ca,ua)=>{const Sa=this._def.errorMap?.(ca,ua).message??ua.defaultError;return ca.code==="unrecognized_keys"?{message:errorUtil.errToObj(aa).message??Sa}:{message:Sa}}}:{}})}strip(){return new ZodObject({...this._def,unknownKeys:"strip"})}passthrough(){return new ZodObject({...this._def,unknownKeys:"passthrough"})}extend(aa){return new ZodObject({...this._def,shape:()=>({...this._def.shape(),...aa})})}merge(aa){return new ZodObject({unknownKeys:aa._def.unknownKeys,catchall:aa._def.catchall,shape:()=>({...this._def.shape(),...aa._def.shape()}),typeName:ZodFirstPartyTypeKind.ZodObject})}setKey(aa,ca){return this.augment({[aa]:ca})}catchall(aa){return new ZodObject({...this._def,catchall:aa})}pick(aa){const ca={};for(const ua of util$1$1.objectKeys(aa))aa[ua]&&this.shape[ua]&&(ca[ua]=this.shape[ua]);return new ZodObject({...this._def,shape:()=>ca})}omit(aa){const ca={};for(const ua of util$1$1.objectKeys(this.shape))aa[ua]||(ca[ua]=this.shape[ua]);return new ZodObject({...this._def,shape:()=>ca})}deepPartial(){return deepPartialify(this)}partial(aa){const ca={};for(const ua of util$1$1.objectKeys(this.shape)){const Sa=this.shape[ua];aa&&!aa[ua]?ca[ua]=Sa:ca[ua]=Sa.optional()}return new ZodObject({...this._def,shape:()=>ca})}required(aa){const ca={};for(const ua of util$1$1.objectKeys(this.shape))if(aa&&!aa[ua])ca[ua]=this.shape[ua];else{let Sa=this.shape[ua];for(;Sa instanceof ZodOptional;)Sa=Sa._def.innerType;ca[ua]=Sa}return new ZodObject({...this._def,shape:()=>ca})}keyof(){return createZodEnum(util$1$1.objectKeys(this.shape))}}ZodObject.create=(la,aa)=>new ZodObject({shape:()=>la,unknownKeys:"strip",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(aa)});ZodObject.strictCreate=(la,aa)=>new ZodObject({shape:()=>la,unknownKeys:"strict",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(aa)});ZodObject.lazycreate=(la,aa)=>new ZodObject({shape:la,unknownKeys:"strip",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams(aa)});class ZodUnion extends ZodType{_parse(aa){const{ctx:ca}=this._processInputParams(aa),ua=this._def.options;function Sa(hl){for(const ml of hl)if(ml.result.status==="valid")return ml.result;for(const ml of hl)if(ml.result.status==="dirty")return ca.common.issues.push(...ml.ctx.common.issues),ml.result;const pl=hl.map(ml=>new ZodError(ml.ctx.common.issues));return addIssueToContext(ca,{code:ZodIssueCode.invalid_union,unionErrors:pl}),INVALID}if(ca.common.async)return Promise.all(ua.map(async hl=>{const pl={...ca,common:{...ca.common,issues:[]},parent:null};return{result:await hl._parseAsync({data:ca.data,path:ca.path,parent:pl}),ctx:pl}})).then(Sa);{let hl;const pl=[];for(const gl of ua){const wc={...ca,common:{...ca.common,issues:[]},parent:null},xu=gl._parseSync({data:ca.data,path:ca.path,parent:wc});if(xu.status==="valid")return xu;xu.status==="dirty"&&!hl&&(hl={result:xu,ctx:wc}),wc.common.issues.length&&pl.push(wc.common.issues)}if(hl)return ca.common.issues.push(...hl.ctx.common.issues),hl.result;const ml=pl.map(gl=>new ZodError(gl));return addIssueToContext(ca,{code:ZodIssueCode.invalid_union,unionErrors:ml}),INVALID}}get options(){return this._def.options}}ZodUnion.create=(la,aa)=>new ZodUnion({options:la,typeName:ZodFirstPartyTypeKind.ZodUnion,...processCreateParams(aa)});const getDiscriminator=la=>la instanceof ZodLazy?getDiscriminator(la.schema):la instanceof ZodEffects?getDiscriminator(la.innerType()):la instanceof ZodLiteral?[la.value]:la instanceof ZodEnum?la.options:la instanceof ZodNativeEnum?util$1$1.objectValues(la.enum):la instanceof ZodDefault?getDiscriminator(la._def.innerType):la instanceof ZodUndefined?[void 0]:la instanceof ZodNull?[null]:la instanceof ZodOptional?[void 0,...getDiscriminator(la.unwrap())]:la instanceof ZodNullable?[null,...getDiscriminator(la.unwrap())]:la instanceof ZodBranded||la instanceof ZodReadonly?getDiscriminator(la.unwrap()):la instanceof ZodCatch?getDiscriminator(la._def.innerType):[];class ZodDiscriminatedUnion extends ZodType{_parse(aa){const{ctx:ca}=this._processInputParams(aa);if(ca.parsedType!==ZodParsedType.object)return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:ca.parsedType}),INVALID;const ua=this.discriminator,Sa=ca.data[ua],hl=this.optionsMap.get(Sa);return hl?ca.common.async?hl._parseAsync({data:ca.data,path:ca.path,parent:ca}):hl._parseSync({data:ca.data,path:ca.path,parent:ca}):(addIssueToContext(ca,{code:ZodIssueCode.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[ua]}),INVALID)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(aa,ca,ua){const Sa=new Map;for(const hl of ca){const pl=getDiscriminator(hl.shape[aa]);if(!pl.length)throw new Error(`A discriminator value for key \`${aa}\` could not be extracted from all schema options`);for(const ml of pl){if(Sa.has(ml))throw new Error(`Discriminator property ${String(aa)} has duplicate value ${String(ml)}`);Sa.set(ml,hl)}}return new ZodDiscriminatedUnion({typeName:ZodFirstPartyTypeKind.ZodDiscriminatedUnion,discriminator:aa,options:ca,optionsMap:Sa,...processCreateParams(ua)})}}function mergeValues(la,aa){const ca=getParsedType(la),ua=getParsedType(aa);if(la===aa)return{valid:!0,data:la};if(ca===ZodParsedType.object&&ua===ZodParsedType.object){const Sa=util$1$1.objectKeys(aa),hl=util$1$1.objectKeys(la).filter(ml=>Sa.indexOf(ml)!==-1),pl={...la,...aa};for(const ml of hl){const gl=mergeValues(la[ml],aa[ml]);if(!gl.valid)return{valid:!1};pl[ml]=gl.data}return{valid:!0,data:pl}}else if(ca===ZodParsedType.array&&ua===ZodParsedType.array){if(la.length!==aa.length)return{valid:!1};const Sa=[];for(let hl=0;hl<la.length;hl++){const pl=la[hl],ml=aa[hl],gl=mergeValues(pl,ml);if(!gl.valid)return{valid:!1};Sa.push(gl.data)}return{valid:!0,data:Sa}}else return ca===ZodParsedType.date&&ua===ZodParsedType.date&&+la==+aa?{valid:!0,data:la}:{valid:!1}}class ZodIntersection extends ZodType{_parse(aa){const{status:ca,ctx:ua}=this._processInputParams(aa),Sa=(hl,pl)=>{if(isAborted(hl)||isAborted(pl))return INVALID;const ml=mergeValues(hl.value,pl.value);return ml.valid?((isDirty(hl)||isDirty(pl))&&ca.dirty(),{status:ca.value,value:ml.data}):(addIssueToContext(ua,{code:ZodIssueCode.invalid_intersection_types}),INVALID)};return ua.common.async?Promise.all([this._def.left._parseAsync({data:ua.data,path:ua.path,parent:ua}),this._def.right._parseAsync({data:ua.data,path:ua.path,parent:ua})]).then(([hl,pl])=>Sa(hl,pl)):Sa(this._def.left._parseSync({data:ua.data,path:ua.path,parent:ua}),this._def.right._parseSync({data:ua.data,path:ua.path,parent:ua}))}}ZodIntersection.create=(la,aa,ca)=>new ZodIntersection({left:la,right:aa,typeName:ZodFirstPartyTypeKind.ZodIntersection,...processCreateParams(ca)});class ZodTuple extends ZodType{_parse(aa){const{status:ca,ctx:ua}=this._processInputParams(aa);if(ua.parsedType!==ZodParsedType.array)return addIssueToContext(ua,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.array,received:ua.parsedType}),INVALID;if(ua.data.length<this._def.items.length)return addIssueToContext(ua,{code:ZodIssueCode.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),INVALID;!this._def.rest&&ua.data.length>this._def.items.length&&(addIssueToContext(ua,{code:ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),ca.dirty());const Sa=[...ua.data].map((hl,pl)=>{const ml=this._def.items[pl]||this._def.rest;return ml?ml._parse(new ParseInputLazyPath(ua,hl,ua.path,pl)):null}).filter(hl=>!!hl);return ua.common.async?Promise.all(Sa).then(hl=>ParseStatus.mergeArray(ca,hl)):ParseStatus.mergeArray(ca,Sa)}get items(){return this._def.items}rest(aa){return new ZodTuple({...this._def,rest:aa})}}ZodTuple.create=(la,aa)=>{if(!Array.isArray(la))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ZodTuple({items:la,typeName:ZodFirstPartyTypeKind.ZodTuple,rest:null,...processCreateParams(aa)})};class ZodRecord extends ZodType{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(aa){const{status:ca,ctx:ua}=this._processInputParams(aa);if(ua.parsedType!==ZodParsedType.object)return addIssueToContext(ua,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:ua.parsedType}),INVALID;const Sa=[],hl=this._def.keyType,pl=this._def.valueType;for(const ml in ua.data)Sa.push({key:hl._parse(new ParseInputLazyPath(ua,ml,ua.path,ml)),value:pl._parse(new ParseInputLazyPath(ua,ua.data[ml],ua.path,ml)),alwaysSet:ml in ua.data});return ua.common.async?ParseStatus.mergeObjectAsync(ca,Sa):ParseStatus.mergeObjectSync(ca,Sa)}get element(){return this._def.valueType}static create(aa,ca,ua){return ca instanceof ZodType?new ZodRecord({keyType:aa,valueType:ca,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(ua)}):new ZodRecord({keyType:ZodString.create(),valueType:aa,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(ca)})}}class ZodMap extends ZodType{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(aa){const{status:ca,ctx:ua}=this._processInputParams(aa);if(ua.parsedType!==ZodParsedType.map)return addIssueToContext(ua,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.map,received:ua.parsedType}),INVALID;const Sa=this._def.keyType,hl=this._def.valueType,pl=[...ua.data.entries()].map(([ml,gl],wc)=>({key:Sa._parse(new ParseInputLazyPath(ua,ml,ua.path,[wc,"key"])),value:hl._parse(new ParseInputLazyPath(ua,gl,ua.path,[wc,"value"]))}));if(ua.common.async){const ml=new Map;return Promise.resolve().then(async()=>{for(const gl of pl){const wc=await gl.key,xu=await gl.value;if(wc.status==="aborted"||xu.status==="aborted")return INVALID;(wc.status==="dirty"||xu.status==="dirty")&&ca.dirty(),ml.set(wc.value,xu.value)}return{status:ca.value,value:ml}})}else{const ml=new Map;for(const gl of pl){const wc=gl.key,xu=gl.value;if(wc.status==="aborted"||xu.status==="aborted")return INVALID;(wc.status==="dirty"||xu.status==="dirty")&&ca.dirty(),ml.set(wc.value,xu.value)}return{status:ca.value,value:ml}}}}ZodMap.create=(la,aa,ca)=>new ZodMap({valueType:aa,keyType:la,typeName:ZodFirstPartyTypeKind.ZodMap,...processCreateParams(ca)});class ZodSet extends ZodType{_parse(aa){const{status:ca,ctx:ua}=this._processInputParams(aa);if(ua.parsedType!==ZodParsedType.set)return addIssueToContext(ua,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.set,received:ua.parsedType}),INVALID;const Sa=this._def;Sa.minSize!==null&&ua.data.size<Sa.minSize.value&&(addIssueToContext(ua,{code:ZodIssueCode.too_small,minimum:Sa.minSize.value,type:"set",inclusive:!0,exact:!1,message:Sa.minSize.message}),ca.dirty()),Sa.maxSize!==null&&ua.data.size>Sa.maxSize.value&&(addIssueToContext(ua,{code:ZodIssueCode.too_big,maximum:Sa.maxSize.value,type:"set",inclusive:!0,exact:!1,message:Sa.maxSize.message}),ca.dirty());const hl=this._def.valueType;function pl(gl){const wc=new Set;for(const xu of gl){if(xu.status==="aborted")return INVALID;xu.status==="dirty"&&ca.dirty(),wc.add(xu.value)}return{status:ca.value,value:wc}}const ml=[...ua.data.values()].map((gl,wc)=>hl._parse(new ParseInputLazyPath(ua,gl,ua.path,wc)));return ua.common.async?Promise.all(ml).then(gl=>pl(gl)):pl(ml)}min(aa,ca){return new ZodSet({...this._def,minSize:{value:aa,message:errorUtil.toString(ca)}})}max(aa,ca){return new ZodSet({...this._def,maxSize:{value:aa,message:errorUtil.toString(ca)}})}size(aa,ca){return this.min(aa,ca).max(aa,ca)}nonempty(aa){return this.min(1,aa)}}ZodSet.create=(la,aa)=>new ZodSet({valueType:la,minSize:null,maxSize:null,typeName:ZodFirstPartyTypeKind.ZodSet,...processCreateParams(aa)});class ZodLazy extends ZodType{get schema(){return this._def.getter()}_parse(aa){const{ctx:ca}=this._processInputParams(aa);return this._def.getter()._parse({data:ca.data,path:ca.path,parent:ca})}}ZodLazy.create=(la,aa)=>new ZodLazy({getter:la,typeName:ZodFirstPartyTypeKind.ZodLazy,...processCreateParams(aa)});class ZodLiteral extends ZodType{_parse(aa){if(aa.data!==this._def.value){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{received:ca.data,code:ZodIssueCode.invalid_literal,expected:this._def.value}),INVALID}return{status:"valid",value:aa.data}}get value(){return this._def.value}}ZodLiteral.create=(la,aa)=>new ZodLiteral({value:la,typeName:ZodFirstPartyTypeKind.ZodLiteral,...processCreateParams(aa)});function createZodEnum(la,aa){return new ZodEnum({values:la,typeName:ZodFirstPartyTypeKind.ZodEnum,...processCreateParams(aa)})}class ZodEnum extends ZodType{_parse(aa){if(typeof aa.data!="string"){const ca=this._getOrReturnCtx(aa),ua=this._def.values;return addIssueToContext(ca,{expected:util$1$1.joinValues(ua),received:ca.parsedType,code:ZodIssueCode.invalid_type}),INVALID}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(aa.data)){const ca=this._getOrReturnCtx(aa),ua=this._def.values;return addIssueToContext(ca,{received:ca.data,code:ZodIssueCode.invalid_enum_value,options:ua}),INVALID}return OK(aa.data)}get options(){return this._def.values}get enum(){const aa={};for(const ca of this._def.values)aa[ca]=ca;return aa}get Values(){const aa={};for(const ca of this._def.values)aa[ca]=ca;return aa}get Enum(){const aa={};for(const ca of this._def.values)aa[ca]=ca;return aa}extract(aa,ca=this._def){return ZodEnum.create(aa,{...this._def,...ca})}exclude(aa,ca=this._def){return ZodEnum.create(this.options.filter(ua=>!aa.includes(ua)),{...this._def,...ca})}}ZodEnum.create=createZodEnum;class ZodNativeEnum extends ZodType{_parse(aa){const ca=util$1$1.getValidEnumValues(this._def.values),ua=this._getOrReturnCtx(aa);if(ua.parsedType!==ZodParsedType.string&&ua.parsedType!==ZodParsedType.number){const Sa=util$1$1.objectValues(ca);return addIssueToContext(ua,{expected:util$1$1.joinValues(Sa),received:ua.parsedType,code:ZodIssueCode.invalid_type}),INVALID}if(this._cache||(this._cache=new Set(util$1$1.getValidEnumValues(this._def.values))),!this._cache.has(aa.data)){const Sa=util$1$1.objectValues(ca);return addIssueToContext(ua,{received:ua.data,code:ZodIssueCode.invalid_enum_value,options:Sa}),INVALID}return OK(aa.data)}get enum(){return this._def.values}}ZodNativeEnum.create=(la,aa)=>new ZodNativeEnum({values:la,typeName:ZodFirstPartyTypeKind.ZodNativeEnum,...processCreateParams(aa)});class ZodPromise extends ZodType{unwrap(){return this._def.type}_parse(aa){const{ctx:ca}=this._processInputParams(aa);if(ca.parsedType!==ZodParsedType.promise&&ca.common.async===!1)return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.promise,received:ca.parsedType}),INVALID;const ua=ca.parsedType===ZodParsedType.promise?ca.data:Promise.resolve(ca.data);return OK(ua.then(Sa=>this._def.type.parseAsync(Sa,{path:ca.path,errorMap:ca.common.contextualErrorMap})))}}ZodPromise.create=(la,aa)=>new ZodPromise({type:la,typeName:ZodFirstPartyTypeKind.ZodPromise,...processCreateParams(aa)});class ZodEffects extends ZodType{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ZodFirstPartyTypeKind.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(aa){const{status:ca,ctx:ua}=this._processInputParams(aa),Sa=this._def.effect||null,hl={addIssue:pl=>{addIssueToContext(ua,pl),pl.fatal?ca.abort():ca.dirty()},get path(){return ua.path}};if(hl.addIssue=hl.addIssue.bind(hl),Sa.type==="preprocess"){const pl=Sa.transform(ua.data,hl);if(ua.common.async)return Promise.resolve(pl).then(async ml=>{if(ca.value==="aborted")return INVALID;const gl=await this._def.schema._parseAsync({data:ml,path:ua.path,parent:ua});return gl.status==="aborted"?INVALID:gl.status==="dirty"||ca.value==="dirty"?DIRTY(gl.value):gl});{if(ca.value==="aborted")return INVALID;const ml=this._def.schema._parseSync({data:pl,path:ua.path,parent:ua});return ml.status==="aborted"?INVALID:ml.status==="dirty"||ca.value==="dirty"?DIRTY(ml.value):ml}}if(Sa.type==="refinement"){const pl=ml=>{const gl=Sa.refinement(ml,hl);if(ua.common.async)return Promise.resolve(gl);if(gl instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return ml};if(ua.common.async===!1){const ml=this._def.schema._parseSync({data:ua.data,path:ua.path,parent:ua});return ml.status==="aborted"?INVALID:(ml.status==="dirty"&&ca.dirty(),pl(ml.value),{status:ca.value,value:ml.value})}else return this._def.schema._parseAsync({data:ua.data,path:ua.path,parent:ua}).then(ml=>ml.status==="aborted"?INVALID:(ml.status==="dirty"&&ca.dirty(),pl(ml.value).then(()=>({status:ca.value,value:ml.value}))))}if(Sa.type==="transform")if(ua.common.async===!1){const pl=this._def.schema._parseSync({data:ua.data,path:ua.path,parent:ua});if(!isValid(pl))return INVALID;const ml=Sa.transform(pl.value,hl);if(ml instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:ca.value,value:ml}}else return this._def.schema._parseAsync({data:ua.data,path:ua.path,parent:ua}).then(pl=>isValid(pl)?Promise.resolve(Sa.transform(pl.value,hl)).then(ml=>({status:ca.value,value:ml})):INVALID);util$1$1.assertNever(Sa)}}ZodEffects.create=(la,aa,ca)=>new ZodEffects({schema:la,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:aa,...processCreateParams(ca)});ZodEffects.createWithPreprocess=(la,aa,ca)=>new ZodEffects({schema:aa,effect:{type:"preprocess",transform:la},typeName:ZodFirstPartyTypeKind.ZodEffects,...processCreateParams(ca)});class ZodOptional extends ZodType{_parse(aa){return this._getType(aa)===ZodParsedType.undefined?OK(void 0):this._def.innerType._parse(aa)}unwrap(){return this._def.innerType}}ZodOptional.create=(la,aa)=>new ZodOptional({innerType:la,typeName:ZodFirstPartyTypeKind.ZodOptional,...processCreateParams(aa)});class ZodNullable extends ZodType{_parse(aa){return this._getType(aa)===ZodParsedType.null?OK(null):this._def.innerType._parse(aa)}unwrap(){return this._def.innerType}}ZodNullable.create=(la,aa)=>new ZodNullable({innerType:la,typeName:ZodFirstPartyTypeKind.ZodNullable,...processCreateParams(aa)});class ZodDefault extends ZodType{_parse(aa){const{ctx:ca}=this._processInputParams(aa);let ua=ca.data;return ca.parsedType===ZodParsedType.undefined&&(ua=this._def.defaultValue()),this._def.innerType._parse({data:ua,path:ca.path,parent:ca})}removeDefault(){return this._def.innerType}}ZodDefault.create=(la,aa)=>new ZodDefault({innerType:la,typeName:ZodFirstPartyTypeKind.ZodDefault,defaultValue:typeof aa.default=="function"?aa.default:()=>aa.default,...processCreateParams(aa)});class ZodCatch extends ZodType{_parse(aa){const{ctx:ca}=this._processInputParams(aa),ua={...ca,common:{...ca.common,issues:[]}},Sa=this._def.innerType._parse({data:ua.data,path:ua.path,parent:{...ua}});return isAsync(Sa)?Sa.then(hl=>({status:"valid",value:hl.status==="valid"?hl.value:this._def.catchValue({get error(){return new ZodError(ua.common.issues)},input:ua.data})})):{status:"valid",value:Sa.status==="valid"?Sa.value:this._def.catchValue({get error(){return new ZodError(ua.common.issues)},input:ua.data})}}removeCatch(){return this._def.innerType}}ZodCatch.create=(la,aa)=>new ZodCatch({innerType:la,typeName:ZodFirstPartyTypeKind.ZodCatch,catchValue:typeof aa.catch=="function"?aa.catch:()=>aa.catch,...processCreateParams(aa)});class ZodNaN extends ZodType{_parse(aa){if(this._getType(aa)!==ZodParsedType.nan){const ca=this._getOrReturnCtx(aa);return addIssueToContext(ca,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.nan,received:ca.parsedType}),INVALID}return{status:"valid",value:aa.data}}}ZodNaN.create=la=>new ZodNaN({typeName:ZodFirstPartyTypeKind.ZodNaN,...processCreateParams(la)});class ZodBranded extends ZodType{_parse(aa){const{ctx:ca}=this._processInputParams(aa),ua=ca.data;return this._def.type._parse({data:ua,path:ca.path,parent:ca})}unwrap(){return this._def.type}}class ZodPipeline extends ZodType{_parse(aa){const{status:ca,ctx:ua}=this._processInputParams(aa);if(ua.common.async)return(async()=>{const Sa=await this._def.in._parseAsync({data:ua.data,path:ua.path,parent:ua});return Sa.status==="aborted"?INVALID:Sa.status==="dirty"?(ca.dirty(),DIRTY(Sa.value)):this._def.out._parseAsync({data:Sa.value,path:ua.path,parent:ua})})();{const Sa=this._def.in._parseSync({data:ua.data,path:ua.path,parent:ua});return Sa.status==="aborted"?INVALID:Sa.status==="dirty"?(ca.dirty(),{status:"dirty",value:Sa.value}):this._def.out._parseSync({data:Sa.value,path:ua.path,parent:ua})}}static create(aa,ca){return new ZodPipeline({in:aa,out:ca,typeName:ZodFirstPartyTypeKind.ZodPipeline})}}class ZodReadonly extends ZodType{_parse(aa){const ca=this._def.innerType._parse(aa),ua=Sa=>(isValid(Sa)&&(Sa.value=Object.freeze(Sa.value)),Sa);return isAsync(ca)?ca.then(Sa=>ua(Sa)):ua(ca)}unwrap(){return this._def.innerType}}ZodReadonly.create=(la,aa)=>new ZodReadonly({innerType:la,typeName:ZodFirstPartyTypeKind.ZodReadonly,...processCreateParams(aa)});var ZodFirstPartyTypeKind;(function(la){la.ZodString="ZodString",la.ZodNumber="ZodNumber",la.ZodNaN="ZodNaN",la.ZodBigInt="ZodBigInt",la.ZodBoolean="ZodBoolean",la.ZodDate="ZodDate",la.ZodSymbol="ZodSymbol",la.ZodUndefined="ZodUndefined",la.ZodNull="ZodNull",la.ZodAny="ZodAny",la.ZodUnknown="ZodUnknown",la.ZodNever="ZodNever",la.ZodVoid="ZodVoid",la.ZodArray="ZodArray",la.ZodObject="ZodObject",la.ZodUnion="ZodUnion",la.ZodDiscriminatedUnion="ZodDiscriminatedUnion",la.ZodIntersection="ZodIntersection",la.ZodTuple="ZodTuple",la.ZodRecord="ZodRecord",la.ZodMap="ZodMap",la.ZodSet="ZodSet",la.ZodFunction="ZodFunction",la.ZodLazy="ZodLazy",la.ZodLiteral="ZodLiteral",la.ZodEnum="ZodEnum",la.ZodEffects="ZodEffects",la.ZodNativeEnum="ZodNativeEnum",la.ZodOptional="ZodOptional",la.ZodNullable="ZodNullable",la.ZodDefault="ZodDefault",la.ZodCatch="ZodCatch",la.ZodPromise="ZodPromise",la.ZodBranded="ZodBranded",la.ZodPipeline="ZodPipeline",la.ZodReadonly="ZodReadonly"})(ZodFirstPartyTypeKind||(ZodFirstPartyTypeKind={}));const stringType=ZodString.create,numberType=ZodNumber.create,booleanType=ZodBoolean.create,anyType=ZodAny.create;ZodNever.create;const arrayType=ZodArray.create,objectType=ZodObject.create;ZodUnion.create;const discriminatedUnionType=ZodDiscriminatedUnion.create;ZodIntersection.create;ZodTuple.create;const recordType=ZodRecord.create,literalType=ZodLiteral.create,enumType=ZodEnum.create;ZodPromise.create;ZodOptional.create;ZodNullable.create;objectType({service:objectType({port:numberType(),host:stringType().optional(),httpFileHandling:booleanType().default(!1)}).default({port:8080,host:"localhost",httpFileHandling:!1}),store:discriminatedUnionType("type",[objectType({type:literalType("postgres"),host:stringType().default("localhost"),username:stringType().default("postgres"),password:stringType().default("postgres"),dbname:stringType().default("postgres"),port:numberType().default(5432)}),objectType({type:literalType("mysql"),host:stringType().default("localhost"),username:stringType().default("mysql"),password:stringType().default("mysql"),dbname:stringType().default("mysql"),port:numberType().default(3306)}),objectType({type:literalType("sqlite"),dbname:stringType().optional()})]).optional(),integrations:objectType({host:stringType(),username:stringType().optional(),password:stringType().optional(),connections:recordType(stringType(),stringType())}).optional(),graphql:objectType({enabled:booleanType().default(!1)}).optional(),rbac:objectType({enabled:booleanType().default(!1),roles:arrayType(stringType()).optional()}).optional(),auth:objectType({enabled:booleanType().default(!1)}).optional(),auditTrail:objectType({enabled:booleanType().default(!1)}).optional(),monitoring:objectType({enabled:booleanType().default(!1)}).optional(),authentication:discriminatedUnionType("service",[objectType({service:literalType("okta"),superuserEmail:stringType(),domain:stringType(),cookieDomain:stringType().optional(),authServer:stringType().default("default"),clientSecret:stringType(),apiToken:stringType(),scope:stringType().default("openid offline_access"),cookieTtlMs:numberType().default(12096e5),introspect:booleanType().default(!0),authorizeRedirectUrl:stringType(),clientUrl:stringType(),roleClaim:stringType().default("roles"),defaultRole:stringType().default("user"),clientId:stringType()}),objectType({service:literalType("cognito"),superuserEmail:stringType(),superuserPassword:stringType().optional(),isIdentityStore:booleanType().default(!1),userPoolId:stringType(),clientId:stringType(),whitelistEnabled:booleanType().default(!1),disableUserSessions:booleanType().default(!1)})]).optional(),openapi:arrayType(objectType({specUrl:stringType(),baseUrl:stringType().optional(),name:stringType()})).optional(),logging:objectType({level:enumType(["error","warn","info","debug"]).default("info")}).optional(),retry:arrayType(objectType({name:stringType(),attempts:numberType(),backoff:objectType({strategy:enumType(["linear","exponential","constant"]),delay:numberType(),magnitude:enumType(["seconds","milliSeconds","minutes"]),factor:numberType()})})).optional()});function isMonitoringEnabled(){var la;return((la=void 0)===null||la===void 0?void 0:la.enabled)===!0}class TtlCache{constructor(aa){this.store=new Map,this.ttlMs=aa}set(aa,ca,ua){ua=ua||this.ttlMs;const Sa=Date.now()+ua;return this.store.set(aa,{value:ca,expireTime:Sa}),setTimeout(()=>{const hl=this.store.get(aa);hl&&hl.expireTime===Sa&&this.store.delete(aa)},ua),ca}get(aa){const ca=this.store.get(aa);if(ca!==void 0){if(Date.now()>ca.expireTime){this.store.delete(aa);return}return ca.value}}delete(aa){this.store.delete(aa)}}const AdminUserId="00000000-0000-0000-0000-000000000000";function isAuthEnabled(){var la;return((la=void 0)===null||la===void 0?void 0:la.enabled)==!0}function isRbacEnabled(){var la;return isAuthEnabled()&&((la=void 0)===null||la===void 0?void 0:la.enabled)==!0}const AdminSession={sessionId:crypto.randomUUID(),userId:AdminUserId},LocalEnv=new Map;function getLocalEnv$1(la,aa){const ca=LocalEnv.get(la);if(ca!==void 0)return ca;if(typeof E$a<"u"&&E$a.env){const ua=E$a.env[la];if(ua!==void 0)return ua}return aa}const PathAttributeName="__path__",PathAttributeNameQuery="__path__?",ParentAttributeName="__parent__",DeletedFlagAttributeName="__is_deleted__";function asUnauthMessage(la){return typeof la=="string"?la:`User not authorised to perform '${la.opr}' on ${la.entity}`}class UnauthorisedError extends Error{constructor(aa,ca){super(aa?asUnauthMessage(aa):"User not authorised to perform this operation",ca)}}let BadRequestError$2=class extends Error{constructor(la,aa){super(la?asUnauthMessage(la):"BadRequest",aa)}};class UserNotFoundError extends Error{constructor(aa,ca){super(aa||"User not found",ca)}}class UserNotConfirmedError extends Error{constructor(aa,ca){super(aa||"User account is not confirmed. Please check your email for verification code.",ca)}}class PasswordResetRequiredError extends Error{constructor(aa,ca){super(aa||"Password reset is required for this account",ca)}}class TooManyRequestsError extends Error{constructor(aa,ca){super(aa||"Too many requests. Please try again later.",ca)}}class InvalidParameterError extends Error{constructor(aa,ca){super(aa||"Invalid parameters provided",ca)}}class ExpiredCodeError extends Error{constructor(aa,ca){super(aa||"The verification code has expired. Please request a new one.",ca)}}class CodeMismatchError extends Error{constructor(aa,ca){super(aa||"The verification code is incorrect. Please try again.",ca)}}let FetchModuleFn;function setModuleFnFetcher(la){FetchModuleFn=la}const ForceReadPermFlag="f-r-f",FlowSuspensionTag="--";var SubGraphType;(function(la){la[la.EVENT=0]="EVENT",la[la.IF=1]="IF",la[la.FOR_EACH=2]="FOR_EACH",la[la.DELETE=3]="DELETE",la[la.PURGE=4]="PURGE",la[la.RETURN=5]="RETURN",la[la.AGENT=6]="AGENT",la[la.THROW=7]="THROW",la[la.NONE=8]="NONE"})(SubGraphType||(SubGraphType={}));class ExecGraph{static isEmpty(aa){return Object.is(ExecGraph.Empty,aa)}constructor(){this.parentGraph=void 0,this.hasAgentsFlag=!1,this.loopBody=!1,this.rootNodes=new Array,this.subGraphs=new Array}pushNode(aa){return this.rootNodes.push(aa),this}pushSubGraph(aa){return aa.parentGraph=this,this.subGraphs.push(aa),this}getSubGraphsLength(){return this.subGraphs.length}getLastSubGraphIndex(){return this.subGraphs.length-1}fetchSubGraphAt(aa){if(aa<0||aa>=this.subGraphs.length)throw new Error(`Invalid sub-graph index: ${aa}`);return this.subGraphs[aa]}fetchForEachBodySubGraph(){return this.fetchSubGraphAt(this.subGraphs.length-1)}fetchIfConsequentSubGraph(){return this.subGraphs.length>=2?this.fetchSubGraphAt(this.subGraphs.length-2):this.fetchSubGraphAt(this.subGraphs.length-1)}fetchIfAlternativeSubGraph(){if(this.subGraphs.length>=2)return this.fetchSubGraphAt(this.subGraphs.length-1)}getRootNodes(){return this.rootNodes}setActiveModuleName(aa){return aa&&(this.activeModuleName=aa),this}getActiveModuleName(){return this.activeModuleName}getParentGraph(){return this.parentGraph}setEventName(aa){return aa!==void 0&&(this.eventName=aa),this}getEventName(){return this.eventName}setHasAgents(aa){return this.hasAgentsFlag=aa,this.parentGraph&&this.parentGraph.setHasAgents(aa),this}hasAgents(){return this.hasAgentsFlag}canCache(){return!this.hasAgentsFlag}setIsLoopBody(){return this.loopBody=!0,this}isLoopBody(){return this.loopBody}asObject(){const aa=new Array;return this.rootNodes.forEach(ca=>{var ua;const Sa=ca.asObject();if(ca.subGraphIndex>=0){const hl=this.subGraphs[ca.subGraphIndex],pl=hl.asObject();if(ca.subGraphType==SubGraphType.FOR_EACH){const ml=ca.code;Sa.var=(ua=ml.pattern.forEach)===null||ua===void 0?void 0:ua.var,Sa.source=pl,Sa.body=hl.fetchForEachBodySubGraph().asObject()}else if(ca.subGraphType==SubGraphType.IF){Sa.condition=pl,Sa.body=hl.fetchIfConsequentSubGraph().asObject();const ml=hl.fetchIfAlternativeSubGraph();ml&&(Sa.else=ml.asObject())}else Sa.subGraph=pl}aa.push(Sa)}),aa}}ExecGraph.Empty=new ExecGraph;var RuntimeModeTag;(function(la){la[la.DEV=0]="DEV",la[la.PROD=1]="PROD",la[la.TEST=2]="TEST",la[la.INIT_SCHEMA=3]="INIT_SCHEMA",la[la.RUN_MIGRATION=4]="RUN_MIGRATION",la[la.UNDO_MIGRATION=5]="UNDO_MIGRATION",la[la.GENERATE_MIGRATION=6]="GENERATE_MIGRATION"})(RuntimeModeTag||(RuntimeModeTag={}));RuntimeModeTag.DEV;let DailyRotateFile,winston;isNodeEnv&&(await __vitePreload(()=>import("./index-D4z_hbl0-D1BooYO0.js"),__vite__mapDeps([12,11,13,1,3,9,5,14,15,16,17,18,19,10,20,21,4])).then(la=>la.i).then(la=>{DailyRotateFile=la.default}),await __vitePreload(()=>import("./winston-CtxF18qc-CvnoCdHd.js"),__vite__mapDeps([22,11,13,1,3,9,5,14,15,16,18,19,10,20,21,17,4])).then(la=>la.w).then(la=>{winston=la.default}));let logger$1;function getLogLevel(){var la;return isNodeEnv&&E$a.env&&E$a.env.DEBUG?"debug":((la=void 0)===null||la===void 0?void 0:la.level)||"info"}function initializeLogger(){const la=getLogLevel();if(isNodeEnv){const aa=new DailyRotateFile({level:la,filename:"logs/app-%DATE%.log",datePattern:"YYYY-MM-DD",maxSize:"20m",maxFiles:"7d"});logger$1=winston.createLogger({level:la,format:winston.format.combine(winston.format.timestamp(),winston.format.printf(({timestamp:ca,level:ua,message:Sa})=>`[${ca}] ${ua}: ${Sa}`)),transports:[aa]})}else{let aa=function(ca){return ua=>{console.log(`${ca}: ${ua}`)}};logger$1={debug:aa("DEBUG"),info:aa("INFO"),warn:aa("WARN"),error:aa("ERROR")}}}initializeLogger();const PlannerInstructions=`Agentlang is a very-high-level declarative language that makes it easy to define business applications as 'models'.
|
|
16178
16178
|
The model of a business application consists of entity definitions and workflows defined in "modules".
|
|
16179
16179
|
A module is be encoded in a syntax inspired by JavaScript and JSON. Example of a simple module follows:
|
|
16180
16180
|
|
|
@@ -16867,7 +16867,7 @@ ${hl.join(`
|
|
|
16867
16867
|
previous_value "${ua?escapeSpecialChars(JSON.stringify(ua.asObject())):""}",
|
|
16868
16868
|
user "${Sa}",
|
|
16869
16869
|
token "${hl||""}"
|
|
16870
|
-
}}`,Sa,pl);isInstanceOfType(ml,"agentlang/auditlog")||logger$1.warn(`Failed to create auditlog for action ${aa} and resource ${ca} for user ${Sa}`)}async function addCreateAudit$1(la,aa){await addAudit$1(aa,"c",la)}async function addDeleteAudit$1(la,aa,ca){await addAudit$1(ca,"d",la,aa)}async function addUpdateAudit$1(la,aa,ca){await addAudit$1(ca,"u",la,aa)}async function createSuspension$1(la,aa,ca){const ua=ca.getActiveUser(),Sa=new Environment$1("susp",ca).setInKernelMode(!0),hl=ca.asSerializableObject(),pl=makeInstance("agentlang","createSuspension",newInstanceAttributes().set("id",la).set("continuation",aa).set("env",hl).set("createdBy",ua)),ml=await evaluate$2(pl,void 0,Sa);if(!isInstanceOfType(ml,"agentlang/suspension")){logger$1.warn(`Failed to create suspension for user ${ua}`);return}return ml.lookup("id")}function getMonitoringEventName$1(la){return isInstanceOfType(la,"agentlang.ai/Agent")?`${la.lookup("moduleName")}/${la.lookup("name")}`:la.getFqName()}async function saveMonitoringData$1(la){const aa=btoa(JSON.stringify(la.asObject())),ca=la.getEventInstance(),ua=ca?btoa(JSON.stringify(ca.asSerializableObject())):"",Sa=la.getUser()||"admin",hl=la.getTotalLatencyMs(),pl=la.getId(),ml=new Environment$1(`monitor-${pl}-env`),gl=ca?getMonitoringEventName$1(ca):pl;await parseAndEvaluateStatement$1(`{agentlang/Monitor {id "${pl}", eventName "${gl}", eventInstance "${ua}", user "${Sa}", totalLatencyMs ${hl}, data "${aa}"}}`,void 0,ml),await ml.commitAllTransactions()}async function flushMonitoringData$1(la){const aa=getMonitor$1(la);try{if(aa){await saveMonitoringData$1(aa);const ca=aa.getAllSubgraphRoots();for(let ua=0;ua<ca.length;++ua){const Sa=ca[ua];Sa.getEventInstance()&&await saveMonitoringData$1(Sa)}}else logger$1.warn(`Failed to locate monitor with id ${la}`)}catch(ca){logger$1.error(`Failed to flush monitor ${la} - ${ca}`)}}const __vite_import_meta_env__$1={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1,VITE_API_URL:"https://agent-meta-dev.api.fractl.dev",VITE_CONNECTION_MANAGER_SERVICE_URL:"https://integration-manager-dev.api.fractl.dev/",VITE_CORS_PROXY_URL:"https://cors-proxy-1.fractl.io",VITE_DEPLOYMENT_API_URL:"https://deployment-service.api.fractl.dev/",VITE_INGESTER_SERVICE_URL:"https://retrieval-service.fractl.io/",VITE_IS_PLAYGROUND:void 0,VITE_MARKETPLACE_API_URL:"https://marketplace-meta-dev.api.fractl.dev",VITE_UPPY_URL:"https://uploader-service.fractl.io"};typeof window<"u"&&(window.Buffer=bufferExports$1.Buffer);const createGitUtils=async(la={})=>{const aa=la.fsName||"studio",ca=await N$1$1({name:aa,useCliBackend:la.useCliBackend}),ua=R$4(ca);return{fs:ca,git:ua}},cloneRepository=async(la,aa,ca="main",ua)=>{const{fs:Sa,git:hl}=await createGitUtils();await pathExists(aa)&&await Sa.removeDir(aa);const pl=la.includes("@github.com");!pl&&!ua&&console.warn("No GitHub token provided - clone may fail for private repositories");const ml={http:index$5,branch:ca,singleBranch:!0,depth:1,force:!0,corsProxy:getURL("cors-proxy")};!pl&&ua&&(ml.token=ua);try{await hl.clone(la,aa,ml),console.log("[Clone] Clone completed successfully"),console.log("[Clone] Verifying cloned repository...");const gl=await verifyClonedRepository(aa);if(!gl.success)throw new Error(`Clone verification failed: ${gl.message}`);return console.log("[Clone] Verification successful:",gl),aa}catch(gl){const wc=gl.message?.includes("401")||gl.message?.includes("403")||gl.message?.includes("authentication")||gl.message?.includes("Authorization")||gl.message?.includes("not found");if(wc&&pl){console.log("[Clone] Authentication failed, retrying with public URL for potential public repository...");const xu=la.replace(/https:\/\/[^:]+:[^@]+@/,"https://");try{const ff={...ml,token:void 0};delete ff.token,console.log("[Clone] Retrying clone with public URL:",{url:xu,dir:aa,branch:ca}),await hl.clone(xu,aa,ff),console.log("[Clone] Clone completed successfully with public URL");const jf=await verifyClonedRepository(aa);if(!jf.success)throw new Error(`Clone verification failed: ${jf.message}`);return console.log("[Clone] Verification successful:",jf),aa}catch(ff){throw console.error("[Clone] Public URL clone also failed:",ff),new Error("Authentication failed. Please check your GitHub token is valid and has the required permissions, or verify the repository exists and is accessible.")}}throw wc?new Error("Authentication failed. Please check your GitHub token is valid and has the required permissions, or verify the repository exists and is accessible."):gl}},readRepoFile=async(la,aa)=>{const ca=typeof window<"u"&&(window.VITE_IS_LOCAL_MODE||import.meta&&__vite_import_meta_env__$1&&void 0),{fs:ua}=await createGitUtils({useCliBackend:ca}),Sa=`${la}/${aa}`;return(await ua.readFile(Sa)).toString()},writeRepoFile=async(la,aa,ca)=>{const{fs:ua}=await createGitUtils(),Sa=`${la}/${aa}`;await ua.writeFile(Sa,ca)},openRepository=async la=>{const{git:aa}=await createGitUtils();return await aa.open(la)},commitChanges=async(la,aa,ca,ua)=>{await la.add(aa),await la.commit(ca,{author:ua})},pushChanges=async(la,aa="origin",ca="main",ua)=>{await la.push(aa,ca,{http:index$5,corsProxy:getURL("cors-proxy"),token:ua,force:!0})},createGitHubRepo=async(la,aa,ca={},ua)=>await u$j(la).createRepository(aa,ca,ua),findFilesWithExtension=async(la,aa)=>{const{fs:ca}=await createGitUtils(),ua=[],Sa=async(hl,pl="")=>{try{const ml=await ca.readdir(hl);for(const gl of ml){const wc=`${hl}/${gl}`,xu=pl?`${pl}/${gl}`:gl;try{const ff=await ca.stat(wc);ff.isDirectory()?gl.startsWith(".")||await Sa(wc,xu):ff.isFile()&&gl.endsWith(`.${aa}`)&&ua.push(xu)}catch(ff){console.error(`Error processing ${wc}:`,ff)}}}catch(ml){console.error(`Error reading directory ${hl}:`,ml)}};return await Sa(la),ua},pathExists=async la=>{const{fs:aa}=await createGitUtils();return await aa.exists(la)},removeDirectory=async la=>{const{fs:aa}=await createGitUtils();try{await aa.exists(la)&&await aa.removeDir(la)}catch(ca){throw console.error(`Error removing directory ${la}:`,ca),ca}},verifyClonedRepository=async la=>{const{fs:aa}=await createGitUtils();try{if(!await aa.exists(la))return{success:!1,fileCount:0,hasPackageJson:!1,hasAlFiles:!1,alFiles:[],message:`Directory ${la} does not exist`};await aa.exists(`${la}/.git`)||console.warn("⚠️ No .git directory found - repository may not be properly cloned");let ca=0,ua=!1;const Sa=[],hl=async(wc,xu="")=>{try{const ff=await aa.readdir(wc);for(const jf of ff){if(jf===".git")continue;const Uf=`${wc}/${jf}`,rp=xu?`${xu}/${jf}`:jf;try{(await aa.stat(Uf)).isDirectory()?await hl(Uf,rp):(ca++,jf==="package.json"&&xu===""&&(ua=!0),jf.endsWith(".al")&&Sa.push(rp))}catch(np){console.error(`Error checking ${Uf}:`,np)}}}catch(ff){console.error(`Error reading directory ${wc}:`,ff)}};await hl(la);const pl=Sa.length>0,ml=ca>0;let gl=`Repository verified: ${ca} files found`;return ua||(gl+=" (⚠️ No package.json found)"),pl||(gl+=" (⚠️ No .al files found)"),{success:ml,fileCount:ca,hasPackageJson:ua,hasAlFiles:pl,alFiles:Sa,message:gl}}catch(ca){return console.error(`Error verifying repository at ${la}:`,ca),{success:!1,fileCount:0,hasPackageJson:!1,hasAlFiles:!1,alFiles:[],message:`Error verifying repository: ${ca}`}}},hasRemoteUpdates=async(la,aa,ca="origin",ua="main")=>{try{const{git:Sa}=await createGitUtils(),hl=await Sa.open(la),pl=await hl.log({depth:1});if(pl.length===0)throw new Error("No local commits found");const ml=pl[0].oid;await hl.fetch(ca,ua,{http:index$5,corsProxy:getURL("cors-proxy"),token:aa});const gl=await hl.log({depth:1});if(gl.length===0)throw new Error("No commits found after fetch");const wc=gl[0].oid;return ml!==wc}catch(Sa){throw Sa.message?.includes("401")||Sa.message?.includes("403")||Sa.message?.includes("authentication")||Sa.message?.includes("Authorization")?new Error("Authentication failed. Please check your GitHub token is valid and has the required permissions."):new Error(`Failed to check for remote updates: ${Sa.message}`)}},fetchLatestChanges=async(la,aa,ca="origin",ua="main")=>{try{const{git:Sa}=await createGitUtils(),hl=await Sa.open(la);await hl.fetch(ca,ua,{http:index$5,corsProxy:getURL("cors-proxy"),token:aa});const pl=await hl.log({depth:1}),ml=pl.length>0?pl[0].oid:void 0;return{success:!0,message:`Successfully fetched changes from ${ca}/${ua}`,fetchHead:ml}}catch(Sa){return Sa.message?.includes("401")||Sa.message?.includes("403")||Sa.message?.includes("authentication")||Sa.message?.includes("Authorization")?{success:!1,message:"Authentication failed. Please check your GitHub token is valid and has the required permissions."}:{success:!1,message:`Failed to fetch changes: ${Sa.message}`}}},forcePullChanges=async(la,aa,ca="origin",ua="main")=>{try{const{git:Sa}=await createGitUtils(),hl=await Sa.open(la);await hl.fetch(ca,ua,{http:index$5,corsProxy:getURL("cors-proxy"),token:aa}),await hl.getCurrentBranch()!==ua&&await hl.checkout(ua);try{return await hl.merge(`${ca}/${ua}`),{success:!0,message:`Successfully pulled and merged changes from ${ca}/${ua}`}}catch(pl){return pl.message?.includes("conflict")||pl.message?.includes("merge")?{success:!1,message:"Merge conflicts detected. Force pull with conflict resolution is not yet implemented.",conflicts:["Merge conflicts detected"]}:{success:!1,message:`Failed to merge changes: ${pl.message}`}}}catch(Sa){return Sa.message?.includes("401")||Sa.message?.includes("403")||Sa.message?.includes("authentication")||Sa.message?.includes("Authorization")?{success:!1,message:"Authentication failed. Please check your GitHub token is valid and has the required permissions."}:{success:!1,message:`Failed to force pull changes: ${Sa.message}`}}},updateExistingRepository=async(la,aa,ca={})=>{const{remote:ua="origin",branch:Sa="main",force:hl=!1,checkOnly:pl=!1}=ca;try{if(!await pathExists(la))return{success:!1,message:`Repository path ${la} does not exist`};if(!await pathExists(`${la}/.git`))return{success:!1,message:`Path ${la} is not a git repository`};const ml=await hasRemoteUpdates(la,aa,ua,Sa);if(pl)return{success:!0,message:ml?`Updates available from ${ua}/${Sa}`:`Repository is up to date with ${ua}/${Sa}`,hasUpdates:ml,updateAvailable:ml};if(!ml)return{success:!0,message:`Repository is already up to date with ${ua}/${Sa}`,hasUpdates:!1};if(hl)return{...await forcePullChanges(la,aa,ua,Sa),hasUpdates:!0};try{const{git:gl}=await createGitUtils(),wc=await fetchLatestChanges(la,aa,ua,Sa);return wc.success?(await(await gl.open(la)).merge(`${ua}/${Sa}`),{success:!0,message:`Successfully updated repository from ${ua}/${Sa}`,hasUpdates:!0}):{success:!1,message:wc.message,hasUpdates:!0}}catch(gl){return gl.message?.includes("conflict")?{success:!1,message:"Update failed due to merge conflicts. Use force option to overwrite local changes.",hasUpdates:!0,conflicts:["Merge conflicts detected"]}:{success:!1,message:`Failed to update repository: ${gl.message}`,hasUpdates:!0}}}catch(ml){return ml.message?.includes("401")||ml.message?.includes("403")||ml.message?.includes("authentication")||ml.message?.includes("Authorization")?{success:!1,message:"Authentication failed. Please check your GitHub token is valid and has the required permissions."}:{success:!1,message:`Failed to update repository: ${ml.message}`}}};var pluralize$2={exports:{}},pluralize$1=pluralize$2.exports,hasRequiredPluralize;function requirePluralize(){return hasRequiredPluralize||(hasRequiredPluralize=1,(function(la,aa){(function(ca,ua){typeof r$g=="function"?la.exports=ua():ca.pluralize=ua()})(pluralize$1,function(){var ca=[],ua=[],Sa={},hl={},pl={};function ml(rp){return rp.charAt(0).toUpperCase()+rp.substr(1).toLowerCase()}function gl(rp){return typeof rp=="string"?new RegExp("^"+rp+"$","i"):rp}function wc(rp,np){return rp===rp.toUpperCase()?np.toUpperCase():rp[0]===rp[0].toUpperCase()?ml(np):np.toLowerCase()}function xu(rp,np){return rp.replace(/\$(\d{1,2})/g,function(qm,Vm){return np[Vm]||""})}function ff(rp,np,qm){if(!rp.length||Sa.hasOwnProperty(rp))return np;for(var Vm=qm.length;Vm--;){var eg=qm[Vm];if(eg[0].test(np))return np.replace(eg[0],function(tg,rg,ig){var vv=xu(eg[1],arguments);return wc(tg===""?ig[rg-1]:tg,vv)})}return np}function jf(rp,np,qm){return function(Vm){var eg=Vm.toLowerCase();return np.hasOwnProperty(eg)?wc(Vm,eg):rp.hasOwnProperty(eg)?wc(Vm,rp[eg]):ff(eg,Vm,qm)}}function Uf(rp,np,qm){var Vm=np===1?Uf.singular(rp):Uf.plural(rp);return(qm?np+" ":"")+Vm}return Uf.plural=jf(pl,hl,ca),Uf.singular=jf(hl,pl,ua),Uf.addPluralRule=function(rp,np){ca.push([gl(rp),np])},Uf.addSingularRule=function(rp,np){ua.push([gl(rp),np])},Uf.addUncountableRule=function(rp){if(typeof rp=="string"){Sa[rp.toLowerCase()]=!0;return}Uf.addPluralRule(rp,"$0"),Uf.addSingularRule(rp,"$0")},Uf.addIrregularRule=function(rp,np){np=np.toLowerCase(),rp=rp.toLowerCase(),pl[rp]=np,hl[np]=rp},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["thief","thieves"],["genie","genies"],["groove","grooves"],["pickaxe","pickaxes"],["whiskey","whiskies"]].forEach(function(rp){return Uf.addIrregularRule(rp[0],rp[1])}),[[/s?$/i,"s"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|tlas|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[emjzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|octop|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/(m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach(function(rp){return Uf.addPluralRule(rp[0],rp[1])}),[[/s$/i,""],[/(ss)$/i,"$1"],[/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)(?:sis|ses)$/i,"$1sis"],[/(^analy)(?:sis|ses)$/i,"$1sis"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(^[pl]|zomb|^(?:neck)?t|[aeo][lt]|cut)ies$/i,"$1ie"],[/(\b(?:mon|smil))ies$/i,"$1ey"],[/(m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|tlas|gas|(?:her|at|gr)o|ris)(?:es)?$/i,"$1"],[/(e[mn]u)s?$/i,"$1"],[/(movie|twelve)s$/i,"$1"],[/(cris|test|diagnos)(?:is|es)$/i,"$1is"],[/(alumn|syllab|octop|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach(function(rp){return Uf.addSingularRule(rp[0],rp[1])}),["advice","agenda","bison","bream","buffalo","carp","chassis","cod","cooperation","corps","digestion","debris","diabetes","energy","equipment","elk","excretion","expertise","flounder","gallows","garbage","graffiti","headquarters","health","herpes","highjinks","homework","information","jeans","justice","kudos","labour","machinery","mackerel","media","mews","moose","news","pike","plankton","pliers","pollution","premises","rain","rice","salmon","scissors","series","sewage","shambles","shrimp","species","staff","swine","trout","tuna","whiting","wildebeest","wildlife","you",/pox$/i,/ois$/i,/deer$/i,/fish$/i,/sheep$/i,/measles$/i,/[^aeiou]ese$/i].forEach(Uf.addUncountableRule),Uf})})(pluralize$2)),pluralize$2.exports}var pluralizeExports=requirePluralize();const pluralize=f$k(pluralizeExports),getNestedAttributeInfo=(la,aa,ca)=>{const ua=aa.properties?.get("oneof"),Sa=aa.type||aa.properties?.get("type"),hl=ua||Sa,pl=(xu,ff)=>{try{let jf=ff;if(ff&&!ff.includes(".")&&!ff.includes("/")){const rp=getUserModuleNames().find(np=>np.startsWith(ff));rp&&(jf=rp)}if(!jf)return null;const Uf=getEntity$1(xu,jf)?.getUserAttributes();return{hasAttributes:(Uf?Array.from(Uf.keys()).length:0)>0,resolvedModule:jf,attributes:Uf||null}}catch{return null}},ml=(xu,ff)=>{try{let jf=ff;if(ff&&!ff.includes(".")&&!ff.includes("/")){const rp=getUserModuleNames().find(np=>np.startsWith(ff));rp&&(jf=rp)}if(!jf)return null;const Uf=getRecord(xu,jf)?.getUserAttributes();return{hasAttributes:(Uf?Array.from(Uf.keys()).length:0)>0,resolvedModule:jf,attributes:Uf||null}}catch{return null}},gl=(xu,ff)=>{try{return fetchModule$2(ff).getEntityNames().includes(xu)}catch{return!1}},wc=(xu,ff)=>{try{return fetchModule$2(ff).getRecordNames().includes(xu)}catch{return!1}};if(hl){let xu=null,ff=null;if(isFqName(hl)){const jf=nameToPath(hl);xu=jf.getModuleName(),ff=jf.getEntryName()}else typeof hl=="string"&&(xu=ca||null,ff=hl);if(ff&&xu){const jf=wc(ff,xu),Uf=gl(ff,xu),rp=!!ua;if(jf){const np=ml(ff,xu);if(np?.hasAttributes&&np.attributes)return{isNested:!0,type:"record",referencedName:ff,referencedModule:np.resolvedModule,nestedAttributes:np.attributes}}else if(Uf||rp){const np=pl(ff,xu);if(np?.hasAttributes&&np.attributes)return{isNested:!0,type:rp?"oneOf":"entity",referencedName:ff,referencedModule:np.resolvedModule,nestedAttributes:np.attributes}}}}return{isNested:!1,type:null,referencedName:null,referencedModule:null,nestedAttributes:null}},createLoginSchema=(la,aa={})=>({header:{title:la,subTitle:aa.description||"AI-Powered Dealership Management"},socialNetworks:{label:"Sign in with social networks",icons:["microsoft","linkedin","git","google"],enabled:!0},form:{placeholder:{email:"Enter your email address",password:"Enter your password"},validation:{email:{required:!0,pattern:"email",message:"Please enter a valid email address"},password:{required:!0,minLength:8,message:"Password must be at least 8 characters long"}}}}),createSignUpSchema=(la,aa={})=>({header:{title:la,subTitle:aa.description||"Join Our Dealership Network"},socialNetworks:{label:"Sign up with social networks",icons:["microsoft","linkedin","git","google"],enabled:!0},form:{placeholder:{email:"Enter your email address",password:"Create a password"},validation:{email:{required:!0,pattern:"email",message:"Please enter a valid email address"},password:{required:!0,minLength:8,pattern:"^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d@$!%*?&]{8,}$",message:"Password must contain uppercase, lowercase, and number"}}}}),createEntityDetailsSchema=la=>{const[aa,ca]=la.split("/");let ua;if(/^[A-Z]+$/.test(ca)){const jf=pluralize(ca);jf===`${ca}S`?ua=`${ca}s`:ua=jf}else ua=pluralize(ca);const Sa=`Manage ${ua}`,hl=getEntity$1(ca,aa),pl=hl?.getRbacSpecifications()||[];let ml=!0,gl=!0,wc=!0,xu=!0;pl.length>0&&(ml=pl.some(jf=>jf.hasCreatePermission()),gl=pl.some(jf=>jf.hasReadPermission()),wc=pl.some(jf=>jf.hasUpdatePermission()),xu=pl.some(jf=>jf.hasDeletePermission()));const ff={};if(hl){const jf=hl.getUserAttributes();Array.from(jf.keys()).forEach(Uf=>{const rp=jf.get(Uf);if(!rp)return;const np=typeof rp=="object"&&rp!==void 0?rp.type:String(rp),qm=rp.properties?.get("optional")===!0;let Vm=[];rp.properties&&(Vm=Array.from(rp.properties.keys())),ff[Uf]={type:np,label:Uf.replace(/([A-Z])/g," $1").trim(),constraints:Vm,required:!qm,readonly:rp.properties?.get("readonly")===!0,unique:rp.properties?.get("unique")===!0,id:rp.properties?.get("id")===!0}})}return{displayName:ua,description:Sa,icon:"bi:card-list",color:"white",attributes:ff,permissions:{create:ml,read:gl,update:wc,delete:xu}}},createAgentDetailsSchema=(la,aa)=>{const ca=fetchModule$2(aa);if(!ca)return null;const ua=ca.getAgent(la);if(!ua)return null;const Sa=la.replace(/([A-Z])/g," $1").trim().replace(" Agent",""),hl=`AI assistant for ${Sa}`,pl=ua.getTools(),ml=[],gl=ua.getInstruction(),wc=ua.attributes.get("role"),xu=ua.getLLM(),ff=ua.getFlows();return{displayName:la,description:hl,icon:"fluent:bot-sparkle-24-regular",instruction:gl,role:wc,llm:xu,flows:ff,ui:{chatPosition:"sidebar",icon:"mdi:robot",color:"white",triggerText:`Ask ${Sa}`,showOnPages:[],autoSuggest:!0,welcomeMessage:`Hi! I can help you with ${Sa}.`},tools:pl,contextEntities:ml}},createRelationshipDetailsSchema=(la,aa)=>{const ca=getRelationship$1(la,aa);if(!ca)return null;const ua=ca.getParentFqName().split("/")[1],Sa=ca.getChildFqName().split("/")[1],hl=la.replace(/([A-Z])/g," $1").trim(),pl={},ml=ca.getUserAttributes();return ml&&Array.from(ml.keys()).forEach(gl=>{const wc=ml.get(gl);if(!wc)return;const xu=typeof wc=="object"&&wc!==void 0?wc.type:String(wc),ff=wc.properties?.get("optional")===!0;let jf=[];wc.properties&&(jf=Array.from(wc.properties.keys())),pl[gl]={type:xu,label:gl.replace(/([A-Z])/g," $1").trim(),constraints:jf,required:!ff,readonly:wc.properties?.get("readonly")===!0,unique:wc.properties?.get("unique")===!0,id:wc.properties?.get("id")===!0}}),{name:la,type:ca.isContains()?"contains":"between",parent:ua,child:Sa,module:aa,displayName:hl,attributes:pl,ui:{showInParentDetail:!0,showInChildDetail:!1,listComponent:"table",allowInlineEdit:!0,allowCreate:!0,sortBy:"make"}}},createNestedFormSchema=(la,aa)=>{const ca={},ua=[];return la.forEach((Sa,hl)=>{const pl=getNestedAttributeInfo(hl,Sa,aa),ml=Sa.properties?.get("optional")===!0,gl=typeof Sa=="object"&&Sa!==void 0,wc=Sa.properties?.get("default"),xu=wc!==void 0,ff=gl?Sa.type:String(Sa);let jf=getInputType(ff),Uf=[];if(Sa.properties&&Sa.properties instanceof Map)for(const[,qm]of Sa.properties.entries()){if(qm instanceof Set){Uf=Array.from(qm);break}if(Array.isArray(qm)&&qm.every(Vm=>typeof Vm=="string")){Uf=qm;break}}const rp={type:ff,constraints:Sa.properties?Array.from(Sa.properties.keys()):[]},np={label:hl.replace(/([A-Z])/g," $1").trim(),placeholder:`Enter ${hl}`,width:"half"};gl&&(wc&&(rp.defaultValue=wc),Uf.length>0&&(rp.enumValues=Uf),Uf.length>0&&(jf="select")),pl.isNested&&pl.nestedAttributes?ca[hl]={inputType:"nested",required:!ml&&!xu,validation:rp,displayOptions:np,nestedForm:createNestedFormSchema(pl.nestedAttributes,pl.referencedModule),nestedType:pl.type,referencedName:pl.referencedName}:ca[hl]={inputType:jf,required:!ml&&!xu,validation:rp,displayOptions:np},ua.push(hl)}),{Form:ca,order:ua}},creteFormSchema=la=>{const[aa,ca]=la.split("/"),ua=getEntity$1(ca,aa);if(!ua)throw new Error(`Entity "${ca}" not found in module "${aa}"`);const Sa=ua.getUserAttributes(),hl=Array.from(Sa.keys());return{Form:hl.reduce((pl,ml)=>{const gl=Sa.get(ml);if(!gl)return pl;const wc=gl.properties?.get("optional")===!0,xu=typeof gl=="object"&&gl!==void 0,ff=gl.properties?.get("default"),jf=ff!==void 0,Uf=xu?gl.type:String(gl);let rp=getInputType(Uf),np=[];if(gl.properties&&gl.properties instanceof Map)for(const[,tg]of gl.properties.entries()){if(tg instanceof Set){np=Array.from(tg);break}if(Array.isArray(tg)&&tg.every(rg=>typeof rg=="string")){np=tg;break}}const qm={type:Uf,constraints:gl.properties?Array.from(gl.properties.keys()):[]},Vm={label:ml.replace(/([A-Z])/g," $1").trim(),placeholder:`Enter ${ml}`,width:"half"},eg=getNestedAttributeInfo(ml,gl,aa);return xu&&(ff&&(qm.defaultValue=ff),np.length>0&&(qm.enumValues=np),np.length>0&&(rp="select")),eg.isNested&&eg.nestedAttributes?pl[ml]={inputType:"nested",required:!wc&&!jf,validation:qm,displayOptions:Vm,nestedForm:createNestedFormSchema(eg.nestedAttributes,eg.referencedModule),nestedType:eg.type,referencedName:eg.referencedName}:pl[ml]={inputType:rp,required:!wc&&!jf,validation:qm,displayOptions:Vm},pl},{}),order:hl,layout:{type:"grid",columns:1,sections:[{title:"Details",fields:hl}]}}},createDashboardHeaderSchema=la=>{const[,aa]=la.split("/");return{type:"collection",view:{Heading:{title:`${aa}s`,subtitle:`List of ${aa}s`,showBreadcrumbs:!0}}}},createEntityInstanceHeaderSchema=la=>{const[,aa]=la.split("/");return{type:"instance",view:{Heading:{title:`${aa}`,subtitle:"",showBreadcrumbs:!0}}}},createDashboardBodySchema=la=>{const[aa,ca]=la.split("/"),ua=getEntity$1(ca,aa);if(!ua)throw new Error(`Entity not found: ${aa}/${ca}`);const Sa=ua.getUserAttributes(),hl=Array.from(Sa.keys());let pl;if(/^[A-Z]+$/.test(ca)){const gl=pluralize(ca);gl===`${ca}S`?pl=`${ca}s`:pl=gl}else pl=pluralize(ca);const ml=`Manage ${pl}`;return{type:"collection",displayName:pl,description:ml,icon:"bi:card-list",color:"white",actions:{create:{type:"button",text:`Add ${ca}`,icon:"mdi:plus",style:"primary",actionType:"navigation",action:`${ca}/new`}},view:{Table:{fields:hl,showGlobalFilter:!0,showColumnFilter:!0,enableSelection:!0,pagination:{enabled:!0,pageSize:25,pageSizes:[10,25,50,100]},sorting:{enabled:!0,defaultSort:"make",defaultOrder:"asc"},actions:{row:["view","edit","delete"],bulk:["delete","export","update_status"]}}}}},createRelationshipTableSchema=la=>{const[aa,ca]=la.split("/"),ua=getEntity$1(ca,aa);if(!ua)throw new Error(`Entity not found: ${aa}/${ca}`);const Sa=ua.getUserAttributes(),hl=Array.from(Sa.keys());let pl;if(/^[A-Z]+$/.test(ca)){const gl=pluralize(ca);gl===`${ca}S`?pl=`${ca}s`:pl=gl}else pl=pluralize(ca);const ml=`Manage ${pl}`;return{type:"collection",displayName:pl,description:ml,icon:"bi:card-list",color:"white",actions:{create:{type:"button",text:`Add ${ca}`,icon:"mdi:plus",style:"primary",actionType:"navigation",action:`${ca}/new`}},view:{Table:{fields:hl,showGlobalFilter:!0,showColumnFilter:!0,enableSelection:!0,pagination:{enabled:!0,pageSize:25,pageSizes:[10,25,50,100]},sorting:{enabled:!0,defaultSort:"make",defaultOrder:"asc"},actions:{row:["view","edit","delete"],bulk:["delete","export","update_status"]}}}}},createInstanceSummarySchema=la=>{const[aa,ca]=la.split("/"),ua=getEntity$1(ca,aa);if(!ua)throw new Error(`Entity not found: ${aa}/${ca}`);const Sa=ua.getUserAttributes(),hl=Array.from(Sa.keys());return{type:"instance",actions:{edit:{type:"button",text:"Edit",icon:"mdi:pencil",style:"secondary",actionType:"navigation",action:`${ca}/edit`},delete:{type:"button",text:"Delete",icon:"mdi:delete",style:"danger",actionType:"modal",action:`${ca}/delete`}},view:{Card:{fields:hl,layout:"grid",columns:2}}}},createDashboardSchema=la=>{const aa=`${la}.ui.dashboard.header`,ca=`${la}.ui.dashboard.body`;return[aa,ca]},createHomeDashboardSchema=(la,aa)=>{const ca=aa.map(ua=>({name:ua,visible:!0,icon:"bi:card-list"}));return{title:la,subtitle:"",items:{entities:ca}}},createEntityInstanceSchema=la=>{const aa=`${la}.ui.instance.header`,ca=`${la}.ui.instance.summary`,ua=[],Sa=getUserModuleNames();for(const pl of Sa){const ml=fetchModule$2(pl);if(ml){const gl=ml.getRelationshipNames();for(const wc of gl){const xu=getRelationship$1(wc,pl);if(xu){const ff=xu.getParentFqName(),jf=xu.getChildFqName();ff===la&&ua.push(`${jf}.ui.relationship.table`),jf===la&&(xu.isContains()||ua.push(`${ff}.ui.relationship.table`))}}}}const hl=[...new Set(ua)];return[aa,ca,...hl]},getRelationships$1=la=>{if(!la)return[];try{return fetchModule$2(la).getRelationshipNames()}catch(aa){return console.error("Error fetching relationships:",aa),[]}},createNavigation=(la,aa)=>({type:"sidebar",grouping:[{title:"Entities",items:la,icon:"bi:card-list",color:"#19c381"},{title:"Agents",items:aa,icon:"fluent:bot-sparkle-24-regular",color:"#00bcd4"}]}),buildUISchemaSection=(la,aa,ca)=>Object.fromEntries(la.map(ua=>[`${ua}.${aa}`,ca(ua)])),createDefaultUISchema=(la,aa,ca,ua,Sa,hl)=>({theme:"default",appInfo:{name:Sa.Name,title:Sa.Name,description:Sa.Description},branding:{primaryColor:"#3b82f6",secondaryColor:"#1e293b",logo:"/assets/logo.svg",favicon:"/assets/favicon.ico"},login:createLoginSchema(la,{description:Sa.Description}),signUp:createSignUpSchema(la,{description:Sa.Description}),navigation:createNavigation(ca,ua),homeDashboard:createHomeDashboardSchema(la,ca),userPreferences:{layout:{sidebarCollapsed:!1,tablePageSize:25,defaultView:"table",compactMode:!1},notifications:{enabled:!0,position:"top-right",duration:5e3,types:{newInquiry:!0,lowStock:!0,saleCompleted:!0,agentHandoff:!1}},accessibility:{highContrast:!1,fontSize:"normal",screenReader:!0,keyboardNavigation:!0,reducedMotion:!1},language:"en",timezone:"America/New_York",currency:"USD"},relationships:hl,entities:aa,agents:ua,...Object.fromEntries(aa.map(pl=>[pl,createEntityDetailsSchema(pl)])),...Object.fromEntries(ua.map(pl=>{const[ml,gl]=pl.split("/");return[pl,createAgentDetailsSchema(gl,ml)]})),...buildUISchemaSection(aa,"ui.form",creteFormSchema),...buildUISchemaSection(aa,"ui.dashboard",createDashboardSchema),...buildUISchemaSection(aa,"ui.dashboard.header",createDashboardHeaderSchema),...buildUISchemaSection(aa,"ui.dashboard.body",createDashboardBodySchema),...buildUISchemaSection(aa,"ui.instance",createEntityInstanceSchema),...buildUISchemaSection(aa,"ui.instance.summary",createInstanceSummarySchema),...buildUISchemaSection(aa,"ui.instance.header",createEntityInstanceHeaderSchema),...buildUISchemaSection(aa,"ui.relationship.table",createRelationshipTableSchema)}),loadUISchema=async(la,aa,ca,ua,Sa,hl)=>{const pl=getUserModuleNames().flatMap(ml=>getRelationships$1(ml).map(gl=>createRelationshipDetailsSchema(gl,ml))).filter(Boolean);try{const ml=await readRepoFile(aa,"ui-spec.json"),gl=JSON.parse(ml)||{theme:"default"};gl.agents=Sa,gl.login??=createLoginSchema(la,{description:hl.Description}),gl.signUp??=createSignUpSchema(la,{description:hl.Description}),gl.navigation??=createNavigation(ua,Sa),gl.homeDashboard??=createHomeDashboardSchema(la,ua),gl.userPreferences??={layout:{sidebarCollapsed:!1,tablePageSize:25,defaultView:"table",compactMode:!1},notifications:{enabled:!0,position:"top-right",duration:5e3,types:{newInquiry:!0,lowStock:!0,saleCompleted:!0,agentHandoff:!1}},accessibility:{highContrast:!1,fontSize:"normal",screenReader:!0,keyboardNavigation:!0,reducedMotion:!1},language:"en",timezone:"America/New_York",currency:"USD"},gl.relationships??=pl;for(const xu of ca)gl[xu]||(gl[xu]=createEntityDetailsSchema(xu));for(const xu of Sa)if(!gl[xu]){const[ff,jf]=xu.split("/");gl[xu]=createAgentDetailsSchema(jf,ff)}const wc=[["ui.form",creteFormSchema],["ui.dashboard",createDashboardSchema],["ui.dashboard.header",createDashboardHeaderSchema],["ui.dashboard.body",createDashboardBodySchema],["ui.instance",createEntityInstanceSchema],["ui.instance.header",createEntityInstanceHeaderSchema],["ui.instance.summary",createInstanceSummarySchema],["ui.relationship.table",createRelationshipTableSchema]];for(const[xu,ff]of wc)for(const[jf,Uf]of Object.entries(buildUISchemaSection(ca,xu,ff)))gl[jf]||(gl[jf]=Uf);return gl.entities=ca,gl.agents=Sa,gl.relationships=pl,gl}catch{return createDefaultUISchema(la,ca,ua,Sa,hl,pl)}};function deepMerge(la,aa){if(aa==null)return la;if(la==null||typeof aa!="object"||Array.isArray(aa)||typeof la!="object"||Array.isArray(la))return aa;const ca={...la};for(const ua in aa)if(Object.prototype.hasOwnProperty.call(aa,ua)){const Sa=aa[ua],hl=la[ua];typeof Sa=="object"&&!Array.isArray(Sa)&&Sa!==null&&hl&&typeof hl=="object"&&!Array.isArray(hl)?ca[ua]=deepMerge(hl,Sa):Array.isArray(Sa)||hl===void 0?ca[ua]=Sa:ca[ua]=hl}return ca}function mergeFormSchema(la,aa){if(!la)return aa;const ca={},ua=[...la.order||[]];for(const[Sa,hl]of Object.entries(la.Form))hl&&typeof hl=="object"&&!Array.isArray(hl)?ca[Sa]={...hl}:ca[Sa]=hl;for(const[Sa,hl]of Object.entries(aa.Form))if(!ca[Sa])ca[Sa]=hl,ua.includes(Sa)||ua.push(Sa);else{const pl=ca[Sa];pl&&typeof pl=="object"&&!Array.isArray(pl)&&hl&&typeof hl=="object"&&!Array.isArray(hl)&&pl.nestedForm&&hl.nestedForm&&(ca[Sa]={...pl,nestedForm:mergeFormSchema(pl.nestedForm,hl.nestedForm)})}return{...la,Form:ca,order:ua,layout:la.layout||aa.layout}}let cachedEntitiesAndAgents=null;function getAllEntitiesAndAgents(la=!0){const aa=getUserModuleNames(),ca=aa.join(",");if(la&&cachedEntitiesAndAgents&&cachedEntitiesAndAgents.moduleHash===ca)return cachedEntitiesAndAgents;const ua=aa.flatMap(pl=>fetchModule$2(pl).getEntityNames().map(ml=>`${pl}/${ml}`)),Sa=aa.flatMap(pl=>{try{return buildGraph(pl).getRoots().map(ml=>`${ml.entity.getModuleName()}/${ml.entity.getEntryName()}`)}catch(ml){return console.warn(`Failed to build graph for module ${pl}:`,ml),[]}}),hl=aa.flatMap(pl=>{const ml=fetchModule$2(pl);return ml?ml.getAgentNames().filter(gl=>ml.getAgent(gl)?.isPublic()??!1).map(gl=>`${pl}/${gl}`):[]});return cachedEntitiesAndAgents={entities:ua,rootEntities:Sa,allAgents:hl,moduleHash:ca},{entities:ua,rootEntities:Sa,allAgents:hl}}function invalidateEntitiesAndAgentsCache(){cachedEntitiesAndAgents=null}function repopulateUISchemaForNewEntity(la,aa){invalidateEntitiesAndAgentsCache();const ca=new Set(la.entities||[]),ua=new Set(la.agents||[]),{rootEntities:Sa,allAgents:hl}=getAllEntitiesAndAgents(),pl=new Set(Sa),ml=la.entities||[];ca.has(aa)||ml.push(aa);const[gl]=aa.split("/"),wc=la.relationships||[],xu=new Map(wc.map(tg=>[tg.name||String(tg),tg]));getRelationships$1(gl).map(tg=>createRelationshipDetailsSchema(tg,gl)).filter(Boolean).forEach(tg=>{tg&&xu.set(tg.name||String(tg),tg)});const ff=Array.from(xu.values()),jf=hl.filter(tg=>!ua.has(tg)),Uf=jf.length>0?hl:la.agents,rp={...la,entities:ml,agents:Uf,relationships:ff},np=pl.has(aa);if(np&&(rp.navigation=createNavigation(Sa,hl)),np){const tg=createHomeDashboardSchema("My App",Sa);rp.homeDashboard=tg}rp[aa]||(rp[aa]=createEntityDetailsSchema(aa));const qm=`${aa}.ui.form`,Vm=creteFormSchema(aa);rp[qm]=mergeFormSchema(la[qm],Vm);const eg=[["ui.dashboard",createDashboardSchema],["ui.dashboard.header",createDashboardHeaderSchema],["ui.dashboard.body",createDashboardBodySchema],["ui.instance",createEntityInstanceSchema],["ui.instance.header",createEntityInstanceHeaderSchema],["ui.instance.summary",createInstanceSummarySchema],["ui.relationship.table",createRelationshipTableSchema]];for(const[tg,rg]of eg){const ig=`${aa}.${tg}`;rp[ig]||(rp[ig]=rg(aa))}for(const tg of jf)if(!rp[tg]){const[rg,ig]=tg.split("/");rp[tg]=createAgentDetailsSchema(ig,rg)}return rp}function repopulateUISchemaForNewAttribute(la,aa,ca){const ua={...la},Sa=`${aa}.ui.form`,hl=creteFormSchema(aa);if(ua[Sa]=mergeFormSchema(la[Sa],hl),ua[aa]){const jf=createEntityDetailsSchema(aa);ua[aa]=deepMerge(ua[aa],jf)}else ua[aa]=createEntityDetailsSchema(aa);const pl=`${aa}.ui.dashboard.body`,ml=ua[pl];ml&&ml.view?.Table?.fields?ml.view.Table.fields.includes(ca)||(ml.view.Table.fields=[...ml.view.Table.fields,ca]):ua[pl]=createDashboardBodySchema(aa);const gl=`${aa}.ui.relationship.table`,wc=ua[gl];wc&&wc.view?.Table?.fields?wc.view.Table.fields.includes(ca)||(wc.view.Table.fields=[...wc.view.Table.fields,ca]):ua[gl]=createRelationshipTableSchema(aa);const xu=`${aa}.ui.instance.summary`,ff=ua[xu];return ff&&ff.view?.Card?.fields?ff.view.Card.fields.includes(ca)||(ff.view.Card.fields=[...ff.view.Card.fields,ca]):ua[xu]=createInstanceSummarySchema(aa),ua}function repopulateUISchemaForNewAgent(la,aa){invalidateEntitiesAndAgentsCache();const ca=new Set(la.agents||[]);if(ca.has(aa)&&la[aa])return la;const{allAgents:ua,rootEntities:Sa}=getAllEntitiesAndAgents(),hl=ua.some(gl=>!ca.has(gl)),pl=hl?ua:la.agents,ml={...la,agents:pl};if((hl||!la.navigation)&&(ml.navigation=createNavigation(Sa,ua)),!ml[aa]){const[gl,wc]=aa.split("/");ml[aa]=createAgentDetailsSchema(wc,gl)}return ml}function repopulateUISchemaAfterEntityDeletion(la,aa){invalidateEntitiesAndAgentsCache();const{entities:ca,rootEntities:ua,allAgents:Sa}=getAllEntitiesAndAgents(),hl=ca.filter(wc=>wc!==aa),pl={...la,entities:hl,agents:Sa};[aa,`${aa}.ui.form`,`${aa}.ui.dashboard`,`${aa}.ui.dashboard.header`,`${aa}.ui.dashboard.body`,`${aa}.ui.instance`,`${aa}.ui.instance.header`,`${aa}.ui.instance.summary`,`${aa}.ui.relationship.table`].forEach(wc=>{delete pl[wc]});const ml=(la.relationships||[]).filter(wc=>{const xu=wc.parent,ff=wc.child;return xu!==aa&&ff!==aa});pl.relationships=ml,pl.navigation=createNavigation(ua,Sa);const gl=createHomeDashboardSchema("My App",ua);return pl.homeDashboard=gl,pl}function repopulateUISchemaAfterAgentDeletion(la,aa){invalidateEntitiesAndAgentsCache();const{rootEntities:ca,allAgents:ua}=getAllEntitiesAndAgents(),Sa=ua.filter(pl=>pl!==aa),hl={...la,agents:Sa};return delete hl[aa],hl.navigation=createNavigation(ca,ua),hl}function repopulateUISchemaAfterAttributeDeletion(la,aa,ca){const ua={...la},Sa=`${aa}.ui.form`,hl=creteFormSchema(aa),pl=mergeFormSchema(la[Sa],hl);if(pl&&pl.Form&&(ca.forEach(Uf=>{pl.Form[Uf]&&delete pl.Form[Uf]}),pl.order&&(pl.order=pl.order.filter(Uf=>!ca.includes(Uf)))),ua[Sa]=pl,ua[aa]){const Uf=createEntityDetailsSchema(aa);ua[aa]=deepMerge(ua[aa],Uf)}else ua[aa]=createEntityDetailsSchema(aa);const ml=`${aa}.ui.dashboard.body`,gl=ua[ml];gl&&gl.view?.Table?.fields&&(gl.view.Table.fields=gl.view.Table.fields.filter(Uf=>!ca.includes(Uf)));const wc=`${aa}.ui.relationship.table`,xu=ua[wc];xu&&xu.view?.Table?.fields&&(xu.view.Table.fields=xu.view.Table.fields.filter(Uf=>!ca.includes(Uf)));const ff=`${aa}.ui.instance.summary`,jf=ua[ff];return jf&&jf.view?.Card?.fields&&(jf.view.Card.fields=jf.view.Card.fields.filter(Uf=>!ca.includes(Uf))),ua}function repopulateUISchemaForNewRelationship(la,aa){invalidateEntitiesAndAgentsCache();const ca=getRelationships$1(aa).map(jf=>createRelationshipDetailsSchema(jf,aa)).filter(Boolean),ua=la.relationships||[],Sa=new Map(ua.map(jf=>[jf.name||String(jf),jf]));ca.forEach(jf=>{jf&&Sa.set(jf.name||String(jf),jf)});const hl=Array.from(Sa.values()),{entities:pl,rootEntities:ml,allAgents:gl}=getAllEntitiesAndAgents(),wc=pl.filter(jf=>jf.startsWith(`${aa}/`)),xu={...la,relationships:hl};xu.navigation=createNavigation(ml,gl);const ff=la.appInfo?.name||"My App";xu.homeDashboard=createHomeDashboardSchema(ff,ml);for(const jf of wc){const Uf=`${jf}.ui.instance`;xu[Uf]=createEntityInstanceSchema(jf)}return xu}function repopulateUISchemaAfterRelationshipDeletion(la,aa,ca){return repopulateUISchemaForNewRelationship(la,ca)}const index$6=Object.freeze(Object.defineProperty({__proto__:null,EnvConfig,buildUISchemaSection,cloneRepository,commitChanges,createDefaultUISchema,createGitHubRepo,createGitUtils,createNavigation,fetchLatestChanges,findFilesWithExtension,forcePullChanges,getInputType,getNestedAttributeInfo,getURL,hasRemoteUpdates,invalidateEntitiesAndAgentsCache,loadUISchema,openRepository,pathExists,pushChanges,readRepoFile,removeDirectory,repopulateUISchemaAfterAgentDeletion,repopulateUISchemaAfterAttributeDeletion,repopulateUISchemaAfterEntityDeletion,repopulateUISchemaAfterRelationshipDeletion,repopulateUISchemaForNewAgent,repopulateUISchemaForNewAttribute,repopulateUISchemaForNewEntity,repopulateUISchemaForNewRelationship,updateExistingRepository,verifyClonedRepository,writeRepoFile},Symbol.toStringTag,{value:"Module"}));function bind(la,aa){return function(){return la.apply(aa,arguments)}}const{toString}=Object.prototype,{getPrototypeOf}=Object,{iterator,toStringTag}=Symbol,kindOf=(la=>aa=>{const ca=toString.call(aa);return la[ca]||(la[ca]=ca.slice(8,-1).toLowerCase())})(Object.create(null)),kindOfTest=la=>(la=la.toLowerCase(),aa=>kindOf(aa)===la),typeOfTest=la=>aa=>typeof aa===la,{isArray:isArray$3}=Array,isUndefined=typeOfTest("undefined");function isBuffer$1(la){return la!==null&&!isUndefined(la)&&la.constructor!==null&&!isUndefined(la.constructor)&&isFunction$5(la.constructor.isBuffer)&&la.constructor.isBuffer(la)}const isArrayBuffer=kindOfTest("ArrayBuffer");function isArrayBufferView(la){let aa;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?aa=ArrayBuffer.isView(la):aa=la&&la.buffer&&isArrayBuffer(la.buffer),aa}const isString=typeOfTest("string"),isFunction$5=typeOfTest("function"),isNumber=typeOfTest("number"),isObject$3=la=>la!==null&&typeof la=="object",isBoolean=la=>la===!0||la===!1,isPlainObject$1=la=>{if(kindOf(la)!=="object")return!1;const aa=getPrototypeOf(la);return(aa===null||aa===Object.prototype||Object.getPrototypeOf(aa)===null)&&!(toStringTag in la)&&!(iterator in la)},isEmptyObject=la=>{if(!isObject$3(la)||isBuffer$1(la))return!1;try{return Object.keys(la).length===0&&Object.getPrototypeOf(la)===Object.prototype}catch{return!1}},isDate=kindOfTest("Date"),isFile=kindOfTest("File"),isBlob=kindOfTest("Blob"),isFileList=kindOfTest("FileList"),isStream=la=>isObject$3(la)&&isFunction$5(la.pipe),isFormData=la=>{let aa;return la&&(typeof FormData=="function"&&la instanceof FormData||isFunction$5(la.append)&&((aa=kindOf(la))==="formdata"||aa==="object"&&isFunction$5(la.toString)&&la.toString()==="[object FormData]"))},isURLSearchParams=kindOfTest("URLSearchParams"),[isReadableStream,isRequest,isResponse,isHeaders]=["ReadableStream","Request","Response","Headers"].map(kindOfTest),trim$1=la=>la.trim?la.trim():la.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function forEach(la,aa,{allOwnKeys:ca=!1}={}){if(la===null||typeof la>"u")return;let ua,Sa;if(typeof la!="object"&&(la=[la]),isArray$3(la))for(ua=0,Sa=la.length;ua<Sa;ua++)aa.call(null,la[ua],ua,la);else{if(isBuffer$1(la))return;const hl=ca?Object.getOwnPropertyNames(la):Object.keys(la),pl=hl.length;let ml;for(ua=0;ua<pl;ua++)ml=hl[ua],aa.call(null,la[ml],ml,la)}}function findKey(la,aa){if(isBuffer$1(la))return null;aa=aa.toLowerCase();const ca=Object.keys(la);let ua=ca.length,Sa;for(;ua-- >0;)if(Sa=ca[ua],aa===Sa.toLowerCase())return Sa;return null}const _global=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,isContextDefined=la=>!isUndefined(la)&&la!==_global;function merge$2(){const{caseless:la,skipUndefined:aa}=isContextDefined(this)&&this||{},ca={},ua=(Sa,hl)=>{const pl=la&&findKey(ca,hl)||hl;isPlainObject$1(ca[pl])&&isPlainObject$1(Sa)?ca[pl]=merge$2(ca[pl],Sa):isPlainObject$1(Sa)?ca[pl]=merge$2({},Sa):isArray$3(Sa)?ca[pl]=Sa.slice():(!aa||!isUndefined(Sa))&&(ca[pl]=Sa)};for(let Sa=0,hl=arguments.length;Sa<hl;Sa++)arguments[Sa]&&forEach(arguments[Sa],ua);return ca}const extend$1=(la,aa,ca,{allOwnKeys:ua}={})=>(forEach(aa,(Sa,hl)=>{ca&&isFunction$5(Sa)?la[hl]=bind(Sa,ca):la[hl]=Sa},{allOwnKeys:ua}),la),stripBOM=la=>(la.charCodeAt(0)===65279&&(la=la.slice(1)),la),inherits=(la,aa,ca,ua)=>{la.prototype=Object.create(aa.prototype,ua),la.prototype.constructor=la,Object.defineProperty(la,"super",{value:aa.prototype}),ca&&Object.assign(la.prototype,ca)},toFlatObject=(la,aa,ca,ua)=>{let Sa,hl,pl;const ml={};if(aa=aa||{},la==null)return aa;do{for(Sa=Object.getOwnPropertyNames(la),hl=Sa.length;hl-- >0;)pl=Sa[hl],(!ua||ua(pl,la,aa))&&!ml[pl]&&(aa[pl]=la[pl],ml[pl]=!0);la=ca!==!1&&getPrototypeOf(la)}while(la&&(!ca||ca(la,aa))&&la!==Object.prototype);return aa},endsWith=(la,aa,ca)=>{la=String(la),(ca===void 0||ca>la.length)&&(ca=la.length),ca-=aa.length;const ua=la.indexOf(aa,ca);return ua!==-1&&ua===ca},toArray$2=la=>{if(!la)return null;if(isArray$3(la))return la;let aa=la.length;if(!isNumber(aa))return null;const ca=new Array(aa);for(;aa-- >0;)ca[aa]=la[aa];return ca},isTypedArray=(la=>aa=>la&&aa instanceof la)(typeof Uint8Array<"u"&&getPrototypeOf(Uint8Array)),forEachEntry=(la,aa)=>{const ua=(la&&la[iterator]).call(la);let Sa;for(;(Sa=ua.next())&&!Sa.done;){const hl=Sa.value;aa.call(la,hl[0],hl[1])}},matchAll=(la,aa)=>{let ca;const ua=[];for(;(ca=la.exec(aa))!==null;)ua.push(ca);return ua},isHTMLForm=kindOfTest("HTMLFormElement"),toCamelCase=la=>la.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(ca,ua,Sa){return ua.toUpperCase()+Sa}),hasOwnProperty$2=(({hasOwnProperty:la})=>(aa,ca)=>la.call(aa,ca))(Object.prototype),isRegExp=kindOfTest("RegExp"),reduceDescriptors=(la,aa)=>{const ca=Object.getOwnPropertyDescriptors(la),ua={};forEach(ca,(Sa,hl)=>{let pl;(pl=aa(Sa,hl,la))!==!1&&(ua[hl]=pl||Sa)}),Object.defineProperties(la,ua)},freezeMethods=la=>{reduceDescriptors(la,(aa,ca)=>{if(isFunction$5(la)&&["arguments","caller","callee"].indexOf(ca)!==-1)return!1;const ua=la[ca];if(isFunction$5(ua)){if(aa.enumerable=!1,"writable"in aa){aa.writable=!1;return}aa.set||(aa.set=()=>{throw Error("Can not rewrite read-only method '"+ca+"'")})}})},toObjectSet=(la,aa)=>{const ca={},ua=Sa=>{Sa.forEach(hl=>{ca[hl]=!0})};return isArray$3(la)?ua(la):ua(String(la).split(aa)),ca},noop$8=()=>{},toFiniteNumber=(la,aa)=>la!=null&&Number.isFinite(la=+la)?la:aa;function isSpecCompliantForm(la){return!!(la&&isFunction$5(la.append)&&la[toStringTag]==="FormData"&&la[iterator])}const toJSONObject=la=>{const aa=new Array(10),ca=(ua,Sa)=>{if(isObject$3(ua)){if(aa.indexOf(ua)>=0)return;if(isBuffer$1(ua))return ua;if(!("toJSON"in ua)){aa[Sa]=ua;const hl=isArray$3(ua)?[]:{};return forEach(ua,(pl,ml)=>{const gl=ca(pl,Sa+1);!isUndefined(gl)&&(hl[ml]=gl)}),aa[Sa]=void 0,hl}}return ua};return ca(la,0)},isAsyncFn=kindOfTest("AsyncFunction"),isThenable=la=>la&&(isObject$3(la)||isFunction$5(la))&&isFunction$5(la.then)&&isFunction$5(la.catch),_setImmediate=((la,aa)=>la?setImmediate:aa?((ca,ua)=>(_global.addEventListener("message",({source:Sa,data:hl})=>{Sa===_global&&hl===ca&&ua.length&&ua.shift()()},!1),Sa=>{ua.push(Sa),_global.postMessage(ca,"*")}))(`axios@${Math.random()}`,[]):ca=>setTimeout(ca))(typeof setImmediate=="function",isFunction$5(_global.postMessage)),asap=typeof queueMicrotask<"u"?queueMicrotask.bind(_global):typeof process<"u"&&process.nextTick||_setImmediate,isIterable=la=>la!=null&&isFunction$5(la[iterator]),utils$2={isArray:isArray$3,isArrayBuffer,isBuffer:isBuffer$1,isFormData,isArrayBufferView,isString,isNumber,isBoolean,isObject:isObject$3,isPlainObject:isPlainObject$1,isEmptyObject,isReadableStream,isRequest,isResponse,isHeaders,isUndefined,isDate,isFile,isBlob,isRegExp,isFunction:isFunction$5,isStream,isURLSearchParams,isTypedArray,isFileList,forEach,merge:merge$2,extend:extend$1,trim:trim$1,stripBOM,inherits,toFlatObject,kindOf,kindOfTest,endsWith,toArray:toArray$2,forEachEntry,matchAll,isHTMLForm,hasOwnProperty:hasOwnProperty$2,hasOwnProp:hasOwnProperty$2,reduceDescriptors,freezeMethods,toObjectSet,toCamelCase,noop:noop$8,toFiniteNumber,findKey,global:_global,isContextDefined,isSpecCompliantForm,toJSONObject,isAsyncFn,isThenable,setImmediate:_setImmediate,asap,isIterable};function AxiosError$1(la,aa,ca,ua,Sa){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=la,this.name="AxiosError",aa&&(this.code=aa),ca&&(this.config=ca),ua&&(this.request=ua),Sa&&(this.response=Sa,this.status=Sa.status?Sa.status:null)}utils$2.inherits(AxiosError$1,Error,{toJSON:function la(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:utils$2.toJSONObject(this.config),code:this.code,status:this.status}}});const prototype$1=AxiosError$1.prototype,descriptors={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(la=>{descriptors[la]={value:la}});Object.defineProperties(AxiosError$1,descriptors);Object.defineProperty(prototype$1,"isAxiosError",{value:!0});AxiosError$1.from=(la,aa,ca,ua,Sa,hl)=>{const pl=Object.create(prototype$1);utils$2.toFlatObject(la,pl,function(xu){return xu!==Error.prototype},wc=>wc!=="isAxiosError");const ml=la&&la.message?la.message:"Error",gl=aa==null&&la?la.code:aa;return AxiosError$1.call(pl,ml,gl,ca,ua,Sa),la&&pl.cause==null&&Object.defineProperty(pl,"cause",{value:la,configurable:!0}),pl.name=la&&la.name||"Error",hl&&Object.assign(pl,hl),pl};const httpAdapter=null;function isVisitable(la){return utils$2.isPlainObject(la)||utils$2.isArray(la)}function removeBrackets(la){return utils$2.endsWith(la,"[]")?la.slice(0,-2):la}function renderKey(la,aa,ca){return la?la.concat(aa).map(function(Sa,hl){return Sa=removeBrackets(Sa),!ca&&hl?"["+Sa+"]":Sa}).join(ca?".":""):aa}function isFlatArray(la){return utils$2.isArray(la)&&!la.some(isVisitable)}const predicates=utils$2.toFlatObject(utils$2,{},null,function la(aa){return/^is[A-Z]/.test(aa)});function toFormData$1(la,aa,ca){if(!utils$2.isObject(la))throw new TypeError("target must be an object");aa=aa||new FormData,ca=utils$2.toFlatObject(ca,{metaTokens:!0,dots:!1,indexes:!1},!1,function(np,qm){return!utils$2.isUndefined(qm[np])});const ua=ca.metaTokens,Sa=ca.visitor||xu,hl=ca.dots,pl=ca.indexes,gl=(ca.Blob||typeof Blob<"u"&&Blob)&&utils$2.isSpecCompliantForm(aa);if(!utils$2.isFunction(Sa))throw new TypeError("visitor must be a function");function wc(rp){if(rp===null)return"";if(utils$2.isDate(rp))return rp.toISOString();if(utils$2.isBoolean(rp))return rp.toString();if(!gl&&utils$2.isBlob(rp))throw new AxiosError$1("Blob is not supported. Use a Buffer instead.");return utils$2.isArrayBuffer(rp)||utils$2.isTypedArray(rp)?gl&&typeof Blob=="function"?new Blob([rp]):Buffer.from(rp):rp}function xu(rp,np,qm){let Vm=rp;if(rp&&!qm&&typeof rp=="object"){if(utils$2.endsWith(np,"{}"))np=ua?np:np.slice(0,-2),rp=JSON.stringify(rp);else if(utils$2.isArray(rp)&&isFlatArray(rp)||(utils$2.isFileList(rp)||utils$2.endsWith(np,"[]"))&&(Vm=utils$2.toArray(rp)))return np=removeBrackets(np),Vm.forEach(function(tg,rg){!(utils$2.isUndefined(tg)||tg===null)&&aa.append(pl===!0?renderKey([np],rg,hl):pl===null?np:np+"[]",wc(tg))}),!1}return isVisitable(rp)?!0:(aa.append(renderKey(qm,np,hl),wc(rp)),!1)}const ff=[],jf=Object.assign(predicates,{defaultVisitor:xu,convertValue:wc,isVisitable});function Uf(rp,np){if(!utils$2.isUndefined(rp)){if(ff.indexOf(rp)!==-1)throw Error("Circular reference detected in "+np.join("."));ff.push(rp),utils$2.forEach(rp,function(Vm,eg){(!(utils$2.isUndefined(Vm)||Vm===null)&&Sa.call(aa,Vm,utils$2.isString(eg)?eg.trim():eg,np,jf))===!0&&Uf(Vm,np?np.concat(eg):[eg])}),ff.pop()}}if(!utils$2.isObject(la))throw new TypeError("data must be an object");return Uf(la),aa}function encode$2(la){const aa={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(la).replace(/[!'()~]|%20|%00/g,function(ua){return aa[ua]})}function AxiosURLSearchParams(la,aa){this._pairs=[],la&&toFormData$1(la,this,aa)}const prototype=AxiosURLSearchParams.prototype;prototype.append=function la(aa,ca){this._pairs.push([aa,ca])};prototype.toString=function la(aa){const ca=aa?function(ua){return aa.call(this,ua,encode$2)}:encode$2;return this._pairs.map(function(Sa){return ca(Sa[0])+"="+ca(Sa[1])},"").join("&")};function encode$1(la){return encodeURIComponent(la).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function buildURL(la,aa,ca){if(!aa)return la;const ua=ca&&ca.encode||encode$1;utils$2.isFunction(ca)&&(ca={serialize:ca});const Sa=ca&&ca.serialize;let hl;if(Sa?hl=Sa(aa,ca):hl=utils$2.isURLSearchParams(aa)?aa.toString():new AxiosURLSearchParams(aa,ca).toString(ua),hl){const pl=la.indexOf("#");pl!==-1&&(la=la.slice(0,pl)),la+=(la.indexOf("?")===-1?"?":"&")+hl}return la}class InterceptorManager{constructor(){this.handlers=[]}use(aa,ca,ua){return this.handlers.push({fulfilled:aa,rejected:ca,synchronous:ua?ua.synchronous:!1,runWhen:ua?ua.runWhen:null}),this.handlers.length-1}eject(aa){this.handlers[aa]&&(this.handlers[aa]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(aa){utils$2.forEach(this.handlers,function(ua){ua!==null&&aa(ua)})}}const transitionalDefaults={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},URLSearchParams$1=typeof URLSearchParams<"u"?URLSearchParams:AxiosURLSearchParams,FormData$1=typeof FormData<"u"?FormData:null,Blob$1=typeof Blob<"u"?Blob:null,platform$2={isBrowser:!0,classes:{URLSearchParams:URLSearchParams$1,FormData:FormData$1,Blob:Blob$1},protocols:["http","https","file","blob","url","data"]},hasBrowserEnv=typeof window<"u"&&typeof document<"u",_navigator=typeof navigator=="object"&&navigator||void 0,hasStandardBrowserEnv=hasBrowserEnv&&(!_navigator||["ReactNative","NativeScript","NS"].indexOf(_navigator.product)<0),hasStandardBrowserWebWorkerEnv=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",origin=hasBrowserEnv&&window.location.href||"http://localhost",utils$1=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv,hasStandardBrowserEnv,hasStandardBrowserWebWorkerEnv,navigator:_navigator,origin},Symbol.toStringTag,{value:"Module"})),platform$1={...utils$1,...platform$2};function toURLEncodedForm(la,aa){return toFormData$1(la,new platform$1.classes.URLSearchParams,{visitor:function(ca,ua,Sa,hl){return platform$1.isNode&&utils$2.isBuffer(ca)?(this.append(ua,ca.toString("base64")),!1):hl.defaultVisitor.apply(this,arguments)},...aa})}function parsePropPath(la){return utils$2.matchAll(/\w+|\[(\w*)]/g,la).map(aa=>aa[0]==="[]"?"":aa[1]||aa[0])}function arrayToObject(la){const aa={},ca=Object.keys(la);let ua;const Sa=ca.length;let hl;for(ua=0;ua<Sa;ua++)hl=ca[ua],aa[hl]=la[hl];return aa}function formDataToJSON(la){function aa(ca,ua,Sa,hl){let pl=ca[hl++];if(pl==="__proto__")return!0;const ml=Number.isFinite(+pl),gl=hl>=ca.length;return pl=!pl&&utils$2.isArray(Sa)?Sa.length:pl,gl?(utils$2.hasOwnProp(Sa,pl)?Sa[pl]=[Sa[pl],ua]:Sa[pl]=ua,!ml):((!Sa[pl]||!utils$2.isObject(Sa[pl]))&&(Sa[pl]=[]),aa(ca,ua,Sa[pl],hl)&&utils$2.isArray(Sa[pl])&&(Sa[pl]=arrayToObject(Sa[pl])),!ml)}if(utils$2.isFormData(la)&&utils$2.isFunction(la.entries)){const ca={};return utils$2.forEachEntry(la,(ua,Sa)=>{aa(parsePropPath(ua),Sa,ca,0)}),ca}return null}function stringifySafely(la,aa,ca){if(utils$2.isString(la))try{return(aa||JSON.parse)(la),utils$2.trim(la)}catch(ua){if(ua.name!=="SyntaxError")throw ua}return(ca||JSON.stringify)(la)}const defaults$1={transitional:transitionalDefaults,adapter:["xhr","http","fetch"],transformRequest:[function la(aa,ca){const ua=ca.getContentType()||"",Sa=ua.indexOf("application/json")>-1,hl=utils$2.isObject(aa);if(hl&&utils$2.isHTMLForm(aa)&&(aa=new FormData(aa)),utils$2.isFormData(aa))return Sa?JSON.stringify(formDataToJSON(aa)):aa;if(utils$2.isArrayBuffer(aa)||utils$2.isBuffer(aa)||utils$2.isStream(aa)||utils$2.isFile(aa)||utils$2.isBlob(aa)||utils$2.isReadableStream(aa))return aa;if(utils$2.isArrayBufferView(aa))return aa.buffer;if(utils$2.isURLSearchParams(aa))return ca.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),aa.toString();let ml;if(hl){if(ua.indexOf("application/x-www-form-urlencoded")>-1)return toURLEncodedForm(aa,this.formSerializer).toString();if((ml=utils$2.isFileList(aa))||ua.indexOf("multipart/form-data")>-1){const gl=this.env&&this.env.FormData;return toFormData$1(ml?{"files[]":aa}:aa,gl&&new gl,this.formSerializer)}}return hl||Sa?(ca.setContentType("application/json",!1),stringifySafely(aa)):aa}],transformResponse:[function la(aa){const ca=this.transitional||defaults$1.transitional,ua=ca&&ca.forcedJSONParsing,Sa=this.responseType==="json";if(utils$2.isResponse(aa)||utils$2.isReadableStream(aa))return aa;if(aa&&utils$2.isString(aa)&&(ua&&!this.responseType||Sa)){const pl=!(ca&&ca.silentJSONParsing)&&Sa;try{return JSON.parse(aa,this.parseReviver)}catch(ml){if(pl)throw ml.name==="SyntaxError"?AxiosError$1.from(ml,AxiosError$1.ERR_BAD_RESPONSE,this,null,this.response):ml}}return aa}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:platform$1.classes.FormData,Blob:platform$1.classes.Blob},validateStatus:function la(aa){return aa>=200&&aa<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};utils$2.forEach(["delete","get","head","post","put","patch"],la=>{defaults$1.headers[la]={}});const ignoreDuplicateOf=utils$2.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),parseHeaders=la=>{const aa={};let ca,ua,Sa;return la&&la.split(`
|
|
16870
|
+
}}`,Sa,pl);isInstanceOfType(ml,"agentlang/auditlog")||logger$1.warn(`Failed to create auditlog for action ${aa} and resource ${ca} for user ${Sa}`)}async function addCreateAudit$1(la,aa){await addAudit$1(aa,"c",la)}async function addDeleteAudit$1(la,aa,ca){await addAudit$1(ca,"d",la,aa)}async function addUpdateAudit$1(la,aa,ca){await addAudit$1(ca,"u",la,aa)}async function createSuspension$1(la,aa,ca){const ua=ca.getActiveUser(),Sa=new Environment$1("susp",ca).setInKernelMode(!0),hl=ca.asSerializableObject(),pl=makeInstance("agentlang","createSuspension",newInstanceAttributes().set("id",la).set("continuation",aa).set("env",hl).set("createdBy",ua)),ml=await evaluate$2(pl,void 0,Sa);if(!isInstanceOfType(ml,"agentlang/suspension")){logger$1.warn(`Failed to create suspension for user ${ua}`);return}return ml.lookup("id")}function getMonitoringEventName$1(la){return isInstanceOfType(la,"agentlang.ai/Agent")?`${la.lookup("moduleName")}/${la.lookup("name")}`:la.getFqName()}async function saveMonitoringData$1(la){const aa=btoa(JSON.stringify(la.asObject())),ca=la.getEventInstance(),ua=ca?btoa(JSON.stringify(ca.asSerializableObject())):"",Sa=la.getUser()||"admin",hl=la.getTotalLatencyMs(),pl=la.getId(),ml=new Environment$1(`monitor-${pl}-env`),gl=ca?getMonitoringEventName$1(ca):pl;await parseAndEvaluateStatement$1(`{agentlang/Monitor {id "${pl}", eventName "${gl}", eventInstance "${ua}", user "${Sa}", totalLatencyMs ${hl}, data "${aa}"}}`,void 0,ml),await ml.commitAllTransactions()}async function flushMonitoringData$1(la){const aa=getMonitor$1(la);try{if(aa){await saveMonitoringData$1(aa);const ca=aa.getAllSubgraphRoots();for(let ua=0;ua<ca.length;++ua){const Sa=ca[ua];Sa.getEventInstance()&&await saveMonitoringData$1(Sa)}}else logger$1.warn(`Failed to locate monitor with id ${la}`)}catch(ca){logger$1.error(`Failed to flush monitor ${la} - ${ca}`)}}const __vite_import_meta_env__$1={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1,VITE_API_URL:"https://agent-meta-dev.api.fractl.dev",VITE_CONNECTION_MANAGER_SERVICE_URL:"https://integration-manager-dev.api.fractl.dev/",VITE_CORS_PROXY_URL:"https://cors-proxy-1.fractl.io",VITE_DEPLOYMENT_API_URL:"https://deployment-service.api.fractl.dev/",VITE_INGESTER_SERVICE_URL:"https://retrieval-service.fractl.io/",VITE_IS_LOCAL_MODE:void 0,VITE_IS_PLAYGROUND:void 0,VITE_MARKETPLACE_API_URL:"https://marketplace-meta-dev.api.fractl.dev",VITE_UPPY_URL:"https://uploader-service.fractl.io"};typeof window<"u"&&(window.Buffer=bufferExports$1.Buffer);const createGitUtils=async(la={})=>{const aa=la.fsName||"studio",ca=await N$1$1({name:aa,useCliBackend:la.useCliBackend}),ua=R$4(ca);return{fs:ca,git:ua}},cloneRepository=async(la,aa,ca="main",ua)=>{const{fs:Sa,git:hl}=await createGitUtils();await pathExists(aa)&&await Sa.removeDir(aa);const pl=la.includes("@github.com");!pl&&!ua&&console.warn("No GitHub token provided - clone may fail for private repositories");const ml={http:index$5,branch:ca,singleBranch:!0,depth:1,force:!0,corsProxy:getURL("cors-proxy")};!pl&&ua&&(ml.token=ua);try{await hl.clone(la,aa,ml),console.log("[Clone] Clone completed successfully"),console.log("[Clone] Verifying cloned repository...");const gl=await verifyClonedRepository(aa);if(!gl.success)throw new Error(`Clone verification failed: ${gl.message}`);return console.log("[Clone] Verification successful:",gl),aa}catch(gl){const wc=gl.message?.includes("401")||gl.message?.includes("403")||gl.message?.includes("authentication")||gl.message?.includes("Authorization")||gl.message?.includes("not found");if(wc&&pl){console.log("[Clone] Authentication failed, retrying with public URL for potential public repository...");const xu=la.replace(/https:\/\/[^:]+:[^@]+@/,"https://");try{const ff={...ml,token:void 0};delete ff.token,console.log("[Clone] Retrying clone with public URL:",{url:xu,dir:aa,branch:ca}),await hl.clone(xu,aa,ff),console.log("[Clone] Clone completed successfully with public URL");const jf=await verifyClonedRepository(aa);if(!jf.success)throw new Error(`Clone verification failed: ${jf.message}`);return console.log("[Clone] Verification successful:",jf),aa}catch(ff){throw console.error("[Clone] Public URL clone also failed:",ff),new Error("Authentication failed. Please check your GitHub token is valid and has the required permissions, or verify the repository exists and is accessible.")}}throw wc?new Error("Authentication failed. Please check your GitHub token is valid and has the required permissions, or verify the repository exists and is accessible."):gl}},readRepoFile=async(la,aa)=>{const ca=typeof window<"u"&&(window.VITE_IS_LOCAL_MODE||import.meta&&__vite_import_meta_env__$1&&void 0),{fs:ua}=await createGitUtils({useCliBackend:ca}),Sa=`${la}/${aa}`;return(await ua.readFile(Sa)).toString()},writeRepoFile=async(la,aa,ca)=>{const{fs:ua}=await createGitUtils(),Sa=`${la}/${aa}`;await ua.writeFile(Sa,ca)},openRepository=async la=>{const{git:aa}=await createGitUtils();return await aa.open(la)},commitChanges=async(la,aa,ca,ua)=>{await la.add(aa),await la.commit(ca,{author:ua})},pushChanges=async(la,aa="origin",ca="main",ua)=>{await la.push(aa,ca,{http:index$5,corsProxy:getURL("cors-proxy"),token:ua,force:!0})},createGitHubRepo=async(la,aa,ca={},ua)=>await u$j(la).createRepository(aa,ca,ua),findFilesWithExtension=async(la,aa)=>{const{fs:ca}=await createGitUtils(),ua=[],Sa=async(hl,pl="")=>{try{const ml=await ca.readdir(hl);for(const gl of ml){const wc=`${hl}/${gl}`,xu=pl?`${pl}/${gl}`:gl;try{const ff=await ca.stat(wc);ff.isDirectory()?gl.startsWith(".")||await Sa(wc,xu):ff.isFile()&&gl.endsWith(`.${aa}`)&&ua.push(xu)}catch(ff){console.error(`Error processing ${wc}:`,ff)}}}catch(ml){console.error(`Error reading directory ${hl}:`,ml)}};return await Sa(la),ua},pathExists=async la=>{const{fs:aa}=await createGitUtils();return await aa.exists(la)},removeDirectory=async la=>{const{fs:aa}=await createGitUtils();try{await aa.exists(la)&&await aa.removeDir(la)}catch(ca){throw console.error(`Error removing directory ${la}:`,ca),ca}},verifyClonedRepository=async la=>{const{fs:aa}=await createGitUtils();try{if(!await aa.exists(la))return{success:!1,fileCount:0,hasPackageJson:!1,hasAlFiles:!1,alFiles:[],message:`Directory ${la} does not exist`};await aa.exists(`${la}/.git`)||console.warn("⚠️ No .git directory found - repository may not be properly cloned");let ca=0,ua=!1;const Sa=[],hl=async(wc,xu="")=>{try{const ff=await aa.readdir(wc);for(const jf of ff){if(jf===".git")continue;const Uf=`${wc}/${jf}`,rp=xu?`${xu}/${jf}`:jf;try{(await aa.stat(Uf)).isDirectory()?await hl(Uf,rp):(ca++,jf==="package.json"&&xu===""&&(ua=!0),jf.endsWith(".al")&&Sa.push(rp))}catch(np){console.error(`Error checking ${Uf}:`,np)}}}catch(ff){console.error(`Error reading directory ${wc}:`,ff)}};await hl(la);const pl=Sa.length>0,ml=ca>0;let gl=`Repository verified: ${ca} files found`;return ua||(gl+=" (⚠️ No package.json found)"),pl||(gl+=" (⚠️ No .al files found)"),{success:ml,fileCount:ca,hasPackageJson:ua,hasAlFiles:pl,alFiles:Sa,message:gl}}catch(ca){return console.error(`Error verifying repository at ${la}:`,ca),{success:!1,fileCount:0,hasPackageJson:!1,hasAlFiles:!1,alFiles:[],message:`Error verifying repository: ${ca}`}}},hasRemoteUpdates=async(la,aa,ca="origin",ua="main")=>{try{const{git:Sa}=await createGitUtils(),hl=await Sa.open(la),pl=await hl.log({depth:1});if(pl.length===0)throw new Error("No local commits found");const ml=pl[0].oid;await hl.fetch(ca,ua,{http:index$5,corsProxy:getURL("cors-proxy"),token:aa});const gl=await hl.log({depth:1});if(gl.length===0)throw new Error("No commits found after fetch");const wc=gl[0].oid;return ml!==wc}catch(Sa){throw Sa.message?.includes("401")||Sa.message?.includes("403")||Sa.message?.includes("authentication")||Sa.message?.includes("Authorization")?new Error("Authentication failed. Please check your GitHub token is valid and has the required permissions."):new Error(`Failed to check for remote updates: ${Sa.message}`)}},fetchLatestChanges=async(la,aa,ca="origin",ua="main")=>{try{const{git:Sa}=await createGitUtils(),hl=await Sa.open(la);await hl.fetch(ca,ua,{http:index$5,corsProxy:getURL("cors-proxy"),token:aa});const pl=await hl.log({depth:1}),ml=pl.length>0?pl[0].oid:void 0;return{success:!0,message:`Successfully fetched changes from ${ca}/${ua}`,fetchHead:ml}}catch(Sa){return Sa.message?.includes("401")||Sa.message?.includes("403")||Sa.message?.includes("authentication")||Sa.message?.includes("Authorization")?{success:!1,message:"Authentication failed. Please check your GitHub token is valid and has the required permissions."}:{success:!1,message:`Failed to fetch changes: ${Sa.message}`}}},forcePullChanges=async(la,aa,ca="origin",ua="main")=>{try{const{git:Sa}=await createGitUtils(),hl=await Sa.open(la);await hl.fetch(ca,ua,{http:index$5,corsProxy:getURL("cors-proxy"),token:aa}),await hl.getCurrentBranch()!==ua&&await hl.checkout(ua);try{return await hl.merge(`${ca}/${ua}`),{success:!0,message:`Successfully pulled and merged changes from ${ca}/${ua}`}}catch(pl){return pl.message?.includes("conflict")||pl.message?.includes("merge")?{success:!1,message:"Merge conflicts detected. Force pull with conflict resolution is not yet implemented.",conflicts:["Merge conflicts detected"]}:{success:!1,message:`Failed to merge changes: ${pl.message}`}}}catch(Sa){return Sa.message?.includes("401")||Sa.message?.includes("403")||Sa.message?.includes("authentication")||Sa.message?.includes("Authorization")?{success:!1,message:"Authentication failed. Please check your GitHub token is valid and has the required permissions."}:{success:!1,message:`Failed to force pull changes: ${Sa.message}`}}},updateExistingRepository=async(la,aa,ca={})=>{const{remote:ua="origin",branch:Sa="main",force:hl=!1,checkOnly:pl=!1}=ca;try{if(!await pathExists(la))return{success:!1,message:`Repository path ${la} does not exist`};if(!await pathExists(`${la}/.git`))return{success:!1,message:`Path ${la} is not a git repository`};const ml=await hasRemoteUpdates(la,aa,ua,Sa);if(pl)return{success:!0,message:ml?`Updates available from ${ua}/${Sa}`:`Repository is up to date with ${ua}/${Sa}`,hasUpdates:ml,updateAvailable:ml};if(!ml)return{success:!0,message:`Repository is already up to date with ${ua}/${Sa}`,hasUpdates:!1};if(hl)return{...await forcePullChanges(la,aa,ua,Sa),hasUpdates:!0};try{const{git:gl}=await createGitUtils(),wc=await fetchLatestChanges(la,aa,ua,Sa);return wc.success?(await(await gl.open(la)).merge(`${ua}/${Sa}`),{success:!0,message:`Successfully updated repository from ${ua}/${Sa}`,hasUpdates:!0}):{success:!1,message:wc.message,hasUpdates:!0}}catch(gl){return gl.message?.includes("conflict")?{success:!1,message:"Update failed due to merge conflicts. Use force option to overwrite local changes.",hasUpdates:!0,conflicts:["Merge conflicts detected"]}:{success:!1,message:`Failed to update repository: ${gl.message}`,hasUpdates:!0}}}catch(ml){return ml.message?.includes("401")||ml.message?.includes("403")||ml.message?.includes("authentication")||ml.message?.includes("Authorization")?{success:!1,message:"Authentication failed. Please check your GitHub token is valid and has the required permissions."}:{success:!1,message:`Failed to update repository: ${ml.message}`}}};var pluralize$2={exports:{}},pluralize$1=pluralize$2.exports,hasRequiredPluralize;function requirePluralize(){return hasRequiredPluralize||(hasRequiredPluralize=1,(function(la,aa){(function(ca,ua){typeof r$g=="function"?la.exports=ua():ca.pluralize=ua()})(pluralize$1,function(){var ca=[],ua=[],Sa={},hl={},pl={};function ml(rp){return rp.charAt(0).toUpperCase()+rp.substr(1).toLowerCase()}function gl(rp){return typeof rp=="string"?new RegExp("^"+rp+"$","i"):rp}function wc(rp,np){return rp===rp.toUpperCase()?np.toUpperCase():rp[0]===rp[0].toUpperCase()?ml(np):np.toLowerCase()}function xu(rp,np){return rp.replace(/\$(\d{1,2})/g,function(qm,Vm){return np[Vm]||""})}function ff(rp,np,qm){if(!rp.length||Sa.hasOwnProperty(rp))return np;for(var Vm=qm.length;Vm--;){var eg=qm[Vm];if(eg[0].test(np))return np.replace(eg[0],function(tg,rg,ig){var vv=xu(eg[1],arguments);return wc(tg===""?ig[rg-1]:tg,vv)})}return np}function jf(rp,np,qm){return function(Vm){var eg=Vm.toLowerCase();return np.hasOwnProperty(eg)?wc(Vm,eg):rp.hasOwnProperty(eg)?wc(Vm,rp[eg]):ff(eg,Vm,qm)}}function Uf(rp,np,qm){var Vm=np===1?Uf.singular(rp):Uf.plural(rp);return(qm?np+" ":"")+Vm}return Uf.plural=jf(pl,hl,ca),Uf.singular=jf(hl,pl,ua),Uf.addPluralRule=function(rp,np){ca.push([gl(rp),np])},Uf.addSingularRule=function(rp,np){ua.push([gl(rp),np])},Uf.addUncountableRule=function(rp){if(typeof rp=="string"){Sa[rp.toLowerCase()]=!0;return}Uf.addPluralRule(rp,"$0"),Uf.addSingularRule(rp,"$0")},Uf.addIrregularRule=function(rp,np){np=np.toLowerCase(),rp=rp.toLowerCase(),pl[rp]=np,hl[np]=rp},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["thief","thieves"],["genie","genies"],["groove","grooves"],["pickaxe","pickaxes"],["whiskey","whiskies"]].forEach(function(rp){return Uf.addIrregularRule(rp[0],rp[1])}),[[/s?$/i,"s"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|tlas|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[emjzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|octop|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/(m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach(function(rp){return Uf.addPluralRule(rp[0],rp[1])}),[[/s$/i,""],[/(ss)$/i,"$1"],[/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)(?:sis|ses)$/i,"$1sis"],[/(^analy)(?:sis|ses)$/i,"$1sis"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(^[pl]|zomb|^(?:neck)?t|[aeo][lt]|cut)ies$/i,"$1ie"],[/(\b(?:mon|smil))ies$/i,"$1ey"],[/(m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|tlas|gas|(?:her|at|gr)o|ris)(?:es)?$/i,"$1"],[/(e[mn]u)s?$/i,"$1"],[/(movie|twelve)s$/i,"$1"],[/(cris|test|diagnos)(?:is|es)$/i,"$1is"],[/(alumn|syllab|octop|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach(function(rp){return Uf.addSingularRule(rp[0],rp[1])}),["advice","agenda","bison","bream","buffalo","carp","chassis","cod","cooperation","corps","digestion","debris","diabetes","energy","equipment","elk","excretion","expertise","flounder","gallows","garbage","graffiti","headquarters","health","herpes","highjinks","homework","information","jeans","justice","kudos","labour","machinery","mackerel","media","mews","moose","news","pike","plankton","pliers","pollution","premises","rain","rice","salmon","scissors","series","sewage","shambles","shrimp","species","staff","swine","trout","tuna","whiting","wildebeest","wildlife","you",/pox$/i,/ois$/i,/deer$/i,/fish$/i,/sheep$/i,/measles$/i,/[^aeiou]ese$/i].forEach(Uf.addUncountableRule),Uf})})(pluralize$2)),pluralize$2.exports}var pluralizeExports=requirePluralize();const pluralize=f$k(pluralizeExports),getNestedAttributeInfo=(la,aa,ca)=>{const ua=aa.properties?.get("oneof"),Sa=aa.type||aa.properties?.get("type"),hl=ua||Sa,pl=(xu,ff)=>{try{let jf=ff;if(ff&&!ff.includes(".")&&!ff.includes("/")){const rp=getUserModuleNames().find(np=>np.startsWith(ff));rp&&(jf=rp)}if(!jf)return null;const Uf=getEntity$1(xu,jf)?.getUserAttributes();return{hasAttributes:(Uf?Array.from(Uf.keys()).length:0)>0,resolvedModule:jf,attributes:Uf||null}}catch{return null}},ml=(xu,ff)=>{try{let jf=ff;if(ff&&!ff.includes(".")&&!ff.includes("/")){const rp=getUserModuleNames().find(np=>np.startsWith(ff));rp&&(jf=rp)}if(!jf)return null;const Uf=getRecord(xu,jf)?.getUserAttributes();return{hasAttributes:(Uf?Array.from(Uf.keys()).length:0)>0,resolvedModule:jf,attributes:Uf||null}}catch{return null}},gl=(xu,ff)=>{try{return fetchModule$2(ff).getEntityNames().includes(xu)}catch{return!1}},wc=(xu,ff)=>{try{return fetchModule$2(ff).getRecordNames().includes(xu)}catch{return!1}};if(hl){let xu=null,ff=null;if(isFqName(hl)){const jf=nameToPath(hl);xu=jf.getModuleName(),ff=jf.getEntryName()}else typeof hl=="string"&&(xu=ca||null,ff=hl);if(ff&&xu){const jf=wc(ff,xu),Uf=gl(ff,xu),rp=!!ua;if(jf){const np=ml(ff,xu);if(np?.hasAttributes&&np.attributes)return{isNested:!0,type:"record",referencedName:ff,referencedModule:np.resolvedModule,nestedAttributes:np.attributes}}else if(Uf||rp){const np=pl(ff,xu);if(np?.hasAttributes&&np.attributes)return{isNested:!0,type:rp?"oneOf":"entity",referencedName:ff,referencedModule:np.resolvedModule,nestedAttributes:np.attributes}}}}return{isNested:!1,type:null,referencedName:null,referencedModule:null,nestedAttributes:null}},createLoginSchema=(la,aa={})=>({header:{title:la,subTitle:aa.description||"AI-Powered Dealership Management"},socialNetworks:{label:"Sign in with social networks",icons:["microsoft","linkedin","git","google"],enabled:!0},form:{placeholder:{email:"Enter your email address",password:"Enter your password"},validation:{email:{required:!0,pattern:"email",message:"Please enter a valid email address"},password:{required:!0,minLength:8,message:"Password must be at least 8 characters long"}}}}),createSignUpSchema=(la,aa={})=>({header:{title:la,subTitle:aa.description||"Join Our Dealership Network"},socialNetworks:{label:"Sign up with social networks",icons:["microsoft","linkedin","git","google"],enabled:!0},form:{placeholder:{email:"Enter your email address",password:"Create a password"},validation:{email:{required:!0,pattern:"email",message:"Please enter a valid email address"},password:{required:!0,minLength:8,pattern:"^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d@$!%*?&]{8,}$",message:"Password must contain uppercase, lowercase, and number"}}}}),createEntityDetailsSchema=la=>{const[aa,ca]=la.split("/");let ua;if(/^[A-Z]+$/.test(ca)){const jf=pluralize(ca);jf===`${ca}S`?ua=`${ca}s`:ua=jf}else ua=pluralize(ca);const Sa=`Manage ${ua}`,hl=getEntity$1(ca,aa),pl=hl?.getRbacSpecifications()||[];let ml=!0,gl=!0,wc=!0,xu=!0;pl.length>0&&(ml=pl.some(jf=>jf.hasCreatePermission()),gl=pl.some(jf=>jf.hasReadPermission()),wc=pl.some(jf=>jf.hasUpdatePermission()),xu=pl.some(jf=>jf.hasDeletePermission()));const ff={};if(hl){const jf=hl.getUserAttributes();Array.from(jf.keys()).forEach(Uf=>{const rp=jf.get(Uf);if(!rp)return;const np=typeof rp=="object"&&rp!==void 0?rp.type:String(rp),qm=rp.properties?.get("optional")===!0;let Vm=[];rp.properties&&(Vm=Array.from(rp.properties.keys())),ff[Uf]={type:np,label:Uf.replace(/([A-Z])/g," $1").trim(),constraints:Vm,required:!qm,readonly:rp.properties?.get("readonly")===!0,unique:rp.properties?.get("unique")===!0,id:rp.properties?.get("id")===!0}})}return{displayName:ua,description:Sa,icon:"bi:card-list",color:"white",attributes:ff,permissions:{create:ml,read:gl,update:wc,delete:xu}}},createAgentDetailsSchema=(la,aa)=>{const ca=fetchModule$2(aa);if(!ca)return null;const ua=ca.getAgent(la);if(!ua)return null;const Sa=la.replace(/([A-Z])/g," $1").trim().replace(" Agent",""),hl=`AI assistant for ${Sa}`,pl=ua.getTools(),ml=[],gl=ua.getInstruction(),wc=ua.attributes.get("role"),xu=ua.getLLM(),ff=ua.getFlows();return{displayName:la,description:hl,icon:"fluent:bot-sparkle-24-regular",instruction:gl,role:wc,llm:xu,flows:ff,ui:{chatPosition:"sidebar",icon:"mdi:robot",color:"white",triggerText:`Ask ${Sa}`,showOnPages:[],autoSuggest:!0,welcomeMessage:`Hi! I can help you with ${Sa}.`},tools:pl,contextEntities:ml}},createRelationshipDetailsSchema=(la,aa)=>{const ca=getRelationship$1(la,aa);if(!ca)return null;const ua=ca.getParentFqName().split("/")[1],Sa=ca.getChildFqName().split("/")[1],hl=la.replace(/([A-Z])/g," $1").trim(),pl={},ml=ca.getUserAttributes();return ml&&Array.from(ml.keys()).forEach(gl=>{const wc=ml.get(gl);if(!wc)return;const xu=typeof wc=="object"&&wc!==void 0?wc.type:String(wc),ff=wc.properties?.get("optional")===!0;let jf=[];wc.properties&&(jf=Array.from(wc.properties.keys())),pl[gl]={type:xu,label:gl.replace(/([A-Z])/g," $1").trim(),constraints:jf,required:!ff,readonly:wc.properties?.get("readonly")===!0,unique:wc.properties?.get("unique")===!0,id:wc.properties?.get("id")===!0}}),{name:la,type:ca.isContains()?"contains":"between",parent:ua,child:Sa,module:aa,displayName:hl,attributes:pl,ui:{showInParentDetail:!0,showInChildDetail:!1,listComponent:"table",allowInlineEdit:!0,allowCreate:!0,sortBy:"make"}}},createNestedFormSchema=(la,aa)=>{const ca={},ua=[];return la.forEach((Sa,hl)=>{const pl=getNestedAttributeInfo(hl,Sa,aa),ml=Sa.properties?.get("optional")===!0,gl=typeof Sa=="object"&&Sa!==void 0,wc=Sa.properties?.get("default"),xu=wc!==void 0,ff=gl?Sa.type:String(Sa);let jf=getInputType(ff),Uf=[];if(Sa.properties&&Sa.properties instanceof Map)for(const[,qm]of Sa.properties.entries()){if(qm instanceof Set){Uf=Array.from(qm);break}if(Array.isArray(qm)&&qm.every(Vm=>typeof Vm=="string")){Uf=qm;break}}const rp={type:ff,constraints:Sa.properties?Array.from(Sa.properties.keys()):[]},np={label:hl.replace(/([A-Z])/g," $1").trim(),placeholder:`Enter ${hl}`,width:"half"};gl&&(wc&&(rp.defaultValue=wc),Uf.length>0&&(rp.enumValues=Uf),Uf.length>0&&(jf="select")),pl.isNested&&pl.nestedAttributes?ca[hl]={inputType:"nested",required:!ml&&!xu,validation:rp,displayOptions:np,nestedForm:createNestedFormSchema(pl.nestedAttributes,pl.referencedModule),nestedType:pl.type,referencedName:pl.referencedName}:ca[hl]={inputType:jf,required:!ml&&!xu,validation:rp,displayOptions:np},ua.push(hl)}),{Form:ca,order:ua}},creteFormSchema=la=>{const[aa,ca]=la.split("/"),ua=getEntity$1(ca,aa);if(!ua)throw new Error(`Entity "${ca}" not found in module "${aa}"`);const Sa=ua.getUserAttributes(),hl=Array.from(Sa.keys());return{Form:hl.reduce((pl,ml)=>{const gl=Sa.get(ml);if(!gl)return pl;const wc=gl.properties?.get("optional")===!0,xu=typeof gl=="object"&&gl!==void 0,ff=gl.properties?.get("default"),jf=ff!==void 0,Uf=xu?gl.type:String(gl);let rp=getInputType(Uf),np=[];if(gl.properties&&gl.properties instanceof Map)for(const[,tg]of gl.properties.entries()){if(tg instanceof Set){np=Array.from(tg);break}if(Array.isArray(tg)&&tg.every(rg=>typeof rg=="string")){np=tg;break}}const qm={type:Uf,constraints:gl.properties?Array.from(gl.properties.keys()):[]},Vm={label:ml.replace(/([A-Z])/g," $1").trim(),placeholder:`Enter ${ml}`,width:"half"},eg=getNestedAttributeInfo(ml,gl,aa);return xu&&(ff&&(qm.defaultValue=ff),np.length>0&&(qm.enumValues=np),np.length>0&&(rp="select")),eg.isNested&&eg.nestedAttributes?pl[ml]={inputType:"nested",required:!wc&&!jf,validation:qm,displayOptions:Vm,nestedForm:createNestedFormSchema(eg.nestedAttributes,eg.referencedModule),nestedType:eg.type,referencedName:eg.referencedName}:pl[ml]={inputType:rp,required:!wc&&!jf,validation:qm,displayOptions:Vm},pl},{}),order:hl,layout:{type:"grid",columns:1,sections:[{title:"Details",fields:hl}]}}},createDashboardHeaderSchema=la=>{const[,aa]=la.split("/");return{type:"collection",view:{Heading:{title:`${aa}s`,subtitle:`List of ${aa}s`,showBreadcrumbs:!0}}}},createEntityInstanceHeaderSchema=la=>{const[,aa]=la.split("/");return{type:"instance",view:{Heading:{title:`${aa}`,subtitle:"",showBreadcrumbs:!0}}}},createDashboardBodySchema=la=>{const[aa,ca]=la.split("/"),ua=getEntity$1(ca,aa);if(!ua)throw new Error(`Entity not found: ${aa}/${ca}`);const Sa=ua.getUserAttributes(),hl=Array.from(Sa.keys());let pl;if(/^[A-Z]+$/.test(ca)){const gl=pluralize(ca);gl===`${ca}S`?pl=`${ca}s`:pl=gl}else pl=pluralize(ca);const ml=`Manage ${pl}`;return{type:"collection",displayName:pl,description:ml,icon:"bi:card-list",color:"white",actions:{create:{type:"button",text:`Add ${ca}`,icon:"mdi:plus",style:"primary",actionType:"navigation",action:`${ca}/new`}},view:{Table:{fields:hl,showGlobalFilter:!0,showColumnFilter:!0,enableSelection:!0,pagination:{enabled:!0,pageSize:25,pageSizes:[10,25,50,100]},sorting:{enabled:!0,defaultSort:"make",defaultOrder:"asc"},actions:{row:["view","edit","delete"],bulk:["delete","export","update_status"]}}}}},createRelationshipTableSchema=la=>{const[aa,ca]=la.split("/"),ua=getEntity$1(ca,aa);if(!ua)throw new Error(`Entity not found: ${aa}/${ca}`);const Sa=ua.getUserAttributes(),hl=Array.from(Sa.keys());let pl;if(/^[A-Z]+$/.test(ca)){const gl=pluralize(ca);gl===`${ca}S`?pl=`${ca}s`:pl=gl}else pl=pluralize(ca);const ml=`Manage ${pl}`;return{type:"collection",displayName:pl,description:ml,icon:"bi:card-list",color:"white",actions:{create:{type:"button",text:`Add ${ca}`,icon:"mdi:plus",style:"primary",actionType:"navigation",action:`${ca}/new`}},view:{Table:{fields:hl,showGlobalFilter:!0,showColumnFilter:!0,enableSelection:!0,pagination:{enabled:!0,pageSize:25,pageSizes:[10,25,50,100]},sorting:{enabled:!0,defaultSort:"make",defaultOrder:"asc"},actions:{row:["view","edit","delete"],bulk:["delete","export","update_status"]}}}}},createInstanceSummarySchema=la=>{const[aa,ca]=la.split("/"),ua=getEntity$1(ca,aa);if(!ua)throw new Error(`Entity not found: ${aa}/${ca}`);const Sa=ua.getUserAttributes(),hl=Array.from(Sa.keys());return{type:"instance",actions:{edit:{type:"button",text:"Edit",icon:"mdi:pencil",style:"secondary",actionType:"navigation",action:`${ca}/edit`},delete:{type:"button",text:"Delete",icon:"mdi:delete",style:"danger",actionType:"modal",action:`${ca}/delete`}},view:{Card:{fields:hl,layout:"grid",columns:2}}}},createDashboardSchema=la=>{const aa=`${la}.ui.dashboard.header`,ca=`${la}.ui.dashboard.body`;return[aa,ca]},createHomeDashboardSchema=(la,aa)=>{const ca=aa.map(ua=>({name:ua,visible:!0,icon:"bi:card-list"}));return{title:la,subtitle:"",items:{entities:ca}}},createEntityInstanceSchema=la=>{const aa=`${la}.ui.instance.header`,ca=`${la}.ui.instance.summary`,ua=[],Sa=getUserModuleNames();for(const pl of Sa){const ml=fetchModule$2(pl);if(ml){const gl=ml.getRelationshipNames();for(const wc of gl){const xu=getRelationship$1(wc,pl);if(xu){const ff=xu.getParentFqName(),jf=xu.getChildFqName();ff===la&&ua.push(`${jf}.ui.relationship.table`),jf===la&&(xu.isContains()||ua.push(`${ff}.ui.relationship.table`))}}}}const hl=[...new Set(ua)];return[aa,ca,...hl]},getRelationships$1=la=>{if(!la)return[];try{return fetchModule$2(la).getRelationshipNames()}catch(aa){return console.error("Error fetching relationships:",aa),[]}},createNavigation=(la,aa)=>({type:"sidebar",grouping:[{title:"Entities",items:la,icon:"bi:card-list",color:"#19c381"},{title:"Agents",items:aa,icon:"fluent:bot-sparkle-24-regular",color:"#00bcd4"}]}),buildUISchemaSection=(la,aa,ca)=>Object.fromEntries(la.map(ua=>[`${ua}.${aa}`,ca(ua)])),createDefaultUISchema=(la,aa,ca,ua,Sa,hl)=>({theme:"default",appInfo:{name:Sa.Name,title:Sa.Name,description:Sa.Description},branding:{primaryColor:"#3b82f6",secondaryColor:"#1e293b",logo:"/assets/logo.svg",favicon:"/assets/favicon.ico"},login:createLoginSchema(la,{description:Sa.Description}),signUp:createSignUpSchema(la,{description:Sa.Description}),navigation:createNavigation(ca,ua),homeDashboard:createHomeDashboardSchema(la,ca),userPreferences:{layout:{sidebarCollapsed:!1,tablePageSize:25,defaultView:"table",compactMode:!1},notifications:{enabled:!0,position:"top-right",duration:5e3,types:{newInquiry:!0,lowStock:!0,saleCompleted:!0,agentHandoff:!1}},accessibility:{highContrast:!1,fontSize:"normal",screenReader:!0,keyboardNavigation:!0,reducedMotion:!1},language:"en",timezone:"America/New_York",currency:"USD"},relationships:hl,entities:aa,agents:ua,...Object.fromEntries(aa.map(pl=>[pl,createEntityDetailsSchema(pl)])),...Object.fromEntries(ua.map(pl=>{const[ml,gl]=pl.split("/");return[pl,createAgentDetailsSchema(gl,ml)]})),...buildUISchemaSection(aa,"ui.form",creteFormSchema),...buildUISchemaSection(aa,"ui.dashboard",createDashboardSchema),...buildUISchemaSection(aa,"ui.dashboard.header",createDashboardHeaderSchema),...buildUISchemaSection(aa,"ui.dashboard.body",createDashboardBodySchema),...buildUISchemaSection(aa,"ui.instance",createEntityInstanceSchema),...buildUISchemaSection(aa,"ui.instance.summary",createInstanceSummarySchema),...buildUISchemaSection(aa,"ui.instance.header",createEntityInstanceHeaderSchema),...buildUISchemaSection(aa,"ui.relationship.table",createRelationshipTableSchema)}),loadUISchema=async(la,aa,ca,ua,Sa,hl)=>{const pl=getUserModuleNames().flatMap(ml=>getRelationships$1(ml).map(gl=>createRelationshipDetailsSchema(gl,ml))).filter(Boolean);try{const ml=await readRepoFile(aa,"ui-spec.json"),gl=JSON.parse(ml)||{theme:"default"};gl.agents=Sa,gl.login??=createLoginSchema(la,{description:hl.Description}),gl.signUp??=createSignUpSchema(la,{description:hl.Description}),gl.navigation??=createNavigation(ua,Sa),gl.homeDashboard??=createHomeDashboardSchema(la,ua),gl.userPreferences??={layout:{sidebarCollapsed:!1,tablePageSize:25,defaultView:"table",compactMode:!1},notifications:{enabled:!0,position:"top-right",duration:5e3,types:{newInquiry:!0,lowStock:!0,saleCompleted:!0,agentHandoff:!1}},accessibility:{highContrast:!1,fontSize:"normal",screenReader:!0,keyboardNavigation:!0,reducedMotion:!1},language:"en",timezone:"America/New_York",currency:"USD"},gl.relationships??=pl;for(const xu of ca)gl[xu]||(gl[xu]=createEntityDetailsSchema(xu));for(const xu of Sa)if(!gl[xu]){const[ff,jf]=xu.split("/");gl[xu]=createAgentDetailsSchema(jf,ff)}const wc=[["ui.form",creteFormSchema],["ui.dashboard",createDashboardSchema],["ui.dashboard.header",createDashboardHeaderSchema],["ui.dashboard.body",createDashboardBodySchema],["ui.instance",createEntityInstanceSchema],["ui.instance.header",createEntityInstanceHeaderSchema],["ui.instance.summary",createInstanceSummarySchema],["ui.relationship.table",createRelationshipTableSchema]];for(const[xu,ff]of wc)for(const[jf,Uf]of Object.entries(buildUISchemaSection(ca,xu,ff)))gl[jf]||(gl[jf]=Uf);return gl.entities=ca,gl.agents=Sa,gl.relationships=pl,gl}catch{return createDefaultUISchema(la,ca,ua,Sa,hl,pl)}};function deepMerge(la,aa){if(aa==null)return la;if(la==null||typeof aa!="object"||Array.isArray(aa)||typeof la!="object"||Array.isArray(la))return aa;const ca={...la};for(const ua in aa)if(Object.prototype.hasOwnProperty.call(aa,ua)){const Sa=aa[ua],hl=la[ua];typeof Sa=="object"&&!Array.isArray(Sa)&&Sa!==null&&hl&&typeof hl=="object"&&!Array.isArray(hl)?ca[ua]=deepMerge(hl,Sa):Array.isArray(Sa)||hl===void 0?ca[ua]=Sa:ca[ua]=hl}return ca}function mergeFormSchema(la,aa){if(!la)return aa;const ca={},ua=[...la.order||[]];for(const[Sa,hl]of Object.entries(la.Form))hl&&typeof hl=="object"&&!Array.isArray(hl)?ca[Sa]={...hl}:ca[Sa]=hl;for(const[Sa,hl]of Object.entries(aa.Form))if(!ca[Sa])ca[Sa]=hl,ua.includes(Sa)||ua.push(Sa);else{const pl=ca[Sa];pl&&typeof pl=="object"&&!Array.isArray(pl)&&hl&&typeof hl=="object"&&!Array.isArray(hl)&&pl.nestedForm&&hl.nestedForm&&(ca[Sa]={...pl,nestedForm:mergeFormSchema(pl.nestedForm,hl.nestedForm)})}return{...la,Form:ca,order:ua,layout:la.layout||aa.layout}}let cachedEntitiesAndAgents=null;function getAllEntitiesAndAgents(la=!0){const aa=getUserModuleNames(),ca=aa.join(",");if(la&&cachedEntitiesAndAgents&&cachedEntitiesAndAgents.moduleHash===ca)return cachedEntitiesAndAgents;const ua=aa.flatMap(pl=>fetchModule$2(pl).getEntityNames().map(ml=>`${pl}/${ml}`)),Sa=aa.flatMap(pl=>{try{return buildGraph(pl).getRoots().map(ml=>`${ml.entity.getModuleName()}/${ml.entity.getEntryName()}`)}catch(ml){return console.warn(`Failed to build graph for module ${pl}:`,ml),[]}}),hl=aa.flatMap(pl=>{const ml=fetchModule$2(pl);return ml?ml.getAgentNames().filter(gl=>ml.getAgent(gl)?.isPublic()??!1).map(gl=>`${pl}/${gl}`):[]});return cachedEntitiesAndAgents={entities:ua,rootEntities:Sa,allAgents:hl,moduleHash:ca},{entities:ua,rootEntities:Sa,allAgents:hl}}function invalidateEntitiesAndAgentsCache(){cachedEntitiesAndAgents=null}function repopulateUISchemaForNewEntity(la,aa){invalidateEntitiesAndAgentsCache();const ca=new Set(la.entities||[]),ua=new Set(la.agents||[]),{rootEntities:Sa,allAgents:hl}=getAllEntitiesAndAgents(),pl=new Set(Sa),ml=la.entities||[];ca.has(aa)||ml.push(aa);const[gl]=aa.split("/"),wc=la.relationships||[],xu=new Map(wc.map(tg=>[tg.name||String(tg),tg]));getRelationships$1(gl).map(tg=>createRelationshipDetailsSchema(tg,gl)).filter(Boolean).forEach(tg=>{tg&&xu.set(tg.name||String(tg),tg)});const ff=Array.from(xu.values()),jf=hl.filter(tg=>!ua.has(tg)),Uf=jf.length>0?hl:la.agents,rp={...la,entities:ml,agents:Uf,relationships:ff},np=pl.has(aa);if(np&&(rp.navigation=createNavigation(Sa,hl)),np){const tg=createHomeDashboardSchema("My App",Sa);rp.homeDashboard=tg}rp[aa]||(rp[aa]=createEntityDetailsSchema(aa));const qm=`${aa}.ui.form`,Vm=creteFormSchema(aa);rp[qm]=mergeFormSchema(la[qm],Vm);const eg=[["ui.dashboard",createDashboardSchema],["ui.dashboard.header",createDashboardHeaderSchema],["ui.dashboard.body",createDashboardBodySchema],["ui.instance",createEntityInstanceSchema],["ui.instance.header",createEntityInstanceHeaderSchema],["ui.instance.summary",createInstanceSummarySchema],["ui.relationship.table",createRelationshipTableSchema]];for(const[tg,rg]of eg){const ig=`${aa}.${tg}`;rp[ig]||(rp[ig]=rg(aa))}for(const tg of jf)if(!rp[tg]){const[rg,ig]=tg.split("/");rp[tg]=createAgentDetailsSchema(ig,rg)}return rp}function repopulateUISchemaForNewAttribute(la,aa,ca){const ua={...la},Sa=`${aa}.ui.form`,hl=creteFormSchema(aa);if(ua[Sa]=mergeFormSchema(la[Sa],hl),ua[aa]){const jf=createEntityDetailsSchema(aa);ua[aa]=deepMerge(ua[aa],jf)}else ua[aa]=createEntityDetailsSchema(aa);const pl=`${aa}.ui.dashboard.body`,ml=ua[pl];ml&&ml.view?.Table?.fields?ml.view.Table.fields.includes(ca)||(ml.view.Table.fields=[...ml.view.Table.fields,ca]):ua[pl]=createDashboardBodySchema(aa);const gl=`${aa}.ui.relationship.table`,wc=ua[gl];wc&&wc.view?.Table?.fields?wc.view.Table.fields.includes(ca)||(wc.view.Table.fields=[...wc.view.Table.fields,ca]):ua[gl]=createRelationshipTableSchema(aa);const xu=`${aa}.ui.instance.summary`,ff=ua[xu];return ff&&ff.view?.Card?.fields?ff.view.Card.fields.includes(ca)||(ff.view.Card.fields=[...ff.view.Card.fields,ca]):ua[xu]=createInstanceSummarySchema(aa),ua}function repopulateUISchemaForNewAgent(la,aa){invalidateEntitiesAndAgentsCache();const ca=new Set(la.agents||[]);if(ca.has(aa)&&la[aa])return la;const{allAgents:ua,rootEntities:Sa}=getAllEntitiesAndAgents(),hl=ua.some(gl=>!ca.has(gl)),pl=hl?ua:la.agents,ml={...la,agents:pl};if((hl||!la.navigation)&&(ml.navigation=createNavigation(Sa,ua)),!ml[aa]){const[gl,wc]=aa.split("/");ml[aa]=createAgentDetailsSchema(wc,gl)}return ml}function repopulateUISchemaAfterEntityDeletion(la,aa){invalidateEntitiesAndAgentsCache();const{entities:ca,rootEntities:ua,allAgents:Sa}=getAllEntitiesAndAgents(),hl=ca.filter(wc=>wc!==aa),pl={...la,entities:hl,agents:Sa};[aa,`${aa}.ui.form`,`${aa}.ui.dashboard`,`${aa}.ui.dashboard.header`,`${aa}.ui.dashboard.body`,`${aa}.ui.instance`,`${aa}.ui.instance.header`,`${aa}.ui.instance.summary`,`${aa}.ui.relationship.table`].forEach(wc=>{delete pl[wc]});const ml=(la.relationships||[]).filter(wc=>{const xu=wc.parent,ff=wc.child;return xu!==aa&&ff!==aa});pl.relationships=ml,pl.navigation=createNavigation(ua,Sa);const gl=createHomeDashboardSchema("My App",ua);return pl.homeDashboard=gl,pl}function repopulateUISchemaAfterAgentDeletion(la,aa){invalidateEntitiesAndAgentsCache();const{rootEntities:ca,allAgents:ua}=getAllEntitiesAndAgents(),Sa=ua.filter(pl=>pl!==aa),hl={...la,agents:Sa};return delete hl[aa],hl.navigation=createNavigation(ca,ua),hl}function repopulateUISchemaAfterAttributeDeletion(la,aa,ca){const ua={...la},Sa=`${aa}.ui.form`,hl=creteFormSchema(aa),pl=mergeFormSchema(la[Sa],hl);if(pl&&pl.Form&&(ca.forEach(Uf=>{pl.Form[Uf]&&delete pl.Form[Uf]}),pl.order&&(pl.order=pl.order.filter(Uf=>!ca.includes(Uf)))),ua[Sa]=pl,ua[aa]){const Uf=createEntityDetailsSchema(aa);ua[aa]=deepMerge(ua[aa],Uf)}else ua[aa]=createEntityDetailsSchema(aa);const ml=`${aa}.ui.dashboard.body`,gl=ua[ml];gl&&gl.view?.Table?.fields&&(gl.view.Table.fields=gl.view.Table.fields.filter(Uf=>!ca.includes(Uf)));const wc=`${aa}.ui.relationship.table`,xu=ua[wc];xu&&xu.view?.Table?.fields&&(xu.view.Table.fields=xu.view.Table.fields.filter(Uf=>!ca.includes(Uf)));const ff=`${aa}.ui.instance.summary`,jf=ua[ff];return jf&&jf.view?.Card?.fields&&(jf.view.Card.fields=jf.view.Card.fields.filter(Uf=>!ca.includes(Uf))),ua}function repopulateUISchemaForNewRelationship(la,aa){invalidateEntitiesAndAgentsCache();const ca=getRelationships$1(aa).map(jf=>createRelationshipDetailsSchema(jf,aa)).filter(Boolean),ua=la.relationships||[],Sa=new Map(ua.map(jf=>[jf.name||String(jf),jf]));ca.forEach(jf=>{jf&&Sa.set(jf.name||String(jf),jf)});const hl=Array.from(Sa.values()),{entities:pl,rootEntities:ml,allAgents:gl}=getAllEntitiesAndAgents(),wc=pl.filter(jf=>jf.startsWith(`${aa}/`)),xu={...la,relationships:hl};xu.navigation=createNavigation(ml,gl);const ff=la.appInfo?.name||"My App";xu.homeDashboard=createHomeDashboardSchema(ff,ml);for(const jf of wc){const Uf=`${jf}.ui.instance`;xu[Uf]=createEntityInstanceSchema(jf)}return xu}function repopulateUISchemaAfterRelationshipDeletion(la,aa,ca){return repopulateUISchemaForNewRelationship(la,ca)}const index$6=Object.freeze(Object.defineProperty({__proto__:null,EnvConfig,buildUISchemaSection,cloneRepository,commitChanges,createDefaultUISchema,createGitHubRepo,createGitUtils,createNavigation,fetchLatestChanges,findFilesWithExtension,forcePullChanges,getInputType,getNestedAttributeInfo,getURL,hasRemoteUpdates,invalidateEntitiesAndAgentsCache,loadUISchema,openRepository,pathExists,pushChanges,readRepoFile,removeDirectory,repopulateUISchemaAfterAgentDeletion,repopulateUISchemaAfterAttributeDeletion,repopulateUISchemaAfterEntityDeletion,repopulateUISchemaAfterRelationshipDeletion,repopulateUISchemaForNewAgent,repopulateUISchemaForNewAttribute,repopulateUISchemaForNewEntity,repopulateUISchemaForNewRelationship,updateExistingRepository,verifyClonedRepository,writeRepoFile},Symbol.toStringTag,{value:"Module"}));function bind(la,aa){return function(){return la.apply(aa,arguments)}}const{toString}=Object.prototype,{getPrototypeOf}=Object,{iterator,toStringTag}=Symbol,kindOf=(la=>aa=>{const ca=toString.call(aa);return la[ca]||(la[ca]=ca.slice(8,-1).toLowerCase())})(Object.create(null)),kindOfTest=la=>(la=la.toLowerCase(),aa=>kindOf(aa)===la),typeOfTest=la=>aa=>typeof aa===la,{isArray:isArray$3}=Array,isUndefined=typeOfTest("undefined");function isBuffer$1(la){return la!==null&&!isUndefined(la)&&la.constructor!==null&&!isUndefined(la.constructor)&&isFunction$5(la.constructor.isBuffer)&&la.constructor.isBuffer(la)}const isArrayBuffer=kindOfTest("ArrayBuffer");function isArrayBufferView(la){let aa;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?aa=ArrayBuffer.isView(la):aa=la&&la.buffer&&isArrayBuffer(la.buffer),aa}const isString=typeOfTest("string"),isFunction$5=typeOfTest("function"),isNumber=typeOfTest("number"),isObject$3=la=>la!==null&&typeof la=="object",isBoolean=la=>la===!0||la===!1,isPlainObject$1=la=>{if(kindOf(la)!=="object")return!1;const aa=getPrototypeOf(la);return(aa===null||aa===Object.prototype||Object.getPrototypeOf(aa)===null)&&!(toStringTag in la)&&!(iterator in la)},isEmptyObject=la=>{if(!isObject$3(la)||isBuffer$1(la))return!1;try{return Object.keys(la).length===0&&Object.getPrototypeOf(la)===Object.prototype}catch{return!1}},isDate=kindOfTest("Date"),isFile=kindOfTest("File"),isBlob=kindOfTest("Blob"),isFileList=kindOfTest("FileList"),isStream=la=>isObject$3(la)&&isFunction$5(la.pipe),isFormData=la=>{let aa;return la&&(typeof FormData=="function"&&la instanceof FormData||isFunction$5(la.append)&&((aa=kindOf(la))==="formdata"||aa==="object"&&isFunction$5(la.toString)&&la.toString()==="[object FormData]"))},isURLSearchParams=kindOfTest("URLSearchParams"),[isReadableStream,isRequest,isResponse,isHeaders]=["ReadableStream","Request","Response","Headers"].map(kindOfTest),trim$1=la=>la.trim?la.trim():la.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function forEach(la,aa,{allOwnKeys:ca=!1}={}){if(la===null||typeof la>"u")return;let ua,Sa;if(typeof la!="object"&&(la=[la]),isArray$3(la))for(ua=0,Sa=la.length;ua<Sa;ua++)aa.call(null,la[ua],ua,la);else{if(isBuffer$1(la))return;const hl=ca?Object.getOwnPropertyNames(la):Object.keys(la),pl=hl.length;let ml;for(ua=0;ua<pl;ua++)ml=hl[ua],aa.call(null,la[ml],ml,la)}}function findKey(la,aa){if(isBuffer$1(la))return null;aa=aa.toLowerCase();const ca=Object.keys(la);let ua=ca.length,Sa;for(;ua-- >0;)if(Sa=ca[ua],aa===Sa.toLowerCase())return Sa;return null}const _global=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,isContextDefined=la=>!isUndefined(la)&&la!==_global;function merge$2(){const{caseless:la,skipUndefined:aa}=isContextDefined(this)&&this||{},ca={},ua=(Sa,hl)=>{const pl=la&&findKey(ca,hl)||hl;isPlainObject$1(ca[pl])&&isPlainObject$1(Sa)?ca[pl]=merge$2(ca[pl],Sa):isPlainObject$1(Sa)?ca[pl]=merge$2({},Sa):isArray$3(Sa)?ca[pl]=Sa.slice():(!aa||!isUndefined(Sa))&&(ca[pl]=Sa)};for(let Sa=0,hl=arguments.length;Sa<hl;Sa++)arguments[Sa]&&forEach(arguments[Sa],ua);return ca}const extend$1=(la,aa,ca,{allOwnKeys:ua}={})=>(forEach(aa,(Sa,hl)=>{ca&&isFunction$5(Sa)?la[hl]=bind(Sa,ca):la[hl]=Sa},{allOwnKeys:ua}),la),stripBOM=la=>(la.charCodeAt(0)===65279&&(la=la.slice(1)),la),inherits=(la,aa,ca,ua)=>{la.prototype=Object.create(aa.prototype,ua),la.prototype.constructor=la,Object.defineProperty(la,"super",{value:aa.prototype}),ca&&Object.assign(la.prototype,ca)},toFlatObject=(la,aa,ca,ua)=>{let Sa,hl,pl;const ml={};if(aa=aa||{},la==null)return aa;do{for(Sa=Object.getOwnPropertyNames(la),hl=Sa.length;hl-- >0;)pl=Sa[hl],(!ua||ua(pl,la,aa))&&!ml[pl]&&(aa[pl]=la[pl],ml[pl]=!0);la=ca!==!1&&getPrototypeOf(la)}while(la&&(!ca||ca(la,aa))&&la!==Object.prototype);return aa},endsWith=(la,aa,ca)=>{la=String(la),(ca===void 0||ca>la.length)&&(ca=la.length),ca-=aa.length;const ua=la.indexOf(aa,ca);return ua!==-1&&ua===ca},toArray$2=la=>{if(!la)return null;if(isArray$3(la))return la;let aa=la.length;if(!isNumber(aa))return null;const ca=new Array(aa);for(;aa-- >0;)ca[aa]=la[aa];return ca},isTypedArray=(la=>aa=>la&&aa instanceof la)(typeof Uint8Array<"u"&&getPrototypeOf(Uint8Array)),forEachEntry=(la,aa)=>{const ua=(la&&la[iterator]).call(la);let Sa;for(;(Sa=ua.next())&&!Sa.done;){const hl=Sa.value;aa.call(la,hl[0],hl[1])}},matchAll=(la,aa)=>{let ca;const ua=[];for(;(ca=la.exec(aa))!==null;)ua.push(ca);return ua},isHTMLForm=kindOfTest("HTMLFormElement"),toCamelCase=la=>la.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(ca,ua,Sa){return ua.toUpperCase()+Sa}),hasOwnProperty$2=(({hasOwnProperty:la})=>(aa,ca)=>la.call(aa,ca))(Object.prototype),isRegExp=kindOfTest("RegExp"),reduceDescriptors=(la,aa)=>{const ca=Object.getOwnPropertyDescriptors(la),ua={};forEach(ca,(Sa,hl)=>{let pl;(pl=aa(Sa,hl,la))!==!1&&(ua[hl]=pl||Sa)}),Object.defineProperties(la,ua)},freezeMethods=la=>{reduceDescriptors(la,(aa,ca)=>{if(isFunction$5(la)&&["arguments","caller","callee"].indexOf(ca)!==-1)return!1;const ua=la[ca];if(isFunction$5(ua)){if(aa.enumerable=!1,"writable"in aa){aa.writable=!1;return}aa.set||(aa.set=()=>{throw Error("Can not rewrite read-only method '"+ca+"'")})}})},toObjectSet=(la,aa)=>{const ca={},ua=Sa=>{Sa.forEach(hl=>{ca[hl]=!0})};return isArray$3(la)?ua(la):ua(String(la).split(aa)),ca},noop$8=()=>{},toFiniteNumber=(la,aa)=>la!=null&&Number.isFinite(la=+la)?la:aa;function isSpecCompliantForm(la){return!!(la&&isFunction$5(la.append)&&la[toStringTag]==="FormData"&&la[iterator])}const toJSONObject=la=>{const aa=new Array(10),ca=(ua,Sa)=>{if(isObject$3(ua)){if(aa.indexOf(ua)>=0)return;if(isBuffer$1(ua))return ua;if(!("toJSON"in ua)){aa[Sa]=ua;const hl=isArray$3(ua)?[]:{};return forEach(ua,(pl,ml)=>{const gl=ca(pl,Sa+1);!isUndefined(gl)&&(hl[ml]=gl)}),aa[Sa]=void 0,hl}}return ua};return ca(la,0)},isAsyncFn=kindOfTest("AsyncFunction"),isThenable=la=>la&&(isObject$3(la)||isFunction$5(la))&&isFunction$5(la.then)&&isFunction$5(la.catch),_setImmediate=((la,aa)=>la?setImmediate:aa?((ca,ua)=>(_global.addEventListener("message",({source:Sa,data:hl})=>{Sa===_global&&hl===ca&&ua.length&&ua.shift()()},!1),Sa=>{ua.push(Sa),_global.postMessage(ca,"*")}))(`axios@${Math.random()}`,[]):ca=>setTimeout(ca))(typeof setImmediate=="function",isFunction$5(_global.postMessage)),asap=typeof queueMicrotask<"u"?queueMicrotask.bind(_global):typeof process<"u"&&process.nextTick||_setImmediate,isIterable=la=>la!=null&&isFunction$5(la[iterator]),utils$2={isArray:isArray$3,isArrayBuffer,isBuffer:isBuffer$1,isFormData,isArrayBufferView,isString,isNumber,isBoolean,isObject:isObject$3,isPlainObject:isPlainObject$1,isEmptyObject,isReadableStream,isRequest,isResponse,isHeaders,isUndefined,isDate,isFile,isBlob,isRegExp,isFunction:isFunction$5,isStream,isURLSearchParams,isTypedArray,isFileList,forEach,merge:merge$2,extend:extend$1,trim:trim$1,stripBOM,inherits,toFlatObject,kindOf,kindOfTest,endsWith,toArray:toArray$2,forEachEntry,matchAll,isHTMLForm,hasOwnProperty:hasOwnProperty$2,hasOwnProp:hasOwnProperty$2,reduceDescriptors,freezeMethods,toObjectSet,toCamelCase,noop:noop$8,toFiniteNumber,findKey,global:_global,isContextDefined,isSpecCompliantForm,toJSONObject,isAsyncFn,isThenable,setImmediate:_setImmediate,asap,isIterable};function AxiosError$1(la,aa,ca,ua,Sa){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=la,this.name="AxiosError",aa&&(this.code=aa),ca&&(this.config=ca),ua&&(this.request=ua),Sa&&(this.response=Sa,this.status=Sa.status?Sa.status:null)}utils$2.inherits(AxiosError$1,Error,{toJSON:function la(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:utils$2.toJSONObject(this.config),code:this.code,status:this.status}}});const prototype$1=AxiosError$1.prototype,descriptors={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(la=>{descriptors[la]={value:la}});Object.defineProperties(AxiosError$1,descriptors);Object.defineProperty(prototype$1,"isAxiosError",{value:!0});AxiosError$1.from=(la,aa,ca,ua,Sa,hl)=>{const pl=Object.create(prototype$1);utils$2.toFlatObject(la,pl,function(xu){return xu!==Error.prototype},wc=>wc!=="isAxiosError");const ml=la&&la.message?la.message:"Error",gl=aa==null&&la?la.code:aa;return AxiosError$1.call(pl,ml,gl,ca,ua,Sa),la&&pl.cause==null&&Object.defineProperty(pl,"cause",{value:la,configurable:!0}),pl.name=la&&la.name||"Error",hl&&Object.assign(pl,hl),pl};const httpAdapter=null;function isVisitable(la){return utils$2.isPlainObject(la)||utils$2.isArray(la)}function removeBrackets(la){return utils$2.endsWith(la,"[]")?la.slice(0,-2):la}function renderKey(la,aa,ca){return la?la.concat(aa).map(function(Sa,hl){return Sa=removeBrackets(Sa),!ca&&hl?"["+Sa+"]":Sa}).join(ca?".":""):aa}function isFlatArray(la){return utils$2.isArray(la)&&!la.some(isVisitable)}const predicates=utils$2.toFlatObject(utils$2,{},null,function la(aa){return/^is[A-Z]/.test(aa)});function toFormData$1(la,aa,ca){if(!utils$2.isObject(la))throw new TypeError("target must be an object");aa=aa||new FormData,ca=utils$2.toFlatObject(ca,{metaTokens:!0,dots:!1,indexes:!1},!1,function(np,qm){return!utils$2.isUndefined(qm[np])});const ua=ca.metaTokens,Sa=ca.visitor||xu,hl=ca.dots,pl=ca.indexes,gl=(ca.Blob||typeof Blob<"u"&&Blob)&&utils$2.isSpecCompliantForm(aa);if(!utils$2.isFunction(Sa))throw new TypeError("visitor must be a function");function wc(rp){if(rp===null)return"";if(utils$2.isDate(rp))return rp.toISOString();if(utils$2.isBoolean(rp))return rp.toString();if(!gl&&utils$2.isBlob(rp))throw new AxiosError$1("Blob is not supported. Use a Buffer instead.");return utils$2.isArrayBuffer(rp)||utils$2.isTypedArray(rp)?gl&&typeof Blob=="function"?new Blob([rp]):Buffer.from(rp):rp}function xu(rp,np,qm){let Vm=rp;if(rp&&!qm&&typeof rp=="object"){if(utils$2.endsWith(np,"{}"))np=ua?np:np.slice(0,-2),rp=JSON.stringify(rp);else if(utils$2.isArray(rp)&&isFlatArray(rp)||(utils$2.isFileList(rp)||utils$2.endsWith(np,"[]"))&&(Vm=utils$2.toArray(rp)))return np=removeBrackets(np),Vm.forEach(function(tg,rg){!(utils$2.isUndefined(tg)||tg===null)&&aa.append(pl===!0?renderKey([np],rg,hl):pl===null?np:np+"[]",wc(tg))}),!1}return isVisitable(rp)?!0:(aa.append(renderKey(qm,np,hl),wc(rp)),!1)}const ff=[],jf=Object.assign(predicates,{defaultVisitor:xu,convertValue:wc,isVisitable});function Uf(rp,np){if(!utils$2.isUndefined(rp)){if(ff.indexOf(rp)!==-1)throw Error("Circular reference detected in "+np.join("."));ff.push(rp),utils$2.forEach(rp,function(Vm,eg){(!(utils$2.isUndefined(Vm)||Vm===null)&&Sa.call(aa,Vm,utils$2.isString(eg)?eg.trim():eg,np,jf))===!0&&Uf(Vm,np?np.concat(eg):[eg])}),ff.pop()}}if(!utils$2.isObject(la))throw new TypeError("data must be an object");return Uf(la),aa}function encode$2(la){const aa={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(la).replace(/[!'()~]|%20|%00/g,function(ua){return aa[ua]})}function AxiosURLSearchParams(la,aa){this._pairs=[],la&&toFormData$1(la,this,aa)}const prototype=AxiosURLSearchParams.prototype;prototype.append=function la(aa,ca){this._pairs.push([aa,ca])};prototype.toString=function la(aa){const ca=aa?function(ua){return aa.call(this,ua,encode$2)}:encode$2;return this._pairs.map(function(Sa){return ca(Sa[0])+"="+ca(Sa[1])},"").join("&")};function encode$1(la){return encodeURIComponent(la).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function buildURL(la,aa,ca){if(!aa)return la;const ua=ca&&ca.encode||encode$1;utils$2.isFunction(ca)&&(ca={serialize:ca});const Sa=ca&&ca.serialize;let hl;if(Sa?hl=Sa(aa,ca):hl=utils$2.isURLSearchParams(aa)?aa.toString():new AxiosURLSearchParams(aa,ca).toString(ua),hl){const pl=la.indexOf("#");pl!==-1&&(la=la.slice(0,pl)),la+=(la.indexOf("?")===-1?"?":"&")+hl}return la}class InterceptorManager{constructor(){this.handlers=[]}use(aa,ca,ua){return this.handlers.push({fulfilled:aa,rejected:ca,synchronous:ua?ua.synchronous:!1,runWhen:ua?ua.runWhen:null}),this.handlers.length-1}eject(aa){this.handlers[aa]&&(this.handlers[aa]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(aa){utils$2.forEach(this.handlers,function(ua){ua!==null&&aa(ua)})}}const transitionalDefaults={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},URLSearchParams$1=typeof URLSearchParams<"u"?URLSearchParams:AxiosURLSearchParams,FormData$1=typeof FormData<"u"?FormData:null,Blob$1=typeof Blob<"u"?Blob:null,platform$2={isBrowser:!0,classes:{URLSearchParams:URLSearchParams$1,FormData:FormData$1,Blob:Blob$1},protocols:["http","https","file","blob","url","data"]},hasBrowserEnv=typeof window<"u"&&typeof document<"u",_navigator=typeof navigator=="object"&&navigator||void 0,hasStandardBrowserEnv=hasBrowserEnv&&(!_navigator||["ReactNative","NativeScript","NS"].indexOf(_navigator.product)<0),hasStandardBrowserWebWorkerEnv=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",origin=hasBrowserEnv&&window.location.href||"http://localhost",utils$1=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv,hasStandardBrowserEnv,hasStandardBrowserWebWorkerEnv,navigator:_navigator,origin},Symbol.toStringTag,{value:"Module"})),platform$1={...utils$1,...platform$2};function toURLEncodedForm(la,aa){return toFormData$1(la,new platform$1.classes.URLSearchParams,{visitor:function(ca,ua,Sa,hl){return platform$1.isNode&&utils$2.isBuffer(ca)?(this.append(ua,ca.toString("base64")),!1):hl.defaultVisitor.apply(this,arguments)},...aa})}function parsePropPath(la){return utils$2.matchAll(/\w+|\[(\w*)]/g,la).map(aa=>aa[0]==="[]"?"":aa[1]||aa[0])}function arrayToObject(la){const aa={},ca=Object.keys(la);let ua;const Sa=ca.length;let hl;for(ua=0;ua<Sa;ua++)hl=ca[ua],aa[hl]=la[hl];return aa}function formDataToJSON(la){function aa(ca,ua,Sa,hl){let pl=ca[hl++];if(pl==="__proto__")return!0;const ml=Number.isFinite(+pl),gl=hl>=ca.length;return pl=!pl&&utils$2.isArray(Sa)?Sa.length:pl,gl?(utils$2.hasOwnProp(Sa,pl)?Sa[pl]=[Sa[pl],ua]:Sa[pl]=ua,!ml):((!Sa[pl]||!utils$2.isObject(Sa[pl]))&&(Sa[pl]=[]),aa(ca,ua,Sa[pl],hl)&&utils$2.isArray(Sa[pl])&&(Sa[pl]=arrayToObject(Sa[pl])),!ml)}if(utils$2.isFormData(la)&&utils$2.isFunction(la.entries)){const ca={};return utils$2.forEachEntry(la,(ua,Sa)=>{aa(parsePropPath(ua),Sa,ca,0)}),ca}return null}function stringifySafely(la,aa,ca){if(utils$2.isString(la))try{return(aa||JSON.parse)(la),utils$2.trim(la)}catch(ua){if(ua.name!=="SyntaxError")throw ua}return(ca||JSON.stringify)(la)}const defaults$1={transitional:transitionalDefaults,adapter:["xhr","http","fetch"],transformRequest:[function la(aa,ca){const ua=ca.getContentType()||"",Sa=ua.indexOf("application/json")>-1,hl=utils$2.isObject(aa);if(hl&&utils$2.isHTMLForm(aa)&&(aa=new FormData(aa)),utils$2.isFormData(aa))return Sa?JSON.stringify(formDataToJSON(aa)):aa;if(utils$2.isArrayBuffer(aa)||utils$2.isBuffer(aa)||utils$2.isStream(aa)||utils$2.isFile(aa)||utils$2.isBlob(aa)||utils$2.isReadableStream(aa))return aa;if(utils$2.isArrayBufferView(aa))return aa.buffer;if(utils$2.isURLSearchParams(aa))return ca.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),aa.toString();let ml;if(hl){if(ua.indexOf("application/x-www-form-urlencoded")>-1)return toURLEncodedForm(aa,this.formSerializer).toString();if((ml=utils$2.isFileList(aa))||ua.indexOf("multipart/form-data")>-1){const gl=this.env&&this.env.FormData;return toFormData$1(ml?{"files[]":aa}:aa,gl&&new gl,this.formSerializer)}}return hl||Sa?(ca.setContentType("application/json",!1),stringifySafely(aa)):aa}],transformResponse:[function la(aa){const ca=this.transitional||defaults$1.transitional,ua=ca&&ca.forcedJSONParsing,Sa=this.responseType==="json";if(utils$2.isResponse(aa)||utils$2.isReadableStream(aa))return aa;if(aa&&utils$2.isString(aa)&&(ua&&!this.responseType||Sa)){const pl=!(ca&&ca.silentJSONParsing)&&Sa;try{return JSON.parse(aa,this.parseReviver)}catch(ml){if(pl)throw ml.name==="SyntaxError"?AxiosError$1.from(ml,AxiosError$1.ERR_BAD_RESPONSE,this,null,this.response):ml}}return aa}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:platform$1.classes.FormData,Blob:platform$1.classes.Blob},validateStatus:function la(aa){return aa>=200&&aa<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};utils$2.forEach(["delete","get","head","post","put","patch"],la=>{defaults$1.headers[la]={}});const ignoreDuplicateOf=utils$2.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),parseHeaders=la=>{const aa={};let ca,ua,Sa;return la&&la.split(`
|
|
16871
16871
|
`).forEach(function(pl){Sa=pl.indexOf(":"),ca=pl.substring(0,Sa).trim().toLowerCase(),ua=pl.substring(Sa+1).trim(),!(!ca||aa[ca]&&ignoreDuplicateOf[ca])&&(ca==="set-cookie"?aa[ca]?aa[ca].push(ua):aa[ca]=[ua]:aa[ca]=aa[ca]?aa[ca]+", "+ua:ua)}),aa},$internals=Symbol("internals");function normalizeHeader(la){return la&&String(la).trim().toLowerCase()}function normalizeValue(la){return la===!1||la==null?la:utils$2.isArray(la)?la.map(normalizeValue):String(la)}function parseTokens(la){const aa=Object.create(null),ca=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let ua;for(;ua=ca.exec(la);)aa[ua[1]]=ua[2];return aa}const isValidHeaderName=la=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(la.trim());function matchHeaderValue(la,aa,ca,ua,Sa){if(utils$2.isFunction(ua))return ua.call(this,aa,ca);if(Sa&&(aa=ca),!!utils$2.isString(aa)){if(utils$2.isString(ua))return aa.indexOf(ua)!==-1;if(utils$2.isRegExp(ua))return ua.test(aa)}}function formatHeader(la){return la.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(aa,ca,ua)=>ca.toUpperCase()+ua)}function buildAccessors(la,aa){const ca=utils$2.toCamelCase(" "+aa);["get","set","has"].forEach(ua=>{Object.defineProperty(la,ua+ca,{value:function(Sa,hl,pl){return this[ua].call(this,aa,Sa,hl,pl)},configurable:!0})})}let AxiosHeaders$1=class{constructor(aa){aa&&this.set(aa)}set(aa,ca,ua){const Sa=this;function hl(ml,gl,wc){const xu=normalizeHeader(gl);if(!xu)throw new Error("header name must be a non-empty string");const ff=utils$2.findKey(Sa,xu);(!ff||Sa[ff]===void 0||wc===!0||wc===void 0&&Sa[ff]!==!1)&&(Sa[ff||gl]=normalizeValue(ml))}const pl=(ml,gl)=>utils$2.forEach(ml,(wc,xu)=>hl(wc,xu,gl));if(utils$2.isPlainObject(aa)||aa instanceof this.constructor)pl(aa,ca);else if(utils$2.isString(aa)&&(aa=aa.trim())&&!isValidHeaderName(aa))pl(parseHeaders(aa),ca);else if(utils$2.isObject(aa)&&utils$2.isIterable(aa)){let ml={},gl,wc;for(const xu of aa){if(!utils$2.isArray(xu))throw TypeError("Object iterator must return a key-value pair");ml[wc=xu[0]]=(gl=ml[wc])?utils$2.isArray(gl)?[...gl,xu[1]]:[gl,xu[1]]:xu[1]}pl(ml,ca)}else aa!=null&&hl(ca,aa,ua);return this}get(aa,ca){if(aa=normalizeHeader(aa),aa){const ua=utils$2.findKey(this,aa);if(ua){const Sa=this[ua];if(!ca)return Sa;if(ca===!0)return parseTokens(Sa);if(utils$2.isFunction(ca))return ca.call(this,Sa,ua);if(utils$2.isRegExp(ca))return ca.exec(Sa);throw new TypeError("parser must be boolean|regexp|function")}}}has(aa,ca){if(aa=normalizeHeader(aa),aa){const ua=utils$2.findKey(this,aa);return!!(ua&&this[ua]!==void 0&&(!ca||matchHeaderValue(this,this[ua],ua,ca)))}return!1}delete(aa,ca){const ua=this;let Sa=!1;function hl(pl){if(pl=normalizeHeader(pl),pl){const ml=utils$2.findKey(ua,pl);ml&&(!ca||matchHeaderValue(ua,ua[ml],ml,ca))&&(delete ua[ml],Sa=!0)}}return utils$2.isArray(aa)?aa.forEach(hl):hl(aa),Sa}clear(aa){const ca=Object.keys(this);let ua=ca.length,Sa=!1;for(;ua--;){const hl=ca[ua];(!aa||matchHeaderValue(this,this[hl],hl,aa,!0))&&(delete this[hl],Sa=!0)}return Sa}normalize(aa){const ca=this,ua={};return utils$2.forEach(this,(Sa,hl)=>{const pl=utils$2.findKey(ua,hl);if(pl){ca[pl]=normalizeValue(Sa),delete ca[hl];return}const ml=aa?formatHeader(hl):String(hl).trim();ml!==hl&&delete ca[hl],ca[ml]=normalizeValue(Sa),ua[ml]=!0}),this}concat(...aa){return this.constructor.concat(this,...aa)}toJSON(aa){const ca=Object.create(null);return utils$2.forEach(this,(ua,Sa)=>{ua!=null&&ua!==!1&&(ca[Sa]=aa&&utils$2.isArray(ua)?ua.join(", "):ua)}),ca}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([aa,ca])=>aa+": "+ca).join(`
|
|
16872
16872
|
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(aa){return aa instanceof this?aa:new this(aa)}static concat(aa,...ca){const ua=new this(aa);return ca.forEach(Sa=>ua.set(Sa)),ua}static accessor(aa){const ua=(this[$internals]=this[$internals]={accessors:{}}).accessors,Sa=this.prototype;function hl(pl){const ml=normalizeHeader(pl);ua[ml]||(buildAccessors(Sa,pl),ua[ml]=!0)}return utils$2.isArray(aa)?aa.forEach(hl):hl(aa),this}};AxiosHeaders$1.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);utils$2.reduceDescriptors(AxiosHeaders$1.prototype,({value:la},aa)=>{let ca=aa[0].toUpperCase()+aa.slice(1);return{get:()=>la,set(ua){this[ca]=ua}}});utils$2.freezeMethods(AxiosHeaders$1);function transformData(la,aa){const ca=this||defaults$1,ua=aa||ca,Sa=AxiosHeaders$1.from(ua.headers);let hl=ua.data;return utils$2.forEach(la,function(ml){hl=ml.call(ca,hl,Sa.normalize(),aa?aa.status:void 0)}),Sa.normalize(),hl}function isCancel$1(la){return!!(la&&la.__CANCEL__)}function CanceledError$1(la,aa,ca){AxiosError$1.call(this,la??"canceled",AxiosError$1.ERR_CANCELED,aa,ca),this.name="CanceledError"}utils$2.inherits(CanceledError$1,AxiosError$1,{__CANCEL__:!0});function settle(la,aa,ca){const ua=ca.config.validateStatus;!ca.status||!ua||ua(ca.status)?la(ca):aa(new AxiosError$1("Request failed with status code "+ca.status,[AxiosError$1.ERR_BAD_REQUEST,AxiosError$1.ERR_BAD_RESPONSE][Math.floor(ca.status/100)-4],ca.config,ca.request,ca))}function parseProtocol(la){const aa=/^([-+\w]{1,25})(:?\/\/|:)/.exec(la);return aa&&aa[1]||""}function speedometer(la,aa){la=la||10;const ca=new Array(la),ua=new Array(la);let Sa=0,hl=0,pl;return aa=aa!==void 0?aa:1e3,function(gl){const wc=Date.now(),xu=ua[hl];pl||(pl=wc),ca[Sa]=gl,ua[Sa]=wc;let ff=hl,jf=0;for(;ff!==Sa;)jf+=ca[ff++],ff=ff%la;if(Sa=(Sa+1)%la,Sa===hl&&(hl=(hl+1)%la),wc-pl<aa)return;const Uf=xu&&wc-xu;return Uf?Math.round(jf*1e3/Uf):void 0}}function throttle$1(la,aa){let ca=0,ua=1e3/aa,Sa,hl;const pl=(wc,xu=Date.now())=>{ca=xu,Sa=null,hl&&(clearTimeout(hl),hl=null),la(...wc)};return[(...wc)=>{const xu=Date.now(),ff=xu-ca;ff>=ua?pl(wc,xu):(Sa=wc,hl||(hl=setTimeout(()=>{hl=null,pl(Sa)},ua-ff)))},()=>Sa&&pl(Sa)]}const progressEventReducer=(la,aa,ca=3)=>{let ua=0;const Sa=speedometer(50,250);return throttle$1(hl=>{const pl=hl.loaded,ml=hl.lengthComputable?hl.total:void 0,gl=pl-ua,wc=Sa(gl),xu=pl<=ml;ua=pl;const ff={loaded:pl,total:ml,progress:ml?pl/ml:void 0,bytes:gl,rate:wc||void 0,estimated:wc&&ml&&xu?(ml-pl)/wc:void 0,event:hl,lengthComputable:ml!=null,[aa?"download":"upload"]:!0};la(ff)},ca)},progressEventDecorator=(la,aa)=>{const ca=la!=null;return[ua=>aa[0]({lengthComputable:ca,total:la,loaded:ua}),aa[1]]},asyncDecorator=la=>(...aa)=>utils$2.asap(()=>la(...aa)),isURLSameOrigin=platform$1.hasStandardBrowserEnv?((la,aa)=>ca=>(ca=new URL(ca,platform$1.origin),la.protocol===ca.protocol&&la.host===ca.host&&(aa||la.port===ca.port)))(new URL(platform$1.origin),platform$1.navigator&&/(msie|trident)/i.test(platform$1.navigator.userAgent)):()=>!0,cookies=platform$1.hasStandardBrowserEnv?{write(la,aa,ca,ua,Sa,hl,pl){if(typeof document>"u")return;const ml=[`${la}=${encodeURIComponent(aa)}`];utils$2.isNumber(ca)&&ml.push(`expires=${new Date(ca).toUTCString()}`),utils$2.isString(ua)&&ml.push(`path=${ua}`),utils$2.isString(Sa)&&ml.push(`domain=${Sa}`),hl===!0&&ml.push("secure"),utils$2.isString(pl)&&ml.push(`SameSite=${pl}`),document.cookie=ml.join("; ")},read(la){if(typeof document>"u")return null;const aa=document.cookie.match(new RegExp("(?:^|; )"+la+"=([^;]*)"));return aa?decodeURIComponent(aa[1]):null},remove(la){this.write(la,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function isAbsoluteURL$2(la){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(la)}function combineURLs(la,aa){return aa?la.replace(/\/?\/$/,"")+"/"+aa.replace(/^\/+/,""):la}function buildFullPath(la,aa,ca){let ua=!isAbsoluteURL$2(aa);return la&&(ua||ca==!1)?combineURLs(la,aa):aa}const headersToObject=la=>la instanceof AxiosHeaders$1?{...la}:la;function mergeConfig$1(la,aa){aa=aa||{};const ca={};function ua(wc,xu,ff,jf){return utils$2.isPlainObject(wc)&&utils$2.isPlainObject(xu)?utils$2.merge.call({caseless:jf},wc,xu):utils$2.isPlainObject(xu)?utils$2.merge({},xu):utils$2.isArray(xu)?xu.slice():xu}function Sa(wc,xu,ff,jf){if(utils$2.isUndefined(xu)){if(!utils$2.isUndefined(wc))return ua(void 0,wc,ff,jf)}else return ua(wc,xu,ff,jf)}function hl(wc,xu){if(!utils$2.isUndefined(xu))return ua(void 0,xu)}function pl(wc,xu){if(utils$2.isUndefined(xu)){if(!utils$2.isUndefined(wc))return ua(void 0,wc)}else return ua(void 0,xu)}function ml(wc,xu,ff){if(ff in aa)return ua(wc,xu);if(ff in la)return ua(void 0,wc)}const gl={url:hl,method:hl,data:hl,baseURL:pl,transformRequest:pl,transformResponse:pl,paramsSerializer:pl,timeout:pl,timeoutMessage:pl,withCredentials:pl,withXSRFToken:pl,adapter:pl,responseType:pl,xsrfCookieName:pl,xsrfHeaderName:pl,onUploadProgress:pl,onDownloadProgress:pl,decompress:pl,maxContentLength:pl,maxBodyLength:pl,beforeRedirect:pl,transport:pl,httpAgent:pl,httpsAgent:pl,cancelToken:pl,socketPath:pl,responseEncoding:pl,validateStatus:ml,headers:(wc,xu,ff)=>Sa(headersToObject(wc),headersToObject(xu),ff,!0)};return utils$2.forEach(Object.keys({...la,...aa}),function(xu){const ff=gl[xu]||Sa,jf=ff(la[xu],aa[xu],xu);utils$2.isUndefined(jf)&&ff!==ml||(ca[xu]=jf)}),ca}const resolveConfig=la=>{const aa=mergeConfig$1({},la);let{data:ca,withXSRFToken:ua,xsrfHeaderName:Sa,xsrfCookieName:hl,headers:pl,auth:ml}=aa;if(aa.headers=pl=AxiosHeaders$1.from(pl),aa.url=buildURL(buildFullPath(aa.baseURL,aa.url,aa.allowAbsoluteUrls),la.params,la.paramsSerializer),ml&&pl.set("Authorization","Basic "+btoa((ml.username||"")+":"+(ml.password?unescape(encodeURIComponent(ml.password)):""))),utils$2.isFormData(ca)){if(platform$1.hasStandardBrowserEnv||platform$1.hasStandardBrowserWebWorkerEnv)pl.setContentType(void 0);else if(utils$2.isFunction(ca.getHeaders)){const gl=ca.getHeaders(),wc=["content-type","content-length"];Object.entries(gl).forEach(([xu,ff])=>{wc.includes(xu.toLowerCase())&&pl.set(xu,ff)})}}if(platform$1.hasStandardBrowserEnv&&(ua&&utils$2.isFunction(ua)&&(ua=ua(aa)),ua||ua!==!1&&isURLSameOrigin(aa.url))){const gl=Sa&&hl&&cookies.read(hl);gl&&pl.set(Sa,gl)}return aa},isXHRAdapterSupported=typeof XMLHttpRequest<"u",xhrAdapter=isXHRAdapterSupported&&function(la){return new Promise(function(ca,ua){const Sa=resolveConfig(la);let hl=Sa.data;const pl=AxiosHeaders$1.from(Sa.headers).normalize();let{responseType:ml,onUploadProgress:gl,onDownloadProgress:wc}=Sa,xu,ff,jf,Uf,rp;function np(){Uf&&Uf(),rp&&rp(),Sa.cancelToken&&Sa.cancelToken.unsubscribe(xu),Sa.signal&&Sa.signal.removeEventListener("abort",xu)}let qm=new XMLHttpRequest;qm.open(Sa.method.toUpperCase(),Sa.url,!0),qm.timeout=Sa.timeout;function Vm(){if(!qm)return;const tg=AxiosHeaders$1.from("getAllResponseHeaders"in qm&&qm.getAllResponseHeaders()),ig={data:!ml||ml==="text"||ml==="json"?qm.responseText:qm.response,status:qm.status,statusText:qm.statusText,headers:tg,config:la,request:qm};settle(function(R1){ca(R1),np()},function(R1){ua(R1),np()},ig),qm=null}"onloadend"in qm?qm.onloadend=Vm:qm.onreadystatechange=function(){!qm||qm.readyState!==4||qm.status===0&&!(qm.responseURL&&qm.responseURL.indexOf("file:")===0)||setTimeout(Vm)},qm.onabort=function(){qm&&(ua(new AxiosError$1("Request aborted",AxiosError$1.ECONNABORTED,la,qm)),qm=null)},qm.onerror=function(rg){const ig=rg&&rg.message?rg.message:"Network Error",vv=new AxiosError$1(ig,AxiosError$1.ERR_NETWORK,la,qm);vv.event=rg||null,ua(vv),qm=null},qm.ontimeout=function(){let rg=Sa.timeout?"timeout of "+Sa.timeout+"ms exceeded":"timeout exceeded";const ig=Sa.transitional||transitionalDefaults;Sa.timeoutErrorMessage&&(rg=Sa.timeoutErrorMessage),ua(new AxiosError$1(rg,ig.clarifyTimeoutError?AxiosError$1.ETIMEDOUT:AxiosError$1.ECONNABORTED,la,qm)),qm=null},hl===void 0&&pl.setContentType(null),"setRequestHeader"in qm&&utils$2.forEach(pl.toJSON(),function(rg,ig){qm.setRequestHeader(ig,rg)}),utils$2.isUndefined(Sa.withCredentials)||(qm.withCredentials=!!Sa.withCredentials),ml&&ml!=="json"&&(qm.responseType=Sa.responseType),wc&&([jf,rp]=progressEventReducer(wc,!0),qm.addEventListener("progress",jf)),gl&&qm.upload&&([ff,Uf]=progressEventReducer(gl),qm.upload.addEventListener("progress",ff),qm.upload.addEventListener("loadend",Uf)),(Sa.cancelToken||Sa.signal)&&(xu=tg=>{qm&&(ua(!tg||tg.type?new CanceledError$1(null,la,qm):tg),qm.abort(),qm=null)},Sa.cancelToken&&Sa.cancelToken.subscribe(xu),Sa.signal&&(Sa.signal.aborted?xu():Sa.signal.addEventListener("abort",xu)));const eg=parseProtocol(Sa.url);if(eg&&platform$1.protocols.indexOf(eg)===-1){ua(new AxiosError$1("Unsupported protocol "+eg+":",AxiosError$1.ERR_BAD_REQUEST,la));return}qm.send(hl||null)})},composeSignals=(la,aa)=>{const{length:ca}=la=la?la.filter(Boolean):[];if(aa||ca){let ua=new AbortController,Sa;const hl=function(wc){if(!Sa){Sa=!0,ml();const xu=wc instanceof Error?wc:this.reason;ua.abort(xu instanceof AxiosError$1?xu:new CanceledError$1(xu instanceof Error?xu.message:xu))}};let pl=aa&&setTimeout(()=>{pl=null,hl(new AxiosError$1(`timeout ${aa} of ms exceeded`,AxiosError$1.ETIMEDOUT))},aa);const ml=()=>{la&&(pl&&clearTimeout(pl),pl=null,la.forEach(wc=>{wc.unsubscribe?wc.unsubscribe(hl):wc.removeEventListener("abort",hl)}),la=null)};la.forEach(wc=>wc.addEventListener("abort",hl));const{signal:gl}=ua;return gl.unsubscribe=()=>utils$2.asap(ml),gl}},streamChunk=function*(la,aa){let ca=la.byteLength;if(ca<aa){yield la;return}let ua=0,Sa;for(;ua<ca;)Sa=ua+aa,yield la.slice(ua,Sa),ua=Sa},readBytes=async function*(la,aa){for await(const ca of readStream(la))yield*streamChunk(ca,aa)},readStream=async function*(la){if(la[Symbol.asyncIterator]){yield*la;return}const aa=la.getReader();try{for(;;){const{done:ca,value:ua}=await aa.read();if(ca)break;yield ua}}finally{await aa.cancel()}},trackStream=(la,aa,ca,ua)=>{const Sa=readBytes(la,aa);let hl=0,pl,ml=gl=>{pl||(pl=!0,ua&&ua(gl))};return new ReadableStream({async pull(gl){try{const{done:wc,value:xu}=await Sa.next();if(wc){ml(),gl.close();return}let ff=xu.byteLength;if(ca){let jf=hl+=ff;ca(jf)}gl.enqueue(new Uint8Array(xu))}catch(wc){throw ml(wc),wc}},cancel(gl){return ml(gl),Sa.return()}},{highWaterMark:2})},DEFAULT_CHUNK_SIZE=64*1024,{isFunction:isFunction$4}=utils$2,globalFetchAPI=(({Request:la,Response:aa})=>({Request:la,Response:aa}))(utils$2.global),{ReadableStream:ReadableStream$1,TextEncoder:TextEncoder$1}=utils$2.global,test$1=(la,...aa)=>{try{return!!la(...aa)}catch{return!1}},factory=la=>{la=utils$2.merge.call({skipUndefined:!0},globalFetchAPI,la);const{fetch:aa,Request:ca,Response:ua}=la,Sa=aa?isFunction$4(aa):typeof fetch=="function",hl=isFunction$4(ca),pl=isFunction$4(ua);if(!Sa)return!1;const ml=Sa&&isFunction$4(ReadableStream$1),gl=Sa&&(typeof TextEncoder$1=="function"?(rp=>np=>rp.encode(np))(new TextEncoder$1):async rp=>new Uint8Array(await new ca(rp).arrayBuffer())),wc=hl&&ml&&test$1(()=>{let rp=!1;const np=new ca(platform$1.origin,{body:new ReadableStream$1,method:"POST",get duplex(){return rp=!0,"half"}}).headers.has("Content-Type");return rp&&!np}),xu=pl&&ml&&test$1(()=>utils$2.isReadableStream(new ua("").body)),ff={stream:xu&&(rp=>rp.body)};Sa&&["text","arrayBuffer","blob","formData","stream"].forEach(rp=>{!ff[rp]&&(ff[rp]=(np,qm)=>{let Vm=np&&np[rp];if(Vm)return Vm.call(np);throw new AxiosError$1(`Response type '${rp}' is not supported`,AxiosError$1.ERR_NOT_SUPPORT,qm)})});const jf=async rp=>{if(rp==null)return 0;if(utils$2.isBlob(rp))return rp.size;if(utils$2.isSpecCompliantForm(rp))return(await new ca(platform$1.origin,{method:"POST",body:rp}).arrayBuffer()).byteLength;if(utils$2.isArrayBufferView(rp)||utils$2.isArrayBuffer(rp))return rp.byteLength;if(utils$2.isURLSearchParams(rp)&&(rp=rp+""),utils$2.isString(rp))return(await gl(rp)).byteLength},Uf=async(rp,np)=>{const qm=utils$2.toFiniteNumber(rp.getContentLength());return qm??jf(np)};return async rp=>{let{url:np,method:qm,data:Vm,signal:eg,cancelToken:tg,timeout:rg,onDownloadProgress:ig,onUploadProgress:vv,responseType:R1,headers:O1,withCredentials:K0="same-origin",fetchOptions:J0}=resolveConfig(rp),Hw=aa||fetch;R1=R1?(R1+"").toLowerCase():"text";let qw=composeSignals([eg,tg&&tg.toAbortSignal()],rg),Y0=null;const G0=qw&&qw.unsubscribe&&(()=>{qw.unsubscribe()});let X0;try{if(vv&&wc&&qm!=="get"&&qm!=="head"&&(X0=await Uf(O1,Vm))!==0){let yY=new ca(np,{method:"POST",body:Vm,duplex:"half"}),vQ;if(utils$2.isFormData(Vm)&&(vQ=yY.headers.get("content-type"))&&O1.setContentType(vQ),yY.body){const[Ohe,bY]=progressEventDecorator(X0,progressEventReducer(asyncDecorator(vv)));Vm=trackStream(yY.body,DEFAULT_CHUNK_SIZE,Ohe,bY)}}utils$2.isString(K0)||(K0=K0?"include":"omit");const d_=hl&&"credentials"in ca.prototype,f_={...J0,signal:qw,method:qm.toUpperCase(),headers:O1.normalize().toJSON(),body:Vm,duplex:"half",credentials:d_?K0:void 0};Y0=hl&&new ca(np,f_);let zN=await(hl?Hw(Y0,J0):Hw(np,f_));const BN=xu&&(R1==="stream"||R1==="response");if(xu&&(ig||BN&&G0)){const yY={};["status","statusText","headers"].forEach(Lhe=>{yY[Lhe]=zN[Lhe]});const vQ=utils$2.toFiniteNumber(zN.headers.get("content-length")),[Ohe,bY]=ig&&progressEventDecorator(vQ,progressEventReducer(asyncDecorator(ig),!0))||[];zN=new ua(trackStream(zN.body,DEFAULT_CHUNK_SIZE,Ohe,()=>{bY&&bY(),G0&&G0()}),yY)}R1=R1||"text";let iF=await ff[utils$2.findKey(ff,R1)||"text"](zN,rp);return!BN&&G0&&G0(),await new Promise((yY,vQ)=>{settle(yY,vQ,{data:iF,headers:AxiosHeaders$1.from(zN.headers),status:zN.status,statusText:zN.statusText,config:rp,request:Y0})})}catch(d_){throw G0&&G0(),d_&&d_.name==="TypeError"&&/Load failed|fetch/i.test(d_.message)?Object.assign(new AxiosError$1("Network Error",AxiosError$1.ERR_NETWORK,rp,Y0),{cause:d_.cause||d_}):AxiosError$1.from(d_,d_&&d_.code,rp,Y0)}}},seedCache=new Map,getFetch=la=>{let aa=la&&la.env||{};const{fetch:ca,Request:ua,Response:Sa}=aa,hl=[ua,Sa,ca];let pl=hl.length,ml=pl,gl,wc,xu=seedCache;for(;ml--;)gl=hl[ml],wc=xu.get(gl),wc===void 0&&xu.set(gl,wc=ml?new Map:factory(aa)),xu=wc;return wc};getFetch();const knownAdapters={http:httpAdapter,xhr:xhrAdapter,fetch:{get:getFetch}};utils$2.forEach(knownAdapters,(la,aa)=>{if(la){try{Object.defineProperty(la,"name",{value:aa})}catch{}Object.defineProperty(la,"adapterName",{value:aa})}});const renderReason=la=>`- ${la}`,isResolvedHandle=la=>utils$2.isFunction(la)||la===null||la===!1;function getAdapter$1(la,aa){la=utils$2.isArray(la)?la:[la];const{length:ca}=la;let ua,Sa;const hl={};for(let pl=0;pl<ca;pl++){ua=la[pl];let ml;if(Sa=ua,!isResolvedHandle(ua)&&(Sa=knownAdapters[(ml=String(ua)).toLowerCase()],Sa===void 0))throw new AxiosError$1(`Unknown adapter '${ml}'`);if(Sa&&(utils$2.isFunction(Sa)||(Sa=Sa.get(aa))))break;hl[ml||"#"+pl]=Sa}if(!Sa){const pl=Object.entries(hl).map(([gl,wc])=>`adapter ${gl} `+(wc===!1?"is not supported by the environment":"is not available in the build"));let ml=ca?pl.length>1?`since :
|
|
16873
16873
|
`+pl.map(renderReason).join(`
|
|
@@ -17429,7 +17429,7 @@ ${Vm}`),ml=`${ml}
|
|
|
17429
17429
|
${pl} --> ${Vm}
|
|
17430
17430
|
`,Uf?pl=await preprocessStep(Vm.trim(),ua):(ua.setFlowContext(ml),await agentInvoke(aa,`${hl}
|
|
17431
17431
|
${ml}`,ua),pl=await preprocessStep(ua.getLastResult().trim(),ua))}}finally{ua.decrementMonitor().revokeLastResult().setMonitorFlowResult()}console.debug(`No more flow steps, completed iteration ${wc} on flow:
|
|
17432
|
-
${la}`)}async function preprocessStep(la,aa){if(la.startsWith("{")){const ua=(await parseStatement$1(la)).pattern.crudMap;if(ua){aa.resetTemplateMappings();const Sa=ua.name;return ua.body&&ua.body.attributes.forEach(hl=>{var pl,ml;const gl=(ml=(pl=hl.value)===null||pl===void 0?void 0:pl.$cstNode)===null||ml===void 0?void 0:ml.text;gl&&aa.setTemplateMapping(hl.name,gl)}),Sa}else throw new Error(`Invalid step - ${la}`)}else return la}async function handleOpenApiEvent(la,aa){const ca=await invokeOpenApiEvent(la.moduleName,la.name,la.attributesAsObject());aa.setLastResult(ca)}async function evaluateUpsert(la,aa){aa.setInUpsertMode(!0);try{await evaluateCrudMap(la,aa)}finally{aa.setInUpsertMode(!1)}}async function evaluateForEach(la,aa){const ca=la.var;await evaluatePattern(la.src,aa);const ua=aa.getLastResult();if(ua instanceof Array&&ua.length>0){const Sa=Environment.from(aa),hl=new Array;for(let pl=0;pl<ua.length;++pl)Sa.bind(ca,ua[pl]),await evaluateStatements(la.statements,Sa),hl.push(Sa.getLastResult());aa.setLastResult(hl)}else aa.setLastResult(EmptyResult)}async function evaluateIf(la,aa){await evaluateExpression(la.cond,aa),aa.getLastResult()?await evaluateStatements(la.statements,aa):la.else!==void 0&&await evaluateStatements(la.else.statements,aa)}async function evaluateDeleteHelper(la,aa,ca){const ua=Environment.from(ca).setInDeleteMode(!0);await evaluatePattern(la,ua),await maybeDeleteQueriedInstances(ua,ca,aa)}async function maybeDeleteQueriedInstances(la,aa,ca=!1){const ua=la.getLastResult();let Sa=Resolver.Default;if(ua instanceof Array)if(ua.length>0&&isEntityInstance$1(ua[0])){Sa=await getResolverForPath(ua[0].name,ua[0].moduleName,la);const hl=new Array;for(let pl=0;pl<ua.length;++pl){await runPreDeleteEvents(ua[pl],aa);const ml=await Sa.deleteInstance(ua[pl],ca);await runPostDeleteEvents(ua[pl],aa),hl.push(ml)}la.setLastResult(hl)}else la.setLastResult(ua);else if(isEntityInstance$1(ua)){Sa=await getResolverForPath(ua.name,ua.moduleName,la),await runPreDeleteEvents(ua,aa);const hl=await Sa.deleteInstance(ua,ca);await runPostDeleteEvents(ua,aa),la.setLastResult(hl)}aa.setLastResult(la.getLastResult())}async function evaluateDelete(la,aa){await evaluateDeleteHelper(la.pattern,!1,aa)}async function evaluatePurge(la,aa){await evaluateDeleteHelper(la.pattern,!0,aa)}async function evaluateExpression(la,aa){let ca=EmptyResult;if(isBinExpr$1(la)){await evaluateExpression(la.e1,aa);const ua=aa.getLastResult();if(la.op=="or"){if(ua)return;await evaluateExpression(la.e2,aa);return}else if(la.op=="and"){if(!ua)return;await evaluateExpression(la.e2,aa);return}if(ua==null){aa.setLastResult(void 0);return}await evaluateExpression(la.e2,aa);const Sa=aa.getLastResult();if(Sa==null){aa.setLastResult(void 0);return}switch(la.op){case"+":ca=ua+Sa;break;case"-":ca=ua-Sa;break;case"*":ca=ua*Sa;break;case"/":ca=ua/Sa;break;case"==":ca=ua==Sa;break;case"<":ca=ua<Sa;break;case">":ca=ua>Sa;break;case"<=":ca=ua<=Sa;break;case">=":ca=ua>=Sa;break;case"<>":case"!=":ca=ua!=Sa;break;case"like":ca=ua.startsWith(Sa);break;case"in":ca=Sa.find(hl=>{});break;default:throw new Error(`Unrecognized binary operator: ${la.op}`)}}else if(isNegExpr$1(la))await evaluateExpression(la.ne,aa),ca=-1*aa.getLastResult();else if(isGroup$2(la))await evaluateExpression(la.ge,aa),ca=aa.getLastResult();else if(isLiteral$1(la)){await evaluateLiteral(la,aa);return}else isNotExpr$1(la)&&(await evaluateExpression(la.ne,aa),ca=!aa.getLastResult());aa.setLastResult(ca)}async function getRef(la,aa,ca){return Instance$1.IsInstance(aa)?aa.lookup(la):aa instanceof Map?aa.get(la):aa instanceof Object?aa[la]:isPath$1(aa)?await getRef(la,await dereferencePath(aa,ca),ca):void 0}async function followReference(la,aa){const ca=splitRefs$1(aa);let ua=EmptyResult,Sa=la;for(let hl=0;hl<ca.length;++hl){const pl=ca[hl],ml=await getRef(pl,Sa,la);if(ml===void 0)return EmptyResult;ua=ml,Sa=ua}return ua}async function dereferencePath(la,aa){const ca=fqNameFromPath$1(la);if(ca===void 0)throw new Error(`Failed to deduce entry-name from path - ${la}`);const ua=new Environment("path-deref",aa);await parseAndEvaluateStatement(`{${ca} {${PathAttributeNameQuery$1} "${la}"}}`,aa.getAuthContextUserId(),ua);const Sa=ua.getLastResult();if(Sa&&Sa instanceof Array&&Sa.length>0)return Sa[0]}async function applyFn(la,aa,ca){const ua=la.name;if(ua!==void 0){let Sa=null;if(la.args!==void 0){Sa=new Array;for(let pl=0;pl<la.args.length;++pl){const ml=la.args[pl];isLiteral$1(ml)?await evaluateLiteral(ml,aa):await evaluateExpression(ml,aa),Sa.push(aa.getLastResult())}Sa.push(aa)}const hl=await invokeModuleFn(ua,Sa,ca);aa.setLastResult(hl)}}async function realizeArray(la,aa){const ca=new Array;for(let ua=0;ua<la.vals.length;++ua)await evaluateStatement(la.vals[ua],aa),ca.push(aa.getLastResult());aa.setLastResult(ca)}async function realizeMap(la,aa){const ca=new Map;for(let ua=0;ua<la.entries.length;++ua){const Sa=la.entries[ua],hl=getMapKey(Sa.key);await evaluateExpression(Sa.value,aa),ca.set(hl,aa.getLastResult())}aa.setLastResult(Object.fromEntries(ca.entries()))}async function callPostEventOnSubscription(la,aa,ca){const ua=ca===void 0,Sa=new Environment("onSubs.env");try{return await runPrePostEvents(la,!1,aa,Sa),ua&&await Sa.commitAllTransactions(),Sa.getLastResult()}catch(hl){await Sa.rollbackAllTransactions(),logger$3.error(`callPostEventOnSubscription failed for ${la} ${aa.getFqName()} - ${hl}`)}}async function runPrePostEvents(la,aa,ca,ua){const Sa=aa?ca.record.getPreTriggerInfo(la):ca.record.getPostTriggerInfo(la);if(Sa){const hl=nameToPath$1(Sa.eventName),pl=hl.hasModule()?hl.getModuleName():ca.record.moduleName,ml=makeInstance$1(pl,hl.getEntryName(),newInstanceAttributes$1().set(ca.record.name,ca)),gl=ua.getActiveAuthContext();gl&&ml.setAuthContext(gl);const wc=`${aa?"Pre":"Post"}-${CrudType$1[la]} ${ca.record.getFqName()}`,xu=jf=>{logger$3.debug(`${wc}: ${jf}`)},ff=jf=>{throw ua.hasHandlers()?jf:new Error(`${wc}: ${jf}`)};Sa.async?evaluate$1(ml,xu,bindAliasesForPrePost(ua,ca,wc)).catch(ff):await evaluate$1(ml,xu,bindAliasesForPrePost(ua,ca,wc)).catch(ff)}}function bindAliasesForPrePost(la,aa,ca){const ua=new Environment(`${ca}.env`,la),Sa=aa.getFqName();return ua.bind("this",aa),ua.bind(Sa,aa),ua.bind(aa.name,aa),ua}async function runPreCreateEvents(la,aa){await runPrePostEvents(CrudType$1.CREATE,!0,la,aa)}async function runPostCreateEvents(la,aa){la.requireAudit()&&await addCreateAudit(la.getPath(),aa),await runPrePostEvents(CrudType$1.CREATE,!1,la,aa)}async function runPreUpdateEvents(la,aa){await runPrePostEvents(CrudType$1.UPDATE,!0,la,aa)}async function runPostUpdateEvents(la,aa,ca){la.requireAudit()&&await addUpdateAudit(la.getPath(),aa,ca),await runPrePostEvents(CrudType$1.UPDATE,!1,la,ca)}async function runPreDeleteEvents(la,aa){await runPrePostEvents(CrudType$1.DELETE,!0,la,aa)}async function runPostDeleteEvents(la,aa){la.requireAudit()&&await addDeleteAudit(la.getPath(),la,aa),await runPrePostEvents(CrudType$1.DELETE,!1,la,aa)}async function fetchConfig(la){const aa=await parseAndEvaluateStatement(`{${la}? {}}`);if(aa&&aa!==null&&aa.length>0)return preprocessRawConfig(Object.fromEntries(aa[0].attributes))}const interpreter=Object.freeze(Object.defineProperty({__proto__:null,DocEventName,Environment,GlobalEnvironment,PatternHandler,callPostEventOnSubscription,get evaluate(){return evaluate$1},evaluateAsEvent,evaluateExpression,evaluatePattern,evaluateStatement,evaluateStatements,fetchConfig,handleAgentInvocation,handleOpenApiEvent,makeEventEvaluator,maybeBindStatementResultToAlias,maybeDeleteQueriedInstances,get parseAndEvaluateStatement(){return parseAndEvaluateStatement},restartFlow,runPostCreateEvents,runPostDeleteEvents,runPostUpdateEvents,setEvaluateFn,setParseAndEvaluateStatementFn},Symbol.toStringTag,{value:"Module"}));class JwtBaseError extends Error{}class FailedAssertionError extends JwtBaseError{constructor(aa,ca,ua){super(aa),this.failedAssertion={actual:ca,expected:ua}}}class JwtParseError extends JwtBaseError{constructor(aa,ca){const ua=ca!=null?`${aa}: ${ca}`:aa;super(ua)}}class ParameterValidationError extends JwtBaseError{}class JwtInvalidSignatureError extends JwtBaseError{}class JwtInvalidSignatureAlgorithmError extends FailedAssertionError{}class JwtInvalidClaimError extends FailedAssertionError{withRawJwt({header:aa,payload:ca}){return this.rawJwt={header:aa,payload:ca},this}}class JwtInvalidIssuerError extends JwtInvalidClaimError{}class JwtInvalidAudienceError extends JwtInvalidClaimError{}class JwtInvalidScopeError extends JwtInvalidClaimError{}class JwtExpiredError extends JwtInvalidClaimError{}class JwtNotBeforeError extends JwtInvalidClaimError{}class CognitoJwtInvalidGroupError extends JwtInvalidClaimError{}class CognitoJwtInvalidTokenUseError extends JwtInvalidClaimError{}class CognitoJwtInvalidClientIdError extends JwtInvalidClaimError{}class JwksValidationError extends JwtBaseError{}class JwkValidationError extends JwtBaseError{}class JwtWithoutValidKidError extends JwtBaseError{}class KidNotFoundInJwksError extends JwtBaseError{}class WaitPeriodNotYetEndedJwkError extends JwtBaseError{}class JwksNotAvailableInCacheError extends JwtBaseError{}class JwkInvalidUseError extends FailedAssertionError{}class JwkInvalidKtyError extends FailedAssertionError{}class FetchError extends JwtBaseError{constructor(aa,ca){super(`Failed to fetch ${aa}: ${ca}`)}}class NonRetryableFetchError extends FetchError{}class NotSupportedError extends JwtBaseError{}var NamedCurvesWebCrypto;(function(la){la.ES256="P-256",la.ES384="P-384",la.ES512="P-521"})(NamedCurvesWebCrypto||(NamedCurvesWebCrypto={}));const nodeWebCompat={fetch:async(la,aa,ca)=>{const ua=Number(aa?.responseTimeout);if(ua){const hl=new AbortController;setTimeout(()=>hl.abort(new FetchError(la,`Response time-out (after ${ua} ms.)`)),ua),aa={signal:hl.signal,...aa}}const Sa=await fetch(la,{...aa,body:ca}).catch(hl=>{throw new FetchError(la,hl.message)});if(Sa.status!==200)throw new NonRetryableFetchError(la,`Status code is ${Sa.status}, expected 200`);return Sa.arrayBuffer()},defaultFetchTimeouts:{response:3e3},transformJwkToKeyObjectSync:()=>{throw new NotSupportedError("Synchronously transforming a JWK into a key object is not supported in the browser")},transformJwkToKeyObjectAsync:(la,aa)=>{const ca=la.alg??aa;if(!ca)throw new JwtInvalidSignatureAlgorithmError("Missing alg on both JWK and JWT header",ca);const ua=ca.startsWith("RS")?{name:"RSASSA-PKCS1-v1_5",hash:`SHA-${ca.slice(2)}`}:ca.startsWith("ES")?{name:"ECDSA",namedCurve:NamedCurvesWebCrypto[ca]}:la.crv;return crypto.subtle.importKey("jwk",la,ua,!1,["verify"]).then(Sa=>({key:Sa,jwk:la}))},verifySignatureSync:()=>{throw new NotSupportedError("Synchronously verifying a JWT signature is not supported in the browser")},verifySignatureAsync:({jwsSigningInput:la,keyObject:aa,signature:ca,alg:ua})=>crypto.subtle.verify(ua.startsWith("RS")?{name:"RSASSA-PKCS1-v1_5"}:ua.startsWith("ES")?{name:"ECDSA",hash:`SHA-${ua.slice(2)}`}:{name:aa.jwk.crv},aa.key,bufferFromBase64url(ca),new TextEncoder().encode(la)),parseB64UrlString:la=>new TextDecoder().decode(bufferFromBase64url(la)),setTimeoutUnref:setTimeout.bind(void 0),transformPemToJwk:async(la,aa)=>{let ca;switch(aa){case"RS256":case"RS384":case"RS512":ca={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${aa.slice(2)}`};break;case"ES256":case"ES384":case"ES512":ca={name:"ECDSA",namedCurve:NamedCurvesWebCrypto[aa]};break;default:throw new JwtInvalidSignatureAlgorithmError("Unsupported signature algorithm",aa)}const ua=await crypto.subtle.importKey("spki",bufferFromBase64(new TextDecoder().decode(la).replace(/-----BEGIN PUBLIC KEY-----/,"").replace(/-----END PUBLIC KEY-----/,"").replace(/\s/g,"")),ca,!0,["verify"]);return crypto.subtle.exportKey("jwk",ua)}};function _bufferFromBase64(la){const aa=la.split("").reduce((ca,ua,Sa)=>Object.assign(ca,{[ua.charCodeAt(0)]:Sa}),{});return function(ca){ca=ca.replace(/={1,2}$/,"");let ua,Sa,hl,pl;return ca.match(/.{1,4}/g).reduce((ml,gl,wc)=>(ua=aa[gl.charCodeAt(0)],Sa=aa[gl.charCodeAt(1)],hl=aa[gl.charCodeAt(2)],pl=aa[gl.charCodeAt(3)],ml[3*wc]=ua<<2|Sa>>4,ml[3*wc+1]=(Sa&15)<<4|hl>>2,ml[3*wc+2]=(hl&3)<<6|pl,ml),new Uint8Array(ca.length*3/4))}}const bufferFromBase64url=_bufferFromBase64("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),bufferFromBase64=_bufferFromBase64("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),fetch$1=nodeWebCompat.fetch.bind(void 0);class SimpleFetcher{constructor(aa){this.defaultRequestOptions={timeout:nodeWebCompat.defaultFetchTimeouts.socketIdle,responseTimeout:nodeWebCompat.defaultFetchTimeouts.response,...aa?.defaultRequestOptions}}async fetch(aa,ca,ua){ca={...this.defaultRequestOptions,...ca};try{return await fetch$1(aa,ca,ua)}catch(Sa){if(Sa instanceof NonRetryableFetchError)throw Sa;return fetch$1(aa,ca,ua)}}}function isJsonObject(la){return typeof la=="object"&&!Array.isArray(la)&&la!==null}function safeJsonParse(la){return JSON.parse(la,(aa,ca)=>(typeof ca=="object"&&!Array.isArray(ca)&&ca!==null&&(delete ca.__proto__,delete ca.constructor),ca))}function assertStringEquals(la,aa,ca,ua=FailedAssertionError){if(!aa)throw new ua(`Missing ${la}. Expected: ${ca}`,aa,ca);if(typeof aa!="string")throw new ua(`${la} is not of type string`,aa,ca);if(ca!==aa)throw new ua(`${la} not allowed: ${aa}. Expected: ${ca}`,aa,ca)}function assertStringArrayContainsString(la,aa,ca,ua=FailedAssertionError){if(!aa)throw new ua(`Missing ${la}. ${expectationMessage(ca)}`,aa,ca);if(typeof aa!="string")throw new ua(`${la} is not of type string`,aa,ca);return assertStringArraysOverlap(la,aa,ca,ua)}function assertStringArraysOverlap(la,aa,ca,ua=FailedAssertionError){if(!aa)throw new ua(`Missing ${la}. ${expectationMessage(ca)}`,aa,ca);const Sa=new Set(Array.isArray(ca)?ca:[ca]);if(typeof aa=="string"&&(aa=[aa]),!Array.isArray(aa))throw new ua(`${la} is not an array`,aa,ca);if(!aa.some(pl=>{if(typeof pl!="string")throw new ua(`${la} includes elements that are not of type string`,aa,ca);return Sa.has(pl)}))throw new ua(`${la} not allowed: ${aa.join(", ")}. ${expectationMessage(ca)}`,aa,ca)}function expectationMessage(la){return Array.isArray(la)?la.length>1?`Expected one of: ${la.join(", ")}`:`Expected: ${la[0]}`:`Expected: ${la}`}function assertIsNotPromise(la,aa){if(la&&typeof la.then=="function")throw aa()}const optionalJwkFieldNames=["use","alg","kid","n","e","x","y","crv"],mandatoryJwkFieldNames=["kty"];function findJwkInJwks(la,aa){return la.keys.find(ca=>ca.kid!=null&&ca.kid===aa)}const parseJwks=function(la){let aa;try{const ca=new TextDecoder("utf8",{fatal:!0,ignoreBOM:!0}).decode(la);aa=safeJsonParse(ca)}catch(ca){throw new JwksValidationError(`JWKS could not be parsed as JSON: ${ca}`)}return assertIsJwks(aa),aa};function assertIsJwks(la){if(!la)throw new JwksValidationError("JWKS empty");if(!isJsonObject(la))throw new JwksValidationError("JWKS should be an object");if(!Object.keys(la).includes("keys"))throw new JwksValidationError("JWKS does not include keys");if(!Array.isArray(la.keys))throw new JwksValidationError("JWKS keys should be an array");for(const aa of la.keys)assertIsJwk(aa)}function assertIsSignatureJwk(la){assertStringArrayContainsString("JWK kty",la.kty,["EC","RSA","OKP"],JwkInvalidKtyError),la.kty==="EC"?assertIsEsSignatureJwk(la):la.kty==="RSA"?assertIsRsaSignatureJwk(la):la.kty==="OKP"&&assertIsEdDSASignatureJwk(la)}function assertIsEdDSASignatureJwk(la){if(la.use&&assertStringEquals("JWK use",la.use,"sig",JwkInvalidUseError),assertStringEquals("JWK kty",la.kty,"OKP",JwkInvalidKtyError),!la.crv)throw new JwkValidationError("Missing Curve (crv)");if(!la.x)throw new JwkValidationError("Missing X Coordinate (x)")}function assertIsEsSignatureJwk(la){if(la.use&&assertStringEquals("JWK use",la.use,"sig",JwkInvalidUseError),assertStringEquals("JWK kty",la.kty,"EC",JwkInvalidKtyError),!la.crv)throw new JwkValidationError("Missing Curve (crv)");if(!la.x)throw new JwkValidationError("Missing X Coordinate (x)");if(!la.y)throw new JwkValidationError("Missing Y Coordinate (y)")}function assertIsRsaSignatureJwk(la){if(la.use&&assertStringEquals("JWK use",la.use,"sig",JwkInvalidUseError),assertStringEquals("JWK kty",la.kty,"RSA",JwkInvalidKtyError),!la.n)throw new JwkValidationError("Missing modulus (n)");if(!la.e)throw new JwkValidationError("Missing exponent (e)")}function assertIsJwk(la){if(!la)throw new JwkValidationError("JWK empty");if(!isJsonObject(la))throw new JwkValidationError("JWK should be an object");for(const aa of mandatoryJwkFieldNames)if(typeof la[aa]!="string")throw new JwkValidationError(`JWK ${aa} should be a string`);for(const aa of optionalJwkFieldNames)if(aa in la&&typeof la[aa]!="string")throw new JwkValidationError(`JWK ${aa} should be a string`)}function isJwks(la){try{return assertIsJwks(la),!0}catch{return!1}}function isJwk(la){try{return assertIsJwk(la),!0}catch{return!1}}class SimplePenaltyBox{constructor(aa){this.waitingUris=new Map,this.waitSeconds=aa?.waitSeconds??10}async wait(aa){if(this.waitingUris.has(aa))throw new WaitPeriodNotYetEndedJwkError("Not allowed to fetch JWKS yet, still waiting for back off period to end")}release(aa){const ca=this.waitingUris.get(aa);ca&&(clearTimeout(ca),this.waitingUris.delete(aa))}registerFailedAttempt(aa){const ca=nodeWebCompat.setTimeoutUnref(()=>{this.waitingUris.delete(aa)},this.waitSeconds*1e3);this.waitingUris.set(aa,ca)}registerSuccessfulAttempt(aa){this.release(aa)}}class SimpleJwksCache{constructor(aa){this.jwksCache=new Map,this.fetchingJwks=new Map,this.penaltyBox=aa?.penaltyBox??new SimplePenaltyBox,this.fetcher=aa?.fetcher??new SimpleFetcher,this.jwksParser=aa?.jwksParser??parseJwks}addJwks(aa,ca){this.jwksCache.set(aa,ca)}async getJwks(aa){const ca=this.fetchingJwks.get(aa);if(ca)return ca;const ua=this.fetcher.fetch(aa).then(this.jwksParser);this.fetchingJwks.set(aa,ua);let Sa;try{Sa=await ua}finally{this.fetchingJwks.delete(aa)}return this.jwksCache.set(aa,Sa),Sa}getCachedJwk(aa,ca){if(typeof ca.header.kid!="string")throw new JwtWithoutValidKidError("JWT header does not have valid kid claim");if(!this.jwksCache.has(aa))throw new JwksNotAvailableInCacheError(`JWKS for uri ${aa} not yet available in cache`);const ua=findJwkInJwks(this.jwksCache.get(aa),ca.header.kid);if(!ua)throw new KidNotFoundInJwksError(`JWK for kid ${ca.header.kid} not found in the JWKS`);return ua}async getJwk(aa,ca){if(typeof ca.header.kid!="string")throw new JwtWithoutValidKidError("JWT header does not have valid kid claim");const ua=this.jwksCache.get(aa);if(ua){const pl=findJwkInJwks(ua,ca.header.kid);if(pl)return pl}await this.penaltyBox.wait(aa,ca.header.kid);const Sa=await this.getJwks(aa),hl=findJwkInJwks(Sa,ca.header.kid);if(hl)this.penaltyBox.registerSuccessfulAttempt(aa,ca.header.kid);else throw this.penaltyBox.registerFailedAttempt(aa,ca.header.kid),new KidNotFoundInJwksError(`JWK for kid "${ca.header.kid}" not found in the JWKS`);return hl}}function assertJwtHeader(la){if(!isJsonObject(la))throw new JwtParseError("JWT header is not an object");if(la.alg!==void 0&&typeof la.alg!="string")throw new JwtParseError("JWT header alg claim is not a string");if(la.kid!==void 0&&typeof la.kid!="string")throw new JwtParseError("JWT header kid claim is not a string")}function assertJwtPayload(la){if(!isJsonObject(la))throw new JwtParseError("JWT payload is not an object");if(la.exp!==void 0&&!Number.isFinite(la.exp))throw new JwtParseError("JWT payload exp claim is not a number");if(la.iss!==void 0&&typeof la.iss!="string")throw new JwtParseError("JWT payload iss claim is not a string");if(la.sub!==void 0&&typeof la.sub!="string")throw new JwtParseError("JWT payload sub claim is not a string");if(la.aud!==void 0&&typeof la.aud!="string"&&(!Array.isArray(la.aud)||la.aud.some(aa=>typeof aa!="string")))throw new JwtParseError("JWT payload aud claim is not a string or array of strings");if(la.nbf!==void 0&&!Number.isFinite(la.nbf))throw new JwtParseError("JWT payload nbf claim is not a number");if(la.iat!==void 0&&!Number.isFinite(la.iat))throw new JwtParseError("JWT payload iat claim is not a number");if(la.scope!==void 0&&typeof la.scope!="string")throw new JwtParseError("JWT payload scope claim is not a string");if(la.jti!==void 0&&typeof la.jti!="string")throw new JwtParseError("JWT payload jti claim is not a string")}const JWT_REGEX=/^[A-Za-z0-9_-]+={0,2}\.[A-Za-z0-9_-]+={0,2}\.[A-Za-z0-9_-]+={0,2}$/;function decomposeUnverifiedJwt(la){if(!la)throw new JwtParseError("Empty JWT");if(typeof la!="string")throw new JwtParseError("JWT is not a string");if(!JWT_REGEX.test(la))throw new JwtParseError("JWT string does not consist of exactly 3 parts (header, payload, signature)");const[aa,ca,ua]=la.split("."),[Sa,hl]=[aa,ca].map(nodeWebCompat.parseB64UrlString);let pl;try{pl=safeJsonParse(Sa)}catch(gl){throw new JwtParseError("Invalid JWT. Header is not a valid JSON object",gl)}assertJwtHeader(pl);let ml;try{ml=safeJsonParse(hl)}catch(gl){throw new JwtParseError("Invalid JWT. Payload is not a valid JSON object",gl)}return assertJwtPayload(ml),{header:pl,headerB64:aa,payload:ml,payloadB64:ca,signatureB64:ua}}function validateJwtFields(la,aa){if(la.exp!==void 0&&la.exp+(aa.graceSeconds??0)<Date.now()/1e3)throw new JwtExpiredError(`Token expired at ${new Date(la.exp*1e3).toISOString()}`,la.exp);if(la.nbf!==void 0&&la.nbf-(aa.graceSeconds??0)>Date.now()/1e3)throw new JwtNotBeforeError(`Token can't be used before ${new Date(la.nbf*1e3).toISOString()}`,la.nbf);if(aa.issuer!==null){if(aa.issuer===void 0)throw new ParameterValidationError("issuer must be provided or set to null explicitly");assertStringArrayContainsString("Issuer",la.iss,aa.issuer,JwtInvalidIssuerError)}if(aa.audience!==null){if(aa.audience===void 0)throw new ParameterValidationError("audience must be provided or set to null explicitly");assertStringArraysOverlap("Audience",la.aud,aa.audience,JwtInvalidAudienceError)}aa.scope!=null&&assertStringArraysOverlap("Scope",la.scope?.split(" "),aa.scope,JwtInvalidScopeError)}const supportedSignatureAlgorithms=["RS256","RS384","RS512","ES256","ES384","ES512","EdDSA"];function validateJwtHeaderAndJwk(la,aa){assertIsSignatureJwk(aa),aa.alg&&assertStringEquals("JWT signature algorithm",la.alg,aa.alg,JwtInvalidSignatureAlgorithmError),assertStringArrayContainsString("JWT signature algorithm",la.alg,supportedSignatureAlgorithms,JwtInvalidSignatureAlgorithmError)}async function verifyDecomposedJwt(la,aa,ca,ua,Sa){const{header:hl,headerB64:pl,payload:ml,payloadB64:gl,signatureB64:wc}=la,xu=await ua(aa,la);validateJwtHeaderAndJwk(la.header,xu);const ff=await Sa(xu,hl.alg,ml.iss);if(!await nodeWebCompat.verifySignatureAsync({jwsSigningInput:`${pl}.${gl}`,signature:wc,alg:hl.alg,keyObject:ff}))throw new JwtInvalidSignatureError("Invalid signature");try{validateJwtFields(ml,ca),ca.customJwtCheck&&await ca.customJwtCheck({header:hl,payload:ml,jwk:xu})}catch(Uf){throw ca.includeRawJwtInErrors&&Uf instanceof JwtInvalidClaimError?Uf.withRawJwt(la):Uf}return ml}function verifyDecomposedJwtSync(la,aa,ca,ua){const{header:Sa,headerB64:hl,payload:pl,payloadB64:ml,signatureB64:gl}=la;let wc;if(isJwk(aa))wc=aa;else if(isJwks(aa)){const jf=Sa.kid?findJwkInJwks(aa,Sa.kid):void 0;if(!jf)throw new KidNotFoundInJwksError(`JWK for kid ${Sa.kid} not found in the JWKS`);wc=jf}else throw new ParameterValidationError([`Expected a valid JWK or JWKS (parsed as JavaScript object), but received: ${aa}.`,"If you're passing a JWKS URI, use the async verify() method instead, it will download and parse the JWKS for you"].join());validateJwtHeaderAndJwk(la.header,wc);const xu=ua(wc,Sa.alg,pl.iss);if(!nodeWebCompat.verifySignatureSync({jwsSigningInput:`${hl}.${ml}`,signature:gl,alg:Sa.alg,keyObject:xu}))throw new JwtInvalidSignatureError("Invalid signature");try{if(validateJwtFields(pl,ca),ca.customJwtCheck){const jf=ca.customJwtCheck({header:Sa,payload:pl,jwk:wc});assertIsNotPromise(jf,()=>new ParameterValidationError("Custom JWT checks must be synchronous but a promise was returned"))}}catch(jf){throw ca.includeRawJwtInErrors&&jf instanceof JwtInvalidClaimError?jf.withRawJwt(la):jf}return pl}class JwtVerifierBase{constructor(aa,ca=new SimpleJwksCache){if(this.jwksCache=ca,this.issuersConfig=new Map,this.publicKeyCache=new KeyObjectCache,Array.isArray(aa)){if(!aa.length)throw new ParameterValidationError("Provide at least one issuer configuration");aa.forEach((ua,Sa)=>{if(this.issuersConfig.has(ua.issuer))throw new ParameterValidationError(`issuer ${ua.issuer} supplied multiple times`);if(ua.issuer===null&&aa.length>=2)throw new ParameterValidationError(`issuer cannot be null when multiple issuers are supplied (at issuer: ${Sa})`);this.issuersConfig.set(ua.issuer,this.withJwksUri(ua))})}else this.issuersConfig.set(aa.issuer,this.withJwksUri(aa))}getIssuerConfig(aa){if(this.issuersConfig.size===1&&(aa=this.issuersConfig.keys().next().value),aa===void 0)throw new ParameterValidationError("issuer must be provided");const ca=this.issuersConfig.get(aa);if(!ca)throw new ParameterValidationError(`issuer not configured: ${aa}`);return ca}cacheJwks(...[aa,ca]){const ua=this.getIssuerConfig(ca);this.jwksCache.addJwks(ua.jwksUri,aa),this.publicKeyCache.clearCache(ua.issuer)}async hydrate(){const aa=Array.from(this.issuersConfig.values()).map(({jwksUri:ca})=>this.jwksCache.getJwks(ca));await Promise.all(aa)}verifySync(...[aa,ca]){const{decomposedJwt:ua,jwksUri:Sa,verifyProperties:hl}=this.getVerifyParameters(aa,ca);return this.verifyDecomposedJwtSync(ua,Sa,hl)}verifyDecomposedJwtSync(aa,ca,ua){const Sa=this.jwksCache.getCachedJwk(ca,aa);return verifyDecomposedJwtSync(aa,Sa,ua,this.publicKeyCache.transformJwkToKeyObjectSync.bind(this.publicKeyCache))}async verify(...[aa,ca]){const{decomposedJwt:ua,jwksUri:Sa,verifyProperties:hl}=this.getVerifyParameters(aa,ca);return this.verifyDecomposedJwt(ua,Sa,hl)}verifyDecomposedJwt(aa,ca,ua){return verifyDecomposedJwt(aa,ca,ua,this.jwksCache.getJwk.bind(this.jwksCache),this.publicKeyCache.transformJwkToKeyObjectAsync.bind(this.publicKeyCache))}getVerifyParameters(aa,ca){const ua=decomposeUnverifiedJwt(aa),Sa=this.getIssuerConfig(ua.payload.iss);return{decomposedJwt:ua,jwksUri:Sa.jwksUri,verifyProperties:{...Sa,...ca}}}withJwksUri(aa){if(aa.jwksUri)return aa;const ca=aa.issuer;if(!ca)throw new ParameterValidationError("jwksUri must be provided for issuer null");const ua=new URL(ca).pathname.replace(/\/$/,"");return{jwksUri:new URL(`${ua}/.well-known/jwks.json`,ca).href,...aa}}}class KeyObjectCache{constructor(aa=nodeWebCompat.transformJwkToKeyObjectSync,ca=nodeWebCompat.transformJwkToKeyObjectAsync){this.transformJwkToKeyObjectSyncFn=aa,this.transformJwkToKeyObjectAsyncFn=ca,this.publicKeys=new Map}transformJwkToKeyObjectSync(aa,ca,ua){const Sa=aa.alg??ca;if(!ua||!aa.kid||!Sa)return this.transformJwkToKeyObjectSyncFn(aa,Sa,ua);const hl=this.publicKeys.get(ua)?.get(aa.kid)?.get(Sa);if(hl)return hl;const pl=this.transformJwkToKeyObjectSyncFn(aa,Sa,ua);return this.putKeyObjectInCache(ua,aa.kid,Sa,pl),pl}async transformJwkToKeyObjectAsync(aa,ca,ua){const Sa=aa.alg??ca;if(!ua||!aa.kid||!Sa)return this.transformJwkToKeyObjectAsyncFn(aa,Sa,ua);const hl=this.publicKeys.get(ua)?.get(aa.kid)?.get(Sa);if(hl)return hl;const pl=await this.transformJwkToKeyObjectAsyncFn(aa,Sa,ua);return this.putKeyObjectInCache(ua,aa.kid,Sa,pl),pl}putKeyObjectInCache(aa,ca,ua,Sa){const hl=this.publicKeys.get(aa),pl=hl?.get(ca);pl?pl.set(ua,Sa):hl?hl.set(ca,new Map([[ua,Sa]])):this.publicKeys.set(aa,new Map([[ca,new Map([[ua,Sa]])]]))}clearCache(aa){this.publicKeys.delete(aa)}}function validateCognitoJwtFields(la,aa){if(aa.groups!=null&&assertStringArraysOverlap("Cognito group",la["cognito:groups"],aa.groups,CognitoJwtInvalidGroupError),assertStringArrayContainsString("Token use",la.token_use,["id","access"],CognitoJwtInvalidTokenUseError),aa.tokenUse!==null){if(aa.tokenUse===void 0)throw new ParameterValidationError("tokenUse must be provided or set to null explicitly");assertStringEquals("Token use",la.token_use,aa.tokenUse,CognitoJwtInvalidTokenUseError)}if(aa.clientId!==null){if(aa.clientId===void 0)throw new ParameterValidationError("clientId must be provided or set to null explicitly");la.token_use==="id"?assertStringArrayContainsString('Client ID ("audience")',la.aud,aa.clientId,CognitoJwtInvalidClientIdError):assertStringArrayContainsString("Client ID",la.client_id,aa.clientId,CognitoJwtInvalidClientIdError)}}class CognitoJwtVerifier extends JwtVerifierBase{constructor(aa,ca){const ua=Array.isArray(aa)?aa.map(Sa=>({...Sa,...CognitoJwtVerifier.parseUserPoolId(Sa.userPoolId),audience:null})):{...aa,...CognitoJwtVerifier.parseUserPoolId(aa.userPoolId),audience:null};super(ua,ca)}static parseUserPoolId(aa){const ca=aa.match(this.USER_POOL_ID_REGEX);if(!ca)throw new ParameterValidationError(`Invalid Cognito User Pool ID: ${aa}`);const Sa=`https://cognito-idp.${ca.groups.region}.amazonaws.com/${aa}`;return{issuer:Sa,jwksUri:`${Sa}/.well-known/jwks.json`}}static create(aa,ca){return new this(aa,ca?.jwksCache)}verifySync(...[aa,ca]){const{decomposedJwt:ua,jwksUri:Sa,verifyProperties:hl}=this.getVerifyParameters(aa,ca);this.verifyDecomposedJwtSync(ua,Sa,hl);try{validateCognitoJwtFields(ua.payload,hl)}catch(pl){throw hl.includeRawJwtInErrors&&pl instanceof JwtInvalidClaimError?pl.withRawJwt(ua):pl}return ua.payload}async verify(...[aa,ca]){const{decomposedJwt:ua,jwksUri:Sa,verifyProperties:hl}=this.getVerifyParameters(aa,ca);await this.verifyDecomposedJwt(ua,Sa,hl);try{validateCognitoJwtFields(ua.payload,hl)}catch(pl){throw hl.includeRawJwtInErrors&&pl instanceof JwtInvalidClaimError?pl.withRawJwt(ua):pl}return ua.payload}cacheJwks(...[aa,ca]){let ua;if(ca!==void 0)ua=CognitoJwtVerifier.parseUserPoolId(ca).issuer;else if(Array.from(this.issuersConfig).length>1)throw new ParameterValidationError("userPoolId must be provided");const Sa=this.getIssuerConfig(ua);super.cacheJwks(aa,Sa.issuer)}}CognitoJwtVerifier.USER_POOL_ID_REGEX=/^(?<region>[a-z]{2}-(gov-)?[a-z]+-\d)_[a-zA-Z0-9]+$/;var __assign=function(){return __assign=Object.assign||function(aa){for(var ca,ua=1,Sa=arguments.length;ua<Sa;ua++){ca=arguments[ua];for(var hl in ca)Object.prototype.hasOwnProperty.call(ca,hl)&&(aa[hl]=ca[hl])}return aa},__assign.apply(this,arguments)};function __rest(la,aa){var ca={};for(var ua in la)Object.prototype.hasOwnProperty.call(la,ua)&&aa.indexOf(ua)<0&&(ca[ua]=la[ua]);if(la!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Sa=0,ua=Object.getOwnPropertySymbols(la);Sa<ua.length;Sa++)aa.indexOf(ua[Sa])<0&&Object.prototype.propertyIsEnumerable.call(la,ua[Sa])&&(ca[ua[Sa]]=la[ua[Sa]]);return ca}function __awaiter(la,aa,ca,ua){function Sa(hl){return hl instanceof ca?hl:new ca(function(pl){pl(hl)})}return new(ca||(ca=Promise))(function(hl,pl){function ml(xu){try{wc(ua.next(xu))}catch(ff){pl(ff)}}function gl(xu){try{wc(ua.throw(xu))}catch(ff){pl(ff)}}function wc(xu){xu.done?hl(xu.value):Sa(xu.value).then(ml,gl)}wc((ua=ua.apply(la,aa||[])).next())})}function __generator(la,aa){var ca={label:0,sent:function(){if(hl[0]&1)throw hl[1];return hl[1]},trys:[],ops:[]},ua,Sa,hl,pl=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return pl.next=ml(0),pl.throw=ml(1),pl.return=ml(2),typeof Symbol=="function"&&(pl[Symbol.iterator]=function(){return this}),pl;function ml(wc){return function(xu){return gl([wc,xu])}}function gl(wc){if(ua)throw new TypeError("Generator is already executing.");for(;pl&&(pl=0,wc[0]&&(ca=0)),ca;)try{if(ua=1,Sa&&(hl=wc[0]&2?Sa.return:wc[0]?Sa.throw||((hl=Sa.return)&&hl.call(Sa),0):Sa.next)&&!(hl=hl.call(Sa,wc[1])).done)return hl;switch(Sa=0,hl&&(wc=[wc[0]&2,hl.value]),wc[0]){case 0:case 1:hl=wc;break;case 4:return ca.label++,{value:wc[1],done:!1};case 5:ca.label++,Sa=wc[1],wc=[0];continue;case 7:wc=ca.ops.pop(),ca.trys.pop();continue;default:if(hl=ca.trys,!(hl=hl.length>0&&hl[hl.length-1])&&(wc[0]===6||wc[0]===2)){ca=0;continue}if(wc[0]===3&&(!hl||wc[1]>hl[0]&&wc[1]<hl[3])){ca.label=wc[1];break}if(wc[0]===6&&ca.label<hl[1]){ca.label=hl[1],hl=wc;break}if(hl&&ca.label<hl[2]){ca.label=hl[2],ca.ops.push(wc);break}hl[2]&&ca.ops.pop(),ca.trys.pop();continue}wc=aa.call(la,ca)}catch(xu){wc=[6,xu],Sa=0}finally{ua=hl=0}if(wc[0]&5)throw wc[1];return{value:wc[0]?wc[1]:void 0,done:!0}}}function __spreadArray(la,aa,ca){if(ca||arguments.length===2)for(var ua=0,Sa=aa.length,hl;ua<Sa;ua++)(hl||!(ua in aa))&&(hl||(hl=Array.prototype.slice.call(aa,0,ua)),hl[ua]=aa[ua]);return la.concat(hl||Array.prototype.slice.call(aa))}typeof SuppressedError=="function"&&SuppressedError;var define_process_env_default$2={};let fromEnv,CognitoIdentityProviderClient,SignUpCommand,ConfirmSignUp,ResendConfirmationCodeCommand,ForgotPasswordCommand,ConfirmForgotPasswordCommand,AdminGetUserCommand,InitiateAuthCommand,AdminCreateUserCommand,AdminDisableUserCommand,AdminEnableUserCommand,AdminDeleteUserCommand,RespondToAuthChallengeCommand,AuthenticationDetails,CognitoUser,CognitoUserPool,CognitoUserSession,CognitoIdToken,CognitoAccessToken,CognitoRefreshToken;if(isNodeEnv$1){fromEnv=(await __vitePreload(()=>import("./index.browser-MeAKJq84.js"),__vite__mapDeps([26,19,27]))).fromEnv;const aa=await __vitePreload(()=>import("./index-GP_CVGV-.js"),__vite__mapDeps([28,29,27,19,30,1,18,5,9,16,11,14,15,10,20,21,17,4]));CognitoIdentityProviderClient=aa.CognitoIdentityProviderClient,SignUpCommand=aa.SignUpCommand,ConfirmSignUp=aa.ConfirmSignUpCommand,ResendConfirmationCodeCommand=aa.ResendConfirmationCodeCommand,ForgotPasswordCommand=aa.ForgotPasswordCommand,ConfirmForgotPasswordCommand=aa.ConfirmForgotPasswordCommand,AdminGetUserCommand=aa.AdminGetUserCommand,InitiateAuthCommand=aa.InitiateAuthCommand,AdminCreateUserCommand=aa.AdminCreateUserCommand,AdminDisableUserCommand=aa.AdminDisableUserCommand,AdminEnableUserCommand=aa.AdminEnableUserCommand,AdminDeleteUserCommand=aa.AdminDeleteUserCommand,RespondToAuthChallengeCommand=aa.RespondToAuthChallengeCommand;const ca=await __vitePreload(()=>import("./index-BHDiPh0o.js"),__vite__mapDeps([31,1,4,5]));AuthenticationDetails=ca.AuthenticationDetails,CognitoUser=ca.CognitoUser,CognitoUserPool=ca.CognitoUserPool,CognitoUserSession=ca.CognitoUserSession,CognitoIdToken=ca.CognitoIdToken,CognitoAccessToken=ca.CognitoAccessToken,CognitoRefreshToken=ca.CognitoRefreshToken}const defaultConfig$1=isNodeEnv$1?new Map().set("UserPoolId",define_process_env_default$2.COGNITO_USER_POOL_ID).set("ClientId",define_process_env_default$2.COGNITO_CLIENT_ID):new Map;function handleCognitoError(la,aa){var ca;const ua=sanitizeErrorMessage(la.message||"");switch(logger$3.error(`Cognito error in ${aa}: ${la.name} - ${ua}`,{errorName:la.name,errorCode:la.code,context:aa,statusCode:(ca=la.$metadata)===null||ca===void 0?void 0:ca.httpStatusCode}),la.name){case"UserNotFoundException":throw logger$3.debug(`User not found in context: ${aa}`),new UserNotFoundError$1("User account not found. Please check your email or sign up.");case"NotAuthorizedException":throw la.message&&la.message.includes("password")?(logger$3.debug(`Invalid password attempt in context: ${aa}`),new UnauthorisedError$1("Invalid password. Please try again.")):la.message&&la.message.includes("not confirmed")?(logger$3.debug(`User not confirmed in context: ${aa}`),new UserNotConfirmedError$1):(logger$3.debug(`Authentication failed in context: ${aa}`),new UnauthorisedError$1("Authentication failed. Please check your credentials."));case"UserNotConfirmedException":throw logger$3.debug(`User not confirmed in context: ${aa}`),new UserNotConfirmedError$1;case"PasswordResetRequiredException":throw logger$3.debug(`Password reset required in context: ${aa}`),new PasswordResetRequiredError$1;case"TooManyRequestsException":throw logger$3.warn(`Rate limit exceeded in context: ${aa}`),new TooManyRequestsError$1;case"TooManyFailedAttemptsException":throw logger$3.warn(`Too many failed attempts in context: ${aa}`),new TooManyRequestsError$1("Too many failed login attempts. Please try again later.");case"InvalidParameterException":throw logger$3.debug(`Invalid parameters in context: ${aa}`),new InvalidParameterError$1(sanitizeErrorMessage(la.message)||"Invalid parameters provided");case"ExpiredCodeException":throw logger$3.debug(`Expired code in context: ${aa}`),new ExpiredCodeError$1;case"CodeMismatchException":throw logger$3.debug(`Code mismatch in context: ${aa}`),new CodeMismatchError$1;case"UsernameExistsException":throw logger$3.debug(`Username exists in context: ${aa}`),new BadRequestError$4("An account with this email already exists.");case"InvalidPasswordException":throw logger$3.debug(`Invalid password format in context: ${aa}`),new BadRequestError$4("Password does not meet requirements. It must be at least 8 characters long and contain uppercase, lowercase, numbers, and special characters.");case"LimitExceededException":throw logger$3.warn(`Service limit exceeded in context: ${aa}`),new TooManyRequestsError$1("Service limit exceeded. Please try again later.");case"InternalErrorException":throw logger$3.error(`Internal Cognito error in context: ${aa}`),new Error("Authentication service is temporarily unavailable. Please try again later.");case"ResourceNotFoundException":throw logger$3.error(`Resource not found in context: ${aa}`),new Error("Authentication service configuration error. Please contact support.");case"AliasExistsException":throw logger$3.debug(`Alias exists in context: ${aa}`),new BadRequestError$4("An account with this email already exists.");case"InvalidEmailRoleAccessPolicyException":throw logger$3.error(`Invalid email role access policy in context: ${aa}`),new Error("Email service configuration error. Please contact support.");case"UserLambdaValidationException":throw logger$3.error(`User lambda validation error in context: ${aa}`),new BadRequestError$4("User validation failed. Please check your input and try again.");case"UnsupportedUserStateException":throw logger$3.debug(`Unsupported user state in context: ${aa}`),new UserNotConfirmedError$1("User account is in an unsupported state. Please contact support.");case"MFAMethodNotFoundException":throw logger$3.debug(`MFA method not found in context: ${aa}`),new BadRequestError$4("MFA method not found. Please set up MFA and try again.");case"CodeDeliveryFailureException":throw logger$3.error(`Code delivery failure in context: ${aa}`),new Error("Unable to deliver verification code. Please try again later.");case"DuplicateProviderException":throw logger$3.error(`Duplicate provider in context: ${aa}`),new BadRequestError$4("Authentication provider already exists.");case"EnableSoftwareTokenMFAException":throw logger$3.debug(`Software token MFA required in context: ${aa}`),new BadRequestError$4("Software token MFA setup required.");case"ForbiddenException":throw logger$3.warn(`Forbidden access in context: ${aa}`),new UnauthorisedError$1("Access forbidden. Please check your permissions.");case"GroupExistsException":throw logger$3.debug(`Group exists in context: ${aa}`),new BadRequestError$4("Group already exists.");case"InvalidLambdaResponseException":throw logger$3.error(`Invalid lambda response in context: ${aa}`),new Error("Authentication service error. Please try again later.");case"InvalidOAuthFlowException":throw logger$3.error(`Invalid OAuth flow in context: ${aa}`),new BadRequestError$4("Invalid OAuth flow. Please try again.");case"InvalidSmsRoleAccessPolicyException":throw logger$3.error(`Invalid SMS role access policy in context: ${aa}`),new Error("SMS service configuration error. Please contact support.");case"InvalidSmsRoleTrustRelationshipException":throw logger$3.error(`Invalid SMS role trust relationship in context: ${aa}`),new Error("SMS service configuration error. Please contact support.");case"InvalidUserPoolConfigurationException":throw logger$3.error(`Invalid user pool configuration in context: ${aa}`),new Error("Authentication service configuration error. Please contact support.");case"PreconditionNotMetException":throw logger$3.debug(`Precondition not met in context: ${aa}`),new BadRequestError$4("Precondition not met. Please check your request and try again.");case"ScopeDoesNotExistException":throw logger$3.error(`Scope does not exist in context: ${aa}`),new BadRequestError$4("Invalid scope. Please check your request.");case"UnexpectedLambdaException":throw logger$3.error(`Unexpected lambda exception in context: ${aa}`),new Error("Authentication service error. Please try again later.");case"UserImportInProgressException":throw logger$3.warn(`User import in progress in context: ${aa}`),new TooManyRequestsError$1("User import in progress. Please try again later.");case"UserPoolTaggingException":throw logger$3.error(`User pool tagging exception in context: ${aa}`),new Error("Authentication service configuration error. Please contact support.");default:throw logger$3.error(`Unhandled Cognito error: ${la.name}`,{errorName:la.name,errorCode:la.code,context:aa}),new Error(`Authentication error: ${sanitizeErrorMessage(la.message)||"An unexpected error occurred"}`)}}function sanitizeErrorMessage(la){return la?la.replace(/password/gi,"[REDACTED]").replace(/token/gi,"[REDACTED]").replace(/secret/gi,"[REDACTED]").replace(/key/gi,"[REDACTED]").replace(/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,"[EMAIL_REDACTED]").replace(/\b[A-Fa-f0-9]{32,}\b/g,"[TOKEN_REDACTED]").replace(/\b\d{4,}\b/g,"[NUMBER_REDACTED]"):""}class CognitoAuth{constructor(aa){this.config=aa||defaultConfig$1;const ca=this.config.get("UserPoolId");ca&&(this.userPool=new CognitoUserPool({UserPoolId:ca,ClientId:this.fetchClientId()}))}fetchUserPoolId(){return this.fetchConfig("UserPoolId")}fetchClientId(){return this.fetchConfig("ClientId")}fetchConfig(aa){const ca=this.config.get(aa);if(ca)return ca;throw new Error(`${aa} is not set`)}async signUp(aa,ca,ua,Sa,hl,pl,ml){const gl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),wc=[{Name:"email",Value:ua},{Name:"name",Value:ua},{Name:"given_name",Value:aa},{Name:"family_name",Value:ca}];hl&&hl.forEach((jf,Uf)=>{wc.push({Name:Uf,Value:jf})});const xu={ClientId:this.config.get("ClientId"),Username:ua,Password:Sa,UserAttributes:wc,ValidationData:wc},ff=new SignUpCommand(xu);try{logger$3.debug(`Attempting signup for user: ${ua}`);const jf=await gl.send(ff);if(jf.$metadata.httpStatusCode==200){logger$3.info(`Signup successful for user: ${ua}`);const Uf=await ensureUser(ua,aa,ca,pl,"Active"),rp={username:ua,firstName:aa,lastName:ca,id:Uf.id,systemUserInfo:jf.UserSub};ml(rp)}else throw logger$3.error(`Signup failed with HTTP status ${jf.$metadata.httpStatusCode}`,{username:ua,statusCode:jf.$metadata.httpStatusCode}),new BadRequestError$4(`Signup failed with status ${jf.$metadata.httpStatusCode}`)}catch(jf){if(jf instanceof BadRequestError$4)throw jf;logger$3.error(`Signup error for user ${ua}:`,{errorName:jf.name,errorMessage:sanitizeErrorMessage(jf.message)}),handleCognitoError(jf,"signUp")}}async confirmSignup(aa,ca,ua){try{const Sa=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),hl=new ConfirmSignUp({ClientId:this.config.get("ClientId"),Username:aa,ConfirmationCode:ca});await Sa.send(hl)}catch(Sa){logger$3.error(`Failed to confirm signup: ${Sa.message}`),handleCognitoError(Sa,"confirmSignup")}}async resendConfirmationCode(aa,ca){try{const ua=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Sa=new ResendConfirmationCodeCommand({ClientId:this.config.get("ClientId"),Username:aa});await ua.send(Sa)}catch(ua){logger$3.error(`Failed to resend confirmation code: ${ua.message}`),handleCognitoError(ua,"resendConfirmationCode")}}async forgotPassword(aa,ca){try{const ua=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Sa=new ForgotPasswordCommand({ClientId:this.fetchClientId(),Username:aa});await ua.send(Sa)}catch(ua){logger$3.error(`Forgot password failed for ${aa}: ${sanitizeErrorMessage(ua.message)}`),handleCognitoError(ua,"forgotPassword")}}async confirmForgotPassword(aa,ca,ua,Sa){try{const hl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),pl=new ConfirmForgotPasswordCommand({ClientId:this.fetchClientId(),Username:aa,ConfirmationCode:ca,Password:ua});await hl.send(pl)}catch(hl){logger$3.error(`Confirm forgot password failed for ${aa}: ${sanitizeErrorMessage(hl.message)}`),handleCognitoError(hl,"confirmForgotPassword")}}async login(aa,ca,ua,Sa){if(define_process_env_default$2.COGNITO_USER_POOL_ID&&define_process_env_default$2.COGNITO_CLIENT_ID){const pl=new CognitoUser({Username:aa,Pool:this.fetchUserPool()}),ml=new AuthenticationDetails({Username:aa,Password:ca});let gl,wc;for(pl.authenticateUser(ml,{onSuccess:xu=>{gl=xu},onFailure:xu=>{logger$3.debug(`Cognito authentication failed for user ${aa}:`,{errorName:xu.name,errorMessage:sanitizeErrorMessage(xu.message)}),wc=xu},mfaRequired:(xu,ff)=>{logger$3.info(`MFA required for user ${aa}: ${xu}`),wc=new Error("MFA authentication required")},newPasswordRequired:(xu,ff)=>{logger$3.info(`New password required for user ${aa}`),wc=new PasswordResetRequiredError$1("New password required. Please reset your password.")}});gl===void 0&&wc===void 0;)await sleepMilliseconds$1(100);if(wc){if(wc instanceof PasswordResetRequiredError$1)throw wc;logger$3.error(`Login failed for user ${aa}:`,{errorName:wc.name,errorMessage:sanitizeErrorMessage(wc.message)}),handleCognitoError(wc,"login")}if(gl){const xu=gl.getIdToken(),ff=xu.getJwtToken(),jf=xu.decodePayload(),Uf=jf.given_name||jf.name||"",rp=jf.family_name||"",np=jf["cognito:groups"];let qm=await findUserByEmail(aa,ua);qm||(qm=await ensureUser(aa,Uf,rp,ua));const Vm=qm.lookup("id");np&&await ensureUserRoles(Vm,np,ua);const eg=gl.getAccessToken().getJwtToken(),tg=gl.getRefreshToken().getToken(),ig={sessionId:(await ensureUserSession(Vm,ff,eg,tg,ua)).lookup("id"),userId:Vm,authToken:ff,idToken:ff,accessToken:eg,refreshToken:tg,systemSesionInfo:gl};Sa(ig)}else throw logger$3.error(`Login failed for ${aa} - no result received`),new UnauthorisedError$1("Login failed. Please try again.")}else{let pl=await findUserByEmail(aa,ua);pl||(logger$3.warn(`User ${aa} not found in local store`),pl=await ensureUser(aa,"","",ua));const ml=new CognitoUser({Username:aa,Pool:this.fetchUserPool()}),gl=new AuthenticationDetails({Username:aa,Password:ca});let wc,xu;for(ml.authenticateUser(gl,{onSuccess:ff=>{wc=ff},onFailure:ff=>{logger$3.debug(`Cognito authentication failed for user ${aa}:`,{errorName:ff.name,errorMessage:sanitizeErrorMessage(ff.message)}),xu=ff},mfaRequired:(ff,jf)=>{logger$3.info(`MFA required for user ${aa}: ${ff}`),xu=new Error("MFA authentication required")},newPasswordRequired:(ff,jf)=>{logger$3.info(`New password required for user ${aa}`),xu=new PasswordResetRequiredError$1("New password required. Please reset your password.")}});wc===void 0&&xu===void 0;)await sleepMilliseconds$1(100);if(xu){if(xu instanceof PasswordResetRequiredError$1)throw xu;logger$3.error(`Login failed for user ${aa}:`,{errorName:xu.name,errorMessage:sanitizeErrorMessage(xu.message)}),handleCognitoError(xu,"login")}if(wc){const ff=pl.lookup("id"),jf=wc.getIdToken().getJwtToken(),Uf=wc.getAccessToken().getJwtToken(),rp=wc.getRefreshToken().getToken(),qm={sessionId:(await ensureUserSession(ff,jf,Uf,rp,ua)).lookup("id"),userId:ff,authToken:jf,idToken:jf,accessToken:Uf,refreshToken:rp,systemSesionInfo:wc};Sa(qm)}else throw logger$3.error(`Login failed for ${aa} - no result received`),new UnauthorisedError$1("Login failed. Please try again.")}}async logout(aa,ca,ua){try{const Sa=await findUser(aa.userId,ca);if(!Sa){logger$3.warn(`User ${aa.userId} not found during logout`),ua&&ua(!0);return}const hl=new CognitoUser({Username:Sa.lookup("email"),Pool:this.fetchUserPool()});let pl=!1,ml;const gl=new CognitoUserSession({IdToken:new CognitoIdToken({IdToken:aa.idToken}),AccessToken:new CognitoAccessToken({AccessToken:aa.accessToken}),RefreshToken:new CognitoRefreshToken({RefreshToken:aa.refreshToken})});for(hl.setSignInUserSession(gl),hl.globalSignOut({onSuccess:function(){pl=!0},onFailure:function(wc){pl=!0,logger$3.error(`Cognito signOut error for user ${aa.userId}:`,{errorName:wc.name,errorMessage:sanitizeErrorMessage(wc.message)}),ml=wc}});!pl;)await sleepMilliseconds$1(100);ml&&logger$3.error(`Error during Cognito logout for user ${aa.userId}: ${ml.message}`),logger$3.debug(`Successfully logged out user ${aa.userId}`),ua&&ua(!0)}catch(Sa){throw logger$3.error(`Logout failed for user ${aa.userId}: ${Sa.message}`),ua&&ua(!1),Sa}}async changePassword(aa,ca,ua,Sa){const hl=await findUser(aa.userId,Sa);if(!hl)return logger$3.warn(`User ${aa.userId} not found for password-change`),!1;const pl=hl.lookup("email"),ml=new CognitoUser({Username:pl,Pool:this.fetchUserPool()}),gl=new CognitoUserSession({IdToken:new CognitoIdToken({IdToken:aa.idToken}),AccessToken:new CognitoAccessToken({AccessToken:aa.accessToken}),RefreshToken:new CognitoRefreshToken({RefreshToken:aa.refreshToken})});ml.setSignInUserSession(gl);let wc=!1,xu;for(ml.changePassword(ua,ca,(ff,jf)=>{ff?(wc=!0,xu=ff):wc=!0});!wc;)await sleepMilliseconds$1(100);return xu?(logger$3.warn(`Failed to change the password for ${pl} - ${xu.message}`),!1):!0}fetchUserPool(){if(this.userPool)return this.userPool;throw new Error("UserPool not initialized")}async verifyToken(aa){try{const ua=await CognitoJwtVerifier.create({userPoolId:this.fetchUserPoolId(),tokenUse:"id",clientId:this.fetchClientId()}).verify(aa);logger$3.debug(`Decoded JWT for ${ua.email}`)}catch(ca){throw logger$3.error("Token verification failed:",{errorName:ca.name,errorMessage:sanitizeErrorMessage(ca.message)}),ca.message&&ca.message.includes("expired")?new UnauthorisedError$1("Token has expired. Please login again."):ca.message&&ca.message.includes("invalid")?new UnauthorisedError$1("Invalid token format."):ca.message&&ca.message.includes("not before")?new UnauthorisedError$1("Token is not yet valid."):ca.message&&ca.message.includes("audience")?new UnauthorisedError$1("Token audience mismatch."):new UnauthorisedError$1(`Token verification failed: ${sanitizeErrorMessage(ca.message)||"Invalid token"}`)}}async getUser(aa,ca){const ua=await findUser(aa,ca);if(!ua)throw new UserNotFoundError$1(`User ${aa} not found in local database`);const Sa=ua.lookup("email"),hl=ua.lookup("firstName"),pl=ua.lookup("lastName");if(define_process_env_default$2.COGNITO_USER_POOL_ID&&define_process_env_default$2.COGNITO_CLIENT_ID&&Sa)try{const gl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),wc=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),Username:Sa}),xu=await gl.send(wc);return{id:aa,username:Sa,firstName:hl,lastName:pl,systemUserInfo:{localUser:ua,cognitoData:{userAttributes:xu.UserAttributes,userCreateDate:xu.UserCreateDate,userLastModifiedDate:xu.UserLastModifiedDate,userStatus:xu.UserStatus,enabled:xu.Enabled,preferredMfaSetting:xu.PreferredMfaSetting,userMFASettingList:xu.UserMFASettingList}}}}catch(gl){return logger$3.warn(`Failed to get Cognito user info for ${Sa}, using local data only:`,{errorName:gl.name,errorMessage:sanitizeErrorMessage(gl.message)}),{id:aa,username:Sa,firstName:hl,lastName:pl,systemUserInfo:ua}}else return{id:aa,username:Sa||aa,firstName:hl,lastName:pl,systemUserInfo:ua}}async getUserByEmail(aa,ca){const ua=await findUserByEmail(aa,ca);if(!ua)throw new UserNotFoundError$1(`User with email ${aa} not found in local database`);const Sa=ua.lookup("id"),hl=ua.lookup("firstName"),pl=ua.lookup("lastName");if(define_process_env_default$2.COGNITO_USER_POOL_ID&&define_process_env_default$2.COGNITO_CLIENT_ID)try{const gl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),wc=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),ClientId:this.fetchClientId(),Username:aa}),xu=await gl.send(wc);return{id:Sa,username:aa,firstName:hl,lastName:pl,systemUserInfo:{localUser:ua,cognitoData:{userAttributes:xu.UserAttributes,userCreateDate:xu.UserCreateDate,userLastModifiedDate:xu.UserLastModifiedDate,userStatus:xu.UserStatus,enabled:xu.Enabled,preferredMfaSetting:xu.PreferredMfaSetting,userMFASettingList:xu.UserMFASettingList}}}}catch(gl){return console.log(`Failed to get Cognito user info for email ${aa}, using local data only:`,{errorName:gl.name,errorMessage:sanitizeErrorMessage(gl.message)}),{id:Sa,username:aa,firstName:hl,lastName:pl,systemUserInfo:ua}}else return{id:Sa,username:aa,firstName:hl,lastName:pl,systemUserInfo:ua}}async refreshToken(aa,ca){try{const ua=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Sa=new InitiateAuthCommand({AuthFlow:"REFRESH_TOKEN_AUTH",ClientId:this.fetchClientId(),AuthParameters:{REFRESH_TOKEN:aa}}),hl=await ua.send(Sa);if(!hl.AuthenticationResult)throw new UnauthorisedError$1("Token refresh failed");const pl=hl.AuthenticationResult.IdToken,ml=hl.AuthenticationResult.AccessToken,gl=hl.AuthenticationResult.RefreshToken||aa,xu=JSON.parse(atob(pl.split(".")[1])).email;let ff=await findUserByEmail(xu,ca);ff||(ff=await ensureUser(xu,"","",ca));const jf=ff.lookup("id");return{sessionId:(await ensureUserSession(jf,pl,ml,gl,ca)).lookup("id"),userId:jf,authToken:pl,idToken:pl,accessToken:ml,refreshToken:gl,systemSesionInfo:hl.AuthenticationResult}}catch(ua){throw logger$3.error(`Refresh token operation failed: ${ua.message}`),ua.name==="NotAuthorizedException"?new UnauthorisedError$1("Invalid or expired refresh token"):(handleCognitoError(ua,"refreshToken"),ua)}}async inviteUser(aa,ca,ua,Sa,hl,pl,ml){var gl;try{const wc=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),xu=[{Name:"email",Value:aa},{Name:"email_verified",Value:"true"},{Name:"given_name",Value:ca},{Name:"family_name",Value:ua}];Sa&&Sa.forEach((rp,np)=>{xu.push({Name:np,Value:String(rp)})});let ff=!1;try{const rp=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),Username:aa});await wc.send(rp),ff=!0,logger$3.debug(`User ${aa} already exists, will resend invitation`)}catch(rp){if(rp.name!=="UserNotFoundException")throw rp;logger$3.debug(`User ${aa} does not exist, will create new user`)}const jf=new AdminCreateUserCommand(Object.assign({UserPoolId:this.fetchUserPoolId(),Username:aa,UserAttributes:xu,DesiredDeliveryMediums:["EMAIL"],TemporaryPassword:generateUrlSafePassword$1()},ff?{MessageAction:"RESEND"}:{}));logger$3.debug(`Attempting to invite user: ${aa}`);const Uf=await wc.send(jf);if(Uf.$metadata.httpStatusCode===200){logger$3.info(`User invitation successful for: ${aa}`);const np=(await ensureUser(aa,ca,ua,pl,"Invited")).lookup("id");await ensureUserRoles(np,[hl||"user"],pl);const qm={email:aa,firstName:ca,lastName:ua,invitationId:(gl=Uf.User)===null||gl===void 0?void 0:gl.Username,systemInvitationInfo:Uf};ml(qm)}else throw logger$3.error(`User invitation failed with HTTP status ${Uf.$metadata.httpStatusCode}`,{email:aa,statusCode:Uf.$metadata.httpStatusCode}),new BadRequestError$4(`User invitation failed with status ${Uf.$metadata.httpStatusCode}`)}catch(wc){if(wc instanceof BadRequestError$4)throw wc;logger$3.error(`User invitation error for ${aa}:`,{errorName:wc.name,errorMessage:sanitizeErrorMessage(wc.message)}),handleCognitoError(wc,"inviteUser")}}async resendInvitation(aa,ca){try{const ua=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"});try{const pl=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),Username:aa});await ua.send(pl)}catch(pl){throw pl.name==="UserNotFoundException"?new UserNotFoundError$1(`User ${aa} not found. Cannot resend invitation.`):pl}const Sa=new AdminCreateUserCommand({UserPoolId:this.fetchUserPoolId(),Username:aa,DesiredDeliveryMediums:["EMAIL"],MessageAction:"RESEND"});logger$3.debug(`Attempting to resend invitation for user: ${aa}`);const hl=await ua.send(Sa);if(hl.$metadata.httpStatusCode===200)logger$3.info(`Invitation resent successfully for: ${aa}`);else throw logger$3.error(`Failed to resend invitation with HTTP status ${hl.$metadata.httpStatusCode}`,{email:aa,statusCode:hl.$metadata.httpStatusCode}),new BadRequestError$4(`Failed to resend invitation with status ${hl.$metadata.httpStatusCode}`)}catch(ua){if(ua instanceof BadRequestError$4||ua instanceof UserNotFoundError$1)throw ua;logger$3.error(`Resend invitation error for ${aa}:`,{errorName:ua.name,errorMessage:sanitizeErrorMessage(ua.message)}),handleCognitoError(ua,"resendInvitation")}}async acceptInvitation(aa,ca,ua,Sa){try{const hl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),pl=new InitiateAuthCommand({AuthFlow:"USER_PASSWORD_AUTH",ClientId:this.fetchClientId(),AuthParameters:{USERNAME:aa,PASSWORD:ca}}),ml=await hl.send(pl);if(ml.ChallengeName==="NEW_PASSWORD_REQUIRED"){const gl=new RespondToAuthChallengeCommand({ClientId:this.fetchClientId(),ChallengeName:"NEW_PASSWORD_REQUIRED",Session:ml.Session,ChallengeResponses:{USERNAME:aa,NEW_PASSWORD:ua}});await hl.send(gl),logger$3.info(`User invitation accepted successfully for: ${aa}`)}else throw new Error(`Unexpected challenge: ${ml.ChallengeName}`)}catch(hl){logger$3.error(`Accept invitation failed for ${aa}: ${sanitizeErrorMessage(hl.message)}`),handleCognitoError(hl,"acceptInvitation")}}async callback(aa,ca,ua){try{if(!isNodeEnv$1)throw new Error("Callback authentication is only supported in Node.js environment");const Sa=this.fetchConfig("ClientId"),hl=define_process_env_default$2.AWS_REGION||"us-east-1",pl=define_process_env_default$2.COGNITO_REDIRECT_URI||"http://localhost:3000/auth/callback",gl=`https://${define_process_env_default$2.COGNITO_HOSTED_DOMAIN}.auth.${hl}.amazoncognito.com/oauth2/token`,wc=new URLSearchParams({grant_type:"authorization_code",client_id:Sa,code:aa,redirect_uri:pl});logger$3.debug("Exchanging authorization code for tokens via OAuth2 endpoint"),console.log("te",gl,wc.toString());const xu=await fetch(gl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:wc.toString()});if(!xu.ok){const O1=await xu.text();throw new Error(`Token exchange failed: ${xu.status} ${O1}`)}const ff=await xu.json();if(!ff.access_token||!ff.id_token||!ff.refresh_token)throw new Error("Missing required tokens in response");const{access_token:jf,id_token:Uf,refresh_token:rp}=ff,np=this.decodeJwtPayload(Uf),qm=np.email,Vm=np.given_name||np.name||"",eg=np.family_name||"",tg=np["cognito:groups"];if(!qm)throw new Error("Email not found in ID attributes");let rg=await findUserByEmail(qm,ca);rg||(rg=await ensureUser(qm,Vm,eg,ca));const ig=rg.lookup("id");tg&&await ensureUserRoles(ig,tg,ca);const R1={sessionId:(await ensureUserSession(ig,Uf,jf,rp,ca)).lookup("id"),userId:ig,authToken:Uf,idToken:Uf,accessToken:jf,refreshToken:rp,systemSesionInfo:ff};logger$3.info(`Auth callback successful for user ${qm}`),ua(R1)}catch(Sa){console.log(Sa),logger$3.error(`Auth callback failed: ${sanitizeErrorMessage(Sa.message)}`),handleCognitoError(Sa,"callback")}}decodeJwtPayload(aa){try{const ua=aa.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),Sa=decodeURIComponent(atob(ua).split("").map(hl=>"%"+("00"+hl.charCodeAt(0).toString(16)).slice(-2)).join(""));return JSON.parse(Sa)}catch(ca){throw logger$3.error(`Failed to decode JWT payload: ${ca}`),new Error("Invalid JWT token")}}async deleteUser(aa,ca){try{const ua=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),Sa=new AdminDeleteUserCommand({UserPoolId:this.fetchUserPoolId(),Username:aa});logger$3.debug(`Attempting to delete user: ${aa}`),await ua.send(Sa),logger$3.info(`User deleted successfully: ${aa}`)}catch(ua){logger$3.error(`Failed to delete user ${aa}:`,{errorName:ua.name,errorMessage:sanitizeErrorMessage(ua.message)}),handleCognitoError(ua,"deleteUser")}}async disableUser(aa,ca){try{const ua=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),Sa=new AdminDisableUserCommand({UserPoolId:this.fetchUserPoolId(),Username:aa});logger$3.debug(`Attempting to disable user: ${aa}`),await ua.send(Sa),logger$3.info(`User disabled successfully: ${aa}`)}catch(ua){logger$3.error(`Failed to disable user ${aa}:`,{errorName:ua.name,errorMessage:sanitizeErrorMessage(ua.message)}),handleCognitoError(ua,"disableUser")}}async enableUser(aa,ca){try{const ua=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),Sa=new AdminEnableUserCommand({UserPoolId:this.fetchUserPoolId(),Username:aa});logger$3.debug(`Attempting to enable user: ${aa}`),await ua.send(Sa),logger$3.info(`User enabled successfully: ${aa}`)}catch(ua){logger$3.error(`Failed to enable user ${aa}:`,{errorName:ua.name,errorMessage:sanitizeErrorMessage(ua.message)}),handleCognitoError(ua,"enableUser")}}}const CoreAuthModuleName=makeCoreModuleName$1("auth"),auth=`module ${CoreAuthModuleName}
|
|
17432
|
+
${la}`)}async function preprocessStep(la,aa){if(la.startsWith("{")){const ua=(await parseStatement$1(la)).pattern.crudMap;if(ua){aa.resetTemplateMappings();const Sa=ua.name;return ua.body&&ua.body.attributes.forEach(hl=>{var pl,ml;const gl=(ml=(pl=hl.value)===null||pl===void 0?void 0:pl.$cstNode)===null||ml===void 0?void 0:ml.text;gl&&aa.setTemplateMapping(hl.name,gl)}),Sa}else throw new Error(`Invalid step - ${la}`)}else return la}async function handleOpenApiEvent(la,aa){const ca=await invokeOpenApiEvent(la.moduleName,la.name,la.attributesAsObject());aa.setLastResult(ca)}async function evaluateUpsert(la,aa){aa.setInUpsertMode(!0);try{await evaluateCrudMap(la,aa)}finally{aa.setInUpsertMode(!1)}}async function evaluateForEach(la,aa){const ca=la.var;await evaluatePattern(la.src,aa);const ua=aa.getLastResult();if(ua instanceof Array&&ua.length>0){const Sa=Environment.from(aa),hl=new Array;for(let pl=0;pl<ua.length;++pl)Sa.bind(ca,ua[pl]),await evaluateStatements(la.statements,Sa),hl.push(Sa.getLastResult());aa.setLastResult(hl)}else aa.setLastResult(EmptyResult)}async function evaluateIf(la,aa){await evaluateExpression(la.cond,aa),aa.getLastResult()?await evaluateStatements(la.statements,aa):la.else!==void 0&&await evaluateStatements(la.else.statements,aa)}async function evaluateDeleteHelper(la,aa,ca){const ua=Environment.from(ca).setInDeleteMode(!0);await evaluatePattern(la,ua),await maybeDeleteQueriedInstances(ua,ca,aa)}async function maybeDeleteQueriedInstances(la,aa,ca=!1){const ua=la.getLastResult();let Sa=Resolver.Default;if(ua instanceof Array)if(ua.length>0&&isEntityInstance$1(ua[0])){Sa=await getResolverForPath(ua[0].name,ua[0].moduleName,la);const hl=new Array;for(let pl=0;pl<ua.length;++pl){await runPreDeleteEvents(ua[pl],aa);const ml=await Sa.deleteInstance(ua[pl],ca);await runPostDeleteEvents(ua[pl],aa),hl.push(ml)}la.setLastResult(hl)}else la.setLastResult(ua);else if(isEntityInstance$1(ua)){Sa=await getResolverForPath(ua.name,ua.moduleName,la),await runPreDeleteEvents(ua,aa);const hl=await Sa.deleteInstance(ua,ca);await runPostDeleteEvents(ua,aa),la.setLastResult(hl)}aa.setLastResult(la.getLastResult())}async function evaluateDelete(la,aa){await evaluateDeleteHelper(la.pattern,!1,aa)}async function evaluatePurge(la,aa){await evaluateDeleteHelper(la.pattern,!0,aa)}async function evaluateExpression(la,aa){let ca=EmptyResult;if(isBinExpr$1(la)){await evaluateExpression(la.e1,aa);const ua=aa.getLastResult();if(la.op=="or"){if(ua)return;await evaluateExpression(la.e2,aa);return}else if(la.op=="and"){if(!ua)return;await evaluateExpression(la.e2,aa);return}if(ua==null){aa.setLastResult(void 0);return}await evaluateExpression(la.e2,aa);const Sa=aa.getLastResult();if(Sa==null){aa.setLastResult(void 0);return}switch(la.op){case"+":ca=ua+Sa;break;case"-":ca=ua-Sa;break;case"*":ca=ua*Sa;break;case"/":ca=ua/Sa;break;case"==":ca=ua==Sa;break;case"<":ca=ua<Sa;break;case">":ca=ua>Sa;break;case"<=":ca=ua<=Sa;break;case">=":ca=ua>=Sa;break;case"<>":case"!=":ca=ua!=Sa;break;case"like":ca=ua.startsWith(Sa);break;case"in":ca=Sa.find(hl=>{});break;default:throw new Error(`Unrecognized binary operator: ${la.op}`)}}else if(isNegExpr$1(la))await evaluateExpression(la.ne,aa),ca=-1*aa.getLastResult();else if(isGroup$2(la))await evaluateExpression(la.ge,aa),ca=aa.getLastResult();else if(isLiteral$1(la)){await evaluateLiteral(la,aa);return}else isNotExpr$1(la)&&(await evaluateExpression(la.ne,aa),ca=!aa.getLastResult());aa.setLastResult(ca)}async function getRef(la,aa,ca){return Instance$1.IsInstance(aa)?aa.lookup(la):aa instanceof Map?aa.get(la):aa instanceof Object?aa[la]:isPath$1(aa)?await getRef(la,await dereferencePath(aa,ca),ca):void 0}async function followReference(la,aa){const ca=splitRefs$1(aa);let ua=EmptyResult,Sa=la;for(let hl=0;hl<ca.length;++hl){const pl=ca[hl],ml=await getRef(pl,Sa,la);if(ml===void 0)return EmptyResult;ua=ml,Sa=ua}return ua}async function dereferencePath(la,aa){const ca=fqNameFromPath$1(la);if(ca===void 0)throw new Error(`Failed to deduce entry-name from path - ${la}`);const ua=new Environment("path-deref",aa);await parseAndEvaluateStatement(`{${ca} {${PathAttributeNameQuery$1} "${la}"}}`,aa.getAuthContextUserId(),ua);const Sa=ua.getLastResult();if(Sa&&Sa instanceof Array&&Sa.length>0)return Sa[0]}async function applyFn(la,aa,ca){const ua=la.name;if(ua!==void 0){let Sa=null;if(la.args!==void 0){Sa=new Array;for(let pl=0;pl<la.args.length;++pl){const ml=la.args[pl];isLiteral$1(ml)?await evaluateLiteral(ml,aa):await evaluateExpression(ml,aa),Sa.push(aa.getLastResult())}Sa.push(aa)}const hl=await invokeModuleFn(ua,Sa,ca);aa.setLastResult(hl)}}async function realizeArray(la,aa){const ca=new Array;for(let ua=0;ua<la.vals.length;++ua)await evaluateStatement(la.vals[ua],aa),ca.push(aa.getLastResult());aa.setLastResult(ca)}async function realizeMap(la,aa){const ca=new Map;for(let ua=0;ua<la.entries.length;++ua){const Sa=la.entries[ua],hl=getMapKey(Sa.key);await evaluateExpression(Sa.value,aa),ca.set(hl,aa.getLastResult())}aa.setLastResult(Object.fromEntries(ca.entries()))}async function callPostEventOnSubscription(la,aa,ca){const ua=ca===void 0,Sa=new Environment("onSubs.env");try{return await runPrePostEvents(la,!1,aa,Sa),ua&&await Sa.commitAllTransactions(),Sa.getLastResult()}catch(hl){await Sa.rollbackAllTransactions(),logger$3.error(`callPostEventOnSubscription failed for ${la} ${aa.getFqName()} - ${hl}`)}}async function runPrePostEvents(la,aa,ca,ua){const Sa=aa?ca.record.getPreTriggerInfo(la):ca.record.getPostTriggerInfo(la);if(Sa){const hl=nameToPath$1(Sa.eventName),pl=hl.hasModule()?hl.getModuleName():ca.record.moduleName,ml=makeInstance$1(pl,hl.getEntryName(),newInstanceAttributes$1().set(ca.record.name,ca)),gl=ua.getActiveAuthContext();gl&&ml.setAuthContext(gl);const wc=`${aa?"Pre":"Post"}-${CrudType$1[la]} ${ca.record.getFqName()}`,xu=jf=>{logger$3.debug(`${wc}: ${jf}`)},ff=jf=>{throw ua.hasHandlers()?jf:new Error(`${wc}: ${jf}`)};Sa.async?evaluate$1(ml,xu,bindAliasesForPrePost(ua,ca,wc)).catch(ff):await evaluate$1(ml,xu,bindAliasesForPrePost(ua,ca,wc)).catch(ff)}}function bindAliasesForPrePost(la,aa,ca){const ua=new Environment(`${ca}.env`,la),Sa=aa.getFqName();return ua.bind("this",aa),ua.bind(Sa,aa),ua.bind(aa.name,aa),ua}async function runPreCreateEvents(la,aa){await runPrePostEvents(CrudType$1.CREATE,!0,la,aa)}async function runPostCreateEvents(la,aa){la.requireAudit()&&await addCreateAudit(la.getPath(),aa),await runPrePostEvents(CrudType$1.CREATE,!1,la,aa)}async function runPreUpdateEvents(la,aa){await runPrePostEvents(CrudType$1.UPDATE,!0,la,aa)}async function runPostUpdateEvents(la,aa,ca){la.requireAudit()&&await addUpdateAudit(la.getPath(),aa,ca),await runPrePostEvents(CrudType$1.UPDATE,!1,la,ca)}async function runPreDeleteEvents(la,aa){await runPrePostEvents(CrudType$1.DELETE,!0,la,aa)}async function runPostDeleteEvents(la,aa){la.requireAudit()&&await addDeleteAudit(la.getPath(),la,aa),await runPrePostEvents(CrudType$1.DELETE,!1,la,aa)}async function fetchConfig(la){const aa=await parseAndEvaluateStatement(`{${la}? {}}`);if(aa&&aa!==null&&aa.length>0)return preprocessRawConfig(Object.fromEntries(aa[0].attributes))}const interpreter=Object.freeze(Object.defineProperty({__proto__:null,DocEventName,Environment,GlobalEnvironment,PatternHandler,callPostEventOnSubscription,get evaluate(){return evaluate$1},evaluateAsEvent,evaluateExpression,evaluatePattern,evaluateStatement,evaluateStatements,fetchConfig,handleAgentInvocation,handleOpenApiEvent,makeEventEvaluator,maybeBindStatementResultToAlias,maybeDeleteQueriedInstances,get parseAndEvaluateStatement(){return parseAndEvaluateStatement},restartFlow,runPostCreateEvents,runPostDeleteEvents,runPostUpdateEvents,setEvaluateFn,setParseAndEvaluateStatementFn},Symbol.toStringTag,{value:"Module"}));class JwtBaseError extends Error{}class FailedAssertionError extends JwtBaseError{constructor(aa,ca,ua){super(aa),this.failedAssertion={actual:ca,expected:ua}}}class JwtParseError extends JwtBaseError{constructor(aa,ca){const ua=ca!=null?`${aa}: ${ca}`:aa;super(ua)}}class ParameterValidationError extends JwtBaseError{}class JwtInvalidSignatureError extends JwtBaseError{}class JwtInvalidSignatureAlgorithmError extends FailedAssertionError{}class JwtInvalidClaimError extends FailedAssertionError{withRawJwt({header:aa,payload:ca}){return this.rawJwt={header:aa,payload:ca},this}}class JwtInvalidIssuerError extends JwtInvalidClaimError{}class JwtInvalidAudienceError extends JwtInvalidClaimError{}class JwtInvalidScopeError extends JwtInvalidClaimError{}class JwtExpiredError extends JwtInvalidClaimError{}class JwtNotBeforeError extends JwtInvalidClaimError{}class CognitoJwtInvalidGroupError extends JwtInvalidClaimError{}class CognitoJwtInvalidTokenUseError extends JwtInvalidClaimError{}class CognitoJwtInvalidClientIdError extends JwtInvalidClaimError{}class JwksValidationError extends JwtBaseError{}class JwkValidationError extends JwtBaseError{}class JwtWithoutValidKidError extends JwtBaseError{}class KidNotFoundInJwksError extends JwtBaseError{}class WaitPeriodNotYetEndedJwkError extends JwtBaseError{}class JwksNotAvailableInCacheError extends JwtBaseError{}class JwkInvalidUseError extends FailedAssertionError{}class JwkInvalidKtyError extends FailedAssertionError{}class FetchError extends JwtBaseError{constructor(aa,ca){super(`Failed to fetch ${aa}: ${ca}`)}}class NonRetryableFetchError extends FetchError{}class NotSupportedError extends JwtBaseError{}var NamedCurvesWebCrypto;(function(la){la.ES256="P-256",la.ES384="P-384",la.ES512="P-521"})(NamedCurvesWebCrypto||(NamedCurvesWebCrypto={}));const nodeWebCompat={fetch:async(la,aa,ca)=>{const ua=Number(aa?.responseTimeout);if(ua){const hl=new AbortController;setTimeout(()=>hl.abort(new FetchError(la,`Response time-out (after ${ua} ms.)`)),ua),aa={signal:hl.signal,...aa}}const Sa=await fetch(la,{...aa,body:ca}).catch(hl=>{throw new FetchError(la,hl.message)});if(Sa.status!==200)throw new NonRetryableFetchError(la,`Status code is ${Sa.status}, expected 200`);return Sa.arrayBuffer()},defaultFetchTimeouts:{response:3e3},transformJwkToKeyObjectSync:()=>{throw new NotSupportedError("Synchronously transforming a JWK into a key object is not supported in the browser")},transformJwkToKeyObjectAsync:(la,aa)=>{const ca=la.alg??aa;if(!ca)throw new JwtInvalidSignatureAlgorithmError("Missing alg on both JWK and JWT header",ca);const ua=ca.startsWith("RS")?{name:"RSASSA-PKCS1-v1_5",hash:`SHA-${ca.slice(2)}`}:ca.startsWith("ES")?{name:"ECDSA",namedCurve:NamedCurvesWebCrypto[ca]}:la.crv;return crypto.subtle.importKey("jwk",la,ua,!1,["verify"]).then(Sa=>({key:Sa,jwk:la}))},verifySignatureSync:()=>{throw new NotSupportedError("Synchronously verifying a JWT signature is not supported in the browser")},verifySignatureAsync:({jwsSigningInput:la,keyObject:aa,signature:ca,alg:ua})=>crypto.subtle.verify(ua.startsWith("RS")?{name:"RSASSA-PKCS1-v1_5"}:ua.startsWith("ES")?{name:"ECDSA",hash:`SHA-${ua.slice(2)}`}:{name:aa.jwk.crv},aa.key,bufferFromBase64url(ca),new TextEncoder().encode(la)),parseB64UrlString:la=>new TextDecoder().decode(bufferFromBase64url(la)),setTimeoutUnref:setTimeout.bind(void 0),transformPemToJwk:async(la,aa)=>{let ca;switch(aa){case"RS256":case"RS384":case"RS512":ca={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${aa.slice(2)}`};break;case"ES256":case"ES384":case"ES512":ca={name:"ECDSA",namedCurve:NamedCurvesWebCrypto[aa]};break;default:throw new JwtInvalidSignatureAlgorithmError("Unsupported signature algorithm",aa)}const ua=await crypto.subtle.importKey("spki",bufferFromBase64(new TextDecoder().decode(la).replace(/-----BEGIN PUBLIC KEY-----/,"").replace(/-----END PUBLIC KEY-----/,"").replace(/\s/g,"")),ca,!0,["verify"]);return crypto.subtle.exportKey("jwk",ua)}};function _bufferFromBase64(la){const aa=la.split("").reduce((ca,ua,Sa)=>Object.assign(ca,{[ua.charCodeAt(0)]:Sa}),{});return function(ca){ca=ca.replace(/={1,2}$/,"");let ua,Sa,hl,pl;return ca.match(/.{1,4}/g).reduce((ml,gl,wc)=>(ua=aa[gl.charCodeAt(0)],Sa=aa[gl.charCodeAt(1)],hl=aa[gl.charCodeAt(2)],pl=aa[gl.charCodeAt(3)],ml[3*wc]=ua<<2|Sa>>4,ml[3*wc+1]=(Sa&15)<<4|hl>>2,ml[3*wc+2]=(hl&3)<<6|pl,ml),new Uint8Array(ca.length*3/4))}}const bufferFromBase64url=_bufferFromBase64("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),bufferFromBase64=_bufferFromBase64("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),fetch$1=nodeWebCompat.fetch.bind(void 0);class SimpleFetcher{constructor(aa){this.defaultRequestOptions={timeout:nodeWebCompat.defaultFetchTimeouts.socketIdle,responseTimeout:nodeWebCompat.defaultFetchTimeouts.response,...aa?.defaultRequestOptions}}async fetch(aa,ca,ua){ca={...this.defaultRequestOptions,...ca};try{return await fetch$1(aa,ca,ua)}catch(Sa){if(Sa instanceof NonRetryableFetchError)throw Sa;return fetch$1(aa,ca,ua)}}}function isJsonObject(la){return typeof la=="object"&&!Array.isArray(la)&&la!==null}function safeJsonParse(la){return JSON.parse(la,(aa,ca)=>(typeof ca=="object"&&!Array.isArray(ca)&&ca!==null&&(delete ca.__proto__,delete ca.constructor),ca))}function assertStringEquals(la,aa,ca,ua=FailedAssertionError){if(!aa)throw new ua(`Missing ${la}. Expected: ${ca}`,aa,ca);if(typeof aa!="string")throw new ua(`${la} is not of type string`,aa,ca);if(ca!==aa)throw new ua(`${la} not allowed: ${aa}. Expected: ${ca}`,aa,ca)}function assertStringArrayContainsString(la,aa,ca,ua=FailedAssertionError){if(!aa)throw new ua(`Missing ${la}. ${expectationMessage(ca)}`,aa,ca);if(typeof aa!="string")throw new ua(`${la} is not of type string`,aa,ca);return assertStringArraysOverlap(la,aa,ca,ua)}function assertStringArraysOverlap(la,aa,ca,ua=FailedAssertionError){if(!aa)throw new ua(`Missing ${la}. ${expectationMessage(ca)}`,aa,ca);const Sa=new Set(Array.isArray(ca)?ca:[ca]);if(typeof aa=="string"&&(aa=[aa]),!Array.isArray(aa))throw new ua(`${la} is not an array`,aa,ca);if(!aa.some(pl=>{if(typeof pl!="string")throw new ua(`${la} includes elements that are not of type string`,aa,ca);return Sa.has(pl)}))throw new ua(`${la} not allowed: ${aa.join(", ")}. ${expectationMessage(ca)}`,aa,ca)}function expectationMessage(la){return Array.isArray(la)?la.length>1?`Expected one of: ${la.join(", ")}`:`Expected: ${la[0]}`:`Expected: ${la}`}function assertIsNotPromise(la,aa){if(la&&typeof la.then=="function")throw aa()}const optionalJwkFieldNames=["use","alg","kid","n","e","x","y","crv"],mandatoryJwkFieldNames=["kty"];function findJwkInJwks(la,aa){return la.keys.find(ca=>ca.kid!=null&&ca.kid===aa)}const parseJwks=function(la){let aa;try{const ca=new TextDecoder("utf8",{fatal:!0,ignoreBOM:!0}).decode(la);aa=safeJsonParse(ca)}catch(ca){throw new JwksValidationError(`JWKS could not be parsed as JSON: ${ca}`)}return assertIsJwks(aa),aa};function assertIsJwks(la){if(!la)throw new JwksValidationError("JWKS empty");if(!isJsonObject(la))throw new JwksValidationError("JWKS should be an object");if(!Object.keys(la).includes("keys"))throw new JwksValidationError("JWKS does not include keys");if(!Array.isArray(la.keys))throw new JwksValidationError("JWKS keys should be an array");for(const aa of la.keys)assertIsJwk(aa)}function assertIsSignatureJwk(la){assertStringArrayContainsString("JWK kty",la.kty,["EC","RSA","OKP"],JwkInvalidKtyError),la.kty==="EC"?assertIsEsSignatureJwk(la):la.kty==="RSA"?assertIsRsaSignatureJwk(la):la.kty==="OKP"&&assertIsEdDSASignatureJwk(la)}function assertIsEdDSASignatureJwk(la){if(la.use&&assertStringEquals("JWK use",la.use,"sig",JwkInvalidUseError),assertStringEquals("JWK kty",la.kty,"OKP",JwkInvalidKtyError),!la.crv)throw new JwkValidationError("Missing Curve (crv)");if(!la.x)throw new JwkValidationError("Missing X Coordinate (x)")}function assertIsEsSignatureJwk(la){if(la.use&&assertStringEquals("JWK use",la.use,"sig",JwkInvalidUseError),assertStringEquals("JWK kty",la.kty,"EC",JwkInvalidKtyError),!la.crv)throw new JwkValidationError("Missing Curve (crv)");if(!la.x)throw new JwkValidationError("Missing X Coordinate (x)");if(!la.y)throw new JwkValidationError("Missing Y Coordinate (y)")}function assertIsRsaSignatureJwk(la){if(la.use&&assertStringEquals("JWK use",la.use,"sig",JwkInvalidUseError),assertStringEquals("JWK kty",la.kty,"RSA",JwkInvalidKtyError),!la.n)throw new JwkValidationError("Missing modulus (n)");if(!la.e)throw new JwkValidationError("Missing exponent (e)")}function assertIsJwk(la){if(!la)throw new JwkValidationError("JWK empty");if(!isJsonObject(la))throw new JwkValidationError("JWK should be an object");for(const aa of mandatoryJwkFieldNames)if(typeof la[aa]!="string")throw new JwkValidationError(`JWK ${aa} should be a string`);for(const aa of optionalJwkFieldNames)if(aa in la&&typeof la[aa]!="string")throw new JwkValidationError(`JWK ${aa} should be a string`)}function isJwks(la){try{return assertIsJwks(la),!0}catch{return!1}}function isJwk(la){try{return assertIsJwk(la),!0}catch{return!1}}class SimplePenaltyBox{constructor(aa){this.waitingUris=new Map,this.waitSeconds=aa?.waitSeconds??10}async wait(aa){if(this.waitingUris.has(aa))throw new WaitPeriodNotYetEndedJwkError("Not allowed to fetch JWKS yet, still waiting for back off period to end")}release(aa){const ca=this.waitingUris.get(aa);ca&&(clearTimeout(ca),this.waitingUris.delete(aa))}registerFailedAttempt(aa){const ca=nodeWebCompat.setTimeoutUnref(()=>{this.waitingUris.delete(aa)},this.waitSeconds*1e3);this.waitingUris.set(aa,ca)}registerSuccessfulAttempt(aa){this.release(aa)}}class SimpleJwksCache{constructor(aa){this.jwksCache=new Map,this.fetchingJwks=new Map,this.penaltyBox=aa?.penaltyBox??new SimplePenaltyBox,this.fetcher=aa?.fetcher??new SimpleFetcher,this.jwksParser=aa?.jwksParser??parseJwks}addJwks(aa,ca){this.jwksCache.set(aa,ca)}async getJwks(aa){const ca=this.fetchingJwks.get(aa);if(ca)return ca;const ua=this.fetcher.fetch(aa).then(this.jwksParser);this.fetchingJwks.set(aa,ua);let Sa;try{Sa=await ua}finally{this.fetchingJwks.delete(aa)}return this.jwksCache.set(aa,Sa),Sa}getCachedJwk(aa,ca){if(typeof ca.header.kid!="string")throw new JwtWithoutValidKidError("JWT header does not have valid kid claim");if(!this.jwksCache.has(aa))throw new JwksNotAvailableInCacheError(`JWKS for uri ${aa} not yet available in cache`);const ua=findJwkInJwks(this.jwksCache.get(aa),ca.header.kid);if(!ua)throw new KidNotFoundInJwksError(`JWK for kid ${ca.header.kid} not found in the JWKS`);return ua}async getJwk(aa,ca){if(typeof ca.header.kid!="string")throw new JwtWithoutValidKidError("JWT header does not have valid kid claim");const ua=this.jwksCache.get(aa);if(ua){const pl=findJwkInJwks(ua,ca.header.kid);if(pl)return pl}await this.penaltyBox.wait(aa,ca.header.kid);const Sa=await this.getJwks(aa),hl=findJwkInJwks(Sa,ca.header.kid);if(hl)this.penaltyBox.registerSuccessfulAttempt(aa,ca.header.kid);else throw this.penaltyBox.registerFailedAttempt(aa,ca.header.kid),new KidNotFoundInJwksError(`JWK for kid "${ca.header.kid}" not found in the JWKS`);return hl}}function assertJwtHeader(la){if(!isJsonObject(la))throw new JwtParseError("JWT header is not an object");if(la.alg!==void 0&&typeof la.alg!="string")throw new JwtParseError("JWT header alg claim is not a string");if(la.kid!==void 0&&typeof la.kid!="string")throw new JwtParseError("JWT header kid claim is not a string")}function assertJwtPayload(la){if(!isJsonObject(la))throw new JwtParseError("JWT payload is not an object");if(la.exp!==void 0&&!Number.isFinite(la.exp))throw new JwtParseError("JWT payload exp claim is not a number");if(la.iss!==void 0&&typeof la.iss!="string")throw new JwtParseError("JWT payload iss claim is not a string");if(la.sub!==void 0&&typeof la.sub!="string")throw new JwtParseError("JWT payload sub claim is not a string");if(la.aud!==void 0&&typeof la.aud!="string"&&(!Array.isArray(la.aud)||la.aud.some(aa=>typeof aa!="string")))throw new JwtParseError("JWT payload aud claim is not a string or array of strings");if(la.nbf!==void 0&&!Number.isFinite(la.nbf))throw new JwtParseError("JWT payload nbf claim is not a number");if(la.iat!==void 0&&!Number.isFinite(la.iat))throw new JwtParseError("JWT payload iat claim is not a number");if(la.scope!==void 0&&typeof la.scope!="string")throw new JwtParseError("JWT payload scope claim is not a string");if(la.jti!==void 0&&typeof la.jti!="string")throw new JwtParseError("JWT payload jti claim is not a string")}const JWT_REGEX=/^[A-Za-z0-9_-]+={0,2}\.[A-Za-z0-9_-]+={0,2}\.[A-Za-z0-9_-]+={0,2}$/;function decomposeUnverifiedJwt(la){if(!la)throw new JwtParseError("Empty JWT");if(typeof la!="string")throw new JwtParseError("JWT is not a string");if(!JWT_REGEX.test(la))throw new JwtParseError("JWT string does not consist of exactly 3 parts (header, payload, signature)");const[aa,ca,ua]=la.split("."),[Sa,hl]=[aa,ca].map(nodeWebCompat.parseB64UrlString);let pl;try{pl=safeJsonParse(Sa)}catch(gl){throw new JwtParseError("Invalid JWT. Header is not a valid JSON object",gl)}assertJwtHeader(pl);let ml;try{ml=safeJsonParse(hl)}catch(gl){throw new JwtParseError("Invalid JWT. Payload is not a valid JSON object",gl)}return assertJwtPayload(ml),{header:pl,headerB64:aa,payload:ml,payloadB64:ca,signatureB64:ua}}function validateJwtFields(la,aa){if(la.exp!==void 0&&la.exp+(aa.graceSeconds??0)<Date.now()/1e3)throw new JwtExpiredError(`Token expired at ${new Date(la.exp*1e3).toISOString()}`,la.exp);if(la.nbf!==void 0&&la.nbf-(aa.graceSeconds??0)>Date.now()/1e3)throw new JwtNotBeforeError(`Token can't be used before ${new Date(la.nbf*1e3).toISOString()}`,la.nbf);if(aa.issuer!==null){if(aa.issuer===void 0)throw new ParameterValidationError("issuer must be provided or set to null explicitly");assertStringArrayContainsString("Issuer",la.iss,aa.issuer,JwtInvalidIssuerError)}if(aa.audience!==null){if(aa.audience===void 0)throw new ParameterValidationError("audience must be provided or set to null explicitly");assertStringArraysOverlap("Audience",la.aud,aa.audience,JwtInvalidAudienceError)}aa.scope!=null&&assertStringArraysOverlap("Scope",la.scope?.split(" "),aa.scope,JwtInvalidScopeError)}const supportedSignatureAlgorithms=["RS256","RS384","RS512","ES256","ES384","ES512","EdDSA"];function validateJwtHeaderAndJwk(la,aa){assertIsSignatureJwk(aa),aa.alg&&assertStringEquals("JWT signature algorithm",la.alg,aa.alg,JwtInvalidSignatureAlgorithmError),assertStringArrayContainsString("JWT signature algorithm",la.alg,supportedSignatureAlgorithms,JwtInvalidSignatureAlgorithmError)}async function verifyDecomposedJwt(la,aa,ca,ua,Sa){const{header:hl,headerB64:pl,payload:ml,payloadB64:gl,signatureB64:wc}=la,xu=await ua(aa,la);validateJwtHeaderAndJwk(la.header,xu);const ff=await Sa(xu,hl.alg,ml.iss);if(!await nodeWebCompat.verifySignatureAsync({jwsSigningInput:`${pl}.${gl}`,signature:wc,alg:hl.alg,keyObject:ff}))throw new JwtInvalidSignatureError("Invalid signature");try{validateJwtFields(ml,ca),ca.customJwtCheck&&await ca.customJwtCheck({header:hl,payload:ml,jwk:xu})}catch(Uf){throw ca.includeRawJwtInErrors&&Uf instanceof JwtInvalidClaimError?Uf.withRawJwt(la):Uf}return ml}function verifyDecomposedJwtSync(la,aa,ca,ua){const{header:Sa,headerB64:hl,payload:pl,payloadB64:ml,signatureB64:gl}=la;let wc;if(isJwk(aa))wc=aa;else if(isJwks(aa)){const jf=Sa.kid?findJwkInJwks(aa,Sa.kid):void 0;if(!jf)throw new KidNotFoundInJwksError(`JWK for kid ${Sa.kid} not found in the JWKS`);wc=jf}else throw new ParameterValidationError([`Expected a valid JWK or JWKS (parsed as JavaScript object), but received: ${aa}.`,"If you're passing a JWKS URI, use the async verify() method instead, it will download and parse the JWKS for you"].join());validateJwtHeaderAndJwk(la.header,wc);const xu=ua(wc,Sa.alg,pl.iss);if(!nodeWebCompat.verifySignatureSync({jwsSigningInput:`${hl}.${ml}`,signature:gl,alg:Sa.alg,keyObject:xu}))throw new JwtInvalidSignatureError("Invalid signature");try{if(validateJwtFields(pl,ca),ca.customJwtCheck){const jf=ca.customJwtCheck({header:Sa,payload:pl,jwk:wc});assertIsNotPromise(jf,()=>new ParameterValidationError("Custom JWT checks must be synchronous but a promise was returned"))}}catch(jf){throw ca.includeRawJwtInErrors&&jf instanceof JwtInvalidClaimError?jf.withRawJwt(la):jf}return pl}class JwtVerifierBase{constructor(aa,ca=new SimpleJwksCache){if(this.jwksCache=ca,this.issuersConfig=new Map,this.publicKeyCache=new KeyObjectCache,Array.isArray(aa)){if(!aa.length)throw new ParameterValidationError("Provide at least one issuer configuration");aa.forEach((ua,Sa)=>{if(this.issuersConfig.has(ua.issuer))throw new ParameterValidationError(`issuer ${ua.issuer} supplied multiple times`);if(ua.issuer===null&&aa.length>=2)throw new ParameterValidationError(`issuer cannot be null when multiple issuers are supplied (at issuer: ${Sa})`);this.issuersConfig.set(ua.issuer,this.withJwksUri(ua))})}else this.issuersConfig.set(aa.issuer,this.withJwksUri(aa))}getIssuerConfig(aa){if(this.issuersConfig.size===1&&(aa=this.issuersConfig.keys().next().value),aa===void 0)throw new ParameterValidationError("issuer must be provided");const ca=this.issuersConfig.get(aa);if(!ca)throw new ParameterValidationError(`issuer not configured: ${aa}`);return ca}cacheJwks(...[aa,ca]){const ua=this.getIssuerConfig(ca);this.jwksCache.addJwks(ua.jwksUri,aa),this.publicKeyCache.clearCache(ua.issuer)}async hydrate(){const aa=Array.from(this.issuersConfig.values()).map(({jwksUri:ca})=>this.jwksCache.getJwks(ca));await Promise.all(aa)}verifySync(...[aa,ca]){const{decomposedJwt:ua,jwksUri:Sa,verifyProperties:hl}=this.getVerifyParameters(aa,ca);return this.verifyDecomposedJwtSync(ua,Sa,hl)}verifyDecomposedJwtSync(aa,ca,ua){const Sa=this.jwksCache.getCachedJwk(ca,aa);return verifyDecomposedJwtSync(aa,Sa,ua,this.publicKeyCache.transformJwkToKeyObjectSync.bind(this.publicKeyCache))}async verify(...[aa,ca]){const{decomposedJwt:ua,jwksUri:Sa,verifyProperties:hl}=this.getVerifyParameters(aa,ca);return this.verifyDecomposedJwt(ua,Sa,hl)}verifyDecomposedJwt(aa,ca,ua){return verifyDecomposedJwt(aa,ca,ua,this.jwksCache.getJwk.bind(this.jwksCache),this.publicKeyCache.transformJwkToKeyObjectAsync.bind(this.publicKeyCache))}getVerifyParameters(aa,ca){const ua=decomposeUnverifiedJwt(aa),Sa=this.getIssuerConfig(ua.payload.iss);return{decomposedJwt:ua,jwksUri:Sa.jwksUri,verifyProperties:{...Sa,...ca}}}withJwksUri(aa){if(aa.jwksUri)return aa;const ca=aa.issuer;if(!ca)throw new ParameterValidationError("jwksUri must be provided for issuer null");const ua=new URL(ca).pathname.replace(/\/$/,"");return{jwksUri:new URL(`${ua}/.well-known/jwks.json`,ca).href,...aa}}}class KeyObjectCache{constructor(aa=nodeWebCompat.transformJwkToKeyObjectSync,ca=nodeWebCompat.transformJwkToKeyObjectAsync){this.transformJwkToKeyObjectSyncFn=aa,this.transformJwkToKeyObjectAsyncFn=ca,this.publicKeys=new Map}transformJwkToKeyObjectSync(aa,ca,ua){const Sa=aa.alg??ca;if(!ua||!aa.kid||!Sa)return this.transformJwkToKeyObjectSyncFn(aa,Sa,ua);const hl=this.publicKeys.get(ua)?.get(aa.kid)?.get(Sa);if(hl)return hl;const pl=this.transformJwkToKeyObjectSyncFn(aa,Sa,ua);return this.putKeyObjectInCache(ua,aa.kid,Sa,pl),pl}async transformJwkToKeyObjectAsync(aa,ca,ua){const Sa=aa.alg??ca;if(!ua||!aa.kid||!Sa)return this.transformJwkToKeyObjectAsyncFn(aa,Sa,ua);const hl=this.publicKeys.get(ua)?.get(aa.kid)?.get(Sa);if(hl)return hl;const pl=await this.transformJwkToKeyObjectAsyncFn(aa,Sa,ua);return this.putKeyObjectInCache(ua,aa.kid,Sa,pl),pl}putKeyObjectInCache(aa,ca,ua,Sa){const hl=this.publicKeys.get(aa),pl=hl?.get(ca);pl?pl.set(ua,Sa):hl?hl.set(ca,new Map([[ua,Sa]])):this.publicKeys.set(aa,new Map([[ca,new Map([[ua,Sa]])]]))}clearCache(aa){this.publicKeys.delete(aa)}}function validateCognitoJwtFields(la,aa){if(aa.groups!=null&&assertStringArraysOverlap("Cognito group",la["cognito:groups"],aa.groups,CognitoJwtInvalidGroupError),assertStringArrayContainsString("Token use",la.token_use,["id","access"],CognitoJwtInvalidTokenUseError),aa.tokenUse!==null){if(aa.tokenUse===void 0)throw new ParameterValidationError("tokenUse must be provided or set to null explicitly");assertStringEquals("Token use",la.token_use,aa.tokenUse,CognitoJwtInvalidTokenUseError)}if(aa.clientId!==null){if(aa.clientId===void 0)throw new ParameterValidationError("clientId must be provided or set to null explicitly");la.token_use==="id"?assertStringArrayContainsString('Client ID ("audience")',la.aud,aa.clientId,CognitoJwtInvalidClientIdError):assertStringArrayContainsString("Client ID",la.client_id,aa.clientId,CognitoJwtInvalidClientIdError)}}class CognitoJwtVerifier extends JwtVerifierBase{constructor(aa,ca){const ua=Array.isArray(aa)?aa.map(Sa=>({...Sa,...CognitoJwtVerifier.parseUserPoolId(Sa.userPoolId),audience:null})):{...aa,...CognitoJwtVerifier.parseUserPoolId(aa.userPoolId),audience:null};super(ua,ca)}static parseUserPoolId(aa){const ca=aa.match(this.USER_POOL_ID_REGEX);if(!ca)throw new ParameterValidationError(`Invalid Cognito User Pool ID: ${aa}`);const Sa=`https://cognito-idp.${ca.groups.region}.amazonaws.com/${aa}`;return{issuer:Sa,jwksUri:`${Sa}/.well-known/jwks.json`}}static create(aa,ca){return new this(aa,ca?.jwksCache)}verifySync(...[aa,ca]){const{decomposedJwt:ua,jwksUri:Sa,verifyProperties:hl}=this.getVerifyParameters(aa,ca);this.verifyDecomposedJwtSync(ua,Sa,hl);try{validateCognitoJwtFields(ua.payload,hl)}catch(pl){throw hl.includeRawJwtInErrors&&pl instanceof JwtInvalidClaimError?pl.withRawJwt(ua):pl}return ua.payload}async verify(...[aa,ca]){const{decomposedJwt:ua,jwksUri:Sa,verifyProperties:hl}=this.getVerifyParameters(aa,ca);await this.verifyDecomposedJwt(ua,Sa,hl);try{validateCognitoJwtFields(ua.payload,hl)}catch(pl){throw hl.includeRawJwtInErrors&&pl instanceof JwtInvalidClaimError?pl.withRawJwt(ua):pl}return ua.payload}cacheJwks(...[aa,ca]){let ua;if(ca!==void 0)ua=CognitoJwtVerifier.parseUserPoolId(ca).issuer;else if(Array.from(this.issuersConfig).length>1)throw new ParameterValidationError("userPoolId must be provided");const Sa=this.getIssuerConfig(ua);super.cacheJwks(aa,Sa.issuer)}}CognitoJwtVerifier.USER_POOL_ID_REGEX=/^(?<region>[a-z]{2}-(gov-)?[a-z]+-\d)_[a-zA-Z0-9]+$/;var __assign=function(){return __assign=Object.assign||function(aa){for(var ca,ua=1,Sa=arguments.length;ua<Sa;ua++){ca=arguments[ua];for(var hl in ca)Object.prototype.hasOwnProperty.call(ca,hl)&&(aa[hl]=ca[hl])}return aa},__assign.apply(this,arguments)};function __rest(la,aa){var ca={};for(var ua in la)Object.prototype.hasOwnProperty.call(la,ua)&&aa.indexOf(ua)<0&&(ca[ua]=la[ua]);if(la!=null&&typeof Object.getOwnPropertySymbols=="function")for(var Sa=0,ua=Object.getOwnPropertySymbols(la);Sa<ua.length;Sa++)aa.indexOf(ua[Sa])<0&&Object.prototype.propertyIsEnumerable.call(la,ua[Sa])&&(ca[ua[Sa]]=la[ua[Sa]]);return ca}function __awaiter(la,aa,ca,ua){function Sa(hl){return hl instanceof ca?hl:new ca(function(pl){pl(hl)})}return new(ca||(ca=Promise))(function(hl,pl){function ml(xu){try{wc(ua.next(xu))}catch(ff){pl(ff)}}function gl(xu){try{wc(ua.throw(xu))}catch(ff){pl(ff)}}function wc(xu){xu.done?hl(xu.value):Sa(xu.value).then(ml,gl)}wc((ua=ua.apply(la,aa||[])).next())})}function __generator(la,aa){var ca={label:0,sent:function(){if(hl[0]&1)throw hl[1];return hl[1]},trys:[],ops:[]},ua,Sa,hl,pl=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return pl.next=ml(0),pl.throw=ml(1),pl.return=ml(2),typeof Symbol=="function"&&(pl[Symbol.iterator]=function(){return this}),pl;function ml(wc){return function(xu){return gl([wc,xu])}}function gl(wc){if(ua)throw new TypeError("Generator is already executing.");for(;pl&&(pl=0,wc[0]&&(ca=0)),ca;)try{if(ua=1,Sa&&(hl=wc[0]&2?Sa.return:wc[0]?Sa.throw||((hl=Sa.return)&&hl.call(Sa),0):Sa.next)&&!(hl=hl.call(Sa,wc[1])).done)return hl;switch(Sa=0,hl&&(wc=[wc[0]&2,hl.value]),wc[0]){case 0:case 1:hl=wc;break;case 4:return ca.label++,{value:wc[1],done:!1};case 5:ca.label++,Sa=wc[1],wc=[0];continue;case 7:wc=ca.ops.pop(),ca.trys.pop();continue;default:if(hl=ca.trys,!(hl=hl.length>0&&hl[hl.length-1])&&(wc[0]===6||wc[0]===2)){ca=0;continue}if(wc[0]===3&&(!hl||wc[1]>hl[0]&&wc[1]<hl[3])){ca.label=wc[1];break}if(wc[0]===6&&ca.label<hl[1]){ca.label=hl[1],hl=wc;break}if(hl&&ca.label<hl[2]){ca.label=hl[2],ca.ops.push(wc);break}hl[2]&&ca.ops.pop(),ca.trys.pop();continue}wc=aa.call(la,ca)}catch(xu){wc=[6,xu],Sa=0}finally{ua=hl=0}if(wc[0]&5)throw wc[1];return{value:wc[0]?wc[1]:void 0,done:!0}}}function __spreadArray(la,aa,ca){if(ca||arguments.length===2)for(var ua=0,Sa=aa.length,hl;ua<Sa;ua++)(hl||!(ua in aa))&&(hl||(hl=Array.prototype.slice.call(aa,0,ua)),hl[ua]=aa[ua]);return la.concat(hl||Array.prototype.slice.call(aa))}typeof SuppressedError=="function"&&SuppressedError;var define_process_env_default$2={};let fromEnv,CognitoIdentityProviderClient,SignUpCommand,ConfirmSignUp,ResendConfirmationCodeCommand,ForgotPasswordCommand,ConfirmForgotPasswordCommand,AdminGetUserCommand,InitiateAuthCommand,AdminCreateUserCommand,AdminDisableUserCommand,AdminEnableUserCommand,AdminDeleteUserCommand,RespondToAuthChallengeCommand,AuthenticationDetails,CognitoUser,CognitoUserPool,CognitoUserSession,CognitoIdToken,CognitoAccessToken,CognitoRefreshToken;if(isNodeEnv$1){fromEnv=(await __vitePreload(()=>import("./index.browser-BE_vlm_Q.js"),__vite__mapDeps([26,19,27]))).fromEnv;const aa=await __vitePreload(()=>import("./index-B9GRINGP.js"),__vite__mapDeps([28,29,27,19,30,1,18,5,9,16,11,14,15,10,20,21,17,4]));CognitoIdentityProviderClient=aa.CognitoIdentityProviderClient,SignUpCommand=aa.SignUpCommand,ConfirmSignUp=aa.ConfirmSignUpCommand,ResendConfirmationCodeCommand=aa.ResendConfirmationCodeCommand,ForgotPasswordCommand=aa.ForgotPasswordCommand,ConfirmForgotPasswordCommand=aa.ConfirmForgotPasswordCommand,AdminGetUserCommand=aa.AdminGetUserCommand,InitiateAuthCommand=aa.InitiateAuthCommand,AdminCreateUserCommand=aa.AdminCreateUserCommand,AdminDisableUserCommand=aa.AdminDisableUserCommand,AdminEnableUserCommand=aa.AdminEnableUserCommand,AdminDeleteUserCommand=aa.AdminDeleteUserCommand,RespondToAuthChallengeCommand=aa.RespondToAuthChallengeCommand;const ca=await __vitePreload(()=>import("./index-BHDiPh0o.js"),__vite__mapDeps([31,1,4,5]));AuthenticationDetails=ca.AuthenticationDetails,CognitoUser=ca.CognitoUser,CognitoUserPool=ca.CognitoUserPool,CognitoUserSession=ca.CognitoUserSession,CognitoIdToken=ca.CognitoIdToken,CognitoAccessToken=ca.CognitoAccessToken,CognitoRefreshToken=ca.CognitoRefreshToken}const defaultConfig$1=isNodeEnv$1?new Map().set("UserPoolId",define_process_env_default$2.COGNITO_USER_POOL_ID).set("ClientId",define_process_env_default$2.COGNITO_CLIENT_ID):new Map;function handleCognitoError(la,aa){var ca;const ua=sanitizeErrorMessage(la.message||"");switch(logger$3.error(`Cognito error in ${aa}: ${la.name} - ${ua}`,{errorName:la.name,errorCode:la.code,context:aa,statusCode:(ca=la.$metadata)===null||ca===void 0?void 0:ca.httpStatusCode}),la.name){case"UserNotFoundException":throw logger$3.debug(`User not found in context: ${aa}`),new UserNotFoundError$1("User account not found. Please check your email or sign up.");case"NotAuthorizedException":throw la.message&&la.message.includes("password")?(logger$3.debug(`Invalid password attempt in context: ${aa}`),new UnauthorisedError$1("Invalid password. Please try again.")):la.message&&la.message.includes("not confirmed")?(logger$3.debug(`User not confirmed in context: ${aa}`),new UserNotConfirmedError$1):(logger$3.debug(`Authentication failed in context: ${aa}`),new UnauthorisedError$1("Authentication failed. Please check your credentials."));case"UserNotConfirmedException":throw logger$3.debug(`User not confirmed in context: ${aa}`),new UserNotConfirmedError$1;case"PasswordResetRequiredException":throw logger$3.debug(`Password reset required in context: ${aa}`),new PasswordResetRequiredError$1;case"TooManyRequestsException":throw logger$3.warn(`Rate limit exceeded in context: ${aa}`),new TooManyRequestsError$1;case"TooManyFailedAttemptsException":throw logger$3.warn(`Too many failed attempts in context: ${aa}`),new TooManyRequestsError$1("Too many failed login attempts. Please try again later.");case"InvalidParameterException":throw logger$3.debug(`Invalid parameters in context: ${aa}`),new InvalidParameterError$1(sanitizeErrorMessage(la.message)||"Invalid parameters provided");case"ExpiredCodeException":throw logger$3.debug(`Expired code in context: ${aa}`),new ExpiredCodeError$1;case"CodeMismatchException":throw logger$3.debug(`Code mismatch in context: ${aa}`),new CodeMismatchError$1;case"UsernameExistsException":throw logger$3.debug(`Username exists in context: ${aa}`),new BadRequestError$4("An account with this email already exists.");case"InvalidPasswordException":throw logger$3.debug(`Invalid password format in context: ${aa}`),new BadRequestError$4("Password does not meet requirements. It must be at least 8 characters long and contain uppercase, lowercase, numbers, and special characters.");case"LimitExceededException":throw logger$3.warn(`Service limit exceeded in context: ${aa}`),new TooManyRequestsError$1("Service limit exceeded. Please try again later.");case"InternalErrorException":throw logger$3.error(`Internal Cognito error in context: ${aa}`),new Error("Authentication service is temporarily unavailable. Please try again later.");case"ResourceNotFoundException":throw logger$3.error(`Resource not found in context: ${aa}`),new Error("Authentication service configuration error. Please contact support.");case"AliasExistsException":throw logger$3.debug(`Alias exists in context: ${aa}`),new BadRequestError$4("An account with this email already exists.");case"InvalidEmailRoleAccessPolicyException":throw logger$3.error(`Invalid email role access policy in context: ${aa}`),new Error("Email service configuration error. Please contact support.");case"UserLambdaValidationException":throw logger$3.error(`User lambda validation error in context: ${aa}`),new BadRequestError$4("User validation failed. Please check your input and try again.");case"UnsupportedUserStateException":throw logger$3.debug(`Unsupported user state in context: ${aa}`),new UserNotConfirmedError$1("User account is in an unsupported state. Please contact support.");case"MFAMethodNotFoundException":throw logger$3.debug(`MFA method not found in context: ${aa}`),new BadRequestError$4("MFA method not found. Please set up MFA and try again.");case"CodeDeliveryFailureException":throw logger$3.error(`Code delivery failure in context: ${aa}`),new Error("Unable to deliver verification code. Please try again later.");case"DuplicateProviderException":throw logger$3.error(`Duplicate provider in context: ${aa}`),new BadRequestError$4("Authentication provider already exists.");case"EnableSoftwareTokenMFAException":throw logger$3.debug(`Software token MFA required in context: ${aa}`),new BadRequestError$4("Software token MFA setup required.");case"ForbiddenException":throw logger$3.warn(`Forbidden access in context: ${aa}`),new UnauthorisedError$1("Access forbidden. Please check your permissions.");case"GroupExistsException":throw logger$3.debug(`Group exists in context: ${aa}`),new BadRequestError$4("Group already exists.");case"InvalidLambdaResponseException":throw logger$3.error(`Invalid lambda response in context: ${aa}`),new Error("Authentication service error. Please try again later.");case"InvalidOAuthFlowException":throw logger$3.error(`Invalid OAuth flow in context: ${aa}`),new BadRequestError$4("Invalid OAuth flow. Please try again.");case"InvalidSmsRoleAccessPolicyException":throw logger$3.error(`Invalid SMS role access policy in context: ${aa}`),new Error("SMS service configuration error. Please contact support.");case"InvalidSmsRoleTrustRelationshipException":throw logger$3.error(`Invalid SMS role trust relationship in context: ${aa}`),new Error("SMS service configuration error. Please contact support.");case"InvalidUserPoolConfigurationException":throw logger$3.error(`Invalid user pool configuration in context: ${aa}`),new Error("Authentication service configuration error. Please contact support.");case"PreconditionNotMetException":throw logger$3.debug(`Precondition not met in context: ${aa}`),new BadRequestError$4("Precondition not met. Please check your request and try again.");case"ScopeDoesNotExistException":throw logger$3.error(`Scope does not exist in context: ${aa}`),new BadRequestError$4("Invalid scope. Please check your request.");case"UnexpectedLambdaException":throw logger$3.error(`Unexpected lambda exception in context: ${aa}`),new Error("Authentication service error. Please try again later.");case"UserImportInProgressException":throw logger$3.warn(`User import in progress in context: ${aa}`),new TooManyRequestsError$1("User import in progress. Please try again later.");case"UserPoolTaggingException":throw logger$3.error(`User pool tagging exception in context: ${aa}`),new Error("Authentication service configuration error. Please contact support.");default:throw logger$3.error(`Unhandled Cognito error: ${la.name}`,{errorName:la.name,errorCode:la.code,context:aa}),new Error(`Authentication error: ${sanitizeErrorMessage(la.message)||"An unexpected error occurred"}`)}}function sanitizeErrorMessage(la){return la?la.replace(/password/gi,"[REDACTED]").replace(/token/gi,"[REDACTED]").replace(/secret/gi,"[REDACTED]").replace(/key/gi,"[REDACTED]").replace(/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,"[EMAIL_REDACTED]").replace(/\b[A-Fa-f0-9]{32,}\b/g,"[TOKEN_REDACTED]").replace(/\b\d{4,}\b/g,"[NUMBER_REDACTED]"):""}class CognitoAuth{constructor(aa){this.config=aa||defaultConfig$1;const ca=this.config.get("UserPoolId");ca&&(this.userPool=new CognitoUserPool({UserPoolId:ca,ClientId:this.fetchClientId()}))}fetchUserPoolId(){return this.fetchConfig("UserPoolId")}fetchClientId(){return this.fetchConfig("ClientId")}fetchConfig(aa){const ca=this.config.get(aa);if(ca)return ca;throw new Error(`${aa} is not set`)}async signUp(aa,ca,ua,Sa,hl,pl,ml){const gl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),wc=[{Name:"email",Value:ua},{Name:"name",Value:ua},{Name:"given_name",Value:aa},{Name:"family_name",Value:ca}];hl&&hl.forEach((jf,Uf)=>{wc.push({Name:Uf,Value:jf})});const xu={ClientId:this.config.get("ClientId"),Username:ua,Password:Sa,UserAttributes:wc,ValidationData:wc},ff=new SignUpCommand(xu);try{logger$3.debug(`Attempting signup for user: ${ua}`);const jf=await gl.send(ff);if(jf.$metadata.httpStatusCode==200){logger$3.info(`Signup successful for user: ${ua}`);const Uf=await ensureUser(ua,aa,ca,pl,"Active"),rp={username:ua,firstName:aa,lastName:ca,id:Uf.id,systemUserInfo:jf.UserSub};ml(rp)}else throw logger$3.error(`Signup failed with HTTP status ${jf.$metadata.httpStatusCode}`,{username:ua,statusCode:jf.$metadata.httpStatusCode}),new BadRequestError$4(`Signup failed with status ${jf.$metadata.httpStatusCode}`)}catch(jf){if(jf instanceof BadRequestError$4)throw jf;logger$3.error(`Signup error for user ${ua}:`,{errorName:jf.name,errorMessage:sanitizeErrorMessage(jf.message)}),handleCognitoError(jf,"signUp")}}async confirmSignup(aa,ca,ua){try{const Sa=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),hl=new ConfirmSignUp({ClientId:this.config.get("ClientId"),Username:aa,ConfirmationCode:ca});await Sa.send(hl)}catch(Sa){logger$3.error(`Failed to confirm signup: ${Sa.message}`),handleCognitoError(Sa,"confirmSignup")}}async resendConfirmationCode(aa,ca){try{const ua=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Sa=new ResendConfirmationCodeCommand({ClientId:this.config.get("ClientId"),Username:aa});await ua.send(Sa)}catch(ua){logger$3.error(`Failed to resend confirmation code: ${ua.message}`),handleCognitoError(ua,"resendConfirmationCode")}}async forgotPassword(aa,ca){try{const ua=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Sa=new ForgotPasswordCommand({ClientId:this.fetchClientId(),Username:aa});await ua.send(Sa)}catch(ua){logger$3.error(`Forgot password failed for ${aa}: ${sanitizeErrorMessage(ua.message)}`),handleCognitoError(ua,"forgotPassword")}}async confirmForgotPassword(aa,ca,ua,Sa){try{const hl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),pl=new ConfirmForgotPasswordCommand({ClientId:this.fetchClientId(),Username:aa,ConfirmationCode:ca,Password:ua});await hl.send(pl)}catch(hl){logger$3.error(`Confirm forgot password failed for ${aa}: ${sanitizeErrorMessage(hl.message)}`),handleCognitoError(hl,"confirmForgotPassword")}}async login(aa,ca,ua,Sa){if(define_process_env_default$2.COGNITO_USER_POOL_ID&&define_process_env_default$2.COGNITO_CLIENT_ID){const pl=new CognitoUser({Username:aa,Pool:this.fetchUserPool()}),ml=new AuthenticationDetails({Username:aa,Password:ca});let gl,wc;for(pl.authenticateUser(ml,{onSuccess:xu=>{gl=xu},onFailure:xu=>{logger$3.debug(`Cognito authentication failed for user ${aa}:`,{errorName:xu.name,errorMessage:sanitizeErrorMessage(xu.message)}),wc=xu},mfaRequired:(xu,ff)=>{logger$3.info(`MFA required for user ${aa}: ${xu}`),wc=new Error("MFA authentication required")},newPasswordRequired:(xu,ff)=>{logger$3.info(`New password required for user ${aa}`),wc=new PasswordResetRequiredError$1("New password required. Please reset your password.")}});gl===void 0&&wc===void 0;)await sleepMilliseconds$1(100);if(wc){if(wc instanceof PasswordResetRequiredError$1)throw wc;logger$3.error(`Login failed for user ${aa}:`,{errorName:wc.name,errorMessage:sanitizeErrorMessage(wc.message)}),handleCognitoError(wc,"login")}if(gl){const xu=gl.getIdToken(),ff=xu.getJwtToken(),jf=xu.decodePayload(),Uf=jf.given_name||jf.name||"",rp=jf.family_name||"",np=jf["cognito:groups"];let qm=await findUserByEmail(aa,ua);qm||(qm=await ensureUser(aa,Uf,rp,ua));const Vm=qm.lookup("id");np&&await ensureUserRoles(Vm,np,ua);const eg=gl.getAccessToken().getJwtToken(),tg=gl.getRefreshToken().getToken(),ig={sessionId:(await ensureUserSession(Vm,ff,eg,tg,ua)).lookup("id"),userId:Vm,authToken:ff,idToken:ff,accessToken:eg,refreshToken:tg,systemSesionInfo:gl};Sa(ig)}else throw logger$3.error(`Login failed for ${aa} - no result received`),new UnauthorisedError$1("Login failed. Please try again.")}else{let pl=await findUserByEmail(aa,ua);pl||(logger$3.warn(`User ${aa} not found in local store`),pl=await ensureUser(aa,"","",ua));const ml=new CognitoUser({Username:aa,Pool:this.fetchUserPool()}),gl=new AuthenticationDetails({Username:aa,Password:ca});let wc,xu;for(ml.authenticateUser(gl,{onSuccess:ff=>{wc=ff},onFailure:ff=>{logger$3.debug(`Cognito authentication failed for user ${aa}:`,{errorName:ff.name,errorMessage:sanitizeErrorMessage(ff.message)}),xu=ff},mfaRequired:(ff,jf)=>{logger$3.info(`MFA required for user ${aa}: ${ff}`),xu=new Error("MFA authentication required")},newPasswordRequired:(ff,jf)=>{logger$3.info(`New password required for user ${aa}`),xu=new PasswordResetRequiredError$1("New password required. Please reset your password.")}});wc===void 0&&xu===void 0;)await sleepMilliseconds$1(100);if(xu){if(xu instanceof PasswordResetRequiredError$1)throw xu;logger$3.error(`Login failed for user ${aa}:`,{errorName:xu.name,errorMessage:sanitizeErrorMessage(xu.message)}),handleCognitoError(xu,"login")}if(wc){const ff=pl.lookup("id"),jf=wc.getIdToken().getJwtToken(),Uf=wc.getAccessToken().getJwtToken(),rp=wc.getRefreshToken().getToken(),qm={sessionId:(await ensureUserSession(ff,jf,Uf,rp,ua)).lookup("id"),userId:ff,authToken:jf,idToken:jf,accessToken:Uf,refreshToken:rp,systemSesionInfo:wc};Sa(qm)}else throw logger$3.error(`Login failed for ${aa} - no result received`),new UnauthorisedError$1("Login failed. Please try again.")}}async logout(aa,ca,ua){try{const Sa=await findUser(aa.userId,ca);if(!Sa){logger$3.warn(`User ${aa.userId} not found during logout`),ua&&ua(!0);return}const hl=new CognitoUser({Username:Sa.lookup("email"),Pool:this.fetchUserPool()});let pl=!1,ml;const gl=new CognitoUserSession({IdToken:new CognitoIdToken({IdToken:aa.idToken}),AccessToken:new CognitoAccessToken({AccessToken:aa.accessToken}),RefreshToken:new CognitoRefreshToken({RefreshToken:aa.refreshToken})});for(hl.setSignInUserSession(gl),hl.globalSignOut({onSuccess:function(){pl=!0},onFailure:function(wc){pl=!0,logger$3.error(`Cognito signOut error for user ${aa.userId}:`,{errorName:wc.name,errorMessage:sanitizeErrorMessage(wc.message)}),ml=wc}});!pl;)await sleepMilliseconds$1(100);ml&&logger$3.error(`Error during Cognito logout for user ${aa.userId}: ${ml.message}`),logger$3.debug(`Successfully logged out user ${aa.userId}`),ua&&ua(!0)}catch(Sa){throw logger$3.error(`Logout failed for user ${aa.userId}: ${Sa.message}`),ua&&ua(!1),Sa}}async changePassword(aa,ca,ua,Sa){const hl=await findUser(aa.userId,Sa);if(!hl)return logger$3.warn(`User ${aa.userId} not found for password-change`),!1;const pl=hl.lookup("email"),ml=new CognitoUser({Username:pl,Pool:this.fetchUserPool()}),gl=new CognitoUserSession({IdToken:new CognitoIdToken({IdToken:aa.idToken}),AccessToken:new CognitoAccessToken({AccessToken:aa.accessToken}),RefreshToken:new CognitoRefreshToken({RefreshToken:aa.refreshToken})});ml.setSignInUserSession(gl);let wc=!1,xu;for(ml.changePassword(ua,ca,(ff,jf)=>{ff?(wc=!0,xu=ff):wc=!0});!wc;)await sleepMilliseconds$1(100);return xu?(logger$3.warn(`Failed to change the password for ${pl} - ${xu.message}`),!1):!0}fetchUserPool(){if(this.userPool)return this.userPool;throw new Error("UserPool not initialized")}async verifyToken(aa){try{const ua=await CognitoJwtVerifier.create({userPoolId:this.fetchUserPoolId(),tokenUse:"id",clientId:this.fetchClientId()}).verify(aa);logger$3.debug(`Decoded JWT for ${ua.email}`)}catch(ca){throw logger$3.error("Token verification failed:",{errorName:ca.name,errorMessage:sanitizeErrorMessage(ca.message)}),ca.message&&ca.message.includes("expired")?new UnauthorisedError$1("Token has expired. Please login again."):ca.message&&ca.message.includes("invalid")?new UnauthorisedError$1("Invalid token format."):ca.message&&ca.message.includes("not before")?new UnauthorisedError$1("Token is not yet valid."):ca.message&&ca.message.includes("audience")?new UnauthorisedError$1("Token audience mismatch."):new UnauthorisedError$1(`Token verification failed: ${sanitizeErrorMessage(ca.message)||"Invalid token"}`)}}async getUser(aa,ca){const ua=await findUser(aa,ca);if(!ua)throw new UserNotFoundError$1(`User ${aa} not found in local database`);const Sa=ua.lookup("email"),hl=ua.lookup("firstName"),pl=ua.lookup("lastName");if(define_process_env_default$2.COGNITO_USER_POOL_ID&&define_process_env_default$2.COGNITO_CLIENT_ID&&Sa)try{const gl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),wc=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),Username:Sa}),xu=await gl.send(wc);return{id:aa,username:Sa,firstName:hl,lastName:pl,systemUserInfo:{localUser:ua,cognitoData:{userAttributes:xu.UserAttributes,userCreateDate:xu.UserCreateDate,userLastModifiedDate:xu.UserLastModifiedDate,userStatus:xu.UserStatus,enabled:xu.Enabled,preferredMfaSetting:xu.PreferredMfaSetting,userMFASettingList:xu.UserMFASettingList}}}}catch(gl){return logger$3.warn(`Failed to get Cognito user info for ${Sa}, using local data only:`,{errorName:gl.name,errorMessage:sanitizeErrorMessage(gl.message)}),{id:aa,username:Sa,firstName:hl,lastName:pl,systemUserInfo:ua}}else return{id:aa,username:Sa||aa,firstName:hl,lastName:pl,systemUserInfo:ua}}async getUserByEmail(aa,ca){const ua=await findUserByEmail(aa,ca);if(!ua)throw new UserNotFoundError$1(`User with email ${aa} not found in local database`);const Sa=ua.lookup("id"),hl=ua.lookup("firstName"),pl=ua.lookup("lastName");if(define_process_env_default$2.COGNITO_USER_POOL_ID&&define_process_env_default$2.COGNITO_CLIENT_ID)try{const gl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),wc=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),ClientId:this.fetchClientId(),Username:aa}),xu=await gl.send(wc);return{id:Sa,username:aa,firstName:hl,lastName:pl,systemUserInfo:{localUser:ua,cognitoData:{userAttributes:xu.UserAttributes,userCreateDate:xu.UserCreateDate,userLastModifiedDate:xu.UserLastModifiedDate,userStatus:xu.UserStatus,enabled:xu.Enabled,preferredMfaSetting:xu.PreferredMfaSetting,userMFASettingList:xu.UserMFASettingList}}}}catch(gl){return console.log(`Failed to get Cognito user info for email ${aa}, using local data only:`,{errorName:gl.name,errorMessage:sanitizeErrorMessage(gl.message)}),{id:Sa,username:aa,firstName:hl,lastName:pl,systemUserInfo:ua}}else return{id:Sa,username:aa,firstName:hl,lastName:pl,systemUserInfo:ua}}async refreshToken(aa,ca){try{const ua=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),Sa=new InitiateAuthCommand({AuthFlow:"REFRESH_TOKEN_AUTH",ClientId:this.fetchClientId(),AuthParameters:{REFRESH_TOKEN:aa}}),hl=await ua.send(Sa);if(!hl.AuthenticationResult)throw new UnauthorisedError$1("Token refresh failed");const pl=hl.AuthenticationResult.IdToken,ml=hl.AuthenticationResult.AccessToken,gl=hl.AuthenticationResult.RefreshToken||aa,xu=JSON.parse(atob(pl.split(".")[1])).email;let ff=await findUserByEmail(xu,ca);ff||(ff=await ensureUser(xu,"","",ca));const jf=ff.lookup("id");return{sessionId:(await ensureUserSession(jf,pl,ml,gl,ca)).lookup("id"),userId:jf,authToken:pl,idToken:pl,accessToken:ml,refreshToken:gl,systemSesionInfo:hl.AuthenticationResult}}catch(ua){throw logger$3.error(`Refresh token operation failed: ${ua.message}`),ua.name==="NotAuthorizedException"?new UnauthorisedError$1("Invalid or expired refresh token"):(handleCognitoError(ua,"refreshToken"),ua)}}async inviteUser(aa,ca,ua,Sa,hl,pl,ml){var gl;try{const wc=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),xu=[{Name:"email",Value:aa},{Name:"email_verified",Value:"true"},{Name:"given_name",Value:ca},{Name:"family_name",Value:ua}];Sa&&Sa.forEach((rp,np)=>{xu.push({Name:np,Value:String(rp)})});let ff=!1;try{const rp=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),Username:aa});await wc.send(rp),ff=!0,logger$3.debug(`User ${aa} already exists, will resend invitation`)}catch(rp){if(rp.name!=="UserNotFoundException")throw rp;logger$3.debug(`User ${aa} does not exist, will create new user`)}const jf=new AdminCreateUserCommand(Object.assign({UserPoolId:this.fetchUserPoolId(),Username:aa,UserAttributes:xu,DesiredDeliveryMediums:["EMAIL"],TemporaryPassword:generateUrlSafePassword$1()},ff?{MessageAction:"RESEND"}:{}));logger$3.debug(`Attempting to invite user: ${aa}`);const Uf=await wc.send(jf);if(Uf.$metadata.httpStatusCode===200){logger$3.info(`User invitation successful for: ${aa}`);const np=(await ensureUser(aa,ca,ua,pl,"Invited")).lookup("id");await ensureUserRoles(np,[hl||"user"],pl);const qm={email:aa,firstName:ca,lastName:ua,invitationId:(gl=Uf.User)===null||gl===void 0?void 0:gl.Username,systemInvitationInfo:Uf};ml(qm)}else throw logger$3.error(`User invitation failed with HTTP status ${Uf.$metadata.httpStatusCode}`,{email:aa,statusCode:Uf.$metadata.httpStatusCode}),new BadRequestError$4(`User invitation failed with status ${Uf.$metadata.httpStatusCode}`)}catch(wc){if(wc instanceof BadRequestError$4)throw wc;logger$3.error(`User invitation error for ${aa}:`,{errorName:wc.name,errorMessage:sanitizeErrorMessage(wc.message)}),handleCognitoError(wc,"inviteUser")}}async resendInvitation(aa,ca){try{const ua=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"});try{const pl=new AdminGetUserCommand({UserPoolId:this.fetchUserPoolId(),Username:aa});await ua.send(pl)}catch(pl){throw pl.name==="UserNotFoundException"?new UserNotFoundError$1(`User ${aa} not found. Cannot resend invitation.`):pl}const Sa=new AdminCreateUserCommand({UserPoolId:this.fetchUserPoolId(),Username:aa,DesiredDeliveryMediums:["EMAIL"],MessageAction:"RESEND"});logger$3.debug(`Attempting to resend invitation for user: ${aa}`);const hl=await ua.send(Sa);if(hl.$metadata.httpStatusCode===200)logger$3.info(`Invitation resent successfully for: ${aa}`);else throw logger$3.error(`Failed to resend invitation with HTTP status ${hl.$metadata.httpStatusCode}`,{email:aa,statusCode:hl.$metadata.httpStatusCode}),new BadRequestError$4(`Failed to resend invitation with status ${hl.$metadata.httpStatusCode}`)}catch(ua){if(ua instanceof BadRequestError$4||ua instanceof UserNotFoundError$1)throw ua;logger$3.error(`Resend invitation error for ${aa}:`,{errorName:ua.name,errorMessage:sanitizeErrorMessage(ua.message)}),handleCognitoError(ua,"resendInvitation")}}async acceptInvitation(aa,ca,ua,Sa){try{const hl=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2",credentials:fromEnv()}),pl=new InitiateAuthCommand({AuthFlow:"USER_PASSWORD_AUTH",ClientId:this.fetchClientId(),AuthParameters:{USERNAME:aa,PASSWORD:ca}}),ml=await hl.send(pl);if(ml.ChallengeName==="NEW_PASSWORD_REQUIRED"){const gl=new RespondToAuthChallengeCommand({ClientId:this.fetchClientId(),ChallengeName:"NEW_PASSWORD_REQUIRED",Session:ml.Session,ChallengeResponses:{USERNAME:aa,NEW_PASSWORD:ua}});await hl.send(gl),logger$3.info(`User invitation accepted successfully for: ${aa}`)}else throw new Error(`Unexpected challenge: ${ml.ChallengeName}`)}catch(hl){logger$3.error(`Accept invitation failed for ${aa}: ${sanitizeErrorMessage(hl.message)}`),handleCognitoError(hl,"acceptInvitation")}}async callback(aa,ca,ua){try{if(!isNodeEnv$1)throw new Error("Callback authentication is only supported in Node.js environment");const Sa=this.fetchConfig("ClientId"),hl=define_process_env_default$2.AWS_REGION||"us-east-1",pl=define_process_env_default$2.COGNITO_REDIRECT_URI||"http://localhost:3000/auth/callback",gl=`https://${define_process_env_default$2.COGNITO_HOSTED_DOMAIN}.auth.${hl}.amazoncognito.com/oauth2/token`,wc=new URLSearchParams({grant_type:"authorization_code",client_id:Sa,code:aa,redirect_uri:pl});logger$3.debug("Exchanging authorization code for tokens via OAuth2 endpoint"),console.log("te",gl,wc.toString());const xu=await fetch(gl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:wc.toString()});if(!xu.ok){const O1=await xu.text();throw new Error(`Token exchange failed: ${xu.status} ${O1}`)}const ff=await xu.json();if(!ff.access_token||!ff.id_token||!ff.refresh_token)throw new Error("Missing required tokens in response");const{access_token:jf,id_token:Uf,refresh_token:rp}=ff,np=this.decodeJwtPayload(Uf),qm=np.email,Vm=np.given_name||np.name||"",eg=np.family_name||"",tg=np["cognito:groups"];if(!qm)throw new Error("Email not found in ID attributes");let rg=await findUserByEmail(qm,ca);rg||(rg=await ensureUser(qm,Vm,eg,ca));const ig=rg.lookup("id");tg&&await ensureUserRoles(ig,tg,ca);const R1={sessionId:(await ensureUserSession(ig,Uf,jf,rp,ca)).lookup("id"),userId:ig,authToken:Uf,idToken:Uf,accessToken:jf,refreshToken:rp,systemSesionInfo:ff};logger$3.info(`Auth callback successful for user ${qm}`),ua(R1)}catch(Sa){console.log(Sa),logger$3.error(`Auth callback failed: ${sanitizeErrorMessage(Sa.message)}`),handleCognitoError(Sa,"callback")}}decodeJwtPayload(aa){try{const ua=aa.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),Sa=decodeURIComponent(atob(ua).split("").map(hl=>"%"+("00"+hl.charCodeAt(0).toString(16)).slice(-2)).join(""));return JSON.parse(Sa)}catch(ca){throw logger$3.error(`Failed to decode JWT payload: ${ca}`),new Error("Invalid JWT token")}}async deleteUser(aa,ca){try{const ua=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),Sa=new AdminDeleteUserCommand({UserPoolId:this.fetchUserPoolId(),Username:aa});logger$3.debug(`Attempting to delete user: ${aa}`),await ua.send(Sa),logger$3.info(`User deleted successfully: ${aa}`)}catch(ua){logger$3.error(`Failed to delete user ${aa}:`,{errorName:ua.name,errorMessage:sanitizeErrorMessage(ua.message)}),handleCognitoError(ua,"deleteUser")}}async disableUser(aa,ca){try{const ua=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),Sa=new AdminDisableUserCommand({UserPoolId:this.fetchUserPoolId(),Username:aa});logger$3.debug(`Attempting to disable user: ${aa}`),await ua.send(Sa),logger$3.info(`User disabled successfully: ${aa}`)}catch(ua){logger$3.error(`Failed to disable user ${aa}:`,{errorName:ua.name,errorMessage:sanitizeErrorMessage(ua.message)}),handleCognitoError(ua,"disableUser")}}async enableUser(aa,ca){try{const ua=new CognitoIdentityProviderClient({region:define_process_env_default$2.AWS_REGION||"us-west-2"}),Sa=new AdminEnableUserCommand({UserPoolId:this.fetchUserPoolId(),Username:aa});logger$3.debug(`Attempting to enable user: ${aa}`),await ua.send(Sa),logger$3.info(`User enabled successfully: ${aa}`)}catch(ua){logger$3.error(`Failed to enable user ${aa}:`,{errorName:ua.name,errorMessage:sanitizeErrorMessage(ua.message)}),handleCognitoError(ua,"enableUser")}}}const CoreAuthModuleName=makeCoreModuleName$1("auth"),auth=`module ${CoreAuthModuleName}
|
|
17433
17433
|
|
|
17434
17434
|
import "./modules/auth.js" @as Auth
|
|
17435
17435
|
|
|
@@ -19387,7 +19387,7 @@ workflow generateAgentlangResolver {
|
|
|
19387
19387
|
3. Complex queries with large result sets`,`
|
|
19388
19388
|
4. Memory not released from previous operations`,`
|
|
19389
19389
|
|
|
19390
|
-
🔄 System will attempt automatic recovery...`);try{throw console.log("⚙️ Attempting to recover from OOM by resetting database..."),this.recoveryMode=!0,await resetDefaultDatabase(),await parseAndIntern$1(aiModule),await initDatabase(void 0),await runInitFunctions(),await runStandaloneStatements(),this.lastRecoveryTime=Date.now(),this.recoveryMode=!1,console.log(`✅ Successfully recovered from OOM. Cooldown period: ${this.RECOVERY_COOLDOWN_MS}ms`),typeof window<"u"&&window.dispatchEvent(new CustomEvent("agentlang:oom-recovered",{detail:{timestamp:Date.now(),cooldownMs:this.RECOVERY_COOLDOWN_MS}})),new Error("Query failed due to out of memory, but system has been recovered. Please retry in a few seconds.")}catch(Sa){throw this.recoveryMode=!1,console.error("❌ Failed to recover from OOM:",Sa),typeof window<"u"&&window.dispatchEvent(new CustomEvent("agentlang:oom-error",{detail:{error:ca.message,timestamp:Date.now(),requiresRefresh:!0}})),new Error("Out of memory error and automatic recovery failed. Please refresh the page.")}}throw console.error("❌ AgentLang evaluation error:",ca),ca}}async createInstance(aa,ca,ua){const Sa=this.formatAttributes(ua),hl=`{${aa}/${ca} {${Sa}}}`,pl=await this.evaluate(hl),ml=this.extractEntityData(pl);return this.emitDataChange("create",aa,ca,ml),ml}emitDataChange(aa,ca,ua,Sa){if(typeof window<"u"){const hl=new CustomEvent("agentlang-data-change",{detail:{operation:aa,componentName:ca,entityName:ua,fullPath:`${ca}/${ua}`,data:Sa,timestamp:Date.now()}});window.dispatchEvent(hl)}}async queryInstances(aa,ca,ua){const Sa=`{${aa}/${ca}? {}}`,hl=await this.evaluate(Sa);let pl=[];if(Array.isArray(hl))pl=hl;else if(hl&&typeof hl=="object")pl=[hl];else return[];const ml=pl.map(wc=>this.extractEntityData(wc));let gl=ml;return ua&&Object.keys(ua).length>0&&(gl=ml.filter(wc=>Object.entries(ua).every(([xu,ff])=>wc[xu]===ff))),gl}async createRelationshipInstance(aa,ca,ua,Sa,hl,pl){const ml=pl.id||pl.Id,gl=ml===ua;let wc={...pl};if(!ml||gl){const rp=crypto.randomUUID();wc={...pl,id:rp},delete wc.Id}const xu=this.formatAttributes(wc,{skipId:!1}),ff=`{${aa}/${ca} {id? ${JSON.stringify(ua)}}, ${Sa} {${aa}/${hl} {${xu}}}}`,jf=await this.evaluate(ff),Uf=this.extractEntityData(jf);return this.emitDataChange("create",aa,hl,Uf),Uf}async queryRelationship(aa,ca,ua,Sa,hl){const pl=`{${aa}/${ca} {id? ${JSON.stringify(ua)}}, ${Sa} {${aa}/${hl}? {}}}`,ml=await this.evaluate(pl);if(Array.isArray(ml)&&ml.length>1){const jf=ml[1];if(Array.isArray(jf))return jf.map(rp=>this.extractEntityData(rp));if(jf&&typeof jf=="object"&&jf[Sa]){const Uf=jf[Sa];if(Array.isArray(Uf))return Uf.map(np=>this.extractEntityData(np))}}let gl;if(Array.isArray(ml)&&ml.length>0?gl=ml[0]:ml&&typeof ml=="object"&&(gl=ml),!gl)return[];let wc;if(gl.relatedInstances instanceof Map&&(wc=gl.relatedInstances.get(Sa)),!wc&&gl["->"]instanceof Map&&(wc=gl["->"].get(Sa)),wc||(wc=gl[Sa]),!wc){const jf=Sa.charAt(0).toLowerCase()+Sa.slice(1);wc=gl[jf]}if(!wc)return[];let xu=[];return Array.isArray(wc)?xu=wc:wc&&typeof wc=="object"&&(xu=[wc]),xu.map(jf=>this.extractEntityData(jf))}async updateInstance(aa,ca,ua,Sa){const hl={...Sa,Id:ua},pl=this.formatAttributes(hl),ml=`{${aa}/${ca} {${pl}}}`,gl=await this.evaluate(ml),wc=this.extractEntityData(gl);return this.emitDataChange("update",aa,ca,wc),wc}async deleteInstance(aa,ca,ua){const Sa=`{${aa}/Delete${ca} {Id ${JSON.stringify(ua)}}}`,hl=await this.evaluate(Sa),pl=this.extractEntityData(hl);return this.emitDataChange("delete",aa,ca,{id:ua}),pl}extractEntityData(aa){return aa&&(aa.attributes instanceof Map?Object.fromEntries(aa.attributes):aa.record&&aa.record.attributes instanceof Map?Object.fromEntries(aa.record.attributes):aa instanceof Map?Object.fromEntries(aa):aa.record&&typeof aa.record=="object"&&!(Object.prototype.hasOwnProperty.call(aa.record,"schema")||Object.prototype.hasOwnProperty.call(aa.record,"taggedAsPublic")||Object.prototype.hasOwnProperty.call(aa.record,"type"))?aa.record:(typeof aa=="object"&&!aa.name&&!aa.moduleName&&!aa.attributes&&!aa.record||console.warn("⚠️ Could not extract entity data from result, returning as-is:",aa),aa))}formatAttributes(aa,ca){return Object.entries(aa).filter(([ua,Sa])=>{if(ca?.skipId&&(ua==="id"||ua==="Id")||ua.startsWith("__")||ua.startsWith("_")||Array.isArray(Sa))return!1;if(Sa&&typeof Sa=="object"&&!Sa.__isScalar){const hl=Object.keys(Sa);if(hl.length>2||hl.includes("id")||hl.includes("Id"))return!1}return!0}).map(([ua,Sa])=>{let hl;return typeof Sa=="string"?hl=JSON.stringify(Sa):typeof Sa=="number"||typeof Sa=="boolean"?hl=String(Sa):Sa==null?hl="null":hl=JSON.stringify(Sa),`${ua} ${hl}`}).join(", ")}async sendCommand(aa){return this.evaluate(aa)}getContext(){return this.currentContext}isReady(){return this.runtimeInitialized&&this.componentLoaded}async refreshEnvironmentKeys(){if(!this.runtimeInitialized){console.warn("Runtime not initialized yet, cannot refresh environment keys");return}try{const aa=getEnvironmentKeysAsObject();console.log("🔄 Refreshing environment keys:",Object.keys(aa)),await initializeRuntime(void 0,aa);const{initializeResolverConfigs:ca}=await __vitePreload(async()=>{const{initializeResolverConfigs:ua}=await Promise.resolve().then(()=>browserResolvers);return{initializeResolverConfigs:ua}},void 0);await ca(),console.log("✅ Environment keys refreshed successfully")}catch(aa){throw console.error("❌ Failed to refresh environment keys:",aa),aa}}async reset(){const aa=getUserModuleNames();aa.length>0&&aa.forEach(ca=>{removeModule(ca)}),this.loadedModules.clear(),this.currentContext=null,this.componentLoaded=!1,this.queryQueue=[],this.isProcessingQueue=!1,this.runtimeInitialized&&await resetDefaultDatabase()}}const inBrowserREPL=new InBrowserREPL;typeof window<"u"&&(window.inBrowserREPL=inBrowserREPL);const inBrowserREPL$1=Object.freeze(Object.defineProperty({__proto__:null,InBrowserREPL,inBrowserREPL},Symbol.toStringTag,{value:"Module"}));class InBrowserSessionManager{currentSession=null;async ensureSession(aa){return this.currentSession&&this.sessionMatchesContext(this.currentSession,aa)?this.currentSession:this.createSession(aa)}async createSession(aa){if(!aa.teamName)throw new Error("Team name is required for in-browser session");try{console.log("📝 Creating in-browser REPL session for:",aa),await inBrowserREPL.loadComponent(aa);const ca={deploymentId:`in-browser-${aa.teamName}-${Date.now()}`,httpUrl:"",status:"ready",context:aa,createdAt:Date.now()};return this.currentSession=ca,console.log("✅ In-browser session created:",ca.deploymentId),ca}catch(ca){throw console.error("❌ Failed to create in-browser session:",ca),ca}}getCurrentSession(){return this.currentSession}updateContext(aa){this.currentSession&&(this.currentSession.context=aa)}async waitForReady(aa=3e4){if(!this.currentSession)throw new Error("No active in-browser session");this.currentSession.status!=="ready"&&(this.currentSession.status="ready")}clearSession(){console.log("🗑️ Clearing in-browser session"),this.currentSession=null}async reset(){console.log("🔄 Resetting in-browser session manager"),this.clearSession(),await inBrowserREPL.reset()}sessionMatchesContext(aa,ca){return aa.context.teamName===ca.teamName&&(aa.context.moduleName||"core")===(ca.moduleName||"core")&&(aa.context.branch||"main")===(ca.branch||"main")}}class InBrowserCommandExecutor{constructor(aa){this.sessionManager=aa}async sendCommand(aa){if(!this.sessionManager.getCurrentSession())throw new Error("No active in-browser REPL session");try{return await inBrowserREPL.evaluate(aa)}catch(ua){throw console.error("Failed to execute command:",ua),ua}}async updateFile(aa,ca){console.warn("updateFile not implemented for in-browser mode")}async sendHttpRequest(aa,ca=0){if(ca>10)throw new Error("Query depth exceeded maximum of 10. Possible circular relationship or deeply nested query.");const Sa=this.sessionManager.getCurrentSession();if(!Sa)throw new Error("No active in-browser REPL session");const{method:hl="GET",path:pl,data:ml}=aa;try{const gl=pl.split("/").filter(Uf=>Uf);let wc,xu,ff,jf=[];if(gl[0]==="instances")wc=gl[1],xu=gl[2],ff=gl[3],jf=gl.slice(4);else if(gl.length===1){const Uf=gl[0];if(isModule$1(Uf))throw new Error(`Invalid path "${pl}": "${Uf}" is a module name. Please specify an entity like "${Uf}/EntityName".`);xu=Uf;const rp=Sa.context.teamName,np=Sa.context.moduleName||"core";if(np.startsWith(`${rp}.`)?wc=np:wc=`${rp}.${np}`,wc.includes(".")){const qm=wc.split(".");qm.length===2&&qm[0]===qm[1]&&(wc=qm[1])}}else if(gl.length===2){const Uf=gl[0],rp=gl[1],np=Sa.context.teamName,qm=Sa.context.moduleName||"core";if(Uf.includes(".")||Uf===np||Uf===qm||Uf===`${np}.${qm}`||isModule$1(Uf))wc=Uf,xu=rp;else if(xu=Uf,ff=rp,qm.startsWith(`${np}.`)?wc=qm:wc=`${np}.${qm}`,wc.includes(".")){const eg=wc.split(".");eg.length===2&&eg[0]===eg[1]&&(wc=eg[1])}}else wc=gl[0],xu=gl[1],ff=gl[2],jf=gl.slice(3);if(!wc||!xu)throw new Error(`Invalid path format: ${pl}`);if(jf.length>0){const Uf=jf[0],rp=jf[1],np=jf[2],qm=jf.slice(3);if(!ff||!Uf||!rp)throw new Error(`Invalid relationship path format: ${pl}`);if(hl.toUpperCase()==="GET"){const Vm=await inBrowserREPL.queryRelationship(wc,xu,ff,Uf,rp);if(np){const eg=Array.isArray(Vm)?Vm.find(tg=>tg.id===np||tg.Id===np):null;if(eg&&qm.length>0){const tg=`${wc}/${rp}/${np}/${qm.join("/")}`;return console.log(`📊 Recursively querying deeper path: ${tg} (depth: ${ca+1})`),await this.sendHttpRequest({method:"GET",path:tg},ca+1)}return eg||null}return Vm}else{if(hl.toUpperCase()==="POST")return await inBrowserREPL.createRelationshipInstance(wc,xu,ff,Uf,rp,ml);throw new Error(`Only GET and POST are supported for relationship paths: ${pl}`)}}switch(hl.toUpperCase()){case"POST":return await inBrowserREPL.createInstance(wc,xu,ml);case"GET":return ff?(await inBrowserREPL.queryInstances(wc,xu,void 0)).find(np=>np.id===ff||np.Id===ff||np.__id===ff)||null:await inBrowserREPL.queryInstances(wc,xu,void 0);case"PUT":case"PATCH":if(!ff)throw new Error("ID required for update operation");return await inBrowserREPL.updateInstance(wc,xu,ff,ml);case"DELETE":if(!ff)throw new Error("ID required for delete operation");return await inBrowserREPL.deleteInstance(wc,xu,ff);default:throw new Error(`Unsupported HTTP method: ${hl}`)}}catch(gl){throw console.error("HTTP request simulation failed:",gl),gl}}async sendAgentLangHttpRequest(aa,ca="GET",ua){return this.sendHttpRequest({method:ca,path:aa,data:ua})}}const IS_PLAYGROUND$8=!1,IS_LOCAL_MODE$9=!0;class ReplService{sessionManager;commandExecutor;eventManager;isPlaygroundMode;isLocalMode;constructor(){if(this.isPlaygroundMode=IS_PLAYGROUND$8,this.isLocalMode=IS_LOCAL_MODE$9,this.isLocalMode){console.log("🏠 Initializing REPL service in LOCAL mode (Disabled)");const aa=new InBrowserSessionManager;this.sessionManager=aa,this.commandExecutor=new InBrowserCommandExecutor(aa)}else if(this.isPlaygroundMode){console.log("🎮 Initializing REPL service in PLAYGROUND mode (in-browser)");const aa=new InBrowserSessionManager;this.sessionManager=aa,this.commandExecutor=new InBrowserCommandExecutor(aa)}else{console.log("🌐 Initializing REPL service in NORMAL mode (HTTP)");const aa=new SessionManager;this.sessionManager=aa,this.commandExecutor=new CommandExecutor(aa)}this.eventManager=new EventManager$1}async ensureSession(aa){return this.isLocalMode?(console.log("REPL disabled in local mode"),{}):this.sessionManager.ensureSession(aa)}async ensureReplSession(aa){return this.isLocalMode?{}:this.sessionManager.ensureSession(aa)}async createSession(aa,ca){if(this.isLocalMode)throw new Error("REPL disabled in local mode");const ua=ca.replace("https://github.com/","").split("/"),Sa={githubOrg:ua[0],teamName:ua[1],branch:"main"},hl=await this.sessionManager.createSession(Sa);return this.eventManager.emit("connect",{sessionId:hl.deploymentId}),this.eventManager.emit("status",{status:"REPL_READY",sessionId:hl.deploymentId}),hl.deploymentId}updateContext(aa){this.isLocalMode||this.sessionManager.updateContext(aa)}getSessionId(){return this.sessionManager.getCurrentSession()?.deploymentId||null}isConnected(){return this.isLocalMode?!1:this.sessionManager.getCurrentSession()!==null}disconnect(){this.isLocalMode||(this.eventManager.emit("disconnect",void 0),this.eventManager.clear())}async sendCommand(aa){if(this.isLocalMode)throw new Error("REPL disabled in local mode");return await this.commandExecutor.sendCommand(aa)}async sendFileUpdate(aa,ca){if(this.isLocalMode)return;const ua=this.sessionManager.getCurrentSession();if(!ua||!ua.deploymentId)throw new Error("No active REPL session for file updates");if(this.isPlaygroundMode){console.log("📝 File update in playground mode - will require reload:",aa);return}if(!ua.httpUrl)throw new Error("No HTTP URL for file updates");updateManager.setSession(ua);const Sa=await updateManager.trackFileChange(aa,ca);Sa&&await updateManager.sendUpdateToREPL([Sa],ua)}async initializeFileTracking(aa){if(this.isLocalMode)return;updateManager.setRepoPath(aa);const ca=this.sessionManager.getCurrentSession();ca&&updateManager.setSession(ca),await updateManager.initializeCache()}async updateFile(aa,ca){if(!this.isLocalMode)return this.commandExecutor.updateFile(aa,ca)}async sendHttpRequest(aa){return this.isLocalMode?{}:this.commandExecutor.sendHttpRequest(aa)}async sendAgentLangHttpRequest(aa,ca="GET",ua){return this.isLocalMode?{}:this.commandExecutor.sendAgentLangHttpRequest(aa,ca,ua)}on(aa,ca){this.eventManager.on(aa,ca)}off(aa,ca){this.eventManager.off(aa,ca)}setListeners(aa){this.eventManager.setListeners(aa)}getPodConnection(){const aa=this.sessionManager.getCurrentSession();return aa?{httpUrl:aa.httpUrl,websocketUrl:"",ports:{http:8080,websocket:3001},healthEndpoint:`${aa.httpUrl}/health`,websocketEndpoint:""}:null}async waitForAgentLangReady(aa=3e4){return this.sessionManager.waitForReady(aa)}isDirectConnectionAvailable(){return this.isConnected()}async sendDirectCommand(aa){return this.sendCommand(aa)}getReplSessionInfo(){const aa=this.sessionManager.getCurrentSession();return aa?{sessionId:aa.deploymentId,status:aa.status,httpUrl:aa.httpUrl,context:aa.context}:null}getDebugInfo(){return{connected:this.isConnected(),session:this.getReplSessionInfo()}}async checkHealth(){if(this.isLocalMode)return null;const aa=this.sessionManager.getCurrentSession();return aa?this.isPlaygroundMode?{deploymentId:aa.deploymentId,status:"ready",lastHealthCheck:Date.now(),message:"In-browser REPL is ready"}:deploymentManager.checkHealth(aa):null}async getDeploymentStatus(){if(this.isLocalMode)return null;const aa=this.sessionManager.getCurrentSession();return aa?this.isPlaygroundMode?{deploymentId:aa.deploymentId,status:"ready",lastHealthCheck:Date.now(),message:"In-browser REPL is ready"}:deploymentManager.getStatus(aa):null}async restartDeployment(){if(this.isLocalMode)return!1;const aa=this.sessionManager.getCurrentSession();if(!aa)throw new Error("No active REPL session");if(this.isPlaygroundMode)return console.log("🔄 Restarting in-browser REPL..."),await this.sessionManager.reset(),this.eventManager.emit("status",{status:"REPL_READY",sessionId:aa.deploymentId,message:"In-browser REPL restarted successfully"}),!0;const ca=await deploymentManager.restartDeployment(aa);return ca&&this.eventManager.emit("status",{status:"REPL_READY",sessionId:aa.deploymentId,message:"Deployment restarted successfully"}),ca}}const replService=new ReplService,IS_LOCAL_MODE$8=!0,packageJsonCache=new Map,getRepositoryPath=async la=>{const aa=[`/${la}`,`/${la.toLowerCase()}`,`/${la.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_/,"")}`];for(const ca of aa)if(await pathExists(ca))return console.log(`Found repository at: ${ca}`),ca;return console.warn(`Repository not found at expected paths for team: ${la}, using default`),`/${la.toLowerCase()}`},updateLocalFile=async(la,aa)=>{try{const ua=await fetch("http://localhost:4000/file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:la,content:aa})});if(!ua.ok)throw new Error(`Failed to update local file: ${ua.statusText}`);console.log(`✅ Local file updated: ${la}`)}catch(ca){throw console.error("Failed to update local file:",ca),ca}},saveModuleToGit=async(la,aa,ca,ua,Sa,hl)=>{const pl=await getRepositoryPath(la),ml=ca,gl=aa.split("."),wc=gl.length>1?`${gl[1]}.al`:`${aa}.al`;try{const xu=wc.replace(".al","");let ff="",jf=!1;const Uf=`src/${wc}`;if(await pathExists(`${pl}/${Uf}`))console.log(`Found existing file in ${Uf}, updating it there`),ff=Uf;else{console.log("File not found in src/, checking root directory...");const np=[wc,xu.charAt(0).toUpperCase()+xu.slice(1)+".al",xu.toUpperCase()+".al",xu.toLowerCase()+".al",xu.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_/,"")+".al"];for(const qm of np){const Vm=qm;if(await pathExists(`${pl}/${Vm}`)){console.log(`Found existing file in root: ${Vm}, updating it there`),ff=Vm;break}}ff||(console.log(`File not found anywhere, creating new file in preferred location: ${Uf}`),ff=Uf,jf=!0)}if(IS_LOCAL_MODE$8){await updateLocalFile(ff,ml);try{const np="http://localhost:8080";if(jf){const qm=ml.replace(/"/g,'\\"').replace(/'/g,"\\'"),Vm=await fetch(`${np}/agentlang/Module`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:aa,definition:qm})});Vm.ok?console.log(`✅ Module created in runtime: ${aa}`):console.warn(`Failed to create module in runtime: ${Vm.statusText}`)}else{const qm=ml.replace(/"/g,'\\"').replace(/'/g,"\\'"),Vm=await fetch(`${np}/agentlang/Module/${aa}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({definition:qm})});Vm.ok?console.log(`✅ Module updated in runtime: ${aa}`):console.warn(`Failed to update module in runtime: ${Vm.statusText}`)}}catch(np){console.error("Failed to send module to runtime:",np)}return}const rp=await openRepository(pl);console.log(`💾 Writing module to: ${ff}`),await writeRepoFile(pl,ff,ml),replService.isConnected()&&replService.sendFileUpdate(ff,ml).catch(np=>{console.error("Failed to send update to REPL:",np)}),await commitChanges(rp,ff,`${ua} at ${new Date().toLocaleDateString()} ${new Date().toLocaleTimeString()}`,{name:Sa,email:Sa});try{await pushChanges(rp,"origin","main",hl)}catch(np){console.warn(`Push to GitHub failed: ${np.message}. Changes saved locally.`)}}catch(xu){throw console.error("Failed to save module to git:",xu),new Error(`Failed to save module: ${xu.message}`)}},saveUISpecToGit=async(la,aa,ca,ua,Sa)=>{try{const hl=await getRepositoryPath(la);if(IS_LOCAL_MODE$8){await updateLocalFile("ui-spec.json",aa);return}const pl=await openRepository(hl);await writeRepoFile(hl,"ui-spec.json",aa),replService.isConnected()&&replService.sendFileUpdate("ui-spec.json",aa).catch(ml=>{console.error("Failed to send UI spec update to REPL:",ml)}),await commitChanges(pl,"ui-spec.json",`${ca} at ${new Date().toLocaleDateString()} ${new Date().toLocaleTimeString()}`,{name:ua,email:ua});try{await pushChanges(pl,"origin","main",Sa)}catch(ml){console.warn(`Push to GitHub failed: ${ml.message}. Changes saved locally.`)}}catch(hl){throw console.error("Failed to save UI spec to git:",hl),new Error(`Failed to save UI spec: ${hl.message}`)}},saveConfigToGit=async(la,aa,ca,ua,Sa)=>{try{const hl=await getRepositoryPath(la);if(IS_LOCAL_MODE$8){await updateLocalFile("config.al",aa);return}const pl=await openRepository(hl);await writeRepoFile(hl,"config.al",aa),replService.isConnected()&&replService.sendFileUpdate("config.al",aa).catch(ml=>{console.error("Failed to send config update to REPL:",ml)}),await commitChanges(pl,"config.al",`${ca} at ${new Date().toLocaleDateString()} ${new Date().toLocaleTimeString()}`,{name:ua,email:ua});try{await pushChanges(pl,"origin","main",Sa)}catch(ml){console.warn(`Push to GitHub failed: ${ml.message}. Changes saved locally.`)}}catch(hl){throw console.error("Failed to save config to git:",hl),new Error(`Failed to save config: ${hl.message}`)}},readProjectFile=async(la,aa)=>{{const ua=await fetch(`http://localhost:4000/file?path=${encodeURIComponent(aa)}`);if(!ua.ok)throw new Error(`Failed to fetch ${aa} from local server: ${ua.statusText}`);const{content:Sa}=await ua.json();return Sa}},readPackageJsonFromGit=async(la,aa=!1)=>{const ca=la;if(!aa&&packageJsonCache.has(ca))return packageJsonCache.get(ca);try{let ua;if(IS_LOCAL_MODE$8){const pl=await fetch(`http://localhost:4000/file?path=${encodeURIComponent("package.json")}`);if(!pl.ok)throw new Error(`Failed to fetch package.json from local server: ${pl.statusText}`);const{content:ml}=await pl.json();ua=ml}const Sa=JSON.parse(ua);return packageJsonCache.set(ca,Sa),Sa}catch(ua){throw console.error("Failed to read package.json from git:",ua),new Error(`Failed to read package.json: ${ua.message}`)}},readDependencyPackageJsonFromGit=async(la,aa,ca=!1)=>{const ua=`${la}:${aa}`;if(!ca&&packageJsonCache.has(ua))return packageJsonCache.get(ua);const Sa=async(ml,gl)=>{try{let wc;if(IS_LOCAL_MODE$8){const jf=await fetch(`http://localhost:4000/file?path=${encodeURIComponent(gl)}`);if(!jf.ok){if(jf.status===404)return null;throw new Error(`Failed to fetch ${gl} from local server: ${jf.statusText}`)}const{content:Uf}=await jf.json();wc=Uf}const xu=JSON.parse(wc);return packageJsonCache.set(ua,xu),xu}catch(wc){return wc?.code==="ENOENT"||wc?.message?.includes("ENOENT")||wc?.message?.includes("not found")||wc?.message?.includes("No such file")||wc?.message?.includes("404")?null:Promise.reject(wc)}},hl=await getRepositoryPath(la),pl=aa.toLowerCase();try{const gl=(await readPackageJsonFromGit(la,ca)).dependencies||{},wc=Object.keys(gl).find(xu=>xu.split(".")[0].toLowerCase()===pl);if(wc){const xu=await Sa(hl,`node_modules/${wc}/package.json`);if(xu)return xu}}catch(ml){throw console.error(`Failed to read package.json for dependency ${aa} in team ${la}:`,ml),new Error(`Failed to read package.json for ${aa}: ${ml.message}`)}throw new Error(`Failed to read package.json for ${aa}: package.json not found`)},savePackageJsonToGit=async(la,aa,ca,ua,Sa)=>{try{const hl=await getRepositoryPath(la);if(IS_LOCAL_MODE$8){await updateLocalFile("package.json",aa),packageJsonCache.delete(la);return}const pl=await openRepository(hl);await writeRepoFile(hl,"package.json",aa),await commitChanges(pl,"package.json",ca,{name:ua,email:ua}),await pushChanges(pl,"origin","main",Sa),packageJsonCache.delete(la)}catch(hl){throw console.error("Failed to save package.json to git:",hl),new Error(`Failed to save package.json: ${hl.message}`)}};function cc(la){if(typeof la=="string"||typeof la=="number")return""+la;let aa="";if(Array.isArray(la))for(let ca=0,ua;ca<la.length;ca++)(ua=cc(la[ca]))!==""&&(aa+=(aa&&" ")+ua);else for(let ca in la)la[ca]&&(aa+=(aa&&" ")+ca);return aa}var noop$5={value:()=>{}};function dispatch(){for(var la=0,aa=arguments.length,ca={},ua;la<aa;++la){if(!(ua=arguments[la]+"")||ua in ca||/[\s.]/.test(ua))throw new Error("illegal type: "+ua);ca[ua]=[]}return new Dispatch(ca)}function Dispatch(la){this._=la}function parseTypenames$1(la,aa){return la.trim().split(/^|\s+/).map(function(ca){var ua="",Sa=ca.indexOf(".");if(Sa>=0&&(ua=ca.slice(Sa+1),ca=ca.slice(0,Sa)),ca&&!aa.hasOwnProperty(ca))throw new Error("unknown type: "+ca);return{type:ca,name:ua}})}Dispatch.prototype=dispatch.prototype={constructor:Dispatch,on:function(la,aa){var ca=this._,ua=parseTypenames$1(la+"",ca),Sa,hl=-1,pl=ua.length;if(arguments.length<2){for(;++hl<pl;)if((Sa=(la=ua[hl]).type)&&(Sa=get$1(ca[Sa],la.name)))return Sa;return}if(aa!=null&&typeof aa!="function")throw new Error("invalid callback: "+aa);for(;++hl<pl;)if(Sa=(la=ua[hl]).type)ca[Sa]=set$1(ca[Sa],la.name,aa);else if(aa==null)for(Sa in ca)ca[Sa]=set$1(ca[Sa],la.name,null);return this},copy:function(){var la={},aa=this._;for(var ca in aa)la[ca]=aa[ca].slice();return new Dispatch(la)},call:function(la,aa){if((Sa=arguments.length-2)>0)for(var ca=new Array(Sa),ua=0,Sa,hl;ua<Sa;++ua)ca[ua]=arguments[ua+2];if(!this._.hasOwnProperty(la))throw new Error("unknown type: "+la);for(hl=this._[la],ua=0,Sa=hl.length;ua<Sa;++ua)hl[ua].value.apply(aa,ca)},apply:function(la,aa,ca){if(!this._.hasOwnProperty(la))throw new Error("unknown type: "+la);for(var ua=this._[la],Sa=0,hl=ua.length;Sa<hl;++Sa)ua[Sa].value.apply(aa,ca)}};function get$1(la,aa){for(var ca=0,ua=la.length,Sa;ca<ua;++ca)if((Sa=la[ca]).name===aa)return Sa.value}function set$1(la,aa,ca){for(var ua=0,Sa=la.length;ua<Sa;++ua)if(la[ua].name===aa){la[ua]=noop$5,la=la.slice(0,ua).concat(la.slice(ua+1));break}return ca!=null&&la.push({name:aa,value:ca}),la}var xhtml="http://www.w3.org/1999/xhtml";const namespaces={svg:"http://www.w3.org/2000/svg",xhtml,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function namespace(la){var aa=la+="",ca=aa.indexOf(":");return ca>=0&&(aa=la.slice(0,ca))!=="xmlns"&&(la=la.slice(ca+1)),namespaces.hasOwnProperty(aa)?{space:namespaces[aa],local:la}:la}function creatorInherit(la){return function(){var aa=this.ownerDocument,ca=this.namespaceURI;return ca===xhtml&&aa.documentElement.namespaceURI===xhtml?aa.createElement(la):aa.createElementNS(ca,la)}}function creatorFixed(la){return function(){return this.ownerDocument.createElementNS(la.space,la.local)}}function creator(la){var aa=namespace(la);return(aa.local?creatorFixed:creatorInherit)(aa)}function none(){}function selector(la){return la==null?none:function(){return this.querySelector(la)}}function selection_select(la){typeof la!="function"&&(la=selector(la));for(var aa=this._groups,ca=aa.length,ua=new Array(ca),Sa=0;Sa<ca;++Sa)for(var hl=aa[Sa],pl=hl.length,ml=ua[Sa]=new Array(pl),gl,wc,xu=0;xu<pl;++xu)(gl=hl[xu])&&(wc=la.call(gl,gl.__data__,xu,hl))&&("__data__"in gl&&(wc.__data__=gl.__data__),ml[xu]=wc);return new Selection$1(ua,this._parents)}function array(la){return la==null?[]:Array.isArray(la)?la:Array.from(la)}function empty(){return[]}function selectorAll(la){return la==null?empty:function(){return this.querySelectorAll(la)}}function arrayAll(la){return function(){return array(la.apply(this,arguments))}}function selection_selectAll(la){typeof la=="function"?la=arrayAll(la):la=selectorAll(la);for(var aa=this._groups,ca=aa.length,ua=[],Sa=[],hl=0;hl<ca;++hl)for(var pl=aa[hl],ml=pl.length,gl,wc=0;wc<ml;++wc)(gl=pl[wc])&&(ua.push(la.call(gl,gl.__data__,wc,pl)),Sa.push(gl));return new Selection$1(ua,Sa)}function matcher(la){return function(){return this.matches(la)}}function childMatcher(la){return function(aa){return aa.matches(la)}}var find=Array.prototype.find;function childFind(la){return function(){return find.call(this.children,la)}}function childFirst(){return this.firstElementChild}function selection_selectChild(la){return this.select(la==null?childFirst:childFind(typeof la=="function"?la:childMatcher(la)))}var filter$1=Array.prototype.filter;function children(){return Array.from(this.children)}function childrenFilter(la){return function(){return filter$1.call(this.children,la)}}function selection_selectChildren(la){return this.selectAll(la==null?children:childrenFilter(typeof la=="function"?la:childMatcher(la)))}function selection_filter(la){typeof la!="function"&&(la=matcher(la));for(var aa=this._groups,ca=aa.length,ua=new Array(ca),Sa=0;Sa<ca;++Sa)for(var hl=aa[Sa],pl=hl.length,ml=ua[Sa]=[],gl,wc=0;wc<pl;++wc)(gl=hl[wc])&&la.call(gl,gl.__data__,wc,hl)&&ml.push(gl);return new Selection$1(ua,this._parents)}function sparse(la){return new Array(la.length)}function selection_enter(){return new Selection$1(this._enter||this._groups.map(sparse),this._parents)}function EnterNode(la,aa){this.ownerDocument=la.ownerDocument,this.namespaceURI=la.namespaceURI,this._next=null,this._parent=la,this.__data__=aa}EnterNode.prototype={constructor:EnterNode,appendChild:function(la){return this._parent.insertBefore(la,this._next)},insertBefore:function(la,aa){return this._parent.insertBefore(la,aa)},querySelector:function(la){return this._parent.querySelector(la)},querySelectorAll:function(la){return this._parent.querySelectorAll(la)}};function constant$3(la){return function(){return la}}function bindIndex(la,aa,ca,ua,Sa,hl){for(var pl=0,ml,gl=aa.length,wc=hl.length;pl<wc;++pl)(ml=aa[pl])?(ml.__data__=hl[pl],ua[pl]=ml):ca[pl]=new EnterNode(la,hl[pl]);for(;pl<gl;++pl)(ml=aa[pl])&&(Sa[pl]=ml)}function bindKey(la,aa,ca,ua,Sa,hl,pl){var ml,gl,wc=new Map,xu=aa.length,ff=hl.length,jf=new Array(xu),Uf;for(ml=0;ml<xu;++ml)(gl=aa[ml])&&(jf[ml]=Uf=pl.call(gl,gl.__data__,ml,aa)+"",wc.has(Uf)?Sa[ml]=gl:wc.set(Uf,gl));for(ml=0;ml<ff;++ml)Uf=pl.call(la,hl[ml],ml,hl)+"",(gl=wc.get(Uf))?(ua[ml]=gl,gl.__data__=hl[ml],wc.delete(Uf)):ca[ml]=new EnterNode(la,hl[ml]);for(ml=0;ml<xu;++ml)(gl=aa[ml])&&wc.get(jf[ml])===gl&&(Sa[ml]=gl)}function datum(la){return la.__data__}function selection_data(la,aa){if(!arguments.length)return Array.from(this,datum);var ca=aa?bindKey:bindIndex,ua=this._parents,Sa=this._groups;typeof la!="function"&&(la=constant$3(la));for(var hl=Sa.length,pl=new Array(hl),ml=new Array(hl),gl=new Array(hl),wc=0;wc<hl;++wc){var xu=ua[wc],ff=Sa[wc],jf=ff.length,Uf=arraylike(la.call(xu,xu&&xu.__data__,wc,ua)),rp=Uf.length,np=ml[wc]=new Array(rp),qm=pl[wc]=new Array(rp),Vm=gl[wc]=new Array(jf);ca(xu,ff,np,qm,Vm,Uf,aa);for(var eg=0,tg=0,rg,ig;eg<rp;++eg)if(rg=np[eg]){for(eg>=tg&&(tg=eg+1);!(ig=qm[tg])&&++tg<rp;);rg._next=ig||null}}return pl=new Selection$1(pl,ua),pl._enter=ml,pl._exit=gl,pl}function arraylike(la){return typeof la=="object"&&"length"in la?la:Array.from(la)}function selection_exit(){return new Selection$1(this._exit||this._groups.map(sparse),this._parents)}function selection_join(la,aa,ca){var ua=this.enter(),Sa=this,hl=this.exit();return typeof la=="function"?(ua=la(ua),ua&&(ua=ua.selection())):ua=ua.append(la+""),aa!=null&&(Sa=aa(Sa),Sa&&(Sa=Sa.selection())),ca==null?hl.remove():ca(hl),ua&&Sa?ua.merge(Sa).order():Sa}function selection_merge(la){for(var aa=la.selection?la.selection():la,ca=this._groups,ua=aa._groups,Sa=ca.length,hl=ua.length,pl=Math.min(Sa,hl),ml=new Array(Sa),gl=0;gl<pl;++gl)for(var wc=ca[gl],xu=ua[gl],ff=wc.length,jf=ml[gl]=new Array(ff),Uf,rp=0;rp<ff;++rp)(Uf=wc[rp]||xu[rp])&&(jf[rp]=Uf);for(;gl<Sa;++gl)ml[gl]=ca[gl];return new Selection$1(ml,this._parents)}function selection_order(){for(var la=this._groups,aa=-1,ca=la.length;++aa<ca;)for(var ua=la[aa],Sa=ua.length-1,hl=ua[Sa],pl;--Sa>=0;)(pl=ua[Sa])&&(hl&&pl.compareDocumentPosition(hl)^4&&hl.parentNode.insertBefore(pl,hl),hl=pl);return this}function selection_sort(la){la||(la=ascending);function aa(ff,jf){return ff&&jf?la(ff.__data__,jf.__data__):!ff-!jf}for(var ca=this._groups,ua=ca.length,Sa=new Array(ua),hl=0;hl<ua;++hl){for(var pl=ca[hl],ml=pl.length,gl=Sa[hl]=new Array(ml),wc,xu=0;xu<ml;++xu)(wc=pl[xu])&&(gl[xu]=wc);gl.sort(aa)}return new Selection$1(Sa,this._parents).order()}function ascending(la,aa){return la<aa?-1:la>aa?1:la>=aa?0:NaN}function selection_call(){var la=arguments[0];return arguments[0]=this,la.apply(null,arguments),this}function selection_nodes(){return Array.from(this)}function selection_node(){for(var la=this._groups,aa=0,ca=la.length;aa<ca;++aa)for(var ua=la[aa],Sa=0,hl=ua.length;Sa<hl;++Sa){var pl=ua[Sa];if(pl)return pl}return null}function selection_size(){let la=0;for(const aa of this)++la;return la}function selection_empty(){return!this.node()}function selection_each(la){for(var aa=this._groups,ca=0,ua=aa.length;ca<ua;++ca)for(var Sa=aa[ca],hl=0,pl=Sa.length,ml;hl<pl;++hl)(ml=Sa[hl])&&la.call(ml,ml.__data__,hl,Sa);return this}function attrRemove$1(la){return function(){this.removeAttribute(la)}}function attrRemoveNS$1(la){return function(){this.removeAttributeNS(la.space,la.local)}}function attrConstant$1(la,aa){return function(){this.setAttribute(la,aa)}}function attrConstantNS$1(la,aa){return function(){this.setAttributeNS(la.space,la.local,aa)}}function attrFunction$1(la,aa){return function(){var ca=aa.apply(this,arguments);ca==null?this.removeAttribute(la):this.setAttribute(la,ca)}}function attrFunctionNS$1(la,aa){return function(){var ca=aa.apply(this,arguments);ca==null?this.removeAttributeNS(la.space,la.local):this.setAttributeNS(la.space,la.local,ca)}}function selection_attr(la,aa){var ca=namespace(la);if(arguments.length<2){var ua=this.node();return ca.local?ua.getAttributeNS(ca.space,ca.local):ua.getAttribute(ca)}return this.each((aa==null?ca.local?attrRemoveNS$1:attrRemove$1:typeof aa=="function"?ca.local?attrFunctionNS$1:attrFunction$1:ca.local?attrConstantNS$1:attrConstant$1)(ca,aa))}function defaultView(la){return la.ownerDocument&&la.ownerDocument.defaultView||la.document&&la||la.defaultView}function styleRemove$1(la){return function(){this.style.removeProperty(la)}}function styleConstant$1(la,aa,ca){return function(){this.style.setProperty(la,aa,ca)}}function styleFunction$1(la,aa,ca){return function(){var ua=aa.apply(this,arguments);ua==null?this.style.removeProperty(la):this.style.setProperty(la,ua,ca)}}function selection_style(la,aa,ca){return arguments.length>1?this.each((aa==null?styleRemove$1:typeof aa=="function"?styleFunction$1:styleConstant$1)(la,aa,ca??"")):styleValue(this.node(),la)}function styleValue(la,aa){return la.style.getPropertyValue(aa)||defaultView(la).getComputedStyle(la,null).getPropertyValue(aa)}function propertyRemove(la){return function(){delete this[la]}}function propertyConstant(la,aa){return function(){this[la]=aa}}function propertyFunction(la,aa){return function(){var ca=aa.apply(this,arguments);ca==null?delete this[la]:this[la]=ca}}function selection_property(la,aa){return arguments.length>1?this.each((aa==null?propertyRemove:typeof aa=="function"?propertyFunction:propertyConstant)(la,aa)):this.node()[la]}function classArray(la){return la.trim().split(/^|\s+/)}function classList(la){return la.classList||new ClassList(la)}function ClassList(la){this._node=la,this._names=classArray(la.getAttribute("class")||"")}ClassList.prototype={add:function(la){var aa=this._names.indexOf(la);aa<0&&(this._names.push(la),this._node.setAttribute("class",this._names.join(" ")))},remove:function(la){var aa=this._names.indexOf(la);aa>=0&&(this._names.splice(aa,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(la){return this._names.indexOf(la)>=0}};function classedAdd(la,aa){for(var ca=classList(la),ua=-1,Sa=aa.length;++ua<Sa;)ca.add(aa[ua])}function classedRemove(la,aa){for(var ca=classList(la),ua=-1,Sa=aa.length;++ua<Sa;)ca.remove(aa[ua])}function classedTrue(la){return function(){classedAdd(this,la)}}function classedFalse(la){return function(){classedRemove(this,la)}}function classedFunction(la,aa){return function(){(aa.apply(this,arguments)?classedAdd:classedRemove)(this,la)}}function selection_classed(la,aa){var ca=classArray(la+"");if(arguments.length<2){for(var ua=classList(this.node()),Sa=-1,hl=ca.length;++Sa<hl;)if(!ua.contains(ca[Sa]))return!1;return!0}return this.each((typeof aa=="function"?classedFunction:aa?classedTrue:classedFalse)(ca,aa))}function textRemove(){this.textContent=""}function textConstant$1(la){return function(){this.textContent=la}}function textFunction$1(la){return function(){var aa=la.apply(this,arguments);this.textContent=aa??""}}function selection_text(la){return arguments.length?this.each(la==null?textRemove:(typeof la=="function"?textFunction$1:textConstant$1)(la)):this.node().textContent}function htmlRemove(){this.innerHTML=""}function htmlConstant(la){return function(){this.innerHTML=la}}function htmlFunction(la){return function(){var aa=la.apply(this,arguments);this.innerHTML=aa??""}}function selection_html(la){return arguments.length?this.each(la==null?htmlRemove:(typeof la=="function"?htmlFunction:htmlConstant)(la)):this.node().innerHTML}function raise(){this.nextSibling&&this.parentNode.appendChild(this)}function selection_raise(){return this.each(raise)}function lower(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function selection_lower(){return this.each(lower)}function selection_append(la){var aa=typeof la=="function"?la:creator(la);return this.select(function(){return this.appendChild(aa.apply(this,arguments))})}function constantNull(){return null}function selection_insert(la,aa){var ca=typeof la=="function"?la:creator(la),ua=aa==null?constantNull:typeof aa=="function"?aa:selector(aa);return this.select(function(){return this.insertBefore(ca.apply(this,arguments),ua.apply(this,arguments)||null)})}function remove(){var la=this.parentNode;la&&la.removeChild(this)}function selection_remove(){return this.each(remove)}function selection_cloneShallow(){var la=this.cloneNode(!1),aa=this.parentNode;return aa?aa.insertBefore(la,this.nextSibling):la}function selection_cloneDeep(){var la=this.cloneNode(!0),aa=this.parentNode;return aa?aa.insertBefore(la,this.nextSibling):la}function selection_clone(la){return this.select(la?selection_cloneDeep:selection_cloneShallow)}function selection_datum(la){return arguments.length?this.property("__data__",la):this.node().__data__}function contextListener(la){return function(aa){la.call(this,aa,this.__data__)}}function parseTypenames(la){return la.trim().split(/^|\s+/).map(function(aa){var ca="",ua=aa.indexOf(".");return ua>=0&&(ca=aa.slice(ua+1),aa=aa.slice(0,ua)),{type:aa,name:ca}})}function onRemove(la){return function(){var aa=this.__on;if(aa){for(var ca=0,ua=-1,Sa=aa.length,hl;ca<Sa;++ca)hl=aa[ca],(!la.type||hl.type===la.type)&&hl.name===la.name?this.removeEventListener(hl.type,hl.listener,hl.options):aa[++ua]=hl;++ua?aa.length=ua:delete this.__on}}}function onAdd(la,aa,ca){return function(){var ua=this.__on,Sa,hl=contextListener(aa);if(ua){for(var pl=0,ml=ua.length;pl<ml;++pl)if((Sa=ua[pl]).type===la.type&&Sa.name===la.name){this.removeEventListener(Sa.type,Sa.listener,Sa.options),this.addEventListener(Sa.type,Sa.listener=hl,Sa.options=ca),Sa.value=aa;return}}this.addEventListener(la.type,hl,ca),Sa={type:la.type,name:la.name,value:aa,listener:hl,options:ca},ua?ua.push(Sa):this.__on=[Sa]}}function selection_on(la,aa,ca){var ua=parseTypenames(la+""),Sa,hl=ua.length,pl;if(arguments.length<2){var ml=this.node().__on;if(ml){for(var gl=0,wc=ml.length,xu;gl<wc;++gl)for(Sa=0,xu=ml[gl];Sa<hl;++Sa)if((pl=ua[Sa]).type===xu.type&&pl.name===xu.name)return xu.value}return}for(ml=aa?onAdd:onRemove,Sa=0;Sa<hl;++Sa)this.each(ml(ua[Sa],aa,ca));return this}function dispatchEvent(la,aa,ca){var ua=defaultView(la),Sa=ua.CustomEvent;typeof Sa=="function"?Sa=new Sa(aa,ca):(Sa=ua.document.createEvent("Event"),ca?(Sa.initEvent(aa,ca.bubbles,ca.cancelable),Sa.detail=ca.detail):Sa.initEvent(aa,!1,!1)),la.dispatchEvent(Sa)}function dispatchConstant(la,aa){return function(){return dispatchEvent(this,la,aa)}}function dispatchFunction(la,aa){return function(){return dispatchEvent(this,la,aa.apply(this,arguments))}}function selection_dispatch(la,aa){return this.each((typeof aa=="function"?dispatchFunction:dispatchConstant)(la,aa))}function*selection_iterator(){for(var la=this._groups,aa=0,ca=la.length;aa<ca;++aa)for(var ua=la[aa],Sa=0,hl=ua.length,pl;Sa<hl;++Sa)(pl=ua[Sa])&&(yield pl)}var root=[null];function Selection$1(la,aa){this._groups=la,this._parents=aa}function selection(){return new Selection$1([[document.documentElement]],root)}function selection_selection(){return this}Selection$1.prototype=selection.prototype={constructor:Selection$1,select:selection_select,selectAll:selection_selectAll,selectChild:selection_selectChild,selectChildren:selection_selectChildren,filter:selection_filter,data:selection_data,enter:selection_enter,exit:selection_exit,join:selection_join,merge:selection_merge,selection:selection_selection,order:selection_order,sort:selection_sort,call:selection_call,nodes:selection_nodes,node:selection_node,size:selection_size,empty:selection_empty,each:selection_each,attr:selection_attr,style:selection_style,property:selection_property,classed:selection_classed,text:selection_text,html:selection_html,raise:selection_raise,lower:selection_lower,append:selection_append,insert:selection_insert,remove:selection_remove,clone:selection_clone,datum:selection_datum,on:selection_on,dispatch:selection_dispatch,[Symbol.iterator]:selection_iterator};function select(la){return typeof la=="string"?new Selection$1([[document.querySelector(la)]],[document.documentElement]):new Selection$1([[la]],root)}function sourceEvent(la){let aa;for(;aa=la.sourceEvent;)la=aa;return la}function pointer(la,aa){if(la=sourceEvent(la),aa===void 0&&(aa=la.currentTarget),aa){var ca=aa.ownerSVGElement||aa;if(ca.createSVGPoint){var ua=ca.createSVGPoint();return ua.x=la.clientX,ua.y=la.clientY,ua=ua.matrixTransform(aa.getScreenCTM().inverse()),[ua.x,ua.y]}if(aa.getBoundingClientRect){var Sa=aa.getBoundingClientRect();return[la.clientX-Sa.left-aa.clientLeft,la.clientY-Sa.top-aa.clientTop]}}return[la.pageX,la.pageY]}const nonpassive={passive:!1},nonpassivecapture={capture:!0,passive:!1};function nopropagation$1(la){la.stopImmediatePropagation()}function noevent$1(la){la.preventDefault(),la.stopImmediatePropagation()}function dragDisable(la){var aa=la.document.documentElement,ca=select(la).on("dragstart.drag",noevent$1,nonpassivecapture);"onselectstart"in aa?ca.on("selectstart.drag",noevent$1,nonpassivecapture):(aa.__noselect=aa.style.MozUserSelect,aa.style.MozUserSelect="none")}function yesdrag(la,aa){var ca=la.document.documentElement,ua=select(la).on("dragstart.drag",null);aa&&(ua.on("click.drag",noevent$1,nonpassivecapture),setTimeout(function(){ua.on("click.drag",null)},0)),"onselectstart"in ca?ua.on("selectstart.drag",null):(ca.style.MozUserSelect=ca.__noselect,delete ca.__noselect)}const constant$2=la=>()=>la;function DragEvent(la,{sourceEvent:aa,subject:ca,target:ua,identifier:Sa,active:hl,x:pl,y:ml,dx:gl,dy:wc,dispatch:xu}){Object.defineProperties(this,{type:{value:la,enumerable:!0,configurable:!0},sourceEvent:{value:aa,enumerable:!0,configurable:!0},subject:{value:ca,enumerable:!0,configurable:!0},target:{value:ua,enumerable:!0,configurable:!0},identifier:{value:Sa,enumerable:!0,configurable:!0},active:{value:hl,enumerable:!0,configurable:!0},x:{value:pl,enumerable:!0,configurable:!0},y:{value:ml,enumerable:!0,configurable:!0},dx:{value:gl,enumerable:!0,configurable:!0},dy:{value:wc,enumerable:!0,configurable:!0},_:{value:xu}})}DragEvent.prototype.on=function(){var la=this._.on.apply(this._,arguments);return la===this._?this:la};function defaultFilter$1(la){return!la.ctrlKey&&!la.button}function defaultContainer(){return this.parentNode}function defaultSubject(la,aa){return aa??{x:la.x,y:la.y}}function defaultTouchable$1(){return navigator.maxTouchPoints||"ontouchstart"in this}function drag$1(){var la=defaultFilter$1,aa=defaultContainer,ca=defaultSubject,ua=defaultTouchable$1,Sa={},hl=dispatch("start","drag","end"),pl=0,ml,gl,wc,xu,ff=0;function jf(rg){rg.on("mousedown.drag",Uf).filter(ua).on("touchstart.drag",qm).on("touchmove.drag",Vm,nonpassive).on("touchend.drag touchcancel.drag",eg).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function Uf(rg,ig){if(!(xu||!la.call(this,rg,ig))){var vv=tg(this,aa.call(this,rg,ig),rg,ig,"mouse");vv&&(select(rg.view).on("mousemove.drag",rp,nonpassivecapture).on("mouseup.drag",np,nonpassivecapture),dragDisable(rg.view),nopropagation$1(rg),wc=!1,ml=rg.clientX,gl=rg.clientY,vv("start",rg))}}function rp(rg){if(noevent$1(rg),!wc){var ig=rg.clientX-ml,vv=rg.clientY-gl;wc=ig*ig+vv*vv>ff}Sa.mouse("drag",rg)}function np(rg){select(rg.view).on("mousemove.drag mouseup.drag",null),yesdrag(rg.view,wc),noevent$1(rg),Sa.mouse("end",rg)}function qm(rg,ig){if(la.call(this,rg,ig)){var vv=rg.changedTouches,R1=aa.call(this,rg,ig),O1=vv.length,K0,J0;for(K0=0;K0<O1;++K0)(J0=tg(this,R1,rg,ig,vv[K0].identifier,vv[K0]))&&(nopropagation$1(rg),J0("start",rg,vv[K0]))}}function Vm(rg){var ig=rg.changedTouches,vv=ig.length,R1,O1;for(R1=0;R1<vv;++R1)(O1=Sa[ig[R1].identifier])&&(noevent$1(rg),O1("drag",rg,ig[R1]))}function eg(rg){var ig=rg.changedTouches,vv=ig.length,R1,O1;for(xu&&clearTimeout(xu),xu=setTimeout(function(){xu=null},500),R1=0;R1<vv;++R1)(O1=Sa[ig[R1].identifier])&&(nopropagation$1(rg),O1("end",rg,ig[R1]))}function tg(rg,ig,vv,R1,O1,K0){var J0=hl.copy(),Hw=pointer(K0||vv,ig),qw,Y0,G0;if((G0=ca.call(rg,new DragEvent("beforestart",{sourceEvent:vv,target:jf,identifier:O1,active:pl,x:Hw[0],y:Hw[1],dx:0,dy:0,dispatch:J0}),R1))!=null)return qw=G0.x-Hw[0]||0,Y0=G0.y-Hw[1]||0,function X0(d_,f_,zN){var BN=Hw,iF;switch(d_){case"start":Sa[O1]=X0,iF=pl++;break;case"end":delete Sa[O1],--pl;case"drag":Hw=pointer(zN||f_,ig),iF=pl;break}J0.call(d_,rg,new DragEvent(d_,{sourceEvent:f_,subject:G0,target:jf,identifier:O1,active:iF,x:Hw[0]+qw,y:Hw[1]+Y0,dx:Hw[0]-BN[0],dy:Hw[1]-BN[1],dispatch:J0}),R1)}}return jf.filter=function(rg){return arguments.length?(la=typeof rg=="function"?rg:constant$2(!!rg),jf):la},jf.container=function(rg){return arguments.length?(aa=typeof rg=="function"?rg:constant$2(rg),jf):aa},jf.subject=function(rg){return arguments.length?(ca=typeof rg=="function"?rg:constant$2(rg),jf):ca},jf.touchable=function(rg){return arguments.length?(ua=typeof rg=="function"?rg:constant$2(!!rg),jf):ua},jf.on=function(){var rg=hl.on.apply(hl,arguments);return rg===hl?jf:rg},jf.clickDistance=function(rg){return arguments.length?(ff=(rg=+rg)*rg,jf):Math.sqrt(ff)},jf}function define(la,aa,ca){la.prototype=aa.prototype=ca,ca.constructor=la}function extend(la,aa){var ca=Object.create(la.prototype);for(var ua in aa)ca[ua]=aa[ua];return ca}function Color(){}var darker=.7,brighter=1/darker,reI="\\s*([+-]?\\d+)\\s*",reN="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",reP="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",reHex=/^#([0-9a-f]{3,8})$/,reRgbInteger=new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`),reRgbPercent=new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`),reRgbaInteger=new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`),reRgbaPercent=new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`),reHslPercent=new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`),reHslaPercent=new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`),named={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};define(Color,color$2,{copy(la){return Object.assign(new this.constructor,this,la)},displayable(){return this.rgb().displayable()},hex:color_formatHex,formatHex:color_formatHex,formatHex8:color_formatHex8,formatHsl:color_formatHsl,formatRgb:color_formatRgb,toString:color_formatRgb});function color_formatHex(){return this.rgb().formatHex()}function color_formatHex8(){return this.rgb().formatHex8()}function color_formatHsl(){return hslConvert(this).formatHsl()}function color_formatRgb(){return this.rgb().formatRgb()}function color$2(la){var aa,ca;return la=(la+"").trim().toLowerCase(),(aa=reHex.exec(la))?(ca=aa[1].length,aa=parseInt(aa[1],16),ca===6?rgbn(aa):ca===3?new Rgb(aa>>8&15|aa>>4&240,aa>>4&15|aa&240,(aa&15)<<4|aa&15,1):ca===8?rgba$1(aa>>24&255,aa>>16&255,aa>>8&255,(aa&255)/255):ca===4?rgba$1(aa>>12&15|aa>>8&240,aa>>8&15|aa>>4&240,aa>>4&15|aa&240,((aa&15)<<4|aa&15)/255):null):(aa=reRgbInteger.exec(la))?new Rgb(aa[1],aa[2],aa[3],1):(aa=reRgbPercent.exec(la))?new Rgb(aa[1]*255/100,aa[2]*255/100,aa[3]*255/100,1):(aa=reRgbaInteger.exec(la))?rgba$1(aa[1],aa[2],aa[3],aa[4]):(aa=reRgbaPercent.exec(la))?rgba$1(aa[1]*255/100,aa[2]*255/100,aa[3]*255/100,aa[4]):(aa=reHslPercent.exec(la))?hsla$1(aa[1],aa[2]/100,aa[3]/100,1):(aa=reHslaPercent.exec(la))?hsla$1(aa[1],aa[2]/100,aa[3]/100,aa[4]):named.hasOwnProperty(la)?rgbn(named[la]):la==="transparent"?new Rgb(NaN,NaN,NaN,0):null}function rgbn(la){return new Rgb(la>>16&255,la>>8&255,la&255,1)}function rgba$1(la,aa,ca,ua){return ua<=0&&(la=aa=ca=NaN),new Rgb(la,aa,ca,ua)}function rgbConvert(la){return la instanceof Color||(la=color$2(la)),la?(la=la.rgb(),new Rgb(la.r,la.g,la.b,la.opacity)):new Rgb}function rgb(la,aa,ca,ua){return arguments.length===1?rgbConvert(la):new Rgb(la,aa,ca,ua??1)}function Rgb(la,aa,ca,ua){this.r=+la,this.g=+aa,this.b=+ca,this.opacity=+ua}define(Rgb,rgb,extend(Color,{brighter(la){return la=la==null?brighter:Math.pow(brighter,la),new Rgb(this.r*la,this.g*la,this.b*la,this.opacity)},darker(la){return la=la==null?darker:Math.pow(darker,la),new Rgb(this.r*la,this.g*la,this.b*la,this.opacity)},rgb(){return this},clamp(){return new Rgb(clampi(this.r),clampi(this.g),clampi(this.b),clampa(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rgb_formatHex,formatHex:rgb_formatHex,formatHex8:rgb_formatHex8,formatRgb:rgb_formatRgb,toString:rgb_formatRgb}));function rgb_formatHex(){return`#${hex$1(this.r)}${hex$1(this.g)}${hex$1(this.b)}`}function rgb_formatHex8(){return`#${hex$1(this.r)}${hex$1(this.g)}${hex$1(this.b)}${hex$1((isNaN(this.opacity)?1:this.opacity)*255)}`}function rgb_formatRgb(){const la=clampa(this.opacity);return`${la===1?"rgb(":"rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${la===1?")":`, ${la})`}`}function clampa(la){return isNaN(la)?1:Math.max(0,Math.min(1,la))}function clampi(la){return Math.max(0,Math.min(255,Math.round(la)||0))}function hex$1(la){return la=clampi(la),(la<16?"0":"")+la.toString(16)}function hsla$1(la,aa,ca,ua){return ua<=0?la=aa=ca=NaN:ca<=0||ca>=1?la=aa=NaN:aa<=0&&(la=NaN),new Hsl(la,aa,ca,ua)}function hslConvert(la){if(la instanceof Hsl)return new Hsl(la.h,la.s,la.l,la.opacity);if(la instanceof Color||(la=color$2(la)),!la)return new Hsl;if(la instanceof Hsl)return la;la=la.rgb();var aa=la.r/255,ca=la.g/255,ua=la.b/255,Sa=Math.min(aa,ca,ua),hl=Math.max(aa,ca,ua),pl=NaN,ml=hl-Sa,gl=(hl+Sa)/2;return ml?(aa===hl?pl=(ca-ua)/ml+(ca<ua)*6:ca===hl?pl=(ua-aa)/ml+2:pl=(aa-ca)/ml+4,ml/=gl<.5?hl+Sa:2-hl-Sa,pl*=60):ml=gl>0&&gl<1?0:pl,new Hsl(pl,ml,gl,la.opacity)}function hsl(la,aa,ca,ua){return arguments.length===1?hslConvert(la):new Hsl(la,aa,ca,ua??1)}function Hsl(la,aa,ca,ua){this.h=+la,this.s=+aa,this.l=+ca,this.opacity=+ua}define(Hsl,hsl,extend(Color,{brighter(la){return la=la==null?brighter:Math.pow(brighter,la),new Hsl(this.h,this.s,this.l*la,this.opacity)},darker(la){return la=la==null?darker:Math.pow(darker,la),new Hsl(this.h,this.s,this.l*la,this.opacity)},rgb(){var la=this.h%360+(this.h<0)*360,aa=isNaN(la)||isNaN(this.s)?0:this.s,ca=this.l,ua=ca+(ca<.5?ca:1-ca)*aa,Sa=2*ca-ua;return new Rgb(hsl2rgb(la>=240?la-240:la+120,Sa,ua),hsl2rgb(la,Sa,ua),hsl2rgb(la<120?la+240:la-120,Sa,ua),this.opacity)},clamp(){return new Hsl(clamph(this.h),clampt(this.s),clampt(this.l),clampa(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const la=clampa(this.opacity);return`${la===1?"hsl(":"hsla("}${clamph(this.h)}, ${clampt(this.s)*100}%, ${clampt(this.l)*100}%${la===1?")":`, ${la})`}`}}));function clamph(la){return la=(la||0)%360,la<0?la+360:la}function clampt(la){return Math.max(0,Math.min(1,la||0))}function hsl2rgb(la,aa,ca){return(la<60?aa+(ca-aa)*la/60:la<180?ca:la<240?aa+(ca-aa)*(240-la)/60:aa)*255}const constant$1=la=>()=>la;function linear(la,aa){return function(ca){return la+ca*aa}}function exponential(la,aa,ca){return la=Math.pow(la,ca),aa=Math.pow(aa,ca)-la,ca=1/ca,function(ua){return Math.pow(la+ua*aa,ca)}}function gamma(la){return(la=+la)==1?nogamma:function(aa,ca){return ca-aa?exponential(aa,ca,la):constant$1(isNaN(aa)?ca:aa)}}function nogamma(la,aa){var ca=aa-la;return ca?linear(la,ca):constant$1(isNaN(la)?aa:la)}const interpolateRgb=(function la(aa){var ca=gamma(aa);function ua(Sa,hl){var pl=ca((Sa=rgb(Sa)).r,(hl=rgb(hl)).r),ml=ca(Sa.g,hl.g),gl=ca(Sa.b,hl.b),wc=nogamma(Sa.opacity,hl.opacity);return function(xu){return Sa.r=pl(xu),Sa.g=ml(xu),Sa.b=gl(xu),Sa.opacity=wc(xu),Sa+""}}return ua.gamma=la,ua})(1);function numberArray(la,aa){aa||(aa=[]);var ca=la?Math.min(aa.length,la.length):0,ua=aa.slice(),Sa;return function(hl){for(Sa=0;Sa<ca;++Sa)ua[Sa]=la[Sa]*(1-hl)+aa[Sa]*hl;return ua}}function isNumberArray(la){return ArrayBuffer.isView(la)&&!(la instanceof DataView)}function genericArray(la,aa){var ca=aa?aa.length:0,ua=la?Math.min(ca,la.length):0,Sa=new Array(ua),hl=new Array(ca),pl;for(pl=0;pl<ua;++pl)Sa[pl]=interpolate$3(la[pl],aa[pl]);for(;pl<ca;++pl)hl[pl]=aa[pl];return function(ml){for(pl=0;pl<ua;++pl)hl[pl]=Sa[pl](ml);return hl}}function date(la,aa){var ca=new Date;return la=+la,aa=+aa,function(ua){return ca.setTime(la*(1-ua)+aa*ua),ca}}function interpolateNumber(la,aa){return la=+la,aa=+aa,function(ca){return la*(1-ca)+aa*ca}}function object(la,aa){var ca={},ua={},Sa;(la===null||typeof la!="object")&&(la={}),(aa===null||typeof aa!="object")&&(aa={});for(Sa in aa)Sa in la?ca[Sa]=interpolate$3(la[Sa],aa[Sa]):ua[Sa]=aa[Sa];return function(hl){for(Sa in ca)ua[Sa]=ca[Sa](hl);return ua}}var reA=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,reB=new RegExp(reA.source,"g");function zero(la){return function(){return la}}function one(la){return function(aa){return la(aa)+""}}function interpolateString(la,aa){var ca=reA.lastIndex=reB.lastIndex=0,ua,Sa,hl,pl=-1,ml=[],gl=[];for(la=la+"",aa=aa+"";(ua=reA.exec(la))&&(Sa=reB.exec(aa));)(hl=Sa.index)>ca&&(hl=aa.slice(ca,hl),ml[pl]?ml[pl]+=hl:ml[++pl]=hl),(ua=ua[0])===(Sa=Sa[0])?ml[pl]?ml[pl]+=Sa:ml[++pl]=Sa:(ml[++pl]=null,gl.push({i:pl,x:interpolateNumber(ua,Sa)})),ca=reB.lastIndex;return ca<aa.length&&(hl=aa.slice(ca),ml[pl]?ml[pl]+=hl:ml[++pl]=hl),ml.length<2?gl[0]?one(gl[0].x):zero(aa):(aa=gl.length,function(wc){for(var xu=0,ff;xu<aa;++xu)ml[(ff=gl[xu]).i]=ff.x(wc);return ml.join("")})}function interpolate$3(la,aa){var ca=typeof aa,ua;return aa==null||ca==="boolean"?constant$1(aa):(ca==="number"?interpolateNumber:ca==="string"?(ua=color$2(aa))?(aa=ua,interpolateRgb):interpolateString:aa instanceof color$2?interpolateRgb:aa instanceof Date?date:isNumberArray(aa)?numberArray:Array.isArray(aa)?genericArray:typeof aa.valueOf!="function"&&typeof aa.toString!="function"||isNaN(aa)?object:interpolateNumber)(la,aa)}var degrees$1=180/Math.PI,identity$3={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function decompose(la,aa,ca,ua,Sa,hl){var pl,ml,gl;return(pl=Math.sqrt(la*la+aa*aa))&&(la/=pl,aa/=pl),(gl=la*ca+aa*ua)&&(ca-=la*gl,ua-=aa*gl),(ml=Math.sqrt(ca*ca+ua*ua))&&(ca/=ml,ua/=ml,gl/=ml),la*ua<aa*ca&&(la=-la,aa=-aa,gl=-gl,pl=-pl),{translateX:Sa,translateY:hl,rotate:Math.atan2(aa,la)*degrees$1,skewX:Math.atan(gl)*degrees$1,scaleX:pl,scaleY:ml}}var svgNode;function parseCss(la){const aa=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(la+"");return aa.isIdentity?identity$3:decompose(aa.a,aa.b,aa.c,aa.d,aa.e,aa.f)}function parseSvg(la){return la==null||(svgNode||(svgNode=document.createElementNS("http://www.w3.org/2000/svg","g")),svgNode.setAttribute("transform",la),!(la=svgNode.transform.baseVal.consolidate()))?identity$3:(la=la.matrix,decompose(la.a,la.b,la.c,la.d,la.e,la.f))}function interpolateTransform(la,aa,ca,ua){function Sa(wc){return wc.length?wc.pop()+" ":""}function hl(wc,xu,ff,jf,Uf,rp){if(wc!==ff||xu!==jf){var np=Uf.push("translate(",null,aa,null,ca);rp.push({i:np-4,x:interpolateNumber(wc,ff)},{i:np-2,x:interpolateNumber(xu,jf)})}else(ff||jf)&&Uf.push("translate("+ff+aa+jf+ca)}function pl(wc,xu,ff,jf){wc!==xu?(wc-xu>180?xu+=360:xu-wc>180&&(wc+=360),jf.push({i:ff.push(Sa(ff)+"rotate(",null,ua)-2,x:interpolateNumber(wc,xu)})):xu&&ff.push(Sa(ff)+"rotate("+xu+ua)}function ml(wc,xu,ff,jf){wc!==xu?jf.push({i:ff.push(Sa(ff)+"skewX(",null,ua)-2,x:interpolateNumber(wc,xu)}):xu&&ff.push(Sa(ff)+"skewX("+xu+ua)}function gl(wc,xu,ff,jf,Uf,rp){if(wc!==ff||xu!==jf){var np=Uf.push(Sa(Uf)+"scale(",null,",",null,")");rp.push({i:np-4,x:interpolateNumber(wc,ff)},{i:np-2,x:interpolateNumber(xu,jf)})}else(ff!==1||jf!==1)&&Uf.push(Sa(Uf)+"scale("+ff+","+jf+")")}return function(wc,xu){var ff=[],jf=[];return wc=la(wc),xu=la(xu),hl(wc.translateX,wc.translateY,xu.translateX,xu.translateY,ff,jf),pl(wc.rotate,xu.rotate,ff,jf),ml(wc.skewX,xu.skewX,ff,jf),gl(wc.scaleX,wc.scaleY,xu.scaleX,xu.scaleY,ff,jf),wc=xu=null,function(Uf){for(var rp=-1,np=jf.length,qm;++rp<np;)ff[(qm=jf[rp]).i]=qm.x(Uf);return ff.join("")}}}var interpolateTransformCss=interpolateTransform(parseCss,"px, ","px)","deg)"),interpolateTransformSvg=interpolateTransform(parseSvg,", ",")",")"),epsilon2=1e-12;function cosh(la){return((la=Math.exp(la))+1/la)/2}function sinh(la){return((la=Math.exp(la))-1/la)/2}function tanh(la){return((la=Math.exp(2*la))-1)/(la+1)}const interpolateZoom=(function la(aa,ca,ua){function Sa(hl,pl){var ml=hl[0],gl=hl[1],wc=hl[2],xu=pl[0],ff=pl[1],jf=pl[2],Uf=xu-ml,rp=ff-gl,np=Uf*Uf+rp*rp,qm,Vm;if(np<epsilon2)Vm=Math.log(jf/wc)/aa,qm=function(R1){return[ml+R1*Uf,gl+R1*rp,wc*Math.exp(aa*R1*Vm)]};else{var eg=Math.sqrt(np),tg=(jf*jf-wc*wc+ua*np)/(2*wc*ca*eg),rg=(jf*jf-wc*wc-ua*np)/(2*jf*ca*eg),ig=Math.log(Math.sqrt(tg*tg+1)-tg),vv=Math.log(Math.sqrt(rg*rg+1)-rg);Vm=(vv-ig)/aa,qm=function(R1){var O1=R1*Vm,K0=cosh(ig),J0=wc/(ca*eg)*(K0*tanh(aa*O1+ig)-sinh(ig));return[ml+J0*Uf,gl+J0*rp,wc*K0/cosh(aa*O1+ig)]}}return qm.duration=Vm*1e3*aa/Math.SQRT2,qm}return Sa.rho=function(hl){var pl=Math.max(.001,+hl),ml=pl*pl,gl=ml*ml;return la(pl,ml,gl)},Sa})(Math.SQRT2,2,4);var frame$1=0,timeout$1=0,interval=0,pokeDelay=1e3,taskHead,taskTail,clockLast=0,clockNow=0,clockSkew=0,clock=typeof performance=="object"&&performance.now?performance:Date,setFrame=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(la){setTimeout(la,17)};function now$1(){return clockNow||(setFrame(clearNow),clockNow=clock.now()+clockSkew)}function clearNow(){clockNow=0}function Timer(){this._call=this._time=this._next=null}Timer.prototype=timer.prototype={constructor:Timer,restart:function(la,aa,ca){if(typeof la!="function")throw new TypeError("callback is not a function");ca=(ca==null?now$1():+ca)+(aa==null?0:+aa),!this._next&&taskTail!==this&&(taskTail?taskTail._next=this:taskHead=this,taskTail=this),this._call=la,this._time=ca,sleep()},stop:function(){this._call&&(this._call=null,this._time=1/0,sleep())}};function timer(la,aa,ca){var ua=new Timer;return ua.restart(la,aa,ca),ua}function timerFlush(){now$1(),++frame$1;for(var la=taskHead,aa;la;)(aa=clockNow-la._time)>=0&&la._call.call(void 0,aa),la=la._next;--frame$1}function wake(){clockNow=(clockLast=clock.now())+clockSkew,frame$1=timeout$1=0;try{timerFlush()}finally{frame$1=0,nap(),clockNow=0}}function poke(){var la=clock.now(),aa=la-clockLast;aa>pokeDelay&&(clockSkew-=aa,clockLast=la)}function nap(){for(var la,aa=taskHead,ca,ua=1/0;aa;)aa._call?(ua>aa._time&&(ua=aa._time),la=aa,aa=aa._next):(ca=aa._next,aa._next=null,aa=la?la._next=ca:taskHead=ca);taskTail=la,sleep(ua)}function sleep(la){if(!frame$1){timeout$1&&(timeout$1=clearTimeout(timeout$1));var aa=la-clockNow;aa>24?(la<1/0&&(timeout$1=setTimeout(wake,la-clock.now()-clockSkew)),interval&&(interval=clearInterval(interval))):(interval||(clockLast=clock.now(),interval=setInterval(poke,pokeDelay)),frame$1=1,setFrame(wake))}}function timeout(la,aa,ca){var ua=new Timer;return aa=aa==null?0:+aa,ua.restart(Sa=>{ua.stop(),la(Sa+aa)},aa,ca),ua}var emptyOn=dispatch("start","end","cancel","interrupt"),emptyTween=[],CREATED=0,SCHEDULED=1,STARTING=2,STARTED=3,RUNNING=4,ENDING=5,ENDED=6;function schedule(la,aa,ca,ua,Sa,hl){var pl=la.__transition;if(!pl)la.__transition={};else if(ca in pl)return;create$1(la,ca,{name:aa,index:ua,group:Sa,on:emptyOn,tween:emptyTween,time:hl.time,delay:hl.delay,duration:hl.duration,ease:hl.ease,timer:null,state:CREATED})}function init$1(la,aa){var ca=get(la,aa);if(ca.state>CREATED)throw new Error("too late; already scheduled");return ca}function set(la,aa){var ca=get(la,aa);if(ca.state>STARTED)throw new Error("too late; already running");return ca}function get(la,aa){var ca=la.__transition;if(!ca||!(ca=ca[aa]))throw new Error("transition not found");return ca}function create$1(la,aa,ca){var ua=la.__transition,Sa;ua[aa]=ca,ca.timer=timer(hl,0,ca.time);function hl(wc){ca.state=SCHEDULED,ca.timer.restart(pl,ca.delay,ca.time),ca.delay<=wc&&pl(wc-ca.delay)}function pl(wc){var xu,ff,jf,Uf;if(ca.state!==SCHEDULED)return gl();for(xu in ua)if(Uf=ua[xu],Uf.name===ca.name){if(Uf.state===STARTED)return timeout(pl);Uf.state===RUNNING?(Uf.state=ENDED,Uf.timer.stop(),Uf.on.call("interrupt",la,la.__data__,Uf.index,Uf.group),delete ua[xu]):+xu<aa&&(Uf.state=ENDED,Uf.timer.stop(),Uf.on.call("cancel",la,la.__data__,Uf.index,Uf.group),delete ua[xu])}if(timeout(function(){ca.state===STARTED&&(ca.state=RUNNING,ca.timer.restart(ml,ca.delay,ca.time),ml(wc))}),ca.state=STARTING,ca.on.call("start",la,la.__data__,ca.index,ca.group),ca.state===STARTING){for(ca.state=STARTED,Sa=new Array(jf=ca.tween.length),xu=0,ff=-1;xu<jf;++xu)(Uf=ca.tween[xu].value.call(la,la.__data__,ca.index,ca.group))&&(Sa[++ff]=Uf);Sa.length=ff+1}}function ml(wc){for(var xu=wc<ca.duration?ca.ease.call(null,wc/ca.duration):(ca.timer.restart(gl),ca.state=ENDING,1),ff=-1,jf=Sa.length;++ff<jf;)Sa[ff].call(la,xu);ca.state===ENDING&&(ca.on.call("end",la,la.__data__,ca.index,ca.group),gl())}function gl(){ca.state=ENDED,ca.timer.stop(),delete ua[aa];for(var wc in ua)return;delete la.__transition}}function interrupt(la,aa){var ca=la.__transition,ua,Sa,hl=!0,pl;if(ca){aa=aa==null?null:aa+"";for(pl in ca){if((ua=ca[pl]).name!==aa){hl=!1;continue}Sa=ua.state>STARTING&&ua.state<ENDING,ua.state=ENDED,ua.timer.stop(),ua.on.call(Sa?"interrupt":"cancel",la,la.__data__,ua.index,ua.group),delete ca[pl]}hl&&delete la.__transition}}function selection_interrupt(la){return this.each(function(){interrupt(this,la)})}function tweenRemove(la,aa){var ca,ua;return function(){var Sa=set(this,la),hl=Sa.tween;if(hl!==ca){ua=ca=hl;for(var pl=0,ml=ua.length;pl<ml;++pl)if(ua[pl].name===aa){ua=ua.slice(),ua.splice(pl,1);break}}Sa.tween=ua}}function tweenFunction(la,aa,ca){var ua,Sa;if(typeof ca!="function")throw new Error;return function(){var hl=set(this,la),pl=hl.tween;if(pl!==ua){Sa=(ua=pl).slice();for(var ml={name:aa,value:ca},gl=0,wc=Sa.length;gl<wc;++gl)if(Sa[gl].name===aa){Sa[gl]=ml;break}gl===wc&&Sa.push(ml)}hl.tween=Sa}}function transition_tween(la,aa){var ca=this._id;if(la+="",arguments.length<2){for(var ua=get(this.node(),ca).tween,Sa=0,hl=ua.length,pl;Sa<hl;++Sa)if((pl=ua[Sa]).name===la)return pl.value;return null}return this.each((aa==null?tweenRemove:tweenFunction)(ca,la,aa))}function tweenValue(la,aa,ca){var ua=la._id;return la.each(function(){var Sa=set(this,ua);(Sa.value||(Sa.value={}))[aa]=ca.apply(this,arguments)}),function(Sa){return get(Sa,ua).value[aa]}}function interpolate$2(la,aa){var ca;return(typeof aa=="number"?interpolateNumber:aa instanceof color$2?interpolateRgb:(ca=color$2(aa))?(aa=ca,interpolateRgb):interpolateString)(la,aa)}function attrRemove(la){return function(){this.removeAttribute(la)}}function attrRemoveNS(la){return function(){this.removeAttributeNS(la.space,la.local)}}function attrConstant(la,aa,ca){var ua,Sa=ca+"",hl;return function(){var pl=this.getAttribute(la);return pl===Sa?null:pl===ua?hl:hl=aa(ua=pl,ca)}}function attrConstantNS(la,aa,ca){var ua,Sa=ca+"",hl;return function(){var pl=this.getAttributeNS(la.space,la.local);return pl===Sa?null:pl===ua?hl:hl=aa(ua=pl,ca)}}function attrFunction(la,aa,ca){var ua,Sa,hl;return function(){var pl,ml=ca(this),gl;return ml==null?void this.removeAttribute(la):(pl=this.getAttribute(la),gl=ml+"",pl===gl?null:pl===ua&&gl===Sa?hl:(Sa=gl,hl=aa(ua=pl,ml)))}}function attrFunctionNS(la,aa,ca){var ua,Sa,hl;return function(){var pl,ml=ca(this),gl;return ml==null?void this.removeAttributeNS(la.space,la.local):(pl=this.getAttributeNS(la.space,la.local),gl=ml+"",pl===gl?null:pl===ua&&gl===Sa?hl:(Sa=gl,hl=aa(ua=pl,ml)))}}function transition_attr(la,aa){var ca=namespace(la),ua=ca==="transform"?interpolateTransformSvg:interpolate$2;return this.attrTween(la,typeof aa=="function"?(ca.local?attrFunctionNS:attrFunction)(ca,ua,tweenValue(this,"attr."+la,aa)):aa==null?(ca.local?attrRemoveNS:attrRemove)(ca):(ca.local?attrConstantNS:attrConstant)(ca,ua,aa))}function attrInterpolate(la,aa){return function(ca){this.setAttribute(la,aa.call(this,ca))}}function attrInterpolateNS(la,aa){return function(ca){this.setAttributeNS(la.space,la.local,aa.call(this,ca))}}function attrTweenNS(la,aa){var ca,ua;function Sa(){var hl=aa.apply(this,arguments);return hl!==ua&&(ca=(ua=hl)&&attrInterpolateNS(la,hl)),ca}return Sa._value=aa,Sa}function attrTween(la,aa){var ca,ua;function Sa(){var hl=aa.apply(this,arguments);return hl!==ua&&(ca=(ua=hl)&&attrInterpolate(la,hl)),ca}return Sa._value=aa,Sa}function transition_attrTween(la,aa){var ca="attr."+la;if(arguments.length<2)return(ca=this.tween(ca))&&ca._value;if(aa==null)return this.tween(ca,null);if(typeof aa!="function")throw new Error;var ua=namespace(la);return this.tween(ca,(ua.local?attrTweenNS:attrTween)(ua,aa))}function delayFunction(la,aa){return function(){init$1(this,la).delay=+aa.apply(this,arguments)}}function delayConstant(la,aa){return aa=+aa,function(){init$1(this,la).delay=aa}}function transition_delay(la){var aa=this._id;return arguments.length?this.each((typeof la=="function"?delayFunction:delayConstant)(aa,la)):get(this.node(),aa).delay}function durationFunction(la,aa){return function(){set(this,la).duration=+aa.apply(this,arguments)}}function durationConstant(la,aa){return aa=+aa,function(){set(this,la).duration=aa}}function transition_duration(la){var aa=this._id;return arguments.length?this.each((typeof la=="function"?durationFunction:durationConstant)(aa,la)):get(this.node(),aa).duration}function easeConstant(la,aa){if(typeof aa!="function")throw new Error;return function(){set(this,la).ease=aa}}function transition_ease(la){var aa=this._id;return arguments.length?this.each(easeConstant(aa,la)):get(this.node(),aa).ease}function easeVarying(la,aa){return function(){var ca=aa.apply(this,arguments);if(typeof ca!="function")throw new Error;set(this,la).ease=ca}}function transition_easeVarying(la){if(typeof la!="function")throw new Error;return this.each(easeVarying(this._id,la))}function transition_filter(la){typeof la!="function"&&(la=matcher(la));for(var aa=this._groups,ca=aa.length,ua=new Array(ca),Sa=0;Sa<ca;++Sa)for(var hl=aa[Sa],pl=hl.length,ml=ua[Sa]=[],gl,wc=0;wc<pl;++wc)(gl=hl[wc])&&la.call(gl,gl.__data__,wc,hl)&&ml.push(gl);return new Transition$1(ua,this._parents,this._name,this._id)}function transition_merge(la){if(la._id!==this._id)throw new Error;for(var aa=this._groups,ca=la._groups,ua=aa.length,Sa=ca.length,hl=Math.min(ua,Sa),pl=new Array(ua),ml=0;ml<hl;++ml)for(var gl=aa[ml],wc=ca[ml],xu=gl.length,ff=pl[ml]=new Array(xu),jf,Uf=0;Uf<xu;++Uf)(jf=gl[Uf]||wc[Uf])&&(ff[Uf]=jf);for(;ml<ua;++ml)pl[ml]=aa[ml];return new Transition$1(pl,this._parents,this._name,this._id)}function start$1(la){return(la+"").trim().split(/^|\s+/).every(function(aa){var ca=aa.indexOf(".");return ca>=0&&(aa=aa.slice(0,ca)),!aa||aa==="start"})}function onFunction(la,aa,ca){var ua,Sa,hl=start$1(aa)?init$1:set;return function(){var pl=hl(this,la),ml=pl.on;ml!==ua&&(Sa=(ua=ml).copy()).on(aa,ca),pl.on=Sa}}function transition_on(la,aa){var ca=this._id;return arguments.length<2?get(this.node(),ca).on.on(la):this.each(onFunction(ca,la,aa))}function removeFunction(la){return function(){var aa=this.parentNode;for(var ca in this.__transition)if(+ca!==la)return;aa&&aa.removeChild(this)}}function transition_remove(){return this.on("end.remove",removeFunction(this._id))}function transition_select(la){var aa=this._name,ca=this._id;typeof la!="function"&&(la=selector(la));for(var ua=this._groups,Sa=ua.length,hl=new Array(Sa),pl=0;pl<Sa;++pl)for(var ml=ua[pl],gl=ml.length,wc=hl[pl]=new Array(gl),xu,ff,jf=0;jf<gl;++jf)(xu=ml[jf])&&(ff=la.call(xu,xu.__data__,jf,ml))&&("__data__"in xu&&(ff.__data__=xu.__data__),wc[jf]=ff,schedule(wc[jf],aa,ca,jf,wc,get(xu,ca)));return new Transition$1(hl,this._parents,aa,ca)}function transition_selectAll(la){var aa=this._name,ca=this._id;typeof la!="function"&&(la=selectorAll(la));for(var ua=this._groups,Sa=ua.length,hl=[],pl=[],ml=0;ml<Sa;++ml)for(var gl=ua[ml],wc=gl.length,xu,ff=0;ff<wc;++ff)if(xu=gl[ff]){for(var jf=la.call(xu,xu.__data__,ff,gl),Uf,rp=get(xu,ca),np=0,qm=jf.length;np<qm;++np)(Uf=jf[np])&&schedule(Uf,aa,ca,np,jf,rp);hl.push(jf),pl.push(xu)}return new Transition$1(hl,pl,aa,ca)}var Selection=selection.prototype.constructor;function transition_selection(){return new Selection(this._groups,this._parents)}function styleNull(la,aa){var ca,ua,Sa;return function(){var hl=styleValue(this,la),pl=(this.style.removeProperty(la),styleValue(this,la));return hl===pl?null:hl===ca&&pl===ua?Sa:Sa=aa(ca=hl,ua=pl)}}function styleRemove(la){return function(){this.style.removeProperty(la)}}function styleConstant(la,aa,ca){var ua,Sa=ca+"",hl;return function(){var pl=styleValue(this,la);return pl===Sa?null:pl===ua?hl:hl=aa(ua=pl,ca)}}function styleFunction(la,aa,ca){var ua,Sa,hl;return function(){var pl=styleValue(this,la),ml=ca(this),gl=ml+"";return ml==null&&(gl=ml=(this.style.removeProperty(la),styleValue(this,la))),pl===gl?null:pl===ua&&gl===Sa?hl:(Sa=gl,hl=aa(ua=pl,ml))}}function styleMaybeRemove(la,aa){var ca,ua,Sa,hl="style."+aa,pl="end."+hl,ml;return function(){var gl=set(this,la),wc=gl.on,xu=gl.value[hl]==null?ml||(ml=styleRemove(aa)):void 0;(wc!==ca||Sa!==xu)&&(ua=(ca=wc).copy()).on(pl,Sa=xu),gl.on=ua}}function transition_style(la,aa,ca){var ua=(la+="")=="transform"?interpolateTransformCss:interpolate$2;return aa==null?this.styleTween(la,styleNull(la,ua)).on("end.style."+la,styleRemove(la)):typeof aa=="function"?this.styleTween(la,styleFunction(la,ua,tweenValue(this,"style."+la,aa))).each(styleMaybeRemove(this._id,la)):this.styleTween(la,styleConstant(la,ua,aa),ca).on("end.style."+la,null)}function styleInterpolate(la,aa,ca){return function(ua){this.style.setProperty(la,aa.call(this,ua),ca)}}function styleTween(la,aa,ca){var ua,Sa;function hl(){var pl=aa.apply(this,arguments);return pl!==Sa&&(ua=(Sa=pl)&&styleInterpolate(la,pl,ca)),ua}return hl._value=aa,hl}function transition_styleTween(la,aa,ca){var ua="style."+(la+="");if(arguments.length<2)return(ua=this.tween(ua))&&ua._value;if(aa==null)return this.tween(ua,null);if(typeof aa!="function")throw new Error;return this.tween(ua,styleTween(la,aa,ca??""))}function textConstant(la){return function(){this.textContent=la}}function textFunction(la){return function(){var aa=la(this);this.textContent=aa??""}}function transition_text(la){return this.tween("text",typeof la=="function"?textFunction(tweenValue(this,"text",la)):textConstant(la==null?"":la+""))}function textInterpolate(la){return function(aa){this.textContent=la.call(this,aa)}}function textTween(la){var aa,ca;function ua(){var Sa=la.apply(this,arguments);return Sa!==ca&&(aa=(ca=Sa)&&textInterpolate(Sa)),aa}return ua._value=la,ua}function transition_textTween(la){var aa="text";if(arguments.length<1)return(aa=this.tween(aa))&&aa._value;if(la==null)return this.tween(aa,null);if(typeof la!="function")throw new Error;return this.tween(aa,textTween(la))}function transition_transition(){for(var la=this._name,aa=this._id,ca=newId(),ua=this._groups,Sa=ua.length,hl=0;hl<Sa;++hl)for(var pl=ua[hl],ml=pl.length,gl,wc=0;wc<ml;++wc)if(gl=pl[wc]){var xu=get(gl,aa);schedule(gl,la,ca,wc,pl,{time:xu.time+xu.delay+xu.duration,delay:0,duration:xu.duration,ease:xu.ease})}return new Transition$1(ua,this._parents,la,ca)}function transition_end(){var la,aa,ca=this,ua=ca._id,Sa=ca.size();return new Promise(function(hl,pl){var ml={value:pl},gl={value:function(){--Sa===0&&hl()}};ca.each(function(){var wc=set(this,ua),xu=wc.on;xu!==la&&(aa=(la=xu).copy(),aa._.cancel.push(ml),aa._.interrupt.push(ml),aa._.end.push(gl)),wc.on=aa}),Sa===0&&hl()})}var id$2=0;function Transition$1(la,aa,ca,ua){this._groups=la,this._parents=aa,this._name=ca,this._id=ua}function newId(){return++id$2}var selection_prototype=selection.prototype;Transition$1.prototype={constructor:Transition$1,select:transition_select,selectAll:transition_selectAll,selectChild:selection_prototype.selectChild,selectChildren:selection_prototype.selectChildren,filter:transition_filter,merge:transition_merge,selection:transition_selection,transition:transition_transition,call:selection_prototype.call,nodes:selection_prototype.nodes,node:selection_prototype.node,size:selection_prototype.size,empty:selection_prototype.empty,each:selection_prototype.each,on:transition_on,attr:transition_attr,attrTween:transition_attrTween,style:transition_style,styleTween:transition_styleTween,text:transition_text,textTween:transition_textTween,remove:transition_remove,tween:transition_tween,delay:transition_delay,duration:transition_duration,ease:transition_ease,easeVarying:transition_easeVarying,end:transition_end,[Symbol.iterator]:selection_prototype[Symbol.iterator]};function cubicInOut(la){return((la*=2)<=1?la*la*la:(la-=2)*la*la+2)/2}var defaultTiming={time:null,delay:0,duration:250,ease:cubicInOut};function inherit(la,aa){for(var ca;!(ca=la.__transition)||!(ca=ca[aa]);)if(!(la=la.parentNode))throw new Error(`transition ${aa} not found`);return ca}function selection_transition(la){var aa,ca;la instanceof Transition$1?(aa=la._id,la=la._name):(aa=newId(),(ca=defaultTiming).time=now$1(),la=la==null?null:la+"");for(var ua=this._groups,Sa=ua.length,hl=0;hl<Sa;++hl)for(var pl=ua[hl],ml=pl.length,gl,wc=0;wc<ml;++wc)(gl=pl[wc])&&schedule(gl,la,aa,wc,pl,ca||inherit(gl,aa));return new Transition$1(ua,this._parents,la,aa)}selection.prototype.interrupt=selection_interrupt;selection.prototype.transition=selection_transition;const constant=la=>()=>la;function ZoomEvent(la,{sourceEvent:aa,target:ca,transform:ua,dispatch:Sa}){Object.defineProperties(this,{type:{value:la,enumerable:!0,configurable:!0},sourceEvent:{value:aa,enumerable:!0,configurable:!0},target:{value:ca,enumerable:!0,configurable:!0},transform:{value:ua,enumerable:!0,configurable:!0},_:{value:Sa}})}function Transform(la,aa,ca){this.k=la,this.x=aa,this.y=ca}Transform.prototype={constructor:Transform,scale:function(la){return la===1?this:new Transform(this.k*la,this.x,this.y)},translate:function(la,aa){return la===0&aa===0?this:new Transform(this.k,this.x+this.k*la,this.y+this.k*aa)},apply:function(la){return[la[0]*this.k+this.x,la[1]*this.k+this.y]},applyX:function(la){return la*this.k+this.x},applyY:function(la){return la*this.k+this.y},invert:function(la){return[(la[0]-this.x)/this.k,(la[1]-this.y)/this.k]},invertX:function(la){return(la-this.x)/this.k},invertY:function(la){return(la-this.y)/this.k},rescaleX:function(la){return la.copy().domain(la.range().map(this.invertX,this).map(la.invert,la))},rescaleY:function(la){return la.copy().domain(la.range().map(this.invertY,this).map(la.invert,la))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var identity$2=new Transform(1,0,0);transform.prototype=Transform.prototype;function transform(la){for(;!la.__zoom;)if(!(la=la.parentNode))return identity$2;return la.__zoom}function nopropagation(la){la.stopImmediatePropagation()}function noevent(la){la.preventDefault(),la.stopImmediatePropagation()}function defaultFilter(la){return(!la.ctrlKey||la.type==="wheel")&&!la.button}function defaultExtent(){var la=this;return la instanceof SVGElement?(la=la.ownerSVGElement||la,la.hasAttribute("viewBox")?(la=la.viewBox.baseVal,[[la.x,la.y],[la.x+la.width,la.y+la.height]]):[[0,0],[la.width.baseVal.value,la.height.baseVal.value]]):[[0,0],[la.clientWidth,la.clientHeight]]}function defaultTransform$1(){return this.__zoom||identity$2}function defaultWheelDelta(la){return-la.deltaY*(la.deltaMode===1?.05:la.deltaMode?1:.002)*(la.ctrlKey?10:1)}function defaultTouchable(){return navigator.maxTouchPoints||"ontouchstart"in this}function defaultConstrain(la,aa,ca){var ua=la.invertX(aa[0][0])-ca[0][0],Sa=la.invertX(aa[1][0])-ca[1][0],hl=la.invertY(aa[0][1])-ca[0][1],pl=la.invertY(aa[1][1])-ca[1][1];return la.translate(Sa>ua?(ua+Sa)/2:Math.min(0,ua)||Math.max(0,Sa),pl>hl?(hl+pl)/2:Math.min(0,hl)||Math.max(0,pl))}function zoom(){var la=defaultFilter,aa=defaultExtent,ca=defaultConstrain,ua=defaultWheelDelta,Sa=defaultTouchable,hl=[0,1/0],pl=[[-1/0,-1/0],[1/0,1/0]],ml=250,gl=interpolateZoom,wc=dispatch("start","zoom","end"),xu,ff,jf,Uf=500,rp=150,np=0,qm=10;function Vm(G0){G0.property("__zoom",defaultTransform$1).on("wheel.zoom",O1,{passive:!1}).on("mousedown.zoom",K0).on("dblclick.zoom",J0).filter(Sa).on("touchstart.zoom",Hw).on("touchmove.zoom",qw).on("touchend.zoom touchcancel.zoom",Y0).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}Vm.transform=function(G0,X0,d_,f_){var zN=G0.selection?G0.selection():G0;zN.property("__zoom",defaultTransform$1),G0!==zN?ig(G0,X0,d_,f_):zN.interrupt().each(function(){vv(this,arguments).event(f_).start().zoom(null,typeof X0=="function"?X0.apply(this,arguments):X0).end()})},Vm.scaleBy=function(G0,X0,d_,f_){Vm.scaleTo(G0,function(){var zN=this.__zoom.k,BN=typeof X0=="function"?X0.apply(this,arguments):X0;return zN*BN},d_,f_)},Vm.scaleTo=function(G0,X0,d_,f_){Vm.transform(G0,function(){var zN=aa.apply(this,arguments),BN=this.__zoom,iF=d_==null?rg(zN):typeof d_=="function"?d_.apply(this,arguments):d_,yY=BN.invert(iF),vQ=typeof X0=="function"?X0.apply(this,arguments):X0;return ca(tg(eg(BN,vQ),iF,yY),zN,pl)},d_,f_)},Vm.translateBy=function(G0,X0,d_,f_){Vm.transform(G0,function(){return ca(this.__zoom.translate(typeof X0=="function"?X0.apply(this,arguments):X0,typeof d_=="function"?d_.apply(this,arguments):d_),aa.apply(this,arguments),pl)},null,f_)},Vm.translateTo=function(G0,X0,d_,f_,zN){Vm.transform(G0,function(){var BN=aa.apply(this,arguments),iF=this.__zoom,yY=f_==null?rg(BN):typeof f_=="function"?f_.apply(this,arguments):f_;return ca(identity$2.translate(yY[0],yY[1]).scale(iF.k).translate(typeof X0=="function"?-X0.apply(this,arguments):-X0,typeof d_=="function"?-d_.apply(this,arguments):-d_),BN,pl)},f_,zN)};function eg(G0,X0){return X0=Math.max(hl[0],Math.min(hl[1],X0)),X0===G0.k?G0:new Transform(X0,G0.x,G0.y)}function tg(G0,X0,d_){var f_=X0[0]-d_[0]*G0.k,zN=X0[1]-d_[1]*G0.k;return f_===G0.x&&zN===G0.y?G0:new Transform(G0.k,f_,zN)}function rg(G0){return[(+G0[0][0]+ +G0[1][0])/2,(+G0[0][1]+ +G0[1][1])/2]}function ig(G0,X0,d_,f_){G0.on("start.zoom",function(){vv(this,arguments).event(f_).start()}).on("interrupt.zoom end.zoom",function(){vv(this,arguments).event(f_).end()}).tween("zoom",function(){var zN=this,BN=arguments,iF=vv(zN,BN).event(f_),yY=aa.apply(zN,BN),vQ=d_==null?rg(yY):typeof d_=="function"?d_.apply(zN,BN):d_,Ohe=Math.max(yY[1][0]-yY[0][0],yY[1][1]-yY[0][1]),bY=zN.__zoom,Lhe=typeof X0=="function"?X0.apply(zN,BN):X0,Dhe=gl(bY.invert(vQ).concat(Ohe/bY.k),Lhe.invert(vQ).concat(Ohe/Lhe.k));return function(kdt){if(kdt===1)kdt=Lhe;else{var eht=Dhe(kdt),oht=Ohe/eht[2];kdt=new Transform(oht,vQ[0]-eht[0]*oht,vQ[1]-eht[1]*oht)}iF.zoom(null,kdt)}})}function vv(G0,X0,d_){return!d_&&G0.__zooming||new R1(G0,X0)}function R1(G0,X0){this.that=G0,this.args=X0,this.active=0,this.sourceEvent=null,this.extent=aa.apply(G0,X0),this.taps=0}R1.prototype={event:function(G0){return G0&&(this.sourceEvent=G0),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(G0,X0){return this.mouse&&G0!=="mouse"&&(this.mouse[1]=X0.invert(this.mouse[0])),this.touch0&&G0!=="touch"&&(this.touch0[1]=X0.invert(this.touch0[0])),this.touch1&&G0!=="touch"&&(this.touch1[1]=X0.invert(this.touch1[0])),this.that.__zoom=X0,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(G0){var X0=select(this.that).datum();wc.call(G0,this.that,new ZoomEvent(G0,{sourceEvent:this.sourceEvent,target:Vm,transform:this.that.__zoom,dispatch:wc}),X0)}};function O1(G0,...X0){if(!la.apply(this,arguments))return;var d_=vv(this,X0).event(G0),f_=this.__zoom,zN=Math.max(hl[0],Math.min(hl[1],f_.k*Math.pow(2,ua.apply(this,arguments)))),BN=pointer(G0);if(d_.wheel)(d_.mouse[0][0]!==BN[0]||d_.mouse[0][1]!==BN[1])&&(d_.mouse[1]=f_.invert(d_.mouse[0]=BN)),clearTimeout(d_.wheel);else{if(f_.k===zN)return;d_.mouse=[BN,f_.invert(BN)],interrupt(this),d_.start()}noevent(G0),d_.wheel=setTimeout(iF,rp),d_.zoom("mouse",ca(tg(eg(f_,zN),d_.mouse[0],d_.mouse[1]),d_.extent,pl));function iF(){d_.wheel=null,d_.end()}}function K0(G0,...X0){if(jf||!la.apply(this,arguments))return;var d_=G0.currentTarget,f_=vv(this,X0,!0).event(G0),zN=select(G0.view).on("mousemove.zoom",vQ,!0).on("mouseup.zoom",Ohe,!0),BN=pointer(G0,d_),iF=G0.clientX,yY=G0.clientY;dragDisable(G0.view),nopropagation(G0),f_.mouse=[BN,this.__zoom.invert(BN)],interrupt(this),f_.start();function vQ(bY){if(noevent(bY),!f_.moved){var Lhe=bY.clientX-iF,Dhe=bY.clientY-yY;f_.moved=Lhe*Lhe+Dhe*Dhe>np}f_.event(bY).zoom("mouse",ca(tg(f_.that.__zoom,f_.mouse[0]=pointer(bY,d_),f_.mouse[1]),f_.extent,pl))}function Ohe(bY){zN.on("mousemove.zoom mouseup.zoom",null),yesdrag(bY.view,f_.moved),noevent(bY),f_.event(bY).end()}}function J0(G0,...X0){if(la.apply(this,arguments)){var d_=this.__zoom,f_=pointer(G0.changedTouches?G0.changedTouches[0]:G0,this),zN=d_.invert(f_),BN=d_.k*(G0.shiftKey?.5:2),iF=ca(tg(eg(d_,BN),f_,zN),aa.apply(this,X0),pl);noevent(G0),ml>0?select(this).transition().duration(ml).call(ig,iF,f_,G0):select(this).call(Vm.transform,iF,f_,G0)}}function Hw(G0,...X0){if(la.apply(this,arguments)){var d_=G0.touches,f_=d_.length,zN=vv(this,X0,G0.changedTouches.length===f_).event(G0),BN,iF,yY,vQ;for(nopropagation(G0),iF=0;iF<f_;++iF)yY=d_[iF],vQ=pointer(yY,this),vQ=[vQ,this.__zoom.invert(vQ),yY.identifier],zN.touch0?!zN.touch1&&zN.touch0[2]!==vQ[2]&&(zN.touch1=vQ,zN.taps=0):(zN.touch0=vQ,BN=!0,zN.taps=1+!!xu);xu&&(xu=clearTimeout(xu)),BN&&(zN.taps<2&&(ff=vQ[0],xu=setTimeout(function(){xu=null},Uf)),interrupt(this),zN.start())}}function qw(G0,...X0){if(this.__zooming){var d_=vv(this,X0).event(G0),f_=G0.changedTouches,zN=f_.length,BN,iF,yY,vQ;for(noevent(G0),BN=0;BN<zN;++BN)iF=f_[BN],yY=pointer(iF,this),d_.touch0&&d_.touch0[2]===iF.identifier?d_.touch0[0]=yY:d_.touch1&&d_.touch1[2]===iF.identifier&&(d_.touch1[0]=yY);if(iF=d_.that.__zoom,d_.touch1){var Ohe=d_.touch0[0],bY=d_.touch0[1],Lhe=d_.touch1[0],Dhe=d_.touch1[1],kdt=(kdt=Lhe[0]-Ohe[0])*kdt+(kdt=Lhe[1]-Ohe[1])*kdt,eht=(eht=Dhe[0]-bY[0])*eht+(eht=Dhe[1]-bY[1])*eht;iF=eg(iF,Math.sqrt(kdt/eht)),yY=[(Ohe[0]+Lhe[0])/2,(Ohe[1]+Lhe[1])/2],vQ=[(bY[0]+Dhe[0])/2,(bY[1]+Dhe[1])/2]}else if(d_.touch0)yY=d_.touch0[0],vQ=d_.touch0[1];else return;d_.zoom("touch",ca(tg(iF,yY,vQ),d_.extent,pl))}}function Y0(G0,...X0){if(this.__zooming){var d_=vv(this,X0).event(G0),f_=G0.changedTouches,zN=f_.length,BN,iF;for(nopropagation(G0),jf&&clearTimeout(jf),jf=setTimeout(function(){jf=null},Uf),BN=0;BN<zN;++BN)iF=f_[BN],d_.touch0&&d_.touch0[2]===iF.identifier?delete d_.touch0:d_.touch1&&d_.touch1[2]===iF.identifier&&delete d_.touch1;if(d_.touch1&&!d_.touch0&&(d_.touch0=d_.touch1,delete d_.touch1),d_.touch0)d_.touch0[1]=this.__zoom.invert(d_.touch0[0]);else if(d_.end(),d_.taps===2&&(iF=pointer(iF,this),Math.hypot(ff[0]-iF[0],ff[1]-iF[1])<qm)){var yY=select(this).on("dblclick.zoom");yY&&yY.apply(this,arguments)}}}return Vm.wheelDelta=function(G0){return arguments.length?(ua=typeof G0=="function"?G0:constant(+G0),Vm):ua},Vm.filter=function(G0){return arguments.length?(la=typeof G0=="function"?G0:constant(!!G0),Vm):la},Vm.touchable=function(G0){return arguments.length?(Sa=typeof G0=="function"?G0:constant(!!G0),Vm):Sa},Vm.extent=function(G0){return arguments.length?(aa=typeof G0=="function"?G0:constant([[+G0[0][0],+G0[0][1]],[+G0[1][0],+G0[1][1]]]),Vm):aa},Vm.scaleExtent=function(G0){return arguments.length?(hl[0]=+G0[0],hl[1]=+G0[1],Vm):[hl[0],hl[1]]},Vm.translateExtent=function(G0){return arguments.length?(pl[0][0]=+G0[0][0],pl[1][0]=+G0[1][0],pl[0][1]=+G0[0][1],pl[1][1]=+G0[1][1],Vm):[[pl[0][0],pl[0][1]],[pl[1][0],pl[1][1]]]},Vm.constrain=function(G0){return arguments.length?(ca=G0,Vm):ca},Vm.duration=function(G0){return arguments.length?(ml=+G0,Vm):ml},Vm.interpolate=function(G0){return arguments.length?(gl=G0,Vm):gl},Vm.on=function(){var G0=wc.on.apply(wc,arguments);return G0===wc?Vm:G0},Vm.clickDistance=function(G0){return arguments.length?(np=(G0=+G0)*G0,Vm):Math.sqrt(np)},Vm.tapDistance=function(G0){return arguments.length?(qm=+G0,Vm):qm},Vm}const errorMessages$3={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:la=>`Node type "${la}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:la=>`The old edge with id=${la} does not exist.`,error009:la=>`Marker type "${la}" doesn't exist.`,error008:(la,{id:aa,sourceHandle:ca,targetHandle:ua})=>`Couldn't create edge for ${la} handle id: "${la==="source"?ca:ua}", edge id: ${aa}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:la=>`Edge type "${la}" not found. Using fallback type "default".`,error012:la=>`Node with id "${la}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(la="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${la}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},infiniteExtent=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],elementSelectionKeys=["Enter"," ","Escape"],defaultAriaLabelConfig={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:la,x:aa,y:ca})=>`Moved selected node ${la}. New position, x: ${aa}, y: ${ca}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var ConnectionMode;(function(la){la.Strict="strict",la.Loose="loose"})(ConnectionMode||(ConnectionMode={}));var PanOnScrollMode;(function(la){la.Free="free",la.Vertical="vertical",la.Horizontal="horizontal"})(PanOnScrollMode||(PanOnScrollMode={}));var SelectionMode;(function(la){la.Partial="partial",la.Full="full"})(SelectionMode||(SelectionMode={}));const initialConnection={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var ConnectionLineType;(function(la){la.Bezier="default",la.Straight="straight",la.Step="step",la.SmoothStep="smoothstep",la.SimpleBezier="simplebezier"})(ConnectionLineType||(ConnectionLineType={}));var MarkerType;(function(la){la.Arrow="arrow",la.ArrowClosed="arrowclosed"})(MarkerType||(MarkerType={}));var Position;(function(la){la.Left="left",la.Top="top",la.Right="right",la.Bottom="bottom"})(Position||(Position={}));const oppositePosition={[Position.Left]:Position.Right,[Position.Right]:Position.Left,[Position.Top]:Position.Bottom,[Position.Bottom]:Position.Top};function getConnectionStatus(la){return la===null?null:la?"valid":"invalid"}const isEdgeBase=la=>"id"in la&&"source"in la&&"target"in la,isNodeBase=la=>"id"in la&&"position"in la&&!("source"in la)&&!("target"in la),isInternalNodeBase=la=>"id"in la&&"internals"in la&&!("source"in la)&&!("target"in la),getNodePositionWithOrigin=(la,aa=[0,0])=>{const{width:ca,height:ua}=getNodeDimensions(la),Sa=la.origin??aa,hl=ca*Sa[0],pl=ua*Sa[1];return{x:la.position.x-hl,y:la.position.y-pl}},getNodesBounds=(la,aa={nodeOrigin:[0,0]})=>{if(la.length===0)return{x:0,y:0,width:0,height:0};const ca=la.reduce((ua,Sa)=>{const hl=typeof Sa=="string";let pl=!aa.nodeLookup&&!hl?Sa:void 0;aa.nodeLookup&&(pl=hl?aa.nodeLookup.get(Sa):isInternalNodeBase(Sa)?Sa:aa.nodeLookup.get(Sa.id));const ml=pl?nodeToBox(pl,aa.nodeOrigin):{x:0,y:0,x2:0,y2:0};return getBoundsOfBoxes(ua,ml)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return boxToRect(ca)},getInternalNodesBounds=(la,aa={})=>{let ca={x:1/0,y:1/0,x2:-1/0,y2:-1/0},ua=!1;return la.forEach(Sa=>{(aa.filter===void 0||aa.filter(Sa))&&(ca=getBoundsOfBoxes(ca,nodeToBox(Sa)),ua=!0)}),ua?boxToRect(ca):{x:0,y:0,width:0,height:0}},getNodesInside=(la,aa,[ca,ua,Sa]=[0,0,1],hl=!1,pl=!1)=>{const ml={...pointToRendererPoint(aa,[ca,ua,Sa]),width:aa.width/Sa,height:aa.height/Sa},gl=[];for(const wc of la.values()){const{measured:xu,selectable:ff=!0,hidden:jf=!1}=wc;if(pl&&!ff||jf)continue;const Uf=xu.width??wc.width??wc.initialWidth??null,rp=xu.height??wc.height??wc.initialHeight??null,np=getOverlappingArea(ml,nodeToRect(wc)),qm=(Uf??0)*(rp??0),Vm=hl&&np>0;(!wc.internals.handleBounds||Vm||np>=qm||wc.dragging)&&gl.push(wc)}return gl},getConnectedEdges=(la,aa)=>{const ca=new Set;return la.forEach(ua=>{ca.add(ua.id)}),aa.filter(ua=>ca.has(ua.source)||ca.has(ua.target))};function getFitViewNodes(la,aa){const ca=new Map,ua=aa?.nodes?new Set(aa.nodes.map(Sa=>Sa.id)):null;return la.forEach(Sa=>{Sa.measured.width&&Sa.measured.height&&(aa?.includeHiddenNodes||!Sa.hidden)&&(!ua||ua.has(Sa.id))&&ca.set(Sa.id,Sa)}),ca}async function fitViewport({nodes:la,width:aa,height:ca,panZoom:ua,minZoom:Sa,maxZoom:hl},pl){if(la.size===0)return Promise.resolve(!0);const ml=getFitViewNodes(la,pl),gl=getInternalNodesBounds(ml),wc=getViewportForBounds(gl,aa,ca,pl?.minZoom??Sa,pl?.maxZoom??hl,pl?.padding??.1);return await ua.setViewport(wc,{duration:pl?.duration,ease:pl?.ease,interpolate:pl?.interpolate}),Promise.resolve(!0)}function calculateNodePosition({nodeId:la,nextPosition:aa,nodeLookup:ca,nodeOrigin:ua=[0,0],nodeExtent:Sa,onError:hl}){const pl=ca.get(la),ml=pl.parentId?ca.get(pl.parentId):void 0,{x:gl,y:wc}=ml?ml.internals.positionAbsolute:{x:0,y:0},xu=pl.origin??ua;let ff=pl.extent||Sa;if(pl.extent==="parent"&&!pl.expandParent)if(!ml)hl?.("005",errorMessages$3.error005());else{const Uf=ml.measured.width,rp=ml.measured.height;Uf&&rp&&(ff=[[gl,wc],[gl+Uf,wc+rp]])}else ml&&isCoordinateExtent(pl.extent)&&(ff=[[pl.extent[0][0]+gl,pl.extent[0][1]+wc],[pl.extent[1][0]+gl,pl.extent[1][1]+wc]]);const jf=isCoordinateExtent(ff)?clampPosition(aa,ff,pl.measured):aa;return(pl.measured.width===void 0||pl.measured.height===void 0)&&hl?.("015",errorMessages$3.error015()),{position:{x:jf.x-gl+(pl.measured.width??0)*xu[0],y:jf.y-wc+(pl.measured.height??0)*xu[1]},positionAbsolute:jf}}async function getElementsToRemove({nodesToRemove:la=[],edgesToRemove:aa=[],nodes:ca,edges:ua,onBeforeDelete:Sa}){const hl=new Set(la.map(jf=>jf.id)),pl=[];for(const jf of ca){if(jf.deletable===!1)continue;const Uf=hl.has(jf.id),rp=!Uf&&jf.parentId&&pl.find(np=>np.id===jf.parentId);(Uf||rp)&&pl.push(jf)}const ml=new Set(aa.map(jf=>jf.id)),gl=ua.filter(jf=>jf.deletable!==!1),xu=getConnectedEdges(pl,gl);for(const jf of gl)ml.has(jf.id)&&!xu.find(rp=>rp.id===jf.id)&&xu.push(jf);if(!Sa)return{edges:xu,nodes:pl};const ff=await Sa({nodes:pl,edges:xu});return typeof ff=="boolean"?ff?{edges:xu,nodes:pl}:{edges:[],nodes:[]}:ff}const clamp$3=(la,aa=0,ca=1)=>Math.min(Math.max(la,aa),ca),clampPosition=(la={x:0,y:0},aa,ca)=>({x:clamp$3(la.x,aa[0][0],aa[1][0]-(ca?.width??0)),y:clamp$3(la.y,aa[0][1],aa[1][1]-(ca?.height??0))});function clampPositionToParent(la,aa,ca){const{width:ua,height:Sa}=getNodeDimensions(ca),{x:hl,y:pl}=ca.internals.positionAbsolute;return clampPosition(la,[[hl,pl],[hl+ua,pl+Sa]],aa)}const calcAutoPanVelocity=(la,aa,ca)=>la<aa?clamp$3(Math.abs(la-aa),1,aa)/aa:la>ca?-clamp$3(Math.abs(la-ca),1,aa)/aa:0,calcAutoPan=(la,aa,ca=15,ua=40)=>{const Sa=calcAutoPanVelocity(la.x,ua,aa.width-ua)*ca,hl=calcAutoPanVelocity(la.y,ua,aa.height-ua)*ca;return[Sa,hl]},getBoundsOfBoxes=(la,aa)=>({x:Math.min(la.x,aa.x),y:Math.min(la.y,aa.y),x2:Math.max(la.x2,aa.x2),y2:Math.max(la.y2,aa.y2)}),rectToBox=({x:la,y:aa,width:ca,height:ua})=>({x:la,y:aa,x2:la+ca,y2:aa+ua}),boxToRect=({x:la,y:aa,x2:ca,y2:ua})=>({x:la,y:aa,width:ca-la,height:ua-aa}),nodeToRect=(la,aa=[0,0])=>{const{x:ca,y:ua}=isInternalNodeBase(la)?la.internals.positionAbsolute:getNodePositionWithOrigin(la,aa);return{x:ca,y:ua,width:la.measured?.width??la.width??la.initialWidth??0,height:la.measured?.height??la.height??la.initialHeight??0}},nodeToBox=(la,aa=[0,0])=>{const{x:ca,y:ua}=isInternalNodeBase(la)?la.internals.positionAbsolute:getNodePositionWithOrigin(la,aa);return{x:ca,y:ua,x2:ca+(la.measured?.width??la.width??la.initialWidth??0),y2:ua+(la.measured?.height??la.height??la.initialHeight??0)}},getBoundsOfRects=(la,aa)=>boxToRect(getBoundsOfBoxes(rectToBox(la),rectToBox(aa))),getOverlappingArea=(la,aa)=>{const ca=Math.max(0,Math.min(la.x+la.width,aa.x+aa.width)-Math.max(la.x,aa.x)),ua=Math.max(0,Math.min(la.y+la.height,aa.y+aa.height)-Math.max(la.y,aa.y));return Math.ceil(ca*ua)},isRectObject=la=>isNumeric(la.width)&&isNumeric(la.height)&&isNumeric(la.x)&&isNumeric(la.y),isNumeric=la=>!isNaN(la)&&isFinite(la),devWarn=(la,aa)=>{},snapPosition=(la,aa=[1,1])=>({x:aa[0]*Math.round(la.x/aa[0]),y:aa[1]*Math.round(la.y/aa[1])}),pointToRendererPoint=({x:la,y:aa},[ca,ua,Sa],hl=!1,pl=[1,1])=>{const ml={x:(la-ca)/Sa,y:(aa-ua)/Sa};return hl?snapPosition(ml,pl):ml},rendererPointToPoint=({x:la,y:aa},[ca,ua,Sa])=>({x:la*Sa+ca,y:aa*Sa+ua});function parsePadding(la,aa){if(typeof la=="number")return Math.floor((aa-aa/(1+la))*.5);if(typeof la=="string"&&la.endsWith("px")){const ca=parseFloat(la);if(!Number.isNaN(ca))return Math.floor(ca)}if(typeof la=="string"&&la.endsWith("%")){const ca=parseFloat(la);if(!Number.isNaN(ca))return Math.floor(aa*ca*.01)}return console.error(`[React Flow] The padding value "${la}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function parsePaddings(la,aa,ca){if(typeof la=="string"||typeof la=="number"){const ua=parsePadding(la,ca),Sa=parsePadding(la,aa);return{top:ua,right:Sa,bottom:ua,left:Sa,x:Sa*2,y:ua*2}}if(typeof la=="object"){const ua=parsePadding(la.top??la.y??0,ca),Sa=parsePadding(la.bottom??la.y??0,ca),hl=parsePadding(la.left??la.x??0,aa),pl=parsePadding(la.right??la.x??0,aa);return{top:ua,right:pl,bottom:Sa,left:hl,x:hl+pl,y:ua+Sa}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function calculateAppliedPaddings(la,aa,ca,ua,Sa,hl){const{x:pl,y:ml}=rendererPointToPoint(la,[aa,ca,ua]),{x:gl,y:wc}=rendererPointToPoint({x:la.x+la.width,y:la.y+la.height},[aa,ca,ua]),xu=Sa-gl,ff=hl-wc;return{left:Math.floor(pl),top:Math.floor(ml),right:Math.floor(xu),bottom:Math.floor(ff)}}const getViewportForBounds=(la,aa,ca,ua,Sa,hl)=>{const pl=parsePaddings(hl,aa,ca),ml=(aa-pl.x)/la.width,gl=(ca-pl.y)/la.height,wc=Math.min(ml,gl),xu=clamp$3(wc,ua,Sa),ff=la.x+la.width/2,jf=la.y+la.height/2,Uf=aa/2-ff*xu,rp=ca/2-jf*xu,np=calculateAppliedPaddings(la,Uf,rp,xu,aa,ca),qm={left:Math.min(np.left-pl.left,0),top:Math.min(np.top-pl.top,0),right:Math.min(np.right-pl.right,0),bottom:Math.min(np.bottom-pl.bottom,0)};return{x:Uf-qm.left+qm.right,y:rp-qm.top+qm.bottom,zoom:xu}},isMacOs=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function isCoordinateExtent(la){return la!=null&&la!=="parent"}function getNodeDimensions(la){return{width:la.measured?.width??la.width??la.initialWidth??0,height:la.measured?.height??la.height??la.initialHeight??0}}function nodeHasDimensions(la){return(la.measured?.width??la.width??la.initialWidth)!==void 0&&(la.measured?.height??la.height??la.initialHeight)!==void 0}function evaluateAbsolutePosition(la,aa={width:0,height:0},ca,ua,Sa){const hl={...la},pl=ua.get(ca);if(pl){const ml=pl.origin||Sa;hl.x+=pl.internals.positionAbsolute.x-(aa.width??0)*ml[0],hl.y+=pl.internals.positionAbsolute.y-(aa.height??0)*ml[1]}return hl}function areSetsEqual(la,aa){if(la.size!==aa.size)return!1;for(const ca of la)if(!aa.has(ca))return!1;return!0}function withResolvers(){let la,aa;return{promise:new Promise((ua,Sa)=>{la=ua,aa=Sa}),resolve:la,reject:aa}}function mergeAriaLabelConfig(la){return{...defaultAriaLabelConfig,...la||{}}}function getPointerPosition(la,{snapGrid:aa=[0,0],snapToGrid:ca=!1,transform:ua,containerBounds:Sa}){const{x:hl,y:pl}=getEventPosition(la),ml=pointToRendererPoint({x:hl-(Sa?.left??0),y:pl-(Sa?.top??0)},ua),{x:gl,y:wc}=ca?snapPosition(ml,aa):ml;return{xSnapped:gl,ySnapped:wc,...ml}}const getDimensions$1=la=>({width:la.offsetWidth,height:la.offsetHeight}),getHostForElement=la=>la?.getRootNode?.()||window?.document,inputTags=["INPUT","SELECT","TEXTAREA"];function isInputDOMNode(la){const aa=la.composedPath?.()?.[0]||la.target;return aa?.nodeType!==1?!1:inputTags.includes(aa.nodeName)||aa.hasAttribute("contenteditable")||!!aa.closest(".nokey")}const isMouseEvent=la=>"clientX"in la,getEventPosition=(la,aa)=>{const ca=isMouseEvent(la),ua=ca?la.clientX:la.touches?.[0].clientX,Sa=ca?la.clientY:la.touches?.[0].clientY;return{x:ua-(aa?.left??0),y:Sa-(aa?.top??0)}},getHandleBounds=(la,aa,ca,ua,Sa)=>{const hl=aa.querySelectorAll(`.${la}`);return!hl||!hl.length?null:Array.from(hl).map(pl=>{const ml=pl.getBoundingClientRect();return{id:pl.getAttribute("data-handleid"),type:la,nodeId:Sa,position:pl.getAttribute("data-handlepos"),x:(ml.left-ca.left)/ua,y:(ml.top-ca.top)/ua,...getDimensions$1(pl)}})};function getBezierEdgeCenter({sourceX:la,sourceY:aa,targetX:ca,targetY:ua,sourceControlX:Sa,sourceControlY:hl,targetControlX:pl,targetControlY:ml}){const gl=la*.125+Sa*.375+pl*.375+ca*.125,wc=aa*.125+hl*.375+ml*.375+ua*.125,xu=Math.abs(gl-la),ff=Math.abs(wc-aa);return[gl,wc,xu,ff]}function calculateControlOffset(la,aa){return la>=0?.5*la:aa*25*Math.sqrt(-la)}function getControlWithCurvature({pos:la,x1:aa,y1:ca,x2:ua,y2:Sa,c:hl}){switch(la){case Position.Left:return[aa-calculateControlOffset(aa-ua,hl),ca];case Position.Right:return[aa+calculateControlOffset(ua-aa,hl),ca];case Position.Top:return[aa,ca-calculateControlOffset(ca-Sa,hl)];case Position.Bottom:return[aa,ca+calculateControlOffset(Sa-ca,hl)]}}function getBezierPath({sourceX:la,sourceY:aa,sourcePosition:ca=Position.Bottom,targetX:ua,targetY:Sa,targetPosition:hl=Position.Top,curvature:pl=.25}){const[ml,gl]=getControlWithCurvature({pos:ca,x1:la,y1:aa,x2:ua,y2:Sa,c:pl}),[wc,xu]=getControlWithCurvature({pos:hl,x1:ua,y1:Sa,x2:la,y2:aa,c:pl}),[ff,jf,Uf,rp]=getBezierEdgeCenter({sourceX:la,sourceY:aa,targetX:ua,targetY:Sa,sourceControlX:ml,sourceControlY:gl,targetControlX:wc,targetControlY:xu});return[`M${la},${aa} C${ml},${gl} ${wc},${xu} ${ua},${Sa}`,ff,jf,Uf,rp]}function getEdgeCenter({sourceX:la,sourceY:aa,targetX:ca,targetY:ua}){const Sa=Math.abs(ca-la)/2,hl=ca<la?ca+Sa:ca-Sa,pl=Math.abs(ua-aa)/2,ml=ua<aa?ua+pl:ua-pl;return[hl,ml,Sa,pl]}function getElevatedEdgeZIndex({sourceNode:la,targetNode:aa,selected:ca=!1,zIndex:ua=0,elevateOnSelect:Sa=!1,zIndexMode:hl="basic"}){if(hl==="manual")return ua;const pl=Sa&&ca?ua+1e3:ua,ml=Math.max(la.parentId||Sa&&la.selected?la.internals.z:0,aa.parentId||Sa&&aa.selected?aa.internals.z:0);return pl+ml}function isEdgeVisible({sourceNode:la,targetNode:aa,width:ca,height:ua,transform:Sa}){const hl=getBoundsOfBoxes(nodeToBox(la),nodeToBox(aa));hl.x===hl.x2&&(hl.x2+=1),hl.y===hl.y2&&(hl.y2+=1);const pl={x:-Sa[0]/Sa[2],y:-Sa[1]/Sa[2],width:ca/Sa[2],height:ua/Sa[2]};return getOverlappingArea(pl,boxToRect(hl))>0}const getEdgeId=({source:la,sourceHandle:aa,target:ca,targetHandle:ua})=>`xy-edge__${la}${aa||""}-${ca}${ua||""}`,connectionExists=(la,aa)=>aa.some(ca=>ca.source===la.source&&ca.target===la.target&&(ca.sourceHandle===la.sourceHandle||!ca.sourceHandle&&!la.sourceHandle)&&(ca.targetHandle===la.targetHandle||!ca.targetHandle&&!la.targetHandle)),addEdge=(la,aa,ca={})=>{if(!la.source||!la.target)return aa;const ua=ca.getEdgeId||getEdgeId;let Sa;return isEdgeBase(la)?Sa={...la}:Sa={...la,id:ua(la)},connectionExists(Sa,aa)?aa:(Sa.sourceHandle===null&&delete Sa.sourceHandle,Sa.targetHandle===null&&delete Sa.targetHandle,aa.concat(Sa))};function getStraightPath({sourceX:la,sourceY:aa,targetX:ca,targetY:ua}){const[Sa,hl,pl,ml]=getEdgeCenter({sourceX:la,sourceY:aa,targetX:ca,targetY:ua});return[`M ${la},${aa}L ${ca},${ua}`,Sa,hl,pl,ml]}const handleDirections={[Position.Left]:{x:-1,y:0},[Position.Right]:{x:1,y:0},[Position.Top]:{x:0,y:-1},[Position.Bottom]:{x:0,y:1}},getDirection=({source:la,sourcePosition:aa=Position.Bottom,target:ca})=>aa===Position.Left||aa===Position.Right?la.x<ca.x?{x:1,y:0}:{x:-1,y:0}:la.y<ca.y?{x:0,y:1}:{x:0,y:-1},distance$1=(la,aa)=>Math.sqrt(Math.pow(aa.x-la.x,2)+Math.pow(aa.y-la.y,2));function getPoints({source:la,sourcePosition:aa=Position.Bottom,target:ca,targetPosition:ua=Position.Top,center:Sa,offset:hl,stepPosition:pl}){const ml=handleDirections[aa],gl=handleDirections[ua],wc={x:la.x+ml.x*hl,y:la.y+ml.y*hl},xu={x:ca.x+gl.x*hl,y:ca.y+gl.y*hl},ff=getDirection({source:wc,sourcePosition:aa,target:xu}),jf=ff.x!==0?"x":"y",Uf=ff[jf];let rp=[],np,qm;const Vm={x:0,y:0},eg={x:0,y:0},[,,tg,rg]=getEdgeCenter({sourceX:la.x,sourceY:la.y,targetX:ca.x,targetY:ca.y});if(ml[jf]*gl[jf]===-1){jf==="x"?(np=Sa.x??wc.x+(xu.x-wc.x)*pl,qm=Sa.y??(wc.y+xu.y)/2):(np=Sa.x??(wc.x+xu.x)/2,qm=Sa.y??wc.y+(xu.y-wc.y)*pl);const vv=[{x:np,y:wc.y},{x:np,y:xu.y}],R1=[{x:wc.x,y:qm},{x:xu.x,y:qm}];ml[jf]===Uf?rp=jf==="x"?vv:R1:rp=jf==="x"?R1:vv}else{const vv=[{x:wc.x,y:xu.y}],R1=[{x:xu.x,y:wc.y}];if(jf==="x"?rp=ml.x===Uf?R1:vv:rp=ml.y===Uf?vv:R1,aa===ua){const qw=Math.abs(la[jf]-ca[jf]);if(qw<=hl){const Y0=Math.min(hl-1,hl-qw);ml[jf]===Uf?Vm[jf]=(wc[jf]>la[jf]?-1:1)*Y0:eg[jf]=(xu[jf]>ca[jf]?-1:1)*Y0}}if(aa!==ua){const qw=jf==="x"?"y":"x",Y0=ml[jf]===gl[qw],G0=wc[qw]>xu[qw],X0=wc[qw]<xu[qw];(ml[jf]===1&&(!Y0&&G0||Y0&&X0)||ml[jf]!==1&&(!Y0&&X0||Y0&&G0))&&(rp=jf==="x"?vv:R1)}const O1={x:wc.x+Vm.x,y:wc.y+Vm.y},K0={x:xu.x+eg.x,y:xu.y+eg.y},J0=Math.max(Math.abs(O1.x-rp[0].x),Math.abs(K0.x-rp[0].x)),Hw=Math.max(Math.abs(O1.y-rp[0].y),Math.abs(K0.y-rp[0].y));J0>=Hw?(np=(O1.x+K0.x)/2,qm=rp[0].y):(np=rp[0].x,qm=(O1.y+K0.y)/2)}return[[la,{x:wc.x+Vm.x,y:wc.y+Vm.y},...rp,{x:xu.x+eg.x,y:xu.y+eg.y},ca],np,qm,tg,rg]}function getBend(la,aa,ca,ua){const Sa=Math.min(distance$1(la,aa)/2,distance$1(aa,ca)/2,ua),{x:hl,y:pl}=aa;if(la.x===hl&&hl===ca.x||la.y===pl&&pl===ca.y)return`L${hl} ${pl}`;if(la.y===pl){const wc=la.x<ca.x?-1:1,xu=la.y<ca.y?1:-1;return`L ${hl+Sa*wc},${pl}Q ${hl},${pl} ${hl},${pl+Sa*xu}`}const ml=la.x<ca.x?1:-1,gl=la.y<ca.y?-1:1;return`L ${hl},${pl+Sa*gl}Q ${hl},${pl} ${hl+Sa*ml},${pl}`}function getSmoothStepPath({sourceX:la,sourceY:aa,sourcePosition:ca=Position.Bottom,targetX:ua,targetY:Sa,targetPosition:hl=Position.Top,borderRadius:pl=5,centerX:ml,centerY:gl,offset:wc=20,stepPosition:xu=.5}){const[ff,jf,Uf,rp,np]=getPoints({source:{x:la,y:aa},sourcePosition:ca,target:{x:ua,y:Sa},targetPosition:hl,center:{x:ml,y:gl},offset:wc,stepPosition:xu});return[ff.reduce((Vm,eg,tg)=>{let rg="";return tg>0&&tg<ff.length-1?rg=getBend(ff[tg-1],eg,ff[tg+1],pl):rg=`${tg===0?"M":"L"}${eg.x} ${eg.y}`,Vm+=rg,Vm},""),jf,Uf,rp,np]}function isNodeInitialized(la){return la&&!!(la.internals.handleBounds||la.handles?.length)&&!!(la.measured.width||la.width||la.initialWidth)}function getEdgePosition(la){const{sourceNode:aa,targetNode:ca}=la;if(!isNodeInitialized(aa)||!isNodeInitialized(ca))return null;const ua=aa.internals.handleBounds||toHandleBounds(aa.handles),Sa=ca.internals.handleBounds||toHandleBounds(ca.handles),hl=getHandle$1(ua?.source??[],la.sourceHandle),pl=getHandle$1(la.connectionMode===ConnectionMode.Strict?Sa?.target??[]:(Sa?.target??[]).concat(Sa?.source??[]),la.targetHandle);if(!hl||!pl)return la.onError?.("008",errorMessages$3.error008(hl?"target":"source",{id:la.id,sourceHandle:la.sourceHandle,targetHandle:la.targetHandle})),null;const ml=hl?.position||Position.Bottom,gl=pl?.position||Position.Top,wc=getHandlePosition(aa,hl,ml),xu=getHandlePosition(ca,pl,gl);return{sourceX:wc.x,sourceY:wc.y,targetX:xu.x,targetY:xu.y,sourcePosition:ml,targetPosition:gl}}function toHandleBounds(la){if(!la)return null;const aa=[],ca=[];for(const ua of la)ua.width=ua.width??1,ua.height=ua.height??1,ua.type==="source"?aa.push(ua):ua.type==="target"&&ca.push(ua);return{source:aa,target:ca}}function getHandlePosition(la,aa,ca=Position.Left,ua=!1){const Sa=(aa?.x??0)+la.internals.positionAbsolute.x,hl=(aa?.y??0)+la.internals.positionAbsolute.y,{width:pl,height:ml}=aa??getNodeDimensions(la);if(ua)return{x:Sa+pl/2,y:hl+ml/2};switch(aa?.position??ca){case Position.Top:return{x:Sa+pl/2,y:hl};case Position.Right:return{x:Sa+pl,y:hl+ml/2};case Position.Bottom:return{x:Sa+pl/2,y:hl+ml};case Position.Left:return{x:Sa,y:hl+ml/2}}}function getHandle$1(la,aa){return la&&(aa?la.find(ca=>ca.id===aa):la[0])||null}function getMarkerId(la,aa){return la?typeof la=="string"?la:`${aa?`${aa}__`:""}${Object.keys(la).sort().map(ua=>`${ua}=${la[ua]}`).join("&")}`:""}function createMarkerIds(la,{id:aa,defaultColor:ca,defaultMarkerStart:ua,defaultMarkerEnd:Sa}){const hl=new Set;return la.reduce((pl,ml)=>([ml.markerStart||ua,ml.markerEnd||Sa].forEach(gl=>{if(gl&&typeof gl=="object"){const wc=getMarkerId(gl,aa);hl.has(wc)||(pl.push({id:wc,color:gl.color||ca,...gl}),hl.add(wc))}}),pl),[]).sort((pl,ml)=>pl.id.localeCompare(ml.id))}const SELECTED_NODE_Z=1e3,ROOT_PARENT_Z_INCREMENT=10,defaultOptions$6={nodeOrigin:[0,0],nodeExtent:infiniteExtent,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},adoptUserNodesDefaultOptions={...defaultOptions$6,checkEquality:!0};function mergeObjects(la,aa){const ca={...la};for(const ua in aa)aa[ua]!==void 0&&(ca[ua]=aa[ua]);return ca}function updateAbsolutePositions(la,aa,ca){const ua=mergeObjects(defaultOptions$6,ca);for(const Sa of la.values())if(Sa.parentId)updateChildNode(Sa,la,aa,ua);else{const hl=getNodePositionWithOrigin(Sa,ua.nodeOrigin),pl=isCoordinateExtent(Sa.extent)?Sa.extent:ua.nodeExtent,ml=clampPosition(hl,pl,getNodeDimensions(Sa));Sa.internals.positionAbsolute=ml}}function parseHandles(la,aa){if(!la.handles)return la.measured?aa?.internals.handleBounds:void 0;const ca=[],ua=[];for(const Sa of la.handles){const hl={id:Sa.id,width:Sa.width??1,height:Sa.height??1,nodeId:la.id,x:Sa.x,y:Sa.y,position:Sa.position,type:Sa.type};Sa.type==="source"?ca.push(hl):Sa.type==="target"&&ua.push(hl)}return{source:ca,target:ua}}function isManualZIndexMode(la){return la==="manual"}function adoptUserNodes(la,aa,ca,ua={}){const Sa=mergeObjects(adoptUserNodesDefaultOptions,ua),hl={i:0},pl=new Map(aa),ml=Sa?.elevateNodesOnSelect&&!isManualZIndexMode(Sa.zIndexMode)?SELECTED_NODE_Z:0;let gl=la.length>0;aa.clear(),ca.clear();for(const wc of la){let xu=pl.get(wc.id);if(Sa.checkEquality&&wc===xu?.internals.userNode)aa.set(wc.id,xu);else{const ff=getNodePositionWithOrigin(wc,Sa.nodeOrigin),jf=isCoordinateExtent(wc.extent)?wc.extent:Sa.nodeExtent,Uf=clampPosition(ff,jf,getNodeDimensions(wc));xu={...Sa.defaults,...wc,measured:{width:wc.measured?.width,height:wc.measured?.height},internals:{positionAbsolute:Uf,handleBounds:parseHandles(wc,xu),z:calculateZ(wc,ml,Sa.zIndexMode),userNode:wc}},aa.set(wc.id,xu)}(xu.measured===void 0||xu.measured.width===void 0||xu.measured.height===void 0)&&!xu.hidden&&(gl=!1),wc.parentId&&updateChildNode(xu,aa,ca,ua,hl)}return gl}function updateParentLookup(la,aa){if(!la.parentId)return;const ca=aa.get(la.parentId);ca?ca.set(la.id,la):aa.set(la.parentId,new Map([[la.id,la]]))}function updateChildNode(la,aa,ca,ua,Sa){const{elevateNodesOnSelect:hl,nodeOrigin:pl,nodeExtent:ml,zIndexMode:gl}=mergeObjects(defaultOptions$6,ua),wc=la.parentId,xu=aa.get(wc);if(!xu){console.warn(`Parent node ${wc} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}updateParentLookup(la,ca),Sa&&!xu.parentId&&xu.internals.rootParentIndex===void 0&&gl==="auto"&&(xu.internals.rootParentIndex=++Sa.i,xu.internals.z=xu.internals.z+Sa.i*ROOT_PARENT_Z_INCREMENT),Sa&&xu.internals.rootParentIndex!==void 0&&(Sa.i=xu.internals.rootParentIndex);const ff=hl&&!isManualZIndexMode(gl)?SELECTED_NODE_Z:0,{x:jf,y:Uf,z:rp}=calculateChildXYZ(la,xu,pl,ml,ff,gl),{positionAbsolute:np}=la.internals,qm=jf!==np.x||Uf!==np.y;(qm||rp!==la.internals.z)&&aa.set(la.id,{...la,internals:{...la.internals,positionAbsolute:qm?{x:jf,y:Uf}:np,z:rp}})}function calculateZ(la,aa,ca){const ua=isNumeric(la.zIndex)?la.zIndex:0;return isManualZIndexMode(ca)?ua:ua+(la.selected?aa:0)}function calculateChildXYZ(la,aa,ca,ua,Sa,hl){const{x:pl,y:ml}=aa.internals.positionAbsolute,gl=getNodeDimensions(la),wc=getNodePositionWithOrigin(la,ca),xu=isCoordinateExtent(la.extent)?clampPosition(wc,la.extent,gl):wc;let ff=clampPosition({x:pl+xu.x,y:ml+xu.y},ua,gl);la.extent==="parent"&&(ff=clampPositionToParent(ff,gl,aa));const jf=calculateZ(la,Sa,hl),Uf=aa.internals.z??0;return{x:ff.x,y:ff.y,z:Uf>=jf?Uf+1:jf}}function handleExpandParent(la,aa,ca,ua=[0,0]){const Sa=[],hl=new Map;for(const pl of la){const ml=aa.get(pl.parentId);if(!ml)continue;const gl=hl.get(pl.parentId)?.expandedRect??nodeToRect(ml),wc=getBoundsOfRects(gl,pl.rect);hl.set(pl.parentId,{expandedRect:wc,parent:ml})}return hl.size>0&&hl.forEach(({expandedRect:pl,parent:ml},gl)=>{const wc=ml.internals.positionAbsolute,xu=getNodeDimensions(ml),ff=ml.origin??ua,jf=pl.x<wc.x?Math.round(Math.abs(wc.x-pl.x)):0,Uf=pl.y<wc.y?Math.round(Math.abs(wc.y-pl.y)):0,rp=Math.max(xu.width,Math.round(pl.width)),np=Math.max(xu.height,Math.round(pl.height)),qm=(rp-xu.width)*ff[0],Vm=(np-xu.height)*ff[1];(jf>0||Uf>0||qm||Vm)&&(Sa.push({id:gl,type:"position",position:{x:ml.position.x-jf+qm,y:ml.position.y-Uf+Vm}}),ca.get(gl)?.forEach(eg=>{la.some(tg=>tg.id===eg.id)||Sa.push({id:eg.id,type:"position",position:{x:eg.position.x+jf,y:eg.position.y+Uf}})})),(xu.width<pl.width||xu.height<pl.height||jf||Uf)&&Sa.push({id:gl,type:"dimensions",setAttributes:!0,dimensions:{width:rp+(jf?ff[0]*jf-qm:0),height:np+(Uf?ff[1]*Uf-Vm:0)}})}),Sa}function updateNodeInternals(la,aa,ca,ua,Sa,hl,pl){const ml=ua?.querySelector(".xyflow__viewport");let gl=!1;if(!ml)return{changes:[],updatedInternals:gl};const wc=[],xu=window.getComputedStyle(ml),{m22:ff}=new window.DOMMatrixReadOnly(xu.transform),jf=[];for(const Uf of la.values()){const rp=aa.get(Uf.id);if(!rp)continue;if(rp.hidden){aa.set(rp.id,{...rp,internals:{...rp.internals,handleBounds:void 0}}),gl=!0;continue}const np=getDimensions$1(Uf.nodeElement),qm=rp.measured.width!==np.width||rp.measured.height!==np.height;if(!!(np.width&&np.height&&(qm||!rp.internals.handleBounds||Uf.force))){const eg=Uf.nodeElement.getBoundingClientRect(),tg=isCoordinateExtent(rp.extent)?rp.extent:hl;let{positionAbsolute:rg}=rp.internals;rp.parentId&&rp.extent==="parent"?rg=clampPositionToParent(rg,np,aa.get(rp.parentId)):tg&&(rg=clampPosition(rg,tg,np));const ig={...rp,measured:np,internals:{...rp.internals,positionAbsolute:rg,handleBounds:{source:getHandleBounds("source",Uf.nodeElement,eg,ff,rp.id),target:getHandleBounds("target",Uf.nodeElement,eg,ff,rp.id)}}};aa.set(rp.id,ig),rp.parentId&&updateChildNode(ig,aa,ca,{nodeOrigin:Sa,zIndexMode:pl}),gl=!0,qm&&(wc.push({id:rp.id,type:"dimensions",dimensions:np}),rp.expandParent&&rp.parentId&&jf.push({id:rp.id,parentId:rp.parentId,rect:nodeToRect(ig,Sa)}))}}if(jf.length>0){const Uf=handleExpandParent(jf,aa,ca,Sa);wc.push(...Uf)}return{changes:wc,updatedInternals:gl}}async function panBy({delta:la,panZoom:aa,transform:ca,translateExtent:ua,width:Sa,height:hl}){if(!aa||!la.x&&!la.y)return Promise.resolve(!1);const pl=await aa.setViewportConstrained({x:ca[0]+la.x,y:ca[1]+la.y,zoom:ca[2]},[[0,0],[Sa,hl]],ua),ml=!!pl&&(pl.x!==ca[0]||pl.y!==ca[1]||pl.k!==ca[2]);return Promise.resolve(ml)}function addConnectionToLookup(la,aa,ca,ua,Sa,hl){let pl=Sa;const ml=ua.get(pl)||new Map;ua.set(pl,ml.set(ca,aa)),pl=`${Sa}-${la}`;const gl=ua.get(pl)||new Map;if(ua.set(pl,gl.set(ca,aa)),hl){pl=`${Sa}-${la}-${hl}`;const wc=ua.get(pl)||new Map;ua.set(pl,wc.set(ca,aa))}}function updateConnectionLookup(la,aa,ca){la.clear(),aa.clear();for(const ua of ca){const{source:Sa,target:hl,sourceHandle:pl=null,targetHandle:ml=null}=ua,gl={edgeId:ua.id,source:Sa,target:hl,sourceHandle:pl,targetHandle:ml},wc=`${Sa}-${pl}--${hl}-${ml}`,xu=`${hl}-${ml}--${Sa}-${pl}`;addConnectionToLookup("source",gl,xu,la,Sa,pl),addConnectionToLookup("target",gl,wc,la,hl,ml),aa.set(ua.id,ua)}}function isParentSelected(la,aa){if(!la.parentId)return!1;const ca=aa.get(la.parentId);return ca?ca.selected?!0:isParentSelected(ca,aa):!1}function hasSelector(la,aa,ca){let ua=la;do{if(ua?.matches?.(aa))return!0;if(ua===ca)return!1;ua=ua?.parentElement}while(ua);return!1}function getDragItems(la,aa,ca,ua){const Sa=new Map;for(const[hl,pl]of la)if((pl.selected||pl.id===ua)&&(!pl.parentId||!isParentSelected(pl,la))&&(pl.draggable||aa&&typeof pl.draggable>"u")){const ml=la.get(hl);ml&&Sa.set(hl,{id:hl,position:ml.position||{x:0,y:0},distance:{x:ca.x-ml.internals.positionAbsolute.x,y:ca.y-ml.internals.positionAbsolute.y},extent:ml.extent,parentId:ml.parentId,origin:ml.origin,expandParent:ml.expandParent,internals:{positionAbsolute:ml.internals.positionAbsolute||{x:0,y:0}},measured:{width:ml.measured.width??0,height:ml.measured.height??0}})}return Sa}function getEventHandlerParams({nodeId:la,dragItems:aa,nodeLookup:ca,dragging:ua=!0}){const Sa=[];for(const[pl,ml]of aa){const gl=ca.get(pl)?.internals.userNode;gl&&Sa.push({...gl,position:ml.position,dragging:ua})}if(!la)return[Sa[0],Sa];const hl=ca.get(la)?.internals.userNode;return[hl?{...hl,position:aa.get(la)?.position||hl.position,dragging:ua}:Sa[0],Sa]}function calculateSnapOffset({dragItems:la,snapGrid:aa,x:ca,y:ua}){const Sa=la.values().next().value;if(!Sa)return null;const hl={x:ca-Sa.distance.x,y:ua-Sa.distance.y},pl=snapPosition(hl,aa);return{x:pl.x-hl.x,y:pl.y-hl.y}}function XYDrag({onNodeMouseDown:la,getStoreItems:aa,onDragStart:ca,onDrag:ua,onDragStop:Sa}){let hl={x:null,y:null},pl=0,ml=new Map,gl=!1,wc={x:0,y:0},xu=null,ff=!1,jf=null,Uf=!1,rp=!1,np=null;function qm({noDragClassName:eg,handleSelector:tg,domNode:rg,isSelectable:ig,nodeId:vv,nodeClickDistance:R1=0}){jf=select(rg);function O1({x:qw,y:Y0}){const{nodeLookup:G0,nodeExtent:X0,snapGrid:d_,snapToGrid:f_,nodeOrigin:zN,onNodeDrag:BN,onSelectionDrag:iF,onError:yY,updateNodePositions:vQ}=aa();hl={x:qw,y:Y0};let Ohe=!1;const bY=ml.size>1,Lhe=bY&&X0?rectToBox(getInternalNodesBounds(ml)):null,Dhe=bY&&f_?calculateSnapOffset({dragItems:ml,snapGrid:d_,x:qw,y:Y0}):null;for(const[kdt,eht]of ml){if(!G0.has(kdt))continue;let oht={x:qw-eht.distance.x,y:Y0-eht.distance.y};f_&&(oht=Dhe?{x:Math.round(oht.x+Dhe.x),y:Math.round(oht.y+Dhe.y)}:snapPosition(oht,d_));let iht=null;if(bY&&X0&&!eht.extent&&Lhe){const{positionAbsolute:dht}=eht.internals,Mdt=dht.x-Lhe.x+X0[0][0],opt=dht.x+eht.measured.width-Lhe.x2+X0[1][0],gpt=dht.y-Lhe.y+X0[0][1],Qht=dht.y+eht.measured.height-Lhe.y2+X0[1][1];iht=[[Mdt,gpt],[opt,Qht]]}const{position:Uhe,positionAbsolute:Bhe}=calculateNodePosition({nodeId:kdt,nextPosition:oht,nodeLookup:G0,nodeExtent:iht||X0,nodeOrigin:zN,onError:yY});Ohe=Ohe||eht.position.x!==Uhe.x||eht.position.y!==Uhe.y,eht.position=Uhe,eht.internals.positionAbsolute=Bhe}if(rp=rp||Ohe,!!Ohe&&(vQ(ml,!0),np&&(ua||BN||!vv&&iF))){const[kdt,eht]=getEventHandlerParams({nodeId:vv,dragItems:ml,nodeLookup:G0});ua?.(np,ml,kdt,eht),BN?.(np,kdt,eht),vv||iF?.(np,eht)}}async function K0(){if(!xu)return;const{transform:qw,panBy:Y0,autoPanSpeed:G0,autoPanOnNodeDrag:X0}=aa();if(!X0){gl=!1,cancelAnimationFrame(pl);return}const[d_,f_]=calcAutoPan(wc,xu,G0);(d_!==0||f_!==0)&&(hl.x=(hl.x??0)-d_/qw[2],hl.y=(hl.y??0)-f_/qw[2],await Y0({x:d_,y:f_})&&O1(hl)),pl=requestAnimationFrame(K0)}function J0(qw){const{nodeLookup:Y0,multiSelectionActive:G0,nodesDraggable:X0,transform:d_,snapGrid:f_,snapToGrid:zN,selectNodesOnDrag:BN,onNodeDragStart:iF,onSelectionDragStart:yY,unselectNodesAndEdges:vQ}=aa();ff=!0,(!BN||!ig)&&!G0&&vv&&(Y0.get(vv)?.selected||vQ()),ig&&BN&&vv&&la?.(vv);const Ohe=getPointerPosition(qw.sourceEvent,{transform:d_,snapGrid:f_,snapToGrid:zN,containerBounds:xu});if(hl=Ohe,ml=getDragItems(Y0,X0,Ohe,vv),ml.size>0&&(ca||iF||!vv&&yY)){const[bY,Lhe]=getEventHandlerParams({nodeId:vv,dragItems:ml,nodeLookup:Y0});ca?.(qw.sourceEvent,ml,bY,Lhe),iF?.(qw.sourceEvent,bY,Lhe),vv||yY?.(qw.sourceEvent,Lhe)}}const Hw=drag$1().clickDistance(R1).on("start",qw=>{const{domNode:Y0,nodeDragThreshold:G0,transform:X0,snapGrid:d_,snapToGrid:f_}=aa();xu=Y0?.getBoundingClientRect()||null,Uf=!1,rp=!1,np=qw.sourceEvent,G0===0&&J0(qw),hl=getPointerPosition(qw.sourceEvent,{transform:X0,snapGrid:d_,snapToGrid:f_,containerBounds:xu}),wc=getEventPosition(qw.sourceEvent,xu)}).on("drag",qw=>{const{autoPanOnNodeDrag:Y0,transform:G0,snapGrid:X0,snapToGrid:d_,nodeDragThreshold:f_,nodeLookup:zN}=aa(),BN=getPointerPosition(qw.sourceEvent,{transform:G0,snapGrid:X0,snapToGrid:d_,containerBounds:xu});if(np=qw.sourceEvent,(qw.sourceEvent.type==="touchmove"&&qw.sourceEvent.touches.length>1||vv&&!zN.has(vv))&&(Uf=!0),!Uf){if(!gl&&Y0&&ff&&(gl=!0,K0()),!ff){const iF=getEventPosition(qw.sourceEvent,xu),yY=iF.x-wc.x,vQ=iF.y-wc.y;Math.sqrt(yY*yY+vQ*vQ)>f_&&J0(qw)}(hl.x!==BN.xSnapped||hl.y!==BN.ySnapped)&&ml&&ff&&(wc=getEventPosition(qw.sourceEvent,xu),O1(BN))}}).on("end",qw=>{if(!(!ff||Uf)&&(gl=!1,ff=!1,cancelAnimationFrame(pl),ml.size>0)){const{nodeLookup:Y0,updateNodePositions:G0,onNodeDragStop:X0,onSelectionDragStop:d_}=aa();if(rp&&(G0(ml,!1),rp=!1),Sa||X0||!vv&&d_){const[f_,zN]=getEventHandlerParams({nodeId:vv,dragItems:ml,nodeLookup:Y0,dragging:!1});Sa?.(qw.sourceEvent,ml,f_,zN),X0?.(qw.sourceEvent,f_,zN),vv||d_?.(qw.sourceEvent,zN)}}}).filter(qw=>{const Y0=qw.target;return!qw.button&&(!eg||!hasSelector(Y0,`.${eg}`,rg))&&(!tg||hasSelector(Y0,tg,rg))});jf.call(Hw)}function Vm(){jf?.on(".drag",null)}return{update:qm,destroy:Vm}}function getNodesWithinDistance(la,aa,ca){const ua=[],Sa={x:la.x-ca,y:la.y-ca,width:ca*2,height:ca*2};for(const hl of aa.values())getOverlappingArea(Sa,nodeToRect(hl))>0&&ua.push(hl);return ua}const ADDITIONAL_DISTANCE=250;function getClosestHandle(la,aa,ca,ua){let Sa=[],hl=1/0;const pl=getNodesWithinDistance(la,ca,aa+ADDITIONAL_DISTANCE);for(const ml of pl){const gl=[...ml.internals.handleBounds?.source??[],...ml.internals.handleBounds?.target??[]];for(const wc of gl){if(ua.nodeId===wc.nodeId&&ua.type===wc.type&&ua.id===wc.id)continue;const{x:xu,y:ff}=getHandlePosition(ml,wc,wc.position,!0),jf=Math.sqrt(Math.pow(xu-la.x,2)+Math.pow(ff-la.y,2));jf>aa||(jf<hl?(Sa=[{...wc,x:xu,y:ff}],hl=jf):jf===hl&&Sa.push({...wc,x:xu,y:ff}))}}if(!Sa.length)return null;if(Sa.length>1){const ml=ua.type==="source"?"target":"source";return Sa.find(gl=>gl.type===ml)??Sa[0]}return Sa[0]}function getHandle(la,aa,ca,ua,Sa,hl=!1){const pl=ua.get(la);if(!pl)return null;const ml=Sa==="strict"?pl.internals.handleBounds?.[aa]:[...pl.internals.handleBounds?.source??[],...pl.internals.handleBounds?.target??[]],gl=(ca?ml?.find(wc=>wc.id===ca):ml?.[0])??null;return gl&&hl?{...gl,...getHandlePosition(pl,gl,gl.position,!0)}:gl}function getHandleType(la,aa){return la||(aa?.classList.contains("target")?"target":aa?.classList.contains("source")?"source":null)}function isConnectionValid(la,aa){let ca=null;return aa?ca=!0:la&&!aa&&(ca=!1),ca}const alwaysValid=()=>!0;function onPointerDown(la,{connectionMode:aa,connectionRadius:ca,handleId:ua,nodeId:Sa,edgeUpdaterType:hl,isTarget:pl,domNode:ml,nodeLookup:gl,lib:wc,autoPanOnConnect:xu,flowId:ff,panBy:jf,cancelConnection:Uf,onConnectStart:rp,onConnect:np,onConnectEnd:qm,isValidConnection:Vm=alwaysValid,onReconnectEnd:eg,updateConnection:tg,getTransform:rg,getFromHandle:ig,autoPanSpeed:vv,dragThreshold:R1=1,handleDomNode:O1}){const K0=getHostForElement(la.target);let J0=0,Hw;const{x:qw,y:Y0}=getEventPosition(la),G0=getHandleType(hl,O1),X0=ml?.getBoundingClientRect();let d_=!1;if(!X0||!G0)return;const f_=getHandle(Sa,G0,ua,gl,aa);if(!f_)return;let zN=getEventPosition(la,X0),BN=!1,iF=null,yY=!1,vQ=null;function Ohe(){if(!xu||!X0)return;const[Uhe,Bhe]=calcAutoPan(zN,X0,vv);jf({x:Uhe,y:Bhe}),J0=requestAnimationFrame(Ohe)}const bY={...f_,nodeId:Sa,type:G0,position:f_.position},Lhe=gl.get(Sa);let kdt={inProgress:!0,isValid:null,from:getHandlePosition(Lhe,bY,Position.Left,!0),fromHandle:bY,fromPosition:bY.position,fromNode:Lhe,to:zN,toHandle:null,toPosition:oppositePosition[bY.position],toNode:null,pointer:zN};function eht(){d_=!0,tg(kdt),rp?.(la,{nodeId:Sa,handleId:ua,handleType:G0})}R1===0&&eht();function oht(Uhe){if(!d_){const{x:Qht,y:kpt}=getEventPosition(Uhe),Dpt=Qht-qw,Bpt=kpt-Y0;if(!(Dpt*Dpt+Bpt*Bpt>R1*R1))return;eht()}if(!ig()||!bY){iht(Uhe);return}const Bhe=rg();zN=getEventPosition(Uhe,X0),Hw=getClosestHandle(pointToRendererPoint(zN,Bhe,!1,[1,1]),ca,gl,bY),BN||(Ohe(),BN=!0);const dht=isValidHandle(Uhe,{handle:Hw,connectionMode:aa,fromNodeId:Sa,fromHandleId:ua,fromType:pl?"target":"source",isValidConnection:Vm,doc:K0,lib:wc,flowId:ff,nodeLookup:gl});vQ=dht.handleDomNode,iF=dht.connection,yY=isConnectionValid(!!Hw,dht.isValid);const Mdt=gl.get(Sa),opt=Mdt?getHandlePosition(Mdt,bY,Position.Left,!0):kdt.from,gpt={...kdt,from:opt,isValid:yY,to:dht.toHandle&&yY?rendererPointToPoint({x:dht.toHandle.x,y:dht.toHandle.y},Bhe):zN,toHandle:dht.toHandle,toPosition:yY&&dht.toHandle?dht.toHandle.position:oppositePosition[bY.position],toNode:dht.toHandle?gl.get(dht.toHandle.nodeId):null,pointer:zN};tg(gpt),kdt=gpt}function iht(Uhe){if(!("touches"in Uhe&&Uhe.touches.length>0)){if(d_){(Hw||vQ)&&iF&&yY&&np?.(iF);const{inProgress:Bhe,...dht}=kdt,Mdt={...dht,toPosition:kdt.toHandle?kdt.toPosition:null};qm?.(Uhe,Mdt),hl&&eg?.(Uhe,Mdt)}Uf(),cancelAnimationFrame(J0),BN=!1,yY=!1,iF=null,vQ=null,K0.removeEventListener("mousemove",oht),K0.removeEventListener("mouseup",iht),K0.removeEventListener("touchmove",oht),K0.removeEventListener("touchend",iht)}}K0.addEventListener("mousemove",oht),K0.addEventListener("mouseup",iht),K0.addEventListener("touchmove",oht),K0.addEventListener("touchend",iht)}function isValidHandle(la,{handle:aa,connectionMode:ca,fromNodeId:ua,fromHandleId:Sa,fromType:hl,doc:pl,lib:ml,flowId:gl,isValidConnection:wc=alwaysValid,nodeLookup:xu}){const ff=hl==="target",jf=aa?pl.querySelector(`.${ml}-flow__handle[data-id="${gl}-${aa?.nodeId}-${aa?.id}-${aa?.type}"]`):null,{x:Uf,y:rp}=getEventPosition(la),np=pl.elementFromPoint(Uf,rp),qm=np?.classList.contains(`${ml}-flow__handle`)?np:jf,Vm={handleDomNode:qm,isValid:!1,connection:null,toHandle:null};if(qm){const eg=getHandleType(void 0,qm),tg=qm.getAttribute("data-nodeid"),rg=qm.getAttribute("data-handleid"),ig=qm.classList.contains("connectable"),vv=qm.classList.contains("connectableend");if(!tg||!eg)return Vm;const R1={source:ff?tg:ua,sourceHandle:ff?rg:Sa,target:ff?ua:tg,targetHandle:ff?Sa:rg};Vm.connection=R1;const K0=ig&&vv&&(ca===ConnectionMode.Strict?ff&&eg==="source"||!ff&&eg==="target":tg!==ua||rg!==Sa);Vm.isValid=K0&&wc(R1),Vm.toHandle=getHandle(tg,eg,rg,xu,ca,!0)}return Vm}const XYHandle={onPointerDown,isValid:isValidHandle};function XYMinimap({domNode:la,panZoom:aa,getTransform:ca,getViewScale:ua}){const Sa=select(la);function hl({translateExtent:ml,width:gl,height:wc,zoomStep:xu=1,pannable:ff=!0,zoomable:jf=!0,inversePan:Uf=!1}){const rp=tg=>{if(tg.sourceEvent.type!=="wheel"||!aa)return;const rg=ca(),ig=tg.sourceEvent.ctrlKey&&isMacOs()?10:1,vv=-tg.sourceEvent.deltaY*(tg.sourceEvent.deltaMode===1?.05:tg.sourceEvent.deltaMode?1:.002)*xu,R1=rg[2]*Math.pow(2,vv*ig);aa.scaleTo(R1)};let np=[0,0];const qm=tg=>{(tg.sourceEvent.type==="mousedown"||tg.sourceEvent.type==="touchstart")&&(np=[tg.sourceEvent.clientX??tg.sourceEvent.touches[0].clientX,tg.sourceEvent.clientY??tg.sourceEvent.touches[0].clientY])},Vm=tg=>{const rg=ca();if(tg.sourceEvent.type!=="mousemove"&&tg.sourceEvent.type!=="touchmove"||!aa)return;const ig=[tg.sourceEvent.clientX??tg.sourceEvent.touches[0].clientX,tg.sourceEvent.clientY??tg.sourceEvent.touches[0].clientY],vv=[ig[0]-np[0],ig[1]-np[1]];np=ig;const R1=ua()*Math.max(rg[2],Math.log(rg[2]))*(Uf?-1:1),O1={x:rg[0]-vv[0]*R1,y:rg[1]-vv[1]*R1},K0=[[0,0],[gl,wc]];aa.setViewportConstrained({x:O1.x,y:O1.y,zoom:rg[2]},K0,ml)},eg=zoom().on("start",qm).on("zoom",ff?Vm:null).on("zoom.wheel",jf?rp:null);Sa.call(eg,{})}function pl(){Sa.on("zoom",null)}return{update:hl,destroy:pl,pointer}}const transformToViewport=la=>({x:la.x,y:la.y,zoom:la.k}),viewportToTransform=({x:la,y:aa,zoom:ca})=>identity$2.translate(la,aa).scale(ca),isWrappedWithClass=(la,aa)=>la.target.closest(`.${aa}`),isRightClickPan=(la,aa)=>aa===2&&Array.isArray(la)&&la.includes(2),defaultEase=la=>((la*=2)<=1?la*la*la:(la-=2)*la*la+2)/2,getD3Transition=(la,aa=0,ca=defaultEase,ua=()=>{})=>{const Sa=typeof aa=="number"&&aa>0;return Sa||ua(),Sa?la.transition().duration(aa).ease(ca).on("end",ua):la},wheelDelta=la=>{const aa=la.ctrlKey&&isMacOs()?10:1;return-la.deltaY*(la.deltaMode===1?.05:la.deltaMode?1:.002)*aa};function createPanOnScrollHandler({zoomPanValues:la,noWheelClassName:aa,d3Selection:ca,d3Zoom:ua,panOnScrollMode:Sa,panOnScrollSpeed:hl,zoomOnPinch:pl,onPanZoomStart:ml,onPanZoom:gl,onPanZoomEnd:wc}){return xu=>{if(isWrappedWithClass(xu,aa))return xu.ctrlKey&&xu.preventDefault(),!1;xu.preventDefault(),xu.stopImmediatePropagation();const ff=ca.property("__zoom").k||1;if(xu.ctrlKey&&pl){const qm=pointer(xu),Vm=wheelDelta(xu),eg=ff*Math.pow(2,Vm);ua.scaleTo(ca,eg,qm,xu);return}const jf=xu.deltaMode===1?20:1;let Uf=Sa===PanOnScrollMode.Vertical?0:xu.deltaX*jf,rp=Sa===PanOnScrollMode.Horizontal?0:xu.deltaY*jf;!isMacOs()&&xu.shiftKey&&Sa!==PanOnScrollMode.Vertical&&(Uf=xu.deltaY*jf,rp=0),ua.translateBy(ca,-(Uf/ff)*hl,-(rp/ff)*hl,{internal:!0});const np=transformToViewport(ca.property("__zoom"));clearTimeout(la.panScrollTimeout),la.isPanScrolling?(gl?.(xu,np),la.panScrollTimeout=setTimeout(()=>{wc?.(xu,np),la.isPanScrolling=!1},150)):(la.isPanScrolling=!0,ml?.(xu,np))}}function createZoomOnScrollHandler({noWheelClassName:la,preventScrolling:aa,d3ZoomHandler:ca}){return function(ua,Sa){const hl=ua.type==="wheel",pl=!aa&&hl&&!ua.ctrlKey,ml=isWrappedWithClass(ua,la);if(ua.ctrlKey&&hl&&ml&&ua.preventDefault(),pl||ml)return null;ua.preventDefault(),ca.call(this,ua,Sa)}}function createPanZoomStartHandler({zoomPanValues:la,onDraggingChange:aa,onPanZoomStart:ca}){return ua=>{if(ua.sourceEvent?.internal)return;const Sa=transformToViewport(ua.transform);la.mouseButton=ua.sourceEvent?.button||0,la.isZoomingOrPanning=!0,la.prevViewport=Sa,ua.sourceEvent?.type==="mousedown"&&aa(!0),ca&&ca?.(ua.sourceEvent,Sa)}}function createPanZoomHandler({zoomPanValues:la,panOnDrag:aa,onPaneContextMenu:ca,onTransformChange:ua,onPanZoom:Sa}){return hl=>{la.usedRightMouseButton=!!(ca&&isRightClickPan(aa,la.mouseButton??0)),hl.sourceEvent?.sync||ua([hl.transform.x,hl.transform.y,hl.transform.k]),Sa&&!hl.sourceEvent?.internal&&Sa?.(hl.sourceEvent,transformToViewport(hl.transform))}}function createPanZoomEndHandler({zoomPanValues:la,panOnDrag:aa,panOnScroll:ca,onDraggingChange:ua,onPanZoomEnd:Sa,onPaneContextMenu:hl}){return pl=>{if(!pl.sourceEvent?.internal&&(la.isZoomingOrPanning=!1,hl&&isRightClickPan(aa,la.mouseButton??0)&&!la.usedRightMouseButton&&pl.sourceEvent&&hl(pl.sourceEvent),la.usedRightMouseButton=!1,ua(!1),Sa)){const ml=transformToViewport(pl.transform);la.prevViewport=ml,clearTimeout(la.timerId),la.timerId=setTimeout(()=>{Sa?.(pl.sourceEvent,ml)},ca?150:0)}}}function createFilter({zoomActivationKeyPressed:la,zoomOnScroll:aa,zoomOnPinch:ca,panOnDrag:ua,panOnScroll:Sa,zoomOnDoubleClick:hl,userSelectionActive:pl,noWheelClassName:ml,noPanClassName:gl,lib:wc,connectionInProgress:xu}){return ff=>{const jf=la||aa,Uf=ca&&ff.ctrlKey,rp=ff.type==="wheel";if(ff.button===1&&ff.type==="mousedown"&&(isWrappedWithClass(ff,`${wc}-flow__node`)||isWrappedWithClass(ff,`${wc}-flow__edge`)))return!0;if(!ua&&!jf&&!Sa&&!hl&&!ca||pl||xu&&!rp||isWrappedWithClass(ff,ml)&&rp||isWrappedWithClass(ff,gl)&&(!rp||Sa&&rp&&!la)||!ca&&ff.ctrlKey&&rp)return!1;if(!ca&&ff.type==="touchstart"&&ff.touches?.length>1)return ff.preventDefault(),!1;if(!jf&&!Sa&&!Uf&&rp||!ua&&(ff.type==="mousedown"||ff.type==="touchstart")||Array.isArray(ua)&&!ua.includes(ff.button)&&ff.type==="mousedown")return!1;const np=Array.isArray(ua)&&ua.includes(ff.button)||!ff.button||ff.button<=1;return(!ff.ctrlKey||rp)&&np}}function XYPanZoom({domNode:la,minZoom:aa,maxZoom:ca,translateExtent:ua,viewport:Sa,onPanZoom:hl,onPanZoomStart:pl,onPanZoomEnd:ml,onDraggingChange:gl}){const wc={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},xu=la.getBoundingClientRect(),ff=zoom().scaleExtent([aa,ca]).translateExtent(ua),jf=select(la).call(ff);eg({x:Sa.x,y:Sa.y,zoom:clamp$3(Sa.zoom,aa,ca)},[[0,0],[xu.width,xu.height]],ua);const Uf=jf.on("wheel.zoom"),rp=jf.on("dblclick.zoom");ff.wheelDelta(wheelDelta);function np(Hw,qw){return jf?new Promise(Y0=>{ff?.interpolate(qw?.interpolate==="linear"?interpolate$3:interpolateZoom).transform(getD3Transition(jf,qw?.duration,qw?.ease,()=>Y0(!0)),Hw)}):Promise.resolve(!1)}function qm({noWheelClassName:Hw,noPanClassName:qw,onPaneContextMenu:Y0,userSelectionActive:G0,panOnScroll:X0,panOnDrag:d_,panOnScrollMode:f_,panOnScrollSpeed:zN,preventScrolling:BN,zoomOnPinch:iF,zoomOnScroll:yY,zoomOnDoubleClick:vQ,zoomActivationKeyPressed:Ohe,lib:bY,onTransformChange:Lhe,connectionInProgress:Dhe,paneClickDistance:kdt,selectionOnDrag:eht}){G0&&!wc.isZoomingOrPanning&&Vm();const oht=X0&&!Ohe&&!G0;ff.clickDistance(eht?1/0:!isNumeric(kdt)||kdt<0?0:kdt);const iht=oht?createPanOnScrollHandler({zoomPanValues:wc,noWheelClassName:Hw,d3Selection:jf,d3Zoom:ff,panOnScrollMode:f_,panOnScrollSpeed:zN,zoomOnPinch:iF,onPanZoomStart:pl,onPanZoom:hl,onPanZoomEnd:ml}):createZoomOnScrollHandler({noWheelClassName:Hw,preventScrolling:BN,d3ZoomHandler:Uf});if(jf.on("wheel.zoom",iht,{passive:!1}),!G0){const Bhe=createPanZoomStartHandler({zoomPanValues:wc,onDraggingChange:gl,onPanZoomStart:pl});ff.on("start",Bhe);const dht=createPanZoomHandler({zoomPanValues:wc,panOnDrag:d_,onPaneContextMenu:!!Y0,onPanZoom:hl,onTransformChange:Lhe});ff.on("zoom",dht);const Mdt=createPanZoomEndHandler({zoomPanValues:wc,panOnDrag:d_,panOnScroll:X0,onPaneContextMenu:Y0,onPanZoomEnd:ml,onDraggingChange:gl});ff.on("end",Mdt)}const Uhe=createFilter({zoomActivationKeyPressed:Ohe,panOnDrag:d_,zoomOnScroll:yY,panOnScroll:X0,zoomOnDoubleClick:vQ,zoomOnPinch:iF,userSelectionActive:G0,noPanClassName:qw,noWheelClassName:Hw,lib:bY,connectionInProgress:Dhe});ff.filter(Uhe),vQ?jf.on("dblclick.zoom",rp):jf.on("dblclick.zoom",null)}function Vm(){ff.on("zoom",null)}async function eg(Hw,qw,Y0){const G0=viewportToTransform(Hw),X0=ff?.constrain()(G0,qw,Y0);return X0&&await np(X0),new Promise(d_=>d_(X0))}async function tg(Hw,qw){const Y0=viewportToTransform(Hw);return await np(Y0,qw),new Promise(G0=>G0(Y0))}function rg(Hw){if(jf){const qw=viewportToTransform(Hw),Y0=jf.property("__zoom");(Y0.k!==Hw.zoom||Y0.x!==Hw.x||Y0.y!==Hw.y)&&ff?.transform(jf,qw,null,{sync:!0})}}function ig(){const Hw=jf?transform(jf.node()):{x:0,y:0,k:1};return{x:Hw.x,y:Hw.y,zoom:Hw.k}}function vv(Hw,qw){return jf?new Promise(Y0=>{ff?.interpolate(qw?.interpolate==="linear"?interpolate$3:interpolateZoom).scaleTo(getD3Transition(jf,qw?.duration,qw?.ease,()=>Y0(!0)),Hw)}):Promise.resolve(!1)}function R1(Hw,qw){return jf?new Promise(Y0=>{ff?.interpolate(qw?.interpolate==="linear"?interpolate$3:interpolateZoom).scaleBy(getD3Transition(jf,qw?.duration,qw?.ease,()=>Y0(!0)),Hw)}):Promise.resolve(!1)}function O1(Hw){ff?.scaleExtent(Hw)}function K0(Hw){ff?.translateExtent(Hw)}function J0(Hw){const qw=!isNumeric(Hw)||Hw<0?0:Hw;ff?.clickDistance(qw)}return{update:qm,destroy:Vm,setViewport:tg,setViewportConstrained:eg,getViewport:ig,scaleTo:vv,scaleBy:R1,setScaleExtent:O1,setTranslateExtent:K0,syncViewport:rg,setClickDistance:J0}}var ResizeControlVariant;(function(la){la.Line="line",la.Handle="handle"})(ResizeControlVariant||(ResizeControlVariant={}));function getResizeDirection({width:la,prevWidth:aa,height:ca,prevHeight:ua,affectsX:Sa,affectsY:hl}){const pl=la-aa,ml=ca-ua,gl=[pl>0?1:pl<0?-1:0,ml>0?1:ml<0?-1:0];return pl&&Sa&&(gl[0]=gl[0]*-1),ml&&hl&&(gl[1]=gl[1]*-1),gl}function getControlDirection(la){const aa=la.includes("right")||la.includes("left"),ca=la.includes("bottom")||la.includes("top"),ua=la.includes("left"),Sa=la.includes("top");return{isHorizontal:aa,isVertical:ca,affectsX:ua,affectsY:Sa}}function getLowerExtentClamp(la,aa){return Math.max(0,aa-la)}function getUpperExtentClamp(la,aa){return Math.max(0,la-aa)}function getSizeClamp(la,aa,ca){return Math.max(0,aa-la,la-ca)}function xor(la,aa){return la?!aa:aa}function getDimensionsAfterResize(la,aa,ca,ua,Sa,hl,pl,ml){let{affectsX:gl,affectsY:wc}=aa;const{isHorizontal:xu,isVertical:ff}=aa,jf=xu&&ff,{xSnapped:Uf,ySnapped:rp}=ca,{minWidth:np,maxWidth:qm,minHeight:Vm,maxHeight:eg}=ua,{x:tg,y:rg,width:ig,height:vv,aspectRatio:R1}=la;let O1=Math.floor(xu?Uf-la.pointerX:0),K0=Math.floor(ff?rp-la.pointerY:0);const J0=ig+(gl?-O1:O1),Hw=vv+(wc?-K0:K0),qw=-hl[0]*ig,Y0=-hl[1]*vv;let G0=getSizeClamp(J0,np,qm),X0=getSizeClamp(Hw,Vm,eg);if(pl){let zN=0,BN=0;gl&&O1<0?zN=getLowerExtentClamp(tg+O1+qw,pl[0][0]):!gl&&O1>0&&(zN=getUpperExtentClamp(tg+J0+qw,pl[1][0])),wc&&K0<0?BN=getLowerExtentClamp(rg+K0+Y0,pl[0][1]):!wc&&K0>0&&(BN=getUpperExtentClamp(rg+Hw+Y0,pl[1][1])),G0=Math.max(G0,zN),X0=Math.max(X0,BN)}if(ml){let zN=0,BN=0;gl&&O1>0?zN=getUpperExtentClamp(tg+O1,ml[0][0]):!gl&&O1<0&&(zN=getLowerExtentClamp(tg+J0,ml[1][0])),wc&&K0>0?BN=getUpperExtentClamp(rg+K0,ml[0][1]):!wc&&K0<0&&(BN=getLowerExtentClamp(rg+Hw,ml[1][1])),G0=Math.max(G0,zN),X0=Math.max(X0,BN)}if(Sa){if(xu){const zN=getSizeClamp(J0/R1,Vm,eg)*R1;if(G0=Math.max(G0,zN),pl){let BN=0;!gl&&!wc||gl&&!wc&&jf?BN=getUpperExtentClamp(rg+Y0+J0/R1,pl[1][1])*R1:BN=getLowerExtentClamp(rg+Y0+(gl?O1:-O1)/R1,pl[0][1])*R1,G0=Math.max(G0,BN)}if(ml){let BN=0;!gl&&!wc||gl&&!wc&&jf?BN=getLowerExtentClamp(rg+J0/R1,ml[1][1])*R1:BN=getUpperExtentClamp(rg+(gl?O1:-O1)/R1,ml[0][1])*R1,G0=Math.max(G0,BN)}}if(ff){const zN=getSizeClamp(Hw*R1,np,qm)/R1;if(X0=Math.max(X0,zN),pl){let BN=0;!gl&&!wc||wc&&!gl&&jf?BN=getUpperExtentClamp(tg+Hw*R1+qw,pl[1][0])/R1:BN=getLowerExtentClamp(tg+(wc?K0:-K0)*R1+qw,pl[0][0])/R1,X0=Math.max(X0,BN)}if(ml){let BN=0;!gl&&!wc||wc&&!gl&&jf?BN=getLowerExtentClamp(tg+Hw*R1,ml[1][0])/R1:BN=getUpperExtentClamp(tg+(wc?K0:-K0)*R1,ml[0][0])/R1,X0=Math.max(X0,BN)}}}K0=K0+(K0<0?X0:-X0),O1=O1+(O1<0?G0:-G0),Sa&&(jf?J0>Hw*R1?K0=(xor(gl,wc)?-O1:O1)/R1:O1=(xor(gl,wc)?-K0:K0)*R1:xu?(K0=O1/R1,wc=gl):(O1=K0*R1,gl=wc));const d_=gl?tg+O1:tg,f_=wc?rg+K0:rg;return{width:ig+(gl?-O1:O1),height:vv+(wc?-K0:K0),x:hl[0]*O1*(gl?-1:1)+d_,y:hl[1]*K0*(wc?-1:1)+f_}}const initPrevValues$1={width:0,height:0,x:0,y:0},initStartValues={...initPrevValues$1,pointerX:0,pointerY:0,aspectRatio:1};function nodeToParentExtent(la){return[[0,0],[la.measured.width,la.measured.height]]}function nodeToChildExtent(la,aa,ca){const ua=aa.position.x+la.position.x,Sa=aa.position.y+la.position.y,hl=la.measured.width??0,pl=la.measured.height??0,ml=ca[0]*hl,gl=ca[1]*pl;return[[ua-ml,Sa-gl],[ua+hl-ml,Sa+pl-gl]]}function XYResizer({domNode:la,nodeId:aa,getStoreItems:ca,onChange:ua,onEnd:Sa}){const hl=select(la);let pl={controlDirection:getControlDirection("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function ml({controlPosition:wc,boundaries:xu,keepAspectRatio:ff,resizeDirection:jf,onResizeStart:Uf,onResize:rp,onResizeEnd:np,shouldResize:qm}){let Vm={...initPrevValues$1},eg={...initStartValues};pl={boundaries:xu,resizeDirection:jf,keepAspectRatio:ff,controlDirection:getControlDirection(wc)};let tg,rg=null,ig=[],vv,R1,O1,K0=!1;const J0=drag$1().on("start",Hw=>{const{nodeLookup:qw,transform:Y0,snapGrid:G0,snapToGrid:X0,nodeOrigin:d_,paneDomNode:f_}=ca();if(tg=qw.get(aa),!tg)return;rg=f_?.getBoundingClientRect()??null;const{xSnapped:zN,ySnapped:BN}=getPointerPosition(Hw.sourceEvent,{transform:Y0,snapGrid:G0,snapToGrid:X0,containerBounds:rg});Vm={width:tg.measured.width??0,height:tg.measured.height??0,x:tg.position.x??0,y:tg.position.y??0},eg={...Vm,pointerX:zN,pointerY:BN,aspectRatio:Vm.width/Vm.height},vv=void 0,tg.parentId&&(tg.extent==="parent"||tg.expandParent)&&(vv=qw.get(tg.parentId),R1=vv&&tg.extent==="parent"?nodeToParentExtent(vv):void 0),ig=[],O1=void 0;for(const[iF,yY]of qw)if(yY.parentId===aa&&(ig.push({id:iF,position:{...yY.position},extent:yY.extent}),yY.extent==="parent"||yY.expandParent)){const vQ=nodeToChildExtent(yY,tg,yY.origin??d_);O1?O1=[[Math.min(vQ[0][0],O1[0][0]),Math.min(vQ[0][1],O1[0][1])],[Math.max(vQ[1][0],O1[1][0]),Math.max(vQ[1][1],O1[1][1])]]:O1=vQ}Uf?.(Hw,{...Vm})}).on("drag",Hw=>{const{transform:qw,snapGrid:Y0,snapToGrid:G0,nodeOrigin:X0}=ca(),d_=getPointerPosition(Hw.sourceEvent,{transform:qw,snapGrid:Y0,snapToGrid:G0,containerBounds:rg}),f_=[];if(!tg)return;const{x:zN,y:BN,width:iF,height:yY}=Vm,vQ={},Ohe=tg.origin??X0,{width:bY,height:Lhe,x:Dhe,y:kdt}=getDimensionsAfterResize(eg,pl.controlDirection,d_,pl.boundaries,pl.keepAspectRatio,Ohe,R1,O1),eht=bY!==iF,oht=Lhe!==yY,iht=Dhe!==zN&&eht,Uhe=kdt!==BN&&oht;if(!iht&&!Uhe&&!eht&&!oht)return;if((iht||Uhe||Ohe[0]===1||Ohe[1]===1)&&(vQ.x=iht?Dhe:Vm.x,vQ.y=Uhe?kdt:Vm.y,Vm.x=vQ.x,Vm.y=vQ.y,ig.length>0)){const opt=Dhe-zN,gpt=kdt-BN;for(const Qht of ig)Qht.position={x:Qht.position.x-opt+Ohe[0]*(bY-iF),y:Qht.position.y-gpt+Ohe[1]*(Lhe-yY)},f_.push(Qht)}if((eht||oht)&&(vQ.width=eht&&(!pl.resizeDirection||pl.resizeDirection==="horizontal")?bY:Vm.width,vQ.height=oht&&(!pl.resizeDirection||pl.resizeDirection==="vertical")?Lhe:Vm.height,Vm.width=vQ.width,Vm.height=vQ.height),vv&&tg.expandParent){const opt=Ohe[0]*(vQ.width??0);vQ.x&&vQ.x<opt&&(Vm.x=opt,eg.x=eg.x-(vQ.x-opt));const gpt=Ohe[1]*(vQ.height??0);vQ.y&&vQ.y<gpt&&(Vm.y=gpt,eg.y=eg.y-(vQ.y-gpt))}const Bhe=getResizeDirection({width:Vm.width,prevWidth:iF,height:Vm.height,prevHeight:yY,affectsX:pl.controlDirection.affectsX,affectsY:pl.controlDirection.affectsY}),dht={...Vm,direction:Bhe};qm?.(Hw,dht)!==!1&&(K0=!0,rp?.(Hw,dht),ua(vQ,f_))}).on("end",Hw=>{K0&&(np?.(Hw,{...Vm}),Sa?.({...Vm}),K0=!1)});hl.call(J0)}function gl(){hl.on(".drag",null)}return{update:ml,destroy:gl}}var withSelector$1={exports:{}},withSelector_production={},shim={exports:{}},useSyncExternalStoreShim_production={};/**
|
|
19390
|
+
🔄 System will attempt automatic recovery...`);try{throw console.log("⚙️ Attempting to recover from OOM by resetting database..."),this.recoveryMode=!0,await resetDefaultDatabase(),await parseAndIntern$1(aiModule),await initDatabase(void 0),await runInitFunctions(),await runStandaloneStatements(),this.lastRecoveryTime=Date.now(),this.recoveryMode=!1,console.log(`✅ Successfully recovered from OOM. Cooldown period: ${this.RECOVERY_COOLDOWN_MS}ms`),typeof window<"u"&&window.dispatchEvent(new CustomEvent("agentlang:oom-recovered",{detail:{timestamp:Date.now(),cooldownMs:this.RECOVERY_COOLDOWN_MS}})),new Error("Query failed due to out of memory, but system has been recovered. Please retry in a few seconds.")}catch(Sa){throw this.recoveryMode=!1,console.error("❌ Failed to recover from OOM:",Sa),typeof window<"u"&&window.dispatchEvent(new CustomEvent("agentlang:oom-error",{detail:{error:ca.message,timestamp:Date.now(),requiresRefresh:!0}})),new Error("Out of memory error and automatic recovery failed. Please refresh the page.")}}throw console.error("❌ AgentLang evaluation error:",ca),ca}}async createInstance(aa,ca,ua){const Sa=this.formatAttributes(ua),hl=`{${aa}/${ca} {${Sa}}}`,pl=await this.evaluate(hl),ml=this.extractEntityData(pl);return this.emitDataChange("create",aa,ca,ml),ml}emitDataChange(aa,ca,ua,Sa){if(typeof window<"u"){const hl=new CustomEvent("agentlang-data-change",{detail:{operation:aa,componentName:ca,entityName:ua,fullPath:`${ca}/${ua}`,data:Sa,timestamp:Date.now()}});window.dispatchEvent(hl)}}async queryInstances(aa,ca,ua){const Sa=`{${aa}/${ca}? {}}`,hl=await this.evaluate(Sa);let pl=[];if(Array.isArray(hl))pl=hl;else if(hl&&typeof hl=="object")pl=[hl];else return[];const ml=pl.map(wc=>this.extractEntityData(wc));let gl=ml;return ua&&Object.keys(ua).length>0&&(gl=ml.filter(wc=>Object.entries(ua).every(([xu,ff])=>wc[xu]===ff))),gl}async createRelationshipInstance(aa,ca,ua,Sa,hl,pl){const ml=pl.id||pl.Id,gl=ml===ua;let wc={...pl};if(!ml||gl){const rp=crypto.randomUUID();wc={...pl,id:rp},delete wc.Id}const xu=this.formatAttributes(wc,{skipId:!1}),ff=`{${aa}/${ca} {id? ${JSON.stringify(ua)}}, ${Sa} {${aa}/${hl} {${xu}}}}`,jf=await this.evaluate(ff),Uf=this.extractEntityData(jf);return this.emitDataChange("create",aa,hl,Uf),Uf}async queryRelationship(aa,ca,ua,Sa,hl){const pl=`{${aa}/${ca} {id? ${JSON.stringify(ua)}}, ${Sa} {${aa}/${hl}? {}}}`,ml=await this.evaluate(pl);if(Array.isArray(ml)&&ml.length>1){const jf=ml[1];if(Array.isArray(jf))return jf.map(rp=>this.extractEntityData(rp));if(jf&&typeof jf=="object"&&jf[Sa]){const Uf=jf[Sa];if(Array.isArray(Uf))return Uf.map(np=>this.extractEntityData(np))}}let gl;if(Array.isArray(ml)&&ml.length>0?gl=ml[0]:ml&&typeof ml=="object"&&(gl=ml),!gl)return[];let wc;if(gl.relatedInstances instanceof Map&&(wc=gl.relatedInstances.get(Sa)),!wc&&gl["->"]instanceof Map&&(wc=gl["->"].get(Sa)),wc||(wc=gl[Sa]),!wc){const jf=Sa.charAt(0).toLowerCase()+Sa.slice(1);wc=gl[jf]}if(!wc)return[];let xu=[];return Array.isArray(wc)?xu=wc:wc&&typeof wc=="object"&&(xu=[wc]),xu.map(jf=>this.extractEntityData(jf))}async updateInstance(aa,ca,ua,Sa){const hl={...Sa,Id:ua},pl=this.formatAttributes(hl),ml=`{${aa}/${ca} {${pl}}}`,gl=await this.evaluate(ml),wc=this.extractEntityData(gl);return this.emitDataChange("update",aa,ca,wc),wc}async deleteInstance(aa,ca,ua){const Sa=`{${aa}/Delete${ca} {Id ${JSON.stringify(ua)}}}`,hl=await this.evaluate(Sa),pl=this.extractEntityData(hl);return this.emitDataChange("delete",aa,ca,{id:ua}),pl}extractEntityData(aa){return aa&&(aa.attributes instanceof Map?Object.fromEntries(aa.attributes):aa.record&&aa.record.attributes instanceof Map?Object.fromEntries(aa.record.attributes):aa instanceof Map?Object.fromEntries(aa):aa.record&&typeof aa.record=="object"&&!(Object.prototype.hasOwnProperty.call(aa.record,"schema")||Object.prototype.hasOwnProperty.call(aa.record,"taggedAsPublic")||Object.prototype.hasOwnProperty.call(aa.record,"type"))?aa.record:(typeof aa=="object"&&!aa.name&&!aa.moduleName&&!aa.attributes&&!aa.record||console.warn("⚠️ Could not extract entity data from result, returning as-is:",aa),aa))}formatAttributes(aa,ca){return Object.entries(aa).filter(([ua,Sa])=>{if(ca?.skipId&&(ua==="id"||ua==="Id")||ua.startsWith("__")||ua.startsWith("_")||Array.isArray(Sa))return!1;if(Sa&&typeof Sa=="object"&&!Sa.__isScalar){const hl=Object.keys(Sa);if(hl.length>2||hl.includes("id")||hl.includes("Id"))return!1}return!0}).map(([ua,Sa])=>{let hl;return typeof Sa=="string"?hl=JSON.stringify(Sa):typeof Sa=="number"||typeof Sa=="boolean"?hl=String(Sa):Sa==null?hl="null":hl=JSON.stringify(Sa),`${ua} ${hl}`}).join(", ")}async sendCommand(aa){return this.evaluate(aa)}getContext(){return this.currentContext}isReady(){return this.runtimeInitialized&&this.componentLoaded}async refreshEnvironmentKeys(){if(!this.runtimeInitialized){console.warn("Runtime not initialized yet, cannot refresh environment keys");return}try{const aa=getEnvironmentKeysAsObject();console.log("🔄 Refreshing environment keys:",Object.keys(aa)),await initializeRuntime(void 0,aa);const{initializeResolverConfigs:ca}=await __vitePreload(async()=>{const{initializeResolverConfigs:ua}=await Promise.resolve().then(()=>browserResolvers);return{initializeResolverConfigs:ua}},void 0);await ca(),console.log("✅ Environment keys refreshed successfully")}catch(aa){throw console.error("❌ Failed to refresh environment keys:",aa),aa}}async reset(){const aa=getUserModuleNames();aa.length>0&&aa.forEach(ca=>{removeModule(ca)}),this.loadedModules.clear(),this.currentContext=null,this.componentLoaded=!1,this.queryQueue=[],this.isProcessingQueue=!1,this.runtimeInitialized&&await resetDefaultDatabase()}}const inBrowserREPL=new InBrowserREPL;typeof window<"u"&&(window.inBrowserREPL=inBrowserREPL);const inBrowserREPL$1=Object.freeze(Object.defineProperty({__proto__:null,InBrowserREPL,inBrowserREPL},Symbol.toStringTag,{value:"Module"}));class InBrowserSessionManager{currentSession=null;async ensureSession(aa){return this.currentSession&&this.sessionMatchesContext(this.currentSession,aa)?this.currentSession:this.createSession(aa)}async createSession(aa){if(!aa.teamName)throw new Error("Team name is required for in-browser session");try{console.log("📝 Creating in-browser REPL session for:",aa),await inBrowserREPL.loadComponent(aa);const ca={deploymentId:`in-browser-${aa.teamName}-${Date.now()}`,httpUrl:"",status:"ready",context:aa,createdAt:Date.now()};return this.currentSession=ca,console.log("✅ In-browser session created:",ca.deploymentId),ca}catch(ca){throw console.error("❌ Failed to create in-browser session:",ca),ca}}getCurrentSession(){return this.currentSession}updateContext(aa){this.currentSession&&(this.currentSession.context=aa)}async waitForReady(aa=3e4){if(!this.currentSession)throw new Error("No active in-browser session");this.currentSession.status!=="ready"&&(this.currentSession.status="ready")}clearSession(){console.log("🗑️ Clearing in-browser session"),this.currentSession=null}async reset(){console.log("🔄 Resetting in-browser session manager"),this.clearSession(),await inBrowserREPL.reset()}sessionMatchesContext(aa,ca){return aa.context.teamName===ca.teamName&&(aa.context.moduleName||"core")===(ca.moduleName||"core")&&(aa.context.branch||"main")===(ca.branch||"main")}}class InBrowserCommandExecutor{constructor(aa){this.sessionManager=aa}async sendCommand(aa){if(!this.sessionManager.getCurrentSession())throw new Error("No active in-browser REPL session");try{return await inBrowserREPL.evaluate(aa)}catch(ua){throw console.error("Failed to execute command:",ua),ua}}async updateFile(aa,ca){console.warn("updateFile not implemented for in-browser mode")}async sendHttpRequest(aa,ca=0){if(ca>10)throw new Error("Query depth exceeded maximum of 10. Possible circular relationship or deeply nested query.");const Sa=this.sessionManager.getCurrentSession();if(!Sa)throw new Error("No active in-browser REPL session");const{method:hl="GET",path:pl,data:ml}=aa;try{const gl=pl.split("/").filter(Uf=>Uf);let wc,xu,ff,jf=[];if(gl[0]==="instances")wc=gl[1],xu=gl[2],ff=gl[3],jf=gl.slice(4);else if(gl.length===1){const Uf=gl[0];if(isModule$1(Uf))throw new Error(`Invalid path "${pl}": "${Uf}" is a module name. Please specify an entity like "${Uf}/EntityName".`);xu=Uf;const rp=Sa.context.teamName,np=Sa.context.moduleName||"core";if(np.startsWith(`${rp}.`)?wc=np:wc=`${rp}.${np}`,wc.includes(".")){const qm=wc.split(".");qm.length===2&&qm[0]===qm[1]&&(wc=qm[1])}}else if(gl.length===2){const Uf=gl[0],rp=gl[1],np=Sa.context.teamName,qm=Sa.context.moduleName||"core";if(Uf.includes(".")||Uf===np||Uf===qm||Uf===`${np}.${qm}`||isModule$1(Uf))wc=Uf,xu=rp;else if(xu=Uf,ff=rp,qm.startsWith(`${np}.`)?wc=qm:wc=`${np}.${qm}`,wc.includes(".")){const eg=wc.split(".");eg.length===2&&eg[0]===eg[1]&&(wc=eg[1])}}else wc=gl[0],xu=gl[1],ff=gl[2],jf=gl.slice(3);if(!wc||!xu)throw new Error(`Invalid path format: ${pl}`);if(jf.length>0){const Uf=jf[0],rp=jf[1],np=jf[2],qm=jf.slice(3);if(!ff||!Uf||!rp)throw new Error(`Invalid relationship path format: ${pl}`);if(hl.toUpperCase()==="GET"){const Vm=await inBrowserREPL.queryRelationship(wc,xu,ff,Uf,rp);if(np){const eg=Array.isArray(Vm)?Vm.find(tg=>tg.id===np||tg.Id===np):null;if(eg&&qm.length>0){const tg=`${wc}/${rp}/${np}/${qm.join("/")}`;return console.log(`📊 Recursively querying deeper path: ${tg} (depth: ${ca+1})`),await this.sendHttpRequest({method:"GET",path:tg},ca+1)}return eg||null}return Vm}else{if(hl.toUpperCase()==="POST")return await inBrowserREPL.createRelationshipInstance(wc,xu,ff,Uf,rp,ml);throw new Error(`Only GET and POST are supported for relationship paths: ${pl}`)}}switch(hl.toUpperCase()){case"POST":return await inBrowserREPL.createInstance(wc,xu,ml);case"GET":return ff?(await inBrowserREPL.queryInstances(wc,xu,void 0)).find(np=>np.id===ff||np.Id===ff||np.__id===ff)||null:await inBrowserREPL.queryInstances(wc,xu,void 0);case"PUT":case"PATCH":if(!ff)throw new Error("ID required for update operation");return await inBrowserREPL.updateInstance(wc,xu,ff,ml);case"DELETE":if(!ff)throw new Error("ID required for delete operation");return await inBrowserREPL.deleteInstance(wc,xu,ff);default:throw new Error(`Unsupported HTTP method: ${hl}`)}}catch(gl){throw console.error("HTTP request simulation failed:",gl),gl}}async sendAgentLangHttpRequest(aa,ca="GET",ua){return this.sendHttpRequest({method:ca,path:aa,data:ua})}}const IS_PLAYGROUND$8=!1,IS_LOCAL_MODE$a=!0;class ReplService{sessionManager;commandExecutor;eventManager;isPlaygroundMode;isLocalMode;constructor(){if(this.isPlaygroundMode=IS_PLAYGROUND$8,this.isLocalMode=IS_LOCAL_MODE$a,this.isLocalMode){console.log("🏠 Initializing REPL service in LOCAL mode (Disabled)");const aa=new InBrowserSessionManager;this.sessionManager=aa,this.commandExecutor=new InBrowserCommandExecutor(aa)}else if(this.isPlaygroundMode){console.log("🎮 Initializing REPL service in PLAYGROUND mode (in-browser)");const aa=new InBrowserSessionManager;this.sessionManager=aa,this.commandExecutor=new InBrowserCommandExecutor(aa)}else{console.log("🌐 Initializing REPL service in NORMAL mode (HTTP)");const aa=new SessionManager;this.sessionManager=aa,this.commandExecutor=new CommandExecutor(aa)}this.eventManager=new EventManager$1}async ensureSession(aa){return this.isLocalMode?(console.log("REPL disabled in local mode"),{}):this.sessionManager.ensureSession(aa)}async ensureReplSession(aa){return this.isLocalMode?{}:this.sessionManager.ensureSession(aa)}async createSession(aa,ca){if(this.isLocalMode)throw new Error("REPL disabled in local mode");const ua=ca.replace("https://github.com/","").split("/"),Sa={githubOrg:ua[0],teamName:ua[1],branch:"main"},hl=await this.sessionManager.createSession(Sa);return this.eventManager.emit("connect",{sessionId:hl.deploymentId}),this.eventManager.emit("status",{status:"REPL_READY",sessionId:hl.deploymentId}),hl.deploymentId}updateContext(aa){this.isLocalMode||this.sessionManager.updateContext(aa)}getSessionId(){return this.sessionManager.getCurrentSession()?.deploymentId||null}isConnected(){return this.isLocalMode?!1:this.sessionManager.getCurrentSession()!==null}disconnect(){this.isLocalMode||(this.eventManager.emit("disconnect",void 0),this.eventManager.clear())}async sendCommand(aa){if(this.isLocalMode)throw new Error("REPL disabled in local mode");return await this.commandExecutor.sendCommand(aa)}async sendFileUpdate(aa,ca){if(this.isLocalMode)return;const ua=this.sessionManager.getCurrentSession();if(!ua||!ua.deploymentId)throw new Error("No active REPL session for file updates");if(this.isPlaygroundMode){console.log("📝 File update in playground mode - will require reload:",aa);return}if(!ua.httpUrl)throw new Error("No HTTP URL for file updates");updateManager.setSession(ua);const Sa=await updateManager.trackFileChange(aa,ca);Sa&&await updateManager.sendUpdateToREPL([Sa],ua)}async initializeFileTracking(aa){if(this.isLocalMode)return;updateManager.setRepoPath(aa);const ca=this.sessionManager.getCurrentSession();ca&&updateManager.setSession(ca),await updateManager.initializeCache()}async updateFile(aa,ca){if(!this.isLocalMode)return this.commandExecutor.updateFile(aa,ca)}async sendHttpRequest(aa){return this.isLocalMode?{}:this.commandExecutor.sendHttpRequest(aa)}async sendAgentLangHttpRequest(aa,ca="GET",ua){return this.isLocalMode?{}:this.commandExecutor.sendAgentLangHttpRequest(aa,ca,ua)}on(aa,ca){this.eventManager.on(aa,ca)}off(aa,ca){this.eventManager.off(aa,ca)}setListeners(aa){this.eventManager.setListeners(aa)}getPodConnection(){const aa=this.sessionManager.getCurrentSession();return aa?{httpUrl:aa.httpUrl,websocketUrl:"",ports:{http:8080,websocket:3001},healthEndpoint:`${aa.httpUrl}/health`,websocketEndpoint:""}:null}async waitForAgentLangReady(aa=3e4){return this.sessionManager.waitForReady(aa)}isDirectConnectionAvailable(){return this.isConnected()}async sendDirectCommand(aa){return this.sendCommand(aa)}getReplSessionInfo(){const aa=this.sessionManager.getCurrentSession();return aa?{sessionId:aa.deploymentId,status:aa.status,httpUrl:aa.httpUrl,context:aa.context}:null}getDebugInfo(){return{connected:this.isConnected(),session:this.getReplSessionInfo()}}async checkHealth(){if(this.isLocalMode)return null;const aa=this.sessionManager.getCurrentSession();return aa?this.isPlaygroundMode?{deploymentId:aa.deploymentId,status:"ready",lastHealthCheck:Date.now(),message:"In-browser REPL is ready"}:deploymentManager.checkHealth(aa):null}async getDeploymentStatus(){if(this.isLocalMode)return null;const aa=this.sessionManager.getCurrentSession();return aa?this.isPlaygroundMode?{deploymentId:aa.deploymentId,status:"ready",lastHealthCheck:Date.now(),message:"In-browser REPL is ready"}:deploymentManager.getStatus(aa):null}async restartDeployment(){if(this.isLocalMode)return!1;const aa=this.sessionManager.getCurrentSession();if(!aa)throw new Error("No active REPL session");if(this.isPlaygroundMode)return console.log("🔄 Restarting in-browser REPL..."),await this.sessionManager.reset(),this.eventManager.emit("status",{status:"REPL_READY",sessionId:aa.deploymentId,message:"In-browser REPL restarted successfully"}),!0;const ca=await deploymentManager.restartDeployment(aa);return ca&&this.eventManager.emit("status",{status:"REPL_READY",sessionId:aa.deploymentId,message:"Deployment restarted successfully"}),ca}}const replService=new ReplService,IS_LOCAL_MODE$9=!0,packageJsonCache=new Map,getRepositoryPath=async la=>{const aa=[`/${la}`,`/${la.toLowerCase()}`,`/${la.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_/,"")}`];for(const ca of aa)if(await pathExists(ca))return console.log(`Found repository at: ${ca}`),ca;return console.warn(`Repository not found at expected paths for team: ${la}, using default`),`/${la.toLowerCase()}`},updateLocalFile=async(la,aa)=>{try{const ua=await fetch("http://localhost:4000/file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:la,content:aa})});if(!ua.ok)throw new Error(`Failed to update local file: ${ua.statusText}`);console.log(`✅ Local file updated: ${la}`)}catch(ca){throw console.error("Failed to update local file:",ca),ca}},saveModuleToGit=async(la,aa,ca,ua,Sa,hl)=>{const pl=await getRepositoryPath(la),ml=ca,gl=aa.split("."),wc=gl.length>1?`${gl[1]}.al`:`${aa}.al`;try{const xu=wc.replace(".al","");let ff="",jf=!1;const Uf=`src/${wc}`;if(await pathExists(`${pl}/${Uf}`))console.log(`Found existing file in ${Uf}, updating it there`),ff=Uf;else{console.log("File not found in src/, checking root directory...");const np=[wc,xu.charAt(0).toUpperCase()+xu.slice(1)+".al",xu.toUpperCase()+".al",xu.toLowerCase()+".al",xu.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_/,"")+".al"];for(const qm of np){const Vm=qm;if(await pathExists(`${pl}/${Vm}`)){console.log(`Found existing file in root: ${Vm}, updating it there`),ff=Vm;break}}ff||(console.log(`File not found anywhere, creating new file in preferred location: ${Uf}`),ff=Uf,jf=!0)}if(IS_LOCAL_MODE$9){await updateLocalFile(ff,ml);try{const np="http://localhost:8080";if(jf){const qm=ml.replace(/"/g,'\\"').replace(/'/g,"\\'"),Vm=await fetch(`${np}/agentlang/Module`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:aa,definition:qm})});Vm.ok?console.log(`✅ Module created in runtime: ${aa}`):console.warn(`Failed to create module in runtime: ${Vm.statusText}`)}else{const qm=ml.replace(/"/g,'\\"').replace(/'/g,"\\'"),Vm=await fetch(`${np}/agentlang/Module/${aa}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({definition:qm})});Vm.ok?console.log(`✅ Module updated in runtime: ${aa}`):console.warn(`Failed to update module in runtime: ${Vm.statusText}`)}}catch(np){console.error("Failed to send module to runtime:",np)}return}const rp=await openRepository(pl);console.log(`💾 Writing module to: ${ff}`),await writeRepoFile(pl,ff,ml),replService.isConnected()&&replService.sendFileUpdate(ff,ml).catch(np=>{console.error("Failed to send update to REPL:",np)}),await commitChanges(rp,ff,`${ua} at ${new Date().toLocaleDateString()} ${new Date().toLocaleTimeString()}`,{name:Sa,email:Sa});try{await pushChanges(rp,"origin","main",hl)}catch(np){console.warn(`Push to GitHub failed: ${np.message}. Changes saved locally.`)}}catch(xu){throw console.error("Failed to save module to git:",xu),new Error(`Failed to save module: ${xu.message}`)}},saveUISpecToGit=async(la,aa,ca,ua,Sa)=>{try{const hl=await getRepositoryPath(la);if(IS_LOCAL_MODE$9){await updateLocalFile("ui-spec.json",aa);return}const pl=await openRepository(hl);await writeRepoFile(hl,"ui-spec.json",aa),replService.isConnected()&&replService.sendFileUpdate("ui-spec.json",aa).catch(ml=>{console.error("Failed to send UI spec update to REPL:",ml)}),await commitChanges(pl,"ui-spec.json",`${ca} at ${new Date().toLocaleDateString()} ${new Date().toLocaleTimeString()}`,{name:ua,email:ua});try{await pushChanges(pl,"origin","main",Sa)}catch(ml){console.warn(`Push to GitHub failed: ${ml.message}. Changes saved locally.`)}}catch(hl){throw console.error("Failed to save UI spec to git:",hl),new Error(`Failed to save UI spec: ${hl.message}`)}},saveConfigToGit=async(la,aa,ca,ua,Sa)=>{try{const hl=await getRepositoryPath(la);if(IS_LOCAL_MODE$9){await updateLocalFile("config.al",aa);return}const pl=await openRepository(hl);await writeRepoFile(hl,"config.al",aa),replService.isConnected()&&replService.sendFileUpdate("config.al",aa).catch(ml=>{console.error("Failed to send config update to REPL:",ml)}),await commitChanges(pl,"config.al",`${ca} at ${new Date().toLocaleDateString()} ${new Date().toLocaleTimeString()}`,{name:ua,email:ua});try{await pushChanges(pl,"origin","main",Sa)}catch(ml){console.warn(`Push to GitHub failed: ${ml.message}. Changes saved locally.`)}}catch(hl){throw console.error("Failed to save config to git:",hl),new Error(`Failed to save config: ${hl.message}`)}},readProjectFile=async(la,aa)=>{{const ua=await fetch(`http://localhost:4000/file?path=${encodeURIComponent(aa)}`);if(!ua.ok)throw new Error(`Failed to fetch ${aa} from local server: ${ua.statusText}`);const{content:Sa}=await ua.json();return Sa}},readPackageJsonFromGit=async(la,aa=!1)=>{const ca=la;if(!aa&&packageJsonCache.has(ca))return packageJsonCache.get(ca);try{let ua;if(IS_LOCAL_MODE$9){const pl=await fetch(`http://localhost:4000/file?path=${encodeURIComponent("package.json")}`);if(!pl.ok)throw new Error(`Failed to fetch package.json from local server: ${pl.statusText}`);const{content:ml}=await pl.json();ua=ml}const Sa=JSON.parse(ua);return packageJsonCache.set(ca,Sa),Sa}catch(ua){throw console.error("Failed to read package.json from git:",ua),new Error(`Failed to read package.json: ${ua.message}`)}},readDependencyPackageJsonFromGit=async(la,aa,ca=!1)=>{const ua=`${la}:${aa}`;if(!ca&&packageJsonCache.has(ua))return packageJsonCache.get(ua);const Sa=async(ml,gl)=>{try{let wc;if(IS_LOCAL_MODE$9){const jf=await fetch(`http://localhost:4000/file?path=${encodeURIComponent(gl)}`);if(!jf.ok){if(jf.status===404)return null;throw new Error(`Failed to fetch ${gl} from local server: ${jf.statusText}`)}const{content:Uf}=await jf.json();wc=Uf}const xu=JSON.parse(wc);return packageJsonCache.set(ua,xu),xu}catch(wc){return wc?.code==="ENOENT"||wc?.message?.includes("ENOENT")||wc?.message?.includes("not found")||wc?.message?.includes("No such file")||wc?.message?.includes("404")?null:Promise.reject(wc)}},hl=await getRepositoryPath(la),pl=aa.toLowerCase();try{const gl=(await readPackageJsonFromGit(la,ca)).dependencies||{},wc=Object.keys(gl).find(xu=>xu.split(".")[0].toLowerCase()===pl);if(wc){const xu=await Sa(hl,`node_modules/${wc}/package.json`);if(xu)return xu}}catch(ml){throw console.error(`Failed to read package.json for dependency ${aa} in team ${la}:`,ml),new Error(`Failed to read package.json for ${aa}: ${ml.message}`)}throw new Error(`Failed to read package.json for ${aa}: package.json not found`)},savePackageJsonToGit=async(la,aa,ca,ua,Sa)=>{try{const hl=await getRepositoryPath(la);if(IS_LOCAL_MODE$9){await updateLocalFile("package.json",aa),packageJsonCache.delete(la);return}const pl=await openRepository(hl);await writeRepoFile(hl,"package.json",aa),await commitChanges(pl,"package.json",ca,{name:ua,email:ua}),await pushChanges(pl,"origin","main",Sa),packageJsonCache.delete(la)}catch(hl){throw console.error("Failed to save package.json to git:",hl),new Error(`Failed to save package.json: ${hl.message}`)}};function cc(la){if(typeof la=="string"||typeof la=="number")return""+la;let aa="";if(Array.isArray(la))for(let ca=0,ua;ca<la.length;ca++)(ua=cc(la[ca]))!==""&&(aa+=(aa&&" ")+ua);else for(let ca in la)la[ca]&&(aa+=(aa&&" ")+ca);return aa}var noop$5={value:()=>{}};function dispatch(){for(var la=0,aa=arguments.length,ca={},ua;la<aa;++la){if(!(ua=arguments[la]+"")||ua in ca||/[\s.]/.test(ua))throw new Error("illegal type: "+ua);ca[ua]=[]}return new Dispatch(ca)}function Dispatch(la){this._=la}function parseTypenames$1(la,aa){return la.trim().split(/^|\s+/).map(function(ca){var ua="",Sa=ca.indexOf(".");if(Sa>=0&&(ua=ca.slice(Sa+1),ca=ca.slice(0,Sa)),ca&&!aa.hasOwnProperty(ca))throw new Error("unknown type: "+ca);return{type:ca,name:ua}})}Dispatch.prototype=dispatch.prototype={constructor:Dispatch,on:function(la,aa){var ca=this._,ua=parseTypenames$1(la+"",ca),Sa,hl=-1,pl=ua.length;if(arguments.length<2){for(;++hl<pl;)if((Sa=(la=ua[hl]).type)&&(Sa=get$1(ca[Sa],la.name)))return Sa;return}if(aa!=null&&typeof aa!="function")throw new Error("invalid callback: "+aa);for(;++hl<pl;)if(Sa=(la=ua[hl]).type)ca[Sa]=set$1(ca[Sa],la.name,aa);else if(aa==null)for(Sa in ca)ca[Sa]=set$1(ca[Sa],la.name,null);return this},copy:function(){var la={},aa=this._;for(var ca in aa)la[ca]=aa[ca].slice();return new Dispatch(la)},call:function(la,aa){if((Sa=arguments.length-2)>0)for(var ca=new Array(Sa),ua=0,Sa,hl;ua<Sa;++ua)ca[ua]=arguments[ua+2];if(!this._.hasOwnProperty(la))throw new Error("unknown type: "+la);for(hl=this._[la],ua=0,Sa=hl.length;ua<Sa;++ua)hl[ua].value.apply(aa,ca)},apply:function(la,aa,ca){if(!this._.hasOwnProperty(la))throw new Error("unknown type: "+la);for(var ua=this._[la],Sa=0,hl=ua.length;Sa<hl;++Sa)ua[Sa].value.apply(aa,ca)}};function get$1(la,aa){for(var ca=0,ua=la.length,Sa;ca<ua;++ca)if((Sa=la[ca]).name===aa)return Sa.value}function set$1(la,aa,ca){for(var ua=0,Sa=la.length;ua<Sa;++ua)if(la[ua].name===aa){la[ua]=noop$5,la=la.slice(0,ua).concat(la.slice(ua+1));break}return ca!=null&&la.push({name:aa,value:ca}),la}var xhtml="http://www.w3.org/1999/xhtml";const namespaces={svg:"http://www.w3.org/2000/svg",xhtml,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function namespace(la){var aa=la+="",ca=aa.indexOf(":");return ca>=0&&(aa=la.slice(0,ca))!=="xmlns"&&(la=la.slice(ca+1)),namespaces.hasOwnProperty(aa)?{space:namespaces[aa],local:la}:la}function creatorInherit(la){return function(){var aa=this.ownerDocument,ca=this.namespaceURI;return ca===xhtml&&aa.documentElement.namespaceURI===xhtml?aa.createElement(la):aa.createElementNS(ca,la)}}function creatorFixed(la){return function(){return this.ownerDocument.createElementNS(la.space,la.local)}}function creator(la){var aa=namespace(la);return(aa.local?creatorFixed:creatorInherit)(aa)}function none(){}function selector(la){return la==null?none:function(){return this.querySelector(la)}}function selection_select(la){typeof la!="function"&&(la=selector(la));for(var aa=this._groups,ca=aa.length,ua=new Array(ca),Sa=0;Sa<ca;++Sa)for(var hl=aa[Sa],pl=hl.length,ml=ua[Sa]=new Array(pl),gl,wc,xu=0;xu<pl;++xu)(gl=hl[xu])&&(wc=la.call(gl,gl.__data__,xu,hl))&&("__data__"in gl&&(wc.__data__=gl.__data__),ml[xu]=wc);return new Selection$1(ua,this._parents)}function array(la){return la==null?[]:Array.isArray(la)?la:Array.from(la)}function empty(){return[]}function selectorAll(la){return la==null?empty:function(){return this.querySelectorAll(la)}}function arrayAll(la){return function(){return array(la.apply(this,arguments))}}function selection_selectAll(la){typeof la=="function"?la=arrayAll(la):la=selectorAll(la);for(var aa=this._groups,ca=aa.length,ua=[],Sa=[],hl=0;hl<ca;++hl)for(var pl=aa[hl],ml=pl.length,gl,wc=0;wc<ml;++wc)(gl=pl[wc])&&(ua.push(la.call(gl,gl.__data__,wc,pl)),Sa.push(gl));return new Selection$1(ua,Sa)}function matcher(la){return function(){return this.matches(la)}}function childMatcher(la){return function(aa){return aa.matches(la)}}var find=Array.prototype.find;function childFind(la){return function(){return find.call(this.children,la)}}function childFirst(){return this.firstElementChild}function selection_selectChild(la){return this.select(la==null?childFirst:childFind(typeof la=="function"?la:childMatcher(la)))}var filter$1=Array.prototype.filter;function children(){return Array.from(this.children)}function childrenFilter(la){return function(){return filter$1.call(this.children,la)}}function selection_selectChildren(la){return this.selectAll(la==null?children:childrenFilter(typeof la=="function"?la:childMatcher(la)))}function selection_filter(la){typeof la!="function"&&(la=matcher(la));for(var aa=this._groups,ca=aa.length,ua=new Array(ca),Sa=0;Sa<ca;++Sa)for(var hl=aa[Sa],pl=hl.length,ml=ua[Sa]=[],gl,wc=0;wc<pl;++wc)(gl=hl[wc])&&la.call(gl,gl.__data__,wc,hl)&&ml.push(gl);return new Selection$1(ua,this._parents)}function sparse(la){return new Array(la.length)}function selection_enter(){return new Selection$1(this._enter||this._groups.map(sparse),this._parents)}function EnterNode(la,aa){this.ownerDocument=la.ownerDocument,this.namespaceURI=la.namespaceURI,this._next=null,this._parent=la,this.__data__=aa}EnterNode.prototype={constructor:EnterNode,appendChild:function(la){return this._parent.insertBefore(la,this._next)},insertBefore:function(la,aa){return this._parent.insertBefore(la,aa)},querySelector:function(la){return this._parent.querySelector(la)},querySelectorAll:function(la){return this._parent.querySelectorAll(la)}};function constant$3(la){return function(){return la}}function bindIndex(la,aa,ca,ua,Sa,hl){for(var pl=0,ml,gl=aa.length,wc=hl.length;pl<wc;++pl)(ml=aa[pl])?(ml.__data__=hl[pl],ua[pl]=ml):ca[pl]=new EnterNode(la,hl[pl]);for(;pl<gl;++pl)(ml=aa[pl])&&(Sa[pl]=ml)}function bindKey(la,aa,ca,ua,Sa,hl,pl){var ml,gl,wc=new Map,xu=aa.length,ff=hl.length,jf=new Array(xu),Uf;for(ml=0;ml<xu;++ml)(gl=aa[ml])&&(jf[ml]=Uf=pl.call(gl,gl.__data__,ml,aa)+"",wc.has(Uf)?Sa[ml]=gl:wc.set(Uf,gl));for(ml=0;ml<ff;++ml)Uf=pl.call(la,hl[ml],ml,hl)+"",(gl=wc.get(Uf))?(ua[ml]=gl,gl.__data__=hl[ml],wc.delete(Uf)):ca[ml]=new EnterNode(la,hl[ml]);for(ml=0;ml<xu;++ml)(gl=aa[ml])&&wc.get(jf[ml])===gl&&(Sa[ml]=gl)}function datum(la){return la.__data__}function selection_data(la,aa){if(!arguments.length)return Array.from(this,datum);var ca=aa?bindKey:bindIndex,ua=this._parents,Sa=this._groups;typeof la!="function"&&(la=constant$3(la));for(var hl=Sa.length,pl=new Array(hl),ml=new Array(hl),gl=new Array(hl),wc=0;wc<hl;++wc){var xu=ua[wc],ff=Sa[wc],jf=ff.length,Uf=arraylike(la.call(xu,xu&&xu.__data__,wc,ua)),rp=Uf.length,np=ml[wc]=new Array(rp),qm=pl[wc]=new Array(rp),Vm=gl[wc]=new Array(jf);ca(xu,ff,np,qm,Vm,Uf,aa);for(var eg=0,tg=0,rg,ig;eg<rp;++eg)if(rg=np[eg]){for(eg>=tg&&(tg=eg+1);!(ig=qm[tg])&&++tg<rp;);rg._next=ig||null}}return pl=new Selection$1(pl,ua),pl._enter=ml,pl._exit=gl,pl}function arraylike(la){return typeof la=="object"&&"length"in la?la:Array.from(la)}function selection_exit(){return new Selection$1(this._exit||this._groups.map(sparse),this._parents)}function selection_join(la,aa,ca){var ua=this.enter(),Sa=this,hl=this.exit();return typeof la=="function"?(ua=la(ua),ua&&(ua=ua.selection())):ua=ua.append(la+""),aa!=null&&(Sa=aa(Sa),Sa&&(Sa=Sa.selection())),ca==null?hl.remove():ca(hl),ua&&Sa?ua.merge(Sa).order():Sa}function selection_merge(la){for(var aa=la.selection?la.selection():la,ca=this._groups,ua=aa._groups,Sa=ca.length,hl=ua.length,pl=Math.min(Sa,hl),ml=new Array(Sa),gl=0;gl<pl;++gl)for(var wc=ca[gl],xu=ua[gl],ff=wc.length,jf=ml[gl]=new Array(ff),Uf,rp=0;rp<ff;++rp)(Uf=wc[rp]||xu[rp])&&(jf[rp]=Uf);for(;gl<Sa;++gl)ml[gl]=ca[gl];return new Selection$1(ml,this._parents)}function selection_order(){for(var la=this._groups,aa=-1,ca=la.length;++aa<ca;)for(var ua=la[aa],Sa=ua.length-1,hl=ua[Sa],pl;--Sa>=0;)(pl=ua[Sa])&&(hl&&pl.compareDocumentPosition(hl)^4&&hl.parentNode.insertBefore(pl,hl),hl=pl);return this}function selection_sort(la){la||(la=ascending);function aa(ff,jf){return ff&&jf?la(ff.__data__,jf.__data__):!ff-!jf}for(var ca=this._groups,ua=ca.length,Sa=new Array(ua),hl=0;hl<ua;++hl){for(var pl=ca[hl],ml=pl.length,gl=Sa[hl]=new Array(ml),wc,xu=0;xu<ml;++xu)(wc=pl[xu])&&(gl[xu]=wc);gl.sort(aa)}return new Selection$1(Sa,this._parents).order()}function ascending(la,aa){return la<aa?-1:la>aa?1:la>=aa?0:NaN}function selection_call(){var la=arguments[0];return arguments[0]=this,la.apply(null,arguments),this}function selection_nodes(){return Array.from(this)}function selection_node(){for(var la=this._groups,aa=0,ca=la.length;aa<ca;++aa)for(var ua=la[aa],Sa=0,hl=ua.length;Sa<hl;++Sa){var pl=ua[Sa];if(pl)return pl}return null}function selection_size(){let la=0;for(const aa of this)++la;return la}function selection_empty(){return!this.node()}function selection_each(la){for(var aa=this._groups,ca=0,ua=aa.length;ca<ua;++ca)for(var Sa=aa[ca],hl=0,pl=Sa.length,ml;hl<pl;++hl)(ml=Sa[hl])&&la.call(ml,ml.__data__,hl,Sa);return this}function attrRemove$1(la){return function(){this.removeAttribute(la)}}function attrRemoveNS$1(la){return function(){this.removeAttributeNS(la.space,la.local)}}function attrConstant$1(la,aa){return function(){this.setAttribute(la,aa)}}function attrConstantNS$1(la,aa){return function(){this.setAttributeNS(la.space,la.local,aa)}}function attrFunction$1(la,aa){return function(){var ca=aa.apply(this,arguments);ca==null?this.removeAttribute(la):this.setAttribute(la,ca)}}function attrFunctionNS$1(la,aa){return function(){var ca=aa.apply(this,arguments);ca==null?this.removeAttributeNS(la.space,la.local):this.setAttributeNS(la.space,la.local,ca)}}function selection_attr(la,aa){var ca=namespace(la);if(arguments.length<2){var ua=this.node();return ca.local?ua.getAttributeNS(ca.space,ca.local):ua.getAttribute(ca)}return this.each((aa==null?ca.local?attrRemoveNS$1:attrRemove$1:typeof aa=="function"?ca.local?attrFunctionNS$1:attrFunction$1:ca.local?attrConstantNS$1:attrConstant$1)(ca,aa))}function defaultView(la){return la.ownerDocument&&la.ownerDocument.defaultView||la.document&&la||la.defaultView}function styleRemove$1(la){return function(){this.style.removeProperty(la)}}function styleConstant$1(la,aa,ca){return function(){this.style.setProperty(la,aa,ca)}}function styleFunction$1(la,aa,ca){return function(){var ua=aa.apply(this,arguments);ua==null?this.style.removeProperty(la):this.style.setProperty(la,ua,ca)}}function selection_style(la,aa,ca){return arguments.length>1?this.each((aa==null?styleRemove$1:typeof aa=="function"?styleFunction$1:styleConstant$1)(la,aa,ca??"")):styleValue(this.node(),la)}function styleValue(la,aa){return la.style.getPropertyValue(aa)||defaultView(la).getComputedStyle(la,null).getPropertyValue(aa)}function propertyRemove(la){return function(){delete this[la]}}function propertyConstant(la,aa){return function(){this[la]=aa}}function propertyFunction(la,aa){return function(){var ca=aa.apply(this,arguments);ca==null?delete this[la]:this[la]=ca}}function selection_property(la,aa){return arguments.length>1?this.each((aa==null?propertyRemove:typeof aa=="function"?propertyFunction:propertyConstant)(la,aa)):this.node()[la]}function classArray(la){return la.trim().split(/^|\s+/)}function classList(la){return la.classList||new ClassList(la)}function ClassList(la){this._node=la,this._names=classArray(la.getAttribute("class")||"")}ClassList.prototype={add:function(la){var aa=this._names.indexOf(la);aa<0&&(this._names.push(la),this._node.setAttribute("class",this._names.join(" ")))},remove:function(la){var aa=this._names.indexOf(la);aa>=0&&(this._names.splice(aa,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(la){return this._names.indexOf(la)>=0}};function classedAdd(la,aa){for(var ca=classList(la),ua=-1,Sa=aa.length;++ua<Sa;)ca.add(aa[ua])}function classedRemove(la,aa){for(var ca=classList(la),ua=-1,Sa=aa.length;++ua<Sa;)ca.remove(aa[ua])}function classedTrue(la){return function(){classedAdd(this,la)}}function classedFalse(la){return function(){classedRemove(this,la)}}function classedFunction(la,aa){return function(){(aa.apply(this,arguments)?classedAdd:classedRemove)(this,la)}}function selection_classed(la,aa){var ca=classArray(la+"");if(arguments.length<2){for(var ua=classList(this.node()),Sa=-1,hl=ca.length;++Sa<hl;)if(!ua.contains(ca[Sa]))return!1;return!0}return this.each((typeof aa=="function"?classedFunction:aa?classedTrue:classedFalse)(ca,aa))}function textRemove(){this.textContent=""}function textConstant$1(la){return function(){this.textContent=la}}function textFunction$1(la){return function(){var aa=la.apply(this,arguments);this.textContent=aa??""}}function selection_text(la){return arguments.length?this.each(la==null?textRemove:(typeof la=="function"?textFunction$1:textConstant$1)(la)):this.node().textContent}function htmlRemove(){this.innerHTML=""}function htmlConstant(la){return function(){this.innerHTML=la}}function htmlFunction(la){return function(){var aa=la.apply(this,arguments);this.innerHTML=aa??""}}function selection_html(la){return arguments.length?this.each(la==null?htmlRemove:(typeof la=="function"?htmlFunction:htmlConstant)(la)):this.node().innerHTML}function raise(){this.nextSibling&&this.parentNode.appendChild(this)}function selection_raise(){return this.each(raise)}function lower(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function selection_lower(){return this.each(lower)}function selection_append(la){var aa=typeof la=="function"?la:creator(la);return this.select(function(){return this.appendChild(aa.apply(this,arguments))})}function constantNull(){return null}function selection_insert(la,aa){var ca=typeof la=="function"?la:creator(la),ua=aa==null?constantNull:typeof aa=="function"?aa:selector(aa);return this.select(function(){return this.insertBefore(ca.apply(this,arguments),ua.apply(this,arguments)||null)})}function remove(){var la=this.parentNode;la&&la.removeChild(this)}function selection_remove(){return this.each(remove)}function selection_cloneShallow(){var la=this.cloneNode(!1),aa=this.parentNode;return aa?aa.insertBefore(la,this.nextSibling):la}function selection_cloneDeep(){var la=this.cloneNode(!0),aa=this.parentNode;return aa?aa.insertBefore(la,this.nextSibling):la}function selection_clone(la){return this.select(la?selection_cloneDeep:selection_cloneShallow)}function selection_datum(la){return arguments.length?this.property("__data__",la):this.node().__data__}function contextListener(la){return function(aa){la.call(this,aa,this.__data__)}}function parseTypenames(la){return la.trim().split(/^|\s+/).map(function(aa){var ca="",ua=aa.indexOf(".");return ua>=0&&(ca=aa.slice(ua+1),aa=aa.slice(0,ua)),{type:aa,name:ca}})}function onRemove(la){return function(){var aa=this.__on;if(aa){for(var ca=0,ua=-1,Sa=aa.length,hl;ca<Sa;++ca)hl=aa[ca],(!la.type||hl.type===la.type)&&hl.name===la.name?this.removeEventListener(hl.type,hl.listener,hl.options):aa[++ua]=hl;++ua?aa.length=ua:delete this.__on}}}function onAdd(la,aa,ca){return function(){var ua=this.__on,Sa,hl=contextListener(aa);if(ua){for(var pl=0,ml=ua.length;pl<ml;++pl)if((Sa=ua[pl]).type===la.type&&Sa.name===la.name){this.removeEventListener(Sa.type,Sa.listener,Sa.options),this.addEventListener(Sa.type,Sa.listener=hl,Sa.options=ca),Sa.value=aa;return}}this.addEventListener(la.type,hl,ca),Sa={type:la.type,name:la.name,value:aa,listener:hl,options:ca},ua?ua.push(Sa):this.__on=[Sa]}}function selection_on(la,aa,ca){var ua=parseTypenames(la+""),Sa,hl=ua.length,pl;if(arguments.length<2){var ml=this.node().__on;if(ml){for(var gl=0,wc=ml.length,xu;gl<wc;++gl)for(Sa=0,xu=ml[gl];Sa<hl;++Sa)if((pl=ua[Sa]).type===xu.type&&pl.name===xu.name)return xu.value}return}for(ml=aa?onAdd:onRemove,Sa=0;Sa<hl;++Sa)this.each(ml(ua[Sa],aa,ca));return this}function dispatchEvent(la,aa,ca){var ua=defaultView(la),Sa=ua.CustomEvent;typeof Sa=="function"?Sa=new Sa(aa,ca):(Sa=ua.document.createEvent("Event"),ca?(Sa.initEvent(aa,ca.bubbles,ca.cancelable),Sa.detail=ca.detail):Sa.initEvent(aa,!1,!1)),la.dispatchEvent(Sa)}function dispatchConstant(la,aa){return function(){return dispatchEvent(this,la,aa)}}function dispatchFunction(la,aa){return function(){return dispatchEvent(this,la,aa.apply(this,arguments))}}function selection_dispatch(la,aa){return this.each((typeof aa=="function"?dispatchFunction:dispatchConstant)(la,aa))}function*selection_iterator(){for(var la=this._groups,aa=0,ca=la.length;aa<ca;++aa)for(var ua=la[aa],Sa=0,hl=ua.length,pl;Sa<hl;++Sa)(pl=ua[Sa])&&(yield pl)}var root=[null];function Selection$1(la,aa){this._groups=la,this._parents=aa}function selection(){return new Selection$1([[document.documentElement]],root)}function selection_selection(){return this}Selection$1.prototype=selection.prototype={constructor:Selection$1,select:selection_select,selectAll:selection_selectAll,selectChild:selection_selectChild,selectChildren:selection_selectChildren,filter:selection_filter,data:selection_data,enter:selection_enter,exit:selection_exit,join:selection_join,merge:selection_merge,selection:selection_selection,order:selection_order,sort:selection_sort,call:selection_call,nodes:selection_nodes,node:selection_node,size:selection_size,empty:selection_empty,each:selection_each,attr:selection_attr,style:selection_style,property:selection_property,classed:selection_classed,text:selection_text,html:selection_html,raise:selection_raise,lower:selection_lower,append:selection_append,insert:selection_insert,remove:selection_remove,clone:selection_clone,datum:selection_datum,on:selection_on,dispatch:selection_dispatch,[Symbol.iterator]:selection_iterator};function select(la){return typeof la=="string"?new Selection$1([[document.querySelector(la)]],[document.documentElement]):new Selection$1([[la]],root)}function sourceEvent(la){let aa;for(;aa=la.sourceEvent;)la=aa;return la}function pointer(la,aa){if(la=sourceEvent(la),aa===void 0&&(aa=la.currentTarget),aa){var ca=aa.ownerSVGElement||aa;if(ca.createSVGPoint){var ua=ca.createSVGPoint();return ua.x=la.clientX,ua.y=la.clientY,ua=ua.matrixTransform(aa.getScreenCTM().inverse()),[ua.x,ua.y]}if(aa.getBoundingClientRect){var Sa=aa.getBoundingClientRect();return[la.clientX-Sa.left-aa.clientLeft,la.clientY-Sa.top-aa.clientTop]}}return[la.pageX,la.pageY]}const nonpassive={passive:!1},nonpassivecapture={capture:!0,passive:!1};function nopropagation$1(la){la.stopImmediatePropagation()}function noevent$1(la){la.preventDefault(),la.stopImmediatePropagation()}function dragDisable(la){var aa=la.document.documentElement,ca=select(la).on("dragstart.drag",noevent$1,nonpassivecapture);"onselectstart"in aa?ca.on("selectstart.drag",noevent$1,nonpassivecapture):(aa.__noselect=aa.style.MozUserSelect,aa.style.MozUserSelect="none")}function yesdrag(la,aa){var ca=la.document.documentElement,ua=select(la).on("dragstart.drag",null);aa&&(ua.on("click.drag",noevent$1,nonpassivecapture),setTimeout(function(){ua.on("click.drag",null)},0)),"onselectstart"in ca?ua.on("selectstart.drag",null):(ca.style.MozUserSelect=ca.__noselect,delete ca.__noselect)}const constant$2=la=>()=>la;function DragEvent(la,{sourceEvent:aa,subject:ca,target:ua,identifier:Sa,active:hl,x:pl,y:ml,dx:gl,dy:wc,dispatch:xu}){Object.defineProperties(this,{type:{value:la,enumerable:!0,configurable:!0},sourceEvent:{value:aa,enumerable:!0,configurable:!0},subject:{value:ca,enumerable:!0,configurable:!0},target:{value:ua,enumerable:!0,configurable:!0},identifier:{value:Sa,enumerable:!0,configurable:!0},active:{value:hl,enumerable:!0,configurable:!0},x:{value:pl,enumerable:!0,configurable:!0},y:{value:ml,enumerable:!0,configurable:!0},dx:{value:gl,enumerable:!0,configurable:!0},dy:{value:wc,enumerable:!0,configurable:!0},_:{value:xu}})}DragEvent.prototype.on=function(){var la=this._.on.apply(this._,arguments);return la===this._?this:la};function defaultFilter$1(la){return!la.ctrlKey&&!la.button}function defaultContainer(){return this.parentNode}function defaultSubject(la,aa){return aa??{x:la.x,y:la.y}}function defaultTouchable$1(){return navigator.maxTouchPoints||"ontouchstart"in this}function drag$1(){var la=defaultFilter$1,aa=defaultContainer,ca=defaultSubject,ua=defaultTouchable$1,Sa={},hl=dispatch("start","drag","end"),pl=0,ml,gl,wc,xu,ff=0;function jf(rg){rg.on("mousedown.drag",Uf).filter(ua).on("touchstart.drag",qm).on("touchmove.drag",Vm,nonpassive).on("touchend.drag touchcancel.drag",eg).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function Uf(rg,ig){if(!(xu||!la.call(this,rg,ig))){var vv=tg(this,aa.call(this,rg,ig),rg,ig,"mouse");vv&&(select(rg.view).on("mousemove.drag",rp,nonpassivecapture).on("mouseup.drag",np,nonpassivecapture),dragDisable(rg.view),nopropagation$1(rg),wc=!1,ml=rg.clientX,gl=rg.clientY,vv("start",rg))}}function rp(rg){if(noevent$1(rg),!wc){var ig=rg.clientX-ml,vv=rg.clientY-gl;wc=ig*ig+vv*vv>ff}Sa.mouse("drag",rg)}function np(rg){select(rg.view).on("mousemove.drag mouseup.drag",null),yesdrag(rg.view,wc),noevent$1(rg),Sa.mouse("end",rg)}function qm(rg,ig){if(la.call(this,rg,ig)){var vv=rg.changedTouches,R1=aa.call(this,rg,ig),O1=vv.length,K0,J0;for(K0=0;K0<O1;++K0)(J0=tg(this,R1,rg,ig,vv[K0].identifier,vv[K0]))&&(nopropagation$1(rg),J0("start",rg,vv[K0]))}}function Vm(rg){var ig=rg.changedTouches,vv=ig.length,R1,O1;for(R1=0;R1<vv;++R1)(O1=Sa[ig[R1].identifier])&&(noevent$1(rg),O1("drag",rg,ig[R1]))}function eg(rg){var ig=rg.changedTouches,vv=ig.length,R1,O1;for(xu&&clearTimeout(xu),xu=setTimeout(function(){xu=null},500),R1=0;R1<vv;++R1)(O1=Sa[ig[R1].identifier])&&(nopropagation$1(rg),O1("end",rg,ig[R1]))}function tg(rg,ig,vv,R1,O1,K0){var J0=hl.copy(),Hw=pointer(K0||vv,ig),qw,Y0,G0;if((G0=ca.call(rg,new DragEvent("beforestart",{sourceEvent:vv,target:jf,identifier:O1,active:pl,x:Hw[0],y:Hw[1],dx:0,dy:0,dispatch:J0}),R1))!=null)return qw=G0.x-Hw[0]||0,Y0=G0.y-Hw[1]||0,function X0(d_,f_,zN){var BN=Hw,iF;switch(d_){case"start":Sa[O1]=X0,iF=pl++;break;case"end":delete Sa[O1],--pl;case"drag":Hw=pointer(zN||f_,ig),iF=pl;break}J0.call(d_,rg,new DragEvent(d_,{sourceEvent:f_,subject:G0,target:jf,identifier:O1,active:iF,x:Hw[0]+qw,y:Hw[1]+Y0,dx:Hw[0]-BN[0],dy:Hw[1]-BN[1],dispatch:J0}),R1)}}return jf.filter=function(rg){return arguments.length?(la=typeof rg=="function"?rg:constant$2(!!rg),jf):la},jf.container=function(rg){return arguments.length?(aa=typeof rg=="function"?rg:constant$2(rg),jf):aa},jf.subject=function(rg){return arguments.length?(ca=typeof rg=="function"?rg:constant$2(rg),jf):ca},jf.touchable=function(rg){return arguments.length?(ua=typeof rg=="function"?rg:constant$2(!!rg),jf):ua},jf.on=function(){var rg=hl.on.apply(hl,arguments);return rg===hl?jf:rg},jf.clickDistance=function(rg){return arguments.length?(ff=(rg=+rg)*rg,jf):Math.sqrt(ff)},jf}function define(la,aa,ca){la.prototype=aa.prototype=ca,ca.constructor=la}function extend(la,aa){var ca=Object.create(la.prototype);for(var ua in aa)ca[ua]=aa[ua];return ca}function Color(){}var darker=.7,brighter=1/darker,reI="\\s*([+-]?\\d+)\\s*",reN="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",reP="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",reHex=/^#([0-9a-f]{3,8})$/,reRgbInteger=new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`),reRgbPercent=new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`),reRgbaInteger=new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`),reRgbaPercent=new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`),reHslPercent=new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`),reHslaPercent=new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`),named={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};define(Color,color$2,{copy(la){return Object.assign(new this.constructor,this,la)},displayable(){return this.rgb().displayable()},hex:color_formatHex,formatHex:color_formatHex,formatHex8:color_formatHex8,formatHsl:color_formatHsl,formatRgb:color_formatRgb,toString:color_formatRgb});function color_formatHex(){return this.rgb().formatHex()}function color_formatHex8(){return this.rgb().formatHex8()}function color_formatHsl(){return hslConvert(this).formatHsl()}function color_formatRgb(){return this.rgb().formatRgb()}function color$2(la){var aa,ca;return la=(la+"").trim().toLowerCase(),(aa=reHex.exec(la))?(ca=aa[1].length,aa=parseInt(aa[1],16),ca===6?rgbn(aa):ca===3?new Rgb(aa>>8&15|aa>>4&240,aa>>4&15|aa&240,(aa&15)<<4|aa&15,1):ca===8?rgba$1(aa>>24&255,aa>>16&255,aa>>8&255,(aa&255)/255):ca===4?rgba$1(aa>>12&15|aa>>8&240,aa>>8&15|aa>>4&240,aa>>4&15|aa&240,((aa&15)<<4|aa&15)/255):null):(aa=reRgbInteger.exec(la))?new Rgb(aa[1],aa[2],aa[3],1):(aa=reRgbPercent.exec(la))?new Rgb(aa[1]*255/100,aa[2]*255/100,aa[3]*255/100,1):(aa=reRgbaInteger.exec(la))?rgba$1(aa[1],aa[2],aa[3],aa[4]):(aa=reRgbaPercent.exec(la))?rgba$1(aa[1]*255/100,aa[2]*255/100,aa[3]*255/100,aa[4]):(aa=reHslPercent.exec(la))?hsla$1(aa[1],aa[2]/100,aa[3]/100,1):(aa=reHslaPercent.exec(la))?hsla$1(aa[1],aa[2]/100,aa[3]/100,aa[4]):named.hasOwnProperty(la)?rgbn(named[la]):la==="transparent"?new Rgb(NaN,NaN,NaN,0):null}function rgbn(la){return new Rgb(la>>16&255,la>>8&255,la&255,1)}function rgba$1(la,aa,ca,ua){return ua<=0&&(la=aa=ca=NaN),new Rgb(la,aa,ca,ua)}function rgbConvert(la){return la instanceof Color||(la=color$2(la)),la?(la=la.rgb(),new Rgb(la.r,la.g,la.b,la.opacity)):new Rgb}function rgb(la,aa,ca,ua){return arguments.length===1?rgbConvert(la):new Rgb(la,aa,ca,ua??1)}function Rgb(la,aa,ca,ua){this.r=+la,this.g=+aa,this.b=+ca,this.opacity=+ua}define(Rgb,rgb,extend(Color,{brighter(la){return la=la==null?brighter:Math.pow(brighter,la),new Rgb(this.r*la,this.g*la,this.b*la,this.opacity)},darker(la){return la=la==null?darker:Math.pow(darker,la),new Rgb(this.r*la,this.g*la,this.b*la,this.opacity)},rgb(){return this},clamp(){return new Rgb(clampi(this.r),clampi(this.g),clampi(this.b),clampa(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rgb_formatHex,formatHex:rgb_formatHex,formatHex8:rgb_formatHex8,formatRgb:rgb_formatRgb,toString:rgb_formatRgb}));function rgb_formatHex(){return`#${hex$1(this.r)}${hex$1(this.g)}${hex$1(this.b)}`}function rgb_formatHex8(){return`#${hex$1(this.r)}${hex$1(this.g)}${hex$1(this.b)}${hex$1((isNaN(this.opacity)?1:this.opacity)*255)}`}function rgb_formatRgb(){const la=clampa(this.opacity);return`${la===1?"rgb(":"rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${la===1?")":`, ${la})`}`}function clampa(la){return isNaN(la)?1:Math.max(0,Math.min(1,la))}function clampi(la){return Math.max(0,Math.min(255,Math.round(la)||0))}function hex$1(la){return la=clampi(la),(la<16?"0":"")+la.toString(16)}function hsla$1(la,aa,ca,ua){return ua<=0?la=aa=ca=NaN:ca<=0||ca>=1?la=aa=NaN:aa<=0&&(la=NaN),new Hsl(la,aa,ca,ua)}function hslConvert(la){if(la instanceof Hsl)return new Hsl(la.h,la.s,la.l,la.opacity);if(la instanceof Color||(la=color$2(la)),!la)return new Hsl;if(la instanceof Hsl)return la;la=la.rgb();var aa=la.r/255,ca=la.g/255,ua=la.b/255,Sa=Math.min(aa,ca,ua),hl=Math.max(aa,ca,ua),pl=NaN,ml=hl-Sa,gl=(hl+Sa)/2;return ml?(aa===hl?pl=(ca-ua)/ml+(ca<ua)*6:ca===hl?pl=(ua-aa)/ml+2:pl=(aa-ca)/ml+4,ml/=gl<.5?hl+Sa:2-hl-Sa,pl*=60):ml=gl>0&&gl<1?0:pl,new Hsl(pl,ml,gl,la.opacity)}function hsl(la,aa,ca,ua){return arguments.length===1?hslConvert(la):new Hsl(la,aa,ca,ua??1)}function Hsl(la,aa,ca,ua){this.h=+la,this.s=+aa,this.l=+ca,this.opacity=+ua}define(Hsl,hsl,extend(Color,{brighter(la){return la=la==null?brighter:Math.pow(brighter,la),new Hsl(this.h,this.s,this.l*la,this.opacity)},darker(la){return la=la==null?darker:Math.pow(darker,la),new Hsl(this.h,this.s,this.l*la,this.opacity)},rgb(){var la=this.h%360+(this.h<0)*360,aa=isNaN(la)||isNaN(this.s)?0:this.s,ca=this.l,ua=ca+(ca<.5?ca:1-ca)*aa,Sa=2*ca-ua;return new Rgb(hsl2rgb(la>=240?la-240:la+120,Sa,ua),hsl2rgb(la,Sa,ua),hsl2rgb(la<120?la+240:la-120,Sa,ua),this.opacity)},clamp(){return new Hsl(clamph(this.h),clampt(this.s),clampt(this.l),clampa(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const la=clampa(this.opacity);return`${la===1?"hsl(":"hsla("}${clamph(this.h)}, ${clampt(this.s)*100}%, ${clampt(this.l)*100}%${la===1?")":`, ${la})`}`}}));function clamph(la){return la=(la||0)%360,la<0?la+360:la}function clampt(la){return Math.max(0,Math.min(1,la||0))}function hsl2rgb(la,aa,ca){return(la<60?aa+(ca-aa)*la/60:la<180?ca:la<240?aa+(ca-aa)*(240-la)/60:aa)*255}const constant$1=la=>()=>la;function linear(la,aa){return function(ca){return la+ca*aa}}function exponential(la,aa,ca){return la=Math.pow(la,ca),aa=Math.pow(aa,ca)-la,ca=1/ca,function(ua){return Math.pow(la+ua*aa,ca)}}function gamma(la){return(la=+la)==1?nogamma:function(aa,ca){return ca-aa?exponential(aa,ca,la):constant$1(isNaN(aa)?ca:aa)}}function nogamma(la,aa){var ca=aa-la;return ca?linear(la,ca):constant$1(isNaN(la)?aa:la)}const interpolateRgb=(function la(aa){var ca=gamma(aa);function ua(Sa,hl){var pl=ca((Sa=rgb(Sa)).r,(hl=rgb(hl)).r),ml=ca(Sa.g,hl.g),gl=ca(Sa.b,hl.b),wc=nogamma(Sa.opacity,hl.opacity);return function(xu){return Sa.r=pl(xu),Sa.g=ml(xu),Sa.b=gl(xu),Sa.opacity=wc(xu),Sa+""}}return ua.gamma=la,ua})(1);function numberArray(la,aa){aa||(aa=[]);var ca=la?Math.min(aa.length,la.length):0,ua=aa.slice(),Sa;return function(hl){for(Sa=0;Sa<ca;++Sa)ua[Sa]=la[Sa]*(1-hl)+aa[Sa]*hl;return ua}}function isNumberArray(la){return ArrayBuffer.isView(la)&&!(la instanceof DataView)}function genericArray(la,aa){var ca=aa?aa.length:0,ua=la?Math.min(ca,la.length):0,Sa=new Array(ua),hl=new Array(ca),pl;for(pl=0;pl<ua;++pl)Sa[pl]=interpolate$3(la[pl],aa[pl]);for(;pl<ca;++pl)hl[pl]=aa[pl];return function(ml){for(pl=0;pl<ua;++pl)hl[pl]=Sa[pl](ml);return hl}}function date(la,aa){var ca=new Date;return la=+la,aa=+aa,function(ua){return ca.setTime(la*(1-ua)+aa*ua),ca}}function interpolateNumber(la,aa){return la=+la,aa=+aa,function(ca){return la*(1-ca)+aa*ca}}function object(la,aa){var ca={},ua={},Sa;(la===null||typeof la!="object")&&(la={}),(aa===null||typeof aa!="object")&&(aa={});for(Sa in aa)Sa in la?ca[Sa]=interpolate$3(la[Sa],aa[Sa]):ua[Sa]=aa[Sa];return function(hl){for(Sa in ca)ua[Sa]=ca[Sa](hl);return ua}}var reA=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,reB=new RegExp(reA.source,"g");function zero(la){return function(){return la}}function one(la){return function(aa){return la(aa)+""}}function interpolateString(la,aa){var ca=reA.lastIndex=reB.lastIndex=0,ua,Sa,hl,pl=-1,ml=[],gl=[];for(la=la+"",aa=aa+"";(ua=reA.exec(la))&&(Sa=reB.exec(aa));)(hl=Sa.index)>ca&&(hl=aa.slice(ca,hl),ml[pl]?ml[pl]+=hl:ml[++pl]=hl),(ua=ua[0])===(Sa=Sa[0])?ml[pl]?ml[pl]+=Sa:ml[++pl]=Sa:(ml[++pl]=null,gl.push({i:pl,x:interpolateNumber(ua,Sa)})),ca=reB.lastIndex;return ca<aa.length&&(hl=aa.slice(ca),ml[pl]?ml[pl]+=hl:ml[++pl]=hl),ml.length<2?gl[0]?one(gl[0].x):zero(aa):(aa=gl.length,function(wc){for(var xu=0,ff;xu<aa;++xu)ml[(ff=gl[xu]).i]=ff.x(wc);return ml.join("")})}function interpolate$3(la,aa){var ca=typeof aa,ua;return aa==null||ca==="boolean"?constant$1(aa):(ca==="number"?interpolateNumber:ca==="string"?(ua=color$2(aa))?(aa=ua,interpolateRgb):interpolateString:aa instanceof color$2?interpolateRgb:aa instanceof Date?date:isNumberArray(aa)?numberArray:Array.isArray(aa)?genericArray:typeof aa.valueOf!="function"&&typeof aa.toString!="function"||isNaN(aa)?object:interpolateNumber)(la,aa)}var degrees$1=180/Math.PI,identity$3={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function decompose(la,aa,ca,ua,Sa,hl){var pl,ml,gl;return(pl=Math.sqrt(la*la+aa*aa))&&(la/=pl,aa/=pl),(gl=la*ca+aa*ua)&&(ca-=la*gl,ua-=aa*gl),(ml=Math.sqrt(ca*ca+ua*ua))&&(ca/=ml,ua/=ml,gl/=ml),la*ua<aa*ca&&(la=-la,aa=-aa,gl=-gl,pl=-pl),{translateX:Sa,translateY:hl,rotate:Math.atan2(aa,la)*degrees$1,skewX:Math.atan(gl)*degrees$1,scaleX:pl,scaleY:ml}}var svgNode;function parseCss(la){const aa=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(la+"");return aa.isIdentity?identity$3:decompose(aa.a,aa.b,aa.c,aa.d,aa.e,aa.f)}function parseSvg(la){return la==null||(svgNode||(svgNode=document.createElementNS("http://www.w3.org/2000/svg","g")),svgNode.setAttribute("transform",la),!(la=svgNode.transform.baseVal.consolidate()))?identity$3:(la=la.matrix,decompose(la.a,la.b,la.c,la.d,la.e,la.f))}function interpolateTransform(la,aa,ca,ua){function Sa(wc){return wc.length?wc.pop()+" ":""}function hl(wc,xu,ff,jf,Uf,rp){if(wc!==ff||xu!==jf){var np=Uf.push("translate(",null,aa,null,ca);rp.push({i:np-4,x:interpolateNumber(wc,ff)},{i:np-2,x:interpolateNumber(xu,jf)})}else(ff||jf)&&Uf.push("translate("+ff+aa+jf+ca)}function pl(wc,xu,ff,jf){wc!==xu?(wc-xu>180?xu+=360:xu-wc>180&&(wc+=360),jf.push({i:ff.push(Sa(ff)+"rotate(",null,ua)-2,x:interpolateNumber(wc,xu)})):xu&&ff.push(Sa(ff)+"rotate("+xu+ua)}function ml(wc,xu,ff,jf){wc!==xu?jf.push({i:ff.push(Sa(ff)+"skewX(",null,ua)-2,x:interpolateNumber(wc,xu)}):xu&&ff.push(Sa(ff)+"skewX("+xu+ua)}function gl(wc,xu,ff,jf,Uf,rp){if(wc!==ff||xu!==jf){var np=Uf.push(Sa(Uf)+"scale(",null,",",null,")");rp.push({i:np-4,x:interpolateNumber(wc,ff)},{i:np-2,x:interpolateNumber(xu,jf)})}else(ff!==1||jf!==1)&&Uf.push(Sa(Uf)+"scale("+ff+","+jf+")")}return function(wc,xu){var ff=[],jf=[];return wc=la(wc),xu=la(xu),hl(wc.translateX,wc.translateY,xu.translateX,xu.translateY,ff,jf),pl(wc.rotate,xu.rotate,ff,jf),ml(wc.skewX,xu.skewX,ff,jf),gl(wc.scaleX,wc.scaleY,xu.scaleX,xu.scaleY,ff,jf),wc=xu=null,function(Uf){for(var rp=-1,np=jf.length,qm;++rp<np;)ff[(qm=jf[rp]).i]=qm.x(Uf);return ff.join("")}}}var interpolateTransformCss=interpolateTransform(parseCss,"px, ","px)","deg)"),interpolateTransformSvg=interpolateTransform(parseSvg,", ",")",")"),epsilon2=1e-12;function cosh(la){return((la=Math.exp(la))+1/la)/2}function sinh(la){return((la=Math.exp(la))-1/la)/2}function tanh(la){return((la=Math.exp(2*la))-1)/(la+1)}const interpolateZoom=(function la(aa,ca,ua){function Sa(hl,pl){var ml=hl[0],gl=hl[1],wc=hl[2],xu=pl[0],ff=pl[1],jf=pl[2],Uf=xu-ml,rp=ff-gl,np=Uf*Uf+rp*rp,qm,Vm;if(np<epsilon2)Vm=Math.log(jf/wc)/aa,qm=function(R1){return[ml+R1*Uf,gl+R1*rp,wc*Math.exp(aa*R1*Vm)]};else{var eg=Math.sqrt(np),tg=(jf*jf-wc*wc+ua*np)/(2*wc*ca*eg),rg=(jf*jf-wc*wc-ua*np)/(2*jf*ca*eg),ig=Math.log(Math.sqrt(tg*tg+1)-tg),vv=Math.log(Math.sqrt(rg*rg+1)-rg);Vm=(vv-ig)/aa,qm=function(R1){var O1=R1*Vm,K0=cosh(ig),J0=wc/(ca*eg)*(K0*tanh(aa*O1+ig)-sinh(ig));return[ml+J0*Uf,gl+J0*rp,wc*K0/cosh(aa*O1+ig)]}}return qm.duration=Vm*1e3*aa/Math.SQRT2,qm}return Sa.rho=function(hl){var pl=Math.max(.001,+hl),ml=pl*pl,gl=ml*ml;return la(pl,ml,gl)},Sa})(Math.SQRT2,2,4);var frame$1=0,timeout$1=0,interval=0,pokeDelay=1e3,taskHead,taskTail,clockLast=0,clockNow=0,clockSkew=0,clock=typeof performance=="object"&&performance.now?performance:Date,setFrame=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(la){setTimeout(la,17)};function now$1(){return clockNow||(setFrame(clearNow),clockNow=clock.now()+clockSkew)}function clearNow(){clockNow=0}function Timer(){this._call=this._time=this._next=null}Timer.prototype=timer.prototype={constructor:Timer,restart:function(la,aa,ca){if(typeof la!="function")throw new TypeError("callback is not a function");ca=(ca==null?now$1():+ca)+(aa==null?0:+aa),!this._next&&taskTail!==this&&(taskTail?taskTail._next=this:taskHead=this,taskTail=this),this._call=la,this._time=ca,sleep()},stop:function(){this._call&&(this._call=null,this._time=1/0,sleep())}};function timer(la,aa,ca){var ua=new Timer;return ua.restart(la,aa,ca),ua}function timerFlush(){now$1(),++frame$1;for(var la=taskHead,aa;la;)(aa=clockNow-la._time)>=0&&la._call.call(void 0,aa),la=la._next;--frame$1}function wake(){clockNow=(clockLast=clock.now())+clockSkew,frame$1=timeout$1=0;try{timerFlush()}finally{frame$1=0,nap(),clockNow=0}}function poke(){var la=clock.now(),aa=la-clockLast;aa>pokeDelay&&(clockSkew-=aa,clockLast=la)}function nap(){for(var la,aa=taskHead,ca,ua=1/0;aa;)aa._call?(ua>aa._time&&(ua=aa._time),la=aa,aa=aa._next):(ca=aa._next,aa._next=null,aa=la?la._next=ca:taskHead=ca);taskTail=la,sleep(ua)}function sleep(la){if(!frame$1){timeout$1&&(timeout$1=clearTimeout(timeout$1));var aa=la-clockNow;aa>24?(la<1/0&&(timeout$1=setTimeout(wake,la-clock.now()-clockSkew)),interval&&(interval=clearInterval(interval))):(interval||(clockLast=clock.now(),interval=setInterval(poke,pokeDelay)),frame$1=1,setFrame(wake))}}function timeout(la,aa,ca){var ua=new Timer;return aa=aa==null?0:+aa,ua.restart(Sa=>{ua.stop(),la(Sa+aa)},aa,ca),ua}var emptyOn=dispatch("start","end","cancel","interrupt"),emptyTween=[],CREATED=0,SCHEDULED=1,STARTING=2,STARTED=3,RUNNING=4,ENDING=5,ENDED=6;function schedule(la,aa,ca,ua,Sa,hl){var pl=la.__transition;if(!pl)la.__transition={};else if(ca in pl)return;create$1(la,ca,{name:aa,index:ua,group:Sa,on:emptyOn,tween:emptyTween,time:hl.time,delay:hl.delay,duration:hl.duration,ease:hl.ease,timer:null,state:CREATED})}function init$1(la,aa){var ca=get(la,aa);if(ca.state>CREATED)throw new Error("too late; already scheduled");return ca}function set(la,aa){var ca=get(la,aa);if(ca.state>STARTED)throw new Error("too late; already running");return ca}function get(la,aa){var ca=la.__transition;if(!ca||!(ca=ca[aa]))throw new Error("transition not found");return ca}function create$1(la,aa,ca){var ua=la.__transition,Sa;ua[aa]=ca,ca.timer=timer(hl,0,ca.time);function hl(wc){ca.state=SCHEDULED,ca.timer.restart(pl,ca.delay,ca.time),ca.delay<=wc&&pl(wc-ca.delay)}function pl(wc){var xu,ff,jf,Uf;if(ca.state!==SCHEDULED)return gl();for(xu in ua)if(Uf=ua[xu],Uf.name===ca.name){if(Uf.state===STARTED)return timeout(pl);Uf.state===RUNNING?(Uf.state=ENDED,Uf.timer.stop(),Uf.on.call("interrupt",la,la.__data__,Uf.index,Uf.group),delete ua[xu]):+xu<aa&&(Uf.state=ENDED,Uf.timer.stop(),Uf.on.call("cancel",la,la.__data__,Uf.index,Uf.group),delete ua[xu])}if(timeout(function(){ca.state===STARTED&&(ca.state=RUNNING,ca.timer.restart(ml,ca.delay,ca.time),ml(wc))}),ca.state=STARTING,ca.on.call("start",la,la.__data__,ca.index,ca.group),ca.state===STARTING){for(ca.state=STARTED,Sa=new Array(jf=ca.tween.length),xu=0,ff=-1;xu<jf;++xu)(Uf=ca.tween[xu].value.call(la,la.__data__,ca.index,ca.group))&&(Sa[++ff]=Uf);Sa.length=ff+1}}function ml(wc){for(var xu=wc<ca.duration?ca.ease.call(null,wc/ca.duration):(ca.timer.restart(gl),ca.state=ENDING,1),ff=-1,jf=Sa.length;++ff<jf;)Sa[ff].call(la,xu);ca.state===ENDING&&(ca.on.call("end",la,la.__data__,ca.index,ca.group),gl())}function gl(){ca.state=ENDED,ca.timer.stop(),delete ua[aa];for(var wc in ua)return;delete la.__transition}}function interrupt(la,aa){var ca=la.__transition,ua,Sa,hl=!0,pl;if(ca){aa=aa==null?null:aa+"";for(pl in ca){if((ua=ca[pl]).name!==aa){hl=!1;continue}Sa=ua.state>STARTING&&ua.state<ENDING,ua.state=ENDED,ua.timer.stop(),ua.on.call(Sa?"interrupt":"cancel",la,la.__data__,ua.index,ua.group),delete ca[pl]}hl&&delete la.__transition}}function selection_interrupt(la){return this.each(function(){interrupt(this,la)})}function tweenRemove(la,aa){var ca,ua;return function(){var Sa=set(this,la),hl=Sa.tween;if(hl!==ca){ua=ca=hl;for(var pl=0,ml=ua.length;pl<ml;++pl)if(ua[pl].name===aa){ua=ua.slice(),ua.splice(pl,1);break}}Sa.tween=ua}}function tweenFunction(la,aa,ca){var ua,Sa;if(typeof ca!="function")throw new Error;return function(){var hl=set(this,la),pl=hl.tween;if(pl!==ua){Sa=(ua=pl).slice();for(var ml={name:aa,value:ca},gl=0,wc=Sa.length;gl<wc;++gl)if(Sa[gl].name===aa){Sa[gl]=ml;break}gl===wc&&Sa.push(ml)}hl.tween=Sa}}function transition_tween(la,aa){var ca=this._id;if(la+="",arguments.length<2){for(var ua=get(this.node(),ca).tween,Sa=0,hl=ua.length,pl;Sa<hl;++Sa)if((pl=ua[Sa]).name===la)return pl.value;return null}return this.each((aa==null?tweenRemove:tweenFunction)(ca,la,aa))}function tweenValue(la,aa,ca){var ua=la._id;return la.each(function(){var Sa=set(this,ua);(Sa.value||(Sa.value={}))[aa]=ca.apply(this,arguments)}),function(Sa){return get(Sa,ua).value[aa]}}function interpolate$2(la,aa){var ca;return(typeof aa=="number"?interpolateNumber:aa instanceof color$2?interpolateRgb:(ca=color$2(aa))?(aa=ca,interpolateRgb):interpolateString)(la,aa)}function attrRemove(la){return function(){this.removeAttribute(la)}}function attrRemoveNS(la){return function(){this.removeAttributeNS(la.space,la.local)}}function attrConstant(la,aa,ca){var ua,Sa=ca+"",hl;return function(){var pl=this.getAttribute(la);return pl===Sa?null:pl===ua?hl:hl=aa(ua=pl,ca)}}function attrConstantNS(la,aa,ca){var ua,Sa=ca+"",hl;return function(){var pl=this.getAttributeNS(la.space,la.local);return pl===Sa?null:pl===ua?hl:hl=aa(ua=pl,ca)}}function attrFunction(la,aa,ca){var ua,Sa,hl;return function(){var pl,ml=ca(this),gl;return ml==null?void this.removeAttribute(la):(pl=this.getAttribute(la),gl=ml+"",pl===gl?null:pl===ua&&gl===Sa?hl:(Sa=gl,hl=aa(ua=pl,ml)))}}function attrFunctionNS(la,aa,ca){var ua,Sa,hl;return function(){var pl,ml=ca(this),gl;return ml==null?void this.removeAttributeNS(la.space,la.local):(pl=this.getAttributeNS(la.space,la.local),gl=ml+"",pl===gl?null:pl===ua&&gl===Sa?hl:(Sa=gl,hl=aa(ua=pl,ml)))}}function transition_attr(la,aa){var ca=namespace(la),ua=ca==="transform"?interpolateTransformSvg:interpolate$2;return this.attrTween(la,typeof aa=="function"?(ca.local?attrFunctionNS:attrFunction)(ca,ua,tweenValue(this,"attr."+la,aa)):aa==null?(ca.local?attrRemoveNS:attrRemove)(ca):(ca.local?attrConstantNS:attrConstant)(ca,ua,aa))}function attrInterpolate(la,aa){return function(ca){this.setAttribute(la,aa.call(this,ca))}}function attrInterpolateNS(la,aa){return function(ca){this.setAttributeNS(la.space,la.local,aa.call(this,ca))}}function attrTweenNS(la,aa){var ca,ua;function Sa(){var hl=aa.apply(this,arguments);return hl!==ua&&(ca=(ua=hl)&&attrInterpolateNS(la,hl)),ca}return Sa._value=aa,Sa}function attrTween(la,aa){var ca,ua;function Sa(){var hl=aa.apply(this,arguments);return hl!==ua&&(ca=(ua=hl)&&attrInterpolate(la,hl)),ca}return Sa._value=aa,Sa}function transition_attrTween(la,aa){var ca="attr."+la;if(arguments.length<2)return(ca=this.tween(ca))&&ca._value;if(aa==null)return this.tween(ca,null);if(typeof aa!="function")throw new Error;var ua=namespace(la);return this.tween(ca,(ua.local?attrTweenNS:attrTween)(ua,aa))}function delayFunction(la,aa){return function(){init$1(this,la).delay=+aa.apply(this,arguments)}}function delayConstant(la,aa){return aa=+aa,function(){init$1(this,la).delay=aa}}function transition_delay(la){var aa=this._id;return arguments.length?this.each((typeof la=="function"?delayFunction:delayConstant)(aa,la)):get(this.node(),aa).delay}function durationFunction(la,aa){return function(){set(this,la).duration=+aa.apply(this,arguments)}}function durationConstant(la,aa){return aa=+aa,function(){set(this,la).duration=aa}}function transition_duration(la){var aa=this._id;return arguments.length?this.each((typeof la=="function"?durationFunction:durationConstant)(aa,la)):get(this.node(),aa).duration}function easeConstant(la,aa){if(typeof aa!="function")throw new Error;return function(){set(this,la).ease=aa}}function transition_ease(la){var aa=this._id;return arguments.length?this.each(easeConstant(aa,la)):get(this.node(),aa).ease}function easeVarying(la,aa){return function(){var ca=aa.apply(this,arguments);if(typeof ca!="function")throw new Error;set(this,la).ease=ca}}function transition_easeVarying(la){if(typeof la!="function")throw new Error;return this.each(easeVarying(this._id,la))}function transition_filter(la){typeof la!="function"&&(la=matcher(la));for(var aa=this._groups,ca=aa.length,ua=new Array(ca),Sa=0;Sa<ca;++Sa)for(var hl=aa[Sa],pl=hl.length,ml=ua[Sa]=[],gl,wc=0;wc<pl;++wc)(gl=hl[wc])&&la.call(gl,gl.__data__,wc,hl)&&ml.push(gl);return new Transition$1(ua,this._parents,this._name,this._id)}function transition_merge(la){if(la._id!==this._id)throw new Error;for(var aa=this._groups,ca=la._groups,ua=aa.length,Sa=ca.length,hl=Math.min(ua,Sa),pl=new Array(ua),ml=0;ml<hl;++ml)for(var gl=aa[ml],wc=ca[ml],xu=gl.length,ff=pl[ml]=new Array(xu),jf,Uf=0;Uf<xu;++Uf)(jf=gl[Uf]||wc[Uf])&&(ff[Uf]=jf);for(;ml<ua;++ml)pl[ml]=aa[ml];return new Transition$1(pl,this._parents,this._name,this._id)}function start$1(la){return(la+"").trim().split(/^|\s+/).every(function(aa){var ca=aa.indexOf(".");return ca>=0&&(aa=aa.slice(0,ca)),!aa||aa==="start"})}function onFunction(la,aa,ca){var ua,Sa,hl=start$1(aa)?init$1:set;return function(){var pl=hl(this,la),ml=pl.on;ml!==ua&&(Sa=(ua=ml).copy()).on(aa,ca),pl.on=Sa}}function transition_on(la,aa){var ca=this._id;return arguments.length<2?get(this.node(),ca).on.on(la):this.each(onFunction(ca,la,aa))}function removeFunction(la){return function(){var aa=this.parentNode;for(var ca in this.__transition)if(+ca!==la)return;aa&&aa.removeChild(this)}}function transition_remove(){return this.on("end.remove",removeFunction(this._id))}function transition_select(la){var aa=this._name,ca=this._id;typeof la!="function"&&(la=selector(la));for(var ua=this._groups,Sa=ua.length,hl=new Array(Sa),pl=0;pl<Sa;++pl)for(var ml=ua[pl],gl=ml.length,wc=hl[pl]=new Array(gl),xu,ff,jf=0;jf<gl;++jf)(xu=ml[jf])&&(ff=la.call(xu,xu.__data__,jf,ml))&&("__data__"in xu&&(ff.__data__=xu.__data__),wc[jf]=ff,schedule(wc[jf],aa,ca,jf,wc,get(xu,ca)));return new Transition$1(hl,this._parents,aa,ca)}function transition_selectAll(la){var aa=this._name,ca=this._id;typeof la!="function"&&(la=selectorAll(la));for(var ua=this._groups,Sa=ua.length,hl=[],pl=[],ml=0;ml<Sa;++ml)for(var gl=ua[ml],wc=gl.length,xu,ff=0;ff<wc;++ff)if(xu=gl[ff]){for(var jf=la.call(xu,xu.__data__,ff,gl),Uf,rp=get(xu,ca),np=0,qm=jf.length;np<qm;++np)(Uf=jf[np])&&schedule(Uf,aa,ca,np,jf,rp);hl.push(jf),pl.push(xu)}return new Transition$1(hl,pl,aa,ca)}var Selection=selection.prototype.constructor;function transition_selection(){return new Selection(this._groups,this._parents)}function styleNull(la,aa){var ca,ua,Sa;return function(){var hl=styleValue(this,la),pl=(this.style.removeProperty(la),styleValue(this,la));return hl===pl?null:hl===ca&&pl===ua?Sa:Sa=aa(ca=hl,ua=pl)}}function styleRemove(la){return function(){this.style.removeProperty(la)}}function styleConstant(la,aa,ca){var ua,Sa=ca+"",hl;return function(){var pl=styleValue(this,la);return pl===Sa?null:pl===ua?hl:hl=aa(ua=pl,ca)}}function styleFunction(la,aa,ca){var ua,Sa,hl;return function(){var pl=styleValue(this,la),ml=ca(this),gl=ml+"";return ml==null&&(gl=ml=(this.style.removeProperty(la),styleValue(this,la))),pl===gl?null:pl===ua&&gl===Sa?hl:(Sa=gl,hl=aa(ua=pl,ml))}}function styleMaybeRemove(la,aa){var ca,ua,Sa,hl="style."+aa,pl="end."+hl,ml;return function(){var gl=set(this,la),wc=gl.on,xu=gl.value[hl]==null?ml||(ml=styleRemove(aa)):void 0;(wc!==ca||Sa!==xu)&&(ua=(ca=wc).copy()).on(pl,Sa=xu),gl.on=ua}}function transition_style(la,aa,ca){var ua=(la+="")=="transform"?interpolateTransformCss:interpolate$2;return aa==null?this.styleTween(la,styleNull(la,ua)).on("end.style."+la,styleRemove(la)):typeof aa=="function"?this.styleTween(la,styleFunction(la,ua,tweenValue(this,"style."+la,aa))).each(styleMaybeRemove(this._id,la)):this.styleTween(la,styleConstant(la,ua,aa),ca).on("end.style."+la,null)}function styleInterpolate(la,aa,ca){return function(ua){this.style.setProperty(la,aa.call(this,ua),ca)}}function styleTween(la,aa,ca){var ua,Sa;function hl(){var pl=aa.apply(this,arguments);return pl!==Sa&&(ua=(Sa=pl)&&styleInterpolate(la,pl,ca)),ua}return hl._value=aa,hl}function transition_styleTween(la,aa,ca){var ua="style."+(la+="");if(arguments.length<2)return(ua=this.tween(ua))&&ua._value;if(aa==null)return this.tween(ua,null);if(typeof aa!="function")throw new Error;return this.tween(ua,styleTween(la,aa,ca??""))}function textConstant(la){return function(){this.textContent=la}}function textFunction(la){return function(){var aa=la(this);this.textContent=aa??""}}function transition_text(la){return this.tween("text",typeof la=="function"?textFunction(tweenValue(this,"text",la)):textConstant(la==null?"":la+""))}function textInterpolate(la){return function(aa){this.textContent=la.call(this,aa)}}function textTween(la){var aa,ca;function ua(){var Sa=la.apply(this,arguments);return Sa!==ca&&(aa=(ca=Sa)&&textInterpolate(Sa)),aa}return ua._value=la,ua}function transition_textTween(la){var aa="text";if(arguments.length<1)return(aa=this.tween(aa))&&aa._value;if(la==null)return this.tween(aa,null);if(typeof la!="function")throw new Error;return this.tween(aa,textTween(la))}function transition_transition(){for(var la=this._name,aa=this._id,ca=newId(),ua=this._groups,Sa=ua.length,hl=0;hl<Sa;++hl)for(var pl=ua[hl],ml=pl.length,gl,wc=0;wc<ml;++wc)if(gl=pl[wc]){var xu=get(gl,aa);schedule(gl,la,ca,wc,pl,{time:xu.time+xu.delay+xu.duration,delay:0,duration:xu.duration,ease:xu.ease})}return new Transition$1(ua,this._parents,la,ca)}function transition_end(){var la,aa,ca=this,ua=ca._id,Sa=ca.size();return new Promise(function(hl,pl){var ml={value:pl},gl={value:function(){--Sa===0&&hl()}};ca.each(function(){var wc=set(this,ua),xu=wc.on;xu!==la&&(aa=(la=xu).copy(),aa._.cancel.push(ml),aa._.interrupt.push(ml),aa._.end.push(gl)),wc.on=aa}),Sa===0&&hl()})}var id$2=0;function Transition$1(la,aa,ca,ua){this._groups=la,this._parents=aa,this._name=ca,this._id=ua}function newId(){return++id$2}var selection_prototype=selection.prototype;Transition$1.prototype={constructor:Transition$1,select:transition_select,selectAll:transition_selectAll,selectChild:selection_prototype.selectChild,selectChildren:selection_prototype.selectChildren,filter:transition_filter,merge:transition_merge,selection:transition_selection,transition:transition_transition,call:selection_prototype.call,nodes:selection_prototype.nodes,node:selection_prototype.node,size:selection_prototype.size,empty:selection_prototype.empty,each:selection_prototype.each,on:transition_on,attr:transition_attr,attrTween:transition_attrTween,style:transition_style,styleTween:transition_styleTween,text:transition_text,textTween:transition_textTween,remove:transition_remove,tween:transition_tween,delay:transition_delay,duration:transition_duration,ease:transition_ease,easeVarying:transition_easeVarying,end:transition_end,[Symbol.iterator]:selection_prototype[Symbol.iterator]};function cubicInOut(la){return((la*=2)<=1?la*la*la:(la-=2)*la*la+2)/2}var defaultTiming={time:null,delay:0,duration:250,ease:cubicInOut};function inherit(la,aa){for(var ca;!(ca=la.__transition)||!(ca=ca[aa]);)if(!(la=la.parentNode))throw new Error(`transition ${aa} not found`);return ca}function selection_transition(la){var aa,ca;la instanceof Transition$1?(aa=la._id,la=la._name):(aa=newId(),(ca=defaultTiming).time=now$1(),la=la==null?null:la+"");for(var ua=this._groups,Sa=ua.length,hl=0;hl<Sa;++hl)for(var pl=ua[hl],ml=pl.length,gl,wc=0;wc<ml;++wc)(gl=pl[wc])&&schedule(gl,la,aa,wc,pl,ca||inherit(gl,aa));return new Transition$1(ua,this._parents,la,aa)}selection.prototype.interrupt=selection_interrupt;selection.prototype.transition=selection_transition;const constant=la=>()=>la;function ZoomEvent(la,{sourceEvent:aa,target:ca,transform:ua,dispatch:Sa}){Object.defineProperties(this,{type:{value:la,enumerable:!0,configurable:!0},sourceEvent:{value:aa,enumerable:!0,configurable:!0},target:{value:ca,enumerable:!0,configurable:!0},transform:{value:ua,enumerable:!0,configurable:!0},_:{value:Sa}})}function Transform(la,aa,ca){this.k=la,this.x=aa,this.y=ca}Transform.prototype={constructor:Transform,scale:function(la){return la===1?this:new Transform(this.k*la,this.x,this.y)},translate:function(la,aa){return la===0&aa===0?this:new Transform(this.k,this.x+this.k*la,this.y+this.k*aa)},apply:function(la){return[la[0]*this.k+this.x,la[1]*this.k+this.y]},applyX:function(la){return la*this.k+this.x},applyY:function(la){return la*this.k+this.y},invert:function(la){return[(la[0]-this.x)/this.k,(la[1]-this.y)/this.k]},invertX:function(la){return(la-this.x)/this.k},invertY:function(la){return(la-this.y)/this.k},rescaleX:function(la){return la.copy().domain(la.range().map(this.invertX,this).map(la.invert,la))},rescaleY:function(la){return la.copy().domain(la.range().map(this.invertY,this).map(la.invert,la))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var identity$2=new Transform(1,0,0);transform.prototype=Transform.prototype;function transform(la){for(;!la.__zoom;)if(!(la=la.parentNode))return identity$2;return la.__zoom}function nopropagation(la){la.stopImmediatePropagation()}function noevent(la){la.preventDefault(),la.stopImmediatePropagation()}function defaultFilter(la){return(!la.ctrlKey||la.type==="wheel")&&!la.button}function defaultExtent(){var la=this;return la instanceof SVGElement?(la=la.ownerSVGElement||la,la.hasAttribute("viewBox")?(la=la.viewBox.baseVal,[[la.x,la.y],[la.x+la.width,la.y+la.height]]):[[0,0],[la.width.baseVal.value,la.height.baseVal.value]]):[[0,0],[la.clientWidth,la.clientHeight]]}function defaultTransform$1(){return this.__zoom||identity$2}function defaultWheelDelta(la){return-la.deltaY*(la.deltaMode===1?.05:la.deltaMode?1:.002)*(la.ctrlKey?10:1)}function defaultTouchable(){return navigator.maxTouchPoints||"ontouchstart"in this}function defaultConstrain(la,aa,ca){var ua=la.invertX(aa[0][0])-ca[0][0],Sa=la.invertX(aa[1][0])-ca[1][0],hl=la.invertY(aa[0][1])-ca[0][1],pl=la.invertY(aa[1][1])-ca[1][1];return la.translate(Sa>ua?(ua+Sa)/2:Math.min(0,ua)||Math.max(0,Sa),pl>hl?(hl+pl)/2:Math.min(0,hl)||Math.max(0,pl))}function zoom(){var la=defaultFilter,aa=defaultExtent,ca=defaultConstrain,ua=defaultWheelDelta,Sa=defaultTouchable,hl=[0,1/0],pl=[[-1/0,-1/0],[1/0,1/0]],ml=250,gl=interpolateZoom,wc=dispatch("start","zoom","end"),xu,ff,jf,Uf=500,rp=150,np=0,qm=10;function Vm(G0){G0.property("__zoom",defaultTransform$1).on("wheel.zoom",O1,{passive:!1}).on("mousedown.zoom",K0).on("dblclick.zoom",J0).filter(Sa).on("touchstart.zoom",Hw).on("touchmove.zoom",qw).on("touchend.zoom touchcancel.zoom",Y0).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}Vm.transform=function(G0,X0,d_,f_){var zN=G0.selection?G0.selection():G0;zN.property("__zoom",defaultTransform$1),G0!==zN?ig(G0,X0,d_,f_):zN.interrupt().each(function(){vv(this,arguments).event(f_).start().zoom(null,typeof X0=="function"?X0.apply(this,arguments):X0).end()})},Vm.scaleBy=function(G0,X0,d_,f_){Vm.scaleTo(G0,function(){var zN=this.__zoom.k,BN=typeof X0=="function"?X0.apply(this,arguments):X0;return zN*BN},d_,f_)},Vm.scaleTo=function(G0,X0,d_,f_){Vm.transform(G0,function(){var zN=aa.apply(this,arguments),BN=this.__zoom,iF=d_==null?rg(zN):typeof d_=="function"?d_.apply(this,arguments):d_,yY=BN.invert(iF),vQ=typeof X0=="function"?X0.apply(this,arguments):X0;return ca(tg(eg(BN,vQ),iF,yY),zN,pl)},d_,f_)},Vm.translateBy=function(G0,X0,d_,f_){Vm.transform(G0,function(){return ca(this.__zoom.translate(typeof X0=="function"?X0.apply(this,arguments):X0,typeof d_=="function"?d_.apply(this,arguments):d_),aa.apply(this,arguments),pl)},null,f_)},Vm.translateTo=function(G0,X0,d_,f_,zN){Vm.transform(G0,function(){var BN=aa.apply(this,arguments),iF=this.__zoom,yY=f_==null?rg(BN):typeof f_=="function"?f_.apply(this,arguments):f_;return ca(identity$2.translate(yY[0],yY[1]).scale(iF.k).translate(typeof X0=="function"?-X0.apply(this,arguments):-X0,typeof d_=="function"?-d_.apply(this,arguments):-d_),BN,pl)},f_,zN)};function eg(G0,X0){return X0=Math.max(hl[0],Math.min(hl[1],X0)),X0===G0.k?G0:new Transform(X0,G0.x,G0.y)}function tg(G0,X0,d_){var f_=X0[0]-d_[0]*G0.k,zN=X0[1]-d_[1]*G0.k;return f_===G0.x&&zN===G0.y?G0:new Transform(G0.k,f_,zN)}function rg(G0){return[(+G0[0][0]+ +G0[1][0])/2,(+G0[0][1]+ +G0[1][1])/2]}function ig(G0,X0,d_,f_){G0.on("start.zoom",function(){vv(this,arguments).event(f_).start()}).on("interrupt.zoom end.zoom",function(){vv(this,arguments).event(f_).end()}).tween("zoom",function(){var zN=this,BN=arguments,iF=vv(zN,BN).event(f_),yY=aa.apply(zN,BN),vQ=d_==null?rg(yY):typeof d_=="function"?d_.apply(zN,BN):d_,Ohe=Math.max(yY[1][0]-yY[0][0],yY[1][1]-yY[0][1]),bY=zN.__zoom,Lhe=typeof X0=="function"?X0.apply(zN,BN):X0,Dhe=gl(bY.invert(vQ).concat(Ohe/bY.k),Lhe.invert(vQ).concat(Ohe/Lhe.k));return function(kdt){if(kdt===1)kdt=Lhe;else{var eht=Dhe(kdt),oht=Ohe/eht[2];kdt=new Transform(oht,vQ[0]-eht[0]*oht,vQ[1]-eht[1]*oht)}iF.zoom(null,kdt)}})}function vv(G0,X0,d_){return!d_&&G0.__zooming||new R1(G0,X0)}function R1(G0,X0){this.that=G0,this.args=X0,this.active=0,this.sourceEvent=null,this.extent=aa.apply(G0,X0),this.taps=0}R1.prototype={event:function(G0){return G0&&(this.sourceEvent=G0),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(G0,X0){return this.mouse&&G0!=="mouse"&&(this.mouse[1]=X0.invert(this.mouse[0])),this.touch0&&G0!=="touch"&&(this.touch0[1]=X0.invert(this.touch0[0])),this.touch1&&G0!=="touch"&&(this.touch1[1]=X0.invert(this.touch1[0])),this.that.__zoom=X0,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(G0){var X0=select(this.that).datum();wc.call(G0,this.that,new ZoomEvent(G0,{sourceEvent:this.sourceEvent,target:Vm,transform:this.that.__zoom,dispatch:wc}),X0)}};function O1(G0,...X0){if(!la.apply(this,arguments))return;var d_=vv(this,X0).event(G0),f_=this.__zoom,zN=Math.max(hl[0],Math.min(hl[1],f_.k*Math.pow(2,ua.apply(this,arguments)))),BN=pointer(G0);if(d_.wheel)(d_.mouse[0][0]!==BN[0]||d_.mouse[0][1]!==BN[1])&&(d_.mouse[1]=f_.invert(d_.mouse[0]=BN)),clearTimeout(d_.wheel);else{if(f_.k===zN)return;d_.mouse=[BN,f_.invert(BN)],interrupt(this),d_.start()}noevent(G0),d_.wheel=setTimeout(iF,rp),d_.zoom("mouse",ca(tg(eg(f_,zN),d_.mouse[0],d_.mouse[1]),d_.extent,pl));function iF(){d_.wheel=null,d_.end()}}function K0(G0,...X0){if(jf||!la.apply(this,arguments))return;var d_=G0.currentTarget,f_=vv(this,X0,!0).event(G0),zN=select(G0.view).on("mousemove.zoom",vQ,!0).on("mouseup.zoom",Ohe,!0),BN=pointer(G0,d_),iF=G0.clientX,yY=G0.clientY;dragDisable(G0.view),nopropagation(G0),f_.mouse=[BN,this.__zoom.invert(BN)],interrupt(this),f_.start();function vQ(bY){if(noevent(bY),!f_.moved){var Lhe=bY.clientX-iF,Dhe=bY.clientY-yY;f_.moved=Lhe*Lhe+Dhe*Dhe>np}f_.event(bY).zoom("mouse",ca(tg(f_.that.__zoom,f_.mouse[0]=pointer(bY,d_),f_.mouse[1]),f_.extent,pl))}function Ohe(bY){zN.on("mousemove.zoom mouseup.zoom",null),yesdrag(bY.view,f_.moved),noevent(bY),f_.event(bY).end()}}function J0(G0,...X0){if(la.apply(this,arguments)){var d_=this.__zoom,f_=pointer(G0.changedTouches?G0.changedTouches[0]:G0,this),zN=d_.invert(f_),BN=d_.k*(G0.shiftKey?.5:2),iF=ca(tg(eg(d_,BN),f_,zN),aa.apply(this,X0),pl);noevent(G0),ml>0?select(this).transition().duration(ml).call(ig,iF,f_,G0):select(this).call(Vm.transform,iF,f_,G0)}}function Hw(G0,...X0){if(la.apply(this,arguments)){var d_=G0.touches,f_=d_.length,zN=vv(this,X0,G0.changedTouches.length===f_).event(G0),BN,iF,yY,vQ;for(nopropagation(G0),iF=0;iF<f_;++iF)yY=d_[iF],vQ=pointer(yY,this),vQ=[vQ,this.__zoom.invert(vQ),yY.identifier],zN.touch0?!zN.touch1&&zN.touch0[2]!==vQ[2]&&(zN.touch1=vQ,zN.taps=0):(zN.touch0=vQ,BN=!0,zN.taps=1+!!xu);xu&&(xu=clearTimeout(xu)),BN&&(zN.taps<2&&(ff=vQ[0],xu=setTimeout(function(){xu=null},Uf)),interrupt(this),zN.start())}}function qw(G0,...X0){if(this.__zooming){var d_=vv(this,X0).event(G0),f_=G0.changedTouches,zN=f_.length,BN,iF,yY,vQ;for(noevent(G0),BN=0;BN<zN;++BN)iF=f_[BN],yY=pointer(iF,this),d_.touch0&&d_.touch0[2]===iF.identifier?d_.touch0[0]=yY:d_.touch1&&d_.touch1[2]===iF.identifier&&(d_.touch1[0]=yY);if(iF=d_.that.__zoom,d_.touch1){var Ohe=d_.touch0[0],bY=d_.touch0[1],Lhe=d_.touch1[0],Dhe=d_.touch1[1],kdt=(kdt=Lhe[0]-Ohe[0])*kdt+(kdt=Lhe[1]-Ohe[1])*kdt,eht=(eht=Dhe[0]-bY[0])*eht+(eht=Dhe[1]-bY[1])*eht;iF=eg(iF,Math.sqrt(kdt/eht)),yY=[(Ohe[0]+Lhe[0])/2,(Ohe[1]+Lhe[1])/2],vQ=[(bY[0]+Dhe[0])/2,(bY[1]+Dhe[1])/2]}else if(d_.touch0)yY=d_.touch0[0],vQ=d_.touch0[1];else return;d_.zoom("touch",ca(tg(iF,yY,vQ),d_.extent,pl))}}function Y0(G0,...X0){if(this.__zooming){var d_=vv(this,X0).event(G0),f_=G0.changedTouches,zN=f_.length,BN,iF;for(nopropagation(G0),jf&&clearTimeout(jf),jf=setTimeout(function(){jf=null},Uf),BN=0;BN<zN;++BN)iF=f_[BN],d_.touch0&&d_.touch0[2]===iF.identifier?delete d_.touch0:d_.touch1&&d_.touch1[2]===iF.identifier&&delete d_.touch1;if(d_.touch1&&!d_.touch0&&(d_.touch0=d_.touch1,delete d_.touch1),d_.touch0)d_.touch0[1]=this.__zoom.invert(d_.touch0[0]);else if(d_.end(),d_.taps===2&&(iF=pointer(iF,this),Math.hypot(ff[0]-iF[0],ff[1]-iF[1])<qm)){var yY=select(this).on("dblclick.zoom");yY&&yY.apply(this,arguments)}}}return Vm.wheelDelta=function(G0){return arguments.length?(ua=typeof G0=="function"?G0:constant(+G0),Vm):ua},Vm.filter=function(G0){return arguments.length?(la=typeof G0=="function"?G0:constant(!!G0),Vm):la},Vm.touchable=function(G0){return arguments.length?(Sa=typeof G0=="function"?G0:constant(!!G0),Vm):Sa},Vm.extent=function(G0){return arguments.length?(aa=typeof G0=="function"?G0:constant([[+G0[0][0],+G0[0][1]],[+G0[1][0],+G0[1][1]]]),Vm):aa},Vm.scaleExtent=function(G0){return arguments.length?(hl[0]=+G0[0],hl[1]=+G0[1],Vm):[hl[0],hl[1]]},Vm.translateExtent=function(G0){return arguments.length?(pl[0][0]=+G0[0][0],pl[1][0]=+G0[1][0],pl[0][1]=+G0[0][1],pl[1][1]=+G0[1][1],Vm):[[pl[0][0],pl[0][1]],[pl[1][0],pl[1][1]]]},Vm.constrain=function(G0){return arguments.length?(ca=G0,Vm):ca},Vm.duration=function(G0){return arguments.length?(ml=+G0,Vm):ml},Vm.interpolate=function(G0){return arguments.length?(gl=G0,Vm):gl},Vm.on=function(){var G0=wc.on.apply(wc,arguments);return G0===wc?Vm:G0},Vm.clickDistance=function(G0){return arguments.length?(np=(G0=+G0)*G0,Vm):Math.sqrt(np)},Vm.tapDistance=function(G0){return arguments.length?(qm=+G0,Vm):qm},Vm}const errorMessages$3={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:la=>`Node type "${la}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:la=>`The old edge with id=${la} does not exist.`,error009:la=>`Marker type "${la}" doesn't exist.`,error008:(la,{id:aa,sourceHandle:ca,targetHandle:ua})=>`Couldn't create edge for ${la} handle id: "${la==="source"?ca:ua}", edge id: ${aa}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:la=>`Edge type "${la}" not found. Using fallback type "default".`,error012:la=>`Node with id "${la}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(la="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${la}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},infiniteExtent=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],elementSelectionKeys=["Enter"," ","Escape"],defaultAriaLabelConfig={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:la,x:aa,y:ca})=>`Moved selected node ${la}. New position, x: ${aa}, y: ${ca}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var ConnectionMode;(function(la){la.Strict="strict",la.Loose="loose"})(ConnectionMode||(ConnectionMode={}));var PanOnScrollMode;(function(la){la.Free="free",la.Vertical="vertical",la.Horizontal="horizontal"})(PanOnScrollMode||(PanOnScrollMode={}));var SelectionMode;(function(la){la.Partial="partial",la.Full="full"})(SelectionMode||(SelectionMode={}));const initialConnection={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var ConnectionLineType;(function(la){la.Bezier="default",la.Straight="straight",la.Step="step",la.SmoothStep="smoothstep",la.SimpleBezier="simplebezier"})(ConnectionLineType||(ConnectionLineType={}));var MarkerType;(function(la){la.Arrow="arrow",la.ArrowClosed="arrowclosed"})(MarkerType||(MarkerType={}));var Position;(function(la){la.Left="left",la.Top="top",la.Right="right",la.Bottom="bottom"})(Position||(Position={}));const oppositePosition={[Position.Left]:Position.Right,[Position.Right]:Position.Left,[Position.Top]:Position.Bottom,[Position.Bottom]:Position.Top};function getConnectionStatus(la){return la===null?null:la?"valid":"invalid"}const isEdgeBase=la=>"id"in la&&"source"in la&&"target"in la,isNodeBase=la=>"id"in la&&"position"in la&&!("source"in la)&&!("target"in la),isInternalNodeBase=la=>"id"in la&&"internals"in la&&!("source"in la)&&!("target"in la),getNodePositionWithOrigin=(la,aa=[0,0])=>{const{width:ca,height:ua}=getNodeDimensions(la),Sa=la.origin??aa,hl=ca*Sa[0],pl=ua*Sa[1];return{x:la.position.x-hl,y:la.position.y-pl}},getNodesBounds=(la,aa={nodeOrigin:[0,0]})=>{if(la.length===0)return{x:0,y:0,width:0,height:0};const ca=la.reduce((ua,Sa)=>{const hl=typeof Sa=="string";let pl=!aa.nodeLookup&&!hl?Sa:void 0;aa.nodeLookup&&(pl=hl?aa.nodeLookup.get(Sa):isInternalNodeBase(Sa)?Sa:aa.nodeLookup.get(Sa.id));const ml=pl?nodeToBox(pl,aa.nodeOrigin):{x:0,y:0,x2:0,y2:0};return getBoundsOfBoxes(ua,ml)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return boxToRect(ca)},getInternalNodesBounds=(la,aa={})=>{let ca={x:1/0,y:1/0,x2:-1/0,y2:-1/0},ua=!1;return la.forEach(Sa=>{(aa.filter===void 0||aa.filter(Sa))&&(ca=getBoundsOfBoxes(ca,nodeToBox(Sa)),ua=!0)}),ua?boxToRect(ca):{x:0,y:0,width:0,height:0}},getNodesInside=(la,aa,[ca,ua,Sa]=[0,0,1],hl=!1,pl=!1)=>{const ml={...pointToRendererPoint(aa,[ca,ua,Sa]),width:aa.width/Sa,height:aa.height/Sa},gl=[];for(const wc of la.values()){const{measured:xu,selectable:ff=!0,hidden:jf=!1}=wc;if(pl&&!ff||jf)continue;const Uf=xu.width??wc.width??wc.initialWidth??null,rp=xu.height??wc.height??wc.initialHeight??null,np=getOverlappingArea(ml,nodeToRect(wc)),qm=(Uf??0)*(rp??0),Vm=hl&&np>0;(!wc.internals.handleBounds||Vm||np>=qm||wc.dragging)&&gl.push(wc)}return gl},getConnectedEdges=(la,aa)=>{const ca=new Set;return la.forEach(ua=>{ca.add(ua.id)}),aa.filter(ua=>ca.has(ua.source)||ca.has(ua.target))};function getFitViewNodes(la,aa){const ca=new Map,ua=aa?.nodes?new Set(aa.nodes.map(Sa=>Sa.id)):null;return la.forEach(Sa=>{Sa.measured.width&&Sa.measured.height&&(aa?.includeHiddenNodes||!Sa.hidden)&&(!ua||ua.has(Sa.id))&&ca.set(Sa.id,Sa)}),ca}async function fitViewport({nodes:la,width:aa,height:ca,panZoom:ua,minZoom:Sa,maxZoom:hl},pl){if(la.size===0)return Promise.resolve(!0);const ml=getFitViewNodes(la,pl),gl=getInternalNodesBounds(ml),wc=getViewportForBounds(gl,aa,ca,pl?.minZoom??Sa,pl?.maxZoom??hl,pl?.padding??.1);return await ua.setViewport(wc,{duration:pl?.duration,ease:pl?.ease,interpolate:pl?.interpolate}),Promise.resolve(!0)}function calculateNodePosition({nodeId:la,nextPosition:aa,nodeLookup:ca,nodeOrigin:ua=[0,0],nodeExtent:Sa,onError:hl}){const pl=ca.get(la),ml=pl.parentId?ca.get(pl.parentId):void 0,{x:gl,y:wc}=ml?ml.internals.positionAbsolute:{x:0,y:0},xu=pl.origin??ua;let ff=pl.extent||Sa;if(pl.extent==="parent"&&!pl.expandParent)if(!ml)hl?.("005",errorMessages$3.error005());else{const Uf=ml.measured.width,rp=ml.measured.height;Uf&&rp&&(ff=[[gl,wc],[gl+Uf,wc+rp]])}else ml&&isCoordinateExtent(pl.extent)&&(ff=[[pl.extent[0][0]+gl,pl.extent[0][1]+wc],[pl.extent[1][0]+gl,pl.extent[1][1]+wc]]);const jf=isCoordinateExtent(ff)?clampPosition(aa,ff,pl.measured):aa;return(pl.measured.width===void 0||pl.measured.height===void 0)&&hl?.("015",errorMessages$3.error015()),{position:{x:jf.x-gl+(pl.measured.width??0)*xu[0],y:jf.y-wc+(pl.measured.height??0)*xu[1]},positionAbsolute:jf}}async function getElementsToRemove({nodesToRemove:la=[],edgesToRemove:aa=[],nodes:ca,edges:ua,onBeforeDelete:Sa}){const hl=new Set(la.map(jf=>jf.id)),pl=[];for(const jf of ca){if(jf.deletable===!1)continue;const Uf=hl.has(jf.id),rp=!Uf&&jf.parentId&&pl.find(np=>np.id===jf.parentId);(Uf||rp)&&pl.push(jf)}const ml=new Set(aa.map(jf=>jf.id)),gl=ua.filter(jf=>jf.deletable!==!1),xu=getConnectedEdges(pl,gl);for(const jf of gl)ml.has(jf.id)&&!xu.find(rp=>rp.id===jf.id)&&xu.push(jf);if(!Sa)return{edges:xu,nodes:pl};const ff=await Sa({nodes:pl,edges:xu});return typeof ff=="boolean"?ff?{edges:xu,nodes:pl}:{edges:[],nodes:[]}:ff}const clamp$3=(la,aa=0,ca=1)=>Math.min(Math.max(la,aa),ca),clampPosition=(la={x:0,y:0},aa,ca)=>({x:clamp$3(la.x,aa[0][0],aa[1][0]-(ca?.width??0)),y:clamp$3(la.y,aa[0][1],aa[1][1]-(ca?.height??0))});function clampPositionToParent(la,aa,ca){const{width:ua,height:Sa}=getNodeDimensions(ca),{x:hl,y:pl}=ca.internals.positionAbsolute;return clampPosition(la,[[hl,pl],[hl+ua,pl+Sa]],aa)}const calcAutoPanVelocity=(la,aa,ca)=>la<aa?clamp$3(Math.abs(la-aa),1,aa)/aa:la>ca?-clamp$3(Math.abs(la-ca),1,aa)/aa:0,calcAutoPan=(la,aa,ca=15,ua=40)=>{const Sa=calcAutoPanVelocity(la.x,ua,aa.width-ua)*ca,hl=calcAutoPanVelocity(la.y,ua,aa.height-ua)*ca;return[Sa,hl]},getBoundsOfBoxes=(la,aa)=>({x:Math.min(la.x,aa.x),y:Math.min(la.y,aa.y),x2:Math.max(la.x2,aa.x2),y2:Math.max(la.y2,aa.y2)}),rectToBox=({x:la,y:aa,width:ca,height:ua})=>({x:la,y:aa,x2:la+ca,y2:aa+ua}),boxToRect=({x:la,y:aa,x2:ca,y2:ua})=>({x:la,y:aa,width:ca-la,height:ua-aa}),nodeToRect=(la,aa=[0,0])=>{const{x:ca,y:ua}=isInternalNodeBase(la)?la.internals.positionAbsolute:getNodePositionWithOrigin(la,aa);return{x:ca,y:ua,width:la.measured?.width??la.width??la.initialWidth??0,height:la.measured?.height??la.height??la.initialHeight??0}},nodeToBox=(la,aa=[0,0])=>{const{x:ca,y:ua}=isInternalNodeBase(la)?la.internals.positionAbsolute:getNodePositionWithOrigin(la,aa);return{x:ca,y:ua,x2:ca+(la.measured?.width??la.width??la.initialWidth??0),y2:ua+(la.measured?.height??la.height??la.initialHeight??0)}},getBoundsOfRects=(la,aa)=>boxToRect(getBoundsOfBoxes(rectToBox(la),rectToBox(aa))),getOverlappingArea=(la,aa)=>{const ca=Math.max(0,Math.min(la.x+la.width,aa.x+aa.width)-Math.max(la.x,aa.x)),ua=Math.max(0,Math.min(la.y+la.height,aa.y+aa.height)-Math.max(la.y,aa.y));return Math.ceil(ca*ua)},isRectObject=la=>isNumeric(la.width)&&isNumeric(la.height)&&isNumeric(la.x)&&isNumeric(la.y),isNumeric=la=>!isNaN(la)&&isFinite(la),devWarn=(la,aa)=>{},snapPosition=(la,aa=[1,1])=>({x:aa[0]*Math.round(la.x/aa[0]),y:aa[1]*Math.round(la.y/aa[1])}),pointToRendererPoint=({x:la,y:aa},[ca,ua,Sa],hl=!1,pl=[1,1])=>{const ml={x:(la-ca)/Sa,y:(aa-ua)/Sa};return hl?snapPosition(ml,pl):ml},rendererPointToPoint=({x:la,y:aa},[ca,ua,Sa])=>({x:la*Sa+ca,y:aa*Sa+ua});function parsePadding(la,aa){if(typeof la=="number")return Math.floor((aa-aa/(1+la))*.5);if(typeof la=="string"&&la.endsWith("px")){const ca=parseFloat(la);if(!Number.isNaN(ca))return Math.floor(ca)}if(typeof la=="string"&&la.endsWith("%")){const ca=parseFloat(la);if(!Number.isNaN(ca))return Math.floor(aa*ca*.01)}return console.error(`[React Flow] The padding value "${la}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function parsePaddings(la,aa,ca){if(typeof la=="string"||typeof la=="number"){const ua=parsePadding(la,ca),Sa=parsePadding(la,aa);return{top:ua,right:Sa,bottom:ua,left:Sa,x:Sa*2,y:ua*2}}if(typeof la=="object"){const ua=parsePadding(la.top??la.y??0,ca),Sa=parsePadding(la.bottom??la.y??0,ca),hl=parsePadding(la.left??la.x??0,aa),pl=parsePadding(la.right??la.x??0,aa);return{top:ua,right:pl,bottom:Sa,left:hl,x:hl+pl,y:ua+Sa}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function calculateAppliedPaddings(la,aa,ca,ua,Sa,hl){const{x:pl,y:ml}=rendererPointToPoint(la,[aa,ca,ua]),{x:gl,y:wc}=rendererPointToPoint({x:la.x+la.width,y:la.y+la.height},[aa,ca,ua]),xu=Sa-gl,ff=hl-wc;return{left:Math.floor(pl),top:Math.floor(ml),right:Math.floor(xu),bottom:Math.floor(ff)}}const getViewportForBounds=(la,aa,ca,ua,Sa,hl)=>{const pl=parsePaddings(hl,aa,ca),ml=(aa-pl.x)/la.width,gl=(ca-pl.y)/la.height,wc=Math.min(ml,gl),xu=clamp$3(wc,ua,Sa),ff=la.x+la.width/2,jf=la.y+la.height/2,Uf=aa/2-ff*xu,rp=ca/2-jf*xu,np=calculateAppliedPaddings(la,Uf,rp,xu,aa,ca),qm={left:Math.min(np.left-pl.left,0),top:Math.min(np.top-pl.top,0),right:Math.min(np.right-pl.right,0),bottom:Math.min(np.bottom-pl.bottom,0)};return{x:Uf-qm.left+qm.right,y:rp-qm.top+qm.bottom,zoom:xu}},isMacOs=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function isCoordinateExtent(la){return la!=null&&la!=="parent"}function getNodeDimensions(la){return{width:la.measured?.width??la.width??la.initialWidth??0,height:la.measured?.height??la.height??la.initialHeight??0}}function nodeHasDimensions(la){return(la.measured?.width??la.width??la.initialWidth)!==void 0&&(la.measured?.height??la.height??la.initialHeight)!==void 0}function evaluateAbsolutePosition(la,aa={width:0,height:0},ca,ua,Sa){const hl={...la},pl=ua.get(ca);if(pl){const ml=pl.origin||Sa;hl.x+=pl.internals.positionAbsolute.x-(aa.width??0)*ml[0],hl.y+=pl.internals.positionAbsolute.y-(aa.height??0)*ml[1]}return hl}function areSetsEqual(la,aa){if(la.size!==aa.size)return!1;for(const ca of la)if(!aa.has(ca))return!1;return!0}function withResolvers(){let la,aa;return{promise:new Promise((ua,Sa)=>{la=ua,aa=Sa}),resolve:la,reject:aa}}function mergeAriaLabelConfig(la){return{...defaultAriaLabelConfig,...la||{}}}function getPointerPosition(la,{snapGrid:aa=[0,0],snapToGrid:ca=!1,transform:ua,containerBounds:Sa}){const{x:hl,y:pl}=getEventPosition(la),ml=pointToRendererPoint({x:hl-(Sa?.left??0),y:pl-(Sa?.top??0)},ua),{x:gl,y:wc}=ca?snapPosition(ml,aa):ml;return{xSnapped:gl,ySnapped:wc,...ml}}const getDimensions$1=la=>({width:la.offsetWidth,height:la.offsetHeight}),getHostForElement=la=>la?.getRootNode?.()||window?.document,inputTags=["INPUT","SELECT","TEXTAREA"];function isInputDOMNode(la){const aa=la.composedPath?.()?.[0]||la.target;return aa?.nodeType!==1?!1:inputTags.includes(aa.nodeName)||aa.hasAttribute("contenteditable")||!!aa.closest(".nokey")}const isMouseEvent=la=>"clientX"in la,getEventPosition=(la,aa)=>{const ca=isMouseEvent(la),ua=ca?la.clientX:la.touches?.[0].clientX,Sa=ca?la.clientY:la.touches?.[0].clientY;return{x:ua-(aa?.left??0),y:Sa-(aa?.top??0)}},getHandleBounds=(la,aa,ca,ua,Sa)=>{const hl=aa.querySelectorAll(`.${la}`);return!hl||!hl.length?null:Array.from(hl).map(pl=>{const ml=pl.getBoundingClientRect();return{id:pl.getAttribute("data-handleid"),type:la,nodeId:Sa,position:pl.getAttribute("data-handlepos"),x:(ml.left-ca.left)/ua,y:(ml.top-ca.top)/ua,...getDimensions$1(pl)}})};function getBezierEdgeCenter({sourceX:la,sourceY:aa,targetX:ca,targetY:ua,sourceControlX:Sa,sourceControlY:hl,targetControlX:pl,targetControlY:ml}){const gl=la*.125+Sa*.375+pl*.375+ca*.125,wc=aa*.125+hl*.375+ml*.375+ua*.125,xu=Math.abs(gl-la),ff=Math.abs(wc-aa);return[gl,wc,xu,ff]}function calculateControlOffset(la,aa){return la>=0?.5*la:aa*25*Math.sqrt(-la)}function getControlWithCurvature({pos:la,x1:aa,y1:ca,x2:ua,y2:Sa,c:hl}){switch(la){case Position.Left:return[aa-calculateControlOffset(aa-ua,hl),ca];case Position.Right:return[aa+calculateControlOffset(ua-aa,hl),ca];case Position.Top:return[aa,ca-calculateControlOffset(ca-Sa,hl)];case Position.Bottom:return[aa,ca+calculateControlOffset(Sa-ca,hl)]}}function getBezierPath({sourceX:la,sourceY:aa,sourcePosition:ca=Position.Bottom,targetX:ua,targetY:Sa,targetPosition:hl=Position.Top,curvature:pl=.25}){const[ml,gl]=getControlWithCurvature({pos:ca,x1:la,y1:aa,x2:ua,y2:Sa,c:pl}),[wc,xu]=getControlWithCurvature({pos:hl,x1:ua,y1:Sa,x2:la,y2:aa,c:pl}),[ff,jf,Uf,rp]=getBezierEdgeCenter({sourceX:la,sourceY:aa,targetX:ua,targetY:Sa,sourceControlX:ml,sourceControlY:gl,targetControlX:wc,targetControlY:xu});return[`M${la},${aa} C${ml},${gl} ${wc},${xu} ${ua},${Sa}`,ff,jf,Uf,rp]}function getEdgeCenter({sourceX:la,sourceY:aa,targetX:ca,targetY:ua}){const Sa=Math.abs(ca-la)/2,hl=ca<la?ca+Sa:ca-Sa,pl=Math.abs(ua-aa)/2,ml=ua<aa?ua+pl:ua-pl;return[hl,ml,Sa,pl]}function getElevatedEdgeZIndex({sourceNode:la,targetNode:aa,selected:ca=!1,zIndex:ua=0,elevateOnSelect:Sa=!1,zIndexMode:hl="basic"}){if(hl==="manual")return ua;const pl=Sa&&ca?ua+1e3:ua,ml=Math.max(la.parentId||Sa&&la.selected?la.internals.z:0,aa.parentId||Sa&&aa.selected?aa.internals.z:0);return pl+ml}function isEdgeVisible({sourceNode:la,targetNode:aa,width:ca,height:ua,transform:Sa}){const hl=getBoundsOfBoxes(nodeToBox(la),nodeToBox(aa));hl.x===hl.x2&&(hl.x2+=1),hl.y===hl.y2&&(hl.y2+=1);const pl={x:-Sa[0]/Sa[2],y:-Sa[1]/Sa[2],width:ca/Sa[2],height:ua/Sa[2]};return getOverlappingArea(pl,boxToRect(hl))>0}const getEdgeId=({source:la,sourceHandle:aa,target:ca,targetHandle:ua})=>`xy-edge__${la}${aa||""}-${ca}${ua||""}`,connectionExists=(la,aa)=>aa.some(ca=>ca.source===la.source&&ca.target===la.target&&(ca.sourceHandle===la.sourceHandle||!ca.sourceHandle&&!la.sourceHandle)&&(ca.targetHandle===la.targetHandle||!ca.targetHandle&&!la.targetHandle)),addEdge=(la,aa,ca={})=>{if(!la.source||!la.target)return aa;const ua=ca.getEdgeId||getEdgeId;let Sa;return isEdgeBase(la)?Sa={...la}:Sa={...la,id:ua(la)},connectionExists(Sa,aa)?aa:(Sa.sourceHandle===null&&delete Sa.sourceHandle,Sa.targetHandle===null&&delete Sa.targetHandle,aa.concat(Sa))};function getStraightPath({sourceX:la,sourceY:aa,targetX:ca,targetY:ua}){const[Sa,hl,pl,ml]=getEdgeCenter({sourceX:la,sourceY:aa,targetX:ca,targetY:ua});return[`M ${la},${aa}L ${ca},${ua}`,Sa,hl,pl,ml]}const handleDirections={[Position.Left]:{x:-1,y:0},[Position.Right]:{x:1,y:0},[Position.Top]:{x:0,y:-1},[Position.Bottom]:{x:0,y:1}},getDirection=({source:la,sourcePosition:aa=Position.Bottom,target:ca})=>aa===Position.Left||aa===Position.Right?la.x<ca.x?{x:1,y:0}:{x:-1,y:0}:la.y<ca.y?{x:0,y:1}:{x:0,y:-1},distance$1=(la,aa)=>Math.sqrt(Math.pow(aa.x-la.x,2)+Math.pow(aa.y-la.y,2));function getPoints({source:la,sourcePosition:aa=Position.Bottom,target:ca,targetPosition:ua=Position.Top,center:Sa,offset:hl,stepPosition:pl}){const ml=handleDirections[aa],gl=handleDirections[ua],wc={x:la.x+ml.x*hl,y:la.y+ml.y*hl},xu={x:ca.x+gl.x*hl,y:ca.y+gl.y*hl},ff=getDirection({source:wc,sourcePosition:aa,target:xu}),jf=ff.x!==0?"x":"y",Uf=ff[jf];let rp=[],np,qm;const Vm={x:0,y:0},eg={x:0,y:0},[,,tg,rg]=getEdgeCenter({sourceX:la.x,sourceY:la.y,targetX:ca.x,targetY:ca.y});if(ml[jf]*gl[jf]===-1){jf==="x"?(np=Sa.x??wc.x+(xu.x-wc.x)*pl,qm=Sa.y??(wc.y+xu.y)/2):(np=Sa.x??(wc.x+xu.x)/2,qm=Sa.y??wc.y+(xu.y-wc.y)*pl);const vv=[{x:np,y:wc.y},{x:np,y:xu.y}],R1=[{x:wc.x,y:qm},{x:xu.x,y:qm}];ml[jf]===Uf?rp=jf==="x"?vv:R1:rp=jf==="x"?R1:vv}else{const vv=[{x:wc.x,y:xu.y}],R1=[{x:xu.x,y:wc.y}];if(jf==="x"?rp=ml.x===Uf?R1:vv:rp=ml.y===Uf?vv:R1,aa===ua){const qw=Math.abs(la[jf]-ca[jf]);if(qw<=hl){const Y0=Math.min(hl-1,hl-qw);ml[jf]===Uf?Vm[jf]=(wc[jf]>la[jf]?-1:1)*Y0:eg[jf]=(xu[jf]>ca[jf]?-1:1)*Y0}}if(aa!==ua){const qw=jf==="x"?"y":"x",Y0=ml[jf]===gl[qw],G0=wc[qw]>xu[qw],X0=wc[qw]<xu[qw];(ml[jf]===1&&(!Y0&&G0||Y0&&X0)||ml[jf]!==1&&(!Y0&&X0||Y0&&G0))&&(rp=jf==="x"?vv:R1)}const O1={x:wc.x+Vm.x,y:wc.y+Vm.y},K0={x:xu.x+eg.x,y:xu.y+eg.y},J0=Math.max(Math.abs(O1.x-rp[0].x),Math.abs(K0.x-rp[0].x)),Hw=Math.max(Math.abs(O1.y-rp[0].y),Math.abs(K0.y-rp[0].y));J0>=Hw?(np=(O1.x+K0.x)/2,qm=rp[0].y):(np=rp[0].x,qm=(O1.y+K0.y)/2)}return[[la,{x:wc.x+Vm.x,y:wc.y+Vm.y},...rp,{x:xu.x+eg.x,y:xu.y+eg.y},ca],np,qm,tg,rg]}function getBend(la,aa,ca,ua){const Sa=Math.min(distance$1(la,aa)/2,distance$1(aa,ca)/2,ua),{x:hl,y:pl}=aa;if(la.x===hl&&hl===ca.x||la.y===pl&&pl===ca.y)return`L${hl} ${pl}`;if(la.y===pl){const wc=la.x<ca.x?-1:1,xu=la.y<ca.y?1:-1;return`L ${hl+Sa*wc},${pl}Q ${hl},${pl} ${hl},${pl+Sa*xu}`}const ml=la.x<ca.x?1:-1,gl=la.y<ca.y?-1:1;return`L ${hl},${pl+Sa*gl}Q ${hl},${pl} ${hl+Sa*ml},${pl}`}function getSmoothStepPath({sourceX:la,sourceY:aa,sourcePosition:ca=Position.Bottom,targetX:ua,targetY:Sa,targetPosition:hl=Position.Top,borderRadius:pl=5,centerX:ml,centerY:gl,offset:wc=20,stepPosition:xu=.5}){const[ff,jf,Uf,rp,np]=getPoints({source:{x:la,y:aa},sourcePosition:ca,target:{x:ua,y:Sa},targetPosition:hl,center:{x:ml,y:gl},offset:wc,stepPosition:xu});return[ff.reduce((Vm,eg,tg)=>{let rg="";return tg>0&&tg<ff.length-1?rg=getBend(ff[tg-1],eg,ff[tg+1],pl):rg=`${tg===0?"M":"L"}${eg.x} ${eg.y}`,Vm+=rg,Vm},""),jf,Uf,rp,np]}function isNodeInitialized(la){return la&&!!(la.internals.handleBounds||la.handles?.length)&&!!(la.measured.width||la.width||la.initialWidth)}function getEdgePosition(la){const{sourceNode:aa,targetNode:ca}=la;if(!isNodeInitialized(aa)||!isNodeInitialized(ca))return null;const ua=aa.internals.handleBounds||toHandleBounds(aa.handles),Sa=ca.internals.handleBounds||toHandleBounds(ca.handles),hl=getHandle$1(ua?.source??[],la.sourceHandle),pl=getHandle$1(la.connectionMode===ConnectionMode.Strict?Sa?.target??[]:(Sa?.target??[]).concat(Sa?.source??[]),la.targetHandle);if(!hl||!pl)return la.onError?.("008",errorMessages$3.error008(hl?"target":"source",{id:la.id,sourceHandle:la.sourceHandle,targetHandle:la.targetHandle})),null;const ml=hl?.position||Position.Bottom,gl=pl?.position||Position.Top,wc=getHandlePosition(aa,hl,ml),xu=getHandlePosition(ca,pl,gl);return{sourceX:wc.x,sourceY:wc.y,targetX:xu.x,targetY:xu.y,sourcePosition:ml,targetPosition:gl}}function toHandleBounds(la){if(!la)return null;const aa=[],ca=[];for(const ua of la)ua.width=ua.width??1,ua.height=ua.height??1,ua.type==="source"?aa.push(ua):ua.type==="target"&&ca.push(ua);return{source:aa,target:ca}}function getHandlePosition(la,aa,ca=Position.Left,ua=!1){const Sa=(aa?.x??0)+la.internals.positionAbsolute.x,hl=(aa?.y??0)+la.internals.positionAbsolute.y,{width:pl,height:ml}=aa??getNodeDimensions(la);if(ua)return{x:Sa+pl/2,y:hl+ml/2};switch(aa?.position??ca){case Position.Top:return{x:Sa+pl/2,y:hl};case Position.Right:return{x:Sa+pl,y:hl+ml/2};case Position.Bottom:return{x:Sa+pl/2,y:hl+ml};case Position.Left:return{x:Sa,y:hl+ml/2}}}function getHandle$1(la,aa){return la&&(aa?la.find(ca=>ca.id===aa):la[0])||null}function getMarkerId(la,aa){return la?typeof la=="string"?la:`${aa?`${aa}__`:""}${Object.keys(la).sort().map(ua=>`${ua}=${la[ua]}`).join("&")}`:""}function createMarkerIds(la,{id:aa,defaultColor:ca,defaultMarkerStart:ua,defaultMarkerEnd:Sa}){const hl=new Set;return la.reduce((pl,ml)=>([ml.markerStart||ua,ml.markerEnd||Sa].forEach(gl=>{if(gl&&typeof gl=="object"){const wc=getMarkerId(gl,aa);hl.has(wc)||(pl.push({id:wc,color:gl.color||ca,...gl}),hl.add(wc))}}),pl),[]).sort((pl,ml)=>pl.id.localeCompare(ml.id))}const SELECTED_NODE_Z=1e3,ROOT_PARENT_Z_INCREMENT=10,defaultOptions$6={nodeOrigin:[0,0],nodeExtent:infiniteExtent,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},adoptUserNodesDefaultOptions={...defaultOptions$6,checkEquality:!0};function mergeObjects(la,aa){const ca={...la};for(const ua in aa)aa[ua]!==void 0&&(ca[ua]=aa[ua]);return ca}function updateAbsolutePositions(la,aa,ca){const ua=mergeObjects(defaultOptions$6,ca);for(const Sa of la.values())if(Sa.parentId)updateChildNode(Sa,la,aa,ua);else{const hl=getNodePositionWithOrigin(Sa,ua.nodeOrigin),pl=isCoordinateExtent(Sa.extent)?Sa.extent:ua.nodeExtent,ml=clampPosition(hl,pl,getNodeDimensions(Sa));Sa.internals.positionAbsolute=ml}}function parseHandles(la,aa){if(!la.handles)return la.measured?aa?.internals.handleBounds:void 0;const ca=[],ua=[];for(const Sa of la.handles){const hl={id:Sa.id,width:Sa.width??1,height:Sa.height??1,nodeId:la.id,x:Sa.x,y:Sa.y,position:Sa.position,type:Sa.type};Sa.type==="source"?ca.push(hl):Sa.type==="target"&&ua.push(hl)}return{source:ca,target:ua}}function isManualZIndexMode(la){return la==="manual"}function adoptUserNodes(la,aa,ca,ua={}){const Sa=mergeObjects(adoptUserNodesDefaultOptions,ua),hl={i:0},pl=new Map(aa),ml=Sa?.elevateNodesOnSelect&&!isManualZIndexMode(Sa.zIndexMode)?SELECTED_NODE_Z:0;let gl=la.length>0;aa.clear(),ca.clear();for(const wc of la){let xu=pl.get(wc.id);if(Sa.checkEquality&&wc===xu?.internals.userNode)aa.set(wc.id,xu);else{const ff=getNodePositionWithOrigin(wc,Sa.nodeOrigin),jf=isCoordinateExtent(wc.extent)?wc.extent:Sa.nodeExtent,Uf=clampPosition(ff,jf,getNodeDimensions(wc));xu={...Sa.defaults,...wc,measured:{width:wc.measured?.width,height:wc.measured?.height},internals:{positionAbsolute:Uf,handleBounds:parseHandles(wc,xu),z:calculateZ(wc,ml,Sa.zIndexMode),userNode:wc}},aa.set(wc.id,xu)}(xu.measured===void 0||xu.measured.width===void 0||xu.measured.height===void 0)&&!xu.hidden&&(gl=!1),wc.parentId&&updateChildNode(xu,aa,ca,ua,hl)}return gl}function updateParentLookup(la,aa){if(!la.parentId)return;const ca=aa.get(la.parentId);ca?ca.set(la.id,la):aa.set(la.parentId,new Map([[la.id,la]]))}function updateChildNode(la,aa,ca,ua,Sa){const{elevateNodesOnSelect:hl,nodeOrigin:pl,nodeExtent:ml,zIndexMode:gl}=mergeObjects(defaultOptions$6,ua),wc=la.parentId,xu=aa.get(wc);if(!xu){console.warn(`Parent node ${wc} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}updateParentLookup(la,ca),Sa&&!xu.parentId&&xu.internals.rootParentIndex===void 0&&gl==="auto"&&(xu.internals.rootParentIndex=++Sa.i,xu.internals.z=xu.internals.z+Sa.i*ROOT_PARENT_Z_INCREMENT),Sa&&xu.internals.rootParentIndex!==void 0&&(Sa.i=xu.internals.rootParentIndex);const ff=hl&&!isManualZIndexMode(gl)?SELECTED_NODE_Z:0,{x:jf,y:Uf,z:rp}=calculateChildXYZ(la,xu,pl,ml,ff,gl),{positionAbsolute:np}=la.internals,qm=jf!==np.x||Uf!==np.y;(qm||rp!==la.internals.z)&&aa.set(la.id,{...la,internals:{...la.internals,positionAbsolute:qm?{x:jf,y:Uf}:np,z:rp}})}function calculateZ(la,aa,ca){const ua=isNumeric(la.zIndex)?la.zIndex:0;return isManualZIndexMode(ca)?ua:ua+(la.selected?aa:0)}function calculateChildXYZ(la,aa,ca,ua,Sa,hl){const{x:pl,y:ml}=aa.internals.positionAbsolute,gl=getNodeDimensions(la),wc=getNodePositionWithOrigin(la,ca),xu=isCoordinateExtent(la.extent)?clampPosition(wc,la.extent,gl):wc;let ff=clampPosition({x:pl+xu.x,y:ml+xu.y},ua,gl);la.extent==="parent"&&(ff=clampPositionToParent(ff,gl,aa));const jf=calculateZ(la,Sa,hl),Uf=aa.internals.z??0;return{x:ff.x,y:ff.y,z:Uf>=jf?Uf+1:jf}}function handleExpandParent(la,aa,ca,ua=[0,0]){const Sa=[],hl=new Map;for(const pl of la){const ml=aa.get(pl.parentId);if(!ml)continue;const gl=hl.get(pl.parentId)?.expandedRect??nodeToRect(ml),wc=getBoundsOfRects(gl,pl.rect);hl.set(pl.parentId,{expandedRect:wc,parent:ml})}return hl.size>0&&hl.forEach(({expandedRect:pl,parent:ml},gl)=>{const wc=ml.internals.positionAbsolute,xu=getNodeDimensions(ml),ff=ml.origin??ua,jf=pl.x<wc.x?Math.round(Math.abs(wc.x-pl.x)):0,Uf=pl.y<wc.y?Math.round(Math.abs(wc.y-pl.y)):0,rp=Math.max(xu.width,Math.round(pl.width)),np=Math.max(xu.height,Math.round(pl.height)),qm=(rp-xu.width)*ff[0],Vm=(np-xu.height)*ff[1];(jf>0||Uf>0||qm||Vm)&&(Sa.push({id:gl,type:"position",position:{x:ml.position.x-jf+qm,y:ml.position.y-Uf+Vm}}),ca.get(gl)?.forEach(eg=>{la.some(tg=>tg.id===eg.id)||Sa.push({id:eg.id,type:"position",position:{x:eg.position.x+jf,y:eg.position.y+Uf}})})),(xu.width<pl.width||xu.height<pl.height||jf||Uf)&&Sa.push({id:gl,type:"dimensions",setAttributes:!0,dimensions:{width:rp+(jf?ff[0]*jf-qm:0),height:np+(Uf?ff[1]*Uf-Vm:0)}})}),Sa}function updateNodeInternals(la,aa,ca,ua,Sa,hl,pl){const ml=ua?.querySelector(".xyflow__viewport");let gl=!1;if(!ml)return{changes:[],updatedInternals:gl};const wc=[],xu=window.getComputedStyle(ml),{m22:ff}=new window.DOMMatrixReadOnly(xu.transform),jf=[];for(const Uf of la.values()){const rp=aa.get(Uf.id);if(!rp)continue;if(rp.hidden){aa.set(rp.id,{...rp,internals:{...rp.internals,handleBounds:void 0}}),gl=!0;continue}const np=getDimensions$1(Uf.nodeElement),qm=rp.measured.width!==np.width||rp.measured.height!==np.height;if(!!(np.width&&np.height&&(qm||!rp.internals.handleBounds||Uf.force))){const eg=Uf.nodeElement.getBoundingClientRect(),tg=isCoordinateExtent(rp.extent)?rp.extent:hl;let{positionAbsolute:rg}=rp.internals;rp.parentId&&rp.extent==="parent"?rg=clampPositionToParent(rg,np,aa.get(rp.parentId)):tg&&(rg=clampPosition(rg,tg,np));const ig={...rp,measured:np,internals:{...rp.internals,positionAbsolute:rg,handleBounds:{source:getHandleBounds("source",Uf.nodeElement,eg,ff,rp.id),target:getHandleBounds("target",Uf.nodeElement,eg,ff,rp.id)}}};aa.set(rp.id,ig),rp.parentId&&updateChildNode(ig,aa,ca,{nodeOrigin:Sa,zIndexMode:pl}),gl=!0,qm&&(wc.push({id:rp.id,type:"dimensions",dimensions:np}),rp.expandParent&&rp.parentId&&jf.push({id:rp.id,parentId:rp.parentId,rect:nodeToRect(ig,Sa)}))}}if(jf.length>0){const Uf=handleExpandParent(jf,aa,ca,Sa);wc.push(...Uf)}return{changes:wc,updatedInternals:gl}}async function panBy({delta:la,panZoom:aa,transform:ca,translateExtent:ua,width:Sa,height:hl}){if(!aa||!la.x&&!la.y)return Promise.resolve(!1);const pl=await aa.setViewportConstrained({x:ca[0]+la.x,y:ca[1]+la.y,zoom:ca[2]},[[0,0],[Sa,hl]],ua),ml=!!pl&&(pl.x!==ca[0]||pl.y!==ca[1]||pl.k!==ca[2]);return Promise.resolve(ml)}function addConnectionToLookup(la,aa,ca,ua,Sa,hl){let pl=Sa;const ml=ua.get(pl)||new Map;ua.set(pl,ml.set(ca,aa)),pl=`${Sa}-${la}`;const gl=ua.get(pl)||new Map;if(ua.set(pl,gl.set(ca,aa)),hl){pl=`${Sa}-${la}-${hl}`;const wc=ua.get(pl)||new Map;ua.set(pl,wc.set(ca,aa))}}function updateConnectionLookup(la,aa,ca){la.clear(),aa.clear();for(const ua of ca){const{source:Sa,target:hl,sourceHandle:pl=null,targetHandle:ml=null}=ua,gl={edgeId:ua.id,source:Sa,target:hl,sourceHandle:pl,targetHandle:ml},wc=`${Sa}-${pl}--${hl}-${ml}`,xu=`${hl}-${ml}--${Sa}-${pl}`;addConnectionToLookup("source",gl,xu,la,Sa,pl),addConnectionToLookup("target",gl,wc,la,hl,ml),aa.set(ua.id,ua)}}function isParentSelected(la,aa){if(!la.parentId)return!1;const ca=aa.get(la.parentId);return ca?ca.selected?!0:isParentSelected(ca,aa):!1}function hasSelector(la,aa,ca){let ua=la;do{if(ua?.matches?.(aa))return!0;if(ua===ca)return!1;ua=ua?.parentElement}while(ua);return!1}function getDragItems(la,aa,ca,ua){const Sa=new Map;for(const[hl,pl]of la)if((pl.selected||pl.id===ua)&&(!pl.parentId||!isParentSelected(pl,la))&&(pl.draggable||aa&&typeof pl.draggable>"u")){const ml=la.get(hl);ml&&Sa.set(hl,{id:hl,position:ml.position||{x:0,y:0},distance:{x:ca.x-ml.internals.positionAbsolute.x,y:ca.y-ml.internals.positionAbsolute.y},extent:ml.extent,parentId:ml.parentId,origin:ml.origin,expandParent:ml.expandParent,internals:{positionAbsolute:ml.internals.positionAbsolute||{x:0,y:0}},measured:{width:ml.measured.width??0,height:ml.measured.height??0}})}return Sa}function getEventHandlerParams({nodeId:la,dragItems:aa,nodeLookup:ca,dragging:ua=!0}){const Sa=[];for(const[pl,ml]of aa){const gl=ca.get(pl)?.internals.userNode;gl&&Sa.push({...gl,position:ml.position,dragging:ua})}if(!la)return[Sa[0],Sa];const hl=ca.get(la)?.internals.userNode;return[hl?{...hl,position:aa.get(la)?.position||hl.position,dragging:ua}:Sa[0],Sa]}function calculateSnapOffset({dragItems:la,snapGrid:aa,x:ca,y:ua}){const Sa=la.values().next().value;if(!Sa)return null;const hl={x:ca-Sa.distance.x,y:ua-Sa.distance.y},pl=snapPosition(hl,aa);return{x:pl.x-hl.x,y:pl.y-hl.y}}function XYDrag({onNodeMouseDown:la,getStoreItems:aa,onDragStart:ca,onDrag:ua,onDragStop:Sa}){let hl={x:null,y:null},pl=0,ml=new Map,gl=!1,wc={x:0,y:0},xu=null,ff=!1,jf=null,Uf=!1,rp=!1,np=null;function qm({noDragClassName:eg,handleSelector:tg,domNode:rg,isSelectable:ig,nodeId:vv,nodeClickDistance:R1=0}){jf=select(rg);function O1({x:qw,y:Y0}){const{nodeLookup:G0,nodeExtent:X0,snapGrid:d_,snapToGrid:f_,nodeOrigin:zN,onNodeDrag:BN,onSelectionDrag:iF,onError:yY,updateNodePositions:vQ}=aa();hl={x:qw,y:Y0};let Ohe=!1;const bY=ml.size>1,Lhe=bY&&X0?rectToBox(getInternalNodesBounds(ml)):null,Dhe=bY&&f_?calculateSnapOffset({dragItems:ml,snapGrid:d_,x:qw,y:Y0}):null;for(const[kdt,eht]of ml){if(!G0.has(kdt))continue;let oht={x:qw-eht.distance.x,y:Y0-eht.distance.y};f_&&(oht=Dhe?{x:Math.round(oht.x+Dhe.x),y:Math.round(oht.y+Dhe.y)}:snapPosition(oht,d_));let iht=null;if(bY&&X0&&!eht.extent&&Lhe){const{positionAbsolute:dht}=eht.internals,Mdt=dht.x-Lhe.x+X0[0][0],opt=dht.x+eht.measured.width-Lhe.x2+X0[1][0],gpt=dht.y-Lhe.y+X0[0][1],Qht=dht.y+eht.measured.height-Lhe.y2+X0[1][1];iht=[[Mdt,gpt],[opt,Qht]]}const{position:Uhe,positionAbsolute:Bhe}=calculateNodePosition({nodeId:kdt,nextPosition:oht,nodeLookup:G0,nodeExtent:iht||X0,nodeOrigin:zN,onError:yY});Ohe=Ohe||eht.position.x!==Uhe.x||eht.position.y!==Uhe.y,eht.position=Uhe,eht.internals.positionAbsolute=Bhe}if(rp=rp||Ohe,!!Ohe&&(vQ(ml,!0),np&&(ua||BN||!vv&&iF))){const[kdt,eht]=getEventHandlerParams({nodeId:vv,dragItems:ml,nodeLookup:G0});ua?.(np,ml,kdt,eht),BN?.(np,kdt,eht),vv||iF?.(np,eht)}}async function K0(){if(!xu)return;const{transform:qw,panBy:Y0,autoPanSpeed:G0,autoPanOnNodeDrag:X0}=aa();if(!X0){gl=!1,cancelAnimationFrame(pl);return}const[d_,f_]=calcAutoPan(wc,xu,G0);(d_!==0||f_!==0)&&(hl.x=(hl.x??0)-d_/qw[2],hl.y=(hl.y??0)-f_/qw[2],await Y0({x:d_,y:f_})&&O1(hl)),pl=requestAnimationFrame(K0)}function J0(qw){const{nodeLookup:Y0,multiSelectionActive:G0,nodesDraggable:X0,transform:d_,snapGrid:f_,snapToGrid:zN,selectNodesOnDrag:BN,onNodeDragStart:iF,onSelectionDragStart:yY,unselectNodesAndEdges:vQ}=aa();ff=!0,(!BN||!ig)&&!G0&&vv&&(Y0.get(vv)?.selected||vQ()),ig&&BN&&vv&&la?.(vv);const Ohe=getPointerPosition(qw.sourceEvent,{transform:d_,snapGrid:f_,snapToGrid:zN,containerBounds:xu});if(hl=Ohe,ml=getDragItems(Y0,X0,Ohe,vv),ml.size>0&&(ca||iF||!vv&&yY)){const[bY,Lhe]=getEventHandlerParams({nodeId:vv,dragItems:ml,nodeLookup:Y0});ca?.(qw.sourceEvent,ml,bY,Lhe),iF?.(qw.sourceEvent,bY,Lhe),vv||yY?.(qw.sourceEvent,Lhe)}}const Hw=drag$1().clickDistance(R1).on("start",qw=>{const{domNode:Y0,nodeDragThreshold:G0,transform:X0,snapGrid:d_,snapToGrid:f_}=aa();xu=Y0?.getBoundingClientRect()||null,Uf=!1,rp=!1,np=qw.sourceEvent,G0===0&&J0(qw),hl=getPointerPosition(qw.sourceEvent,{transform:X0,snapGrid:d_,snapToGrid:f_,containerBounds:xu}),wc=getEventPosition(qw.sourceEvent,xu)}).on("drag",qw=>{const{autoPanOnNodeDrag:Y0,transform:G0,snapGrid:X0,snapToGrid:d_,nodeDragThreshold:f_,nodeLookup:zN}=aa(),BN=getPointerPosition(qw.sourceEvent,{transform:G0,snapGrid:X0,snapToGrid:d_,containerBounds:xu});if(np=qw.sourceEvent,(qw.sourceEvent.type==="touchmove"&&qw.sourceEvent.touches.length>1||vv&&!zN.has(vv))&&(Uf=!0),!Uf){if(!gl&&Y0&&ff&&(gl=!0,K0()),!ff){const iF=getEventPosition(qw.sourceEvent,xu),yY=iF.x-wc.x,vQ=iF.y-wc.y;Math.sqrt(yY*yY+vQ*vQ)>f_&&J0(qw)}(hl.x!==BN.xSnapped||hl.y!==BN.ySnapped)&&ml&&ff&&(wc=getEventPosition(qw.sourceEvent,xu),O1(BN))}}).on("end",qw=>{if(!(!ff||Uf)&&(gl=!1,ff=!1,cancelAnimationFrame(pl),ml.size>0)){const{nodeLookup:Y0,updateNodePositions:G0,onNodeDragStop:X0,onSelectionDragStop:d_}=aa();if(rp&&(G0(ml,!1),rp=!1),Sa||X0||!vv&&d_){const[f_,zN]=getEventHandlerParams({nodeId:vv,dragItems:ml,nodeLookup:Y0,dragging:!1});Sa?.(qw.sourceEvent,ml,f_,zN),X0?.(qw.sourceEvent,f_,zN),vv||d_?.(qw.sourceEvent,zN)}}}).filter(qw=>{const Y0=qw.target;return!qw.button&&(!eg||!hasSelector(Y0,`.${eg}`,rg))&&(!tg||hasSelector(Y0,tg,rg))});jf.call(Hw)}function Vm(){jf?.on(".drag",null)}return{update:qm,destroy:Vm}}function getNodesWithinDistance(la,aa,ca){const ua=[],Sa={x:la.x-ca,y:la.y-ca,width:ca*2,height:ca*2};for(const hl of aa.values())getOverlappingArea(Sa,nodeToRect(hl))>0&&ua.push(hl);return ua}const ADDITIONAL_DISTANCE=250;function getClosestHandle(la,aa,ca,ua){let Sa=[],hl=1/0;const pl=getNodesWithinDistance(la,ca,aa+ADDITIONAL_DISTANCE);for(const ml of pl){const gl=[...ml.internals.handleBounds?.source??[],...ml.internals.handleBounds?.target??[]];for(const wc of gl){if(ua.nodeId===wc.nodeId&&ua.type===wc.type&&ua.id===wc.id)continue;const{x:xu,y:ff}=getHandlePosition(ml,wc,wc.position,!0),jf=Math.sqrt(Math.pow(xu-la.x,2)+Math.pow(ff-la.y,2));jf>aa||(jf<hl?(Sa=[{...wc,x:xu,y:ff}],hl=jf):jf===hl&&Sa.push({...wc,x:xu,y:ff}))}}if(!Sa.length)return null;if(Sa.length>1){const ml=ua.type==="source"?"target":"source";return Sa.find(gl=>gl.type===ml)??Sa[0]}return Sa[0]}function getHandle(la,aa,ca,ua,Sa,hl=!1){const pl=ua.get(la);if(!pl)return null;const ml=Sa==="strict"?pl.internals.handleBounds?.[aa]:[...pl.internals.handleBounds?.source??[],...pl.internals.handleBounds?.target??[]],gl=(ca?ml?.find(wc=>wc.id===ca):ml?.[0])??null;return gl&&hl?{...gl,...getHandlePosition(pl,gl,gl.position,!0)}:gl}function getHandleType(la,aa){return la||(aa?.classList.contains("target")?"target":aa?.classList.contains("source")?"source":null)}function isConnectionValid(la,aa){let ca=null;return aa?ca=!0:la&&!aa&&(ca=!1),ca}const alwaysValid=()=>!0;function onPointerDown(la,{connectionMode:aa,connectionRadius:ca,handleId:ua,nodeId:Sa,edgeUpdaterType:hl,isTarget:pl,domNode:ml,nodeLookup:gl,lib:wc,autoPanOnConnect:xu,flowId:ff,panBy:jf,cancelConnection:Uf,onConnectStart:rp,onConnect:np,onConnectEnd:qm,isValidConnection:Vm=alwaysValid,onReconnectEnd:eg,updateConnection:tg,getTransform:rg,getFromHandle:ig,autoPanSpeed:vv,dragThreshold:R1=1,handleDomNode:O1}){const K0=getHostForElement(la.target);let J0=0,Hw;const{x:qw,y:Y0}=getEventPosition(la),G0=getHandleType(hl,O1),X0=ml?.getBoundingClientRect();let d_=!1;if(!X0||!G0)return;const f_=getHandle(Sa,G0,ua,gl,aa);if(!f_)return;let zN=getEventPosition(la,X0),BN=!1,iF=null,yY=!1,vQ=null;function Ohe(){if(!xu||!X0)return;const[Uhe,Bhe]=calcAutoPan(zN,X0,vv);jf({x:Uhe,y:Bhe}),J0=requestAnimationFrame(Ohe)}const bY={...f_,nodeId:Sa,type:G0,position:f_.position},Lhe=gl.get(Sa);let kdt={inProgress:!0,isValid:null,from:getHandlePosition(Lhe,bY,Position.Left,!0),fromHandle:bY,fromPosition:bY.position,fromNode:Lhe,to:zN,toHandle:null,toPosition:oppositePosition[bY.position],toNode:null,pointer:zN};function eht(){d_=!0,tg(kdt),rp?.(la,{nodeId:Sa,handleId:ua,handleType:G0})}R1===0&&eht();function oht(Uhe){if(!d_){const{x:Qht,y:kpt}=getEventPosition(Uhe),Dpt=Qht-qw,Bpt=kpt-Y0;if(!(Dpt*Dpt+Bpt*Bpt>R1*R1))return;eht()}if(!ig()||!bY){iht(Uhe);return}const Bhe=rg();zN=getEventPosition(Uhe,X0),Hw=getClosestHandle(pointToRendererPoint(zN,Bhe,!1,[1,1]),ca,gl,bY),BN||(Ohe(),BN=!0);const dht=isValidHandle(Uhe,{handle:Hw,connectionMode:aa,fromNodeId:Sa,fromHandleId:ua,fromType:pl?"target":"source",isValidConnection:Vm,doc:K0,lib:wc,flowId:ff,nodeLookup:gl});vQ=dht.handleDomNode,iF=dht.connection,yY=isConnectionValid(!!Hw,dht.isValid);const Mdt=gl.get(Sa),opt=Mdt?getHandlePosition(Mdt,bY,Position.Left,!0):kdt.from,gpt={...kdt,from:opt,isValid:yY,to:dht.toHandle&&yY?rendererPointToPoint({x:dht.toHandle.x,y:dht.toHandle.y},Bhe):zN,toHandle:dht.toHandle,toPosition:yY&&dht.toHandle?dht.toHandle.position:oppositePosition[bY.position],toNode:dht.toHandle?gl.get(dht.toHandle.nodeId):null,pointer:zN};tg(gpt),kdt=gpt}function iht(Uhe){if(!("touches"in Uhe&&Uhe.touches.length>0)){if(d_){(Hw||vQ)&&iF&&yY&&np?.(iF);const{inProgress:Bhe,...dht}=kdt,Mdt={...dht,toPosition:kdt.toHandle?kdt.toPosition:null};qm?.(Uhe,Mdt),hl&&eg?.(Uhe,Mdt)}Uf(),cancelAnimationFrame(J0),BN=!1,yY=!1,iF=null,vQ=null,K0.removeEventListener("mousemove",oht),K0.removeEventListener("mouseup",iht),K0.removeEventListener("touchmove",oht),K0.removeEventListener("touchend",iht)}}K0.addEventListener("mousemove",oht),K0.addEventListener("mouseup",iht),K0.addEventListener("touchmove",oht),K0.addEventListener("touchend",iht)}function isValidHandle(la,{handle:aa,connectionMode:ca,fromNodeId:ua,fromHandleId:Sa,fromType:hl,doc:pl,lib:ml,flowId:gl,isValidConnection:wc=alwaysValid,nodeLookup:xu}){const ff=hl==="target",jf=aa?pl.querySelector(`.${ml}-flow__handle[data-id="${gl}-${aa?.nodeId}-${aa?.id}-${aa?.type}"]`):null,{x:Uf,y:rp}=getEventPosition(la),np=pl.elementFromPoint(Uf,rp),qm=np?.classList.contains(`${ml}-flow__handle`)?np:jf,Vm={handleDomNode:qm,isValid:!1,connection:null,toHandle:null};if(qm){const eg=getHandleType(void 0,qm),tg=qm.getAttribute("data-nodeid"),rg=qm.getAttribute("data-handleid"),ig=qm.classList.contains("connectable"),vv=qm.classList.contains("connectableend");if(!tg||!eg)return Vm;const R1={source:ff?tg:ua,sourceHandle:ff?rg:Sa,target:ff?ua:tg,targetHandle:ff?Sa:rg};Vm.connection=R1;const K0=ig&&vv&&(ca===ConnectionMode.Strict?ff&&eg==="source"||!ff&&eg==="target":tg!==ua||rg!==Sa);Vm.isValid=K0&&wc(R1),Vm.toHandle=getHandle(tg,eg,rg,xu,ca,!0)}return Vm}const XYHandle={onPointerDown,isValid:isValidHandle};function XYMinimap({domNode:la,panZoom:aa,getTransform:ca,getViewScale:ua}){const Sa=select(la);function hl({translateExtent:ml,width:gl,height:wc,zoomStep:xu=1,pannable:ff=!0,zoomable:jf=!0,inversePan:Uf=!1}){const rp=tg=>{if(tg.sourceEvent.type!=="wheel"||!aa)return;const rg=ca(),ig=tg.sourceEvent.ctrlKey&&isMacOs()?10:1,vv=-tg.sourceEvent.deltaY*(tg.sourceEvent.deltaMode===1?.05:tg.sourceEvent.deltaMode?1:.002)*xu,R1=rg[2]*Math.pow(2,vv*ig);aa.scaleTo(R1)};let np=[0,0];const qm=tg=>{(tg.sourceEvent.type==="mousedown"||tg.sourceEvent.type==="touchstart")&&(np=[tg.sourceEvent.clientX??tg.sourceEvent.touches[0].clientX,tg.sourceEvent.clientY??tg.sourceEvent.touches[0].clientY])},Vm=tg=>{const rg=ca();if(tg.sourceEvent.type!=="mousemove"&&tg.sourceEvent.type!=="touchmove"||!aa)return;const ig=[tg.sourceEvent.clientX??tg.sourceEvent.touches[0].clientX,tg.sourceEvent.clientY??tg.sourceEvent.touches[0].clientY],vv=[ig[0]-np[0],ig[1]-np[1]];np=ig;const R1=ua()*Math.max(rg[2],Math.log(rg[2]))*(Uf?-1:1),O1={x:rg[0]-vv[0]*R1,y:rg[1]-vv[1]*R1},K0=[[0,0],[gl,wc]];aa.setViewportConstrained({x:O1.x,y:O1.y,zoom:rg[2]},K0,ml)},eg=zoom().on("start",qm).on("zoom",ff?Vm:null).on("zoom.wheel",jf?rp:null);Sa.call(eg,{})}function pl(){Sa.on("zoom",null)}return{update:hl,destroy:pl,pointer}}const transformToViewport=la=>({x:la.x,y:la.y,zoom:la.k}),viewportToTransform=({x:la,y:aa,zoom:ca})=>identity$2.translate(la,aa).scale(ca),isWrappedWithClass=(la,aa)=>la.target.closest(`.${aa}`),isRightClickPan=(la,aa)=>aa===2&&Array.isArray(la)&&la.includes(2),defaultEase=la=>((la*=2)<=1?la*la*la:(la-=2)*la*la+2)/2,getD3Transition=(la,aa=0,ca=defaultEase,ua=()=>{})=>{const Sa=typeof aa=="number"&&aa>0;return Sa||ua(),Sa?la.transition().duration(aa).ease(ca).on("end",ua):la},wheelDelta=la=>{const aa=la.ctrlKey&&isMacOs()?10:1;return-la.deltaY*(la.deltaMode===1?.05:la.deltaMode?1:.002)*aa};function createPanOnScrollHandler({zoomPanValues:la,noWheelClassName:aa,d3Selection:ca,d3Zoom:ua,panOnScrollMode:Sa,panOnScrollSpeed:hl,zoomOnPinch:pl,onPanZoomStart:ml,onPanZoom:gl,onPanZoomEnd:wc}){return xu=>{if(isWrappedWithClass(xu,aa))return xu.ctrlKey&&xu.preventDefault(),!1;xu.preventDefault(),xu.stopImmediatePropagation();const ff=ca.property("__zoom").k||1;if(xu.ctrlKey&&pl){const qm=pointer(xu),Vm=wheelDelta(xu),eg=ff*Math.pow(2,Vm);ua.scaleTo(ca,eg,qm,xu);return}const jf=xu.deltaMode===1?20:1;let Uf=Sa===PanOnScrollMode.Vertical?0:xu.deltaX*jf,rp=Sa===PanOnScrollMode.Horizontal?0:xu.deltaY*jf;!isMacOs()&&xu.shiftKey&&Sa!==PanOnScrollMode.Vertical&&(Uf=xu.deltaY*jf,rp=0),ua.translateBy(ca,-(Uf/ff)*hl,-(rp/ff)*hl,{internal:!0});const np=transformToViewport(ca.property("__zoom"));clearTimeout(la.panScrollTimeout),la.isPanScrolling?(gl?.(xu,np),la.panScrollTimeout=setTimeout(()=>{wc?.(xu,np),la.isPanScrolling=!1},150)):(la.isPanScrolling=!0,ml?.(xu,np))}}function createZoomOnScrollHandler({noWheelClassName:la,preventScrolling:aa,d3ZoomHandler:ca}){return function(ua,Sa){const hl=ua.type==="wheel",pl=!aa&&hl&&!ua.ctrlKey,ml=isWrappedWithClass(ua,la);if(ua.ctrlKey&&hl&&ml&&ua.preventDefault(),pl||ml)return null;ua.preventDefault(),ca.call(this,ua,Sa)}}function createPanZoomStartHandler({zoomPanValues:la,onDraggingChange:aa,onPanZoomStart:ca}){return ua=>{if(ua.sourceEvent?.internal)return;const Sa=transformToViewport(ua.transform);la.mouseButton=ua.sourceEvent?.button||0,la.isZoomingOrPanning=!0,la.prevViewport=Sa,ua.sourceEvent?.type==="mousedown"&&aa(!0),ca&&ca?.(ua.sourceEvent,Sa)}}function createPanZoomHandler({zoomPanValues:la,panOnDrag:aa,onPaneContextMenu:ca,onTransformChange:ua,onPanZoom:Sa}){return hl=>{la.usedRightMouseButton=!!(ca&&isRightClickPan(aa,la.mouseButton??0)),hl.sourceEvent?.sync||ua([hl.transform.x,hl.transform.y,hl.transform.k]),Sa&&!hl.sourceEvent?.internal&&Sa?.(hl.sourceEvent,transformToViewport(hl.transform))}}function createPanZoomEndHandler({zoomPanValues:la,panOnDrag:aa,panOnScroll:ca,onDraggingChange:ua,onPanZoomEnd:Sa,onPaneContextMenu:hl}){return pl=>{if(!pl.sourceEvent?.internal&&(la.isZoomingOrPanning=!1,hl&&isRightClickPan(aa,la.mouseButton??0)&&!la.usedRightMouseButton&&pl.sourceEvent&&hl(pl.sourceEvent),la.usedRightMouseButton=!1,ua(!1),Sa)){const ml=transformToViewport(pl.transform);la.prevViewport=ml,clearTimeout(la.timerId),la.timerId=setTimeout(()=>{Sa?.(pl.sourceEvent,ml)},ca?150:0)}}}function createFilter({zoomActivationKeyPressed:la,zoomOnScroll:aa,zoomOnPinch:ca,panOnDrag:ua,panOnScroll:Sa,zoomOnDoubleClick:hl,userSelectionActive:pl,noWheelClassName:ml,noPanClassName:gl,lib:wc,connectionInProgress:xu}){return ff=>{const jf=la||aa,Uf=ca&&ff.ctrlKey,rp=ff.type==="wheel";if(ff.button===1&&ff.type==="mousedown"&&(isWrappedWithClass(ff,`${wc}-flow__node`)||isWrappedWithClass(ff,`${wc}-flow__edge`)))return!0;if(!ua&&!jf&&!Sa&&!hl&&!ca||pl||xu&&!rp||isWrappedWithClass(ff,ml)&&rp||isWrappedWithClass(ff,gl)&&(!rp||Sa&&rp&&!la)||!ca&&ff.ctrlKey&&rp)return!1;if(!ca&&ff.type==="touchstart"&&ff.touches?.length>1)return ff.preventDefault(),!1;if(!jf&&!Sa&&!Uf&&rp||!ua&&(ff.type==="mousedown"||ff.type==="touchstart")||Array.isArray(ua)&&!ua.includes(ff.button)&&ff.type==="mousedown")return!1;const np=Array.isArray(ua)&&ua.includes(ff.button)||!ff.button||ff.button<=1;return(!ff.ctrlKey||rp)&&np}}function XYPanZoom({domNode:la,minZoom:aa,maxZoom:ca,translateExtent:ua,viewport:Sa,onPanZoom:hl,onPanZoomStart:pl,onPanZoomEnd:ml,onDraggingChange:gl}){const wc={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},xu=la.getBoundingClientRect(),ff=zoom().scaleExtent([aa,ca]).translateExtent(ua),jf=select(la).call(ff);eg({x:Sa.x,y:Sa.y,zoom:clamp$3(Sa.zoom,aa,ca)},[[0,0],[xu.width,xu.height]],ua);const Uf=jf.on("wheel.zoom"),rp=jf.on("dblclick.zoom");ff.wheelDelta(wheelDelta);function np(Hw,qw){return jf?new Promise(Y0=>{ff?.interpolate(qw?.interpolate==="linear"?interpolate$3:interpolateZoom).transform(getD3Transition(jf,qw?.duration,qw?.ease,()=>Y0(!0)),Hw)}):Promise.resolve(!1)}function qm({noWheelClassName:Hw,noPanClassName:qw,onPaneContextMenu:Y0,userSelectionActive:G0,panOnScroll:X0,panOnDrag:d_,panOnScrollMode:f_,panOnScrollSpeed:zN,preventScrolling:BN,zoomOnPinch:iF,zoomOnScroll:yY,zoomOnDoubleClick:vQ,zoomActivationKeyPressed:Ohe,lib:bY,onTransformChange:Lhe,connectionInProgress:Dhe,paneClickDistance:kdt,selectionOnDrag:eht}){G0&&!wc.isZoomingOrPanning&&Vm();const oht=X0&&!Ohe&&!G0;ff.clickDistance(eht?1/0:!isNumeric(kdt)||kdt<0?0:kdt);const iht=oht?createPanOnScrollHandler({zoomPanValues:wc,noWheelClassName:Hw,d3Selection:jf,d3Zoom:ff,panOnScrollMode:f_,panOnScrollSpeed:zN,zoomOnPinch:iF,onPanZoomStart:pl,onPanZoom:hl,onPanZoomEnd:ml}):createZoomOnScrollHandler({noWheelClassName:Hw,preventScrolling:BN,d3ZoomHandler:Uf});if(jf.on("wheel.zoom",iht,{passive:!1}),!G0){const Bhe=createPanZoomStartHandler({zoomPanValues:wc,onDraggingChange:gl,onPanZoomStart:pl});ff.on("start",Bhe);const dht=createPanZoomHandler({zoomPanValues:wc,panOnDrag:d_,onPaneContextMenu:!!Y0,onPanZoom:hl,onTransformChange:Lhe});ff.on("zoom",dht);const Mdt=createPanZoomEndHandler({zoomPanValues:wc,panOnDrag:d_,panOnScroll:X0,onPaneContextMenu:Y0,onPanZoomEnd:ml,onDraggingChange:gl});ff.on("end",Mdt)}const Uhe=createFilter({zoomActivationKeyPressed:Ohe,panOnDrag:d_,zoomOnScroll:yY,panOnScroll:X0,zoomOnDoubleClick:vQ,zoomOnPinch:iF,userSelectionActive:G0,noPanClassName:qw,noWheelClassName:Hw,lib:bY,connectionInProgress:Dhe});ff.filter(Uhe),vQ?jf.on("dblclick.zoom",rp):jf.on("dblclick.zoom",null)}function Vm(){ff.on("zoom",null)}async function eg(Hw,qw,Y0){const G0=viewportToTransform(Hw),X0=ff?.constrain()(G0,qw,Y0);return X0&&await np(X0),new Promise(d_=>d_(X0))}async function tg(Hw,qw){const Y0=viewportToTransform(Hw);return await np(Y0,qw),new Promise(G0=>G0(Y0))}function rg(Hw){if(jf){const qw=viewportToTransform(Hw),Y0=jf.property("__zoom");(Y0.k!==Hw.zoom||Y0.x!==Hw.x||Y0.y!==Hw.y)&&ff?.transform(jf,qw,null,{sync:!0})}}function ig(){const Hw=jf?transform(jf.node()):{x:0,y:0,k:1};return{x:Hw.x,y:Hw.y,zoom:Hw.k}}function vv(Hw,qw){return jf?new Promise(Y0=>{ff?.interpolate(qw?.interpolate==="linear"?interpolate$3:interpolateZoom).scaleTo(getD3Transition(jf,qw?.duration,qw?.ease,()=>Y0(!0)),Hw)}):Promise.resolve(!1)}function R1(Hw,qw){return jf?new Promise(Y0=>{ff?.interpolate(qw?.interpolate==="linear"?interpolate$3:interpolateZoom).scaleBy(getD3Transition(jf,qw?.duration,qw?.ease,()=>Y0(!0)),Hw)}):Promise.resolve(!1)}function O1(Hw){ff?.scaleExtent(Hw)}function K0(Hw){ff?.translateExtent(Hw)}function J0(Hw){const qw=!isNumeric(Hw)||Hw<0?0:Hw;ff?.clickDistance(qw)}return{update:qm,destroy:Vm,setViewport:tg,setViewportConstrained:eg,getViewport:ig,scaleTo:vv,scaleBy:R1,setScaleExtent:O1,setTranslateExtent:K0,syncViewport:rg,setClickDistance:J0}}var ResizeControlVariant;(function(la){la.Line="line",la.Handle="handle"})(ResizeControlVariant||(ResizeControlVariant={}));function getResizeDirection({width:la,prevWidth:aa,height:ca,prevHeight:ua,affectsX:Sa,affectsY:hl}){const pl=la-aa,ml=ca-ua,gl=[pl>0?1:pl<0?-1:0,ml>0?1:ml<0?-1:0];return pl&&Sa&&(gl[0]=gl[0]*-1),ml&&hl&&(gl[1]=gl[1]*-1),gl}function getControlDirection(la){const aa=la.includes("right")||la.includes("left"),ca=la.includes("bottom")||la.includes("top"),ua=la.includes("left"),Sa=la.includes("top");return{isHorizontal:aa,isVertical:ca,affectsX:ua,affectsY:Sa}}function getLowerExtentClamp(la,aa){return Math.max(0,aa-la)}function getUpperExtentClamp(la,aa){return Math.max(0,la-aa)}function getSizeClamp(la,aa,ca){return Math.max(0,aa-la,la-ca)}function xor(la,aa){return la?!aa:aa}function getDimensionsAfterResize(la,aa,ca,ua,Sa,hl,pl,ml){let{affectsX:gl,affectsY:wc}=aa;const{isHorizontal:xu,isVertical:ff}=aa,jf=xu&&ff,{xSnapped:Uf,ySnapped:rp}=ca,{minWidth:np,maxWidth:qm,minHeight:Vm,maxHeight:eg}=ua,{x:tg,y:rg,width:ig,height:vv,aspectRatio:R1}=la;let O1=Math.floor(xu?Uf-la.pointerX:0),K0=Math.floor(ff?rp-la.pointerY:0);const J0=ig+(gl?-O1:O1),Hw=vv+(wc?-K0:K0),qw=-hl[0]*ig,Y0=-hl[1]*vv;let G0=getSizeClamp(J0,np,qm),X0=getSizeClamp(Hw,Vm,eg);if(pl){let zN=0,BN=0;gl&&O1<0?zN=getLowerExtentClamp(tg+O1+qw,pl[0][0]):!gl&&O1>0&&(zN=getUpperExtentClamp(tg+J0+qw,pl[1][0])),wc&&K0<0?BN=getLowerExtentClamp(rg+K0+Y0,pl[0][1]):!wc&&K0>0&&(BN=getUpperExtentClamp(rg+Hw+Y0,pl[1][1])),G0=Math.max(G0,zN),X0=Math.max(X0,BN)}if(ml){let zN=0,BN=0;gl&&O1>0?zN=getUpperExtentClamp(tg+O1,ml[0][0]):!gl&&O1<0&&(zN=getLowerExtentClamp(tg+J0,ml[1][0])),wc&&K0>0?BN=getUpperExtentClamp(rg+K0,ml[0][1]):!wc&&K0<0&&(BN=getLowerExtentClamp(rg+Hw,ml[1][1])),G0=Math.max(G0,zN),X0=Math.max(X0,BN)}if(Sa){if(xu){const zN=getSizeClamp(J0/R1,Vm,eg)*R1;if(G0=Math.max(G0,zN),pl){let BN=0;!gl&&!wc||gl&&!wc&&jf?BN=getUpperExtentClamp(rg+Y0+J0/R1,pl[1][1])*R1:BN=getLowerExtentClamp(rg+Y0+(gl?O1:-O1)/R1,pl[0][1])*R1,G0=Math.max(G0,BN)}if(ml){let BN=0;!gl&&!wc||gl&&!wc&&jf?BN=getLowerExtentClamp(rg+J0/R1,ml[1][1])*R1:BN=getUpperExtentClamp(rg+(gl?O1:-O1)/R1,ml[0][1])*R1,G0=Math.max(G0,BN)}}if(ff){const zN=getSizeClamp(Hw*R1,np,qm)/R1;if(X0=Math.max(X0,zN),pl){let BN=0;!gl&&!wc||wc&&!gl&&jf?BN=getUpperExtentClamp(tg+Hw*R1+qw,pl[1][0])/R1:BN=getLowerExtentClamp(tg+(wc?K0:-K0)*R1+qw,pl[0][0])/R1,X0=Math.max(X0,BN)}if(ml){let BN=0;!gl&&!wc||wc&&!gl&&jf?BN=getLowerExtentClamp(tg+Hw*R1,ml[1][0])/R1:BN=getUpperExtentClamp(tg+(wc?K0:-K0)*R1,ml[0][0])/R1,X0=Math.max(X0,BN)}}}K0=K0+(K0<0?X0:-X0),O1=O1+(O1<0?G0:-G0),Sa&&(jf?J0>Hw*R1?K0=(xor(gl,wc)?-O1:O1)/R1:O1=(xor(gl,wc)?-K0:K0)*R1:xu?(K0=O1/R1,wc=gl):(O1=K0*R1,gl=wc));const d_=gl?tg+O1:tg,f_=wc?rg+K0:rg;return{width:ig+(gl?-O1:O1),height:vv+(wc?-K0:K0),x:hl[0]*O1*(gl?-1:1)+d_,y:hl[1]*K0*(wc?-1:1)+f_}}const initPrevValues$1={width:0,height:0,x:0,y:0},initStartValues={...initPrevValues$1,pointerX:0,pointerY:0,aspectRatio:1};function nodeToParentExtent(la){return[[0,0],[la.measured.width,la.measured.height]]}function nodeToChildExtent(la,aa,ca){const ua=aa.position.x+la.position.x,Sa=aa.position.y+la.position.y,hl=la.measured.width??0,pl=la.measured.height??0,ml=ca[0]*hl,gl=ca[1]*pl;return[[ua-ml,Sa-gl],[ua+hl-ml,Sa+pl-gl]]}function XYResizer({domNode:la,nodeId:aa,getStoreItems:ca,onChange:ua,onEnd:Sa}){const hl=select(la);let pl={controlDirection:getControlDirection("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function ml({controlPosition:wc,boundaries:xu,keepAspectRatio:ff,resizeDirection:jf,onResizeStart:Uf,onResize:rp,onResizeEnd:np,shouldResize:qm}){let Vm={...initPrevValues$1},eg={...initStartValues};pl={boundaries:xu,resizeDirection:jf,keepAspectRatio:ff,controlDirection:getControlDirection(wc)};let tg,rg=null,ig=[],vv,R1,O1,K0=!1;const J0=drag$1().on("start",Hw=>{const{nodeLookup:qw,transform:Y0,snapGrid:G0,snapToGrid:X0,nodeOrigin:d_,paneDomNode:f_}=ca();if(tg=qw.get(aa),!tg)return;rg=f_?.getBoundingClientRect()??null;const{xSnapped:zN,ySnapped:BN}=getPointerPosition(Hw.sourceEvent,{transform:Y0,snapGrid:G0,snapToGrid:X0,containerBounds:rg});Vm={width:tg.measured.width??0,height:tg.measured.height??0,x:tg.position.x??0,y:tg.position.y??0},eg={...Vm,pointerX:zN,pointerY:BN,aspectRatio:Vm.width/Vm.height},vv=void 0,tg.parentId&&(tg.extent==="parent"||tg.expandParent)&&(vv=qw.get(tg.parentId),R1=vv&&tg.extent==="parent"?nodeToParentExtent(vv):void 0),ig=[],O1=void 0;for(const[iF,yY]of qw)if(yY.parentId===aa&&(ig.push({id:iF,position:{...yY.position},extent:yY.extent}),yY.extent==="parent"||yY.expandParent)){const vQ=nodeToChildExtent(yY,tg,yY.origin??d_);O1?O1=[[Math.min(vQ[0][0],O1[0][0]),Math.min(vQ[0][1],O1[0][1])],[Math.max(vQ[1][0],O1[1][0]),Math.max(vQ[1][1],O1[1][1])]]:O1=vQ}Uf?.(Hw,{...Vm})}).on("drag",Hw=>{const{transform:qw,snapGrid:Y0,snapToGrid:G0,nodeOrigin:X0}=ca(),d_=getPointerPosition(Hw.sourceEvent,{transform:qw,snapGrid:Y0,snapToGrid:G0,containerBounds:rg}),f_=[];if(!tg)return;const{x:zN,y:BN,width:iF,height:yY}=Vm,vQ={},Ohe=tg.origin??X0,{width:bY,height:Lhe,x:Dhe,y:kdt}=getDimensionsAfterResize(eg,pl.controlDirection,d_,pl.boundaries,pl.keepAspectRatio,Ohe,R1,O1),eht=bY!==iF,oht=Lhe!==yY,iht=Dhe!==zN&&eht,Uhe=kdt!==BN&&oht;if(!iht&&!Uhe&&!eht&&!oht)return;if((iht||Uhe||Ohe[0]===1||Ohe[1]===1)&&(vQ.x=iht?Dhe:Vm.x,vQ.y=Uhe?kdt:Vm.y,Vm.x=vQ.x,Vm.y=vQ.y,ig.length>0)){const opt=Dhe-zN,gpt=kdt-BN;for(const Qht of ig)Qht.position={x:Qht.position.x-opt+Ohe[0]*(bY-iF),y:Qht.position.y-gpt+Ohe[1]*(Lhe-yY)},f_.push(Qht)}if((eht||oht)&&(vQ.width=eht&&(!pl.resizeDirection||pl.resizeDirection==="horizontal")?bY:Vm.width,vQ.height=oht&&(!pl.resizeDirection||pl.resizeDirection==="vertical")?Lhe:Vm.height,Vm.width=vQ.width,Vm.height=vQ.height),vv&&tg.expandParent){const opt=Ohe[0]*(vQ.width??0);vQ.x&&vQ.x<opt&&(Vm.x=opt,eg.x=eg.x-(vQ.x-opt));const gpt=Ohe[1]*(vQ.height??0);vQ.y&&vQ.y<gpt&&(Vm.y=gpt,eg.y=eg.y-(vQ.y-gpt))}const Bhe=getResizeDirection({width:Vm.width,prevWidth:iF,height:Vm.height,prevHeight:yY,affectsX:pl.controlDirection.affectsX,affectsY:pl.controlDirection.affectsY}),dht={...Vm,direction:Bhe};qm?.(Hw,dht)!==!1&&(K0=!0,rp?.(Hw,dht),ua(vQ,f_))}).on("end",Hw=>{K0&&(np?.(Hw,{...Vm}),Sa?.({...Vm}),K0=!1)});hl.call(J0)}function gl(){hl.on(".drag",null)}return{update:ml,destroy:gl}}var withSelector$1={exports:{}},withSelector_production={},shim={exports:{}},useSyncExternalStoreShim_production={};/**
|
|
19391
19391
|
* @license React
|
|
19392
19392
|
* use-sync-external-store-shim.production.js
|
|
19393
19393
|
*
|
|
@@ -19410,10 +19410,10 @@ workflow generateAgentlangResolver {
|
|
|
19410
19410
|
+`).split(`
|
|
19411
19411
|
`)),xu=wc.reduce((ff,jf)=>ff.concat(...jf),[]);return[wc,xu]}return[[],[]]},[la]);return reactExports.useEffect(()=>{const gl=aa?.target??defaultDoc,wc=aa?.actInsideInputWithModifier??!0;if(la!==null){const xu=Uf=>{if(Sa.current=Uf.ctrlKey||Uf.metaKey||Uf.shiftKey||Uf.altKey,(!Sa.current||Sa.current&&!wc)&&isInputDOMNode(Uf))return!1;const np=useKeyOrCode(Uf.code,ml);if(hl.current.add(Uf[np]),isMatchingKey(pl,hl.current,!1)){const qm=Uf.composedPath?.()?.[0]||Uf.target,Vm=qm?.nodeName==="BUTTON"||qm?.nodeName==="A";aa.preventDefault!==!1&&(Sa.current||!Vm)&&Uf.preventDefault(),ua(!0)}},ff=Uf=>{const rp=useKeyOrCode(Uf.code,ml);isMatchingKey(pl,hl.current,!0)?(ua(!1),hl.current.clear()):hl.current.delete(Uf[rp]),Uf.key==="Meta"&&hl.current.clear(),Sa.current=!1},jf=()=>{hl.current.clear(),ua(!1)};return gl?.addEventListener("keydown",xu),gl?.addEventListener("keyup",ff),window.addEventListener("blur",jf),window.addEventListener("contextmenu",jf),()=>{gl?.removeEventListener("keydown",xu),gl?.removeEventListener("keyup",ff),window.removeEventListener("blur",jf),window.removeEventListener("contextmenu",jf)}}},[la,ua]),ca}function isMatchingKey(la,aa,ca){return la.filter(ua=>ca||ua.length===aa.size).some(ua=>ua.every(Sa=>aa.has(Sa)))}function useKeyOrCode(la,aa){return aa.includes(la)?"code":"key"}const useViewportHelper=()=>{const la=useStoreApi();return reactExports.useMemo(()=>({zoomIn:aa=>{const{panZoom:ca}=la.getState();return ca?ca.scaleBy(1.2,{duration:aa?.duration}):Promise.resolve(!1)},zoomOut:aa=>{const{panZoom:ca}=la.getState();return ca?ca.scaleBy(1/1.2,{duration:aa?.duration}):Promise.resolve(!1)},zoomTo:(aa,ca)=>{const{panZoom:ua}=la.getState();return ua?ua.scaleTo(aa,{duration:ca?.duration}):Promise.resolve(!1)},getZoom:()=>la.getState().transform[2],setViewport:async(aa,ca)=>{const{transform:[ua,Sa,hl],panZoom:pl}=la.getState();return pl?(await pl.setViewport({x:aa.x??ua,y:aa.y??Sa,zoom:aa.zoom??hl},ca),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[aa,ca,ua]=la.getState().transform;return{x:aa,y:ca,zoom:ua}},setCenter:async(aa,ca,ua)=>la.getState().setCenter(aa,ca,ua),fitBounds:async(aa,ca)=>{const{width:ua,height:Sa,minZoom:hl,maxZoom:pl,panZoom:ml}=la.getState(),gl=getViewportForBounds(aa,ua,Sa,hl,pl,ca?.padding??.1);return ml?(await ml.setViewport(gl,{duration:ca?.duration,ease:ca?.ease,interpolate:ca?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(aa,ca={})=>{const{transform:ua,snapGrid:Sa,snapToGrid:hl,domNode:pl}=la.getState();if(!pl)return aa;const{x:ml,y:gl}=pl.getBoundingClientRect(),wc={x:aa.x-ml,y:aa.y-gl},xu=ca.snapGrid??Sa,ff=ca.snapToGrid??hl;return pointToRendererPoint(wc,ua,ff,xu)},flowToScreenPosition:aa=>{const{transform:ca,domNode:ua}=la.getState();if(!ua)return aa;const{x:Sa,y:hl}=ua.getBoundingClientRect(),pl=rendererPointToPoint(aa,ca);return{x:pl.x+Sa,y:pl.y+hl}}}),[])};function applyChanges(la,aa){const ca=[],ua=new Map,Sa=[];for(const hl of la)if(hl.type==="add"){Sa.push(hl);continue}else if(hl.type==="remove"||hl.type==="replace")ua.set(hl.id,[hl]);else{const pl=ua.get(hl.id);pl?pl.push(hl):ua.set(hl.id,[hl])}for(const hl of aa){const pl=ua.get(hl.id);if(!pl){ca.push(hl);continue}if(pl[0].type==="remove")continue;if(pl[0].type==="replace"){ca.push({...pl[0].item});continue}const ml={...hl};for(const gl of pl)applyChange(gl,ml);ca.push(ml)}return Sa.length&&Sa.forEach(hl=>{hl.index!==void 0?ca.splice(hl.index,0,{...hl.item}):ca.push({...hl.item})}),ca}function applyChange(la,aa){switch(la.type){case"select":{aa.selected=la.selected;break}case"position":{typeof la.position<"u"&&(aa.position=la.position),typeof la.dragging<"u"&&(aa.dragging=la.dragging);break}case"dimensions":{typeof la.dimensions<"u"&&(aa.measured={...la.dimensions},la.setAttributes&&((la.setAttributes===!0||la.setAttributes==="width")&&(aa.width=la.dimensions.width),(la.setAttributes===!0||la.setAttributes==="height")&&(aa.height=la.dimensions.height))),typeof la.resizing=="boolean"&&(aa.resizing=la.resizing);break}}}function applyNodeChanges(la,aa){return applyChanges(la,aa)}function applyEdgeChanges(la,aa){return applyChanges(la,aa)}function createSelectionChange(la,aa){return{id:la,type:"select",selected:aa}}function getSelectionChanges(la,aa=new Set,ca=!1){const ua=[];for(const[Sa,hl]of la){const pl=aa.has(Sa);!(hl.selected===void 0&&!pl)&&hl.selected!==pl&&(ca&&(hl.selected=pl),ua.push(createSelectionChange(hl.id,pl)))}return ua}function getElementsDiffChanges({items:la=[],lookup:aa}){const ca=[],ua=new Map(la.map(Sa=>[Sa.id,Sa]));for(const[Sa,hl]of la.entries()){const pl=aa.get(hl.id),ml=pl?.internals?.userNode??pl;ml!==void 0&&ml!==hl&&ca.push({id:hl.id,item:hl,type:"replace"}),ml===void 0&&ca.push({item:hl,type:"add",index:Sa})}for(const[Sa]of aa)ua.get(Sa)===void 0&&ca.push({id:Sa,type:"remove"});return ca}function elementToRemoveChange(la){return{id:la.id,type:"remove"}}const isNode$2=la=>isNodeBase(la),isEdge=la=>isEdgeBase(la);function fixedForwardRef(la){return reactExports.forwardRef(la)}const useIsomorphicLayoutEffect$3=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect;function useQueue(la){const[aa,ca]=reactExports.useState(BigInt(0)),[ua]=reactExports.useState(()=>createQueue(()=>ca(Sa=>Sa+BigInt(1))));return useIsomorphicLayoutEffect$3(()=>{const Sa=ua.get();Sa.length&&(la(Sa),ua.reset())},[aa]),ua}function createQueue(la){let aa=[];return{get:()=>aa,reset:()=>{aa=[]},push:ca=>{aa.push(ca),la()}}}const BatchContext=reactExports.createContext(null);function BatchProvider({children:la}){const aa=useStoreApi(),ca=reactExports.useCallback(ml=>{const{nodes:gl=[],setNodes:wc,hasDefaultNodes:xu,onNodesChange:ff,nodeLookup:jf,fitViewQueued:Uf,onNodesChangeMiddlewareMap:rp}=aa.getState();let np=gl;for(const Vm of ml)np=typeof Vm=="function"?Vm(np):Vm;let qm=getElementsDiffChanges({items:np,lookup:jf});for(const Vm of rp.values())qm=Vm(qm);xu&&wc(np),qm.length>0?ff?.(qm):Uf&&window.requestAnimationFrame(()=>{const{fitViewQueued:Vm,nodes:eg,setNodes:tg}=aa.getState();Vm&&tg(eg)})},[]),ua=useQueue(ca),Sa=reactExports.useCallback(ml=>{const{edges:gl=[],setEdges:wc,hasDefaultEdges:xu,onEdgesChange:ff,edgeLookup:jf}=aa.getState();let Uf=gl;for(const rp of ml)Uf=typeof rp=="function"?rp(Uf):rp;xu?wc(Uf):ff&&ff(getElementsDiffChanges({items:Uf,lookup:jf}))},[]),hl=useQueue(Sa),pl=reactExports.useMemo(()=>({nodeQueue:ua,edgeQueue:hl}),[]);return jsxRuntimeExports.jsx(BatchContext.Provider,{value:pl,children:la})}function useBatchContext(){const la=reactExports.useContext(BatchContext);if(!la)throw new Error("useBatchContext must be used within a BatchProvider");return la}const selector$k=la=>!!la.panZoom;function useReactFlow(){const la=useViewportHelper(),aa=useStoreApi(),ca=useBatchContext(),ua=useStore$1(selector$k),Sa=reactExports.useMemo(()=>{const hl=ff=>aa.getState().nodeLookup.get(ff),pl=ff=>{ca.nodeQueue.push(ff)},ml=ff=>{ca.edgeQueue.push(ff)},gl=ff=>{const{nodeLookup:jf,nodeOrigin:Uf}=aa.getState(),rp=isNode$2(ff)?ff:jf.get(ff.id),np=rp.parentId?evaluateAbsolutePosition(rp.position,rp.measured,rp.parentId,jf,Uf):rp.position,qm={...rp,position:np,width:rp.measured?.width??rp.width,height:rp.measured?.height??rp.height};return nodeToRect(qm)},wc=(ff,jf,Uf={replace:!1})=>{pl(rp=>rp.map(np=>{if(np.id===ff){const qm=typeof jf=="function"?jf(np):jf;return Uf.replace&&isNode$2(qm)?qm:{...np,...qm}}return np}))},xu=(ff,jf,Uf={replace:!1})=>{ml(rp=>rp.map(np=>{if(np.id===ff){const qm=typeof jf=="function"?jf(np):jf;return Uf.replace&&isEdge(qm)?qm:{...np,...qm}}return np}))};return{getNodes:()=>aa.getState().nodes.map(ff=>({...ff})),getNode:ff=>hl(ff)?.internals.userNode,getInternalNode:hl,getEdges:()=>{const{edges:ff=[]}=aa.getState();return ff.map(jf=>({...jf}))},getEdge:ff=>aa.getState().edgeLookup.get(ff),setNodes:pl,setEdges:ml,addNodes:ff=>{const jf=Array.isArray(ff)?ff:[ff];ca.nodeQueue.push(Uf=>[...Uf,...jf])},addEdges:ff=>{const jf=Array.isArray(ff)?ff:[ff];ca.edgeQueue.push(Uf=>[...Uf,...jf])},toObject:()=>{const{nodes:ff=[],edges:jf=[],transform:Uf}=aa.getState(),[rp,np,qm]=Uf;return{nodes:ff.map(Vm=>({...Vm})),edges:jf.map(Vm=>({...Vm})),viewport:{x:rp,y:np,zoom:qm}}},deleteElements:async({nodes:ff=[],edges:jf=[]})=>{const{nodes:Uf,edges:rp,onNodesDelete:np,onEdgesDelete:qm,triggerNodeChanges:Vm,triggerEdgeChanges:eg,onDelete:tg,onBeforeDelete:rg}=aa.getState(),{nodes:ig,edges:vv}=await getElementsToRemove({nodesToRemove:ff,edgesToRemove:jf,nodes:Uf,edges:rp,onBeforeDelete:rg}),R1=vv.length>0,O1=ig.length>0;if(R1){const K0=vv.map(elementToRemoveChange);qm?.(vv),eg(K0)}if(O1){const K0=ig.map(elementToRemoveChange);np?.(ig),Vm(K0)}return(O1||R1)&&tg?.({nodes:ig,edges:vv}),{deletedNodes:ig,deletedEdges:vv}},getIntersectingNodes:(ff,jf=!0,Uf)=>{const rp=isRectObject(ff),np=rp?ff:gl(ff),qm=Uf!==void 0;return np?(Uf||aa.getState().nodes).filter(Vm=>{const eg=aa.getState().nodeLookup.get(Vm.id);if(eg&&!rp&&(Vm.id===ff.id||!eg.internals.positionAbsolute))return!1;const tg=nodeToRect(qm?Vm:eg),rg=getOverlappingArea(tg,np);return jf&&rg>0||rg>=tg.width*tg.height||rg>=np.width*np.height}):[]},isNodeIntersecting:(ff,jf,Uf=!0)=>{const np=isRectObject(ff)?ff:gl(ff);if(!np)return!1;const qm=getOverlappingArea(np,jf);return Uf&&qm>0||qm>=jf.width*jf.height||qm>=np.width*np.height},updateNode:wc,updateNodeData:(ff,jf,Uf={replace:!1})=>{wc(ff,rp=>{const np=typeof jf=="function"?jf(rp):jf;return Uf.replace?{...rp,data:np}:{...rp,data:{...rp.data,...np}}},Uf)},updateEdge:xu,updateEdgeData:(ff,jf,Uf={replace:!1})=>{xu(ff,rp=>{const np=typeof jf=="function"?jf(rp):jf;return Uf.replace?{...rp,data:np}:{...rp,data:{...rp.data,...np}}},Uf)},getNodesBounds:ff=>{const{nodeLookup:jf,nodeOrigin:Uf}=aa.getState();return getNodesBounds(ff,{nodeLookup:jf,nodeOrigin:Uf})},getHandleConnections:({type:ff,id:jf,nodeId:Uf})=>Array.from(aa.getState().connectionLookup.get(`${Uf}-${ff}${jf?`-${jf}`:""}`)?.values()??[]),getNodeConnections:({type:ff,handleId:jf,nodeId:Uf})=>Array.from(aa.getState().connectionLookup.get(`${Uf}${ff?jf?`-${ff}-${jf}`:`-${ff}`:""}`)?.values()??[]),fitView:async ff=>{const jf=aa.getState().fitViewResolver??withResolvers();return aa.setState({fitViewQueued:!0,fitViewOptions:ff,fitViewResolver:jf}),ca.nodeQueue.push(Uf=>[...Uf]),jf.promise}}},[]);return reactExports.useMemo(()=>({...Sa,...la,viewportInitialized:ua}),[ua])}const selected=la=>la.selected,win$1=typeof window<"u"?window:void 0;function useGlobalKeyHandler({deleteKeyCode:la,multiSelectionKeyCode:aa}){const ca=useStoreApi(),{deleteElements:ua}=useReactFlow(),Sa=useKeyPress(la,{actInsideInputWithModifier:!1}),hl=useKeyPress(aa,{target:win$1});reactExports.useEffect(()=>{if(Sa){const{edges:pl,nodes:ml}=ca.getState();ua({nodes:ml.filter(selected),edges:pl.filter(selected)}),ca.setState({nodesSelectionActive:!1})}},[Sa]),reactExports.useEffect(()=>{ca.setState({multiSelectionActive:hl})},[hl])}function useResizeHandler(la){const aa=useStoreApi();reactExports.useEffect(()=>{const ca=()=>{if(!la.current||!(la.current.checkVisibility?.()??!0))return!1;const ua=getDimensions$1(la.current);(ua.height===0||ua.width===0)&&aa.getState().onError?.("004",errorMessages$3.error004()),aa.setState({width:ua.width||500,height:ua.height||500})};if(la.current){ca(),window.addEventListener("resize",ca);const ua=new ResizeObserver(()=>ca());return ua.observe(la.current),()=>{window.removeEventListener("resize",ca),ua&&la.current&&ua.unobserve(la.current)}}},[])}const containerStyle={position:"absolute",width:"100%",height:"100%",top:0,left:0},selector$j=la=>({userSelectionActive:la.userSelectionActive,lib:la.lib,connectionInProgress:la.connection.inProgress});function ZoomPane({onPaneContextMenu:la,zoomOnScroll:aa=!0,zoomOnPinch:ca=!0,panOnScroll:ua=!1,panOnScrollSpeed:Sa=.5,panOnScrollMode:hl=PanOnScrollMode.Free,zoomOnDoubleClick:pl=!0,panOnDrag:ml=!0,defaultViewport:gl,translateExtent:wc,minZoom:xu,maxZoom:ff,zoomActivationKeyCode:jf,preventScrolling:Uf=!0,children:rp,noWheelClassName:np,noPanClassName:qm,onViewportChange:Vm,isControlledViewport:eg,paneClickDistance:tg,selectionOnDrag:rg}){const ig=useStoreApi(),vv=reactExports.useRef(null),{userSelectionActive:R1,lib:O1,connectionInProgress:K0}=useStore$1(selector$j,shallow$1),J0=useKeyPress(jf),Hw=reactExports.useRef();useResizeHandler(vv);const qw=reactExports.useCallback(Y0=>{Vm?.({x:Y0[0],y:Y0[1],zoom:Y0[2]}),eg||ig.setState({transform:Y0})},[Vm,eg]);return reactExports.useEffect(()=>{if(vv.current){Hw.current=XYPanZoom({domNode:vv.current,minZoom:xu,maxZoom:ff,translateExtent:wc,viewport:gl,onDraggingChange:d_=>ig.setState({paneDragging:d_}),onPanZoomStart:(d_,f_)=>{const{onViewportChangeStart:zN,onMoveStart:BN}=ig.getState();BN?.(d_,f_),zN?.(f_)},onPanZoom:(d_,f_)=>{const{onViewportChange:zN,onMove:BN}=ig.getState();BN?.(d_,f_),zN?.(f_)},onPanZoomEnd:(d_,f_)=>{const{onViewportChangeEnd:zN,onMoveEnd:BN}=ig.getState();BN?.(d_,f_),zN?.(f_)}});const{x:Y0,y:G0,zoom:X0}=Hw.current.getViewport();return ig.setState({panZoom:Hw.current,transform:[Y0,G0,X0],domNode:vv.current.closest(".react-flow")}),()=>{Hw.current?.destroy()}}},[]),reactExports.useEffect(()=>{Hw.current?.update({onPaneContextMenu:la,zoomOnScroll:aa,zoomOnPinch:ca,panOnScroll:ua,panOnScrollSpeed:Sa,panOnScrollMode:hl,zoomOnDoubleClick:pl,panOnDrag:ml,zoomActivationKeyPressed:J0,preventScrolling:Uf,noPanClassName:qm,userSelectionActive:R1,noWheelClassName:np,lib:O1,onTransformChange:qw,connectionInProgress:K0,selectionOnDrag:rg,paneClickDistance:tg})},[la,aa,ca,ua,Sa,hl,pl,ml,J0,Uf,qm,R1,np,O1,qw,K0,rg,tg]),jsxRuntimeExports.jsx("div",{className:"react-flow__renderer",ref:vv,style:containerStyle,children:rp})}const selector$i=la=>({userSelectionActive:la.userSelectionActive,userSelectionRect:la.userSelectionRect});function UserSelection(){const{userSelectionActive:la,userSelectionRect:aa}=useStore$1(selector$i,shallow$1);return la&&aa?jsxRuntimeExports.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:aa.width,height:aa.height,transform:`translate(${aa.x}px, ${aa.y}px)`}}):null}const wrapHandler=(la,aa)=>ca=>{ca.target===aa.current&&la?.(ca)},selector$h=la=>({userSelectionActive:la.userSelectionActive,elementsSelectable:la.elementsSelectable,connectionInProgress:la.connection.inProgress,dragging:la.paneDragging});function Pane({isSelecting:la,selectionKeyPressed:aa,selectionMode:ca=SelectionMode.Full,panOnDrag:ua,paneClickDistance:Sa,selectionOnDrag:hl,onSelectionStart:pl,onSelectionEnd:ml,onPaneClick:gl,onPaneContextMenu:wc,onPaneScroll:xu,onPaneMouseEnter:ff,onPaneMouseMove:jf,onPaneMouseLeave:Uf,children:rp}){const np=useStoreApi(),{userSelectionActive:qm,elementsSelectable:Vm,dragging:eg,connectionInProgress:tg}=useStore$1(selector$h,shallow$1),rg=Vm&&(la||qm),ig=reactExports.useRef(null),vv=reactExports.useRef(),R1=reactExports.useRef(new Set),O1=reactExports.useRef(new Set),K0=reactExports.useRef(!1),J0=zN=>{if(K0.current||tg){K0.current=!1;return}gl?.(zN),np.getState().resetSelectedElements(),np.setState({nodesSelectionActive:!1})},Hw=zN=>{if(Array.isArray(ua)&&ua?.includes(2)){zN.preventDefault();return}wc?.(zN)},qw=xu?zN=>xu(zN):void 0,Y0=zN=>{K0.current&&(zN.stopPropagation(),K0.current=!1)},G0=zN=>{const{domNode:BN}=np.getState();if(vv.current=BN?.getBoundingClientRect(),!vv.current)return;const iF=zN.target===ig.current;if(!iF&&!!zN.target.closest(".nokey")||!la||!(hl&&iF||aa)||zN.button!==0||!zN.isPrimary)return;zN.target?.setPointerCapture?.(zN.pointerId),K0.current=!1;const{x:Ohe,y:bY}=getEventPosition(zN.nativeEvent,vv.current);np.setState({userSelectionRect:{width:0,height:0,startX:Ohe,startY:bY,x:Ohe,y:bY}}),iF||(zN.stopPropagation(),zN.preventDefault())},X0=zN=>{const{userSelectionRect:BN,transform:iF,nodeLookup:yY,edgeLookup:vQ,connectionLookup:Ohe,triggerNodeChanges:bY,triggerEdgeChanges:Lhe,defaultEdgeOptions:Dhe,resetSelectedElements:kdt}=np.getState();if(!vv.current||!BN)return;const{x:eht,y:oht}=getEventPosition(zN.nativeEvent,vv.current),{startX:iht,startY:Uhe}=BN;if(!K0.current){const gpt=aa?0:Sa;if(Math.hypot(eht-iht,oht-Uhe)<=gpt)return;kdt(),pl?.(zN)}K0.current=!0;const Bhe={startX:iht,startY:Uhe,x:eht<iht?eht:iht,y:oht<Uhe?oht:Uhe,width:Math.abs(eht-iht),height:Math.abs(oht-Uhe)},dht=R1.current,Mdt=O1.current;R1.current=new Set(getNodesInside(yY,Bhe,iF,ca===SelectionMode.Partial,!0).map(gpt=>gpt.id)),O1.current=new Set;const opt=Dhe?.selectable??!0;for(const gpt of R1.current){const Qht=Ohe.get(gpt);if(Qht)for(const{edgeId:kpt}of Qht.values()){const Dpt=vQ.get(kpt);Dpt&&(Dpt.selectable??opt)&&O1.current.add(kpt)}}if(!areSetsEqual(dht,R1.current)){const gpt=getSelectionChanges(yY,R1.current,!0);bY(gpt)}if(!areSetsEqual(Mdt,O1.current)){const gpt=getSelectionChanges(vQ,O1.current);Lhe(gpt)}np.setState({userSelectionRect:Bhe,userSelectionActive:!0,nodesSelectionActive:!1})},d_=zN=>{zN.button===0&&(zN.target?.releasePointerCapture?.(zN.pointerId),!qm&&zN.target===ig.current&&np.getState().userSelectionRect&&J0?.(zN),np.setState({userSelectionActive:!1,userSelectionRect:null}),K0.current&&(ml?.(zN),np.setState({nodesSelectionActive:R1.current.size>0})))},f_=ua===!0||Array.isArray(ua)&&ua.includes(0);return jsxRuntimeExports.jsxs("div",{className:cc(["react-flow__pane",{draggable:f_,dragging:eg,selection:la}]),onClick:rg?void 0:wrapHandler(J0,ig),onContextMenu:wrapHandler(Hw,ig),onWheel:wrapHandler(qw,ig),onPointerEnter:rg?void 0:ff,onPointerMove:rg?X0:jf,onPointerUp:rg?d_:void 0,onPointerDownCapture:rg?G0:void 0,onClickCapture:rg?Y0:void 0,onPointerLeave:Uf,ref:ig,style:containerStyle,children:[rp,jsxRuntimeExports.jsx(UserSelection,{})]})}function handleNodeClick({id:la,store:aa,unselect:ca=!1,nodeRef:ua}){const{addSelectedNodes:Sa,unselectNodesAndEdges:hl,multiSelectionActive:pl,nodeLookup:ml,onError:gl}=aa.getState(),wc=ml.get(la);if(!wc){gl?.("012",errorMessages$3.error012(la));return}aa.setState({nodesSelectionActive:!1}),wc.selected?(ca||wc.selected&&pl)&&(hl({nodes:[wc],edges:[]}),requestAnimationFrame(()=>ua?.current?.blur())):Sa([la])}function useDrag({nodeRef:la,disabled:aa=!1,noDragClassName:ca,handleSelector:ua,nodeId:Sa,isSelectable:hl,nodeClickDistance:pl}){const ml=useStoreApi(),[gl,wc]=reactExports.useState(!1),xu=reactExports.useRef();return reactExports.useEffect(()=>{xu.current=XYDrag({getStoreItems:()=>ml.getState(),onNodeMouseDown:ff=>{handleNodeClick({id:ff,store:ml,nodeRef:la})},onDragStart:()=>{wc(!0)},onDragStop:()=>{wc(!1)}})},[]),reactExports.useEffect(()=>{if(aa)xu.current?.destroy();else if(la.current)return xu.current?.update({noDragClassName:ca,handleSelector:ua,domNode:la.current,isSelectable:hl,nodeId:Sa,nodeClickDistance:pl}),()=>{xu.current?.destroy()}},[ca,ua,aa,hl,la,Sa]),gl}const selectedAndDraggable=la=>aa=>aa.selected&&(aa.draggable||la&&typeof aa.draggable>"u");function useMoveSelectedNodes(){const la=useStoreApi();return reactExports.useCallback(ca=>{const{nodeExtent:ua,snapToGrid:Sa,snapGrid:hl,nodesDraggable:pl,onError:ml,updateNodePositions:gl,nodeLookup:wc,nodeOrigin:xu}=la.getState(),ff=new Map,jf=selectedAndDraggable(pl),Uf=Sa?hl[0]:5,rp=Sa?hl[1]:5,np=ca.direction.x*Uf*ca.factor,qm=ca.direction.y*rp*ca.factor;for(const[,Vm]of wc){if(!jf(Vm))continue;let eg={x:Vm.internals.positionAbsolute.x+np,y:Vm.internals.positionAbsolute.y+qm};Sa&&(eg=snapPosition(eg,hl));const{position:tg,positionAbsolute:rg}=calculateNodePosition({nodeId:Vm.id,nextPosition:eg,nodeLookup:wc,nodeExtent:ua,nodeOrigin:xu,onError:ml});Vm.position=tg,Vm.internals.positionAbsolute=rg,ff.set(Vm.id,Vm)}gl(ff)},[])}const NodeIdContext=reactExports.createContext(null),Provider$2=NodeIdContext.Provider;NodeIdContext.Consumer;const useNodeId=()=>reactExports.useContext(NodeIdContext),selector$g=la=>({connectOnClick:la.connectOnClick,noPanClassName:la.noPanClassName,rfId:la.rfId}),connectingSelector=(la,aa,ca)=>ua=>{const{connectionClickStartHandle:Sa,connectionMode:hl,connection:pl}=ua,{fromHandle:ml,toHandle:gl,isValid:wc}=pl,xu=gl?.nodeId===la&&gl?.id===aa&&gl?.type===ca;return{connectingFrom:ml?.nodeId===la&&ml?.id===aa&&ml?.type===ca,connectingTo:xu,clickConnecting:Sa?.nodeId===la&&Sa?.id===aa&&Sa?.type===ca,isPossibleEndHandle:hl===ConnectionMode.Strict?ml?.type!==ca:la!==ml?.nodeId||aa!==ml?.id,connectionInProcess:!!ml,clickConnectionInProcess:!!Sa,valid:xu&&wc}};function HandleComponent({type:la="source",position:aa=Position.Top,isValidConnection:ca,isConnectable:ua=!0,isConnectableStart:Sa=!0,isConnectableEnd:hl=!0,id:pl,onConnect:ml,children:gl,className:wc,onMouseDown:xu,onTouchStart:ff,...jf},Uf){const rp=pl||null,np=la==="target",qm=useStoreApi(),Vm=useNodeId(),{connectOnClick:eg,noPanClassName:tg,rfId:rg}=useStore$1(selector$g,shallow$1),{connectingFrom:ig,connectingTo:vv,clickConnecting:R1,isPossibleEndHandle:O1,connectionInProcess:K0,clickConnectionInProcess:J0,valid:Hw}=useStore$1(connectingSelector(Vm,rp,la),shallow$1);Vm||qm.getState().onError?.("010",errorMessages$3.error010());const qw=X0=>{const{defaultEdgeOptions:d_,onConnect:f_,hasDefaultEdges:zN}=qm.getState(),BN={...d_,...X0};if(zN){const{edges:iF,setEdges:yY}=qm.getState();yY(addEdge(BN,iF))}f_?.(BN),ml?.(BN)},Y0=X0=>{if(!Vm)return;const d_=isMouseEvent(X0.nativeEvent);if(Sa&&(d_&&X0.button===0||!d_)){const f_=qm.getState();XYHandle.onPointerDown(X0.nativeEvent,{handleDomNode:X0.currentTarget,autoPanOnConnect:f_.autoPanOnConnect,connectionMode:f_.connectionMode,connectionRadius:f_.connectionRadius,domNode:f_.domNode,nodeLookup:f_.nodeLookup,lib:f_.lib,isTarget:np,handleId:rp,nodeId:Vm,flowId:f_.rfId,panBy:f_.panBy,cancelConnection:f_.cancelConnection,onConnectStart:f_.onConnectStart,onConnectEnd:f_.onConnectEnd,updateConnection:f_.updateConnection,onConnect:qw,isValidConnection:ca||f_.isValidConnection,getTransform:()=>qm.getState().transform,getFromHandle:()=>qm.getState().connection.fromHandle,autoPanSpeed:f_.autoPanSpeed,dragThreshold:f_.connectionDragThreshold})}d_?xu?.(X0):ff?.(X0)},G0=X0=>{const{onClickConnectStart:d_,onClickConnectEnd:f_,connectionClickStartHandle:zN,connectionMode:BN,isValidConnection:iF,lib:yY,rfId:vQ,nodeLookup:Ohe,connection:bY}=qm.getState();if(!Vm||!zN&&!Sa)return;if(!zN){d_?.(X0.nativeEvent,{nodeId:Vm,handleId:rp,handleType:la}),qm.setState({connectionClickStartHandle:{nodeId:Vm,type:la,id:rp}});return}const Lhe=getHostForElement(X0.target),Dhe=ca||iF,{connection:kdt,isValid:eht}=XYHandle.isValid(X0.nativeEvent,{handle:{nodeId:Vm,id:rp,type:la},connectionMode:BN,fromNodeId:zN.nodeId,fromHandleId:zN.id||null,fromType:zN.type,isValidConnection:Dhe,flowId:vQ,doc:Lhe,lib:yY,nodeLookup:Ohe});eht&&kdt&&qw(kdt);const oht=structuredClone(bY);delete oht.inProgress,oht.toPosition=oht.toHandle?oht.toHandle.position:null,f_?.(X0,oht),qm.setState({connectionClickStartHandle:null})};return jsxRuntimeExports.jsx("div",{"data-handleid":rp,"data-nodeid":Vm,"data-handlepos":aa,"data-id":`${rg}-${Vm}-${rp}-${la}`,className:cc(["react-flow__handle",`react-flow__handle-${aa}`,"nodrag",tg,wc,{source:!np,target:np,connectable:ua,connectablestart:Sa,connectableend:hl,clickconnecting:R1,connectingfrom:ig,connectingto:vv,valid:Hw,connectionindicator:ua&&(!K0||O1)&&(K0||J0?hl:Sa)}]),onMouseDown:Y0,onTouchStart:Y0,onClick:eg?G0:void 0,ref:Uf,...jf,children:gl})}const Handle=reactExports.memo(fixedForwardRef(HandleComponent));function InputNode({data:la,isConnectable:aa,sourcePosition:ca=Position.Bottom}){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[la?.label,jsxRuntimeExports.jsx(Handle,{type:"source",position:ca,isConnectable:aa})]})}function DefaultNode({data:la,isConnectable:aa,targetPosition:ca=Position.Top,sourcePosition:ua=Position.Bottom}){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Handle,{type:"target",position:ca,isConnectable:aa}),la?.label,jsxRuntimeExports.jsx(Handle,{type:"source",position:ua,isConnectable:aa})]})}function GroupNode(){return null}function OutputNode({data:la,isConnectable:aa,targetPosition:ca=Position.Top}){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Handle,{type:"target",position:ca,isConnectable:aa}),la?.label]})}const arrowKeyDiffs={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},builtinNodeTypes={input:InputNode,default:DefaultNode,output:OutputNode,group:GroupNode};function getNodeInlineStyleDimensions(la){return la.internals.handleBounds===void 0?{width:la.width??la.initialWidth??la.style?.width,height:la.height??la.initialHeight??la.style?.height}:{width:la.width??la.style?.width,height:la.height??la.style?.height}}const selector$f=la=>{const{width:aa,height:ca,x:ua,y:Sa}=getInternalNodesBounds(la.nodeLookup,{filter:hl=>!!hl.selected});return{width:isNumeric(aa)?aa:null,height:isNumeric(ca)?ca:null,userSelectionActive:la.userSelectionActive,transformString:`translate(${la.transform[0]}px,${la.transform[1]}px) scale(${la.transform[2]}) translate(${ua}px,${Sa}px)`}};function NodesSelection({onSelectionContextMenu:la,noPanClassName:aa,disableKeyboardA11y:ca}){const ua=useStoreApi(),{width:Sa,height:hl,transformString:pl,userSelectionActive:ml}=useStore$1(selector$f,shallow$1),gl=useMoveSelectedNodes(),wc=reactExports.useRef(null);if(reactExports.useEffect(()=>{ca||wc.current?.focus({preventScroll:!0})},[ca]),useDrag({nodeRef:wc}),ml||!Sa||!hl)return null;const xu=la?jf=>{const Uf=ua.getState().nodes.filter(rp=>rp.selected);la(jf,Uf)}:void 0,ff=jf=>{Object.prototype.hasOwnProperty.call(arrowKeyDiffs,jf.key)&&(jf.preventDefault(),gl({direction:arrowKeyDiffs[jf.key],factor:jf.shiftKey?4:1}))};return jsxRuntimeExports.jsx("div",{className:cc(["react-flow__nodesselection","react-flow__container",aa]),style:{transform:pl},children:jsxRuntimeExports.jsx("div",{ref:wc,className:"react-flow__nodesselection-rect",onContextMenu:xu,tabIndex:ca?void 0:-1,onKeyDown:ca?void 0:ff,style:{width:Sa,height:hl}})})}const win=typeof window<"u"?window:void 0,selector$e=la=>({nodesSelectionActive:la.nodesSelectionActive,userSelectionActive:la.userSelectionActive});function FlowRendererComponent({children:la,onPaneClick:aa,onPaneMouseEnter:ca,onPaneMouseMove:ua,onPaneMouseLeave:Sa,onPaneContextMenu:hl,onPaneScroll:pl,paneClickDistance:ml,deleteKeyCode:gl,selectionKeyCode:wc,selectionOnDrag:xu,selectionMode:ff,onSelectionStart:jf,onSelectionEnd:Uf,multiSelectionKeyCode:rp,panActivationKeyCode:np,zoomActivationKeyCode:qm,elementsSelectable:Vm,zoomOnScroll:eg,zoomOnPinch:tg,panOnScroll:rg,panOnScrollSpeed:ig,panOnScrollMode:vv,zoomOnDoubleClick:R1,panOnDrag:O1,defaultViewport:K0,translateExtent:J0,minZoom:Hw,maxZoom:qw,preventScrolling:Y0,onSelectionContextMenu:G0,noWheelClassName:X0,noPanClassName:d_,disableKeyboardA11y:f_,onViewportChange:zN,isControlledViewport:BN}){const{nodesSelectionActive:iF,userSelectionActive:yY}=useStore$1(selector$e,shallow$1),vQ=useKeyPress(wc,{target:win}),Ohe=useKeyPress(np,{target:win}),bY=Ohe||O1,Lhe=Ohe||rg,Dhe=xu&&bY!==!0,kdt=vQ||yY||Dhe;return useGlobalKeyHandler({deleteKeyCode:gl,multiSelectionKeyCode:rp}),jsxRuntimeExports.jsx(ZoomPane,{onPaneContextMenu:hl,elementsSelectable:Vm,zoomOnScroll:eg,zoomOnPinch:tg,panOnScroll:Lhe,panOnScrollSpeed:ig,panOnScrollMode:vv,zoomOnDoubleClick:R1,panOnDrag:!vQ&&bY,defaultViewport:K0,translateExtent:J0,minZoom:Hw,maxZoom:qw,zoomActivationKeyCode:qm,preventScrolling:Y0,noWheelClassName:X0,noPanClassName:d_,onViewportChange:zN,isControlledViewport:BN,paneClickDistance:ml,selectionOnDrag:Dhe,children:jsxRuntimeExports.jsxs(Pane,{onSelectionStart:jf,onSelectionEnd:Uf,onPaneClick:aa,onPaneMouseEnter:ca,onPaneMouseMove:ua,onPaneMouseLeave:Sa,onPaneContextMenu:hl,onPaneScroll:pl,panOnDrag:bY,isSelecting:!!kdt,selectionMode:ff,selectionKeyPressed:vQ,paneClickDistance:ml,selectionOnDrag:Dhe,children:[la,iF&&jsxRuntimeExports.jsx(NodesSelection,{onSelectionContextMenu:G0,noPanClassName:d_,disableKeyboardA11y:f_})]})})}FlowRendererComponent.displayName="FlowRenderer";const FlowRenderer=reactExports.memo(FlowRendererComponent),selector$d=la=>aa=>la?getNodesInside(aa.nodeLookup,{x:0,y:0,width:aa.width,height:aa.height},aa.transform,!0).map(ca=>ca.id):Array.from(aa.nodeLookup.keys());function useVisibleNodeIds(la){return useStore$1(reactExports.useCallback(selector$d(la),[la]),shallow$1)}const selector$c=la=>la.updateNodeInternals;function useResizeObserver$1(){const la=useStore$1(selector$c),[aa]=reactExports.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(ca=>{const ua=new Map;ca.forEach(Sa=>{const hl=Sa.target.getAttribute("data-id");ua.set(hl,{id:hl,nodeElement:Sa.target,force:!0})}),la(ua)}));return reactExports.useEffect(()=>()=>{aa?.disconnect()},[aa]),aa}function useNodeObserver({node:la,nodeType:aa,hasDimensions:ca,resizeObserver:ua}){const Sa=useStoreApi(),hl=reactExports.useRef(null),pl=reactExports.useRef(null),ml=reactExports.useRef(la.sourcePosition),gl=reactExports.useRef(la.targetPosition),wc=reactExports.useRef(aa),xu=ca&&!!la.internals.handleBounds;return reactExports.useEffect(()=>{hl.current&&!la.hidden&&(!xu||pl.current!==hl.current)&&(pl.current&&ua?.unobserve(pl.current),ua?.observe(hl.current),pl.current=hl.current)},[xu,la.hidden]),reactExports.useEffect(()=>()=>{pl.current&&(ua?.unobserve(pl.current),pl.current=null)},[]),reactExports.useEffect(()=>{if(hl.current){const ff=wc.current!==aa,jf=ml.current!==la.sourcePosition,Uf=gl.current!==la.targetPosition;(ff||jf||Uf)&&(wc.current=aa,ml.current=la.sourcePosition,gl.current=la.targetPosition,Sa.getState().updateNodeInternals(new Map([[la.id,{id:la.id,nodeElement:hl.current,force:!0}]])))}},[la.id,aa,la.sourcePosition,la.targetPosition]),hl}function NodeWrapper({id:la,onClick:aa,onMouseEnter:ca,onMouseMove:ua,onMouseLeave:Sa,onContextMenu:hl,onDoubleClick:pl,nodesDraggable:ml,elementsSelectable:gl,nodesConnectable:wc,nodesFocusable:xu,resizeObserver:ff,noDragClassName:jf,noPanClassName:Uf,disableKeyboardA11y:rp,rfId:np,nodeTypes:qm,nodeClickDistance:Vm,onError:eg}){const{node:tg,internals:rg,isParent:ig}=useStore$1(eht=>{const oht=eht.nodeLookup.get(la),iht=eht.parentLookup.has(la);return{node:oht,internals:oht.internals,isParent:iht}},shallow$1);let vv=tg.type||"default",R1=qm?.[vv]||builtinNodeTypes[vv];R1===void 0&&(eg?.("003",errorMessages$3.error003(vv)),vv="default",R1=qm?.default||builtinNodeTypes.default);const O1=!!(tg.draggable||ml&&typeof tg.draggable>"u"),K0=!!(tg.selectable||gl&&typeof tg.selectable>"u"),J0=!!(tg.connectable||wc&&typeof tg.connectable>"u"),Hw=!!(tg.focusable||xu&&typeof tg.focusable>"u"),qw=useStoreApi(),Y0=nodeHasDimensions(tg),G0=useNodeObserver({node:tg,nodeType:vv,hasDimensions:Y0,resizeObserver:ff}),X0=useDrag({nodeRef:G0,disabled:tg.hidden||!O1,noDragClassName:jf,handleSelector:tg.dragHandle,nodeId:la,isSelectable:K0,nodeClickDistance:Vm}),d_=useMoveSelectedNodes();if(tg.hidden)return null;const f_=getNodeDimensions(tg),zN=getNodeInlineStyleDimensions(tg),BN=K0||O1||aa||ca||ua||Sa,iF=ca?eht=>ca(eht,{...rg.userNode}):void 0,yY=ua?eht=>ua(eht,{...rg.userNode}):void 0,vQ=Sa?eht=>Sa(eht,{...rg.userNode}):void 0,Ohe=hl?eht=>hl(eht,{...rg.userNode}):void 0,bY=pl?eht=>pl(eht,{...rg.userNode}):void 0,Lhe=eht=>{const{selectNodesOnDrag:oht,nodeDragThreshold:iht}=qw.getState();K0&&(!oht||!O1||iht>0)&&handleNodeClick({id:la,store:qw,nodeRef:G0}),aa&&aa(eht,{...rg.userNode})},Dhe=eht=>{if(!(isInputDOMNode(eht.nativeEvent)||rp)){if(elementSelectionKeys.includes(eht.key)&&K0){const oht=eht.key==="Escape";handleNodeClick({id:la,store:qw,unselect:oht,nodeRef:G0})}else if(O1&&tg.selected&&Object.prototype.hasOwnProperty.call(arrowKeyDiffs,eht.key)){eht.preventDefault();const{ariaLabelConfig:oht}=qw.getState();qw.setState({ariaLiveMessage:oht["node.a11yDescription.ariaLiveMessage"]({direction:eht.key.replace("Arrow","").toLowerCase(),x:~~rg.positionAbsolute.x,y:~~rg.positionAbsolute.y})}),d_({direction:arrowKeyDiffs[eht.key],factor:eht.shiftKey?4:1})}}},kdt=()=>{if(rp||!G0.current?.matches(":focus-visible"))return;const{transform:eht,width:oht,height:iht,autoPanOnNodeFocus:Uhe,setCenter:Bhe}=qw.getState();if(!Uhe)return;getNodesInside(new Map([[la,tg]]),{x:0,y:0,width:oht,height:iht},eht,!0).length>0||Bhe(tg.position.x+f_.width/2,tg.position.y+f_.height/2,{zoom:eht[2]})};return jsxRuntimeExports.jsx("div",{className:cc(["react-flow__node",`react-flow__node-${vv}`,{[Uf]:O1},tg.className,{selected:tg.selected,selectable:K0,parent:ig,draggable:O1,dragging:X0}]),ref:G0,style:{zIndex:rg.z,transform:`translate(${rg.positionAbsolute.x}px,${rg.positionAbsolute.y}px)`,pointerEvents:BN?"all":"none",visibility:Y0?"visible":"hidden",...tg.style,...zN},"data-id":la,"data-testid":`rf__node-${la}`,onMouseEnter:iF,onMouseMove:yY,onMouseLeave:vQ,onContextMenu:Ohe,onClick:Lhe,onDoubleClick:bY,onKeyDown:Hw?Dhe:void 0,tabIndex:Hw?0:void 0,onFocus:Hw?kdt:void 0,role:tg.ariaRole??(Hw?"group":void 0),"aria-roledescription":"node","aria-describedby":rp?void 0:`${ARIA_NODE_DESC_KEY}-${np}`,"aria-label":tg.ariaLabel,...tg.domAttributes,children:jsxRuntimeExports.jsx(Provider$2,{value:la,children:jsxRuntimeExports.jsx(R1,{id:la,data:tg.data,type:vv,positionAbsoluteX:rg.positionAbsolute.x,positionAbsoluteY:rg.positionAbsolute.y,selected:tg.selected??!1,selectable:K0,draggable:O1,deletable:tg.deletable??!0,isConnectable:J0,sourcePosition:tg.sourcePosition,targetPosition:tg.targetPosition,dragging:X0,dragHandle:tg.dragHandle,zIndex:rg.z,parentId:tg.parentId,...f_})})})}var NodeWrapper$1=reactExports.memo(NodeWrapper);const selector$b=la=>({nodesDraggable:la.nodesDraggable,nodesConnectable:la.nodesConnectable,nodesFocusable:la.nodesFocusable,elementsSelectable:la.elementsSelectable,onError:la.onError});function NodeRendererComponent(la){const{nodesDraggable:aa,nodesConnectable:ca,nodesFocusable:ua,elementsSelectable:Sa,onError:hl}=useStore$1(selector$b,shallow$1),pl=useVisibleNodeIds(la.onlyRenderVisibleElements),ml=useResizeObserver$1();return jsxRuntimeExports.jsx("div",{className:"react-flow__nodes",style:containerStyle,children:pl.map(gl=>jsxRuntimeExports.jsx(NodeWrapper$1,{id:gl,nodeTypes:la.nodeTypes,nodeExtent:la.nodeExtent,onClick:la.onNodeClick,onMouseEnter:la.onNodeMouseEnter,onMouseMove:la.onNodeMouseMove,onMouseLeave:la.onNodeMouseLeave,onContextMenu:la.onNodeContextMenu,onDoubleClick:la.onNodeDoubleClick,noDragClassName:la.noDragClassName,noPanClassName:la.noPanClassName,rfId:la.rfId,disableKeyboardA11y:la.disableKeyboardA11y,resizeObserver:ml,nodesDraggable:aa,nodesConnectable:ca,nodesFocusable:ua,elementsSelectable:Sa,nodeClickDistance:la.nodeClickDistance,onError:hl},gl))})}NodeRendererComponent.displayName="NodeRenderer";const NodeRenderer=reactExports.memo(NodeRendererComponent);function useVisibleEdgeIds(la){return useStore$1(reactExports.useCallback(ca=>{if(!la)return ca.edges.map(Sa=>Sa.id);const ua=[];if(ca.width&&ca.height)for(const Sa of ca.edges){const hl=ca.nodeLookup.get(Sa.source),pl=ca.nodeLookup.get(Sa.target);hl&&pl&&isEdgeVisible({sourceNode:hl,targetNode:pl,width:ca.width,height:ca.height,transform:ca.transform})&&ua.push(Sa.id)}return ua},[la]),shallow$1)}const ArrowSymbol=({color:la="none",strokeWidth:aa=1})=>{const ca={strokeWidth:aa,...la&&{stroke:la}};return jsxRuntimeExports.jsx("polyline",{className:"arrow",style:ca,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},ArrowClosedSymbol=({color:la="none",strokeWidth:aa=1})=>{const ca={strokeWidth:aa,...la&&{stroke:la,fill:la}};return jsxRuntimeExports.jsx("polyline",{className:"arrowclosed",style:ca,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},MarkerSymbols={[MarkerType.Arrow]:ArrowSymbol,[MarkerType.ArrowClosed]:ArrowClosedSymbol};function useMarkerSymbol(la){const aa=useStoreApi();return reactExports.useMemo(()=>Object.prototype.hasOwnProperty.call(MarkerSymbols,la)?MarkerSymbols[la]:(aa.getState().onError?.("009",errorMessages$3.error009(la)),null),[la])}const Marker=({id:la,type:aa,color:ca,width:ua=12.5,height:Sa=12.5,markerUnits:hl="strokeWidth",strokeWidth:pl,orient:ml="auto-start-reverse"})=>{const gl=useMarkerSymbol(aa);return gl?jsxRuntimeExports.jsx("marker",{className:"react-flow__arrowhead",id:la,markerWidth:`${ua}`,markerHeight:`${Sa}`,viewBox:"-10 -10 20 20",markerUnits:hl,orient:ml,refX:"0",refY:"0",children:jsxRuntimeExports.jsx(gl,{color:ca,strokeWidth:pl})}):null},MarkerDefinitions=({defaultColor:la,rfId:aa})=>{const ca=useStore$1(hl=>hl.edges),ua=useStore$1(hl=>hl.defaultEdgeOptions),Sa=reactExports.useMemo(()=>createMarkerIds(ca,{id:aa,defaultColor:la,defaultMarkerStart:ua?.markerStart,defaultMarkerEnd:ua?.markerEnd}),[ca,ua,aa,la]);return Sa.length?jsxRuntimeExports.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:jsxRuntimeExports.jsx("defs",{children:Sa.map(hl=>jsxRuntimeExports.jsx(Marker,{id:hl.id,type:hl.type,color:hl.color,width:hl.width,height:hl.height,markerUnits:hl.markerUnits,strokeWidth:hl.strokeWidth,orient:hl.orient},hl.id))})}):null};MarkerDefinitions.displayName="MarkerDefinitions";var MarkerDefinitions$1=reactExports.memo(MarkerDefinitions);function EdgeTextComponent({x:la,y:aa,label:ca,labelStyle:ua,labelShowBg:Sa=!0,labelBgStyle:hl,labelBgPadding:pl=[2,4],labelBgBorderRadius:ml=2,children:gl,className:wc,...xu}){const[ff,jf]=reactExports.useState({x:1,y:0,width:0,height:0}),Uf=cc(["react-flow__edge-textwrapper",wc]),rp=reactExports.useRef(null);return reactExports.useEffect(()=>{if(rp.current){const np=rp.current.getBBox();jf({x:np.x,y:np.y,width:np.width,height:np.height})}},[ca]),ca?jsxRuntimeExports.jsxs("g",{transform:`translate(${la-ff.width/2} ${aa-ff.height/2})`,className:Uf,visibility:ff.width?"visible":"hidden",...xu,children:[Sa&&jsxRuntimeExports.jsx("rect",{width:ff.width+2*pl[0],x:-pl[0],y:-pl[1],height:ff.height+2*pl[1],className:"react-flow__edge-textbg",style:hl,rx:ml,ry:ml}),jsxRuntimeExports.jsx("text",{className:"react-flow__edge-text",y:ff.height/2,dy:"0.3em",ref:rp,style:ua,children:ca}),gl]}):null}EdgeTextComponent.displayName="EdgeText";const EdgeText=reactExports.memo(EdgeTextComponent);function BaseEdge({path:la,labelX:aa,labelY:ca,label:ua,labelStyle:Sa,labelShowBg:hl,labelBgStyle:pl,labelBgPadding:ml,labelBgBorderRadius:gl,interactionWidth:wc=20,...xu}){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("path",{...xu,d:la,fill:"none",className:cc(["react-flow__edge-path",xu.className])}),wc?jsxRuntimeExports.jsx("path",{d:la,fill:"none",strokeOpacity:0,strokeWidth:wc,className:"react-flow__edge-interaction"}):null,ua&&isNumeric(aa)&&isNumeric(ca)?jsxRuntimeExports.jsx(EdgeText,{x:aa,y:ca,label:ua,labelStyle:Sa,labelShowBg:hl,labelBgStyle:pl,labelBgPadding:ml,labelBgBorderRadius:gl}):null]})}function getControl({pos:la,x1:aa,y1:ca,x2:ua,y2:Sa}){return la===Position.Left||la===Position.Right?[.5*(aa+ua),ca]:[aa,.5*(ca+Sa)]}function getSimpleBezierPath({sourceX:la,sourceY:aa,sourcePosition:ca=Position.Bottom,targetX:ua,targetY:Sa,targetPosition:hl=Position.Top}){const[pl,ml]=getControl({pos:ca,x1:la,y1:aa,x2:ua,y2:Sa}),[gl,wc]=getControl({pos:hl,x1:ua,y1:Sa,x2:la,y2:aa}),[xu,ff,jf,Uf]=getBezierEdgeCenter({sourceX:la,sourceY:aa,targetX:ua,targetY:Sa,sourceControlX:pl,sourceControlY:ml,targetControlX:gl,targetControlY:wc});return[`M${la},${aa} C${pl},${ml} ${gl},${wc} ${ua},${Sa}`,xu,ff,jf,Uf]}function createSimpleBezierEdge(la){return reactExports.memo(({id:aa,sourceX:ca,sourceY:ua,targetX:Sa,targetY:hl,sourcePosition:pl,targetPosition:ml,label:gl,labelStyle:wc,labelShowBg:xu,labelBgStyle:ff,labelBgPadding:jf,labelBgBorderRadius:Uf,style:rp,markerEnd:np,markerStart:qm,interactionWidth:Vm})=>{const[eg,tg,rg]=getSimpleBezierPath({sourceX:ca,sourceY:ua,sourcePosition:pl,targetX:Sa,targetY:hl,targetPosition:ml}),ig=la.isInternal?void 0:aa;return jsxRuntimeExports.jsx(BaseEdge,{id:ig,path:eg,labelX:tg,labelY:rg,label:gl,labelStyle:wc,labelShowBg:xu,labelBgStyle:ff,labelBgPadding:jf,labelBgBorderRadius:Uf,style:rp,markerEnd:np,markerStart:qm,interactionWidth:Vm})})}const SimpleBezierEdge=createSimpleBezierEdge({isInternal:!1}),SimpleBezierEdgeInternal=createSimpleBezierEdge({isInternal:!0});SimpleBezierEdge.displayName="SimpleBezierEdge";SimpleBezierEdgeInternal.displayName="SimpleBezierEdgeInternal";function createSmoothStepEdge(la){return reactExports.memo(({id:aa,sourceX:ca,sourceY:ua,targetX:Sa,targetY:hl,label:pl,labelStyle:ml,labelShowBg:gl,labelBgStyle:wc,labelBgPadding:xu,labelBgBorderRadius:ff,style:jf,sourcePosition:Uf=Position.Bottom,targetPosition:rp=Position.Top,markerEnd:np,markerStart:qm,pathOptions:Vm,interactionWidth:eg})=>{const[tg,rg,ig]=getSmoothStepPath({sourceX:ca,sourceY:ua,sourcePosition:Uf,targetX:Sa,targetY:hl,targetPosition:rp,borderRadius:Vm?.borderRadius,offset:Vm?.offset,stepPosition:Vm?.stepPosition}),vv=la.isInternal?void 0:aa;return jsxRuntimeExports.jsx(BaseEdge,{id:vv,path:tg,labelX:rg,labelY:ig,label:pl,labelStyle:ml,labelShowBg:gl,labelBgStyle:wc,labelBgPadding:xu,labelBgBorderRadius:ff,style:jf,markerEnd:np,markerStart:qm,interactionWidth:eg})})}const SmoothStepEdge=createSmoothStepEdge({isInternal:!1}),SmoothStepEdgeInternal=createSmoothStepEdge({isInternal:!0});SmoothStepEdge.displayName="SmoothStepEdge";SmoothStepEdgeInternal.displayName="SmoothStepEdgeInternal";function createStepEdge(la){return reactExports.memo(({id:aa,...ca})=>{const ua=la.isInternal?void 0:aa;return jsxRuntimeExports.jsx(SmoothStepEdge,{...ca,id:ua,pathOptions:reactExports.useMemo(()=>({borderRadius:0,offset:ca.pathOptions?.offset}),[ca.pathOptions?.offset])})})}const StepEdge=createStepEdge({isInternal:!1}),StepEdgeInternal=createStepEdge({isInternal:!0});StepEdge.displayName="StepEdge";StepEdgeInternal.displayName="StepEdgeInternal";function createStraightEdge(la){return reactExports.memo(({id:aa,sourceX:ca,sourceY:ua,targetX:Sa,targetY:hl,label:pl,labelStyle:ml,labelShowBg:gl,labelBgStyle:wc,labelBgPadding:xu,labelBgBorderRadius:ff,style:jf,markerEnd:Uf,markerStart:rp,interactionWidth:np})=>{const[qm,Vm,eg]=getStraightPath({sourceX:ca,sourceY:ua,targetX:Sa,targetY:hl}),tg=la.isInternal?void 0:aa;return jsxRuntimeExports.jsx(BaseEdge,{id:tg,path:qm,labelX:Vm,labelY:eg,label:pl,labelStyle:ml,labelShowBg:gl,labelBgStyle:wc,labelBgPadding:xu,labelBgBorderRadius:ff,style:jf,markerEnd:Uf,markerStart:rp,interactionWidth:np})})}const StraightEdge=createStraightEdge({isInternal:!1}),StraightEdgeInternal=createStraightEdge({isInternal:!0});StraightEdge.displayName="StraightEdge";StraightEdgeInternal.displayName="StraightEdgeInternal";function createBezierEdge(la){return reactExports.memo(({id:aa,sourceX:ca,sourceY:ua,targetX:Sa,targetY:hl,sourcePosition:pl=Position.Bottom,targetPosition:ml=Position.Top,label:gl,labelStyle:wc,labelShowBg:xu,labelBgStyle:ff,labelBgPadding:jf,labelBgBorderRadius:Uf,style:rp,markerEnd:np,markerStart:qm,pathOptions:Vm,interactionWidth:eg})=>{const[tg,rg,ig]=getBezierPath({sourceX:ca,sourceY:ua,sourcePosition:pl,targetX:Sa,targetY:hl,targetPosition:ml,curvature:Vm?.curvature}),vv=la.isInternal?void 0:aa;return jsxRuntimeExports.jsx(BaseEdge,{id:vv,path:tg,labelX:rg,labelY:ig,label:gl,labelStyle:wc,labelShowBg:xu,labelBgStyle:ff,labelBgPadding:jf,labelBgBorderRadius:Uf,style:rp,markerEnd:np,markerStart:qm,interactionWidth:eg})})}const BezierEdge=createBezierEdge({isInternal:!1}),BezierEdgeInternal=createBezierEdge({isInternal:!0});BezierEdge.displayName="BezierEdge";BezierEdgeInternal.displayName="BezierEdgeInternal";const builtinEdgeTypes={default:BezierEdgeInternal,straight:StraightEdgeInternal,step:StepEdgeInternal,smoothstep:SmoothStepEdgeInternal,simplebezier:SimpleBezierEdgeInternal},nullPosition={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},shiftX=(la,aa,ca)=>ca===Position.Left?la-aa:ca===Position.Right?la+aa:la,shiftY=(la,aa,ca)=>ca===Position.Top?la-aa:ca===Position.Bottom?la+aa:la,EdgeUpdaterClassName="react-flow__edgeupdater";function EdgeAnchor({position:la,centerX:aa,centerY:ca,radius:ua=10,onMouseDown:Sa,onMouseEnter:hl,onMouseOut:pl,type:ml}){return jsxRuntimeExports.jsx("circle",{onMouseDown:Sa,onMouseEnter:hl,onMouseOut:pl,className:cc([EdgeUpdaterClassName,`${EdgeUpdaterClassName}-${ml}`]),cx:shiftX(aa,ua,la),cy:shiftY(ca,ua,la),r:ua,stroke:"transparent",fill:"transparent"})}function EdgeUpdateAnchors({isReconnectable:la,reconnectRadius:aa,edge:ca,sourceX:ua,sourceY:Sa,targetX:hl,targetY:pl,sourcePosition:ml,targetPosition:gl,onReconnect:wc,onReconnectStart:xu,onReconnectEnd:ff,setReconnecting:jf,setUpdateHover:Uf}){const rp=useStoreApi(),np=(rg,ig)=>{if(rg.button!==0)return;const{autoPanOnConnect:vv,domNode:R1,isValidConnection:O1,connectionMode:K0,connectionRadius:J0,lib:Hw,onConnectStart:qw,onConnectEnd:Y0,cancelConnection:G0,nodeLookup:X0,rfId:d_,panBy:f_,updateConnection:zN}=rp.getState(),BN=ig.type==="target",iF=(Ohe,bY)=>{jf(!1),ff?.(Ohe,ca,ig.type,bY)},yY=Ohe=>wc?.(ca,Ohe),vQ=(Ohe,bY)=>{jf(!0),xu?.(rg,ca,ig.type),qw?.(Ohe,bY)};XYHandle.onPointerDown(rg.nativeEvent,{autoPanOnConnect:vv,connectionMode:K0,connectionRadius:J0,domNode:R1,handleId:ig.id,nodeId:ig.nodeId,nodeLookup:X0,isTarget:BN,edgeUpdaterType:ig.type,lib:Hw,flowId:d_,cancelConnection:G0,panBy:f_,isValidConnection:O1,onConnect:yY,onConnectStart:vQ,onConnectEnd:Y0,onReconnectEnd:iF,updateConnection:zN,getTransform:()=>rp.getState().transform,getFromHandle:()=>rp.getState().connection.fromHandle,dragThreshold:rp.getState().connectionDragThreshold,handleDomNode:rg.currentTarget})},qm=rg=>np(rg,{nodeId:ca.target,id:ca.targetHandle??null,type:"target"}),Vm=rg=>np(rg,{nodeId:ca.source,id:ca.sourceHandle??null,type:"source"}),eg=()=>Uf(!0),tg=()=>Uf(!1);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[(la===!0||la==="source")&&jsxRuntimeExports.jsx(EdgeAnchor,{position:ml,centerX:ua,centerY:Sa,radius:aa,onMouseDown:qm,onMouseEnter:eg,onMouseOut:tg,type:"source"}),(la===!0||la==="target")&&jsxRuntimeExports.jsx(EdgeAnchor,{position:gl,centerX:hl,centerY:pl,radius:aa,onMouseDown:Vm,onMouseEnter:eg,onMouseOut:tg,type:"target"})]})}function EdgeWrapper({id:la,edgesFocusable:aa,edgesReconnectable:ca,elementsSelectable:ua,onClick:Sa,onDoubleClick:hl,onContextMenu:pl,onMouseEnter:ml,onMouseMove:gl,onMouseLeave:wc,reconnectRadius:xu,onReconnect:ff,onReconnectStart:jf,onReconnectEnd:Uf,rfId:rp,edgeTypes:np,noPanClassName:qm,onError:Vm,disableKeyboardA11y:eg}){let tg=useStore$1(Bhe=>Bhe.edgeLookup.get(la));const rg=useStore$1(Bhe=>Bhe.defaultEdgeOptions);tg=rg?{...rg,...tg}:tg;let ig=tg.type||"default",vv=np?.[ig]||builtinEdgeTypes[ig];vv===void 0&&(Vm?.("011",errorMessages$3.error011(ig)),ig="default",vv=np?.default||builtinEdgeTypes.default);const R1=!!(tg.focusable||aa&&typeof tg.focusable>"u"),O1=typeof ff<"u"&&(tg.reconnectable||ca&&typeof tg.reconnectable>"u"),K0=!!(tg.selectable||ua&&typeof tg.selectable>"u"),J0=reactExports.useRef(null),[Hw,qw]=reactExports.useState(!1),[Y0,G0]=reactExports.useState(!1),X0=useStoreApi(),{zIndex:d_,sourceX:f_,sourceY:zN,targetX:BN,targetY:iF,sourcePosition:yY,targetPosition:vQ}=useStore$1(reactExports.useCallback(Bhe=>{const dht=Bhe.nodeLookup.get(tg.source),Mdt=Bhe.nodeLookup.get(tg.target);if(!dht||!Mdt)return{zIndex:tg.zIndex,...nullPosition};const opt=getEdgePosition({id:la,sourceNode:dht,targetNode:Mdt,sourceHandle:tg.sourceHandle||null,targetHandle:tg.targetHandle||null,connectionMode:Bhe.connectionMode,onError:Vm});return{zIndex:getElevatedEdgeZIndex({selected:tg.selected,zIndex:tg.zIndex,sourceNode:dht,targetNode:Mdt,elevateOnSelect:Bhe.elevateEdgesOnSelect,zIndexMode:Bhe.zIndexMode}),...opt||nullPosition}},[tg.source,tg.target,tg.sourceHandle,tg.targetHandle,tg.selected,tg.zIndex]),shallow$1),Ohe=reactExports.useMemo(()=>tg.markerStart?`url('#${getMarkerId(tg.markerStart,rp)}')`:void 0,[tg.markerStart,rp]),bY=reactExports.useMemo(()=>tg.markerEnd?`url('#${getMarkerId(tg.markerEnd,rp)}')`:void 0,[tg.markerEnd,rp]);if(tg.hidden||f_===null||zN===null||BN===null||iF===null)return null;const Lhe=Bhe=>{const{addSelectedEdges:dht,unselectNodesAndEdges:Mdt,multiSelectionActive:opt}=X0.getState();K0&&(X0.setState({nodesSelectionActive:!1}),tg.selected&&opt?(Mdt({nodes:[],edges:[tg]}),J0.current?.blur()):dht([la])),Sa&&Sa(Bhe,tg)},Dhe=hl?Bhe=>{hl(Bhe,{...tg})}:void 0,kdt=pl?Bhe=>{pl(Bhe,{...tg})}:void 0,eht=ml?Bhe=>{ml(Bhe,{...tg})}:void 0,oht=gl?Bhe=>{gl(Bhe,{...tg})}:void 0,iht=wc?Bhe=>{wc(Bhe,{...tg})}:void 0,Uhe=Bhe=>{if(!eg&&elementSelectionKeys.includes(Bhe.key)&&K0){const{unselectNodesAndEdges:dht,addSelectedEdges:Mdt}=X0.getState();Bhe.key==="Escape"?(J0.current?.blur(),dht({edges:[tg]})):Mdt([la])}};return jsxRuntimeExports.jsx("svg",{style:{zIndex:d_},children:jsxRuntimeExports.jsxs("g",{className:cc(["react-flow__edge",`react-flow__edge-${ig}`,tg.className,qm,{selected:tg.selected,animated:tg.animated,inactive:!K0&&!Sa,updating:Hw,selectable:K0}]),onClick:Lhe,onDoubleClick:Dhe,onContextMenu:kdt,onMouseEnter:eht,onMouseMove:oht,onMouseLeave:iht,onKeyDown:R1?Uhe:void 0,tabIndex:R1?0:void 0,role:tg.ariaRole??(R1?"group":"img"),"aria-roledescription":"edge","data-id":la,"data-testid":`rf__edge-${la}`,"aria-label":tg.ariaLabel===null?void 0:tg.ariaLabel||`Edge from ${tg.source} to ${tg.target}`,"aria-describedby":R1?`${ARIA_EDGE_DESC_KEY}-${rp}`:void 0,ref:J0,...tg.domAttributes,children:[!Y0&&jsxRuntimeExports.jsx(vv,{id:la,source:tg.source,target:tg.target,type:tg.type,selected:tg.selected,animated:tg.animated,selectable:K0,deletable:tg.deletable??!0,label:tg.label,labelStyle:tg.labelStyle,labelShowBg:tg.labelShowBg,labelBgStyle:tg.labelBgStyle,labelBgPadding:tg.labelBgPadding,labelBgBorderRadius:tg.labelBgBorderRadius,sourceX:f_,sourceY:zN,targetX:BN,targetY:iF,sourcePosition:yY,targetPosition:vQ,data:tg.data,style:tg.style,sourceHandleId:tg.sourceHandle,targetHandleId:tg.targetHandle,markerStart:Ohe,markerEnd:bY,pathOptions:"pathOptions"in tg?tg.pathOptions:void 0,interactionWidth:tg.interactionWidth}),O1&&jsxRuntimeExports.jsx(EdgeUpdateAnchors,{edge:tg,isReconnectable:O1,reconnectRadius:xu,onReconnect:ff,onReconnectStart:jf,onReconnectEnd:Uf,sourceX:f_,sourceY:zN,targetX:BN,targetY:iF,sourcePosition:yY,targetPosition:vQ,setUpdateHover:qw,setReconnecting:G0})]})})}var EdgeWrapper$1=reactExports.memo(EdgeWrapper);const selector$a=la=>({edgesFocusable:la.edgesFocusable,edgesReconnectable:la.edgesReconnectable,elementsSelectable:la.elementsSelectable,connectionMode:la.connectionMode,onError:la.onError});function EdgeRendererComponent({defaultMarkerColor:la,onlyRenderVisibleElements:aa,rfId:ca,edgeTypes:ua,noPanClassName:Sa,onReconnect:hl,onEdgeContextMenu:pl,onEdgeMouseEnter:ml,onEdgeMouseMove:gl,onEdgeMouseLeave:wc,onEdgeClick:xu,reconnectRadius:ff,onEdgeDoubleClick:jf,onReconnectStart:Uf,onReconnectEnd:rp,disableKeyboardA11y:np}){const{edgesFocusable:qm,edgesReconnectable:Vm,elementsSelectable:eg,onError:tg}=useStore$1(selector$a,shallow$1),rg=useVisibleEdgeIds(aa);return jsxRuntimeExports.jsxs("div",{className:"react-flow__edges",children:[jsxRuntimeExports.jsx(MarkerDefinitions$1,{defaultColor:la,rfId:ca}),rg.map(ig=>jsxRuntimeExports.jsx(EdgeWrapper$1,{id:ig,edgesFocusable:qm,edgesReconnectable:Vm,elementsSelectable:eg,noPanClassName:Sa,onReconnect:hl,onContextMenu:pl,onMouseEnter:ml,onMouseMove:gl,onMouseLeave:wc,onClick:xu,reconnectRadius:ff,onDoubleClick:jf,onReconnectStart:Uf,onReconnectEnd:rp,rfId:ca,onError:tg,edgeTypes:ua,disableKeyboardA11y:np},ig))]})}EdgeRendererComponent.displayName="EdgeRenderer";const EdgeRenderer=reactExports.memo(EdgeRendererComponent),selector$9=la=>`translate(${la.transform[0]}px,${la.transform[1]}px) scale(${la.transform[2]})`;function Viewport({children:la}){const aa=useStore$1(selector$9);return jsxRuntimeExports.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:aa},children:la})}function useOnInitHandler(la){const aa=useReactFlow(),ca=reactExports.useRef(!1);reactExports.useEffect(()=>{!ca.current&&aa.viewportInitialized&&la&&(setTimeout(()=>la(aa),1),ca.current=!0)},[la,aa.viewportInitialized])}const selector$8=la=>la.panZoom?.syncViewport;function useViewportSync(la){const aa=useStore$1(selector$8),ca=useStoreApi();return reactExports.useEffect(()=>{la&&(aa?.(la),ca.setState({transform:[la.x,la.y,la.zoom]}))},[la,aa]),null}function storeSelector$1(la){return la.connection.inProgress?{...la.connection,to:pointToRendererPoint(la.connection.to,la.transform)}:{...la.connection}}function getSelector(la){return storeSelector$1}function useConnection(la){const aa=getSelector();return useStore$1(aa,shallow$1)}const selector$7=la=>({nodesConnectable:la.nodesConnectable,isValid:la.connection.isValid,inProgress:la.connection.inProgress,width:la.width,height:la.height});function ConnectionLineWrapper({containerStyle:la,style:aa,type:ca,component:ua}){const{nodesConnectable:Sa,width:hl,height:pl,isValid:ml,inProgress:gl}=useStore$1(selector$7,shallow$1);return!(hl&&Sa&&gl)?null:jsxRuntimeExports.jsx("svg",{style:la,width:hl,height:pl,className:"react-flow__connectionline react-flow__container",children:jsxRuntimeExports.jsx("g",{className:cc(["react-flow__connection",getConnectionStatus(ml)]),children:jsxRuntimeExports.jsx(ConnectionLine,{style:aa,type:ca,CustomComponent:ua,isValid:ml})})})}const ConnectionLine=({style:la,type:aa=ConnectionLineType.Bezier,CustomComponent:ca,isValid:ua})=>{const{inProgress:Sa,from:hl,fromNode:pl,fromHandle:ml,fromPosition:gl,to:wc,toNode:xu,toHandle:ff,toPosition:jf,pointer:Uf}=useConnection();if(!Sa)return;if(ca)return jsxRuntimeExports.jsx(ca,{connectionLineType:aa,connectionLineStyle:la,fromNode:pl,fromHandle:ml,fromX:hl.x,fromY:hl.y,toX:wc.x,toY:wc.y,fromPosition:gl,toPosition:jf,connectionStatus:getConnectionStatus(ua),toNode:xu,toHandle:ff,pointer:Uf});let rp="";const np={sourceX:hl.x,sourceY:hl.y,sourcePosition:gl,targetX:wc.x,targetY:wc.y,targetPosition:jf};switch(aa){case ConnectionLineType.Bezier:[rp]=getBezierPath(np);break;case ConnectionLineType.SimpleBezier:[rp]=getSimpleBezierPath(np);break;case ConnectionLineType.Step:[rp]=getSmoothStepPath({...np,borderRadius:0});break;case ConnectionLineType.SmoothStep:[rp]=getSmoothStepPath(np);break;default:[rp]=getStraightPath(np)}return jsxRuntimeExports.jsx("path",{d:rp,fill:"none",className:"react-flow__connection-path",style:la})};ConnectionLine.displayName="ConnectionLine";const emptyTypes={};function useNodeOrEdgeTypesWarning(la=emptyTypes){reactExports.useRef(la),useStoreApi(),reactExports.useEffect(()=>{},[la])}function useStylesLoadedWarning(){useStoreApi(),reactExports.useRef(!1),reactExports.useEffect(()=>{},[])}function GraphViewComponent({nodeTypes:la,edgeTypes:aa,onInit:ca,onNodeClick:ua,onEdgeClick:Sa,onNodeDoubleClick:hl,onEdgeDoubleClick:pl,onNodeMouseEnter:ml,onNodeMouseMove:gl,onNodeMouseLeave:wc,onNodeContextMenu:xu,onSelectionContextMenu:ff,onSelectionStart:jf,onSelectionEnd:Uf,connectionLineType:rp,connectionLineStyle:np,connectionLineComponent:qm,connectionLineContainerStyle:Vm,selectionKeyCode:eg,selectionOnDrag:tg,selectionMode:rg,multiSelectionKeyCode:ig,panActivationKeyCode:vv,zoomActivationKeyCode:R1,deleteKeyCode:O1,onlyRenderVisibleElements:K0,elementsSelectable:J0,defaultViewport:Hw,translateExtent:qw,minZoom:Y0,maxZoom:G0,preventScrolling:X0,defaultMarkerColor:d_,zoomOnScroll:f_,zoomOnPinch:zN,panOnScroll:BN,panOnScrollSpeed:iF,panOnScrollMode:yY,zoomOnDoubleClick:vQ,panOnDrag:Ohe,onPaneClick:bY,onPaneMouseEnter:Lhe,onPaneMouseMove:Dhe,onPaneMouseLeave:kdt,onPaneScroll:eht,onPaneContextMenu:oht,paneClickDistance:iht,nodeClickDistance:Uhe,onEdgeContextMenu:Bhe,onEdgeMouseEnter:dht,onEdgeMouseMove:Mdt,onEdgeMouseLeave:opt,reconnectRadius:gpt,onReconnect:Qht,onReconnectStart:kpt,onReconnectEnd:Dpt,noDragClassName:Bpt,noWheelClassName:Apt,noPanClassName:spt,disableKeyboardA11y:_pt,nodeExtent:jpt,rfId:Opt,viewport:zpt,onViewportChange:Ndt}){return useNodeOrEdgeTypesWarning(la),useNodeOrEdgeTypesWarning(aa),useStylesLoadedWarning(),useOnInitHandler(ca),useViewportSync(zpt),jsxRuntimeExports.jsx(FlowRenderer,{onPaneClick:bY,onPaneMouseEnter:Lhe,onPaneMouseMove:Dhe,onPaneMouseLeave:kdt,onPaneContextMenu:oht,onPaneScroll:eht,paneClickDistance:iht,deleteKeyCode:O1,selectionKeyCode:eg,selectionOnDrag:tg,selectionMode:rg,onSelectionStart:jf,onSelectionEnd:Uf,multiSelectionKeyCode:ig,panActivationKeyCode:vv,zoomActivationKeyCode:R1,elementsSelectable:J0,zoomOnScroll:f_,zoomOnPinch:zN,zoomOnDoubleClick:vQ,panOnScroll:BN,panOnScrollSpeed:iF,panOnScrollMode:yY,panOnDrag:Ohe,defaultViewport:Hw,translateExtent:qw,minZoom:Y0,maxZoom:G0,onSelectionContextMenu:ff,preventScrolling:X0,noDragClassName:Bpt,noWheelClassName:Apt,noPanClassName:spt,disableKeyboardA11y:_pt,onViewportChange:Ndt,isControlledViewport:!!zpt,children:jsxRuntimeExports.jsxs(Viewport,{children:[jsxRuntimeExports.jsx(EdgeRenderer,{edgeTypes:aa,onEdgeClick:Sa,onEdgeDoubleClick:pl,onReconnect:Qht,onReconnectStart:kpt,onReconnectEnd:Dpt,onlyRenderVisibleElements:K0,onEdgeContextMenu:Bhe,onEdgeMouseEnter:dht,onEdgeMouseMove:Mdt,onEdgeMouseLeave:opt,reconnectRadius:gpt,defaultMarkerColor:d_,noPanClassName:spt,disableKeyboardA11y:_pt,rfId:Opt}),jsxRuntimeExports.jsx(ConnectionLineWrapper,{style:np,type:rp,component:qm,containerStyle:Vm}),jsxRuntimeExports.jsx("div",{className:"react-flow__edgelabel-renderer"}),jsxRuntimeExports.jsx(NodeRenderer,{nodeTypes:la,onNodeClick:ua,onNodeDoubleClick:hl,onNodeMouseEnter:ml,onNodeMouseMove:gl,onNodeMouseLeave:wc,onNodeContextMenu:xu,nodeClickDistance:Uhe,onlyRenderVisibleElements:K0,noPanClassName:spt,noDragClassName:Bpt,disableKeyboardA11y:_pt,nodeExtent:jpt,rfId:Opt}),jsxRuntimeExports.jsx("div",{className:"react-flow__viewport-portal"})]})})}GraphViewComponent.displayName="GraphView";const GraphView=reactExports.memo(GraphViewComponent),getInitialState$1=({nodes:la,edges:aa,defaultNodes:ca,defaultEdges:ua,width:Sa,height:hl,fitView:pl,fitViewOptions:ml,minZoom:gl=.5,maxZoom:wc=2,nodeOrigin:xu,nodeExtent:ff,zIndexMode:jf="basic"}={})=>{const Uf=new Map,rp=new Map,np=new Map,qm=new Map,Vm=ua??aa??[],eg=ca??la??[],tg=xu??[0,0],rg=ff??infiniteExtent;updateConnectionLookup(np,qm,Vm);const ig=adoptUserNodes(eg,Uf,rp,{nodeOrigin:tg,nodeExtent:rg,zIndexMode:jf});let vv=[0,0,1];if(pl&&Sa&&hl){const R1=getInternalNodesBounds(Uf,{filter:Hw=>!!((Hw.width||Hw.initialWidth)&&(Hw.height||Hw.initialHeight))}),{x:O1,y:K0,zoom:J0}=getViewportForBounds(R1,Sa,hl,gl,wc,ml?.padding??.1);vv=[O1,K0,J0]}return{rfId:"1",width:Sa??0,height:hl??0,transform:vv,nodes:eg,nodesInitialized:ig,nodeLookup:Uf,parentLookup:rp,edges:Vm,edgeLookup:qm,connectionLookup:np,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:ca!==void 0,hasDefaultEdges:ua!==void 0,panZoom:null,minZoom:gl,maxZoom:wc,translateExtent:infiniteExtent,nodeExtent:rg,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:ConnectionMode.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:tg,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:pl??!1,fitViewOptions:ml,fitViewResolver:null,connection:{...initialConnection},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:devWarn,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:defaultAriaLabelConfig,zIndexMode:jf,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},createStore=({nodes:la,edges:aa,defaultNodes:ca,defaultEdges:ua,width:Sa,height:hl,fitView:pl,fitViewOptions:ml,minZoom:gl,maxZoom:wc,nodeOrigin:xu,nodeExtent:ff,zIndexMode:jf})=>createWithEqualityFn((Uf,rp)=>{async function np(){const{nodeLookup:qm,panZoom:Vm,fitViewOptions:eg,fitViewResolver:tg,width:rg,height:ig,minZoom:vv,maxZoom:R1}=rp();Vm&&(await fitViewport({nodes:qm,width:rg,height:ig,panZoom:Vm,minZoom:vv,maxZoom:R1},eg),tg?.resolve(!0),Uf({fitViewResolver:null}))}return{...getInitialState$1({nodes:la,edges:aa,width:Sa,height:hl,fitView:pl,fitViewOptions:ml,minZoom:gl,maxZoom:wc,nodeOrigin:xu,nodeExtent:ff,defaultNodes:ca,defaultEdges:ua,zIndexMode:jf}),setNodes:qm=>{const{nodeLookup:Vm,parentLookup:eg,nodeOrigin:tg,elevateNodesOnSelect:rg,fitViewQueued:ig,zIndexMode:vv}=rp(),R1=adoptUserNodes(qm,Vm,eg,{nodeOrigin:tg,nodeExtent:ff,elevateNodesOnSelect:rg,checkEquality:!0,zIndexMode:vv});ig&&R1?(np(),Uf({nodes:qm,nodesInitialized:R1,fitViewQueued:!1,fitViewOptions:void 0})):Uf({nodes:qm,nodesInitialized:R1})},setEdges:qm=>{const{connectionLookup:Vm,edgeLookup:eg}=rp();updateConnectionLookup(Vm,eg,qm),Uf({edges:qm})},setDefaultNodesAndEdges:(qm,Vm)=>{if(qm){const{setNodes:eg}=rp();eg(qm),Uf({hasDefaultNodes:!0})}if(Vm){const{setEdges:eg}=rp();eg(Vm),Uf({hasDefaultEdges:!0})}},updateNodeInternals:qm=>{const{triggerNodeChanges:Vm,nodeLookup:eg,parentLookup:tg,domNode:rg,nodeOrigin:ig,nodeExtent:vv,debug:R1,fitViewQueued:O1,zIndexMode:K0}=rp(),{changes:J0,updatedInternals:Hw}=updateNodeInternals(qm,eg,tg,rg,ig,vv,K0);Hw&&(updateAbsolutePositions(eg,tg,{nodeOrigin:ig,nodeExtent:vv,zIndexMode:K0}),O1?(np(),Uf({fitViewQueued:!1,fitViewOptions:void 0})):Uf({}),J0?.length>0&&(R1&&console.log("React Flow: trigger node changes",J0),Vm?.(J0)))},updateNodePositions:(qm,Vm=!1)=>{const eg=[];let tg=[];const{nodeLookup:rg,triggerNodeChanges:ig,connection:vv,updateConnection:R1,onNodesChangeMiddlewareMap:O1}=rp();for(const[K0,J0]of qm){const Hw=rg.get(K0),qw=!!(Hw?.expandParent&&Hw?.parentId&&J0?.position),Y0={id:K0,type:"position",position:qw?{x:Math.max(0,J0.position.x),y:Math.max(0,J0.position.y)}:J0.position,dragging:Vm};if(Hw&&vv.inProgress&&vv.fromNode.id===Hw.id){const G0=getHandlePosition(Hw,vv.fromHandle,Position.Left,!0);R1({...vv,from:G0})}qw&&Hw.parentId&&eg.push({id:K0,parentId:Hw.parentId,rect:{...J0.internals.positionAbsolute,width:J0.measured.width??0,height:J0.measured.height??0}}),tg.push(Y0)}if(eg.length>0){const{parentLookup:K0,nodeOrigin:J0}=rp(),Hw=handleExpandParent(eg,rg,K0,J0);tg.push(...Hw)}for(const K0 of O1.values())tg=K0(tg);ig(tg)},triggerNodeChanges:qm=>{const{onNodesChange:Vm,setNodes:eg,nodes:tg,hasDefaultNodes:rg,debug:ig}=rp();if(qm?.length){if(rg){const vv=applyNodeChanges(qm,tg);eg(vv)}ig&&console.log("React Flow: trigger node changes",qm),Vm?.(qm)}},triggerEdgeChanges:qm=>{const{onEdgesChange:Vm,setEdges:eg,edges:tg,hasDefaultEdges:rg,debug:ig}=rp();if(qm?.length){if(rg){const vv=applyEdgeChanges(qm,tg);eg(vv)}ig&&console.log("React Flow: trigger edge changes",qm),Vm?.(qm)}},addSelectedNodes:qm=>{const{multiSelectionActive:Vm,edgeLookup:eg,nodeLookup:tg,triggerNodeChanges:rg,triggerEdgeChanges:ig}=rp();if(Vm){const vv=qm.map(R1=>createSelectionChange(R1,!0));rg(vv);return}rg(getSelectionChanges(tg,new Set([...qm]),!0)),ig(getSelectionChanges(eg))},addSelectedEdges:qm=>{const{multiSelectionActive:Vm,edgeLookup:eg,nodeLookup:tg,triggerNodeChanges:rg,triggerEdgeChanges:ig}=rp();if(Vm){const vv=qm.map(R1=>createSelectionChange(R1,!0));ig(vv);return}ig(getSelectionChanges(eg,new Set([...qm]))),rg(getSelectionChanges(tg,new Set,!0))},unselectNodesAndEdges:({nodes:qm,edges:Vm}={})=>{const{edges:eg,nodes:tg,nodeLookup:rg,triggerNodeChanges:ig,triggerEdgeChanges:vv}=rp(),R1=qm||tg,O1=Vm||eg,K0=R1.map(Hw=>{const qw=rg.get(Hw.id);return qw&&(qw.selected=!1),createSelectionChange(Hw.id,!1)}),J0=O1.map(Hw=>createSelectionChange(Hw.id,!1));ig(K0),vv(J0)},setMinZoom:qm=>{const{panZoom:Vm,maxZoom:eg}=rp();Vm?.setScaleExtent([qm,eg]),Uf({minZoom:qm})},setMaxZoom:qm=>{const{panZoom:Vm,minZoom:eg}=rp();Vm?.setScaleExtent([eg,qm]),Uf({maxZoom:qm})},setTranslateExtent:qm=>{rp().panZoom?.setTranslateExtent(qm),Uf({translateExtent:qm})},resetSelectedElements:()=>{const{edges:qm,nodes:Vm,triggerNodeChanges:eg,triggerEdgeChanges:tg,elementsSelectable:rg}=rp();if(!rg)return;const ig=Vm.reduce((R1,O1)=>O1.selected?[...R1,createSelectionChange(O1.id,!1)]:R1,[]),vv=qm.reduce((R1,O1)=>O1.selected?[...R1,createSelectionChange(O1.id,!1)]:R1,[]);eg(ig),tg(vv)},setNodeExtent:qm=>{const{nodes:Vm,nodeLookup:eg,parentLookup:tg,nodeOrigin:rg,elevateNodesOnSelect:ig,nodeExtent:vv,zIndexMode:R1}=rp();qm[0][0]===vv[0][0]&&qm[0][1]===vv[0][1]&&qm[1][0]===vv[1][0]&&qm[1][1]===vv[1][1]||(adoptUserNodes(Vm,eg,tg,{nodeOrigin:rg,nodeExtent:qm,elevateNodesOnSelect:ig,checkEquality:!1,zIndexMode:R1}),Uf({nodeExtent:qm}))},panBy:qm=>{const{transform:Vm,width:eg,height:tg,panZoom:rg,translateExtent:ig}=rp();return panBy({delta:qm,panZoom:rg,transform:Vm,translateExtent:ig,width:eg,height:tg})},setCenter:async(qm,Vm,eg)=>{const{width:tg,height:rg,maxZoom:ig,panZoom:vv}=rp();if(!vv)return Promise.resolve(!1);const R1=typeof eg?.zoom<"u"?eg.zoom:ig;return await vv.setViewport({x:tg/2-qm*R1,y:rg/2-Vm*R1,zoom:R1},{duration:eg?.duration,ease:eg?.ease,interpolate:eg?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{Uf({connection:{...initialConnection}})},updateConnection:qm=>{Uf({connection:qm})},reset:()=>Uf({...getInitialState$1()})}},Object.is);function ReactFlowProvider({initialNodes:la,initialEdges:aa,defaultNodes:ca,defaultEdges:ua,initialWidth:Sa,initialHeight:hl,initialMinZoom:pl,initialMaxZoom:ml,initialFitViewOptions:gl,fitView:wc,nodeOrigin:xu,nodeExtent:ff,zIndexMode:jf,children:Uf}){const[rp]=reactExports.useState(()=>createStore({nodes:la,edges:aa,defaultNodes:ca,defaultEdges:ua,width:Sa,height:hl,fitView:wc,minZoom:pl,maxZoom:ml,fitViewOptions:gl,nodeOrigin:xu,nodeExtent:ff,zIndexMode:jf}));return jsxRuntimeExports.jsx(Provider$1,{value:rp,children:jsxRuntimeExports.jsx(BatchProvider,{children:Uf})})}function Wrapper({children:la,nodes:aa,edges:ca,defaultNodes:ua,defaultEdges:Sa,width:hl,height:pl,fitView:ml,fitViewOptions:gl,minZoom:wc,maxZoom:xu,nodeOrigin:ff,nodeExtent:jf,zIndexMode:Uf}){return reactExports.useContext(StoreContext)?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:la}):jsxRuntimeExports.jsx(ReactFlowProvider,{initialNodes:aa,initialEdges:ca,defaultNodes:ua,defaultEdges:Sa,initialWidth:hl,initialHeight:pl,fitView:ml,initialFitViewOptions:gl,initialMinZoom:wc,initialMaxZoom:xu,nodeOrigin:ff,nodeExtent:jf,zIndexMode:Uf,children:la})}const wrapperStyle={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function ReactFlow({nodes:la,edges:aa,defaultNodes:ca,defaultEdges:ua,className:Sa,nodeTypes:hl,edgeTypes:pl,onNodeClick:ml,onEdgeClick:gl,onInit:wc,onMove:xu,onMoveStart:ff,onMoveEnd:jf,onConnect:Uf,onConnectStart:rp,onConnectEnd:np,onClickConnectStart:qm,onClickConnectEnd:Vm,onNodeMouseEnter:eg,onNodeMouseMove:tg,onNodeMouseLeave:rg,onNodeContextMenu:ig,onNodeDoubleClick:vv,onNodeDragStart:R1,onNodeDrag:O1,onNodeDragStop:K0,onNodesDelete:J0,onEdgesDelete:Hw,onDelete:qw,onSelectionChange:Y0,onSelectionDragStart:G0,onSelectionDrag:X0,onSelectionDragStop:d_,onSelectionContextMenu:f_,onSelectionStart:zN,onSelectionEnd:BN,onBeforeDelete:iF,connectionMode:yY,connectionLineType:vQ=ConnectionLineType.Bezier,connectionLineStyle:Ohe,connectionLineComponent:bY,connectionLineContainerStyle:Lhe,deleteKeyCode:Dhe="Backspace",selectionKeyCode:kdt="Shift",selectionOnDrag:eht=!1,selectionMode:oht=SelectionMode.Full,panActivationKeyCode:iht="Space",multiSelectionKeyCode:Uhe=isMacOs()?"Meta":"Control",zoomActivationKeyCode:Bhe=isMacOs()?"Meta":"Control",snapToGrid:dht,snapGrid:Mdt,onlyRenderVisibleElements:opt=!1,selectNodesOnDrag:gpt,nodesDraggable:Qht,autoPanOnNodeFocus:kpt,nodesConnectable:Dpt,nodesFocusable:Bpt,nodeOrigin:Apt=defaultNodeOrigin,edgesFocusable:spt,edgesReconnectable:_pt,elementsSelectable:jpt=!0,defaultViewport:Opt=defaultViewport,minZoom:zpt=.5,maxZoom:Ndt=2,translateExtent:mY=infiniteExtent,preventScrolling:Phe=!0,nodeExtent:Odt,defaultMarkerColor:zhe="#b1b1b7",zoomOnScroll:Fhe=!0,zoomOnPinch:jhe=!0,panOnScroll:Tdt=!1,panOnScrollSpeed:Idt=.5,panOnScrollMode:Zht=PanOnScrollMode.Free,zoomOnDoubleClick:Rdt=!0,panOnDrag:cpt=!0,onPaneClick:$pt,onPaneMouseEnter:Rhe,onPaneMouseMove:Pdt,onPaneMouseLeave:Kht,onPaneScroll:f_e,onPaneContextMenu:Ddt,paneClickDistance:tpt=1,nodeClickDistance:ypt=0,children:fpt,onReconnect:Tpt,onReconnectStart:Wpt,onReconnectEnd:imt,onEdgeContextMenu:cmt,onEdgeDoubleClick:ipt,onEdgeMouseEnter:upt,onEdgeMouseMove:Ihe,onEdgeMouseLeave:wpt,reconnectRadius:Mpt=10,onNodesChange:Spt,onEdgesChange:c_e,noDragClassName:npt="nodrag",noWheelClassName:dpt="nowheel",noPanClassName:bpt="nopan",fitView:Gpt,fitViewOptions:Upt,connectOnClick:Qpt,attributionPosition:lmt,proOptions:nmt,defaultEdgeOptions:umt,elevateNodesOnSelect:smt=!0,elevateEdgesOnSelect:tmt=!1,disableKeyboardA11y:vmt=!1,autoPanOnConnect:Omt,autoPanOnNodeDrag:ugt,autoPanSpeed:Ymt,connectionRadius:pmt,isValidConnection:Smt,onError:Kmt,style:jmt,id:Lmt,nodeDragThreshold:sgt,connectionDragThreshold:Tmt,viewport:Bmt,onViewportChange:$gt,width:Amt,height:gmt,colorMode:dgt="light",debug:fgt,onScroll:Agt,ariaLabelConfig:bgt,zIndexMode:jgt="basic",...agt},Ggt){const vgt=Lmt||"1",dyt=useColorModeClass(dgt),Jgt=reactExports.useCallback(Pyt=>{Pyt.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),Agt?.(Pyt)},[Agt]);return jsxRuntimeExports.jsx("div",{"data-testid":"rf__wrapper",...agt,onScroll:Jgt,style:{...jmt,...wrapperStyle},ref:Ggt,className:cc(["react-flow",Sa,dyt]),id:Lmt,role:"application",children:jsxRuntimeExports.jsxs(Wrapper,{nodes:la,edges:aa,width:Amt,height:gmt,fitView:Gpt,fitViewOptions:Upt,minZoom:zpt,maxZoom:Ndt,nodeOrigin:Apt,nodeExtent:Odt,zIndexMode:jgt,children:[jsxRuntimeExports.jsx(GraphView,{onInit:wc,onNodeClick:ml,onEdgeClick:gl,onNodeMouseEnter:eg,onNodeMouseMove:tg,onNodeMouseLeave:rg,onNodeContextMenu:ig,onNodeDoubleClick:vv,nodeTypes:hl,edgeTypes:pl,connectionLineType:vQ,connectionLineStyle:Ohe,connectionLineComponent:bY,connectionLineContainerStyle:Lhe,selectionKeyCode:kdt,selectionOnDrag:eht,selectionMode:oht,deleteKeyCode:Dhe,multiSelectionKeyCode:Uhe,panActivationKeyCode:iht,zoomActivationKeyCode:Bhe,onlyRenderVisibleElements:opt,defaultViewport:Opt,translateExtent:mY,minZoom:zpt,maxZoom:Ndt,preventScrolling:Phe,zoomOnScroll:Fhe,zoomOnPinch:jhe,zoomOnDoubleClick:Rdt,panOnScroll:Tdt,panOnScrollSpeed:Idt,panOnScrollMode:Zht,panOnDrag:cpt,onPaneClick:$pt,onPaneMouseEnter:Rhe,onPaneMouseMove:Pdt,onPaneMouseLeave:Kht,onPaneScroll:f_e,onPaneContextMenu:Ddt,paneClickDistance:tpt,nodeClickDistance:ypt,onSelectionContextMenu:f_,onSelectionStart:zN,onSelectionEnd:BN,onReconnect:Tpt,onReconnectStart:Wpt,onReconnectEnd:imt,onEdgeContextMenu:cmt,onEdgeDoubleClick:ipt,onEdgeMouseEnter:upt,onEdgeMouseMove:Ihe,onEdgeMouseLeave:wpt,reconnectRadius:Mpt,defaultMarkerColor:zhe,noDragClassName:npt,noWheelClassName:dpt,noPanClassName:bpt,rfId:vgt,disableKeyboardA11y:vmt,nodeExtent:Odt,viewport:Bmt,onViewportChange:$gt}),jsxRuntimeExports.jsx(StoreUpdater,{nodes:la,edges:aa,defaultNodes:ca,defaultEdges:ua,onConnect:Uf,onConnectStart:rp,onConnectEnd:np,onClickConnectStart:qm,onClickConnectEnd:Vm,nodesDraggable:Qht,autoPanOnNodeFocus:kpt,nodesConnectable:Dpt,nodesFocusable:Bpt,edgesFocusable:spt,edgesReconnectable:_pt,elementsSelectable:jpt,elevateNodesOnSelect:smt,elevateEdgesOnSelect:tmt,minZoom:zpt,maxZoom:Ndt,nodeExtent:Odt,onNodesChange:Spt,onEdgesChange:c_e,snapToGrid:dht,snapGrid:Mdt,connectionMode:yY,translateExtent:mY,connectOnClick:Qpt,defaultEdgeOptions:umt,fitView:Gpt,fitViewOptions:Upt,onNodesDelete:J0,onEdgesDelete:Hw,onDelete:qw,onNodeDragStart:R1,onNodeDrag:O1,onNodeDragStop:K0,onSelectionDrag:X0,onSelectionDragStart:G0,onSelectionDragStop:d_,onMove:xu,onMoveStart:ff,onMoveEnd:jf,noPanClassName:bpt,nodeOrigin:Apt,rfId:vgt,autoPanOnConnect:Omt,autoPanOnNodeDrag:ugt,autoPanSpeed:Ymt,onError:Kmt,connectionRadius:pmt,isValidConnection:Smt,selectNodesOnDrag:gpt,nodeDragThreshold:sgt,connectionDragThreshold:Tmt,onBeforeDelete:iF,debug:fgt,ariaLabelConfig:bgt,zIndexMode:jgt}),jsxRuntimeExports.jsx(SelectionListener,{onSelectionChange:Y0}),fpt,jsxRuntimeExports.jsx(Attribution,{proOptions:nmt,position:lmt}),jsxRuntimeExports.jsx(A11yDescriptions,{rfId:vgt,disableKeyboardA11y:vmt})]})})}var index$3=fixedForwardRef(ReactFlow);function useNodesState(la){const[aa,ca]=reactExports.useState(la),ua=reactExports.useCallback(Sa=>ca(hl=>applyNodeChanges(Sa,hl)),[]);return[aa,ca,ua]}function useEdgesState(la){const[aa,ca]=reactExports.useState(la),ua=reactExports.useCallback(Sa=>ca(hl=>applyEdgeChanges(Sa,hl)),[]);return[aa,ca,ua]}function LinePattern({dimensions:la,lineWidth:aa,variant:ca,className:ua}){return jsxRuntimeExports.jsx("path",{strokeWidth:aa,d:`M${la[0]/2} 0 V${la[1]} M0 ${la[1]/2} H${la[0]}`,className:cc(["react-flow__background-pattern",ca,ua])})}function DotPattern({radius:la,className:aa}){return jsxRuntimeExports.jsx("circle",{cx:la,cy:la,r:la,className:cc(["react-flow__background-pattern","dots",aa])})}var BackgroundVariant;(function(la){la.Lines="lines",la.Dots="dots",la.Cross="cross"})(BackgroundVariant||(BackgroundVariant={}));const defaultSize={[BackgroundVariant.Dots]:1,[BackgroundVariant.Lines]:1,[BackgroundVariant.Cross]:6},selector$3=la=>({transform:la.transform,patternId:`pattern-${la.rfId}`});function BackgroundComponent({id:la,variant:aa=BackgroundVariant.Dots,gap:ca=20,size:ua,lineWidth:Sa=1,offset:hl=0,color:pl,bgColor:ml,style:gl,className:wc,patternClassName:xu}){const ff=reactExports.useRef(null),{transform:jf,patternId:Uf}=useStore$1(selector$3,shallow$1),rp=ua||defaultSize[aa],np=aa===BackgroundVariant.Dots,qm=aa===BackgroundVariant.Cross,Vm=Array.isArray(ca)?ca:[ca,ca],eg=[Vm[0]*jf[2]||1,Vm[1]*jf[2]||1],tg=rp*jf[2],rg=Array.isArray(hl)?hl:[hl,hl],ig=qm?[tg,tg]:eg,vv=[rg[0]*jf[2]||1+ig[0]/2,rg[1]*jf[2]||1+ig[1]/2],R1=`${Uf}${la||""}`;return jsxRuntimeExports.jsxs("svg",{className:cc(["react-flow__background",wc]),style:{...gl,...containerStyle,"--xy-background-color-props":ml,"--xy-background-pattern-color-props":pl},ref:ff,"data-testid":"rf__background",children:[jsxRuntimeExports.jsx("pattern",{id:R1,x:jf[0]%eg[0],y:jf[1]%eg[1],width:eg[0],height:eg[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${vv[0]},-${vv[1]})`,children:np?jsxRuntimeExports.jsx(DotPattern,{radius:tg/2,className:xu}):jsxRuntimeExports.jsx(LinePattern,{dimensions:ig,lineWidth:Sa,variant:aa,className:xu})}),jsxRuntimeExports.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${R1})`})]})}BackgroundComponent.displayName="Background";const Background=reactExports.memo(BackgroundComponent);function PlusIcon(){return jsxRuntimeExports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:jsxRuntimeExports.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function MinusIcon(){return jsxRuntimeExports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:jsxRuntimeExports.jsx("path",{d:"M0 0h32v4.2H0z"})})}function FitViewIcon(){return jsxRuntimeExports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:jsxRuntimeExports.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function LockIcon(){return jsxRuntimeExports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:jsxRuntimeExports.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function UnlockIcon(){return jsxRuntimeExports.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:jsxRuntimeExports.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function ControlButton({children:la,className:aa,...ca}){return jsxRuntimeExports.jsx("button",{type:"button",className:cc(["react-flow__controls-button",aa]),...ca,children:la})}const selector$2=la=>({isInteractive:la.nodesDraggable||la.nodesConnectable||la.elementsSelectable,minZoomReached:la.transform[2]<=la.minZoom,maxZoomReached:la.transform[2]>=la.maxZoom,ariaLabelConfig:la.ariaLabelConfig});function ControlsComponent({style:la,showZoom:aa=!0,showFitView:ca=!0,showInteractive:ua=!0,fitViewOptions:Sa,onZoomIn:hl,onZoomOut:pl,onFitView:ml,onInteractiveChange:gl,className:wc,children:xu,position:ff="bottom-left",orientation:jf="vertical","aria-label":Uf}){const rp=useStoreApi(),{isInteractive:np,minZoomReached:qm,maxZoomReached:Vm,ariaLabelConfig:eg}=useStore$1(selector$2,shallow$1),{zoomIn:tg,zoomOut:rg,fitView:ig}=useReactFlow(),vv=()=>{tg(),hl?.()},R1=()=>{rg(),pl?.()},O1=()=>{ig(Sa),ml?.()},K0=()=>{rp.setState({nodesDraggable:!np,nodesConnectable:!np,elementsSelectable:!np}),gl?.(!np)},J0=jf==="horizontal"?"horizontal":"vertical";return jsxRuntimeExports.jsxs(Panel,{className:cc(["react-flow__controls",J0,wc]),position:ff,style:la,"data-testid":"rf__controls","aria-label":Uf??eg["controls.ariaLabel"],children:[aa&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(ControlButton,{onClick:vv,className:"react-flow__controls-zoomin",title:eg["controls.zoomIn.ariaLabel"],"aria-label":eg["controls.zoomIn.ariaLabel"],disabled:Vm,children:jsxRuntimeExports.jsx(PlusIcon,{})}),jsxRuntimeExports.jsx(ControlButton,{onClick:R1,className:"react-flow__controls-zoomout",title:eg["controls.zoomOut.ariaLabel"],"aria-label":eg["controls.zoomOut.ariaLabel"],disabled:qm,children:jsxRuntimeExports.jsx(MinusIcon,{})})]}),ca&&jsxRuntimeExports.jsx(ControlButton,{className:"react-flow__controls-fitview",onClick:O1,title:eg["controls.fitView.ariaLabel"],"aria-label":eg["controls.fitView.ariaLabel"],children:jsxRuntimeExports.jsx(FitViewIcon,{})}),ua&&jsxRuntimeExports.jsx(ControlButton,{className:"react-flow__controls-interactive",onClick:K0,title:eg["controls.interactive.ariaLabel"],"aria-label":eg["controls.interactive.ariaLabel"],children:np?jsxRuntimeExports.jsx(UnlockIcon,{}):jsxRuntimeExports.jsx(LockIcon,{})}),xu]})}ControlsComponent.displayName="Controls";reactExports.memo(ControlsComponent);function MiniMapNodeComponent({id:la,x:aa,y:ca,width:ua,height:Sa,style:hl,color:pl,strokeColor:ml,strokeWidth:gl,className:wc,borderRadius:xu,shapeRendering:ff,selected:jf,onClick:Uf}){const{background:rp,backgroundColor:np}=hl||{},qm=pl||rp||np;return jsxRuntimeExports.jsx("rect",{className:cc(["react-flow__minimap-node",{selected:jf},wc]),x:aa,y:ca,rx:xu,ry:xu,width:ua,height:Sa,style:{fill:qm,stroke:ml,strokeWidth:gl},shapeRendering:ff,onClick:Uf?Vm=>Uf(Vm,la):void 0})}const MiniMapNode=reactExports.memo(MiniMapNodeComponent),selectorNodeIds=la=>la.nodes.map(aa=>aa.id),getAttrFunction=la=>la instanceof Function?la:()=>la;function MiniMapNodes({nodeStrokeColor:la,nodeColor:aa,nodeClassName:ca="",nodeBorderRadius:ua=5,nodeStrokeWidth:Sa,nodeComponent:hl=MiniMapNode,onClick:pl}){const ml=useStore$1(selectorNodeIds,shallow$1),gl=getAttrFunction(aa),wc=getAttrFunction(la),xu=getAttrFunction(ca),ff=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:ml.map(jf=>jsxRuntimeExports.jsx(NodeComponentWrapper,{id:jf,nodeColorFunc:gl,nodeStrokeColorFunc:wc,nodeClassNameFunc:xu,nodeBorderRadius:ua,nodeStrokeWidth:Sa,NodeComponent:hl,onClick:pl,shapeRendering:ff},jf))})}function NodeComponentWrapperInner({id:la,nodeColorFunc:aa,nodeStrokeColorFunc:ca,nodeClassNameFunc:ua,nodeBorderRadius:Sa,nodeStrokeWidth:hl,shapeRendering:pl,NodeComponent:ml,onClick:gl}){const{node:wc,x:xu,y:ff,width:jf,height:Uf}=useStore$1(rp=>{const{internals:np}=rp.nodeLookup.get(la),qm=np.userNode,{x:Vm,y:eg}=np.positionAbsolute,{width:tg,height:rg}=getNodeDimensions(qm);return{node:qm,x:Vm,y:eg,width:tg,height:rg}},shallow$1);return!wc||wc.hidden||!nodeHasDimensions(wc)?null:jsxRuntimeExports.jsx(ml,{x:xu,y:ff,width:jf,height:Uf,style:wc.style,selected:!!wc.selected,className:ua(wc),color:aa(wc),borderRadius:Sa,strokeColor:ca(wc),strokeWidth:hl,shapeRendering:pl,onClick:gl,id:wc.id})}const NodeComponentWrapper=reactExports.memo(NodeComponentWrapperInner);var MiniMapNodes$1=reactExports.memo(MiniMapNodes);const defaultWidth=200,defaultHeight=150,filterHidden=la=>!la.hidden,selector$1=la=>{const aa={x:-la.transform[0]/la.transform[2],y:-la.transform[1]/la.transform[2],width:la.width/la.transform[2],height:la.height/la.transform[2]};return{viewBB:aa,boundingRect:la.nodeLookup.size>0?getBoundsOfRects(getInternalNodesBounds(la.nodeLookup,{filter:filterHidden}),aa):aa,rfId:la.rfId,panZoom:la.panZoom,translateExtent:la.translateExtent,flowWidth:la.width,flowHeight:la.height,ariaLabelConfig:la.ariaLabelConfig}},ARIA_LABEL_KEY="react-flow__minimap-desc";function MiniMapComponent({style:la,className:aa,nodeStrokeColor:ca,nodeColor:ua,nodeClassName:Sa="",nodeBorderRadius:hl=5,nodeStrokeWidth:pl,nodeComponent:ml,bgColor:gl,maskColor:wc,maskStrokeColor:xu,maskStrokeWidth:ff,position:jf="bottom-right",onClick:Uf,onNodeClick:rp,pannable:np=!1,zoomable:qm=!1,ariaLabel:Vm,inversePan:eg,zoomStep:tg=1,offsetScale:rg=5}){const ig=useStoreApi(),vv=reactExports.useRef(null),{boundingRect:R1,viewBB:O1,rfId:K0,panZoom:J0,translateExtent:Hw,flowWidth:qw,flowHeight:Y0,ariaLabelConfig:G0}=useStore$1(selector$1,shallow$1),X0=la?.width??defaultWidth,d_=la?.height??defaultHeight,f_=R1.width/X0,zN=R1.height/d_,BN=Math.max(f_,zN),iF=BN*X0,yY=BN*d_,vQ=rg*BN,Ohe=R1.x-(iF-R1.width)/2-vQ,bY=R1.y-(yY-R1.height)/2-vQ,Lhe=iF+vQ*2,Dhe=yY+vQ*2,kdt=`${ARIA_LABEL_KEY}-${K0}`,eht=reactExports.useRef(0),oht=reactExports.useRef();eht.current=BN,reactExports.useEffect(()=>{if(vv.current&&J0)return oht.current=XYMinimap({domNode:vv.current,panZoom:J0,getTransform:()=>ig.getState().transform,getViewScale:()=>eht.current}),()=>{oht.current?.destroy()}},[J0]),reactExports.useEffect(()=>{oht.current?.update({translateExtent:Hw,width:qw,height:Y0,inversePan:eg,pannable:np,zoomStep:tg,zoomable:qm})},[np,qm,eg,tg,Hw,qw,Y0]);const iht=Uf?dht=>{const[Mdt,opt]=oht.current?.pointer(dht)||[0,0];Uf(dht,{x:Mdt,y:opt})}:void 0,Uhe=rp?reactExports.useCallback((dht,Mdt)=>{const opt=ig.getState().nodeLookup.get(Mdt).internals.userNode;rp(dht,opt)},[]):void 0,Bhe=Vm??G0["minimap.ariaLabel"];return jsxRuntimeExports.jsx(Panel,{position:jf,style:{...la,"--xy-minimap-background-color-props":typeof gl=="string"?gl:void 0,"--xy-minimap-mask-background-color-props":typeof wc=="string"?wc:void 0,"--xy-minimap-mask-stroke-color-props":typeof xu=="string"?xu:void 0,"--xy-minimap-mask-stroke-width-props":typeof ff=="number"?ff*BN:void 0,"--xy-minimap-node-background-color-props":typeof ua=="string"?ua:void 0,"--xy-minimap-node-stroke-color-props":typeof ca=="string"?ca:void 0,"--xy-minimap-node-stroke-width-props":typeof pl=="number"?pl:void 0},className:cc(["react-flow__minimap",aa]),"data-testid":"rf__minimap",children:jsxRuntimeExports.jsxs("svg",{width:X0,height:d_,viewBox:`${Ohe} ${bY} ${Lhe} ${Dhe}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":kdt,ref:vv,onClick:iht,children:[Bhe&&jsxRuntimeExports.jsx("title",{id:kdt,children:Bhe}),jsxRuntimeExports.jsx(MiniMapNodes$1,{onClick:Uhe,nodeColor:ua,nodeStrokeColor:ca,nodeBorderRadius:hl,nodeClassName:Sa,nodeStrokeWidth:pl,nodeComponent:ml}),jsxRuntimeExports.jsx("path",{className:"react-flow__minimap-mask",d:`M${Ohe-vQ},${bY-vQ}h${Lhe+vQ*2}v${Dhe+vQ*2}h${-Lhe-vQ*2}z
|
|
19412
19412
|
M${O1.x},${O1.y}h${O1.width}v${O1.height}h${-O1.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}MiniMapComponent.displayName="MiniMap";reactExports.memo(MiniMapComponent);const scaleSelector=la=>aa=>la?`${Math.max(1/aa.transform[2],1)}`:void 0,defaultPositions={[ResizeControlVariant.Line]:"right",[ResizeControlVariant.Handle]:"bottom-right"};function ResizeControl({nodeId:la,position:aa,variant:ca=ResizeControlVariant.Handle,className:ua,style:Sa=void 0,children:hl,color:pl,minWidth:ml=10,minHeight:gl=10,maxWidth:wc=Number.MAX_VALUE,maxHeight:xu=Number.MAX_VALUE,keepAspectRatio:ff=!1,resizeDirection:jf,autoScale:Uf=!0,shouldResize:rp,onResizeStart:np,onResize:qm,onResizeEnd:Vm}){const eg=useNodeId(),tg=typeof la=="string"?la:eg,rg=useStoreApi(),ig=reactExports.useRef(null),vv=ca===ResizeControlVariant.Handle,R1=useStore$1(reactExports.useCallback(scaleSelector(vv&&Uf),[vv,Uf]),shallow$1),O1=reactExports.useRef(null),K0=aa??defaultPositions[ca];reactExports.useEffect(()=>{if(!(!ig.current||!tg))return O1.current||(O1.current=XYResizer({domNode:ig.current,nodeId:tg,getStoreItems:()=>{const{nodeLookup:Hw,transform:qw,snapGrid:Y0,snapToGrid:G0,nodeOrigin:X0,domNode:d_}=rg.getState();return{nodeLookup:Hw,transform:qw,snapGrid:Y0,snapToGrid:G0,nodeOrigin:X0,paneDomNode:d_}},onChange:(Hw,qw)=>{const{triggerNodeChanges:Y0,nodeLookup:G0,parentLookup:X0,nodeOrigin:d_}=rg.getState(),f_=[],zN={x:Hw.x,y:Hw.y},BN=G0.get(tg);if(BN&&BN.expandParent&&BN.parentId){const iF=BN.origin??d_,yY=Hw.width??BN.measured.width??0,vQ=Hw.height??BN.measured.height??0,Ohe={id:BN.id,parentId:BN.parentId,rect:{width:yY,height:vQ,...evaluateAbsolutePosition({x:Hw.x??BN.position.x,y:Hw.y??BN.position.y},{width:yY,height:vQ},BN.parentId,G0,iF)}},bY=handleExpandParent([Ohe],G0,X0,d_);f_.push(...bY),zN.x=Hw.x?Math.max(iF[0]*yY,Hw.x):void 0,zN.y=Hw.y?Math.max(iF[1]*vQ,Hw.y):void 0}if(zN.x!==void 0&&zN.y!==void 0){const iF={id:tg,type:"position",position:{...zN}};f_.push(iF)}if(Hw.width!==void 0&&Hw.height!==void 0){const yY={id:tg,type:"dimensions",resizing:!0,setAttributes:jf?jf==="horizontal"?"width":"height":!0,dimensions:{width:Hw.width,height:Hw.height}};f_.push(yY)}for(const iF of qw){const yY={...iF,type:"position"};f_.push(yY)}Y0(f_)},onEnd:({width:Hw,height:qw})=>{const Y0={id:tg,type:"dimensions",resizing:!1,dimensions:{width:Hw,height:qw}};rg.getState().triggerNodeChanges([Y0])}})),O1.current.update({controlPosition:K0,boundaries:{minWidth:ml,minHeight:gl,maxWidth:wc,maxHeight:xu},keepAspectRatio:ff,resizeDirection:jf,onResizeStart:np,onResize:qm,onResizeEnd:Vm,shouldResize:rp}),()=>{O1.current?.destroy()}},[K0,ml,gl,wc,xu,ff,np,qm,Vm,rp]);const J0=K0.split("-");return jsxRuntimeExports.jsx("div",{className:cc(["react-flow__resize-control","nodrag",...J0,ca,ua]),ref:ig,style:{...Sa,scale:R1,...pl&&{[vv?"backgroundColor":"borderColor"]:pl}},children:hl})}reactExports.memo(ResizeControl);const INITIAL_VIEWPORT_NODE_ID="__INITIAL_VIEWPORT__",useZoomHandler=()=>{const{getNode:la,setCenter:aa,fitView:ca,getNodes:ua,setViewport:Sa,getEdges:hl}=useReactFlow(),{moduleName:pl}=useParams(),ml=useAppStore(Vm=>Vm.setPreviouslyFocusedNode),gl=useAppStore(Vm=>Vm.currentFocusedNode),wc=useAppStore(Vm=>Vm.setCurrentFocusedNode),xu=useAppStore(Vm=>Vm.setSelectedAgentId),ff=useAppStore(Vm=>Vm.setSelectedDecisionId),jf=useAppStore(Vm=>Vm.setLastFocusedAgentId),Uf=useAppStore(Vm=>Vm.pushFocusedNode),rp=useAppStore(Vm=>Vm.clearFocusedForward);return{zoomHandler:(Vm,eg,tg)=>{const rg=eg?.mode||"normal";gl&&gl!==Vm&&(rg==="normal"?(Uf(gl),ml(gl),rp()):rg==="back"?useAppStore.getState().pushFocusedForward(gl):rg==="forward"&&Uf(gl)),wc(Vm);const ig=la(Vm);if(ig){if(ig.type==="event")try{const R1=fetchModule$2(pl||"").getWorkflowForEvent(Vm);if(!R1)return;const O1=R1.name,K0=la(O1);if(K0){const J0=ig.width||0,Hw=ig.height||0,qw=ig.position.x+J0/2,Y0=ig.position.y+Hw/2,G0=K0.width||0,X0=K0.height||0,d_=K0.position.x+G0/2,f_=K0.position.y+X0/2,zN=(qw+d_)/2,BN=(Y0+f_)/2,iF=Math.abs(qw-d_)+(J0+G0)/2,yY=Math.abs(Y0-f_)+(Hw+X0),vQ=Math.max(iF,yY);let Ohe=.9;vQ>1200?Ohe=.5:vQ>800?Ohe=.65:vQ>500?Ohe=.8:vQ>300&&(Ohe=.85),requestAnimationFrame(()=>{aa(zN,BN,{zoom:Ohe,duration:1200})})}else{const J0=ig.width||0,Hw=ig.height||0,qw=ig.position.x+J0/2,Y0=ig.position.y+Hw/2;requestAnimationFrame(()=>{aa(qw,Y0,{zoom:1.15,duration:700})})}}catch(vv){console.error("Error getting workflow for event:",vv);const R1=ig.width||0,O1=ig.height||0,K0=ig.position.x+R1/2,J0=ig.position.y+O1/2;requestAnimationFrame(()=>{aa(K0,J0,{zoom:1.15,duration:700})})}else if(ig.type==="agent")try{if(fetchModule$2(pl||"").getAgent(Vm)){const K0=ua().filter(J0=>J0.type==="swimlane"&&J0.data.name.includes(Vm)).map(J0=>({id:J0.id}));if(K0.length>0)requestAnimationFrame(()=>{ca({nodes:[{id:Vm},...K0],duration:700,padding:.1})});else{const J0=ig.width||0,Hw=ig.height||0,qw=ig.position.x+J0/2,Y0=ig.position.y+Hw/2;requestAnimationFrame(()=>{aa(qw,Y0,{zoom:1.15,duration:700})})}}else{const O1=ig.width||0,K0=ig.height||0,J0=ig.position.x+O1/2,Hw=ig.position.y+K0/2;requestAnimationFrame(()=>{aa(J0,Hw,{zoom:1.15,duration:700})})}jf(Vm),eg?.openForm&&xu(Vm)}catch(vv){console.error("Error getting flows for agent:",vv);const R1=ig.width||0,O1=ig.height||0,K0=ig.position.x+R1/2,J0=ig.position.y+O1/2;requestAnimationFrame(()=>{aa(K0,J0,{zoom:1.15,duration:700})})}else if(ig.type==="relationship"){const O1=hl().filter(Hw=>Hw.source===Vm||Hw.target===Vm).flatMap(Hw=>[Hw.source,Hw.target]),J0=Array.from(new Set([...O1,Vm])).map(Hw=>({id:Hw}));if(J0.length>1)requestAnimationFrame(()=>{ca({nodes:J0,duration:1200,padding:.2})});else{const Hw=ig.width||0,qw=ig.height||0,Y0=ig.position.x+Hw/2,G0=ig.position.y+qw/2;requestAnimationFrame(()=>{aa(Y0,G0,{zoom:1.15,duration:700})})}}else if(ig.type==="decision"){const vv=ig.width||0,R1=ig.height||0,O1=ig.position.x+vv/2,K0=ig.position.y+R1/2;requestAnimationFrame(()=>{aa(O1,K0,{zoom:1.15,duration:700})}),eg?.openForm&&(ff(Vm),xu(null))}else if(ig.type==="decisionNode"){const vv=ig.width||0,R1=ig.height||0,O1=ig.position.x+vv/2,K0=ig.position.y+R1/2;if(requestAnimationFrame(()=>{aa(O1,K0,{zoom:1.15,duration:700})}),eg?.openForm){const J0=Vm.replace("decision-node-","");ff(J0),xu(null)}}else{const vv=ig.width||0,R1=ig.height||0,O1=ig.position.x+vv/2,K0=ig.position.y+R1/2;requestAnimationFrame(()=>{aa(O1,K0,{zoom:1.15,duration:700})})}tg&&tg()}},restoreInitialViewport:Vm=>{const eg=Vm||{x:100,y:50,zoom:.6};requestAnimationFrame(()=>{typeof Sa=="function"?Sa(eg,{duration:700}):aa(eg.x,eg.y,{zoom:eg.zoom,duration:700})}),wc(null)}}},useSaveUISpec=()=>{const la=Fdt(),{teamName:aa}=useParams(),ca=useAppStore(pl=>pl.user),ua=ca.GitHub.Token,Sa=ca.GitHub.Username;return{saveUISpec:(pl,ml)=>{if(!aa)throw new Error("Team name is required to save UI spec");la(pl),saveUISpecToGit(aa,JSON.stringify(pl,null,2),ml,Sa,ua)}}},useAgent=()=>{const{fitView:la}=useReactFlow(),{incrementModuleDbChangeCount:aa,setSelectedAgentId:ca}=useAppStore(),{zoomHandler:ua}=useZoomHandler(),{teamName:Sa,moduleName:hl}=useParams(),pl=useAppStore(bY=>bY.user),ml=pl.GitHub.Token,gl=pl.GitHub.Username,wc=Un$1(),{saveUISpec:xu}=useSaveUISpec(),ff=()=>{if(!Sa)throw new Error("teamName is undefined");if(!hl)throw new Error("moduleName is undefined");return{teamName:Sa,moduleName:hl,githubToken:ml,githubUsername:gl}},jf=bY=>{const Lhe=ff(),Dhe=fetchModule$2(Lhe.moduleName),kdt=Dhe.getAgent(bY);if(!kdt)throw new Error(`Agent ${bY} not found`);return{module:Dhe,agent:kdt,moduleName:Lhe.moduleName}},Uf=async bY=>{const{teamName:Lhe,moduleName:Dhe,githubToken:kdt,githubUsername:eht}=ff(),oht=fetchModule$2(Dhe).toString();aa(),await saveModuleToGit(Lhe,Dhe,oht,bY,eht,kdt)},rp=()=>{requestAnimationFrame(()=>{la()})};return{addAgent:async bY=>{const Lhe=ff(),Dhe=fetchModule$2(Lhe.moduleName),kdt=new Agent$2(bY,Dhe.name);if(Dhe.addAgent(kdt),Uf(`Add Agent ${bY}`),wc&&xu)try{const eht=`${hl}/${bY}`,oht=repopulateUISchemaForNewAgent(wc,eht);xu(oht,`Update UI schema for new agent ${bY}`)}catch(eht){console.error("Failed to repopulate UI schema for new agent:",eht)}setTimeout(()=>{ca(bY)},50),setTimeout(()=>{ua(bY,{openForm:!1})},500),rp()},removeAgent:async bY=>{const Lhe=ff();if(fetchModule$2(Lhe.moduleName).removeAgent(bY),Uf(`Remove Agent ${bY}`),wc&&xu)try{const kdt=`${hl}/${bY}`,eht=repopulateUISchemaAfterAgentDeletion(wc,kdt);xu(eht,`Update UI schema after deleting agent ${bY}`)}catch(kdt){console.error("[useAgent] Failed to repopulate UI schema after agent deletion:",kdt)}rp()},getAgents:()=>{const bY=ff();try{const Lhe=fetchModule$2(bY.moduleName);return Lhe?Lhe.getAgentNames():[]}catch(Lhe){return console.error("Failed to get agents:",Lhe),[]}},setAgentInstruction:async(bY,Lhe)=>{ff();const{agent:Dhe}=jf(bY);if(Lhe.length>0){const kdt=e$b(Lhe);Dhe.setInstruction(kdt)}else Dhe.removeInstruction();await Uf(`Set Instruction for Agent ${bY}`)},setAgentLLM:async(bY,Lhe)=>{ff();const{agent:Dhe}=jf(bY);Lhe.length>0?Dhe.setLLM(Lhe):Dhe.removeLLM(),await Uf(`Set LLM for Agent ${bY}`)},setAgentTools:async(bY,Lhe)=>{ff(),console.log("setAgentTools",bY,Lhe);const{agent:Dhe}=jf(bY);Lhe.length>0?Dhe.setTools(Lhe):Dhe.removeTools(),await Uf(`Set Tools for Agent ${bY}`)},setAgentIntegration:async(bY,Lhe)=>{ff();const{agent:Dhe}=jf(bY);Lhe.length>0?Dhe.attributes.set("integration",Lhe):Dhe.attributes.delete("integration"),await Uf(`Set Integration for Agent ${bY}`)},getAgent:bY=>{const Lhe=ff(),Dhe=fetchModule$2(Lhe.moduleName);if(!Dhe)throw new Error("Module not found");return Dhe.getAgent(bY)},getAgentDirectives:bY=>{const{module:Lhe}=jf(bY);return Lhe.getAllDirectives().filter(Dhe=>Dhe.name.startsWith(`${bY}.`))},getAgentScenarios:bY=>{const{module:Lhe}=jf(bY);return Lhe.getAllScenarios().filter(Dhe=>Dhe.name.startsWith(`${bY}.`))},getAgentGlossary:bY=>{const{module:Lhe}=jf(bY);return Lhe.getAllGlossaryEntries().filter(Dhe=>Dhe.name.startsWith(`${bY}.`))},getAgentFlows:bY=>{const{module:Lhe}=jf(bY);return Lhe.getAllFlows().filter(Dhe=>Dhe.name.startsWith(`${bY}.`))},setAgentRole:async(bY,Lhe)=>{ff();const{agent:Dhe}=jf(bY);if(Lhe.length>0){const kdt=e$b(Lhe);Dhe.attributes.set("role",kdt)}else Dhe.removeAttribute("role");await Uf(`Set Role for Agent ${bY}`)},setAgentResponseSchema:async(bY,Lhe)=>{ff();const{agent:Dhe}=jf(bY);Lhe.length>0?Dhe.setResponseSchema(Lhe):(console.log("removeAgentResponseSchema",Dhe.getAgentFqName()),removeAgentResponseSchema$1(Dhe.getAgentFqName())),await Uf(`Set Response Schema for Agent ${bY}`)},removeAgentDirective:async bY=>{ff();const{module:Lhe}=jf(bY.split(".")[0]);Lhe.removeDirective(bY),await Uf(`Remove directive ${bY}`)},addAgentDirective:async bY=>{ff();const{module:Lhe}=jf(bY.split(".")[0]);Lhe.addDirective(bY,newAgentDirectiveFromIf(new IfPattern$1)),await Uf(`Add directive ${bY}`)},updateAgentDirective:async(bY,Lhe,Dhe)=>{ff();const{module:kdt}=jf(bY.split(".")[0]);kdt.removeDirective(bY);const eht=e$b(Lhe),oht=e$b(Dhe),iht=new IfPattern$1(LiteralPattern$1.String(eht)).addPattern(LiteralPattern$1.String(oht));kdt.addDirective(bY,newAgentDirectiveFromIf(iht)),await Uf(`Update directive ${bY}`)},removeAgentScenario:async bY=>{ff();const{module:Lhe}=jf(bY.split(".")[0]);Lhe.removeScenario(bY),await Uf(`Remove scenario ${bY}`)},removeAgentGlossary:async bY=>{ff();const{module:Lhe}=jf(bY.split(".")[0]);Lhe.removeGlossaryEntry(bY),await Uf(`Remove glossary ${bY}`)},addAgentScenario:async bY=>{ff();const{module:Lhe}=jf(bY.split(".")[0]);Lhe.addScenario(bY,newAgentScenarioFromIf(new IfPattern$1)),await Uf(`Add scenario ${bY}`)},updateAgentScenario:async(bY,Lhe,Dhe)=>{ff();const{module:kdt}=jf(bY.split(".")[0]);kdt.removeScenario(bY);const eht=e$b(Lhe),oht=new IfPattern$1(LiteralPattern$1.String(eht)).addPattern(LiteralPattern$1.Id(Dhe));kdt.addScenario(bY,newAgentScenarioFromIf(oht)),await Uf(`Update scenario ${bY}`)},addAgentGlossaryEntry:async(bY,Lhe,Dhe)=>{ff();const{module:kdt}=jf(bY.split(".")[0]),eht=e$b(Lhe),oht=Dhe?e$b(Dhe):"";kdt.addGlossaryEntry(bY,{name:oht,meaning:eht,synonyms:[],internal:!1}),await Uf(`Add glossary ${bY}`)},updateAgentGlossaryEntry:async(bY,Lhe,Dhe,kdt)=>{ff();const{module:eht}=jf(bY.split(".")[0]);eht.removeGlossaryEntry(bY);const oht=e$b(Lhe),iht=kdt?e$b(kdt):"",Uhe=Array.isArray(Dhe)?Dhe.map(Bhe=>e$b(Bhe)).join(", "):e$b(Dhe);eht.addGlossaryEntry(bY,{name:iht,meaning:oht,synonyms:Uhe,internal:!1}),await Uf(`Update glossary ${bY}`)},setAgentPublic:async(bY,Lhe)=>{ff();const{agent:Dhe,moduleName:kdt}=jf(bY);if(Dhe.setPublic(Lhe),await Uf(`Set Public status for Agent ${bY}`),wc&&xu)try{const eht=`${kdt}/${bY}`,oht=repopulateUISchemaForNewAgent(wc,eht);xu(oht,`Update UI schema - agent ${bY} ${Lhe?"made public":"made private"}`)}catch(eht){console.error("Failed to repopulate UI schema after agent public status change:",eht)}},getAgentPublic:bY=>{const{agent:Lhe}=jf(bY);return Lhe.isPublic()}}};function r$e(la){var aa,ca,ua="";if(typeof la=="string"||typeof la=="number")ua+=la;else if(typeof la=="object")if(Array.isArray(la)){var Sa=la.length;for(aa=0;aa<Sa;aa++)la[aa]&&(ca=r$e(la[aa]))&&(ua&&(ua+=" "),ua+=ca)}else for(ca in la)la[ca]&&(ua&&(ua+=" "),ua+=ca);return ua}function clsx(){for(var la,aa,ca=0,ua="",Sa=arguments.length;ca<Sa;ca++)(la=arguments[ca])&&(aa=r$e(la))&&(ua&&(ua+=" "),ua+=aa);return ua}function Mt$3(la){if(typeof document>"u")return;let aa=document.head||document.getElementsByTagName("head")[0],ca=document.createElement("style");ca.type="text/css",aa.firstChild?aa.insertBefore(ca,aa.firstChild):aa.appendChild(ca),ca.styleSheet?ca.styleSheet.cssText=la:ca.appendChild(document.createTextNode(la))}Mt$3(`:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: hsl(6, 78%, 57%);--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-container-width: fit-content;--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-padding: 14px;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-toast-shadow: 0px 4px 12px rgba(0, 0, 0, .1);--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55);--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;width:var(--toastify-container-width);box-sizing:border-box;color:#fff;display:flex;flex-direction:column}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right);align-items:end}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right);align-items:end}.Toastify__toast{--y: 0;position:relative;touch-action:none;width:var(--toastify-toast-width);min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:var(--toastify-toast-padding);border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);z-index:0;display:flex;flex:1 auto;align-items:center;word-break:break-word}@media only screen and (max-width: 480px){.Toastify__toast-container{width:100vw;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}.Toastify__toast{--toastify-toast-width: 100%;margin-bottom:0;border-radius:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{margin-inline-end:10px;width:22px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;position:absolute;top:6px;right:6px;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:1;opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial}.Toastify__progress-bar--wrp{position:absolute;overflow:hidden;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
|
|
19413
|
-
`);var L$7=la=>typeof la=="number"&&!isNaN(la),N$7=la=>typeof la=="string",P$a=la=>typeof la=="function",mt$2=la=>N$7(la)||L$7(la),B$6=la=>N$7(la)||P$a(la)?la:null,pt$2=(la,aa)=>la===!1||L$7(la)&&la>0?la:aa,z$6=la=>reactExports.isValidElement(la)||N$7(la)||P$a(la)||L$7(la);function Z$5(la,aa,ca=300){let{scrollHeight:ua,style:Sa}=la;requestAnimationFrame(()=>{Sa.minHeight="initial",Sa.height=ua+"px",Sa.transition=`all ${ca}ms`,requestAnimationFrame(()=>{Sa.height="0",Sa.padding="0",Sa.margin="0",setTimeout(aa,ca)})})}function $$6({enter:la,exit:aa,appendPosition:ca=!1,collapse:ua=!0,collapseDuration:Sa=300}){return function({children:hl,position:pl,preventExitTransition:ml,done:gl,nodeRef:wc,isIn:xu,playToast:ff}){let jf=ca?`${la}--${pl}`:la,Uf=ca?`${aa}--${pl}`:aa,rp=reactExports.useRef(0);return reactExports.useLayoutEffect(()=>{let np=wc.current,qm=jf.split(" "),Vm=eg=>{eg.target===wc.current&&(ff(),np.removeEventListener("animationend",Vm),np.removeEventListener("animationcancel",Vm),rp.current===0&&eg.type!=="animationcancel"&&np.classList.remove(...qm))};np.classList.add(...qm),np.addEventListener("animationend",Vm),np.addEventListener("animationcancel",Vm)},[]),reactExports.useEffect(()=>{let np=wc.current,qm=()=>{np.removeEventListener("animationend",qm),ua?Z$5(np,gl,Sa):gl()};xu||(ml?qm():(rp.current=1,np.className+=` ${Uf}`,np.addEventListener("animationend",qm)))},[xu]),React.createElement(React.Fragment,null,hl)}}function J$6(la,aa){return{content:tt$2(la.content,la.props),containerId:la.props.containerId,id:la.props.toastId,theme:la.props.theme,type:la.props.type,data:la.props.data||{},isLoading:la.props.isLoading,icon:la.props.icon,reason:la.removalReason,status:aa}}function tt$2(la,aa,ca=!1){return reactExports.isValidElement(la)&&!N$7(la.type)?reactExports.cloneElement(la,{closeToast:aa.closeToast,toastProps:aa,data:aa.data,isPaused:ca}):P$a(la)?la({closeToast:aa.closeToast,toastProps:aa,data:aa.data,isPaused:ca}):la}function yt$2({closeToast:la,theme:aa,ariaLabel:ca="close"}){return React.createElement("button",{className:`Toastify__close-button Toastify__close-button--${aa}`,type:"button",onClick:ua=>{ua.stopPropagation(),la(!0)},"aria-label":ca},React.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},React.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}function gt$3({delay:la,isRunning:aa,closeToast:ca,type:ua="default",hide:Sa,className:hl,controlledProgress:pl,progress:ml,rtl:gl,isIn:wc,theme:xu}){let ff=Sa||pl&&ml===0,jf={animationDuration:`${la}ms`,animationPlayState:aa?"running":"paused"};pl&&(jf.transform=`scaleX(${ml})`);let Uf=clsx("Toastify__progress-bar",pl?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${xu}`,`Toastify__progress-bar--${ua}`,{"Toastify__progress-bar--rtl":gl}),rp=P$a(hl)?hl({rtl:gl,type:ua,defaultClassName:Uf}):clsx(Uf,hl),np={[pl&&ml>=1?"onTransitionEnd":"onAnimationEnd"]:pl&&ml<1?null:()=>{wc&&ca()}};return React.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":ff},React.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${xu} Toastify__progress-bar--${ua}`}),React.createElement("div",{role:"progressbar","aria-hidden":ff?"true":"false","aria-label":"notification timer",className:rp,style:jf,...np}))}var Xt$1=1,at$2=()=>`${Xt$1++}`;function _t$2(la,aa,ca){let ua=1,Sa=0,hl=[],pl=[],ml=aa,gl=new Map,wc=new Set,xu=eg=>(wc.add(eg),()=>wc.delete(eg)),ff=()=>{pl=Array.from(gl.values()),wc.forEach(eg=>eg())},jf=({containerId:eg,toastId:tg,updateId:rg})=>{let ig=eg?eg!==la:la!==1,vv=gl.has(tg)&&rg==null;return ig||vv},Uf=(eg,tg)=>{gl.forEach(rg=>{var ig;(tg==null||tg===rg.props.toastId)&&((ig=rg.toggle)==null||ig.call(rg,eg))})},rp=eg=>{var tg,rg;(rg=(tg=eg.props)==null?void 0:tg.onClose)==null||rg.call(tg,eg.removalReason),eg.isActive=!1},np=eg=>{if(eg==null)gl.forEach(rp);else{let tg=gl.get(eg);tg&&rp(tg)}ff()},qm=()=>{Sa-=hl.length,hl=[]},Vm=eg=>{var tg,rg;let{toastId:ig,updateId:vv}=eg.props,R1=vv==null;eg.staleId&&gl.delete(eg.staleId),eg.isActive=!0,gl.set(ig,eg),ff(),ca(J$6(eg,R1?"added":"updated")),R1&&((rg=(tg=eg.props).onOpen)==null||rg.call(tg))};return{id:la,props:ml,observe:xu,toggle:Uf,removeToast:np,toasts:gl,clearQueue:qm,buildToast:(eg,tg)=>{if(jf(tg))return;let{toastId:rg,updateId:ig,data:vv,staleId:R1,delay:O1}=tg,K0=ig==null;K0&&Sa++;let J0={...ml,style:ml.toastStyle,key:ua++,...Object.fromEntries(Object.entries(tg).filter(([qw,Y0])=>Y0!=null)),toastId:rg,updateId:ig,data:vv,isIn:!1,className:B$6(tg.className||ml.toastClassName),progressClassName:B$6(tg.progressClassName||ml.progressClassName),autoClose:tg.isLoading?!1:pt$2(tg.autoClose,ml.autoClose),closeToast(qw){gl.get(rg).removalReason=qw,np(rg)},deleteToast(){let qw=gl.get(rg);if(qw!=null){if(ca(J$6(qw,"removed")),gl.delete(rg),Sa--,Sa<0&&(Sa=0),hl.length>0){Vm(hl.shift());return}ff()}}};J0.closeButton=ml.closeButton,tg.closeButton===!1||z$6(tg.closeButton)?J0.closeButton=tg.closeButton:tg.closeButton===!0&&(J0.closeButton=z$6(ml.closeButton)?ml.closeButton:!0);let Hw={content:eg,props:J0,staleId:R1};ml.limit&&ml.limit>0&&Sa>ml.limit&&K0?hl.push(Hw):L$7(O1)?setTimeout(()=>{Vm(Hw)},O1):Vm(Hw)},setProps(eg){ml=eg},setToggle:(eg,tg)=>{let rg=gl.get(eg);rg&&(rg.toggle=tg)},isToastActive:eg=>{var tg;return(tg=gl.get(eg))==null?void 0:tg.isActive},getSnapshot:()=>pl}}var I$9=new Map,F$9=[],st$2=new Set,Vt$1=la=>st$2.forEach(aa=>aa(la)),bt$1=()=>I$9.size>0;function Qt$1(){F$9.forEach(la=>nt$2(la.content,la.options)),F$9=[]}var vt$2=(la,{containerId:aa})=>{var ca;return(ca=I$9.get(aa||1))==null?void 0:ca.toasts.get(la)};function X$5(la,aa){var ca;if(aa)return!!((ca=I$9.get(aa))!=null&&ca.isToastActive(la));let ua=!1;return I$9.forEach(Sa=>{Sa.isToastActive(la)&&(ua=!0)}),ua}function ht$2(la){if(!bt$1()){F$9=F$9.filter(aa=>la!=null&&aa.options.toastId!==la);return}if(la==null||mt$2(la))I$9.forEach(aa=>{aa.removeToast(la)});else if(la&&("containerId"in la||"id"in la)){let aa=I$9.get(la.containerId);aa?aa.removeToast(la.id):I$9.forEach(ca=>{ca.removeToast(la.id)})}}var Ct$2=(la={})=>{I$9.forEach(aa=>{aa.props.limit&&(!la.containerId||aa.id===la.containerId)&&aa.clearQueue()})};function nt$2(la,aa){z$6(la)&&(bt$1()||F$9.push({content:la,options:aa}),I$9.forEach(ca=>{ca.buildToast(la,aa)}))}function xt$1(la){var aa;(aa=I$9.get(la.containerId||1))==null||aa.setToggle(la.id,la.fn)}function rt$2(la,aa){I$9.forEach(ca=>{(aa==null||!(aa!=null&&aa.containerId)||aa?.containerId===ca.id)&&ca.toggle(la,aa?.id)})}function Et$3(la){let aa=la.containerId||1;return{subscribe(ca){let ua=_t$2(aa,la,Vt$1);I$9.set(aa,ua);let Sa=ua.observe(ca);return Qt$1(),()=>{Sa(),I$9.delete(aa)}},setProps(ca){var ua;(ua=I$9.get(aa))==null||ua.setProps(ca)},getSnapshot(){var ca;return(ca=I$9.get(aa))==null?void 0:ca.getSnapshot()}}}function Pt$3(la){return st$2.add(la),()=>{st$2.delete(la)}}function Wt$1(la){return la&&(N$7(la.toastId)||L$7(la.toastId))?la.toastId:at$2()}function U$5(la,aa){return nt$2(la,aa),aa.toastId}function V$8(la,aa){return{...aa,type:aa&&aa.type||la,toastId:Wt$1(aa)}}function Q$6(la){return(aa,ca)=>U$5(aa,V$8(la,ca))}function y$b(la,aa){return U$5(la,V$8("default",aa))}y$b.loading=(la,aa)=>U$5(la,V$8("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...aa}));function Gt$1(la,{pending:aa,error:ca,success:ua},Sa){let hl;aa&&(hl=N$7(aa)?y$b.loading(aa,Sa):y$b.loading(aa.render,{...Sa,...aa}));let pl={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},ml=(wc,xu,ff)=>{if(xu==null){y$b.dismiss(hl);return}let jf={type:wc,...pl,...Sa,data:ff},Uf=N$7(xu)?{render:xu}:xu;return hl?y$b.update(hl,{...jf,...Uf}):y$b(Uf.render,{...jf,...Uf}),ff},gl=P$a(la)?la():la;return gl.then(wc=>ml("success",ua,wc)).catch(wc=>ml("error",ca,wc)),gl}y$b.promise=Gt$1;y$b.success=Q$6("success");y$b.info=Q$6("info");y$b.error=Q$6("error");y$b.warning=Q$6("warning");y$b.warn=y$b.warning;y$b.dark=(la,aa)=>U$5(la,V$8("default",{theme:"dark",...aa}));function qt$1(la){ht$2(la)}y$b.dismiss=qt$1;y$b.clearWaitingQueue=Ct$2;y$b.isActive=X$5;y$b.update=(la,aa={})=>{let ca=vt$2(la,aa);if(ca){let{props:ua,content:Sa}=ca,hl={delay:100,...ua,...aa,toastId:aa.toastId||la,updateId:at$2()};hl.toastId!==la&&(hl.staleId=la);let pl=hl.render||Sa;delete hl.render,U$5(pl,hl)}};y$b.done=la=>{y$b.update(la,{progress:1})};y$b.onChange=Pt$3;y$b.play=la=>rt$2(!0,la);y$b.pause=la=>rt$2(!1,la);function It$2(la){var aa;let{subscribe:ca,getSnapshot:ua,setProps:Sa}=reactExports.useRef(Et$3(la)).current;Sa(la);let hl=(aa=reactExports.useSyncExternalStore(ca,ua,ua))==null?void 0:aa.slice();function pl(ml){if(!hl)return[];let gl=new Map;return la.newestOnTop&&hl.reverse(),hl.forEach(wc=>{let{position:xu}=wc.props;gl.has(xu)||gl.set(xu,[]),gl.get(xu).push(wc)}),Array.from(gl,wc=>ml(wc[0],wc[1]))}return{getToastToRender:pl,isToastActive:X$5,count:hl?.length}}function At$2(la){let[aa,ca]=reactExports.useState(!1),[ua,Sa]=reactExports.useState(!1),hl=reactExports.useRef(null),pl=reactExports.useRef({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:ml,pauseOnHover:gl,closeToast:wc,onClick:xu,closeOnClick:ff}=la;xt$1({id:la.toastId,containerId:la.containerId,fn:ca}),reactExports.useEffect(()=>{if(la.pauseOnFocusLoss)return jf(),()=>{Uf()}},[la.pauseOnFocusLoss]);function jf(){document.hasFocus()||Vm(),window.addEventListener("focus",qm),window.addEventListener("blur",Vm)}function Uf(){window.removeEventListener("focus",qm),window.removeEventListener("blur",Vm)}function rp(R1){if(la.draggable===!0||la.draggable===R1.pointerType){eg();let O1=hl.current;pl.canCloseOnClick=!0,pl.canDrag=!0,O1.style.transition="none",la.draggableDirection==="x"?(pl.start=R1.clientX,pl.removalDistance=O1.offsetWidth*(la.draggablePercent/100)):(pl.start=R1.clientY,pl.removalDistance=O1.offsetHeight*(la.draggablePercent===80?la.draggablePercent*1.5:la.draggablePercent)/100)}}function np(R1){let{top:O1,bottom:K0,left:J0,right:Hw}=hl.current.getBoundingClientRect();R1.nativeEvent.type!=="touchend"&&la.pauseOnHover&&R1.clientX>=J0&&R1.clientX<=Hw&&R1.clientY>=O1&&R1.clientY<=K0?Vm():qm()}function qm(){ca(!0)}function Vm(){ca(!1)}function eg(){pl.didMove=!1,document.addEventListener("pointermove",rg),document.addEventListener("pointerup",ig)}function tg(){document.removeEventListener("pointermove",rg),document.removeEventListener("pointerup",ig)}function rg(R1){let O1=hl.current;if(pl.canDrag&&O1){pl.didMove=!0,aa&&Vm(),la.draggableDirection==="x"?pl.delta=R1.clientX-pl.start:pl.delta=R1.clientY-pl.start,pl.start!==R1.clientX&&(pl.canCloseOnClick=!1);let K0=la.draggableDirection==="x"?`${pl.delta}px, var(--y)`:`0, calc(${pl.delta}px + var(--y))`;O1.style.transform=`translate3d(${K0},0)`,O1.style.opacity=`${1-Math.abs(pl.delta/pl.removalDistance)}`}}function ig(){tg();let R1=hl.current;if(pl.canDrag&&pl.didMove&&R1){if(pl.canDrag=!1,Math.abs(pl.delta)>pl.removalDistance){Sa(!0),la.closeToast(!0),la.collapseAll();return}R1.style.transition="transform 0.2s, opacity 0.2s",R1.style.removeProperty("transform"),R1.style.removeProperty("opacity")}}let vv={onPointerDown:rp,onPointerUp:np};return ml&&gl&&(vv.onMouseEnter=Vm,la.stacked||(vv.onMouseLeave=qm)),ff&&(vv.onClick=R1=>{xu&&xu(R1),pl.canCloseOnClick&&wc(!0)}),{playToast:qm,pauseToast:Vm,isRunning:aa,preventExitTransition:ua,toastRef:hl,eventHandlers:vv}}var Ot$1=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect,G$6=({theme:la,type:aa,isLoading:ca,...ua})=>React.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:la==="colored"?"currentColor":`var(--toastify-icon-color-${aa})`,...ua});function ao$1(la){return React.createElement(G$6,{...la},React.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))}function so$1(la){return React.createElement(G$6,{...la},React.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))}function no$1(la){return React.createElement(G$6,{...la},React.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))}function ro$1(la){return React.createElement(G$6,{...la},React.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))}function io$1(){return React.createElement("div",{className:"Toastify__spinner"})}var W$5={info:so$1,warning:ao$1,success:no$1,error:ro$1,spinner:io$1},lo$2=la=>la in W$5;function Nt$1({theme:la,type:aa,isLoading:ca,icon:ua}){let Sa=null,hl={theme:la,type:aa};return ua===!1||(P$a(ua)?Sa=ua({...hl,isLoading:ca}):reactExports.isValidElement(ua)?Sa=reactExports.cloneElement(ua,hl):ca?Sa=W$5.spinner():lo$2(aa)&&(Sa=W$5[aa](hl))),Sa}var wt$2=la=>{let{isRunning:aa,preventExitTransition:ca,toastRef:ua,eventHandlers:Sa,playToast:hl}=At$2(la),{closeButton:pl,children:ml,autoClose:gl,onClick:wc,type:xu,hideProgressBar:ff,closeToast:jf,transition:Uf,position:rp,className:np,style:qm,progressClassName:Vm,updateId:eg,role:tg,progress:rg,rtl:ig,toastId:vv,deleteToast:R1,isIn:O1,isLoading:K0,closeOnClick:J0,theme:Hw,ariaLabel:qw}=la,Y0=clsx("Toastify__toast",`Toastify__toast-theme--${Hw}`,`Toastify__toast--${xu}`,{"Toastify__toast--rtl":ig},{"Toastify__toast--close-on-click":J0}),G0=P$a(np)?np({rtl:ig,position:rp,type:xu,defaultClassName:Y0}):clsx(Y0,np),X0=Nt$1(la),d_=!!rg||!gl,f_={closeToast:jf,type:xu,theme:Hw},zN=null;return pl===!1||(P$a(pl)?zN=pl(f_):reactExports.isValidElement(pl)?zN=reactExports.cloneElement(pl,f_):zN=yt$2(f_)),React.createElement(Uf,{isIn:O1,done:R1,position:rp,preventExitTransition:ca,nodeRef:ua,playToast:hl},React.createElement("div",{id:vv,tabIndex:0,onClick:wc,"data-in":O1,className:G0,...Sa,style:qm,ref:ua,...O1&&{role:tg,"aria-label":qw}},X0!=null&&React.createElement("div",{className:clsx("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!K0})},X0),tt$2(ml,la,!aa),zN,!la.customProgressBar&&React.createElement(gt$3,{...eg&&!d_?{key:`p-${eg}`}:{},rtl:ig,theme:Hw,delay:gl,isRunning:aa,isIn:O1,closeToast:jf,hide:ff,type:xu,className:Vm,controlledProgress:d_,progress:rg||0})))},K$7=(la,aa=!1)=>({enter:`Toastify--animate Toastify__${la}-enter`,exit:`Toastify--animate Toastify__${la}-exit`,appendPosition:aa}),lt$2=$$6(K$7("bounce",!0)),_o$1={position:"top-right",transition:lt$2,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light","aria-label":"Notifications Alt+T",hotKeys:la=>la.altKey&&la.code==="KeyT"};function Lt$1(la){let aa={..._o$1,...la},ca=la.stacked,[ua,Sa]=reactExports.useState(!0),hl=reactExports.useRef(null),{getToastToRender:pl,isToastActive:ml,count:gl}=It$2(aa),{className:wc,style:xu,rtl:ff,containerId:jf,hotKeys:Uf}=aa;function rp(qm){let Vm=clsx("Toastify__toast-container",`Toastify__toast-container--${qm}`,{"Toastify__toast-container--rtl":ff});return P$a(wc)?wc({position:qm,rtl:ff,defaultClassName:Vm}):clsx(Vm,B$6(wc))}function np(){ca&&(Sa(!0),y$b.play())}return Ot$1(()=>{var qm;if(ca){let Vm=hl.current.querySelectorAll('[data-in="true"]'),eg=12,tg=(qm=aa.position)==null?void 0:qm.includes("top"),rg=0,ig=0;Array.from(Vm).reverse().forEach((vv,R1)=>{let O1=vv;O1.classList.add("Toastify__toast--stacked"),R1>0&&(O1.dataset.collapsed=`${ua}`),O1.dataset.pos||(O1.dataset.pos=tg?"top":"bot");let K0=rg*(ua?.2:1)+(ua?0:eg*R1);O1.style.setProperty("--y",`${tg?K0:K0*-1}px`),O1.style.setProperty("--g",`${eg}`),O1.style.setProperty("--s",`${1-(ua?ig:0)}`),rg+=O1.offsetHeight,ig+=.025})}},[ua,gl,ca]),reactExports.useEffect(()=>{function qm(Vm){var eg;let tg=hl.current;Uf(Vm)&&((eg=tg.querySelector('[tabIndex="0"]'))==null||eg.focus(),Sa(!1),y$b.pause()),Vm.key==="Escape"&&(document.activeElement===tg||tg!=null&&tg.contains(document.activeElement))&&(Sa(!0),y$b.play())}return document.addEventListener("keydown",qm),()=>{document.removeEventListener("keydown",qm)}},[Uf]),React.createElement("section",{ref:hl,className:"Toastify",id:jf,onMouseEnter:()=>{ca&&(Sa(!1),y$b.pause())},onMouseLeave:np,"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text","aria-label":aa["aria-label"]},pl((qm,Vm)=>{let eg=Vm.length?{...xu}:{...xu,pointerEvents:"none"};return React.createElement("div",{tabIndex:-1,className:rp(qm),"data-stacked":ca,style:eg,key:`c-${qm}`},Vm.map(({content:tg,props:rg})=>React.createElement(wt$2,{...rg,stacked:ca,collapseAll:np,isIn:ml(rg.toastId,rg.containerId),key:`t-${rg.key}`},tg)))}))}const RECENTLY_VISITED_TEAMS_KEY="recently-visited-teams",MAX_RECENTLY_VISITED=10;function transformSimpleTeamToTeam(la){return{Branch:la.branch||"",Config:la.config||{},CreatedAt:la.createdAt||"",Dependencies:la.dependencies||{FractlModels:[],ClojureLibraries:[]},Description:la.description||"",EntityType:la.entityType||"",GitHubOrg:la.gitHubOrg||"",GitHubRepo:la.gitHubRepo||"",GithubUrl:la.githubUrl||"",Id:la.id||"",__Id__:la.__Id__||la.id||"",LastUpdatedAt:la.lastUpdatedAt||"",Name:la.name||"",Owner:la.owner||"",Tags:la.tags||null,Type:la.type||"",Version:la.version||"",isEditable:la.isEditable||!1,isPin:la.isPin==="true"||la.isPin===!0}}function getRecentlyVisitedTeams(){try{const la=localStorage.getItem(RECENTLY_VISITED_TEAMS_KEY);return la?JSON.parse(la):[]}catch{return[]}}function addRecentlyVisitedTeam(la){try{const ca=getRecentlyVisitedTeams().filter(Sa=>Sa!==la),ua=[la,...ca].slice(0,MAX_RECENTLY_VISITED);localStorage.setItem(RECENTLY_VISITED_TEAMS_KEY,JSON.stringify(ua))}catch(aa){console.warn("Failed to save recently visited team:",aa)}}function filterAndSortTeams(la,aa){return Object.values(la).filter(ua=>ua.Name!==void 0).filter(ua=>(ua.Name??"").toLowerCase().includes(aa.toLowerCase())).sort((ua,Sa)=>{const hl=Number(Sa.isPin??!1)-Number(ua.isPin??!1);if(hl!==0)return hl;const pl=(ua.Name??"").toLowerCase(),ml=(Sa.Name??"").toLowerCase();return pl.localeCompare(ml)})}function getIconsTree(la,aa){const ca=la.icons,ua=la.aliases||Object.create(null),Sa=Object.create(null);function hl(pl){if(ca[pl])return Sa[pl]=[];if(!(pl in Sa)){Sa[pl]=null;const ml=ua[pl]&&ua[pl].parent,gl=ml&&hl(ml);gl&&(Sa[pl]=[ml].concat(gl))}return Sa[pl]}return Object.keys(ca).concat(Object.keys(ua)).forEach(hl),Sa}const defaultIconDimensions=Object.freeze({left:0,top:0,width:16,height:16}),defaultIconTransformations=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),defaultIconProps=Object.freeze({...defaultIconDimensions,...defaultIconTransformations}),defaultExtendedIconProps=Object.freeze({...defaultIconProps,body:"",hidden:!1});function mergeIconTransformations(la,aa){const ca={};!la.hFlip!=!aa.hFlip&&(ca.hFlip=!0),!la.vFlip!=!aa.vFlip&&(ca.vFlip=!0);const ua=((la.rotate||0)+(aa.rotate||0))%4;return ua&&(ca.rotate=ua),ca}function mergeIconData(la,aa){const ca=mergeIconTransformations(la,aa);for(const ua in defaultExtendedIconProps)ua in defaultIconTransformations?ua in la&&!(ua in ca)&&(ca[ua]=defaultIconTransformations[ua]):ua in aa?ca[ua]=aa[ua]:ua in la&&(ca[ua]=la[ua]);return ca}function internalGetIconData(la,aa,ca){const ua=la.icons,Sa=la.aliases||Object.create(null);let hl={};function pl(ml){hl=mergeIconData(ua[ml]||Sa[ml],hl)}return pl(aa),ca.forEach(pl),mergeIconData(la,hl)}function parseIconSet(la,aa){const ca=[];if(typeof la!="object"||typeof la.icons!="object")return ca;la.not_found instanceof Array&&la.not_found.forEach(Sa=>{aa(Sa,null),ca.push(Sa)});const ua=getIconsTree(la);for(const Sa in ua){const hl=ua[Sa];hl&&(aa(Sa,internalGetIconData(la,Sa,hl)),ca.push(Sa))}return ca}const optionalPropertyDefaults={provider:"",aliases:{},not_found:{},...defaultIconDimensions};function checkOptionalProps(la,aa){for(const ca in aa)if(ca in la&&typeof la[ca]!=typeof aa[ca])return!1;return!0}function quicklyValidateIconSet(la){if(typeof la!="object"||la===null)return null;const aa=la;if(typeof aa.prefix!="string"||!la.icons||typeof la.icons!="object"||!checkOptionalProps(la,optionalPropertyDefaults))return null;const ca=aa.icons;for(const Sa in ca){const hl=ca[Sa];if(!Sa||typeof hl.body!="string"||!checkOptionalProps(hl,defaultExtendedIconProps))return null}const ua=aa.aliases||Object.create(null);for(const Sa in ua){const hl=ua[Sa],pl=hl.parent;if(!Sa||typeof pl!="string"||!ca[pl]&&!ua[pl]||!checkOptionalProps(hl,defaultExtendedIconProps))return null}return aa}const dataStorage=Object.create(null);function newStorage(la,aa){return{provider:la,prefix:aa,icons:Object.create(null),missing:new Set}}function getStorage(la,aa){const ca=dataStorage[la]||(dataStorage[la]=Object.create(null));return ca[aa]||(ca[aa]=newStorage(la,aa))}function addIconSet(la,aa){return quicklyValidateIconSet(aa)?parseIconSet(aa,(ca,ua)=>{ua?la.icons[ca]=ua:la.missing.add(ca)}):[]}function addIconToStorage(la,aa,ca){try{if(typeof ca.body=="string")return la.icons[aa]={...ca},!0}catch{}return!1}const matchIconName=/^[a-z0-9]+(-[a-z0-9]+)*$/,stringToIcon=(la,aa,ca,ua="")=>{const Sa=la.split(":");if(la.slice(0,1)==="@"){if(Sa.length<2||Sa.length>3)return null;ua=Sa.shift().slice(1)}if(Sa.length>3||!Sa.length)return null;if(Sa.length>1){const ml=Sa.pop(),gl=Sa.pop(),wc={provider:Sa.length>0?Sa[0]:ua,prefix:gl,name:ml};return aa&&!validateIconName(wc)?null:wc}const hl=Sa[0],pl=hl.split("-");if(pl.length>1){const ml={provider:ua,prefix:pl.shift(),name:pl.join("-")};return aa&&!validateIconName(ml)?null:ml}if(ca&&ua===""){const ml={provider:ua,prefix:"",name:hl};return aa&&!validateIconName(ml,ca)?null:ml}return null},validateIconName=(la,aa)=>la?!!((aa&&la.prefix===""||la.prefix)&&la.name):!1;let simpleNames=!1;function allowSimpleNames(la){return typeof la=="boolean"&&(simpleNames=la),simpleNames}function getIconData(la){const aa=typeof la=="string"?stringToIcon(la,!0,simpleNames):la;if(aa){const ca=getStorage(aa.provider,aa.prefix),ua=aa.name;return ca.icons[ua]||(ca.missing.has(ua)?null:void 0)}}function addIcon(la,aa){const ca=stringToIcon(la,!0,simpleNames);if(!ca)return!1;const ua=getStorage(ca.provider,ca.prefix);return aa?addIconToStorage(ua,ca.name,aa):(ua.missing.add(ca.name),!0)}function addCollection(la,aa){if(typeof la!="object")return!1;if(typeof aa!="string"&&(aa=la.provider||""),simpleNames&&!aa&&!la.prefix){let Sa=!1;return quicklyValidateIconSet(la)&&(la.prefix="",parseIconSet(la,(hl,pl)=>{addIcon(hl,pl)&&(Sa=!0)})),Sa}const ca=la.prefix;if(!validateIconName({prefix:ca,name:"a"}))return!1;const ua=getStorage(aa,ca);return!!addIconSet(ua,la)}const defaultIconSizeCustomisations=Object.freeze({width:null,height:null}),defaultIconCustomisations=Object.freeze({...defaultIconSizeCustomisations,...defaultIconTransformations}),unitsSplit=/(-?[0-9.]*[0-9]+[0-9.]*)/g,unitsTest=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function calculateSize(la,aa,ca){if(aa===1)return la;if(ca=ca||100,typeof la=="number")return Math.ceil(la*aa*ca)/ca;if(typeof la!="string")return la;const ua=la.split(unitsSplit);if(ua===null||!ua.length)return la;const Sa=[];let hl=ua.shift(),pl=unitsTest.test(hl);for(;;){if(pl){const ml=parseFloat(hl);isNaN(ml)?Sa.push(hl):Sa.push(Math.ceil(ml*aa*ca)/ca)}else Sa.push(hl);if(hl=ua.shift(),hl===void 0)return Sa.join("");pl=!pl}}function splitSVGDefs(la,aa="defs"){let ca="";const ua=la.indexOf("<"+aa);for(;ua>=0;){const Sa=la.indexOf(">",ua),hl=la.indexOf("</"+aa);if(Sa===-1||hl===-1)break;const pl=la.indexOf(">",hl);if(pl===-1)break;ca+=la.slice(Sa+1,hl).trim(),la=la.slice(0,ua).trim()+la.slice(pl+1)}return{defs:ca,content:la}}function mergeDefsAndContent(la,aa){return la?"<defs>"+la+"</defs>"+aa:aa}function wrapSVGContent(la,aa,ca){const ua=splitSVGDefs(la);return mergeDefsAndContent(ua.defs,aa+ua.content+ca)}const isUnsetKeyword=la=>la==="unset"||la==="undefined"||la==="none";function iconToSVG(la,aa){const ca={...defaultIconProps,...la},ua={...defaultIconCustomisations,...aa},Sa={left:ca.left,top:ca.top,width:ca.width,height:ca.height};let hl=ca.body;[ca,ua].forEach(np=>{const qm=[],Vm=np.hFlip,eg=np.vFlip;let tg=np.rotate;Vm?eg?tg+=2:(qm.push("translate("+(Sa.width+Sa.left).toString()+" "+(0-Sa.top).toString()+")"),qm.push("scale(-1 1)"),Sa.top=Sa.left=0):eg&&(qm.push("translate("+(0-Sa.left).toString()+" "+(Sa.height+Sa.top).toString()+")"),qm.push("scale(1 -1)"),Sa.top=Sa.left=0);let rg;switch(tg<0&&(tg-=Math.floor(tg/4)*4),tg=tg%4,tg){case 1:rg=Sa.height/2+Sa.top,qm.unshift("rotate(90 "+rg.toString()+" "+rg.toString()+")");break;case 2:qm.unshift("rotate(180 "+(Sa.width/2+Sa.left).toString()+" "+(Sa.height/2+Sa.top).toString()+")");break;case 3:rg=Sa.width/2+Sa.left,qm.unshift("rotate(-90 "+rg.toString()+" "+rg.toString()+")");break}tg%2===1&&(Sa.left!==Sa.top&&(rg=Sa.left,Sa.left=Sa.top,Sa.top=rg),Sa.width!==Sa.height&&(rg=Sa.width,Sa.width=Sa.height,Sa.height=rg)),qm.length&&(hl=wrapSVGContent(hl,'<g transform="'+qm.join(" ")+'">',"</g>"))});const pl=ua.width,ml=ua.height,gl=Sa.width,wc=Sa.height;let xu,ff;pl===null?(ff=ml===null?"1em":ml==="auto"?wc:ml,xu=calculateSize(ff,gl/wc)):(xu=pl==="auto"?gl:pl,ff=ml===null?calculateSize(xu,wc/gl):ml==="auto"?wc:ml);const jf={},Uf=(np,qm)=>{isUnsetKeyword(qm)||(jf[np]=qm.toString())};Uf("width",xu),Uf("height",ff);const rp=[Sa.left,Sa.top,gl,wc];return jf.viewBox=rp.join(" "),{attributes:jf,viewBox:rp,body:hl}}const regex=/\sid="(\S+)"/g,randomPrefix="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let counter=0;function replaceIDs(la,aa=randomPrefix){const ca=[];let ua;for(;ua=regex.exec(la);)ca.push(ua[1]);if(!ca.length)return la;const Sa="suffix"+(Math.random()*16777216|Date.now()).toString(16);return ca.forEach(hl=>{const pl=typeof aa=="function"?aa(hl):aa+(counter++).toString(),ml=hl.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");la=la.replace(new RegExp('([#;"])('+ml+')([")]|\\.[a-z])',"g"),"$1"+pl+Sa+"$3")}),la=la.replace(new RegExp(Sa,"g"),""),la}const storage=Object.create(null);function setAPIModule(la,aa){storage[la]=aa}function getAPIModule(la){return storage[la]||storage[""]}function createAPIConfig(la){let aa;if(typeof la.resources=="string")aa=[la.resources];else if(aa=la.resources,!(aa instanceof Array)||!aa.length)return null;return{resources:aa,path:la.path||"/",maxURL:la.maxURL||500,rotate:la.rotate||750,timeout:la.timeout||5e3,random:la.random===!0,index:la.index||0,dataAfterTimeout:la.dataAfterTimeout!==!1}}const configStorage=Object.create(null),fallBackAPISources=["https://api.simplesvg.com","https://api.unisvg.com"],fallBackAPI=[];for(;fallBackAPISources.length>0;)fallBackAPISources.length===1||Math.random()>.5?fallBackAPI.push(fallBackAPISources.shift()):fallBackAPI.push(fallBackAPISources.pop());configStorage[""]=createAPIConfig({resources:["https://api.iconify.design"].concat(fallBackAPI)});function addAPIProvider(la,aa){const ca=createAPIConfig(aa);return ca===null?!1:(configStorage[la]=ca,!0)}function getAPIConfig(la){return configStorage[la]}const detectFetch=()=>{let la;try{if(la=fetch,typeof la=="function")return la}catch{}};let fetchModule=detectFetch();function calculateMaxLength(la,aa){const ca=getAPIConfig(la);if(!ca)return 0;let ua;if(!ca.maxURL)ua=0;else{let Sa=0;ca.resources.forEach(pl=>{Sa=Math.max(Sa,pl.length)});const hl=aa+".json?icons=";ua=ca.maxURL-Sa-ca.path.length-hl.length}return ua}function shouldAbort(la){return la===404}const prepare=(la,aa,ca)=>{const ua=[],Sa=calculateMaxLength(la,aa),hl="icons";let pl={type:hl,provider:la,prefix:aa,icons:[]},ml=0;return ca.forEach((gl,wc)=>{ml+=gl.length+1,ml>=Sa&&wc>0&&(ua.push(pl),pl={type:hl,provider:la,prefix:aa,icons:[]},ml=gl.length),pl.icons.push(gl)}),ua.push(pl),ua};function getPath$2(la){if(typeof la=="string"){const aa=getAPIConfig(la);if(aa)return aa.path}return"/"}const send=(la,aa,ca)=>{if(!fetchModule){ca("abort",424);return}let ua=getPath$2(aa.provider);switch(aa.type){case"icons":{const hl=aa.prefix,ml=aa.icons.join(","),gl=new URLSearchParams({icons:ml});ua+=hl+".json?"+gl.toString();break}case"custom":{const hl=aa.uri;ua+=hl.slice(0,1)==="/"?hl.slice(1):hl;break}default:ca("abort",400);return}let Sa=503;fetchModule(la+ua).then(hl=>{const pl=hl.status;if(pl!==200){setTimeout(()=>{ca(shouldAbort(pl)?"abort":"next",pl)});return}return Sa=501,hl.json()}).then(hl=>{if(typeof hl!="object"||hl===null){setTimeout(()=>{hl===404?ca("abort",hl):ca("next",Sa)});return}setTimeout(()=>{ca("success",hl)})}).catch(()=>{ca("next",Sa)})},fetchAPIModule={prepare,send};function removeCallback(la,aa){la.forEach(ca=>{const ua=ca.loaderCallbacks;ua&&(ca.loaderCallbacks=ua.filter(Sa=>Sa.id!==aa))})}function updateCallbacks(la){la.pendingCallbacksFlag||(la.pendingCallbacksFlag=!0,setTimeout(()=>{la.pendingCallbacksFlag=!1;const aa=la.loaderCallbacks?la.loaderCallbacks.slice(0):[];if(!aa.length)return;let ca=!1;const ua=la.provider,Sa=la.prefix;aa.forEach(hl=>{const pl=hl.icons,ml=pl.pending.length;pl.pending=pl.pending.filter(gl=>{if(gl.prefix!==Sa)return!0;const wc=gl.name;if(la.icons[wc])pl.loaded.push({provider:ua,prefix:Sa,name:wc});else if(la.missing.has(wc))pl.missing.push({provider:ua,prefix:Sa,name:wc});else return ca=!0,!0;return!1}),pl.pending.length!==ml&&(ca||removeCallback([la],hl.id),hl.callback(pl.loaded.slice(0),pl.missing.slice(0),pl.pending.slice(0),hl.abort))})}))}let idCounter$1=0;function storeCallback(la,aa,ca){const ua=idCounter$1++,Sa=removeCallback.bind(null,ca,ua);if(!aa.pending.length)return Sa;const hl={id:ua,icons:aa,callback:la,abort:Sa};return ca.forEach(pl=>{(pl.loaderCallbacks||(pl.loaderCallbacks=[])).push(hl)}),Sa}function sortIcons(la){const aa={loaded:[],missing:[],pending:[]},ca=Object.create(null);la.sort((Sa,hl)=>Sa.provider!==hl.provider?Sa.provider.localeCompare(hl.provider):Sa.prefix!==hl.prefix?Sa.prefix.localeCompare(hl.prefix):Sa.name.localeCompare(hl.name));let ua={provider:"",prefix:"",name:""};return la.forEach(Sa=>{if(ua.name===Sa.name&&ua.prefix===Sa.prefix&&ua.provider===Sa.provider)return;ua=Sa;const hl=Sa.provider,pl=Sa.prefix,ml=Sa.name,gl=ca[hl]||(ca[hl]=Object.create(null)),wc=gl[pl]||(gl[pl]=getStorage(hl,pl));let xu;ml in wc.icons?xu=aa.loaded:pl===""||wc.missing.has(ml)?xu=aa.missing:xu=aa.pending;const ff={provider:hl,prefix:pl,name:ml};xu.push(ff)}),aa}function listToIcons(la,aa=!0,ca=!1){const ua=[];return la.forEach(Sa=>{const hl=typeof Sa=="string"?stringToIcon(Sa,aa,ca):Sa;hl&&ua.push(hl)}),ua}const defaultConfig={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function sendQuery(la,aa,ca,ua){const Sa=la.resources.length,hl=la.random?Math.floor(Math.random()*Sa):la.index;let pl;if(la.random){let vv=la.resources.slice(0);for(pl=[];vv.length>1;){const R1=Math.floor(Math.random()*vv.length);pl.push(vv[R1]),vv=vv.slice(0,R1).concat(vv.slice(R1+1))}pl=pl.concat(vv)}else pl=la.resources.slice(hl).concat(la.resources.slice(0,hl));const ml=Date.now();let gl="pending",wc=0,xu,ff=null,jf=[],Uf=[];typeof ua=="function"&&Uf.push(ua);function rp(){ff&&(clearTimeout(ff),ff=null)}function np(){gl==="pending"&&(gl="aborted"),rp(),jf.forEach(vv=>{vv.status==="pending"&&(vv.status="aborted")}),jf=[]}function qm(vv,R1){R1&&(Uf=[]),typeof vv=="function"&&Uf.push(vv)}function Vm(){return{startTime:ml,payload:aa,status:gl,queriesSent:wc,queriesPending:jf.length,subscribe:qm,abort:np}}function eg(){gl="failed",Uf.forEach(vv=>{vv(void 0,xu)})}function tg(){jf.forEach(vv=>{vv.status==="pending"&&(vv.status="aborted")}),jf=[]}function rg(vv,R1,O1){const K0=R1!=="success";switch(jf=jf.filter(J0=>J0!==vv),gl){case"pending":break;case"failed":if(K0||!la.dataAfterTimeout)return;break;default:return}if(R1==="abort"){xu=O1,eg();return}if(K0){xu=O1,jf.length||(pl.length?ig():eg());return}if(rp(),tg(),!la.random){const J0=la.resources.indexOf(vv.resource);J0!==-1&&J0!==la.index&&(la.index=J0)}gl="completed",Uf.forEach(J0=>{J0(O1)})}function ig(){if(gl!=="pending")return;rp();const vv=pl.shift();if(vv===void 0){if(jf.length){ff=setTimeout(()=>{rp(),gl==="pending"&&(tg(),eg())},la.timeout);return}eg();return}const R1={status:"pending",resource:vv,callback:(O1,K0)=>{rg(R1,O1,K0)}};jf.push(R1),wc++,ff=setTimeout(ig,la.rotate),ca(vv,aa,R1.callback)}return setTimeout(ig),Vm}function initRedundancy(la){const aa={...defaultConfig,...la};let ca=[];function ua(){ca=ca.filter(ml=>ml().status==="pending")}function Sa(ml,gl,wc){const xu=sendQuery(aa,ml,gl,(ff,jf)=>{ua(),wc&&wc(ff,jf)});return ca.push(xu),xu}function hl(ml){return ca.find(gl=>ml(gl))||null}return{query:Sa,find:hl,setIndex:ml=>{aa.index=ml},getIndex:()=>aa.index,cleanup:ua}}function emptyCallback$1(){}const redundancyCache=Object.create(null);function getRedundancyCache(la){if(!redundancyCache[la]){const aa=getAPIConfig(la);if(!aa)return;const ca=initRedundancy(aa),ua={config:aa,redundancy:ca};redundancyCache[la]=ua}return redundancyCache[la]}function sendAPIQuery(la,aa,ca){let ua,Sa;if(typeof la=="string"){const hl=getAPIModule(la);if(!hl)return ca(void 0,424),emptyCallback$1;Sa=hl.send;const pl=getRedundancyCache(la);pl&&(ua=pl.redundancy)}else{const hl=createAPIConfig(la);if(hl){ua=initRedundancy(hl);const pl=la.resources?la.resources[0]:"",ml=getAPIModule(pl);ml&&(Sa=ml.send)}}return!ua||!Sa?(ca(void 0,424),emptyCallback$1):ua.query(aa,Sa,ca)().abort}function emptyCallback(){}function loadedNewIcons(la){la.iconsLoaderFlag||(la.iconsLoaderFlag=!0,setTimeout(()=>{la.iconsLoaderFlag=!1,updateCallbacks(la)}))}function checkIconNamesForAPI(la){const aa=[],ca=[];return la.forEach(ua=>{(ua.match(matchIconName)?aa:ca).push(ua)}),{valid:aa,invalid:ca}}function parseLoaderResponse(la,aa,ca){function ua(){const Sa=la.pendingIcons;aa.forEach(hl=>{Sa&&Sa.delete(hl),la.icons[hl]||la.missing.add(hl)})}if(ca&&typeof ca=="object")try{if(!addIconSet(la,ca).length){ua();return}}catch(Sa){console.error(Sa)}ua(),loadedNewIcons(la)}function parsePossiblyAsyncResponse(la,aa){la instanceof Promise?la.then(ca=>{aa(ca)}).catch(()=>{aa(null)}):aa(la)}function loadNewIcons(la,aa){la.iconsToLoad?la.iconsToLoad=la.iconsToLoad.concat(aa).sort():la.iconsToLoad=aa,la.iconsQueueFlag||(la.iconsQueueFlag=!0,setTimeout(()=>{la.iconsQueueFlag=!1;const{provider:ca,prefix:ua}=la,Sa=la.iconsToLoad;if(delete la.iconsToLoad,!Sa||!Sa.length)return;const hl=la.loadIcon;if(la.loadIcons&&(Sa.length>1||!hl)){parsePossiblyAsyncResponse(la.loadIcons(Sa,ua,ca),xu=>{parseLoaderResponse(la,Sa,xu)});return}if(hl){Sa.forEach(xu=>{const ff=hl(xu,ua,ca);parsePossiblyAsyncResponse(ff,jf=>{const Uf=jf?{prefix:ua,icons:{[xu]:jf}}:null;parseLoaderResponse(la,[xu],Uf)})});return}const{valid:pl,invalid:ml}=checkIconNamesForAPI(Sa);if(ml.length&&parseLoaderResponse(la,ml,null),!pl.length)return;const gl=ua.match(matchIconName)?getAPIModule(ca):null;if(!gl){parseLoaderResponse(la,pl,null);return}gl.prepare(ca,ua,pl).forEach(xu=>{sendAPIQuery(ca,xu,ff=>{parseLoaderResponse(la,xu.icons,ff)})})}))}const loadIcons=(la,aa)=>{const ca=listToIcons(la,!0,allowSimpleNames()),ua=sortIcons(ca);if(!ua.pending.length){let gl=!0;return aa&&setTimeout(()=>{gl&&aa(ua.loaded,ua.missing,ua.pending,emptyCallback)}),()=>{gl=!1}}const Sa=Object.create(null),hl=[];let pl,ml;return ua.pending.forEach(gl=>{const{provider:wc,prefix:xu}=gl;if(xu===ml&&wc===pl)return;pl=wc,ml=xu,hl.push(getStorage(wc,xu));const ff=Sa[wc]||(Sa[wc]=Object.create(null));ff[xu]||(ff[xu]=[])}),ua.pending.forEach(gl=>{const{provider:wc,prefix:xu,name:ff}=gl,jf=getStorage(wc,xu),Uf=jf.pendingIcons||(jf.pendingIcons=new Set);Uf.has(ff)||(Uf.add(ff),Sa[wc][xu].push(ff))}),hl.forEach(gl=>{const wc=Sa[gl.provider][gl.prefix];wc.length&&loadNewIcons(gl,wc)}),aa?storeCallback(aa,ua,hl):emptyCallback};function mergeCustomisations(la,aa){const ca={...la};for(const ua in aa){const Sa=aa[ua],hl=typeof Sa;ua in defaultIconSizeCustomisations?(Sa===null||Sa&&(hl==="string"||hl==="number"))&&(ca[ua]=Sa):hl===typeof ca[ua]&&(ca[ua]=ua==="rotate"?Sa%4:Sa)}return ca}const separator$1=/[\s,]+/;function flipFromString(la,aa){aa.split(separator$1).forEach(ca=>{switch(ca.trim()){case"horizontal":la.hFlip=!0;break;case"vertical":la.vFlip=!0;break}})}function rotateFromString(la,aa=0){const ca=la.replace(/^-?[0-9.]*/,"");function ua(Sa){for(;Sa<0;)Sa+=4;return Sa%4}if(ca===""){const Sa=parseInt(la);return isNaN(Sa)?0:ua(Sa)}else if(ca!==la){let Sa=0;switch(ca){case"%":Sa=25;break;case"deg":Sa=90}if(Sa){let hl=parseFloat(la.slice(0,la.length-ca.length));return isNaN(hl)?0:(hl=hl/Sa,hl%1===0?ua(hl):0)}}return aa}function iconToHTML(la,aa){let ca=la.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const ua in aa)ca+=" "+ua+'="'+aa[ua]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+ca+">"+la+"</svg>"}function encodeSVGforURL(la){return la.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function svgToData(la){return"data:image/svg+xml,"+encodeSVGforURL(la)}function svgToURL(la){return'url("'+svgToData(la)+'")'}let policy;function createPolicy(){try{policy=window.trustedTypes.createPolicy("iconify",{createHTML:la=>la})}catch{policy=null}}function cleanUpInnerHTML(la){return policy===void 0&&createPolicy(),policy?policy.createHTML(la):la}const defaultExtendedIconCustomisations={...defaultIconCustomisations,inline:!1},svgDefaults={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},commonProps={display:"inline-block"},monotoneProps={backgroundColor:"currentColor"},coloredProps={backgroundColor:"transparent"},propsToAdd={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},propsToAddTo={WebkitMask:monotoneProps,mask:monotoneProps,background:coloredProps};for(const la in propsToAddTo){const aa=propsToAddTo[la];for(const ca in propsToAdd)aa[la+ca]=propsToAdd[ca]}const inlineDefaults={...defaultExtendedIconCustomisations,inline:!0};function fixSize(la){return la+(la.match(/^[-0-9.]+$/)?"px":"")}const render=(la,aa,ca)=>{const ua=aa.inline?inlineDefaults:defaultExtendedIconCustomisations,Sa=mergeCustomisations(ua,aa),hl=aa.mode||"svg",pl={},ml=aa.style||{},gl={...hl==="svg"?svgDefaults:{}};if(ca){const qm=stringToIcon(ca,!1,!0);if(qm){const Vm=["iconify"],eg=["provider","prefix"];for(const tg of eg)qm[tg]&&Vm.push("iconify--"+qm[tg]);gl.className=Vm.join(" ")}}for(let qm in aa){const Vm=aa[qm];if(Vm!==void 0)switch(qm){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":case"fallback":break;case"_ref":gl.ref=Vm;break;case"className":gl[qm]=(gl[qm]?gl[qm]+" ":"")+Vm;break;case"inline":case"hFlip":case"vFlip":Sa[qm]=Vm===!0||Vm==="true"||Vm===1;break;case"flip":typeof Vm=="string"&&flipFromString(Sa,Vm);break;case"color":pl.color=Vm;break;case"rotate":typeof Vm=="string"?Sa[qm]=rotateFromString(Vm):typeof Vm=="number"&&(Sa[qm]=Vm);break;case"ariaHidden":case"aria-hidden":Vm!==!0&&Vm!=="true"&&delete gl["aria-hidden"];break;default:ua[qm]===void 0&&(gl[qm]=Vm)}}const wc=iconToSVG(la,Sa),xu=wc.attributes;if(Sa.inline&&(pl.verticalAlign="-0.125em"),hl==="svg"){gl.style={...pl,...ml},Object.assign(gl,xu);let qm=0,Vm=aa.id;return typeof Vm=="string"&&(Vm=Vm.replace(/-/g,"_")),gl.dangerouslySetInnerHTML={__html:cleanUpInnerHTML(replaceIDs(wc.body,Vm?()=>Vm+"ID"+qm++:"iconifyReact"))},reactExports.createElement("svg",gl)}const{body:ff,width:jf,height:Uf}=la,rp=hl==="mask"||(hl==="bg"?!1:ff.indexOf("currentColor")!==-1),np=iconToHTML(ff,{...xu,width:jf+"",height:Uf+""});return gl.style={...pl,"--svg":svgToURL(np),width:fixSize(xu.width),height:fixSize(xu.height),...commonProps,...rp?monotoneProps:coloredProps,...ml},reactExports.createElement("span",gl)};allowSimpleNames(!0);setAPIModule("",fetchAPIModule);if(typeof document<"u"&&typeof window<"u"){const la=window;if(la.IconifyPreload!==void 0){const aa=la.IconifyPreload,ca="Invalid IconifyPreload syntax.";typeof aa=="object"&&aa!==null&&(aa instanceof Array?aa:[aa]).forEach(ua=>{try{(typeof ua!="object"||ua===null||ua instanceof Array||typeof ua.icons!="object"||typeof ua.prefix!="string"||!addCollection(ua))&&console.error(ca)}catch{console.error(ca)}})}if(la.IconifyProviders!==void 0){const aa=la.IconifyProviders;if(typeof aa=="object"&&aa!==null)for(let ca in aa){const ua="IconifyProviders["+ca+"] is invalid.";try{const Sa=aa[ca];if(typeof Sa!="object"||!Sa||Sa.resources===void 0)continue;addAPIProvider(ca,Sa)||console.error(ua)}catch{console.error(ua)}}}}function IconComponent(la){const[aa,ca]=reactExports.useState(!!la.ssr),[ua,Sa]=reactExports.useState({});function hl(Uf){if(Uf){const rp=la.icon;if(typeof rp=="object")return{name:"",data:rp};const np=getIconData(rp);if(np)return{name:rp,data:np}}return{name:""}}const[pl,ml]=reactExports.useState(hl(!!la.ssr));function gl(){const Uf=ua.callback;Uf&&(Uf(),Sa({}))}function wc(Uf){if(JSON.stringify(pl)!==JSON.stringify(Uf))return gl(),ml(Uf),!0}function xu(){var Uf;const rp=la.icon;if(typeof rp=="object"){wc({name:"",data:rp});return}const np=getIconData(rp);if(wc({name:rp,data:np}))if(np===void 0){const qm=loadIcons([rp],xu);Sa({callback:qm})}else np&&((Uf=la.onLoad)===null||Uf===void 0||Uf.call(la,rp))}reactExports.useEffect(()=>(ca(!0),gl),[]),reactExports.useEffect(()=>{aa&&xu()},[la.icon,aa]);const{name:ff,data:jf}=pl;return jf?render({...defaultIconProps,...jf},la,ff):la.children?la.children:la.fallback?la.fallback:reactExports.createElement("span",{})}const Icon=reactExports.forwardRef((la,aa)=>IconComponent({...la,_ref:aa}));reactExports.forwardRef((la,aa)=>IconComponent({inline:!0,...la,_ref:aa}));const getDate=la=>{const aa=new Date(la),ca=aa.getMonth()+1,ua=aa.getDate(),Sa=aa.getFullYear(),hl=aa.toLocaleString("en-US",{hour:"numeric",minute:"numeric",hour12:!0});return`${ca}/${ua}/${Sa} ${hl}`},registerBase64Icon=(la,aa)=>{try{const ca=aa.replace(/^data:image\/svg\+xml;base64,/,""),ua=atob(ca),Sa=ua.match(/width="([^"]+)"/),hl=ua.match(/height="([^"]+)"/),pl=Sa?Sa[1]:"1536",ml=hl?hl[1]:"1280",gl=ua.replace(/^.*?<svg[^>]*>(.*)<\/svg>.*$/,"$1");addIcon(la,{body:gl,width:parseInt(pl,10),height:parseInt(ml,10)})}catch(ca){console.error(`Failed to register icon: ${la}`,ca)}};function extractRepoNameFromUrl(la){const aa=la.split("/");return aa[aa.length-1]}function scrollIntoView(la,aa=!0){const ca=document.getElementById(la);ca&&ca.scrollIntoView({behavior:aa?"smooth":"auto",block:"start",inline:"center"})}function roundTo3Decimals(la){return la.toFixed(3)}function convertBytes(la){return la<1024?`${la} bytes`:la<1024*1024?`${roundTo3Decimals(la/1024)} KB`:la<1024*1024*1024?`${roundTo3Decimals(la/(1024*1024))} MB`:`${roundTo3Decimals(la/(1024*1024*1024))} GB`}function generateGitHubUrl(la,aa,ca,ua){if(!la||!aa)throw new Error("GitHub organization and repository name are required");if(ca&&ua){const Sa=ca.trim(),hl=ua.trim();return!Sa||!hl?(console.warn("GitHub credentials contain only whitespace - falling back to public URL"),`https://github.com/${la}/${aa}.git`):`https://${Sa}:${hl}@github.com/${la}/${aa}.git`}return console.warn(`No GitHub credentials provided for ${la}/${aa} - using public URL (may fail for private repositories)`),`https://github.com/${la}/${aa}.git`}const useWorkspace=()=>{const la=axiosInstance("meta"),aa=useAppStore(xu=>xu.user),ca=useAppStore(xu=>xu.authData.userProfileId),ua=useAppStore(xu=>xu.authData.username),Sa=useAppStore(xu=>xu.setUser),hl=useAppStore(xu=>xu.setWorkspace),pl=async()=>{let xu=aa?.user_profile_id;if(xu||(xu=ca||void 0),!xu){const ff=localStorage.getItem("user_profile_id");ff&&(xu=ff)}if(!xu){y$b.error("User Profile ID not found. Please re-login.");return}return xu},ml=async()=>{try{if(!await pl())throw new Error("User Profile ID not found. Please re-login.");const jf=await la.get("/AgentMeta/Workspace");if(console.log("fetchWorkspace response:",jf.data),!jf.data||Array.isArray(jf.data)&&jf.data.length===0)return console.log("GetWorkspace returned empty or null response - workspace does not exist"),null;let Uf;if(jf.data.id||jf.data.Id)Uf=jf.data;else if(Array.isArray(jf.data)&&jf.data.length>0){const rp=jf.data[0];rp?.Workspace?Uf=rp.Workspace:rp?.result&&Array.isArray(rp.result)&&rp.result.length>0?Uf=rp.result[0]:rp&&(rp.id||rp.Id)&&(Uf=rp)}return Uf||(console.log("No workspace found in response"),null)}catch(xu){return console.error("fetchWorkspace error:",xu),null}};return{fetchWorkspace:ml,createWorkspace:async(xu,ff)=>{try{if(!await pl())throw new Error("User Profile ID not found. Please re-login.");const rp=await la.post("/AgentMeta/Workspace",{name:xu,createdBy:ff});let np;if(rp.data.UserWorkspace?.Workspace)np=rp.data.UserWorkspace.Workspace;else if(rp.data.id)np=rp.data;else if(Array.isArray(rp.data)&&rp.data.length>0){const qm=rp.data[0];qm?.result&&Array.isArray(qm.result)&&qm.result.length>0?np=qm.result[0]:qm?.Workspace?np=qm.Workspace:np=qm}else if(rp.data.Workspace)np=rp.data.Workspace;else{const qm=Object.keys(rp.data);qm.length>0&&(np=rp.data[qm[0]])}return np||(console.error("Failed to parse workspace from create response"),null)}catch(jf){throw console.error("createWorkspace error:",jf),y$b.error(jf?.response?.data?.reason||"Failed to create workspace"),jf}},fetchOrCreateWorkspace:async xu=>{if(!(ua||aa?.Email))throw new Error("No username found in store");let jf=await ml();if(jf){const Uf=jf.id||jf.Id;if(Uf&&!localStorage.getItem("workspace_id")){localStorage.setItem("workspace_id",Uf);try{aa?Sa({...aa,CurrentWorkspace:{Id:Uf}}):hl(Uf)}catch{}}}else{console.error(`Workspace '${xu}' not found - workspace creation disabled`);try{if(await pl()){const np=await la.get("/AgentMeta/Workspace");if(np.data&&Array.isArray(np.data)&&np.data.length>0){const qm=np.data[np.data.length-1];if(jf=qm.Workspace||qm,jf){const Vm=jf.id||jf.Id;if(Vm){localStorage.setItem("workspace_id",Vm);try{aa?Sa({...aa,CurrentWorkspace:{Id:Vm}}):hl(Vm)}catch{}console.log("Using existing workspace instead:",Vm)}}}}}catch(Uf){console.error("Failed to fetch all workspaces:",Uf)}if(!jf)throw new Error(`Workspace '${xu}' not found and creation is disabled`)}return jf}}},deletePlaygroundTeam=la=>[],STORAGE_KEY="playground-workspace-apps",ID_COUNTER_KEY="playground-workspace-id-counter";class PlaygroundWorkspaceStorage{apps=new Map;idCounter=0;constructor(){this.loadFromLocalStorage()}loadFromLocalStorage(){try{const aa=localStorage.getItem(STORAGE_KEY);if(aa){const ua=JSON.parse(aa);ua.forEach(Sa=>{this.apps.set(Sa.Id,Sa)}),console.log(`[PLAYGROUND] Loaded ${ua.length} workspace apps from localStorage`)}const ca=localStorage.getItem(ID_COUNTER_KEY);ca&&(this.idCounter=parseInt(ca,10))}catch(aa){console.error("[PLAYGROUND] Error loading workspace apps from localStorage:",aa)}}saveToLocalStorage(){try{const aa=Array.from(this.apps.values());localStorage.setItem(STORAGE_KEY,JSON.stringify(aa)),localStorage.setItem(ID_COUNTER_KEY,this.idCounter.toString()),console.log(`[PLAYGROUND] Saved ${aa.length} workspace apps to localStorage`)}catch(aa){console.error("[PLAYGROUND] Error saving workspace apps to localStorage:",aa)}}getApps(){return Array.from(this.apps.values())}addApp(aa){const ca=aa.Id||`playground-app-${++this.idCounter}`,ua={...aa,Id:ca};return this.apps.set(ca,ua),this.saveToLocalStorage(),ua}updateApp(aa,ca){const ua=this.apps.get(aa);if(!ua)return null;const Sa={...ua,...ca};return this.apps.set(aa,Sa),this.saveToLocalStorage(),Sa}deleteApp(aa){const ca=this.apps.delete(aa);return ca&&this.saveToLocalStorage(),ca}getApp(aa){return this.apps.get(aa)||null}clearApps(){this.apps.clear(),this.idCounter=0,this.saveToLocalStorage()}hasApp(aa){return this.apps.has(aa)}}const playgroundWorkspaceStorage=new PlaygroundWorkspaceStorage,IS_PLAYGROUND$7=!1,IS_LOCAL_MODE$7=!0,metaAxiosInstance$2=axiosInstance("meta");async function fetchPackageInfo$1(){const aa=await fetch("http://localhost:4000/info");return aa.ok?await aa.json():{}}async function fetchBranch(){const la="http://localhost:4000";try{const aa=await fetch(`${la}/branch`);return aa.ok&&(await aa.json()).branch||"main"}catch(aa){return console.warn("Failed to fetch branch:",aa),"main"}}const useTeams=()=>{const{teamName:la,modelName:aa}=useParams(),{pathname:ca}=useLocation(),ua=useQueryClient(),Sa=ca.includes("/design/marketplace/"),hl=useAppStore(qw=>qw.authData.username),pl=useAppStore(qw=>qw.authData.userProfileId),ml=useAppStore(qw=>qw.user.CurrentWorkspace?.Id),gl=useAppStore(qw=>qw.user.GitHub.Token)||"",wc=useAppStore(qw=>qw.user.GitHub.Username)||"",{fetchOrCreateWorkspace:xu}=useWorkspace();useAppStore(qw=>qw.authReady),useAppStore(qw=>qw.isAuthenticated);const{data:ff}=useQuery({queryKey:["localPackageInfo"],queryFn:fetchPackageInfo$1,enabled:IS_LOCAL_MODE$7,staleTime:1/0,refetchOnMount:"always"}),{data:jf}=useQuery({queryKey:["localBranch"],queryFn:fetchBranch,enabled:IS_LOCAL_MODE$7,staleTime:1/0,refetchOnMount:"always"}),{data:Uf,isLoading:rp,error:np,refetch:qm}=useQuery({queryKey:["workspace",ml,"apps",pl],queryFn:async()=>[],enabled:IS_LOCAL_MODE$7,staleTime:120*1e3,gcTime:300*1e3,refetchOnMount:"always",retry:(qw,Y0)=>Y0?.response?.status===401||Y0?.response?.status===403?!1:qw<2}),{mutate:Vm}=useMutation({mutationFn:async({appId:qw,isEditable:Y0})=>{const G0=await metaAxiosInstance$2.put(`/AgentMeta/Workspace/${ml}/WorkspaceApp/App/${qw}`,{isEditable:Y0});return transformSimpleTeamToTeam(G0.data)},onMutate:async qw=>{const{appId:Y0,isEditable:G0}=qw;await ua.cancelQueries({queryKey:["workspace",ml,"apps",pl]});const X0=ua.getQueryData(["workspace",ml,"apps",pl]);if(X0){const d_=X0.map(f_=>f_.Id===Y0?{...f_,isEditable:G0}:f_);ua.setQueryData(["workspace",ml,"apps",pl],d_)}return{previousApps:X0}},onError:(qw,Y0,G0)=>{G0?.previousApps&&ua.setQueryData(["workspace",ml,"apps",pl],G0.previousApps),y$b.error("Failed to update status. Please try again.")},onSettled:()=>{ua.invalidateQueries({queryKey:["workspace",ml,"apps",pl]})}}),eg=reactExports.useMemo(()=>{{let qw="";if(ff&&ff.name)if(qw=ff.name,qw.startsWith("@")){const Y0=qw.substring(1).split("/");Y0.length===2&&(qw=Y0[1])}else qw=ff.name;return{Name:qw,isEditable:!0,Type:"Local",GitHubRepo:qw,Branch:jf||"main"}}},[Sa,aa,Uf,la,ff,jf]);if(np){console.error("fetchWorkspaceApps: Query failed",np);let qw="Failed to fetch workspace apps";const Y0=np;Y0?.response?.status===401?qw="Authentication expired. Please sign in again.":Y0?.response?.status===403?qw="Access denied. Please check your workspace permissions.":Y0?.response?.status===404?qw="Workspace not found. Please verify your workspace access.":Y0?.response?.data?.reason?qw=Y0.response.data.reason:Y0?.message&&(qw=`Network error: ${Y0.message}`),y$b.error(qw)}const tg=async(qw,Y0)=>{try{const X0=(await metaAxiosInstance$2.put(`/AgentMeta/Workspace/${ml}/WorkspaceApp/App/${Y0}`,qw)).data,d_=transformSimpleTeamToTeam(X0);return ua.invalidateQueries({queryKey:["workspace",ml,"apps",pl]}),await qm(),{...d_}}catch(G0){throw console.error("Error editing workspace app:",G0),G0}},rg=async(qw,Y0)=>{try{const X0=(await metaAxiosInstance$2.put(`/AgentMeta/Workspace/${ml}/WorkspaceApp/App/${qw}`,{branch:Y0})).data,d_=transformSimpleTeamToTeam(X0);return ua.invalidateQueries({queryKey:["workspace",ml,"apps",pl]}),await qm(),{...d_,Branch:Y0}}catch(G0){throw console.error("Error switching workspace app branch:",G0),G0}},ig=async qw=>{try{let Y0=ml;if(!Y0){const G0=await xu("Default");if(G0)Y0=G0.id||G0.Id;else throw new Error("Failed to create or fetch Default workspace")}if(!Y0)throw new Error("No workspace ID available after all attempts");await metaAxiosInstance$2.post(`/AgentMeta/Workspace/${Y0}/WorkspaceApp/App`,qw),ua.invalidateQueries({queryKey:["workspace",Y0,"apps",pl]}),ua.invalidateQueries({queryKey:["workspace",ml,"apps",pl]}),await qm()}catch(Y0){console.error("Error occurred:",Y0),y$b.error(Y0?.response?.data?.["status-text"]||Y0?.response?.data?.reason||Y0?.message||"Operation failed")}},vv=async qw=>{try{await metaAxiosInstance$2.delete(`/AgentMeta/Workspace/${ml}/WorkspaceApp/App/${qw}`),ua.invalidateQueries({queryKey:["workspace",ml,"apps",pl]}),await qm()}catch(Y0){console.error("Error occurred:",Y0),y$b.error(Y0?.response?.data?.["status-text"]||Y0?.response?.data?.reason||Y0?.message||"Operation failed")}},R1=async(qw,Y0,G0)=>{try{const X0=`/${qw.githubRepo}`,d_=qw.branchSelected&&qw.githubBranch?qw.githubBranch:"main",f_=wc&&wc.trim().length>0,zN=gl&&gl.trim().length>0,BN=generateGitHubUrl(qw.githubOrg,qw.githubRepo,wc,gl);if((!f_||!zN)&&Y0("⚠️ GitHub credentials missing. Clone may fail for private repositories. Please set your GitHub username and token in Settings.",!1,!1),await pathExists(X0)){G0("checking"),Y0("Repository exists, checking for updates...",!1,!1);try{const yY=await updateExistingRepository(X0,gl,{branch:d_,checkOnly:!0});if(!yY.success)Y0(`Warning: Could not check for updates - ${yY.message}. Using existing repository.`,!1,!1);else if(yY.hasUpdates){G0("updating"),Y0("Fetching latest changes...",!1,!1);const vQ=await updateExistingRepository(X0,gl,{branch:d_,force:!0});vQ.success?Y0("Repository updated successfully!",!0,!1):Y0(`Warning: Could not update repository - ${vQ.message}. Using existing version.`,!1,!1)}else Y0("No updates available",!0,!1)}catch(yY){console.error("Failed to update repository:",yY),Y0(`Warning: Could not check for updates - ${yY.message}. Using existing repository.`,!1,!1)}}else{G0("cloning"),Y0("Cloning repository...",!1,!1);try{await cloneRepository(BN,X0,d_,gl),Y0("Repository cloned successfully!",!0,!1)}catch(yY){console.error("Failed to clone repository:",yY),Y0(`Failed to clone repository: ${yY.message}`,!1,!0);try{await pathExists(X0)&&(console.log(`Cleaning up failed clone: removing ${X0} from IndexedDB`),await removeDirectory(X0))}catch(vQ){console.error("Error cleaning up failed clone:",vQ)}return G0("error"),{path:null,fileContent:null}}}try{G0("processing"),Y0("Searching for .al files...",!1,!1);const yY=await findFilesWithExtension(X0,"al");if(yY.length===0)return Y0("No .al files found in the repository.",!1,!0),G0("error"),{path:null,fileContent:null};Y0(`Found ${yY.length} .al file(s).`,!0,!1);const vQ=yY[0];Y0(`Reading file: ${vQ}...`,!1,!1);const Ohe=await readRepoFile(X0,vQ);try{await readRepoFile(X0,"package.json")}catch{Y0("Warning: package.json not found in repository",!1,!1)}try{return G0("creating"),await flushAllAndLoad(X0,{name:"studio"}),Y0(`${vQ} loaded successfully!`,!0,!1),G0("complete"),{path:X0,fileContent:Ohe}}catch(bY){return console.error(`Failed to load ${vQ}:`,bY),Y0(`Failed to load ${vQ}: ${bY.message}`,!1,!0),G0("error"),{path:null,fileContent:null}}}catch(yY){return console.error("Failed to process .al files:",yY),Y0(`Note: .al files not found or could not be read: ${yY.message}`,!1,!0),G0("error"),{path:X0,fileContent:null}}}catch(X0){return console.error("Failed to execute Git operation:",X0),Y0(`Failed to execute Git operation: ${X0.message}`,!1,!0),G0("error"),{path:null,fileContent:null}}},O1=async(qw,Y0,G0)=>{try{G0("Saving changes...",!1,!1);const X0=await openRepository(qw);return await writeRepoFile(qw,"README.md",Y0),await commitChanges(X0,"README.md","Update README.md",{name:"Fractl Studio User",email:hl||"user@fractl.studio"}),G0("Changes saved successfully!",!0,!1),!0}catch(X0){return console.error("Failed to save README:",X0),G0(`Failed to save: ${X0.message}`,!1,!0),!1}},K0=async(qw,Y0)=>{try{Y0("Pushing changes to repository...",!1,!1);const G0=await openRepository(qw);return await pushChanges(G0,"origin","main",gl),Y0("Changes pushed successfully!",!0,!1),!0}catch(G0){return console.error("Failed to push changes:",G0),Y0(`Failed to push: ${G0.message}`,!1,!0),!1}},J0=reactExports.useCallback(async(qw,Y0,G0=!1)=>{G0&&await qm()},[qm]),Hw=eg?.isEditable??!0;return{currentTeam:eg,workspaceApps:Uf,isLoadingApps:rp,appsError:np,fetchWorkspaceApps:J0,editWorkspaceApp:tg,switchWorkspaceAppBranch:rg,updateWorkspaceAppEditable:Vm,addWorkspaceApp:ig,cloneGitRepository:R1,saveReadmeChanges:O1,pushChanges:K0,deleteWorkspaceApp:vv,isEditable:Hw}},integrationAxiosInstance$1=axiosInstance("connection-manager"),useLLM=()=>{const la=useQueryClient(),aa=useAppStore(Uf=>Uf.authReady),ca=useAppStore(Uf=>Uf.isAuthenticated),ua=Uf=>{const{__parent__:rp,__path__:np,...qm}=Uf;return qm},{data:Sa,isLoading:hl,isError:pl,error:ml,refetch:gl}=useQuery({queryKey:["llms"],queryFn:async()=>{const Uf=await integrationAxiosInstance$1.get("/integmanager.core/llm"),{data:rp,status:np}=Uf;if(np!==200)throw new Error("Failed to fetch llms");return rp.map(Vm=>({...Vm.llm,config:JSON.parse(Vm.llm.config)}))},enabled:aa&&ca&&!0});pl&&ml&&y$b.error(ml?.response?.data?.reason||ml.message);const wc=reactExports.useCallback(async Uf=>{await gl()},[gl]),xu=reactExports.useCallback(async Uf=>{try{const rp=ua(Uf),np=await integrationAxiosInstance$1.post("/integmanager.core/llm",rp);if(np.status===200||np.status===201)la.invalidateQueries({queryKey:["llms"]}),y$b.success("LLM created successfully");else{const qm=np.data?.reason||np.data?.message||`Failed to create LLM (Status: ${np.status})`;throw y$b.error(qm),new Error(qm)}}catch(rp){const np=rp?.response?.data?.reason||rp?.response?.data?.message||rp?.message||"Failed to create LLM";throw y$b.error(np),rp}},[la]),ff=reactExports.useCallback(async Uf=>{try{const rp=await integrationAxiosInstance$1.delete(`/integmanager.core/llm/${Uf}`);if(rp.status===200||rp.status===204)la.invalidateQueries({queryKey:["llms"]}),y$b.success("LLM deleted successfully");else{const np=rp.data?.reason||rp.data?.message||`Failed to delete LLM (Status: ${rp.status})`;throw y$b.error(np),new Error(np)}}catch(rp){const np=rp?.response?.data?.reason||rp?.response?.data?.message||rp?.message||"Failed to delete LLM";throw y$b.error(np),rp}},[la]),jf=reactExports.useCallback(async(Uf,rp)=>{try{const np=ua(rp),qm=await integrationAxiosInstance$1.put(`/integmanager.core/llm/${Uf}`,np);if(qm.status===200||qm.status===201||qm.status===204)la.invalidateQueries({queryKey:["llms"]}),y$b.success("LLM updated successfully");else{const Vm=qm.data?.reason||qm.data?.message||`Failed to update LLM (Status: ${qm.status})`;throw y$b.error(Vm),new Error(Vm)}}catch(np){const qm=np?.response?.data?.reason||np?.response?.data?.message||np?.message||"Failed to update LLM";throw y$b.error(qm),np}},[la]);return{llmData:Sa,isLoadingLLMs:hl,isErrorLLMs:pl,llmError:ml,fetchLLMs:wc,createLLM:xu,deleteLLM:ff,updateLLM:jf}},getTeamModules=la=>{if(!la)return[];const aa=getUserModuleNames(),ca=la.toLowerCase(),ua=ca.replace(/_/g,"");return aa.filter(Sa=>{const hl=Sa.toLowerCase(),pl=hl.split(".")[0];return hl.startsWith(ca)||pl===ua})},IS_LOCAL_MODE$6=!0,useConfigLoader=()=>{const la=useAppStore(ua=>ua.setAppConfig),aa=useAppStore(ua=>ua.setAppConfigError);return{loadConfig:reactExports.useCallback(async ua=>{console.log("loadConfig",ua),aa(null);try{const Sa=await loadAppConfig(ua);console.log("validatedConfig from agentlang",Sa);let hl={};try{let ml;if(IS_LOCAL_MODE$6){const{getFileSystem:gl}=await __vitePreload(async()=>{const{getFileSystem:ff}=await Promise.resolve().then(()=>fsUtils);return{getFileSystem:ff}},void 0),wc=await gl(),xu=`${ua}/config.al`;ml=await wc.readFile(xu)}hl=parseAppConfig(ml),console.log("fullConfig from parseAppConfig",hl)}catch(ml){console.warn("Could not read config.al for full config:",ml.message),hl=Sa}const pl={...hl,...Sa};return console.log("mergedConfig (final)",pl),la(pl),pl}catch(Sa){const hl=Sa instanceof Error?Sa.message:String(Sa);return console.error("Failed to load config.al:",hl),aa(hl),la({}),{}}},[la,aa])}},IS_LOCAL_MODE$5=!0,accessedKeys=new Map,getLocalEnv=la=>{const aa=getLocalEnv$2(la);return console.log(`🔍 getLocalEnv("${la}") called, returning:`,aa?`${aa.substring(0,10)}...`:"undefined"),accessedKeys.set(la,{value:aa,timestamp:Date.now()}),aa||console.warn(`⚠️ Key "${la}" not found in LocalEnv`),aa};typeof window<"u"&&(window.debugResolverKeys={getAccessedKeys:()=>Array.from(accessedKeys.entries()),listAccessedKeys:()=>{console.log("📋 Keys accessed by resolvers:"),accessedKeys.forEach(({value:la},aa)=>{console.log(` ${aa}: ${la?"found":"NOT FOUND"}`)})}});const API_DOMAIN_TO_PROVIDER={"api.hubapi.com":"hubspot","slack.com":"slack","api.github.com":"github","api.stripe.com":"stripe","api.airtable.com":"airtable","api.notion.com":"notion","api.openai.com":"openai","api.anthropic.com":"anthropic","www.googleapis.com":"google"};function createProxiedAxios(){const la=getURL("api-cors-proxy"),aa=axios.create({timeout:3e4});return aa.interceptors.request.use(ca=>{const ua=ca.url;if(ua&&(ua.startsWith("http://")||ua.startsWith("https://")))try{const Sa=new URL(ua),hl=Sa.hostname,pl=Sa.pathname+Sa.search,ml=API_DOMAIN_TO_PROVIDER[hl];if(!ml)return console.warn(`⚠️ No CORS proxy provider configured for domain: ${hl}`),console.warn(` Add '${hl}' to API_DOMAIN_TO_PROVIDER in browserResolvers.ts`),ca;console.log(`🔄 Proxying API call: ${ua}`),console.log(` → Provider: ${ml}`),console.log(" → Original headers:",ca.headers),ca.url=`${la}/proxy/${ml}${pl}`,console.log(` → New URL: ${ca.url}`),console.log(" → Final headers:",ca.headers)}catch(Sa){console.error("Failed to parse URL for proxying:",ua,Sa)}return ca}),aa.interceptors.response.use(ca=>ca,ca=>(ca.code==="ERR_NETWORK"?console.error("❌ Network error - Check if CORS proxy is running on",la):ca.response?.status===401?console.error("❌ 401 Unauthorized - Check API credentials"):ca.response?.status===403&&console.error("❌ 403 Forbidden - Check API permissions"),Promise.reject(ca))),aa}const proxiedAxios=createProxiedAxios(),COMMON_DEPENDENCIES=new Map([["agentlang",{...agentlangRuntimeUtil,asInstance,makeInstance:makeInstance$1,getLocalEnv}],["@fractl/agentlang",{...agentlangRuntimeUtil,asInstance,makeInstance:makeInstance$1,getLocalEnv}],["agentlang/out/runtime/module.js",{makeInstance:makeInstance$1}],["agentlang/out/runtime/auth/defs.js",{getLocalEnv}],["axios",{default:proxiedAxios}]]);function asInstance(la,aa){const ca=aa.split("/"),ua=ca.length===2?ca[0]:"hubspot",Sa=ca.length===2?ca[1]:aa,hl=new Map(Object.entries(la));return makeInstance$1(ua,Sa,hl)}function getDependency(la){if(COMMON_DEPENDENCIES.has(la))return COMMON_DEPENDENCIES.get(la);for(const[aa,ca]of COMMON_DEPENDENCIES)if(la.includes(`/${aa}`)||la.endsWith(`/${aa}`))return ca}const BUILTIN_MODULE_PATHS=["./modules/core.js","./modules/auth.js"];async function setupResolverLoader(la){try{console.log("⚙️ Configuring AgentLang module loader for:",la);let aa=null;if(IS_LOCAL_MODE$5){const{createFS:ua}=await __vitePreload(async()=>{const{createFS:Sa}=await import("./fs-BekVvfTa.js");return{createFS:Sa}},__vite__mapDeps([33,1,18,19,5,9,16,11,14,15,10,20,21,17,4]));aa=await ua({name:"studio",useCliBackend:!0})}setModuleLoader({fileReader:async ua=>{if(console.log(`📖 Reading file: ${ua}`),BUILTIN_MODULE_PATHS.includes(ua))return console.log(`📦 Built-in module: ${ua} (using global registration)`),"";let Sa=ua;if(ua.startsWith(la+"/")?Sa=ua.substring(la.length+1):ua.startsWith(la)&&(Sa=ua.substring(la.length)),Sa.startsWith("/")&&(Sa=Sa.substring(1)),console.log(`📖 Resolved to relative path: ${Sa}`),IS_LOCAL_MODE$5&&aa){const hl=`${la}/${Sa}`,pl=await aa.readFile(hl);return typeof pl=="string"?pl:pl.toString()}return await readRepoFile(la,Sa)},dependencyProvider:ua=>{const Sa=getDependency(ua);return Sa?console.log(`✅ Resolved dependency: ${ua}`):console.warn(`⚠️ Unknown dependency: ${ua}`),Sa},basePath:""}),console.log("✅ Module loader configured successfully"),console.log("ℹ️ Resolvers will be loaded automatically when AgentLang parses .al files")}catch(aa){console.error("❌ Failed to setup resolver loader:",aa)}}const RESOLVER_CONFIGS={hsr:{initFunctionName:"initializeHubSpotConfig",envKeyMapping:{HUBSPOT_ACCESS_TOKEN:"accessToken"},configBuilder:la=>({accessToken:la.HUBSPOT_ACCESS_TOKEN})},gmr:{initFunctionName:"initializeGmailConfig",envKeyMapping:{GMAIL_CLIENT_ID:"clientId",GMAIL_CLIENT_SECRET:"clientSecret",GMAIL_REFRESH_TOKEN:"refreshToken",GMAIL_POLL_INTERVAL_MINUTES:"pollIntervalMinutes"},configBuilder:la=>({clientId:la.GMAIL_CLIENT_ID,clientSecret:la.GMAIL_CLIENT_SECRET,refreshToken:la.GMAIL_REFRESH_TOKEN,pollIntervalMinutes:la.GMAIL_POLL_INTERVAL_MINUTES})},gsr:{initFunctionName:"initializeGoogleConfig",envKeyMapping:{GOOGLE_API_KEY:"apiKey",GOOGLE_CLIENT_ID:"clientId",GOOGLE_CLIENT_SECRET:"clientSecret"},configBuilder:la=>({apiKey:la.GOOGLE_API_KEY,clientId:la.GOOGLE_CLIENT_ID,clientSecret:la.GOOGLE_CLIENT_SECRET})},slackr:{initFunctionName:"initializeSlackConfig",envKeyMapping:{SLACK_BOT_TOKEN:"botToken",SLACK_APP_TOKEN:"appToken"},configBuilder:la=>({botToken:la.SLACK_BOT_TOKEN,appToken:la.SLACK_APP_TOKEN})},ghr:{initFunctionName:"initializeGitHubConfig",envKeyMapping:{GITHUB_TOKEN:"token",GITHUB_API_KEY:"apiKey"},configBuilder:la=>({token:la.GITHUB_TOKEN||la.GITHUB_API_KEY})}};async function initializeResolverConfigs(){try{const{getEnvironmentKeysAsObject:la}=await __vitePreload(async()=>{const{getEnvironmentKeysAsObject:ua}=await Promise.resolve().then(()=>playgroundEnvKeys);return{getEnvironmentKeysAsObject:ua}},void 0),aa=la();console.log("🔑 Available environment keys:",Object.keys(aa));const ca=getImportedModuleNames();console.log("📦 Imported modules:",ca);for(const[ua,Sa]of Object.entries(RESOLVER_CONFIGS)){const hl=getImportedModule(ua);if(!hl){console.log(`ℹ️ Resolver "${ua}" not loaded - skipping initialization`);continue}console.log(`📋 Found resolver module: ${ua}`);const pl=hl[Sa.initFunctionName];if(typeof pl!="function"){console.warn(`⚠️ Resolver "${ua}" found but "${Sa.initFunctionName}" function is missing`);continue}const ml=Object.keys(Sa.envKeyMapping);if(ml.filter(ff=>aa[ff]).length===0){console.warn(`⚠️ No environment keys found for resolver "${ua}". Expected: ${ml.join(", ")}`);continue}const wc=Sa.configBuilder(aa),xu=Object.fromEntries(Object.entries(wc).filter(([ff,jf])=>jf!==void 0));if(Object.keys(xu).length===0){console.warn(`⚠️ No valid configuration could be built for resolver "${ua}"`);continue}console.log(`🔑 Initializing resolver "${ua}" with config:`,{...xu,...Object.keys(xu).reduce((ff,jf)=>{const Uf=xu[jf],rp=typeof Uf=="string"?`***${Uf.slice(-4)}`:"***";return{...ff,[jf]:rp}},{})});try{await pl(xu),console.log(`✅ Resolver "${ua}" configured successfully`),hl.config&&console.log(" Configuration stored in resolver.config")}catch(ff){console.error(`❌ Failed to initialize resolver "${ua}":`,ff)}}console.log("✅ Resolver initialization complete")}catch(la){console.error("❌ Failed to initialize resolver configs:",la)}}const browserResolvers=Object.freeze(Object.defineProperty({__proto__:null,initializeResolverConfigs,setupResolverLoader},Symbol.toStringTag,{value:"Module"})),IS_LOCAL_MODE$4=!0,useRepositoryClone=()=>{const la=useNavigate(),[aa,ca]=reactExports.useState(!1),[ua,Sa]=reactExports.useState(""),[hl,pl]=reactExports.useState(""),ml=Fdt();useAppStore(qm=>qm.user);const{processDependencies:gl}=useDependencyProcessor(),{loadConfig:wc}=useConfigLoader(),xu="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",ff="hamza@fractl.io",jf=reactExports.useCallback(()=>{const qm=ff.trim().length>0,Vm=xu.trim().length>0;(!qm||!Vm)&&console.warn("GitHub credentials missing - clone may fail for private repositories")},[xu,ff]),Uf=reactExports.useCallback(async(qm,Vm,eg,tg,rg,ig)=>{console.log("Processing repository..."),await gl(qm,ff,xu,BN=>{Sa(BN)}),Sa("Loading application modules..."),Sa("Initializing runtime with environment keys...");{const{inBrowserREPL:BN}=await __vitePreload(async()=>{const{inBrowserREPL:iF}=await Promise.resolve().then(()=>inBrowserREPL$1);return{inBrowserREPL:iF}},void 0);await BN.initializeRuntime()}Sa("Configuring resolver loader..."),await setupResolverLoader(qm),Sa("Preparing runtime for app...");const{prepareRuntimeForAppLoad:vv}=await __vitePreload(async()=>{const{prepareRuntimeForAppLoad:BN}=await Promise.resolve().then(()=>index$4);return{prepareRuntimeForAppLoad:BN}},void 0);await vv(qm);{Sa("Initializing filesystem...");const{setFileSystem:BN}=await __vitePreload(async()=>{const{setFileSystem:vQ}=await Promise.resolve().then(()=>fsUtils);return{setFileSystem:vQ}},void 0),{createFS:iF}=await __vitePreload(async()=>{const{createFS:vQ}=await import("./fs-BekVvfTa.js");return{createFS:vQ}},__vite__mapDeps([33,1,18,19,5,9,16,11,14,15,10,20,21,17,4])),yY=await iF({name:"studio",useCliBackend:!0});BN(yY)}Sa("Loading AgentLang modules..."),await flushAllAndLoad(qm,{name:"studio",useCliBackend:IS_LOCAL_MODE$4}),Sa("Reloading core modules...");const{loadCoreModules:R1}=await __vitePreload(async()=>{const{loadCoreModules:BN}=await Promise.resolve().then(()=>loader$1);return{loadCoreModules:BN}},void 0);await R1(),Sa("Loading configuration..."),await wc(qm),Sa("Registering agents and initializing modules..."),await runInitFunctions(),await runStandaloneStatements(),Sa("Loading LLM configurations...");const{queryLLMEntities:O1}=await __vitePreload(async()=>{const{queryLLMEntities:BN}=await Promise.resolve().then(()=>index$4);return{queryLLMEntities:BN}},void 0),K0=await O1(),J0=useAppStore.getState().appConfig;useAppStore.getState().setAppConfig({...J0,llms:K0}),Sa("Initializing resolver configurations..."),await initializeResolverConfigs(),console.log("Reading package.json...");let Hw;{if(!ig)throw new Error("packageJson is required in local mode");Hw=ig}const qw=getTeamModules(Vm),Y0=qw.flatMap(BN=>{try{const iF=fetchModule$2(BN);return iF?iF.getAgentNames().filter(yY=>iF.getAgent(yY)?.isPublic()??!1).map(yY=>`${BN}/${yY}`):[]}catch(iF){return console.warn(`Failed to fetch module ${BN} for public agents:`,iF),[]}});console.log(`[LOCAL] Found ${qw.length} modules:`,qw),console.log(`[LOCAL] Found ${Y0.length} public agents:`,Y0);const G0=qw.flatMap(BN=>fetchModule$2(BN).getEntityNames().map(iF=>`${BN}/${iF}`)),X0=qw.flatMap(BN=>buildGraph(BN).getRoots().map(yY=>`${yY.entity.getModuleName()}/${yY.entity.getEntryName()}`)),d_={Name:eg,Description:Hw.description||"An application generated from "+eg},f_=await loadUISchema(eg,qm,G0,X0,Y0,d_);f_.appInfo||(f_.appInfo={}),f_.appInfo.apiUrl="http://localhost:8080",ml(f_);const zN={githubOrg:tg,teamName:eg,branch:rg,projectPath:qm};return __vitePreload(()=>import("./replService-BU2dKC1u.js"),__vite__mapDeps([34,1,18,19,5,9,16,11,14,15,10,20,21,17,4])).then(async({default:BN})=>{try{await BN.ensureReplSession(zN),await BN.initializeFileTracking(qm)}catch(iF){console.error("❌ Failed to setup REPL deployment:",iF)}}),qw[0]},[ff,xu,Sa,ml,gl,wc]),rp=reactExports.useCallback(async qm=>{ca(!0),pl("");try{jf();const{GitHubOrg:Vm,GitHubRepo:eg,Name:tg,Branch:rg}=qm,ig=`/${eg}`,vv=generateGitHubUrl(Vm,eg,ff,xu);await pathExists(ig)?Sa("Repository already exists. Loading modules..."):(Sa("Cloning repository..."),await cloneRepository(vv,ig,rg,xu)),await Uf(ig,eg,tg,Vm,rg)}catch(Vm){const eg=Vm instanceof Error?Vm.message:"Failed to clone repository";pl(eg),console.error("Error during repository clone:",Vm);try{const tg=`/${qm.GitHubRepo}`;await pathExists(tg)&&(console.log(`Cleaning up failed clone: removing ${tg} from IndexedDB`),await removeDirectory(tg))}catch(tg){console.error("Error cleaning up failed clone:",tg)}}finally{ca(!1)}},[jf,ff,xu,Uf]),np=reactExports.useCallback((qm,Vm,eg,tg,rg)=>{const ig=`/design/${qm?"agents":"data-model"}/${Vm}/${eg}/${tg}`;rg?la(ig,rg):la(ig)},[la]);return{isCloning:aa,error:hl,loadingMessage:ua,cloneAndProcess:rp,navigateToDesign:np,processRepository:Uf}},CLI_URL$1="http://localhost:4000";async function fetchPackageInfo(){const la=await fetch(`${CLI_URL$1}/info`);return la.ok?la.json():{}}async function fetchDependenciesFromLocalServer(la,aa,ca){return console.log("✓ Using dependencies from real filesystem (local mode)"),aa.map(ua=>({appName:ua.appName,success:!0,message:"Using dependency from real filesystem",path:`${la}/node_modules/${ua.appName}`}))}function parsePackageName(la){if(!la?.name)return{org:"file",name:""};const aa=la.name;if(aa.startsWith("@")){const ca=aa.substring(1).split("/");if(ca.length===2)return{org:ca[0],name:ca[1]}}return{org:"file",name:aa}}function isDesignPage(la){return la?["data-model","marketplace-data-model","agents","workflow","security","ui","settings"].includes(la):!1}const useServeMode=()=>{const la=useNavigate(),aa=useMatches(),{processRepository:ca}=useRepositoryClone(),[ua,Sa]=reactExports.useState(""),[hl,pl]=reactExports.useState(null);return{initializeServeMode:reactExports.useCallback(async()=>{Sa("Connecting to local server..."),pl(null);try{Sa("Loading app configuration...");const gl=await fetchPackageInfo(),{org:wc,name:xu}=parsePackageName(gl),ff=`/${xu}`;Sa("Processing project...");const jf=await ca(ff,xu,xu,wc,"main",gl),Uf=aa[aa.length-1];if(isDesignPage(Uf?.id))return;const rp=`/design/agents/${wc}/${xu}`;la(jf?`${rp}/${jf}`:rp)}catch(gl){const wc=gl instanceof Error?gl.message:"An unknown error occurred";pl(wc),console.error("Failed to initialize serve mode:",gl)}finally{Sa("")}},[ca,la,aa]),loadingMessage:ua,error:hl}},CLI_URL="http://localhost:4000",useDependencyProcessor=()=>{const la=reactExports.useCallback(ca=>{if(!ca.dependencies)return[];const ua=[];for(const[Sa,hl]of Object.entries(ca.dependencies))typeof hl=="string"&&hl.startsWith("git+http")&&ua.push({appName:Sa,url:hl});return ua},[]),aa=reactExports.useCallback(async(ca,ua,Sa,hl)=>{let pl;{const jf=await fetch(`${CLI_URL}/file?path=${encodeURIComponent("package.json")}`);if(!jf.ok)throw new Error(`Failed to fetch package.json from CLI backend at ${CLI_URL}: ${jf.statusText}`);const{content:Uf}=await jf.json();pl=Uf}const ml=JSON.parse(pl),gl=la(ml);if(gl.length===0)return[];hl&&hl(`Installing ${gl.length} dependencies...`,0,gl.length);let wc;wc=await fetchDependenciesFromLocalServer(ca,gl);const xu=wc.filter(jf=>!jf.success),ff=wc.filter(jf=>jf.success);if(ff.length>0&&console.log(`✓ Successfully fetched ${ff.length} dependencies:`,ff.map(jf=>jf.appName).join(", ")),xu.length>0&&console.warn(`⚠ Failed to install ${xu.length} of ${gl.length} dependencies:`,xu.map(jf=>`${jf.appName} (${jf.message})`).join(", ")),ff.length>0){const{createFS:jf}=await __vitePreload(async()=>{const{createFS:rp}=await import("./fs-BekVvfTa.js");return{createFS:rp}},__vite__mapDeps([33,1,18,19,5,9,16,11,14,15,10,20,21,17,4])),Uf=await jf({name:"studio",useCliBackend:!0});for(const rp of ff)if(rp.path)try{const np=`${rp.path}/package.json`;await Uf.exists(np)?console.log(`✓ ${rp.appName}: Verified package.json exists`):console.error(`✗ ${rp.appName}: package.json missing at ${np}`)}catch(np){console.error(`✗ ${rp.appName}: Verification failed:`,np)}}return wc},[la]);return{extractGitDependencies:la,processDependencies:aa}},IS_LOCAL_MODE$3=!0,integrationAxiosInstance=axiosInstance("connection-manager"),useIntegration=(la="api")=>{const{currentTeam:aa}=useTeams(),ca=aa?.GitHubRepo,ua=useQueryClient();useAppStore(vv=>vv.authReady),useAppStore(vv=>vv.isAuthenticated);const Sa=useAppStore(vv=>vv.user),hl=Sa.GitHub.Token,pl=Sa.GitHub.Username,{processDependencies:ml}=useDependencyProcessor(),gl=async vv=>{if(ca)try{const O1=(await readDependencyPackageJsonFromGit(ca,vv))?.agentlang?.config||[];if(O1.length===0)return[];let K0="";try{K0=await readProjectFile(ca,"config.al")}catch{return console.log("config.al does not exist yet"),[]}const J0=parseAppConfig(K0),Hw=[];return O1.forEach(qw=>{let Y0=vv;if(!J0[Y0]&&isFqName$1(qw)){const X0=nameToPath$1(qw).getModuleName();X0&&J0[X0]&&(Y0=X0)}J0[Y0]&&J0[Y0][qw]&&Hw.push({entityFqn:qw,config:J0[Y0][qw]})}),Hw}catch(R1){return console.error(`Error reading configs from config.al for ${vv}:`,R1),y$b.error(`Failed to load configs for ${vv}: ${R1.message}`),[]}try{const R1=await integrationAxiosInstance.get(`/api/IntegrationManager.Core/Integration/${vv}/ConnectionConfigGroup/ConnectionConfig`),{result:O1,status:K0,message:J0}=R1.data;if(K0==="ok")return O1;K0==="error"&&y$b.error(J0||`Failed to load configs for ${vv}`)}catch(R1){console.error(`Error fetching configs for ${vv}:`,R1),y$b.error(`Error fetching configs for ${vv}`)}},{data:wc,isLoading:xu,isError:ff,error:jf,refetch:Uf}=useQuery({queryKey:["integrations",ca,la],queryFn:async()=>{if(console.log("fetching integrations in",la),la!=="config")return console.log("[LOCAL_MODE] Skipping API integrations fetch - use config mode instead"),[];if(ca)try{const Hw=(await readPackageJsonFromGit(ca,!0)).dependencies||{};let qw={};try{const X0=await readProjectFile(ca,"config.al");qw=parseAppConfig(X0),console.log("parsedConfig",qw)}catch{console.log("config.al does not exist yet")}const Y0=/(?:git\+)?https:\/\/(?:[^@]+@)?github\.com\/([^/]+)\/([^/.]+)(?:\.git)?(?:#.+)?/,G0=[];return Object.entries(Hw).forEach(([X0,d_])=>{const f_=d_.match(Y0);if(f_){const[,zN,BN]=f_;let iF,yY=null;qw[BN]&&qw[BN].isRemoteIntegration!==void 0?(yY=qw[BN],iF=yY.isRemoteIntegration):qw[X0]&&typeof qw[X0].isRemoteIntegration=="boolean"&&(yY=qw[X0],iF=yY.isRemoteIntegration);const Ohe={name:yY?.name||X0,userData:{GitHubOrg:zN,GitHubRepo:BN}};iF!==void 0&&(Ohe.userData.isRemoteIntegration=iF),G0.push(Ohe)}else d_.startsWith("file:")}),G0}catch(J0){return console.warn("Failed to read integrations from package.json",J0),[]}const vv=await integrationAxiosInstance.get("/integmanager.core/integration"),{data:R1,status:O1}=vv;if(O1!==200)throw new Error("Failed to fetch integrations");return R1.map(J0=>({...J0.integration,userData:JSON.parse(J0.integration.userData)}))},enabled:IS_LOCAL_MODE$3,staleTime:0,refetchOnWindowFocus:!0});ff&&jf&&y$b.error(jf?.response?.data?.reason||jf.message);const rp=reactExports.useCallback(async()=>{await Uf()},[Uf]),np=reactExports.useCallback(async(vv,R1)=>{const O1=`/temp-validation/${vv}/${R1}`;let K0=!1;try{if(!await pathExists(O1)){const G0=generateGitHubUrl(vv,R1,pl,hl);await cloneRepository(G0,O1,"main",hl||""),K0=!0}let Hw;if(IS_LOCAL_MODE$3){const{createGitUtils:G0}=await __vitePreload(async()=>{const{createGitUtils:f_}=await Promise.resolve().then(()=>index$6);return{createGitUtils:f_}},void 0),{fs:X0}=await G0({useCliBackend:!1}),d_=`${O1}/package.json`;Hw=(await X0.readFile(d_)).toString()}const qw=JSON.parse(Hw),Y0=qw?.agentlang?.config&&Array.isArray(qw.agentlang.config);if(K0)try{await removeDirectory(O1)}catch(G0){console.warn("Failed to cleanup temporary clone:",G0)}return Y0}catch(J0){if(K0)try{await removeDirectory(O1)}catch(Hw){console.warn("Failed to cleanup temporary clone:",Hw)}throw J0}},[pl,hl]),qm=reactExports.useCallback(async vv=>{if(la==="config"&&ca){const R1=pl&&pl.trim().length>0,O1=hl&&hl.trim().length>0;if(!R1||!O1){const d_=new Error("GitHub credentials are required for local mode");throw d_.code="GITHUB_CREDENTIALS_REQUIRED",d_}const K0=vv.userData.GitHubRepo,J0=vv.name,Hw=vv.userData.GitHubOrg;if(!K0||!Hw)throw new Error("GitHub organization and repository name are required");if(!await np(Hw,K0))throw new Error("The repository is not a valid AgentLang project. It must have a package.json with an agentlang.config field.");const Y0=await readPackageJsonFromGit(ca);Y0.dependencies||(Y0.dependencies={});const G0=generateGitHubUrl(Hw,K0,pl,hl);Y0.dependencies[J0]=`git+${G0}#main`,await savePackageJsonToGit(ca,JSON.stringify(Y0,null,2),`Add dependency for ${J0}`,pl,hl);const X0=`/${ca}`;try{await ml(X0,pl,hl)}catch(d_){throw console.error(`Failed to process dependencies for ${J0}:`,d_),y$b.error(`Failed to clone dependency: ${d_.message}`),d_}try{const d_=`${X0}/node_modules/${J0}`,f_=await readRepoFile(d_,"package.json"),zN=JSON.parse(f_);if(zN?.agentlang?.config&&Array.isArray(zN.agentlang.config)&&zN.agentlang.config.length>0){let BN="";try{BN=await readProjectFile(ca,"config.al")}catch{}const iF=BN?parseAppConfig(BN):{};iF[J0]||(iF[J0]={}),zN.agentlang.config.forEach(yY=>{iF[J0][yY]||(iF[J0][yY]={})}),await saveConfigToGit(ca,formatAppConfig(iF),`Add config for integration ${J0}`,pl,hl)}}catch(d_){console.warn(`Failed to create config maps for integration ${J0}:`,d_)}try{await flushAllAndLoad(X0,{name:"studio",useCliBackend:IS_LOCAL_MODE$3}),await ua.invalidateQueries({queryKey:["dependencies"]})}catch(d_){console.warn(`Failed to load modules for ${J0}:`,d_)}await ua.invalidateQueries({queryKey:["integrations",ca,la]}),await Uf(),y$b.success("Integration created successfully");return}try{const R1=await integrationAxiosInstance.post("/integmanager.core/integration",vv);if(R1.status===200||R1.status===201)await ua.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration created successfully");else throw new Error(R1.data?.reason||R1.data?.message||"Failed to create integration")}catch(R1){const O1=R1?.response?.data?.reason||R1?.response?.data?.message||R1?.message||"Failed to create integration";throw new Error(O1)}},[ua,ca,pl,hl,la,np,ml,Uf]),Vm=reactExports.useCallback(async vv=>{if(la==="config"&&ca)try{const R1=await readPackageJsonFromGit(ca);if(R1.dependencies&&R1.dependencies[vv]){const O1=R1.dependencies[vv],K0=/(?:git\+)?https:\/\/github\.com\/([^/]+)\/([^/.]+)(?:\.git)?(?:#.+)?/,J0=O1.match(K0),Hw=J0?J0[2]:null;let qw=null;if(Hw)try{const Y0=await readDependencyPackageJsonFromGit(ca,vv);Y0?.name&&(qw=Y0.name.split("/").pop()?.split("@").pop()||null)}catch{console.log(`Could not read package.json for ${vv}, will try to remove by repo name`)}delete R1.dependencies[vv],await savePackageJsonToGit(ca,JSON.stringify(R1,null,2),`Remove dependency ${vv}`,pl,hl);try{const Y0=await readProjectFile(ca,"config.al"),G0=parseAppConfig(Y0);let X0=!1;if(Hw&&G0[Hw]&&(delete G0[Hw],X0=!0),qw&&G0[qw]&&(delete G0[qw],X0=!0),G0[vv]&&(delete G0[vv],X0=!0),X0){const d_=formatAppConfig(G0);await saveConfigToGit(ca,d_,`Remove integration ${vv} from config.al`,pl,hl)}}catch{console.log("config.al does not exist or error reading it")}await ua.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration deleted successfully");return}else{y$b.info("Integration not found in dependencies");return}}catch(R1){throw console.error("Failed to delete integration:",R1),y$b.error(`Failed to delete integration: ${R1.message}`),R1}try{const R1=await integrationAxiosInstance.delete(`/integmanager.core/integration/${vv}`);if(console.log(R1.data),R1.status===200||R1.status===204)await ua.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration deleted successfully");else{const O1=R1.data?.reason||R1.data?.message||`Failed to delete integration (Status: ${R1.status})`;throw y$b.error(O1),new Error(O1)}}catch(R1){const O1=R1?.response?.data?.reason||R1?.response?.data?.message||R1?.message||"Failed to delete integration";throw y$b.error(O1),R1}},[ua,ca,pl,hl,la]),eg=reactExports.useCallback(async(vv,R1)=>{if(la==="config"&&ca)try{const O1=R1.userData?.GitHubRepo,K0=R1.userData?.GitHubOrg;if(!O1||!K0)throw new Error("Missing GitHub info for update");const J0=await readPackageJsonFromGit(ca);J0.dependencies||(J0.dependencies={}),J0.dependencies[vv]=`git+https://github.com/${K0}/${O1}.git#main`,await savePackageJsonToGit(ca,JSON.stringify(J0,null,2),`Update dependency ${vv}`,pl,hl),await ua.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration updated successfully");return}catch(O1){throw console.error("Failed to update integration:",O1),y$b.error(`Failed to update integration: ${O1.message}`),O1}try{const O1=await integrationAxiosInstance.put(`/integmanager.core/integration/${vv}`,R1);if(console.log(O1.data),O1.status===200)ua.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration updated successfully");else{const K0=O1.data?.reason||O1.data?.message||`Failed to update integration (Status: ${O1.status})`;throw y$b.error(K0),new Error(K0)}}catch(O1){const K0=O1?.response?.data?.reason||O1?.response?.data?.message||O1?.message||"Failed to update integration";throw y$b.error(K0),O1}},[ua,ca,pl,hl,la]),tg=reactExports.useCallback(async vv=>{if(la!=="api"||!ca){console.warn("addIntegrationToConfig only supported in 'api' mode with a valid githubRepo");return}try{const R1=vv.userData?.GitHubRepo,O1=vv.userData?.GitHubOrg,K0=vv.name;if(!R1||!O1)throw new Error("GitHub organization and repository name are required");const J0=`git+https://github.com/${O1}/${R1}.git#main`,Hw=await readPackageJsonFromGit(ca);Hw.dependencies||(Hw.dependencies={}),Hw.dependencies[R1]=J0,await savePackageJsonToGit(ca,JSON.stringify(Hw,null,2),`Add integration ${K0} from API`,pl,hl);const qw=`/${ca}`;try{await ml(qw,pl,hl),await flushAllAndLoad(qw,{name:"studio",useCliBackend:IS_LOCAL_MODE$3}),await ua.invalidateQueries({queryKey:["dependencies"]})}catch(X0){console.warn(`Failed to process dependencies for ${K0}:`,X0)}let Y0={};try{const X0=await readProjectFile(ca,"config.al");Y0=parseAppConfig(X0)}catch{console.log("config.al does not exist yet, will create it")}Y0[R1]={isRemoteIntegration:!0,name:K0,url:J0};const G0=formatAppConfig(Y0);await saveConfigToGit(ca,G0,`Add integration ${K0} to config.al`,pl,hl),await ua.invalidateQueries({queryKey:["integrations"]}),y$b.success(`Integration ${K0} added successfully`)}catch(R1){throw console.error("Error adding integration to config:",R1),y$b.error(`Failed to add integration: ${R1.message}`),R1}},[ca,pl,hl,la,ua,ml]),rg=reactExports.useCallback(async vv=>{if(la!=="api"||!ca){console.warn("removeIntegrationFromConfig only supported in 'api' mode with a valid githubRepo");return}try{const R1=vv.userData?.GitHubRepo,O1=vv.name;if(!R1)throw new Error("GitHub repository name is required");const K0=await readPackageJsonFromGit(ca);K0.dependencies&&K0.dependencies[O1]&&(delete K0.dependencies[O1],await savePackageJsonToGit(ca,JSON.stringify(K0,null,2),`Remove integration ${O1} from API`,pl,hl));try{const J0=await readProjectFile(ca,"config.al"),Hw=parseAppConfig(J0);if(Hw[R1]){delete Hw[R1];const qw=formatAppConfig(Hw);await saveConfigToGit(ca,qw,`Remove integration ${O1} from config.al`,pl,hl)}}catch{console.log("config.al does not exist or error reading it")}await ua.invalidateQueries({queryKey:["integrations"]}),y$b.success(`Integration ${O1} removed successfully`)}catch(R1){throw console.error("Error removing integration from config:",R1),y$b.error(`Failed to remove integration: ${R1.message}`),R1}},[ca,pl,hl,la,ua]),ig=reactExports.useCallback(async()=>{if(!ca)return console.warn("readAllConfigsFromPackageJson requires a valid githubRepo"),{};try{const R1=(await readPackageJsonFromGit(ca,!0)).dependencies||{},O1={};for(const[K0]of Object.entries(R1))try{const J0=await readDependencyPackageJsonFromGit(ca,K0);J0?.agentlang?.config&&Array.isArray(J0.agentlang.config)&&(O1[K0]=J0.agentlang.config)}catch(J0){console.warn(`Failed to read package.json for dependency ${K0}:`,J0.message)}return O1}catch(vv){throw console.error("Failed to read all configs from package.json:",vv),new Error(`Failed to read all configs: ${vv.message}`)}},[ca]);return{integrationData:wc,isLoadingIntegrations:xu,isErrorIntegrations:ff,integrationsError:jf,fetchIntegrations:rp,fetchIntegrationConnectionConfigs:gl,createIntegration:qm,deleteIntegration:Vm,updateIntegration:eg,addIntegrationToConfig:tg,removeIntegrationFromConfig:rg,readAllConfigsFromPackageJson:ig}},IS_PLAYGROUND$6=!1,IS_LOCAL_MODE$2=!0,useDeployments=()=>{const la=useQueryClient(),aa=useAppStore(ff=>ff.authReady),ca=useAppStore(ff=>ff.isAuthenticated),{data:ua,isLoading:Sa,isError:hl,error:pl,refetch:ml}=useQuery({queryKey:["deployments"],queryFn:async()=>(console.log("[SERVE_MODE] Skipping deployments fetch - returning empty object"),{}),enabled:aa&&ca&&!IS_PLAYGROUND$6&&!IS_LOCAL_MODE$2});hl&&pl&&y$b.error(pl?.response?.data?.reason||pl.message);const gl=reactExports.useCallback(async()=>{{console.log("[SERVE_MODE] Skipping deployments fetch");return}},[ml]),wc=reactExports.useCallback(async ff=>{try{if(IS_PLAYGROUND$6||IS_LOCAL_MODE$2)return console.log(`[${IS_PLAYGROUND$6?"PLAYGROUND":"SERVE_MODE"}] Skipping app deployment`),y$b.success(`App deployed successfully! (${IS_PLAYGROUND$6?"playground":"serve"} mode)`),{success:!0};const jf=await axiosInstance("deployment").post("/Deployment/DeployApp",ff);return y$b.success("App deployed successfully!"),la.invalidateQueries({queryKey:["deployments"]}),jf.data}catch(jf){throw y$b.error(jf?.response?.data?.reason||"Failed to deploy app"),jf}},[la]),xu=reactExports.useCallback(async ff=>{try{if(IS_PLAYGROUND$6||IS_LOCAL_MODE$2)return console.log(`[${IS_PLAYGROUND$6?"PLAYGROUND":"SERVE_MODE"}] Skipping app undeployment`),y$b.success(`App undeployed successfully! (${IS_PLAYGROUND$6?"playground":"serve"} mode)`),{success:!0};const jf=await axiosInstance("deployment").post("/Deployment/UndeployApp",ff);return y$b.success("App undeployed successfully!"),la.invalidateQueries({queryKey:["deployments"]}),jf.data}catch(jf){throw y$b.error(jf?.response?.data?.reason||"Failed to undeploy app"),jf}},[la]);return{deploymentsData:ua,isLoadingDeployments:Sa,isErrorDeployments:hl,deploymentsError:pl,fetchDeployments:gl,deployApp:wc,undeployApp:xu}};let globalInitializationState={isInitializing:!1,isInitialized:!1,error:null,retryCount:0,progress:{userLoaded:!1,workspaceLoaded:!1,dataLoaded:!1}};const listeners=new Set,updateGlobalState=la=>{globalInitializationState={...globalInitializationState,...la},listeners.forEach(aa=>aa(globalInitializationState))},useAppInitialization=()=>{const[la,aa]=reactExports.useState(globalInitializationState),ca=reactExports.useRef(!1),{setUser:ua,user:Sa,lastDataFetch:hl,setLastDataFetch:pl}=useAppStore(),ml=axiosInstance("meta"),{fetchWorkspaceApps:gl}=useTeams(),{fetchIntegrations:wc}=useIntegration(),{fetchDeployments:xu}=useDeployments(),{fetchLLMs:ff}=useLLM();reactExports.useEffect(()=>{const ig=vv=>{aa(vv)};return listeners.add(ig),()=>{listeners.delete(ig)}},[]);const jf=reactExports.useCallback(ig=>{const vv={...globalInitializationState,progress:{...globalInitializationState.progress,...ig}};updateGlobalState(vv)},[]),Uf=reactExports.useCallback(()=>{if(typeof window>"u")return!1;const ig=localStorage.getItem("agentlang-studio-store");if(!ig)return!1;try{const vv=JSON.parse(ig),R1=vv.state&&vv.state.user&&vv.state.user.Email,O1=vv.state&&vv.state.workspace&&vv.state.workspace.Id,K0=vv.state&&vv.state.lastDataFetch&&vv.state.lastDataFetch>0;return R1&&O1&&K0}catch(vv){return console.warn("Failed to parse cached store:",vv),!1}},[]),rp=reactExports.useCallback(()=>{if(hl===0)return!0;const ig=Date.now()-600*1e3;if(hl>ig)return!1;const vv=Date.now()-300*1e3;return hl<vv},[hl]),np=reactExports.useCallback(()=>{if(typeof window>"u")return!1;const ig=localStorage.getItem("agentlang-studio-store");if(!ig)return!1;try{const vv=JSON.parse(ig);if(vv.state&&vv.state.user&&vv.state.user.Email)return jf({userLoaded:!0}),!0}catch(vv){console.warn("Failed to parse cached store:",vv)}return!1},[jf]),qm=reactExports.useCallback(()=>{if(typeof window>"u")return!1;const ig=localStorage.getItem("workspace_id"),vv=localStorage.getItem("username");return ig&&vv?(jf({workspaceLoaded:!0}),!0):!1},[jf]),Vm=reactExports.useCallback(async(ig,vv,R1=!1)=>{{console.log("[DEV MODE] Skipping app data initialization - no API calls needed"),jf({dataLoaded:!0});return}},[gl,wc,xu,ff,jf,pl]),eg=reactExports.useCallback(async(ig=0)=>{if(!ca.current){console.log("[DEV MODE] Skipping app initialization - no API calls needed"),pl(Date.now()),updateGlobalState({isInitializing:!1,isInitialized:!0,retryCount:0,progress:{userLoaded:!0,workspaceLoaded:!0,dataLoaded:!0}}),y$b.success("App initialized in dev mode");return}},[ml,ua,Sa,Vm,jf,Uf,np,qm,rp,pl]),tg=reactExports.useCallback(()=>{updateGlobalState({retryCount:0}),ca.current=!1,eg()},[eg]),rg=reactExports.useCallback(()=>{updateGlobalState({isInitializing:!1,isInitialized:!1,error:null,retryCount:0,progress:{userLoaded:!1,workspaceLoaded:!1,dataLoaded:!1}}),ca.current=!1},[]);return reactExports.useEffect(()=>()=>{ca.current=!1},[]),{...la,initializeApp:eg,retryInitialization:tg,resetInitialization:rg}};var t$9=typeof window<"u"?window:void 0,i$a=typeof globalThis<"u"?globalThis:t$9;typeof self>"u"&&(i$a.self=i$a),typeof File>"u"&&(i$a.File=function(){});var e$a=Array.prototype,r$d=e$a.forEach,s$f=e$a.indexOf,n$9=i$a?.navigator,o$d=i$a?.document,a$i=i$a?.location,l$9=i$a?.fetch,u$h=i$a!=null&&i$a.XMLHttpRequest&&"withCredentials"in new i$a.XMLHttpRequest?i$a.XMLHttpRequest:void 0,h$c=i$a?.AbortController,d$6=n$9?.userAgent,v$7=t$9??{},c$e={DEBUG:!1,LIB_VERSION:"1.313.0"};function f$g(la,aa,ca,ua,Sa,hl,pl){try{var ml=la[hl](pl),gl=ml.value}catch(wc){return void ca(wc)}ml.done?aa(gl):Promise.resolve(gl).then(ua,Sa)}function p$c(la){return function(){var aa=this,ca=arguments;return new Promise((function(ua,Sa){var hl=la.apply(aa,ca);function pl(gl){f$g(hl,ua,Sa,pl,ml,"next",gl)}function ml(gl){f$g(hl,ua,Sa,pl,ml,"throw",gl)}pl(void 0)}))}}function g$8(){return g$8=Object.assign?Object.assign.bind():function(la){for(var aa=1;aa<arguments.length;aa++){var ca=arguments[aa];for(var ua in ca)({}).hasOwnProperty.call(ca,ua)&&(la[ua]=ca[ua])}return la},g$8.apply(null,arguments)}function _$7(la,aa){if(la==null)return{};var ca={};for(var ua in la)if({}.hasOwnProperty.call(la,ua)){if(aa.indexOf(ua)!==-1)continue;ca[ua]=la[ua]}return ca}var m$8=["amazonbot","amazonproductbot","app.hypefactors.com","applebot","archive.org_bot","awariobot","backlinksextendedbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","dataforseobot","deepscan","duckduckbot","facebookexternal","facebookcatalog","http://yandex.com/bots","hubspot","ia_archiver","leikibot","linkedinbot","meta-externalagent","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","sebot-wa","sitebulb","slackbot","slurp","trendictionbot","turnitin","twitterbot","vercel-screenshot","vercelbot","yahoo! slurp","yandexbot","zoombot","bot.htm","bot.php","(bot;","bot/","crawler","ahrefsbot","ahrefssiteaudit","semrushbot","siteauditbot","splitsignalbot","gptbot","oai-searchbot","chatgpt-user","perplexitybot","better uptime bot","sentryuptimebot","uptimerobot","headlesschrome","cypress","google-hoteladsverifier","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleother","google-cloudvertexbot","googleweblight","mediapartners-google","storebot-google","google-inspectiontool","bytespider"],y$a=function(la,aa){if(aa===void 0&&(aa=[]),!la)return!1;var ca=la.toLowerCase();return m$8.concat(aa).some((ua=>{var Sa=ua.toLowerCase();return ca.indexOf(Sa)!==-1}))},b$8=["$snapshot","$pageview","$pageleave","$set","survey dismissed","survey sent","survey shown","$identify","$groupidentify","$create_alias","$$client_ingestion_warning","$web_experiment_applied","$feature_enrollment_update","$feature_flag_called"];function w$9(la,aa){return la.indexOf(aa)!==-1}var x$6=function(la){return la.trim()},E$7=function(la){return la.replace(/^\$/,"")},S$a=Array.isArray,k$a=Object.prototype,P$9=k$a.hasOwnProperty,T$a=k$a.toString,I$8=S$a||function(la){return T$a.call(la)==="[object Array]"},C$c=la=>typeof la=="function",R$3=la=>la===Object(la)&&!I$8(la),F$8=la=>{if(R$3(la)){for(var aa in la)if(P$9.call(la,aa))return!1;return!0}return!1},M$6=la=>la===void 0,O$5=la=>T$a.call(la)=="[object String]",A$7=la=>O$5(la)&&la.trim().length===0,D$b=la=>la===null,j$a=la=>M$6(la)||D$b(la),L$6=la=>T$a.call(la)=="[object Number]",N$6=la=>T$a.call(la)==="[object Boolean]",U$4=la=>la instanceof FormData,z$5=la=>w$9(b$8,la);function H$9(la){return la===null||typeof la!="object"}function B$5(la,aa){return Object.prototype.toString.call(la)==="[object "+aa+"]"}function q$6(la){return!M$6(Event)&&(function(aa,ca){try{return aa instanceof ca}catch{return!1}})(la,Event)}var W$4=[!0,"true",1,"1","yes"],G$5=la=>w$9(W$4,la),V$7=[!1,"false",0,"0","no"];function J$5(la,aa,ca,ua,Sa){return aa>ca&&(ua.warn("min cannot be greater than max."),aa=ca),L$6(la)?la>ca?(ua.warn(" cannot be greater than max: "+ca+". Using max value instead."),ca):la<aa?(ua.warn(" cannot be less than min: "+aa+". Using min value instead."),aa):la:(ua.warn(" must be a number. using max or fallback. max: "+ca+", fallback: "+Sa),J$5(Sa||ca,aa,ca,ua))}let K$6=class{constructor(aa){this.t={},this.i=aa.i,this.o=J$5(aa.bucketSize,0,100,aa.h),this.m=J$5(aa.refillRate,0,this.o,aa.h),this.$=J$5(aa.refillInterval,0,864e5,aa.h)}S(aa,ca){var ua=ca-aa.lastAccess,Sa=Math.floor(ua/this.$);if(Sa>0){var hl=Sa*this.m;aa.tokens=Math.min(aa.tokens+hl,this.o),aa.lastAccess=aa.lastAccess+Sa*this.$}}consumeRateLimit(aa){var ca,ua=Date.now(),Sa=String(aa),hl=this.t[Sa];return hl?this.S(hl,ua):(hl={tokens:this.o,lastAccess:ua},this.t[Sa]=hl),hl.tokens===0||(hl.tokens--,hl.tokens===0&&((ca=this.i)==null||ca.call(this,aa)),hl.tokens===0)}stop(){this.t={}}};var Y$3="Mobile",X$4="iOS",Q$5="Android",Z$4="Tablet",tt$1=Q$5+" "+Z$4,it$1="iPad",et$1="Apple",rt$1=et$1+" Watch",st$1="Safari",nt$1="BlackBerry",ot$1="Samsung",at$1=ot$1+"Browser",lt$1=ot$1+" Internet",ut$1="Chrome",ht$1=ut$1+" OS",dt$2=ut$1+" "+X$4,vt$1="Internet Explorer",ct$1=vt$1+" "+Y$3,ft$1="Opera",pt$1=ft$1+" Mini",gt$2="Edge",_t$1="Microsoft "+gt$2,mt$1="Firefox",yt$1=mt$1+" "+X$4,bt="Nintendo",wt$1="PlayStation",xt="Xbox",Et$2=Q$5+" "+Y$3,$t=Y$3+" "+st$1,St$1="Windows",kt$1=St$1+" Phone",Pt$2="Nokia",Tt$1="Ouya",It$1="Generic",Ct$1=It$1+" "+Y$3.toLowerCase(),Rt$1=It$1+" "+Z$4.toLowerCase(),Ft$2="Konqueror",Mt$2="(\\d+(\\.\\d+)?)",Ot=new RegExp("Version/"+Mt$2),At$1=new RegExp(xt,"i"),Dt$1=new RegExp(wt$1+" \\w+","i"),jt=new RegExp(bt+" \\w+","i"),Lt=new RegExp(nt$1+"|PlayBook|BB10","i"),Nt={"NT3.51":"NT 3.11","NT4.0":"NT 4.0","5.0":"2000",5.1:"XP",5.2:"XP","6.0":"Vista",6.1:"7",6.2:"8",6.3:"8.1",6.4:"10","10.0":"10"},Ut,zt,Ht,Bt$1=(la,aa)=>aa&&w$9(aa,et$1)||(function(ca){return w$9(ca,st$1)&&!w$9(ca,ut$1)&&!w$9(ca,Q$5)})(la),qt=function(la,aa){return aa=aa||"",w$9(la," OPR/")&&w$9(la,"Mini")?pt$1:w$9(la," OPR/")?ft$1:Lt.test(la)?nt$1:w$9(la,"IE"+Y$3)||w$9(la,"WPDesktop")?ct$1:w$9(la,at$1)?lt$1:w$9(la,gt$2)||w$9(la,"Edg/")?_t$1:w$9(la,"FBIOS")?"Facebook "+Y$3:w$9(la,"UCWEB")||w$9(la,"UCBrowser")?"UC Browser":w$9(la,"CriOS")?dt$2:w$9(la,"CrMo")||w$9(la,ut$1)?ut$1:w$9(la,Q$5)&&w$9(la,st$1)?Et$2:w$9(la,"FxiOS")?yt$1:w$9(la.toLowerCase(),Ft$2.toLowerCase())?Ft$2:Bt$1(la,aa)?w$9(la,Y$3)?$t:st$1:w$9(la,mt$1)?mt$1:w$9(la,"MSIE")||w$9(la,"Trident/")?vt$1:w$9(la,"Gecko")?mt$1:""},Wt={[ct$1]:[new RegExp("rv:"+Mt$2)],[_t$1]:[new RegExp(gt$2+"?\\/"+Mt$2)],[ut$1]:[new RegExp("("+ut$1+"|CrMo)\\/"+Mt$2)],[dt$2]:[new RegExp("CriOS\\/"+Mt$2)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+Mt$2)],[st$1]:[Ot],[$t]:[Ot],[ft$1]:[new RegExp("(Opera|OPR)\\/"+Mt$2)],[mt$1]:[new RegExp(mt$1+"\\/"+Mt$2)],[yt$1]:[new RegExp("FxiOS\\/"+Mt$2)],[Ft$2]:[new RegExp("Konqueror[:/]?"+Mt$2,"i")],[nt$1]:[new RegExp(nt$1+" "+Mt$2),Ot],[Et$2]:[new RegExp("android\\s"+Mt$2,"i")],[lt$1]:[new RegExp(at$1+"\\/"+Mt$2)],[vt$1]:[new RegExp("(rv:|MSIE )"+Mt$2)],Mozilla:[new RegExp("rv:"+Mt$2)]},Gt=function(la,aa){var ca=qt(la,aa),ua=Wt[ca];if(M$6(ua))return null;for(var Sa=0;Sa<ua.length;Sa++){var hl=ua[Sa],pl=la.match(hl);if(pl)return parseFloat(pl[pl.length-2])}return null},Vt=[[new RegExp(xt+"; "+xt+" (.*?)[);]","i"),la=>[xt,la&&la[1]||""]],[new RegExp(bt,"i"),[bt,""]],[new RegExp(wt$1,"i"),[wt$1,""]],[Lt,[nt$1,""]],[new RegExp(St$1,"i"),(la,aa)=>{if(/Phone/.test(aa)||/WPDesktop/.test(aa))return[kt$1,""];if(new RegExp(Y$3).test(aa)&&!/IEMobile\b/.test(aa))return[St$1+" "+Y$3,""];var ca=/Windows NT ([0-9.]+)/i.exec(aa);if(ca&&ca[1]){var ua=ca[1],Sa=Nt[ua]||"";return/arm/i.test(aa)&&(Sa="RT"),[St$1,Sa]}return[St$1,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,la=>{if(la&&la[3]){var aa=[la[3],la[4],la[5]||"0"];return[X$4,aa.join(".")]}return[X$4,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,la=>{var aa="";return la&&la.length>=3&&(aa=M$6(la[2])?la[3]:la[2]),["watchOS",aa]}],[new RegExp("("+Q$5+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+Q$5+")","i"),la=>{if(la&&la[2]){var aa=[la[2],la[3],la[4]||"0"];return[Q$5,aa.join(".")]}return[Q$5,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,la=>{var aa=["Mac OS X",""];if(la&&la[1]){var ca=[la[1],la[2],la[3]||"0"];aa[1]=ca.join(".")}return aa}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[ht$1,""]],[/Linux|debian/i,["Linux",""]]],Jt=function(la){return jt.test(la)?bt:Dt$1.test(la)?wt$1:At$1.test(la)?xt:new RegExp(Tt$1,"i").test(la)?Tt$1:new RegExp("("+kt$1+"|WPDesktop)","i").test(la)?kt$1:/iPad/.test(la)?it$1:/iPod/.test(la)?"iPod Touch":/iPhone/.test(la)?"iPhone":/(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i.test(la)?rt$1:Lt.test(la)?nt$1:/(kobo)\s(ereader|touch)/i.test(la)?"Kobo":new RegExp(Pt$2,"i").test(la)?Pt$2:/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i.test(la)||/(kf[a-z]+)( bui|\)).+silk\//i.test(la)?"Kindle Fire":/(Android|ZTE)/i.test(la)?new RegExp(Y$3).test(la)&&!/(9138B|TB782B|Nexus [97]|pixel c|HUAWEISHT|BTV|noble nook|smart ultra 6)/i.test(la)||/pixel[\daxl ]{1,6}/i.test(la)&&!/pixel c/i.test(la)||/(huaweimed-al00|tah-|APA|SM-G92|i980|zte|U304AA)/i.test(la)||/lmy47v/i.test(la)&&!/QTAQZ3/i.test(la)?Q$5:tt$1:new RegExp("(pda|"+Y$3+")","i").test(la)?Ct$1:new RegExp(Z$4,"i").test(la)&&!new RegExp(Z$4+" pc","i").test(la)?Rt$1:""},Kt=la=>la instanceof Error;function Yt(la){var aa=globalThis._posthogChunkIds;if(aa){var ca=Object.keys(aa);return Ht&&ca.length===zt||(zt=ca.length,Ht=ca.reduce(((ua,Sa)=>{Ut||(Ut={});var hl=Ut[Sa];if(hl)ua[hl[0]]=hl[1];else for(var pl=la(Sa),ml=pl.length-1;ml>=0;ml--){var gl=pl[ml],wc=gl?.filename,xu=aa[Sa];if(wc&&xu){ua[wc]=xu,Ut[Sa]=[wc,xu];break}}return ua}),{})),Ht}}class Xt{constructor(aa,ca,ua){ua===void 0&&(ua=[]),this.coercers=aa,this.stackParser=ca,this.modifiers=ua}buildFromUnknown(aa,ca){ca===void 0&&(ca={});var ua=ca&&ca.mechanism||{handled:!0,type:"generic"},Sa=this.buildCoercingContext(ua,ca,0).apply(aa),hl=this.buildParsingContext(),pl=this.parseStacktrace(Sa,hl);return{$exception_list:this.convertToExceptionList(pl,ua),$exception_level:"error"}}modifyFrames(aa){var ca=this;return p$c((function*(){for(var ua of aa)ua.stacktrace&&ua.stacktrace.frames&&I$8(ua.stacktrace.frames)&&(ua.stacktrace.frames=yield ca.applyModifiers(ua.stacktrace.frames));return aa}))()}coerceFallback(aa){var ca;return{type:"Error",value:"Unknown error",stack:(ca=aa.syntheticException)==null?void 0:ca.stack,synthetic:!0}}parseStacktrace(aa,ca){var ua,Sa;return aa.cause!=null&&(ua=this.parseStacktrace(aa.cause,ca)),aa.stack!=""&&aa.stack!=null&&(Sa=this.applyChunkIds(this.stackParser(aa.stack,aa.synthetic?1:0),ca.chunkIdMap)),g$8({},aa,{cause:ua,stack:Sa})}applyChunkIds(aa,ca){return aa.map((ua=>(ua.filename&&ca&&(ua.chunk_id=ca[ua.filename]),ua)))}applyCoercers(aa,ca){for(var ua of this.coercers)if(ua.match(aa))return ua.coerce(aa,ca);return this.coerceFallback(ca)}applyModifiers(aa){var ca=this;return p$c((function*(){var ua=aa;for(var Sa of ca.modifiers)ua=yield Sa(ua);return ua}))()}convertToExceptionList(aa,ca){var ua,Sa,hl,pl={type:aa.type,value:aa.value,mechanism:{type:(ua=ca.type)!==null&&ua!==void 0?ua:"generic",handled:(Sa=ca.handled)===null||Sa===void 0||Sa,synthetic:(hl=aa.synthetic)!==null&&hl!==void 0&&hl}};aa.stack&&(pl.stacktrace={type:"raw",frames:aa.stack});var ml=[pl];return aa.cause!=null&&ml.push(...this.convertToExceptionList(aa.cause,g$8({},ca,{handled:!0}))),ml}buildParsingContext(){return{chunkIdMap:Yt(this.stackParser)}}buildCoercingContext(aa,ca,ua){ua===void 0&&(ua=0);var Sa=(hl,pl)=>{if(pl<=4){var ml=this.buildCoercingContext(aa,ca,pl);return this.applyCoercers(hl,ml)}};return g$8({},ca,{syntheticException:ua==0?ca.syntheticException:void 0,mechanism:aa,apply:hl=>Sa(hl,ua),next:hl=>Sa(hl,ua+1)})}}var Qt="?";function Zt(la,aa,ca,ua,Sa){var hl={platform:la,filename:aa,function:ca==="<anonymous>"?Qt:ca,in_app:!0};return M$6(ua)||(hl.lineno=ua),M$6(Sa)||(hl.colno=Sa),hl}var ti=(la,aa)=>{var ca=la.indexOf("safari-extension")!==-1,ua=la.indexOf("safari-web-extension")!==-1;return ca||ua?[la.indexOf("@")!==-1?la.split("@")[0]:Qt,ca?"safari-extension:"+aa:"safari-web-extension:"+aa]:[la,aa]},ii=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,ei=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,ri=/\((\S*)(?::(\d+))(?::(\d+))\)/,si=(la,aa)=>{var ca=ii.exec(la);if(ca){var[,ua,Sa,hl]=ca;return Zt(aa,ua,Qt,+Sa,+hl)}var pl=ei.exec(la);if(pl){if(pl[2]&&pl[2].indexOf("eval")===0){var ml=ri.exec(pl[2]);ml&&(pl[2]=ml[1],pl[3]=ml[2],pl[4]=ml[3])}var[gl,wc]=ti(pl[1]||Qt,pl[2]);return Zt(aa,wc,gl,pl[3]?+pl[3]:void 0,pl[4]?+pl[4]:void 0)}},ni=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,oi=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,ai=(la,aa)=>{var ca=ni.exec(la);if(ca){if(ca[3]&&ca[3].indexOf(" > eval")>-1){var ua=oi.exec(ca[3]);ua&&(ca[1]=ca[1]||"eval",ca[3]=ua[1],ca[4]=ua[2],ca[5]="")}var Sa=ca[3],hl=ca[1]||Qt;return[hl,Sa]=ti(hl,Sa),Zt(aa,Sa,hl,ca[4]?+ca[4]:void 0,ca[5]?+ca[5]:void 0)}},li=/\(error: (.*)\)/,ui=50;function hi(la){for(var aa=arguments.length,ca=new Array(aa>1?aa-1:0),ua=1;ua<aa;ua++)ca[ua-1]=arguments[ua];return function(Sa,hl){hl===void 0&&(hl=0);for(var pl=[],ml=Sa.split(`
|
|
19413
|
+
`);var L$7=la=>typeof la=="number"&&!isNaN(la),N$7=la=>typeof la=="string",P$a=la=>typeof la=="function",mt$2=la=>N$7(la)||L$7(la),B$6=la=>N$7(la)||P$a(la)?la:null,pt$2=(la,aa)=>la===!1||L$7(la)&&la>0?la:aa,z$6=la=>reactExports.isValidElement(la)||N$7(la)||P$a(la)||L$7(la);function Z$5(la,aa,ca=300){let{scrollHeight:ua,style:Sa}=la;requestAnimationFrame(()=>{Sa.minHeight="initial",Sa.height=ua+"px",Sa.transition=`all ${ca}ms`,requestAnimationFrame(()=>{Sa.height="0",Sa.padding="0",Sa.margin="0",setTimeout(aa,ca)})})}function $$6({enter:la,exit:aa,appendPosition:ca=!1,collapse:ua=!0,collapseDuration:Sa=300}){return function({children:hl,position:pl,preventExitTransition:ml,done:gl,nodeRef:wc,isIn:xu,playToast:ff}){let jf=ca?`${la}--${pl}`:la,Uf=ca?`${aa}--${pl}`:aa,rp=reactExports.useRef(0);return reactExports.useLayoutEffect(()=>{let np=wc.current,qm=jf.split(" "),Vm=eg=>{eg.target===wc.current&&(ff(),np.removeEventListener("animationend",Vm),np.removeEventListener("animationcancel",Vm),rp.current===0&&eg.type!=="animationcancel"&&np.classList.remove(...qm))};np.classList.add(...qm),np.addEventListener("animationend",Vm),np.addEventListener("animationcancel",Vm)},[]),reactExports.useEffect(()=>{let np=wc.current,qm=()=>{np.removeEventListener("animationend",qm),ua?Z$5(np,gl,Sa):gl()};xu||(ml?qm():(rp.current=1,np.className+=` ${Uf}`,np.addEventListener("animationend",qm)))},[xu]),React.createElement(React.Fragment,null,hl)}}function J$6(la,aa){return{content:tt$2(la.content,la.props),containerId:la.props.containerId,id:la.props.toastId,theme:la.props.theme,type:la.props.type,data:la.props.data||{},isLoading:la.props.isLoading,icon:la.props.icon,reason:la.removalReason,status:aa}}function tt$2(la,aa,ca=!1){return reactExports.isValidElement(la)&&!N$7(la.type)?reactExports.cloneElement(la,{closeToast:aa.closeToast,toastProps:aa,data:aa.data,isPaused:ca}):P$a(la)?la({closeToast:aa.closeToast,toastProps:aa,data:aa.data,isPaused:ca}):la}function yt$2({closeToast:la,theme:aa,ariaLabel:ca="close"}){return React.createElement("button",{className:`Toastify__close-button Toastify__close-button--${aa}`,type:"button",onClick:ua=>{ua.stopPropagation(),la(!0)},"aria-label":ca},React.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},React.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}function gt$3({delay:la,isRunning:aa,closeToast:ca,type:ua="default",hide:Sa,className:hl,controlledProgress:pl,progress:ml,rtl:gl,isIn:wc,theme:xu}){let ff=Sa||pl&&ml===0,jf={animationDuration:`${la}ms`,animationPlayState:aa?"running":"paused"};pl&&(jf.transform=`scaleX(${ml})`);let Uf=clsx("Toastify__progress-bar",pl?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${xu}`,`Toastify__progress-bar--${ua}`,{"Toastify__progress-bar--rtl":gl}),rp=P$a(hl)?hl({rtl:gl,type:ua,defaultClassName:Uf}):clsx(Uf,hl),np={[pl&&ml>=1?"onTransitionEnd":"onAnimationEnd"]:pl&&ml<1?null:()=>{wc&&ca()}};return React.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":ff},React.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${xu} Toastify__progress-bar--${ua}`}),React.createElement("div",{role:"progressbar","aria-hidden":ff?"true":"false","aria-label":"notification timer",className:rp,style:jf,...np}))}var Xt$1=1,at$2=()=>`${Xt$1++}`;function _t$2(la,aa,ca){let ua=1,Sa=0,hl=[],pl=[],ml=aa,gl=new Map,wc=new Set,xu=eg=>(wc.add(eg),()=>wc.delete(eg)),ff=()=>{pl=Array.from(gl.values()),wc.forEach(eg=>eg())},jf=({containerId:eg,toastId:tg,updateId:rg})=>{let ig=eg?eg!==la:la!==1,vv=gl.has(tg)&&rg==null;return ig||vv},Uf=(eg,tg)=>{gl.forEach(rg=>{var ig;(tg==null||tg===rg.props.toastId)&&((ig=rg.toggle)==null||ig.call(rg,eg))})},rp=eg=>{var tg,rg;(rg=(tg=eg.props)==null?void 0:tg.onClose)==null||rg.call(tg,eg.removalReason),eg.isActive=!1},np=eg=>{if(eg==null)gl.forEach(rp);else{let tg=gl.get(eg);tg&&rp(tg)}ff()},qm=()=>{Sa-=hl.length,hl=[]},Vm=eg=>{var tg,rg;let{toastId:ig,updateId:vv}=eg.props,R1=vv==null;eg.staleId&&gl.delete(eg.staleId),eg.isActive=!0,gl.set(ig,eg),ff(),ca(J$6(eg,R1?"added":"updated")),R1&&((rg=(tg=eg.props).onOpen)==null||rg.call(tg))};return{id:la,props:ml,observe:xu,toggle:Uf,removeToast:np,toasts:gl,clearQueue:qm,buildToast:(eg,tg)=>{if(jf(tg))return;let{toastId:rg,updateId:ig,data:vv,staleId:R1,delay:O1}=tg,K0=ig==null;K0&&Sa++;let J0={...ml,style:ml.toastStyle,key:ua++,...Object.fromEntries(Object.entries(tg).filter(([qw,Y0])=>Y0!=null)),toastId:rg,updateId:ig,data:vv,isIn:!1,className:B$6(tg.className||ml.toastClassName),progressClassName:B$6(tg.progressClassName||ml.progressClassName),autoClose:tg.isLoading?!1:pt$2(tg.autoClose,ml.autoClose),closeToast(qw){gl.get(rg).removalReason=qw,np(rg)},deleteToast(){let qw=gl.get(rg);if(qw!=null){if(ca(J$6(qw,"removed")),gl.delete(rg),Sa--,Sa<0&&(Sa=0),hl.length>0){Vm(hl.shift());return}ff()}}};J0.closeButton=ml.closeButton,tg.closeButton===!1||z$6(tg.closeButton)?J0.closeButton=tg.closeButton:tg.closeButton===!0&&(J0.closeButton=z$6(ml.closeButton)?ml.closeButton:!0);let Hw={content:eg,props:J0,staleId:R1};ml.limit&&ml.limit>0&&Sa>ml.limit&&K0?hl.push(Hw):L$7(O1)?setTimeout(()=>{Vm(Hw)},O1):Vm(Hw)},setProps(eg){ml=eg},setToggle:(eg,tg)=>{let rg=gl.get(eg);rg&&(rg.toggle=tg)},isToastActive:eg=>{var tg;return(tg=gl.get(eg))==null?void 0:tg.isActive},getSnapshot:()=>pl}}var I$9=new Map,F$9=[],st$2=new Set,Vt$1=la=>st$2.forEach(aa=>aa(la)),bt$1=()=>I$9.size>0;function Qt$1(){F$9.forEach(la=>nt$2(la.content,la.options)),F$9=[]}var vt$2=(la,{containerId:aa})=>{var ca;return(ca=I$9.get(aa||1))==null?void 0:ca.toasts.get(la)};function X$5(la,aa){var ca;if(aa)return!!((ca=I$9.get(aa))!=null&&ca.isToastActive(la));let ua=!1;return I$9.forEach(Sa=>{Sa.isToastActive(la)&&(ua=!0)}),ua}function ht$2(la){if(!bt$1()){F$9=F$9.filter(aa=>la!=null&&aa.options.toastId!==la);return}if(la==null||mt$2(la))I$9.forEach(aa=>{aa.removeToast(la)});else if(la&&("containerId"in la||"id"in la)){let aa=I$9.get(la.containerId);aa?aa.removeToast(la.id):I$9.forEach(ca=>{ca.removeToast(la.id)})}}var Ct$2=(la={})=>{I$9.forEach(aa=>{aa.props.limit&&(!la.containerId||aa.id===la.containerId)&&aa.clearQueue()})};function nt$2(la,aa){z$6(la)&&(bt$1()||F$9.push({content:la,options:aa}),I$9.forEach(ca=>{ca.buildToast(la,aa)}))}function xt$1(la){var aa;(aa=I$9.get(la.containerId||1))==null||aa.setToggle(la.id,la.fn)}function rt$2(la,aa){I$9.forEach(ca=>{(aa==null||!(aa!=null&&aa.containerId)||aa?.containerId===ca.id)&&ca.toggle(la,aa?.id)})}function Et$3(la){let aa=la.containerId||1;return{subscribe(ca){let ua=_t$2(aa,la,Vt$1);I$9.set(aa,ua);let Sa=ua.observe(ca);return Qt$1(),()=>{Sa(),I$9.delete(aa)}},setProps(ca){var ua;(ua=I$9.get(aa))==null||ua.setProps(ca)},getSnapshot(){var ca;return(ca=I$9.get(aa))==null?void 0:ca.getSnapshot()}}}function Pt$3(la){return st$2.add(la),()=>{st$2.delete(la)}}function Wt$1(la){return la&&(N$7(la.toastId)||L$7(la.toastId))?la.toastId:at$2()}function U$5(la,aa){return nt$2(la,aa),aa.toastId}function V$8(la,aa){return{...aa,type:aa&&aa.type||la,toastId:Wt$1(aa)}}function Q$6(la){return(aa,ca)=>U$5(aa,V$8(la,ca))}function y$b(la,aa){return U$5(la,V$8("default",aa))}y$b.loading=(la,aa)=>U$5(la,V$8("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...aa}));function Gt$1(la,{pending:aa,error:ca,success:ua},Sa){let hl;aa&&(hl=N$7(aa)?y$b.loading(aa,Sa):y$b.loading(aa.render,{...Sa,...aa}));let pl={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},ml=(wc,xu,ff)=>{if(xu==null){y$b.dismiss(hl);return}let jf={type:wc,...pl,...Sa,data:ff},Uf=N$7(xu)?{render:xu}:xu;return hl?y$b.update(hl,{...jf,...Uf}):y$b(Uf.render,{...jf,...Uf}),ff},gl=P$a(la)?la():la;return gl.then(wc=>ml("success",ua,wc)).catch(wc=>ml("error",ca,wc)),gl}y$b.promise=Gt$1;y$b.success=Q$6("success");y$b.info=Q$6("info");y$b.error=Q$6("error");y$b.warning=Q$6("warning");y$b.warn=y$b.warning;y$b.dark=(la,aa)=>U$5(la,V$8("default",{theme:"dark",...aa}));function qt$1(la){ht$2(la)}y$b.dismiss=qt$1;y$b.clearWaitingQueue=Ct$2;y$b.isActive=X$5;y$b.update=(la,aa={})=>{let ca=vt$2(la,aa);if(ca){let{props:ua,content:Sa}=ca,hl={delay:100,...ua,...aa,toastId:aa.toastId||la,updateId:at$2()};hl.toastId!==la&&(hl.staleId=la);let pl=hl.render||Sa;delete hl.render,U$5(pl,hl)}};y$b.done=la=>{y$b.update(la,{progress:1})};y$b.onChange=Pt$3;y$b.play=la=>rt$2(!0,la);y$b.pause=la=>rt$2(!1,la);function It$2(la){var aa;let{subscribe:ca,getSnapshot:ua,setProps:Sa}=reactExports.useRef(Et$3(la)).current;Sa(la);let hl=(aa=reactExports.useSyncExternalStore(ca,ua,ua))==null?void 0:aa.slice();function pl(ml){if(!hl)return[];let gl=new Map;return la.newestOnTop&&hl.reverse(),hl.forEach(wc=>{let{position:xu}=wc.props;gl.has(xu)||gl.set(xu,[]),gl.get(xu).push(wc)}),Array.from(gl,wc=>ml(wc[0],wc[1]))}return{getToastToRender:pl,isToastActive:X$5,count:hl?.length}}function At$2(la){let[aa,ca]=reactExports.useState(!1),[ua,Sa]=reactExports.useState(!1),hl=reactExports.useRef(null),pl=reactExports.useRef({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:ml,pauseOnHover:gl,closeToast:wc,onClick:xu,closeOnClick:ff}=la;xt$1({id:la.toastId,containerId:la.containerId,fn:ca}),reactExports.useEffect(()=>{if(la.pauseOnFocusLoss)return jf(),()=>{Uf()}},[la.pauseOnFocusLoss]);function jf(){document.hasFocus()||Vm(),window.addEventListener("focus",qm),window.addEventListener("blur",Vm)}function Uf(){window.removeEventListener("focus",qm),window.removeEventListener("blur",Vm)}function rp(R1){if(la.draggable===!0||la.draggable===R1.pointerType){eg();let O1=hl.current;pl.canCloseOnClick=!0,pl.canDrag=!0,O1.style.transition="none",la.draggableDirection==="x"?(pl.start=R1.clientX,pl.removalDistance=O1.offsetWidth*(la.draggablePercent/100)):(pl.start=R1.clientY,pl.removalDistance=O1.offsetHeight*(la.draggablePercent===80?la.draggablePercent*1.5:la.draggablePercent)/100)}}function np(R1){let{top:O1,bottom:K0,left:J0,right:Hw}=hl.current.getBoundingClientRect();R1.nativeEvent.type!=="touchend"&&la.pauseOnHover&&R1.clientX>=J0&&R1.clientX<=Hw&&R1.clientY>=O1&&R1.clientY<=K0?Vm():qm()}function qm(){ca(!0)}function Vm(){ca(!1)}function eg(){pl.didMove=!1,document.addEventListener("pointermove",rg),document.addEventListener("pointerup",ig)}function tg(){document.removeEventListener("pointermove",rg),document.removeEventListener("pointerup",ig)}function rg(R1){let O1=hl.current;if(pl.canDrag&&O1){pl.didMove=!0,aa&&Vm(),la.draggableDirection==="x"?pl.delta=R1.clientX-pl.start:pl.delta=R1.clientY-pl.start,pl.start!==R1.clientX&&(pl.canCloseOnClick=!1);let K0=la.draggableDirection==="x"?`${pl.delta}px, var(--y)`:`0, calc(${pl.delta}px + var(--y))`;O1.style.transform=`translate3d(${K0},0)`,O1.style.opacity=`${1-Math.abs(pl.delta/pl.removalDistance)}`}}function ig(){tg();let R1=hl.current;if(pl.canDrag&&pl.didMove&&R1){if(pl.canDrag=!1,Math.abs(pl.delta)>pl.removalDistance){Sa(!0),la.closeToast(!0),la.collapseAll();return}R1.style.transition="transform 0.2s, opacity 0.2s",R1.style.removeProperty("transform"),R1.style.removeProperty("opacity")}}let vv={onPointerDown:rp,onPointerUp:np};return ml&&gl&&(vv.onMouseEnter=Vm,la.stacked||(vv.onMouseLeave=qm)),ff&&(vv.onClick=R1=>{xu&&xu(R1),pl.canCloseOnClick&&wc(!0)}),{playToast:qm,pauseToast:Vm,isRunning:aa,preventExitTransition:ua,toastRef:hl,eventHandlers:vv}}var Ot$1=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect,G$6=({theme:la,type:aa,isLoading:ca,...ua})=>React.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:la==="colored"?"currentColor":`var(--toastify-icon-color-${aa})`,...ua});function ao$1(la){return React.createElement(G$6,{...la},React.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))}function so$1(la){return React.createElement(G$6,{...la},React.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))}function no$1(la){return React.createElement(G$6,{...la},React.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))}function ro$1(la){return React.createElement(G$6,{...la},React.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))}function io$1(){return React.createElement("div",{className:"Toastify__spinner"})}var W$5={info:so$1,warning:ao$1,success:no$1,error:ro$1,spinner:io$1},lo$2=la=>la in W$5;function Nt$1({theme:la,type:aa,isLoading:ca,icon:ua}){let Sa=null,hl={theme:la,type:aa};return ua===!1||(P$a(ua)?Sa=ua({...hl,isLoading:ca}):reactExports.isValidElement(ua)?Sa=reactExports.cloneElement(ua,hl):ca?Sa=W$5.spinner():lo$2(aa)&&(Sa=W$5[aa](hl))),Sa}var wt$2=la=>{let{isRunning:aa,preventExitTransition:ca,toastRef:ua,eventHandlers:Sa,playToast:hl}=At$2(la),{closeButton:pl,children:ml,autoClose:gl,onClick:wc,type:xu,hideProgressBar:ff,closeToast:jf,transition:Uf,position:rp,className:np,style:qm,progressClassName:Vm,updateId:eg,role:tg,progress:rg,rtl:ig,toastId:vv,deleteToast:R1,isIn:O1,isLoading:K0,closeOnClick:J0,theme:Hw,ariaLabel:qw}=la,Y0=clsx("Toastify__toast",`Toastify__toast-theme--${Hw}`,`Toastify__toast--${xu}`,{"Toastify__toast--rtl":ig},{"Toastify__toast--close-on-click":J0}),G0=P$a(np)?np({rtl:ig,position:rp,type:xu,defaultClassName:Y0}):clsx(Y0,np),X0=Nt$1(la),d_=!!rg||!gl,f_={closeToast:jf,type:xu,theme:Hw},zN=null;return pl===!1||(P$a(pl)?zN=pl(f_):reactExports.isValidElement(pl)?zN=reactExports.cloneElement(pl,f_):zN=yt$2(f_)),React.createElement(Uf,{isIn:O1,done:R1,position:rp,preventExitTransition:ca,nodeRef:ua,playToast:hl},React.createElement("div",{id:vv,tabIndex:0,onClick:wc,"data-in":O1,className:G0,...Sa,style:qm,ref:ua,...O1&&{role:tg,"aria-label":qw}},X0!=null&&React.createElement("div",{className:clsx("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!K0})},X0),tt$2(ml,la,!aa),zN,!la.customProgressBar&&React.createElement(gt$3,{...eg&&!d_?{key:`p-${eg}`}:{},rtl:ig,theme:Hw,delay:gl,isRunning:aa,isIn:O1,closeToast:jf,hide:ff,type:xu,className:Vm,controlledProgress:d_,progress:rg||0})))},K$7=(la,aa=!1)=>({enter:`Toastify--animate Toastify__${la}-enter`,exit:`Toastify--animate Toastify__${la}-exit`,appendPosition:aa}),lt$2=$$6(K$7("bounce",!0)),_o$1={position:"top-right",transition:lt$2,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light","aria-label":"Notifications Alt+T",hotKeys:la=>la.altKey&&la.code==="KeyT"};function Lt$1(la){let aa={..._o$1,...la},ca=la.stacked,[ua,Sa]=reactExports.useState(!0),hl=reactExports.useRef(null),{getToastToRender:pl,isToastActive:ml,count:gl}=It$2(aa),{className:wc,style:xu,rtl:ff,containerId:jf,hotKeys:Uf}=aa;function rp(qm){let Vm=clsx("Toastify__toast-container",`Toastify__toast-container--${qm}`,{"Toastify__toast-container--rtl":ff});return P$a(wc)?wc({position:qm,rtl:ff,defaultClassName:Vm}):clsx(Vm,B$6(wc))}function np(){ca&&(Sa(!0),y$b.play())}return Ot$1(()=>{var qm;if(ca){let Vm=hl.current.querySelectorAll('[data-in="true"]'),eg=12,tg=(qm=aa.position)==null?void 0:qm.includes("top"),rg=0,ig=0;Array.from(Vm).reverse().forEach((vv,R1)=>{let O1=vv;O1.classList.add("Toastify__toast--stacked"),R1>0&&(O1.dataset.collapsed=`${ua}`),O1.dataset.pos||(O1.dataset.pos=tg?"top":"bot");let K0=rg*(ua?.2:1)+(ua?0:eg*R1);O1.style.setProperty("--y",`${tg?K0:K0*-1}px`),O1.style.setProperty("--g",`${eg}`),O1.style.setProperty("--s",`${1-(ua?ig:0)}`),rg+=O1.offsetHeight,ig+=.025})}},[ua,gl,ca]),reactExports.useEffect(()=>{function qm(Vm){var eg;let tg=hl.current;Uf(Vm)&&((eg=tg.querySelector('[tabIndex="0"]'))==null||eg.focus(),Sa(!1),y$b.pause()),Vm.key==="Escape"&&(document.activeElement===tg||tg!=null&&tg.contains(document.activeElement))&&(Sa(!0),y$b.play())}return document.addEventListener("keydown",qm),()=>{document.removeEventListener("keydown",qm)}},[Uf]),React.createElement("section",{ref:hl,className:"Toastify",id:jf,onMouseEnter:()=>{ca&&(Sa(!1),y$b.pause())},onMouseLeave:np,"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text","aria-label":aa["aria-label"]},pl((qm,Vm)=>{let eg=Vm.length?{...xu}:{...xu,pointerEvents:"none"};return React.createElement("div",{tabIndex:-1,className:rp(qm),"data-stacked":ca,style:eg,key:`c-${qm}`},Vm.map(({content:tg,props:rg})=>React.createElement(wt$2,{...rg,stacked:ca,collapseAll:np,isIn:ml(rg.toastId,rg.containerId),key:`t-${rg.key}`},tg)))}))}const RECENTLY_VISITED_TEAMS_KEY="recently-visited-teams",MAX_RECENTLY_VISITED=10;function transformSimpleTeamToTeam(la){return{Branch:la.branch||"",Config:la.config||{},CreatedAt:la.createdAt||"",Dependencies:la.dependencies||{FractlModels:[],ClojureLibraries:[]},Description:la.description||"",EntityType:la.entityType||"",GitHubOrg:la.gitHubOrg||"",GitHubRepo:la.gitHubRepo||"",GithubUrl:la.githubUrl||"",Id:la.id||"",__Id__:la.__Id__||la.id||"",LastUpdatedAt:la.lastUpdatedAt||"",Name:la.name||"",Owner:la.owner||"",Tags:la.tags||null,Type:la.type||"",Version:la.version||"",isEditable:la.isEditable||!1,isPin:la.isPin==="true"||la.isPin===!0}}function getRecentlyVisitedTeams(){try{const la=localStorage.getItem(RECENTLY_VISITED_TEAMS_KEY);return la?JSON.parse(la):[]}catch{return[]}}function addRecentlyVisitedTeam(la){try{const ca=getRecentlyVisitedTeams().filter(Sa=>Sa!==la),ua=[la,...ca].slice(0,MAX_RECENTLY_VISITED);localStorage.setItem(RECENTLY_VISITED_TEAMS_KEY,JSON.stringify(ua))}catch(aa){console.warn("Failed to save recently visited team:",aa)}}function filterAndSortTeams(la,aa){return Object.values(la).filter(ua=>ua.Name!==void 0).filter(ua=>(ua.Name??"").toLowerCase().includes(aa.toLowerCase())).sort((ua,Sa)=>{const hl=Number(Sa.isPin??!1)-Number(ua.isPin??!1);if(hl!==0)return hl;const pl=(ua.Name??"").toLowerCase(),ml=(Sa.Name??"").toLowerCase();return pl.localeCompare(ml)})}function getIconsTree(la,aa){const ca=la.icons,ua=la.aliases||Object.create(null),Sa=Object.create(null);function hl(pl){if(ca[pl])return Sa[pl]=[];if(!(pl in Sa)){Sa[pl]=null;const ml=ua[pl]&&ua[pl].parent,gl=ml&&hl(ml);gl&&(Sa[pl]=[ml].concat(gl))}return Sa[pl]}return Object.keys(ca).concat(Object.keys(ua)).forEach(hl),Sa}const defaultIconDimensions=Object.freeze({left:0,top:0,width:16,height:16}),defaultIconTransformations=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),defaultIconProps=Object.freeze({...defaultIconDimensions,...defaultIconTransformations}),defaultExtendedIconProps=Object.freeze({...defaultIconProps,body:"",hidden:!1});function mergeIconTransformations(la,aa){const ca={};!la.hFlip!=!aa.hFlip&&(ca.hFlip=!0),!la.vFlip!=!aa.vFlip&&(ca.vFlip=!0);const ua=((la.rotate||0)+(aa.rotate||0))%4;return ua&&(ca.rotate=ua),ca}function mergeIconData(la,aa){const ca=mergeIconTransformations(la,aa);for(const ua in defaultExtendedIconProps)ua in defaultIconTransformations?ua in la&&!(ua in ca)&&(ca[ua]=defaultIconTransformations[ua]):ua in aa?ca[ua]=aa[ua]:ua in la&&(ca[ua]=la[ua]);return ca}function internalGetIconData(la,aa,ca){const ua=la.icons,Sa=la.aliases||Object.create(null);let hl={};function pl(ml){hl=mergeIconData(ua[ml]||Sa[ml],hl)}return pl(aa),ca.forEach(pl),mergeIconData(la,hl)}function parseIconSet(la,aa){const ca=[];if(typeof la!="object"||typeof la.icons!="object")return ca;la.not_found instanceof Array&&la.not_found.forEach(Sa=>{aa(Sa,null),ca.push(Sa)});const ua=getIconsTree(la);for(const Sa in ua){const hl=ua[Sa];hl&&(aa(Sa,internalGetIconData(la,Sa,hl)),ca.push(Sa))}return ca}const optionalPropertyDefaults={provider:"",aliases:{},not_found:{},...defaultIconDimensions};function checkOptionalProps(la,aa){for(const ca in aa)if(ca in la&&typeof la[ca]!=typeof aa[ca])return!1;return!0}function quicklyValidateIconSet(la){if(typeof la!="object"||la===null)return null;const aa=la;if(typeof aa.prefix!="string"||!la.icons||typeof la.icons!="object"||!checkOptionalProps(la,optionalPropertyDefaults))return null;const ca=aa.icons;for(const Sa in ca){const hl=ca[Sa];if(!Sa||typeof hl.body!="string"||!checkOptionalProps(hl,defaultExtendedIconProps))return null}const ua=aa.aliases||Object.create(null);for(const Sa in ua){const hl=ua[Sa],pl=hl.parent;if(!Sa||typeof pl!="string"||!ca[pl]&&!ua[pl]||!checkOptionalProps(hl,defaultExtendedIconProps))return null}return aa}const dataStorage=Object.create(null);function newStorage(la,aa){return{provider:la,prefix:aa,icons:Object.create(null),missing:new Set}}function getStorage(la,aa){const ca=dataStorage[la]||(dataStorage[la]=Object.create(null));return ca[aa]||(ca[aa]=newStorage(la,aa))}function addIconSet(la,aa){return quicklyValidateIconSet(aa)?parseIconSet(aa,(ca,ua)=>{ua?la.icons[ca]=ua:la.missing.add(ca)}):[]}function addIconToStorage(la,aa,ca){try{if(typeof ca.body=="string")return la.icons[aa]={...ca},!0}catch{}return!1}const matchIconName=/^[a-z0-9]+(-[a-z0-9]+)*$/,stringToIcon=(la,aa,ca,ua="")=>{const Sa=la.split(":");if(la.slice(0,1)==="@"){if(Sa.length<2||Sa.length>3)return null;ua=Sa.shift().slice(1)}if(Sa.length>3||!Sa.length)return null;if(Sa.length>1){const ml=Sa.pop(),gl=Sa.pop(),wc={provider:Sa.length>0?Sa[0]:ua,prefix:gl,name:ml};return aa&&!validateIconName(wc)?null:wc}const hl=Sa[0],pl=hl.split("-");if(pl.length>1){const ml={provider:ua,prefix:pl.shift(),name:pl.join("-")};return aa&&!validateIconName(ml)?null:ml}if(ca&&ua===""){const ml={provider:ua,prefix:"",name:hl};return aa&&!validateIconName(ml,ca)?null:ml}return null},validateIconName=(la,aa)=>la?!!((aa&&la.prefix===""||la.prefix)&&la.name):!1;let simpleNames=!1;function allowSimpleNames(la){return typeof la=="boolean"&&(simpleNames=la),simpleNames}function getIconData(la){const aa=typeof la=="string"?stringToIcon(la,!0,simpleNames):la;if(aa){const ca=getStorage(aa.provider,aa.prefix),ua=aa.name;return ca.icons[ua]||(ca.missing.has(ua)?null:void 0)}}function addIcon(la,aa){const ca=stringToIcon(la,!0,simpleNames);if(!ca)return!1;const ua=getStorage(ca.provider,ca.prefix);return aa?addIconToStorage(ua,ca.name,aa):(ua.missing.add(ca.name),!0)}function addCollection(la,aa){if(typeof la!="object")return!1;if(typeof aa!="string"&&(aa=la.provider||""),simpleNames&&!aa&&!la.prefix){let Sa=!1;return quicklyValidateIconSet(la)&&(la.prefix="",parseIconSet(la,(hl,pl)=>{addIcon(hl,pl)&&(Sa=!0)})),Sa}const ca=la.prefix;if(!validateIconName({prefix:ca,name:"a"}))return!1;const ua=getStorage(aa,ca);return!!addIconSet(ua,la)}const defaultIconSizeCustomisations=Object.freeze({width:null,height:null}),defaultIconCustomisations=Object.freeze({...defaultIconSizeCustomisations,...defaultIconTransformations}),unitsSplit=/(-?[0-9.]*[0-9]+[0-9.]*)/g,unitsTest=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function calculateSize(la,aa,ca){if(aa===1)return la;if(ca=ca||100,typeof la=="number")return Math.ceil(la*aa*ca)/ca;if(typeof la!="string")return la;const ua=la.split(unitsSplit);if(ua===null||!ua.length)return la;const Sa=[];let hl=ua.shift(),pl=unitsTest.test(hl);for(;;){if(pl){const ml=parseFloat(hl);isNaN(ml)?Sa.push(hl):Sa.push(Math.ceil(ml*aa*ca)/ca)}else Sa.push(hl);if(hl=ua.shift(),hl===void 0)return Sa.join("");pl=!pl}}function splitSVGDefs(la,aa="defs"){let ca="";const ua=la.indexOf("<"+aa);for(;ua>=0;){const Sa=la.indexOf(">",ua),hl=la.indexOf("</"+aa);if(Sa===-1||hl===-1)break;const pl=la.indexOf(">",hl);if(pl===-1)break;ca+=la.slice(Sa+1,hl).trim(),la=la.slice(0,ua).trim()+la.slice(pl+1)}return{defs:ca,content:la}}function mergeDefsAndContent(la,aa){return la?"<defs>"+la+"</defs>"+aa:aa}function wrapSVGContent(la,aa,ca){const ua=splitSVGDefs(la);return mergeDefsAndContent(ua.defs,aa+ua.content+ca)}const isUnsetKeyword=la=>la==="unset"||la==="undefined"||la==="none";function iconToSVG(la,aa){const ca={...defaultIconProps,...la},ua={...defaultIconCustomisations,...aa},Sa={left:ca.left,top:ca.top,width:ca.width,height:ca.height};let hl=ca.body;[ca,ua].forEach(np=>{const qm=[],Vm=np.hFlip,eg=np.vFlip;let tg=np.rotate;Vm?eg?tg+=2:(qm.push("translate("+(Sa.width+Sa.left).toString()+" "+(0-Sa.top).toString()+")"),qm.push("scale(-1 1)"),Sa.top=Sa.left=0):eg&&(qm.push("translate("+(0-Sa.left).toString()+" "+(Sa.height+Sa.top).toString()+")"),qm.push("scale(1 -1)"),Sa.top=Sa.left=0);let rg;switch(tg<0&&(tg-=Math.floor(tg/4)*4),tg=tg%4,tg){case 1:rg=Sa.height/2+Sa.top,qm.unshift("rotate(90 "+rg.toString()+" "+rg.toString()+")");break;case 2:qm.unshift("rotate(180 "+(Sa.width/2+Sa.left).toString()+" "+(Sa.height/2+Sa.top).toString()+")");break;case 3:rg=Sa.width/2+Sa.left,qm.unshift("rotate(-90 "+rg.toString()+" "+rg.toString()+")");break}tg%2===1&&(Sa.left!==Sa.top&&(rg=Sa.left,Sa.left=Sa.top,Sa.top=rg),Sa.width!==Sa.height&&(rg=Sa.width,Sa.width=Sa.height,Sa.height=rg)),qm.length&&(hl=wrapSVGContent(hl,'<g transform="'+qm.join(" ")+'">',"</g>"))});const pl=ua.width,ml=ua.height,gl=Sa.width,wc=Sa.height;let xu,ff;pl===null?(ff=ml===null?"1em":ml==="auto"?wc:ml,xu=calculateSize(ff,gl/wc)):(xu=pl==="auto"?gl:pl,ff=ml===null?calculateSize(xu,wc/gl):ml==="auto"?wc:ml);const jf={},Uf=(np,qm)=>{isUnsetKeyword(qm)||(jf[np]=qm.toString())};Uf("width",xu),Uf("height",ff);const rp=[Sa.left,Sa.top,gl,wc];return jf.viewBox=rp.join(" "),{attributes:jf,viewBox:rp,body:hl}}const regex=/\sid="(\S+)"/g,randomPrefix="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let counter=0;function replaceIDs(la,aa=randomPrefix){const ca=[];let ua;for(;ua=regex.exec(la);)ca.push(ua[1]);if(!ca.length)return la;const Sa="suffix"+(Math.random()*16777216|Date.now()).toString(16);return ca.forEach(hl=>{const pl=typeof aa=="function"?aa(hl):aa+(counter++).toString(),ml=hl.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");la=la.replace(new RegExp('([#;"])('+ml+')([")]|\\.[a-z])',"g"),"$1"+pl+Sa+"$3")}),la=la.replace(new RegExp(Sa,"g"),""),la}const storage=Object.create(null);function setAPIModule(la,aa){storage[la]=aa}function getAPIModule(la){return storage[la]||storage[""]}function createAPIConfig(la){let aa;if(typeof la.resources=="string")aa=[la.resources];else if(aa=la.resources,!(aa instanceof Array)||!aa.length)return null;return{resources:aa,path:la.path||"/",maxURL:la.maxURL||500,rotate:la.rotate||750,timeout:la.timeout||5e3,random:la.random===!0,index:la.index||0,dataAfterTimeout:la.dataAfterTimeout!==!1}}const configStorage=Object.create(null),fallBackAPISources=["https://api.simplesvg.com","https://api.unisvg.com"],fallBackAPI=[];for(;fallBackAPISources.length>0;)fallBackAPISources.length===1||Math.random()>.5?fallBackAPI.push(fallBackAPISources.shift()):fallBackAPI.push(fallBackAPISources.pop());configStorage[""]=createAPIConfig({resources:["https://api.iconify.design"].concat(fallBackAPI)});function addAPIProvider(la,aa){const ca=createAPIConfig(aa);return ca===null?!1:(configStorage[la]=ca,!0)}function getAPIConfig(la){return configStorage[la]}const detectFetch=()=>{let la;try{if(la=fetch,typeof la=="function")return la}catch{}};let fetchModule=detectFetch();function calculateMaxLength(la,aa){const ca=getAPIConfig(la);if(!ca)return 0;let ua;if(!ca.maxURL)ua=0;else{let Sa=0;ca.resources.forEach(pl=>{Sa=Math.max(Sa,pl.length)});const hl=aa+".json?icons=";ua=ca.maxURL-Sa-ca.path.length-hl.length}return ua}function shouldAbort(la){return la===404}const prepare=(la,aa,ca)=>{const ua=[],Sa=calculateMaxLength(la,aa),hl="icons";let pl={type:hl,provider:la,prefix:aa,icons:[]},ml=0;return ca.forEach((gl,wc)=>{ml+=gl.length+1,ml>=Sa&&wc>0&&(ua.push(pl),pl={type:hl,provider:la,prefix:aa,icons:[]},ml=gl.length),pl.icons.push(gl)}),ua.push(pl),ua};function getPath$2(la){if(typeof la=="string"){const aa=getAPIConfig(la);if(aa)return aa.path}return"/"}const send=(la,aa,ca)=>{if(!fetchModule){ca("abort",424);return}let ua=getPath$2(aa.provider);switch(aa.type){case"icons":{const hl=aa.prefix,ml=aa.icons.join(","),gl=new URLSearchParams({icons:ml});ua+=hl+".json?"+gl.toString();break}case"custom":{const hl=aa.uri;ua+=hl.slice(0,1)==="/"?hl.slice(1):hl;break}default:ca("abort",400);return}let Sa=503;fetchModule(la+ua).then(hl=>{const pl=hl.status;if(pl!==200){setTimeout(()=>{ca(shouldAbort(pl)?"abort":"next",pl)});return}return Sa=501,hl.json()}).then(hl=>{if(typeof hl!="object"||hl===null){setTimeout(()=>{hl===404?ca("abort",hl):ca("next",Sa)});return}setTimeout(()=>{ca("success",hl)})}).catch(()=>{ca("next",Sa)})},fetchAPIModule={prepare,send};function removeCallback(la,aa){la.forEach(ca=>{const ua=ca.loaderCallbacks;ua&&(ca.loaderCallbacks=ua.filter(Sa=>Sa.id!==aa))})}function updateCallbacks(la){la.pendingCallbacksFlag||(la.pendingCallbacksFlag=!0,setTimeout(()=>{la.pendingCallbacksFlag=!1;const aa=la.loaderCallbacks?la.loaderCallbacks.slice(0):[];if(!aa.length)return;let ca=!1;const ua=la.provider,Sa=la.prefix;aa.forEach(hl=>{const pl=hl.icons,ml=pl.pending.length;pl.pending=pl.pending.filter(gl=>{if(gl.prefix!==Sa)return!0;const wc=gl.name;if(la.icons[wc])pl.loaded.push({provider:ua,prefix:Sa,name:wc});else if(la.missing.has(wc))pl.missing.push({provider:ua,prefix:Sa,name:wc});else return ca=!0,!0;return!1}),pl.pending.length!==ml&&(ca||removeCallback([la],hl.id),hl.callback(pl.loaded.slice(0),pl.missing.slice(0),pl.pending.slice(0),hl.abort))})}))}let idCounter$1=0;function storeCallback(la,aa,ca){const ua=idCounter$1++,Sa=removeCallback.bind(null,ca,ua);if(!aa.pending.length)return Sa;const hl={id:ua,icons:aa,callback:la,abort:Sa};return ca.forEach(pl=>{(pl.loaderCallbacks||(pl.loaderCallbacks=[])).push(hl)}),Sa}function sortIcons(la){const aa={loaded:[],missing:[],pending:[]},ca=Object.create(null);la.sort((Sa,hl)=>Sa.provider!==hl.provider?Sa.provider.localeCompare(hl.provider):Sa.prefix!==hl.prefix?Sa.prefix.localeCompare(hl.prefix):Sa.name.localeCompare(hl.name));let ua={provider:"",prefix:"",name:""};return la.forEach(Sa=>{if(ua.name===Sa.name&&ua.prefix===Sa.prefix&&ua.provider===Sa.provider)return;ua=Sa;const hl=Sa.provider,pl=Sa.prefix,ml=Sa.name,gl=ca[hl]||(ca[hl]=Object.create(null)),wc=gl[pl]||(gl[pl]=getStorage(hl,pl));let xu;ml in wc.icons?xu=aa.loaded:pl===""||wc.missing.has(ml)?xu=aa.missing:xu=aa.pending;const ff={provider:hl,prefix:pl,name:ml};xu.push(ff)}),aa}function listToIcons(la,aa=!0,ca=!1){const ua=[];return la.forEach(Sa=>{const hl=typeof Sa=="string"?stringToIcon(Sa,aa,ca):Sa;hl&&ua.push(hl)}),ua}const defaultConfig={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function sendQuery(la,aa,ca,ua){const Sa=la.resources.length,hl=la.random?Math.floor(Math.random()*Sa):la.index;let pl;if(la.random){let vv=la.resources.slice(0);for(pl=[];vv.length>1;){const R1=Math.floor(Math.random()*vv.length);pl.push(vv[R1]),vv=vv.slice(0,R1).concat(vv.slice(R1+1))}pl=pl.concat(vv)}else pl=la.resources.slice(hl).concat(la.resources.slice(0,hl));const ml=Date.now();let gl="pending",wc=0,xu,ff=null,jf=[],Uf=[];typeof ua=="function"&&Uf.push(ua);function rp(){ff&&(clearTimeout(ff),ff=null)}function np(){gl==="pending"&&(gl="aborted"),rp(),jf.forEach(vv=>{vv.status==="pending"&&(vv.status="aborted")}),jf=[]}function qm(vv,R1){R1&&(Uf=[]),typeof vv=="function"&&Uf.push(vv)}function Vm(){return{startTime:ml,payload:aa,status:gl,queriesSent:wc,queriesPending:jf.length,subscribe:qm,abort:np}}function eg(){gl="failed",Uf.forEach(vv=>{vv(void 0,xu)})}function tg(){jf.forEach(vv=>{vv.status==="pending"&&(vv.status="aborted")}),jf=[]}function rg(vv,R1,O1){const K0=R1!=="success";switch(jf=jf.filter(J0=>J0!==vv),gl){case"pending":break;case"failed":if(K0||!la.dataAfterTimeout)return;break;default:return}if(R1==="abort"){xu=O1,eg();return}if(K0){xu=O1,jf.length||(pl.length?ig():eg());return}if(rp(),tg(),!la.random){const J0=la.resources.indexOf(vv.resource);J0!==-1&&J0!==la.index&&(la.index=J0)}gl="completed",Uf.forEach(J0=>{J0(O1)})}function ig(){if(gl!=="pending")return;rp();const vv=pl.shift();if(vv===void 0){if(jf.length){ff=setTimeout(()=>{rp(),gl==="pending"&&(tg(),eg())},la.timeout);return}eg();return}const R1={status:"pending",resource:vv,callback:(O1,K0)=>{rg(R1,O1,K0)}};jf.push(R1),wc++,ff=setTimeout(ig,la.rotate),ca(vv,aa,R1.callback)}return setTimeout(ig),Vm}function initRedundancy(la){const aa={...defaultConfig,...la};let ca=[];function ua(){ca=ca.filter(ml=>ml().status==="pending")}function Sa(ml,gl,wc){const xu=sendQuery(aa,ml,gl,(ff,jf)=>{ua(),wc&&wc(ff,jf)});return ca.push(xu),xu}function hl(ml){return ca.find(gl=>ml(gl))||null}return{query:Sa,find:hl,setIndex:ml=>{aa.index=ml},getIndex:()=>aa.index,cleanup:ua}}function emptyCallback$1(){}const redundancyCache=Object.create(null);function getRedundancyCache(la){if(!redundancyCache[la]){const aa=getAPIConfig(la);if(!aa)return;const ca=initRedundancy(aa),ua={config:aa,redundancy:ca};redundancyCache[la]=ua}return redundancyCache[la]}function sendAPIQuery(la,aa,ca){let ua,Sa;if(typeof la=="string"){const hl=getAPIModule(la);if(!hl)return ca(void 0,424),emptyCallback$1;Sa=hl.send;const pl=getRedundancyCache(la);pl&&(ua=pl.redundancy)}else{const hl=createAPIConfig(la);if(hl){ua=initRedundancy(hl);const pl=la.resources?la.resources[0]:"",ml=getAPIModule(pl);ml&&(Sa=ml.send)}}return!ua||!Sa?(ca(void 0,424),emptyCallback$1):ua.query(aa,Sa,ca)().abort}function emptyCallback(){}function loadedNewIcons(la){la.iconsLoaderFlag||(la.iconsLoaderFlag=!0,setTimeout(()=>{la.iconsLoaderFlag=!1,updateCallbacks(la)}))}function checkIconNamesForAPI(la){const aa=[],ca=[];return la.forEach(ua=>{(ua.match(matchIconName)?aa:ca).push(ua)}),{valid:aa,invalid:ca}}function parseLoaderResponse(la,aa,ca){function ua(){const Sa=la.pendingIcons;aa.forEach(hl=>{Sa&&Sa.delete(hl),la.icons[hl]||la.missing.add(hl)})}if(ca&&typeof ca=="object")try{if(!addIconSet(la,ca).length){ua();return}}catch(Sa){console.error(Sa)}ua(),loadedNewIcons(la)}function parsePossiblyAsyncResponse(la,aa){la instanceof Promise?la.then(ca=>{aa(ca)}).catch(()=>{aa(null)}):aa(la)}function loadNewIcons(la,aa){la.iconsToLoad?la.iconsToLoad=la.iconsToLoad.concat(aa).sort():la.iconsToLoad=aa,la.iconsQueueFlag||(la.iconsQueueFlag=!0,setTimeout(()=>{la.iconsQueueFlag=!1;const{provider:ca,prefix:ua}=la,Sa=la.iconsToLoad;if(delete la.iconsToLoad,!Sa||!Sa.length)return;const hl=la.loadIcon;if(la.loadIcons&&(Sa.length>1||!hl)){parsePossiblyAsyncResponse(la.loadIcons(Sa,ua,ca),xu=>{parseLoaderResponse(la,Sa,xu)});return}if(hl){Sa.forEach(xu=>{const ff=hl(xu,ua,ca);parsePossiblyAsyncResponse(ff,jf=>{const Uf=jf?{prefix:ua,icons:{[xu]:jf}}:null;parseLoaderResponse(la,[xu],Uf)})});return}const{valid:pl,invalid:ml}=checkIconNamesForAPI(Sa);if(ml.length&&parseLoaderResponse(la,ml,null),!pl.length)return;const gl=ua.match(matchIconName)?getAPIModule(ca):null;if(!gl){parseLoaderResponse(la,pl,null);return}gl.prepare(ca,ua,pl).forEach(xu=>{sendAPIQuery(ca,xu,ff=>{parseLoaderResponse(la,xu.icons,ff)})})}))}const loadIcons=(la,aa)=>{const ca=listToIcons(la,!0,allowSimpleNames()),ua=sortIcons(ca);if(!ua.pending.length){let gl=!0;return aa&&setTimeout(()=>{gl&&aa(ua.loaded,ua.missing,ua.pending,emptyCallback)}),()=>{gl=!1}}const Sa=Object.create(null),hl=[];let pl,ml;return ua.pending.forEach(gl=>{const{provider:wc,prefix:xu}=gl;if(xu===ml&&wc===pl)return;pl=wc,ml=xu,hl.push(getStorage(wc,xu));const ff=Sa[wc]||(Sa[wc]=Object.create(null));ff[xu]||(ff[xu]=[])}),ua.pending.forEach(gl=>{const{provider:wc,prefix:xu,name:ff}=gl,jf=getStorage(wc,xu),Uf=jf.pendingIcons||(jf.pendingIcons=new Set);Uf.has(ff)||(Uf.add(ff),Sa[wc][xu].push(ff))}),hl.forEach(gl=>{const wc=Sa[gl.provider][gl.prefix];wc.length&&loadNewIcons(gl,wc)}),aa?storeCallback(aa,ua,hl):emptyCallback};function mergeCustomisations(la,aa){const ca={...la};for(const ua in aa){const Sa=aa[ua],hl=typeof Sa;ua in defaultIconSizeCustomisations?(Sa===null||Sa&&(hl==="string"||hl==="number"))&&(ca[ua]=Sa):hl===typeof ca[ua]&&(ca[ua]=ua==="rotate"?Sa%4:Sa)}return ca}const separator$1=/[\s,]+/;function flipFromString(la,aa){aa.split(separator$1).forEach(ca=>{switch(ca.trim()){case"horizontal":la.hFlip=!0;break;case"vertical":la.vFlip=!0;break}})}function rotateFromString(la,aa=0){const ca=la.replace(/^-?[0-9.]*/,"");function ua(Sa){for(;Sa<0;)Sa+=4;return Sa%4}if(ca===""){const Sa=parseInt(la);return isNaN(Sa)?0:ua(Sa)}else if(ca!==la){let Sa=0;switch(ca){case"%":Sa=25;break;case"deg":Sa=90}if(Sa){let hl=parseFloat(la.slice(0,la.length-ca.length));return isNaN(hl)?0:(hl=hl/Sa,hl%1===0?ua(hl):0)}}return aa}function iconToHTML(la,aa){let ca=la.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const ua in aa)ca+=" "+ua+'="'+aa[ua]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+ca+">"+la+"</svg>"}function encodeSVGforURL(la){return la.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function svgToData(la){return"data:image/svg+xml,"+encodeSVGforURL(la)}function svgToURL(la){return'url("'+svgToData(la)+'")'}let policy;function createPolicy(){try{policy=window.trustedTypes.createPolicy("iconify",{createHTML:la=>la})}catch{policy=null}}function cleanUpInnerHTML(la){return policy===void 0&&createPolicy(),policy?policy.createHTML(la):la}const defaultExtendedIconCustomisations={...defaultIconCustomisations,inline:!1},svgDefaults={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},commonProps={display:"inline-block"},monotoneProps={backgroundColor:"currentColor"},coloredProps={backgroundColor:"transparent"},propsToAdd={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},propsToAddTo={WebkitMask:monotoneProps,mask:monotoneProps,background:coloredProps};for(const la in propsToAddTo){const aa=propsToAddTo[la];for(const ca in propsToAdd)aa[la+ca]=propsToAdd[ca]}const inlineDefaults={...defaultExtendedIconCustomisations,inline:!0};function fixSize(la){return la+(la.match(/^[-0-9.]+$/)?"px":"")}const render=(la,aa,ca)=>{const ua=aa.inline?inlineDefaults:defaultExtendedIconCustomisations,Sa=mergeCustomisations(ua,aa),hl=aa.mode||"svg",pl={},ml=aa.style||{},gl={...hl==="svg"?svgDefaults:{}};if(ca){const qm=stringToIcon(ca,!1,!0);if(qm){const Vm=["iconify"],eg=["provider","prefix"];for(const tg of eg)qm[tg]&&Vm.push("iconify--"+qm[tg]);gl.className=Vm.join(" ")}}for(let qm in aa){const Vm=aa[qm];if(Vm!==void 0)switch(qm){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":case"fallback":break;case"_ref":gl.ref=Vm;break;case"className":gl[qm]=(gl[qm]?gl[qm]+" ":"")+Vm;break;case"inline":case"hFlip":case"vFlip":Sa[qm]=Vm===!0||Vm==="true"||Vm===1;break;case"flip":typeof Vm=="string"&&flipFromString(Sa,Vm);break;case"color":pl.color=Vm;break;case"rotate":typeof Vm=="string"?Sa[qm]=rotateFromString(Vm):typeof Vm=="number"&&(Sa[qm]=Vm);break;case"ariaHidden":case"aria-hidden":Vm!==!0&&Vm!=="true"&&delete gl["aria-hidden"];break;default:ua[qm]===void 0&&(gl[qm]=Vm)}}const wc=iconToSVG(la,Sa),xu=wc.attributes;if(Sa.inline&&(pl.verticalAlign="-0.125em"),hl==="svg"){gl.style={...pl,...ml},Object.assign(gl,xu);let qm=0,Vm=aa.id;return typeof Vm=="string"&&(Vm=Vm.replace(/-/g,"_")),gl.dangerouslySetInnerHTML={__html:cleanUpInnerHTML(replaceIDs(wc.body,Vm?()=>Vm+"ID"+qm++:"iconifyReact"))},reactExports.createElement("svg",gl)}const{body:ff,width:jf,height:Uf}=la,rp=hl==="mask"||(hl==="bg"?!1:ff.indexOf("currentColor")!==-1),np=iconToHTML(ff,{...xu,width:jf+"",height:Uf+""});return gl.style={...pl,"--svg":svgToURL(np),width:fixSize(xu.width),height:fixSize(xu.height),...commonProps,...rp?monotoneProps:coloredProps,...ml},reactExports.createElement("span",gl)};allowSimpleNames(!0);setAPIModule("",fetchAPIModule);if(typeof document<"u"&&typeof window<"u"){const la=window;if(la.IconifyPreload!==void 0){const aa=la.IconifyPreload,ca="Invalid IconifyPreload syntax.";typeof aa=="object"&&aa!==null&&(aa instanceof Array?aa:[aa]).forEach(ua=>{try{(typeof ua!="object"||ua===null||ua instanceof Array||typeof ua.icons!="object"||typeof ua.prefix!="string"||!addCollection(ua))&&console.error(ca)}catch{console.error(ca)}})}if(la.IconifyProviders!==void 0){const aa=la.IconifyProviders;if(typeof aa=="object"&&aa!==null)for(let ca in aa){const ua="IconifyProviders["+ca+"] is invalid.";try{const Sa=aa[ca];if(typeof Sa!="object"||!Sa||Sa.resources===void 0)continue;addAPIProvider(ca,Sa)||console.error(ua)}catch{console.error(ua)}}}}function IconComponent(la){const[aa,ca]=reactExports.useState(!!la.ssr),[ua,Sa]=reactExports.useState({});function hl(Uf){if(Uf){const rp=la.icon;if(typeof rp=="object")return{name:"",data:rp};const np=getIconData(rp);if(np)return{name:rp,data:np}}return{name:""}}const[pl,ml]=reactExports.useState(hl(!!la.ssr));function gl(){const Uf=ua.callback;Uf&&(Uf(),Sa({}))}function wc(Uf){if(JSON.stringify(pl)!==JSON.stringify(Uf))return gl(),ml(Uf),!0}function xu(){var Uf;const rp=la.icon;if(typeof rp=="object"){wc({name:"",data:rp});return}const np=getIconData(rp);if(wc({name:rp,data:np}))if(np===void 0){const qm=loadIcons([rp],xu);Sa({callback:qm})}else np&&((Uf=la.onLoad)===null||Uf===void 0||Uf.call(la,rp))}reactExports.useEffect(()=>(ca(!0),gl),[]),reactExports.useEffect(()=>{aa&&xu()},[la.icon,aa]);const{name:ff,data:jf}=pl;return jf?render({...defaultIconProps,...jf},la,ff):la.children?la.children:la.fallback?la.fallback:reactExports.createElement("span",{})}const Icon=reactExports.forwardRef((la,aa)=>IconComponent({...la,_ref:aa}));reactExports.forwardRef((la,aa)=>IconComponent({inline:!0,...la,_ref:aa}));const getDate=la=>{const aa=new Date(la),ca=aa.getMonth()+1,ua=aa.getDate(),Sa=aa.getFullYear(),hl=aa.toLocaleString("en-US",{hour:"numeric",minute:"numeric",hour12:!0});return`${ca}/${ua}/${Sa} ${hl}`},registerBase64Icon=(la,aa)=>{try{const ca=aa.replace(/^data:image\/svg\+xml;base64,/,""),ua=atob(ca),Sa=ua.match(/width="([^"]+)"/),hl=ua.match(/height="([^"]+)"/),pl=Sa?Sa[1]:"1536",ml=hl?hl[1]:"1280",gl=ua.replace(/^.*?<svg[^>]*>(.*)<\/svg>.*$/,"$1");addIcon(la,{body:gl,width:parseInt(pl,10),height:parseInt(ml,10)})}catch(ca){console.error(`Failed to register icon: ${la}`,ca)}};function extractRepoNameFromUrl(la){const aa=la.split("/");return aa[aa.length-1]}function scrollIntoView(la,aa=!0){const ca=document.getElementById(la);ca&&ca.scrollIntoView({behavior:aa?"smooth":"auto",block:"start",inline:"center"})}function roundTo3Decimals(la){return la.toFixed(3)}function convertBytes(la){return la<1024?`${la} bytes`:la<1024*1024?`${roundTo3Decimals(la/1024)} KB`:la<1024*1024*1024?`${roundTo3Decimals(la/(1024*1024))} MB`:`${roundTo3Decimals(la/(1024*1024*1024))} GB`}function generateGitHubUrl(la,aa,ca,ua){if(!la||!aa)throw new Error("GitHub organization and repository name are required");if(ca&&ua){const Sa=ca.trim(),hl=ua.trim();return!Sa||!hl?(console.warn("GitHub credentials contain only whitespace - falling back to public URL"),`https://github.com/${la}/${aa}.git`):`https://${Sa}:${hl}@github.com/${la}/${aa}.git`}return console.warn(`No GitHub credentials provided for ${la}/${aa} - using public URL (may fail for private repositories)`),`https://github.com/${la}/${aa}.git`}const useWorkspace=()=>{const la=axiosInstance("meta"),aa=useAppStore(xu=>xu.user),ca=useAppStore(xu=>xu.authData.userProfileId),ua=useAppStore(xu=>xu.authData.username),Sa=useAppStore(xu=>xu.setUser),hl=useAppStore(xu=>xu.setWorkspace),pl=async()=>{let xu=aa?.user_profile_id;if(xu||(xu=ca||void 0),!xu){const ff=localStorage.getItem("user_profile_id");ff&&(xu=ff)}if(!xu){y$b.error("User Profile ID not found. Please re-login.");return}return xu},ml=async()=>{try{if(!await pl())throw new Error("User Profile ID not found. Please re-login.");const jf=await la.get("/AgentMeta/Workspace");if(console.log("fetchWorkspace response:",jf.data),!jf.data||Array.isArray(jf.data)&&jf.data.length===0)return console.log("GetWorkspace returned empty or null response - workspace does not exist"),null;let Uf;if(jf.data.id||jf.data.Id)Uf=jf.data;else if(Array.isArray(jf.data)&&jf.data.length>0){const rp=jf.data[0];rp?.Workspace?Uf=rp.Workspace:rp?.result&&Array.isArray(rp.result)&&rp.result.length>0?Uf=rp.result[0]:rp&&(rp.id||rp.Id)&&(Uf=rp)}return Uf||(console.log("No workspace found in response"),null)}catch(xu){return console.error("fetchWorkspace error:",xu),null}};return{fetchWorkspace:ml,createWorkspace:async(xu,ff)=>{try{if(!await pl())throw new Error("User Profile ID not found. Please re-login.");const rp=await la.post("/AgentMeta/Workspace",{name:xu,createdBy:ff});let np;if(rp.data.UserWorkspace?.Workspace)np=rp.data.UserWorkspace.Workspace;else if(rp.data.id)np=rp.data;else if(Array.isArray(rp.data)&&rp.data.length>0){const qm=rp.data[0];qm?.result&&Array.isArray(qm.result)&&qm.result.length>0?np=qm.result[0]:qm?.Workspace?np=qm.Workspace:np=qm}else if(rp.data.Workspace)np=rp.data.Workspace;else{const qm=Object.keys(rp.data);qm.length>0&&(np=rp.data[qm[0]])}return np||(console.error("Failed to parse workspace from create response"),null)}catch(jf){throw console.error("createWorkspace error:",jf),y$b.error(jf?.response?.data?.reason||"Failed to create workspace"),jf}},fetchOrCreateWorkspace:async xu=>{if(!(ua||aa?.Email))throw new Error("No username found in store");let jf=await ml();if(jf){const Uf=jf.id||jf.Id;if(Uf&&!localStorage.getItem("workspace_id")){localStorage.setItem("workspace_id",Uf);try{aa?Sa({...aa,CurrentWorkspace:{Id:Uf}}):hl(Uf)}catch{}}}else{console.error(`Workspace '${xu}' not found - workspace creation disabled`);try{if(await pl()){const np=await la.get("/AgentMeta/Workspace");if(np.data&&Array.isArray(np.data)&&np.data.length>0){const qm=np.data[np.data.length-1];if(jf=qm.Workspace||qm,jf){const Vm=jf.id||jf.Id;if(Vm){localStorage.setItem("workspace_id",Vm);try{aa?Sa({...aa,CurrentWorkspace:{Id:Vm}}):hl(Vm)}catch{}console.log("Using existing workspace instead:",Vm)}}}}}catch(Uf){console.error("Failed to fetch all workspaces:",Uf)}if(!jf)throw new Error(`Workspace '${xu}' not found and creation is disabled`)}return jf}}},deletePlaygroundTeam=la=>[],STORAGE_KEY="playground-workspace-apps",ID_COUNTER_KEY="playground-workspace-id-counter";class PlaygroundWorkspaceStorage{apps=new Map;idCounter=0;constructor(){this.loadFromLocalStorage()}loadFromLocalStorage(){try{const aa=localStorage.getItem(STORAGE_KEY);if(aa){const ua=JSON.parse(aa);ua.forEach(Sa=>{this.apps.set(Sa.Id,Sa)}),console.log(`[PLAYGROUND] Loaded ${ua.length} workspace apps from localStorage`)}const ca=localStorage.getItem(ID_COUNTER_KEY);ca&&(this.idCounter=parseInt(ca,10))}catch(aa){console.error("[PLAYGROUND] Error loading workspace apps from localStorage:",aa)}}saveToLocalStorage(){try{const aa=Array.from(this.apps.values());localStorage.setItem(STORAGE_KEY,JSON.stringify(aa)),localStorage.setItem(ID_COUNTER_KEY,this.idCounter.toString()),console.log(`[PLAYGROUND] Saved ${aa.length} workspace apps to localStorage`)}catch(aa){console.error("[PLAYGROUND] Error saving workspace apps to localStorage:",aa)}}getApps(){return Array.from(this.apps.values())}addApp(aa){const ca=aa.Id||`playground-app-${++this.idCounter}`,ua={...aa,Id:ca};return this.apps.set(ca,ua),this.saveToLocalStorage(),ua}updateApp(aa,ca){const ua=this.apps.get(aa);if(!ua)return null;const Sa={...ua,...ca};return this.apps.set(aa,Sa),this.saveToLocalStorage(),Sa}deleteApp(aa){const ca=this.apps.delete(aa);return ca&&this.saveToLocalStorage(),ca}getApp(aa){return this.apps.get(aa)||null}clearApps(){this.apps.clear(),this.idCounter=0,this.saveToLocalStorage()}hasApp(aa){return this.apps.has(aa)}}const playgroundWorkspaceStorage=new PlaygroundWorkspaceStorage,IS_PLAYGROUND$7=!1,IS_LOCAL_MODE$8=!0,metaAxiosInstance$2=axiosInstance("meta");async function fetchPackageInfo$1(){const aa=await fetch("http://localhost:4000/info");return aa.ok?await aa.json():{}}async function fetchBranch(){const la="http://localhost:4000";try{const aa=await fetch(`${la}/branch`);return aa.ok&&(await aa.json()).branch||"main"}catch(aa){return console.warn("Failed to fetch branch:",aa),"main"}}const useTeams=()=>{const{teamName:la,modelName:aa}=useParams(),{pathname:ca}=useLocation(),ua=useQueryClient(),Sa=ca.includes("/design/marketplace/"),hl=useAppStore(qw=>qw.authData.username),pl=useAppStore(qw=>qw.authData.userProfileId),ml=useAppStore(qw=>qw.user.CurrentWorkspace?.Id),gl=useAppStore(qw=>qw.user.GitHub.Token)||"",wc=useAppStore(qw=>qw.user.GitHub.Username)||"",{fetchOrCreateWorkspace:xu}=useWorkspace();useAppStore(qw=>qw.authReady),useAppStore(qw=>qw.isAuthenticated);const{data:ff}=useQuery({queryKey:["localPackageInfo"],queryFn:fetchPackageInfo$1,enabled:IS_LOCAL_MODE$8,staleTime:1/0,refetchOnMount:"always"}),{data:jf}=useQuery({queryKey:["localBranch"],queryFn:fetchBranch,enabled:IS_LOCAL_MODE$8,staleTime:1/0,refetchOnMount:"always"}),{data:Uf,isLoading:rp,error:np,refetch:qm}=useQuery({queryKey:["workspace",ml,"apps",pl],queryFn:async()=>[],enabled:IS_LOCAL_MODE$8,staleTime:120*1e3,gcTime:300*1e3,refetchOnMount:"always",retry:(qw,Y0)=>Y0?.response?.status===401||Y0?.response?.status===403?!1:qw<2}),{mutate:Vm}=useMutation({mutationFn:async({appId:qw,isEditable:Y0})=>{const G0=await metaAxiosInstance$2.put(`/AgentMeta/Workspace/${ml}/WorkspaceApp/App/${qw}`,{isEditable:Y0});return transformSimpleTeamToTeam(G0.data)},onMutate:async qw=>{const{appId:Y0,isEditable:G0}=qw;await ua.cancelQueries({queryKey:["workspace",ml,"apps",pl]});const X0=ua.getQueryData(["workspace",ml,"apps",pl]);if(X0){const d_=X0.map(f_=>f_.Id===Y0?{...f_,isEditable:G0}:f_);ua.setQueryData(["workspace",ml,"apps",pl],d_)}return{previousApps:X0}},onError:(qw,Y0,G0)=>{G0?.previousApps&&ua.setQueryData(["workspace",ml,"apps",pl],G0.previousApps),y$b.error("Failed to update status. Please try again.")},onSettled:()=>{ua.invalidateQueries({queryKey:["workspace",ml,"apps",pl]})}}),eg=reactExports.useMemo(()=>{{let qw="";if(ff&&ff.name)if(qw=ff.name,qw.startsWith("@")){const Y0=qw.substring(1).split("/");Y0.length===2&&(qw=Y0[1])}else qw=ff.name;return{Name:qw,isEditable:!0,Type:"Local",GitHubRepo:qw,Branch:jf||"main"}}},[Sa,aa,Uf,la,ff,jf]);if(np){console.error("fetchWorkspaceApps: Query failed",np);let qw="Failed to fetch workspace apps";const Y0=np;Y0?.response?.status===401?qw="Authentication expired. Please sign in again.":Y0?.response?.status===403?qw="Access denied. Please check your workspace permissions.":Y0?.response?.status===404?qw="Workspace not found. Please verify your workspace access.":Y0?.response?.data?.reason?qw=Y0.response.data.reason:Y0?.message&&(qw=`Network error: ${Y0.message}`),y$b.error(qw)}const tg=async(qw,Y0)=>{try{const X0=(await metaAxiosInstance$2.put(`/AgentMeta/Workspace/${ml}/WorkspaceApp/App/${Y0}`,qw)).data,d_=transformSimpleTeamToTeam(X0);return ua.invalidateQueries({queryKey:["workspace",ml,"apps",pl]}),await qm(),{...d_}}catch(G0){throw console.error("Error editing workspace app:",G0),G0}},rg=async(qw,Y0)=>{try{const X0=(await metaAxiosInstance$2.put(`/AgentMeta/Workspace/${ml}/WorkspaceApp/App/${qw}`,{branch:Y0})).data,d_=transformSimpleTeamToTeam(X0);return ua.invalidateQueries({queryKey:["workspace",ml,"apps",pl]}),await qm(),{...d_,Branch:Y0}}catch(G0){throw console.error("Error switching workspace app branch:",G0),G0}},ig=async qw=>{try{let Y0=ml;if(!Y0){const G0=await xu("Default");if(G0)Y0=G0.id||G0.Id;else throw new Error("Failed to create or fetch Default workspace")}if(!Y0)throw new Error("No workspace ID available after all attempts");await metaAxiosInstance$2.post(`/AgentMeta/Workspace/${Y0}/WorkspaceApp/App`,qw),ua.invalidateQueries({queryKey:["workspace",Y0,"apps",pl]}),ua.invalidateQueries({queryKey:["workspace",ml,"apps",pl]}),await qm()}catch(Y0){console.error("Error occurred:",Y0),y$b.error(Y0?.response?.data?.["status-text"]||Y0?.response?.data?.reason||Y0?.message||"Operation failed")}},vv=async qw=>{try{await metaAxiosInstance$2.delete(`/AgentMeta/Workspace/${ml}/WorkspaceApp/App/${qw}`),ua.invalidateQueries({queryKey:["workspace",ml,"apps",pl]}),await qm()}catch(Y0){console.error("Error occurred:",Y0),y$b.error(Y0?.response?.data?.["status-text"]||Y0?.response?.data?.reason||Y0?.message||"Operation failed")}},R1=async(qw,Y0,G0)=>{try{const X0=`/${qw.githubRepo}`,d_=qw.branchSelected&&qw.githubBranch?qw.githubBranch:"main",f_=wc&&wc.trim().length>0,zN=gl&&gl.trim().length>0,BN=generateGitHubUrl(qw.githubOrg,qw.githubRepo,wc,gl);if((!f_||!zN)&&Y0("⚠️ GitHub credentials missing. Clone may fail for private repositories. Please set your GitHub username and token in Settings.",!1,!1),await pathExists(X0)){G0("checking"),Y0("Repository exists, checking for updates...",!1,!1);try{const yY=await updateExistingRepository(X0,gl,{branch:d_,checkOnly:!0});if(!yY.success)Y0(`Warning: Could not check for updates - ${yY.message}. Using existing repository.`,!1,!1);else if(yY.hasUpdates){G0("updating"),Y0("Fetching latest changes...",!1,!1);const vQ=await updateExistingRepository(X0,gl,{branch:d_,force:!0});vQ.success?Y0("Repository updated successfully!",!0,!1):Y0(`Warning: Could not update repository - ${vQ.message}. Using existing version.`,!1,!1)}else Y0("No updates available",!0,!1)}catch(yY){console.error("Failed to update repository:",yY),Y0(`Warning: Could not check for updates - ${yY.message}. Using existing repository.`,!1,!1)}}else{G0("cloning"),Y0("Cloning repository...",!1,!1);try{await cloneRepository(BN,X0,d_,gl),Y0("Repository cloned successfully!",!0,!1)}catch(yY){console.error("Failed to clone repository:",yY),Y0(`Failed to clone repository: ${yY.message}`,!1,!0);try{await pathExists(X0)&&(console.log(`Cleaning up failed clone: removing ${X0} from IndexedDB`),await removeDirectory(X0))}catch(vQ){console.error("Error cleaning up failed clone:",vQ)}return G0("error"),{path:null,fileContent:null}}}try{G0("processing"),Y0("Searching for .al files...",!1,!1);const yY=await findFilesWithExtension(X0,"al");if(yY.length===0)return Y0("No .al files found in the repository.",!1,!0),G0("error"),{path:null,fileContent:null};Y0(`Found ${yY.length} .al file(s).`,!0,!1);const vQ=yY[0];Y0(`Reading file: ${vQ}...`,!1,!1);const Ohe=await readRepoFile(X0,vQ);try{await readRepoFile(X0,"package.json")}catch{Y0("Warning: package.json not found in repository",!1,!1)}try{return G0("creating"),await flushAllAndLoad(X0,{name:"studio"}),Y0(`${vQ} loaded successfully!`,!0,!1),G0("complete"),{path:X0,fileContent:Ohe}}catch(bY){return console.error(`Failed to load ${vQ}:`,bY),Y0(`Failed to load ${vQ}: ${bY.message}`,!1,!0),G0("error"),{path:null,fileContent:null}}}catch(yY){return console.error("Failed to process .al files:",yY),Y0(`Note: .al files not found or could not be read: ${yY.message}`,!1,!0),G0("error"),{path:X0,fileContent:null}}}catch(X0){return console.error("Failed to execute Git operation:",X0),Y0(`Failed to execute Git operation: ${X0.message}`,!1,!0),G0("error"),{path:null,fileContent:null}}},O1=async(qw,Y0,G0)=>{try{G0("Saving changes...",!1,!1);const X0=await openRepository(qw);return await writeRepoFile(qw,"README.md",Y0),await commitChanges(X0,"README.md","Update README.md",{name:"Fractl Studio User",email:hl||"user@fractl.studio"}),G0("Changes saved successfully!",!0,!1),!0}catch(X0){return console.error("Failed to save README:",X0),G0(`Failed to save: ${X0.message}`,!1,!0),!1}},K0=async(qw,Y0)=>{try{Y0("Pushing changes to repository...",!1,!1);const G0=await openRepository(qw);return await pushChanges(G0,"origin","main",gl),Y0("Changes pushed successfully!",!0,!1),!0}catch(G0){return console.error("Failed to push changes:",G0),Y0(`Failed to push: ${G0.message}`,!1,!0),!1}},J0=reactExports.useCallback(async(qw,Y0,G0=!1)=>{G0&&await qm()},[qm]),Hw=eg?.isEditable??!0;return{currentTeam:eg,workspaceApps:Uf,isLoadingApps:rp,appsError:np,fetchWorkspaceApps:J0,editWorkspaceApp:tg,switchWorkspaceAppBranch:rg,updateWorkspaceAppEditable:Vm,addWorkspaceApp:ig,cloneGitRepository:R1,saveReadmeChanges:O1,pushChanges:K0,deleteWorkspaceApp:vv,isEditable:Hw}},integrationAxiosInstance$1=axiosInstance("connection-manager"),useLLM=()=>{const la=useQueryClient(),aa=useAppStore(Uf=>Uf.authReady),ca=useAppStore(Uf=>Uf.isAuthenticated),ua=Uf=>{const{__parent__:rp,__path__:np,...qm}=Uf;return qm},{data:Sa,isLoading:hl,isError:pl,error:ml,refetch:gl}=useQuery({queryKey:["llms"],queryFn:async()=>{const Uf=await integrationAxiosInstance$1.get("/integmanager.core/llm"),{data:rp,status:np}=Uf;if(np!==200)throw new Error("Failed to fetch llms");return rp.map(Vm=>({...Vm.llm,config:JSON.parse(Vm.llm.config)}))},enabled:aa&&ca&&!0});pl&&ml&&y$b.error(ml?.response?.data?.reason||ml.message);const wc=reactExports.useCallback(async Uf=>{await gl()},[gl]),xu=reactExports.useCallback(async Uf=>{try{const rp=ua(Uf),np=await integrationAxiosInstance$1.post("/integmanager.core/llm",rp);if(np.status===200||np.status===201)la.invalidateQueries({queryKey:["llms"]}),y$b.success("LLM created successfully");else{const qm=np.data?.reason||np.data?.message||`Failed to create LLM (Status: ${np.status})`;throw y$b.error(qm),new Error(qm)}}catch(rp){const np=rp?.response?.data?.reason||rp?.response?.data?.message||rp?.message||"Failed to create LLM";throw y$b.error(np),rp}},[la]),ff=reactExports.useCallback(async Uf=>{try{const rp=await integrationAxiosInstance$1.delete(`/integmanager.core/llm/${Uf}`);if(rp.status===200||rp.status===204)la.invalidateQueries({queryKey:["llms"]}),y$b.success("LLM deleted successfully");else{const np=rp.data?.reason||rp.data?.message||`Failed to delete LLM (Status: ${rp.status})`;throw y$b.error(np),new Error(np)}}catch(rp){const np=rp?.response?.data?.reason||rp?.response?.data?.message||rp?.message||"Failed to delete LLM";throw y$b.error(np),rp}},[la]),jf=reactExports.useCallback(async(Uf,rp)=>{try{const np=ua(rp),qm=await integrationAxiosInstance$1.put(`/integmanager.core/llm/${Uf}`,np);if(qm.status===200||qm.status===201||qm.status===204)la.invalidateQueries({queryKey:["llms"]}),y$b.success("LLM updated successfully");else{const Vm=qm.data?.reason||qm.data?.message||`Failed to update LLM (Status: ${qm.status})`;throw y$b.error(Vm),new Error(Vm)}}catch(np){const qm=np?.response?.data?.reason||np?.response?.data?.message||np?.message||"Failed to update LLM";throw y$b.error(qm),np}},[la]);return{llmData:Sa,isLoadingLLMs:hl,isErrorLLMs:pl,llmError:ml,fetchLLMs:wc,createLLM:xu,deleteLLM:ff,updateLLM:jf}},getTeamModules=la=>{if(!la)return[];const aa=getUserModuleNames(),ca=la.toLowerCase(),ua=ca.replace(/_/g,"");return aa.filter(Sa=>{const hl=Sa.toLowerCase(),pl=hl.split(".")[0];return hl.startsWith(ca)||pl===ua})},IS_LOCAL_MODE$7=!0,useConfigLoader=()=>{const la=useAppStore(ua=>ua.setAppConfig),aa=useAppStore(ua=>ua.setAppConfigError);return{loadConfig:reactExports.useCallback(async ua=>{console.log("loadConfig",ua),aa(null);try{const Sa=await loadAppConfig(ua);console.log("validatedConfig from agentlang",Sa);let hl={};try{let ml;if(IS_LOCAL_MODE$7){const{getFileSystem:gl}=await __vitePreload(async()=>{const{getFileSystem:ff}=await Promise.resolve().then(()=>fsUtils);return{getFileSystem:ff}},void 0),wc=await gl(),xu=`${ua}/config.al`;ml=await wc.readFile(xu)}hl=parseAppConfig(ml),console.log("fullConfig from parseAppConfig",hl)}catch(ml){console.warn("Could not read config.al for full config:",ml.message),hl=Sa}const pl={...hl,...Sa};return console.log("mergedConfig (final)",pl),la(pl),pl}catch(Sa){const hl=Sa instanceof Error?Sa.message:String(Sa);return console.error("Failed to load config.al:",hl),aa(hl),la({}),{}}},[la,aa])}},IS_LOCAL_MODE$6=!0,accessedKeys=new Map,getLocalEnv=la=>{const aa=getLocalEnv$2(la);return console.log(`🔍 getLocalEnv("${la}") called, returning:`,aa?`${aa.substring(0,10)}...`:"undefined"),accessedKeys.set(la,{value:aa,timestamp:Date.now()}),aa||console.warn(`⚠️ Key "${la}" not found in LocalEnv`),aa};typeof window<"u"&&(window.debugResolverKeys={getAccessedKeys:()=>Array.from(accessedKeys.entries()),listAccessedKeys:()=>{console.log("📋 Keys accessed by resolvers:"),accessedKeys.forEach(({value:la},aa)=>{console.log(` ${aa}: ${la?"found":"NOT FOUND"}`)})}});const API_DOMAIN_TO_PROVIDER={"api.hubapi.com":"hubspot","slack.com":"slack","api.github.com":"github","api.stripe.com":"stripe","api.airtable.com":"airtable","api.notion.com":"notion","api.openai.com":"openai","api.anthropic.com":"anthropic","www.googleapis.com":"google"};function createProxiedAxios(){const la=getURL("api-cors-proxy"),aa=axios.create({timeout:3e4});return aa.interceptors.request.use(ca=>{const ua=ca.url;if(ua&&(ua.startsWith("http://")||ua.startsWith("https://")))try{const Sa=new URL(ua),hl=Sa.hostname,pl=Sa.pathname+Sa.search,ml=API_DOMAIN_TO_PROVIDER[hl];if(!ml)return console.warn(`⚠️ No CORS proxy provider configured for domain: ${hl}`),console.warn(` Add '${hl}' to API_DOMAIN_TO_PROVIDER in browserResolvers.ts`),ca;console.log(`🔄 Proxying API call: ${ua}`),console.log(` → Provider: ${ml}`),console.log(" → Original headers:",ca.headers),ca.url=`${la}/proxy/${ml}${pl}`,console.log(` → New URL: ${ca.url}`),console.log(" → Final headers:",ca.headers)}catch(Sa){console.error("Failed to parse URL for proxying:",ua,Sa)}return ca}),aa.interceptors.response.use(ca=>ca,ca=>(ca.code==="ERR_NETWORK"?console.error("❌ Network error - Check if CORS proxy is running on",la):ca.response?.status===401?console.error("❌ 401 Unauthorized - Check API credentials"):ca.response?.status===403&&console.error("❌ 403 Forbidden - Check API permissions"),Promise.reject(ca))),aa}const proxiedAxios=createProxiedAxios(),COMMON_DEPENDENCIES=new Map([["agentlang",{...agentlangRuntimeUtil,asInstance,makeInstance:makeInstance$1,getLocalEnv}],["@fractl/agentlang",{...agentlangRuntimeUtil,asInstance,makeInstance:makeInstance$1,getLocalEnv}],["agentlang/out/runtime/module.js",{makeInstance:makeInstance$1}],["agentlang/out/runtime/auth/defs.js",{getLocalEnv}],["axios",{default:proxiedAxios}]]);function asInstance(la,aa){const ca=aa.split("/"),ua=ca.length===2?ca[0]:"hubspot",Sa=ca.length===2?ca[1]:aa,hl=new Map(Object.entries(la));return makeInstance$1(ua,Sa,hl)}function getDependency(la){if(COMMON_DEPENDENCIES.has(la))return COMMON_DEPENDENCIES.get(la);for(const[aa,ca]of COMMON_DEPENDENCIES)if(la.includes(`/${aa}`)||la.endsWith(`/${aa}`))return ca}const BUILTIN_MODULE_PATHS=["./modules/core.js","./modules/auth.js"];async function setupResolverLoader(la){try{console.log("⚙️ Configuring AgentLang module loader for:",la);let aa=null;if(IS_LOCAL_MODE$6){const{createFS:ua}=await __vitePreload(async()=>{const{createFS:Sa}=await import("./fs-gSDwXF4f.js");return{createFS:Sa}},__vite__mapDeps([33,1,18,19,5,9,16,11,14,15,10,20,21,17,4]));aa=await ua({name:"studio",useCliBackend:!0})}setModuleLoader({fileReader:async ua=>{if(console.log(`📖 Reading file: ${ua}`),BUILTIN_MODULE_PATHS.includes(ua))return console.log(`📦 Built-in module: ${ua} (using global registration)`),"";let Sa=ua;if(ua.startsWith(la+"/")?Sa=ua.substring(la.length+1):ua.startsWith(la)&&(Sa=ua.substring(la.length)),Sa.startsWith("/")&&(Sa=Sa.substring(1)),console.log(`📖 Resolved to relative path: ${Sa}`),IS_LOCAL_MODE$6&&aa){const hl=`${la}/${Sa}`,pl=await aa.readFile(hl);return typeof pl=="string"?pl:pl.toString()}return await readRepoFile(la,Sa)},dependencyProvider:ua=>{const Sa=getDependency(ua);return Sa?console.log(`✅ Resolved dependency: ${ua}`):console.warn(`⚠️ Unknown dependency: ${ua}`),Sa},basePath:""}),console.log("✅ Module loader configured successfully"),console.log("ℹ️ Resolvers will be loaded automatically when AgentLang parses .al files")}catch(aa){console.error("❌ Failed to setup resolver loader:",aa)}}const RESOLVER_CONFIGS={hsr:{initFunctionName:"initializeHubSpotConfig",envKeyMapping:{HUBSPOT_ACCESS_TOKEN:"accessToken"},configBuilder:la=>({accessToken:la.HUBSPOT_ACCESS_TOKEN})},gmr:{initFunctionName:"initializeGmailConfig",envKeyMapping:{GMAIL_CLIENT_ID:"clientId",GMAIL_CLIENT_SECRET:"clientSecret",GMAIL_REFRESH_TOKEN:"refreshToken",GMAIL_POLL_INTERVAL_MINUTES:"pollIntervalMinutes"},configBuilder:la=>({clientId:la.GMAIL_CLIENT_ID,clientSecret:la.GMAIL_CLIENT_SECRET,refreshToken:la.GMAIL_REFRESH_TOKEN,pollIntervalMinutes:la.GMAIL_POLL_INTERVAL_MINUTES})},gsr:{initFunctionName:"initializeGoogleConfig",envKeyMapping:{GOOGLE_API_KEY:"apiKey",GOOGLE_CLIENT_ID:"clientId",GOOGLE_CLIENT_SECRET:"clientSecret"},configBuilder:la=>({apiKey:la.GOOGLE_API_KEY,clientId:la.GOOGLE_CLIENT_ID,clientSecret:la.GOOGLE_CLIENT_SECRET})},slackr:{initFunctionName:"initializeSlackConfig",envKeyMapping:{SLACK_BOT_TOKEN:"botToken",SLACK_APP_TOKEN:"appToken"},configBuilder:la=>({botToken:la.SLACK_BOT_TOKEN,appToken:la.SLACK_APP_TOKEN})},ghr:{initFunctionName:"initializeGitHubConfig",envKeyMapping:{GITHUB_TOKEN:"token",GITHUB_API_KEY:"apiKey"},configBuilder:la=>({token:la.GITHUB_TOKEN||la.GITHUB_API_KEY})}};async function initializeResolverConfigs(){try{const{getEnvironmentKeysAsObject:la}=await __vitePreload(async()=>{const{getEnvironmentKeysAsObject:ua}=await Promise.resolve().then(()=>playgroundEnvKeys);return{getEnvironmentKeysAsObject:ua}},void 0),aa=la();console.log("🔑 Available environment keys:",Object.keys(aa));const ca=getImportedModuleNames();console.log("📦 Imported modules:",ca);for(const[ua,Sa]of Object.entries(RESOLVER_CONFIGS)){const hl=getImportedModule(ua);if(!hl){console.log(`ℹ️ Resolver "${ua}" not loaded - skipping initialization`);continue}console.log(`📋 Found resolver module: ${ua}`);const pl=hl[Sa.initFunctionName];if(typeof pl!="function"){console.warn(`⚠️ Resolver "${ua}" found but "${Sa.initFunctionName}" function is missing`);continue}const ml=Object.keys(Sa.envKeyMapping);if(ml.filter(ff=>aa[ff]).length===0){console.warn(`⚠️ No environment keys found for resolver "${ua}". Expected: ${ml.join(", ")}`);continue}const wc=Sa.configBuilder(aa),xu=Object.fromEntries(Object.entries(wc).filter(([ff,jf])=>jf!==void 0));if(Object.keys(xu).length===0){console.warn(`⚠️ No valid configuration could be built for resolver "${ua}"`);continue}console.log(`🔑 Initializing resolver "${ua}" with config:`,{...xu,...Object.keys(xu).reduce((ff,jf)=>{const Uf=xu[jf],rp=typeof Uf=="string"?`***${Uf.slice(-4)}`:"***";return{...ff,[jf]:rp}},{})});try{await pl(xu),console.log(`✅ Resolver "${ua}" configured successfully`),hl.config&&console.log(" Configuration stored in resolver.config")}catch(ff){console.error(`❌ Failed to initialize resolver "${ua}":`,ff)}}console.log("✅ Resolver initialization complete")}catch(la){console.error("❌ Failed to initialize resolver configs:",la)}}const browserResolvers=Object.freeze(Object.defineProperty({__proto__:null,initializeResolverConfigs,setupResolverLoader},Symbol.toStringTag,{value:"Module"})),IS_LOCAL_MODE$5=!0,useRepositoryClone=()=>{const la=useNavigate(),[aa,ca]=reactExports.useState(!1),[ua,Sa]=reactExports.useState(""),[hl,pl]=reactExports.useState(""),ml=Fdt();useAppStore(qm=>qm.user);const{processDependencies:gl}=useDependencyProcessor(),{loadConfig:wc}=useConfigLoader(),xu="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",ff="hamza@fractl.io",jf=reactExports.useCallback(()=>{const qm=ff.trim().length>0,Vm=xu.trim().length>0;(!qm||!Vm)&&console.warn("GitHub credentials missing - clone may fail for private repositories")},[xu,ff]),Uf=reactExports.useCallback(async(qm,Vm,eg,tg,rg,ig)=>{console.log("Processing repository..."),await gl(qm,ff,xu,BN=>{Sa(BN)}),Sa("Loading application modules..."),Sa("Initializing runtime with environment keys...");{const{inBrowserREPL:BN}=await __vitePreload(async()=>{const{inBrowserREPL:iF}=await Promise.resolve().then(()=>inBrowserREPL$1);return{inBrowserREPL:iF}},void 0);await BN.initializeRuntime()}Sa("Configuring resolver loader..."),await setupResolverLoader(qm),Sa("Preparing runtime for app...");const{prepareRuntimeForAppLoad:vv}=await __vitePreload(async()=>{const{prepareRuntimeForAppLoad:BN}=await Promise.resolve().then(()=>index$4);return{prepareRuntimeForAppLoad:BN}},void 0);await vv(qm);{Sa("Initializing filesystem...");const{setFileSystem:BN}=await __vitePreload(async()=>{const{setFileSystem:vQ}=await Promise.resolve().then(()=>fsUtils);return{setFileSystem:vQ}},void 0),{createFS:iF}=await __vitePreload(async()=>{const{createFS:vQ}=await import("./fs-gSDwXF4f.js");return{createFS:vQ}},__vite__mapDeps([33,1,18,19,5,9,16,11,14,15,10,20,21,17,4])),yY=await iF({name:"studio",useCliBackend:!0});BN(yY)}Sa("Loading AgentLang modules..."),await flushAllAndLoad(qm,{name:"studio",useCliBackend:IS_LOCAL_MODE$5}),Sa("Reloading core modules...");const{loadCoreModules:R1}=await __vitePreload(async()=>{const{loadCoreModules:BN}=await Promise.resolve().then(()=>loader$1);return{loadCoreModules:BN}},void 0);await R1(),Sa("Loading configuration..."),await wc(qm),Sa("Registering agents and initializing modules..."),await runInitFunctions(),await runStandaloneStatements(),Sa("Loading LLM configurations...");const{queryLLMEntities:O1}=await __vitePreload(async()=>{const{queryLLMEntities:BN}=await Promise.resolve().then(()=>index$4);return{queryLLMEntities:BN}},void 0),K0=await O1(),J0=useAppStore.getState().appConfig;useAppStore.getState().setAppConfig({...J0,llms:K0}),Sa("Initializing resolver configurations..."),await initializeResolverConfigs(),console.log("Reading package.json...");let Hw;{if(!ig)throw new Error("packageJson is required in local mode");Hw=ig}const qw=getTeamModules(Vm),Y0=qw.flatMap(BN=>{try{const iF=fetchModule$2(BN);return iF?iF.getAgentNames().filter(yY=>iF.getAgent(yY)?.isPublic()??!1).map(yY=>`${BN}/${yY}`):[]}catch(iF){return console.warn(`Failed to fetch module ${BN} for public agents:`,iF),[]}});console.log(`[LOCAL] Found ${qw.length} modules:`,qw),console.log(`[LOCAL] Found ${Y0.length} public agents:`,Y0);const G0=qw.flatMap(BN=>fetchModule$2(BN).getEntityNames().map(iF=>`${BN}/${iF}`)),X0=qw.flatMap(BN=>buildGraph(BN).getRoots().map(yY=>`${yY.entity.getModuleName()}/${yY.entity.getEntryName()}`)),d_={Name:eg,Description:Hw.description||"An application generated from "+eg},f_=await loadUISchema(eg,qm,G0,X0,Y0,d_);f_.appInfo||(f_.appInfo={}),f_.appInfo.apiUrl="http://localhost:8080",ml(f_);const zN={githubOrg:tg,teamName:eg,branch:rg,projectPath:qm};return __vitePreload(()=>import("./replService-Bc6KTaiE.js"),__vite__mapDeps([34,1,18,19,5,9,16,11,14,15,10,20,21,17,4])).then(async({default:BN})=>{try{await BN.ensureReplSession(zN),await BN.initializeFileTracking(qm)}catch(iF){console.error("❌ Failed to setup REPL deployment:",iF)}}),qw[0]},[ff,xu,Sa,ml,gl,wc]),rp=reactExports.useCallback(async qm=>{ca(!0),pl("");try{jf();const{GitHubOrg:Vm,GitHubRepo:eg,Name:tg,Branch:rg}=qm,ig=`/${eg}`,vv=generateGitHubUrl(Vm,eg,ff,xu);await pathExists(ig)?Sa("Repository already exists. Loading modules..."):(Sa("Cloning repository..."),await cloneRepository(vv,ig,rg,xu)),await Uf(ig,eg,tg,Vm,rg)}catch(Vm){const eg=Vm instanceof Error?Vm.message:"Failed to clone repository";pl(eg),console.error("Error during repository clone:",Vm);try{const tg=`/${qm.GitHubRepo}`;await pathExists(tg)&&(console.log(`Cleaning up failed clone: removing ${tg} from IndexedDB`),await removeDirectory(tg))}catch(tg){console.error("Error cleaning up failed clone:",tg)}}finally{ca(!1)}},[jf,ff,xu,Uf]),np=reactExports.useCallback((qm,Vm,eg,tg,rg)=>{const ig=`/design/${qm?"agents":"data-model"}/${Vm}/${eg}/${tg}`;rg?la(ig,rg):la(ig)},[la]);return{isCloning:aa,error:hl,loadingMessage:ua,cloneAndProcess:rp,navigateToDesign:np,processRepository:Uf}},CLI_URL$1="http://localhost:4000";async function fetchPackageInfo(){const la=await fetch(`${CLI_URL$1}/info`);return la.ok?la.json():{}}async function fetchDependenciesFromLocalServer(la,aa,ca){ca&&ca("Installing dependencies in local mode...",0,aa.length);try{const ua=await fetch(`${CLI_URL$1}/install`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(!ua.ok){const Sa=await ua.json().catch(()=>({error:"Unknown error"}));throw new Error(Sa.error||`Failed to install dependencies: ${ua.statusText}`)}return console.log("✓ Dependencies installed successfully in local mode"),aa.map((Sa,hl)=>(ca&&ca(`Installed ${Sa.appName}`,hl+1,aa.length),{appName:Sa.appName,success:!0,message:"Dependency installed successfully",path:`${la}/node_modules/${Sa.appName}`}))}catch(ua){return console.error("Failed to install dependencies:",ua),aa.map(Sa=>({appName:Sa.appName,success:!1,message:ua instanceof Error?ua.message:"Failed to install dependency",error:ua}))}}function parsePackageName(la){if(!la?.name)return{org:"file",name:""};const aa=la.name;if(aa.startsWith("@")){const ca=aa.substring(1).split("/");if(ca.length===2)return{org:ca[0],name:ca[1]}}return{org:"file",name:aa}}function isDesignPage(la){return la?["data-model","marketplace-data-model","agents","workflow","security","ui","settings"].includes(la):!1}const useServeMode=()=>{const la=useNavigate(),aa=useMatches(),{processRepository:ca}=useRepositoryClone(),[ua,Sa]=reactExports.useState(""),[hl,pl]=reactExports.useState(null);return{initializeServeMode:reactExports.useCallback(async()=>{Sa("Connecting to local server..."),pl(null);try{Sa("Loading app configuration...");const gl=await fetchPackageInfo(),{org:wc,name:xu}=parsePackageName(gl),ff=`/${xu}`;Sa("Processing project...");const jf=await ca(ff,xu,xu,wc,"main",gl),Uf=aa[aa.length-1];if(isDesignPage(Uf?.id))return;const rp=`/design/agents/${wc}/${xu}`;la(jf?`${rp}/${jf}`:rp)}catch(gl){const wc=gl instanceof Error?gl.message:"An unknown error occurred";pl(wc),console.error("Failed to initialize serve mode:",gl)}finally{Sa("")}},[ca,la,aa]),loadingMessage:ua,error:hl}},CLI_URL="http://localhost:4000",useDependencyProcessor=()=>{const la=reactExports.useCallback(ca=>{if(!ca.dependencies)return[];const ua=[];for(const[Sa,hl]of Object.entries(ca.dependencies))typeof hl=="string"&&hl.startsWith("git+http")&&ua.push({appName:Sa,url:hl});return ua},[]),aa=reactExports.useCallback(async(ca,ua,Sa,hl)=>{let pl;{const jf=await fetch(`${CLI_URL}/file?path=${encodeURIComponent("package.json")}`);if(!jf.ok)throw new Error(`Failed to fetch package.json from CLI backend at ${CLI_URL}: ${jf.statusText}`);const{content:Uf}=await jf.json();pl=Uf}const ml=JSON.parse(pl),gl=la(ml);if(gl.length===0)return[];hl&&hl(`Installing ${gl.length} dependencies...`,0,gl.length);let wc;wc=await fetchDependenciesFromLocalServer(ca,gl,(jf,Uf,rp)=>{hl&&hl(`[${Uf}/${rp}] ${jf}`,Uf,rp)});const xu=wc.filter(jf=>!jf.success),ff=wc.filter(jf=>jf.success);if(ff.length>0&&console.log(`✓ Successfully fetched ${ff.length} dependencies:`,ff.map(jf=>jf.appName).join(", ")),xu.length>0&&console.warn(`⚠ Failed to install ${xu.length} of ${gl.length} dependencies:`,xu.map(jf=>`${jf.appName} (${jf.message})`).join(", ")),ff.length>0){const{createFS:jf}=await __vitePreload(async()=>{const{createFS:rp}=await import("./fs-gSDwXF4f.js");return{createFS:rp}},__vite__mapDeps([33,1,18,19,5,9,16,11,14,15,10,20,21,17,4])),Uf=await jf({name:"studio",useCliBackend:!0});for(const rp of ff)if(rp.path)try{const np=`${rp.path}/package.json`;await Uf.exists(np)?console.log(`✓ ${rp.appName}: Verified package.json exists`):console.error(`✗ ${rp.appName}: package.json missing at ${np}`)}catch(np){console.error(`✗ ${rp.appName}: Verification failed:`,np)}}return wc},[la]);return{extractGitDependencies:la,processDependencies:aa}},IS_LOCAL_MODE$4=!0,integrationAxiosInstance=axiosInstance("connection-manager"),useIntegration=(la="api")=>{const{currentTeam:aa}=useTeams(),ca=aa?.GitHubRepo,ua=useQueryClient();useAppStore(vv=>vv.authReady),useAppStore(vv=>vv.isAuthenticated);const Sa=useAppStore(vv=>vv.user),hl=Sa.GitHub.Token,pl=Sa.GitHub.Username,{processDependencies:ml}=useDependencyProcessor(),gl=async vv=>{if(ca)try{const O1=(await readDependencyPackageJsonFromGit(ca,vv))?.agentlang?.config||[];if(O1.length===0)return[];let K0="";try{K0=await readProjectFile(ca,"config.al")}catch{return console.log("config.al does not exist yet"),[]}const J0=parseAppConfig(K0),Hw=[];return O1.forEach(qw=>{let Y0=vv;if(!J0[Y0]&&isFqName$1(qw)){const X0=nameToPath$1(qw).getModuleName();X0&&J0[X0]&&(Y0=X0)}J0[Y0]&&J0[Y0][qw]&&Hw.push({entityFqn:qw,config:J0[Y0][qw]})}),Hw}catch(R1){return console.error(`Error reading configs from config.al for ${vv}:`,R1),y$b.error(`Failed to load configs for ${vv}: ${R1.message}`),[]}try{const R1=await integrationAxiosInstance.get(`/api/IntegrationManager.Core/Integration/${vv}/ConnectionConfigGroup/ConnectionConfig`),{result:O1,status:K0,message:J0}=R1.data;if(K0==="ok")return O1;K0==="error"&&y$b.error(J0||`Failed to load configs for ${vv}`)}catch(R1){console.error(`Error fetching configs for ${vv}:`,R1),y$b.error(`Error fetching configs for ${vv}`)}},{data:wc,isLoading:xu,isError:ff,error:jf,refetch:Uf}=useQuery({queryKey:["integrations",ca,la],queryFn:async()=>{if(console.log("fetching integrations in",la),la!=="config")return console.log("[LOCAL_MODE] Skipping API integrations fetch - use config mode instead"),[];if(ca)try{const Hw=(await readPackageJsonFromGit(ca,!0)).dependencies||{};let qw={};try{const X0=await readProjectFile(ca,"config.al");qw=parseAppConfig(X0),console.log("parsedConfig",qw)}catch{console.log("config.al does not exist yet")}const Y0=/(?:git\+)?https:\/\/(?:[^@]+@)?github\.com\/([^/]+)\/([^/.]+)(?:\.git)?(?:#.+)?/,G0=[];return Object.entries(Hw).forEach(([X0,d_])=>{const f_=d_.match(Y0);if(f_){const[,zN,BN]=f_;let iF,yY=null;qw[BN]&&qw[BN].isRemoteIntegration!==void 0?(yY=qw[BN],iF=yY.isRemoteIntegration):qw[X0]&&typeof qw[X0].isRemoteIntegration=="boolean"&&(yY=qw[X0],iF=yY.isRemoteIntegration);const Ohe={name:yY?.name||X0,userData:{GitHubOrg:zN,GitHubRepo:BN}};iF!==void 0&&(Ohe.userData.isRemoteIntegration=iF),G0.push(Ohe)}else d_.startsWith("file:")}),G0}catch(J0){return console.warn("Failed to read integrations from package.json",J0),[]}const vv=await integrationAxiosInstance.get("/integmanager.core/integration"),{data:R1,status:O1}=vv;if(O1!==200)throw new Error("Failed to fetch integrations");return R1.map(J0=>({...J0.integration,userData:JSON.parse(J0.integration.userData)}))},enabled:IS_LOCAL_MODE$4,staleTime:0,refetchOnWindowFocus:!0});ff&&jf&&y$b.error(jf?.response?.data?.reason||jf.message);const rp=reactExports.useCallback(async()=>{await Uf()},[Uf]),np=reactExports.useCallback(async(vv,R1)=>{const O1=`/temp-validation/${vv}/${R1}`;let K0=!1;try{if(!await pathExists(O1)){const G0=generateGitHubUrl(vv,R1,pl,hl);await cloneRepository(G0,O1,"main",hl||""),K0=!0}let Hw;if(IS_LOCAL_MODE$4){const{createGitUtils:G0}=await __vitePreload(async()=>{const{createGitUtils:f_}=await Promise.resolve().then(()=>index$6);return{createGitUtils:f_}},void 0),{fs:X0}=await G0({useCliBackend:!1}),d_=`${O1}/package.json`;Hw=(await X0.readFile(d_)).toString()}const qw=JSON.parse(Hw),Y0=qw?.agentlang?.config&&Array.isArray(qw.agentlang.config);if(K0)try{await removeDirectory(O1)}catch(G0){console.warn("Failed to cleanup temporary clone:",G0)}return Y0}catch(J0){if(K0)try{await removeDirectory(O1)}catch(Hw){console.warn("Failed to cleanup temporary clone:",Hw)}throw J0}},[pl,hl]),qm=reactExports.useCallback(async vv=>{if(la==="config"&&ca){const R1=pl&&pl.trim().length>0,O1=hl&&hl.trim().length>0;if(!R1||!O1){const d_=new Error("GitHub credentials are required for local mode");throw d_.code="GITHUB_CREDENTIALS_REQUIRED",d_}const K0=vv.userData.GitHubRepo,J0=vv.name,Hw=vv.userData.GitHubOrg;if(!K0||!Hw)throw new Error("GitHub organization and repository name are required");if(!await np(Hw,K0))throw new Error("The repository is not a valid AgentLang project. It must have a package.json with an agentlang.config field.");const Y0=await readPackageJsonFromGit(ca);Y0.dependencies||(Y0.dependencies={});const G0=generateGitHubUrl(Hw,K0,pl,hl);Y0.dependencies[J0]=`git+${G0}#main`,await savePackageJsonToGit(ca,JSON.stringify(Y0,null,2),`Add dependency for ${J0}`,pl,hl);const X0=`/${ca}`;try{await ml(X0,pl,hl)}catch(d_){throw console.error(`Failed to process dependencies for ${J0}:`,d_),y$b.error(`Failed to clone dependency: ${d_.message}`),d_}try{const d_=`${X0}/node_modules/${J0}`,f_=await readRepoFile(d_,"package.json"),zN=JSON.parse(f_);if(zN?.agentlang?.config&&Array.isArray(zN.agentlang.config)&&zN.agentlang.config.length>0){let BN="";try{BN=await readProjectFile(ca,"config.al")}catch{}const iF=BN?parseAppConfig(BN):{};iF[J0]||(iF[J0]={}),zN.agentlang.config.forEach(yY=>{iF[J0][yY]||(iF[J0][yY]={})}),await saveConfigToGit(ca,formatAppConfig(iF),`Add config for integration ${J0}`,pl,hl)}}catch(d_){console.warn(`Failed to create config maps for integration ${J0}:`,d_)}try{await flushAllAndLoad(X0,{name:"studio",useCliBackend:IS_LOCAL_MODE$4}),await ua.invalidateQueries({queryKey:["dependencies"]})}catch(d_){console.warn(`Failed to load modules for ${J0}:`,d_)}await ua.invalidateQueries({queryKey:["integrations",ca,la]}),await Uf(),y$b.success("Integration created successfully");return}try{const R1=await integrationAxiosInstance.post("/integmanager.core/integration",vv);if(R1.status===200||R1.status===201)await ua.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration created successfully");else throw new Error(R1.data?.reason||R1.data?.message||"Failed to create integration")}catch(R1){const O1=R1?.response?.data?.reason||R1?.response?.data?.message||R1?.message||"Failed to create integration";throw new Error(O1)}},[ua,ca,pl,hl,la,np,ml,Uf]),Vm=reactExports.useCallback(async vv=>{if(la==="config"&&ca)try{const R1=await readPackageJsonFromGit(ca);if(R1.dependencies&&R1.dependencies[vv]){const O1=R1.dependencies[vv],K0=/(?:git\+)?https:\/\/github\.com\/([^/]+)\/([^/.]+)(?:\.git)?(?:#.+)?/,J0=O1.match(K0),Hw=J0?J0[2]:null;let qw=null;if(Hw)try{const Y0=await readDependencyPackageJsonFromGit(ca,vv);Y0?.name&&(qw=Y0.name.split("/").pop()?.split("@").pop()||null)}catch{console.log(`Could not read package.json for ${vv}, will try to remove by repo name`)}delete R1.dependencies[vv],await savePackageJsonToGit(ca,JSON.stringify(R1,null,2),`Remove dependency ${vv}`,pl,hl);try{const Y0=await readProjectFile(ca,"config.al"),G0=parseAppConfig(Y0);let X0=!1;if(Hw&&G0[Hw]&&(delete G0[Hw],X0=!0),qw&&G0[qw]&&(delete G0[qw],X0=!0),G0[vv]&&(delete G0[vv],X0=!0),X0){const d_=formatAppConfig(G0);await saveConfigToGit(ca,d_,`Remove integration ${vv} from config.al`,pl,hl)}}catch{console.log("config.al does not exist or error reading it")}await ua.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration deleted successfully");return}else{y$b.info("Integration not found in dependencies");return}}catch(R1){throw console.error("Failed to delete integration:",R1),y$b.error(`Failed to delete integration: ${R1.message}`),R1}try{const R1=await integrationAxiosInstance.delete(`/integmanager.core/integration/${vv}`);if(console.log(R1.data),R1.status===200||R1.status===204)await ua.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration deleted successfully");else{const O1=R1.data?.reason||R1.data?.message||`Failed to delete integration (Status: ${R1.status})`;throw y$b.error(O1),new Error(O1)}}catch(R1){const O1=R1?.response?.data?.reason||R1?.response?.data?.message||R1?.message||"Failed to delete integration";throw y$b.error(O1),R1}},[ua,ca,pl,hl,la]),eg=reactExports.useCallback(async(vv,R1)=>{if(la==="config"&&ca)try{const O1=R1.userData?.GitHubRepo,K0=R1.userData?.GitHubOrg;if(!O1||!K0)throw new Error("Missing GitHub info for update");const J0=await readPackageJsonFromGit(ca);J0.dependencies||(J0.dependencies={}),J0.dependencies[vv]=`git+https://github.com/${K0}/${O1}.git#main`,await savePackageJsonToGit(ca,JSON.stringify(J0,null,2),`Update dependency ${vv}`,pl,hl),await ua.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration updated successfully");return}catch(O1){throw console.error("Failed to update integration:",O1),y$b.error(`Failed to update integration: ${O1.message}`),O1}try{const O1=await integrationAxiosInstance.put(`/integmanager.core/integration/${vv}`,R1);if(console.log(O1.data),O1.status===200)ua.invalidateQueries({queryKey:["integrations"]}),y$b.success("Integration updated successfully");else{const K0=O1.data?.reason||O1.data?.message||`Failed to update integration (Status: ${O1.status})`;throw y$b.error(K0),new Error(K0)}}catch(O1){const K0=O1?.response?.data?.reason||O1?.response?.data?.message||O1?.message||"Failed to update integration";throw y$b.error(K0),O1}},[ua,ca,pl,hl,la]),tg=reactExports.useCallback(async vv=>{if(la!=="api"||!ca){console.warn("addIntegrationToConfig only supported in 'api' mode with a valid githubRepo");return}try{const R1=vv.userData?.GitHubRepo,O1=vv.userData?.GitHubOrg,K0=vv.name;if(!R1||!O1)throw new Error("GitHub organization and repository name are required");const J0=`git+https://github.com/${O1}/${R1}.git#main`,Hw=await readPackageJsonFromGit(ca);Hw.dependencies||(Hw.dependencies={}),Hw.dependencies[R1]=J0,await savePackageJsonToGit(ca,JSON.stringify(Hw,null,2),`Add integration ${K0} from API`,pl,hl);const qw=`/${ca}`;try{await ml(qw,pl,hl),await flushAllAndLoad(qw,{name:"studio",useCliBackend:IS_LOCAL_MODE$4}),await ua.invalidateQueries({queryKey:["dependencies"]})}catch(X0){console.warn(`Failed to process dependencies for ${K0}:`,X0)}let Y0={};try{const X0=await readProjectFile(ca,"config.al");Y0=parseAppConfig(X0)}catch{console.log("config.al does not exist yet, will create it")}Y0[R1]={isRemoteIntegration:!0,name:K0,url:J0};const G0=formatAppConfig(Y0);await saveConfigToGit(ca,G0,`Add integration ${K0} to config.al`,pl,hl),await ua.invalidateQueries({queryKey:["integrations"]}),y$b.success(`Integration ${K0} added successfully`)}catch(R1){throw console.error("Error adding integration to config:",R1),y$b.error(`Failed to add integration: ${R1.message}`),R1}},[ca,pl,hl,la,ua,ml]),rg=reactExports.useCallback(async vv=>{if(la!=="api"||!ca){console.warn("removeIntegrationFromConfig only supported in 'api' mode with a valid githubRepo");return}try{const R1=vv.userData?.GitHubRepo,O1=vv.name;if(!R1)throw new Error("GitHub repository name is required");const K0=await readPackageJsonFromGit(ca);K0.dependencies&&K0.dependencies[O1]&&(delete K0.dependencies[O1],await savePackageJsonToGit(ca,JSON.stringify(K0,null,2),`Remove integration ${O1} from API`,pl,hl));try{const J0=await readProjectFile(ca,"config.al"),Hw=parseAppConfig(J0);if(Hw[R1]){delete Hw[R1];const qw=formatAppConfig(Hw);await saveConfigToGit(ca,qw,`Remove integration ${O1} from config.al`,pl,hl)}}catch{console.log("config.al does not exist or error reading it")}await ua.invalidateQueries({queryKey:["integrations"]}),y$b.success(`Integration ${O1} removed successfully`)}catch(R1){throw console.error("Error removing integration from config:",R1),y$b.error(`Failed to remove integration: ${R1.message}`),R1}},[ca,pl,hl,la,ua]),ig=reactExports.useCallback(async()=>{if(!ca)return console.warn("readAllConfigsFromPackageJson requires a valid githubRepo"),{};try{const R1=(await readPackageJsonFromGit(ca,!0)).dependencies||{},O1={};for(const[K0]of Object.entries(R1))try{const J0=await readDependencyPackageJsonFromGit(ca,K0);J0?.agentlang?.config&&Array.isArray(J0.agentlang.config)&&(O1[K0]=J0.agentlang.config)}catch(J0){console.warn(`Failed to read package.json for dependency ${K0}:`,J0.message)}return O1}catch(vv){throw console.error("Failed to read all configs from package.json:",vv),new Error(`Failed to read all configs: ${vv.message}`)}},[ca]);return{integrationData:wc,isLoadingIntegrations:xu,isErrorIntegrations:ff,integrationsError:jf,fetchIntegrations:rp,fetchIntegrationConnectionConfigs:gl,createIntegration:qm,deleteIntegration:Vm,updateIntegration:eg,addIntegrationToConfig:tg,removeIntegrationFromConfig:rg,readAllConfigsFromPackageJson:ig}},IS_PLAYGROUND$6=!1,IS_LOCAL_MODE$3=!0,useDeployments=()=>{const la=useQueryClient(),aa=useAppStore(ff=>ff.authReady),ca=useAppStore(ff=>ff.isAuthenticated),{data:ua,isLoading:Sa,isError:hl,error:pl,refetch:ml}=useQuery({queryKey:["deployments"],queryFn:async()=>(console.log("[SERVE_MODE] Skipping deployments fetch - returning empty object"),{}),enabled:aa&&ca&&!IS_PLAYGROUND$6&&!IS_LOCAL_MODE$3});hl&&pl&&y$b.error(pl?.response?.data?.reason||pl.message);const gl=reactExports.useCallback(async()=>{{console.log("[SERVE_MODE] Skipping deployments fetch");return}},[ml]),wc=reactExports.useCallback(async ff=>{try{if(IS_PLAYGROUND$6||IS_LOCAL_MODE$3)return console.log(`[${IS_PLAYGROUND$6?"PLAYGROUND":"SERVE_MODE"}] Skipping app deployment`),y$b.success(`App deployed successfully! (${IS_PLAYGROUND$6?"playground":"serve"} mode)`),{success:!0};const jf=await axiosInstance("deployment").post("/Deployment/DeployApp",ff);return y$b.success("App deployed successfully!"),la.invalidateQueries({queryKey:["deployments"]}),jf.data}catch(jf){throw y$b.error(jf?.response?.data?.reason||"Failed to deploy app"),jf}},[la]),xu=reactExports.useCallback(async ff=>{try{if(IS_PLAYGROUND$6||IS_LOCAL_MODE$3)return console.log(`[${IS_PLAYGROUND$6?"PLAYGROUND":"SERVE_MODE"}] Skipping app undeployment`),y$b.success(`App undeployed successfully! (${IS_PLAYGROUND$6?"playground":"serve"} mode)`),{success:!0};const jf=await axiosInstance("deployment").post("/Deployment/UndeployApp",ff);return y$b.success("App undeployed successfully!"),la.invalidateQueries({queryKey:["deployments"]}),jf.data}catch(jf){throw y$b.error(jf?.response?.data?.reason||"Failed to undeploy app"),jf}},[la]);return{deploymentsData:ua,isLoadingDeployments:Sa,isErrorDeployments:hl,deploymentsError:pl,fetchDeployments:gl,deployApp:wc,undeployApp:xu}};let globalInitializationState={isInitializing:!1,isInitialized:!1,error:null,retryCount:0,progress:{userLoaded:!1,workspaceLoaded:!1,dataLoaded:!1}};const listeners=new Set,updateGlobalState=la=>{globalInitializationState={...globalInitializationState,...la},listeners.forEach(aa=>aa(globalInitializationState))},useAppInitialization=()=>{const[la,aa]=reactExports.useState(globalInitializationState),ca=reactExports.useRef(!1),{setUser:ua,user:Sa,lastDataFetch:hl,setLastDataFetch:pl}=useAppStore(),ml=axiosInstance("meta"),{fetchWorkspaceApps:gl}=useTeams(),{fetchIntegrations:wc}=useIntegration(),{fetchDeployments:xu}=useDeployments(),{fetchLLMs:ff}=useLLM();reactExports.useEffect(()=>{const ig=vv=>{aa(vv)};return listeners.add(ig),()=>{listeners.delete(ig)}},[]);const jf=reactExports.useCallback(ig=>{const vv={...globalInitializationState,progress:{...globalInitializationState.progress,...ig}};updateGlobalState(vv)},[]),Uf=reactExports.useCallback(()=>{if(typeof window>"u")return!1;const ig=localStorage.getItem("agentlang-studio-store");if(!ig)return!1;try{const vv=JSON.parse(ig),R1=vv.state&&vv.state.user&&vv.state.user.Email,O1=vv.state&&vv.state.workspace&&vv.state.workspace.Id,K0=vv.state&&vv.state.lastDataFetch&&vv.state.lastDataFetch>0;return R1&&O1&&K0}catch(vv){return console.warn("Failed to parse cached store:",vv),!1}},[]),rp=reactExports.useCallback(()=>{if(hl===0)return!0;const ig=Date.now()-600*1e3;if(hl>ig)return!1;const vv=Date.now()-300*1e3;return hl<vv},[hl]),np=reactExports.useCallback(()=>{if(typeof window>"u")return!1;const ig=localStorage.getItem("agentlang-studio-store");if(!ig)return!1;try{const vv=JSON.parse(ig);if(vv.state&&vv.state.user&&vv.state.user.Email)return jf({userLoaded:!0}),!0}catch(vv){console.warn("Failed to parse cached store:",vv)}return!1},[jf]),qm=reactExports.useCallback(()=>{if(typeof window>"u")return!1;const ig=localStorage.getItem("workspace_id"),vv=localStorage.getItem("username");return ig&&vv?(jf({workspaceLoaded:!0}),!0):!1},[jf]),Vm=reactExports.useCallback(async(ig,vv,R1=!1)=>{{console.log("[DEV MODE] Skipping app data initialization - no API calls needed"),jf({dataLoaded:!0});return}},[gl,wc,xu,ff,jf,pl]),eg=reactExports.useCallback(async(ig=0)=>{if(!ca.current){console.log("[DEV MODE] Skipping app initialization - no API calls needed"),pl(Date.now()),updateGlobalState({isInitializing:!1,isInitialized:!0,retryCount:0,progress:{userLoaded:!0,workspaceLoaded:!0,dataLoaded:!0}}),y$b.success("App initialized in dev mode");return}},[ml,ua,Sa,Vm,jf,Uf,np,qm,rp,pl]),tg=reactExports.useCallback(()=>{updateGlobalState({retryCount:0}),ca.current=!1,eg()},[eg]),rg=reactExports.useCallback(()=>{updateGlobalState({isInitializing:!1,isInitialized:!1,error:null,retryCount:0,progress:{userLoaded:!1,workspaceLoaded:!1,dataLoaded:!1}}),ca.current=!1},[]);return reactExports.useEffect(()=>()=>{ca.current=!1},[]),{...la,initializeApp:eg,retryInitialization:tg,resetInitialization:rg}};var t$9=typeof window<"u"?window:void 0,i$a=typeof globalThis<"u"?globalThis:t$9;typeof self>"u"&&(i$a.self=i$a),typeof File>"u"&&(i$a.File=function(){});var e$a=Array.prototype,r$d=e$a.forEach,s$f=e$a.indexOf,n$9=i$a?.navigator,o$d=i$a?.document,a$i=i$a?.location,l$9=i$a?.fetch,u$h=i$a!=null&&i$a.XMLHttpRequest&&"withCredentials"in new i$a.XMLHttpRequest?i$a.XMLHttpRequest:void 0,h$c=i$a?.AbortController,d$6=n$9?.userAgent,v$7=t$9??{},c$e={DEBUG:!1,LIB_VERSION:"1.313.0"};function f$g(la,aa,ca,ua,Sa,hl,pl){try{var ml=la[hl](pl),gl=ml.value}catch(wc){return void ca(wc)}ml.done?aa(gl):Promise.resolve(gl).then(ua,Sa)}function p$c(la){return function(){var aa=this,ca=arguments;return new Promise((function(ua,Sa){var hl=la.apply(aa,ca);function pl(gl){f$g(hl,ua,Sa,pl,ml,"next",gl)}function ml(gl){f$g(hl,ua,Sa,pl,ml,"throw",gl)}pl(void 0)}))}}function g$8(){return g$8=Object.assign?Object.assign.bind():function(la){for(var aa=1;aa<arguments.length;aa++){var ca=arguments[aa];for(var ua in ca)({}).hasOwnProperty.call(ca,ua)&&(la[ua]=ca[ua])}return la},g$8.apply(null,arguments)}function _$7(la,aa){if(la==null)return{};var ca={};for(var ua in la)if({}.hasOwnProperty.call(la,ua)){if(aa.indexOf(ua)!==-1)continue;ca[ua]=la[ua]}return ca}var m$8=["amazonbot","amazonproductbot","app.hypefactors.com","applebot","archive.org_bot","awariobot","backlinksextendedbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","dataforseobot","deepscan","duckduckbot","facebookexternal","facebookcatalog","http://yandex.com/bots","hubspot","ia_archiver","leikibot","linkedinbot","meta-externalagent","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","sebot-wa","sitebulb","slackbot","slurp","trendictionbot","turnitin","twitterbot","vercel-screenshot","vercelbot","yahoo! slurp","yandexbot","zoombot","bot.htm","bot.php","(bot;","bot/","crawler","ahrefsbot","ahrefssiteaudit","semrushbot","siteauditbot","splitsignalbot","gptbot","oai-searchbot","chatgpt-user","perplexitybot","better uptime bot","sentryuptimebot","uptimerobot","headlesschrome","cypress","google-hoteladsverifier","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleother","google-cloudvertexbot","googleweblight","mediapartners-google","storebot-google","google-inspectiontool","bytespider"],y$a=function(la,aa){if(aa===void 0&&(aa=[]),!la)return!1;var ca=la.toLowerCase();return m$8.concat(aa).some((ua=>{var Sa=ua.toLowerCase();return ca.indexOf(Sa)!==-1}))},b$8=["$snapshot","$pageview","$pageleave","$set","survey dismissed","survey sent","survey shown","$identify","$groupidentify","$create_alias","$$client_ingestion_warning","$web_experiment_applied","$feature_enrollment_update","$feature_flag_called"];function w$9(la,aa){return la.indexOf(aa)!==-1}var x$6=function(la){return la.trim()},E$7=function(la){return la.replace(/^\$/,"")},S$a=Array.isArray,k$a=Object.prototype,P$9=k$a.hasOwnProperty,T$a=k$a.toString,I$8=S$a||function(la){return T$a.call(la)==="[object Array]"},C$c=la=>typeof la=="function",R$3=la=>la===Object(la)&&!I$8(la),F$8=la=>{if(R$3(la)){for(var aa in la)if(P$9.call(la,aa))return!1;return!0}return!1},M$6=la=>la===void 0,O$5=la=>T$a.call(la)=="[object String]",A$7=la=>O$5(la)&&la.trim().length===0,D$b=la=>la===null,j$a=la=>M$6(la)||D$b(la),L$6=la=>T$a.call(la)=="[object Number]",N$6=la=>T$a.call(la)==="[object Boolean]",U$4=la=>la instanceof FormData,z$5=la=>w$9(b$8,la);function H$9(la){return la===null||typeof la!="object"}function B$5(la,aa){return Object.prototype.toString.call(la)==="[object "+aa+"]"}function q$6(la){return!M$6(Event)&&(function(aa,ca){try{return aa instanceof ca}catch{return!1}})(la,Event)}var W$4=[!0,"true",1,"1","yes"],G$5=la=>w$9(W$4,la),V$7=[!1,"false",0,"0","no"];function J$5(la,aa,ca,ua,Sa){return aa>ca&&(ua.warn("min cannot be greater than max."),aa=ca),L$6(la)?la>ca?(ua.warn(" cannot be greater than max: "+ca+". Using max value instead."),ca):la<aa?(ua.warn(" cannot be less than min: "+aa+". Using min value instead."),aa):la:(ua.warn(" must be a number. using max or fallback. max: "+ca+", fallback: "+Sa),J$5(Sa||ca,aa,ca,ua))}let K$6=class{constructor(aa){this.t={},this.i=aa.i,this.o=J$5(aa.bucketSize,0,100,aa.h),this.m=J$5(aa.refillRate,0,this.o,aa.h),this.$=J$5(aa.refillInterval,0,864e5,aa.h)}S(aa,ca){var ua=ca-aa.lastAccess,Sa=Math.floor(ua/this.$);if(Sa>0){var hl=Sa*this.m;aa.tokens=Math.min(aa.tokens+hl,this.o),aa.lastAccess=aa.lastAccess+Sa*this.$}}consumeRateLimit(aa){var ca,ua=Date.now(),Sa=String(aa),hl=this.t[Sa];return hl?this.S(hl,ua):(hl={tokens:this.o,lastAccess:ua},this.t[Sa]=hl),hl.tokens===0||(hl.tokens--,hl.tokens===0&&((ca=this.i)==null||ca.call(this,aa)),hl.tokens===0)}stop(){this.t={}}};var Y$3="Mobile",X$4="iOS",Q$5="Android",Z$4="Tablet",tt$1=Q$5+" "+Z$4,it$1="iPad",et$1="Apple",rt$1=et$1+" Watch",st$1="Safari",nt$1="BlackBerry",ot$1="Samsung",at$1=ot$1+"Browser",lt$1=ot$1+" Internet",ut$1="Chrome",ht$1=ut$1+" OS",dt$2=ut$1+" "+X$4,vt$1="Internet Explorer",ct$1=vt$1+" "+Y$3,ft$1="Opera",pt$1=ft$1+" Mini",gt$2="Edge",_t$1="Microsoft "+gt$2,mt$1="Firefox",yt$1=mt$1+" "+X$4,bt="Nintendo",wt$1="PlayStation",xt="Xbox",Et$2=Q$5+" "+Y$3,$t=Y$3+" "+st$1,St$1="Windows",kt$1=St$1+" Phone",Pt$2="Nokia",Tt$1="Ouya",It$1="Generic",Ct$1=It$1+" "+Y$3.toLowerCase(),Rt$1=It$1+" "+Z$4.toLowerCase(),Ft$2="Konqueror",Mt$2="(\\d+(\\.\\d+)?)",Ot=new RegExp("Version/"+Mt$2),At$1=new RegExp(xt,"i"),Dt$1=new RegExp(wt$1+" \\w+","i"),jt=new RegExp(bt+" \\w+","i"),Lt=new RegExp(nt$1+"|PlayBook|BB10","i"),Nt={"NT3.51":"NT 3.11","NT4.0":"NT 4.0","5.0":"2000",5.1:"XP",5.2:"XP","6.0":"Vista",6.1:"7",6.2:"8",6.3:"8.1",6.4:"10","10.0":"10"},Ut,zt,Ht,Bt$1=(la,aa)=>aa&&w$9(aa,et$1)||(function(ca){return w$9(ca,st$1)&&!w$9(ca,ut$1)&&!w$9(ca,Q$5)})(la),qt=function(la,aa){return aa=aa||"",w$9(la," OPR/")&&w$9(la,"Mini")?pt$1:w$9(la," OPR/")?ft$1:Lt.test(la)?nt$1:w$9(la,"IE"+Y$3)||w$9(la,"WPDesktop")?ct$1:w$9(la,at$1)?lt$1:w$9(la,gt$2)||w$9(la,"Edg/")?_t$1:w$9(la,"FBIOS")?"Facebook "+Y$3:w$9(la,"UCWEB")||w$9(la,"UCBrowser")?"UC Browser":w$9(la,"CriOS")?dt$2:w$9(la,"CrMo")||w$9(la,ut$1)?ut$1:w$9(la,Q$5)&&w$9(la,st$1)?Et$2:w$9(la,"FxiOS")?yt$1:w$9(la.toLowerCase(),Ft$2.toLowerCase())?Ft$2:Bt$1(la,aa)?w$9(la,Y$3)?$t:st$1:w$9(la,mt$1)?mt$1:w$9(la,"MSIE")||w$9(la,"Trident/")?vt$1:w$9(la,"Gecko")?mt$1:""},Wt={[ct$1]:[new RegExp("rv:"+Mt$2)],[_t$1]:[new RegExp(gt$2+"?\\/"+Mt$2)],[ut$1]:[new RegExp("("+ut$1+"|CrMo)\\/"+Mt$2)],[dt$2]:[new RegExp("CriOS\\/"+Mt$2)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+Mt$2)],[st$1]:[Ot],[$t]:[Ot],[ft$1]:[new RegExp("(Opera|OPR)\\/"+Mt$2)],[mt$1]:[new RegExp(mt$1+"\\/"+Mt$2)],[yt$1]:[new RegExp("FxiOS\\/"+Mt$2)],[Ft$2]:[new RegExp("Konqueror[:/]?"+Mt$2,"i")],[nt$1]:[new RegExp(nt$1+" "+Mt$2),Ot],[Et$2]:[new RegExp("android\\s"+Mt$2,"i")],[lt$1]:[new RegExp(at$1+"\\/"+Mt$2)],[vt$1]:[new RegExp("(rv:|MSIE )"+Mt$2)],Mozilla:[new RegExp("rv:"+Mt$2)]},Gt=function(la,aa){var ca=qt(la,aa),ua=Wt[ca];if(M$6(ua))return null;for(var Sa=0;Sa<ua.length;Sa++){var hl=ua[Sa],pl=la.match(hl);if(pl)return parseFloat(pl[pl.length-2])}return null},Vt=[[new RegExp(xt+"; "+xt+" (.*?)[);]","i"),la=>[xt,la&&la[1]||""]],[new RegExp(bt,"i"),[bt,""]],[new RegExp(wt$1,"i"),[wt$1,""]],[Lt,[nt$1,""]],[new RegExp(St$1,"i"),(la,aa)=>{if(/Phone/.test(aa)||/WPDesktop/.test(aa))return[kt$1,""];if(new RegExp(Y$3).test(aa)&&!/IEMobile\b/.test(aa))return[St$1+" "+Y$3,""];var ca=/Windows NT ([0-9.]+)/i.exec(aa);if(ca&&ca[1]){var ua=ca[1],Sa=Nt[ua]||"";return/arm/i.test(aa)&&(Sa="RT"),[St$1,Sa]}return[St$1,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,la=>{if(la&&la[3]){var aa=[la[3],la[4],la[5]||"0"];return[X$4,aa.join(".")]}return[X$4,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,la=>{var aa="";return la&&la.length>=3&&(aa=M$6(la[2])?la[3]:la[2]),["watchOS",aa]}],[new RegExp("("+Q$5+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+Q$5+")","i"),la=>{if(la&&la[2]){var aa=[la[2],la[3],la[4]||"0"];return[Q$5,aa.join(".")]}return[Q$5,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,la=>{var aa=["Mac OS X",""];if(la&&la[1]){var ca=[la[1],la[2],la[3]||"0"];aa[1]=ca.join(".")}return aa}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[ht$1,""]],[/Linux|debian/i,["Linux",""]]],Jt=function(la){return jt.test(la)?bt:Dt$1.test(la)?wt$1:At$1.test(la)?xt:new RegExp(Tt$1,"i").test(la)?Tt$1:new RegExp("("+kt$1+"|WPDesktop)","i").test(la)?kt$1:/iPad/.test(la)?it$1:/iPod/.test(la)?"iPod Touch":/iPhone/.test(la)?"iPhone":/(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i.test(la)?rt$1:Lt.test(la)?nt$1:/(kobo)\s(ereader|touch)/i.test(la)?"Kobo":new RegExp(Pt$2,"i").test(la)?Pt$2:/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i.test(la)||/(kf[a-z]+)( bui|\)).+silk\//i.test(la)?"Kindle Fire":/(Android|ZTE)/i.test(la)?new RegExp(Y$3).test(la)&&!/(9138B|TB782B|Nexus [97]|pixel c|HUAWEISHT|BTV|noble nook|smart ultra 6)/i.test(la)||/pixel[\daxl ]{1,6}/i.test(la)&&!/pixel c/i.test(la)||/(huaweimed-al00|tah-|APA|SM-G92|i980|zte|U304AA)/i.test(la)||/lmy47v/i.test(la)&&!/QTAQZ3/i.test(la)?Q$5:tt$1:new RegExp("(pda|"+Y$3+")","i").test(la)?Ct$1:new RegExp(Z$4,"i").test(la)&&!new RegExp(Z$4+" pc","i").test(la)?Rt$1:""},Kt=la=>la instanceof Error;function Yt(la){var aa=globalThis._posthogChunkIds;if(aa){var ca=Object.keys(aa);return Ht&&ca.length===zt||(zt=ca.length,Ht=ca.reduce(((ua,Sa)=>{Ut||(Ut={});var hl=Ut[Sa];if(hl)ua[hl[0]]=hl[1];else for(var pl=la(Sa),ml=pl.length-1;ml>=0;ml--){var gl=pl[ml],wc=gl?.filename,xu=aa[Sa];if(wc&&xu){ua[wc]=xu,Ut[Sa]=[wc,xu];break}}return ua}),{})),Ht}}class Xt{constructor(aa,ca,ua){ua===void 0&&(ua=[]),this.coercers=aa,this.stackParser=ca,this.modifiers=ua}buildFromUnknown(aa,ca){ca===void 0&&(ca={});var ua=ca&&ca.mechanism||{handled:!0,type:"generic"},Sa=this.buildCoercingContext(ua,ca,0).apply(aa),hl=this.buildParsingContext(),pl=this.parseStacktrace(Sa,hl);return{$exception_list:this.convertToExceptionList(pl,ua),$exception_level:"error"}}modifyFrames(aa){var ca=this;return p$c((function*(){for(var ua of aa)ua.stacktrace&&ua.stacktrace.frames&&I$8(ua.stacktrace.frames)&&(ua.stacktrace.frames=yield ca.applyModifiers(ua.stacktrace.frames));return aa}))()}coerceFallback(aa){var ca;return{type:"Error",value:"Unknown error",stack:(ca=aa.syntheticException)==null?void 0:ca.stack,synthetic:!0}}parseStacktrace(aa,ca){var ua,Sa;return aa.cause!=null&&(ua=this.parseStacktrace(aa.cause,ca)),aa.stack!=""&&aa.stack!=null&&(Sa=this.applyChunkIds(this.stackParser(aa.stack,aa.synthetic?1:0),ca.chunkIdMap)),g$8({},aa,{cause:ua,stack:Sa})}applyChunkIds(aa,ca){return aa.map((ua=>(ua.filename&&ca&&(ua.chunk_id=ca[ua.filename]),ua)))}applyCoercers(aa,ca){for(var ua of this.coercers)if(ua.match(aa))return ua.coerce(aa,ca);return this.coerceFallback(ca)}applyModifiers(aa){var ca=this;return p$c((function*(){var ua=aa;for(var Sa of ca.modifiers)ua=yield Sa(ua);return ua}))()}convertToExceptionList(aa,ca){var ua,Sa,hl,pl={type:aa.type,value:aa.value,mechanism:{type:(ua=ca.type)!==null&&ua!==void 0?ua:"generic",handled:(Sa=ca.handled)===null||Sa===void 0||Sa,synthetic:(hl=aa.synthetic)!==null&&hl!==void 0&&hl}};aa.stack&&(pl.stacktrace={type:"raw",frames:aa.stack});var ml=[pl];return aa.cause!=null&&ml.push(...this.convertToExceptionList(aa.cause,g$8({},ca,{handled:!0}))),ml}buildParsingContext(){return{chunkIdMap:Yt(this.stackParser)}}buildCoercingContext(aa,ca,ua){ua===void 0&&(ua=0);var Sa=(hl,pl)=>{if(pl<=4){var ml=this.buildCoercingContext(aa,ca,pl);return this.applyCoercers(hl,ml)}};return g$8({},ca,{syntheticException:ua==0?ca.syntheticException:void 0,mechanism:aa,apply:hl=>Sa(hl,ua),next:hl=>Sa(hl,ua+1)})}}var Qt="?";function Zt(la,aa,ca,ua,Sa){var hl={platform:la,filename:aa,function:ca==="<anonymous>"?Qt:ca,in_app:!0};return M$6(ua)||(hl.lineno=ua),M$6(Sa)||(hl.colno=Sa),hl}var ti=(la,aa)=>{var ca=la.indexOf("safari-extension")!==-1,ua=la.indexOf("safari-web-extension")!==-1;return ca||ua?[la.indexOf("@")!==-1?la.split("@")[0]:Qt,ca?"safari-extension:"+aa:"safari-web-extension:"+aa]:[la,aa]},ii=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,ei=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,ri=/\((\S*)(?::(\d+))(?::(\d+))\)/,si=(la,aa)=>{var ca=ii.exec(la);if(ca){var[,ua,Sa,hl]=ca;return Zt(aa,ua,Qt,+Sa,+hl)}var pl=ei.exec(la);if(pl){if(pl[2]&&pl[2].indexOf("eval")===0){var ml=ri.exec(pl[2]);ml&&(pl[2]=ml[1],pl[3]=ml[2],pl[4]=ml[3])}var[gl,wc]=ti(pl[1]||Qt,pl[2]);return Zt(aa,wc,gl,pl[3]?+pl[3]:void 0,pl[4]?+pl[4]:void 0)}},ni=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,oi=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,ai=(la,aa)=>{var ca=ni.exec(la);if(ca){if(ca[3]&&ca[3].indexOf(" > eval")>-1){var ua=oi.exec(ca[3]);ua&&(ca[1]=ca[1]||"eval",ca[3]=ua[1],ca[4]=ua[2],ca[5]="")}var Sa=ca[3],hl=ca[1]||Qt;return[hl,Sa]=ti(hl,Sa),Zt(aa,Sa,hl,ca[4]?+ca[4]:void 0,ca[5]?+ca[5]:void 0)}},li=/\(error: (.*)\)/,ui=50;function hi(la){for(var aa=arguments.length,ca=new Array(aa>1?aa-1:0),ua=1;ua<aa;ua++)ca[ua-1]=arguments[ua];return function(Sa,hl){hl===void 0&&(hl=0);for(var pl=[],ml=Sa.split(`
|
|
19414
19414
|
`),gl=hl;gl<ml.length;gl++){var wc=ml[gl];if(!(wc.length>1024)){var xu=li.test(wc)?wc.replace(li,"$1"):wc;if(!xu.match(/\S*Error: /)){for(var ff of ca){var jf=ff(xu,la);if(jf){pl.push(jf);break}}if(pl.length>=ui)break}}}return(function(Uf){if(!Uf.length)return[];var rp=Array.from(Uf);return rp.reverse(),rp.slice(0,ui).map((np=>{return g$8({},np,{filename:np.filename||(qm=rp,qm[qm.length-1]||{}).filename,function:np.function||Qt});var qm}))})(pl)}}class di{match(aa){return this.isDOMException(aa)||this.isDOMError(aa)}coerce(aa,ca){var ua=O$5(aa.stack);return{type:this.getType(aa),value:this.getValue(aa),stack:ua?aa.stack:void 0,cause:aa.cause?ca.next(aa.cause):void 0,synthetic:!1}}getType(aa){return this.isDOMError(aa)?"DOMError":"DOMException"}getValue(aa){var ca=aa.name||(this.isDOMError(aa)?"DOMError":"DOMException");return aa.message?ca+": "+aa.message:ca}isDOMException(aa){return B$5(aa,"DOMException")}isDOMError(aa){return B$5(aa,"DOMError")}}class vi{match(aa){return(ca=>ca instanceof Error)(aa)}coerce(aa,ca){return{type:this.getType(aa),value:this.getMessage(aa,ca),stack:this.getStack(aa),cause:aa.cause?ca.next(aa.cause):void 0,synthetic:!1}}getType(aa){return aa.name||aa.constructor.name}getMessage(aa,ca){var ua=aa.message;return ua.error&&typeof ua.error.message=="string"?String(ua.error.message):String(ua)}getStack(aa){return aa.stacktrace||aa.stack||void 0}}class ci{constructor(){}match(aa){return B$5(aa,"ErrorEvent")&&aa.error!=null}coerce(aa,ca){var ua,Sa=ca.apply(aa.error);return Sa||{type:"ErrorEvent",value:aa.message,stack:(ua=ca.syntheticException)==null?void 0:ua.stack,synthetic:!0}}}var fi=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;class pi{match(aa){return typeof aa=="string"}coerce(aa,ca){var ua,[Sa,hl]=this.getInfos(aa);return{type:Sa??"Error",value:hl??aa,stack:(ua=ca.syntheticException)==null?void 0:ua.stack,synthetic:!0}}getInfos(aa){var ca="Error",ua=aa,Sa=aa.match(fi);return Sa&&(ca=Sa[1],ua=Sa[2]),[ca,ua]}}var gi=["fatal","error","warning","log","info","debug"];function _i(la,aa){aa===void 0&&(aa=40);var ca=Object.keys(la);if(ca.sort(),!ca.length)return"[object has no keys]";for(var ua=ca.length;ua>0;ua--){var Sa=ca.slice(0,ua).join(", ");if(!(Sa.length>aa))return ua===ca.length||Sa.length<=aa?Sa:Sa.slice(0,aa)+"..."}return""}class mi{match(aa){return typeof aa=="object"&&aa!==null}coerce(aa,ca){var ua,Sa=this.getErrorPropertyFromObject(aa);return Sa?ca.apply(Sa):{type:this.getType(aa),value:this.getValue(aa),stack:(ua=ca.syntheticException)==null?void 0:ua.stack,level:this.isSeverityLevel(aa.level)?aa.level:"error",synthetic:!0}}getType(aa){return q$6(aa)?aa.constructor.name:"Error"}getValue(aa){if("name"in aa&&typeof aa.name=="string"){var ca="'"+aa.name+"' captured as exception";return"message"in aa&&typeof aa.message=="string"&&(ca+=" with message: '"+aa.message+"'"),ca}if("message"in aa&&typeof aa.message=="string")return aa.message;var ua=this.getObjectClassName(aa);return(ua&&ua!=="Object"?"'"+ua+"'":"Object")+" captured as exception with keys: "+_i(aa)}isSeverityLevel(aa){return O$5(aa)&&!A$7(aa)&&gi.indexOf(aa)>=0}getErrorPropertyFromObject(aa){for(var ca in aa)if(Object.prototype.hasOwnProperty.call(aa,ca)){var ua=aa[ca];if(Kt(ua))return ua}}getObjectClassName(aa){try{var ca=Object.getPrototypeOf(aa);return ca?ca.constructor.name:void 0}catch{return}}}class yi{match(aa){return q$6(aa)}coerce(aa,ca){var ua,Sa=aa.constructor.name;return{type:Sa,value:Sa+" captured as exception with keys: "+_i(aa),stack:(ua=ca.syntheticException)==null?void 0:ua.stack,synthetic:!0}}}class bi{match(aa){return H$9(aa)}coerce(aa,ca){var ua;return{type:"Error",value:"Primitive value captured as exception: "+String(aa),stack:(ua=ca.syntheticException)==null?void 0:ua.stack,synthetic:!0}}}class wi{match(aa){return B$5(aa,"PromiseRejectionEvent")}coerce(aa,ca){var ua,Sa=this.getUnhandledRejectionReason(aa);return H$9(Sa)?{type:"UnhandledRejection",value:"Non-Error promise rejection captured with value: "+String(Sa),stack:(ua=ca.syntheticException)==null?void 0:ua.stack,synthetic:!0}:ca.apply(Sa)}getUnhandledRejectionReason(aa){if(H$9(aa))return aa;try{if("reason"in aa)return aa.reason;if("detail"in aa&&"reason"in aa.detail)return aa.detail.reason}catch{}return aa}}var xi=function(la,aa){var{debugEnabled:ca}=aa===void 0?{}:aa,ua={k:function(Sa){if(t$9&&(c$e.DEBUG||v$7.POSTHOG_DEBUG||ca)&&!M$6(t$9.console)&&t$9.console){for(var hl=("__rrweb_original__"in t$9.console[Sa])?t$9.console[Sa].__rrweb_original__:t$9.console[Sa],pl=arguments.length,ml=new Array(pl>1?pl-1:0),gl=1;gl<pl;gl++)ml[gl-1]=arguments[gl];hl(la,...ml)}},info:function(){for(var Sa=arguments.length,hl=new Array(Sa),pl=0;pl<Sa;pl++)hl[pl]=arguments[pl];ua.k("log",...hl)},warn:function(){for(var Sa=arguments.length,hl=new Array(Sa),pl=0;pl<Sa;pl++)hl[pl]=arguments[pl];ua.k("warn",...hl)},error:function(){for(var Sa=arguments.length,hl=new Array(Sa),pl=0;pl<Sa;pl++)hl[pl]=arguments[pl];ua.k("error",...hl)},critical:function(){for(var Sa=arguments.length,hl=new Array(Sa),pl=0;pl<Sa;pl++)hl[pl]=arguments[pl];console.error(la,...hl)},uninitializedWarning:Sa=>{ua.error("You must initialize PostHog before calling "+Sa)},createLogger:(Sa,hl)=>xi(la+" "+Sa,hl)};return ua},Ei=xi("[PostHog.js]"),$i=Ei.createLogger,Si=$i("[ExternalScriptsLoader]"),ki=(la,aa,ca)=>{if(la.config.disable_external_dependency_loading)return Si.warn(aa+" was requested but loading of external scripts is disabled."),ca("Loading of external scripts is disabled");var ua=o$d?.querySelectorAll("script");if(ua){for(var Sa,hl=function(){if(ua[pl].src===aa){var gl=ua[pl];return gl.__posthog_loading_callback_fired?{v:ca()}:(gl.addEventListener("load",(wc=>{gl.__posthog_loading_callback_fired=!0,ca(void 0,wc)})),gl.onerror=wc=>ca(wc),{v:void 0})}},pl=0;pl<ua.length;pl++)if(Sa=hl())return Sa.v}var ml=()=>{if(!o$d)return ca("document not found");var gl=o$d.createElement("script");if(gl.type="text/javascript",gl.crossOrigin="anonymous",gl.src=aa,gl.onload=ff=>{gl.__posthog_loading_callback_fired=!0,ca(void 0,ff)},gl.onerror=ff=>ca(ff),la.config.prepare_external_dependency_script&&(gl=la.config.prepare_external_dependency_script(gl)),!gl)return ca("prepare_external_dependency_script returned null");var wc,xu=o$d.querySelectorAll("body > script");xu.length>0?(wc=xu[0].parentNode)==null||wc.insertBefore(gl,xu[0]):o$d.body.appendChild(gl)};o$d!=null&&o$d.body?ml():o$d?.addEventListener("DOMContentLoaded",ml)};v$7.__PosthogExtensions__=v$7.__PosthogExtensions__||{},v$7.__PosthogExtensions__.loadExternalDependency=(la,aa,ca)=>{var ua="/static/"+aa+".js?v="+la.version;if(aa==="remote-config"&&(ua="/array/"+la.config.token+"/config.js"),aa==="toolbar"){var Sa=3e5;ua=ua+"&t="+Math.floor(Date.now()/Sa)*Sa}var hl=la.requestRouter.endpointFor("assets",ua);ki(la,hl,ca)},v$7.__PosthogExtensions__.loadSiteApp=(la,aa,ca)=>{var ua=la.requestRouter.endpointFor("api",aa);ki(la,ua,ca)};var Pi={};function Ti(la,aa,ca){if(I$8(la)){if(r$d&&la.forEach===r$d)la.forEach(aa,ca);else if("length"in la&&la.length===+la.length){for(var ua=0,Sa=la.length;ua<Sa;ua++)if(ua in la&&aa.call(ca,la[ua],ua)===Pi)return}}}function Ii(la,aa,ca){if(!j$a(la)){if(I$8(la))return Ti(la,aa,ca);if(U$4(la)){for(var ua of la.entries())if(aa.call(ca,ua[1],ua[0])===Pi)return}else for(var Sa in la)if(P$9.call(la,Sa)&&aa.call(ca,la[Sa],Sa)===Pi)return}}var Ci=function(la){for(var aa=arguments.length,ca=new Array(aa>1?aa-1:0),ua=1;ua<aa;ua++)ca[ua-1]=arguments[ua];return Ti(ca,(function(Sa){for(var hl in Sa)Sa[hl]!==void 0&&(la[hl]=Sa[hl])})),la},Ri=function(la){for(var aa=arguments.length,ca=new Array(aa>1?aa-1:0),ua=1;ua<aa;ua++)ca[ua-1]=arguments[ua];return Ti(ca,(function(Sa){Ti(Sa,(function(hl){la.push(hl)}))})),la};function Fi(la){for(var aa=Object.keys(la),ca=aa.length,ua=new Array(ca);ca--;)ua[ca]=[aa[ca],la[aa[ca]]];return ua}var Mi=function(la){try{return la()}catch{return}},Oi=function(la){return function(){try{for(var aa=arguments.length,ca=new Array(aa),ua=0;ua<aa;ua++)ca[ua]=arguments[ua];return la.apply(this,ca)}catch(Sa){Ei.critical("Implementation error. Please turn on debug mode and open a ticket on https://app.posthog.com/home#panel=support%3Asupport%3A."),Ei.critical(Sa)}}},Ai=function(la){var aa={};return Ii(la,(function(ca,ua){(O$5(ca)&&ca.length>0||L$6(ca))&&(aa[ua]=ca)})),aa};function Di(la,aa){return ca=la,ua=hl=>O$5(hl)&&!D$b(aa)?hl.slice(0,aa):hl,Sa=new Set,(function hl(pl,ml){return pl!==Object(pl)?ua?ua(pl,ml):pl:Sa.has(pl)?void 0:(Sa.add(pl),I$8(pl)?(gl=[],Ti(pl,(wc=>{gl.push(hl(wc))}))):(gl={},Ii(pl,((wc,xu)=>{Sa.has(wc)||(gl[xu]=hl(wc,xu))}))),gl);var gl})(ca);var ca,ua,Sa}var ji=["herokuapp.com","vercel.app","netlify.app"];function Li(la){var aa=la?.hostname;if(!O$5(aa))return!1;var ca=aa.split(".").slice(-2).join(".");for(var ua of ji)if(ca===ua)return!1;return!0}function Ni(la,aa){for(var ca=0;ca<la.length;ca++)if(aa(la[ca]))return la[ca]}function Ui(la,aa,ca,ua){var{capture:Sa=!1,passive:hl=!0}=ua??{};la?.addEventListener(aa,ca,{capture:Sa,passive:hl})}var zi="$people_distinct_id",Hi="__alias",Bi="__timers",qi="$autocapture_disabled_server_side",Wi="$heatmaps_enabled_server_side",Gi="$exception_capture_enabled_server_side",Vi="$error_tracking_suppression_rules",Ji="$error_tracking_capture_extension_exceptions",Ki="$web_vitals_enabled_server_side",Yi="$dead_clicks_enabled_server_side",Xi="$product_tours_enabled_server_side",Qi="$web_vitals_allowed_metrics",Zi="$session_recording_remote_config",te$4="$sesid",ie$3="$session_is_sampled",ee$4="$enabled_feature_flags",re$1="$early_access_features",se$3="$feature_flag_details",ne$2="$stored_person_properties",oe$2="$stored_group_properties",ae$3="$surveys",le$2="$flag_call_reported",ue$1="$user_state",he$3="$client_session_props",de$3="$capture_rate_limit",ve$2="$initial_campaign_params",ce$3="$initial_referrer_info",fe$2="$initial_person_info",pe$2="$epp",ge$3="__POSTHOG_TOOLBAR__",_e$1="$posthog_cookieless",me$2=[zi,Hi,"__cmpns",Bi,"$session_recording_enabled_server_side",Wi,te$4,ee$4,Vi,ue$1,re$1,se$3,oe$2,ne$2,ae$3,le$2,he$3,de$3,ve$2,ce$3,pe$2,fe$2,"$conversations_widget_session_id","$conversations_ticket_id","$conversations_widget_state","$conversations_user_traits"];function ye$3(la){return la instanceof Element&&(la.id===ge$3||!(la.closest==null||!la.closest(".toolbar-global-fade-container")))}function be$4(la){return!!la&&la.nodeType===1}function we$3(la,aa){return!!la&&!!la.tagName&&la.tagName.toLowerCase()===aa.toLowerCase()}function xe$1(la){return!!la&&la.nodeType===3}function Ee$2(la){return!!la&&la.nodeType===11}function $e(la){return la?x$6(la).split(/\s+/):[]}function Se$2(la){var aa=t$9?.location.href;return!!(aa&&la&&la.some((ca=>aa.match(ca))))}function ke$3(la){var aa="";switch(typeof la.className){case"string":aa=la.className;break;case"object":aa=(la.className&&"baseVal"in la.className?la.className.baseVal:null)||la.getAttribute("class")||"";break;default:aa=""}return $e(aa)}function Pe(la){return j$a(la)?null:x$6(la).split(/(\s+)/).filter((aa=>Je(aa))).join("").replace(/[\r\n]/g," ").replace(/[ ]+/g," ").substring(0,255)}function Te$2(la){var aa="";return Ue$1(la)&&!ze(la)&&la.childNodes&&la.childNodes.length&&Ii(la.childNodes,(function(ca){var ua;xe$1(ca)&&ca.textContent&&(aa+=(ua=Pe(ca.textContent))!==null&&ua!==void 0?ua:"")})),x$6(aa)}function Ie$1(la){return M$6(la.target)?la.srcElement||null:(aa=la.target)!=null&&aa.shadowRoot?la.composedPath()[0]||null:la.target||null;var aa}var Ce$3=["a","button","form","input","select","textarea","label"];function Re$1(la,aa){if(M$6(aa))return!0;var ca,ua=function(hl){if(aa.some((pl=>hl.matches(pl))))return{v:!0}};for(var Sa of la)if(ca=ua(Sa))return ca.v;return!1}function Fe$2(la){var aa=la.parentNode;return!(!aa||!be$4(aa))&&aa}var Me$2=["next","previous","prev",">","<"],Oe$5=10,Ae$1=[".ph-no-rageclick",".ph-no-capture"];function De$3(la,aa){if(!t$9||je$2(la))return!1;var ca,ua,Sa;if(N$6(aa)?(ca=!!aa&&Ae$1,ua=void 0):(ca=(Sa=aa?.css_selector_ignorelist)!==null&&Sa!==void 0?Sa:Ae$1,ua=aa?.content_ignorelist),ca===!1)return!1;var{targetElementList:hl}=Le$1(la,!1);return!(function(pl,ml){if(pl===!1||M$6(pl))return!1;var gl;if(pl===!0)gl=Me$2;else{if(!I$8(pl))return!1;if(pl.length>Oe$5)return Ei.error("[PostHog] content_ignorelist array cannot exceed "+Oe$5+" items. Use css_selector_ignorelist for more complex matching."),!1;gl=pl.map((wc=>wc.toLowerCase()))}return ml.some((wc=>{var{safeText:xu,ariaLabel:ff}=wc;return gl.some((jf=>xu.includes(jf)||ff.includes(jf)))}))})(ua,hl.map((pl=>{var ml;return{safeText:Te$2(pl).toLowerCase(),ariaLabel:((ml=pl.getAttribute("aria-label"))==null?void 0:ml.toLowerCase().trim())||""}})))&&!Re$1(hl,ca)}var je$2=la=>!la||we$3(la,"html")||!be$4(la),Le$1=(la,aa)=>{if(!t$9||je$2(la))return{parentIsUsefulElement:!1,targetElementList:[]};for(var ca=!1,ua=[la],Sa=la;Sa.parentNode&&!we$3(Sa,"body");)if(Ee$2(Sa.parentNode))ua.push(Sa.parentNode.host),Sa=Sa.parentNode.host;else{var hl=Fe$2(Sa);if(!hl)break;if(aa||Ce$3.indexOf(hl.tagName.toLowerCase())>-1)ca=!0;else{var pl=t$9.getComputedStyle(hl);pl&&pl.getPropertyValue("cursor")==="pointer"&&(ca=!0)}ua.push(hl),Sa=hl}return{parentIsUsefulElement:ca,targetElementList:ua}};function Ne$2(la,aa,ca,ua,Sa){var hl,pl,ml,gl;if(ca===void 0&&(ca=void 0),!t$9||je$2(la)||(hl=ca)!=null&&hl.url_allowlist&&!Se$2(ca.url_allowlist)||(pl=ca)!=null&&pl.url_ignorelist&&Se$2(ca.url_ignorelist))return!1;if((ml=ca)!=null&&ml.dom_event_allowlist){var wc=ca.dom_event_allowlist;if(wc&&!wc.some((rp=>aa.type===rp)))return!1}var{parentIsUsefulElement:xu,targetElementList:ff}=Le$1(la,ua);if(!(function(rp,np){var qm=np?.element_allowlist;if(M$6(qm))return!0;var Vm,eg=function(rg){if(qm.some((ig=>rg.tagName.toLowerCase()===ig)))return{v:!0}};for(var tg of rp)if(Vm=eg(tg))return Vm.v;return!1})(ff,ca)||!Re$1(ff,(gl=ca)==null?void 0:gl.css_selector_allowlist))return!1;var jf=t$9.getComputedStyle(la);if(jf&&jf.getPropertyValue("cursor")==="pointer"&&aa.type==="click")return!0;var Uf=la.tagName.toLowerCase();switch(Uf){case"html":return!1;case"form":return(Sa||["submit"]).indexOf(aa.type)>=0;case"input":case"select":case"textarea":return(Sa||["change","click"]).indexOf(aa.type)>=0;default:return xu?(Sa||["click"]).indexOf(aa.type)>=0:(Sa||["click"]).indexOf(aa.type)>=0&&(Ce$3.indexOf(Uf)>-1||la.getAttribute("contenteditable")==="true")}}function Ue$1(la){for(var aa=la;aa.parentNode&&!we$3(aa,"body");aa=aa.parentNode){var ca=ke$3(aa);if(w$9(ca,"ph-sensitive")||w$9(ca,"ph-no-capture"))return!1}if(w$9(ke$3(la),"ph-include"))return!0;var ua=la.type||"";if(O$5(ua))switch(ua.toLowerCase()){case"hidden":case"password":return!1}var Sa=la.name||la.id||"";return!(O$5(Sa)&&/^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i.test(Sa.replace(/[^a-zA-Z0-9]/g,"")))}function ze(la){return!!(we$3(la,"input")&&!["button","checkbox","submit","reset"].includes(la.type)||we$3(la,"select")||we$3(la,"textarea")||la.getAttribute("contenteditable")==="true")}var He$2="(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})",Be$1=new RegExp("^(?:"+He$2+")$"),qe=new RegExp(He$2),We$1="\\d{3}-?\\d{2}-?\\d{4}",Ge$1=new RegExp("^("+We$1+")$"),Ve$1=new RegExp("("+We$1+")");function Je(la,aa){return aa===void 0&&(aa=!0),!(j$a(la)||O$5(la)&&(la=x$6(la),(aa?Be$1:qe).test((la||"").replace(/[- ]/g,""))||(aa?Ge$1:Ve$1).test(la)))}function Ke$1(la){var aa=Te$2(la);return Je(aa=(aa+" "+Ye(la)).trim())?aa:""}function Ye(la){var aa="";return la&&la.childNodes&&la.childNodes.length&&Ii(la.childNodes,(function(ca){var ua;if(ca&&((ua=ca.tagName)==null?void 0:ua.toLowerCase())==="span")try{var Sa=Te$2(ca);aa=(aa+" "+Sa).trim(),ca.childNodes&&ca.childNodes.length&&(aa=(aa+" "+Ye(ca)).trim())}catch(hl){Ei.error("[AutoCapture]",hl)}})),aa}function Xe(la){return(function(aa){var ca=aa.map((ua=>{var Sa,hl,pl="";if(ua.tag_name&&(pl+=ua.tag_name),ua.attr_class)for(var ml of(ua.attr_class.sort(),ua.attr_class))pl+="."+ml.replace(/"/g,"");var gl=g$8({},ua.text?{text:ua.text}:{},{"nth-child":(Sa=ua.nth_child)!==null&&Sa!==void 0?Sa:0,"nth-of-type":(hl=ua.nth_of_type)!==null&&hl!==void 0?hl:0},ua.href?{href:ua.href}:{},ua.attr_id?{attr_id:ua.attr_id}:{},ua.attributes),wc={};return Fi(gl).sort(((xu,ff)=>{var[jf]=xu,[Uf]=ff;return jf.localeCompare(Uf)})).forEach((xu=>{var[ff,jf]=xu;return wc[Qe(ff.toString())]=Qe(jf.toString())})),pl+=":",pl+=Fi(wc).map((xu=>{var[ff,jf]=xu;return ff+'="'+jf+'"'})).join("")}));return ca.join(";")})((function(aa){return aa.map((ca=>{var ua,Sa,hl={text:(ua=ca.$el_text)==null?void 0:ua.slice(0,400),tag_name:ca.tag_name,href:(Sa=ca.attr__href)==null?void 0:Sa.slice(0,2048),attr_class:Ze$1(ca),attr_id:ca.attr__id,nth_child:ca.nth_child,nth_of_type:ca.nth_of_type,attributes:{}};return Fi(ca).filter((pl=>{var[ml]=pl;return ml.indexOf("attr__")===0})).forEach((pl=>{var[ml,gl]=pl;return hl.attributes[ml]=gl})),hl}))})(la))}function Qe(la){return la.replace(/"|\\"/g,'\\"')}function Ze$1(la){var aa=la.attr__class;return aa?I$8(aa)?aa:$e(aa):void 0}class tr{constructor(aa){this.disabled=aa===!1;var ca=R$3(aa)?aa:{};this.thresholdPx=ca.threshold_px||30,this.timeoutMs=ca.timeout_ms||1e3,this.clickCount=ca.click_count||3,this.clicks=[]}isRageClick(aa,ca,ua){if(this.disabled)return!1;var Sa=this.clicks[this.clicks.length-1];if(Sa&&Math.abs(aa-Sa.x)+Math.abs(ca-Sa.y)<this.thresholdPx&&ua-Sa.timestamp<this.timeoutMs){if(this.clicks.push({x:aa,y:ca,timestamp:ua}),this.clicks.length===this.clickCount)return!0}else this.clicks=[{x:aa,y:ca,timestamp:ua}];return!1}}var ir="$copy_autocapture",er=(function(la){return la.GZipJS="gzip-js",la.Base64="base64",la})({}),sr=la=>{var aa=o$d?.createElement("a");return M$6(aa)?null:(aa.href=la,aa)},nr=function(la,aa){var ca,ua;aa===void 0&&(aa="&");var Sa=[];return Ii(la,(function(hl,pl){M$6(hl)||M$6(pl)||pl==="undefined"||(ca=encodeURIComponent((ml=>ml instanceof File)(hl)?hl.name:hl.toString()),ua=encodeURIComponent(pl),Sa[Sa.length]=ua+"="+ca)})),Sa.join(aa)},or=function(la,aa){for(var ca,ua=((la.split("#")[0]||"").split(/\?(.*)/)[1]||"").replace(/^\?+/g,"").split("&"),Sa=0;Sa<ua.length;Sa++){var hl=ua[Sa].split("=");if(hl[0]===aa){ca=hl;break}}if(!I$8(ca)||ca.length<2)return"";var pl=ca[1];try{pl=decodeURIComponent(pl)}catch{Ei.error("Skipping decoding for malformed query param: "+pl)}return pl.replace(/\+/g," ")},ar=function(la,aa,ca){if(!la||!aa||!aa.length)return la;for(var ua=la.split("#"),Sa=ua[0]||"",hl=ua[1],pl=Sa.split("?"),ml=pl[1],gl=pl[0],wc=(ml||"").split("&"),xu=[],ff=0;ff<wc.length;ff++){var jf=wc[ff].split("=");I$8(jf)&&(aa.includes(jf[0])?xu.push(jf[0]+"="+ca):xu.push(wc[ff]))}var Uf=gl;return ml!=null&&(Uf+="?"+xu.join("&")),hl!=null&&(Uf+="#"+hl),Uf},lr=function(la,aa){var ca=la.match(new RegExp(aa+"=([^&]*)"));return ca?ca[1]:null},ur=$i("[AutoCapture]");function hr(la,aa){return aa.length>la?aa.slice(0,la)+"...":aa}function dr(la){if(la.previousElementSibling)return la.previousElementSibling;var aa=la;do aa=aa.previousSibling;while(aa&&!be$4(aa));return aa}function vr(la,aa,ca,ua){var Sa=la.tagName.toLowerCase(),hl={tag_name:Sa};Ce$3.indexOf(Sa)>-1&&!ca&&(Sa.toLowerCase()==="a"||Sa.toLowerCase()==="button"?hl.$el_text=hr(1024,Ke$1(la)):hl.$el_text=hr(1024,Te$2(la)));var pl=ke$3(la);pl.length>0&&(hl.classes=pl.filter((function(xu){return xu!==""}))),Ii(la.attributes,(function(xu){var ff;if((!ze(la)||["name","id","class","aria-label"].indexOf(xu.name)!==-1)&&(ua==null||!ua.includes(xu.name))&&!aa&&Je(xu.value)&&(ff=xu.name,!O$5(ff)||ff.substring(0,10)!=="_ngcontent"&&ff.substring(0,7)!=="_nghost")){var jf=xu.value;xu.name==="class"&&(jf=$e(jf).join(" ")),hl["attr__"+xu.name]=hr(1024,jf)}}));for(var ml=1,gl=1,wc=la;wc=dr(wc);)ml++,wc.tagName===la.tagName&&gl++;return hl.nth_child=ml,hl.nth_of_type=gl,hl}function cr(la,aa){for(var ca,ua,{e:Sa,maskAllElementAttributes:hl,maskAllText:pl,elementAttributeIgnoreList:ml,elementsChainAsString:gl}=aa,wc=[la],xu=la;xu.parentNode&&!we$3(xu,"body");)Ee$2(xu.parentNode)?(wc.push(xu.parentNode.host),xu=xu.parentNode.host):(wc.push(xu.parentNode),xu=xu.parentNode);var ff,jf=[],Uf={},rp=!1,np=!1;if(Ii(wc,(rg=>{var ig=Ue$1(rg);rg.tagName.toLowerCase()==="a"&&(rp=rg.getAttribute("href"),rp=ig&&rp&&Je(rp)&&rp),w$9(ke$3(rg),"ph-no-capture")&&(np=!0),jf.push(vr(rg,hl,pl,ml));var vv=(function(R1){if(!Ue$1(R1))return{};var O1={};return Ii(R1.attributes,(function(K0){if(K0.name&&K0.name.indexOf("data-ph-capture-attribute")===0){var J0=K0.name.replace("data-ph-capture-attribute-",""),Hw=K0.value;J0&&Hw&&Je(Hw)&&(O1[J0]=Hw)}})),O1})(rg);Ci(Uf,vv)})),np)return{props:{},explicitNoCapture:np};if(pl||(la.tagName.toLowerCase()==="a"||la.tagName.toLowerCase()==="button"?jf[0].$el_text=Ke$1(la):jf[0].$el_text=Te$2(la)),rp){var qm,Vm;jf[0].attr__href=rp;var eg=(qm=sr(rp))==null?void 0:qm.host,tg=t$9==null||(Vm=t$9.location)==null?void 0:Vm.host;eg&&tg&&eg!==tg&&(ff=rp)}return{props:Ci({$event_type:Sa.type,$ce_version:1},gl?{}:{$elements:jf},{$elements_chain:Xe(jf)},(ca=jf[0])!=null&&ca.$el_text?{$el_text:(ua=jf[0])==null?void 0:ua.$el_text}:{},ff&&Sa.type==="click"?{$external_click_url:ff}:{},Uf)}}class fr{constructor(aa){this.P=!1,this.T=null,this.I=!1,this.instance=aa,this.rageclicks=new tr(aa.config.rageclick),this.C=null}get R(){var aa,ca,ua=R$3(this.instance.config.autocapture)?this.instance.config.autocapture:{};return ua.url_allowlist=(aa=ua.url_allowlist)==null?void 0:aa.map((Sa=>new RegExp(Sa))),ua.url_ignorelist=(ca=ua.url_ignorelist)==null?void 0:ca.map((Sa=>new RegExp(Sa))),ua}F(){if(this.isBrowserSupported()){if(t$9&&o$d){var aa=ua=>{ua=ua||t$9?.event;try{this.M(ua)}catch(Sa){ur.error("Failed to capture event",Sa)}};if(Ui(o$d,"submit",aa,{capture:!0}),Ui(o$d,"change",aa,{capture:!0}),Ui(o$d,"click",aa,{capture:!0}),this.R.capture_copied_text){var ca=ua=>{ua=ua||t$9?.event,this.M(ua,ir)};Ui(o$d,"copy",ca,{capture:!0}),Ui(o$d,"cut",ca,{capture:!0})}}}else ur.info("Disabling Automatic Event Collection because this browser is not supported")}startIfEnabled(){this.isEnabled&&!this.P&&(this.F(),this.P=!0)}onRemoteConfig(aa){aa.elementsChainAsString&&(this.I=aa.elementsChainAsString),this.instance.persistence&&this.instance.persistence.register({[qi]:!!aa.autocapture_opt_out}),this.T=!!aa.autocapture_opt_out,this.startIfEnabled()}setElementSelectors(aa){this.C=aa}getElementSelectors(aa){var ca,ua=[];return(ca=this.C)==null||ca.forEach((Sa=>{var hl=o$d?.querySelectorAll(Sa);hl?.forEach((pl=>{aa===pl&&ua.push(Sa)}))})),ua}get isEnabled(){var aa,ca,ua=(aa=this.instance.persistence)==null?void 0:aa.props[qi],Sa=this.T;if(D$b(Sa)&&!N$6(ua)&&!this.instance.O())return!1;var hl=(ca=this.T)!==null&&ca!==void 0?ca:!!ua;return!!this.instance.config.autocapture&&!hl}M(aa,ca){if(ca===void 0&&(ca="$autocapture"),this.isEnabled){var ua,Sa=Ie$1(aa);xe$1(Sa)&&(Sa=Sa.parentNode||null),ca==="$autocapture"&&aa.type==="click"&&aa instanceof MouseEvent&&this.instance.config.rageclick&&(ua=this.rageclicks)!=null&&ua.isRageClick(aa.clientX,aa.clientY,aa.timeStamp||new Date().getTime())&&De$3(Sa,this.instance.config.rageclick)&&this.M(aa,"$rageclick");var hl=ca===ir;if(Sa&&Ne$2(Sa,aa,this.R,hl,hl?["copy","cut"]:void 0)){var{props:pl,explicitNoCapture:ml}=cr(Sa,{e:aa,maskAllElementAttributes:this.instance.config.mask_all_element_attributes,maskAllText:this.instance.config.mask_all_text,elementAttributeIgnoreList:this.R.element_attribute_ignorelist,elementsChainAsString:this.I});if(ml)return!1;var gl=this.getElementSelectors(Sa);if(gl&&gl.length>0&&(pl.$element_selectors=gl),ca===ir){var wc,xu=Pe(t$9==null||(wc=t$9.getSelection())==null?void 0:wc.toString()),ff=aa.type||"clipboard";if(!xu)return!1;pl.$selected_content=xu,pl.$copy_type=ff}return this.instance.capture(ca,pl),!0}}}isBrowserSupported(){return C$c(o$d?.querySelectorAll)}}Math.trunc||(Math.trunc=function(la){return la<0?Math.ceil(la):Math.floor(la)}),Number.isInteger||(Number.isInteger=function(la){return L$6(la)&&isFinite(la)&&Math.floor(la)===la});var pr="0123456789abcdef";class gr{constructor(aa){if(this.bytes=aa,aa.length!==16)throw new TypeError("not 128-bit length")}static fromFieldsV7(aa,ca,ua,Sa){if(!Number.isInteger(aa)||!Number.isInteger(ca)||!Number.isInteger(ua)||!Number.isInteger(Sa)||aa<0||ca<0||ua<0||Sa<0||aa>0xffffffffffff||ca>4095||ua>1073741823||Sa>4294967295)throw new RangeError("invalid field value");var hl=new Uint8Array(16);return hl[0]=aa/Math.pow(2,40),hl[1]=aa/Math.pow(2,32),hl[2]=aa/Math.pow(2,24),hl[3]=aa/Math.pow(2,16),hl[4]=aa/Math.pow(2,8),hl[5]=aa,hl[6]=112|ca>>>8,hl[7]=ca,hl[8]=128|ua>>>24,hl[9]=ua>>>16,hl[10]=ua>>>8,hl[11]=ua,hl[12]=Sa>>>24,hl[13]=Sa>>>16,hl[14]=Sa>>>8,hl[15]=Sa,new gr(hl)}toString(){for(var aa="",ca=0;ca<this.bytes.length;ca++)aa=aa+pr.charAt(this.bytes[ca]>>>4)+pr.charAt(15&this.bytes[ca]),ca!==3&&ca!==5&&ca!==7&&ca!==9||(aa+="-");if(aa.length!==36)throw new Error("Invalid UUIDv7 was generated");return aa}clone(){return new gr(this.bytes.slice(0))}equals(aa){return this.compareTo(aa)===0}compareTo(aa){for(var ca=0;ca<16;ca++){var ua=this.bytes[ca]-aa.bytes[ca];if(ua!==0)return Math.sign(ua)}return 0}}class _r{constructor(){this.A=0,this.D=0,this.j=new br}generate(){var aa=this.generateOrAbort();if(M$6(aa)){this.A=0;var ca=this.generateOrAbort();if(M$6(ca))throw new Error("Could not generate UUID after timestamp reset");return ca}return aa}generateOrAbort(){var aa=Date.now();if(aa>this.A)this.A=aa,this.L();else{if(!(aa+1e4>this.A))return;this.D++,this.D>4398046511103&&(this.A++,this.L())}return gr.fromFieldsV7(this.A,Math.trunc(this.D/Math.pow(2,30)),this.D&Math.pow(2,30)-1,this.j.nextUint32())}L(){this.D=1024*this.j.nextUint32()+(1023&this.j.nextUint32())}}var mr,yr=la=>{if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");for(var aa=0;aa<la.length;aa++)la[aa]=65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random());return la};t$9&&!M$6(t$9.crypto)&&crypto.getRandomValues&&(yr=la=>crypto.getRandomValues(la));class br{constructor(){this.N=new Uint32Array(8),this.U=1/0}nextUint32(){return this.U>=this.N.length&&(yr(this.N),this.U=0),this.N[this.U++]}}var wr=()=>xr().toString(),xr=()=>(mr||(mr=new _r)).generate(),Er="",$r=/[a-z0-9][a-z0-9-]+\.[a-z]{2,}$/i;function Sr(la,aa){if(aa){var ca=(function(Sa,hl){if(hl===void 0&&(hl=o$d),Er)return Er;if(!hl||["localhost","127.0.0.1"].includes(Sa))return"";for(var pl=Sa.split("."),ml=Math.min(pl.length,8),gl="dmn_chk_"+wr();!Er&&ml--;){var wc=pl.slice(ml).join("."),xu=gl+"=1;domain=."+wc+";path=/";hl.cookie=xu+";max-age=3",hl.cookie.includes(gl)&&(hl.cookie=xu+";max-age=0",Er=wc)}return Er})(la);if(!ca){var ua=(Sa=>{var hl=Sa.match($r);return hl?hl[0]:""})(la);ua!==ca&&Ei.info("Warning: cookie subdomain discovery mismatch",ua,ca),ca=ua}return ca?"; domain=."+ca:""}return""}var kr={H:()=>!!o$d,B:function(la){Ei.error("cookieStore error: "+la)},q:function(la){if(o$d){try{for(var aa=la+"=",ca=o$d.cookie.split(";").filter((hl=>hl.length)),ua=0;ua<ca.length;ua++){for(var Sa=ca[ua];Sa.charAt(0)==" ";)Sa=Sa.substring(1,Sa.length);if(Sa.indexOf(aa)===0)return decodeURIComponent(Sa.substring(aa.length,Sa.length))}}catch{}return null}},W:function(la){var aa;try{aa=JSON.parse(kr.q(la))||{}}catch{}return aa},G:function(la,aa,ca,ua,Sa){if(o$d)try{var hl="",pl="",ml=Sr(o$d.location.hostname,ua);if(ca){var gl=new Date;gl.setTime(gl.getTime()+24*ca*60*60*1e3),hl="; expires="+gl.toUTCString()}Sa&&(pl="; secure");var wc=la+"="+encodeURIComponent(JSON.stringify(aa))+hl+"; SameSite=Lax; path=/"+ml+pl;return wc.length>3686.4&&Ei.warn("cookieStore warning: large cookie, len="+wc.length),o$d.cookie=wc,wc}catch{return}},V:function(la,aa){if(o$d!=null&&o$d.cookie)try{kr.G(la,"",-1,aa)}catch{return}}},Pr=null,Tr={H:function(){if(!D$b(Pr))return Pr;var la=!0;if(M$6(t$9))la=!1;else try{var aa="__mplssupport__";Tr.G(aa,"xyz"),Tr.q(aa)!=='"xyz"'&&(la=!1),Tr.V(aa)}catch{la=!1}return la||Ei.error("localStorage unsupported; falling back to cookie store"),Pr=la,la},B:function(la){Ei.error("localStorage error: "+la)},q:function(la){try{return t$9?.localStorage.getItem(la)}catch(aa){Tr.B(aa)}return null},W:function(la){try{return JSON.parse(Tr.q(la))||{}}catch{}return null},G:function(la,aa){try{t$9?.localStorage.setItem(la,JSON.stringify(aa))}catch(ca){Tr.B(ca)}},V:function(la){try{t$9?.localStorage.removeItem(la)}catch(aa){Tr.B(aa)}}},Ir=["$device_id","distinct_id",te$4,ie$3,pe$2,fe$2],Cr={},Rr={H:function(){return!0},B:function(la){Ei.error("memoryStorage error: "+la)},q:function(la){return Cr[la]||null},W:function(la){return Cr[la]||null},G:function(la,aa){Cr[la]=aa},V:function(la){delete Cr[la]}},Fr=null,Mr={H:function(){if(!D$b(Fr))return Fr;if(Fr=!0,M$6(t$9))Fr=!1;else try{var la="__support__";Mr.G(la,"xyz"),Mr.q(la)!=='"xyz"'&&(Fr=!1),Mr.V(la)}catch{Fr=!1}return Fr},B:function(la){Ei.error("sessionStorage error: ",la)},q:function(la){try{return t$9?.sessionStorage.getItem(la)}catch(aa){Mr.B(aa)}return null},W:function(la){try{return JSON.parse(Mr.q(la))||null}catch{}return null},G:function(la,aa){try{t$9?.sessionStorage.setItem(la,JSON.stringify(aa))}catch(ca){Mr.B(ca)}},V:function(la){try{t$9?.sessionStorage.removeItem(la)}catch(aa){Mr.B(aa)}}},Or=(function(la){return la[la.PENDING=-1]="PENDING",la[la.DENIED=0]="DENIED",la[la.GRANTED=1]="GRANTED",la})({});class Ar{constructor(aa){this._instance=aa}get R(){return this._instance.config}get consent(){return this.J()?Or.DENIED:this.K}isOptedOut(){return this.R.cookieless_mode==="always"||this.consent===Or.DENIED||this.consent===Or.PENDING&&(this.R.opt_out_capturing_by_default||this.R.cookieless_mode==="on_reject")}isOptedIn(){return!this.isOptedOut()}isExplicitlyOptedOut(){return this.consent===Or.DENIED}optInOut(aa){this.Y.G(this.X,aa?1:0,this.R.cookie_expiration,this.R.cross_subdomain_cookie,this.R.secure_cookie)}reset(){this.Y.V(this.X,this.R.cross_subdomain_cookie)}get X(){var{token:aa,opt_out_capturing_cookie_prefix:ca,consent_persistence_name:ua}=this._instance.config;return ua||(ca?ca+aa:"__ph_opt_in_out_"+aa)}get K(){var aa=this.Y.q(this.X);return G$5(aa)?Or.GRANTED:w$9(V$7,aa)?Or.DENIED:Or.PENDING}get Y(){if(!this.Z){var aa=this.R.opt_out_capturing_persistence_type;this.Z=aa==="localStorage"?Tr:kr;var ca=aa==="localStorage"?kr:Tr;ca.q(this.X)&&(this.Z.q(this.X)||this.optInOut(G$5(ca.q(this.X))),ca.V(this.X,this.R.cross_subdomain_cookie))}return this.Z}J(){return!!this.R.respect_dnt&&!!Ni([n$9?.doNotTrack,n$9?.msDoNotTrack,v$7.doNotTrack],(aa=>G$5(aa)))}}var Dr=$i("[Dead Clicks]"),jr=()=>!0,Lr=la=>{var aa,ca=!((aa=la.instance.persistence)==null||!aa.get_property(Yi)),ua=la.instance.config.capture_dead_clicks;return N$6(ua)?ua:!!R$3(ua)||ca};class Nr{get lazyLoadedDeadClicksAutocapture(){return this.tt}constructor(aa,ca,ua){this.instance=aa,this.isEnabled=ca,this.onCapture=ua,this.startIfEnabled()}onRemoteConfig(aa){this.instance.persistence&&this.instance.persistence.register({[Yi]:aa?.captureDeadClicks}),this.startIfEnabled()}startIfEnabled(){this.isEnabled(this)&&this.it((()=>{this.et()}))}it(aa){var ca,ua;(ca=v$7.__PosthogExtensions__)!=null&&ca.initDeadClicksAutocapture&&aa(),(ua=v$7.__PosthogExtensions__)==null||ua.loadExternalDependency==null||ua.loadExternalDependency(this.instance,"dead-clicks-autocapture",(Sa=>{Sa?Dr.error("failed to load script",Sa):aa()}))}et(){var aa;if(o$d){if(!this.tt&&(aa=v$7.__PosthogExtensions__)!=null&&aa.initDeadClicksAutocapture){var ca=R$3(this.instance.config.capture_dead_clicks)?this.instance.config.capture_dead_clicks:{};ca.__onCapture=this.onCapture,this.tt=v$7.__PosthogExtensions__.initDeadClicksAutocapture(this.instance,ca),this.tt.start(o$d),Dr.info("starting...")}}else Dr.error("`document` not found. Cannot start.")}stop(){this.tt&&(this.tt.stop(),this.tt=void 0,Dr.info("stopping..."))}}var Ur=$i("[ExceptionAutocapture]");class zr{constructor(aa){var ca,ua,Sa;this.rt=()=>{var hl;if(t$9&&this.isEnabled&&(hl=v$7.__PosthogExtensions__)!=null&&hl.errorWrappingFunctions){var pl=v$7.__PosthogExtensions__.errorWrappingFunctions.wrapOnError,ml=v$7.__PosthogExtensions__.errorWrappingFunctions.wrapUnhandledRejection,gl=v$7.__PosthogExtensions__.errorWrappingFunctions.wrapConsoleError;try{!this.st&&this.R.capture_unhandled_errors&&(this.st=pl(this.captureException.bind(this))),!this.nt&&this.R.capture_unhandled_rejections&&(this.nt=ml(this.captureException.bind(this))),!this.ot&&this.R.capture_console_errors&&(this.ot=gl(this.captureException.bind(this)))}catch(wc){Ur.error("failed to start",wc),this.ut()}}},this._instance=aa,this.ht=!((ca=this._instance.persistence)==null||!ca.props[Gi]),this.dt=new K$6({refillRate:(ua=this._instance.config.error_tracking.__exceptionRateLimiterRefillRate)!==null&&ua!==void 0?ua:1,bucketSize:(Sa=this._instance.config.error_tracking.__exceptionRateLimiterBucketSize)!==null&&Sa!==void 0?Sa:10,refillInterval:1e4,h:Ur}),this.R=this.vt(),this.startIfEnabledOrStop()}vt(){var aa=this._instance.config.capture_exceptions,ca={capture_unhandled_errors:!1,capture_unhandled_rejections:!1,capture_console_errors:!1};return R$3(aa)?ca=g$8({},ca,aa):(M$6(aa)?this.ht:aa)&&(ca=g$8({},ca,{capture_unhandled_errors:!0,capture_unhandled_rejections:!0})),ca}get isEnabled(){return this.R.capture_console_errors||this.R.capture_unhandled_errors||this.R.capture_unhandled_rejections}startIfEnabledOrStop(){this.isEnabled?(Ur.info("enabled"),this.ut(),this.it(this.rt)):this.ut()}it(aa){var ca,ua;(ca=v$7.__PosthogExtensions__)!=null&&ca.errorWrappingFunctions&&aa(),(ua=v$7.__PosthogExtensions__)==null||ua.loadExternalDependency==null||ua.loadExternalDependency(this._instance,"exception-autocapture",(Sa=>{if(Sa)return Ur.error("failed to load script",Sa);aa()}))}ut(){var aa,ca,ua;(aa=this.st)==null||aa.call(this),this.st=void 0,(ca=this.nt)==null||ca.call(this),this.nt=void 0,(ua=this.ot)==null||ua.call(this),this.ot=void 0}onRemoteConfig(aa){var ca=aa.autocaptureExceptions;this.ht=!!ca||!1,this._instance.persistence&&this._instance.persistence.register({[Gi]:this.ht}),this.R=this.vt(),this.startIfEnabledOrStop()}onConfigChange(){this.R=this.vt()}captureException(aa){var ca,ua,Sa=(ca=aa==null||(ua=aa.$exception_list)==null||(ua=ua[0])==null?void 0:ua.type)!==null&&ca!==void 0?ca:"Exception";this.dt.consumeRateLimit(Sa)?Ur.info("Skipping exception capture because of client rate limiting.",{exception:Sa}):this._instance.exceptions.sendExceptionEvent(aa)}}function Hr(la,aa,ca){try{if(!(aa in la))return()=>{};var ua=la[aa],Sa=ca(ua);return C$c(Sa)&&(Sa.prototype=Sa.prototype||{},Object.defineProperties(Sa,{__posthog_wrapped__:{enumerable:!1,value:!0}})),la[aa]=Sa,()=>{la[aa]=ua}}catch{return()=>{}}}class Br{constructor(aa){var ca;this._instance=aa,this.ct=(t$9==null||(ca=t$9.location)==null?void 0:ca.pathname)||""}get isEnabled(){return this._instance.config.capture_pageview==="history_change"}startIfEnabled(){this.isEnabled&&(Ei.info("History API monitoring enabled, starting..."),this.monitorHistoryChanges())}stop(){this.ft&&this.ft(),this.ft=void 0,Ei.info("History API monitoring stopped")}monitorHistoryChanges(){var aa,ca;if(t$9&&t$9.history){var ua=this;(aa=t$9.history.pushState)!=null&&aa.__posthog_wrapped__||Hr(t$9.history,"pushState",(Sa=>function(hl,pl,ml){Sa.call(this,hl,pl,ml),ua._t("pushState")})),(ca=t$9.history.replaceState)!=null&&ca.__posthog_wrapped__||Hr(t$9.history,"replaceState",(Sa=>function(hl,pl,ml){Sa.call(this,hl,pl,ml),ua._t("replaceState")})),this.yt()}}_t(aa){try{var ca,ua=t$9==null||(ca=t$9.location)==null?void 0:ca.pathname;if(!ua)return;ua!==this.ct&&this.isEnabled&&this._instance.capture("$pageview",{navigation_type:aa}),this.ct=ua}catch(Sa){Ei.error("Error capturing "+aa+" pageview",Sa)}}yt(){if(!this.ft){var aa=()=>{this._t("popstate")};Ui(t$9,"popstate",aa),this.ft=()=>{t$9&&t$9.removeEventListener("popstate",aa)}}}}var qr=$i("[SegmentIntegration]");function Wr(la,aa){var ca=la.config.segment;if(!ca)return aa();(function(ua,Sa){var hl=ua.config.segment;if(!hl)return Sa();var pl=gl=>{var wc=()=>gl.anonymousId()||wr();ua.config.get_device_id=wc,gl.id()&&(ua.register({distinct_id:gl.id(),$device_id:wc()}),ua.persistence.set_property(ue$1,"identified")),Sa()},ml=hl.user();"then"in ml&&C$c(ml.then)?ml.then((gl=>pl(gl))):pl(ml)})(la,(()=>{ca.register((ua=>{Promise&&Promise.resolve||qr.warn("This browser does not have Promise support, and can not use the segment integration");var Sa=(hl,pl)=>{if(!pl)return hl;hl.event.userId||hl.event.anonymousId===ua.get_distinct_id()||(qr.info("No userId set, resetting PostHog"),ua.reset()),hl.event.userId&&hl.event.userId!==ua.get_distinct_id()&&(qr.info("UserId set, identifying with PostHog"),ua.identify(hl.event.userId));var ml=ua.calculateEventProperties(pl,hl.event.properties);return hl.event.properties=Object.assign({},ml,hl.event.properties),hl};return{name:"PostHog JS",type:"enrichment",version:"1.0.0",isLoaded:()=>!0,load:()=>Promise.resolve(),track:hl=>Sa(hl,hl.event.event),page:hl=>Sa(hl,"$pageview"),identify:hl=>Sa(hl,"$identify"),screen:hl=>Sa(hl,"$screen")}})(la)).then((()=>{aa()}))}))}var Gr="posthog-js";function Vr(la,aa){var{organization:ca,projectId:ua,prefix:Sa,severityAllowList:hl=["error"],sendExceptionsToPostHog:pl=!0}=aa===void 0?{}:aa;return ml=>{var gl,wc,xu,ff,jf;if(!(hl==="*"||hl.includes(ml.level))||!la.__loaded)return ml;ml.tags||(ml.tags={});var Uf=la.requestRouter.endpointFor("ui","/project/"+la.config.token+"/person/"+la.get_distinct_id());ml.tags["PostHog Person URL"]=Uf,la.sessionRecordingStarted()&&(ml.tags["PostHog Recording URL"]=la.get_session_replay_url({withTimestamp:!0}));var rp=((gl=ml.exception)==null?void 0:gl.values)||[],np=rp.map((Vm=>g$8({},Vm,{stacktrace:Vm.stacktrace?g$8({},Vm.stacktrace,{type:"raw",frames:(Vm.stacktrace.frames||[]).map((eg=>g$8({},eg,{platform:"web:javascript"})))}):void 0}))),qm={$exception_message:((wc=rp[0])==null?void 0:wc.value)||ml.message,$exception_type:(xu=rp[0])==null?void 0:xu.type,$exception_level:ml.level,$exception_list:np,$sentry_event_id:ml.event_id,$sentry_exception:ml.exception,$sentry_exception_message:((ff=rp[0])==null?void 0:ff.value)||ml.message,$sentry_exception_type:(jf=rp[0])==null?void 0:jf.type,$sentry_tags:ml.tags};return ca&&ua&&(qm.$sentry_url=(Sa||"https://sentry.io/organizations/")+ca+"/issues/?project="+ua+"&query="+ml.event_id),pl&&la.exceptions.sendExceptionEvent(qm),ml}}class Jr{constructor(aa,ca,ua,Sa,hl,pl){this.name=Gr,this.setupOnce=function(ml){ml(Vr(aa,{organization:ca,projectId:ua,prefix:Sa,severityAllowList:hl,sendExceptionsToPostHog:pl==null||pl}))}}}var Kr=t$9!=null&&t$9.location?lr(t$9.location.hash,"__posthog")||lr(location.hash,"state"):null,Yr="_postHogToolbarParams",Xr=$i("[Toolbar]"),Qr=(function(la){return la[la.UNINITIALIZED=0]="UNINITIALIZED",la[la.LOADING=1]="LOADING",la[la.LOADED=2]="LOADED",la})(Qr||{});class Zr{constructor(aa){this.instance=aa}bt(aa){v$7.ph_toolbar_state=aa}wt(){var aa;return(aa=v$7.ph_toolbar_state)!==null&&aa!==void 0?aa:Qr.UNINITIALIZED}maybeLoadToolbar(aa,ca,ua){if(aa===void 0&&(aa=void 0),ca===void 0&&(ca=void 0),ua===void 0&&(ua=void 0),!t$9||!o$d)return!1;aa=aa??t$9.location,ua=ua??t$9.history;try{if(!ca){try{t$9.localStorage.setItem("test","test"),t$9.localStorage.removeItem("test")}catch{return!1}ca=t$9?.localStorage}var Sa,hl=Kr||lr(aa.hash,"__posthog")||lr(aa.hash,"state"),pl=hl?Mi((()=>JSON.parse(atob(decodeURIComponent(hl)))))||Mi((()=>JSON.parse(decodeURIComponent(hl)))):null;return pl&&pl.action==="ph_authorize"?((Sa=pl).source="url",Sa&&Object.keys(Sa).length>0&&(pl.desiredHash?aa.hash=pl.desiredHash:ua?ua.replaceState(ua.state,"",aa.pathname+aa.search):aa.hash="")):((Sa=JSON.parse(ca.getItem(Yr)||"{}")).source="localstorage",delete Sa.userIntent),!(!Sa.token||this.instance.config.token!==Sa.token)&&(this.loadToolbar(Sa),!0)}catch{return!1}}xt(aa){var ca=v$7.ph_load_toolbar||v$7.ph_load_editor;!j$a(ca)&&C$c(ca)?ca(aa,this.instance):Xr.warn("No toolbar load function found")}loadToolbar(aa){var ca=!(o$d==null||!o$d.getElementById(ge$3));if(!t$9||ca)return!1;var ua=this.instance.requestRouter.region==="custom"&&this.instance.config.advanced_disable_toolbar_metrics,Sa=g$8({token:this.instance.config.token},aa,{apiURL:this.instance.requestRouter.endpointFor("ui")},ua?{instrument:!1}:{});if(t$9.localStorage.setItem(Yr,JSON.stringify(g$8({},Sa,{source:void 0}))),this.wt()===Qr.LOADED)this.xt(Sa);else if(this.wt()===Qr.UNINITIALIZED){var hl;this.bt(Qr.LOADING),(hl=v$7.__PosthogExtensions__)==null||hl.loadExternalDependency==null||hl.loadExternalDependency(this.instance,"toolbar",(pl=>{if(pl)return Xr.error("[Toolbar] Failed to load",pl),void this.bt(Qr.UNINITIALIZED);this.bt(Qr.LOADED),this.xt(Sa)})),Ui(t$9,"turbolinks:load",(()=>{this.bt(Qr.UNINITIALIZED),this.loadToolbar(Sa)}))}return!0}Et(aa){return this.loadToolbar(aa)}maybeLoadEditor(aa,ca,ua){return aa===void 0&&(aa=void 0),ca===void 0&&(ca=void 0),ua===void 0&&(ua=void 0),this.maybeLoadToolbar(aa,ca,ua)}}var ts=$i("[TracingHeaders]");class is{constructor(aa){this.$t=void 0,this.St=void 0,this.rt=()=>{var ca,ua;M$6(this.$t)&&((ca=v$7.__PosthogExtensions__)==null||(ca=ca.tracingHeadersPatchFns)==null||ca._patchXHR(this._instance.config.__add_tracing_headers||[],this._instance.get_distinct_id(),this._instance.sessionManager)),M$6(this.St)&&((ua=v$7.__PosthogExtensions__)==null||(ua=ua.tracingHeadersPatchFns)==null||ua._patchFetch(this._instance.config.__add_tracing_headers||[],this._instance.get_distinct_id(),this._instance.sessionManager))},this._instance=aa}it(aa){var ca,ua;(ca=v$7.__PosthogExtensions__)!=null&&ca.tracingHeadersPatchFns&&aa(),(ua=v$7.__PosthogExtensions__)==null||ua.loadExternalDependency==null||ua.loadExternalDependency(this._instance,"tracing-headers",(Sa=>{if(Sa)return ts.error("failed to load script",Sa);aa()}))}startIfEnabledOrStop(){var aa,ca;this._instance.config.__add_tracing_headers?this.it(this.rt):((aa=this.$t)==null||aa.call(this),(ca=this.St)==null||ca.call(this),this.$t=void 0,this.St=void 0)}}var es="https?://(.*)",rs=["gclid","gclsrc","dclid","gbraid","wbraid","fbclid","msclkid","twclid","li_fat_id","igshid","ttclid","rdt_cid","epik","qclid","sccid","irclid","_kx"],ss=Ri(["utm_source","utm_medium","utm_campaign","utm_content","utm_term","gad_source","mc_cid"],rs),ns="<masked>",os=["li_fat_id"];function as(la,aa,ca){if(!o$d)return{};var ua,Sa=aa?Ri([],rs,ca||[]):[],hl=ls(ar(o$d.URL,Sa,ns),la),pl=(ua={},Ii(os,(function(ml){var gl=kr.q(ml);ua[ml]=gl||null})),ua);return Ci(pl,hl)}function ls(la,aa){var ca=ss.concat(aa||[]),ua={};return Ii(ca,(function(Sa){var hl=or(la,Sa);ua[Sa]=hl||null})),ua}function us(la){var aa=(function(hl){return hl?hl.search(es+"google.([^/?]*)")===0?"google":hl.search(es+"bing.com")===0?"bing":hl.search(es+"yahoo.com")===0?"yahoo":hl.search(es+"duckduckgo.com")===0?"duckduckgo":null:null})(la),ca=aa!="yahoo"?"q":"p",ua={};if(!D$b(aa)){ua.$search_engine=aa;var Sa=o$d?or(o$d.referrer,ca):"";Sa.length&&(ua.ph_keyword=Sa)}return ua}function hs(){return navigator.language||navigator.userLanguage}function ds(){return o$d?.referrer||"$direct"}function vs(la,aa){var ca=la?Ri([],rs,aa||[]):[],ua=a$i?.href.substring(0,1e3);return{r:ds().substring(0,1e3),u:ua?ar(ua,ca,ns):void 0}}function cs(la){var aa,{r:ca,u:ua}=la,Sa={$referrer:ca,$referring_domain:ca==null?void 0:ca=="$direct"?"$direct":(aa=sr(ca))==null?void 0:aa.host};if(ua){Sa.$current_url=ua;var hl=sr(ua);Sa.$host=hl?.host,Sa.$pathname=hl?.pathname;var pl=ls(ua);Ci(Sa,pl)}if(ca){var ml=us(ca);Ci(Sa,ml)}return Sa}function fs(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function ps(){try{return new Date().getTimezoneOffset()}catch{return}}function gs(la,aa){if(!d$6)return{};var ca,ua,Sa,hl=la?Ri([],rs,aa||[]):[],[pl,ml]=(function(gl){for(var wc=0;wc<Vt.length;wc++){var[xu,ff]=Vt[wc],jf=xu.exec(gl),Uf=jf&&(C$c(ff)?ff(jf,gl):ff);if(Uf)return Uf}return["",""]})(d$6);return Ci(Ai({$os:pl,$os_version:ml,$browser:qt(d$6,navigator.vendor),$device:Jt(d$6),$device_type:(ua=d$6,Sa=Jt(ua),Sa===it$1||Sa===tt$1||Sa==="Kobo"||Sa==="Kindle Fire"||Sa===Rt$1?Z$4:Sa===bt||Sa===xt||Sa===wt$1||Sa===Tt$1?"Console":Sa===rt$1?"Wearable":Sa?Y$3:"Desktop"),$timezone:fs(),$timezone_offset:ps()}),{$current_url:ar(a$i?.href,hl,ns),$host:a$i?.host,$pathname:a$i?.pathname,$raw_user_agent:d$6.length>1e3?d$6.substring(0,997)+"...":d$6,$browser_version:Gt(d$6,navigator.vendor),$browser_language:hs(),$browser_language_prefix:(ca=hs(),typeof ca=="string"?ca.split("-")[0]:void 0),$screen_height:t$9?.screen.height,$screen_width:t$9?.screen.width,$viewport_height:t$9?.innerHeight,$viewport_width:t$9?.innerWidth,$lib:"web",$lib_version:c$e.LIB_VERSION,$insert_id:Math.random().toString(36).substring(2,10)+Math.random().toString(36).substring(2,10),$time:Date.now()/1e3})}var _s=$i("[Web Vitals]"),ms=9e5;class ys{constructor(aa){var ca;this.kt=!1,this.P=!1,this.N={url:void 0,metrics:[],firstMetricTimestamp:void 0},this.Pt=()=>{clearTimeout(this.Tt),this.N.metrics.length!==0&&(this._instance.capture("$web_vitals",this.N.metrics.reduce(((ua,Sa)=>g$8({},ua,{["$web_vitals_"+Sa.name+"_event"]:g$8({},Sa),["$web_vitals_"+Sa.name+"_value"]:Sa.value})),{})),this.N={url:void 0,metrics:[],firstMetricTimestamp:void 0})},this.It=ua=>{var Sa,hl=(Sa=this._instance.sessionManager)==null?void 0:Sa.checkAndGetSessionAndWindowId(!0);if(M$6(hl))_s.error("Could not read session ID. Dropping metrics!");else{this.N=this.N||{url:void 0,metrics:[],firstMetricTimestamp:void 0};var pl=this.Ct();M$6(pl)||(j$a(ua?.name)||j$a(ua?.value)?_s.error("Invalid metric received",ua):this.Rt&&ua.value>=this.Rt?_s.error("Ignoring metric with value >= "+this.Rt,ua):(this.N.url!==pl&&(this.Pt(),this.Tt=setTimeout(this.Pt,this.flushToCaptureTimeoutMs)),M$6(this.N.url)&&(this.N.url=pl),this.N.firstMetricTimestamp=M$6(this.N.firstMetricTimestamp)?Date.now():this.N.firstMetricTimestamp,ua.attribution&&ua.attribution.interactionTargetElement&&(ua.attribution.interactionTargetElement=void 0),this.N.metrics.push(g$8({},ua,{$current_url:pl,$session_id:hl.sessionId,$window_id:hl.windowId,timestamp:Date.now()})),this.N.metrics.length===this.allowedMetrics.length&&this.Pt()))}},this.rt=()=>{var ua,Sa,hl,pl,ml=v$7.__PosthogExtensions__;M$6(ml)||M$6(ml.postHogWebVitalsCallbacks)||({onLCP:ua,onCLS:Sa,onFCP:hl,onINP:pl}=ml.postHogWebVitalsCallbacks),ua&&Sa&&hl&&pl?(this.allowedMetrics.indexOf("LCP")>-1&&ua(this.It.bind(this)),this.allowedMetrics.indexOf("CLS")>-1&&Sa(this.It.bind(this)),this.allowedMetrics.indexOf("FCP")>-1&&hl(this.It.bind(this)),this.allowedMetrics.indexOf("INP")>-1&&pl(this.It.bind(this)),this.P=!0):_s.error("web vitals callbacks not loaded - not starting")},this._instance=aa,this.kt=!((ca=this._instance.persistence)==null||!ca.props[Ki]),this.startIfEnabled()}get allowedMetrics(){var aa,ca,ua=R$3(this._instance.config.capture_performance)?(aa=this._instance.config.capture_performance)==null?void 0:aa.web_vitals_allowed_metrics:void 0;return M$6(ua)?((ca=this._instance.persistence)==null?void 0:ca.props[Qi])||["CLS","FCP","INP","LCP"]:ua}get flushToCaptureTimeoutMs(){return(R$3(this._instance.config.capture_performance)?this._instance.config.capture_performance.web_vitals_delayed_flush_ms:void 0)||5e3}get Rt(){var aa=R$3(this._instance.config.capture_performance)&&L$6(this._instance.config.capture_performance.__web_vitals_max_value)?this._instance.config.capture_performance.__web_vitals_max_value:ms;return 0<aa&&aa<=6e4?ms:aa}get isEnabled(){var aa=a$i?.protocol;if(aa!=="http:"&&aa!=="https:")return _s.info("Web Vitals are disabled on non-http/https protocols"),!1;var ca=R$3(this._instance.config.capture_performance)?this._instance.config.capture_performance.web_vitals:N$6(this._instance.config.capture_performance)?this._instance.config.capture_performance:void 0;return N$6(ca)?ca:this.kt}startIfEnabled(){this.isEnabled&&!this.P&&(_s.info("enabled, starting..."),this.it(this.rt))}onRemoteConfig(aa){var ca=R$3(aa.capturePerformance)&&!!aa.capturePerformance.web_vitals,ua=R$3(aa.capturePerformance)?aa.capturePerformance.web_vitals_allowed_metrics:void 0;this._instance.persistence&&(this._instance.persistence.register({[Ki]:ca}),this._instance.persistence.register({[Qi]:ua})),this.kt=ca,this.startIfEnabled()}it(aa){var ca,ua;(ca=v$7.__PosthogExtensions__)!=null&&ca.postHogWebVitalsCallbacks&&aa(),(ua=v$7.__PosthogExtensions__)==null||ua.loadExternalDependency==null||ua.loadExternalDependency(this._instance,"web-vitals",(Sa=>{Sa?_s.error("failed to load script",Sa):aa()}))}Ct(){var aa=t$9?t$9.location.href:void 0;if(aa){var ca=this._instance.config.mask_personal_data_properties,ua=this._instance.config.custom_personal_data_properties,Sa=ca?Ri([],rs,ua||[]):[];return ar(aa,Sa,ns)}_s.error("Could not determine current URL")}}var bs=$i("[Heatmaps]");function ws(la){return R$3(la)&&"clientX"in la&&"clientY"in la&&L$6(la.clientX)&&L$6(la.clientY)}class xs{constructor(aa){var ca;this.kt=!1,this.P=!1,this.Ft=null,this.instance=aa,this.kt=!((ca=this.instance.persistence)==null||!ca.props[Wi]),this.rageclicks=new tr(aa.config.rageclick)}get flushIntervalMilliseconds(){var aa=5e3;return R$3(this.instance.config.capture_heatmaps)&&this.instance.config.capture_heatmaps.flush_interval_milliseconds&&(aa=this.instance.config.capture_heatmaps.flush_interval_milliseconds),aa}get isEnabled(){return M$6(this.instance.config.capture_heatmaps)?M$6(this.instance.config.enable_heatmaps)?this.kt:this.instance.config.enable_heatmaps:this.instance.config.capture_heatmaps!==!1}startIfEnabled(){if(this.isEnabled){if(this.P)return;bs.info("starting..."),this.Mt(),this.Ot()}else{var aa;clearInterval((aa=this.Ft)!==null&&aa!==void 0?aa:void 0),this.At(),this.getAndClearBuffer()}}onRemoteConfig(aa){var ca=!!aa.heatmaps;this.instance.persistence&&this.instance.persistence.register({[Wi]:ca}),this.kt=ca,this.startIfEnabled()}getAndClearBuffer(){var aa=this.N;return this.N=void 0,aa}Dt(aa){this.jt(aa.originalEvent,"deadclick")}Ot(){this.Ft&&clearInterval(this.Ft),this.Ft=(function(aa){return aa?.visibilityState==="visible"})(o$d)?setInterval(this.Lt.bind(this),this.flushIntervalMilliseconds):null}Mt(){t$9&&o$d&&(this.Nt=this.Lt.bind(this),Ui(t$9,"beforeunload",this.Nt),this.Ut=aa=>this.jt(aa||t$9?.event),Ui(o$d,"click",this.Ut,{capture:!0}),this.zt=aa=>this.Ht(aa||t$9?.event),Ui(o$d,"mousemove",this.zt,{capture:!0}),this.Bt=new Nr(this.instance,jr,this.Dt.bind(this)),this.Bt.startIfEnabled(),this.qt=this.Ot.bind(this),Ui(o$d,"visibilitychange",this.qt),this.P=!0)}At(){var aa;t$9&&o$d&&(this.Nt&&t$9.removeEventListener("beforeunload",this.Nt),this.Ut&&o$d.removeEventListener("click",this.Ut,{capture:!0}),this.zt&&o$d.removeEventListener("mousemove",this.zt,{capture:!0}),this.qt&&o$d.removeEventListener("visibilitychange",this.qt),clearTimeout(this.Wt),(aa=this.Bt)==null||aa.stop(),this.P=!1)}Gt(aa,ca){var ua=this.instance.scrollManager.scrollY(),Sa=this.instance.scrollManager.scrollX(),hl=this.instance.scrollManager.scrollElement(),pl=(function(ml,gl,wc){for(var xu=ml;xu&&be$4(xu)&&!we$3(xu,"body");){if(xu===wc)return!1;if(w$9(gl,t$9?.getComputedStyle(xu).position))return!0;xu=Fe$2(xu)}return!1})(Ie$1(aa),["fixed","sticky"],hl);return{x:aa.clientX+(pl?0:Sa),y:aa.clientY+(pl?0:ua),target_fixed:pl,type:ca}}jt(aa,ca){var ua;if(ca===void 0&&(ca="click"),!ye$3(aa.target)&&ws(aa)){var Sa=this.Gt(aa,ca);(ua=this.rageclicks)!=null&&ua.isRageClick(aa.clientX,aa.clientY,new Date().getTime())&&this.Vt(g$8({},Sa,{type:"rageclick"})),this.Vt(Sa)}}Ht(aa){!ye$3(aa.target)&&ws(aa)&&(clearTimeout(this.Wt),this.Wt=setTimeout((()=>{this.Vt(this.Gt(aa,"mousemove"))}),500))}Vt(aa){if(t$9){var ca=t$9.location.href,ua=this.instance.config.mask_personal_data_properties,Sa=this.instance.config.custom_personal_data_properties,hl=ua?Ri([],rs,Sa||[]):[],pl=ar(ca,hl,ns);this.N=this.N||{},this.N[pl]||(this.N[pl]=[]),this.N[pl].push(aa)}}Lt(){this.N&&!F$8(this.N)&&this.instance.capture("$$heatmap",{$heatmap_data:this.getAndClearBuffer()})}}class Es{constructor(aa){this.Jt=(ca,ua,Sa)=>{Sa&&(Sa.noSessionId||Sa.activityTimeout||Sa.sessionPastMaximumLength)&&(Ei.info("[PageViewManager] Session rotated, clearing pageview state",{sessionId:ca,changeReason:Sa}),this.Kt=void 0,this._instance.scrollManager.resetContext())},this._instance=aa,this.Yt()}Yt(){var aa;this.Xt=(aa=this._instance.sessionManager)==null?void 0:aa.onSessionId(this.Jt)}destroy(){var aa;(aa=this.Xt)==null||aa.call(this),this.Xt=void 0}doPageView(aa,ca){var ua,Sa=this.Qt(aa,ca);return this.Kt={pathname:(ua=t$9?.location.pathname)!==null&&ua!==void 0?ua:"",pageViewId:ca,timestamp:aa},this._instance.scrollManager.resetContext(),Sa}doPageLeave(aa){var ca;return this.Qt(aa,(ca=this.Kt)==null?void 0:ca.pageViewId)}doEvent(){var aa;return{$pageview_id:(aa=this.Kt)==null?void 0:aa.pageViewId}}Qt(aa,ca){var ua=this.Kt;if(!ua)return{$pageview_id:ca};var Sa={$pageview_id:ca,$prev_pageview_id:ua.pageViewId},hl=this._instance.scrollManager.getContext();if(hl&&!this._instance.config.disable_scroll_properties){var{maxScrollHeight:pl,lastScrollY:ml,maxScrollY:gl,maxContentHeight:wc,lastContentY:xu,maxContentY:ff}=hl;if(!(M$6(pl)||M$6(ml)||M$6(gl)||M$6(wc)||M$6(xu)||M$6(ff))){pl=Math.ceil(pl),ml=Math.ceil(ml),gl=Math.ceil(gl),wc=Math.ceil(wc),xu=Math.ceil(xu),ff=Math.ceil(ff);var jf=pl<=1?1:J$5(ml/pl,0,1,Ei),Uf=pl<=1?1:J$5(gl/pl,0,1,Ei),rp=wc<=1?1:J$5(xu/wc,0,1,Ei),np=wc<=1?1:J$5(ff/wc,0,1,Ei);Sa=Ci(Sa,{$prev_pageview_last_scroll:ml,$prev_pageview_last_scroll_percentage:jf,$prev_pageview_max_scroll:gl,$prev_pageview_max_scroll_percentage:Uf,$prev_pageview_last_content:xu,$prev_pageview_last_content_percentage:rp,$prev_pageview_max_content:ff,$prev_pageview_max_content_percentage:np})}}return ua.pathname&&(Sa.$prev_pageview_pathname=ua.pathname),ua.timestamp&&(Sa.$prev_pageview_duration=(aa.getTime()-ua.timestamp.getTime())/1e3),Sa}}var $s=Uint8Array,Ss=Uint16Array,ks=Uint32Array,Ps=new $s([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Ts=new $s([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Is=new $s([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Cs=function(la,aa){for(var ca=new Ss(31),ua=0;ua<31;++ua)ca[ua]=aa+=1<<la[ua-1];var Sa=new ks(ca[30]);for(ua=1;ua<30;++ua)for(var hl=ca[ua];hl<ca[ua+1];++hl)Sa[hl]=hl-ca[ua]<<5|ua;return[ca,Sa]},Rs=Cs(Ps,2),Fs=Rs[0],Ms=Rs[1];Fs[28]=258,Ms[258]=28;for(var Os=Cs(Ts,0)[1],As=new Ss(32768),Ds=0;Ds<32768;++Ds){var js=(43690&Ds)>>>1|(21845&Ds)<<1;js=(61680&(js=(52428&js)>>>2|(13107&js)<<2))>>>4|(3855&js)<<4,As[Ds]=((65280&js)>>>8|(255&js)<<8)>>>1}var Ls=function(la,aa,ca){for(var ua=la.length,Sa=0,hl=new Ss(aa);Sa<ua;++Sa)++hl[la[Sa]-1];var pl,ml=new Ss(aa);for(Sa=0;Sa<aa;++Sa)ml[Sa]=ml[Sa-1]+hl[Sa-1]<<1;for(pl=new Ss(ua),Sa=0;Sa<ua;++Sa)pl[Sa]=As[ml[la[Sa]-1]++]>>>15-la[Sa];return pl},Ns=new $s(288);for(Ds=0;Ds<144;++Ds)Ns[Ds]=8;for(Ds=144;Ds<256;++Ds)Ns[Ds]=9;for(Ds=256;Ds<280;++Ds)Ns[Ds]=7;for(Ds=280;Ds<288;++Ds)Ns[Ds]=8;var Us=new $s(32);for(Ds=0;Ds<32;++Ds)Us[Ds]=5;var zs=Ls(Ns,9),Hs=Ls(Us,5),Bs=function(la){return(la/8>>0)+(7&la&&1)},qs=function(la,aa,ca){(ca==null||ca>la.length)&&(ca=la.length);var ua=new(la instanceof Ss?Ss:la instanceof ks?ks:$s)(ca-aa);return ua.set(la.subarray(aa,ca)),ua},Ws=function(la,aa,ca){ca<<=7&aa;var ua=aa/8>>0;la[ua]|=ca,la[ua+1]|=ca>>>8},Gs=function(la,aa,ca){ca<<=7&aa;var ua=aa/8>>0;la[ua]|=ca,la[ua+1]|=ca>>>8,la[ua+2]|=ca>>>16},Vs=function(la,aa){for(var ca=[],ua=0;ua<la.length;++ua)la[ua]&&ca.push({s:ua,f:la[ua]});var Sa=ca.length,hl=ca.slice();if(!Sa)return[new $s(0),0];if(Sa==1){var pl=new $s(ca[0].s+1);return pl[ca[0].s]=1,[pl,1]}ca.sort((function(ig,vv){return ig.f-vv.f})),ca.push({s:-1,f:25001});var ml=ca[0],gl=ca[1],wc=0,xu=1,ff=2;for(ca[0]={s:-1,f:ml.f+gl.f,l:ml,r:gl};xu!=Sa-1;)ml=ca[ca[wc].f<ca[ff].f?wc++:ff++],gl=ca[wc!=xu&&ca[wc].f<ca[ff].f?wc++:ff++],ca[xu++]={s:-1,f:ml.f+gl.f,l:ml,r:gl};var jf=hl[0].s;for(ua=1;ua<Sa;++ua)hl[ua].s>jf&&(jf=hl[ua].s);var Uf=new Ss(jf+1),rp=Js(ca[xu-1],Uf,0);if(rp>aa){ua=0;var np=0,qm=rp-aa,Vm=1<<qm;for(hl.sort((function(ig,vv){return Uf[vv.s]-Uf[ig.s]||ig.f-vv.f}));ua<Sa;++ua){var eg=hl[ua].s;if(!(Uf[eg]>aa))break;np+=Vm-(1<<rp-Uf[eg]),Uf[eg]=aa}for(np>>>=qm;np>0;){var tg=hl[ua].s;Uf[tg]<aa?np-=1<<aa-Uf[tg]++-1:++ua}for(;ua>=0&&np;--ua){var rg=hl[ua].s;Uf[rg]==aa&&(--Uf[rg],++np)}rp=aa}return[new $s(Uf),rp]},Js=function(la,aa,ca){return la.s==-1?Math.max(Js(la.l,aa,ca+1),Js(la.r,aa,ca+1)):aa[la.s]=ca},Ks=function(la){for(var aa=la.length;aa&&!la[--aa];);for(var ca=new Ss(++aa),ua=0,Sa=la[0],hl=1,pl=function(gl){ca[ua++]=gl},ml=1;ml<=aa;++ml)if(la[ml]==Sa&&ml!=aa)++hl;else{if(!Sa&&hl>2){for(;hl>138;hl-=138)pl(32754);hl>2&&(pl(hl>10?hl-11<<5|28690:hl-3<<5|12305),hl=0)}else if(hl>3){for(pl(Sa),--hl;hl>6;hl-=6)pl(8304);hl>2&&(pl(hl-3<<5|8208),hl=0)}for(;hl--;)pl(Sa);hl=1,Sa=la[ml]}return[ca.subarray(0,ua),aa]},Ys=function(la,aa){for(var ca=0,ua=0;ua<aa.length;++ua)ca+=la[ua]*aa[ua];return ca},Xs=function(la,aa,ca){var ua=ca.length,Sa=Bs(aa+2);la[Sa]=255&ua,la[Sa+1]=ua>>>8,la[Sa+2]=255^la[Sa],la[Sa+3]=255^la[Sa+1];for(var hl=0;hl<ua;++hl)la[Sa+hl+4]=ca[hl];return 8*(Sa+4+ua)},Qs=function(la,aa,ca,ua,Sa,hl,pl,ml,gl,wc,xu){Ws(aa,xu++,ca),++Sa[256];for(var ff=Vs(Sa,15),jf=ff[0],Uf=ff[1],rp=Vs(hl,15),np=rp[0],qm=rp[1],Vm=Ks(jf),eg=Vm[0],tg=Vm[1],rg=Ks(np),ig=rg[0],vv=rg[1],R1=new Ss(19),O1=0;O1<eg.length;++O1)R1[31&eg[O1]]++;for(O1=0;O1<ig.length;++O1)R1[31&ig[O1]]++;for(var K0=Vs(R1,7),J0=K0[0],Hw=K0[1],qw=19;qw>4&&!J0[Is[qw-1]];--qw);var Y0,G0,X0,d_,f_=wc+5<<3,zN=Ys(Sa,Ns)+Ys(hl,Us)+pl,BN=Ys(Sa,jf)+Ys(hl,np)+pl+14+3*qw+Ys(R1,J0)+(2*R1[16]+3*R1[17]+7*R1[18]);if(f_<=zN&&f_<=BN)return Xs(aa,xu,la.subarray(gl,gl+wc));if(Ws(aa,xu,1+(BN<zN)),xu+=2,BN<zN){Y0=Ls(jf,Uf),G0=jf,X0=Ls(np,qm),d_=np;var iF=Ls(J0,Hw);for(Ws(aa,xu,tg-257),Ws(aa,xu+5,vv-1),Ws(aa,xu+10,qw-4),xu+=14,O1=0;O1<qw;++O1)Ws(aa,xu+3*O1,J0[Is[O1]]);xu+=3*qw;for(var yY=[eg,ig],vQ=0;vQ<2;++vQ){var Ohe=yY[vQ];for(O1=0;O1<Ohe.length;++O1){var bY=31&Ohe[O1];Ws(aa,xu,iF[bY]),xu+=J0[bY],bY>15&&(Ws(aa,xu,Ohe[O1]>>>5&127),xu+=Ohe[O1]>>>12)}}}else Y0=zs,G0=Ns,X0=Hs,d_=Us;for(O1=0;O1<ml;++O1)if(ua[O1]>255){bY=ua[O1]>>>18&31,Gs(aa,xu,Y0[bY+257]),xu+=G0[bY+257],bY>7&&(Ws(aa,xu,ua[O1]>>>23&31),xu+=Ps[bY]);var Lhe=31&ua[O1];Gs(aa,xu,X0[Lhe]),xu+=d_[Lhe],Lhe>3&&(Gs(aa,xu,ua[O1]>>>5&8191),xu+=Ts[Lhe])}else Gs(aa,xu,Y0[ua[O1]]),xu+=G0[ua[O1]];return Gs(aa,xu,Y0[256]),xu+G0[256]},Zs=new ks([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),tn=(function(){for(var la=new ks(256),aa=0;aa<256;++aa){for(var ca=aa,ua=9;--ua;)ca=(1&ca&&3988292384)^ca>>>1;la[aa]=ca}return la})(),en$1=function(la,aa,ca,ua,Sa){return(function(hl,pl,ml,gl,wc,xu){var ff=hl.length,jf=new $s(gl+ff+5*(1+Math.floor(ff/7e3))+wc),Uf=jf.subarray(gl,jf.length-wc),rp=0;if(!pl||ff<8)for(var np=0;np<=ff;np+=65535){var qm=np+65535;qm<ff?rp=Xs(Uf,rp,hl.subarray(np,qm)):(Uf[np]=xu,rp=Xs(Uf,rp,hl.subarray(np,ff)))}else{for(var Vm=Zs[pl-1],eg=Vm>>>13,tg=8191&Vm,rg=(1<<ml)-1,ig=new Ss(32768),vv=new Ss(rg+1),R1=Math.ceil(ml/3),O1=2*R1,K0=function(Qht){return(hl[Qht]^hl[Qht+1]<<R1^hl[Qht+2]<<O1)&rg},J0=new ks(25e3),Hw=new Ss(288),qw=new Ss(32),Y0=0,G0=0,X0=(np=0,0),d_=0,f_=0;np<ff;++np){var zN=K0(np),BN=32767&np,iF=vv[zN];if(ig[BN]=iF,vv[zN]=BN,d_<=np){var yY=ff-np;if((Y0>7e3||X0>24576)&&yY>423){rp=Qs(hl,Uf,0,J0,Hw,qw,G0,X0,f_,np-f_,rp),X0=Y0=G0=0,f_=np;for(var vQ=0;vQ<286;++vQ)Hw[vQ]=0;for(vQ=0;vQ<30;++vQ)qw[vQ]=0}var Ohe=2,bY=0,Lhe=tg,Dhe=BN-iF&32767;if(yY>2&&zN==K0(np-Dhe))for(var kdt=Math.min(eg,yY)-1,eht=Math.min(32767,np),oht=Math.min(258,yY);Dhe<=eht&&--Lhe&&BN!=iF;){if(hl[np+Ohe]==hl[np+Ohe-Dhe]){for(var iht=0;iht<oht&&hl[np+iht]==hl[np+iht-Dhe];++iht);if(iht>Ohe){if(Ohe=iht,bY=Dhe,iht>kdt)break;var Uhe=Math.min(Dhe,iht-2),Bhe=0;for(vQ=0;vQ<Uhe;++vQ){var dht=np-Dhe+vQ+32768&32767,Mdt=dht-ig[dht]+32768&32767;Mdt>Bhe&&(Bhe=Mdt,iF=dht)}}}Dhe+=(BN=iF)-(iF=ig[BN])+32768&32767}if(bY){J0[X0++]=268435456|Ms[Ohe]<<18|Os[bY];var opt=31&Ms[Ohe],gpt=31&Os[bY];G0+=Ps[opt]+Ts[gpt],++Hw[257+opt],++qw[gpt],d_=np+Ohe,++Y0}else J0[X0++]=hl[np],++Hw[hl[np]]}}rp=Qs(hl,Uf,xu,J0,Hw,qw,G0,X0,f_,np-f_,rp)}return qs(jf,0,gl+Bs(rp)+wc)})(la,aa.level==null?6:aa.level,aa.mem==null?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(la.length)))):12+aa.mem,ca,ua,!0)},rn$1=function(la,aa,ca){for(;ca;++aa)la[aa]=ca,ca>>>=8};function sn$1(la,aa){aa===void 0&&(aa={});var ca=(function(){var ml=4294967295;return{p:function(gl){for(var wc=ml,xu=0;xu<gl.length;++xu)wc=tn[255&wc^gl[xu]]^wc>>>8;ml=wc},d:function(){return 4294967295^ml}}})(),ua=la.length;ca.p(la);var Sa,hl=en$1(la,aa,10+((Sa=aa).filename&&Sa.filename.length+1||0),8),pl=hl.length;return(function(ml,gl){var wc=gl.filename;if(ml[0]=31,ml[1]=139,ml[2]=8,ml[8]=gl.level<2?4:gl.level==9?2:0,ml[9]=3,gl.mtime!=0&&rn$1(ml,4,Math.floor(new Date(gl.mtime||Date.now())/1e3)),wc){ml[3]=8;for(var xu=0;xu<=wc.length;++xu)ml[xu+10]=wc.charCodeAt(xu)}})(hl,aa),rn$1(hl,pl-8,ca.d()),rn$1(hl,pl-4,ua),hl}var nn$1=function(la){var aa,ca,ua,Sa,hl="";for(aa=ca=0,ua=(la=(la+"").replace(/\r\n/g,`
|
|
19415
19415
|
`).replace(/\r/g,`
|
|
19416
|
-
`)).length,Sa=0;Sa<ua;Sa++){var pl=la.charCodeAt(Sa),ml=null;pl<128?ca++:ml=pl>127&&pl<2048?String.fromCharCode(pl>>6|192,63&pl|128):String.fromCharCode(pl>>12|224,pl>>6&63|128,63&pl|128),D$b(ml)||(ca>aa&&(hl+=la.substring(aa,ca)),hl+=ml,aa=ca=Sa+1)}return ca>aa&&(hl+=la.substring(aa,la.length)),hl},on$1=!!u$h||!!l$9,an$1="text/plain",ln=function(la,aa,ca){var ua;ca===void 0&&(ca=!0);var[Sa,hl]=la.split("?"),pl=g$8({},aa),ml=(ua=hl?.split("&").map((wc=>{var xu,[ff,jf]=wc.split("="),Uf=ca&&(xu=pl[ff])!==null&&xu!==void 0?xu:jf;return delete pl[ff],ff+"="+Uf})))!==null&&ua!==void 0?ua:[],gl=nr(pl);return gl&&ml.push(gl),Sa+"?"+ml.join("&")},un$1=(la,aa)=>JSON.stringify(la,((ca,ua)=>typeof ua=="bigint"?ua.toString():ua),aa),hn=la=>{var{data:aa,compression:ca}=la;if(aa){if(ca===er.GZipJS){var ua=sn$1((function(gl,wc){var xu=gl.length;if(typeof TextEncoder<"u")return new TextEncoder().encode(gl);for(var ff=new $s(gl.length+(gl.length>>>1)),jf=0,Uf=function(Vm){ff[jf++]=Vm},rp=0;rp<xu;++rp){if(jf+5>ff.length){var np=new $s(jf+8+(xu-rp<<1));np.set(ff),ff=np}var qm=gl.charCodeAt(rp);qm<128||wc?Uf(qm):qm<2048?(Uf(192|qm>>>6),Uf(128|63&qm)):qm>55295&&qm<57344?(Uf(240|(qm=65536+(1047552&qm)|1023&gl.charCodeAt(++rp))>>>18),Uf(128|qm>>>12&63),Uf(128|qm>>>6&63),Uf(128|63&qm)):(Uf(224|qm>>>12),Uf(128|qm>>>6&63),Uf(128|63&qm))}return qs(ff,0,jf)})(un$1(aa)),{mtime:0}),Sa=new Blob([ua],{type:an$1});return{contentType:an$1,body:Sa,estimatedSize:Sa.size}}if(ca===er.Base64){var hl=(function(gl){var wc,xu,ff,jf,Uf,rp="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",np=0,qm=0,Vm="",eg=[];if(!gl)return gl;gl=nn$1(gl);do wc=(Uf=gl.charCodeAt(np++)<<16|gl.charCodeAt(np++)<<8|gl.charCodeAt(np++))>>18&63,xu=Uf>>12&63,ff=Uf>>6&63,jf=63&Uf,eg[qm++]=rp.charAt(wc)+rp.charAt(xu)+rp.charAt(ff)+rp.charAt(jf);while(np<gl.length);switch(Vm=eg.join(""),gl.length%3){case 1:Vm=Vm.slice(0,-2)+"==";break;case 2:Vm=Vm.slice(0,-1)+"="}return Vm})(un$1(aa)),pl=(gl=>"data="+encodeURIComponent(typeof gl=="string"?gl:un$1(gl)))(hl);return{contentType:"application/x-www-form-urlencoded",body:pl,estimatedSize:new Blob([pl]).size}}var ml=un$1(aa);return{contentType:"application/json",body:ml,estimatedSize:new Blob([ml]).size}}},dn=[];l$9&&dn.push({transport:"fetch",method:la=>{var aa,ca,{contentType:ua,body:Sa,estimatedSize:hl}=(aa=hn(la))!==null&&aa!==void 0?aa:{},pl=new Headers;Ii(la.headers,(function(xu,ff){pl.append(ff,xu)})),ua&&pl.append("Content-Type",ua);var ml=la.url,gl=null;if(h$c){var wc=new h$c;gl={signal:wc.signal,timeout:setTimeout((()=>wc.abort()),la.timeout)}}l$9(ml,g$8({method:la?.method||"GET",headers:pl,keepalive:la.method==="POST"&&(hl||0)<52428.8,body:Sa,signal:(ca=gl)==null?void 0:ca.signal},la.fetchOptions)).then((xu=>xu.text().then((ff=>{var jf={statusCode:xu.status,text:ff};if(xu.status===200)try{jf.json=JSON.parse(ff)}catch(Uf){Ei.error(Uf)}la.callback==null||la.callback(jf)})))).catch((xu=>{Ei.error(xu),la.callback==null||la.callback({statusCode:0,text:xu})})).finally((()=>gl?clearTimeout(gl.timeout):null))}}),u$h&&dn.push({transport:"XHR",method:la=>{var aa,ca=new u$h;ca.open(la.method||"GET",la.url,!0);var{contentType:ua,body:Sa}=(aa=hn(la))!==null&&aa!==void 0?aa:{};Ii(la.headers,(function(hl,pl){ca.setRequestHeader(pl,hl)})),ua&&ca.setRequestHeader("Content-Type",ua),la.timeout&&(ca.timeout=la.timeout),la.disableXHRCredentials||(ca.withCredentials=!0),ca.onreadystatechange=()=>{if(ca.readyState===4){var hl={statusCode:ca.status,text:ca.responseText};if(ca.status===200)try{hl.json=JSON.parse(ca.responseText)}catch{}la.callback==null||la.callback(hl)}},ca.send(Sa)}}),n$9!=null&&n$9.sendBeacon&&dn.push({transport:"sendBeacon",method:la=>{var aa=ln(la.url,{beacon:"1"});try{var ca,{contentType:ua,body:Sa}=(ca=hn(la))!==null&&ca!==void 0?ca:{},hl=typeof Sa=="string"?new Blob([Sa],{type:ua}):Sa;n$9.sendBeacon(aa,hl)}catch{}}});var vn=function(la,aa){if(!(function(ca){try{new RegExp(ca)}catch{return!1}return!0})(aa))return!1;try{return new RegExp(aa).test(la)}catch{return!1}};function cn$1(la,aa,ca){return un$1({distinct_id:la,userPropertiesToSet:aa,userPropertiesToSetOnce:ca})}var fn$1={exact:(la,aa)=>aa.some((ca=>la.some((ua=>ca===ua)))),is_not:(la,aa)=>aa.every((ca=>la.every((ua=>ca!==ua)))),regex:(la,aa)=>aa.some((ca=>la.some((ua=>vn(ca,ua))))),not_regex:(la,aa)=>aa.every((ca=>la.every((ua=>!vn(ca,ua))))),icontains:(la,aa)=>aa.map(pn).some((ca=>la.map(pn).some((ua=>ca.includes(ua))))),not_icontains:(la,aa)=>aa.map(pn).every((ca=>la.map(pn).every((ua=>!ca.includes(ua))))),gt:(la,aa)=>aa.some((ca=>{var ua=parseFloat(ca);return!isNaN(ua)&&la.some((Sa=>ua>parseFloat(Sa)))})),lt:(la,aa)=>aa.some((ca=>{var ua=parseFloat(ca);return!isNaN(ua)&&la.some((Sa=>ua<parseFloat(Sa)))}))},pn=la=>la.toLowerCase();function gn(la,aa){return!la||Object.entries(la).every((ca=>{var[ua,Sa]=ca,hl=aa?.[ua];if(M$6(hl)||D$b(hl))return!1;var pl=[String(hl)],ml=fn$1[Sa.operator];return!!ml&&ml(Sa.values,pl)}))}var _n=$i("[Error tracking]");class mn{constructor(aa){var ca,ua;this.Zt=[],this.ti=new Xt([new di,new wi,new ci,new vi,new yi,new mi,new pi,new bi],hi("web:javascript",si,ai)),this._instance=aa,this.Zt=(ca=(ua=this._instance.persistence)==null?void 0:ua.get_property(Vi))!==null&&ca!==void 0?ca:[]}onRemoteConfig(aa){var ca,ua,Sa,hl=(ca=(ua=aa.errorTracking)==null?void 0:ua.suppressionRules)!==null&&ca!==void 0?ca:[],pl=(Sa=aa.errorTracking)==null?void 0:Sa.captureExtensionExceptions;this.Zt=hl,this._instance.persistence&&this._instance.persistence.register({[Vi]:this.Zt,[Ji]:pl})}get ii(){var aa,ca=!!this._instance.get_property(Ji),ua=this._instance.config.error_tracking.captureExtensionExceptions;return(aa=ua??ca)!==null&&aa!==void 0&&aa}buildProperties(aa,ca){return this.ti.buildFromUnknown(aa,{syntheticException:ca?.syntheticException,mechanism:{handled:ca?.handled}})}sendExceptionEvent(aa){var ca=aa.$exception_list;if(this.ei(ca)){if(this.ri(ca))return void _n.info("Skipping exception capture because a suppression rule matched");if(!this.ii&&this.si(ca))return void _n.info("Skipping exception capture because it was thrown by an extension");if(!this._instance.config.error_tracking.__capturePostHogExceptions&&this.ni(ca))return void _n.info("Skipping exception capture because it was thrown by the PostHog SDK")}return this._instance.capture("$exception",aa,{_noTruncate:!0,_batchKey:"exceptionEvent"})}ri(aa){if(aa.length===0)return!1;var ca=aa.reduce(((ua,Sa)=>{var{type:hl,value:pl}=Sa;return O$5(hl)&&hl.length>0&&ua.$exception_types.push(hl),O$5(pl)&&pl.length>0&&ua.$exception_values.push(pl),ua}),{$exception_types:[],$exception_values:[]});return this.Zt.some((ua=>{var Sa=ua.values.map((hl=>{var pl,ml=fn$1[hl.operator],gl=I$8(hl.value)?hl.value:[hl.value],wc=(pl=ca[hl.key])!==null&&pl!==void 0?pl:[];return gl.length>0&&ml(gl,wc)}));return ua.type==="OR"?Sa.some(Boolean):Sa.every(Boolean)}))}si(aa){return aa.flatMap((ca=>{var ua,Sa;return(ua=(Sa=ca.stacktrace)==null?void 0:Sa.frames)!==null&&ua!==void 0?ua:[]})).some((ca=>ca.filename&&ca.filename.startsWith("chrome-extension://")))}ni(aa){if(aa.length>0){var ca,ua,Sa,hl,pl=(ca=(ua=aa[0].stacktrace)==null?void 0:ua.frames)!==null&&ca!==void 0?ca:[],ml=pl[pl.length-1];return(Sa=ml==null||(hl=ml.filename)==null?void 0:hl.includes("posthog.com/static"))!==null&&Sa!==void 0&&Sa}return!1}ei(aa){return!j$a(aa)&&I$8(aa)}}var yn=$i("[FeatureFlags]"),bn=$i("[FeatureFlags]",{debugEnabled:!0}),wn="$active_feature_flags",xn="$override_feature_flags",En="$feature_flag_payloads",$n="$override_feature_flag_payloads",Sn="$feature_flag_request_id",kn="$feature_flag_evaluated_at",Pn=la=>{var aa={};for(var[ca,ua]of Fi(la||{}))ua&&(aa[ca]=ua);return aa},Tn=la=>{var aa=la.flags;return aa?(la.featureFlags=Object.fromEntries(Object.keys(aa).map((ca=>{var ua;return[ca,(ua=aa[ca].variant)!==null&&ua!==void 0?ua:aa[ca].enabled]}))),la.featureFlagPayloads=Object.fromEntries(Object.keys(aa).filter((ca=>aa[ca].enabled)).filter((ca=>{var ua;return(ua=aa[ca].metadata)==null?void 0:ua.payload})).map((ca=>{var ua;return[ca,(ua=aa[ca].metadata)==null?void 0:ua.payload]})))):yn.warn("Using an older version of the feature flags endpoint. Please upgrade your PostHog server to the latest version"),la},In=(function(la){return la.FeatureFlags="feature_flags",la.Recordings="recordings",la})({});class Cn{constructor(aa){this.oi=!1,this.ai=!1,this.li=!1,this.ui=!1,this.hi=!1,this.di=!1,this.vi=!1,this._instance=aa,this.featureFlagEventHandlers=[]}ci(){var aa=this._instance.config.evaluation_environments;return aa!=null&&aa.length?aa.filter((ca=>{var ua=ca&&typeof ca=="string"&&ca.trim().length>0;return ua||yn.error("Invalid evaluation environment found:",ca,"Expected non-empty string"),ua})):[]}fi(){return this.ci().length>0}flags(){if(this._instance.config.__preview_remote_config)this.di=!0;else{var aa=!this.pi&&(this._instance.config.advanced_disable_feature_flags||this._instance.config.advanced_disable_feature_flags_on_first_load);this.gi({disableFlags:aa})}}get hasLoadedFlags(){return this.ai}getFlags(){return Object.keys(this.getFlagVariants())}getFlagsWithDetails(){var aa=this._instance.get_property(se$3),ca=this._instance.get_property(xn),ua=this._instance.get_property($n);if(!ua&&!ca)return aa||{};var Sa=Ci({},aa||{}),hl=[...new Set([...Object.keys(ua||{}),...Object.keys(ca||{})])];for(var pl of hl){var ml,gl,wc=Sa[pl],xu=ca?.[pl],ff=M$6(xu)?(ml=wc?.enabled)!==null&&ml!==void 0&&ml:!!xu,jf=M$6(xu)?wc.variant:typeof xu=="string"?xu:void 0,Uf=ua?.[pl],rp=g$8({},wc,{enabled:ff,variant:ff?jf??wc?.variant:void 0});ff!==wc?.enabled&&(rp.original_enabled=wc?.enabled),jf!==wc?.variant&&(rp.original_variant=wc?.variant),Uf&&(rp.metadata=g$8({},wc?.metadata,{payload:Uf,original_payload:wc==null||(gl=wc.metadata)==null?void 0:gl.payload})),Sa[pl]=rp}return this.oi||(yn.warn(" Overriding feature flag details!",{flagDetails:aa,overriddenPayloads:ua,finalDetails:Sa}),this.oi=!0),Sa}getFlagVariants(){var aa=this._instance.get_property(ee$4),ca=this._instance.get_property(xn);if(!ca)return aa||{};for(var ua=Ci({},aa),Sa=Object.keys(ca),hl=0;hl<Sa.length;hl++)ua[Sa[hl]]=ca[Sa[hl]];return this.oi||(yn.warn(" Overriding feature flags!",{enabledFlags:aa,overriddenFlags:ca,finalFlags:ua}),this.oi=!0),ua}getFlagPayloads(){var aa=this._instance.get_property(En),ca=this._instance.get_property($n);if(!ca)return aa||{};for(var ua=Ci({},aa||{}),Sa=Object.keys(ca),hl=0;hl<Sa.length;hl++)ua[Sa[hl]]=ca[Sa[hl]];return this.oi||(yn.warn(" Overriding feature flag payloads!",{flagPayloads:aa,overriddenPayloads:ca,finalPayloads:ua}),this.oi=!0),ua}reloadFeatureFlags(){this.ui||this._instance.config.advanced_disable_feature_flags||this.pi||(this.pi=setTimeout((()=>{this.gi()}),5))}mi(){clearTimeout(this.pi),this.pi=void 0}ensureFlagsLoaded(){this.ai||this.li||this.pi||this.reloadFeatureFlags()}setAnonymousDistinctId(aa){this.$anon_distinct_id=aa}setReloadingPaused(aa){this.ui=aa}gi(aa){var ca;if(this.mi(),!this._instance.O())if(this.li)this.hi=!0;else{var ua=this._instance.config.token,Sa=this._instance.get_property("$device_id"),hl={token:ua,distinct_id:this._instance.get_distinct_id(),groups:this._instance.getGroups(),$anon_distinct_id:this.$anon_distinct_id,person_properties:g$8({},((ca=this._instance.persistence)==null?void 0:ca.get_initial_props())||{},this._instance.get_property(ne$2)||{}),group_properties:this._instance.get_property(oe$2)};D$b(Sa)||M$6(Sa)||(hl.$device_id=Sa),(aa!=null&&aa.disableFlags||this._instance.config.advanced_disable_feature_flags)&&(hl.disable_flags=!0),this.fi()&&(hl.evaluation_environments=this.ci());var pl=this._instance.config.__preview_remote_config,ml=pl?"/flags/?v=2":"/flags/?v=2&config=true",gl=this._instance.config.advanced_only_evaluate_survey_feature_flags?"&only_evaluate_survey_feature_flags=true":"",wc=this._instance.requestRouter.endpointFor("flags",ml+gl);pl&&(hl.timezone=fs()),this.li=!0,this._instance._send_request({method:"POST",url:wc,data:hl,compression:this._instance.config.disable_compression?void 0:er.Base64,timeout:this._instance.config.feature_flag_request_timeout_ms,callback:xu=>{var ff,jf,Uf=!0;if(xu.statusCode===200&&(this.hi||(this.$anon_distinct_id=void 0),Uf=!1),this.li=!1,this.di||(this.di=!0,this._instance.yi((jf=xu.json)!==null&&jf!==void 0?jf:{})),!hl.disable_flags||this.hi)if(this.vi=!Uf,xu.json&&(ff=xu.json.quotaLimited)!=null&&ff.includes(In.FeatureFlags))yn.warn("You have hit your feature flags quota limit, and will not be able to load feature flags until the quota is reset. Please visit https://posthog.com/docs/billing/limits-alerts to learn more.");else{var rp;hl.disable_flags||this.receivedFeatureFlags((rp=xu.json)!==null&&rp!==void 0?rp:{},Uf),this.hi&&(this.hi=!1,this.gi())}}})}}getFeatureFlag(aa,ca){if(ca===void 0&&(ca={}),this.ai||this.getFlags()&&this.getFlags().length>0){var ua=this.getFlagVariants()[aa],Sa=""+ua,hl=this._instance.get_property(Sn)||void 0,pl=this._instance.get_property(kn)||void 0,ml=this._instance.get_property(le$2)||{};if((ca.send_event||!("send_event"in ca))&&(!(aa in ml)||!ml[aa].includes(Sa))){var gl,wc,xu,ff,jf,Uf,rp,np,qm;I$8(ml[aa])?ml[aa].push(Sa):ml[aa]=[Sa],(gl=this._instance.persistence)==null||gl.register({[le$2]:ml});var Vm=this.getFeatureFlagDetails(aa),eg={$feature_flag:aa,$feature_flag_response:ua,$feature_flag_payload:this.getFeatureFlagPayload(aa)||null,$feature_flag_request_id:hl,$feature_flag_evaluated_at:pl,$feature_flag_bootstrapped_response:((wc=this._instance.config.bootstrap)==null||(wc=wc.featureFlags)==null?void 0:wc[aa])||null,$feature_flag_bootstrapped_payload:((xu=this._instance.config.bootstrap)==null||(xu=xu.featureFlagPayloads)==null?void 0:xu[aa])||null,$used_bootstrap_value:!this.vi};M$6(Vm==null||(ff=Vm.metadata)==null?void 0:ff.version)||(eg.$feature_flag_version=Vm.metadata.version);var tg,rg=(jf=Vm==null||(Uf=Vm.reason)==null?void 0:Uf.description)!==null&&jf!==void 0?jf:Vm==null||(rp=Vm.reason)==null?void 0:rp.code;rg&&(eg.$feature_flag_reason=rg),Vm!=null&&(np=Vm.metadata)!=null&&np.id&&(eg.$feature_flag_id=Vm.metadata.id),M$6(Vm?.original_variant)&&M$6(Vm?.original_enabled)||(eg.$feature_flag_original_response=M$6(Vm.original_variant)?Vm.original_enabled:Vm.original_variant),Vm!=null&&(qm=Vm.metadata)!=null&&qm.original_payload&&(eg.$feature_flag_original_payload=Vm==null||(tg=Vm.metadata)==null?void 0:tg.original_payload),this._instance.capture("$feature_flag_called",eg)}return ua}yn.warn('getFeatureFlag for key "'+aa+`" failed. Feature flags didn't load in time.`)}getFeatureFlagDetails(aa){return this.getFlagsWithDetails()[aa]}getFeatureFlagPayload(aa){return this.getFlagPayloads()[aa]}getRemoteConfigPayload(aa,ca){var ua=this._instance.config.token,Sa={distinct_id:this._instance.get_distinct_id(),token:ua};this.fi()&&(Sa.evaluation_environments=this.ci()),this._instance._send_request({method:"POST",url:this._instance.requestRouter.endpointFor("flags","/flags/?v=2&config=true"),data:Sa,compression:this._instance.config.disable_compression?void 0:er.Base64,timeout:this._instance.config.feature_flag_request_timeout_ms,callback:hl=>{var pl,ml=(pl=hl.json)==null?void 0:pl.featureFlagPayloads;ca(ml?.[aa]||void 0)}})}isFeatureEnabled(aa,ca){if(ca===void 0&&(ca={}),this.ai||this.getFlags()&&this.getFlags().length>0){var ua=this.getFeatureFlag(aa,ca);return M$6(ua)?void 0:!!ua}yn.warn('isFeatureEnabled for key "'+aa+`" failed. Feature flags didn't load in time.`)}addFeatureFlagsHandler(aa){this.featureFlagEventHandlers.push(aa)}removeFeatureFlagsHandler(aa){this.featureFlagEventHandlers=this.featureFlagEventHandlers.filter((ca=>ca!==aa))}receivedFeatureFlags(aa,ca){if(this._instance.persistence){this.ai=!0;var ua=this.getFlagVariants(),Sa=this.getFlagPayloads(),hl=this.getFlagsWithDetails();(function(pl,ml,gl,wc,xu){gl===void 0&&(gl={}),wc===void 0&&(wc={}),xu===void 0&&(xu={});var ff=Tn(pl),jf=ff.flags,Uf=ff.featureFlags,rp=ff.featureFlagPayloads;if(Uf){var np=pl.requestId,qm=pl.evaluatedAt;if(I$8(Uf)){yn.warn("v1 of the feature flags endpoint is deprecated. Please use the latest version.");var Vm={};if(Uf)for(var eg=0;eg<Uf.length;eg++)Vm[Uf[eg]]=!0;ml&&ml.register({[wn]:Uf,[ee$4]:Vm})}else{var tg=Uf,rg=rp,ig=jf;pl.errorsWhileComputingFlags&&(tg=g$8({},gl,tg),rg=g$8({},wc,rg),ig=g$8({},xu,ig)),ml&&ml.register(g$8({[wn]:Object.keys(Pn(tg)),[ee$4]:tg||{},[En]:rg||{},[se$3]:ig||{}},np?{[Sn]:np}:{},qm?{[kn]:qm}:{}))}}})(aa,this._instance.persistence,ua,Sa,hl),this.bi(ca)}}override(aa,ca){ca===void 0&&(ca=!1),yn.warn("override is deprecated. Please use overrideFeatureFlags instead."),this.overrideFeatureFlags({flags:aa,suppressWarning:ca})}overrideFeatureFlags(aa){if(!this._instance.__loaded||!this._instance.persistence)return yn.uninitializedWarning("posthog.featureFlags.overrideFeatureFlags");if(aa===!1)return this._instance.persistence.unregister(xn),this._instance.persistence.unregister($n),this.bi(),bn.info("All overrides cleared");if(aa&&typeof aa=="object"&&("flags"in aa||"payloads"in aa)){var ca,ua=aa;if(this.oi=!!((ca=ua.suppressWarning)!==null&&ca!==void 0&&ca),"flags"in ua){if(ua.flags===!1)this._instance.persistence.unregister(xn),bn.info("Flag overrides cleared");else if(ua.flags){if(I$8(ua.flags)){for(var Sa={},hl=0;hl<ua.flags.length;hl++)Sa[ua.flags[hl]]=!0;this._instance.persistence.register({[xn]:Sa})}else this._instance.persistence.register({[xn]:ua.flags});bn.info("Flag overrides set",{flags:ua.flags})}}return"payloads"in ua&&(ua.payloads===!1?(this._instance.persistence.unregister($n),bn.info("Payload overrides cleared")):ua.payloads&&(this._instance.persistence.register({[$n]:ua.payloads}),bn.info("Payload overrides set",{payloads:ua.payloads}))),void this.bi()}this.bi()}onFeatureFlags(aa){if(this.addFeatureFlagsHandler(aa),this.ai){var{flags:ca,flagVariants:ua}=this.wi();aa(ca,ua)}return()=>this.removeFeatureFlagsHandler(aa)}updateEarlyAccessFeatureEnrollment(aa,ca,ua){var Sa,hl=(this._instance.get_property(re$1)||[]).find((wc=>wc.flagKey===aa)),pl={["$feature_enrollment/"+aa]:ca},ml={$feature_flag:aa,$feature_enrollment:ca,$set:pl};hl&&(ml.$early_access_feature_name=hl.name),ua&&(ml.$feature_enrollment_stage=ua),this._instance.capture("$feature_enrollment_update",ml),this.setPersonPropertiesForFlags(pl,!1);var gl=g$8({},this.getFlagVariants(),{[aa]:ca});(Sa=this._instance.persistence)==null||Sa.register({[wn]:Object.keys(Pn(gl)),[ee$4]:gl}),this.bi()}getEarlyAccessFeatures(aa,ca,ua){ca===void 0&&(ca=!1);var Sa=this._instance.get_property(re$1),hl=ua?"&"+ua.map((pl=>"stage="+pl)).join("&"):"";if(Sa&&!ca)return aa(Sa);this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/early_access_features/?token="+this._instance.config.token+hl),method:"GET",callback:pl=>{var ml,gl;if(pl.json){var wc=pl.json.earlyAccessFeatures;return(ml=this._instance.persistence)==null||ml.unregister(re$1),(gl=this._instance.persistence)==null||gl.register({[re$1]:wc}),aa(wc)}}})}wi(){var aa=this.getFlags(),ca=this.getFlagVariants();return{flags:aa.filter((ua=>ca[ua])),flagVariants:Object.keys(ca).filter((ua=>ca[ua])).reduce(((ua,Sa)=>(ua[Sa]=ca[Sa],ua)),{})}}bi(aa){var{flags:ca,flagVariants:ua}=this.wi();this.featureFlagEventHandlers.forEach((Sa=>Sa(ca,ua,{errorsLoading:aa})))}setPersonPropertiesForFlags(aa,ca){ca===void 0&&(ca=!0);var ua=this._instance.get_property(ne$2)||{};this._instance.register({[ne$2]:g$8({},ua,aa)}),ca&&this._instance.reloadFeatureFlags()}resetPersonPropertiesForFlags(){this._instance.unregister(ne$2)}setGroupPropertiesForFlags(aa,ca){ca===void 0&&(ca=!0);var ua=this._instance.get_property(oe$2)||{};Object.keys(ua).length!==0&&Object.keys(ua).forEach((Sa=>{ua[Sa]=g$8({},ua[Sa],aa[Sa]),delete aa[Sa]})),this._instance.register({[oe$2]:g$8({},ua,aa)}),ca&&this._instance.reloadFeatureFlags()}resetGroupPropertiesForFlags(aa){if(aa){var ca=this._instance.get_property(oe$2)||{};this._instance.register({[oe$2]:g$8({},ca,{[aa]:{}})})}else this._instance.unregister(oe$2)}reset(){this.ai=!1,this.li=!1,this.ui=!1,this.hi=!1,this.di=!1,this.vi=!1,this.$anon_distinct_id=void 0,this.mi(),this.oi=!1}}var Rn=["cookie","localstorage","localstorage+cookie","sessionstorage","memory"];class Fn{constructor(aa,ca){this.R=aa,this.props={},this.xi=!1,this.Ei=(ua=>{var Sa="";return ua.token&&(Sa=ua.token.replace(/\+/g,"PL").replace(/\//g,"SL").replace(/=/g,"EQ")),ua.persistence_name?"ph_"+ua.persistence_name:"ph_"+Sa+"_posthog"})(aa),this.Y=this.$i(aa),this.load(),aa.debug&&Ei.info("Persistence loaded",aa.persistence,g$8({},this.props)),this.update_config(aa,aa,ca),this.save()}isDisabled(){return!!this.Si}$i(aa){Rn.indexOf(aa.persistence.toLowerCase())===-1&&(Ei.critical("Unknown persistence type "+aa.persistence+"; falling back to localStorage+cookie"),aa.persistence="localStorage+cookie");var ca=(function(Sa){Sa===void 0&&(Sa=[]);var hl=[...Ir,...Sa];return g$8({},Tr,{W:function(pl){try{var ml={};try{ml=kr.W(pl)||{}}catch{}var gl=Ci(ml,JSON.parse(Tr.q(pl)||"{}"));return Tr.G(pl,gl),gl}catch{}return null},G:function(pl,ml,gl,wc,xu,ff){try{Tr.G(pl,ml,void 0,void 0,ff);var jf={};hl.forEach((Uf=>{ml[Uf]&&(jf[Uf]=ml[Uf])})),Object.keys(jf).length&&kr.G(pl,jf,gl,wc,xu,ff)}catch(Uf){Tr.B(Uf)}},V:function(pl,ml){try{t$9?.localStorage.removeItem(pl),kr.V(pl,ml)}catch(gl){Tr.B(gl)}}})})(aa.cookie_persisted_properties||[]),ua=aa.persistence.toLowerCase();return ua==="localstorage"&&Tr.H()?Tr:ua==="localstorage+cookie"&&ca.H()?ca:ua==="sessionstorage"&&Mr.H()?Mr:ua==="memory"?Rr:ua==="cookie"?kr:ca.H()?ca:kr}properties(){var aa={};return Ii(this.props,(function(ca,ua){if(ua===ee$4&&R$3(ca))for(var Sa=Object.keys(ca),hl=0;hl<Sa.length;hl++)aa["$feature/"+Sa[hl]]=ca[Sa[hl]];else ml=ua,gl=!1,(D$b(pl=me$2)?gl:s$f&&pl.indexOf===s$f?pl.indexOf(ml)!=-1:(Ii(pl,(function(wc){if(gl||(gl=wc===ml))return Pi})),gl))||(aa[ua]=ca);var pl,ml,gl})),aa}load(){if(!this.Si){var aa=this.Y.W(this.Ei);aa&&(this.props=Ci({},aa))}}save(){this.Si||this.Y.G(this.Ei,this.props,this.ki,this.Pi,this.Ti,this.R.debug)}remove(){this.Y.V(this.Ei,!1),this.Y.V(this.Ei,!0)}clear(){this.remove(),this.props={}}register_once(aa,ca,ua){if(R$3(aa)){M$6(ca)&&(ca="None"),this.ki=M$6(ua)?this.Ii:ua;var Sa=!1;if(Ii(aa,((hl,pl)=>{this.props.hasOwnProperty(pl)&&this.props[pl]!==ca||(this.props[pl]=hl,Sa=!0)})),Sa)return this.save(),!0}return!1}register(aa,ca){if(R$3(aa)){this.ki=M$6(ca)?this.Ii:ca;var ua=!1;if(Ii(aa,((Sa,hl)=>{aa.hasOwnProperty(hl)&&this.props[hl]!==Sa&&(this.props[hl]=Sa,ua=!0)})),ua)return this.save(),!0}return!1}unregister(aa){aa in this.props&&(delete this.props[aa],this.save())}update_campaign_params(){if(!this.xi){var aa=as(this.R.custom_campaign_params,this.R.mask_personal_data_properties,this.R.custom_personal_data_properties);F$8(Ai(aa))||this.register(aa),this.xi=!0}}update_search_keyword(){var aa;this.register((aa=o$d?.referrer)?us(aa):{})}update_referrer_info(){var aa;this.register_once({$referrer:ds(),$referring_domain:o$d!=null&&o$d.referrer&&((aa=sr(o$d.referrer))==null?void 0:aa.host)||"$direct"},void 0)}set_initial_person_info(){this.props[ve$2]||this.props[ce$3]||this.register_once({[fe$2]:vs(this.R.mask_personal_data_properties,this.R.custom_personal_data_properties)},void 0)}get_initial_props(){var aa={};Ii([ce$3,ve$2],(pl=>{var ml=this.props[pl];ml&&Ii(ml,(function(gl,wc){aa["$initial_"+E$7(wc)]=gl}))}));var ca,ua,Sa=this.props[fe$2];if(Sa){var hl=(ca=cs(Sa),ua={},Ii(ca,(function(pl,ml){ua["$initial_"+E$7(ml)]=pl})),ua);Ci(aa,hl)}return aa}safe_merge(aa){return Ii(this.props,(function(ca,ua){ua in aa||(aa[ua]=ca)})),aa}update_config(aa,ca,ua){if(this.Ii=this.ki=aa.cookie_expiration,this.set_disabled(aa.disable_persistence||!!ua),this.set_cross_subdomain(aa.cross_subdomain_cookie),this.set_secure(aa.secure_cookie),aa.persistence!==ca.persistence||!((pl,ml)=>{if(pl.length!==ml.length)return!1;var gl=[...pl].sort(),wc=[...ml].sort();return gl.every(((xu,ff)=>xu===wc[ff]))})(aa.cookie_persisted_properties||[],ca.cookie_persisted_properties||[])){var Sa=this.$i(aa),hl=this.props;this.clear(),this.Y=Sa,this.props=hl,this.save()}}set_disabled(aa){this.Si=aa,this.Si?this.remove():this.save()}set_cross_subdomain(aa){aa!==this.Pi&&(this.Pi=aa,this.remove(),this.save())}set_secure(aa){aa!==this.Ti&&(this.Ti=aa,this.remove(),this.save())}set_event_timer(aa,ca){var ua=this.props[Bi]||{};ua[aa]=ca,this.props[Bi]=ua,this.save()}remove_event_timer(aa){var ca=(this.props[Bi]||{})[aa];return M$6(ca)||(delete this.props[Bi][aa],this.save()),ca}get_property(aa){return this.props[aa]}set_property(aa,ca){this.props[aa]=ca,this.save()}}var Mn=$i("[Product Tours]"),On="ph_product_tours";class An{constructor(aa){this.Ci=null,this.Ri=null,this._instance=aa}onRemoteConfig(aa){this._instance.persistence&&this._instance.persistence.register({[Xi]:!(aa==null||!aa.productTours)}),this.loadIfEnabled()}loadIfEnabled(){var aa,ca;this.Ci||(aa=this._instance).config.disable_product_tours||(ca=aa.persistence)==null||!ca.get_property(Xi)||this.it((()=>this.Fi()))}it(aa){var ca,ua;(ca=v$7.__PosthogExtensions__)!=null&&ca.generateProductTours?aa():(ua=v$7.__PosthogExtensions__)==null||ua.loadExternalDependency==null||ua.loadExternalDependency(this._instance,"product-tours",(Sa=>{Sa?Mn.error("Could not load product tours script",Sa):aa()}))}Fi(){var aa;!this.Ci&&(aa=v$7.__PosthogExtensions__)!=null&&aa.generateProductTours&&(this.Ci=v$7.__PosthogExtensions__.generateProductTours(this._instance,!0))}getProductTours(aa,ca){if(ca===void 0&&(ca=!1),!I$8(this.Ri)||ca){var ua=this._instance.persistence;if(ua){var Sa=ua.props[On];if(I$8(Sa)&&!ca)return this.Ri=Sa,void aa(Sa,{isLoaded:!0})}this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/product_tours/?token="+this._instance.config.token),method:"GET",callback:hl=>{var pl=hl.statusCode;if(pl!==200||!hl.json){var ml="Product Tours API could not be loaded, status: "+pl;return Mn.error(ml),void aa([],{isLoaded:!1,error:ml})}var gl=I$8(hl.json.product_tours)?hl.json.product_tours:[];this.Ri=gl,ua&&ua.register({[On]:gl}),aa(gl,{isLoaded:!0})}})}else aa(this.Ri,{isLoaded:!0})}getActiveProductTours(aa){j$a(this.Ci)?aa([],{isLoaded:!1,error:"Product tours not loaded"}):this.Ci.getActiveProductTours(aa)}showProductTour(aa){var ca;(ca=this.Ci)==null||ca.showTourById(aa)}previewTour(aa){this.Ci?this.Ci.previewTour(aa):this.it((()=>{var ca;this.Fi(),(ca=this.Ci)==null||ca.previewTour(aa)}))}dismissProductTour(){var aa;(aa=this.Ci)==null||aa.dismissTour("user_clicked_skip")}nextStep(){var aa;(aa=this.Ci)==null||aa.nextStep()}previousStep(){var aa;(aa=this.Ci)==null||aa.previousStep()}clearCache(){var aa;this.Ri=null,(aa=this._instance.persistence)==null||aa.unregister(On)}resetTour(aa){var ca;(ca=this.Ci)==null||ca.resetTour(aa)}resetAllTours(){var aa;(aa=this.Ci)==null||aa.resetAllTours()}cancelPendingTour(aa){var ca;(ca=this.Ci)==null||ca.cancelPendingTour(aa)}}var Dn=(function(la){return la.Activation="events",la.Cancellation="cancelEvents",la})({});(function(la){return la.Button="button",la.Tab="tab",la.Selector="selector",la})({});(function(la){return la.TopLeft="top_left",la.TopRight="top_right",la.TopCenter="top_center",la.MiddleLeft="middle_left",la.MiddleRight="middle_right",la.MiddleCenter="middle_center",la.Left="left",la.Center="center",la.Right="right",la.NextToTrigger="next_to_trigger",la})({});(function(la){return la.Top="top",la.Left="left",la.Right="right",la.Bottom="bottom",la})({});var Un=(function(la){return la.Popover="popover",la.API="api",la.Widget="widget",la.ExternalSurvey="external_survey",la})({});(function(la){return la.Open="open",la.MultipleChoice="multiple_choice",la.SingleChoice="single_choice",la.Rating="rating",la.Link="link",la})({});(function(la){return la.NextQuestion="next_question",la.End="end",la.ResponseBased="response_based",la.SpecificQuestion="specific_question",la})({});(function(la){return la.Once="once",la.Recurring="recurring",la.Always="always",la})({});var qn=(function(la){return la.SHOWN="survey shown",la.DISMISSED="survey dismissed",la.SENT="survey sent",la.ABANDONED="survey abandoned",la})({}),Wn=(function(la){return la.SURVEY_ID="$survey_id",la.SURVEY_NAME="$survey_name",la.SURVEY_RESPONSE="$survey_response",la.SURVEY_ITERATION="$survey_iteration",la.SURVEY_ITERATION_START_DATE="$survey_iteration_start_date",la.SURVEY_PARTIALLY_COMPLETED="$survey_partially_completed",la.SURVEY_SUBMISSION_ID="$survey_submission_id",la.SURVEY_QUESTIONS="$survey_questions",la.SURVEY_COMPLETED="$survey_completed",la.PRODUCT_TOUR_ID="$product_tour_id",la})({}),Gn=(function(la){return la.Popover="popover",la.Inline="inline",la})({}),Vn=$i("[Surveys]"),Jn="seenSurvey_",Kn=(la,aa)=>{var ca="$survey_"+aa+"/"+la.id;return la.current_iteration&&la.current_iteration>0&&(ca="$survey_"+aa+"/"+la.id+"/"+la.current_iteration),ca},Yn=la=>((aa,ca)=>{var ua=""+aa+ca.id;return ca.current_iteration&&ca.current_iteration>0&&(ua=""+aa+ca.id+"_"+ca.current_iteration),ua})(Jn,la),Xn=[Un.Popover,Un.Widget,Un.API],Qn={ignoreConditions:!1,ignoreDelay:!1,displayType:Gn.Popover};class Zn{constructor(){this.Mi={},this.Mi={}}on(aa,ca){return this.Mi[aa]||(this.Mi[aa]=[]),this.Mi[aa].push(ca),()=>{this.Mi[aa]=this.Mi[aa].filter((ua=>ua!==ca))}}emit(aa,ca){for(var ua of this.Mi[aa]||[])ua(ca);for(var Sa of this.Mi["*"]||[])Sa(aa,ca)}}function to(la,aa,ca){if(j$a(la))return!1;switch(ca){case"exact":return la===aa;case"contains":var ua=aa.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/_/g,".").replace(/%/g,".*");return new RegExp(ua,"i").test(la);case"regex":try{return new RegExp(aa).test(la)}catch{return!1}default:return!1}}class io{constructor(aa){this.Oi=new Zn,this.Ai=(ca,ua)=>this.Di(ca,ua)&&this.ji(ca,ua)&&this.Li(ca,ua)&&this.Ni(ca,ua),this.Di=(ca,ua)=>ua==null||!ua.event||ca?.event===ua?.event,this._instance=aa,this.Ui=new Set,this.zi=new Set}init(){var aa;if(!M$6((aa=this._instance)==null?void 0:aa.Hi)){var ca;(ca=this._instance)==null||ca.Hi(((ua,Sa)=>{this.on(ua,Sa)}))}}register(aa){var ca,ua;if(!M$6((ca=this._instance)==null?void 0:ca.Hi)&&(aa.forEach((pl=>{var ml,gl;(ml=this.zi)==null||ml.add(pl),(gl=pl.steps)==null||gl.forEach((wc=>{var xu;(xu=this.Ui)==null||xu.add(wc?.event||"")}))})),(ua=this._instance)!=null&&ua.autocapture)){var Sa,hl=new Set;aa.forEach((pl=>{var ml;(ml=pl.steps)==null||ml.forEach((gl=>{gl!=null&&gl.selector&&hl.add(gl?.selector)}))})),(Sa=this._instance)==null||Sa.autocapture.setElementSelectors(hl)}}on(aa,ca){var ua;ca!=null&&aa.length!=0&&(this.Ui.has(aa)||this.Ui.has(ca?.event))&&this.zi&&((ua=this.zi)==null?void 0:ua.size)>0&&this.zi.forEach((Sa=>{this.Bi(ca,Sa)&&this.Oi.emit("actionCaptured",Sa.name)}))}qi(aa){this.onAction("actionCaptured",(ca=>aa(ca)))}Bi(aa,ca){if(ca?.steps==null)return!1;for(var ua of ca.steps)if(this.Ai(aa,ua))return!0;return!1}onAction(aa,ca){return this.Oi.on(aa,ca)}ji(aa,ca){if(ca!=null&&ca.url){var ua,Sa=aa==null||(ua=aa.properties)==null?void 0:ua.$current_url;if(!Sa||typeof Sa!="string"||!to(Sa,ca.url,ca.url_matching||"contains"))return!1}return!0}Li(aa,ca){return!!this.Wi(aa,ca)&&!!this.Gi(aa,ca)&&!!this.Vi(aa,ca)}Wi(aa,ca){var ua;if(ca==null||!ca.href)return!0;var Sa=this.Ji(aa);if(Sa.length>0)return Sa.some((ml=>to(ml.href,ca.href,ca.href_matching||"exact")));var hl,pl=(aa==null||(ua=aa.properties)==null?void 0:ua.$elements_chain)||"";return!!pl&&to((hl=pl.match(/(?::|")href="(.*?)"/))?hl[1]:"",ca.href,ca.href_matching||"exact")}Gi(aa,ca){var ua;if(ca==null||!ca.text)return!0;var Sa=this.Ji(aa);if(Sa.length>0)return Sa.some((wc=>to(wc.text,ca.text,ca.text_matching||"exact")||to(wc.$el_text,ca.text,ca.text_matching||"exact")));var hl,pl,ml,gl=(aa==null||(ua=aa.properties)==null?void 0:ua.$elements_chain)||"";return!!gl&&(hl=(function(wc){for(var xu,ff=[],jf=/(?::|")text="(.*?)"/g;!j$a(xu=jf.exec(wc));)ff.includes(xu[1])||ff.push(xu[1]);return ff})(gl),pl=ca.text,ml=ca.text_matching||"exact",hl.some((wc=>to(wc,pl,ml))))}Vi(aa,ca){var ua,Sa;if(ca==null||!ca.selector)return!0;var hl=aa==null||(ua=aa.properties)==null?void 0:ua.$element_selectors;if(hl!=null&&hl.includes(ca.selector))return!0;var pl=(aa==null||(Sa=aa.properties)==null?void 0:Sa.$elements_chain)||"";if(ca.selector_regex&&pl)try{return new RegExp(ca.selector_regex).test(pl)}catch{return!1}return!1}Ji(aa){var ca;return(aa==null||(ca=aa.properties)==null?void 0:ca.$elements)==null?[]:aa?.properties.$elements}Ni(aa,ca){return ca==null||!ca.properties||ca.properties.length===0||gn(ca.properties.reduce(((ua,Sa)=>{var hl=I$8(Sa.value)?Sa.value.map(String):Sa.value!=null?[String(Sa.value)]:[];return ua[Sa.key]={values:hl,operator:Sa.operator||"exact"},ua}),{}),aa?.properties)}}class eo{constructor(aa){this._instance=aa,this.Ki=new Map,this.Yi=new Map,this.Xi=new Map}Qi(aa,ca){return!!aa&&gn(aa.propertyFilters,ca?.properties)}Zi(aa,ca){var ua=new Map;return aa.forEach((Sa=>{var hl;(hl=Sa.conditions)==null||(hl=hl[ca])==null||(hl=hl.values)==null||hl.forEach((pl=>{if(pl!=null&&pl.name){var ml=ua.get(pl.name)||[];ml.push(Sa.id),ua.set(pl.name,ml)}}))})),ua}te(aa,ca,ua){var Sa=(ua===Dn.Activation?this.Ki:this.Yi).get(aa),hl=[];return this.ie((pl=>{hl=pl.filter((ml=>Sa?.includes(ml.id)))})),hl.filter((pl=>{var ml,gl=(ml=pl.conditions)==null||(ml=ml[ua])==null||(ml=ml.values)==null?void 0:ml.find((wc=>wc.name===aa));return this.Qi(gl,ca)}))}register(aa){var ca;M$6((ca=this._instance)==null?void 0:ca.Hi)||(this.ee(aa),this.re(aa))}re(aa){var ca=aa.filter((ua=>{var Sa,hl;return((Sa=ua.conditions)==null?void 0:Sa.actions)&&((hl=ua.conditions)==null||(hl=hl.actions)==null||(hl=hl.values)==null?void 0:hl.length)>0}));ca.length!==0&&(this.se==null&&(this.se=new io(this._instance),this.se.init(),this.se.qi((ua=>{this.onAction(ua)}))),ca.forEach((ua=>{var Sa,hl,pl,ml,gl;ua.conditions&&(Sa=ua.conditions)!=null&&Sa.actions&&(hl=ua.conditions)!=null&&(hl=hl.actions)!=null&&hl.values&&((pl=ua.conditions)==null||(pl=pl.actions)==null||(pl=pl.values)==null?void 0:pl.length)>0&&((ml=this.se)==null||ml.register(ua.conditions.actions.values),(gl=ua.conditions)==null||(gl=gl.actions)==null||(gl=gl.values)==null||gl.forEach((wc=>{if(wc&&wc.name){var xu=this.Xi.get(wc.name);xu&&xu.push(ua.id),this.Xi.set(wc.name,xu||[ua.id])}})))})))}ee(aa){var ca,ua=aa.filter((hl=>{var pl,ml;return((pl=hl.conditions)==null?void 0:pl.events)&&((ml=hl.conditions)==null||(ml=ml.events)==null||(ml=ml.values)==null?void 0:ml.length)>0})),Sa=aa.filter((hl=>{var pl,ml;return((pl=hl.conditions)==null?void 0:pl.cancelEvents)&&((ml=hl.conditions)==null||(ml=ml.cancelEvents)==null||(ml=ml.values)==null?void 0:ml.length)>0}));(ua.length!==0||Sa.length!==0)&&((ca=this._instance)==null||ca.Hi(((hl,pl)=>{this.onEvent(hl,pl)})),this.Ki=this.Zi(aa,Dn.Activation),this.Yi=this.Zi(aa,Dn.Cancellation))}onEvent(aa,ca){var ua,Sa=this.ne(),hl=this.oe(),pl=this.ae(),ml=((ua=this._instance)==null||(ua=ua.persistence)==null?void 0:ua.props[hl])||[];if(pl===aa&&ca&&ml.length>0){var gl,wc;Sa.info("event matched, removing item from activated items",{event:aa,eventPayload:ca,existingActivatedItems:ml});var xu=(ca==null||(gl=ca.properties)==null?void 0:gl.$survey_id)||(ca==null||(wc=ca.properties)==null?void 0:wc.$product_tour_id);if(xu){var ff=ml.indexOf(xu);ff>=0&&(ml.splice(ff,1),this.le(ml))}}else{if(this.Yi.has(aa)){var jf=this.te(aa,ca,Dn.Cancellation);jf.length>0&&(Sa.info("cancel event matched, cancelling items",{event:aa,itemsToCancel:jf.map((rp=>rp.id))}),jf.forEach((rp=>{var np=ml.indexOf(rp.id);np>=0&&ml.splice(np,1),this.ue(rp.id)})),this.le(ml))}if(this.Ki.has(aa)){Sa.info("event name matched",{event:aa,eventPayload:ca,items:this.Ki.get(aa)});var Uf=this.te(aa,ca,Dn.Activation);this.le(ml.concat(Uf.map((rp=>rp.id))||[]))}}}onAction(aa){var ca,ua=this.oe(),Sa=((ca=this._instance)==null||(ca=ca.persistence)==null?void 0:ca.props[ua])||[];this.Xi.has(aa)&&this.le(Sa.concat(this.Xi.get(aa)||[]))}le(aa){var ca,ua=this.ne(),Sa=this.oe(),hl=[...new Set(aa)].filter((pl=>!this.he(pl)));ua.info("updating activated items",{activatedItems:hl}),(ca=this._instance)==null||(ca=ca.persistence)==null||ca.register({[Sa]:hl})}getActivatedIds(){var aa,ca=this.oe(),ua=(aa=this._instance)==null||(aa=aa.persistence)==null?void 0:aa.props[ca];return ua||[]}getEventToItemsMap(){return this.Ki}de(){return this.se}}class ro extends eo{constructor(aa){super(aa)}oe(){return"$surveys_activated"}ae(){return qn.SHOWN}ie(aa){var ca;(ca=this._instance)==null||ca.getSurveys(aa)}ue(aa){var ca;(ca=this._instance)==null||ca.cancelPendingSurvey(aa)}ne(){return Vn}he(){return!1}getSurveys(){return this.getActivatedIds()}getEventToSurveys(){return this.getEventToItemsMap()}}class so{constructor(aa){this.ve=void 0,this._surveyManager=null,this.ce=!1,this.fe=[],this.pe=null,this._instance=aa,this._surveyEventReceiver=null}onRemoteConfig(aa){if(!this._instance.config.disable_surveys){var ca=aa.surveys;if(j$a(ca))return Vn.warn("Flags not loaded yet. Not loading surveys.");var ua=I$8(ca);this.ve=ua?ca.length>0:ca,Vn.info("flags response received, isSurveysEnabled: "+this.ve),this.loadIfEnabled()}}reset(){localStorage.removeItem("lastSeenSurveyDate");for(var aa=[],ca=0;ca<localStorage.length;ca++){var ua=localStorage.key(ca);(ua!=null&&ua.startsWith(Jn)||ua!=null&&ua.startsWith("inProgressSurvey_"))&&aa.push(ua)}aa.forEach((Sa=>localStorage.removeItem(Sa)))}loadIfEnabled(){if(!this._surveyManager)if(this.ce)Vn.info("Already initializing surveys, skipping...");else if(this._instance.config.disable_surveys)Vn.info("Disabled. Not loading surveys.");else if(this._instance.config.cookieless_mode&&this._instance.consent.isOptedOut())Vn.info("Not loading surveys in cookieless mode without consent.");else{var aa=v$7?.__PosthogExtensions__;if(aa){if(!M$6(this.ve)||this._instance.config.advanced_enable_surveys){var ca=this.ve||this._instance.config.advanced_enable_surveys;this.ce=!0;try{var ua=aa.generateSurveys;if(ua)return void this.ge(ua,ca);var Sa=aa.loadExternalDependency;if(!Sa)return void this._e("PostHog loadExternalDependency extension not found.");Sa(this._instance,"surveys",(hl=>{hl||!aa.generateSurveys?this._e("Could not load surveys script",hl):this.ge(aa.generateSurveys,ca)}))}catch(hl){throw this._e("Error initializing surveys",hl),hl}finally{this.ce=!1}}}else Vn.error("PostHog Extensions not found.")}}ge(aa,ca){this._surveyManager=aa(this._instance,ca),this._surveyEventReceiver=new ro(this._instance),Vn.info("Surveys loaded successfully"),this.me({isLoaded:!0})}_e(aa,ca){Vn.error(aa,ca),this.me({isLoaded:!1,error:aa})}onSurveysLoaded(aa){return this.fe.push(aa),this._surveyManager&&this.me({isLoaded:!0}),()=>{this.fe=this.fe.filter((ca=>ca!==aa))}}getSurveys(aa,ca){if(ca===void 0&&(ca=!1),this._instance.config.disable_surveys)return Vn.info("Disabled. Not loading surveys."),aa([]);var ua,Sa=this._instance.get_property(ae$3);if(Sa&&!ca)return aa(Sa,{isLoaded:!0});typeof Promise<"u"&&this.pe?this.pe.then((hl=>{var{surveys:pl,context:ml}=hl;return aa(pl,ml)})):(typeof Promise<"u"&&(this.pe=new Promise((hl=>{ua=hl}))),this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/surveys/?token="+this._instance.config.token),method:"GET",timeout:this._instance.config.surveys_request_timeout_ms,callback:hl=>{var pl;this.pe=null;var ml=hl.statusCode;if(ml!==200||!hl.json){var gl="Surveys API could not be loaded, status: "+ml;Vn.error(gl);var wc={isLoaded:!1,error:gl};return aa([],wc),void(ua==null||ua({surveys:[],context:wc}))}var xu,ff=hl.json.surveys||[],jf=ff.filter((rp=>(function(np){return!(!np.start_date||np.end_date)})(rp)&&((function(np){var qm;return!((qm=np.conditions)==null||(qm=qm.events)==null||(qm=qm.values)==null||!qm.length)})(rp)||(function(np){var qm;return!((qm=np.conditions)==null||(qm=qm.actions)==null||(qm=qm.values)==null||!qm.length)})(rp))));jf.length>0&&((xu=this._surveyEventReceiver)==null||xu.register(jf)),(pl=this._instance.persistence)==null||pl.register({[ae$3]:ff});var Uf={isLoaded:!0};aa(ff,Uf),ua?.({surveys:ff,context:Uf})}}))}me(aa){for(var ca of this.fe)try{if(!aa.isLoaded)return ca([],aa);this.getSurveys(ca)}catch(ua){Vn.error("Error in survey callback",ua)}}getActiveMatchingSurveys(aa,ca){if(ca===void 0&&(ca=!1),!j$a(this._surveyManager))return this._surveyManager.getActiveMatchingSurveys(aa,ca);Vn.warn("init was not called")}ye(aa){var ca=null;return this.getSurveys((ua=>{var Sa;ca=(Sa=ua.find((hl=>hl.id===aa)))!==null&&Sa!==void 0?Sa:null})),ca}be(aa){if(j$a(this._surveyManager))return{eligible:!1,reason:"SDK is not enabled or survey functionality is not yet loaded"};var ca=typeof aa=="string"?this.ye(aa):aa;return ca?this._surveyManager.checkSurveyEligibility(ca):{eligible:!1,reason:"Survey not found"}}canRenderSurvey(aa){if(j$a(this._surveyManager))return Vn.warn("init was not called"),{visible:!1,disabledReason:"SDK is not enabled or survey functionality is not yet loaded"};var ca=this.be(aa);return{visible:ca.eligible,disabledReason:ca.reason}}canRenderSurveyAsync(aa,ca){return j$a(this._surveyManager)?(Vn.warn("init was not called"),Promise.resolve({visible:!1,disabledReason:"SDK is not enabled or survey functionality is not yet loaded"})):new Promise((ua=>{this.getSurveys((Sa=>{var hl,pl=(hl=Sa.find((gl=>gl.id===aa)))!==null&&hl!==void 0?hl:null;if(pl){var ml=this.be(pl);ua({visible:ml.eligible,disabledReason:ml.reason})}else ua({visible:!1,disabledReason:"Survey not found"})}),ca)}))}renderSurvey(aa,ca){var ua;if(j$a(this._surveyManager))Vn.warn("init was not called");else{var Sa=typeof aa=="string"?this.ye(aa):aa;if(Sa!=null&&Sa.id)if(Xn.includes(Sa.type)){var hl=o$d?.querySelector(ca);if(hl)return(ua=Sa.appearance)!=null&&ua.surveyPopupDelaySeconds?(Vn.info("Rendering survey "+Sa.id+" with delay of "+Sa.appearance.surveyPopupDelaySeconds+" seconds"),void setTimeout((()=>{var pl,ml;Vn.info("Rendering survey "+Sa.id+" with delay of "+((pl=Sa.appearance)==null?void 0:pl.surveyPopupDelaySeconds)+" seconds"),(ml=this._surveyManager)==null||ml.renderSurvey(Sa,hl),Vn.info("Survey "+Sa.id+" rendered")}),1e3*Sa.appearance.surveyPopupDelaySeconds)):void this._surveyManager.renderSurvey(Sa,hl);Vn.warn("Survey element not found")}else Vn.warn("Surveys of type "+Sa.type+" cannot be rendered in the app");else Vn.warn("Survey not found")}}displaySurvey(aa,ca){var ua;if(j$a(this._surveyManager))Vn.warn("init was not called");else{var Sa=this.ye(aa);if(Sa){var hl=Sa;if((ua=Sa.appearance)!=null&&ua.surveyPopupDelaySeconds&&ca.ignoreDelay&&(hl=g$8({},Sa,{appearance:g$8({},Sa.appearance,{surveyPopupDelaySeconds:0})})),ca.ignoreConditions===!1){var pl=this.canRenderSurvey(Sa);if(!pl.visible)return void Vn.warn("Survey is not eligible to be displayed: ",pl.disabledReason)}ca.displayType!==Gn.Inline?this._surveyManager.handlePopoverSurvey(hl):this.renderSurvey(hl,ca.selector)}else Vn.warn("Survey not found")}}cancelPendingSurvey(aa){j$a(this._surveyManager)?Vn.warn("init was not called"):this._surveyManager.cancelSurvey(aa)}handlePageUnload(){var aa;(aa=this._surveyManager)==null||aa.handlePageUnload()}}var no=$i("[Conversations]");class oo{constructor(aa){this.we=void 0,this._conversationsManager=null,this.xe=!1,this.Ee=null,this._instance=aa}onRemoteConfig(aa){if(!this._instance.config.disable_conversations){var ca=aa.conversations;j$a(ca)||(N$6(ca)?this.we=ca:(this.we=ca.enabled,this.Ee=ca),this.loadIfEnabled())}}reset(){var aa;(aa=this._conversationsManager)==null||aa.reset(),this._conversationsManager=null,this.we=void 0,this.Ee=null}loadIfEnabled(){if(!this._conversationsManager&&!this.xe&&!(this._instance.config.disable_conversations||this._instance.config.cookieless_mode&&this._instance.consent.isOptedOut())){var aa=v$7?.__PosthogExtensions__;if(aa&&!M$6(this.we)&&this.we)if(this.Ee&&this.Ee.token){if((function(Sa){var hl;if(!Sa||Sa.length===0)return!0;var pl=t$9==null||(hl=t$9.location)==null?void 0:hl.hostname;return!pl||Sa.some((ml=>{var gl=(function(xu){var ff=xu.replace(/^https?:\/\//,"");return(ff=ff.split("/")[0].split("?")[0].split(":")[0])||null})(ml);if(!gl)return!1;if(gl.startsWith("*.")){var wc=gl.slice(2);return pl.endsWith("."+wc)||pl===wc}return pl===gl}))})(this.Ee.domains)){this.xe=!0;try{var ca=aa.initConversations;if(ca)return this.$e(ca),void(this.xe=!1);var ua=aa.loadExternalDependency;if(!ua)return void this.Se("PostHog loadExternalDependency extension not found.");ua(this._instance,"conversations",(Sa=>{Sa||!aa.initConversations?this.Se("Could not load conversations script",Sa):this.$e(aa.initConversations),this.xe=!1}))}catch(Sa){this.Se("Error initializing conversations",Sa),this.xe=!1}}}else no.error("Conversations enabled but missing token in remote config.")}}$e(aa){if(this.Ee)try{this._conversationsManager=aa(this.Ee,this._instance),no.info("Conversations loaded successfully")}catch(ca){this.Se("Error completing conversations initialization",ca)}else no.error("Cannot complete initialization: remote config is null")}Se(aa,ca){no.error(aa,ca),this._conversationsManager=null,this.xe=!1}enable(){this._conversationsManager?this._conversationsManager.enable():no.warn("Conversations not loaded yet.")}disable(){this._conversationsManager&&this._conversationsManager.disable()}isLoaded(){return!D$b(this._conversationsManager)}isEnabled(){return this.we===!0}}var ao=$i("[RateLimiter]");let lo$1=class{constructor(aa){var ca,ua;this.serverLimits={},this.lastEventRateLimited=!1,this.checkForLimiting=Sa=>{var hl=Sa.text;if(hl&&hl.length)try{(JSON.parse(hl).quota_limited||[]).forEach((pl=>{ao.info((pl||"events")+" is quota limited."),this.serverLimits[pl]=new Date().getTime()+6e4}))}catch(pl){return void ao.warn('could not rate limit - continuing. Error: "'+pl?.message+'"',{text:hl})}},this.instance=aa,this.captureEventsPerSecond=((ca=aa.config.rate_limiting)==null?void 0:ca.events_per_second)||10,this.captureEventsBurstLimit=Math.max(((ua=aa.config.rate_limiting)==null?void 0:ua.events_burst_limit)||10*this.captureEventsPerSecond,this.captureEventsPerSecond),this.lastEventRateLimited=this.clientRateLimitContext(!0).isRateLimited}clientRateLimitContext(aa){var ca,ua,Sa;aa===void 0&&(aa=!1);var hl=new Date().getTime(),pl=(ca=(ua=this.instance.persistence)==null?void 0:ua.get_property(de$3))!==null&&ca!==void 0?ca:{tokens:this.captureEventsBurstLimit,last:hl};pl.tokens+=(hl-pl.last)/1e3*this.captureEventsPerSecond,pl.last=hl,pl.tokens>this.captureEventsBurstLimit&&(pl.tokens=this.captureEventsBurstLimit);var ml=pl.tokens<1;return ml||aa||(pl.tokens=Math.max(0,pl.tokens-1)),!ml||this.lastEventRateLimited||aa||this.instance.capture("$$client_ingestion_warning",{$$client_ingestion_warning_message:"posthog-js client rate limited. Config is set to "+this.captureEventsPerSecond+" events per second and "+this.captureEventsBurstLimit+" events burst limit."},{skip_client_rate_limiting:!0}),this.lastEventRateLimited=ml,(Sa=this.instance.persistence)==null||Sa.set_property(de$3,pl),{isRateLimited:ml,remainingTokens:pl.tokens}}isServerRateLimited(aa){var ca=this.serverLimits[aa||"events"]||!1;return ca!==!1&&new Date().getTime()<ca}};var uo=$i("[RemoteConfig]");class ho{constructor(aa){this._instance=aa}get remoteConfig(){var aa;return(aa=v$7._POSTHOG_REMOTE_CONFIG)==null||(aa=aa[this._instance.config.token])==null?void 0:aa.config}ke(aa){var ca,ua;(ca=v$7.__PosthogExtensions__)!=null&&ca.loadExternalDependency?(ua=v$7.__PosthogExtensions__)==null||ua.loadExternalDependency==null||ua.loadExternalDependency(this._instance,"remote-config",(()=>aa(this.remoteConfig))):(uo.error("PostHog Extensions not found. Cannot load remote config."),aa())}Pe(aa){this._instance._send_request({method:"GET",url:this._instance.requestRouter.endpointFor("assets","/array/"+this._instance.config.token+"/config"),callback:ca=>{aa(ca.json)}})}load(){try{if(this.remoteConfig)return uo.info("Using preloaded remote config",this.remoteConfig),void this.yi(this.remoteConfig);if(this._instance.O())return void uo.warn("Remote config is disabled. Falling back to local config.");this.ke((aa=>{if(!aa)return uo.info("No config found after loading remote JS config. Falling back to JSON."),void this.Pe((ca=>{this.yi(ca)}));this.yi(aa)}))}catch(aa){uo.error("Error loading remote config",aa)}}yi(aa){aa?this._instance.config.__preview_remote_config?(this._instance.yi(aa),aa.hasFeatureFlags!==!1&&this._instance.featureFlags.ensureFlagsLoaded()):uo.info("__preview_remote_config is disabled. Logging config instead",aa):uo.error("Failed to fetch remote config from PostHog.")}}var vo=3e3;class co{constructor(aa,ca){this.Te=!0,this.Ie=[],this.Ce=J$5(ca?.flush_interval_ms||vo,250,5e3,Ei.createLogger("flush interval"),vo),this.Re=aa}enqueue(aa){this.Ie.push(aa),this.Fe||this.Me()}unload(){this.Oe();var aa=this.Ie.length>0?this.Ae():{},ca=Object.values(aa);[...ca.filter((ua=>ua.url.indexOf("/e")===0)),...ca.filter((ua=>ua.url.indexOf("/e")!==0))].map((ua=>{this.Re(g$8({},ua,{transport:"sendBeacon"}))}))}enable(){this.Te=!1,this.Me()}Me(){var aa=this;this.Te||(this.Fe=setTimeout((()=>{if(this.Oe(),this.Ie.length>0){var ca=this.Ae(),ua=function(){var hl=ca[Sa],pl=new Date().getTime();hl.data&&I$8(hl.data)&&Ii(hl.data,(ml=>{ml.offset=Math.abs(ml.timestamp-pl),delete ml.timestamp})),aa.Re(hl)};for(var Sa in ca)ua()}}),this.Ce))}Oe(){clearTimeout(this.Fe),this.Fe=void 0}Ae(){var aa={};return Ii(this.Ie,(ca=>{var ua,Sa=ca,hl=(Sa?Sa.batchKey:null)||Sa.url;M$6(aa[hl])&&(aa[hl]=g$8({},Sa,{data:[]})),(ua=aa[hl].data)==null||ua.push(Sa.data)})),this.Ie=[],aa}}var fo=["retriesPerformedSoFar"];class po{constructor(aa){this.De=!1,this.je=3e3,this.Ie=[],this._instance=aa,this.Ie=[],this.Le=!0,!M$6(t$9)&&"onLine"in t$9.navigator&&(this.Le=t$9.navigator.onLine,this.Ne=()=>{this.Le=!0,this.Lt()},this.Ue=()=>{this.Le=!1},Ui(t$9,"online",this.Ne),Ui(t$9,"offline",this.Ue))}get length(){return this.Ie.length}retriableRequest(aa){var{retriesPerformedSoFar:ca}=aa,ua=_$7(aa,fo);L$6(ca)&&ca>0&&(ua.url=ln(ua.url,{retry_count:ca})),this._instance._send_request(g$8({},ua,{callback:Sa=>{Sa.statusCode!==200&&(Sa.statusCode<400||Sa.statusCode>=500)&&(ca??0)<10?this.ze(g$8({retriesPerformedSoFar:ca},ua)):ua.callback==null||ua.callback(Sa)}}))}ze(aa){var ca=aa.retriesPerformedSoFar||0;aa.retriesPerformedSoFar=ca+1;var ua=(function(pl){var ml=3e3*Math.pow(2,pl),gl=ml/2,wc=Math.min(18e5,ml),xu=(Math.random()-.5)*(wc-gl);return Math.ceil(wc+xu)})(ca),Sa=Date.now()+ua;this.Ie.push({retryAt:Sa,requestOptions:aa});var hl="Enqueued failed request for retry in "+ua;navigator.onLine||(hl+=" (Browser is offline)"),Ei.warn(hl),this.De||(this.De=!0,this.He())}He(){if(this.Be&&clearTimeout(this.Be),this.Ie.length===0)return this.De=!1,void(this.Be=void 0);this.Be=setTimeout((()=>{this.Le&&this.Ie.length>0&&this.Lt(),this.He()}),this.je)}Lt(){var aa=Date.now(),ca=[],ua=this.Ie.filter((hl=>hl.retryAt<aa||(ca.push(hl),!1)));if(this.Ie=ca,ua.length>0)for(var{requestOptions:Sa}of ua)this.retriableRequest(Sa)}unload(){for(var{requestOptions:aa}of(this.Be&&(clearTimeout(this.Be),this.Be=void 0),this.De=!1,M$6(t$9)||(this.Ne&&(t$9.removeEventListener("online",this.Ne),this.Ne=void 0),this.Ue&&(t$9.removeEventListener("offline",this.Ue),this.Ue=void 0)),this.Ie))try{this._instance._send_request(g$8({},aa,{transport:"sendBeacon"}))}catch(ca){Ei.error(ca)}this.Ie=[]}}class go{constructor(aa){this.qe=()=>{var ca,ua,Sa,hl;this.We||(this.We={});var pl=this.scrollElement(),ml=this.scrollY(),gl=pl?Math.max(0,pl.scrollHeight-pl.clientHeight):0,wc=ml+(pl?.clientHeight||0),xu=pl?.scrollHeight||0;this.We.lastScrollY=Math.ceil(ml),this.We.maxScrollY=Math.max(ml,(ca=this.We.maxScrollY)!==null&&ca!==void 0?ca:0),this.We.maxScrollHeight=Math.max(gl,(ua=this.We.maxScrollHeight)!==null&&ua!==void 0?ua:0),this.We.lastContentY=wc,this.We.maxContentY=Math.max(wc,(Sa=this.We.maxContentY)!==null&&Sa!==void 0?Sa:0),this.We.maxContentHeight=Math.max(xu,(hl=this.We.maxContentHeight)!==null&&hl!==void 0?hl:0)},this._instance=aa}getContext(){return this.We}resetContext(){var aa=this.We;return setTimeout(this.qe,0),aa}startMeasuringScrollPosition(){Ui(t$9,"scroll",this.qe,{capture:!0}),Ui(t$9,"scrollend",this.qe,{capture:!0}),Ui(t$9,"resize",this.qe)}scrollElement(){if(!this._instance.config.scroll_root_selector)return t$9?.document.documentElement;var aa=I$8(this._instance.config.scroll_root_selector)?this._instance.config.scroll_root_selector:[this._instance.config.scroll_root_selector];for(var ca of aa){var ua=t$9?.document.querySelector(ca);if(ua)return ua}}scrollY(){if(this._instance.config.scroll_root_selector){var aa=this.scrollElement();return aa&&aa.scrollTop||0}return t$9&&(t$9.scrollY||t$9.pageYOffset||t$9.document.documentElement.scrollTop)||0}scrollX(){if(this._instance.config.scroll_root_selector){var aa=this.scrollElement();return aa&&aa.scrollLeft||0}return t$9&&(t$9.scrollX||t$9.pageXOffset||t$9.document.documentElement.scrollLeft)||0}}var _o=la=>vs(la?.config.mask_personal_data_properties,la?.config.custom_personal_data_properties);class mo{constructor(aa,ca,ua,Sa){this.Ge=hl=>{var pl=this.Ve();if(!pl||pl.sessionId!==hl){var ml={sessionId:hl,props:this.Je(this._instance)};this.Ke.register({[he$3]:ml})}},this._instance=aa,this.Ye=ca,this.Ke=ua,this.Je=Sa||_o,this.Ye.onSessionId(this.Ge)}Ve(){return this.Ke.props[he$3]}getSetOnceProps(){var aa,ca=(aa=this.Ve())==null?void 0:aa.props;return ca?"r"in ca?cs(ca):{$referring_domain:ca.referringDomain,$pathname:ca.initialPathName,utm_source:ca.utm_source,utm_campaign:ca.utm_campaign,utm_medium:ca.utm_medium,utm_content:ca.utm_content,utm_term:ca.utm_term}:{}}getSessionProps(){var aa={};return Ii(Ai(this.getSetOnceProps()),((ca,ua)=>{ua==="$current_url"&&(ua="url"),aa["$session_entry_"+E$7(ua)]=ca})),aa}}var yo=$i("[SessionId]");class bo{on(aa,ca){return this.Xe.on(aa,ca)}constructor(aa,ca,ua){var Sa;if(this.Qe=[],this.Ze=void 0,this.Xe=new Zn,this.tr=(xu,ff)=>Math.abs(xu-ff)>this.sessionTimeoutMs,!aa.persistence)throw new Error("SessionIdManager requires a PostHogPersistence instance");if(aa.config.cookieless_mode==="always")throw new Error('SessionIdManager cannot be used with cookieless_mode="always"');this.R=aa.config,this.Ke=aa.persistence,this.ir=void 0,this.er=void 0,this._sessionStartTimestamp=null,this._sessionActivityTimestamp=null,this.rr=ca||wr,this.sr=ua||wr;var hl=this.R.persistence_name||this.R.token,pl=this.R.session_idle_timeout_seconds||1800;if(this._sessionTimeoutMs=1e3*J$5(pl,60,36e3,yo.createLogger("session_idle_timeout_seconds"),1800),aa.register({$configured_session_timeout_ms:this._sessionTimeoutMs}),this.nr(),this.ar="ph_"+hl+"_window_id",this.lr="ph_"+hl+"_primary_window_exists",this.ur()){var ml=Mr.W(this.ar),gl=Mr.W(this.lr);ml&&!gl?this.ir=ml:Mr.V(this.ar),Mr.G(this.lr,!0)}if((Sa=this.R.bootstrap)!=null&&Sa.sessionID)try{var wc=(xu=>{var ff=xu.replace(/-/g,"");if(ff.length!==32)throw new Error("Not a valid UUID");if(ff[12]!=="7")throw new Error("Not a UUIDv7");return parseInt(ff.substring(0,12),16)})(this.R.bootstrap.sessionID);this.hr(this.R.bootstrap.sessionID,new Date().getTime(),wc)}catch(xu){yo.error("Invalid sessionID in bootstrap",xu)}this.dr()}get sessionTimeoutMs(){return this._sessionTimeoutMs}onSessionId(aa){return M$6(this.Qe)&&(this.Qe=[]),this.Qe.push(aa),this.er&&aa(this.er,this.ir),()=>{this.Qe=this.Qe.filter((ca=>ca!==aa))}}ur(){return this.R.persistence!=="memory"&&!this.Ke.Si&&Mr.H()}vr(aa){aa!==this.ir&&(this.ir=aa,this.ur()&&Mr.G(this.ar,aa))}cr(){return this.ir?this.ir:this.ur()?Mr.W(this.ar):null}hr(aa,ca,ua){aa===this.er&&ca===this._sessionActivityTimestamp&&ua===this._sessionStartTimestamp||(this._sessionStartTimestamp=ua,this._sessionActivityTimestamp=ca,this.er=aa,this.Ke.register({[te$4]:[ca,aa,ua]}))}pr(){var aa=this.Ke.props[te$4];return I$8(aa)&&aa.length===2&&aa.push(aa[0]),aa||[0,null,0]}resetSessionId(){this.hr(null,null,null)}destroy(){clearTimeout(this.gr),this.gr=void 0,this.Ze&&t$9&&(t$9.removeEventListener("beforeunload",this.Ze,{capture:!1}),this.Ze=void 0),this.Qe=[]}dr(){this.Ze=()=>{this.ur()&&Mr.V(this.lr)},Ui(t$9,"beforeunload",this.Ze,{capture:!1})}checkAndGetSessionAndWindowId(aa,ca){if(aa===void 0&&(aa=!1),ca===void 0&&(ca=null),this.R.cookieless_mode==="always")throw new Error('checkAndGetSessionAndWindowId should not be called with cookieless_mode="always"');var ua=ca||new Date().getTime(),[Sa,hl,pl]=this.pr(),ml=this.cr(),gl=L$6(pl)&&pl>0&&Math.abs(ua-pl)>864e5,wc=!1,xu=!hl,ff=!xu&&!aa&&this.tr(ua,Sa);xu||ff||gl?(hl=this.rr(),ml=this.sr(),yo.info("new session ID generated",{sessionId:hl,windowId:ml,changeReason:{noSessionId:xu,activityTimeout:ff,sessionPastMaximumLength:gl}}),pl=ua,wc=!0):ml||(ml=this.sr(),wc=!0);var jf=Sa===0||!aa||gl?ua:Sa,Uf=pl===0?new Date().getTime():pl;return this.vr(ml),this.hr(hl,jf,Uf),aa||this.nr(),wc&&this.Qe.forEach((rp=>rp(hl,ml,wc?{noSessionId:xu,activityTimeout:ff,sessionPastMaximumLength:gl}:void 0))),{sessionId:hl,windowId:ml,sessionStartTimestamp:Uf,changeReason:wc?{noSessionId:xu,activityTimeout:ff,sessionPastMaximumLength:gl}:void 0,lastActivityTimestamp:Sa}}nr(){clearTimeout(this.gr),this.gr=setTimeout((()=>{var[aa]=this.pr();if(this.tr(new Date().getTime(),aa)){var ca=this.er;this.resetSessionId(),this.Xe.emit("forcedIdleReset",{idleSessionId:ca})}}),1.1*this.sessionTimeoutMs)}}var wo=["$set_once","$set"],xo=$i("[SiteApps]");class Eo{constructor(aa){this._instance=aa,this._r=[],this.apps={}}get isEnabled(){return!!this._instance.config.opt_in_site_apps}mr(aa,ca){if(ca){var ua=this.globalsForEvent(ca);this._r.push(ua),this._r.length>1e3&&(this._r=this._r.slice(10))}}get siteAppLoaders(){var aa;return(aa=v$7._POSTHOG_REMOTE_CONFIG)==null||(aa=aa[this._instance.config.token])==null?void 0:aa.siteApps}init(){if(this.isEnabled){var aa=this._instance.Hi(this.mr.bind(this));this.yr=()=>{aa(),this._r=[],this.yr=void 0}}}globalsForEvent(aa){var ca,ua,Sa,hl,pl,ml,gl;if(!aa)throw new Error("Event payload is required");var wc={},xu=this._instance.get_property("$groups")||[],ff=this._instance.get_property("$stored_group_properties")||{};for(var[jf,Uf]of Object.entries(ff))wc[jf]={id:xu[jf],type:jf,properties:Uf};var{$set_once:rp,$set:np}=aa;return{event:g$8({},_$7(aa,wo),{properties:g$8({},aa.properties,np?{$set:g$8({},(ca=(ua=aa.properties)==null?void 0:ua.$set)!==null&&ca!==void 0?ca:{},np)}:{},rp?{$set_once:g$8({},(Sa=(hl=aa.properties)==null?void 0:hl.$set_once)!==null&&Sa!==void 0?Sa:{},rp)}:{}),elements_chain:(pl=(ml=aa.properties)==null?void 0:ml.$elements_chain)!==null&&pl!==void 0?pl:"",distinct_id:(gl=aa.properties)==null?void 0:gl.distinct_id}),person:{properties:this._instance.get_property("$stored_person_properties")},groups:wc}}setupSiteApp(aa){var ca=this.apps[aa.id],ua=()=>{var ml;!ca.errored&&this._r.length&&(xo.info("Processing "+this._r.length+" events for site app with id "+aa.id),this._r.forEach((gl=>ca.processEvent==null?void 0:ca.processEvent(gl))),ca.processedBuffer=!0),Object.values(this.apps).every((gl=>gl.processedBuffer||gl.errored))&&((ml=this.yr)==null||ml.call(this))},Sa=!1,hl=ml=>{ca.errored=!ml,ca.loaded=!0,xo.info("Site app with id "+aa.id+" "+(ml?"loaded":"errored")),Sa&&ua()};try{var{processEvent:pl}=aa.init({posthog:this._instance,callback:ml=>{hl(ml)}});pl&&(ca.processEvent=pl),Sa=!0}catch(ml){xo.error("Error while initializing PostHog app with config id "+aa.id,ml),hl(!1)}if(Sa&&ca.loaded)try{ua()}catch(ml){xo.error("Error while processing buffered events PostHog app with config id "+aa.id,ml),ca.errored=!0}}br(){var aa=this.siteAppLoaders||[];for(var ca of aa)this.apps[ca.id]={id:ca.id,loaded:!1,errored:!1,processedBuffer:!1};for(var ua of aa)this.setupSiteApp(ua)}wr(aa){if(Object.keys(this.apps).length!==0){var ca=this.globalsForEvent(aa);for(var ua of Object.values(this.apps))try{ua.processEvent==null||ua.processEvent(ca)}catch(Sa){xo.error("Error while processing event "+aa.event+" for site app "+ua.id,Sa)}}}onRemoteConfig(aa){var ca,ua,Sa,hl=this;if((ca=this.siteAppLoaders)!=null&&ca.length)return this.isEnabled?(this.br(),void this._instance.on("eventCaptured",(wc=>this.wr(wc)))):void xo.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.');if((ua=this.yr)==null||ua.call(this),(Sa=aa.siteApps)!=null&&Sa.length)if(this.isEnabled){var pl=function(wc){var xu;v$7["__$$ph_site_app_"+wc]=hl._instance,(xu=v$7.__PosthogExtensions__)==null||xu.loadSiteApp==null||xu.loadSiteApp(hl._instance,gl,(ff=>{if(ff)return xo.error("Error while initializing PostHog app with config id "+wc,ff)}))};for(var{id:ml,url:gl}of aa.siteApps)pl(ml)}else xo.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.')}}var $o=function(la,aa){if(!la)return!1;var ca=la.userAgent;if(ca&&y$a(ca,aa))return!0;try{var ua=la?.userAgentData;if(ua!=null&&ua.brands&&ua.brands.some((Sa=>y$a(Sa?.brand,aa))))return!0}catch{}return!!la.webdriver},So=(function(la){return la.US="us",la.EU="eu",la.CUSTOM="custom",la})({}),ko="i.posthog.com";class Po{constructor(aa){this.Er={},this.instance=aa}get apiHost(){var aa=this.instance.config.api_host.trim().replace(/\/$/,"");return aa==="https://app.posthog.com"?"https://us.i.posthog.com":aa}get flagsApiHost(){var aa=this.instance.config.flags_api_host;return aa?aa.trim().replace(/\/$/,""):this.apiHost}get uiHost(){var aa,ca=(aa=this.instance.config.ui_host)==null?void 0:aa.replace(/\/$/,"");return ca||(ca=this.apiHost.replace("."+ko,".posthog.com")),ca==="https://app.posthog.com"?"https://us.posthog.com":ca}get region(){return this.Er[this.apiHost]||(/https:\/\/(app|us|us-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?this.Er[this.apiHost]=So.US:/https:\/\/(eu|eu-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?this.Er[this.apiHost]=So.EU:this.Er[this.apiHost]=So.CUSTOM),this.Er[this.apiHost]}endpointFor(aa,ca){if(ca===void 0&&(ca=""),ca&&(ca=ca[0]==="/"?ca:"/"+ca),aa==="ui")return this.uiHost+ca;if(aa==="flags")return this.flagsApiHost+ca;if(this.region===So.CUSTOM)return this.apiHost+ca;var ua=ko+ca;switch(aa){case"assets":return"https://"+this.region+"-assets."+ua;case"api":return"https://"+this.region+"."+ua}}}var To={icontains:(la,aa)=>!!t$9&&aa.href.toLowerCase().indexOf(la.toLowerCase())>-1,not_icontains:(la,aa)=>!!t$9&&aa.href.toLowerCase().indexOf(la.toLowerCase())===-1,regex:(la,aa)=>!!t$9&&vn(aa.href,la),not_regex:(la,aa)=>!!t$9&&!vn(aa.href,la),exact:(la,aa)=>aa.href===la,is_not:(la,aa)=>aa.href!==la};class Io{constructor(aa){var ca=this;this.getWebExperimentsAndEvaluateDisplayLogic=function(ua){ua===void 0&&(ua=!1),ca.getWebExperiments((Sa=>{Io.$r("retrieved web experiments from the server"),ca.Sr=new Map,Sa.forEach((hl=>{if(hl.feature_flag_key){var pl;ca.Sr&&(Io.$r("setting flag key ",hl.feature_flag_key," to web experiment ",hl),(pl=ca.Sr)==null||pl.set(hl.feature_flag_key,hl));var ml=ca._instance.getFeatureFlag(hl.feature_flag_key);O$5(ml)&&hl.variants[ml]&&ca.kr(hl.name,ml,hl.variants[ml].transforms)}else if(hl.variants)for(var gl in hl.variants){var wc=hl.variants[gl];Io.Pr(wc)&&ca.kr(hl.name,gl,wc.transforms)}}))}),ua)},this._instance=aa,this._instance.onFeatureFlags((ua=>{this.onFeatureFlags(ua)}))}onFeatureFlags(aa){if(this._is_bot())Io.$r("Refusing to render web experiment since the viewer is a likely bot");else if(!this._instance.config.disable_web_experiments){if(j$a(this.Sr))return this.Sr=new Map,this.loadIfEnabled(),void this.previewWebExperiment();Io.$r("applying feature flags",aa),aa.forEach((ca=>{var ua;if(this.Sr&&(ua=this.Sr)!=null&&ua.has(ca)){var Sa,hl=this._instance.getFeatureFlag(ca),pl=(Sa=this.Sr)==null?void 0:Sa.get(ca);hl&&pl!=null&&pl.variants[hl]&&this.kr(pl.name,hl,pl.variants[hl].transforms)}}))}}previewWebExperiment(){var aa=Io.getWindowLocation();if(aa!=null&&aa.search){var ca=or(aa?.search,"__experiment_id"),ua=or(aa?.search,"__experiment_variant");ca&&ua&&(Io.$r("previewing web experiments "+ca+" && "+ua),this.getWebExperiments((Sa=>{this.Tr(parseInt(ca),ua,Sa)}),!1,!0))}}loadIfEnabled(){this._instance.config.disable_web_experiments||this.getWebExperimentsAndEvaluateDisplayLogic()}getWebExperiments(aa,ca,ua){if(this._instance.config.disable_web_experiments&&!ua)return aa([]);var Sa=this._instance.get_property("$web_experiments");if(Sa&&!ca)return aa(Sa);this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/web_experiments/?token="+this._instance.config.token),method:"GET",callback:hl=>{if(hl.statusCode!==200||!hl.json)return aa([]);var pl=hl.json.experiments||[];return aa(pl)}})}Tr(aa,ca,ua){var Sa=ua.filter((hl=>hl.id===aa));Sa&&Sa.length>0&&(Io.$r("Previewing web experiment ["+Sa[0].name+"] with variant ["+ca+"]"),this.kr(Sa[0].name,ca,Sa[0].variants[ca].transforms))}static Pr(aa){return!j$a(aa.conditions)&&Io.Ir(aa)&&Io.Cr(aa)}static Ir(aa){var ca;if(j$a(aa.conditions)||j$a((ca=aa.conditions)==null?void 0:ca.url))return!0;var ua,Sa,hl,pl=Io.getWindowLocation();return!!pl&&((ua=aa.conditions)==null||!ua.url||To[(Sa=(hl=aa.conditions)==null?void 0:hl.urlMatchType)!==null&&Sa!==void 0?Sa:"icontains"](aa.conditions.url,pl))}static getWindowLocation(){return t$9?.location}static Cr(aa){var ca;if(j$a(aa.conditions)||j$a((ca=aa.conditions)==null?void 0:ca.utm))return!0;var ua=as();if(ua.utm_source){var Sa,hl,pl,ml,gl,wc,xu,ff,jf=(Sa=aa.conditions)==null||(Sa=Sa.utm)==null||!Sa.utm_campaign||((hl=aa.conditions)==null||(hl=hl.utm)==null?void 0:hl.utm_campaign)==ua.utm_campaign,Uf=(pl=aa.conditions)==null||(pl=pl.utm)==null||!pl.utm_source||((ml=aa.conditions)==null||(ml=ml.utm)==null?void 0:ml.utm_source)==ua.utm_source,rp=(gl=aa.conditions)==null||(gl=gl.utm)==null||!gl.utm_medium||((wc=aa.conditions)==null||(wc=wc.utm)==null?void 0:wc.utm_medium)==ua.utm_medium,np=(xu=aa.conditions)==null||(xu=xu.utm)==null||!xu.utm_term||((ff=aa.conditions)==null||(ff=ff.utm)==null?void 0:ff.utm_term)==ua.utm_term;return jf&&rp&&np&&Uf}return!1}static $r(aa){for(var ca=arguments.length,ua=new Array(ca>1?ca-1:0),Sa=1;Sa<ca;Sa++)ua[Sa-1]=arguments[Sa];Ei.info("[WebExperiments] "+aa,ua)}kr(aa,ca,ua){this._is_bot()?Io.$r("Refusing to render web experiment since the viewer is a likely bot"):ca!=="control"?ua.forEach((Sa=>{if(Sa.selector){var hl;Io.$r("applying transform of variant "+ca+" for experiment "+aa+" ",Sa);var pl=(hl=document)==null?void 0:hl.querySelectorAll(Sa.selector);pl?.forEach((ml=>{var gl=ml;Sa.html&&(gl.innerHTML=Sa.html),Sa.css&&gl.setAttribute("style",Sa.css)}))}})):Io.$r("Control variants leave the page unmodified.")}_is_bot(){return n$9&&this._instance?$o(n$9,this._instance.config.custom_blocked_useragents):void 0}}var Co=$i("[PostHog ExternalIntegrations]"),Ro={intercom:"intercom-integration",crispChat:"crisp-chat-integration"};class Fo{constructor(aa){this._instance=aa}it(aa,ca){var ua;(ua=v$7.__PosthogExtensions__)==null||ua.loadExternalDependency==null||ua.loadExternalDependency(this._instance,aa,(Sa=>{if(Sa)return Co.error("failed to load script",Sa);ca()}))}startIfEnabledOrStop(){var aa=this,ca=function(pl){var ml,gl,wc;!Sa||(ml=v$7.__PosthogExtensions__)!=null&&(ml=ml.integrations)!=null&&ml[pl]||aa.it(Ro[pl],(()=>{var xu;(xu=v$7.__PosthogExtensions__)==null||(xu=xu.integrations)==null||(xu=xu[pl])==null||xu.start(aa._instance)})),!Sa&&(gl=v$7.__PosthogExtensions__)!=null&&(gl=gl.integrations)!=null&&gl[pl]&&((wc=v$7.__PosthogExtensions__)==null||(wc=wc.integrations)==null||(wc=wc[pl])==null||wc.stop())};for(var[ua,Sa]of Object.entries((hl=this._instance.config.integrations)!==null&&hl!==void 0?hl:{})){var hl;ca(ua)}}}var Mo$1="[SessionRecording]",Oo=$i(Mo$1);class Ao{get started(){var aa;return!((aa=this.Rr)==null||!aa.isStarted)}get status(){return this.Rr?this.Rr.status:this.Fr&&!this.Mr?"disabled":"lazy_loading"}constructor(aa){if(this._forceAllowLocalhostNetworkCapture=!1,this.Fr=!1,this.Or=void 0,this._instance=aa,!this._instance.sessionManager)throw Oo.error("started without valid sessionManager"),new Error(Mo$1+" started without valid sessionManager. This is a bug.");if(this._instance.config.cookieless_mode==="always")throw new Error(Mo$1+' cannot be used with cookieless_mode="always"')}get Mr(){var aa,ca=!((aa=this._instance.get_property(Zi))==null||!aa.enabled),ua=!this._instance.config.disable_session_recording,Sa=this._instance.config.disable_session_recording||this._instance.consent.isOptedOut();return t$9&&ca&&ua&&!Sa}startIfEnabledOrStop(aa){var ca;if(!this.Mr||(ca=this.Rr)==null||!ca.isStarted){var ua=!M$6(Object.assign)&&!M$6(Array.from);this.Mr&&ua?(this.Ar(aa),Oo.info("starting")):this.stopRecording()}}Ar(aa){var ca,ua,Sa;this.Mr&&(v$7!=null&&(ca=v$7.__PosthogExtensions__)!=null&&(ca=ca.rrweb)!=null&&ca.record&&(ua=v$7.__PosthogExtensions__)!=null&&ua.initSessionRecording?this.Dr(aa):(Sa=v$7.__PosthogExtensions__)==null||Sa.loadExternalDependency==null||Sa.loadExternalDependency(this._instance,this.jr,(hl=>{if(hl)return Oo.error("could not load recorder",hl);this.Dr(aa)})))}stopRecording(){var aa,ca;(aa=this.Or)==null||aa.call(this),this.Or=void 0,(ca=this.Rr)==null||ca.stop()}Lr(){var aa;(aa=this._instance.persistence)==null||aa.unregister(ie$3)}Nr(aa){if(this._instance.persistence){var ca,ua,Sa=this._instance.persistence,hl=()=>{var pl=aa.sessionRecording===!1?void 0:aa.sessionRecording,ml=pl?.sampleRate,gl=j$a(ml)?null:parseFloat(ml);j$a(gl)&&this.Lr();var wc=pl?.minimumDurationMilliseconds;Sa.register({[Zi]:g$8({enabled:!!pl},pl,{networkPayloadCapture:g$8({capturePerformance:aa.capturePerformance},pl?.networkPayloadCapture),canvasRecording:{enabled:pl?.recordCanvas,fps:pl?.canvasFps,quality:pl?.canvasQuality},sampleRate:gl,minimumDurationMilliseconds:M$6(wc)?null:wc,endpoint:pl?.endpoint,triggerMatchType:pl?.triggerMatchType,masking:pl?.masking,urlTriggers:pl?.urlTriggers})})};hl(),(ca=this.Or)==null||ca.call(this),this.Or=(ua=this._instance.sessionManager)==null?void 0:ua.onSessionId(hl)}}onRemoteConfig(aa){"sessionRecording"in aa?aa.sessionRecording!==!1?(this.Nr(aa),this.Fr=!0,this.startIfEnabledOrStop()):this.Fr=!0:Oo.info("skipping remote config with no sessionRecording",aa)}log(aa,ca){var ua;ca===void 0&&(ca="log"),(ua=this.Rr)!=null&&ua.log?this.Rr.log(aa,ca):Oo.warn("log called before recorder was ready")}get jr(){var aa,ca,ua=(aa=this._instance)==null||(aa=aa.persistence)==null?void 0:aa.get_property(Zi);return(ua==null||(ca=ua.scriptConfig)==null?void 0:ca.script)||"lazy-recorder"}Dr(aa){var ca,ua;if((ca=v$7.__PosthogExtensions__)==null||!ca.initSessionRecording)throw Error("Called on script loaded before session recording is available");this.Rr||(this.Rr=(ua=v$7.__PosthogExtensions__)==null?void 0:ua.initSessionRecording(this._instance),this.Rr._forceAllowLocalhostNetworkCapture=this._forceAllowLocalhostNetworkCapture),this.Rr.start(aa)}onRRwebEmit(aa){var ca;(ca=this.Rr)==null||ca.onRRwebEmit==null||ca.onRRwebEmit(aa)}overrideLinkedFlag(){var aa,ca;this.Rr||(ca=this._instance.persistence)==null||ca.register({$replay_override_linked_flag:!0}),(aa=this.Rr)==null||aa.overrideLinkedFlag()}overrideSampling(){var aa,ca;this.Rr||(ca=this._instance.persistence)==null||ca.register({$replay_override_sampling:!0}),(aa=this.Rr)==null||aa.overrideSampling()}overrideTrigger(aa){var ca,ua;this.Rr||(ua=this._instance.persistence)==null||ua.register({[aa==="url"?"$replay_override_url_trigger":"$replay_override_event_trigger"]:!0}),(ca=this.Rr)==null||ca.overrideTrigger(aa)}get sdkDebugProperties(){var aa;return((aa=this.Rr)==null?void 0:aa.sdkDebugProperties)||{$recording_status:this.status}}tryAddCustomEvent(aa,ca){var ua;return!((ua=this.Rr)==null||!ua.tryAddCustomEvent(aa,ca))}}var Do={},jo=()=>{},Lo="posthog",No=!on$1&&d$6?.indexOf("MSIE")===-1&&d$6?.indexOf("Mozilla")===-1,Uo=la=>{var aa;return g$8({api_host:"https://us.i.posthog.com",flags_api_host:null,ui_host:null,token:"",autocapture:!0,cross_subdomain_cookie:Li(o$d?.location),persistence:"localStorage+cookie",persistence_name:"",cookie_persisted_properties:[],loaded:jo,save_campaign_params:!0,custom_campaign_params:[],custom_blocked_useragents:[],save_referrer:!0,capture_pageleave:"if_capture_pageview",defaults:la??"unset",__preview_deferred_init_extensions:!1,debug:a$i&&O$5(a$i?.search)&&a$i.search.indexOf("__posthog_debug=true")!==-1||!1,cookie_expiration:365,upgrade:!1,disable_session_recording:!1,disable_persistence:!1,disable_web_experiments:!0,disable_surveys:!1,disable_surveys_automatic_display:!1,disable_conversations:!1,disable_product_tours:!0,disable_external_dependency_loading:!1,enable_recording_console_log:void 0,secure_cookie:(t$9==null||(aa=t$9.location)==null?void 0:aa.protocol)==="https:",ip:!1,opt_out_capturing_by_default:!1,opt_out_persistence_by_default:!1,opt_out_useragent_filter:!1,opt_out_capturing_persistence_type:"localStorage",consent_persistence_name:null,opt_out_capturing_cookie_prefix:null,opt_in_site_apps:!1,property_denylist:[],respect_dnt:!1,sanitize_properties:null,request_headers:{},request_batching:!0,properties_string_max_length:65535,mask_all_element_attributes:!1,mask_all_text:!1,mask_personal_data_properties:!1,custom_personal_data_properties:[],advanced_disable_flags:!1,advanced_disable_decide:!1,advanced_disable_feature_flags:!1,advanced_disable_feature_flags_on_first_load:!1,advanced_only_evaluate_survey_feature_flags:!1,advanced_enable_surveys:!1,advanced_disable_toolbar_metrics:!1,feature_flag_request_timeout_ms:3e3,surveys_request_timeout_ms:1e4,on_request_error:ca=>{var ua="Bad HTTP status: "+ca.statusCode+" "+ca.text;Ei.error(ua)},get_device_id:ca=>ca,capture_performance:void 0,name:"posthog",bootstrap:{},disable_compression:!1,session_idle_timeout_seconds:1800,person_profiles:"identified_only",before_send:void 0,request_queue_config:{flush_interval_ms:vo},error_tracking:{},_onCapture:jo,__preview_eager_load_replay:!1},(ca=>({rageclick:!(ca&&ca>="2025-11-30")||{content_ignorelist:!0},capture_pageview:!(ca&&ca>="2025-05-24")||"history_change",session_recording:ca&&ca>="2025-11-30"?{strictMinimumDuration:!0}:{}}))(la))},zo=la=>{var aa={};M$6(la.process_person)||(aa.person_profiles=la.process_person),M$6(la.xhr_headers)||(aa.request_headers=la.xhr_headers),M$6(la.cookie_name)||(aa.persistence_name=la.cookie_name),M$6(la.disable_cookie)||(aa.disable_persistence=la.disable_cookie),M$6(la.store_google)||(aa.save_campaign_params=la.store_google),M$6(la.verbose)||(aa.debug=la.verbose);var ca=Ci({},aa,la);return I$8(la.property_blacklist)&&(M$6(la.property_denylist)?ca.property_denylist=la.property_blacklist:I$8(la.property_denylist)?ca.property_denylist=[...la.property_blacklist,...la.property_denylist]:Ei.error("Invalid value for property_denylist config: "+la.property_denylist)),ca};class Ho{constructor(){this.__forceAllowLocalhost=!1}get Ur(){return this.__forceAllowLocalhost}set Ur(aa){Ei.error("WebPerformanceObserver is deprecated and has no impact on network capture. Use `_forceAllowLocalhostNetworkCapture` on `posthog.sessionRecording`"),this.__forceAllowLocalhost=aa}}class Bo{get decideEndpointWasHit(){var aa,ca;return(aa=(ca=this.featureFlags)==null?void 0:ca.hasLoadedFlags)!==null&&aa!==void 0&&aa}get flagsEndpointWasHit(){var aa,ca;return(aa=(ca=this.featureFlags)==null?void 0:ca.hasLoadedFlags)!==null&&aa!==void 0&&aa}constructor(){this.webPerformance=new Ho,this.zr=!1,this.version=c$e.LIB_VERSION,this.Hr=new Zn,this._calculate_event_properties=this.calculateEventProperties.bind(this),this.config=Uo(),this.SentryIntegration=Jr,this.sentryIntegration=aa=>(function(ca,ua){var Sa=Vr(ca,ua);return{name:Gr,processEvent:hl=>Sa(hl)}})(this,aa),this.__request_queue=[],this.__loaded=!1,this.analyticsDefaultEndpoint="/e/",this.Br=!1,this.qr=null,this.Wr=null,this.Gr=null,this.featureFlags=new Cn(this),this.toolbar=new Zr(this),this.scrollManager=new go(this),this.pageViewManager=new Es(this),this.surveys=new so(this),this.conversations=new oo(this),this.experiments=new Io(this),this.exceptions=new mn(this),this.rateLimiter=new lo$1(this),this.requestRouter=new Po(this),this.consent=new Ar(this),this.externalIntegrations=new Fo(this),this.people={set:(aa,ca,ua)=>{var Sa=O$5(aa)?{[aa]:ca}:aa;this.setPersonProperties(Sa),ua?.({})},set_once:(aa,ca,ua)=>{var Sa=O$5(aa)?{[aa]:ca}:aa;this.setPersonProperties(void 0,Sa),ua?.({})}},this.on("eventCaptured",(aa=>Ei.info('send "'+aa?.event+'"',aa)))}init(aa,ca,ua){if(ua&&ua!==Lo){var Sa,hl=(Sa=Do[ua])!==null&&Sa!==void 0?Sa:new Bo;return hl._init(aa,ca,ua),Do[ua]=hl,Do[Lo][ua]=hl,hl}return this._init(aa,ca,ua)}_init(aa,ca,ua){var Sa;if(ca===void 0&&(ca={}),M$6(aa)||A$7(aa))return Ei.critical("PostHog was initialized without a token. This likely indicates a misconfiguration. Please check the first argument passed to posthog.init()"),this;if(this.__loaded)return console.warn("[PostHog.js]","You have already initialized PostHog! Re-initializing is a no-op"),this;this.__loaded=!0,this.config={},ca.debug=this.Vr(ca.debug),this.Jr=ca,this.Kr=[],ca.person_profiles&&(this.Wr=ca.person_profiles),this.set_config(Ci({},Uo(ca.defaults),zo(ca),{name:ua,token:aa})),this.config.on_xhr_error&&Ei.error("on_xhr_error is deprecated. Use on_request_error instead"),this.compression=ca.disable_compression?void 0:er.GZipJS;var hl=this.Yr();this.persistence=new Fn(this.config,hl),this.sessionPersistence=this.config.persistence==="sessionStorage"||this.config.persistence==="memory"?this.persistence:new Fn(g$8({},this.config,{persistence:"sessionStorage"}),hl);var pl=g$8({},this.persistence.props),ml=g$8({},this.sessionPersistence.props);this.register({$initialization_time:new Date().toISOString()}),this.Xr=new co((eg=>this.Qr(eg)),this.config.request_queue_config),this.Zr=new po(this),this.__request_queue=[];var gl=this.config.cookieless_mode==="always"||this.config.cookieless_mode==="on_reject"&&this.consent.isExplicitlyOptedOut();if(gl||(this.sessionManager=new bo(this),this.sessionPropsManager=new mo(this,this.sessionManager,this.persistence)),this.config.__preview_deferred_init_extensions?(Ei.info("Deferring extension initialization to improve startup performance"),setTimeout((()=>{this.ts(gl)}),0)):(Ei.info("Initializing extensions synchronously"),this.ts(gl)),c$e.DEBUG=c$e.DEBUG||this.config.debug,c$e.DEBUG&&Ei.info("Starting in debug mode",{this:this,config:ca,thisC:g$8({},this.config),p:pl,s:ml}),((Sa=ca.bootstrap)==null?void 0:Sa.distinctID)!==void 0){var wc,xu,ff=this.config.get_device_id(wr()),jf=(wc=ca.bootstrap)!=null&&wc.isIdentifiedID?ff:ca.bootstrap.distinctID;this.persistence.set_property(ue$1,(xu=ca.bootstrap)!=null&&xu.isIdentifiedID?"identified":"anonymous"),this.register({distinct_id:ca.bootstrap.distinctID,$device_id:jf})}if(this.es()){var Uf,rp,np=Object.keys(((Uf=ca.bootstrap)==null?void 0:Uf.featureFlags)||{}).filter((eg=>{var tg;return!((tg=ca.bootstrap)==null||(tg=tg.featureFlags)==null||!tg[eg])})).reduce(((eg,tg)=>{var rg;return eg[tg]=((rg=ca.bootstrap)==null||(rg=rg.featureFlags)==null?void 0:rg[tg])||!1,eg}),{}),qm=Object.keys(((rp=ca.bootstrap)==null?void 0:rp.featureFlagPayloads)||{}).filter((eg=>np[eg])).reduce(((eg,tg)=>{var rg,ig;return(rg=ca.bootstrap)!=null&&(rg=rg.featureFlagPayloads)!=null&&rg[tg]&&(eg[tg]=(ig=ca.bootstrap)==null||(ig=ig.featureFlagPayloads)==null?void 0:ig[tg]),eg}),{});this.featureFlags.receivedFeatureFlags({featureFlags:np,featureFlagPayloads:qm})}if(gl)this.register_once({distinct_id:_e$1,$device_id:null},"");else if(!this.get_distinct_id()){var Vm=this.config.get_device_id(wr());this.register_once({distinct_id:Vm,$device_id:Vm},""),this.persistence.set_property(ue$1,"anonymous")}return Ui(t$9,"onpagehide"in self?"pagehide":"unload",this._handle_unload.bind(this),{passive:!1}),this.toolbar.maybeLoadToolbar(),ca.segment?Wr(this,(()=>this.rs())):this.rs(),C$c(this.config._onCapture)&&this.config._onCapture!==jo&&(Ei.warn("onCapture is deprecated. Please use `before_send` instead"),this.on("eventCaptured",(eg=>this.config._onCapture(eg.event,eg)))),this.config.ip&&Ei.warn('The `ip` config option has NO EFFECT AT ALL and has been deprecated. Use a custom transformation or "Discard IP data" project setting instead. See https://posthog.com/tutorials/web-redact-properties#hiding-customer-ip-address for more information.'),this}ts(aa){var ca=performance.now();this.historyAutocapture=new Br(this),this.historyAutocapture.startIfEnabled();var ua=[];ua.push((()=>{new is(this).startIfEnabledOrStop()})),ua.push((()=>{var Sa;this.siteApps=new Eo(this),(Sa=this.siteApps)==null||Sa.init()})),aa||ua.push((()=>{this.sessionRecording=new Ao(this),this.sessionRecording.startIfEnabledOrStop()})),this.config.disable_scroll_properties||ua.push((()=>{this.scrollManager.startMeasuringScrollPosition()})),ua.push((()=>{this.autocapture=new fr(this),this.autocapture.startIfEnabled()})),ua.push((()=>{this.surveys.loadIfEnabled()})),ua.push((()=>{this.conversations.loadIfEnabled()})),ua.push((()=>{this.productTours=new An(this),this.productTours.loadIfEnabled()})),ua.push((()=>{this.heatmaps=new xs(this),this.heatmaps.startIfEnabled()})),ua.push((()=>{this.webVitalsAutocapture=new ys(this)})),ua.push((()=>{this.exceptionObserver=new zr(this),this.exceptionObserver.startIfEnabledOrStop()})),ua.push((()=>{this.deadClicksAutocapture=new Nr(this,Lr),this.deadClicksAutocapture.startIfEnabled()})),ua.push((()=>{if(this.ss){var Sa=this.ss;this.ss=void 0,this.yi(Sa)}})),this.ns(ua,ca)}ns(aa,ca){for(;aa.length>0;){if(this.config.__preview_deferred_init_extensions&&performance.now()-ca>=30&&aa.length>0)return void setTimeout((()=>{this.ns(aa,ca)}),0);var ua=aa.shift();if(ua)try{ua()}catch(hl){Ei.error("Error initializing extension:",hl)}}var Sa=Math.round(performance.now()-ca);this.register_for_session({$sdk_debug_extensions_init_method:this.config.__preview_deferred_init_extensions?"deferred":"synchronous",$sdk_debug_extensions_init_time_ms:Sa}),this.config.__preview_deferred_init_extensions&&Ei.info("PostHog extensions initialized ("+Sa+"ms)")}yi(aa){var ca,ua,Sa,hl,pl,ml,gl,wc,xu;if(!o$d||!o$d.body)return Ei.info("document not ready yet, trying again in 500 milliseconds..."),void setTimeout((()=>{this.yi(aa)}),500);this.config.__preview_deferred_init_extensions&&(this.ss=aa),this.compression=void 0,aa.supportedCompression&&!this.config.disable_compression&&(this.compression=w$9(aa.supportedCompression,er.GZipJS)?er.GZipJS:w$9(aa.supportedCompression,er.Base64)?er.Base64:void 0),(ca=aa.analytics)!=null&&ca.endpoint&&(this.analyticsDefaultEndpoint=aa.analytics.endpoint),this.set_config({person_profiles:this.Wr?this.Wr:"identified_only"}),(ua=this.siteApps)==null||ua.onRemoteConfig(aa),(Sa=this.sessionRecording)==null||Sa.onRemoteConfig(aa),(hl=this.autocapture)==null||hl.onRemoteConfig(aa),(pl=this.heatmaps)==null||pl.onRemoteConfig(aa),this.surveys.onRemoteConfig(aa),this.conversations.onRemoteConfig(aa),(ml=this.productTours)==null||ml.onRemoteConfig(aa),(gl=this.webVitalsAutocapture)==null||gl.onRemoteConfig(aa),(wc=this.exceptionObserver)==null||wc.onRemoteConfig(aa),this.exceptions.onRemoteConfig(aa),(xu=this.deadClicksAutocapture)==null||xu.onRemoteConfig(aa)}rs(){try{this.config.loaded(this)}catch(aa){Ei.critical("`loaded` function failed",aa)}this.os(),this.config.capture_pageview&&setTimeout((()=>{(this.consent.isOptedIn()||this.config.cookieless_mode==="always")&&this.ls()}),1),new ho(this).load(),this.featureFlags.flags()}os(){var aa;this.is_capturing()&&this.config.request_batching&&((aa=this.Xr)==null||aa.enable())}_dom_loaded(){this.is_capturing()&&Ti(this.__request_queue,(aa=>this.Qr(aa))),this.__request_queue=[],this.os()}_handle_unload(){var aa,ca;this.surveys.handlePageUnload(),this.config.request_batching?(this.us()&&this.capture("$pageleave"),(aa=this.Xr)==null||aa.unload(),(ca=this.Zr)==null||ca.unload()):this.us()&&this.capture("$pageleave",null,{transport:"sendBeacon"})}_send_request(aa){this.__loaded&&(No?this.__request_queue.push(aa):this.rateLimiter.isServerRateLimited(aa.batchKey)||(aa.transport=aa.transport||this.config.api_transport,aa.url=ln(aa.url,{ip:this.config.ip?1:0}),aa.headers=g$8({},this.config.request_headers,aa.headers),aa.compression=aa.compression==="best-available"?this.compression:aa.compression,aa.disableXHRCredentials=this.config.__preview_disable_xhr_credentials,this.config.__preview_disable_beacon&&(aa.disableTransport=["sendBeacon"]),aa.fetchOptions=aa.fetchOptions||this.config.fetch_options,(ca=>{var ua,Sa,hl,pl=g$8({},ca);pl.timeout=pl.timeout||6e4,pl.url=ln(pl.url,{_:new Date().getTime().toString(),ver:c$e.LIB_VERSION,compression:pl.compression});var ml=(ua=pl.transport)!==null&&ua!==void 0?ua:"fetch",gl=dn.filter((xu=>!pl.disableTransport||!xu.transport||!pl.disableTransport.includes(xu.transport))),wc=(Sa=(hl=Ni(gl,(xu=>xu.transport===ml)))==null?void 0:hl.method)!==null&&Sa!==void 0?Sa:gl[0].method;if(!wc)throw new Error("No available transport method");wc(pl)})(g$8({},aa,{callback:ca=>{var ua,Sa;this.rateLimiter.checkForLimiting(ca),ca.statusCode>=400&&((ua=(Sa=this.config).on_request_error)==null||ua.call(Sa,ca)),aa.callback==null||aa.callback(ca)}}))))}Qr(aa){this.Zr?this.Zr.retriableRequest(aa):this._send_request(aa)}_execute_array(aa){var ca,ua=[],Sa=[],hl=[];Ti(aa,(ml=>{ml&&(ca=ml[0],I$8(ca)?hl.push(ml):C$c(ml)?ml.call(this):I$8(ml)&&ca==="alias"?ua.push(ml):I$8(ml)&&ca.indexOf("capture")!==-1&&C$c(this[ca])?hl.push(ml):Sa.push(ml))}));var pl=function(ml,gl){Ti(ml,(function(wc){if(I$8(wc[0])){var xu=gl;Ii(wc,(function(ff){xu=xu[ff[0]].apply(xu,ff.slice(1))}))}else this[wc[0]].apply(this,wc.slice(1))}),gl)};pl(ua,this),pl(Sa,this),pl(hl,this)}es(){var aa,ca;return((aa=this.config.bootstrap)==null?void 0:aa.featureFlags)&&Object.keys((ca=this.config.bootstrap)==null?void 0:ca.featureFlags).length>0||!1}push(aa){this._execute_array([aa])}capture(aa,ca,ua){var Sa;if(this.__loaded&&this.persistence&&this.sessionPersistence&&this.Xr){if(this.is_capturing())if(!M$6(aa)&&O$5(aa)){var hl=!this.config.opt_out_useragent_filter&&this._is_bot();if(!(hl&&!this.config.__preview_capture_bot_pageviews)){var pl=ua!=null&&ua.skip_client_rate_limiting?void 0:this.rateLimiter.clientRateLimitContext();if(pl==null||!pl.isRateLimited){ca!=null&&ca.$current_url&&!O$5(ca?.$current_url)&&(Ei.error("Invalid `$current_url` property provided to `posthog.capture`. Input must be a string. Ignoring provided value."),ca==null||delete ca.$current_url),this.sessionPersistence.update_search_keyword(),this.config.save_campaign_params&&this.sessionPersistence.update_campaign_params(),this.config.save_referrer&&this.sessionPersistence.update_referrer_info(),(this.config.save_campaign_params||this.config.save_referrer)&&this.persistence.set_initial_person_info();var ml=new Date,gl=ua?.timestamp||ml,wc=wr(),xu={uuid:wc,event:aa,properties:this.calculateEventProperties(aa,ca||{},gl,wc)};aa==="$pageview"&&this.config.__preview_capture_bot_pageviews&&hl&&(xu.event="$bot_pageview",xu.properties.$browser_type="bot"),pl&&(xu.properties.$lib_rate_limit_remaining_tokens=pl.remainingTokens),ua?.$set&&(xu.$set=ua?.$set);var ff,jf=aa!=="$groupidentify",Uf=this.hs(ua?.$set_once,jf);if(Uf&&(xu.$set_once=Uf),(xu=Di(xu,ua!=null&&ua._noTruncate?null:this.config.properties_string_max_length)).timestamp=gl,M$6(ua?.timestamp)||(xu.properties.$event_time_override_provided=!0,xu.properties.$event_time_override_system_time=ml),aa===qn.DISMISSED||aa===qn.SENT){var rp=ca?.[Wn.SURVEY_ID],np=ca?.[Wn.SURVEY_ITERATION];ff={id:rp,current_iteration:np},localStorage.getItem(Yn(ff))||localStorage.setItem(Yn(ff),"true"),xu.$set=g$8({},xu.$set,{[Kn({id:rp,current_iteration:np},aa===qn.SENT?"responded":"dismissed")]:!0})}var qm=g$8({},xu.properties.$set,xu.$set);if(F$8(qm)||this.setPersonPropertiesForFlags(qm),!j$a(this.config.before_send)){var Vm=this.ds(xu);if(!Vm)return;xu=Vm}this.Hr.emit("eventCaptured",xu);var eg={method:"POST",url:(Sa=ua?._url)!==null&&Sa!==void 0?Sa:this.requestRouter.endpointFor("api",this.analyticsDefaultEndpoint),data:xu,compression:"best-available",batchKey:ua?._batchKey};return!this.config.request_batching||ua&&(ua==null||!ua._batchKey)||ua!=null&&ua.send_instantly?this.Qr(eg):this.Xr.enqueue(eg),xu}Ei.critical("This capture call is ignored due to client rate limiting.")}}else Ei.error("No event name provided to posthog.capture")}else Ei.uninitializedWarning("posthog.capture")}Hi(aa){return this.on("eventCaptured",(ca=>aa(ca.event,ca)))}calculateEventProperties(aa,ca,ua,Sa,hl){if(ua=ua||new Date,!this.persistence||!this.sessionPersistence)return ca;var pl=hl?void 0:this.persistence.remove_event_timer(aa),ml=g$8({},ca);if(ml.token=this.config.token,ml.$config_defaults=this.config.defaults,(this.config.cookieless_mode=="always"||this.config.cookieless_mode=="on_reject"&&this.consent.isExplicitlyOptedOut())&&(ml.$cookieless_mode=!0),aa==="$snapshot"){var gl=g$8({},this.persistence.properties(),this.sessionPersistence.properties());return ml.distinct_id=gl.distinct_id,(!O$5(ml.distinct_id)&&!L$6(ml.distinct_id)||A$7(ml.distinct_id))&&Ei.error("Invalid distinct_id for replay event. This indicates a bug in your implementation"),ml}var wc,xu=gs(this.config.mask_personal_data_properties,this.config.custom_personal_data_properties);if(this.sessionManager){var{sessionId:ff,windowId:jf}=this.sessionManager.checkAndGetSessionAndWindowId(hl,ua.getTime());ml.$session_id=ff,ml.$window_id=jf}this.sessionPropsManager&&Ci(ml,this.sessionPropsManager.getSessionProps());try{var Uf;this.sessionRecording&&Ci(ml,this.sessionRecording.sdkDebugProperties),ml.$sdk_debug_retry_queue_size=(Uf=this.Zr)==null?void 0:Uf.length}catch(Vm){ml.$sdk_debug_error_capturing_properties=String(Vm)}if(this.requestRouter.region===So.CUSTOM&&(ml.$lib_custom_api_host=this.config.api_host),wc=aa!=="$pageview"||hl?aa!=="$pageleave"||hl?this.pageViewManager.doEvent():this.pageViewManager.doPageLeave(ua):this.pageViewManager.doPageView(ua,Sa),ml=Ci(ml,wc),aa==="$pageview"&&o$d&&(ml.title=o$d.title),!M$6(pl)){var rp=ua.getTime()-pl;ml.$duration=parseFloat((rp/1e3).toFixed(3))}d$6&&this.config.opt_out_useragent_filter&&(ml.$browser_type=this._is_bot()?"bot":"browser"),(ml=Ci({},xu,this.persistence.properties(),this.sessionPersistence.properties(),ml)).$is_identified=this._isIdentified(),I$8(this.config.property_denylist)?Ii(this.config.property_denylist,(function(Vm){delete ml[Vm]})):Ei.error("Invalid value for property_denylist config: "+this.config.property_denylist+" or property_blacklist config: "+this.config.property_blacklist);var np=this.config.sanitize_properties;np&&(Ei.error("sanitize_properties is deprecated. Use before_send instead"),ml=np(ml,aa));var qm=this.vs();return ml.$process_person_profile=qm,qm&&!hl&&this.cs("_calculate_event_properties"),ml}hs(aa,ca){var ua;if(ca===void 0&&(ca=!0),!this.persistence||!this.vs()||this.zr)return aa;var Sa=this.persistence.get_initial_props(),hl=(ua=this.sessionPropsManager)==null?void 0:ua.getSetOnceProps(),pl=Ci({},Sa,hl||{},aa||{}),ml=this.config.sanitize_properties;return ml&&(Ei.error("sanitize_properties is deprecated. Use before_send instead"),pl=ml(pl,"$set_once")),ca&&(this.zr=!0),F$8(pl)?void 0:pl}register(aa,ca){var ua;(ua=this.persistence)==null||ua.register(aa,ca)}register_once(aa,ca,ua){var Sa;(Sa=this.persistence)==null||Sa.register_once(aa,ca,ua)}register_for_session(aa){var ca;(ca=this.sessionPersistence)==null||ca.register(aa)}unregister(aa){var ca;(ca=this.persistence)==null||ca.unregister(aa)}unregister_for_session(aa){var ca;(ca=this.sessionPersistence)==null||ca.unregister(aa)}fs(aa,ca){this.register({[aa]:ca})}getFeatureFlag(aa,ca){return this.featureFlags.getFeatureFlag(aa,ca)}getFeatureFlagPayload(aa){var ca=this.featureFlags.getFeatureFlagPayload(aa);try{return JSON.parse(ca)}catch{return ca}}isFeatureEnabled(aa,ca){return this.featureFlags.isFeatureEnabled(aa,ca)}reloadFeatureFlags(){this.featureFlags.reloadFeatureFlags()}updateFlags(aa,ca,ua){var Sa=ua!=null&&ua.merge?this.featureFlags.getFlagVariants():{},hl=ua!=null&&ua.merge?this.featureFlags.getFlagPayloads():{},pl=g$8({},Sa,aa),ml=g$8({},hl,ca),gl={};for(var[wc,xu]of Object.entries(pl)){var ff=typeof xu=="string";gl[wc]={key:wc,enabled:!!ff||!!xu,variant:ff?xu:void 0,reason:void 0,metadata:M$6(ml?.[wc])?void 0:{id:0,version:void 0,description:void 0,payload:ml[wc]}}}this.featureFlags.receivedFeatureFlags({flags:gl})}updateEarlyAccessFeatureEnrollment(aa,ca,ua){this.featureFlags.updateEarlyAccessFeatureEnrollment(aa,ca,ua)}getEarlyAccessFeatures(aa,ca,ua){return ca===void 0&&(ca=!1),this.featureFlags.getEarlyAccessFeatures(aa,ca,ua)}on(aa,ca){return this.Hr.on(aa,ca)}onFeatureFlags(aa){return this.featureFlags.onFeatureFlags(aa)}onSurveysLoaded(aa){return this.surveys.onSurveysLoaded(aa)}onSessionId(aa){var ca,ua;return(ca=(ua=this.sessionManager)==null?void 0:ua.onSessionId(aa))!==null&&ca!==void 0?ca:()=>{}}getSurveys(aa,ca){ca===void 0&&(ca=!1),this.surveys.getSurveys(aa,ca)}getActiveMatchingSurveys(aa,ca){ca===void 0&&(ca=!1),this.surveys.getActiveMatchingSurveys(aa,ca)}renderSurvey(aa,ca){this.surveys.renderSurvey(aa,ca)}displaySurvey(aa,ca){ca===void 0&&(ca=Qn),this.surveys.displaySurvey(aa,ca)}cancelPendingSurvey(aa){this.surveys.cancelPendingSurvey(aa)}canRenderSurvey(aa){return this.surveys.canRenderSurvey(aa)}canRenderSurveyAsync(aa,ca){return ca===void 0&&(ca=!1),this.surveys.canRenderSurveyAsync(aa,ca)}identify(aa,ca,ua){if(!this.__loaded||!this.persistence)return Ei.uninitializedWarning("posthog.identify");if(L$6(aa)&&(aa=aa.toString(),Ei.warn("The first argument to posthog.identify was a number, but it should be a string. It has been converted to a string.")),aa)if(["distinct_id","distinctid"].includes(aa.toLowerCase()))Ei.critical('The string "'+aa+'" was set in posthog.identify which indicates an error. This ID should be unique to the user and not a hardcoded string.');else if(aa!==_e$1){if(this.cs("posthog.identify")){var Sa=this.get_distinct_id();if(this.register({$user_id:aa}),!this.get_property("$device_id")){var hl=Sa;this.register_once({$had_persisted_distinct_id:!0,$device_id:hl},"")}aa!==Sa&&aa!==this.get_property(Hi)&&(this.unregister(Hi),this.register({distinct_id:aa}));var pl=(this.persistence.get_property(ue$1)||"anonymous")==="anonymous";aa!==Sa&&pl?(this.persistence.set_property(ue$1,"identified"),this.setPersonPropertiesForFlags(g$8({},ua||{},ca||{}),!1),this.capture("$identify",{distinct_id:aa,$anon_distinct_id:Sa},{$set:ca||{},$set_once:ua||{}}),this.Gr=cn$1(aa,ca,ua),this.featureFlags.setAnonymousDistinctId(Sa)):(ca||ua)&&this.setPersonProperties(ca,ua),aa!==Sa&&(this.reloadFeatureFlags(),this.unregister(le$2))}}else Ei.critical('The string "'+_e$1+'" was set in posthog.identify which indicates an error. This ID is only used as a sentinel value.');else Ei.error("Unique user id has not been set in posthog.identify")}setPersonProperties(aa,ca){if((aa||ca)&&this.cs("posthog.setPersonProperties")){var ua=cn$1(this.get_distinct_id(),aa,ca);this.Gr!==ua?(this.setPersonPropertiesForFlags(g$8({},ca||{},aa||{})),this.capture("$set",{$set:aa||{},$set_once:ca||{}}),this.Gr=ua):Ei.info("A duplicate setPersonProperties call was made with the same properties. It has been ignored.")}}group(aa,ca,ua){if(aa&&ca){var Sa=this.getGroups();Sa[aa]!==ca&&this.resetGroupPropertiesForFlags(aa),this.register({$groups:g$8({},Sa,{[aa]:ca})}),ua&&(this.capture("$groupidentify",{$group_type:aa,$group_key:ca,$group_set:ua}),this.setGroupPropertiesForFlags({[aa]:ua})),Sa[aa]===ca||ua||this.reloadFeatureFlags()}else Ei.error("posthog.group requires a group type and group key")}resetGroups(){this.register({$groups:{}}),this.resetGroupPropertiesForFlags(),this.reloadFeatureFlags()}setPersonPropertiesForFlags(aa,ca){ca===void 0&&(ca=!0),this.featureFlags.setPersonPropertiesForFlags(aa,ca)}resetPersonPropertiesForFlags(){this.featureFlags.resetPersonPropertiesForFlags()}setGroupPropertiesForFlags(aa,ca){ca===void 0&&(ca=!0),this.cs("posthog.setGroupPropertiesForFlags")&&this.featureFlags.setGroupPropertiesForFlags(aa,ca)}resetGroupPropertiesForFlags(aa){this.featureFlags.resetGroupPropertiesForFlags(aa)}reset(aa){var ca,ua,Sa,hl;if(Ei.info("reset"),!this.__loaded)return Ei.uninitializedWarning("posthog.reset");var pl=this.get_property("$device_id");if(this.consent.reset(),(ca=this.persistence)==null||ca.clear(),(ua=this.sessionPersistence)==null||ua.clear(),this.surveys.reset(),this.featureFlags.reset(),(Sa=this.persistence)==null||Sa.set_property(ue$1,"anonymous"),(hl=this.sessionManager)==null||hl.resetSessionId(),this.Gr=null,this.config.cookieless_mode==="always")this.register_once({distinct_id:_e$1,$device_id:null},"");else{var ml=this.config.get_device_id(wr());this.register_once({distinct_id:ml,$device_id:aa?ml:pl},"")}this.register({$last_posthog_reset:new Date().toISOString()},1)}get_distinct_id(){return this.get_property("distinct_id")}getGroups(){return this.get_property("$groups")||{}}get_session_id(){var aa,ca;return(aa=(ca=this.sessionManager)==null?void 0:ca.checkAndGetSessionAndWindowId(!0).sessionId)!==null&&aa!==void 0?aa:""}get_session_replay_url(aa){if(!this.sessionManager)return"";var{sessionId:ca,sessionStartTimestamp:ua}=this.sessionManager.checkAndGetSessionAndWindowId(!0),Sa=this.requestRouter.endpointFor("ui","/project/"+this.config.token+"/replay/"+ca);if(aa!=null&&aa.withTimestamp&&ua){var hl,pl=(hl=aa.timestampLookBack)!==null&&hl!==void 0?hl:10;if(!ua)return Sa;Sa+="?t="+Math.max(Math.floor((new Date().getTime()-ua)/1e3)-pl,0)}return Sa}alias(aa,ca){return aa===this.get_property(zi)?(Ei.critical("Attempting to create alias for existing People user - aborting."),-2):this.cs("posthog.alias")?(M$6(ca)&&(ca=this.get_distinct_id()),aa!==ca?(this.fs(Hi,aa),this.capture("$create_alias",{alias:aa,distinct_id:ca})):(Ei.warn("alias matches current distinct_id - skipping api call."),this.identify(aa),-1)):void 0}set_config(aa){var ca=g$8({},this.config);if(R$3(aa)){var ua,Sa,hl,pl,ml,gl,wc;Ci(this.config,zo(aa));var xu=this.Yr();(ua=this.persistence)==null||ua.update_config(this.config,ca,xu),this.sessionPersistence=this.config.persistence==="sessionStorage"||this.config.persistence==="memory"?this.persistence:new Fn(g$8({},this.config,{persistence:"sessionStorage"}),xu);var ff=this.Vr(this.config.debug);N$6(ff)&&(this.config.debug=ff),N$6(this.config.debug)&&(this.config.debug?(c$e.DEBUG=!0,Tr.H()&&Tr.G("ph_debug","true"),Ei.info("set_config",{config:aa,oldConfig:ca,newConfig:g$8({},this.config)})):(c$e.DEBUG=!1,Tr.H()&&Tr.V("ph_debug"))),(Sa=this.exceptionObserver)==null||Sa.onConfigChange(),(hl=this.sessionRecording)==null||hl.startIfEnabledOrStop(),(pl=this.autocapture)==null||pl.startIfEnabled(),(ml=this.heatmaps)==null||ml.startIfEnabled(),(gl=this.exceptionObserver)==null||gl.startIfEnabledOrStop(),this.surveys.loadIfEnabled(),this.ps(),(wc=this.externalIntegrations)==null||wc.startIfEnabledOrStop()}}startSessionRecording(aa){var ca=aa===!0,ua={sampling:ca||!(aa==null||!aa.sampling),linked_flag:ca||!(aa==null||!aa.linked_flag),url_trigger:ca||!(aa==null||!aa.url_trigger),event_trigger:ca||!(aa==null||!aa.event_trigger)};if(Object.values(ua).some(Boolean)){var Sa,hl,pl,ml,gl;(Sa=this.sessionManager)==null||Sa.checkAndGetSessionAndWindowId(),ua.sampling&&((hl=this.sessionRecording)==null||hl.overrideSampling()),ua.linked_flag&&((pl=this.sessionRecording)==null||pl.overrideLinkedFlag()),ua.url_trigger&&((ml=this.sessionRecording)==null||ml.overrideTrigger("url")),ua.event_trigger&&((gl=this.sessionRecording)==null||gl.overrideTrigger("event"))}this.set_config({disable_session_recording:!1})}stopSessionRecording(){this.set_config({disable_session_recording:!0})}sessionRecordingStarted(){var aa;return!((aa=this.sessionRecording)==null||!aa.started)}captureException(aa,ca){var ua=new Error("PostHog syntheticException"),Sa=this.exceptions.buildProperties(aa,{handled:!0,syntheticException:ua});return this.exceptions.sendExceptionEvent(g$8({},Sa,ca))}startExceptionAutocapture(aa){this.set_config({capture_exceptions:aa==null||aa})}stopExceptionAutocapture(){this.set_config({capture_exceptions:!1})}loadToolbar(aa){return this.toolbar.loadToolbar(aa)}get_property(aa){var ca;return(ca=this.persistence)==null?void 0:ca.props[aa]}getSessionProperty(aa){var ca;return(ca=this.sessionPersistence)==null?void 0:ca.props[aa]}toString(){var aa,ca=(aa=this.config.name)!==null&&aa!==void 0?aa:Lo;return ca!==Lo&&(ca=Lo+"."+ca),ca}_isIdentified(){var aa,ca;return((aa=this.persistence)==null?void 0:aa.get_property(ue$1))==="identified"||((ca=this.sessionPersistence)==null?void 0:ca.get_property(ue$1))==="identified"}vs(){var aa,ca;return!(this.config.person_profiles==="never"||this.config.person_profiles==="identified_only"&&!this._isIdentified()&&F$8(this.getGroups())&&((aa=this.persistence)==null||(aa=aa.props)==null||!aa[Hi])&&((ca=this.persistence)==null||(ca=ca.props)==null||!ca[pe$2]))}us(){return this.config.capture_pageleave===!0||this.config.capture_pageleave==="if_capture_pageview"&&(this.config.capture_pageview===!0||this.config.capture_pageview==="history_change")}createPersonProfile(){this.vs()||this.cs("posthog.createPersonProfile")&&this.setPersonProperties({},{})}cs(aa){return this.config.person_profiles==="never"?(Ei.error(aa+' was called, but process_person is set to "never". This call will be ignored.'),!1):(this.fs(pe$2,!0),!0)}Yr(){if(this.config.cookieless_mode==="always")return!0;var aa=this.consent.isOptedOut(),ca=this.config.opt_out_persistence_by_default||this.config.cookieless_mode==="on_reject";return this.config.disable_persistence||aa&&!!ca}ps(){var aa,ca,ua,Sa,hl=this.Yr();return((aa=this.persistence)==null?void 0:aa.Si)!==hl&&((ua=this.persistence)==null||ua.set_disabled(hl)),((ca=this.sessionPersistence)==null?void 0:ca.Si)!==hl&&((Sa=this.sessionPersistence)==null||Sa.set_disabled(hl)),hl}opt_in_capturing(aa){var ca;if(this.config.cookieless_mode!=="always"){var ua,Sa,hl;this.config.cookieless_mode==="on_reject"&&this.consent.isExplicitlyOptedOut()&&(this.reset(!0),(ua=this.sessionManager)==null||ua.destroy(),(Sa=this.pageViewManager)==null||Sa.destroy(),this.sessionManager=new bo(this),this.pageViewManager=new Es(this),this.persistence&&(this.sessionPropsManager=new mo(this,this.sessionManager,this.persistence)),this.sessionRecording=new Ao(this),this.sessionRecording.startIfEnabledOrStop()),this.consent.optInOut(!0),this.ps(),this.os(),(ca=this.sessionRecording)==null||ca.startIfEnabledOrStop(),this.config.cookieless_mode=="on_reject"&&this.surveys.loadIfEnabled(),(M$6(aa?.captureEventName)||aa!=null&&aa.captureEventName)&&this.capture((hl=aa?.captureEventName)!==null&&hl!==void 0?hl:"$opt_in",aa?.captureProperties,{send_instantly:!0}),this.config.capture_pageview&&this.ls()}else Ei.warn('Consent opt in/out is not valid with cookieless_mode="always" and will be ignored')}opt_out_capturing(){var aa,ca,ua;this.config.cookieless_mode!=="always"?(this.config.cookieless_mode==="on_reject"&&this.consent.isOptedIn()&&this.reset(!0),this.consent.optInOut(!1),this.ps(),this.config.cookieless_mode==="on_reject"&&(this.register({distinct_id:_e$1,$device_id:null}),(aa=this.sessionManager)==null||aa.destroy(),(ca=this.pageViewManager)==null||ca.destroy(),this.sessionManager=void 0,this.sessionPropsManager=void 0,(ua=this.sessionRecording)==null||ua.stopRecording(),this.sessionRecording=void 0,this.ls())):Ei.warn('Consent opt in/out is not valid with cookieless_mode="always" and will be ignored')}has_opted_in_capturing(){return this.consent.isOptedIn()}has_opted_out_capturing(){return this.consent.isOptedOut()}get_explicit_consent_status(){var aa=this.consent.consent;return aa===Or.GRANTED?"granted":aa===Or.DENIED?"denied":"pending"}is_capturing(){return this.config.cookieless_mode==="always"||(this.config.cookieless_mode==="on_reject"?this.consent.isExplicitlyOptedOut()||this.consent.isOptedIn():!this.has_opted_out_capturing())}clear_opt_in_out_capturing(){this.consent.reset(),this.ps()}_is_bot(){return n$9?$o(n$9,this.config.custom_blocked_useragents):void 0}ls(){o$d&&(o$d.visibilityState==="visible"?this.Br||(this.Br=!0,this.capture("$pageview",{title:o$d.title},{send_instantly:!0}),this.qr&&(o$d.removeEventListener("visibilitychange",this.qr),this.qr=null)):this.qr||(this.qr=this.ls.bind(this),Ui(o$d,"visibilitychange",this.qr)))}debug(aa){aa===!1?(t$9?.console.log("You've disabled debug mode."),this.set_config({debug:!1})):(t$9?.console.log("You're now in debug mode. All calls to PostHog will be logged in your console.\nYou can disable this with `posthog.debug(false)`."),this.set_config({debug:!0}))}O(){var aa,ca,ua,Sa,hl,pl,ml,gl=this.Jr||{};return"advanced_disable_flags"in gl?!!gl.advanced_disable_flags:this.config.advanced_disable_flags!==!1?!!this.config.advanced_disable_flags:this.config.advanced_disable_decide===!0?(Ei.warn("Config field 'advanced_disable_decide' is deprecated. Please use 'advanced_disable_flags' instead. The old field will be removed in a future major version."),!0):(ua="advanced_disable_decide",Sa=!1,hl=Ei,pl=(ca="advanced_disable_flags")in(aa=gl)&&!M$6(aa[ca]),ml=ua in aa&&!M$6(aa[ua]),pl?aa[ca]:ml?(hl&&hl.warn("Config field '"+ua+"' is deprecated. Please use '"+ca+"' instead. The old field will be removed in a future major version."),aa[ua]):Sa)}ds(aa){if(j$a(this.config.before_send))return aa;var ca=I$8(this.config.before_send)?this.config.before_send:[this.config.before_send],ua=aa;for(var Sa of ca){if(ua=Sa(ua),j$a(ua)){var hl="Event '"+aa.event+"' was rejected in beforeSend function";return z$5(aa.event)?Ei.warn(hl+". This can cause unexpected behavior."):Ei.info(hl),null}ua.properties&&!F$8(ua.properties)||Ei.warn("Event '"+aa.event+"' has no properties after beforeSend function, this is likely an error.")}return ua}getPageViewId(){var aa;return(aa=this.pageViewManager.Kt)==null?void 0:aa.pageViewId}captureTraceFeedback(aa,ca){this.capture("$ai_feedback",{$ai_trace_id:String(aa),$ai_feedback_text:ca})}captureTraceMetric(aa,ca,ua){this.capture("$ai_metric",{$ai_trace_id:String(aa),$ai_metric_name:ca,$ai_metric_value:String(ua)})}Vr(aa){var ca=N$6(aa)&&!aa,ua=Tr.H()&&Tr.q("ph_debug")==="true";return!ca&&(!!ua||aa)}}(function(la,aa){for(var ca=0;ca<aa.length;ca++)la.prototype[aa[ca]]=Oi(la.prototype[aa[ca]])})(Bo,["identify"]);var qo,Go=(qo=Do[Lo]=new Bo,(function(){function la(){la.done||(la.done=!0,No=!1,Ii(Do,(function(aa){aa._dom_loaded()})))}o$d!=null&&o$d.addEventListener?o$d.readyState==="complete"?la():Ui(o$d,"DOMContentLoaded",la,{capture:!1}):t$9&&Ei.error("Browser doesn't support `document.addEventListener` so PostHog couldn't be initialized")})(),qo);const IS_PLAYGROUND$5=!1,metaAxiosInstance$1=axiosInstance("meta"),useAuth=()=>{const la=useNavigate(),aa=useAppStore(R1=>R1.resetStore),ca=useAppStore(R1=>R1.user),ua=useAppStore(R1=>R1.setUser),{initializeApp:Sa,resetInitialization:hl}=useAppInitialization(),[pl,ml]=reactExports.useState(!1),[gl,wc]=reactExports.useState(!1),[xu,ff]=reactExports.useState(null),jf=useAppStore(R1=>R1.clearAuth),Uf=useAppStore(R1=>R1.setAuthState),rp=useAppStore(R1=>R1.setAuthError),np=useAppStore(R1=>R1.setAuthData),qm=R1=>{try{const O1=R1.split(".")[1];return JSON.parse(atob(O1)).email||null}catch(O1){console.warn(`Failed to decode JWT token: ${O1}`)}},Vm=async(R1,O1)=>{try{Uf("loading"),rp(null);const K0=localStorage.getItem("username");if(K0&&K0!==R1){console.log("Switching accounts - clearing previous user data"),localStorage.removeItem("id_token"),localStorage.removeItem("access_token"),localStorage.removeItem("refresh_token"),localStorage.removeItem("user_id"),localStorage.removeItem("session_id"),localStorage.removeItem("username"),localStorage.removeItem("user_profile_id"),localStorage.removeItem("workspace_id"),localStorage.removeItem("agentlang-studio-store"),aa(),jf();const{setLastDataFetch:Y0}=useAppStore.getState();Y0(0)}const{data:J0}=await metaAxiosInstance$1.post("/agentlang_auth/login",{email:R1,password:O1}),Hw=J0;if(Hw&&typeof Hw=="object"&&Hw.id_token){const G0=qm(Hw.id_token)||R1;np({token:Hw.id_token,accessToken:Hw.access_token,refreshToken:Hw.refresh_token,userId:Hw.userId,sessionId:Hw.sessionId,username:G0});const{setLastDataFetch:X0}=useAppStore.getState();X0(0);try{const d_=String(Hw.userId||G0);Go.identify(d_,{email:G0,sessionId:Hw.sessionId,authMethod:"password"})}catch(d_){console.warn("PostHog identify failed:",d_)}}else if(typeof Hw=="string"&&Hw.includes("/")){if(console.log("Processing legacy login format:",Hw),typeof Hw.split!="function")throw console.error("loginResult.split is not a function:",{loginResult:Hw,type:typeof Hw}),new Error("Invalid login result format - split method not available");const[Y0,G0]=Hw.split("/");if(!Y0||!G0)throw console.error("Invalid userId/sessionId format:",{userId:Y0,sessionId:G0,loginResult:Hw}),new Error("Invalid login result format - missing userId or sessionId");np({userId:Y0,sessionId:G0,username:R1});const{setLastDataFetch:X0}=useAppStore.getState();X0(0);try{const d_=String(Y0||R1);Go.identify(d_,{email:R1,sessionId:G0,authMethod:"password"})}catch(d_){console.warn("PostHog identify failed (legacy):",d_)}}else throw console.error("Login failed - invalid response format:",{loginResult:Hw,type:typeof Hw,isObject:typeof Hw=="object",isString:typeof Hw=="string",hasIdToken:Hw?.id_token,includesSlash:typeof Hw=="string"&&Hw.includes("/")}),new Error(`Login failed due to invalid response format. Expected object with id_token or string with '/', got: ${typeof Hw}`);y$b.success("Login successful");const{authData:qw}=useAppStore.getState();if(qw.userId)try{const Y0=await metaAxiosInstance$1.get(`/agentlang_auth/User/${qw.userId}/AgentMeta$UserHasUserProfile/AgentMeta$UserProfile`);if(Y0.data&&Array.isArray(Y0.data)&&Y0.data.length>0){const G0=Y0.data[Y0.data.length-1].UserProfile;if(G0.id){localStorage.setItem("user_profile_id",G0.id),np({userProfileId:G0.id});try{const X0=String(qw.userId||qw.username||"unknown");Go.group("user_profile",G0.id,{email:G0.userEmail||qw.username}),Go.identify(X0,{email:G0.userEmail||qw.username,userProfileId:G0.id})}catch(X0){console.warn("PostHog person/group update failed:",X0)}}}}catch(Y0){console.warn("Failed to fetch user profile after login:",Y0)}Sa(),la("/home")}catch(K0){console.error("Login error:",K0),y$b.error(K0?.response?.data?.reason||"Login failed"),y$b.error(K0?.response?.data?.message||K0?.message||"Login failed")}},eg=async()=>{if(!pl){ml(!0);try{typeof window<"u"&&window.dispatchEvent(new CustomEvent("userLoggingOut")),IS_PLAYGROUND$5||await metaAxiosInstance$1.post("/agentlang_auth/logout")}catch(R1){console.warn("Logout API call failed, but clearing local data:",R1)}finally{try{Go.reset()}catch(J0){console.warn("PostHog reset failed:",J0)}jf(),localStorage.removeItem("workspace_id"),localStorage.removeItem("user_profile_id"),localStorage.removeItem("id_token"),localStorage.removeItem("access_token"),localStorage.removeItem("refresh_token"),localStorage.removeItem("user_id"),localStorage.removeItem("session_id"),localStorage.removeItem("username"),aa(),hl(),localStorage.removeItem("agentlang-studio-store"),localStorage.removeItem("chatbotMessages");const{setAuthData:R1,setWorkspace:O1,setUser:K0}=useAppStore.getState();R1({token:"",userId:"",sessionId:"",username:"",userProfileId:"",accessToken:"",refreshToken:""}),O1(""),K0({Email:"",CurrentWorkspace:{Id:""},Anthropic:{Key:""},OpenAI:{Key:"",FinetunedModel:""},GitHub:{Username:"",Org:"",Token:""}}),ml(!1),la("/")}}},tg=async(R1,O1)=>{try{const{authData:K0}=useAppStore.getState();if(!K0.token){y$b.error("Authentication token not found. Please login again.");return}await metaAxiosInstance$1.post("/agentlang_auth/changePassword",{newPassword:O1,password:R1}),y$b.success("Password changed successfully")}catch(K0){y$b.error(K0?.response?.data?.reason||"Failed to change password")}},rg=async R1=>{try{const{authData:O1}=useAppStore.getState(),{username:K0,userId:J0,userProfileId:Hw}=O1;if(!J0||!Hw){y$b.error("User ID not found. Please re-login.");return}await metaAxiosInstance$1.put(`/agentlang_auth/User/${J0}/AgentMeta$UserHasUserProfile/AgentMeta$UserProfile/${Hw}`,{userEmail:K0,userKeys:{OpenAI:R1.OpenAI,Anthropic:R1.Anthropic,GitHub:R1.GitHub}}),ua(R1),y$b.success("Profile updated successfully")}catch(O1){y$b.error(O1?.response?.data?.reason||"Failed to update profile")}},ig=reactExports.useCallback(async(R1=!1)=>{const{authData:O1}=useAppStore.getState();let{userId:K0,userProfileId:J0,username:Hw}=O1;const{token:qw}=O1;if(J0||(J0=localStorage.getItem("user_profile_id")||""),K0||(K0=localStorage.getItem("user_id")||""),Hw||(Hw=localStorage.getItem("username")||""),!!!(K0&&Hw&&qw)){console.log("Auth not ready for profile fetch:",{userId:K0,username:Hw,hasToken:!!qw});return}if(!(!R1&&ca.Email&&!gl))try{if(wc(!0),ff(null),!J0){const X0=await metaAxiosInstance$1.get(`/agentlang_auth/User/${K0}/AgentMeta$UserHasUserProfile/AgentMeta$UserProfile`);if(X0.data&&Array.isArray(X0.data)&&X0.data.length>0){const d_=X0.data[X0.data.length-1].UserProfile;if(d_.id){localStorage.setItem("user_profile_id",d_.id);const zN=useAppStore.getState().authData;np({...zN,userProfileId:d_.id}),console.log("Set userProfileId in auth store:",d_.id)}let f_;try{f_=typeof d_.userKeys=="string"?JSON.parse(d_.userKeys):d_.userKeys}catch{f_={OpenAI:{Key:"",FinetunedModel:""},Anthropic:{Key:""},GitHub:{Username:"",Org:"",Token:""}}}ua({Email:d_.userEmail||Hw,CurrentWorkspace:{Id:""},...f_});return}console.warn("No user profiles found. User needs to complete signup process to create profile."),ff("No user profile found. Please contact support if this persists.");return}const G0=await metaAxiosInstance$1.get(`/agentlang_auth/User/${K0}/AgentMeta$UserHasUserProfile/AgentMeta$UserProfile/${J0}`);if(!G0.data||Array.isArray(G0.data)&&G0.data.length===0){const X0=await metaAxiosInstance$1.get(`/agentlang_auth/User/${K0}/AgentMeta$UserHasUserProfile/AgentMeta$UserProfile`);if(X0.data&&Array.isArray(X0.data)&&X0.data.length>0){const d_=X0.data[X0.data.length-1].UserProfile;if(d_.id){localStorage.setItem("user_profile_id",d_.id);const zN=useAppStore.getState().authData;np({...zN,userProfileId:d_.id}),console.log("Set userProfileId in auth store (fallback):",d_.id);try{const BN=String(zN.userId||zN.username||"unknown");Go.group("user_profile",d_.id,{email:d_.userEmail||zN.username}),Go.identify(BN,{email:d_.userEmail||zN.username,userProfileId:d_.id})}catch(BN){console.warn("PostHog person/group update failed (fallback):",BN)}}let f_;try{f_=typeof d_.userKeys=="string"?JSON.parse(d_.userKeys):d_.userKeys}catch{f_={OpenAI:{Key:"",FinetunedModel:""},Anthropic:{Key:""},GitHub:{Username:"",Org:"",Token:""}}}ua({Email:d_.userEmail||Hw,CurrentWorkspace:{Id:""},...f_});return}console.warn("No profiles found for user. User needs to complete signup process."),ff("No user profile found. Please contact support if this persists.");return}if(G0.data&&Array.isArray(G0.data)&&G0.data.length>0){const X0=G0.data[0].UserProfile;let d_;try{d_=typeof X0.userKeys=="string"?JSON.parse(X0.userKeys):X0.userKeys}catch(zN){console.warn("Failed to parse userKeys JSON:",zN),d_={OpenAI:{Key:"",FinetunedModel:""},Anthropic:{Key:""},GitHub:{Username:"",Org:"",Token:""}}}const f_={Email:X0.userEmail||Hw||"",CurrentWorkspace:ca.CurrentWorkspace||{Id:""},Anthropic:d_.Anthropic||{Key:""},OpenAI:d_.OpenAI||{Key:"",FinetunedModel:""},GitHub:d_.GitHub||{Username:"",Org:"",Token:""}};ua(f_)}else throw new Error("Unexpected response format")}catch(G0){console.error("useAuth: Failed to fetch user profile:",G0),ff(G0?.response?.data?.reason||G0?.message||"Failed to fetch user profile")}finally{wc(!1)}},[ca.CurrentWorkspace,ca.Email,gl,ua,np]),vv=useAppStore(R1=>R1.authReady);return reactExports.useEffect(()=>{vv&&ig()},[vv,ig]),{login:Vm,logoutHandler:eg,changePassword:tg,setUserProfile:rg,isLoggingOut:pl,fetchUserProfile:ig,profileLoading:gl,profileError:xu,userProfile:ca}},IS_PLAYGROUND$4=!1,metaAxiosInstance=axiosInstance("meta"),useSignUp=()=>{const la=useNavigate(),[aa,ca]=reactExports.useState(!1),ua=useAppStore(ml=>ml.setAuthData),Sa=useAppStore(ml=>ml.setUser),{initializeApp:hl}=useAppInitialization();return{signUp:reactExports.useCallback(async ml=>{if(aa)return{success:!1,error:"Sign up already in progress"};ca(!0);try{console.log("Registering new user:",ml.email);const gl=await metaAxiosInstance.post("/agentlang_auth/register",{email:ml.email,password:ml.password,firstName:ml.firstName,lastName:ml.lastName});if(!gl.data)throw new Error("Registration failed - no response received");const{userId:wc,email:xu}=gl.data;if(!wc)throw new Error("Registration failed - no userId received");console.log("Creating user profile and workspace...");const ff=await metaAxiosInstance.post("/AgentMeta/PostSignUp",{userId:wc,userEmail:xu||ml.email,userKeys:{OpenAI:{Key:"",FinetunedModel:""},Anthropic:{Key:""},GitHub:{Username:"",Org:"",Token:""}}});if(!ff.data||!Array.isArray(ff.data)||ff.data.length===0)throw new Error("Failed to create user profile and workspace");const jf=ff.data[0];let Uf=null,rp=null;if(jf?.User?.["AgentMeta/UserHasUserProfile"]?.[0]?.UserProfile){const Vm=jf.User["AgentMeta/UserHasUserProfile"][0].UserProfile;Uf=Vm.id,Vm["AgentMeta/UserWorkspace"]?.[0]?.Workspace&&(rp=Vm["AgentMeta/UserWorkspace"][0].Workspace.id)}if(!Uf)throw new Error("Failed to create user profile");console.log("User profile and workspace created successfully:",{userProfileId:Uf,workspaceId:rp}),console.log("Performing automatic login...");const qm=(await metaAxiosInstance.post("/agentlang_auth/login",{email:ml.email,password:ml.password})).data;return qm&&typeof qm=="object"&&qm.id_token?(ua({token:qm.id_token,accessToken:qm.access_token,refreshToken:qm.refresh_token,userId:qm.userId||wc,sessionId:qm.sessionId,username:ml.email,userProfileId:Uf}),localStorage.setItem("user_profile_id",Uf),rp&&localStorage.setItem("workspace_id",rp),Sa({Email:ml.email,user_profile_id:Uf,CurrentWorkspace:{Id:rp||""},Anthropic:{Key:""},OpenAI:{Key:"",FinetunedModel:""},GitHub:{Username:"",Org:"",Token:""}}),y$b.success("Account created successfully! Welcome!"),IS_PLAYGROUND$4||await hl(),la("/home"),{success:!0,message:"Account created and logged in successfully"}):(y$b.success("Account created successfully! Please login with your credentials."),la("/"),{success:!0,message:"Account created successfully. Please login."})}catch(gl){console.error("Sign up failed:",gl);const wc=gl?.response?.data?.reason||gl?.response?.data?.message||gl?.message||"Sign up failed. Please try again.";return y$b.error(wc),{success:!1,error:wc}}finally{ca(!1)}},[la,ua,Sa,hl,aa]),isSigningUp:aa}},getEntities=la=>{if(!la)return[];try{return fetchModule$2(la).getEntityNames()}catch(aa){return console.error("Error fetching module:",aa),[]}},getRecords=la=>{if(!la)return[];try{return fetchModule$2(la).getRecordNames()}catch(aa){return console.error("Error fetching records:",aa),[]}},getEvents=la=>{if(!la)return[];try{const aa=fetchModule$2(la);return aa.getEventNames().filter(ua=>!aa.isPrePostEvent(ua))}catch(aa){return console.error("Error fetching events:",aa),[]}},getAgents=la=>{if(!la)return[];try{return fetchModule$2(la).getAgentNames()}catch(aa){return console.error("Error fetching agents:",aa),[]}},getDecisions=la=>{if(!la)return[];try{return fetchModule$2(la).getAllDecisions().map(ua=>ua.name)}catch(aa){return console.error("Error fetching decisions:",aa),[]}},getRelationships=la=>{if(!la)return[];try{return fetchModule$2(la).getRelationshipNames()}catch(aa){return console.error("Error fetching relationships:",aa),[]}},isAgent=(la,aa)=>!!fetchModule$2(la).getAgent(aa),isEvent=(la,aa)=>fetchModule$2(la).getEventNames().includes(aa),isRecord=(la,aa)=>fetchModule$2(la).getRecordNames().includes(aa),isEntity=(la,aa)=>fetchModule$2(la).getEntityNames().includes(aa),isRelationship=(la,aa)=>fetchModule$2(la).getRelationshipNames().includes(aa),getAgent=(la,aa)=>fetchModule$2(la).getAgent(aa),useEntity=()=>{const{zoomHandler:la}=useZoomHandler(),aa=useMatches(),{id:ca}=aa[aa.length-1]||{},{teamName:ua,moduleName:Sa}=useParams(),hl=useAppStore(ig=>ig.user),{incrementModuleDbChangeCount:pl}=useAppStore(),ml=hl.GitHub.Token,gl=hl.GitHub.Username,wc=Un$1(),{saveUISpec:xu}=useSaveUISpec(),ff=async ig=>{if(!ua)throw new Error("teamName is undefined");if(!Sa)throw new Error("moduleName is undefined");addEntity(ig,Sa);const vv=fetchModule$2(Sa).toString();if(saveModuleToGit(ua,Sa,vv,`Add entity ${ig}`,gl,ml),pl(),wc&&xu)try{const R1=`${Sa}/${ig}`,O1=repopulateUISchemaForNewEntity(wc,R1);xu(O1,`Update UI schema for new entity ${ig}`)}catch(R1){console.error("[useEntity] Failed to repopulate UI schema for new entity:",R1)}setTimeout(()=>{la(`${Sa}/${ig}`)},100)},jf=async ig=>{if(!ua)throw new Error("teamName is undefined");if(!Sa)throw new Error("moduleName is undefined");addRecord$1(ig,Sa);const vv=fetchModule$2(Sa).toString();saveModuleToGit(ua,Sa,vv,`Add record ${ig}`,gl,ml),pl(),setTimeout(()=>{la(`${Sa}/${ig}`)},100)},Uf=async ig=>{if(!ua)throw new Error("teamName is undefined");if(!Sa)throw new Error("moduleName is undefined");addEvent(ig,Sa),addWorkflow(ig,Sa);const vv=fetchModule$2(Sa).toString();saveModuleToGit(ua,Sa,vv,`Add event ${ig}`,gl,ml),pl(),setTimeout(()=>{la(ig)},200)},rp=(ig,vv)=>{let R1;isFqName$1(vv)?R1=nameToPath$1(vv).getEntryName():R1=vv;const O1=R1.replace(/--workflow$/,"");if(isEvent(Sa||"",O1))removeEvent(R1,Sa||"");else{if(!isEvent(Sa||"",O1)&&!isRelationship(Sa||"",O1)){const K0=isFqName$1(vv)?vv:`${Sa}/${O1}`;getRelationships(Sa||"").forEach(Hw=>{try{const qw=getRelationship$1(Hw,Sa||"");if(qw){const Y0=qw.getParentFqName(),G0=qw.getChildFqName();(Y0===K0||G0===K0)&&ig.removeEntry(Hw)}}catch(qw){console.warn(`Failed to check relationship ${Hw} for entity ${K0}:`,qw)}})}ig.removeEntry(R1)}};return{addEntity:ff,addRecord:jf,addEvent:Uf,deleteHandler:async ig=>{if(!ua)throw new Error("teamName is undefined");if(!Sa)throw new Error("moduleName is undefined");const vv=fetchModule$2(Sa||"");ig.forEach(K0=>{rp(vv,K0)});const R1=vv.toString(),O1=`Delete entries ${ig.join(", ")}`;if(saveModuleToGit(ua,Sa,R1,O1,gl,ml),pl(),setTimeout(()=>{const K0=getEntities(Sa),J0=getRecords(Sa),Hw=getEvents(Sa),qw=getAgents(Sa);if(ca==="data-model"||ca==="marketplace-data-model"){if(K0.length>0){la(`${Sa}/${K0[0]}`);return}if(J0.length>0){la(`${Sa}/${J0[0]}`);return}}if(ca==="agents"&&qw.length>0){la(qw[0]);return}if(ca==="workflow"&&Hw.length>0){la(Hw[0]);return}},200),wc&&xu&&Sa)try{let K0=wc;const J0=[],Hw=[];if(ig.forEach(qw=>{let Y0;isFqName$1(qw)?Y0=nameToPath$1(qw).getEntryName():Y0=qw;const G0=Y0.replace(/--workflow$/,"");if(isRelationship(Sa,G0))J0.push(G0);else if(!isEvent(Sa,G0)){const X0=isFqName$1(qw)?qw:`${Sa}/${Y0}`;Hw.push(X0)}}),J0.length>0&&(K0=repopulateUISchemaAfterRelationshipDeletion(K0,J0[0],Sa)),Hw.length>0&&Hw.forEach(qw=>{K0=repopulateUISchemaAfterEntityDeletion(K0,qw)}),J0.length>0||Hw.length>0){const qw=[...J0.length>0?[`relationships: ${J0.join(", ")}`]:[],...Hw.length>0?[`entities: ${Hw.join(", ")}`]:[]];xu(K0,`Update UI schema after deleting ${qw.join(" and ")}`)}}catch(K0){console.error("[useEntity] Failed to repopulate UI schema after entry deletion:",K0)}},addAttribute:async(ig,vv,R1,O1,K0="type",J0=[],Hw="",qw)=>{if(!Sa)throw new Error("moduleName is undefined");if(!ua)throw new Error("teamName is undefined");const Y0=fetchModule$2(Sa),G0=Y0.getEntry(ig),X0=K0==="Entity"||K0==="Record",d_=K0==="@oneof",f_=K0==="@enum";let zN;if(f_&&J0.length>0)zN=enumAttributeSpec(new Set(J0)),Hw&&(zN=setDefaultAttributeValue(zN,Hw));else if(d_){if(!qw)throw new Error("Compound type info is required for Entity or Record types");const BN=`${qw.module}/${qw.entity}`;zN=oneOfAttributeSpec(BN)}else if(X0){if(!qw)throw new Error("Compound type info is required for Entity or Record types");zN={type:`${qw.module}/${qw.entity}`,properties:new Map},O1.forEach(BN=>{zN.properties?.set(BN,!0)})}else zN={type:R1,properties:new Map},O1.forEach(BN=>{zN.properties?.set(BN,!0)}),Hw&&(zN=setDefaultAttributeValue(zN,Hw));if(G0.addAttribute(vv,zN),saveModuleToGit(ua,Sa,Y0.toString(),`Add attribute ${vv} to ${ig}`,gl,ml),pl(),wc&&xu)try{const BN=`${Sa}/${ig}`,iF=repopulateUISchemaForNewAttribute(wc,BN,vv);xu(iF,`Update UI schema for new attribute ${vv} in ${ig}`)}catch(BN){console.error(" Failed to repopulate UI schema for new attribute:",BN)}},deleteAttributes:async(ig,vv)=>{if(!Sa)throw new Error("moduleName is undefined");if(!ua)throw new Error("teamName is undefined");const R1=isFqName$1(ig)?nameToPath$1(ig).getEntryName():ig,O1=fetchModule$2(Sa),K0=O1.getEntry(R1);if(vv.forEach(J0=>{K0.removeAttribute(J0)}),pl(),saveModuleToGit(ua,Sa,O1.toString(),`Delete attributes ${vv.join(", ")} from ${ig}`,gl,ml),wc&&xu)try{const J0=isFqName$1(ig)?ig:`${Sa}/${R1}`,Hw=repopulateUISchemaAfterAttributeDeletion(wc,J0,vv);xu(Hw,`Update UI schema after deleting attributes ${vv.join(", ")} from ${ig}`)}catch(J0){console.error("[useEntity] Failed to repopulate UI schema after attribute deletion:",J0)}},reorderAttributes:async(ig,vv)=>{if(!Sa)throw new Error("moduleName is undefined");if(!ua)throw new Error("teamName is undefined");const R1=isFqName$1(ig)?nameToPath$1(ig).getEntryName():ig,O1=fetchModule$2(Sa);O1.getEntry(R1).reorderAttributes(vv),pl(),await saveModuleToGit(ua,Sa,O1.toString(),`Reorder attributes in ${ig}`,gl,ml)},setEventPublic:async(ig,vv)=>{if(!ua)throw new Error("teamName is undefined");if(!Sa)throw new Error("moduleName is undefined");const R1=isFqName$1(ig)?nameToPath$1(ig).getEntryName():ig,O1=fetchModule$2(Sa);getEvent$1(R1,Sa).setPublic(vv);const J0=O1.toString();pl(),await saveModuleToGit(ua,Sa,J0,`Set Public status for Event ${ig}`,gl,ml)},getEventPublic:ig=>{if(!Sa)throw new Error("moduleName is undefined");const vv=isFqName$1(ig)?nameToPath$1(ig).getEntryName():ig;return getEvent$1(vv,Sa).isPublic()}}},useEntityDetailsChange=la=>{const aa=Un$1();return{onEntityDetailsChange:(ua,Sa)=>{if(la&&aa){const hl={...aa,[ua]:{...aa?.[ua]||{},...Sa}};la(hl,`Update ${ua} entity details`)}}}},useModule=()=>{const{incrementModuleDbChangeCount:la}=useAppStore(),aa=useNavigate(),{pathname:ca}=useLocation(),ua=ca.split("/"),Sa=getUserModuleNames(),{teamName:hl}=useParams(),pl=useAppStore(Uf=>Uf.user),ml=pl.GitHub.Token,gl=pl.GitHub.Username,wc=Uf=>{aa([...ua.slice(0,-1),Uf].join("/"))};return{navigateModule:wc,addModuleHandler:Uf=>{addModule$1(Uf),saveModuleToGit(hl||"local-user",Uf,fetchModule$2(Uf).toString(),`Add module ${Uf} to ${hl||"local-user"}`,gl,ml),la(),wc(Uf)},deleteModuleHandler:Uf=>{if(Sa.length===1){y$b.error("Cannot delete the last module");return}removeModule(Uf),saveModuleToGit(hl||"local-user",Uf,fetchModule$2(Uf).toString(),`Delete module ${Uf} from ${hl||"local-user"}`,gl,ml);const rp=Sa.filter(np=>Uf!==np);wc(rp.length>0?rp[rp.length-1]:""),la()},getModuleCode:Uf=>{try{return isModule$1(Uf)?fetchModule$2(Uf).toString():""}catch(rp){return console.error(rp),""}}}},useOutsideClickHandler=la=>{const aa=reactExports.useRef(null);return reactExports.useEffect(()=>{const ca=ua=>{const Sa=ua.target,hl=Sa.closest('[role="option"]')||Sa.closest(".dropdown-options")||Sa.closest("[data-headlessui-state]")||Sa.closest("[data-radix-dropdown-menu-content]")||Sa.closest("[data-radix-dropdown-menu-sub-content]")||Sa.closest("[data-query-attribute-menu]")||Sa.closest("[data-radix-portal]")||Sa.closest("[data-radix-popper-content-wrapper]"),pl=Sa.closest(".chatbot-fab-button");aa.current&&!aa.current.contains(Sa)&&!hl&&!pl&&la()};return document.addEventListener("click",ca,!0),()=>{document.removeEventListener("click",ca,!0)}},[la]),aa},useRelationship$1=()=>{const{incrementModuleDbChangeCount:la}=useAppStore(),{teamName:aa,moduleName:ca}=useParams(),ua=useAppStore(Uf=>Uf.user),Sa=ua.GitHub.Token,hl=ua.GitHub.Username,pl=Un$1(),{saveUISpec:ml}=useSaveUISpec();return{addRelationship:async(Uf,rp,np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=new Path$1(rp.module,rp.entity),eg=new Path$1(np.module,np.entity),tg={path:Vm,alias:rp.entity,origName:Vm.asFqName(),origAlias:rp.entity},rg={path:eg,alias:np.entity,origName:eg.asFqName(),origAlias:np.entity};qm==="contains"&&addContainsRelationship(Uf,ca,[tg,rg]),qm==="between"&&addBetweenRelationship(Uf,ca,[tg,rg]);const vv=fetchModule$2(ca).toString();if(saveModuleToGit(aa,ca,vv,`Add ${qm} relationship ${Uf} between ${rp.entity} and ${np.entity}`,hl,Sa),la(),pl&&ml&&ca)try{const R1=repopulateUISchemaForNewRelationship(pl,ca);ml(R1,`Update UI schema for new relationship ${Uf}`)}catch(R1){console.error("[useRelationship] Failed to repopulate UI schema for new relationship:",R1)}},setOneToOne:Uf=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");getRelationship$1(Uf,ca).setOneToOne(!0);const np=fetchModule$2(ca).toString();if(console.log("moduleData",np),la(),saveModuleToGit(aa,ca,np,`Set ${Uf} to One-to-One relationship`,hl,Sa),pl&&ml&&ca)try{const qm=repopulateUISchemaForNewRelationship(pl,ca);ml(qm,`Update UI schema for relationship ${Uf} change`)}catch(qm){console.error("[useRelationship] Failed to repopulate UI schema for relationship change:",qm)}},setOneToMany:Uf=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");getRelationship$1(Uf,ca).setOneToMany(!0);const np=fetchModule$2(ca).toString();if(la(),saveModuleToGit(aa,ca,np,`Set ${Uf} to One-to-Many relationship`,hl,Sa),pl&&ml&&ca)try{const qm=repopulateUISchemaForNewRelationship(pl,ca);ml(qm,`Update UI schema for relationship ${Uf} change`)}catch(qm){console.error("[useRelationship] Failed to repopulate UI schema for relationship change:",qm)}},setManyToMany:Uf=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");getRelationship$1(Uf,ca).setManyToMany(!0);const np=fetchModule$2(ca).toString();if(la(),saveModuleToGit(aa,ca,np,`Set ${Uf} to Many-to-Many relationship`,hl,Sa),pl&&ml&&ca)try{const qm=repopulateUISchemaForNewRelationship(pl,ca);ml(qm,`Update UI schema for relationship ${Uf} change`)}catch(qm){console.error("[useRelationship] Failed to repopulate UI schema for relationship change:",qm)}},getRelationshipType:Uf=>{if(!ca)return null;try{const rp=getRelationship$1(Uf,ca);return rp.isOneToOne()?"one-to-one":rp.isOneToMany()?"one-to-many":rp.isManyToMany()?"many-to-many":"contains"}catch(rp){return console.error("Error getting relationship type:",rp),null}}}},useRouteDataFetching=({routePattern:la,fetchFunction:aa,requiresAuth:ca=!0,dependencies:ua=[]})=>{const Sa=useLocation(),hl=reactExports.useRef(new Set),pl=reactExports.useRef(null),ml=useAppStore(qm=>qm.authData),{token:gl,userId:wc,userProfileId:xu,username:ff}=ml,jf=wc,Uf=Sa.pathname.includes(la),rp=reactExports.useCallback(qm=>`${la}-${qm}`,[la]),np=reactExports.useCallback(async(qm,Vm,eg=!1)=>{const tg=rp(qm);try{await aa(qm,Vm,eg),hl.current.add(tg)}catch(rg){console.error(`useRouteDataFetching: Failed to fetch data for route ${la}:`,rg)}},[aa,rp,la]);return reactExports.useEffect(()=>{if(!Uf)return;if(pl.current!==jf&&(hl.current.clear(),pl.current=jf),ca&&!gl){console.log(`useRouteDataFetching: Authentication required for route ${la}, but no token found`);return}if(!jf||!ff||ca&&!xu){console.log(`useRouteDataFetching: Missing required data for route ${la}`,{hasWorkspaceId:!!jf,hasUsername:!!ff,hasUserProfileId:!!xu,hasAuthToken:!!gl});return}const qm=rp(jf);if(hl.current.has(qm)){console.log(`useRouteDataFetching: Data already fetched for route ${la} and workspace ${jf}`);return}np(jf,ff)},[Uf,jf,ff,xu,gl,ca,np,rp,la,...ua]),{refetch:reactExports.useCallback((qm=!1)=>{if(jf&&ff&&(!ca||xu&&gl)){const Vm=rp(jf);hl.current.delete(Vm),np(jf,ff,qm)}},[jf,ff,xu,gl,ca,np,rp,la]),clearCache:reactExports.useCallback(()=>{hl.current.clear()},[]),isMatchingRoute:Uf,hasRequiredData:!!(jf&&ff&&(!ca||xu&&gl))}},useStore=()=>{const{moduleName:la}=useParams(),aa=getModuleNames().filter(hl=>hl!=="agentlang"),{currentTeam:ca}=useTeams();if(!la)throw new Error("Module name is undefined");let ua;try{ua=fetchModule$2(la)}catch(hl){console.error(hl)}const Sa=ua?ua.getEntityNames():[];return{modules:aa,currentModule:ua,entities:Sa,currentTeam:ca}},useRbac=()=>{const{teamName:la,moduleName:aa}=useParams(),ca=useAppStore(BN=>BN.setSelectedRole),ua=useAppStore(BN=>BN.setAppConfig),Sa=useAppStore(BN=>BN.appConfig),hl=useAppStore(BN=>BN.user),pl=hl.GitHub.Token,ml=hl.GitHub.Username,{incrementModuleDbChangeCount:gl}=useAppStore(),wc=()=>{if(!la)throw new Error("Team name is required to save RBAC roles");if(!aa)throw new Error("Module name is required for RBAC operations")},xu=BN=>{if(!aa)throw new Error("Module name is required for RBAC operations");const iF=getEntity$1(BN,aa);if(!iF)throw new Error(`Entity instance for "${BN}" in module "${aa}" is undefined.`);return iF},ff=BN=>{if(!aa||!la)throw new Error("Module name and team name are required for RBAC operations");const yY=fetchModule$2(aa).toString();gl(),saveModuleToGit(la,aa,yY,BN,ml,pl)},jf=(BN,iF,yY,vQ="Toggle")=>{try{wc();for(const bY of BN){const Lhe=xu(bY),Dhe=Lhe.getRbacSpecifications()||[],kdt=yY([...Dhe],iF);Lhe.setRbacSpecifications(kdt)}const Ohe=`${vQ} all RBAC permissions for role: ${iF}`;ff(Ohe)}catch(Ohe){throw console.error("Error toggling all RBAC permissions:",Ohe),Ohe}},Uf=(BN,iF,yY,vQ,Ohe="Toggle")=>{try{wc();for(const Lhe of BN){const Dhe=xu(Lhe),kdt=Dhe.getRbacSpecifications()||[],eht=yY([...kdt],iF,vQ);Dhe.setRbacSpecifications(eht)}const bY=`${Ohe} ${vQ} RBAC permission for role: ${iF}`;ff(bY)}catch(bY){throw console.error(`Error toggling ${vQ} RBAC permission:`,bY),bY}},rp=(BN,iF,yY,vQ="Toggle")=>{try{wc();const Ohe=xu(BN),bY=Ohe.getRbacSpecifications()||[],Lhe=yY([...bY],iF);Ohe.setRbacSpecifications(Lhe);const Dhe=`${vQ} all RBAC permissions for role: ${iF} on entity: ${BN}`;ff(Dhe)}catch(Ohe){throw console.error("Error toggling all RBAC permissions for entity:",Ohe),Ohe}},np=(BN,iF,yY,vQ,Ohe="Toggle")=>{try{wc();const bY=xu(BN),Lhe=bY.getRbacSpecifications()||[],Dhe=yY([...Lhe],iF,vQ);bY.setRbacSpecifications(Dhe);const kdt=`${Ohe} ${vQ} RBAC permission for role: ${iF} on entity: ${BN}`;ff(kdt)}catch(bY){throw console.error(`Error toggling ${vQ} RBAC permission for entity:`,bY),bY}},qm=(BN,iF="Save RBAC roles")=>{wc();const yY={...Sa,rbac:{roles:BN}};if(ua(yY),!la)throw new Error("Team name is required to save RBAC roles");saveConfigToGit(la,JSON.stringify(yY,null,2),iF,ml,pl)},Vm=BN=>{const iF=Sa?.rbac?.roles||[];qm([...iF,BN],"Add RBAC role"),ca(BN)},eg=BN=>{const yY=(Sa?.rbac?.roles||[]).filter(vQ=>vQ!==BN);qm(yY,"Delete RBAC role"),ca(yY.at(-1)||"")},tg=(BN,iF)=>{const yY=BN.find(vQ=>vQ.roles.has(iF));if(yY){if(yY.hasCreatePermission()&&yY.hasReadPermission()&&yY.hasUpdatePermission()&&yY.hasDeletePermission())return BN.filter(Ohe=>Ohe!==yY);yY.setPermissions(["create","read","update","delete"])}else{const vQ=new RbacSpecification;vQ.setRoles([iF]),vQ.setPermissions(["create","read","update","delete"]),BN.push(vQ)}return BN},rg=(BN,iF,yY)=>{const vQ=BN.find(Ohe=>Ohe.roles.has(iF));if(vQ)if((()=>{switch(yY){case"create":return vQ.hasCreatePermission();case"read":return vQ.hasReadPermission();case"update":return vQ.hasUpdatePermission();case"delete":return vQ.hasDeletePermission()}})()){const Dhe=Array.from(vQ.permissions).map(kdt=>RbacPermissionFlag$1[kdt].toLowerCase()).filter(kdt=>kdt!==yY);if(Dhe.length===0)return BN.filter(kdt=>kdt!==vQ);vQ.setPermissions(Dhe)}else{const bY=Array.from(vQ.permissions).map(Lhe=>RbacPermissionFlag$1[Lhe].toLowerCase());bY.push(yY),vQ.setPermissions(bY)}else{const Ohe=new RbacSpecification;Ohe.setRoles([iF]),Ohe.setPermissions([yY]),BN.push(Ohe)}return BN};return{saveRbacRoles:qm,addRole:Vm,deleteRole:eg,allHandler:BN=>{if(!aa)return;const iF=getEntities(aa);jf(iF,BN,tg)},createHandler:BN=>{if(!aa)return;const iF=getEntities(aa);Uf(iF,BN,rg,"create")},readHandler:BN=>{if(!aa)return;const iF=getEntities(aa);Uf(iF,BN,rg,"read")},updateHandler:BN=>{if(!aa)return;const iF=getEntities(aa);Uf(iF,BN,rg,"update")},deleteHandler:BN=>{if(!aa)return;const iF=getEntities(aa);Uf(iF,BN,rg,"delete")},entityAllHandler:(BN,iF)=>{rp(BN,iF,tg)},entityCreateHandler:(BN,iF)=>{np(BN,iF,rg,"create")},entityReadHandler:(BN,iF)=>{np(BN,iF,rg,"read")},entityUpdateHandler:(BN,iF)=>{np(BN,iF,rg,"update")},entityDeleteHandler:(BN,iF)=>{np(BN,iF,rg,"delete")},addExpression:(BN,iF,yY)=>{try{wc();const vQ=xu(BN),Ohe=vQ.getRbacSpecifications()||[],bY=Ohe.find(Dhe=>Dhe.expression),Lhe=Object.entries(yY).filter(([Dhe,kdt])=>kdt).map(([Dhe])=>Dhe);if(bY)bY.setPermissions(Lhe),bY.setExpression("auth.user",`this.${iF}`);else{const Dhe=new RbacSpecification;Dhe.setPermissions(Lhe),Dhe.setExpression("auth.user",`this.${iF}`),Ohe.push(Dhe)}vQ.setRbacSpecifications(Ohe),ff(`Add RBAC expression for entity: ${BN}`)}catch(vQ){throw console.error("Error setting expression for entity:",vQ),vQ}},removeExpression:BN=>{try{wc();const iF=xu(BN),vQ=(iF.getRbacSpecifications()||[]).filter(Ohe=>!Ohe.expression);iF.setRbacSpecifications(vQ),ff(`Remove RBAC expression for entity: ${BN}`)}catch(iF){throw console.error("Error removing expression for entity:",iF),iF}},getRoleRbacSpec:(BN,iF)=>(wc(),(xu(BN).getRbacSpecifications()||[]).find(bY=>bY.roles.has(iF))),getRBACExpression:BN=>(wc(),(xu(BN).getRbacSpecifications()||[]).find(Ohe=>Ohe.expression))}},useWorkflow=la=>{const{teamName:aa,moduleName:ca}=useParams(),ua=useAppStore(rp=>rp.user),Sa=ua.GitHub.Token,hl=ua.GitHub.Username,{incrementModuleDbChangeCount:pl}=useAppStore();return{onCreateCrudStatement:async(rp,np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=fetchModule$2(ca||""),eg=Vm.getWorkflowForEvent(la);let tg;if(np==="create"?tg=newCreatePattern(rp):np==="read"?tg=newQueryPattern(rp):np==="delete"?tg=newDeletePattern(rp):np==="update"&&(tg=newQueryUpdatePattern(rp)),np==="loop"?tg=new ForEachPattern$1:np==="if-else"&&(tg=new IfPattern$1().setElse()),tg&&eg)await eg.setStatementAt(tg.toString(),qm).then(async()=>{pl(),saveModuleToGit(aa,ca,Vm.toString(),`Add ${np} pattern for ${la}`,hl,Sa)});else throw new Error(`Unknown type: ${np}`)},onDeleteStatementHandler:async rp=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const np=fetchModule$2(ca||"");np.getWorkflowForEvent(la)?.removeStatementAt(rp),pl(),saveModuleToGit(aa,ca,np.toString(),`Delete pattern for ${la} at index ${rp}`,hl,Sa)},updateStatementHandler:async(rp,np)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const qm=fetchModule$2(ca||"");await qm.getWorkflowForEvent(la)?.setStatementAt(np,rp).then(async()=>{pl(),saveModuleToGit(aa,ca,qm.toString(),`Update pattern for ${la} at index ${rp}`,hl,Sa)})},onCreateFunctionCall:async(rp,np,qm=[])=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=fetchModule$2(ca||""),eg=Vm.getWorkflowForEvent(la),tg=qm.map(ig=>new ExpressionPattern$1(ig.trim())),rg=new FunctionCallPattern$1(np,tg);if(eg)await eg.setStatementAt(rg.toString(),rp).then(async()=>{pl(),saveModuleToGit(aa,ca,Vm.toString(),`Add function call pattern for ${la}`,hl,Sa)});else throw new Error(`Workflow not found for event: ${la}`)},onCreateExpression:async(rp,np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=fetchModule$2(ca||""),eg=Vm.getWorkflowForEvent(la),tg=new ExpressionPattern$1(np);qm&&tg.setAlias(qm),await eg?.setStatementAt(tg.toString(),rp).then(async()=>{pl(),saveModuleToGit(aa,ca,Vm.toString(),`Add expression pattern for ${la}`,hl,Sa)})},onCreateLiteralPattern:async(rp,np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=fetchModule$2(ca||""),eg=Vm.getWorkflowForEvent(la),tg=new LiteralPattern$1(LiteralPatternType$1.REFERENCE,np);qm&&tg.setAlias(qm),await eg?.setStatementAt(tg.toString(),rp).then(async()=>{pl(),saveModuleToGit(aa,ca,Vm.toString(),`Add literal pattern for ${la}`,hl,Sa)})},addTrigger:(rp,np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");if(qm==="after")if(np==="create")addAfterCreateWorkflow(rp,ca);else if(np==="delete")addAfterDeleteWorkflow(rp,ca);else if(np==="update")addAfterUpdateWorkflow(rp,ca);else throw new Error("Invalid trigger type");else if(qm==="before")if(np==="create")addBeforeCreateWorkflow(rp);else if(np==="delete")addBeforeDeleteWorkflow(rp);else if(np==="update")addBeforeUpdateWorkflow(rp,ca);else throw new Error("Invalid trigger type");else throw new Error("Invalid trigger time");const Vm=fetchModule$2(ca||"");pl(),saveModuleToGit(aa,ca,Vm.toString(),`Add ${qm} ${np} trigger for ${rp}`,hl,Sa)}}},useAppConfig=()=>{const{teamName:la}=useParams(),aa=useAppStore(ml=>ml.appConfig),ca=useAppStore(ml=>ml.setAppConfig),ua=useAppStore(ml=>ml.user),Sa=ua.GitHub.Token,hl=ua.GitHub.Username;return{saveAppConfig:ml=>{if(!la)throw new Error("Team name is required to save app integrations");const gl={...aa,...ml};ca(gl);const wc=formatAppConfig(gl);saveConfigToGit(la,wc,"Save App Configuration",hl,Sa)}}},useFlow=()=>{const{zoomHandler:la}=useZoomHandler(),{teamName:aa,moduleName:ca}=useParams(),ua=useAppStore(np=>np.user),{incrementModuleDbChangeCount:Sa,setSelectedDecisionId:hl}=useAppStore(),pl=ua.GitHub.Token,ml=ua.GitHub.Username;return{addFlow:np=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const qm=fetchModule$2(ca);qm.addFlow(np);const Vm=qm.toString();saveModuleToGit(aa,ca,Vm,`Add flow ${np}`,ml,pl),Sa(),setTimeout(()=>{la(np)},100)},removeFlow:(np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=fetchModule$2(ca);Vm.removeFlow(np);const eg=Vm.toString();saveModuleToGit(aa,ca,eg,`Remove flow ${np}`,ml,pl),Sa(),qm&&setTimeout(()=>{la(qm)},100)},updateFlow:(np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=fetchModule$2(ca);Vm.removeFlow(np),Vm.addFlow(np);const eg=Vm.getFlow(np);if(!eg)throw new Error("Flow could not be recreated");qm.forEach(rg=>{const ig=new FlowStepPattern$1(rg.source,rg.target,rg.label);eg.appendStep(ig.toString())});const tg=Vm.toString();saveModuleToGit(aa,ca,tg,`Update flow ${np}`,ml,pl)},addDecision:np=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const qm=fetchModule$2(ca);if(qm.getDecision(np))return;const eg=new Decision$1(np,qm.name,[]);qm.addDecision(eg);const tg=qm.toString();saveModuleToGit(aa,ca,tg,`Add decision ${np}`,ml,pl),Sa(),setTimeout(()=>{hl(np),la(`decision-node-${np}`,{openForm:!0})},200)},removeDecision:np=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const qm=fetchModule$2(ca);if(!qm.getDecision(np))return;qm.removeDecision(np);const eg=qm.toString();saveModuleToGit(aa,ca,eg,`Remove decision ${np}`,ml,pl)},updateDecision:(np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=fetchModule$2(ca);if(!Vm.getDecision(np))return;Vm.removeDecision(np);const tg=new Decision$1(np,Vm.name,qm);Vm.addDecision(tg);const rg=Vm.toString();saveModuleToGit(aa,ca,rg,`Update decision ${np}`,ml,pl)},getDecision:np=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");return fetchModule$2(ca).getDecision(np)}}},useMobile=()=>{const[la,aa]=reactExports.useState(!1);return reactExports.useEffect(()=>{const ca=()=>{aa(window.innerWidth<768)};return ca(),window.addEventListener("resize",ca),()=>window.removeEventListener("resize",ca)},[]),la};function transformApiResponseToMarketplaceModel(la){return{Id:la.id||"",Name:la.name||"",Type:la.type||"",Description:la.description||"",Version:la.version||"",Owner:la.owner||"",GitHubOrg:la.gitHubOrg||"",GitHubRepo:la.gitHubRepo||"",Branch:la.gitHubBranch||la.branch||"main",CreatedAt:la.createdAt||"",LastUpdatedAt:la.lastUpdatedAt||"",Icon:la.icon||"",MarketPlaceUrl:la.marketPlaceUrl||"",ExtraDetails:la.extraDetails||{},GithubOrg:la.gitHubOrg||"",Config:{},Dependencies:{FractlModels:[],ClojureLibraries:[]},EntityType:"Model",GithubUrl:la.githubUrl||`https://github.com/${la.gitHubOrg}/${la.gitHubRepo}`,__Id__:la.id||"",Tags:la.tags||null,isEditable:!1,isPin:!1,isLoading:!1,isError:!1,ErrorMessage:""}}const useMarketplace=()=>{const{error:la,refetch:aa}=useQuery({queryKey:["marketplace","models"],enabled:!1,queryFn:async()=>{const hl=await axiosInstance("marketplace").get("/MarketplaceMeta/Model");console.log("The response of marketplace model is:",hl.data);let pl=[];return Array.isArray(hl.data)?hl.data.length===0?pl=[]:pl=hl.data.map(ml=>ml.Model||ml).map(ml=>transformApiResponseToMarketplaceModel(ml)):hl.data?.result&&Array.isArray(hl.data.result)&&(pl=hl.data.result.map(ml=>ml.Model||ml).map(ml=>transformApiResponseToMarketplaceModel(ml))),pl},staleTime:3e5,gcTime:6e5,retry:(hl,pl)=>pl?.response?.status===401||pl?.response?.status===403?!1:hl<2}),ca=reactExports.useCallback(async()=>{await aa()},[aa]),ua=reactExports.useCallback(async hl=>{try{const pl=await axiosInstance("marketplace").post("/MarketplaceMeta/Model",hl);return y$b.success("Model published successfully!"),pl.data}catch(pl){const ml=pl?.response?.data?.reason||"Failed to publish model";throw y$b.error(ml),pl}},[]),Sa=reactExports.useCallback(async hl=>{try{await axiosInstance("marketplace").delete(`/MarketplaceMeta/Model/${hl}`),y$b.success("Model deleted successfully!"),await aa()}catch(pl){const ml=pl?.response?.data?.reason||"Failed to delete model";throw y$b.error(ml),pl}},[aa]);return{fetchMarketplaceModels:ca,publishModel:ua,deleteModel:Sa,refetchMarketplaceModels:aa}},useAddTeam=()=>{const{addWorkspaceApp:la}=useTeams(),aa=useAppStore(rp=>rp.user),ca=aa.GitHub.Token,ua=aa.GitHub.Org,Sa=aa.GitHub.Username,hl=useNavigate(),[pl,ml]=React.useState(!1),[gl,wc]=React.useState("creating-repo"),[xu,ff]=React.useState("");return{addTeam:async({name:rp})=>{ml(!0),wc("creating-repo"),ff("Creating GitHub repository...");try{const qm=(await createGitHubRepo(ca,rp.toLowerCase(),{private:!0,auto_init:!0},ua)).name;wc("cloning-repo"),ff("Cloning repository...");try{const Vm=`/${qm}`,eg="main",tg=Sa&&Sa.trim().length>0,rg=ca&&ca.trim().length>0;if(!tg||!rg){alert("⚠️ GitHub credentials missing. Please set your GitHub username and token in Settings.");return}const ig=generateGitHubUrl(ua,qm,Sa,ca),vv=async()=>{try{await pathExists(Vm)&&(console.log(`Cleaning up failed clone: removing ${Vm} from IndexedDB`),await removeDirectory(Vm))}catch(J0){console.error("Error cleaning up failed clone:",J0)}};try{await cloneRepository(ig,Vm,eg,ca)}catch(J0){throw console.error("Failed to clone repository:",J0),await vv(),J0}wc("adding-files"),ff("Adding initial files...");const R1={name:qm,version:"0.0.1"},O1=await openRepository(Vm);await writeRepoFile(Vm,"package.json",JSON.stringify(R1)),await commitChanges(O1,"package.json","Add package.json",{name:Sa,email:Sa}),await writeRepoFile(Vm,"config.al",JSON.stringify({agentlang:{service:{port:8080},rbac:{enabled:!1},auth:{enabled:!1},auditTrail:{enabled:!0},monitoring:{enabled:!0}},"agentlang.ai":[{"agentlang.ai/LLM":{name:"llm01",service:"openai",config:{model:"gpt-4o"}}}]},null,2)),await commitChanges(O1,"config.al","Add config.al",{name:Sa,email:Sa});const K0="src/core.al";await writeRepoFile(Vm,K0,`module ${qm.toLowerCase()}.core`),await commitChanges(O1,K0,"Add core.al ",{name:Sa,email:Sa}),wc("pushing-changes"),ff("Pushing changes to GitHub..."),await pushChanges(O1,"origin",eg,ca),wc("loading-module"),ff("Loading module...");try{await flushAllAndLoad(`/${qm}`,{name:"studio"});const J0=getUserModuleNames();wc("adding-workspace"),ff("Adding to workspace...");const Hw={name:rp,type:"App",gitHubOrg:ua,gitHubRepo:qm,branch:eg,description:"",owner:localStorage.getItem("username")||"",version:"0.0.1",isEditable:!0};await la(Hw),ml(!1),hl(`/design/data-model/${ua}/${qm}/${J0[0]}`,{state:{isNewTeam:!0}})}catch(J0){console.error(`Failed to load ${qm}:`,J0);try{await pathExists(Vm)&&(console.log(`Cleaning up failed clone: removing ${Vm} from IndexedDB`),await removeDirectory(Vm))}catch(Hw){console.error("Error cleaning up failed clone:",Hw)}ml(!1)}}catch(Vm){console.error(`Failed to clone repository: ${Vm}`);try{const eg=`/${qm}`;await pathExists(eg)&&(console.log(`Cleaning up failed clone: removing ${eg} from IndexedDB`),await removeDirectory(eg))}catch(eg){console.error("Error cleaning up failed clone:",eg)}ml(!1)}}catch(np){console.error("Failed to create GitHub Repository:",np),ml(!1)}},isLoading:pl,currentStep:gl,statusMessage:xu,loadingSteps:[{id:"creating-repo",label:"Creating GitHub repository"},{id:"cloning-repo",label:"Cloning repository"},{id:"adding-files",label:"Adding initial files"},{id:"committing-changes",label:"Committing changes"},{id:"pushing-changes",label:"Pushing to GitHub"},{id:"loading-module",label:"Loading module"},{id:"adding-workspace",label:"Adding to workspace"}]}},extractRepoNameFromGitUrl=la=>{const aa=/(?:git\+)?https:\/\/(?:[^@]+@)?github\.com\/([^/]+)\/([^/.]+)(?:\.git)?(?:#.+)?/,ca=la.match(aa);if(ca){const[,,ua]=ca;return ua}return null},getDependenciesRecursive=async(la,aa,ca=new Set)=>{const ua=Object.entries(aa).filter(([hl,pl])=>{if(!(typeof pl=="string"&&pl.startsWith("git+http")))return!1;const wc=(typeof pl=="string"?extractRepoNameFromGitUrl(pl):null)||hl.split(".")[0],xu=!ca.has(wc);return xu&&ca.add(wc),xu});return ua.length===0?[]:(await Promise.all(ua.map(async([hl,pl])=>{const gl=(typeof pl=="string"?extractRepoNameFromGitUrl(pl):null)||hl.split(".")[0],wc=[gl];try{const xu=await readDependencyPackageJsonFromGit(la,gl);if(xu.dependencies){const ff=await getDependenciesRecursive(la,xu.dependencies,ca);wc.push(...ff)}}catch(xu){console.error(`Failed to process dependency ${gl}:`,xu)}return wc}))).flat()},fetchDependencies=async la=>{const ca=(await readPackageJsonFromGit(la)).dependencies||{},ua=Object.entries(ca).filter(([,hl])=>typeof hl=="string"&&hl.startsWith("git+http")).map(([hl,pl])=>(typeof pl=="string"?extractRepoNameFromGitUrl(pl):null)||hl.split(".")[0]),Sa=await getDependenciesRecursive(la,ca,new Set(ua));return Array.from(new Set([...ua,...Sa]))},filterModulesForDependency=(la,aa)=>{const ca=aa.toLowerCase(),ua=ca.replace(/_/g,"");return la.filter(Sa=>{const hl=Sa.toLowerCase(),pl=hl.split(".")[0];return hl.startsWith(ca)||pl===ua})},useDependencies=()=>{const{currentTeam:la}=useTeams(),aa=la?.GitHubRepo,ca=useQueryClient(),{data:ua=[],isLoading:Sa,refetch:hl}=useQuery({queryKey:["dependencies",aa],queryFn:()=>fetchDependencies(aa),enabled:!!aa}),pl=getUserModuleNames(),ml=[aa,...ua].map(Uf=>({label:Uf||"",value:Uf||""})),gl=Uf=>filterModulesForDependency(pl,Uf),wc=()=>getTeamModules(aa),xu=async()=>{await ca.invalidateQueries({queryKey:["dependencies",aa]}),await hl()},ff=aa||"",jf=ff?gl(ff)[0]:"";return{dependencies:ua,dependenciesOptions:ml,loading:Sa,getDependenciesModule:gl,getTeamModules:wc,defaultDependency:ff,defaultModule:jf,refetchDependencies:xu}},useDoubleClick=(la,aa,ca=300)=>{const ua=reactExports.useRef(null),Sa=reactExports.useRef(0),hl=reactExports.useCallback(pl=>{pl.stopPropagation(),pl.preventDefault(),Sa.current+=1,Sa.current===1?ua.current=setTimeout(()=>{Sa.current===1&&la(pl),Sa.current=0,ua.current=null},ca):Sa.current===2&&(ua.current&&(clearTimeout(ua.current),ua.current=null),aa(pl),Sa.current=0)},[la,aa,ca]);return reactExports.useEffect(()=>()=>{ua.current&&clearTimeout(ua.current)},[]),hl},validationScehma=create$3().shape({email:create$6().email("Invalid email").required("Email is required"),password:create$6().required("Password is required")}),SignIn=()=>{const{login:la}=useAuth(),aa=useNavigate();return reactExports.useEffect(()=>{{aa("/design/dashboard");return}},[aa]),jsxRuntimeExports.jsx(Formik,{initialValues:{email:"",password:""},validationSchema:validationScehma,onSubmit:ca=>{const{email:ua,password:Sa}=ca;la(ua,Sa)},children:jsxRuntimeExports.jsxs(Form$7,{className:"auth-input-container",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 items-center",children:[jsxRuntimeExports.jsx("h1",{className:"text-center",children:"Sign In"}),jsxRuntimeExports.jsx("p",{className:"text-center",children:"Get started with building your team of AI Agents"})]}),jsxRuntimeExports.jsx(nht,{name:"email",placeholder:"Email",type:"email"}),jsxRuntimeExports.jsx(sht,{name:"password",placeholder:"Password"}),jsxRuntimeExports.jsx("div",{className:"auth-link text-right",onClick:()=>aa("/forgot-password"),children:"Forgot password?"}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",children:"Sign in"}),jsxRuntimeExports.jsxs("p",{className:"flex justify-center items-center gap-2",children:[jsxRuntimeExports.jsx("span",{children:"No account ?"}),jsxRuntimeExports.jsx(Link,{className:"auth-link font-bold",to:"/signup",children:"Sign Up"})]})]})})},uppercaseRegex=/[A-Z]/,lowercaseRegex=/[a-z]/,numberRegex=/[0-9]/,specialCharRegex=/[!@#$%^&*(),.?":{}|<>]/,validationSchema$e=create$3().shape({firstName:create$6().required("First Name is required").min(2,"First Name must be at least 2 characters").max(50,"First Name must be less than 50 characters"),lastName:create$6().required("Last Name is required").min(2,"Last Name must be at least 2 characters").max(50,"Last Name must be less than 50 characters"),email:create$6().required("Email is required").email("Invalid email address"),password:create$6().required("Password is required").min(8,"Password must be at least 8 characters").matches(uppercaseRegex,"Password must contain at least one uppercase letter").matches(lowercaseRegex,"Password must contain at least one lowercase letter").matches(numberRegex,"Password must contain at least one number").matches(specialCharRegex,"Password must contain at least one special character"),confirmPassword:create$6().required("Confirm Password is required").oneOf([create$9("password")],"Passwords don't match")}),SignUp=()=>{const la=useNavigate(),{signUp:aa,isSigningUp:ca}=useSignUp(),[ua,Sa]=reactExports.useState(null);return jsxRuntimeExports.jsx(Formik,{initialValues:{firstName:"",lastName:"",email:"",password:"",confirmPassword:""},validationSchema:validationSchema$e,onSubmit:async(hl,{setSubmitting:pl})=>{Sa(null);try{const ml=await aa({firstName:hl.firstName,lastName:hl.lastName,email:hl.email,password:hl.password});!ml.success&&ml.error&&Sa(ml.error)}catch{Sa("An unexpected error occurred. Please try again.")}finally{pl(!1)}},children:jsxRuntimeExports.jsxs(Form$7,{className:"auth-input-container",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 items-center",children:[jsxRuntimeExports.jsx("h1",{className:"text-center",children:"Sign Up"}),jsxRuntimeExports.jsx("p",{className:"text-center",children:"Get started with building your team of AI Agents"})]}),jsxRuntimeExports.jsxs("div",{className:"md:grid flex flex-col md:grid-cols-2 gap-2",children:[jsxRuntimeExports.jsx(nht,{name:"firstName",placeholder:"First Name"}),jsxRuntimeExports.jsx(nht,{name:"lastName",placeholder:"Last Name"}),jsxRuntimeExports.jsx("div",{className:"col-span-2",children:jsxRuntimeExports.jsx(nht,{name:"email",placeholder:"Email",type:"email"})}),jsxRuntimeExports.jsx(sht,{name:"password",placeholder:"Password"}),jsxRuntimeExports.jsx(sht,{name:"confirmPassword",placeholder:"Confirm Password"})]}),ua&&jsxRuntimeExports.jsx("div",{className:"text-red-500 text-sm text-center p-2",children:ua}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",disabled:ca,children:ca?"Creating Account...":"Create Account"}),jsxRuntimeExports.jsxs("p",{className:"flex justify-center items-center gap-2",children:[jsxRuntimeExports.jsx("span",{children:"Already have an account ?"}),jsxRuntimeExports.jsx("span",{className:"auth-link font-bold",onClick:()=>la("/"),children:"Sign In"})]})]})})},validationSchema$d=create$3().shape({email:create$6().required("Email is required").email("Invalid email address")}),ForgotPassword=()=>{const la=useNavigate();return jsxRuntimeExports.jsx(Formik,{initialValues:{email:""},validationSchema:validationSchema$d,onSubmit:aa=>{const{email:ca}=aa;console.log(ca)},children:jsxRuntimeExports.jsxs(Form$7,{className:"auth-input-container",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center",children:[jsxRuntimeExports.jsx("h1",{className:"text-center",children:"Reset Password"}),jsxRuntimeExports.jsx("p",{className:"text-center",children:"Send confirmation code to your email"})]}),jsxRuntimeExports.jsx(nht,{name:"email",placeholder:"Email",type:"email"}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",children:"Send confirmation code"}),jsxRuntimeExports.jsxs("p",{className:"flex flex-col md:flex-row justify-center items-center gap-2",children:[jsxRuntimeExports.jsx("span",{children:"Already recovered your password ?"}),jsxRuntimeExports.jsx("span",{className:"auth-link font-bold",onClick:()=>la("/"),children:"Sign In"})]})]})})},numberOnlyRegex=/^[0-9]+$/,validationSchema$c=create$3().shape({email:create$6().required("Email is required").email("Invalid email address"),password:create$6().required("Password is required"),code:create$6().matches(numberOnlyRegex,"Code must contain only numbers")}),RecoverPassword=()=>{const la=useNavigate();return jsxRuntimeExports.jsx(Formik,{validationSchema:validationSchema$c,initialValues:{email:"",password:"",code:""},onSubmit:aa=>{const{email:ca,password:ua,code:Sa}=aa;console.log(ca,ua,Sa)},children:jsxRuntimeExports.jsxs(Form$7,{className:"auth-input-container",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center",children:[jsxRuntimeExports.jsx("h1",{className:"text-center",children:"Reset Password"}),jsxRuntimeExports.jsx("p",{className:"text-center",children:"Set new password"})]}),jsxRuntimeExports.jsx(nht,{name:"email",placeholder:"Email",type:"email"}),jsxRuntimeExports.jsx(sht,{name:"password",placeholder:"Password"}),jsxRuntimeExports.jsx(sht,{name:"code",placeholder:"Code"}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",children:"Set new password"}),jsxRuntimeExports.jsxs("p",{className:"flex flex-col md:flex-row justify-center items-center gap-2",children:[jsxRuntimeExports.jsx("span",{children:"Already recovered your password ?"}),jsxRuntimeExports.jsx("span",{className:"auth-link font-bold",onClick:()=>la("/"),children:"Sign In"})]})]})})};var classnames={exports:{}};/*!
|
|
19416
|
+
`)).length,Sa=0;Sa<ua;Sa++){var pl=la.charCodeAt(Sa),ml=null;pl<128?ca++:ml=pl>127&&pl<2048?String.fromCharCode(pl>>6|192,63&pl|128):String.fromCharCode(pl>>12|224,pl>>6&63|128,63&pl|128),D$b(ml)||(ca>aa&&(hl+=la.substring(aa,ca)),hl+=ml,aa=ca=Sa+1)}return ca>aa&&(hl+=la.substring(aa,la.length)),hl},on$1=!!u$h||!!l$9,an$1="text/plain",ln=function(la,aa,ca){var ua;ca===void 0&&(ca=!0);var[Sa,hl]=la.split("?"),pl=g$8({},aa),ml=(ua=hl?.split("&").map((wc=>{var xu,[ff,jf]=wc.split("="),Uf=ca&&(xu=pl[ff])!==null&&xu!==void 0?xu:jf;return delete pl[ff],ff+"="+Uf})))!==null&&ua!==void 0?ua:[],gl=nr(pl);return gl&&ml.push(gl),Sa+"?"+ml.join("&")},un$1=(la,aa)=>JSON.stringify(la,((ca,ua)=>typeof ua=="bigint"?ua.toString():ua),aa),hn=la=>{var{data:aa,compression:ca}=la;if(aa){if(ca===er.GZipJS){var ua=sn$1((function(gl,wc){var xu=gl.length;if(typeof TextEncoder<"u")return new TextEncoder().encode(gl);for(var ff=new $s(gl.length+(gl.length>>>1)),jf=0,Uf=function(Vm){ff[jf++]=Vm},rp=0;rp<xu;++rp){if(jf+5>ff.length){var np=new $s(jf+8+(xu-rp<<1));np.set(ff),ff=np}var qm=gl.charCodeAt(rp);qm<128||wc?Uf(qm):qm<2048?(Uf(192|qm>>>6),Uf(128|63&qm)):qm>55295&&qm<57344?(Uf(240|(qm=65536+(1047552&qm)|1023&gl.charCodeAt(++rp))>>>18),Uf(128|qm>>>12&63),Uf(128|qm>>>6&63),Uf(128|63&qm)):(Uf(224|qm>>>12),Uf(128|qm>>>6&63),Uf(128|63&qm))}return qs(ff,0,jf)})(un$1(aa)),{mtime:0}),Sa=new Blob([ua],{type:an$1});return{contentType:an$1,body:Sa,estimatedSize:Sa.size}}if(ca===er.Base64){var hl=(function(gl){var wc,xu,ff,jf,Uf,rp="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",np=0,qm=0,Vm="",eg=[];if(!gl)return gl;gl=nn$1(gl);do wc=(Uf=gl.charCodeAt(np++)<<16|gl.charCodeAt(np++)<<8|gl.charCodeAt(np++))>>18&63,xu=Uf>>12&63,ff=Uf>>6&63,jf=63&Uf,eg[qm++]=rp.charAt(wc)+rp.charAt(xu)+rp.charAt(ff)+rp.charAt(jf);while(np<gl.length);switch(Vm=eg.join(""),gl.length%3){case 1:Vm=Vm.slice(0,-2)+"==";break;case 2:Vm=Vm.slice(0,-1)+"="}return Vm})(un$1(aa)),pl=(gl=>"data="+encodeURIComponent(typeof gl=="string"?gl:un$1(gl)))(hl);return{contentType:"application/x-www-form-urlencoded",body:pl,estimatedSize:new Blob([pl]).size}}var ml=un$1(aa);return{contentType:"application/json",body:ml,estimatedSize:new Blob([ml]).size}}},dn=[];l$9&&dn.push({transport:"fetch",method:la=>{var aa,ca,{contentType:ua,body:Sa,estimatedSize:hl}=(aa=hn(la))!==null&&aa!==void 0?aa:{},pl=new Headers;Ii(la.headers,(function(xu,ff){pl.append(ff,xu)})),ua&&pl.append("Content-Type",ua);var ml=la.url,gl=null;if(h$c){var wc=new h$c;gl={signal:wc.signal,timeout:setTimeout((()=>wc.abort()),la.timeout)}}l$9(ml,g$8({method:la?.method||"GET",headers:pl,keepalive:la.method==="POST"&&(hl||0)<52428.8,body:Sa,signal:(ca=gl)==null?void 0:ca.signal},la.fetchOptions)).then((xu=>xu.text().then((ff=>{var jf={statusCode:xu.status,text:ff};if(xu.status===200)try{jf.json=JSON.parse(ff)}catch(Uf){Ei.error(Uf)}la.callback==null||la.callback(jf)})))).catch((xu=>{Ei.error(xu),la.callback==null||la.callback({statusCode:0,text:xu})})).finally((()=>gl?clearTimeout(gl.timeout):null))}}),u$h&&dn.push({transport:"XHR",method:la=>{var aa,ca=new u$h;ca.open(la.method||"GET",la.url,!0);var{contentType:ua,body:Sa}=(aa=hn(la))!==null&&aa!==void 0?aa:{};Ii(la.headers,(function(hl,pl){ca.setRequestHeader(pl,hl)})),ua&&ca.setRequestHeader("Content-Type",ua),la.timeout&&(ca.timeout=la.timeout),la.disableXHRCredentials||(ca.withCredentials=!0),ca.onreadystatechange=()=>{if(ca.readyState===4){var hl={statusCode:ca.status,text:ca.responseText};if(ca.status===200)try{hl.json=JSON.parse(ca.responseText)}catch{}la.callback==null||la.callback(hl)}},ca.send(Sa)}}),n$9!=null&&n$9.sendBeacon&&dn.push({transport:"sendBeacon",method:la=>{var aa=ln(la.url,{beacon:"1"});try{var ca,{contentType:ua,body:Sa}=(ca=hn(la))!==null&&ca!==void 0?ca:{},hl=typeof Sa=="string"?new Blob([Sa],{type:ua}):Sa;n$9.sendBeacon(aa,hl)}catch{}}});var vn=function(la,aa){if(!(function(ca){try{new RegExp(ca)}catch{return!1}return!0})(aa))return!1;try{return new RegExp(aa).test(la)}catch{return!1}};function cn$1(la,aa,ca){return un$1({distinct_id:la,userPropertiesToSet:aa,userPropertiesToSetOnce:ca})}var fn$1={exact:(la,aa)=>aa.some((ca=>la.some((ua=>ca===ua)))),is_not:(la,aa)=>aa.every((ca=>la.every((ua=>ca!==ua)))),regex:(la,aa)=>aa.some((ca=>la.some((ua=>vn(ca,ua))))),not_regex:(la,aa)=>aa.every((ca=>la.every((ua=>!vn(ca,ua))))),icontains:(la,aa)=>aa.map(pn).some((ca=>la.map(pn).some((ua=>ca.includes(ua))))),not_icontains:(la,aa)=>aa.map(pn).every((ca=>la.map(pn).every((ua=>!ca.includes(ua))))),gt:(la,aa)=>aa.some((ca=>{var ua=parseFloat(ca);return!isNaN(ua)&&la.some((Sa=>ua>parseFloat(Sa)))})),lt:(la,aa)=>aa.some((ca=>{var ua=parseFloat(ca);return!isNaN(ua)&&la.some((Sa=>ua<parseFloat(Sa)))}))},pn=la=>la.toLowerCase();function gn(la,aa){return!la||Object.entries(la).every((ca=>{var[ua,Sa]=ca,hl=aa?.[ua];if(M$6(hl)||D$b(hl))return!1;var pl=[String(hl)],ml=fn$1[Sa.operator];return!!ml&&ml(Sa.values,pl)}))}var _n=$i("[Error tracking]");class mn{constructor(aa){var ca,ua;this.Zt=[],this.ti=new Xt([new di,new wi,new ci,new vi,new yi,new mi,new pi,new bi],hi("web:javascript",si,ai)),this._instance=aa,this.Zt=(ca=(ua=this._instance.persistence)==null?void 0:ua.get_property(Vi))!==null&&ca!==void 0?ca:[]}onRemoteConfig(aa){var ca,ua,Sa,hl=(ca=(ua=aa.errorTracking)==null?void 0:ua.suppressionRules)!==null&&ca!==void 0?ca:[],pl=(Sa=aa.errorTracking)==null?void 0:Sa.captureExtensionExceptions;this.Zt=hl,this._instance.persistence&&this._instance.persistence.register({[Vi]:this.Zt,[Ji]:pl})}get ii(){var aa,ca=!!this._instance.get_property(Ji),ua=this._instance.config.error_tracking.captureExtensionExceptions;return(aa=ua??ca)!==null&&aa!==void 0&&aa}buildProperties(aa,ca){return this.ti.buildFromUnknown(aa,{syntheticException:ca?.syntheticException,mechanism:{handled:ca?.handled}})}sendExceptionEvent(aa){var ca=aa.$exception_list;if(this.ei(ca)){if(this.ri(ca))return void _n.info("Skipping exception capture because a suppression rule matched");if(!this.ii&&this.si(ca))return void _n.info("Skipping exception capture because it was thrown by an extension");if(!this._instance.config.error_tracking.__capturePostHogExceptions&&this.ni(ca))return void _n.info("Skipping exception capture because it was thrown by the PostHog SDK")}return this._instance.capture("$exception",aa,{_noTruncate:!0,_batchKey:"exceptionEvent"})}ri(aa){if(aa.length===0)return!1;var ca=aa.reduce(((ua,Sa)=>{var{type:hl,value:pl}=Sa;return O$5(hl)&&hl.length>0&&ua.$exception_types.push(hl),O$5(pl)&&pl.length>0&&ua.$exception_values.push(pl),ua}),{$exception_types:[],$exception_values:[]});return this.Zt.some((ua=>{var Sa=ua.values.map((hl=>{var pl,ml=fn$1[hl.operator],gl=I$8(hl.value)?hl.value:[hl.value],wc=(pl=ca[hl.key])!==null&&pl!==void 0?pl:[];return gl.length>0&&ml(gl,wc)}));return ua.type==="OR"?Sa.some(Boolean):Sa.every(Boolean)}))}si(aa){return aa.flatMap((ca=>{var ua,Sa;return(ua=(Sa=ca.stacktrace)==null?void 0:Sa.frames)!==null&&ua!==void 0?ua:[]})).some((ca=>ca.filename&&ca.filename.startsWith("chrome-extension://")))}ni(aa){if(aa.length>0){var ca,ua,Sa,hl,pl=(ca=(ua=aa[0].stacktrace)==null?void 0:ua.frames)!==null&&ca!==void 0?ca:[],ml=pl[pl.length-1];return(Sa=ml==null||(hl=ml.filename)==null?void 0:hl.includes("posthog.com/static"))!==null&&Sa!==void 0&&Sa}return!1}ei(aa){return!j$a(aa)&&I$8(aa)}}var yn=$i("[FeatureFlags]"),bn=$i("[FeatureFlags]",{debugEnabled:!0}),wn="$active_feature_flags",xn="$override_feature_flags",En="$feature_flag_payloads",$n="$override_feature_flag_payloads",Sn="$feature_flag_request_id",kn="$feature_flag_evaluated_at",Pn=la=>{var aa={};for(var[ca,ua]of Fi(la||{}))ua&&(aa[ca]=ua);return aa},Tn=la=>{var aa=la.flags;return aa?(la.featureFlags=Object.fromEntries(Object.keys(aa).map((ca=>{var ua;return[ca,(ua=aa[ca].variant)!==null&&ua!==void 0?ua:aa[ca].enabled]}))),la.featureFlagPayloads=Object.fromEntries(Object.keys(aa).filter((ca=>aa[ca].enabled)).filter((ca=>{var ua;return(ua=aa[ca].metadata)==null?void 0:ua.payload})).map((ca=>{var ua;return[ca,(ua=aa[ca].metadata)==null?void 0:ua.payload]})))):yn.warn("Using an older version of the feature flags endpoint. Please upgrade your PostHog server to the latest version"),la},In=(function(la){return la.FeatureFlags="feature_flags",la.Recordings="recordings",la})({});class Cn{constructor(aa){this.oi=!1,this.ai=!1,this.li=!1,this.ui=!1,this.hi=!1,this.di=!1,this.vi=!1,this._instance=aa,this.featureFlagEventHandlers=[]}ci(){var aa=this._instance.config.evaluation_environments;return aa!=null&&aa.length?aa.filter((ca=>{var ua=ca&&typeof ca=="string"&&ca.trim().length>0;return ua||yn.error("Invalid evaluation environment found:",ca,"Expected non-empty string"),ua})):[]}fi(){return this.ci().length>0}flags(){if(this._instance.config.__preview_remote_config)this.di=!0;else{var aa=!this.pi&&(this._instance.config.advanced_disable_feature_flags||this._instance.config.advanced_disable_feature_flags_on_first_load);this.gi({disableFlags:aa})}}get hasLoadedFlags(){return this.ai}getFlags(){return Object.keys(this.getFlagVariants())}getFlagsWithDetails(){var aa=this._instance.get_property(se$3),ca=this._instance.get_property(xn),ua=this._instance.get_property($n);if(!ua&&!ca)return aa||{};var Sa=Ci({},aa||{}),hl=[...new Set([...Object.keys(ua||{}),...Object.keys(ca||{})])];for(var pl of hl){var ml,gl,wc=Sa[pl],xu=ca?.[pl],ff=M$6(xu)?(ml=wc?.enabled)!==null&&ml!==void 0&&ml:!!xu,jf=M$6(xu)?wc.variant:typeof xu=="string"?xu:void 0,Uf=ua?.[pl],rp=g$8({},wc,{enabled:ff,variant:ff?jf??wc?.variant:void 0});ff!==wc?.enabled&&(rp.original_enabled=wc?.enabled),jf!==wc?.variant&&(rp.original_variant=wc?.variant),Uf&&(rp.metadata=g$8({},wc?.metadata,{payload:Uf,original_payload:wc==null||(gl=wc.metadata)==null?void 0:gl.payload})),Sa[pl]=rp}return this.oi||(yn.warn(" Overriding feature flag details!",{flagDetails:aa,overriddenPayloads:ua,finalDetails:Sa}),this.oi=!0),Sa}getFlagVariants(){var aa=this._instance.get_property(ee$4),ca=this._instance.get_property(xn);if(!ca)return aa||{};for(var ua=Ci({},aa),Sa=Object.keys(ca),hl=0;hl<Sa.length;hl++)ua[Sa[hl]]=ca[Sa[hl]];return this.oi||(yn.warn(" Overriding feature flags!",{enabledFlags:aa,overriddenFlags:ca,finalFlags:ua}),this.oi=!0),ua}getFlagPayloads(){var aa=this._instance.get_property(En),ca=this._instance.get_property($n);if(!ca)return aa||{};for(var ua=Ci({},aa||{}),Sa=Object.keys(ca),hl=0;hl<Sa.length;hl++)ua[Sa[hl]]=ca[Sa[hl]];return this.oi||(yn.warn(" Overriding feature flag payloads!",{flagPayloads:aa,overriddenPayloads:ca,finalPayloads:ua}),this.oi=!0),ua}reloadFeatureFlags(){this.ui||this._instance.config.advanced_disable_feature_flags||this.pi||(this.pi=setTimeout((()=>{this.gi()}),5))}mi(){clearTimeout(this.pi),this.pi=void 0}ensureFlagsLoaded(){this.ai||this.li||this.pi||this.reloadFeatureFlags()}setAnonymousDistinctId(aa){this.$anon_distinct_id=aa}setReloadingPaused(aa){this.ui=aa}gi(aa){var ca;if(this.mi(),!this._instance.O())if(this.li)this.hi=!0;else{var ua=this._instance.config.token,Sa=this._instance.get_property("$device_id"),hl={token:ua,distinct_id:this._instance.get_distinct_id(),groups:this._instance.getGroups(),$anon_distinct_id:this.$anon_distinct_id,person_properties:g$8({},((ca=this._instance.persistence)==null?void 0:ca.get_initial_props())||{},this._instance.get_property(ne$2)||{}),group_properties:this._instance.get_property(oe$2)};D$b(Sa)||M$6(Sa)||(hl.$device_id=Sa),(aa!=null&&aa.disableFlags||this._instance.config.advanced_disable_feature_flags)&&(hl.disable_flags=!0),this.fi()&&(hl.evaluation_environments=this.ci());var pl=this._instance.config.__preview_remote_config,ml=pl?"/flags/?v=2":"/flags/?v=2&config=true",gl=this._instance.config.advanced_only_evaluate_survey_feature_flags?"&only_evaluate_survey_feature_flags=true":"",wc=this._instance.requestRouter.endpointFor("flags",ml+gl);pl&&(hl.timezone=fs()),this.li=!0,this._instance._send_request({method:"POST",url:wc,data:hl,compression:this._instance.config.disable_compression?void 0:er.Base64,timeout:this._instance.config.feature_flag_request_timeout_ms,callback:xu=>{var ff,jf,Uf=!0;if(xu.statusCode===200&&(this.hi||(this.$anon_distinct_id=void 0),Uf=!1),this.li=!1,this.di||(this.di=!0,this._instance.yi((jf=xu.json)!==null&&jf!==void 0?jf:{})),!hl.disable_flags||this.hi)if(this.vi=!Uf,xu.json&&(ff=xu.json.quotaLimited)!=null&&ff.includes(In.FeatureFlags))yn.warn("You have hit your feature flags quota limit, and will not be able to load feature flags until the quota is reset. Please visit https://posthog.com/docs/billing/limits-alerts to learn more.");else{var rp;hl.disable_flags||this.receivedFeatureFlags((rp=xu.json)!==null&&rp!==void 0?rp:{},Uf),this.hi&&(this.hi=!1,this.gi())}}})}}getFeatureFlag(aa,ca){if(ca===void 0&&(ca={}),this.ai||this.getFlags()&&this.getFlags().length>0){var ua=this.getFlagVariants()[aa],Sa=""+ua,hl=this._instance.get_property(Sn)||void 0,pl=this._instance.get_property(kn)||void 0,ml=this._instance.get_property(le$2)||{};if((ca.send_event||!("send_event"in ca))&&(!(aa in ml)||!ml[aa].includes(Sa))){var gl,wc,xu,ff,jf,Uf,rp,np,qm;I$8(ml[aa])?ml[aa].push(Sa):ml[aa]=[Sa],(gl=this._instance.persistence)==null||gl.register({[le$2]:ml});var Vm=this.getFeatureFlagDetails(aa),eg={$feature_flag:aa,$feature_flag_response:ua,$feature_flag_payload:this.getFeatureFlagPayload(aa)||null,$feature_flag_request_id:hl,$feature_flag_evaluated_at:pl,$feature_flag_bootstrapped_response:((wc=this._instance.config.bootstrap)==null||(wc=wc.featureFlags)==null?void 0:wc[aa])||null,$feature_flag_bootstrapped_payload:((xu=this._instance.config.bootstrap)==null||(xu=xu.featureFlagPayloads)==null?void 0:xu[aa])||null,$used_bootstrap_value:!this.vi};M$6(Vm==null||(ff=Vm.metadata)==null?void 0:ff.version)||(eg.$feature_flag_version=Vm.metadata.version);var tg,rg=(jf=Vm==null||(Uf=Vm.reason)==null?void 0:Uf.description)!==null&&jf!==void 0?jf:Vm==null||(rp=Vm.reason)==null?void 0:rp.code;rg&&(eg.$feature_flag_reason=rg),Vm!=null&&(np=Vm.metadata)!=null&&np.id&&(eg.$feature_flag_id=Vm.metadata.id),M$6(Vm?.original_variant)&&M$6(Vm?.original_enabled)||(eg.$feature_flag_original_response=M$6(Vm.original_variant)?Vm.original_enabled:Vm.original_variant),Vm!=null&&(qm=Vm.metadata)!=null&&qm.original_payload&&(eg.$feature_flag_original_payload=Vm==null||(tg=Vm.metadata)==null?void 0:tg.original_payload),this._instance.capture("$feature_flag_called",eg)}return ua}yn.warn('getFeatureFlag for key "'+aa+`" failed. Feature flags didn't load in time.`)}getFeatureFlagDetails(aa){return this.getFlagsWithDetails()[aa]}getFeatureFlagPayload(aa){return this.getFlagPayloads()[aa]}getRemoteConfigPayload(aa,ca){var ua=this._instance.config.token,Sa={distinct_id:this._instance.get_distinct_id(),token:ua};this.fi()&&(Sa.evaluation_environments=this.ci()),this._instance._send_request({method:"POST",url:this._instance.requestRouter.endpointFor("flags","/flags/?v=2&config=true"),data:Sa,compression:this._instance.config.disable_compression?void 0:er.Base64,timeout:this._instance.config.feature_flag_request_timeout_ms,callback:hl=>{var pl,ml=(pl=hl.json)==null?void 0:pl.featureFlagPayloads;ca(ml?.[aa]||void 0)}})}isFeatureEnabled(aa,ca){if(ca===void 0&&(ca={}),this.ai||this.getFlags()&&this.getFlags().length>0){var ua=this.getFeatureFlag(aa,ca);return M$6(ua)?void 0:!!ua}yn.warn('isFeatureEnabled for key "'+aa+`" failed. Feature flags didn't load in time.`)}addFeatureFlagsHandler(aa){this.featureFlagEventHandlers.push(aa)}removeFeatureFlagsHandler(aa){this.featureFlagEventHandlers=this.featureFlagEventHandlers.filter((ca=>ca!==aa))}receivedFeatureFlags(aa,ca){if(this._instance.persistence){this.ai=!0;var ua=this.getFlagVariants(),Sa=this.getFlagPayloads(),hl=this.getFlagsWithDetails();(function(pl,ml,gl,wc,xu){gl===void 0&&(gl={}),wc===void 0&&(wc={}),xu===void 0&&(xu={});var ff=Tn(pl),jf=ff.flags,Uf=ff.featureFlags,rp=ff.featureFlagPayloads;if(Uf){var np=pl.requestId,qm=pl.evaluatedAt;if(I$8(Uf)){yn.warn("v1 of the feature flags endpoint is deprecated. Please use the latest version.");var Vm={};if(Uf)for(var eg=0;eg<Uf.length;eg++)Vm[Uf[eg]]=!0;ml&&ml.register({[wn]:Uf,[ee$4]:Vm})}else{var tg=Uf,rg=rp,ig=jf;pl.errorsWhileComputingFlags&&(tg=g$8({},gl,tg),rg=g$8({},wc,rg),ig=g$8({},xu,ig)),ml&&ml.register(g$8({[wn]:Object.keys(Pn(tg)),[ee$4]:tg||{},[En]:rg||{},[se$3]:ig||{}},np?{[Sn]:np}:{},qm?{[kn]:qm}:{}))}}})(aa,this._instance.persistence,ua,Sa,hl),this.bi(ca)}}override(aa,ca){ca===void 0&&(ca=!1),yn.warn("override is deprecated. Please use overrideFeatureFlags instead."),this.overrideFeatureFlags({flags:aa,suppressWarning:ca})}overrideFeatureFlags(aa){if(!this._instance.__loaded||!this._instance.persistence)return yn.uninitializedWarning("posthog.featureFlags.overrideFeatureFlags");if(aa===!1)return this._instance.persistence.unregister(xn),this._instance.persistence.unregister($n),this.bi(),bn.info("All overrides cleared");if(aa&&typeof aa=="object"&&("flags"in aa||"payloads"in aa)){var ca,ua=aa;if(this.oi=!!((ca=ua.suppressWarning)!==null&&ca!==void 0&&ca),"flags"in ua){if(ua.flags===!1)this._instance.persistence.unregister(xn),bn.info("Flag overrides cleared");else if(ua.flags){if(I$8(ua.flags)){for(var Sa={},hl=0;hl<ua.flags.length;hl++)Sa[ua.flags[hl]]=!0;this._instance.persistence.register({[xn]:Sa})}else this._instance.persistence.register({[xn]:ua.flags});bn.info("Flag overrides set",{flags:ua.flags})}}return"payloads"in ua&&(ua.payloads===!1?(this._instance.persistence.unregister($n),bn.info("Payload overrides cleared")):ua.payloads&&(this._instance.persistence.register({[$n]:ua.payloads}),bn.info("Payload overrides set",{payloads:ua.payloads}))),void this.bi()}this.bi()}onFeatureFlags(aa){if(this.addFeatureFlagsHandler(aa),this.ai){var{flags:ca,flagVariants:ua}=this.wi();aa(ca,ua)}return()=>this.removeFeatureFlagsHandler(aa)}updateEarlyAccessFeatureEnrollment(aa,ca,ua){var Sa,hl=(this._instance.get_property(re$1)||[]).find((wc=>wc.flagKey===aa)),pl={["$feature_enrollment/"+aa]:ca},ml={$feature_flag:aa,$feature_enrollment:ca,$set:pl};hl&&(ml.$early_access_feature_name=hl.name),ua&&(ml.$feature_enrollment_stage=ua),this._instance.capture("$feature_enrollment_update",ml),this.setPersonPropertiesForFlags(pl,!1);var gl=g$8({},this.getFlagVariants(),{[aa]:ca});(Sa=this._instance.persistence)==null||Sa.register({[wn]:Object.keys(Pn(gl)),[ee$4]:gl}),this.bi()}getEarlyAccessFeatures(aa,ca,ua){ca===void 0&&(ca=!1);var Sa=this._instance.get_property(re$1),hl=ua?"&"+ua.map((pl=>"stage="+pl)).join("&"):"";if(Sa&&!ca)return aa(Sa);this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/early_access_features/?token="+this._instance.config.token+hl),method:"GET",callback:pl=>{var ml,gl;if(pl.json){var wc=pl.json.earlyAccessFeatures;return(ml=this._instance.persistence)==null||ml.unregister(re$1),(gl=this._instance.persistence)==null||gl.register({[re$1]:wc}),aa(wc)}}})}wi(){var aa=this.getFlags(),ca=this.getFlagVariants();return{flags:aa.filter((ua=>ca[ua])),flagVariants:Object.keys(ca).filter((ua=>ca[ua])).reduce(((ua,Sa)=>(ua[Sa]=ca[Sa],ua)),{})}}bi(aa){var{flags:ca,flagVariants:ua}=this.wi();this.featureFlagEventHandlers.forEach((Sa=>Sa(ca,ua,{errorsLoading:aa})))}setPersonPropertiesForFlags(aa,ca){ca===void 0&&(ca=!0);var ua=this._instance.get_property(ne$2)||{};this._instance.register({[ne$2]:g$8({},ua,aa)}),ca&&this._instance.reloadFeatureFlags()}resetPersonPropertiesForFlags(){this._instance.unregister(ne$2)}setGroupPropertiesForFlags(aa,ca){ca===void 0&&(ca=!0);var ua=this._instance.get_property(oe$2)||{};Object.keys(ua).length!==0&&Object.keys(ua).forEach((Sa=>{ua[Sa]=g$8({},ua[Sa],aa[Sa]),delete aa[Sa]})),this._instance.register({[oe$2]:g$8({},ua,aa)}),ca&&this._instance.reloadFeatureFlags()}resetGroupPropertiesForFlags(aa){if(aa){var ca=this._instance.get_property(oe$2)||{};this._instance.register({[oe$2]:g$8({},ca,{[aa]:{}})})}else this._instance.unregister(oe$2)}reset(){this.ai=!1,this.li=!1,this.ui=!1,this.hi=!1,this.di=!1,this.vi=!1,this.$anon_distinct_id=void 0,this.mi(),this.oi=!1}}var Rn=["cookie","localstorage","localstorage+cookie","sessionstorage","memory"];class Fn{constructor(aa,ca){this.R=aa,this.props={},this.xi=!1,this.Ei=(ua=>{var Sa="";return ua.token&&(Sa=ua.token.replace(/\+/g,"PL").replace(/\//g,"SL").replace(/=/g,"EQ")),ua.persistence_name?"ph_"+ua.persistence_name:"ph_"+Sa+"_posthog"})(aa),this.Y=this.$i(aa),this.load(),aa.debug&&Ei.info("Persistence loaded",aa.persistence,g$8({},this.props)),this.update_config(aa,aa,ca),this.save()}isDisabled(){return!!this.Si}$i(aa){Rn.indexOf(aa.persistence.toLowerCase())===-1&&(Ei.critical("Unknown persistence type "+aa.persistence+"; falling back to localStorage+cookie"),aa.persistence="localStorage+cookie");var ca=(function(Sa){Sa===void 0&&(Sa=[]);var hl=[...Ir,...Sa];return g$8({},Tr,{W:function(pl){try{var ml={};try{ml=kr.W(pl)||{}}catch{}var gl=Ci(ml,JSON.parse(Tr.q(pl)||"{}"));return Tr.G(pl,gl),gl}catch{}return null},G:function(pl,ml,gl,wc,xu,ff){try{Tr.G(pl,ml,void 0,void 0,ff);var jf={};hl.forEach((Uf=>{ml[Uf]&&(jf[Uf]=ml[Uf])})),Object.keys(jf).length&&kr.G(pl,jf,gl,wc,xu,ff)}catch(Uf){Tr.B(Uf)}},V:function(pl,ml){try{t$9?.localStorage.removeItem(pl),kr.V(pl,ml)}catch(gl){Tr.B(gl)}}})})(aa.cookie_persisted_properties||[]),ua=aa.persistence.toLowerCase();return ua==="localstorage"&&Tr.H()?Tr:ua==="localstorage+cookie"&&ca.H()?ca:ua==="sessionstorage"&&Mr.H()?Mr:ua==="memory"?Rr:ua==="cookie"?kr:ca.H()?ca:kr}properties(){var aa={};return Ii(this.props,(function(ca,ua){if(ua===ee$4&&R$3(ca))for(var Sa=Object.keys(ca),hl=0;hl<Sa.length;hl++)aa["$feature/"+Sa[hl]]=ca[Sa[hl]];else ml=ua,gl=!1,(D$b(pl=me$2)?gl:s$f&&pl.indexOf===s$f?pl.indexOf(ml)!=-1:(Ii(pl,(function(wc){if(gl||(gl=wc===ml))return Pi})),gl))||(aa[ua]=ca);var pl,ml,gl})),aa}load(){if(!this.Si){var aa=this.Y.W(this.Ei);aa&&(this.props=Ci({},aa))}}save(){this.Si||this.Y.G(this.Ei,this.props,this.ki,this.Pi,this.Ti,this.R.debug)}remove(){this.Y.V(this.Ei,!1),this.Y.V(this.Ei,!0)}clear(){this.remove(),this.props={}}register_once(aa,ca,ua){if(R$3(aa)){M$6(ca)&&(ca="None"),this.ki=M$6(ua)?this.Ii:ua;var Sa=!1;if(Ii(aa,((hl,pl)=>{this.props.hasOwnProperty(pl)&&this.props[pl]!==ca||(this.props[pl]=hl,Sa=!0)})),Sa)return this.save(),!0}return!1}register(aa,ca){if(R$3(aa)){this.ki=M$6(ca)?this.Ii:ca;var ua=!1;if(Ii(aa,((Sa,hl)=>{aa.hasOwnProperty(hl)&&this.props[hl]!==Sa&&(this.props[hl]=Sa,ua=!0)})),ua)return this.save(),!0}return!1}unregister(aa){aa in this.props&&(delete this.props[aa],this.save())}update_campaign_params(){if(!this.xi){var aa=as(this.R.custom_campaign_params,this.R.mask_personal_data_properties,this.R.custom_personal_data_properties);F$8(Ai(aa))||this.register(aa),this.xi=!0}}update_search_keyword(){var aa;this.register((aa=o$d?.referrer)?us(aa):{})}update_referrer_info(){var aa;this.register_once({$referrer:ds(),$referring_domain:o$d!=null&&o$d.referrer&&((aa=sr(o$d.referrer))==null?void 0:aa.host)||"$direct"},void 0)}set_initial_person_info(){this.props[ve$2]||this.props[ce$3]||this.register_once({[fe$2]:vs(this.R.mask_personal_data_properties,this.R.custom_personal_data_properties)},void 0)}get_initial_props(){var aa={};Ii([ce$3,ve$2],(pl=>{var ml=this.props[pl];ml&&Ii(ml,(function(gl,wc){aa["$initial_"+E$7(wc)]=gl}))}));var ca,ua,Sa=this.props[fe$2];if(Sa){var hl=(ca=cs(Sa),ua={},Ii(ca,(function(pl,ml){ua["$initial_"+E$7(ml)]=pl})),ua);Ci(aa,hl)}return aa}safe_merge(aa){return Ii(this.props,(function(ca,ua){ua in aa||(aa[ua]=ca)})),aa}update_config(aa,ca,ua){if(this.Ii=this.ki=aa.cookie_expiration,this.set_disabled(aa.disable_persistence||!!ua),this.set_cross_subdomain(aa.cross_subdomain_cookie),this.set_secure(aa.secure_cookie),aa.persistence!==ca.persistence||!((pl,ml)=>{if(pl.length!==ml.length)return!1;var gl=[...pl].sort(),wc=[...ml].sort();return gl.every(((xu,ff)=>xu===wc[ff]))})(aa.cookie_persisted_properties||[],ca.cookie_persisted_properties||[])){var Sa=this.$i(aa),hl=this.props;this.clear(),this.Y=Sa,this.props=hl,this.save()}}set_disabled(aa){this.Si=aa,this.Si?this.remove():this.save()}set_cross_subdomain(aa){aa!==this.Pi&&(this.Pi=aa,this.remove(),this.save())}set_secure(aa){aa!==this.Ti&&(this.Ti=aa,this.remove(),this.save())}set_event_timer(aa,ca){var ua=this.props[Bi]||{};ua[aa]=ca,this.props[Bi]=ua,this.save()}remove_event_timer(aa){var ca=(this.props[Bi]||{})[aa];return M$6(ca)||(delete this.props[Bi][aa],this.save()),ca}get_property(aa){return this.props[aa]}set_property(aa,ca){this.props[aa]=ca,this.save()}}var Mn=$i("[Product Tours]"),On="ph_product_tours";class An{constructor(aa){this.Ci=null,this.Ri=null,this._instance=aa}onRemoteConfig(aa){this._instance.persistence&&this._instance.persistence.register({[Xi]:!(aa==null||!aa.productTours)}),this.loadIfEnabled()}loadIfEnabled(){var aa,ca;this.Ci||(aa=this._instance).config.disable_product_tours||(ca=aa.persistence)==null||!ca.get_property(Xi)||this.it((()=>this.Fi()))}it(aa){var ca,ua;(ca=v$7.__PosthogExtensions__)!=null&&ca.generateProductTours?aa():(ua=v$7.__PosthogExtensions__)==null||ua.loadExternalDependency==null||ua.loadExternalDependency(this._instance,"product-tours",(Sa=>{Sa?Mn.error("Could not load product tours script",Sa):aa()}))}Fi(){var aa;!this.Ci&&(aa=v$7.__PosthogExtensions__)!=null&&aa.generateProductTours&&(this.Ci=v$7.__PosthogExtensions__.generateProductTours(this._instance,!0))}getProductTours(aa,ca){if(ca===void 0&&(ca=!1),!I$8(this.Ri)||ca){var ua=this._instance.persistence;if(ua){var Sa=ua.props[On];if(I$8(Sa)&&!ca)return this.Ri=Sa,void aa(Sa,{isLoaded:!0})}this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/product_tours/?token="+this._instance.config.token),method:"GET",callback:hl=>{var pl=hl.statusCode;if(pl!==200||!hl.json){var ml="Product Tours API could not be loaded, status: "+pl;return Mn.error(ml),void aa([],{isLoaded:!1,error:ml})}var gl=I$8(hl.json.product_tours)?hl.json.product_tours:[];this.Ri=gl,ua&&ua.register({[On]:gl}),aa(gl,{isLoaded:!0})}})}else aa(this.Ri,{isLoaded:!0})}getActiveProductTours(aa){j$a(this.Ci)?aa([],{isLoaded:!1,error:"Product tours not loaded"}):this.Ci.getActiveProductTours(aa)}showProductTour(aa){var ca;(ca=this.Ci)==null||ca.showTourById(aa)}previewTour(aa){this.Ci?this.Ci.previewTour(aa):this.it((()=>{var ca;this.Fi(),(ca=this.Ci)==null||ca.previewTour(aa)}))}dismissProductTour(){var aa;(aa=this.Ci)==null||aa.dismissTour("user_clicked_skip")}nextStep(){var aa;(aa=this.Ci)==null||aa.nextStep()}previousStep(){var aa;(aa=this.Ci)==null||aa.previousStep()}clearCache(){var aa;this.Ri=null,(aa=this._instance.persistence)==null||aa.unregister(On)}resetTour(aa){var ca;(ca=this.Ci)==null||ca.resetTour(aa)}resetAllTours(){var aa;(aa=this.Ci)==null||aa.resetAllTours()}cancelPendingTour(aa){var ca;(ca=this.Ci)==null||ca.cancelPendingTour(aa)}}var Dn=(function(la){return la.Activation="events",la.Cancellation="cancelEvents",la})({});(function(la){return la.Button="button",la.Tab="tab",la.Selector="selector",la})({});(function(la){return la.TopLeft="top_left",la.TopRight="top_right",la.TopCenter="top_center",la.MiddleLeft="middle_left",la.MiddleRight="middle_right",la.MiddleCenter="middle_center",la.Left="left",la.Center="center",la.Right="right",la.NextToTrigger="next_to_trigger",la})({});(function(la){return la.Top="top",la.Left="left",la.Right="right",la.Bottom="bottom",la})({});var Un=(function(la){return la.Popover="popover",la.API="api",la.Widget="widget",la.ExternalSurvey="external_survey",la})({});(function(la){return la.Open="open",la.MultipleChoice="multiple_choice",la.SingleChoice="single_choice",la.Rating="rating",la.Link="link",la})({});(function(la){return la.NextQuestion="next_question",la.End="end",la.ResponseBased="response_based",la.SpecificQuestion="specific_question",la})({});(function(la){return la.Once="once",la.Recurring="recurring",la.Always="always",la})({});var qn=(function(la){return la.SHOWN="survey shown",la.DISMISSED="survey dismissed",la.SENT="survey sent",la.ABANDONED="survey abandoned",la})({}),Wn=(function(la){return la.SURVEY_ID="$survey_id",la.SURVEY_NAME="$survey_name",la.SURVEY_RESPONSE="$survey_response",la.SURVEY_ITERATION="$survey_iteration",la.SURVEY_ITERATION_START_DATE="$survey_iteration_start_date",la.SURVEY_PARTIALLY_COMPLETED="$survey_partially_completed",la.SURVEY_SUBMISSION_ID="$survey_submission_id",la.SURVEY_QUESTIONS="$survey_questions",la.SURVEY_COMPLETED="$survey_completed",la.PRODUCT_TOUR_ID="$product_tour_id",la})({}),Gn=(function(la){return la.Popover="popover",la.Inline="inline",la})({}),Vn=$i("[Surveys]"),Jn="seenSurvey_",Kn=(la,aa)=>{var ca="$survey_"+aa+"/"+la.id;return la.current_iteration&&la.current_iteration>0&&(ca="$survey_"+aa+"/"+la.id+"/"+la.current_iteration),ca},Yn=la=>((aa,ca)=>{var ua=""+aa+ca.id;return ca.current_iteration&&ca.current_iteration>0&&(ua=""+aa+ca.id+"_"+ca.current_iteration),ua})(Jn,la),Xn=[Un.Popover,Un.Widget,Un.API],Qn={ignoreConditions:!1,ignoreDelay:!1,displayType:Gn.Popover};class Zn{constructor(){this.Mi={},this.Mi={}}on(aa,ca){return this.Mi[aa]||(this.Mi[aa]=[]),this.Mi[aa].push(ca),()=>{this.Mi[aa]=this.Mi[aa].filter((ua=>ua!==ca))}}emit(aa,ca){for(var ua of this.Mi[aa]||[])ua(ca);for(var Sa of this.Mi["*"]||[])Sa(aa,ca)}}function to(la,aa,ca){if(j$a(la))return!1;switch(ca){case"exact":return la===aa;case"contains":var ua=aa.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/_/g,".").replace(/%/g,".*");return new RegExp(ua,"i").test(la);case"regex":try{return new RegExp(aa).test(la)}catch{return!1}default:return!1}}class io{constructor(aa){this.Oi=new Zn,this.Ai=(ca,ua)=>this.Di(ca,ua)&&this.ji(ca,ua)&&this.Li(ca,ua)&&this.Ni(ca,ua),this.Di=(ca,ua)=>ua==null||!ua.event||ca?.event===ua?.event,this._instance=aa,this.Ui=new Set,this.zi=new Set}init(){var aa;if(!M$6((aa=this._instance)==null?void 0:aa.Hi)){var ca;(ca=this._instance)==null||ca.Hi(((ua,Sa)=>{this.on(ua,Sa)}))}}register(aa){var ca,ua;if(!M$6((ca=this._instance)==null?void 0:ca.Hi)&&(aa.forEach((pl=>{var ml,gl;(ml=this.zi)==null||ml.add(pl),(gl=pl.steps)==null||gl.forEach((wc=>{var xu;(xu=this.Ui)==null||xu.add(wc?.event||"")}))})),(ua=this._instance)!=null&&ua.autocapture)){var Sa,hl=new Set;aa.forEach((pl=>{var ml;(ml=pl.steps)==null||ml.forEach((gl=>{gl!=null&&gl.selector&&hl.add(gl?.selector)}))})),(Sa=this._instance)==null||Sa.autocapture.setElementSelectors(hl)}}on(aa,ca){var ua;ca!=null&&aa.length!=0&&(this.Ui.has(aa)||this.Ui.has(ca?.event))&&this.zi&&((ua=this.zi)==null?void 0:ua.size)>0&&this.zi.forEach((Sa=>{this.Bi(ca,Sa)&&this.Oi.emit("actionCaptured",Sa.name)}))}qi(aa){this.onAction("actionCaptured",(ca=>aa(ca)))}Bi(aa,ca){if(ca?.steps==null)return!1;for(var ua of ca.steps)if(this.Ai(aa,ua))return!0;return!1}onAction(aa,ca){return this.Oi.on(aa,ca)}ji(aa,ca){if(ca!=null&&ca.url){var ua,Sa=aa==null||(ua=aa.properties)==null?void 0:ua.$current_url;if(!Sa||typeof Sa!="string"||!to(Sa,ca.url,ca.url_matching||"contains"))return!1}return!0}Li(aa,ca){return!!this.Wi(aa,ca)&&!!this.Gi(aa,ca)&&!!this.Vi(aa,ca)}Wi(aa,ca){var ua;if(ca==null||!ca.href)return!0;var Sa=this.Ji(aa);if(Sa.length>0)return Sa.some((ml=>to(ml.href,ca.href,ca.href_matching||"exact")));var hl,pl=(aa==null||(ua=aa.properties)==null?void 0:ua.$elements_chain)||"";return!!pl&&to((hl=pl.match(/(?::|")href="(.*?)"/))?hl[1]:"",ca.href,ca.href_matching||"exact")}Gi(aa,ca){var ua;if(ca==null||!ca.text)return!0;var Sa=this.Ji(aa);if(Sa.length>0)return Sa.some((wc=>to(wc.text,ca.text,ca.text_matching||"exact")||to(wc.$el_text,ca.text,ca.text_matching||"exact")));var hl,pl,ml,gl=(aa==null||(ua=aa.properties)==null?void 0:ua.$elements_chain)||"";return!!gl&&(hl=(function(wc){for(var xu,ff=[],jf=/(?::|")text="(.*?)"/g;!j$a(xu=jf.exec(wc));)ff.includes(xu[1])||ff.push(xu[1]);return ff})(gl),pl=ca.text,ml=ca.text_matching||"exact",hl.some((wc=>to(wc,pl,ml))))}Vi(aa,ca){var ua,Sa;if(ca==null||!ca.selector)return!0;var hl=aa==null||(ua=aa.properties)==null?void 0:ua.$element_selectors;if(hl!=null&&hl.includes(ca.selector))return!0;var pl=(aa==null||(Sa=aa.properties)==null?void 0:Sa.$elements_chain)||"";if(ca.selector_regex&&pl)try{return new RegExp(ca.selector_regex).test(pl)}catch{return!1}return!1}Ji(aa){var ca;return(aa==null||(ca=aa.properties)==null?void 0:ca.$elements)==null?[]:aa?.properties.$elements}Ni(aa,ca){return ca==null||!ca.properties||ca.properties.length===0||gn(ca.properties.reduce(((ua,Sa)=>{var hl=I$8(Sa.value)?Sa.value.map(String):Sa.value!=null?[String(Sa.value)]:[];return ua[Sa.key]={values:hl,operator:Sa.operator||"exact"},ua}),{}),aa?.properties)}}class eo{constructor(aa){this._instance=aa,this.Ki=new Map,this.Yi=new Map,this.Xi=new Map}Qi(aa,ca){return!!aa&&gn(aa.propertyFilters,ca?.properties)}Zi(aa,ca){var ua=new Map;return aa.forEach((Sa=>{var hl;(hl=Sa.conditions)==null||(hl=hl[ca])==null||(hl=hl.values)==null||hl.forEach((pl=>{if(pl!=null&&pl.name){var ml=ua.get(pl.name)||[];ml.push(Sa.id),ua.set(pl.name,ml)}}))})),ua}te(aa,ca,ua){var Sa=(ua===Dn.Activation?this.Ki:this.Yi).get(aa),hl=[];return this.ie((pl=>{hl=pl.filter((ml=>Sa?.includes(ml.id)))})),hl.filter((pl=>{var ml,gl=(ml=pl.conditions)==null||(ml=ml[ua])==null||(ml=ml.values)==null?void 0:ml.find((wc=>wc.name===aa));return this.Qi(gl,ca)}))}register(aa){var ca;M$6((ca=this._instance)==null?void 0:ca.Hi)||(this.ee(aa),this.re(aa))}re(aa){var ca=aa.filter((ua=>{var Sa,hl;return((Sa=ua.conditions)==null?void 0:Sa.actions)&&((hl=ua.conditions)==null||(hl=hl.actions)==null||(hl=hl.values)==null?void 0:hl.length)>0}));ca.length!==0&&(this.se==null&&(this.se=new io(this._instance),this.se.init(),this.se.qi((ua=>{this.onAction(ua)}))),ca.forEach((ua=>{var Sa,hl,pl,ml,gl;ua.conditions&&(Sa=ua.conditions)!=null&&Sa.actions&&(hl=ua.conditions)!=null&&(hl=hl.actions)!=null&&hl.values&&((pl=ua.conditions)==null||(pl=pl.actions)==null||(pl=pl.values)==null?void 0:pl.length)>0&&((ml=this.se)==null||ml.register(ua.conditions.actions.values),(gl=ua.conditions)==null||(gl=gl.actions)==null||(gl=gl.values)==null||gl.forEach((wc=>{if(wc&&wc.name){var xu=this.Xi.get(wc.name);xu&&xu.push(ua.id),this.Xi.set(wc.name,xu||[ua.id])}})))})))}ee(aa){var ca,ua=aa.filter((hl=>{var pl,ml;return((pl=hl.conditions)==null?void 0:pl.events)&&((ml=hl.conditions)==null||(ml=ml.events)==null||(ml=ml.values)==null?void 0:ml.length)>0})),Sa=aa.filter((hl=>{var pl,ml;return((pl=hl.conditions)==null?void 0:pl.cancelEvents)&&((ml=hl.conditions)==null||(ml=ml.cancelEvents)==null||(ml=ml.values)==null?void 0:ml.length)>0}));(ua.length!==0||Sa.length!==0)&&((ca=this._instance)==null||ca.Hi(((hl,pl)=>{this.onEvent(hl,pl)})),this.Ki=this.Zi(aa,Dn.Activation),this.Yi=this.Zi(aa,Dn.Cancellation))}onEvent(aa,ca){var ua,Sa=this.ne(),hl=this.oe(),pl=this.ae(),ml=((ua=this._instance)==null||(ua=ua.persistence)==null?void 0:ua.props[hl])||[];if(pl===aa&&ca&&ml.length>0){var gl,wc;Sa.info("event matched, removing item from activated items",{event:aa,eventPayload:ca,existingActivatedItems:ml});var xu=(ca==null||(gl=ca.properties)==null?void 0:gl.$survey_id)||(ca==null||(wc=ca.properties)==null?void 0:wc.$product_tour_id);if(xu){var ff=ml.indexOf(xu);ff>=0&&(ml.splice(ff,1),this.le(ml))}}else{if(this.Yi.has(aa)){var jf=this.te(aa,ca,Dn.Cancellation);jf.length>0&&(Sa.info("cancel event matched, cancelling items",{event:aa,itemsToCancel:jf.map((rp=>rp.id))}),jf.forEach((rp=>{var np=ml.indexOf(rp.id);np>=0&&ml.splice(np,1),this.ue(rp.id)})),this.le(ml))}if(this.Ki.has(aa)){Sa.info("event name matched",{event:aa,eventPayload:ca,items:this.Ki.get(aa)});var Uf=this.te(aa,ca,Dn.Activation);this.le(ml.concat(Uf.map((rp=>rp.id))||[]))}}}onAction(aa){var ca,ua=this.oe(),Sa=((ca=this._instance)==null||(ca=ca.persistence)==null?void 0:ca.props[ua])||[];this.Xi.has(aa)&&this.le(Sa.concat(this.Xi.get(aa)||[]))}le(aa){var ca,ua=this.ne(),Sa=this.oe(),hl=[...new Set(aa)].filter((pl=>!this.he(pl)));ua.info("updating activated items",{activatedItems:hl}),(ca=this._instance)==null||(ca=ca.persistence)==null||ca.register({[Sa]:hl})}getActivatedIds(){var aa,ca=this.oe(),ua=(aa=this._instance)==null||(aa=aa.persistence)==null?void 0:aa.props[ca];return ua||[]}getEventToItemsMap(){return this.Ki}de(){return this.se}}class ro extends eo{constructor(aa){super(aa)}oe(){return"$surveys_activated"}ae(){return qn.SHOWN}ie(aa){var ca;(ca=this._instance)==null||ca.getSurveys(aa)}ue(aa){var ca;(ca=this._instance)==null||ca.cancelPendingSurvey(aa)}ne(){return Vn}he(){return!1}getSurveys(){return this.getActivatedIds()}getEventToSurveys(){return this.getEventToItemsMap()}}class so{constructor(aa){this.ve=void 0,this._surveyManager=null,this.ce=!1,this.fe=[],this.pe=null,this._instance=aa,this._surveyEventReceiver=null}onRemoteConfig(aa){if(!this._instance.config.disable_surveys){var ca=aa.surveys;if(j$a(ca))return Vn.warn("Flags not loaded yet. Not loading surveys.");var ua=I$8(ca);this.ve=ua?ca.length>0:ca,Vn.info("flags response received, isSurveysEnabled: "+this.ve),this.loadIfEnabled()}}reset(){localStorage.removeItem("lastSeenSurveyDate");for(var aa=[],ca=0;ca<localStorage.length;ca++){var ua=localStorage.key(ca);(ua!=null&&ua.startsWith(Jn)||ua!=null&&ua.startsWith("inProgressSurvey_"))&&aa.push(ua)}aa.forEach((Sa=>localStorage.removeItem(Sa)))}loadIfEnabled(){if(!this._surveyManager)if(this.ce)Vn.info("Already initializing surveys, skipping...");else if(this._instance.config.disable_surveys)Vn.info("Disabled. Not loading surveys.");else if(this._instance.config.cookieless_mode&&this._instance.consent.isOptedOut())Vn.info("Not loading surveys in cookieless mode without consent.");else{var aa=v$7?.__PosthogExtensions__;if(aa){if(!M$6(this.ve)||this._instance.config.advanced_enable_surveys){var ca=this.ve||this._instance.config.advanced_enable_surveys;this.ce=!0;try{var ua=aa.generateSurveys;if(ua)return void this.ge(ua,ca);var Sa=aa.loadExternalDependency;if(!Sa)return void this._e("PostHog loadExternalDependency extension not found.");Sa(this._instance,"surveys",(hl=>{hl||!aa.generateSurveys?this._e("Could not load surveys script",hl):this.ge(aa.generateSurveys,ca)}))}catch(hl){throw this._e("Error initializing surveys",hl),hl}finally{this.ce=!1}}}else Vn.error("PostHog Extensions not found.")}}ge(aa,ca){this._surveyManager=aa(this._instance,ca),this._surveyEventReceiver=new ro(this._instance),Vn.info("Surveys loaded successfully"),this.me({isLoaded:!0})}_e(aa,ca){Vn.error(aa,ca),this.me({isLoaded:!1,error:aa})}onSurveysLoaded(aa){return this.fe.push(aa),this._surveyManager&&this.me({isLoaded:!0}),()=>{this.fe=this.fe.filter((ca=>ca!==aa))}}getSurveys(aa,ca){if(ca===void 0&&(ca=!1),this._instance.config.disable_surveys)return Vn.info("Disabled. Not loading surveys."),aa([]);var ua,Sa=this._instance.get_property(ae$3);if(Sa&&!ca)return aa(Sa,{isLoaded:!0});typeof Promise<"u"&&this.pe?this.pe.then((hl=>{var{surveys:pl,context:ml}=hl;return aa(pl,ml)})):(typeof Promise<"u"&&(this.pe=new Promise((hl=>{ua=hl}))),this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/surveys/?token="+this._instance.config.token),method:"GET",timeout:this._instance.config.surveys_request_timeout_ms,callback:hl=>{var pl;this.pe=null;var ml=hl.statusCode;if(ml!==200||!hl.json){var gl="Surveys API could not be loaded, status: "+ml;Vn.error(gl);var wc={isLoaded:!1,error:gl};return aa([],wc),void(ua==null||ua({surveys:[],context:wc}))}var xu,ff=hl.json.surveys||[],jf=ff.filter((rp=>(function(np){return!(!np.start_date||np.end_date)})(rp)&&((function(np){var qm;return!((qm=np.conditions)==null||(qm=qm.events)==null||(qm=qm.values)==null||!qm.length)})(rp)||(function(np){var qm;return!((qm=np.conditions)==null||(qm=qm.actions)==null||(qm=qm.values)==null||!qm.length)})(rp))));jf.length>0&&((xu=this._surveyEventReceiver)==null||xu.register(jf)),(pl=this._instance.persistence)==null||pl.register({[ae$3]:ff});var Uf={isLoaded:!0};aa(ff,Uf),ua?.({surveys:ff,context:Uf})}}))}me(aa){for(var ca of this.fe)try{if(!aa.isLoaded)return ca([],aa);this.getSurveys(ca)}catch(ua){Vn.error("Error in survey callback",ua)}}getActiveMatchingSurveys(aa,ca){if(ca===void 0&&(ca=!1),!j$a(this._surveyManager))return this._surveyManager.getActiveMatchingSurveys(aa,ca);Vn.warn("init was not called")}ye(aa){var ca=null;return this.getSurveys((ua=>{var Sa;ca=(Sa=ua.find((hl=>hl.id===aa)))!==null&&Sa!==void 0?Sa:null})),ca}be(aa){if(j$a(this._surveyManager))return{eligible:!1,reason:"SDK is not enabled or survey functionality is not yet loaded"};var ca=typeof aa=="string"?this.ye(aa):aa;return ca?this._surveyManager.checkSurveyEligibility(ca):{eligible:!1,reason:"Survey not found"}}canRenderSurvey(aa){if(j$a(this._surveyManager))return Vn.warn("init was not called"),{visible:!1,disabledReason:"SDK is not enabled or survey functionality is not yet loaded"};var ca=this.be(aa);return{visible:ca.eligible,disabledReason:ca.reason}}canRenderSurveyAsync(aa,ca){return j$a(this._surveyManager)?(Vn.warn("init was not called"),Promise.resolve({visible:!1,disabledReason:"SDK is not enabled or survey functionality is not yet loaded"})):new Promise((ua=>{this.getSurveys((Sa=>{var hl,pl=(hl=Sa.find((gl=>gl.id===aa)))!==null&&hl!==void 0?hl:null;if(pl){var ml=this.be(pl);ua({visible:ml.eligible,disabledReason:ml.reason})}else ua({visible:!1,disabledReason:"Survey not found"})}),ca)}))}renderSurvey(aa,ca){var ua;if(j$a(this._surveyManager))Vn.warn("init was not called");else{var Sa=typeof aa=="string"?this.ye(aa):aa;if(Sa!=null&&Sa.id)if(Xn.includes(Sa.type)){var hl=o$d?.querySelector(ca);if(hl)return(ua=Sa.appearance)!=null&&ua.surveyPopupDelaySeconds?(Vn.info("Rendering survey "+Sa.id+" with delay of "+Sa.appearance.surveyPopupDelaySeconds+" seconds"),void setTimeout((()=>{var pl,ml;Vn.info("Rendering survey "+Sa.id+" with delay of "+((pl=Sa.appearance)==null?void 0:pl.surveyPopupDelaySeconds)+" seconds"),(ml=this._surveyManager)==null||ml.renderSurvey(Sa,hl),Vn.info("Survey "+Sa.id+" rendered")}),1e3*Sa.appearance.surveyPopupDelaySeconds)):void this._surveyManager.renderSurvey(Sa,hl);Vn.warn("Survey element not found")}else Vn.warn("Surveys of type "+Sa.type+" cannot be rendered in the app");else Vn.warn("Survey not found")}}displaySurvey(aa,ca){var ua;if(j$a(this._surveyManager))Vn.warn("init was not called");else{var Sa=this.ye(aa);if(Sa){var hl=Sa;if((ua=Sa.appearance)!=null&&ua.surveyPopupDelaySeconds&&ca.ignoreDelay&&(hl=g$8({},Sa,{appearance:g$8({},Sa.appearance,{surveyPopupDelaySeconds:0})})),ca.ignoreConditions===!1){var pl=this.canRenderSurvey(Sa);if(!pl.visible)return void Vn.warn("Survey is not eligible to be displayed: ",pl.disabledReason)}ca.displayType!==Gn.Inline?this._surveyManager.handlePopoverSurvey(hl):this.renderSurvey(hl,ca.selector)}else Vn.warn("Survey not found")}}cancelPendingSurvey(aa){j$a(this._surveyManager)?Vn.warn("init was not called"):this._surveyManager.cancelSurvey(aa)}handlePageUnload(){var aa;(aa=this._surveyManager)==null||aa.handlePageUnload()}}var no=$i("[Conversations]");class oo{constructor(aa){this.we=void 0,this._conversationsManager=null,this.xe=!1,this.Ee=null,this._instance=aa}onRemoteConfig(aa){if(!this._instance.config.disable_conversations){var ca=aa.conversations;j$a(ca)||(N$6(ca)?this.we=ca:(this.we=ca.enabled,this.Ee=ca),this.loadIfEnabled())}}reset(){var aa;(aa=this._conversationsManager)==null||aa.reset(),this._conversationsManager=null,this.we=void 0,this.Ee=null}loadIfEnabled(){if(!this._conversationsManager&&!this.xe&&!(this._instance.config.disable_conversations||this._instance.config.cookieless_mode&&this._instance.consent.isOptedOut())){var aa=v$7?.__PosthogExtensions__;if(aa&&!M$6(this.we)&&this.we)if(this.Ee&&this.Ee.token){if((function(Sa){var hl;if(!Sa||Sa.length===0)return!0;var pl=t$9==null||(hl=t$9.location)==null?void 0:hl.hostname;return!pl||Sa.some((ml=>{var gl=(function(xu){var ff=xu.replace(/^https?:\/\//,"");return(ff=ff.split("/")[0].split("?")[0].split(":")[0])||null})(ml);if(!gl)return!1;if(gl.startsWith("*.")){var wc=gl.slice(2);return pl.endsWith("."+wc)||pl===wc}return pl===gl}))})(this.Ee.domains)){this.xe=!0;try{var ca=aa.initConversations;if(ca)return this.$e(ca),void(this.xe=!1);var ua=aa.loadExternalDependency;if(!ua)return void this.Se("PostHog loadExternalDependency extension not found.");ua(this._instance,"conversations",(Sa=>{Sa||!aa.initConversations?this.Se("Could not load conversations script",Sa):this.$e(aa.initConversations),this.xe=!1}))}catch(Sa){this.Se("Error initializing conversations",Sa),this.xe=!1}}}else no.error("Conversations enabled but missing token in remote config.")}}$e(aa){if(this.Ee)try{this._conversationsManager=aa(this.Ee,this._instance),no.info("Conversations loaded successfully")}catch(ca){this.Se("Error completing conversations initialization",ca)}else no.error("Cannot complete initialization: remote config is null")}Se(aa,ca){no.error(aa,ca),this._conversationsManager=null,this.xe=!1}enable(){this._conversationsManager?this._conversationsManager.enable():no.warn("Conversations not loaded yet.")}disable(){this._conversationsManager&&this._conversationsManager.disable()}isLoaded(){return!D$b(this._conversationsManager)}isEnabled(){return this.we===!0}}var ao=$i("[RateLimiter]");let lo$1=class{constructor(aa){var ca,ua;this.serverLimits={},this.lastEventRateLimited=!1,this.checkForLimiting=Sa=>{var hl=Sa.text;if(hl&&hl.length)try{(JSON.parse(hl).quota_limited||[]).forEach((pl=>{ao.info((pl||"events")+" is quota limited."),this.serverLimits[pl]=new Date().getTime()+6e4}))}catch(pl){return void ao.warn('could not rate limit - continuing. Error: "'+pl?.message+'"',{text:hl})}},this.instance=aa,this.captureEventsPerSecond=((ca=aa.config.rate_limiting)==null?void 0:ca.events_per_second)||10,this.captureEventsBurstLimit=Math.max(((ua=aa.config.rate_limiting)==null?void 0:ua.events_burst_limit)||10*this.captureEventsPerSecond,this.captureEventsPerSecond),this.lastEventRateLimited=this.clientRateLimitContext(!0).isRateLimited}clientRateLimitContext(aa){var ca,ua,Sa;aa===void 0&&(aa=!1);var hl=new Date().getTime(),pl=(ca=(ua=this.instance.persistence)==null?void 0:ua.get_property(de$3))!==null&&ca!==void 0?ca:{tokens:this.captureEventsBurstLimit,last:hl};pl.tokens+=(hl-pl.last)/1e3*this.captureEventsPerSecond,pl.last=hl,pl.tokens>this.captureEventsBurstLimit&&(pl.tokens=this.captureEventsBurstLimit);var ml=pl.tokens<1;return ml||aa||(pl.tokens=Math.max(0,pl.tokens-1)),!ml||this.lastEventRateLimited||aa||this.instance.capture("$$client_ingestion_warning",{$$client_ingestion_warning_message:"posthog-js client rate limited. Config is set to "+this.captureEventsPerSecond+" events per second and "+this.captureEventsBurstLimit+" events burst limit."},{skip_client_rate_limiting:!0}),this.lastEventRateLimited=ml,(Sa=this.instance.persistence)==null||Sa.set_property(de$3,pl),{isRateLimited:ml,remainingTokens:pl.tokens}}isServerRateLimited(aa){var ca=this.serverLimits[aa||"events"]||!1;return ca!==!1&&new Date().getTime()<ca}};var uo=$i("[RemoteConfig]");class ho{constructor(aa){this._instance=aa}get remoteConfig(){var aa;return(aa=v$7._POSTHOG_REMOTE_CONFIG)==null||(aa=aa[this._instance.config.token])==null?void 0:aa.config}ke(aa){var ca,ua;(ca=v$7.__PosthogExtensions__)!=null&&ca.loadExternalDependency?(ua=v$7.__PosthogExtensions__)==null||ua.loadExternalDependency==null||ua.loadExternalDependency(this._instance,"remote-config",(()=>aa(this.remoteConfig))):(uo.error("PostHog Extensions not found. Cannot load remote config."),aa())}Pe(aa){this._instance._send_request({method:"GET",url:this._instance.requestRouter.endpointFor("assets","/array/"+this._instance.config.token+"/config"),callback:ca=>{aa(ca.json)}})}load(){try{if(this.remoteConfig)return uo.info("Using preloaded remote config",this.remoteConfig),void this.yi(this.remoteConfig);if(this._instance.O())return void uo.warn("Remote config is disabled. Falling back to local config.");this.ke((aa=>{if(!aa)return uo.info("No config found after loading remote JS config. Falling back to JSON."),void this.Pe((ca=>{this.yi(ca)}));this.yi(aa)}))}catch(aa){uo.error("Error loading remote config",aa)}}yi(aa){aa?this._instance.config.__preview_remote_config?(this._instance.yi(aa),aa.hasFeatureFlags!==!1&&this._instance.featureFlags.ensureFlagsLoaded()):uo.info("__preview_remote_config is disabled. Logging config instead",aa):uo.error("Failed to fetch remote config from PostHog.")}}var vo=3e3;class co{constructor(aa,ca){this.Te=!0,this.Ie=[],this.Ce=J$5(ca?.flush_interval_ms||vo,250,5e3,Ei.createLogger("flush interval"),vo),this.Re=aa}enqueue(aa){this.Ie.push(aa),this.Fe||this.Me()}unload(){this.Oe();var aa=this.Ie.length>0?this.Ae():{},ca=Object.values(aa);[...ca.filter((ua=>ua.url.indexOf("/e")===0)),...ca.filter((ua=>ua.url.indexOf("/e")!==0))].map((ua=>{this.Re(g$8({},ua,{transport:"sendBeacon"}))}))}enable(){this.Te=!1,this.Me()}Me(){var aa=this;this.Te||(this.Fe=setTimeout((()=>{if(this.Oe(),this.Ie.length>0){var ca=this.Ae(),ua=function(){var hl=ca[Sa],pl=new Date().getTime();hl.data&&I$8(hl.data)&&Ii(hl.data,(ml=>{ml.offset=Math.abs(ml.timestamp-pl),delete ml.timestamp})),aa.Re(hl)};for(var Sa in ca)ua()}}),this.Ce))}Oe(){clearTimeout(this.Fe),this.Fe=void 0}Ae(){var aa={};return Ii(this.Ie,(ca=>{var ua,Sa=ca,hl=(Sa?Sa.batchKey:null)||Sa.url;M$6(aa[hl])&&(aa[hl]=g$8({},Sa,{data:[]})),(ua=aa[hl].data)==null||ua.push(Sa.data)})),this.Ie=[],aa}}var fo=["retriesPerformedSoFar"];class po{constructor(aa){this.De=!1,this.je=3e3,this.Ie=[],this._instance=aa,this.Ie=[],this.Le=!0,!M$6(t$9)&&"onLine"in t$9.navigator&&(this.Le=t$9.navigator.onLine,this.Ne=()=>{this.Le=!0,this.Lt()},this.Ue=()=>{this.Le=!1},Ui(t$9,"online",this.Ne),Ui(t$9,"offline",this.Ue))}get length(){return this.Ie.length}retriableRequest(aa){var{retriesPerformedSoFar:ca}=aa,ua=_$7(aa,fo);L$6(ca)&&ca>0&&(ua.url=ln(ua.url,{retry_count:ca})),this._instance._send_request(g$8({},ua,{callback:Sa=>{Sa.statusCode!==200&&(Sa.statusCode<400||Sa.statusCode>=500)&&(ca??0)<10?this.ze(g$8({retriesPerformedSoFar:ca},ua)):ua.callback==null||ua.callback(Sa)}}))}ze(aa){var ca=aa.retriesPerformedSoFar||0;aa.retriesPerformedSoFar=ca+1;var ua=(function(pl){var ml=3e3*Math.pow(2,pl),gl=ml/2,wc=Math.min(18e5,ml),xu=(Math.random()-.5)*(wc-gl);return Math.ceil(wc+xu)})(ca),Sa=Date.now()+ua;this.Ie.push({retryAt:Sa,requestOptions:aa});var hl="Enqueued failed request for retry in "+ua;navigator.onLine||(hl+=" (Browser is offline)"),Ei.warn(hl),this.De||(this.De=!0,this.He())}He(){if(this.Be&&clearTimeout(this.Be),this.Ie.length===0)return this.De=!1,void(this.Be=void 0);this.Be=setTimeout((()=>{this.Le&&this.Ie.length>0&&this.Lt(),this.He()}),this.je)}Lt(){var aa=Date.now(),ca=[],ua=this.Ie.filter((hl=>hl.retryAt<aa||(ca.push(hl),!1)));if(this.Ie=ca,ua.length>0)for(var{requestOptions:Sa}of ua)this.retriableRequest(Sa)}unload(){for(var{requestOptions:aa}of(this.Be&&(clearTimeout(this.Be),this.Be=void 0),this.De=!1,M$6(t$9)||(this.Ne&&(t$9.removeEventListener("online",this.Ne),this.Ne=void 0),this.Ue&&(t$9.removeEventListener("offline",this.Ue),this.Ue=void 0)),this.Ie))try{this._instance._send_request(g$8({},aa,{transport:"sendBeacon"}))}catch(ca){Ei.error(ca)}this.Ie=[]}}class go{constructor(aa){this.qe=()=>{var ca,ua,Sa,hl;this.We||(this.We={});var pl=this.scrollElement(),ml=this.scrollY(),gl=pl?Math.max(0,pl.scrollHeight-pl.clientHeight):0,wc=ml+(pl?.clientHeight||0),xu=pl?.scrollHeight||0;this.We.lastScrollY=Math.ceil(ml),this.We.maxScrollY=Math.max(ml,(ca=this.We.maxScrollY)!==null&&ca!==void 0?ca:0),this.We.maxScrollHeight=Math.max(gl,(ua=this.We.maxScrollHeight)!==null&&ua!==void 0?ua:0),this.We.lastContentY=wc,this.We.maxContentY=Math.max(wc,(Sa=this.We.maxContentY)!==null&&Sa!==void 0?Sa:0),this.We.maxContentHeight=Math.max(xu,(hl=this.We.maxContentHeight)!==null&&hl!==void 0?hl:0)},this._instance=aa}getContext(){return this.We}resetContext(){var aa=this.We;return setTimeout(this.qe,0),aa}startMeasuringScrollPosition(){Ui(t$9,"scroll",this.qe,{capture:!0}),Ui(t$9,"scrollend",this.qe,{capture:!0}),Ui(t$9,"resize",this.qe)}scrollElement(){if(!this._instance.config.scroll_root_selector)return t$9?.document.documentElement;var aa=I$8(this._instance.config.scroll_root_selector)?this._instance.config.scroll_root_selector:[this._instance.config.scroll_root_selector];for(var ca of aa){var ua=t$9?.document.querySelector(ca);if(ua)return ua}}scrollY(){if(this._instance.config.scroll_root_selector){var aa=this.scrollElement();return aa&&aa.scrollTop||0}return t$9&&(t$9.scrollY||t$9.pageYOffset||t$9.document.documentElement.scrollTop)||0}scrollX(){if(this._instance.config.scroll_root_selector){var aa=this.scrollElement();return aa&&aa.scrollLeft||0}return t$9&&(t$9.scrollX||t$9.pageXOffset||t$9.document.documentElement.scrollLeft)||0}}var _o=la=>vs(la?.config.mask_personal_data_properties,la?.config.custom_personal_data_properties);class mo{constructor(aa,ca,ua,Sa){this.Ge=hl=>{var pl=this.Ve();if(!pl||pl.sessionId!==hl){var ml={sessionId:hl,props:this.Je(this._instance)};this.Ke.register({[he$3]:ml})}},this._instance=aa,this.Ye=ca,this.Ke=ua,this.Je=Sa||_o,this.Ye.onSessionId(this.Ge)}Ve(){return this.Ke.props[he$3]}getSetOnceProps(){var aa,ca=(aa=this.Ve())==null?void 0:aa.props;return ca?"r"in ca?cs(ca):{$referring_domain:ca.referringDomain,$pathname:ca.initialPathName,utm_source:ca.utm_source,utm_campaign:ca.utm_campaign,utm_medium:ca.utm_medium,utm_content:ca.utm_content,utm_term:ca.utm_term}:{}}getSessionProps(){var aa={};return Ii(Ai(this.getSetOnceProps()),((ca,ua)=>{ua==="$current_url"&&(ua="url"),aa["$session_entry_"+E$7(ua)]=ca})),aa}}var yo=$i("[SessionId]");class bo{on(aa,ca){return this.Xe.on(aa,ca)}constructor(aa,ca,ua){var Sa;if(this.Qe=[],this.Ze=void 0,this.Xe=new Zn,this.tr=(xu,ff)=>Math.abs(xu-ff)>this.sessionTimeoutMs,!aa.persistence)throw new Error("SessionIdManager requires a PostHogPersistence instance");if(aa.config.cookieless_mode==="always")throw new Error('SessionIdManager cannot be used with cookieless_mode="always"');this.R=aa.config,this.Ke=aa.persistence,this.ir=void 0,this.er=void 0,this._sessionStartTimestamp=null,this._sessionActivityTimestamp=null,this.rr=ca||wr,this.sr=ua||wr;var hl=this.R.persistence_name||this.R.token,pl=this.R.session_idle_timeout_seconds||1800;if(this._sessionTimeoutMs=1e3*J$5(pl,60,36e3,yo.createLogger("session_idle_timeout_seconds"),1800),aa.register({$configured_session_timeout_ms:this._sessionTimeoutMs}),this.nr(),this.ar="ph_"+hl+"_window_id",this.lr="ph_"+hl+"_primary_window_exists",this.ur()){var ml=Mr.W(this.ar),gl=Mr.W(this.lr);ml&&!gl?this.ir=ml:Mr.V(this.ar),Mr.G(this.lr,!0)}if((Sa=this.R.bootstrap)!=null&&Sa.sessionID)try{var wc=(xu=>{var ff=xu.replace(/-/g,"");if(ff.length!==32)throw new Error("Not a valid UUID");if(ff[12]!=="7")throw new Error("Not a UUIDv7");return parseInt(ff.substring(0,12),16)})(this.R.bootstrap.sessionID);this.hr(this.R.bootstrap.sessionID,new Date().getTime(),wc)}catch(xu){yo.error("Invalid sessionID in bootstrap",xu)}this.dr()}get sessionTimeoutMs(){return this._sessionTimeoutMs}onSessionId(aa){return M$6(this.Qe)&&(this.Qe=[]),this.Qe.push(aa),this.er&&aa(this.er,this.ir),()=>{this.Qe=this.Qe.filter((ca=>ca!==aa))}}ur(){return this.R.persistence!=="memory"&&!this.Ke.Si&&Mr.H()}vr(aa){aa!==this.ir&&(this.ir=aa,this.ur()&&Mr.G(this.ar,aa))}cr(){return this.ir?this.ir:this.ur()?Mr.W(this.ar):null}hr(aa,ca,ua){aa===this.er&&ca===this._sessionActivityTimestamp&&ua===this._sessionStartTimestamp||(this._sessionStartTimestamp=ua,this._sessionActivityTimestamp=ca,this.er=aa,this.Ke.register({[te$4]:[ca,aa,ua]}))}pr(){var aa=this.Ke.props[te$4];return I$8(aa)&&aa.length===2&&aa.push(aa[0]),aa||[0,null,0]}resetSessionId(){this.hr(null,null,null)}destroy(){clearTimeout(this.gr),this.gr=void 0,this.Ze&&t$9&&(t$9.removeEventListener("beforeunload",this.Ze,{capture:!1}),this.Ze=void 0),this.Qe=[]}dr(){this.Ze=()=>{this.ur()&&Mr.V(this.lr)},Ui(t$9,"beforeunload",this.Ze,{capture:!1})}checkAndGetSessionAndWindowId(aa,ca){if(aa===void 0&&(aa=!1),ca===void 0&&(ca=null),this.R.cookieless_mode==="always")throw new Error('checkAndGetSessionAndWindowId should not be called with cookieless_mode="always"');var ua=ca||new Date().getTime(),[Sa,hl,pl]=this.pr(),ml=this.cr(),gl=L$6(pl)&&pl>0&&Math.abs(ua-pl)>864e5,wc=!1,xu=!hl,ff=!xu&&!aa&&this.tr(ua,Sa);xu||ff||gl?(hl=this.rr(),ml=this.sr(),yo.info("new session ID generated",{sessionId:hl,windowId:ml,changeReason:{noSessionId:xu,activityTimeout:ff,sessionPastMaximumLength:gl}}),pl=ua,wc=!0):ml||(ml=this.sr(),wc=!0);var jf=Sa===0||!aa||gl?ua:Sa,Uf=pl===0?new Date().getTime():pl;return this.vr(ml),this.hr(hl,jf,Uf),aa||this.nr(),wc&&this.Qe.forEach((rp=>rp(hl,ml,wc?{noSessionId:xu,activityTimeout:ff,sessionPastMaximumLength:gl}:void 0))),{sessionId:hl,windowId:ml,sessionStartTimestamp:Uf,changeReason:wc?{noSessionId:xu,activityTimeout:ff,sessionPastMaximumLength:gl}:void 0,lastActivityTimestamp:Sa}}nr(){clearTimeout(this.gr),this.gr=setTimeout((()=>{var[aa]=this.pr();if(this.tr(new Date().getTime(),aa)){var ca=this.er;this.resetSessionId(),this.Xe.emit("forcedIdleReset",{idleSessionId:ca})}}),1.1*this.sessionTimeoutMs)}}var wo=["$set_once","$set"],xo=$i("[SiteApps]");class Eo{constructor(aa){this._instance=aa,this._r=[],this.apps={}}get isEnabled(){return!!this._instance.config.opt_in_site_apps}mr(aa,ca){if(ca){var ua=this.globalsForEvent(ca);this._r.push(ua),this._r.length>1e3&&(this._r=this._r.slice(10))}}get siteAppLoaders(){var aa;return(aa=v$7._POSTHOG_REMOTE_CONFIG)==null||(aa=aa[this._instance.config.token])==null?void 0:aa.siteApps}init(){if(this.isEnabled){var aa=this._instance.Hi(this.mr.bind(this));this.yr=()=>{aa(),this._r=[],this.yr=void 0}}}globalsForEvent(aa){var ca,ua,Sa,hl,pl,ml,gl;if(!aa)throw new Error("Event payload is required");var wc={},xu=this._instance.get_property("$groups")||[],ff=this._instance.get_property("$stored_group_properties")||{};for(var[jf,Uf]of Object.entries(ff))wc[jf]={id:xu[jf],type:jf,properties:Uf};var{$set_once:rp,$set:np}=aa;return{event:g$8({},_$7(aa,wo),{properties:g$8({},aa.properties,np?{$set:g$8({},(ca=(ua=aa.properties)==null?void 0:ua.$set)!==null&&ca!==void 0?ca:{},np)}:{},rp?{$set_once:g$8({},(Sa=(hl=aa.properties)==null?void 0:hl.$set_once)!==null&&Sa!==void 0?Sa:{},rp)}:{}),elements_chain:(pl=(ml=aa.properties)==null?void 0:ml.$elements_chain)!==null&&pl!==void 0?pl:"",distinct_id:(gl=aa.properties)==null?void 0:gl.distinct_id}),person:{properties:this._instance.get_property("$stored_person_properties")},groups:wc}}setupSiteApp(aa){var ca=this.apps[aa.id],ua=()=>{var ml;!ca.errored&&this._r.length&&(xo.info("Processing "+this._r.length+" events for site app with id "+aa.id),this._r.forEach((gl=>ca.processEvent==null?void 0:ca.processEvent(gl))),ca.processedBuffer=!0),Object.values(this.apps).every((gl=>gl.processedBuffer||gl.errored))&&((ml=this.yr)==null||ml.call(this))},Sa=!1,hl=ml=>{ca.errored=!ml,ca.loaded=!0,xo.info("Site app with id "+aa.id+" "+(ml?"loaded":"errored")),Sa&&ua()};try{var{processEvent:pl}=aa.init({posthog:this._instance,callback:ml=>{hl(ml)}});pl&&(ca.processEvent=pl),Sa=!0}catch(ml){xo.error("Error while initializing PostHog app with config id "+aa.id,ml),hl(!1)}if(Sa&&ca.loaded)try{ua()}catch(ml){xo.error("Error while processing buffered events PostHog app with config id "+aa.id,ml),ca.errored=!0}}br(){var aa=this.siteAppLoaders||[];for(var ca of aa)this.apps[ca.id]={id:ca.id,loaded:!1,errored:!1,processedBuffer:!1};for(var ua of aa)this.setupSiteApp(ua)}wr(aa){if(Object.keys(this.apps).length!==0){var ca=this.globalsForEvent(aa);for(var ua of Object.values(this.apps))try{ua.processEvent==null||ua.processEvent(ca)}catch(Sa){xo.error("Error while processing event "+aa.event+" for site app "+ua.id,Sa)}}}onRemoteConfig(aa){var ca,ua,Sa,hl=this;if((ca=this.siteAppLoaders)!=null&&ca.length)return this.isEnabled?(this.br(),void this._instance.on("eventCaptured",(wc=>this.wr(wc)))):void xo.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.');if((ua=this.yr)==null||ua.call(this),(Sa=aa.siteApps)!=null&&Sa.length)if(this.isEnabled){var pl=function(wc){var xu;v$7["__$$ph_site_app_"+wc]=hl._instance,(xu=v$7.__PosthogExtensions__)==null||xu.loadSiteApp==null||xu.loadSiteApp(hl._instance,gl,(ff=>{if(ff)return xo.error("Error while initializing PostHog app with config id "+wc,ff)}))};for(var{id:ml,url:gl}of aa.siteApps)pl(ml)}else xo.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.')}}var $o=function(la,aa){if(!la)return!1;var ca=la.userAgent;if(ca&&y$a(ca,aa))return!0;try{var ua=la?.userAgentData;if(ua!=null&&ua.brands&&ua.brands.some((Sa=>y$a(Sa?.brand,aa))))return!0}catch{}return!!la.webdriver},So=(function(la){return la.US="us",la.EU="eu",la.CUSTOM="custom",la})({}),ko="i.posthog.com";class Po{constructor(aa){this.Er={},this.instance=aa}get apiHost(){var aa=this.instance.config.api_host.trim().replace(/\/$/,"");return aa==="https://app.posthog.com"?"https://us.i.posthog.com":aa}get flagsApiHost(){var aa=this.instance.config.flags_api_host;return aa?aa.trim().replace(/\/$/,""):this.apiHost}get uiHost(){var aa,ca=(aa=this.instance.config.ui_host)==null?void 0:aa.replace(/\/$/,"");return ca||(ca=this.apiHost.replace("."+ko,".posthog.com")),ca==="https://app.posthog.com"?"https://us.posthog.com":ca}get region(){return this.Er[this.apiHost]||(/https:\/\/(app|us|us-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?this.Er[this.apiHost]=So.US:/https:\/\/(eu|eu-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?this.Er[this.apiHost]=So.EU:this.Er[this.apiHost]=So.CUSTOM),this.Er[this.apiHost]}endpointFor(aa,ca){if(ca===void 0&&(ca=""),ca&&(ca=ca[0]==="/"?ca:"/"+ca),aa==="ui")return this.uiHost+ca;if(aa==="flags")return this.flagsApiHost+ca;if(this.region===So.CUSTOM)return this.apiHost+ca;var ua=ko+ca;switch(aa){case"assets":return"https://"+this.region+"-assets."+ua;case"api":return"https://"+this.region+"."+ua}}}var To={icontains:(la,aa)=>!!t$9&&aa.href.toLowerCase().indexOf(la.toLowerCase())>-1,not_icontains:(la,aa)=>!!t$9&&aa.href.toLowerCase().indexOf(la.toLowerCase())===-1,regex:(la,aa)=>!!t$9&&vn(aa.href,la),not_regex:(la,aa)=>!!t$9&&!vn(aa.href,la),exact:(la,aa)=>aa.href===la,is_not:(la,aa)=>aa.href!==la};class Io{constructor(aa){var ca=this;this.getWebExperimentsAndEvaluateDisplayLogic=function(ua){ua===void 0&&(ua=!1),ca.getWebExperiments((Sa=>{Io.$r("retrieved web experiments from the server"),ca.Sr=new Map,Sa.forEach((hl=>{if(hl.feature_flag_key){var pl;ca.Sr&&(Io.$r("setting flag key ",hl.feature_flag_key," to web experiment ",hl),(pl=ca.Sr)==null||pl.set(hl.feature_flag_key,hl));var ml=ca._instance.getFeatureFlag(hl.feature_flag_key);O$5(ml)&&hl.variants[ml]&&ca.kr(hl.name,ml,hl.variants[ml].transforms)}else if(hl.variants)for(var gl in hl.variants){var wc=hl.variants[gl];Io.Pr(wc)&&ca.kr(hl.name,gl,wc.transforms)}}))}),ua)},this._instance=aa,this._instance.onFeatureFlags((ua=>{this.onFeatureFlags(ua)}))}onFeatureFlags(aa){if(this._is_bot())Io.$r("Refusing to render web experiment since the viewer is a likely bot");else if(!this._instance.config.disable_web_experiments){if(j$a(this.Sr))return this.Sr=new Map,this.loadIfEnabled(),void this.previewWebExperiment();Io.$r("applying feature flags",aa),aa.forEach((ca=>{var ua;if(this.Sr&&(ua=this.Sr)!=null&&ua.has(ca)){var Sa,hl=this._instance.getFeatureFlag(ca),pl=(Sa=this.Sr)==null?void 0:Sa.get(ca);hl&&pl!=null&&pl.variants[hl]&&this.kr(pl.name,hl,pl.variants[hl].transforms)}}))}}previewWebExperiment(){var aa=Io.getWindowLocation();if(aa!=null&&aa.search){var ca=or(aa?.search,"__experiment_id"),ua=or(aa?.search,"__experiment_variant");ca&&ua&&(Io.$r("previewing web experiments "+ca+" && "+ua),this.getWebExperiments((Sa=>{this.Tr(parseInt(ca),ua,Sa)}),!1,!0))}}loadIfEnabled(){this._instance.config.disable_web_experiments||this.getWebExperimentsAndEvaluateDisplayLogic()}getWebExperiments(aa,ca,ua){if(this._instance.config.disable_web_experiments&&!ua)return aa([]);var Sa=this._instance.get_property("$web_experiments");if(Sa&&!ca)return aa(Sa);this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/web_experiments/?token="+this._instance.config.token),method:"GET",callback:hl=>{if(hl.statusCode!==200||!hl.json)return aa([]);var pl=hl.json.experiments||[];return aa(pl)}})}Tr(aa,ca,ua){var Sa=ua.filter((hl=>hl.id===aa));Sa&&Sa.length>0&&(Io.$r("Previewing web experiment ["+Sa[0].name+"] with variant ["+ca+"]"),this.kr(Sa[0].name,ca,Sa[0].variants[ca].transforms))}static Pr(aa){return!j$a(aa.conditions)&&Io.Ir(aa)&&Io.Cr(aa)}static Ir(aa){var ca;if(j$a(aa.conditions)||j$a((ca=aa.conditions)==null?void 0:ca.url))return!0;var ua,Sa,hl,pl=Io.getWindowLocation();return!!pl&&((ua=aa.conditions)==null||!ua.url||To[(Sa=(hl=aa.conditions)==null?void 0:hl.urlMatchType)!==null&&Sa!==void 0?Sa:"icontains"](aa.conditions.url,pl))}static getWindowLocation(){return t$9?.location}static Cr(aa){var ca;if(j$a(aa.conditions)||j$a((ca=aa.conditions)==null?void 0:ca.utm))return!0;var ua=as();if(ua.utm_source){var Sa,hl,pl,ml,gl,wc,xu,ff,jf=(Sa=aa.conditions)==null||(Sa=Sa.utm)==null||!Sa.utm_campaign||((hl=aa.conditions)==null||(hl=hl.utm)==null?void 0:hl.utm_campaign)==ua.utm_campaign,Uf=(pl=aa.conditions)==null||(pl=pl.utm)==null||!pl.utm_source||((ml=aa.conditions)==null||(ml=ml.utm)==null?void 0:ml.utm_source)==ua.utm_source,rp=(gl=aa.conditions)==null||(gl=gl.utm)==null||!gl.utm_medium||((wc=aa.conditions)==null||(wc=wc.utm)==null?void 0:wc.utm_medium)==ua.utm_medium,np=(xu=aa.conditions)==null||(xu=xu.utm)==null||!xu.utm_term||((ff=aa.conditions)==null||(ff=ff.utm)==null?void 0:ff.utm_term)==ua.utm_term;return jf&&rp&&np&&Uf}return!1}static $r(aa){for(var ca=arguments.length,ua=new Array(ca>1?ca-1:0),Sa=1;Sa<ca;Sa++)ua[Sa-1]=arguments[Sa];Ei.info("[WebExperiments] "+aa,ua)}kr(aa,ca,ua){this._is_bot()?Io.$r("Refusing to render web experiment since the viewer is a likely bot"):ca!=="control"?ua.forEach((Sa=>{if(Sa.selector){var hl;Io.$r("applying transform of variant "+ca+" for experiment "+aa+" ",Sa);var pl=(hl=document)==null?void 0:hl.querySelectorAll(Sa.selector);pl?.forEach((ml=>{var gl=ml;Sa.html&&(gl.innerHTML=Sa.html),Sa.css&&gl.setAttribute("style",Sa.css)}))}})):Io.$r("Control variants leave the page unmodified.")}_is_bot(){return n$9&&this._instance?$o(n$9,this._instance.config.custom_blocked_useragents):void 0}}var Co=$i("[PostHog ExternalIntegrations]"),Ro={intercom:"intercom-integration",crispChat:"crisp-chat-integration"};class Fo{constructor(aa){this._instance=aa}it(aa,ca){var ua;(ua=v$7.__PosthogExtensions__)==null||ua.loadExternalDependency==null||ua.loadExternalDependency(this._instance,aa,(Sa=>{if(Sa)return Co.error("failed to load script",Sa);ca()}))}startIfEnabledOrStop(){var aa=this,ca=function(pl){var ml,gl,wc;!Sa||(ml=v$7.__PosthogExtensions__)!=null&&(ml=ml.integrations)!=null&&ml[pl]||aa.it(Ro[pl],(()=>{var xu;(xu=v$7.__PosthogExtensions__)==null||(xu=xu.integrations)==null||(xu=xu[pl])==null||xu.start(aa._instance)})),!Sa&&(gl=v$7.__PosthogExtensions__)!=null&&(gl=gl.integrations)!=null&&gl[pl]&&((wc=v$7.__PosthogExtensions__)==null||(wc=wc.integrations)==null||(wc=wc[pl])==null||wc.stop())};for(var[ua,Sa]of Object.entries((hl=this._instance.config.integrations)!==null&&hl!==void 0?hl:{})){var hl;ca(ua)}}}var Mo$1="[SessionRecording]",Oo=$i(Mo$1);class Ao{get started(){var aa;return!((aa=this.Rr)==null||!aa.isStarted)}get status(){return this.Rr?this.Rr.status:this.Fr&&!this.Mr?"disabled":"lazy_loading"}constructor(aa){if(this._forceAllowLocalhostNetworkCapture=!1,this.Fr=!1,this.Or=void 0,this._instance=aa,!this._instance.sessionManager)throw Oo.error("started without valid sessionManager"),new Error(Mo$1+" started without valid sessionManager. This is a bug.");if(this._instance.config.cookieless_mode==="always")throw new Error(Mo$1+' cannot be used with cookieless_mode="always"')}get Mr(){var aa,ca=!((aa=this._instance.get_property(Zi))==null||!aa.enabled),ua=!this._instance.config.disable_session_recording,Sa=this._instance.config.disable_session_recording||this._instance.consent.isOptedOut();return t$9&&ca&&ua&&!Sa}startIfEnabledOrStop(aa){var ca;if(!this.Mr||(ca=this.Rr)==null||!ca.isStarted){var ua=!M$6(Object.assign)&&!M$6(Array.from);this.Mr&&ua?(this.Ar(aa),Oo.info("starting")):this.stopRecording()}}Ar(aa){var ca,ua,Sa;this.Mr&&(v$7!=null&&(ca=v$7.__PosthogExtensions__)!=null&&(ca=ca.rrweb)!=null&&ca.record&&(ua=v$7.__PosthogExtensions__)!=null&&ua.initSessionRecording?this.Dr(aa):(Sa=v$7.__PosthogExtensions__)==null||Sa.loadExternalDependency==null||Sa.loadExternalDependency(this._instance,this.jr,(hl=>{if(hl)return Oo.error("could not load recorder",hl);this.Dr(aa)})))}stopRecording(){var aa,ca;(aa=this.Or)==null||aa.call(this),this.Or=void 0,(ca=this.Rr)==null||ca.stop()}Lr(){var aa;(aa=this._instance.persistence)==null||aa.unregister(ie$3)}Nr(aa){if(this._instance.persistence){var ca,ua,Sa=this._instance.persistence,hl=()=>{var pl=aa.sessionRecording===!1?void 0:aa.sessionRecording,ml=pl?.sampleRate,gl=j$a(ml)?null:parseFloat(ml);j$a(gl)&&this.Lr();var wc=pl?.minimumDurationMilliseconds;Sa.register({[Zi]:g$8({enabled:!!pl},pl,{networkPayloadCapture:g$8({capturePerformance:aa.capturePerformance},pl?.networkPayloadCapture),canvasRecording:{enabled:pl?.recordCanvas,fps:pl?.canvasFps,quality:pl?.canvasQuality},sampleRate:gl,minimumDurationMilliseconds:M$6(wc)?null:wc,endpoint:pl?.endpoint,triggerMatchType:pl?.triggerMatchType,masking:pl?.masking,urlTriggers:pl?.urlTriggers})})};hl(),(ca=this.Or)==null||ca.call(this),this.Or=(ua=this._instance.sessionManager)==null?void 0:ua.onSessionId(hl)}}onRemoteConfig(aa){"sessionRecording"in aa?aa.sessionRecording!==!1?(this.Nr(aa),this.Fr=!0,this.startIfEnabledOrStop()):this.Fr=!0:Oo.info("skipping remote config with no sessionRecording",aa)}log(aa,ca){var ua;ca===void 0&&(ca="log"),(ua=this.Rr)!=null&&ua.log?this.Rr.log(aa,ca):Oo.warn("log called before recorder was ready")}get jr(){var aa,ca,ua=(aa=this._instance)==null||(aa=aa.persistence)==null?void 0:aa.get_property(Zi);return(ua==null||(ca=ua.scriptConfig)==null?void 0:ca.script)||"lazy-recorder"}Dr(aa){var ca,ua;if((ca=v$7.__PosthogExtensions__)==null||!ca.initSessionRecording)throw Error("Called on script loaded before session recording is available");this.Rr||(this.Rr=(ua=v$7.__PosthogExtensions__)==null?void 0:ua.initSessionRecording(this._instance),this.Rr._forceAllowLocalhostNetworkCapture=this._forceAllowLocalhostNetworkCapture),this.Rr.start(aa)}onRRwebEmit(aa){var ca;(ca=this.Rr)==null||ca.onRRwebEmit==null||ca.onRRwebEmit(aa)}overrideLinkedFlag(){var aa,ca;this.Rr||(ca=this._instance.persistence)==null||ca.register({$replay_override_linked_flag:!0}),(aa=this.Rr)==null||aa.overrideLinkedFlag()}overrideSampling(){var aa,ca;this.Rr||(ca=this._instance.persistence)==null||ca.register({$replay_override_sampling:!0}),(aa=this.Rr)==null||aa.overrideSampling()}overrideTrigger(aa){var ca,ua;this.Rr||(ua=this._instance.persistence)==null||ua.register({[aa==="url"?"$replay_override_url_trigger":"$replay_override_event_trigger"]:!0}),(ca=this.Rr)==null||ca.overrideTrigger(aa)}get sdkDebugProperties(){var aa;return((aa=this.Rr)==null?void 0:aa.sdkDebugProperties)||{$recording_status:this.status}}tryAddCustomEvent(aa,ca){var ua;return!((ua=this.Rr)==null||!ua.tryAddCustomEvent(aa,ca))}}var Do={},jo=()=>{},Lo="posthog",No=!on$1&&d$6?.indexOf("MSIE")===-1&&d$6?.indexOf("Mozilla")===-1,Uo=la=>{var aa;return g$8({api_host:"https://us.i.posthog.com",flags_api_host:null,ui_host:null,token:"",autocapture:!0,cross_subdomain_cookie:Li(o$d?.location),persistence:"localStorage+cookie",persistence_name:"",cookie_persisted_properties:[],loaded:jo,save_campaign_params:!0,custom_campaign_params:[],custom_blocked_useragents:[],save_referrer:!0,capture_pageleave:"if_capture_pageview",defaults:la??"unset",__preview_deferred_init_extensions:!1,debug:a$i&&O$5(a$i?.search)&&a$i.search.indexOf("__posthog_debug=true")!==-1||!1,cookie_expiration:365,upgrade:!1,disable_session_recording:!1,disable_persistence:!1,disable_web_experiments:!0,disable_surveys:!1,disable_surveys_automatic_display:!1,disable_conversations:!1,disable_product_tours:!0,disable_external_dependency_loading:!1,enable_recording_console_log:void 0,secure_cookie:(t$9==null||(aa=t$9.location)==null?void 0:aa.protocol)==="https:",ip:!1,opt_out_capturing_by_default:!1,opt_out_persistence_by_default:!1,opt_out_useragent_filter:!1,opt_out_capturing_persistence_type:"localStorage",consent_persistence_name:null,opt_out_capturing_cookie_prefix:null,opt_in_site_apps:!1,property_denylist:[],respect_dnt:!1,sanitize_properties:null,request_headers:{},request_batching:!0,properties_string_max_length:65535,mask_all_element_attributes:!1,mask_all_text:!1,mask_personal_data_properties:!1,custom_personal_data_properties:[],advanced_disable_flags:!1,advanced_disable_decide:!1,advanced_disable_feature_flags:!1,advanced_disable_feature_flags_on_first_load:!1,advanced_only_evaluate_survey_feature_flags:!1,advanced_enable_surveys:!1,advanced_disable_toolbar_metrics:!1,feature_flag_request_timeout_ms:3e3,surveys_request_timeout_ms:1e4,on_request_error:ca=>{var ua="Bad HTTP status: "+ca.statusCode+" "+ca.text;Ei.error(ua)},get_device_id:ca=>ca,capture_performance:void 0,name:"posthog",bootstrap:{},disable_compression:!1,session_idle_timeout_seconds:1800,person_profiles:"identified_only",before_send:void 0,request_queue_config:{flush_interval_ms:vo},error_tracking:{},_onCapture:jo,__preview_eager_load_replay:!1},(ca=>({rageclick:!(ca&&ca>="2025-11-30")||{content_ignorelist:!0},capture_pageview:!(ca&&ca>="2025-05-24")||"history_change",session_recording:ca&&ca>="2025-11-30"?{strictMinimumDuration:!0}:{}}))(la))},zo=la=>{var aa={};M$6(la.process_person)||(aa.person_profiles=la.process_person),M$6(la.xhr_headers)||(aa.request_headers=la.xhr_headers),M$6(la.cookie_name)||(aa.persistence_name=la.cookie_name),M$6(la.disable_cookie)||(aa.disable_persistence=la.disable_cookie),M$6(la.store_google)||(aa.save_campaign_params=la.store_google),M$6(la.verbose)||(aa.debug=la.verbose);var ca=Ci({},aa,la);return I$8(la.property_blacklist)&&(M$6(la.property_denylist)?ca.property_denylist=la.property_blacklist:I$8(la.property_denylist)?ca.property_denylist=[...la.property_blacklist,...la.property_denylist]:Ei.error("Invalid value for property_denylist config: "+la.property_denylist)),ca};class Ho{constructor(){this.__forceAllowLocalhost=!1}get Ur(){return this.__forceAllowLocalhost}set Ur(aa){Ei.error("WebPerformanceObserver is deprecated and has no impact on network capture. Use `_forceAllowLocalhostNetworkCapture` on `posthog.sessionRecording`"),this.__forceAllowLocalhost=aa}}class Bo{get decideEndpointWasHit(){var aa,ca;return(aa=(ca=this.featureFlags)==null?void 0:ca.hasLoadedFlags)!==null&&aa!==void 0&&aa}get flagsEndpointWasHit(){var aa,ca;return(aa=(ca=this.featureFlags)==null?void 0:ca.hasLoadedFlags)!==null&&aa!==void 0&&aa}constructor(){this.webPerformance=new Ho,this.zr=!1,this.version=c$e.LIB_VERSION,this.Hr=new Zn,this._calculate_event_properties=this.calculateEventProperties.bind(this),this.config=Uo(),this.SentryIntegration=Jr,this.sentryIntegration=aa=>(function(ca,ua){var Sa=Vr(ca,ua);return{name:Gr,processEvent:hl=>Sa(hl)}})(this,aa),this.__request_queue=[],this.__loaded=!1,this.analyticsDefaultEndpoint="/e/",this.Br=!1,this.qr=null,this.Wr=null,this.Gr=null,this.featureFlags=new Cn(this),this.toolbar=new Zr(this),this.scrollManager=new go(this),this.pageViewManager=new Es(this),this.surveys=new so(this),this.conversations=new oo(this),this.experiments=new Io(this),this.exceptions=new mn(this),this.rateLimiter=new lo$1(this),this.requestRouter=new Po(this),this.consent=new Ar(this),this.externalIntegrations=new Fo(this),this.people={set:(aa,ca,ua)=>{var Sa=O$5(aa)?{[aa]:ca}:aa;this.setPersonProperties(Sa),ua?.({})},set_once:(aa,ca,ua)=>{var Sa=O$5(aa)?{[aa]:ca}:aa;this.setPersonProperties(void 0,Sa),ua?.({})}},this.on("eventCaptured",(aa=>Ei.info('send "'+aa?.event+'"',aa)))}init(aa,ca,ua){if(ua&&ua!==Lo){var Sa,hl=(Sa=Do[ua])!==null&&Sa!==void 0?Sa:new Bo;return hl._init(aa,ca,ua),Do[ua]=hl,Do[Lo][ua]=hl,hl}return this._init(aa,ca,ua)}_init(aa,ca,ua){var Sa;if(ca===void 0&&(ca={}),M$6(aa)||A$7(aa))return Ei.critical("PostHog was initialized without a token. This likely indicates a misconfiguration. Please check the first argument passed to posthog.init()"),this;if(this.__loaded)return console.warn("[PostHog.js]","You have already initialized PostHog! Re-initializing is a no-op"),this;this.__loaded=!0,this.config={},ca.debug=this.Vr(ca.debug),this.Jr=ca,this.Kr=[],ca.person_profiles&&(this.Wr=ca.person_profiles),this.set_config(Ci({},Uo(ca.defaults),zo(ca),{name:ua,token:aa})),this.config.on_xhr_error&&Ei.error("on_xhr_error is deprecated. Use on_request_error instead"),this.compression=ca.disable_compression?void 0:er.GZipJS;var hl=this.Yr();this.persistence=new Fn(this.config,hl),this.sessionPersistence=this.config.persistence==="sessionStorage"||this.config.persistence==="memory"?this.persistence:new Fn(g$8({},this.config,{persistence:"sessionStorage"}),hl);var pl=g$8({},this.persistence.props),ml=g$8({},this.sessionPersistence.props);this.register({$initialization_time:new Date().toISOString()}),this.Xr=new co((eg=>this.Qr(eg)),this.config.request_queue_config),this.Zr=new po(this),this.__request_queue=[];var gl=this.config.cookieless_mode==="always"||this.config.cookieless_mode==="on_reject"&&this.consent.isExplicitlyOptedOut();if(gl||(this.sessionManager=new bo(this),this.sessionPropsManager=new mo(this,this.sessionManager,this.persistence)),this.config.__preview_deferred_init_extensions?(Ei.info("Deferring extension initialization to improve startup performance"),setTimeout((()=>{this.ts(gl)}),0)):(Ei.info("Initializing extensions synchronously"),this.ts(gl)),c$e.DEBUG=c$e.DEBUG||this.config.debug,c$e.DEBUG&&Ei.info("Starting in debug mode",{this:this,config:ca,thisC:g$8({},this.config),p:pl,s:ml}),((Sa=ca.bootstrap)==null?void 0:Sa.distinctID)!==void 0){var wc,xu,ff=this.config.get_device_id(wr()),jf=(wc=ca.bootstrap)!=null&&wc.isIdentifiedID?ff:ca.bootstrap.distinctID;this.persistence.set_property(ue$1,(xu=ca.bootstrap)!=null&&xu.isIdentifiedID?"identified":"anonymous"),this.register({distinct_id:ca.bootstrap.distinctID,$device_id:jf})}if(this.es()){var Uf,rp,np=Object.keys(((Uf=ca.bootstrap)==null?void 0:Uf.featureFlags)||{}).filter((eg=>{var tg;return!((tg=ca.bootstrap)==null||(tg=tg.featureFlags)==null||!tg[eg])})).reduce(((eg,tg)=>{var rg;return eg[tg]=((rg=ca.bootstrap)==null||(rg=rg.featureFlags)==null?void 0:rg[tg])||!1,eg}),{}),qm=Object.keys(((rp=ca.bootstrap)==null?void 0:rp.featureFlagPayloads)||{}).filter((eg=>np[eg])).reduce(((eg,tg)=>{var rg,ig;return(rg=ca.bootstrap)!=null&&(rg=rg.featureFlagPayloads)!=null&&rg[tg]&&(eg[tg]=(ig=ca.bootstrap)==null||(ig=ig.featureFlagPayloads)==null?void 0:ig[tg]),eg}),{});this.featureFlags.receivedFeatureFlags({featureFlags:np,featureFlagPayloads:qm})}if(gl)this.register_once({distinct_id:_e$1,$device_id:null},"");else if(!this.get_distinct_id()){var Vm=this.config.get_device_id(wr());this.register_once({distinct_id:Vm,$device_id:Vm},""),this.persistence.set_property(ue$1,"anonymous")}return Ui(t$9,"onpagehide"in self?"pagehide":"unload",this._handle_unload.bind(this),{passive:!1}),this.toolbar.maybeLoadToolbar(),ca.segment?Wr(this,(()=>this.rs())):this.rs(),C$c(this.config._onCapture)&&this.config._onCapture!==jo&&(Ei.warn("onCapture is deprecated. Please use `before_send` instead"),this.on("eventCaptured",(eg=>this.config._onCapture(eg.event,eg)))),this.config.ip&&Ei.warn('The `ip` config option has NO EFFECT AT ALL and has been deprecated. Use a custom transformation or "Discard IP data" project setting instead. See https://posthog.com/tutorials/web-redact-properties#hiding-customer-ip-address for more information.'),this}ts(aa){var ca=performance.now();this.historyAutocapture=new Br(this),this.historyAutocapture.startIfEnabled();var ua=[];ua.push((()=>{new is(this).startIfEnabledOrStop()})),ua.push((()=>{var Sa;this.siteApps=new Eo(this),(Sa=this.siteApps)==null||Sa.init()})),aa||ua.push((()=>{this.sessionRecording=new Ao(this),this.sessionRecording.startIfEnabledOrStop()})),this.config.disable_scroll_properties||ua.push((()=>{this.scrollManager.startMeasuringScrollPosition()})),ua.push((()=>{this.autocapture=new fr(this),this.autocapture.startIfEnabled()})),ua.push((()=>{this.surveys.loadIfEnabled()})),ua.push((()=>{this.conversations.loadIfEnabled()})),ua.push((()=>{this.productTours=new An(this),this.productTours.loadIfEnabled()})),ua.push((()=>{this.heatmaps=new xs(this),this.heatmaps.startIfEnabled()})),ua.push((()=>{this.webVitalsAutocapture=new ys(this)})),ua.push((()=>{this.exceptionObserver=new zr(this),this.exceptionObserver.startIfEnabledOrStop()})),ua.push((()=>{this.deadClicksAutocapture=new Nr(this,Lr),this.deadClicksAutocapture.startIfEnabled()})),ua.push((()=>{if(this.ss){var Sa=this.ss;this.ss=void 0,this.yi(Sa)}})),this.ns(ua,ca)}ns(aa,ca){for(;aa.length>0;){if(this.config.__preview_deferred_init_extensions&&performance.now()-ca>=30&&aa.length>0)return void setTimeout((()=>{this.ns(aa,ca)}),0);var ua=aa.shift();if(ua)try{ua()}catch(hl){Ei.error("Error initializing extension:",hl)}}var Sa=Math.round(performance.now()-ca);this.register_for_session({$sdk_debug_extensions_init_method:this.config.__preview_deferred_init_extensions?"deferred":"synchronous",$sdk_debug_extensions_init_time_ms:Sa}),this.config.__preview_deferred_init_extensions&&Ei.info("PostHog extensions initialized ("+Sa+"ms)")}yi(aa){var ca,ua,Sa,hl,pl,ml,gl,wc,xu;if(!o$d||!o$d.body)return Ei.info("document not ready yet, trying again in 500 milliseconds..."),void setTimeout((()=>{this.yi(aa)}),500);this.config.__preview_deferred_init_extensions&&(this.ss=aa),this.compression=void 0,aa.supportedCompression&&!this.config.disable_compression&&(this.compression=w$9(aa.supportedCompression,er.GZipJS)?er.GZipJS:w$9(aa.supportedCompression,er.Base64)?er.Base64:void 0),(ca=aa.analytics)!=null&&ca.endpoint&&(this.analyticsDefaultEndpoint=aa.analytics.endpoint),this.set_config({person_profiles:this.Wr?this.Wr:"identified_only"}),(ua=this.siteApps)==null||ua.onRemoteConfig(aa),(Sa=this.sessionRecording)==null||Sa.onRemoteConfig(aa),(hl=this.autocapture)==null||hl.onRemoteConfig(aa),(pl=this.heatmaps)==null||pl.onRemoteConfig(aa),this.surveys.onRemoteConfig(aa),this.conversations.onRemoteConfig(aa),(ml=this.productTours)==null||ml.onRemoteConfig(aa),(gl=this.webVitalsAutocapture)==null||gl.onRemoteConfig(aa),(wc=this.exceptionObserver)==null||wc.onRemoteConfig(aa),this.exceptions.onRemoteConfig(aa),(xu=this.deadClicksAutocapture)==null||xu.onRemoteConfig(aa)}rs(){try{this.config.loaded(this)}catch(aa){Ei.critical("`loaded` function failed",aa)}this.os(),this.config.capture_pageview&&setTimeout((()=>{(this.consent.isOptedIn()||this.config.cookieless_mode==="always")&&this.ls()}),1),new ho(this).load(),this.featureFlags.flags()}os(){var aa;this.is_capturing()&&this.config.request_batching&&((aa=this.Xr)==null||aa.enable())}_dom_loaded(){this.is_capturing()&&Ti(this.__request_queue,(aa=>this.Qr(aa))),this.__request_queue=[],this.os()}_handle_unload(){var aa,ca;this.surveys.handlePageUnload(),this.config.request_batching?(this.us()&&this.capture("$pageleave"),(aa=this.Xr)==null||aa.unload(),(ca=this.Zr)==null||ca.unload()):this.us()&&this.capture("$pageleave",null,{transport:"sendBeacon"})}_send_request(aa){this.__loaded&&(No?this.__request_queue.push(aa):this.rateLimiter.isServerRateLimited(aa.batchKey)||(aa.transport=aa.transport||this.config.api_transport,aa.url=ln(aa.url,{ip:this.config.ip?1:0}),aa.headers=g$8({},this.config.request_headers,aa.headers),aa.compression=aa.compression==="best-available"?this.compression:aa.compression,aa.disableXHRCredentials=this.config.__preview_disable_xhr_credentials,this.config.__preview_disable_beacon&&(aa.disableTransport=["sendBeacon"]),aa.fetchOptions=aa.fetchOptions||this.config.fetch_options,(ca=>{var ua,Sa,hl,pl=g$8({},ca);pl.timeout=pl.timeout||6e4,pl.url=ln(pl.url,{_:new Date().getTime().toString(),ver:c$e.LIB_VERSION,compression:pl.compression});var ml=(ua=pl.transport)!==null&&ua!==void 0?ua:"fetch",gl=dn.filter((xu=>!pl.disableTransport||!xu.transport||!pl.disableTransport.includes(xu.transport))),wc=(Sa=(hl=Ni(gl,(xu=>xu.transport===ml)))==null?void 0:hl.method)!==null&&Sa!==void 0?Sa:gl[0].method;if(!wc)throw new Error("No available transport method");wc(pl)})(g$8({},aa,{callback:ca=>{var ua,Sa;this.rateLimiter.checkForLimiting(ca),ca.statusCode>=400&&((ua=(Sa=this.config).on_request_error)==null||ua.call(Sa,ca)),aa.callback==null||aa.callback(ca)}}))))}Qr(aa){this.Zr?this.Zr.retriableRequest(aa):this._send_request(aa)}_execute_array(aa){var ca,ua=[],Sa=[],hl=[];Ti(aa,(ml=>{ml&&(ca=ml[0],I$8(ca)?hl.push(ml):C$c(ml)?ml.call(this):I$8(ml)&&ca==="alias"?ua.push(ml):I$8(ml)&&ca.indexOf("capture")!==-1&&C$c(this[ca])?hl.push(ml):Sa.push(ml))}));var pl=function(ml,gl){Ti(ml,(function(wc){if(I$8(wc[0])){var xu=gl;Ii(wc,(function(ff){xu=xu[ff[0]].apply(xu,ff.slice(1))}))}else this[wc[0]].apply(this,wc.slice(1))}),gl)};pl(ua,this),pl(Sa,this),pl(hl,this)}es(){var aa,ca;return((aa=this.config.bootstrap)==null?void 0:aa.featureFlags)&&Object.keys((ca=this.config.bootstrap)==null?void 0:ca.featureFlags).length>0||!1}push(aa){this._execute_array([aa])}capture(aa,ca,ua){var Sa;if(this.__loaded&&this.persistence&&this.sessionPersistence&&this.Xr){if(this.is_capturing())if(!M$6(aa)&&O$5(aa)){var hl=!this.config.opt_out_useragent_filter&&this._is_bot();if(!(hl&&!this.config.__preview_capture_bot_pageviews)){var pl=ua!=null&&ua.skip_client_rate_limiting?void 0:this.rateLimiter.clientRateLimitContext();if(pl==null||!pl.isRateLimited){ca!=null&&ca.$current_url&&!O$5(ca?.$current_url)&&(Ei.error("Invalid `$current_url` property provided to `posthog.capture`. Input must be a string. Ignoring provided value."),ca==null||delete ca.$current_url),this.sessionPersistence.update_search_keyword(),this.config.save_campaign_params&&this.sessionPersistence.update_campaign_params(),this.config.save_referrer&&this.sessionPersistence.update_referrer_info(),(this.config.save_campaign_params||this.config.save_referrer)&&this.persistence.set_initial_person_info();var ml=new Date,gl=ua?.timestamp||ml,wc=wr(),xu={uuid:wc,event:aa,properties:this.calculateEventProperties(aa,ca||{},gl,wc)};aa==="$pageview"&&this.config.__preview_capture_bot_pageviews&&hl&&(xu.event="$bot_pageview",xu.properties.$browser_type="bot"),pl&&(xu.properties.$lib_rate_limit_remaining_tokens=pl.remainingTokens),ua?.$set&&(xu.$set=ua?.$set);var ff,jf=aa!=="$groupidentify",Uf=this.hs(ua?.$set_once,jf);if(Uf&&(xu.$set_once=Uf),(xu=Di(xu,ua!=null&&ua._noTruncate?null:this.config.properties_string_max_length)).timestamp=gl,M$6(ua?.timestamp)||(xu.properties.$event_time_override_provided=!0,xu.properties.$event_time_override_system_time=ml),aa===qn.DISMISSED||aa===qn.SENT){var rp=ca?.[Wn.SURVEY_ID],np=ca?.[Wn.SURVEY_ITERATION];ff={id:rp,current_iteration:np},localStorage.getItem(Yn(ff))||localStorage.setItem(Yn(ff),"true"),xu.$set=g$8({},xu.$set,{[Kn({id:rp,current_iteration:np},aa===qn.SENT?"responded":"dismissed")]:!0})}var qm=g$8({},xu.properties.$set,xu.$set);if(F$8(qm)||this.setPersonPropertiesForFlags(qm),!j$a(this.config.before_send)){var Vm=this.ds(xu);if(!Vm)return;xu=Vm}this.Hr.emit("eventCaptured",xu);var eg={method:"POST",url:(Sa=ua?._url)!==null&&Sa!==void 0?Sa:this.requestRouter.endpointFor("api",this.analyticsDefaultEndpoint),data:xu,compression:"best-available",batchKey:ua?._batchKey};return!this.config.request_batching||ua&&(ua==null||!ua._batchKey)||ua!=null&&ua.send_instantly?this.Qr(eg):this.Xr.enqueue(eg),xu}Ei.critical("This capture call is ignored due to client rate limiting.")}}else Ei.error("No event name provided to posthog.capture")}else Ei.uninitializedWarning("posthog.capture")}Hi(aa){return this.on("eventCaptured",(ca=>aa(ca.event,ca)))}calculateEventProperties(aa,ca,ua,Sa,hl){if(ua=ua||new Date,!this.persistence||!this.sessionPersistence)return ca;var pl=hl?void 0:this.persistence.remove_event_timer(aa),ml=g$8({},ca);if(ml.token=this.config.token,ml.$config_defaults=this.config.defaults,(this.config.cookieless_mode=="always"||this.config.cookieless_mode=="on_reject"&&this.consent.isExplicitlyOptedOut())&&(ml.$cookieless_mode=!0),aa==="$snapshot"){var gl=g$8({},this.persistence.properties(),this.sessionPersistence.properties());return ml.distinct_id=gl.distinct_id,(!O$5(ml.distinct_id)&&!L$6(ml.distinct_id)||A$7(ml.distinct_id))&&Ei.error("Invalid distinct_id for replay event. This indicates a bug in your implementation"),ml}var wc,xu=gs(this.config.mask_personal_data_properties,this.config.custom_personal_data_properties);if(this.sessionManager){var{sessionId:ff,windowId:jf}=this.sessionManager.checkAndGetSessionAndWindowId(hl,ua.getTime());ml.$session_id=ff,ml.$window_id=jf}this.sessionPropsManager&&Ci(ml,this.sessionPropsManager.getSessionProps());try{var Uf;this.sessionRecording&&Ci(ml,this.sessionRecording.sdkDebugProperties),ml.$sdk_debug_retry_queue_size=(Uf=this.Zr)==null?void 0:Uf.length}catch(Vm){ml.$sdk_debug_error_capturing_properties=String(Vm)}if(this.requestRouter.region===So.CUSTOM&&(ml.$lib_custom_api_host=this.config.api_host),wc=aa!=="$pageview"||hl?aa!=="$pageleave"||hl?this.pageViewManager.doEvent():this.pageViewManager.doPageLeave(ua):this.pageViewManager.doPageView(ua,Sa),ml=Ci(ml,wc),aa==="$pageview"&&o$d&&(ml.title=o$d.title),!M$6(pl)){var rp=ua.getTime()-pl;ml.$duration=parseFloat((rp/1e3).toFixed(3))}d$6&&this.config.opt_out_useragent_filter&&(ml.$browser_type=this._is_bot()?"bot":"browser"),(ml=Ci({},xu,this.persistence.properties(),this.sessionPersistence.properties(),ml)).$is_identified=this._isIdentified(),I$8(this.config.property_denylist)?Ii(this.config.property_denylist,(function(Vm){delete ml[Vm]})):Ei.error("Invalid value for property_denylist config: "+this.config.property_denylist+" or property_blacklist config: "+this.config.property_blacklist);var np=this.config.sanitize_properties;np&&(Ei.error("sanitize_properties is deprecated. Use before_send instead"),ml=np(ml,aa));var qm=this.vs();return ml.$process_person_profile=qm,qm&&!hl&&this.cs("_calculate_event_properties"),ml}hs(aa,ca){var ua;if(ca===void 0&&(ca=!0),!this.persistence||!this.vs()||this.zr)return aa;var Sa=this.persistence.get_initial_props(),hl=(ua=this.sessionPropsManager)==null?void 0:ua.getSetOnceProps(),pl=Ci({},Sa,hl||{},aa||{}),ml=this.config.sanitize_properties;return ml&&(Ei.error("sanitize_properties is deprecated. Use before_send instead"),pl=ml(pl,"$set_once")),ca&&(this.zr=!0),F$8(pl)?void 0:pl}register(aa,ca){var ua;(ua=this.persistence)==null||ua.register(aa,ca)}register_once(aa,ca,ua){var Sa;(Sa=this.persistence)==null||Sa.register_once(aa,ca,ua)}register_for_session(aa){var ca;(ca=this.sessionPersistence)==null||ca.register(aa)}unregister(aa){var ca;(ca=this.persistence)==null||ca.unregister(aa)}unregister_for_session(aa){var ca;(ca=this.sessionPersistence)==null||ca.unregister(aa)}fs(aa,ca){this.register({[aa]:ca})}getFeatureFlag(aa,ca){return this.featureFlags.getFeatureFlag(aa,ca)}getFeatureFlagPayload(aa){var ca=this.featureFlags.getFeatureFlagPayload(aa);try{return JSON.parse(ca)}catch{return ca}}isFeatureEnabled(aa,ca){return this.featureFlags.isFeatureEnabled(aa,ca)}reloadFeatureFlags(){this.featureFlags.reloadFeatureFlags()}updateFlags(aa,ca,ua){var Sa=ua!=null&&ua.merge?this.featureFlags.getFlagVariants():{},hl=ua!=null&&ua.merge?this.featureFlags.getFlagPayloads():{},pl=g$8({},Sa,aa),ml=g$8({},hl,ca),gl={};for(var[wc,xu]of Object.entries(pl)){var ff=typeof xu=="string";gl[wc]={key:wc,enabled:!!ff||!!xu,variant:ff?xu:void 0,reason:void 0,metadata:M$6(ml?.[wc])?void 0:{id:0,version:void 0,description:void 0,payload:ml[wc]}}}this.featureFlags.receivedFeatureFlags({flags:gl})}updateEarlyAccessFeatureEnrollment(aa,ca,ua){this.featureFlags.updateEarlyAccessFeatureEnrollment(aa,ca,ua)}getEarlyAccessFeatures(aa,ca,ua){return ca===void 0&&(ca=!1),this.featureFlags.getEarlyAccessFeatures(aa,ca,ua)}on(aa,ca){return this.Hr.on(aa,ca)}onFeatureFlags(aa){return this.featureFlags.onFeatureFlags(aa)}onSurveysLoaded(aa){return this.surveys.onSurveysLoaded(aa)}onSessionId(aa){var ca,ua;return(ca=(ua=this.sessionManager)==null?void 0:ua.onSessionId(aa))!==null&&ca!==void 0?ca:()=>{}}getSurveys(aa,ca){ca===void 0&&(ca=!1),this.surveys.getSurveys(aa,ca)}getActiveMatchingSurveys(aa,ca){ca===void 0&&(ca=!1),this.surveys.getActiveMatchingSurveys(aa,ca)}renderSurvey(aa,ca){this.surveys.renderSurvey(aa,ca)}displaySurvey(aa,ca){ca===void 0&&(ca=Qn),this.surveys.displaySurvey(aa,ca)}cancelPendingSurvey(aa){this.surveys.cancelPendingSurvey(aa)}canRenderSurvey(aa){return this.surveys.canRenderSurvey(aa)}canRenderSurveyAsync(aa,ca){return ca===void 0&&(ca=!1),this.surveys.canRenderSurveyAsync(aa,ca)}identify(aa,ca,ua){if(!this.__loaded||!this.persistence)return Ei.uninitializedWarning("posthog.identify");if(L$6(aa)&&(aa=aa.toString(),Ei.warn("The first argument to posthog.identify was a number, but it should be a string. It has been converted to a string.")),aa)if(["distinct_id","distinctid"].includes(aa.toLowerCase()))Ei.critical('The string "'+aa+'" was set in posthog.identify which indicates an error. This ID should be unique to the user and not a hardcoded string.');else if(aa!==_e$1){if(this.cs("posthog.identify")){var Sa=this.get_distinct_id();if(this.register({$user_id:aa}),!this.get_property("$device_id")){var hl=Sa;this.register_once({$had_persisted_distinct_id:!0,$device_id:hl},"")}aa!==Sa&&aa!==this.get_property(Hi)&&(this.unregister(Hi),this.register({distinct_id:aa}));var pl=(this.persistence.get_property(ue$1)||"anonymous")==="anonymous";aa!==Sa&&pl?(this.persistence.set_property(ue$1,"identified"),this.setPersonPropertiesForFlags(g$8({},ua||{},ca||{}),!1),this.capture("$identify",{distinct_id:aa,$anon_distinct_id:Sa},{$set:ca||{},$set_once:ua||{}}),this.Gr=cn$1(aa,ca,ua),this.featureFlags.setAnonymousDistinctId(Sa)):(ca||ua)&&this.setPersonProperties(ca,ua),aa!==Sa&&(this.reloadFeatureFlags(),this.unregister(le$2))}}else Ei.critical('The string "'+_e$1+'" was set in posthog.identify which indicates an error. This ID is only used as a sentinel value.');else Ei.error("Unique user id has not been set in posthog.identify")}setPersonProperties(aa,ca){if((aa||ca)&&this.cs("posthog.setPersonProperties")){var ua=cn$1(this.get_distinct_id(),aa,ca);this.Gr!==ua?(this.setPersonPropertiesForFlags(g$8({},ca||{},aa||{})),this.capture("$set",{$set:aa||{},$set_once:ca||{}}),this.Gr=ua):Ei.info("A duplicate setPersonProperties call was made with the same properties. It has been ignored.")}}group(aa,ca,ua){if(aa&&ca){var Sa=this.getGroups();Sa[aa]!==ca&&this.resetGroupPropertiesForFlags(aa),this.register({$groups:g$8({},Sa,{[aa]:ca})}),ua&&(this.capture("$groupidentify",{$group_type:aa,$group_key:ca,$group_set:ua}),this.setGroupPropertiesForFlags({[aa]:ua})),Sa[aa]===ca||ua||this.reloadFeatureFlags()}else Ei.error("posthog.group requires a group type and group key")}resetGroups(){this.register({$groups:{}}),this.resetGroupPropertiesForFlags(),this.reloadFeatureFlags()}setPersonPropertiesForFlags(aa,ca){ca===void 0&&(ca=!0),this.featureFlags.setPersonPropertiesForFlags(aa,ca)}resetPersonPropertiesForFlags(){this.featureFlags.resetPersonPropertiesForFlags()}setGroupPropertiesForFlags(aa,ca){ca===void 0&&(ca=!0),this.cs("posthog.setGroupPropertiesForFlags")&&this.featureFlags.setGroupPropertiesForFlags(aa,ca)}resetGroupPropertiesForFlags(aa){this.featureFlags.resetGroupPropertiesForFlags(aa)}reset(aa){var ca,ua,Sa,hl;if(Ei.info("reset"),!this.__loaded)return Ei.uninitializedWarning("posthog.reset");var pl=this.get_property("$device_id");if(this.consent.reset(),(ca=this.persistence)==null||ca.clear(),(ua=this.sessionPersistence)==null||ua.clear(),this.surveys.reset(),this.featureFlags.reset(),(Sa=this.persistence)==null||Sa.set_property(ue$1,"anonymous"),(hl=this.sessionManager)==null||hl.resetSessionId(),this.Gr=null,this.config.cookieless_mode==="always")this.register_once({distinct_id:_e$1,$device_id:null},"");else{var ml=this.config.get_device_id(wr());this.register_once({distinct_id:ml,$device_id:aa?ml:pl},"")}this.register({$last_posthog_reset:new Date().toISOString()},1)}get_distinct_id(){return this.get_property("distinct_id")}getGroups(){return this.get_property("$groups")||{}}get_session_id(){var aa,ca;return(aa=(ca=this.sessionManager)==null?void 0:ca.checkAndGetSessionAndWindowId(!0).sessionId)!==null&&aa!==void 0?aa:""}get_session_replay_url(aa){if(!this.sessionManager)return"";var{sessionId:ca,sessionStartTimestamp:ua}=this.sessionManager.checkAndGetSessionAndWindowId(!0),Sa=this.requestRouter.endpointFor("ui","/project/"+this.config.token+"/replay/"+ca);if(aa!=null&&aa.withTimestamp&&ua){var hl,pl=(hl=aa.timestampLookBack)!==null&&hl!==void 0?hl:10;if(!ua)return Sa;Sa+="?t="+Math.max(Math.floor((new Date().getTime()-ua)/1e3)-pl,0)}return Sa}alias(aa,ca){return aa===this.get_property(zi)?(Ei.critical("Attempting to create alias for existing People user - aborting."),-2):this.cs("posthog.alias")?(M$6(ca)&&(ca=this.get_distinct_id()),aa!==ca?(this.fs(Hi,aa),this.capture("$create_alias",{alias:aa,distinct_id:ca})):(Ei.warn("alias matches current distinct_id - skipping api call."),this.identify(aa),-1)):void 0}set_config(aa){var ca=g$8({},this.config);if(R$3(aa)){var ua,Sa,hl,pl,ml,gl,wc;Ci(this.config,zo(aa));var xu=this.Yr();(ua=this.persistence)==null||ua.update_config(this.config,ca,xu),this.sessionPersistence=this.config.persistence==="sessionStorage"||this.config.persistence==="memory"?this.persistence:new Fn(g$8({},this.config,{persistence:"sessionStorage"}),xu);var ff=this.Vr(this.config.debug);N$6(ff)&&(this.config.debug=ff),N$6(this.config.debug)&&(this.config.debug?(c$e.DEBUG=!0,Tr.H()&&Tr.G("ph_debug","true"),Ei.info("set_config",{config:aa,oldConfig:ca,newConfig:g$8({},this.config)})):(c$e.DEBUG=!1,Tr.H()&&Tr.V("ph_debug"))),(Sa=this.exceptionObserver)==null||Sa.onConfigChange(),(hl=this.sessionRecording)==null||hl.startIfEnabledOrStop(),(pl=this.autocapture)==null||pl.startIfEnabled(),(ml=this.heatmaps)==null||ml.startIfEnabled(),(gl=this.exceptionObserver)==null||gl.startIfEnabledOrStop(),this.surveys.loadIfEnabled(),this.ps(),(wc=this.externalIntegrations)==null||wc.startIfEnabledOrStop()}}startSessionRecording(aa){var ca=aa===!0,ua={sampling:ca||!(aa==null||!aa.sampling),linked_flag:ca||!(aa==null||!aa.linked_flag),url_trigger:ca||!(aa==null||!aa.url_trigger),event_trigger:ca||!(aa==null||!aa.event_trigger)};if(Object.values(ua).some(Boolean)){var Sa,hl,pl,ml,gl;(Sa=this.sessionManager)==null||Sa.checkAndGetSessionAndWindowId(),ua.sampling&&((hl=this.sessionRecording)==null||hl.overrideSampling()),ua.linked_flag&&((pl=this.sessionRecording)==null||pl.overrideLinkedFlag()),ua.url_trigger&&((ml=this.sessionRecording)==null||ml.overrideTrigger("url")),ua.event_trigger&&((gl=this.sessionRecording)==null||gl.overrideTrigger("event"))}this.set_config({disable_session_recording:!1})}stopSessionRecording(){this.set_config({disable_session_recording:!0})}sessionRecordingStarted(){var aa;return!((aa=this.sessionRecording)==null||!aa.started)}captureException(aa,ca){var ua=new Error("PostHog syntheticException"),Sa=this.exceptions.buildProperties(aa,{handled:!0,syntheticException:ua});return this.exceptions.sendExceptionEvent(g$8({},Sa,ca))}startExceptionAutocapture(aa){this.set_config({capture_exceptions:aa==null||aa})}stopExceptionAutocapture(){this.set_config({capture_exceptions:!1})}loadToolbar(aa){return this.toolbar.loadToolbar(aa)}get_property(aa){var ca;return(ca=this.persistence)==null?void 0:ca.props[aa]}getSessionProperty(aa){var ca;return(ca=this.sessionPersistence)==null?void 0:ca.props[aa]}toString(){var aa,ca=(aa=this.config.name)!==null&&aa!==void 0?aa:Lo;return ca!==Lo&&(ca=Lo+"."+ca),ca}_isIdentified(){var aa,ca;return((aa=this.persistence)==null?void 0:aa.get_property(ue$1))==="identified"||((ca=this.sessionPersistence)==null?void 0:ca.get_property(ue$1))==="identified"}vs(){var aa,ca;return!(this.config.person_profiles==="never"||this.config.person_profiles==="identified_only"&&!this._isIdentified()&&F$8(this.getGroups())&&((aa=this.persistence)==null||(aa=aa.props)==null||!aa[Hi])&&((ca=this.persistence)==null||(ca=ca.props)==null||!ca[pe$2]))}us(){return this.config.capture_pageleave===!0||this.config.capture_pageleave==="if_capture_pageview"&&(this.config.capture_pageview===!0||this.config.capture_pageview==="history_change")}createPersonProfile(){this.vs()||this.cs("posthog.createPersonProfile")&&this.setPersonProperties({},{})}cs(aa){return this.config.person_profiles==="never"?(Ei.error(aa+' was called, but process_person is set to "never". This call will be ignored.'),!1):(this.fs(pe$2,!0),!0)}Yr(){if(this.config.cookieless_mode==="always")return!0;var aa=this.consent.isOptedOut(),ca=this.config.opt_out_persistence_by_default||this.config.cookieless_mode==="on_reject";return this.config.disable_persistence||aa&&!!ca}ps(){var aa,ca,ua,Sa,hl=this.Yr();return((aa=this.persistence)==null?void 0:aa.Si)!==hl&&((ua=this.persistence)==null||ua.set_disabled(hl)),((ca=this.sessionPersistence)==null?void 0:ca.Si)!==hl&&((Sa=this.sessionPersistence)==null||Sa.set_disabled(hl)),hl}opt_in_capturing(aa){var ca;if(this.config.cookieless_mode!=="always"){var ua,Sa,hl;this.config.cookieless_mode==="on_reject"&&this.consent.isExplicitlyOptedOut()&&(this.reset(!0),(ua=this.sessionManager)==null||ua.destroy(),(Sa=this.pageViewManager)==null||Sa.destroy(),this.sessionManager=new bo(this),this.pageViewManager=new Es(this),this.persistence&&(this.sessionPropsManager=new mo(this,this.sessionManager,this.persistence)),this.sessionRecording=new Ao(this),this.sessionRecording.startIfEnabledOrStop()),this.consent.optInOut(!0),this.ps(),this.os(),(ca=this.sessionRecording)==null||ca.startIfEnabledOrStop(),this.config.cookieless_mode=="on_reject"&&this.surveys.loadIfEnabled(),(M$6(aa?.captureEventName)||aa!=null&&aa.captureEventName)&&this.capture((hl=aa?.captureEventName)!==null&&hl!==void 0?hl:"$opt_in",aa?.captureProperties,{send_instantly:!0}),this.config.capture_pageview&&this.ls()}else Ei.warn('Consent opt in/out is not valid with cookieless_mode="always" and will be ignored')}opt_out_capturing(){var aa,ca,ua;this.config.cookieless_mode!=="always"?(this.config.cookieless_mode==="on_reject"&&this.consent.isOptedIn()&&this.reset(!0),this.consent.optInOut(!1),this.ps(),this.config.cookieless_mode==="on_reject"&&(this.register({distinct_id:_e$1,$device_id:null}),(aa=this.sessionManager)==null||aa.destroy(),(ca=this.pageViewManager)==null||ca.destroy(),this.sessionManager=void 0,this.sessionPropsManager=void 0,(ua=this.sessionRecording)==null||ua.stopRecording(),this.sessionRecording=void 0,this.ls())):Ei.warn('Consent opt in/out is not valid with cookieless_mode="always" and will be ignored')}has_opted_in_capturing(){return this.consent.isOptedIn()}has_opted_out_capturing(){return this.consent.isOptedOut()}get_explicit_consent_status(){var aa=this.consent.consent;return aa===Or.GRANTED?"granted":aa===Or.DENIED?"denied":"pending"}is_capturing(){return this.config.cookieless_mode==="always"||(this.config.cookieless_mode==="on_reject"?this.consent.isExplicitlyOptedOut()||this.consent.isOptedIn():!this.has_opted_out_capturing())}clear_opt_in_out_capturing(){this.consent.reset(),this.ps()}_is_bot(){return n$9?$o(n$9,this.config.custom_blocked_useragents):void 0}ls(){o$d&&(o$d.visibilityState==="visible"?this.Br||(this.Br=!0,this.capture("$pageview",{title:o$d.title},{send_instantly:!0}),this.qr&&(o$d.removeEventListener("visibilitychange",this.qr),this.qr=null)):this.qr||(this.qr=this.ls.bind(this),Ui(o$d,"visibilitychange",this.qr)))}debug(aa){aa===!1?(t$9?.console.log("You've disabled debug mode."),this.set_config({debug:!1})):(t$9?.console.log("You're now in debug mode. All calls to PostHog will be logged in your console.\nYou can disable this with `posthog.debug(false)`."),this.set_config({debug:!0}))}O(){var aa,ca,ua,Sa,hl,pl,ml,gl=this.Jr||{};return"advanced_disable_flags"in gl?!!gl.advanced_disable_flags:this.config.advanced_disable_flags!==!1?!!this.config.advanced_disable_flags:this.config.advanced_disable_decide===!0?(Ei.warn("Config field 'advanced_disable_decide' is deprecated. Please use 'advanced_disable_flags' instead. The old field will be removed in a future major version."),!0):(ua="advanced_disable_decide",Sa=!1,hl=Ei,pl=(ca="advanced_disable_flags")in(aa=gl)&&!M$6(aa[ca]),ml=ua in aa&&!M$6(aa[ua]),pl?aa[ca]:ml?(hl&&hl.warn("Config field '"+ua+"' is deprecated. Please use '"+ca+"' instead. The old field will be removed in a future major version."),aa[ua]):Sa)}ds(aa){if(j$a(this.config.before_send))return aa;var ca=I$8(this.config.before_send)?this.config.before_send:[this.config.before_send],ua=aa;for(var Sa of ca){if(ua=Sa(ua),j$a(ua)){var hl="Event '"+aa.event+"' was rejected in beforeSend function";return z$5(aa.event)?Ei.warn(hl+". This can cause unexpected behavior."):Ei.info(hl),null}ua.properties&&!F$8(ua.properties)||Ei.warn("Event '"+aa.event+"' has no properties after beforeSend function, this is likely an error.")}return ua}getPageViewId(){var aa;return(aa=this.pageViewManager.Kt)==null?void 0:aa.pageViewId}captureTraceFeedback(aa,ca){this.capture("$ai_feedback",{$ai_trace_id:String(aa),$ai_feedback_text:ca})}captureTraceMetric(aa,ca,ua){this.capture("$ai_metric",{$ai_trace_id:String(aa),$ai_metric_name:ca,$ai_metric_value:String(ua)})}Vr(aa){var ca=N$6(aa)&&!aa,ua=Tr.H()&&Tr.q("ph_debug")==="true";return!ca&&(!!ua||aa)}}(function(la,aa){for(var ca=0;ca<aa.length;ca++)la.prototype[aa[ca]]=Oi(la.prototype[aa[ca]])})(Bo,["identify"]);var qo,Go=(qo=Do[Lo]=new Bo,(function(){function la(){la.done||(la.done=!0,No=!1,Ii(Do,(function(aa){aa._dom_loaded()})))}o$d!=null&&o$d.addEventListener?o$d.readyState==="complete"?la():Ui(o$d,"DOMContentLoaded",la,{capture:!1}):t$9&&Ei.error("Browser doesn't support `document.addEventListener` so PostHog couldn't be initialized")})(),qo);const IS_PLAYGROUND$5=!1,metaAxiosInstance$1=axiosInstance("meta"),useAuth=()=>{const la=useNavigate(),aa=useAppStore(R1=>R1.resetStore),ca=useAppStore(R1=>R1.user),ua=useAppStore(R1=>R1.setUser),{initializeApp:Sa,resetInitialization:hl}=useAppInitialization(),[pl,ml]=reactExports.useState(!1),[gl,wc]=reactExports.useState(!1),[xu,ff]=reactExports.useState(null),jf=useAppStore(R1=>R1.clearAuth),Uf=useAppStore(R1=>R1.setAuthState),rp=useAppStore(R1=>R1.setAuthError),np=useAppStore(R1=>R1.setAuthData),qm=R1=>{try{const O1=R1.split(".")[1];return JSON.parse(atob(O1)).email||null}catch(O1){console.warn(`Failed to decode JWT token: ${O1}`)}},Vm=async(R1,O1)=>{try{Uf("loading"),rp(null);const K0=localStorage.getItem("username");if(K0&&K0!==R1){console.log("Switching accounts - clearing previous user data"),localStorage.removeItem("id_token"),localStorage.removeItem("access_token"),localStorage.removeItem("refresh_token"),localStorage.removeItem("user_id"),localStorage.removeItem("session_id"),localStorage.removeItem("username"),localStorage.removeItem("user_profile_id"),localStorage.removeItem("workspace_id"),localStorage.removeItem("agentlang-studio-store"),aa(),jf();const{setLastDataFetch:Y0}=useAppStore.getState();Y0(0)}const{data:J0}=await metaAxiosInstance$1.post("/agentlang_auth/login",{email:R1,password:O1}),Hw=J0;if(Hw&&typeof Hw=="object"&&Hw.id_token){const G0=qm(Hw.id_token)||R1;np({token:Hw.id_token,accessToken:Hw.access_token,refreshToken:Hw.refresh_token,userId:Hw.userId,sessionId:Hw.sessionId,username:G0});const{setLastDataFetch:X0}=useAppStore.getState();X0(0);try{const d_=String(Hw.userId||G0);Go.identify(d_,{email:G0,sessionId:Hw.sessionId,authMethod:"password"})}catch(d_){console.warn("PostHog identify failed:",d_)}}else if(typeof Hw=="string"&&Hw.includes("/")){if(console.log("Processing legacy login format:",Hw),typeof Hw.split!="function")throw console.error("loginResult.split is not a function:",{loginResult:Hw,type:typeof Hw}),new Error("Invalid login result format - split method not available");const[Y0,G0]=Hw.split("/");if(!Y0||!G0)throw console.error("Invalid userId/sessionId format:",{userId:Y0,sessionId:G0,loginResult:Hw}),new Error("Invalid login result format - missing userId or sessionId");np({userId:Y0,sessionId:G0,username:R1});const{setLastDataFetch:X0}=useAppStore.getState();X0(0);try{const d_=String(Y0||R1);Go.identify(d_,{email:R1,sessionId:G0,authMethod:"password"})}catch(d_){console.warn("PostHog identify failed (legacy):",d_)}}else throw console.error("Login failed - invalid response format:",{loginResult:Hw,type:typeof Hw,isObject:typeof Hw=="object",isString:typeof Hw=="string",hasIdToken:Hw?.id_token,includesSlash:typeof Hw=="string"&&Hw.includes("/")}),new Error(`Login failed due to invalid response format. Expected object with id_token or string with '/', got: ${typeof Hw}`);y$b.success("Login successful");const{authData:qw}=useAppStore.getState();if(qw.userId)try{const Y0=await metaAxiosInstance$1.get(`/agentlang_auth/User/${qw.userId}/AgentMeta$UserHasUserProfile/AgentMeta$UserProfile`);if(Y0.data&&Array.isArray(Y0.data)&&Y0.data.length>0){const G0=Y0.data[Y0.data.length-1].UserProfile;if(G0.id){localStorage.setItem("user_profile_id",G0.id),np({userProfileId:G0.id});try{const X0=String(qw.userId||qw.username||"unknown");Go.group("user_profile",G0.id,{email:G0.userEmail||qw.username}),Go.identify(X0,{email:G0.userEmail||qw.username,userProfileId:G0.id})}catch(X0){console.warn("PostHog person/group update failed:",X0)}}}}catch(Y0){console.warn("Failed to fetch user profile after login:",Y0)}Sa(),la("/home")}catch(K0){console.error("Login error:",K0),y$b.error(K0?.response?.data?.reason||"Login failed"),y$b.error(K0?.response?.data?.message||K0?.message||"Login failed")}},eg=async()=>{if(!pl){ml(!0);try{typeof window<"u"&&window.dispatchEvent(new CustomEvent("userLoggingOut")),IS_PLAYGROUND$5||await metaAxiosInstance$1.post("/agentlang_auth/logout")}catch(R1){console.warn("Logout API call failed, but clearing local data:",R1)}finally{try{Go.reset()}catch(J0){console.warn("PostHog reset failed:",J0)}jf(),localStorage.removeItem("workspace_id"),localStorage.removeItem("user_profile_id"),localStorage.removeItem("id_token"),localStorage.removeItem("access_token"),localStorage.removeItem("refresh_token"),localStorage.removeItem("user_id"),localStorage.removeItem("session_id"),localStorage.removeItem("username"),aa(),hl(),localStorage.removeItem("agentlang-studio-store"),localStorage.removeItem("chatbotMessages");const{setAuthData:R1,setWorkspace:O1,setUser:K0}=useAppStore.getState();R1({token:"",userId:"",sessionId:"",username:"",userProfileId:"",accessToken:"",refreshToken:""}),O1(""),K0({Email:"",CurrentWorkspace:{Id:""},Anthropic:{Key:""},OpenAI:{Key:"",FinetunedModel:""},GitHub:{Username:"",Org:"",Token:""}}),ml(!1),la("/")}}},tg=async(R1,O1)=>{try{const{authData:K0}=useAppStore.getState();if(!K0.token){y$b.error("Authentication token not found. Please login again.");return}await metaAxiosInstance$1.post("/agentlang_auth/changePassword",{newPassword:O1,password:R1}),y$b.success("Password changed successfully")}catch(K0){y$b.error(K0?.response?.data?.reason||"Failed to change password")}},rg=async R1=>{try{const{authData:O1}=useAppStore.getState(),{username:K0,userId:J0,userProfileId:Hw}=O1;if(!J0||!Hw){y$b.error("User ID not found. Please re-login.");return}await metaAxiosInstance$1.put(`/agentlang_auth/User/${J0}/AgentMeta$UserHasUserProfile/AgentMeta$UserProfile/${Hw}`,{userEmail:K0,userKeys:{OpenAI:R1.OpenAI,Anthropic:R1.Anthropic,GitHub:R1.GitHub}}),ua(R1),y$b.success("Profile updated successfully")}catch(O1){y$b.error(O1?.response?.data?.reason||"Failed to update profile")}},ig=reactExports.useCallback(async(R1=!1)=>{const{authData:O1}=useAppStore.getState();let{userId:K0,userProfileId:J0,username:Hw}=O1;const{token:qw}=O1;if(J0||(J0=localStorage.getItem("user_profile_id")||""),K0||(K0=localStorage.getItem("user_id")||""),Hw||(Hw=localStorage.getItem("username")||""),!!!(K0&&Hw&&qw)){console.log("Auth not ready for profile fetch:",{userId:K0,username:Hw,hasToken:!!qw});return}if(!(!R1&&ca.Email&&!gl))try{if(wc(!0),ff(null),!J0){const X0=await metaAxiosInstance$1.get(`/agentlang_auth/User/${K0}/AgentMeta$UserHasUserProfile/AgentMeta$UserProfile`);if(X0.data&&Array.isArray(X0.data)&&X0.data.length>0){const d_=X0.data[X0.data.length-1].UserProfile;if(d_.id){localStorage.setItem("user_profile_id",d_.id);const zN=useAppStore.getState().authData;np({...zN,userProfileId:d_.id}),console.log("Set userProfileId in auth store:",d_.id)}let f_;try{f_=typeof d_.userKeys=="string"?JSON.parse(d_.userKeys):d_.userKeys}catch{f_={OpenAI:{Key:"",FinetunedModel:""},Anthropic:{Key:""},GitHub:{Username:"",Org:"",Token:""}}}ua({Email:d_.userEmail||Hw,CurrentWorkspace:{Id:""},...f_});return}console.warn("No user profiles found. User needs to complete signup process to create profile."),ff("No user profile found. Please contact support if this persists.");return}const G0=await metaAxiosInstance$1.get(`/agentlang_auth/User/${K0}/AgentMeta$UserHasUserProfile/AgentMeta$UserProfile/${J0}`);if(!G0.data||Array.isArray(G0.data)&&G0.data.length===0){const X0=await metaAxiosInstance$1.get(`/agentlang_auth/User/${K0}/AgentMeta$UserHasUserProfile/AgentMeta$UserProfile`);if(X0.data&&Array.isArray(X0.data)&&X0.data.length>0){const d_=X0.data[X0.data.length-1].UserProfile;if(d_.id){localStorage.setItem("user_profile_id",d_.id);const zN=useAppStore.getState().authData;np({...zN,userProfileId:d_.id}),console.log("Set userProfileId in auth store (fallback):",d_.id);try{const BN=String(zN.userId||zN.username||"unknown");Go.group("user_profile",d_.id,{email:d_.userEmail||zN.username}),Go.identify(BN,{email:d_.userEmail||zN.username,userProfileId:d_.id})}catch(BN){console.warn("PostHog person/group update failed (fallback):",BN)}}let f_;try{f_=typeof d_.userKeys=="string"?JSON.parse(d_.userKeys):d_.userKeys}catch{f_={OpenAI:{Key:"",FinetunedModel:""},Anthropic:{Key:""},GitHub:{Username:"",Org:"",Token:""}}}ua({Email:d_.userEmail||Hw,CurrentWorkspace:{Id:""},...f_});return}console.warn("No profiles found for user. User needs to complete signup process."),ff("No user profile found. Please contact support if this persists.");return}if(G0.data&&Array.isArray(G0.data)&&G0.data.length>0){const X0=G0.data[0].UserProfile;let d_;try{d_=typeof X0.userKeys=="string"?JSON.parse(X0.userKeys):X0.userKeys}catch(zN){console.warn("Failed to parse userKeys JSON:",zN),d_={OpenAI:{Key:"",FinetunedModel:""},Anthropic:{Key:""},GitHub:{Username:"",Org:"",Token:""}}}const f_={Email:X0.userEmail||Hw||"",CurrentWorkspace:ca.CurrentWorkspace||{Id:""},Anthropic:d_.Anthropic||{Key:""},OpenAI:d_.OpenAI||{Key:"",FinetunedModel:""},GitHub:d_.GitHub||{Username:"",Org:"",Token:""}};ua(f_)}else throw new Error("Unexpected response format")}catch(G0){console.error("useAuth: Failed to fetch user profile:",G0),ff(G0?.response?.data?.reason||G0?.message||"Failed to fetch user profile")}finally{wc(!1)}},[ca.CurrentWorkspace,ca.Email,gl,ua,np]),vv=useAppStore(R1=>R1.authReady);return reactExports.useEffect(()=>{vv&&ig()},[vv,ig]),{login:Vm,logoutHandler:eg,changePassword:tg,setUserProfile:rg,isLoggingOut:pl,fetchUserProfile:ig,profileLoading:gl,profileError:xu,userProfile:ca}},IS_PLAYGROUND$4=!1,metaAxiosInstance=axiosInstance("meta"),useSignUp=()=>{const la=useNavigate(),[aa,ca]=reactExports.useState(!1),ua=useAppStore(ml=>ml.setAuthData),Sa=useAppStore(ml=>ml.setUser),{initializeApp:hl}=useAppInitialization();return{signUp:reactExports.useCallback(async ml=>{if(aa)return{success:!1,error:"Sign up already in progress"};ca(!0);try{console.log("Registering new user:",ml.email);const gl=await metaAxiosInstance.post("/agentlang_auth/register",{email:ml.email,password:ml.password,firstName:ml.firstName,lastName:ml.lastName});if(!gl.data)throw new Error("Registration failed - no response received");const{userId:wc,email:xu}=gl.data;if(!wc)throw new Error("Registration failed - no userId received");console.log("Creating user profile and workspace...");const ff=await metaAxiosInstance.post("/AgentMeta/PostSignUp",{userId:wc,userEmail:xu||ml.email,userKeys:{OpenAI:{Key:"",FinetunedModel:""},Anthropic:{Key:""},GitHub:{Username:"",Org:"",Token:""}}});if(!ff.data||!Array.isArray(ff.data)||ff.data.length===0)throw new Error("Failed to create user profile and workspace");const jf=ff.data[0];let Uf=null,rp=null;if(jf?.User?.["AgentMeta/UserHasUserProfile"]?.[0]?.UserProfile){const Vm=jf.User["AgentMeta/UserHasUserProfile"][0].UserProfile;Uf=Vm.id,Vm["AgentMeta/UserWorkspace"]?.[0]?.Workspace&&(rp=Vm["AgentMeta/UserWorkspace"][0].Workspace.id)}if(!Uf)throw new Error("Failed to create user profile");console.log("User profile and workspace created successfully:",{userProfileId:Uf,workspaceId:rp}),console.log("Performing automatic login...");const qm=(await metaAxiosInstance.post("/agentlang_auth/login",{email:ml.email,password:ml.password})).data;return qm&&typeof qm=="object"&&qm.id_token?(ua({token:qm.id_token,accessToken:qm.access_token,refreshToken:qm.refresh_token,userId:qm.userId||wc,sessionId:qm.sessionId,username:ml.email,userProfileId:Uf}),localStorage.setItem("user_profile_id",Uf),rp&&localStorage.setItem("workspace_id",rp),Sa({Email:ml.email,user_profile_id:Uf,CurrentWorkspace:{Id:rp||""},Anthropic:{Key:""},OpenAI:{Key:"",FinetunedModel:""},GitHub:{Username:"",Org:"",Token:""}}),y$b.success("Account created successfully! Welcome!"),IS_PLAYGROUND$4||await hl(),la("/home"),{success:!0,message:"Account created and logged in successfully"}):(y$b.success("Account created successfully! Please login with your credentials."),la("/"),{success:!0,message:"Account created successfully. Please login."})}catch(gl){console.error("Sign up failed:",gl);const wc=gl?.response?.data?.reason||gl?.response?.data?.message||gl?.message||"Sign up failed. Please try again.";return y$b.error(wc),{success:!1,error:wc}}finally{ca(!1)}},[la,ua,Sa,hl,aa]),isSigningUp:aa}},getEntities=la=>{if(!la)return[];try{return fetchModule$2(la).getEntityNames()}catch(aa){return console.error("Error fetching module:",aa),[]}},getRecords=la=>{if(!la)return[];try{return fetchModule$2(la).getRecordNames()}catch(aa){return console.error("Error fetching records:",aa),[]}},getEvents=la=>{if(!la)return[];try{const aa=fetchModule$2(la);return aa.getEventNames().filter(ua=>!aa.isPrePostEvent(ua))}catch(aa){return console.error("Error fetching events:",aa),[]}},getAgents=la=>{if(!la)return[];try{return fetchModule$2(la).getAgentNames()}catch(aa){return console.error("Error fetching agents:",aa),[]}},getDecisions=la=>{if(!la)return[];try{return fetchModule$2(la).getAllDecisions().map(ua=>ua.name)}catch(aa){return console.error("Error fetching decisions:",aa),[]}},getRelationships=la=>{if(!la)return[];try{return fetchModule$2(la).getRelationshipNames()}catch(aa){return console.error("Error fetching relationships:",aa),[]}},isAgent=(la,aa)=>!!fetchModule$2(la).getAgent(aa),isEvent=(la,aa)=>fetchModule$2(la).getEventNames().includes(aa),isRecord=(la,aa)=>fetchModule$2(la).getRecordNames().includes(aa),isEntity=(la,aa)=>fetchModule$2(la).getEntityNames().includes(aa),isRelationship=(la,aa)=>fetchModule$2(la).getRelationshipNames().includes(aa),getAgent=(la,aa)=>fetchModule$2(la).getAgent(aa),useEntity=()=>{const{zoomHandler:la}=useZoomHandler(),aa=useMatches(),{id:ca}=aa[aa.length-1]||{},{teamName:ua,moduleName:Sa}=useParams(),hl=useAppStore(ig=>ig.user),{incrementModuleDbChangeCount:pl}=useAppStore(),ml=hl.GitHub.Token,gl=hl.GitHub.Username,wc=Un$1(),{saveUISpec:xu}=useSaveUISpec(),ff=async ig=>{if(!ua)throw new Error("teamName is undefined");if(!Sa)throw new Error("moduleName is undefined");addEntity(ig,Sa);const vv=fetchModule$2(Sa).toString();if(saveModuleToGit(ua,Sa,vv,`Add entity ${ig}`,gl,ml),pl(),wc&&xu)try{const R1=`${Sa}/${ig}`,O1=repopulateUISchemaForNewEntity(wc,R1);xu(O1,`Update UI schema for new entity ${ig}`)}catch(R1){console.error("[useEntity] Failed to repopulate UI schema for new entity:",R1)}setTimeout(()=>{la(`${Sa}/${ig}`)},100)},jf=async ig=>{if(!ua)throw new Error("teamName is undefined");if(!Sa)throw new Error("moduleName is undefined");addRecord$1(ig,Sa);const vv=fetchModule$2(Sa).toString();saveModuleToGit(ua,Sa,vv,`Add record ${ig}`,gl,ml),pl(),setTimeout(()=>{la(`${Sa}/${ig}`)},100)},Uf=async ig=>{if(!ua)throw new Error("teamName is undefined");if(!Sa)throw new Error("moduleName is undefined");addEvent(ig,Sa),addWorkflow(ig,Sa);const vv=fetchModule$2(Sa).toString();saveModuleToGit(ua,Sa,vv,`Add event ${ig}`,gl,ml),pl(),setTimeout(()=>{la(ig)},200)},rp=(ig,vv)=>{let R1;isFqName$1(vv)?R1=nameToPath$1(vv).getEntryName():R1=vv;const O1=R1.replace(/--workflow$/,"");if(isEvent(Sa||"",O1))removeEvent(R1,Sa||"");else{if(!isEvent(Sa||"",O1)&&!isRelationship(Sa||"",O1)){const K0=isFqName$1(vv)?vv:`${Sa}/${O1}`;getRelationships(Sa||"").forEach(Hw=>{try{const qw=getRelationship$1(Hw,Sa||"");if(qw){const Y0=qw.getParentFqName(),G0=qw.getChildFqName();(Y0===K0||G0===K0)&&ig.removeEntry(Hw)}}catch(qw){console.warn(`Failed to check relationship ${Hw} for entity ${K0}:`,qw)}})}ig.removeEntry(R1)}};return{addEntity:ff,addRecord:jf,addEvent:Uf,deleteHandler:async ig=>{if(!ua)throw new Error("teamName is undefined");if(!Sa)throw new Error("moduleName is undefined");const vv=fetchModule$2(Sa||"");ig.forEach(K0=>{rp(vv,K0)});const R1=vv.toString(),O1=`Delete entries ${ig.join(", ")}`;if(saveModuleToGit(ua,Sa,R1,O1,gl,ml),pl(),setTimeout(()=>{const K0=getEntities(Sa),J0=getRecords(Sa),Hw=getEvents(Sa),qw=getAgents(Sa);if(ca==="data-model"||ca==="marketplace-data-model"){if(K0.length>0){la(`${Sa}/${K0[0]}`);return}if(J0.length>0){la(`${Sa}/${J0[0]}`);return}}if(ca==="agents"&&qw.length>0){la(qw[0]);return}if(ca==="workflow"&&Hw.length>0){la(Hw[0]);return}},200),wc&&xu&&Sa)try{let K0=wc;const J0=[],Hw=[];if(ig.forEach(qw=>{let Y0;isFqName$1(qw)?Y0=nameToPath$1(qw).getEntryName():Y0=qw;const G0=Y0.replace(/--workflow$/,"");if(isRelationship(Sa,G0))J0.push(G0);else if(!isEvent(Sa,G0)){const X0=isFqName$1(qw)?qw:`${Sa}/${Y0}`;Hw.push(X0)}}),J0.length>0&&(K0=repopulateUISchemaAfterRelationshipDeletion(K0,J0[0],Sa)),Hw.length>0&&Hw.forEach(qw=>{K0=repopulateUISchemaAfterEntityDeletion(K0,qw)}),J0.length>0||Hw.length>0){const qw=[...J0.length>0?[`relationships: ${J0.join(", ")}`]:[],...Hw.length>0?[`entities: ${Hw.join(", ")}`]:[]];xu(K0,`Update UI schema after deleting ${qw.join(" and ")}`)}}catch(K0){console.error("[useEntity] Failed to repopulate UI schema after entry deletion:",K0)}},addAttribute:async(ig,vv,R1,O1,K0="type",J0=[],Hw="",qw)=>{if(!Sa)throw new Error("moduleName is undefined");if(!ua)throw new Error("teamName is undefined");const Y0=fetchModule$2(Sa),G0=Y0.getEntry(ig),X0=K0==="Entity"||K0==="Record",d_=K0==="@oneof",f_=K0==="@enum";let zN;if(f_&&J0.length>0)zN=enumAttributeSpec(new Set(J0)),Hw&&(zN=setDefaultAttributeValue(zN,Hw));else if(d_){if(!qw)throw new Error("Compound type info is required for Entity or Record types");const BN=`${qw.module}/${qw.entity}`;zN=oneOfAttributeSpec(BN)}else if(X0){if(!qw)throw new Error("Compound type info is required for Entity or Record types");zN={type:`${qw.module}/${qw.entity}`,properties:new Map},O1.forEach(BN=>{zN.properties?.set(BN,!0)})}else zN={type:R1,properties:new Map},O1.forEach(BN=>{zN.properties?.set(BN,!0)}),Hw&&(zN=setDefaultAttributeValue(zN,Hw));if(G0.addAttribute(vv,zN),saveModuleToGit(ua,Sa,Y0.toString(),`Add attribute ${vv} to ${ig}`,gl,ml),pl(),wc&&xu)try{const BN=`${Sa}/${ig}`,iF=repopulateUISchemaForNewAttribute(wc,BN,vv);xu(iF,`Update UI schema for new attribute ${vv} in ${ig}`)}catch(BN){console.error(" Failed to repopulate UI schema for new attribute:",BN)}},deleteAttributes:async(ig,vv)=>{if(!Sa)throw new Error("moduleName is undefined");if(!ua)throw new Error("teamName is undefined");const R1=isFqName$1(ig)?nameToPath$1(ig).getEntryName():ig,O1=fetchModule$2(Sa),K0=O1.getEntry(R1);if(vv.forEach(J0=>{K0.removeAttribute(J0)}),pl(),saveModuleToGit(ua,Sa,O1.toString(),`Delete attributes ${vv.join(", ")} from ${ig}`,gl,ml),wc&&xu)try{const J0=isFqName$1(ig)?ig:`${Sa}/${R1}`,Hw=repopulateUISchemaAfterAttributeDeletion(wc,J0,vv);xu(Hw,`Update UI schema after deleting attributes ${vv.join(", ")} from ${ig}`)}catch(J0){console.error("[useEntity] Failed to repopulate UI schema after attribute deletion:",J0)}},reorderAttributes:async(ig,vv)=>{if(!Sa)throw new Error("moduleName is undefined");if(!ua)throw new Error("teamName is undefined");const R1=isFqName$1(ig)?nameToPath$1(ig).getEntryName():ig,O1=fetchModule$2(Sa);O1.getEntry(R1).reorderAttributes(vv),pl(),await saveModuleToGit(ua,Sa,O1.toString(),`Reorder attributes in ${ig}`,gl,ml)},setEventPublic:async(ig,vv)=>{if(!ua)throw new Error("teamName is undefined");if(!Sa)throw new Error("moduleName is undefined");const R1=isFqName$1(ig)?nameToPath$1(ig).getEntryName():ig,O1=fetchModule$2(Sa);getEvent$1(R1,Sa).setPublic(vv);const J0=O1.toString();pl(),await saveModuleToGit(ua,Sa,J0,`Set Public status for Event ${ig}`,gl,ml)},getEventPublic:ig=>{if(!Sa)throw new Error("moduleName is undefined");const vv=isFqName$1(ig)?nameToPath$1(ig).getEntryName():ig;return getEvent$1(vv,Sa).isPublic()}}},useEntityDetailsChange=la=>{const aa=Un$1();return{onEntityDetailsChange:(ua,Sa)=>{if(la&&aa){const hl={...aa,[ua]:{...aa?.[ua]||{},...Sa}};la(hl,`Update ${ua} entity details`)}}}},useModule=()=>{const{incrementModuleDbChangeCount:la}=useAppStore(),aa=useNavigate(),{pathname:ca}=useLocation(),ua=ca.split("/"),Sa=getUserModuleNames(),{teamName:hl}=useParams(),pl=useAppStore(Uf=>Uf.user),ml=pl.GitHub.Token,gl=pl.GitHub.Username,wc=Uf=>{aa([...ua.slice(0,-1),Uf].join("/"))};return{navigateModule:wc,addModuleHandler:Uf=>{addModule$1(Uf),saveModuleToGit(hl||"local-user",Uf,fetchModule$2(Uf).toString(),`Add module ${Uf} to ${hl||"local-user"}`,gl,ml),la(),wc(Uf)},deleteModuleHandler:Uf=>{if(Sa.length===1){y$b.error("Cannot delete the last module");return}removeModule(Uf),saveModuleToGit(hl||"local-user",Uf,fetchModule$2(Uf).toString(),`Delete module ${Uf} from ${hl||"local-user"}`,gl,ml);const rp=Sa.filter(np=>Uf!==np);wc(rp.length>0?rp[rp.length-1]:""),la()},getModuleCode:Uf=>{try{return isModule$1(Uf)?fetchModule$2(Uf).toString():""}catch(rp){return console.error(rp),""}}}},useOutsideClickHandler=la=>{const aa=reactExports.useRef(null);return reactExports.useEffect(()=>{const ca=ua=>{const Sa=ua.target,hl=Sa.closest('[role="option"]')||Sa.closest(".dropdown-options")||Sa.closest("[data-headlessui-state]")||Sa.closest("[data-radix-dropdown-menu-content]")||Sa.closest("[data-radix-dropdown-menu-sub-content]")||Sa.closest("[data-query-attribute-menu]")||Sa.closest("[data-radix-portal]")||Sa.closest("[data-radix-popper-content-wrapper]"),pl=Sa.closest(".chatbot-fab-button");aa.current&&!aa.current.contains(Sa)&&!hl&&!pl&&la()};return document.addEventListener("click",ca,!0),()=>{document.removeEventListener("click",ca,!0)}},[la]),aa},useRelationship$1=()=>{const{incrementModuleDbChangeCount:la}=useAppStore(),{teamName:aa,moduleName:ca}=useParams(),ua=useAppStore(Uf=>Uf.user),Sa=ua.GitHub.Token,hl=ua.GitHub.Username,pl=Un$1(),{saveUISpec:ml}=useSaveUISpec();return{addRelationship:async(Uf,rp,np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=new Path$1(rp.module,rp.entity),eg=new Path$1(np.module,np.entity),tg={path:Vm,alias:rp.entity,origName:Vm.asFqName(),origAlias:rp.entity},rg={path:eg,alias:np.entity,origName:eg.asFqName(),origAlias:np.entity};qm==="contains"&&addContainsRelationship(Uf,ca,[tg,rg]),qm==="between"&&addBetweenRelationship(Uf,ca,[tg,rg]);const vv=fetchModule$2(ca).toString();if(saveModuleToGit(aa,ca,vv,`Add ${qm} relationship ${Uf} between ${rp.entity} and ${np.entity}`,hl,Sa),la(),pl&&ml&&ca)try{const R1=repopulateUISchemaForNewRelationship(pl,ca);ml(R1,`Update UI schema for new relationship ${Uf}`)}catch(R1){console.error("[useRelationship] Failed to repopulate UI schema for new relationship:",R1)}},setOneToOne:Uf=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");getRelationship$1(Uf,ca).setOneToOne(!0);const np=fetchModule$2(ca).toString();if(console.log("moduleData",np),la(),saveModuleToGit(aa,ca,np,`Set ${Uf} to One-to-One relationship`,hl,Sa),pl&&ml&&ca)try{const qm=repopulateUISchemaForNewRelationship(pl,ca);ml(qm,`Update UI schema for relationship ${Uf} change`)}catch(qm){console.error("[useRelationship] Failed to repopulate UI schema for relationship change:",qm)}},setOneToMany:Uf=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");getRelationship$1(Uf,ca).setOneToMany(!0);const np=fetchModule$2(ca).toString();if(la(),saveModuleToGit(aa,ca,np,`Set ${Uf} to One-to-Many relationship`,hl,Sa),pl&&ml&&ca)try{const qm=repopulateUISchemaForNewRelationship(pl,ca);ml(qm,`Update UI schema for relationship ${Uf} change`)}catch(qm){console.error("[useRelationship] Failed to repopulate UI schema for relationship change:",qm)}},setManyToMany:Uf=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");getRelationship$1(Uf,ca).setManyToMany(!0);const np=fetchModule$2(ca).toString();if(la(),saveModuleToGit(aa,ca,np,`Set ${Uf} to Many-to-Many relationship`,hl,Sa),pl&&ml&&ca)try{const qm=repopulateUISchemaForNewRelationship(pl,ca);ml(qm,`Update UI schema for relationship ${Uf} change`)}catch(qm){console.error("[useRelationship] Failed to repopulate UI schema for relationship change:",qm)}},getRelationshipType:Uf=>{if(!ca)return null;try{const rp=getRelationship$1(Uf,ca);return rp.isOneToOne()?"one-to-one":rp.isOneToMany()?"one-to-many":rp.isManyToMany()?"many-to-many":"contains"}catch(rp){return console.error("Error getting relationship type:",rp),null}}}},useRouteDataFetching=({routePattern:la,fetchFunction:aa,requiresAuth:ca=!0,dependencies:ua=[]})=>{const Sa=useLocation(),hl=reactExports.useRef(new Set),pl=reactExports.useRef(null),ml=useAppStore(qm=>qm.authData),{token:gl,userId:wc,userProfileId:xu,username:ff}=ml,jf=wc,Uf=Sa.pathname.includes(la),rp=reactExports.useCallback(qm=>`${la}-${qm}`,[la]),np=reactExports.useCallback(async(qm,Vm,eg=!1)=>{const tg=rp(qm);try{await aa(qm,Vm,eg),hl.current.add(tg)}catch(rg){console.error(`useRouteDataFetching: Failed to fetch data for route ${la}:`,rg)}},[aa,rp,la]);return reactExports.useEffect(()=>{if(!Uf)return;if(pl.current!==jf&&(hl.current.clear(),pl.current=jf),ca&&!gl){console.log(`useRouteDataFetching: Authentication required for route ${la}, but no token found`);return}if(!jf||!ff||ca&&!xu){console.log(`useRouteDataFetching: Missing required data for route ${la}`,{hasWorkspaceId:!!jf,hasUsername:!!ff,hasUserProfileId:!!xu,hasAuthToken:!!gl});return}const qm=rp(jf);if(hl.current.has(qm)){console.log(`useRouteDataFetching: Data already fetched for route ${la} and workspace ${jf}`);return}np(jf,ff)},[Uf,jf,ff,xu,gl,ca,np,rp,la,...ua]),{refetch:reactExports.useCallback((qm=!1)=>{if(jf&&ff&&(!ca||xu&&gl)){const Vm=rp(jf);hl.current.delete(Vm),np(jf,ff,qm)}},[jf,ff,xu,gl,ca,np,rp,la]),clearCache:reactExports.useCallback(()=>{hl.current.clear()},[]),isMatchingRoute:Uf,hasRequiredData:!!(jf&&ff&&(!ca||xu&&gl))}},useStore=()=>{const{moduleName:la}=useParams(),aa=getModuleNames().filter(hl=>hl!=="agentlang"),{currentTeam:ca}=useTeams();if(!la)throw new Error("Module name is undefined");let ua;try{ua=fetchModule$2(la)}catch(hl){console.error(hl)}const Sa=ua?ua.getEntityNames():[];return{modules:aa,currentModule:ua,entities:Sa,currentTeam:ca}},useRbac=()=>{const{teamName:la,moduleName:aa}=useParams(),ca=useAppStore(BN=>BN.setSelectedRole),ua=useAppStore(BN=>BN.setAppConfig),Sa=useAppStore(BN=>BN.appConfig),hl=useAppStore(BN=>BN.user),pl=hl.GitHub.Token,ml=hl.GitHub.Username,{incrementModuleDbChangeCount:gl}=useAppStore(),wc=()=>{if(!la)throw new Error("Team name is required to save RBAC roles");if(!aa)throw new Error("Module name is required for RBAC operations")},xu=BN=>{if(!aa)throw new Error("Module name is required for RBAC operations");const iF=getEntity$1(BN,aa);if(!iF)throw new Error(`Entity instance for "${BN}" in module "${aa}" is undefined.`);return iF},ff=BN=>{if(!aa||!la)throw new Error("Module name and team name are required for RBAC operations");const yY=fetchModule$2(aa).toString();gl(),saveModuleToGit(la,aa,yY,BN,ml,pl)},jf=(BN,iF,yY,vQ="Toggle")=>{try{wc();for(const bY of BN){const Lhe=xu(bY),Dhe=Lhe.getRbacSpecifications()||[],kdt=yY([...Dhe],iF);Lhe.setRbacSpecifications(kdt)}const Ohe=`${vQ} all RBAC permissions for role: ${iF}`;ff(Ohe)}catch(Ohe){throw console.error("Error toggling all RBAC permissions:",Ohe),Ohe}},Uf=(BN,iF,yY,vQ,Ohe="Toggle")=>{try{wc();for(const Lhe of BN){const Dhe=xu(Lhe),kdt=Dhe.getRbacSpecifications()||[],eht=yY([...kdt],iF,vQ);Dhe.setRbacSpecifications(eht)}const bY=`${Ohe} ${vQ} RBAC permission for role: ${iF}`;ff(bY)}catch(bY){throw console.error(`Error toggling ${vQ} RBAC permission:`,bY),bY}},rp=(BN,iF,yY,vQ="Toggle")=>{try{wc();const Ohe=xu(BN),bY=Ohe.getRbacSpecifications()||[],Lhe=yY([...bY],iF);Ohe.setRbacSpecifications(Lhe);const Dhe=`${vQ} all RBAC permissions for role: ${iF} on entity: ${BN}`;ff(Dhe)}catch(Ohe){throw console.error("Error toggling all RBAC permissions for entity:",Ohe),Ohe}},np=(BN,iF,yY,vQ,Ohe="Toggle")=>{try{wc();const bY=xu(BN),Lhe=bY.getRbacSpecifications()||[],Dhe=yY([...Lhe],iF,vQ);bY.setRbacSpecifications(Dhe);const kdt=`${Ohe} ${vQ} RBAC permission for role: ${iF} on entity: ${BN}`;ff(kdt)}catch(bY){throw console.error(`Error toggling ${vQ} RBAC permission for entity:`,bY),bY}},qm=(BN,iF="Save RBAC roles")=>{wc();const yY={...Sa,rbac:{roles:BN}};if(ua(yY),!la)throw new Error("Team name is required to save RBAC roles");saveConfigToGit(la,JSON.stringify(yY,null,2),iF,ml,pl)},Vm=BN=>{const iF=Sa?.rbac?.roles||[];qm([...iF,BN],"Add RBAC role"),ca(BN)},eg=BN=>{const yY=(Sa?.rbac?.roles||[]).filter(vQ=>vQ!==BN);qm(yY,"Delete RBAC role"),ca(yY.at(-1)||"")},tg=(BN,iF)=>{const yY=BN.find(vQ=>vQ.roles.has(iF));if(yY){if(yY.hasCreatePermission()&&yY.hasReadPermission()&&yY.hasUpdatePermission()&&yY.hasDeletePermission())return BN.filter(Ohe=>Ohe!==yY);yY.setPermissions(["create","read","update","delete"])}else{const vQ=new RbacSpecification;vQ.setRoles([iF]),vQ.setPermissions(["create","read","update","delete"]),BN.push(vQ)}return BN},rg=(BN,iF,yY)=>{const vQ=BN.find(Ohe=>Ohe.roles.has(iF));if(vQ)if((()=>{switch(yY){case"create":return vQ.hasCreatePermission();case"read":return vQ.hasReadPermission();case"update":return vQ.hasUpdatePermission();case"delete":return vQ.hasDeletePermission()}})()){const Dhe=Array.from(vQ.permissions).map(kdt=>RbacPermissionFlag$1[kdt].toLowerCase()).filter(kdt=>kdt!==yY);if(Dhe.length===0)return BN.filter(kdt=>kdt!==vQ);vQ.setPermissions(Dhe)}else{const bY=Array.from(vQ.permissions).map(Lhe=>RbacPermissionFlag$1[Lhe].toLowerCase());bY.push(yY),vQ.setPermissions(bY)}else{const Ohe=new RbacSpecification;Ohe.setRoles([iF]),Ohe.setPermissions([yY]),BN.push(Ohe)}return BN};return{saveRbacRoles:qm,addRole:Vm,deleteRole:eg,allHandler:BN=>{if(!aa)return;const iF=getEntities(aa);jf(iF,BN,tg)},createHandler:BN=>{if(!aa)return;const iF=getEntities(aa);Uf(iF,BN,rg,"create")},readHandler:BN=>{if(!aa)return;const iF=getEntities(aa);Uf(iF,BN,rg,"read")},updateHandler:BN=>{if(!aa)return;const iF=getEntities(aa);Uf(iF,BN,rg,"update")},deleteHandler:BN=>{if(!aa)return;const iF=getEntities(aa);Uf(iF,BN,rg,"delete")},entityAllHandler:(BN,iF)=>{rp(BN,iF,tg)},entityCreateHandler:(BN,iF)=>{np(BN,iF,rg,"create")},entityReadHandler:(BN,iF)=>{np(BN,iF,rg,"read")},entityUpdateHandler:(BN,iF)=>{np(BN,iF,rg,"update")},entityDeleteHandler:(BN,iF)=>{np(BN,iF,rg,"delete")},addExpression:(BN,iF,yY)=>{try{wc();const vQ=xu(BN),Ohe=vQ.getRbacSpecifications()||[],bY=Ohe.find(Dhe=>Dhe.expression),Lhe=Object.entries(yY).filter(([Dhe,kdt])=>kdt).map(([Dhe])=>Dhe);if(bY)bY.setPermissions(Lhe),bY.setExpression("auth.user",`this.${iF}`);else{const Dhe=new RbacSpecification;Dhe.setPermissions(Lhe),Dhe.setExpression("auth.user",`this.${iF}`),Ohe.push(Dhe)}vQ.setRbacSpecifications(Ohe),ff(`Add RBAC expression for entity: ${BN}`)}catch(vQ){throw console.error("Error setting expression for entity:",vQ),vQ}},removeExpression:BN=>{try{wc();const iF=xu(BN),vQ=(iF.getRbacSpecifications()||[]).filter(Ohe=>!Ohe.expression);iF.setRbacSpecifications(vQ),ff(`Remove RBAC expression for entity: ${BN}`)}catch(iF){throw console.error("Error removing expression for entity:",iF),iF}},getRoleRbacSpec:(BN,iF)=>(wc(),(xu(BN).getRbacSpecifications()||[]).find(bY=>bY.roles.has(iF))),getRBACExpression:BN=>(wc(),(xu(BN).getRbacSpecifications()||[]).find(Ohe=>Ohe.expression))}},useWorkflow=la=>{const{teamName:aa,moduleName:ca}=useParams(),ua=useAppStore(rp=>rp.user),Sa=ua.GitHub.Token,hl=ua.GitHub.Username,{incrementModuleDbChangeCount:pl}=useAppStore();return{onCreateCrudStatement:async(rp,np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=fetchModule$2(ca||""),eg=Vm.getWorkflowForEvent(la);let tg;if(np==="create"?tg=newCreatePattern(rp):np==="read"?tg=newQueryPattern(rp):np==="delete"?tg=newDeletePattern(rp):np==="update"&&(tg=newQueryUpdatePattern(rp)),np==="loop"?tg=new ForEachPattern$1:np==="if-else"&&(tg=new IfPattern$1().setElse()),tg&&eg)await eg.setStatementAt(tg.toString(),qm).then(async()=>{pl(),saveModuleToGit(aa,ca,Vm.toString(),`Add ${np} pattern for ${la}`,hl,Sa)});else throw new Error(`Unknown type: ${np}`)},onDeleteStatementHandler:async rp=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const np=fetchModule$2(ca||"");np.getWorkflowForEvent(la)?.removeStatementAt(rp),pl(),saveModuleToGit(aa,ca,np.toString(),`Delete pattern for ${la} at index ${rp}`,hl,Sa)},updateStatementHandler:async(rp,np)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const qm=fetchModule$2(ca||"");await qm.getWorkflowForEvent(la)?.setStatementAt(np,rp).then(async()=>{pl(),saveModuleToGit(aa,ca,qm.toString(),`Update pattern for ${la} at index ${rp}`,hl,Sa)})},onCreateFunctionCall:async(rp,np,qm=[])=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=fetchModule$2(ca||""),eg=Vm.getWorkflowForEvent(la),tg=qm.map(ig=>new ExpressionPattern$1(ig.trim())),rg=new FunctionCallPattern$1(np,tg);if(eg)await eg.setStatementAt(rg.toString(),rp).then(async()=>{pl(),saveModuleToGit(aa,ca,Vm.toString(),`Add function call pattern for ${la}`,hl,Sa)});else throw new Error(`Workflow not found for event: ${la}`)},onCreateExpression:async(rp,np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=fetchModule$2(ca||""),eg=Vm.getWorkflowForEvent(la),tg=new ExpressionPattern$1(np);qm&&tg.setAlias(qm),await eg?.setStatementAt(tg.toString(),rp).then(async()=>{pl(),saveModuleToGit(aa,ca,Vm.toString(),`Add expression pattern for ${la}`,hl,Sa)})},onCreateLiteralPattern:async(rp,np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=fetchModule$2(ca||""),eg=Vm.getWorkflowForEvent(la),tg=new LiteralPattern$1(LiteralPatternType$1.REFERENCE,np);qm&&tg.setAlias(qm),await eg?.setStatementAt(tg.toString(),rp).then(async()=>{pl(),saveModuleToGit(aa,ca,Vm.toString(),`Add literal pattern for ${la}`,hl,Sa)})},addTrigger:(rp,np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");if(qm==="after")if(np==="create")addAfterCreateWorkflow(rp,ca);else if(np==="delete")addAfterDeleteWorkflow(rp,ca);else if(np==="update")addAfterUpdateWorkflow(rp,ca);else throw new Error("Invalid trigger type");else if(qm==="before")if(np==="create")addBeforeCreateWorkflow(rp);else if(np==="delete")addBeforeDeleteWorkflow(rp);else if(np==="update")addBeforeUpdateWorkflow(rp,ca);else throw new Error("Invalid trigger type");else throw new Error("Invalid trigger time");const Vm=fetchModule$2(ca||"");pl(),saveModuleToGit(aa,ca,Vm.toString(),`Add ${qm} ${np} trigger for ${rp}`,hl,Sa)}}},IS_LOCAL_MODE$2=!0,useAppConfig=()=>{const{teamName:la}=useParams(),aa=useAppStore(ml=>ml.appConfig),ca=useAppStore(ml=>ml.setAppConfig),ua=useAppStore(ml=>ml.user),Sa=ua.GitHub.Token,hl=ua.GitHub.Username;return{saveAppConfig:async ml=>{if(!la)throw new Error("Team name is required to save app integrations");let gl={};try{let ff;if(IS_LOCAL_MODE$2){const Uf=await fetch(`http://localhost:4000/file?path=${encodeURIComponent("config.al")}`);if(Uf.ok){const{content:rp}=await Uf.json();ff=rp}else ff=""}ff&&ff.trim()&&(gl=parseAppConfig(ff))}catch(ff){console.warn("Failed to read current config.al, using appConfig state:",ff),gl=aa}const wc={...gl,...aa,...ml};ca(wc);const xu=formatAppConfig(wc);await saveConfigToGit(la,xu,"Save App Configuration",hl,Sa)}}},useFlow=()=>{const{zoomHandler:la}=useZoomHandler(),{teamName:aa,moduleName:ca}=useParams(),ua=useAppStore(np=>np.user),{incrementModuleDbChangeCount:Sa,setSelectedDecisionId:hl}=useAppStore(),pl=ua.GitHub.Token,ml=ua.GitHub.Username;return{addFlow:np=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const qm=fetchModule$2(ca);qm.addFlow(np);const Vm=qm.toString();saveModuleToGit(aa,ca,Vm,`Add flow ${np}`,ml,pl),Sa(),setTimeout(()=>{la(np)},100)},removeFlow:(np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=fetchModule$2(ca);Vm.removeFlow(np);const eg=Vm.toString();saveModuleToGit(aa,ca,eg,`Remove flow ${np}`,ml,pl),Sa(),qm&&setTimeout(()=>{la(qm)},100)},updateFlow:(np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=fetchModule$2(ca);Vm.removeFlow(np),Vm.addFlow(np);const eg=Vm.getFlow(np);if(!eg)throw new Error("Flow could not be recreated");qm.forEach(rg=>{const ig=new FlowStepPattern$1(rg.source,rg.target,rg.label);eg.appendStep(ig.toString())});const tg=Vm.toString();saveModuleToGit(aa,ca,tg,`Update flow ${np}`,ml,pl)},addDecision:np=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const qm=fetchModule$2(ca);if(qm.getDecision(np))return;const eg=new Decision$1(np,qm.name,[]);qm.addDecision(eg);const tg=qm.toString();saveModuleToGit(aa,ca,tg,`Add decision ${np}`,ml,pl),Sa(),setTimeout(()=>{hl(np),la(`decision-node-${np}`,{openForm:!0})},200)},removeDecision:np=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const qm=fetchModule$2(ca);if(!qm.getDecision(np))return;qm.removeDecision(np);const eg=qm.toString();saveModuleToGit(aa,ca,eg,`Remove decision ${np}`,ml,pl)},updateDecision:(np,qm)=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");const Vm=fetchModule$2(ca);if(!Vm.getDecision(np))return;Vm.removeDecision(np);const tg=new Decision$1(np,Vm.name,qm);Vm.addDecision(tg);const rg=Vm.toString();saveModuleToGit(aa,ca,rg,`Update decision ${np}`,ml,pl)},getDecision:np=>{if(!aa)throw new Error("teamName is undefined");if(!ca)throw new Error("moduleName is undefined");return fetchModule$2(ca).getDecision(np)}}},useMobile=()=>{const[la,aa]=reactExports.useState(!1);return reactExports.useEffect(()=>{const ca=()=>{aa(window.innerWidth<768)};return ca(),window.addEventListener("resize",ca),()=>window.removeEventListener("resize",ca)},[]),la};function transformApiResponseToMarketplaceModel(la){return{Id:la.id||"",Name:la.name||"",Type:la.type||"",Description:la.description||"",Version:la.version||"",Owner:la.owner||"",GitHubOrg:la.gitHubOrg||"",GitHubRepo:la.gitHubRepo||"",Branch:la.gitHubBranch||la.branch||"main",CreatedAt:la.createdAt||"",LastUpdatedAt:la.lastUpdatedAt||"",Icon:la.icon||"",MarketPlaceUrl:la.marketPlaceUrl||"",ExtraDetails:la.extraDetails||{},GithubOrg:la.gitHubOrg||"",Config:{},Dependencies:{FractlModels:[],ClojureLibraries:[]},EntityType:"Model",GithubUrl:la.githubUrl||`https://github.com/${la.gitHubOrg}/${la.gitHubRepo}`,__Id__:la.id||"",Tags:la.tags||null,isEditable:!1,isPin:!1,isLoading:!1,isError:!1,ErrorMessage:""}}const useMarketplace=()=>{const{error:la,refetch:aa}=useQuery({queryKey:["marketplace","models"],enabled:!1,queryFn:async()=>{const hl=await axiosInstance("marketplace").get("/MarketplaceMeta/Model");console.log("The response of marketplace model is:",hl.data);let pl=[];return Array.isArray(hl.data)?hl.data.length===0?pl=[]:pl=hl.data.map(ml=>ml.Model||ml).map(ml=>transformApiResponseToMarketplaceModel(ml)):hl.data?.result&&Array.isArray(hl.data.result)&&(pl=hl.data.result.map(ml=>ml.Model||ml).map(ml=>transformApiResponseToMarketplaceModel(ml))),pl},staleTime:3e5,gcTime:6e5,retry:(hl,pl)=>pl?.response?.status===401||pl?.response?.status===403?!1:hl<2}),ca=reactExports.useCallback(async()=>{await aa()},[aa]),ua=reactExports.useCallback(async hl=>{try{const pl=await axiosInstance("marketplace").post("/MarketplaceMeta/Model",hl);return y$b.success("Model published successfully!"),pl.data}catch(pl){const ml=pl?.response?.data?.reason||"Failed to publish model";throw y$b.error(ml),pl}},[]),Sa=reactExports.useCallback(async hl=>{try{await axiosInstance("marketplace").delete(`/MarketplaceMeta/Model/${hl}`),y$b.success("Model deleted successfully!"),await aa()}catch(pl){const ml=pl?.response?.data?.reason||"Failed to delete model";throw y$b.error(ml),pl}},[aa]);return{fetchMarketplaceModels:ca,publishModel:ua,deleteModel:Sa,refetchMarketplaceModels:aa}},useAddTeam=()=>{const{addWorkspaceApp:la}=useTeams(),aa=useAppStore(rp=>rp.user),ca=aa.GitHub.Token,ua=aa.GitHub.Org,Sa=aa.GitHub.Username,hl=useNavigate(),[pl,ml]=React.useState(!1),[gl,wc]=React.useState("creating-repo"),[xu,ff]=React.useState("");return{addTeam:async({name:rp})=>{ml(!0),wc("creating-repo"),ff("Creating GitHub repository...");try{const qm=(await createGitHubRepo(ca,rp.toLowerCase(),{private:!0,auto_init:!0},ua)).name;wc("cloning-repo"),ff("Cloning repository...");try{const Vm=`/${qm}`,eg="main",tg=Sa&&Sa.trim().length>0,rg=ca&&ca.trim().length>0;if(!tg||!rg){alert("⚠️ GitHub credentials missing. Please set your GitHub username and token in Settings.");return}const ig=generateGitHubUrl(ua,qm,Sa,ca),vv=async()=>{try{await pathExists(Vm)&&(console.log(`Cleaning up failed clone: removing ${Vm} from IndexedDB`),await removeDirectory(Vm))}catch(J0){console.error("Error cleaning up failed clone:",J0)}};try{await cloneRepository(ig,Vm,eg,ca)}catch(J0){throw console.error("Failed to clone repository:",J0),await vv(),J0}wc("adding-files"),ff("Adding initial files...");const R1={name:qm,version:"0.0.1"},O1=await openRepository(Vm);await writeRepoFile(Vm,"package.json",JSON.stringify(R1)),await commitChanges(O1,"package.json","Add package.json",{name:Sa,email:Sa}),await writeRepoFile(Vm,"config.al",JSON.stringify({agentlang:{service:{port:8080},rbac:{enabled:!1},auth:{enabled:!1},auditTrail:{enabled:!0},monitoring:{enabled:!0}},"agentlang.ai":[{"agentlang.ai/LLM":{name:"llm01",service:"openai",config:{model:"gpt-4o"}}}]},null,2)),await commitChanges(O1,"config.al","Add config.al",{name:Sa,email:Sa});const K0="src/core.al";await writeRepoFile(Vm,K0,`module ${qm.toLowerCase()}.core`),await commitChanges(O1,K0,"Add core.al ",{name:Sa,email:Sa}),wc("pushing-changes"),ff("Pushing changes to GitHub..."),await pushChanges(O1,"origin",eg,ca),wc("loading-module"),ff("Loading module...");try{await flushAllAndLoad(`/${qm}`,{name:"studio"});const J0=getUserModuleNames();wc("adding-workspace"),ff("Adding to workspace...");const Hw={name:rp,type:"App",gitHubOrg:ua,gitHubRepo:qm,branch:eg,description:"",owner:localStorage.getItem("username")||"",version:"0.0.1",isEditable:!0};await la(Hw),ml(!1),hl(`/design/data-model/${ua}/${qm}/${J0[0]}`,{state:{isNewTeam:!0}})}catch(J0){console.error(`Failed to load ${qm}:`,J0);try{await pathExists(Vm)&&(console.log(`Cleaning up failed clone: removing ${Vm} from IndexedDB`),await removeDirectory(Vm))}catch(Hw){console.error("Error cleaning up failed clone:",Hw)}ml(!1)}}catch(Vm){console.error(`Failed to clone repository: ${Vm}`);try{const eg=`/${qm}`;await pathExists(eg)&&(console.log(`Cleaning up failed clone: removing ${eg} from IndexedDB`),await removeDirectory(eg))}catch(eg){console.error("Error cleaning up failed clone:",eg)}ml(!1)}}catch(np){console.error("Failed to create GitHub Repository:",np),ml(!1)}},isLoading:pl,currentStep:gl,statusMessage:xu,loadingSteps:[{id:"creating-repo",label:"Creating GitHub repository"},{id:"cloning-repo",label:"Cloning repository"},{id:"adding-files",label:"Adding initial files"},{id:"committing-changes",label:"Committing changes"},{id:"pushing-changes",label:"Pushing to GitHub"},{id:"loading-module",label:"Loading module"},{id:"adding-workspace",label:"Adding to workspace"}]}},extractRepoNameFromGitUrl=la=>{const aa=/(?:git\+)?https:\/\/(?:[^@]+@)?github\.com\/([^/]+)\/([^/.]+)(?:\.git)?(?:#.+)?/,ca=la.match(aa);if(ca){const[,,ua]=ca;return ua}return null},getDependenciesRecursive=async(la,aa,ca=new Set)=>{const ua=Object.entries(aa).filter(([hl,pl])=>{if(!(typeof pl=="string"&&pl.startsWith("git+http")))return!1;const wc=(typeof pl=="string"?extractRepoNameFromGitUrl(pl):null)||hl.split(".")[0],xu=!ca.has(wc);return xu&&ca.add(wc),xu});return ua.length===0?[]:(await Promise.all(ua.map(async([hl,pl])=>{const gl=(typeof pl=="string"?extractRepoNameFromGitUrl(pl):null)||hl.split(".")[0],wc=[gl];try{const xu=await readDependencyPackageJsonFromGit(la,gl);if(xu.dependencies){const ff=await getDependenciesRecursive(la,xu.dependencies,ca);wc.push(...ff)}}catch(xu){console.error(`Failed to process dependency ${gl}:`,xu)}return wc}))).flat()},fetchDependencies=async la=>{const ca=(await readPackageJsonFromGit(la)).dependencies||{},ua=Object.entries(ca).filter(([,hl])=>typeof hl=="string"&&hl.startsWith("git+http")).map(([hl,pl])=>(typeof pl=="string"?extractRepoNameFromGitUrl(pl):null)||hl.split(".")[0]),Sa=await getDependenciesRecursive(la,ca,new Set(ua));return Array.from(new Set([...ua,...Sa]))},filterModulesForDependency=(la,aa)=>{const ca=aa.toLowerCase(),ua=ca.replace(/_/g,"");return la.filter(Sa=>{const hl=Sa.toLowerCase(),pl=hl.split(".")[0];return hl.startsWith(ca)||pl===ua})},useDependencies=()=>{const{currentTeam:la}=useTeams(),aa=la?.GitHubRepo,ca=useQueryClient(),{data:ua=[],isLoading:Sa,refetch:hl}=useQuery({queryKey:["dependencies",aa],queryFn:()=>fetchDependencies(aa),enabled:!!aa}),pl=getUserModuleNames(),ml=[aa,...ua].map(Uf=>({label:Uf||"",value:Uf||""})),gl=Uf=>filterModulesForDependency(pl,Uf),wc=()=>getTeamModules(aa),xu=async()=>{await ca.invalidateQueries({queryKey:["dependencies",aa]}),await hl()},ff=aa||"",jf=ff?gl(ff)[0]:"";return{dependencies:ua,dependenciesOptions:ml,loading:Sa,getDependenciesModule:gl,getTeamModules:wc,defaultDependency:ff,defaultModule:jf,refetchDependencies:xu}},useDoubleClick=(la,aa,ca=300)=>{const ua=reactExports.useRef(null),Sa=reactExports.useRef(0),hl=reactExports.useCallback(pl=>{pl.stopPropagation(),pl.preventDefault(),Sa.current+=1,Sa.current===1?ua.current=setTimeout(()=>{Sa.current===1&&la(pl),Sa.current=0,ua.current=null},ca):Sa.current===2&&(ua.current&&(clearTimeout(ua.current),ua.current=null),aa(pl),Sa.current=0)},[la,aa,ca]);return reactExports.useEffect(()=>()=>{ua.current&&clearTimeout(ua.current)},[]),hl},validationScehma=create$3().shape({email:create$6().email("Invalid email").required("Email is required"),password:create$6().required("Password is required")}),SignIn=()=>{const{login:la}=useAuth(),aa=useNavigate();return reactExports.useEffect(()=>{{aa("/design/dashboard");return}},[aa]),jsxRuntimeExports.jsx(Formik,{initialValues:{email:"",password:""},validationSchema:validationScehma,onSubmit:ca=>{const{email:ua,password:Sa}=ca;la(ua,Sa)},children:jsxRuntimeExports.jsxs(Form$7,{className:"auth-input-container",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 items-center",children:[jsxRuntimeExports.jsx("h1",{className:"text-center",children:"Sign In"}),jsxRuntimeExports.jsx("p",{className:"text-center",children:"Get started with building your team of AI Agents"})]}),jsxRuntimeExports.jsx(nht,{name:"email",placeholder:"Email",type:"email"}),jsxRuntimeExports.jsx(sht,{name:"password",placeholder:"Password"}),jsxRuntimeExports.jsx("div",{className:"auth-link text-right",onClick:()=>aa("/forgot-password"),children:"Forgot password?"}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",children:"Sign in"}),jsxRuntimeExports.jsxs("p",{className:"flex justify-center items-center gap-2",children:[jsxRuntimeExports.jsx("span",{children:"No account ?"}),jsxRuntimeExports.jsx(Link,{className:"auth-link font-bold",to:"/signup",children:"Sign Up"})]})]})})},uppercaseRegex=/[A-Z]/,lowercaseRegex=/[a-z]/,numberRegex=/[0-9]/,specialCharRegex=/[!@#$%^&*(),.?":{}|<>]/,validationSchema$e=create$3().shape({firstName:create$6().required("First Name is required").min(2,"First Name must be at least 2 characters").max(50,"First Name must be less than 50 characters"),lastName:create$6().required("Last Name is required").min(2,"Last Name must be at least 2 characters").max(50,"Last Name must be less than 50 characters"),email:create$6().required("Email is required").email("Invalid email address"),password:create$6().required("Password is required").min(8,"Password must be at least 8 characters").matches(uppercaseRegex,"Password must contain at least one uppercase letter").matches(lowercaseRegex,"Password must contain at least one lowercase letter").matches(numberRegex,"Password must contain at least one number").matches(specialCharRegex,"Password must contain at least one special character"),confirmPassword:create$6().required("Confirm Password is required").oneOf([create$9("password")],"Passwords don't match")}),SignUp=()=>{const la=useNavigate(),{signUp:aa,isSigningUp:ca}=useSignUp(),[ua,Sa]=reactExports.useState(null);return jsxRuntimeExports.jsx(Formik,{initialValues:{firstName:"",lastName:"",email:"",password:"",confirmPassword:""},validationSchema:validationSchema$e,onSubmit:async(hl,{setSubmitting:pl})=>{Sa(null);try{const ml=await aa({firstName:hl.firstName,lastName:hl.lastName,email:hl.email,password:hl.password});!ml.success&&ml.error&&Sa(ml.error)}catch{Sa("An unexpected error occurred. Please try again.")}finally{pl(!1)}},children:jsxRuntimeExports.jsxs(Form$7,{className:"auth-input-container",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 items-center",children:[jsxRuntimeExports.jsx("h1",{className:"text-center",children:"Sign Up"}),jsxRuntimeExports.jsx("p",{className:"text-center",children:"Get started with building your team of AI Agents"})]}),jsxRuntimeExports.jsxs("div",{className:"md:grid flex flex-col md:grid-cols-2 gap-2",children:[jsxRuntimeExports.jsx(nht,{name:"firstName",placeholder:"First Name"}),jsxRuntimeExports.jsx(nht,{name:"lastName",placeholder:"Last Name"}),jsxRuntimeExports.jsx("div",{className:"col-span-2",children:jsxRuntimeExports.jsx(nht,{name:"email",placeholder:"Email",type:"email"})}),jsxRuntimeExports.jsx(sht,{name:"password",placeholder:"Password"}),jsxRuntimeExports.jsx(sht,{name:"confirmPassword",placeholder:"Confirm Password"})]}),ua&&jsxRuntimeExports.jsx("div",{className:"text-red-500 text-sm text-center p-2",children:ua}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",disabled:ca,children:ca?"Creating Account...":"Create Account"}),jsxRuntimeExports.jsxs("p",{className:"flex justify-center items-center gap-2",children:[jsxRuntimeExports.jsx("span",{children:"Already have an account ?"}),jsxRuntimeExports.jsx("span",{className:"auth-link font-bold",onClick:()=>la("/"),children:"Sign In"})]})]})})},validationSchema$d=create$3().shape({email:create$6().required("Email is required").email("Invalid email address")}),ForgotPassword=()=>{const la=useNavigate();return jsxRuntimeExports.jsx(Formik,{initialValues:{email:""},validationSchema:validationSchema$d,onSubmit:aa=>{const{email:ca}=aa;console.log(ca)},children:jsxRuntimeExports.jsxs(Form$7,{className:"auth-input-container",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center",children:[jsxRuntimeExports.jsx("h1",{className:"text-center",children:"Reset Password"}),jsxRuntimeExports.jsx("p",{className:"text-center",children:"Send confirmation code to your email"})]}),jsxRuntimeExports.jsx(nht,{name:"email",placeholder:"Email",type:"email"}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",children:"Send confirmation code"}),jsxRuntimeExports.jsxs("p",{className:"flex flex-col md:flex-row justify-center items-center gap-2",children:[jsxRuntimeExports.jsx("span",{children:"Already recovered your password ?"}),jsxRuntimeExports.jsx("span",{className:"auth-link font-bold",onClick:()=>la("/"),children:"Sign In"})]})]})})},numberOnlyRegex=/^[0-9]+$/,validationSchema$c=create$3().shape({email:create$6().required("Email is required").email("Invalid email address"),password:create$6().required("Password is required"),code:create$6().matches(numberOnlyRegex,"Code must contain only numbers")}),RecoverPassword=()=>{const la=useNavigate();return jsxRuntimeExports.jsx(Formik,{validationSchema:validationSchema$c,initialValues:{email:"",password:"",code:""},onSubmit:aa=>{const{email:ca,password:ua,code:Sa}=aa;console.log(ca,ua,Sa)},children:jsxRuntimeExports.jsxs(Form$7,{className:"auth-input-container",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center",children:[jsxRuntimeExports.jsx("h1",{className:"text-center",children:"Reset Password"}),jsxRuntimeExports.jsx("p",{className:"text-center",children:"Set new password"})]}),jsxRuntimeExports.jsx(nht,{name:"email",placeholder:"Email",type:"email"}),jsxRuntimeExports.jsx(sht,{name:"password",placeholder:"Password"}),jsxRuntimeExports.jsx(sht,{name:"code",placeholder:"Code"}),jsxRuntimeExports.jsx("button",{type:"submit",className:"submit-button",children:"Set new password"}),jsxRuntimeExports.jsxs("p",{className:"flex flex-col md:flex-row justify-center items-center gap-2",children:[jsxRuntimeExports.jsx("span",{children:"Already recovered your password ?"}),jsxRuntimeExports.jsx("span",{className:"auth-link font-bold",onClick:()=>la("/"),children:"Sign In"})]})]})})};var classnames={exports:{}};/*!
|
|
19417
19417
|
Copyright (c) 2018 Jed Watson.
|
|
19418
19418
|
Licensed under the MIT License (MIT), see
|
|
19419
19419
|
http://jedwatson.github.io/classnames
|
|
@@ -19578,7 +19578,7 @@ export default theme;`}function coefficientToPercentage(la){return typeof la=="n
|
|
|
19578
19578
|
}
|
|
19579
19579
|
`),()=>{qm.contains(np)&&qm.removeChild(np)}},[aa]),jsxRuntimeExports.jsx(PopChildMeasure,{isPresent:aa,childRef:hl,sizeRef:pl,children:reactExports.cloneElement(la,{ref:gl})})}const PresenceChild=({children:la,initial:aa,isPresent:ca,onExitComplete:ua,custom:Sa,presenceAffectsLayout:hl,mode:pl,anchorX:ml,root:gl})=>{const wc=useConstant(newChildrenMap),xu=reactExports.useId();let ff=!0,jf=reactExports.useMemo(()=>(ff=!1,{id:xu,initial:aa,isPresent:ca,custom:Sa,onExitComplete:Uf=>{wc.set(Uf,!0);for(const rp of wc.values())if(!rp)return;ua&&ua()},register:Uf=>(wc.set(Uf,!1),()=>wc.delete(Uf))}),[ca,wc,ua]);return hl&&ff&&(jf={...jf}),reactExports.useMemo(()=>{wc.forEach((Uf,rp)=>wc.set(rp,!1))},[ca]),reactExports.useEffect(()=>{!ca&&!wc.size&&ua&&ua()},[ca]),pl==="popLayout"&&(la=jsxRuntimeExports.jsx(PopChild,{isPresent:ca,anchorX:ml,root:gl,children:la})),jsxRuntimeExports.jsx(PresenceContext.Provider,{value:jf,children:la})};function newChildrenMap(){return new Map}function usePresence$1(la=!0){const aa=reactExports.useContext(PresenceContext);if(aa===null)return[!0,null];const{isPresent:ca,onExitComplete:ua,register:Sa}=aa,hl=reactExports.useId();reactExports.useEffect(()=>{if(la)return Sa(hl)},[la]);const pl=reactExports.useCallback(()=>la&&ua&&ua(hl),[hl,ua,la]);return!ca&&ua?[!1,pl]:[!0]}const getChildKey=la=>la.key||"";function onlyElements(la){const aa=[];return reactExports.Children.forEach(la,ca=>{reactExports.isValidElement(ca)&&aa.push(ca)}),aa}const AnimatePresence=({children:la,custom:aa,initial:ca=!0,onExitComplete:ua,presenceAffectsLayout:Sa=!0,mode:hl="sync",propagate:pl=!1,anchorX:ml="left",root:gl})=>{const[wc,xu]=usePresence$1(pl),ff=reactExports.useMemo(()=>onlyElements(la),[la]),jf=pl&&!wc?[]:ff.map(getChildKey),Uf=reactExports.useRef(!0),rp=reactExports.useRef(ff),np=useConstant(()=>new Map),[qm,Vm]=reactExports.useState(ff),[eg,tg]=reactExports.useState(ff);useIsomorphicLayoutEffect$2(()=>{Uf.current=!1,rp.current=ff;for(let vv=0;vv<eg.length;vv++){const R1=getChildKey(eg[vv]);jf.includes(R1)?np.delete(R1):np.get(R1)!==!0&&np.set(R1,!1)}},[eg,jf.length,jf.join("-")]);const rg=[];if(ff!==qm){let vv=[...ff];for(let R1=0;R1<eg.length;R1++){const O1=eg[R1],K0=getChildKey(O1);jf.includes(K0)||(vv.splice(R1,0,O1),rg.push(O1))}return hl==="wait"&&rg.length&&(vv=rg),tg(onlyElements(vv)),Vm(ff),null}const{forceRender:ig}=reactExports.useContext(LayoutGroupContext);return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:eg.map(vv=>{const R1=getChildKey(vv),O1=pl&&!wc?!1:ff===eg||jf.includes(R1),K0=()=>{if(np.has(R1))np.set(R1,!0);else return;let J0=!0;np.forEach(Hw=>{Hw||(J0=!1)}),J0&&(ig?.(),tg(rp.current),pl&&xu?.(),ua&&ua())};return jsxRuntimeExports.jsx(PresenceChild,{isPresent:O1,initial:!Uf.current||ca?void 0:!1,custom:aa,presenceAffectsLayout:Sa,mode:hl,root:gl,onExitComplete:O1?void 0:K0,anchorX:ml,children:vv},R1)})})},LazyContext=reactExports.createContext({strict:!1}),featureProps={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},featureDefinitions={};for(const la in featureProps)featureDefinitions[la]={isEnabled:aa=>featureProps[la].some(ca=>!!aa[ca])};function loadFeatures(la){for(const aa in la)featureDefinitions[aa]={...featureDefinitions[aa],...la[aa]}}const validMotionProps=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function isValidMotionProp(la){return la.startsWith("while")||la.startsWith("drag")&&la!=="draggable"||la.startsWith("layout")||la.startsWith("onTap")||la.startsWith("onPan")||la.startsWith("onLayout")||validMotionProps.has(la)}let shouldForward=la=>!isValidMotionProp(la);function loadExternalIsValidProp(la){typeof la=="function"&&(shouldForward=aa=>aa.startsWith("on")?!isValidMotionProp(aa):la(aa))}try{loadExternalIsValidProp(require("@emotion/is-prop-valid").default)}catch{}function filterProps(la,aa,ca){const ua={};for(const Sa in la)Sa==="values"&&typeof la.values=="object"||(shouldForward(Sa)||ca===!0&&isValidMotionProp(Sa)||!aa&&!isValidMotionProp(Sa)||la.draggable&&Sa.startsWith("onDrag"))&&(ua[Sa]=la[Sa]);return ua}const MotionContext=reactExports.createContext({});function isAnimationControls(la){return la!==null&&typeof la=="object"&&typeof la.start=="function"}function isVariantLabel(la){return typeof la=="string"||Array.isArray(la)}const variantPriorityOrder=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],variantProps=["initial",...variantPriorityOrder];function isControllingVariants(la){return isAnimationControls(la.animate)||variantProps.some(aa=>isVariantLabel(la[aa]))}function isVariantNode(la){return!!(isControllingVariants(la)||la.variants)}function getCurrentTreeVariants(la,aa){if(isControllingVariants(la)){const{initial:ca,animate:ua}=la;return{initial:ca===!1||isVariantLabel(ca)?ca:void 0,animate:isVariantLabel(ua)?ua:void 0}}return la.inherit!==!1?aa:{}}function useCreateMotionContext(la){const{initial:aa,animate:ca}=getCurrentTreeVariants(la,reactExports.useContext(MotionContext));return reactExports.useMemo(()=>({initial:aa,animate:ca}),[variantLabelsAsDependency(aa),variantLabelsAsDependency(ca)])}function variantLabelsAsDependency(la){return Array.isArray(la)?la.join(" "):la}function pixelsToPercent(la,aa){return aa.max===aa.min?0:la/(aa.max-aa.min)*100}const correctBorderRadius={correct:(la,aa)=>{if(!aa.target)return la;if(typeof la=="string")if(px.test(la))la=parseFloat(la);else return la;const ca=pixelsToPercent(la,aa.target.x),ua=pixelsToPercent(la,aa.target.y);return`${ca}% ${ua}%`}},correctBoxShadow={correct:(la,{treeScale:aa,projectionDelta:ca})=>{const ua=la,Sa=complex.parse(la);if(Sa.length>5)return ua;const hl=complex.createTransformer(la),pl=typeof Sa[0]!="number"?1:0,ml=ca.x.scale*aa.x,gl=ca.y.scale*aa.y;Sa[0+pl]/=ml,Sa[1+pl]/=gl;const wc=mixNumber$1(ml,gl,.5);return typeof Sa[2+pl]=="number"&&(Sa[2+pl]/=wc),typeof Sa[3+pl]=="number"&&(Sa[3+pl]/=wc),hl(Sa)}},scaleCorrectors={borderRadius:{...correctBorderRadius,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:correctBorderRadius,borderTopRightRadius:correctBorderRadius,borderBottomLeftRadius:correctBorderRadius,borderBottomRightRadius:correctBorderRadius,boxShadow:correctBoxShadow};function isForcedMotionValue(la,{layout:aa,layoutId:ca}){return transformProps.has(la)||la.startsWith("origin")||(aa||ca!==void 0)&&(!!scaleCorrectors[la]||la==="opacity")}const translateAlias={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},numTransforms=transformPropOrder.length;function buildTransform(la,aa,ca){let ua="",Sa=!0;for(let hl=0;hl<numTransforms;hl++){const pl=transformPropOrder[hl],ml=la[pl];if(ml===void 0)continue;let gl=!0;if(typeof ml=="number"?gl=ml===(pl.startsWith("scale")?1:0):gl=parseFloat(ml)===0,!gl||ca){const wc=getValueAsType(ml,numberValueTypes[pl]);if(!gl){Sa=!1;const xu=translateAlias[pl]||pl;ua+=`${xu}(${wc}) `}ca&&(aa[pl]=wc)}}return ua=ua.trim(),ca?ua=ca(aa,Sa?"":ua):Sa&&(ua="none"),ua}function buildHTMLStyles(la,aa,ca){const{style:ua,vars:Sa,transformOrigin:hl}=la;let pl=!1,ml=!1;for(const gl in aa){const wc=aa[gl];if(transformProps.has(gl)){pl=!0;continue}else if(isCSSVariableName(gl)){Sa[gl]=wc;continue}else{const xu=getValueAsType(wc,numberValueTypes[gl]);gl.startsWith("origin")?(ml=!0,hl[gl]=xu):ua[gl]=xu}}if(aa.transform||(pl||ca?ua.transform=buildTransform(aa,la.transform,ca):ua.transform&&(ua.transform="none")),ml){const{originX:gl="50%",originY:wc="50%",originZ:xu=0}=hl;ua.transformOrigin=`${gl} ${wc} ${xu}`}}const createHtmlRenderState=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function copyRawValuesOnly(la,aa,ca){for(const ua in aa)!isMotionValue(aa[ua])&&!isForcedMotionValue(ua,ca)&&(la[ua]=aa[ua])}function useInitialMotionValues({transformTemplate:la},aa){return reactExports.useMemo(()=>{const ca=createHtmlRenderState();return buildHTMLStyles(ca,aa,la),Object.assign({},ca.vars,ca.style)},[aa])}function useStyle(la,aa){const ca=la.style||{},ua={};return copyRawValuesOnly(ua,ca,la),Object.assign(ua,useInitialMotionValues(la,aa)),ua}function useHTMLProps(la,aa){const ca={},ua=useStyle(la,aa);return la.drag&&la.dragListener!==!1&&(ca.draggable=!1,ua.userSelect=ua.WebkitUserSelect=ua.WebkitTouchCallout="none",ua.touchAction=la.drag===!0?"none":`pan-${la.drag==="x"?"y":"x"}`),la.tabIndex===void 0&&(la.onTap||la.onTapStart||la.whileTap)&&(ca.tabIndex=0),ca.style=ua,ca}const dashKeys={offset:"stroke-dashoffset",array:"stroke-dasharray"},camelKeys={offset:"strokeDashoffset",array:"strokeDasharray"};function buildSVGPath(la,aa,ca=1,ua=0,Sa=!0){la.pathLength=1;const hl=Sa?dashKeys:camelKeys;la[hl.offset]=px.transform(-ua);const pl=px.transform(aa),ml=px.transform(ca);la[hl.array]=`${pl} ${ml}`}function buildSVGAttrs(la,{attrX:aa,attrY:ca,attrScale:ua,pathLength:Sa,pathSpacing:hl=1,pathOffset:pl=0,...ml},gl,wc,xu){if(buildHTMLStyles(la,ml,wc),gl){la.style.viewBox&&(la.attrs.viewBox=la.style.viewBox);return}la.attrs=la.style,la.style={};const{attrs:ff,style:jf}=la;ff.transform&&(jf.transform=ff.transform,delete ff.transform),(jf.transform||ff.transformOrigin)&&(jf.transformOrigin=ff.transformOrigin??"50% 50%",delete ff.transformOrigin),jf.transform&&(jf.transformBox=xu?.transformBox??"fill-box",delete ff.transformBox),aa!==void 0&&(ff.x=aa),ca!==void 0&&(ff.y=ca),ua!==void 0&&(ff.scale=ua),Sa!==void 0&&buildSVGPath(ff,Sa,hl,pl,!1)}const createSvgRenderState=()=>({...createHtmlRenderState(),attrs:{}}),isSVGTag=la=>typeof la=="string"&&la.toLowerCase()==="svg";function useSVGProps(la,aa,ca,ua){const Sa=reactExports.useMemo(()=>{const hl=createSvgRenderState();return buildSVGAttrs(hl,aa,isSVGTag(ua),la.transformTemplate,la.style),{...hl.attrs,style:{...hl.style}}},[aa]);if(la.style){const hl={};copyRawValuesOnly(hl,la.style,la),Sa.style={...hl,...Sa.style}}return Sa}const lowercaseSVGElements=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function isSVGComponent(la){return typeof la!="string"||la.includes("-")?!1:!!(lowercaseSVGElements.indexOf(la)>-1||/[A-Z]/u.test(la))}function useRender(la,aa,ca,{latestValues:ua},Sa,hl=!1){const ml=(isSVGComponent(la)?useSVGProps:useHTMLProps)(aa,ua,Sa,la),gl=filterProps(aa,typeof la=="string",hl),wc=la!==reactExports.Fragment?{...gl,...ml,ref:ca}:{},{children:xu}=aa,ff=reactExports.useMemo(()=>isMotionValue(xu)?xu.get():xu,[xu]);return reactExports.createElement(la,{...wc,children:ff})}function getValueState(la){const aa=[{},{}];return la?.values.forEach((ca,ua)=>{aa[0][ua]=ca.get(),aa[1][ua]=ca.getVelocity()}),aa}function resolveVariantFromProps(la,aa,ca,ua){if(typeof aa=="function"){const[Sa,hl]=getValueState(ua);aa=aa(ca!==void 0?ca:la.custom,Sa,hl)}if(typeof aa=="string"&&(aa=la.variants&&la.variants[aa]),typeof aa=="function"){const[Sa,hl]=getValueState(ua);aa=aa(ca!==void 0?ca:la.custom,Sa,hl)}return aa}function resolveMotionValue(la){return isMotionValue(la)?la.get():la}function makeState({scrapeMotionValuesFromProps:la,createRenderState:aa},ca,ua,Sa){return{latestValues:makeLatestValues(ca,ua,Sa,la),renderState:aa()}}function makeLatestValues(la,aa,ca,ua){const Sa={},hl=ua(la,{});for(const jf in hl)Sa[jf]=resolveMotionValue(hl[jf]);let{initial:pl,animate:ml}=la;const gl=isControllingVariants(la),wc=isVariantNode(la);aa&&wc&&!gl&&la.inherit!==!1&&(pl===void 0&&(pl=aa.initial),ml===void 0&&(ml=aa.animate));let xu=ca?ca.initial===!1:!1;xu=xu||pl===!1;const ff=xu?ml:pl;if(ff&&typeof ff!="boolean"&&!isAnimationControls(ff)){const jf=Array.isArray(ff)?ff:[ff];for(let Uf=0;Uf<jf.length;Uf++){const rp=resolveVariantFromProps(la,jf[Uf]);if(rp){const{transitionEnd:np,transition:qm,...Vm}=rp;for(const eg in Vm){let tg=Vm[eg];if(Array.isArray(tg)){const rg=xu?tg.length-1:0;tg=tg[rg]}tg!==null&&(Sa[eg]=tg)}for(const eg in np)Sa[eg]=np[eg]}}}return Sa}const makeUseVisualState=la=>(aa,ca)=>{const ua=reactExports.useContext(MotionContext),Sa=reactExports.useContext(PresenceContext),hl=()=>makeState(la,aa,ua,Sa);return ca?hl():useConstant(hl)};function scrapeMotionValuesFromProps$1(la,aa,ca){const{style:ua}=la,Sa={};for(const hl in ua)(isMotionValue(ua[hl])||aa.style&&isMotionValue(aa.style[hl])||isForcedMotionValue(hl,la)||ca?.getValue(hl)?.liveStyle!==void 0)&&(Sa[hl]=ua[hl]);return Sa}const useHTMLVisualState=makeUseVisualState({scrapeMotionValuesFromProps:scrapeMotionValuesFromProps$1,createRenderState:createHtmlRenderState});function scrapeMotionValuesFromProps(la,aa,ca){const ua=scrapeMotionValuesFromProps$1(la,aa,ca);for(const Sa in la)if(isMotionValue(la[Sa])||isMotionValue(aa[Sa])){const hl=transformPropOrder.indexOf(Sa)!==-1?"attr"+Sa.charAt(0).toUpperCase()+Sa.substring(1):Sa;ua[hl]=la[Sa]}return ua}const useSVGVisualState=makeUseVisualState({scrapeMotionValuesFromProps,createRenderState:createSvgRenderState}),motionComponentSymbol=Symbol.for("motionComponentSymbol");function isRefObject(la){return la&&typeof la=="object"&&Object.prototype.hasOwnProperty.call(la,"current")}function useMotionRef(la,aa,ca){return reactExports.useCallback(ua=>{ua&&la.onMount&&la.onMount(ua),aa&&(ua?aa.mount(ua):aa.unmount()),ca&&(typeof ca=="function"?ca(ua):isRefObject(ca)&&(ca.current=ua))},[aa])}const camelToDash=la=>la.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),optimizedAppearDataId="framerAppearId",optimizedAppearDataAttribute="data-"+camelToDash(optimizedAppearDataId),SwitchLayoutGroupContext=reactExports.createContext({});function useVisualElement(la,aa,ca,ua,Sa){const{visualElement:hl}=reactExports.useContext(MotionContext),pl=reactExports.useContext(LazyContext),ml=reactExports.useContext(PresenceContext),gl=reactExports.useContext(MotionConfigContext).reducedMotion,wc=reactExports.useRef(null);ua=ua||pl.renderer,!wc.current&&ua&&(wc.current=ua(la,{visualState:aa,parent:hl,props:ca,presenceContext:ml,blockInitialAnimation:ml?ml.initial===!1:!1,reducedMotionConfig:gl}));const xu=wc.current,ff=reactExports.useContext(SwitchLayoutGroupContext);xu&&!xu.projection&&Sa&&(xu.type==="html"||xu.type==="svg")&&createProjectionNode$1(wc.current,ca,Sa,ff);const jf=reactExports.useRef(!1);reactExports.useInsertionEffect(()=>{xu&&jf.current&&xu.update(ca,ml)});const Uf=ca[optimizedAppearDataAttribute],rp=reactExports.useRef(!!Uf&&!window.MotionHandoffIsComplete?.(Uf)&&window.MotionHasOptimisedAnimation?.(Uf));return useIsomorphicLayoutEffect$2(()=>{xu&&(jf.current=!0,window.MotionIsMounted=!0,xu.updateFeatures(),xu.scheduleRenderMicrotask(),rp.current&&xu.animationState&&xu.animationState.animateChanges())}),reactExports.useEffect(()=>{xu&&(!rp.current&&xu.animationState&&xu.animationState.animateChanges(),rp.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(Uf)}),rp.current=!1),xu.enteringChildren=void 0)}),xu}function createProjectionNode$1(la,aa,ca,ua){const{layoutId:Sa,layout:hl,drag:pl,dragConstraints:ml,layoutScroll:gl,layoutRoot:wc,layoutCrossfade:xu}=aa;la.projection=new ca(la.latestValues,aa["data-framer-portal-id"]?void 0:getClosestProjectingNode(la.parent)),la.projection.setOptions({layoutId:Sa,layout:hl,alwaysMeasureLayout:!!pl||ml&&isRefObject(ml),visualElement:la,animationType:typeof hl=="string"?hl:"both",initialPromotionConfig:ua,crossfade:xu,layoutScroll:gl,layoutRoot:wc})}function getClosestProjectingNode(la){if(la)return la.options.allowProjection!==!1?la.projection:getClosestProjectingNode(la.parent)}function createMotionComponent(la,{forwardMotionProps:aa=!1}={},ca,ua){ca&&loadFeatures(ca);const Sa=isSVGComponent(la)?useSVGVisualState:useHTMLVisualState;function hl(ml,gl){let wc;const xu={...reactExports.useContext(MotionConfigContext),...ml,layoutId:useLayoutId(ml)},{isStatic:ff}=xu,jf=useCreateMotionContext(ml),Uf=Sa(ml,ff);if(!ff&&isBrowser){useStrictMode();const rp=getProjectionFunctionality(xu);wc=rp.MeasureLayout,jf.visualElement=useVisualElement(la,Uf,xu,ua,rp.ProjectionNode)}return jsxRuntimeExports.jsxs(MotionContext.Provider,{value:jf,children:[wc&&jf.visualElement?jsxRuntimeExports.jsx(wc,{visualElement:jf.visualElement,...xu}):null,useRender(la,ml,useMotionRef(Uf,jf.visualElement,gl),Uf,ff,aa)]})}hl.displayName=`motion.${typeof la=="string"?la:`create(${la.displayName??la.name??""})`}`;const pl=reactExports.forwardRef(hl);return pl[motionComponentSymbol]=la,pl}function useLayoutId({layoutId:la}){const aa=reactExports.useContext(LayoutGroupContext).id;return aa&&la!==void 0?aa+"-"+la:la}function useStrictMode(la,aa){reactExports.useContext(LazyContext).strict}function getProjectionFunctionality(la){const{drag:aa,layout:ca}=featureDefinitions;if(!aa&&!ca)return{};const ua={...aa,...ca};return{MeasureLayout:aa?.isEnabled(la)||ca?.isEnabled(la)?ua.MeasureLayout:void 0,ProjectionNode:ua.ProjectionNode}}function createMotionProxy(la,aa){if(typeof Proxy>"u")return createMotionComponent;const ca=new Map,ua=(hl,pl)=>createMotionComponent(hl,pl,la,aa),Sa=(hl,pl)=>ua(hl,pl);return new Proxy(Sa,{get:(hl,pl)=>pl==="create"?ua:(ca.has(pl)||ca.set(pl,createMotionComponent(pl,void 0,la,aa)),ca.get(pl))})}function convertBoundingBoxToBox({top:la,left:aa,right:ca,bottom:ua}){return{x:{min:aa,max:ca},y:{min:la,max:ua}}}function convertBoxToBoundingBox({x:la,y:aa}){return{top:aa.min,right:la.max,bottom:aa.max,left:la.min}}function transformBoxPoints(la,aa){if(!aa)return la;const ca=aa({x:la.left,y:la.top}),ua=aa({x:la.right,y:la.bottom});return{top:ca.y,left:ca.x,bottom:ua.y,right:ua.x}}function isIdentityScale(la){return la===void 0||la===1}function hasScale({scale:la,scaleX:aa,scaleY:ca}){return!isIdentityScale(la)||!isIdentityScale(aa)||!isIdentityScale(ca)}function hasTransform(la){return hasScale(la)||has2DTranslate(la)||la.z||la.rotate||la.rotateX||la.rotateY||la.skewX||la.skewY}function has2DTranslate(la){return is2DTranslate(la.x)||is2DTranslate(la.y)}function is2DTranslate(la){return la&&la!=="0%"}function scalePoint(la,aa,ca){const ua=la-ca,Sa=aa*ua;return ca+Sa}function applyPointDelta(la,aa,ca,ua,Sa){return Sa!==void 0&&(la=scalePoint(la,Sa,ua)),scalePoint(la,ca,ua)+aa}function applyAxisDelta(la,aa=0,ca=1,ua,Sa){la.min=applyPointDelta(la.min,aa,ca,ua,Sa),la.max=applyPointDelta(la.max,aa,ca,ua,Sa)}function applyBoxDelta(la,{x:aa,y:ca}){applyAxisDelta(la.x,aa.translate,aa.scale,aa.originPoint),applyAxisDelta(la.y,ca.translate,ca.scale,ca.originPoint)}const TREE_SCALE_SNAP_MIN=.999999999999,TREE_SCALE_SNAP_MAX=1.0000000000001;function applyTreeDeltas(la,aa,ca,ua=!1){const Sa=ca.length;if(!Sa)return;aa.x=aa.y=1;let hl,pl;for(let ml=0;ml<Sa;ml++){hl=ca[ml],pl=hl.projectionDelta;const{visualElement:gl}=hl.options;gl&&gl.props.style&&gl.props.style.display==="contents"||(ua&&hl.options.layoutScroll&&hl.scroll&&hl!==hl.root&&transformBox(la,{x:-hl.scroll.offset.x,y:-hl.scroll.offset.y}),pl&&(aa.x*=pl.x.scale,aa.y*=pl.y.scale,applyBoxDelta(la,pl)),ua&&hasTransform(hl.latestValues)&&transformBox(la,hl.latestValues))}aa.x<TREE_SCALE_SNAP_MAX&&aa.x>TREE_SCALE_SNAP_MIN&&(aa.x=1),aa.y<TREE_SCALE_SNAP_MAX&&aa.y>TREE_SCALE_SNAP_MIN&&(aa.y=1)}function translateAxis(la,aa){la.min=la.min+aa,la.max=la.max+aa}function transformAxis(la,aa,ca,ua,Sa=.5){const hl=mixNumber$1(la.min,la.max,Sa);applyAxisDelta(la,aa,ca,hl,ua)}function transformBox(la,aa){transformAxis(la.x,aa.x,aa.scaleX,aa.scale,aa.originX),transformAxis(la.y,aa.y,aa.scaleY,aa.scale,aa.originY)}function measureViewportBox(la,aa){return convertBoundingBoxToBox(transformBoxPoints(la.getBoundingClientRect(),aa))}function measurePageBox(la,aa,ca){const ua=measureViewportBox(la,ca),{scroll:Sa}=aa;return Sa&&(translateAxis(ua.x,Sa.offset.x),translateAxis(ua.y,Sa.offset.y)),ua}const createAxisDelta=()=>({translate:0,scale:1,origin:0,originPoint:0}),createDelta=()=>({x:createAxisDelta(),y:createAxisDelta()}),createAxis=()=>({min:0,max:0}),createBox=()=>({x:createAxis(),y:createAxis()}),prefersReducedMotion={current:null},hasReducedMotionListener={current:!1};function initPrefersReducedMotion(){if(hasReducedMotionListener.current=!0,!!isBrowser)if(window.matchMedia){const la=window.matchMedia("(prefers-reduced-motion)"),aa=()=>prefersReducedMotion.current=la.matches;la.addEventListener("change",aa),aa()}else prefersReducedMotion.current=!1}const visualElementStore=new WeakMap;function updateMotionValuesFromProps(la,aa,ca){for(const ua in aa){const Sa=aa[ua],hl=ca[ua];if(isMotionValue(Sa))la.addValue(ua,Sa);else if(isMotionValue(hl))la.addValue(ua,motionValue(Sa,{owner:la}));else if(hl!==Sa)if(la.hasValue(ua)){const pl=la.getValue(ua);pl.liveStyle===!0?pl.jump(Sa):pl.hasAnimated||pl.set(Sa)}else{const pl=la.getStaticValue(ua);la.addValue(ua,motionValue(pl!==void 0?pl:Sa,{owner:la}))}}for(const ua in ca)aa[ua]===void 0&&la.removeValue(ua);return aa}const propEventHandlers=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class VisualElement{scrapeMotionValuesFromProps(aa,ca,ua){return{}}constructor({parent:aa,props:ca,presenceContext:ua,reducedMotionConfig:Sa,blockInitialAnimation:hl,visualState:pl},ml={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=KeyframeResolver,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const jf=time.now();this.renderScheduledAt<jf&&(this.renderScheduledAt=jf,frame.render(this.render,!1,!0))};const{latestValues:gl,renderState:wc}=pl;this.latestValues=gl,this.baseTarget={...gl},this.initialValues=ca.initial?{...gl}:{},this.renderState=wc,this.parent=aa,this.props=ca,this.presenceContext=ua,this.depth=aa?aa.depth+1:0,this.reducedMotionConfig=Sa,this.options=ml,this.blockInitialAnimation=!!hl,this.isControllingVariants=isControllingVariants(ca),this.isVariantNode=isVariantNode(ca),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(aa&&aa.current);const{willChange:xu,...ff}=this.scrapeMotionValuesFromProps(ca,{},this);for(const jf in ff){const Uf=ff[jf];gl[jf]!==void 0&&isMotionValue(Uf)&&Uf.set(gl[jf])}}mount(aa){this.current=aa,visualElementStore.set(aa,this),this.projection&&!this.projection.instance&&this.projection.mount(aa),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((ca,ua)=>this.bindToMotionValue(ua,ca)),hasReducedMotionListener.current||initPrefersReducedMotion(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:prefersReducedMotion.current,this.parent?.addChild(this),this.update(this.props,this.presenceContext)}unmount(){this.projection&&this.projection.unmount(),cancelFrame(this.notifyUpdate),cancelFrame(this.render),this.valueSubscriptions.forEach(aa=>aa()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(const aa in this.events)this.events[aa].clear();for(const aa in this.features){const ca=this.features[aa];ca&&(ca.unmount(),ca.isMounted=!1)}this.current=null}addChild(aa){this.children.add(aa),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(aa)}removeChild(aa){this.children.delete(aa),this.enteringChildren&&this.enteringChildren.delete(aa)}bindToMotionValue(aa,ca){this.valueSubscriptions.has(aa)&&this.valueSubscriptions.get(aa)();const ua=transformProps.has(aa);ua&&this.onBindTransform&&this.onBindTransform();const Sa=ca.on("change",pl=>{this.latestValues[aa]=pl,this.props.onUpdate&&frame.preRender(this.notifyUpdate),ua&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let hl;window.MotionCheckAppearSync&&(hl=window.MotionCheckAppearSync(this,aa,ca)),this.valueSubscriptions.set(aa,()=>{Sa(),hl&&hl(),ca.owner&&ca.stop()})}sortNodePosition(aa){return!this.current||!this.sortInstanceNodePosition||this.type!==aa.type?0:this.sortInstanceNodePosition(this.current,aa.current)}updateFeatures(){let aa="animation";for(aa in featureDefinitions){const ca=featureDefinitions[aa];if(!ca)continue;const{isEnabled:ua,Feature:Sa}=ca;if(!this.features[aa]&&Sa&&ua(this.props)&&(this.features[aa]=new Sa(this)),this.features[aa]){const hl=this.features[aa];hl.isMounted?hl.update():(hl.mount(),hl.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):createBox()}getStaticValue(aa){return this.latestValues[aa]}setStaticValue(aa,ca){this.latestValues[aa]=ca}update(aa,ca){(aa.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=aa,this.prevPresenceContext=this.presenceContext,this.presenceContext=ca;for(let ua=0;ua<propEventHandlers.length;ua++){const Sa=propEventHandlers[ua];this.propEventSubscriptions[Sa]&&(this.propEventSubscriptions[Sa](),delete this.propEventSubscriptions[Sa]);const hl="on"+Sa,pl=aa[hl];pl&&(this.propEventSubscriptions[Sa]=this.on(Sa,pl))}this.prevMotionValues=updateMotionValuesFromProps(this,this.scrapeMotionValuesFromProps(aa,this.prevProps,this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(aa){return this.props.variants?this.props.variants[aa]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(aa){const ca=this.getClosestVariantNode();if(ca)return ca.variantChildren&&ca.variantChildren.add(aa),()=>ca.variantChildren.delete(aa)}addValue(aa,ca){const ua=this.values.get(aa);ca!==ua&&(ua&&this.removeValue(aa),this.bindToMotionValue(aa,ca),this.values.set(aa,ca),this.latestValues[aa]=ca.get())}removeValue(aa){this.values.delete(aa);const ca=this.valueSubscriptions.get(aa);ca&&(ca(),this.valueSubscriptions.delete(aa)),delete this.latestValues[aa],this.removeValueFromRenderState(aa,this.renderState)}hasValue(aa){return this.values.has(aa)}getValue(aa,ca){if(this.props.values&&this.props.values[aa])return this.props.values[aa];let ua=this.values.get(aa);return ua===void 0&&ca!==void 0&&(ua=motionValue(ca===null?void 0:ca,{owner:this}),this.addValue(aa,ua)),ua}readValue(aa,ca){let ua=this.latestValues[aa]!==void 0||!this.current?this.latestValues[aa]:this.getBaseTargetFromProps(this.props,aa)??this.readValueFromInstance(this.current,aa,this.options);return ua!=null&&(typeof ua=="string"&&(isNumericalString(ua)||isZeroValueString(ua))?ua=parseFloat(ua):!findValueType(ua)&&complex.test(ca)&&(ua=getAnimatableNone(aa,ca)),this.setBaseTarget(aa,isMotionValue(ua)?ua.get():ua)),isMotionValue(ua)?ua.get():ua}setBaseTarget(aa,ca){this.baseTarget[aa]=ca}getBaseTarget(aa){const{initial:ca}=this.props;let ua;if(typeof ca=="string"||typeof ca=="object"){const hl=resolveVariantFromProps(this.props,ca,this.presenceContext?.custom);hl&&(ua=hl[aa])}if(ca&&ua!==void 0)return ua;const Sa=this.getBaseTargetFromProps(this.props,aa);return Sa!==void 0&&!isMotionValue(Sa)?Sa:this.initialValues[aa]!==void 0&&ua===void 0?void 0:this.baseTarget[aa]}on(aa,ca){return this.events[aa]||(this.events[aa]=new SubscriptionManager),this.events[aa].add(ca)}notify(aa,...ca){this.events[aa]&&this.events[aa].notify(...ca)}scheduleRenderMicrotask(){microtask.render(this.render)}}class DOMVisualElement extends VisualElement{constructor(){super(...arguments),this.KeyframeResolver=DOMKeyframesResolver}sortInstanceNodePosition(aa,ca){return aa.compareDocumentPosition(ca)&2?1:-1}getBaseTargetFromProps(aa,ca){return aa.style?aa.style[ca]:void 0}removeValueFromRenderState(aa,{vars:ca,style:ua}){delete ca[aa],delete ua[aa]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:aa}=this.props;isMotionValue(aa)&&(this.childSubscription=aa.on("change",ca=>{this.current&&(this.current.textContent=`${ca}`)}))}}function renderHTML(la,{style:aa,vars:ca},ua,Sa){const hl=la.style;let pl;for(pl in aa)hl[pl]=aa[pl];Sa?.applyProjectionStyles(hl,ua);for(pl in ca)hl.setProperty(pl,ca[pl])}function getComputedStyle$2(la){return window.getComputedStyle(la)}class HTMLVisualElement extends DOMVisualElement{constructor(){super(...arguments),this.type="html",this.renderInstance=renderHTML}readValueFromInstance(aa,ca){if(transformProps.has(ca))return this.projection?.isProjecting?defaultTransformValue(ca):readTransformValue(aa,ca);{const ua=getComputedStyle$2(aa),Sa=(isCSSVariableName(ca)?ua.getPropertyValue(ca):ua[ca])||0;return typeof Sa=="string"?Sa.trim():Sa}}measureInstanceViewportBox(aa,{transformPagePoint:ca}){return measureViewportBox(aa,ca)}build(aa,ca,ua){buildHTMLStyles(aa,ca,ua.transformTemplate)}scrapeMotionValuesFromProps(aa,ca,ua){return scrapeMotionValuesFromProps$1(aa,ca,ua)}}const camelCaseAttributes=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function renderSVG(la,aa,ca,ua){renderHTML(la,aa,void 0,ua);for(const Sa in aa.attrs)la.setAttribute(camelCaseAttributes.has(Sa)?Sa:camelToDash(Sa),aa.attrs[Sa])}class SVGVisualElement extends DOMVisualElement{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=createBox}getBaseTargetFromProps(aa,ca){return aa[ca]}readValueFromInstance(aa,ca){if(transformProps.has(ca)){const ua=getDefaultValueType(ca);return ua&&ua.default||0}return ca=camelCaseAttributes.has(ca)?ca:camelToDash(ca),aa.getAttribute(ca)}scrapeMotionValuesFromProps(aa,ca,ua){return scrapeMotionValuesFromProps(aa,ca,ua)}build(aa,ca,ua){buildSVGAttrs(aa,ca,this.isSVGTag,ua.transformTemplate,ua.style)}renderInstance(aa,ca,ua,Sa){renderSVG(aa,ca,ua,Sa)}mount(aa){this.isSVGTag=isSVGTag(aa.tagName),super.mount(aa)}}const createDomVisualElement=(la,aa)=>isSVGComponent(la)?new SVGVisualElement(aa):new HTMLVisualElement(aa,{allowProjection:la!==reactExports.Fragment});function resolveVariant(la,aa,ca){const ua=la.getProps();return resolveVariantFromProps(ua,aa,ca!==void 0?ca:ua.custom,la)}const isKeyframesTarget=la=>Array.isArray(la);function setMotionValue(la,aa,ca){la.hasValue(aa)?la.getValue(aa).set(ca):la.addValue(aa,motionValue(ca))}function resolveFinalValueInKeyframes(la){return isKeyframesTarget(la)?la[la.length-1]||0:la}function setTarget(la,aa){const ca=resolveVariant(la,aa);let{transitionEnd:ua={},transition:Sa={},...hl}=ca||{};hl={...hl,...ua};for(const pl in hl){const ml=resolveFinalValueInKeyframes(hl[pl]);setMotionValue(la,pl,ml)}}function isWillChangeMotionValue(la){return!!(isMotionValue(la)&&la.add)}function addValueToWillChange(la,aa){const ca=la.getValue("willChange");if(isWillChangeMotionValue(ca))return ca.add(aa);if(!ca&&MotionGlobalConfig.WillChange){const ua=new MotionGlobalConfig.WillChange("auto");la.addValue("willChange",ua),ua.add(aa)}}function getOptimisedAppearId(la){return la.props[optimizedAppearDataAttribute]}const isNotNull$1=la=>la!==null;function getFinalKeyframe(la,{repeat:aa,repeatType:ca="loop"},ua){const Sa=la.filter(isNotNull$1),hl=aa&&ca!=="loop"&&aa%2===1?0:Sa.length-1;return Sa[hl]}const underDampedSpring={type:"spring",stiffness:500,damping:25,restSpeed:10},criticallyDampedSpring=la=>({type:"spring",stiffness:550,damping:la===0?2*Math.sqrt(550):30,restSpeed:10}),keyframesTransition={type:"keyframes",duration:.8},ease={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},getDefaultTransition=(la,{keyframes:aa})=>aa.length>2?keyframesTransition:transformProps.has(la)?la.startsWith("scale")?criticallyDampedSpring(aa[1]):underDampedSpring:ease;function isTransitionDefined({when:la,delay:aa,delayChildren:ca,staggerChildren:ua,staggerDirection:Sa,repeat:hl,repeatType:pl,repeatDelay:ml,from:gl,elapsed:wc,...xu}){return!!Object.keys(xu).length}const animateMotionValue=(la,aa,ca,ua={},Sa,hl)=>pl=>{const ml=getValueTransition(ua,la)||{},gl=ml.delay||ua.delay||0;let{elapsed:wc=0}=ua;wc=wc-secondsToMilliseconds(gl);const xu={keyframes:Array.isArray(ca)?ca:[null,ca],ease:"easeOut",velocity:aa.getVelocity(),...ml,delay:-wc,onUpdate:jf=>{aa.set(jf),ml.onUpdate&&ml.onUpdate(jf)},onComplete:()=>{pl(),ml.onComplete&&ml.onComplete()},name:la,motionValue:aa,element:hl?void 0:Sa};isTransitionDefined(ml)||Object.assign(xu,getDefaultTransition(la,xu)),xu.duration&&(xu.duration=secondsToMilliseconds(xu.duration)),xu.repeatDelay&&(xu.repeatDelay=secondsToMilliseconds(xu.repeatDelay)),xu.from!==void 0&&(xu.keyframes[0]=xu.from);let ff=!1;if((xu.type===!1||xu.duration===0&&!xu.repeatDelay)&&(makeAnimationInstant(xu),xu.delay===0&&(ff=!0)),(MotionGlobalConfig.instantAnimations||MotionGlobalConfig.skipAnimations)&&(ff=!0,makeAnimationInstant(xu),xu.delay=0),xu.allowFlatten=!ml.type&&!ml.ease,ff&&!hl&&aa.get()!==void 0){const jf=getFinalKeyframe(xu.keyframes,ml);if(jf!==void 0){frame.update(()=>{xu.onUpdate(jf),xu.onComplete()});return}}return ml.isSync?new JSAnimation(xu):new AsyncMotionValueAnimation(xu)};function shouldBlockAnimation({protectedKeys:la,needsAnimating:aa},ca){const ua=la.hasOwnProperty(ca)&&aa[ca]!==!0;return aa[ca]=!1,ua}function animateTarget(la,aa,{delay:ca=0,transitionOverride:ua,type:Sa}={}){let{transition:hl=la.getDefaultTransition(),transitionEnd:pl,...ml}=aa;ua&&(hl=ua);const gl=[],wc=Sa&&la.animationState&&la.animationState.getState()[Sa];for(const xu in ml){const ff=la.getValue(xu,la.latestValues[xu]??null),jf=ml[xu];if(jf===void 0||wc&&shouldBlockAnimation(wc,xu))continue;const Uf={delay:ca,...getValueTransition(hl||{},xu)},rp=ff.get();if(rp!==void 0&&!ff.isAnimating&&!Array.isArray(jf)&&jf===rp&&!Uf.velocity)continue;let np=!1;if(window.MotionHandoffAnimation){const Vm=getOptimisedAppearId(la);if(Vm){const eg=window.MotionHandoffAnimation(Vm,xu,frame);eg!==null&&(Uf.startTime=eg,np=!0)}}addValueToWillChange(la,xu),ff.start(animateMotionValue(xu,ff,jf,la.shouldReduceMotion&&positionalKeys.has(xu)?{type:!1}:Uf,la,np));const qm=ff.animation;qm&&gl.push(qm)}return pl&&Promise.all(gl).then(()=>{frame.update(()=>{pl&&setTarget(la,pl)})}),gl}function calcChildStagger(la,aa,ca,ua=0,Sa=1){const hl=Array.from(la).sort((wc,xu)=>wc.sortNodePosition(xu)).indexOf(aa),pl=la.size,ml=(pl-1)*ua;return typeof ca=="function"?ca(hl,pl):Sa===1?hl*ua:ml-hl*ua}function animateVariant(la,aa,ca={}){const ua=resolveVariant(la,aa,ca.type==="exit"?la.presenceContext?.custom:void 0);let{transition:Sa=la.getDefaultTransition()||{}}=ua||{};ca.transitionOverride&&(Sa=ca.transitionOverride);const hl=ua?()=>Promise.all(animateTarget(la,ua,ca)):()=>Promise.resolve(),pl=la.variantChildren&&la.variantChildren.size?(gl=0)=>{const{delayChildren:wc=0,staggerChildren:xu,staggerDirection:ff}=Sa;return animateChildren(la,aa,gl,wc,xu,ff,ca)}:()=>Promise.resolve(),{when:ml}=Sa;if(ml){const[gl,wc]=ml==="beforeChildren"?[hl,pl]:[pl,hl];return gl().then(()=>wc())}else return Promise.all([hl(),pl(ca.delay)])}function animateChildren(la,aa,ca=0,ua=0,Sa=0,hl=1,pl){const ml=[];for(const gl of la.variantChildren)gl.notify("AnimationStart",aa),ml.push(animateVariant(gl,aa,{...pl,delay:ca+(typeof ua=="function"?0:ua)+calcChildStagger(la.variantChildren,gl,ua,Sa,hl)}).then(()=>gl.notify("AnimationComplete",aa)));return Promise.all(ml)}function animateVisualElement(la,aa,ca={}){la.notify("AnimationStart",aa);let ua;if(Array.isArray(aa)){const Sa=aa.map(hl=>animateVariant(la,hl,ca));ua=Promise.all(Sa)}else if(typeof aa=="string")ua=animateVariant(la,aa,ca);else{const Sa=typeof aa=="function"?resolveVariant(la,aa,ca.custom):aa;ua=Promise.all(animateTarget(la,Sa,ca))}return ua.then(()=>{la.notify("AnimationComplete",aa)})}function shallowCompare(la,aa){if(!Array.isArray(aa))return!1;const ca=aa.length;if(ca!==la.length)return!1;for(let ua=0;ua<ca;ua++)if(aa[ua]!==la[ua])return!1;return!0}const numVariantProps=variantProps.length;function getVariantContext(la){if(!la)return;if(!la.isControllingVariants){const ca=la.parent?getVariantContext(la.parent)||{}:{};return la.props.initial!==void 0&&(ca.initial=la.props.initial),ca}const aa={};for(let ca=0;ca<numVariantProps;ca++){const ua=variantProps[ca],Sa=la.props[ua];(isVariantLabel(Sa)||Sa===!1)&&(aa[ua]=Sa)}return aa}const reversePriorityOrder=[...variantPriorityOrder].reverse(),numAnimationTypes=variantPriorityOrder.length;function animateList(la){return aa=>Promise.all(aa.map(({animation:ca,options:ua})=>animateVisualElement(la,ca,ua)))}function createAnimationState(la){let aa=animateList(la),ca=createState(),ua=!0;const Sa=gl=>(wc,xu)=>{const ff=resolveVariant(la,xu,gl==="exit"?la.presenceContext?.custom:void 0);if(ff){const{transition:jf,transitionEnd:Uf,...rp}=ff;wc={...wc,...rp,...Uf}}return wc};function hl(gl){aa=gl(la)}function pl(gl){const{props:wc}=la,xu=getVariantContext(la.parent)||{},ff=[],jf=new Set;let Uf={},rp=1/0;for(let qm=0;qm<numAnimationTypes;qm++){const Vm=reversePriorityOrder[qm],eg=ca[Vm],tg=wc[Vm]!==void 0?wc[Vm]:xu[Vm],rg=isVariantLabel(tg),ig=Vm===gl?eg.isActive:null;ig===!1&&(rp=qm);let vv=tg===xu[Vm]&&tg!==wc[Vm]&&rg;if(vv&&ua&&la.manuallyAnimateOnMount&&(vv=!1),eg.protectedKeys={...Uf},!eg.isActive&&ig===null||!tg&&!eg.prevProp||isAnimationControls(tg)||typeof tg=="boolean")continue;const R1=checkVariantsDidChange(eg.prevProp,tg);let O1=R1||Vm===gl&&eg.isActive&&!vv&&rg||qm>rp&&rg,K0=!1;const J0=Array.isArray(tg)?tg:[tg];let Hw=J0.reduce(Sa(Vm),{});ig===!1&&(Hw={});const{prevResolvedValues:qw={}}=eg,Y0={...qw,...Hw},G0=f_=>{O1=!0,jf.has(f_)&&(K0=!0,jf.delete(f_)),eg.needsAnimating[f_]=!0;const zN=la.getValue(f_);zN&&(zN.liveStyle=!1)};for(const f_ in Y0){const zN=Hw[f_],BN=qw[f_];if(Uf.hasOwnProperty(f_))continue;let iF=!1;isKeyframesTarget(zN)&&isKeyframesTarget(BN)?iF=!shallowCompare(zN,BN):iF=zN!==BN,iF?zN!=null?G0(f_):jf.add(f_):zN!==void 0&&jf.has(f_)?G0(f_):eg.protectedKeys[f_]=!0}eg.prevProp=tg,eg.prevResolvedValues=Hw,eg.isActive&&(Uf={...Uf,...Hw}),ua&&la.blockInitialAnimation&&(O1=!1);const X0=vv&&R1;O1&&(!X0||K0)&&ff.push(...J0.map(f_=>{const zN={type:Vm};if(typeof f_=="string"&&ua&&!X0&&la.manuallyAnimateOnMount&&la.parent){const{parent:BN}=la,iF=resolveVariant(BN,f_);if(BN.enteringChildren&&iF){const{delayChildren:yY}=iF.transition||{};zN.delay=calcChildStagger(BN.enteringChildren,la,yY)}}return{animation:f_,options:zN}}))}if(jf.size){const qm={};if(typeof wc.initial!="boolean"){const Vm=resolveVariant(la,Array.isArray(wc.initial)?wc.initial[0]:wc.initial);Vm&&Vm.transition&&(qm.transition=Vm.transition)}jf.forEach(Vm=>{const eg=la.getBaseTarget(Vm),tg=la.getValue(Vm);tg&&(tg.liveStyle=!0),qm[Vm]=eg??null}),ff.push({animation:qm})}let np=!!ff.length;return ua&&(wc.initial===!1||wc.initial===wc.animate)&&!la.manuallyAnimateOnMount&&(np=!1),ua=!1,np?aa(ff):Promise.resolve()}function ml(gl,wc){if(ca[gl].isActive===wc)return Promise.resolve();la.variantChildren?.forEach(ff=>ff.animationState?.setActive(gl,wc)),ca[gl].isActive=wc;const xu=pl(gl);for(const ff in ca)ca[ff].protectedKeys={};return xu}return{animateChanges:pl,setActive:ml,setAnimateFunction:hl,getState:()=>ca,reset:()=>{ca=createState()}}}function checkVariantsDidChange(la,aa){return typeof aa=="string"?aa!==la:Array.isArray(aa)?!shallowCompare(aa,la):!1}function createTypeState(la=!1){return{isActive:la,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function createState(){return{animate:createTypeState(!0),whileInView:createTypeState(),whileHover:createTypeState(),whileTap:createTypeState(),whileDrag:createTypeState(),whileFocus:createTypeState(),exit:createTypeState()}}class Feature{constructor(aa){this.isMounted=!1,this.node=aa}update(){}}class AnimationFeature extends Feature{constructor(aa){super(aa),aa.animationState||(aa.animationState=createAnimationState(aa))}updateAnimationControlsSubscription(){const{animate:aa}=this.node.getProps();isAnimationControls(aa)&&(this.unmountControls=aa.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:aa}=this.node.getProps(),{animate:ca}=this.node.prevProps||{};aa!==ca&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let id$1=0;class ExitAnimationFeature extends Feature{constructor(){super(...arguments),this.id=id$1++}update(){if(!this.node.presenceContext)return;const{isPresent:aa,onExitComplete:ca}=this.node.presenceContext,{isPresent:ua}=this.node.prevPresenceContext||{};if(!this.node.animationState||aa===ua)return;const Sa=this.node.animationState.setActive("exit",!aa);ca&&!aa&&Sa.then(()=>{ca(this.id)})}mount(){const{register:aa,onExitComplete:ca}=this.node.presenceContext||{};ca&&ca(this.id),aa&&(this.unmount=aa(this.id))}unmount(){}}const animations={animation:{Feature:AnimationFeature},exit:{Feature:ExitAnimationFeature}};function addDomEvent(la,aa,ca,ua={passive:!0}){return la.addEventListener(aa,ca,ua),()=>la.removeEventListener(aa,ca)}function extractEventInfo(la){return{point:{x:la.pageX,y:la.pageY}}}const addPointerInfo=la=>aa=>isPrimaryPointer(aa)&&la(aa,extractEventInfo(aa));function addPointerEvent(la,aa,ca,ua){return addDomEvent(la,aa,addPointerInfo(ca),ua)}const SCALE_PRECISION=1e-4,SCALE_MIN=1-SCALE_PRECISION,SCALE_MAX=1+SCALE_PRECISION,TRANSLATE_PRECISION=.01,TRANSLATE_MIN=0-TRANSLATE_PRECISION,TRANSLATE_MAX=0+TRANSLATE_PRECISION;function calcLength(la){return la.max-la.min}function isNear(la,aa,ca){return Math.abs(la-aa)<=ca}function calcAxisDelta(la,aa,ca,ua=.5){la.origin=ua,la.originPoint=mixNumber$1(aa.min,aa.max,la.origin),la.scale=calcLength(ca)/calcLength(aa),la.translate=mixNumber$1(ca.min,ca.max,la.origin)-la.originPoint,(la.scale>=SCALE_MIN&&la.scale<=SCALE_MAX||isNaN(la.scale))&&(la.scale=1),(la.translate>=TRANSLATE_MIN&&la.translate<=TRANSLATE_MAX||isNaN(la.translate))&&(la.translate=0)}function calcBoxDelta(la,aa,ca,ua){calcAxisDelta(la.x,aa.x,ca.x,ua?ua.originX:void 0),calcAxisDelta(la.y,aa.y,ca.y,ua?ua.originY:void 0)}function calcRelativeAxis(la,aa,ca){la.min=ca.min+aa.min,la.max=la.min+calcLength(aa)}function calcRelativeBox(la,aa,ca){calcRelativeAxis(la.x,aa.x,ca.x),calcRelativeAxis(la.y,aa.y,ca.y)}function calcRelativeAxisPosition(la,aa,ca){la.min=aa.min-ca.min,la.max=la.min+calcLength(aa)}function calcRelativePosition(la,aa,ca){calcRelativeAxisPosition(la.x,aa.x,ca.x),calcRelativeAxisPosition(la.y,aa.y,ca.y)}function eachAxis(la){return[la("x"),la("y")]}const getContextWindow=({current:la})=>la?la.ownerDocument.defaultView:null,distance=(la,aa)=>Math.abs(la-aa);function distance2D(la,aa){const ca=distance(la.x,aa.x),ua=distance(la.y,aa.y);return Math.sqrt(ca**2+ua**2)}class PanSession{constructor(aa,ca,{transformPagePoint:ua,contextWindow:Sa=window,dragSnapToOrigin:hl=!1,distanceThreshold:pl=3}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const jf=getPanInfo(this.lastMoveEventInfo,this.history),Uf=this.startEvent!==null,rp=distance2D(jf.offset,{x:0,y:0})>=this.distanceThreshold;if(!Uf&&!rp)return;const{point:np}=jf,{timestamp:qm}=frameData;this.history.push({...np,timestamp:qm});const{onStart:Vm,onMove:eg}=this.handlers;Uf||(Vm&&Vm(this.lastMoveEvent,jf),this.startEvent=this.lastMoveEvent),eg&&eg(this.lastMoveEvent,jf)},this.handlePointerMove=(jf,Uf)=>{this.lastMoveEvent=jf,this.lastMoveEventInfo=transformPoint(Uf,this.transformPagePoint),frame.update(this.updatePoint,!0)},this.handlePointerUp=(jf,Uf)=>{this.end();const{onEnd:rp,onSessionEnd:np,resumeAnimation:qm}=this.handlers;if(this.dragSnapToOrigin&&qm&&qm(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const Vm=getPanInfo(jf.type==="pointercancel"?this.lastMoveEventInfo:transformPoint(Uf,this.transformPagePoint),this.history);this.startEvent&&rp&&rp(jf,Vm),np&&np(jf,Vm)},!isPrimaryPointer(aa))return;this.dragSnapToOrigin=hl,this.handlers=ca,this.transformPagePoint=ua,this.distanceThreshold=pl,this.contextWindow=Sa||window;const ml=extractEventInfo(aa),gl=transformPoint(ml,this.transformPagePoint),{point:wc}=gl,{timestamp:xu}=frameData;this.history=[{...wc,timestamp:xu}];const{onSessionStart:ff}=ca;ff&&ff(aa,getPanInfo(gl,this.history)),this.removeListeners=pipe(addPointerEvent(this.contextWindow,"pointermove",this.handlePointerMove),addPointerEvent(this.contextWindow,"pointerup",this.handlePointerUp),addPointerEvent(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(aa){this.handlers=aa}end(){this.removeListeners&&this.removeListeners(),cancelFrame(this.updatePoint)}}function transformPoint(la,aa){return aa?{point:aa(la.point)}:la}function subtractPoint(la,aa){return{x:la.x-aa.x,y:la.y-aa.y}}function getPanInfo({point:la},aa){return{point:la,delta:subtractPoint(la,lastDevicePoint(aa)),offset:subtractPoint(la,startDevicePoint(aa)),velocity:getVelocity(aa,.1)}}function startDevicePoint(la){return la[0]}function lastDevicePoint(la){return la[la.length-1]}function getVelocity(la,aa){if(la.length<2)return{x:0,y:0};let ca=la.length-1,ua=null;const Sa=lastDevicePoint(la);for(;ca>=0&&(ua=la[ca],!(Sa.timestamp-ua.timestamp>secondsToMilliseconds(aa)));)ca--;if(!ua)return{x:0,y:0};const hl=millisecondsToSeconds(Sa.timestamp-ua.timestamp);if(hl===0)return{x:0,y:0};const pl={x:(Sa.x-ua.x)/hl,y:(Sa.y-ua.y)/hl};return pl.x===1/0&&(pl.x=0),pl.y===1/0&&(pl.y=0),pl}function applyConstraints(la,{min:aa,max:ca},ua){return aa!==void 0&&la<aa?la=ua?mixNumber$1(aa,la,ua.min):Math.max(la,aa):ca!==void 0&&la>ca&&(la=ua?mixNumber$1(ca,la,ua.max):Math.min(la,ca)),la}function calcRelativeAxisConstraints(la,aa,ca){return{min:aa!==void 0?la.min+aa:void 0,max:ca!==void 0?la.max+ca-(la.max-la.min):void 0}}function calcRelativeConstraints(la,{top:aa,left:ca,bottom:ua,right:Sa}){return{x:calcRelativeAxisConstraints(la.x,ca,Sa),y:calcRelativeAxisConstraints(la.y,aa,ua)}}function calcViewportAxisConstraints(la,aa){let ca=aa.min-la.min,ua=aa.max-la.max;return aa.max-aa.min<la.max-la.min&&([ca,ua]=[ua,ca]),{min:ca,max:ua}}function calcViewportConstraints(la,aa){return{x:calcViewportAxisConstraints(la.x,aa.x),y:calcViewportAxisConstraints(la.y,aa.y)}}function calcOrigin(la,aa){let ca=.5;const ua=calcLength(la),Sa=calcLength(aa);return Sa>ua?ca=progress(aa.min,aa.max-ua,la.min):ua>Sa&&(ca=progress(la.min,la.max-Sa,aa.min)),clamp$1(0,1,ca)}function rebaseAxisConstraints(la,aa){const ca={};return aa.min!==void 0&&(ca.min=aa.min-la.min),aa.max!==void 0&&(ca.max=aa.max-la.min),ca}const defaultElastic=.35;function resolveDragElastic(la=defaultElastic){return la===!1?la=0:la===!0&&(la=defaultElastic),{x:resolveAxisElastic(la,"left","right"),y:resolveAxisElastic(la,"top","bottom")}}function resolveAxisElastic(la,aa,ca){return{min:resolvePointElastic(la,aa),max:resolvePointElastic(la,ca)}}function resolvePointElastic(la,aa){return typeof la=="number"?la:la[aa]||0}const elementDragControls=new WeakMap;class VisualElementDragControls{constructor(aa){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=createBox(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=aa}start(aa,{snapToCursor:ca=!1,distanceThreshold:ua}={}){const{presenceContext:Sa}=this.visualElement;if(Sa&&Sa.isPresent===!1)return;const hl=ff=>{const{dragSnapToOrigin:jf}=this.getProps();jf?this.pauseAnimation():this.stopAnimation(),ca&&this.snapToCursor(extractEventInfo(ff).point)},pl=(ff,jf)=>{const{drag:Uf,dragPropagation:rp,onDragStart:np}=this.getProps();if(Uf&&!rp&&(this.openDragLock&&this.openDragLock(),this.openDragLock=setDragLock(Uf),!this.openDragLock))return;this.latestPointerEvent=ff,this.latestPanInfo=jf,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),eachAxis(Vm=>{let eg=this.getAxisMotionValue(Vm).get()||0;if(percent.test(eg)){const{projection:tg}=this.visualElement;if(tg&&tg.layout){const rg=tg.layout.layoutBox[Vm];rg&&(eg=calcLength(rg)*(parseFloat(eg)/100))}}this.originPoint[Vm]=eg}),np&&frame.postRender(()=>np(ff,jf)),addValueToWillChange(this.visualElement,"transform");const{animationState:qm}=this.visualElement;qm&&qm.setActive("whileDrag",!0)},ml=(ff,jf)=>{this.latestPointerEvent=ff,this.latestPanInfo=jf;const{dragPropagation:Uf,dragDirectionLock:rp,onDirectionLock:np,onDrag:qm}=this.getProps();if(!Uf&&!this.openDragLock)return;const{offset:Vm}=jf;if(rp&&this.currentDirection===null){this.currentDirection=getCurrentDirection(Vm),this.currentDirection!==null&&np&&np(this.currentDirection);return}this.updateAxis("x",jf.point,Vm),this.updateAxis("y",jf.point,Vm),this.visualElement.render(),qm&&qm(ff,jf)},gl=(ff,jf)=>{this.latestPointerEvent=ff,this.latestPanInfo=jf,this.stop(ff,jf),this.latestPointerEvent=null,this.latestPanInfo=null},wc=()=>eachAxis(ff=>this.getAnimationState(ff)==="paused"&&this.getAxisMotionValue(ff).animation?.play()),{dragSnapToOrigin:xu}=this.getProps();this.panSession=new PanSession(aa,{onSessionStart:hl,onStart:pl,onMove:ml,onSessionEnd:gl,resumeAnimation:wc},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:xu,distanceThreshold:ua,contextWindow:getContextWindow(this.visualElement)})}stop(aa,ca){const ua=aa||this.latestPointerEvent,Sa=ca||this.latestPanInfo,hl=this.isDragging;if(this.cancel(),!hl||!Sa||!ua)return;const{velocity:pl}=Sa;this.startAnimation(pl);const{onDragEnd:ml}=this.getProps();ml&&frame.postRender(()=>ml(ua,Sa))}cancel(){this.isDragging=!1;const{projection:aa,animationState:ca}=this.visualElement;aa&&(aa.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:ua}=this.getProps();!ua&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),ca&&ca.setActive("whileDrag",!1)}updateAxis(aa,ca,ua){const{drag:Sa}=this.getProps();if(!ua||!shouldDrag(aa,Sa,this.currentDirection))return;const hl=this.getAxisMotionValue(aa);let pl=this.originPoint[aa]+ua[aa];this.constraints&&this.constraints[aa]&&(pl=applyConstraints(pl,this.constraints[aa],this.elastic[aa])),hl.set(pl)}resolveConstraints(){const{dragConstraints:aa,dragElastic:ca}=this.getProps(),ua=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,Sa=this.constraints;aa&&isRefObject(aa)?this.constraints||(this.constraints=this.resolveRefConstraints()):aa&&ua?this.constraints=calcRelativeConstraints(ua.layoutBox,aa):this.constraints=!1,this.elastic=resolveDragElastic(ca),Sa!==this.constraints&&ua&&this.constraints&&!this.hasMutatedConstraints&&eachAxis(hl=>{this.constraints!==!1&&this.getAxisMotionValue(hl)&&(this.constraints[hl]=rebaseAxisConstraints(ua.layoutBox[hl],this.constraints[hl]))})}resolveRefConstraints(){const{dragConstraints:aa,onMeasureDragConstraints:ca}=this.getProps();if(!aa||!isRefObject(aa))return!1;const ua=aa.current,{projection:Sa}=this.visualElement;if(!Sa||!Sa.layout)return!1;const hl=measurePageBox(ua,Sa.root,this.visualElement.getTransformPagePoint());let pl=calcViewportConstraints(Sa.layout.layoutBox,hl);if(ca){const ml=ca(convertBoxToBoundingBox(pl));this.hasMutatedConstraints=!!ml,ml&&(pl=convertBoundingBoxToBox(ml))}return pl}startAnimation(aa){const{drag:ca,dragMomentum:ua,dragElastic:Sa,dragTransition:hl,dragSnapToOrigin:pl,onDragTransitionEnd:ml}=this.getProps(),gl=this.constraints||{},wc=eachAxis(xu=>{if(!shouldDrag(xu,ca,this.currentDirection))return;let ff=gl&&gl[xu]||{};pl&&(ff={min:0,max:0});const jf=Sa?200:1e6,Uf=Sa?40:1e7,rp={type:"inertia",velocity:ua?aa[xu]:0,bounceStiffness:jf,bounceDamping:Uf,timeConstant:750,restDelta:1,restSpeed:10,...hl,...ff};return this.startAxisValueAnimation(xu,rp)});return Promise.all(wc).then(ml)}startAxisValueAnimation(aa,ca){const ua=this.getAxisMotionValue(aa);return addValueToWillChange(this.visualElement,aa),ua.start(animateMotionValue(aa,ua,0,ca,this.visualElement,!1))}stopAnimation(){eachAxis(aa=>this.getAxisMotionValue(aa).stop())}pauseAnimation(){eachAxis(aa=>this.getAxisMotionValue(aa).animation?.pause())}getAnimationState(aa){return this.getAxisMotionValue(aa).animation?.state}getAxisMotionValue(aa){const ca=`_drag${aa.toUpperCase()}`,ua=this.visualElement.getProps(),Sa=ua[ca];return Sa||this.visualElement.getValue(aa,(ua.initial?ua.initial[aa]:void 0)||0)}snapToCursor(aa){eachAxis(ca=>{const{drag:ua}=this.getProps();if(!shouldDrag(ca,ua,this.currentDirection))return;const{projection:Sa}=this.visualElement,hl=this.getAxisMotionValue(ca);if(Sa&&Sa.layout){const{min:pl,max:ml}=Sa.layout.layoutBox[ca];hl.set(aa[ca]-mixNumber$1(pl,ml,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:aa,dragConstraints:ca}=this.getProps(),{projection:ua}=this.visualElement;if(!isRefObject(ca)||!ua||!this.constraints)return;this.stopAnimation();const Sa={x:0,y:0};eachAxis(pl=>{const ml=this.getAxisMotionValue(pl);if(ml&&this.constraints!==!1){const gl=ml.get();Sa[pl]=calcOrigin({min:gl,max:gl},this.constraints[pl])}});const{transformTemplate:hl}=this.visualElement.getProps();this.visualElement.current.style.transform=hl?hl({},""):"none",ua.root&&ua.root.updateScroll(),ua.updateLayout(),this.resolveConstraints(),eachAxis(pl=>{if(!shouldDrag(pl,aa,null))return;const ml=this.getAxisMotionValue(pl),{min:gl,max:wc}=this.constraints[pl];ml.set(mixNumber$1(gl,wc,Sa[pl]))})}addListeners(){if(!this.visualElement.current)return;elementDragControls.set(this.visualElement,this);const aa=this.visualElement.current,ca=addPointerEvent(aa,"pointerdown",gl=>{const{drag:wc,dragListener:xu=!0}=this.getProps();wc&&xu&&this.start(gl)}),ua=()=>{const{dragConstraints:gl}=this.getProps();isRefObject(gl)&&gl.current&&(this.constraints=this.resolveRefConstraints())},{projection:Sa}=this.visualElement,hl=Sa.addEventListener("measure",ua);Sa&&!Sa.layout&&(Sa.root&&Sa.root.updateScroll(),Sa.updateLayout()),frame.read(ua);const pl=addDomEvent(window,"resize",()=>this.scalePositionWithinConstraints()),ml=Sa.addEventListener("didUpdate",(({delta:gl,hasLayoutChanged:wc})=>{this.isDragging&&wc&&(eachAxis(xu=>{const ff=this.getAxisMotionValue(xu);ff&&(this.originPoint[xu]+=gl[xu].translate,ff.set(ff.get()+gl[xu].translate))}),this.visualElement.render())}));return()=>{pl(),ca(),hl(),ml&&ml()}}getProps(){const aa=this.visualElement.getProps(),{drag:ca=!1,dragDirectionLock:ua=!1,dragPropagation:Sa=!1,dragConstraints:hl=!1,dragElastic:pl=defaultElastic,dragMomentum:ml=!0}=aa;return{...aa,drag:ca,dragDirectionLock:ua,dragPropagation:Sa,dragConstraints:hl,dragElastic:pl,dragMomentum:ml}}}function shouldDrag(la,aa,ca){return(aa===!0||aa===la)&&(ca===null||ca===la)}function getCurrentDirection(la,aa=10){let ca=null;return Math.abs(la.y)>aa?ca="y":Math.abs(la.x)>aa&&(ca="x"),ca}class DragGesture extends Feature{constructor(aa){super(aa),this.removeGroupControls=noop$3,this.removeListeners=noop$3,this.controls=new VisualElementDragControls(aa)}mount(){const{dragControls:aa}=this.node.getProps();aa&&(this.removeGroupControls=aa.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||noop$3}unmount(){this.removeGroupControls(),this.removeListeners()}}const asyncHandler=la=>(aa,ca)=>{la&&frame.postRender(()=>la(aa,ca))};class PanGesture extends Feature{constructor(){super(...arguments),this.removePointerDownListener=noop$3}onPointerDown(aa){this.session=new PanSession(aa,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:getContextWindow(this.node)})}createPanHandlers(){const{onPanSessionStart:aa,onPanStart:ca,onPan:ua,onPanEnd:Sa}=this.node.getProps();return{onSessionStart:asyncHandler(aa),onStart:asyncHandler(ca),onMove:ua,onEnd:(hl,pl)=>{delete this.session,Sa&&frame.postRender(()=>Sa(hl,pl))}}}mount(){this.removePointerDownListener=addPointerEvent(this.node.current,"pointerdown",aa=>this.onPointerDown(aa))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const globalProjectionState={hasAnimatedSinceResize:!0,hasEverUpdated:!1};let hasTakenAnySnapshot=!1;class MeasureLayoutWithContext extends reactExports.Component{componentDidMount(){const{visualElement:aa,layoutGroup:ca,switchLayoutGroup:ua,layoutId:Sa}=this.props,{projection:hl}=aa;hl&&(ca.group&&ca.group.add(hl),ua&&ua.register&&Sa&&ua.register(hl),hasTakenAnySnapshot&&hl.root.didUpdate(),hl.addEventListener("animationComplete",()=>{this.safeToRemove()}),hl.setOptions({...hl.options,onExitComplete:()=>this.safeToRemove()})),globalProjectionState.hasEverUpdated=!0}getSnapshotBeforeUpdate(aa){const{layoutDependency:ca,visualElement:ua,drag:Sa,isPresent:hl}=this.props,{projection:pl}=ua;return pl&&(pl.isPresent=hl,hasTakenAnySnapshot=!0,Sa||aa.layoutDependency!==ca||ca===void 0||aa.isPresent!==hl?pl.willUpdate():this.safeToRemove(),aa.isPresent!==hl&&(hl?pl.promote():pl.relegate()||frame.postRender(()=>{const ml=pl.getStack();(!ml||!ml.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:aa}=this.props.visualElement;aa&&(aa.root.didUpdate(),microtask.postRender(()=>{!aa.currentAnimation&&aa.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:aa,layoutGroup:ca,switchLayoutGroup:ua}=this.props,{projection:Sa}=aa;hasTakenAnySnapshot=!0,Sa&&(Sa.scheduleCheckAfterUnmount(),ca&&ca.group&&ca.group.remove(Sa),ua&&ua.deregister&&ua.deregister(Sa))}safeToRemove(){const{safeToRemove:aa}=this.props;aa&&aa()}render(){return null}}function MeasureLayout(la){const[aa,ca]=usePresence$1(),ua=reactExports.useContext(LayoutGroupContext);return jsxRuntimeExports.jsx(MeasureLayoutWithContext,{...la,layoutGroup:ua,switchLayoutGroup:reactExports.useContext(SwitchLayoutGroupContext),isPresent:aa,safeToRemove:ca})}function animateSingleValue(la,aa,ca){const ua=isMotionValue(la)?la:motionValue(la);return ua.start(animateMotionValue("",ua,aa,ca)),ua.animation}const compareByDepth=(la,aa)=>la.depth-aa.depth;class FlatTree{constructor(){this.children=[],this.isDirty=!1}add(aa){addUniqueItem(this.children,aa),this.isDirty=!0}remove(aa){removeItem$1(this.children,aa),this.isDirty=!0}forEach(aa){this.isDirty&&this.children.sort(compareByDepth),this.isDirty=!1,this.children.forEach(aa)}}function delay(la,aa){const ca=time.now(),ua=({timestamp:Sa})=>{const hl=Sa-ca;hl>=aa&&(cancelFrame(ua),la(hl-aa))};return frame.setup(ua,!0),()=>cancelFrame(ua)}const borders=["TopLeft","TopRight","BottomLeft","BottomRight"],numBorders=borders.length,asNumber=la=>typeof la=="string"?parseFloat(la):la,isPx=la=>typeof la=="number"||px.test(la);function mixValues(la,aa,ca,ua,Sa,hl){Sa?(la.opacity=mixNumber$1(0,ca.opacity??1,easeCrossfadeIn(ua)),la.opacityExit=mixNumber$1(aa.opacity??1,0,easeCrossfadeOut(ua))):hl&&(la.opacity=mixNumber$1(aa.opacity??1,ca.opacity??1,ua));for(let pl=0;pl<numBorders;pl++){const ml=`border${borders[pl]}Radius`;let gl=getRadius(aa,ml),wc=getRadius(ca,ml);if(gl===void 0&&wc===void 0)continue;gl||(gl=0),wc||(wc=0),gl===0||wc===0||isPx(gl)===isPx(wc)?(la[ml]=Math.max(mixNumber$1(asNumber(gl),asNumber(wc),ua),0),(percent.test(wc)||percent.test(gl))&&(la[ml]+="%")):la[ml]=wc}(aa.rotate||ca.rotate)&&(la.rotate=mixNumber$1(aa.rotate||0,ca.rotate||0,ua))}function getRadius(la,aa){return la[aa]!==void 0?la[aa]:la.borderRadius}const easeCrossfadeIn=compress(0,.5,circOut),easeCrossfadeOut=compress(.5,.95,noop$3);function compress(la,aa,ca){return ua=>ua<la?0:ua>aa?1:ca(progress(la,aa,ua))}function copyAxisInto(la,aa){la.min=aa.min,la.max=aa.max}function copyBoxInto(la,aa){copyAxisInto(la.x,aa.x),copyAxisInto(la.y,aa.y)}function copyAxisDeltaInto(la,aa){la.translate=aa.translate,la.scale=aa.scale,la.originPoint=aa.originPoint,la.origin=aa.origin}function removePointDelta(la,aa,ca,ua,Sa){return la-=aa,la=scalePoint(la,1/ca,ua),Sa!==void 0&&(la=scalePoint(la,1/Sa,ua)),la}function removeAxisDelta(la,aa=0,ca=1,ua=.5,Sa,hl=la,pl=la){if(percent.test(aa)&&(aa=parseFloat(aa),aa=mixNumber$1(pl.min,pl.max,aa/100)-pl.min),typeof aa!="number")return;let ml=mixNumber$1(hl.min,hl.max,ua);la===hl&&(ml-=aa),la.min=removePointDelta(la.min,aa,ca,ml,Sa),la.max=removePointDelta(la.max,aa,ca,ml,Sa)}function removeAxisTransforms(la,aa,[ca,ua,Sa],hl,pl){removeAxisDelta(la,aa[ca],aa[ua],aa[Sa],aa.scale,hl,pl)}const xKeys=["x","scaleX","originX"],yKeys=["y","scaleY","originY"];function removeBoxTransforms(la,aa,ca,ua){removeAxisTransforms(la.x,aa,xKeys,ca?ca.x:void 0,ua?ua.x:void 0),removeAxisTransforms(la.y,aa,yKeys,ca?ca.y:void 0,ua?ua.y:void 0)}function isAxisDeltaZero(la){return la.translate===0&&la.scale===1}function isDeltaZero(la){return isAxisDeltaZero(la.x)&&isAxisDeltaZero(la.y)}function axisEquals(la,aa){return la.min===aa.min&&la.max===aa.max}function boxEquals(la,aa){return axisEquals(la.x,aa.x)&&axisEquals(la.y,aa.y)}function axisEqualsRounded(la,aa){return Math.round(la.min)===Math.round(aa.min)&&Math.round(la.max)===Math.round(aa.max)}function boxEqualsRounded(la,aa){return axisEqualsRounded(la.x,aa.x)&&axisEqualsRounded(la.y,aa.y)}function aspectRatio(la){return calcLength(la.x)/calcLength(la.y)}function axisDeltaEquals(la,aa){return la.translate===aa.translate&&la.scale===aa.scale&&la.originPoint===aa.originPoint}class NodeStack{constructor(){this.members=[]}add(aa){addUniqueItem(this.members,aa),aa.scheduleRender()}remove(aa){if(removeItem$1(this.members,aa),aa===this.prevLead&&(this.prevLead=void 0),aa===this.lead){const ca=this.members[this.members.length-1];ca&&this.promote(ca)}}relegate(aa){const ca=this.members.findIndex(Sa=>aa===Sa);if(ca===0)return!1;let ua;for(let Sa=ca;Sa>=0;Sa--){const hl=this.members[Sa];if(hl.isPresent!==!1){ua=hl;break}}return ua?(this.promote(ua),!0):!1}promote(aa,ca){const ua=this.lead;if(aa!==ua&&(this.prevLead=ua,this.lead=aa,aa.show(),ua)){ua.instance&&ua.scheduleRender(),aa.scheduleRender(),aa.resumeFrom=ua,ca&&(aa.resumeFrom.preserveOpacity=!0),ua.snapshot&&(aa.snapshot=ua.snapshot,aa.snapshot.latestValues=ua.animationValues||ua.latestValues),aa.root&&aa.root.isUpdating&&(aa.isLayoutDirty=!0);const{crossfade:Sa}=aa.options;Sa===!1&&ua.hide()}}exitAnimationComplete(){this.members.forEach(aa=>{const{options:ca,resumingFrom:ua}=aa;ca.onExitComplete&&ca.onExitComplete(),ua&&ua.options.onExitComplete&&ua.options.onExitComplete()})}scheduleRender(){this.members.forEach(aa=>{aa.instance&&aa.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function buildProjectionTransform(la,aa,ca){let ua="";const Sa=la.x.translate/aa.x,hl=la.y.translate/aa.y,pl=ca?.z||0;if((Sa||hl||pl)&&(ua=`translate3d(${Sa}px, ${hl}px, ${pl}px) `),(aa.x!==1||aa.y!==1)&&(ua+=`scale(${1/aa.x}, ${1/aa.y}) `),ca){const{transformPerspective:wc,rotate:xu,rotateX:ff,rotateY:jf,skewX:Uf,skewY:rp}=ca;wc&&(ua=`perspective(${wc}px) ${ua}`),xu&&(ua+=`rotate(${xu}deg) `),ff&&(ua+=`rotateX(${ff}deg) `),jf&&(ua+=`rotateY(${jf}deg) `),Uf&&(ua+=`skewX(${Uf}deg) `),rp&&(ua+=`skewY(${rp}deg) `)}const ml=la.x.scale*aa.x,gl=la.y.scale*aa.y;return(ml!==1||gl!==1)&&(ua+=`scale(${ml}, ${gl})`),ua||"none"}const transformAxes=["","X","Y","Z"],animationTarget=1e3;let id=0;function resetDistortingTransform(la,aa,ca,ua){const{latestValues:Sa}=aa;Sa[la]&&(ca[la]=Sa[la],aa.setStaticValue(la,0),ua&&(ua[la]=0))}function cancelTreeOptimisedTransformAnimations(la){if(la.hasCheckedOptimisedAppear=!0,la.root===la)return;const{visualElement:aa}=la.options;if(!aa)return;const ca=getOptimisedAppearId(aa);if(window.MotionHasOptimisedAnimation(ca,"transform")){const{layout:Sa,layoutId:hl}=la.options;window.MotionCancelOptimisedAnimation(ca,"transform",frame,!(Sa||hl))}const{parent:ua}=la;ua&&!ua.hasCheckedOptimisedAppear&&cancelTreeOptimisedTransformAnimations(ua)}function createProjectionNode({attachResizeListener:la,defaultParent:aa,measureScroll:ca,checkIsScrollRoot:ua,resetTransform:Sa}){return class{constructor(pl={},ml=aa?.()){this.id=id++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(propagateDirtyNodes),this.nodes.forEach(resolveTargetDelta),this.nodes.forEach(calcProjection),this.nodes.forEach(cleanDirtyNodes)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=pl,this.root=ml?ml.root||ml:this,this.path=ml?[...ml.path,ml]:[],this.parent=ml,this.depth=ml?ml.depth+1:0;for(let gl=0;gl<this.path.length;gl++)this.path[gl].shouldResetTransform=!0;this.root===this&&(this.nodes=new FlatTree)}addEventListener(pl,ml){return this.eventHandlers.has(pl)||this.eventHandlers.set(pl,new SubscriptionManager),this.eventHandlers.get(pl).add(ml)}notifyListeners(pl,...ml){const gl=this.eventHandlers.get(pl);gl&&gl.notify(...ml)}hasListeners(pl){return this.eventHandlers.has(pl)}mount(pl){if(this.instance)return;this.isSVG=isSVGElement$1(pl)&&!isSVGSVGElement(pl),this.instance=pl;const{layoutId:ml,layout:gl,visualElement:wc}=this.options;if(wc&&!wc.current&&wc.mount(pl),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(gl||ml)&&(this.isLayoutDirty=!0),la){let xu,ff=0;const jf=()=>this.root.updateBlockedByResize=!1;frame.read(()=>{ff=window.innerWidth}),la(pl,()=>{const Uf=window.innerWidth;Uf!==ff&&(ff=Uf,this.root.updateBlockedByResize=!0,xu&&xu(),xu=delay(jf,250),globalProjectionState.hasAnimatedSinceResize&&(globalProjectionState.hasAnimatedSinceResize=!1,this.nodes.forEach(finishAnimation)))})}ml&&this.root.registerSharedNode(ml,this),this.options.animate!==!1&&wc&&(ml||gl)&&this.addEventListener("didUpdate",({delta:xu,hasLayoutChanged:ff,hasRelativeLayoutChanged:jf,layout:Uf})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const rp=this.options.transition||wc.getDefaultTransition()||defaultLayoutTransition,{onLayoutAnimationStart:np,onLayoutAnimationComplete:qm}=wc.getProps(),Vm=!this.targetLayout||!boxEqualsRounded(this.targetLayout,Uf),eg=!ff&&jf;if(this.options.layoutRoot||this.resumeFrom||eg||ff&&(Vm||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const tg={...getValueTransition(rp,"layout"),onPlay:np,onComplete:qm};(wc.shouldReduceMotion||this.options.layoutRoot)&&(tg.delay=0,tg.type=!1),this.startAnimation(tg),this.setAnimationOrigin(xu,eg)}else ff||finishAnimation(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=Uf})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const pl=this.getStack();pl&&pl.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),cancelFrame(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(resetSkewAndRotation),this.animationId++)}getTransformTemplate(){const{visualElement:pl}=this.options;return pl&&pl.getProps().transformTemplate}willUpdate(pl=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&cancelTreeOptimisedTransformAnimations(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let xu=0;xu<this.path.length;xu++){const ff=this.path[xu];ff.shouldResetTransform=!0,ff.updateScroll("snapshot"),ff.options.layoutRoot&&ff.willUpdate(!1)}const{layoutId:ml,layout:gl}=this.options;if(ml===void 0&&!gl)return;const wc=this.getTransformTemplate();this.prevTransformTemplateValue=wc?wc(this.latestValues,""):void 0,this.updateSnapshot(),pl&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(clearMeasurements);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(clearIsLayoutDirty);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(resetTransformStyle),this.nodes.forEach(updateLayout),this.nodes.forEach(notifyLayoutUpdate)):this.nodes.forEach(clearIsLayoutDirty),this.clearAllSnapshots();const ml=time.now();frameData.delta=clamp$1(0,1e3/60,ml-frameData.timestamp),frameData.timestamp=ml,frameData.isProcessing=!0,frameSteps.update.process(frameData),frameSteps.preRender.process(frameData),frameSteps.render.process(frameData),frameData.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,microtask.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(clearSnapshot),this.sharedNodes.forEach(removeLeadSnapshots)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,frame.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){frame.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!calcLength(this.snapshot.measuredBox.x)&&!calcLength(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let gl=0;gl<this.path.length;gl++)this.path[gl].updateScroll();const pl=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected=createBox(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:ml}=this.options;ml&&ml.notify("LayoutMeasure",this.layout.layoutBox,pl?pl.layoutBox:void 0)}updateScroll(pl="measure"){let ml=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===pl&&(ml=!1),ml&&this.instance){const gl=ua(this.instance);this.scroll={animationId:this.root.animationId,phase:pl,isRoot:gl,offset:ca(this.instance),wasRoot:this.scroll?this.scroll.isRoot:gl}}}resetTransform(){if(!Sa)return;const pl=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,ml=this.projectionDelta&&!isDeltaZero(this.projectionDelta),gl=this.getTransformTemplate(),wc=gl?gl(this.latestValues,""):void 0,xu=wc!==this.prevTransformTemplateValue;pl&&this.instance&&(ml||hasTransform(this.latestValues)||xu)&&(Sa(this.instance,wc),this.shouldResetTransform=!1,this.scheduleRender())}measure(pl=!0){const ml=this.measurePageBox();let gl=this.removeElementScroll(ml);return pl&&(gl=this.removeTransform(gl)),roundBox(gl),{animationId:this.root.animationId,measuredBox:ml,layoutBox:gl,latestValues:{},source:this.id}}measurePageBox(){const{visualElement:pl}=this.options;if(!pl)return createBox();const ml=pl.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(checkNodeWasScrollRoot))){const{scroll:wc}=this.root;wc&&(translateAxis(ml.x,wc.offset.x),translateAxis(ml.y,wc.offset.y))}return ml}removeElementScroll(pl){const ml=createBox();if(copyBoxInto(ml,pl),this.scroll?.wasRoot)return ml;for(let gl=0;gl<this.path.length;gl++){const wc=this.path[gl],{scroll:xu,options:ff}=wc;wc!==this.root&&xu&&ff.layoutScroll&&(xu.wasRoot&©BoxInto(ml,pl),translateAxis(ml.x,xu.offset.x),translateAxis(ml.y,xu.offset.y))}return ml}applyTransform(pl,ml=!1){const gl=createBox();copyBoxInto(gl,pl);for(let wc=0;wc<this.path.length;wc++){const xu=this.path[wc];!ml&&xu.options.layoutScroll&&xu.scroll&&xu!==xu.root&&transformBox(gl,{x:-xu.scroll.offset.x,y:-xu.scroll.offset.y}),hasTransform(xu.latestValues)&&transformBox(gl,xu.latestValues)}return hasTransform(this.latestValues)&&transformBox(gl,this.latestValues),gl}removeTransform(pl){const ml=createBox();copyBoxInto(ml,pl);for(let gl=0;gl<this.path.length;gl++){const wc=this.path[gl];if(!wc.instance||!hasTransform(wc.latestValues))continue;hasScale(wc.latestValues)&&wc.updateSnapshot();const xu=createBox(),ff=wc.measurePageBox();copyBoxInto(xu,ff),removeBoxTransforms(ml,wc.latestValues,wc.snapshot?wc.snapshot.layoutBox:void 0,xu)}return hasTransform(this.latestValues)&&removeBoxTransforms(ml,this.latestValues),ml}setTargetDelta(pl){this.targetDelta=pl,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(pl){this.options={...this.options,...pl,crossfade:pl.crossfade!==void 0?pl.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==frameData.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(pl=!1){const ml=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=ml.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=ml.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=ml.isSharedProjectionDirty);const gl=!!this.resumingFrom||this!==ml;if(!(pl||gl&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:xu,layoutId:ff}=this.options;if(!this.layout||!(xu||ff))return;this.resolvedRelativeTargetAt=frameData.timestamp;const jf=this.getClosestProjectingParent();jf&&this.linkedParentVersion!==jf.layoutVersion&&!jf.options.layoutRoot&&this.removeRelativeTarget(),!this.targetDelta&&!this.relativeTarget&&(jf&&jf.layout?this.createRelativeTarget(jf,this.layout.layoutBox,jf.layout.layoutBox):this.removeRelativeTarget()),!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=createBox(),this.targetWithTransforms=createBox()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),calcRelativeBox(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):copyBoxInto(this.target,this.layout.layoutBox),applyBoxDelta(this.target,this.targetDelta)):copyBoxInto(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,jf&&!!jf.resumingFrom==!!this.resumingFrom&&!jf.options.layoutScroll&&jf.target&&this.animationProgress!==1?this.createRelativeTarget(jf,this.target,jf.target):this.relativeParent=this.relativeTarget=void 0))}getClosestProjectingParent(){if(!(!this.parent||hasScale(this.parent.latestValues)||has2DTranslate(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(pl,ml,gl){this.relativeParent=pl,this.linkedParentVersion=pl.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=createBox(),this.relativeTargetOrigin=createBox(),calcRelativePosition(this.relativeTargetOrigin,ml,gl),copyBoxInto(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){const pl=this.getLead(),ml=!!this.resumingFrom||this!==pl;let gl=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(gl=!1),ml&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(gl=!1),this.resolvedRelativeTargetAt===frameData.timestamp&&(gl=!1),gl)return;const{layout:wc,layoutId:xu}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(wc||xu))return;copyBoxInto(this.layoutCorrected,this.layout.layoutBox);const ff=this.treeScale.x,jf=this.treeScale.y;applyTreeDeltas(this.layoutCorrected,this.treeScale,this.path,ml),pl.layout&&!pl.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(pl.target=pl.layout.layoutBox,pl.targetWithTransforms=createBox());const{target:Uf}=pl;if(!Uf){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(copyAxisDeltaInto(this.prevProjectionDelta.x,this.projectionDelta.x),copyAxisDeltaInto(this.prevProjectionDelta.y,this.projectionDelta.y)),calcBoxDelta(this.projectionDelta,this.layoutCorrected,Uf,this.latestValues),(this.treeScale.x!==ff||this.treeScale.y!==jf||!axisDeltaEquals(this.projectionDelta.x,this.prevProjectionDelta.x)||!axisDeltaEquals(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",Uf))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(pl=!0){if(this.options.visualElement?.scheduleRender(),pl){const ml=this.getStack();ml&&ml.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=createDelta(),this.projectionDelta=createDelta(),this.projectionDeltaWithTransform=createDelta()}setAnimationOrigin(pl,ml=!1){const gl=this.snapshot,wc=gl?gl.latestValues:{},xu={...this.latestValues},ff=createDelta();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!ml;const jf=createBox(),Uf=gl?gl.source:void 0,rp=this.layout?this.layout.source:void 0,np=Uf!==rp,qm=this.getStack(),Vm=!qm||qm.members.length<=1,eg=!!(np&&!Vm&&this.options.crossfade===!0&&!this.path.some(hasOpacityCrossfade));this.animationProgress=0;let tg;this.mixTargetDelta=rg=>{const ig=rg/1e3;mixAxisDelta(ff.x,pl.x,ig),mixAxisDelta(ff.y,pl.y,ig),this.setTargetDelta(ff),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(calcRelativePosition(jf,this.layout.layoutBox,this.relativeParent.layout.layoutBox),mixBox(this.relativeTarget,this.relativeTargetOrigin,jf,ig),tg&&boxEquals(this.relativeTarget,tg)&&(this.isProjectionDirty=!1),tg||(tg=createBox()),copyBoxInto(tg,this.relativeTarget)),np&&(this.animationValues=xu,mixValues(xu,wc,this.latestValues,ig,eg,Vm)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=ig},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(pl){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(cancelFrame(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=frame.update(()=>{globalProjectionState.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=motionValue(0)),this.currentAnimation=animateSingleValue(this.motionValue,[0,1e3],{...pl,velocity:0,isSync:!0,onUpdate:ml=>{this.mixTargetDelta(ml),pl.onUpdate&&pl.onUpdate(ml)},onStop:()=>{},onComplete:()=>{pl.onComplete&&pl.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const pl=this.getStack();pl&&pl.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(animationTarget),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const pl=this.getLead();let{targetWithTransforms:ml,target:gl,layout:wc,latestValues:xu}=pl;if(!(!ml||!gl||!wc)){if(this!==pl&&this.layout&&wc&&shouldAnimatePositionOnly(this.options.animationType,this.layout.layoutBox,wc.layoutBox)){gl=this.target||createBox();const ff=calcLength(this.layout.layoutBox.x);gl.x.min=pl.target.x.min,gl.x.max=gl.x.min+ff;const jf=calcLength(this.layout.layoutBox.y);gl.y.min=pl.target.y.min,gl.y.max=gl.y.min+jf}copyBoxInto(ml,gl),transformBox(ml,xu),calcBoxDelta(this.projectionDeltaWithTransform,this.layoutCorrected,ml,xu)}}registerSharedNode(pl,ml){this.sharedNodes.has(pl)||this.sharedNodes.set(pl,new NodeStack),this.sharedNodes.get(pl).add(ml);const wc=ml.options.initialPromotionConfig;ml.promote({transition:wc?wc.transition:void 0,preserveFollowOpacity:wc&&wc.shouldPreserveFollowOpacity?wc.shouldPreserveFollowOpacity(ml):void 0})}isLead(){const pl=this.getStack();return pl?pl.lead===this:!0}getLead(){const{layoutId:pl}=this.options;return pl?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:pl}=this.options;return pl?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:pl}=this.options;if(pl)return this.root.sharedNodes.get(pl)}promote({needsReset:pl,transition:ml,preserveFollowOpacity:gl}={}){const wc=this.getStack();wc&&wc.promote(this,gl),pl&&(this.projectionDelta=void 0,this.needsReset=!0),ml&&this.setOptions({transition:ml})}relegate(){const pl=this.getStack();return pl?pl.relegate(this):!1}resetSkewAndRotation(){const{visualElement:pl}=this.options;if(!pl)return;let ml=!1;const{latestValues:gl}=pl;if((gl.z||gl.rotate||gl.rotateX||gl.rotateY||gl.rotateZ||gl.skewX||gl.skewY)&&(ml=!0),!ml)return;const wc={};gl.z&&resetDistortingTransform("z",pl,wc,this.animationValues);for(let xu=0;xu<transformAxes.length;xu++)resetDistortingTransform(`rotate${transformAxes[xu]}`,pl,wc,this.animationValues),resetDistortingTransform(`skew${transformAxes[xu]}`,pl,wc,this.animationValues);pl.render();for(const xu in wc)pl.setStaticValue(xu,wc[xu]),this.animationValues&&(this.animationValues[xu]=wc[xu]);pl.scheduleRender()}applyProjectionStyles(pl,ml){if(!this.instance||this.isSVG)return;if(!this.isVisible){pl.visibility="hidden";return}const gl=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,pl.visibility="",pl.opacity="",pl.pointerEvents=resolveMotionValue(ml?.pointerEvents)||"",pl.transform=gl?gl(this.latestValues,""):"none";return}const wc=this.getLead();if(!this.projectionDelta||!this.layout||!wc.target){this.options.layoutId&&(pl.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,pl.pointerEvents=resolveMotionValue(ml?.pointerEvents)||""),this.hasProjected&&!hasTransform(this.latestValues)&&(pl.transform=gl?gl({},""):"none",this.hasProjected=!1);return}pl.visibility="";const xu=wc.animationValues||wc.latestValues;this.applyTransformsToTarget();let ff=buildProjectionTransform(this.projectionDeltaWithTransform,this.treeScale,xu);gl&&(ff=gl(xu,ff)),pl.transform=ff;const{x:jf,y:Uf}=this.projectionDelta;pl.transformOrigin=`${jf.origin*100}% ${Uf.origin*100}% 0`,wc.animationValues?pl.opacity=wc===this?xu.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:xu.opacityExit:pl.opacity=wc===this?xu.opacity!==void 0?xu.opacity:"":xu.opacityExit!==void 0?xu.opacityExit:0;for(const rp in scaleCorrectors){if(xu[rp]===void 0)continue;const{correct:np,applyTo:qm,isCSSVariable:Vm}=scaleCorrectors[rp],eg=ff==="none"?xu[rp]:np(xu[rp],wc);if(qm){const tg=qm.length;for(let rg=0;rg<tg;rg++)pl[qm[rg]]=eg}else Vm?this.options.visualElement.renderState.vars[rp]=eg:pl[rp]=eg}this.options.layoutId&&(pl.pointerEvents=wc===this?resolveMotionValue(ml?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(pl=>pl.currentAnimation?.stop()),this.root.nodes.forEach(clearMeasurements),this.root.sharedNodes.clear()}}}function updateLayout(la){la.updateLayout()}function notifyLayoutUpdate(la){const aa=la.resumeFrom?.snapshot||la.snapshot;if(la.isLead()&&la.layout&&aa&&la.hasListeners("didUpdate")){const{layoutBox:ca,measuredBox:ua}=la.layout,{animationType:Sa}=la.options,hl=aa.source!==la.layout.source;Sa==="size"?eachAxis(xu=>{const ff=hl?aa.measuredBox[xu]:aa.layoutBox[xu],jf=calcLength(ff);ff.min=ca[xu].min,ff.max=ff.min+jf}):shouldAnimatePositionOnly(Sa,aa.layoutBox,ca)&&eachAxis(xu=>{const ff=hl?aa.measuredBox[xu]:aa.layoutBox[xu],jf=calcLength(ca[xu]);ff.max=ff.min+jf,la.relativeTarget&&!la.currentAnimation&&(la.isProjectionDirty=!0,la.relativeTarget[xu].max=la.relativeTarget[xu].min+jf)});const pl=createDelta();calcBoxDelta(pl,ca,aa.layoutBox);const ml=createDelta();hl?calcBoxDelta(ml,la.applyTransform(ua,!0),aa.measuredBox):calcBoxDelta(ml,ca,aa.layoutBox);const gl=!isDeltaZero(pl);let wc=!1;if(!la.resumeFrom){const xu=la.getClosestProjectingParent();if(xu&&!xu.resumeFrom){const{snapshot:ff,layout:jf}=xu;if(ff&&jf){const Uf=createBox();calcRelativePosition(Uf,aa.layoutBox,ff.layoutBox);const rp=createBox();calcRelativePosition(rp,ca,jf.layoutBox),boxEqualsRounded(Uf,rp)||(wc=!0),xu.options.layoutRoot&&(la.relativeTarget=rp,la.relativeTargetOrigin=Uf,la.relativeParent=xu)}}}la.notifyListeners("didUpdate",{layout:ca,snapshot:aa,delta:ml,layoutDelta:pl,hasLayoutChanged:gl,hasRelativeLayoutChanged:wc})}else if(la.isLead()){const{onExitComplete:ca}=la.options;ca&&ca()}la.options.transition=void 0}function propagateDirtyNodes(la){la.parent&&(la.isProjecting()||(la.isProjectionDirty=la.parent.isProjectionDirty),la.isSharedProjectionDirty||(la.isSharedProjectionDirty=!!(la.isProjectionDirty||la.parent.isProjectionDirty||la.parent.isSharedProjectionDirty)),la.isTransformDirty||(la.isTransformDirty=la.parent.isTransformDirty))}function cleanDirtyNodes(la){la.isProjectionDirty=la.isSharedProjectionDirty=la.isTransformDirty=!1}function clearSnapshot(la){la.clearSnapshot()}function clearMeasurements(la){la.clearMeasurements()}function clearIsLayoutDirty(la){la.isLayoutDirty=!1}function resetTransformStyle(la){const{visualElement:aa}=la.options;aa&&aa.getProps().onBeforeLayoutMeasure&&aa.notify("BeforeLayoutMeasure"),la.resetTransform()}function finishAnimation(la){la.finishAnimation(),la.targetDelta=la.relativeTarget=la.target=void 0,la.isProjectionDirty=!0}function resolveTargetDelta(la){la.resolveTargetDelta()}function calcProjection(la){la.calcProjection()}function resetSkewAndRotation(la){la.resetSkewAndRotation()}function removeLeadSnapshots(la){la.removeLeadSnapshot()}function mixAxisDelta(la,aa,ca){la.translate=mixNumber$1(aa.translate,0,ca),la.scale=mixNumber$1(aa.scale,1,ca),la.origin=aa.origin,la.originPoint=aa.originPoint}function mixAxis(la,aa,ca,ua){la.min=mixNumber$1(aa.min,ca.min,ua),la.max=mixNumber$1(aa.max,ca.max,ua)}function mixBox(la,aa,ca,ua){mixAxis(la.x,aa.x,ca.x,ua),mixAxis(la.y,aa.y,ca.y,ua)}function hasOpacityCrossfade(la){return la.animationValues&&la.animationValues.opacityExit!==void 0}const defaultLayoutTransition={duration:.45,ease:[.4,0,.1,1]},userAgentContains=la=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(la),roundPoint=userAgentContains("applewebkit/")&&!userAgentContains("chrome/")?Math.round:noop$3;function roundAxis(la){la.min=roundPoint(la.min),la.max=roundPoint(la.max)}function roundBox(la){roundAxis(la.x),roundAxis(la.y)}function shouldAnimatePositionOnly(la,aa,ca){return la==="position"||la==="preserve-aspect"&&!isNear(aspectRatio(aa),aspectRatio(ca),.2)}function checkNodeWasScrollRoot(la){return la!==la.root&&la.scroll?.wasRoot}const DocumentProjectionNode=createProjectionNode({attachResizeListener:(la,aa)=>addDomEvent(la,"resize",aa),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),rootProjectionNode={current:void 0},HTMLProjectionNode=createProjectionNode({measureScroll:la=>({x:la.scrollLeft,y:la.scrollTop}),defaultParent:()=>{if(!rootProjectionNode.current){const la=new DocumentProjectionNode({});la.mount(window),la.setOptions({layoutScroll:!0}),rootProjectionNode.current=la}return rootProjectionNode.current},resetTransform:(la,aa)=>{la.style.transform=aa!==void 0?aa:"none"},checkIsScrollRoot:la=>window.getComputedStyle(la).position==="fixed"}),drag={pan:{Feature:PanGesture},drag:{Feature:DragGesture,ProjectionNode:HTMLProjectionNode,MeasureLayout}};function handleHoverEvent(la,aa,ca){const{props:ua}=la;la.animationState&&ua.whileHover&&la.animationState.setActive("whileHover",ca==="Start");const Sa="onHover"+ca,hl=ua[Sa];hl&&frame.postRender(()=>hl(aa,extractEventInfo(aa)))}class HoverGesture extends Feature{mount(){const{current:aa}=this.node;aa&&(this.unmount=hover(aa,(ca,ua)=>(handleHoverEvent(this.node,ua,"Start"),Sa=>handleHoverEvent(this.node,Sa,"End"))))}unmount(){}}class FocusGesture extends Feature{constructor(){super(...arguments),this.isActive=!1}onFocus(){let aa=!1;try{aa=this.node.current.matches(":focus-visible")}catch{aa=!0}!aa||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=pipe(addDomEvent(this.node.current,"focus",()=>this.onFocus()),addDomEvent(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function handlePressEvent(la,aa,ca){const{props:ua}=la;if(la.current instanceof HTMLButtonElement&&la.current.disabled)return;la.animationState&&ua.whileTap&&la.animationState.setActive("whileTap",ca==="Start");const Sa="onTap"+(ca==="End"?"":ca),hl=ua[Sa];hl&&frame.postRender(()=>hl(aa,extractEventInfo(aa)))}class PressGesture extends Feature{mount(){const{current:aa}=this.node;aa&&(this.unmount=press(aa,(ca,ua)=>(handlePressEvent(this.node,ua,"Start"),(Sa,{success:hl})=>handlePressEvent(this.node,Sa,hl?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const observerCallbacks=new WeakMap,observers=new WeakMap,fireObserverCallback=la=>{const aa=observerCallbacks.get(la.target);aa&&aa(la)},fireAllObserverCallbacks=la=>{la.forEach(fireObserverCallback)};function initIntersectionObserver({root:la,...aa}){const ca=la||document;observers.has(ca)||observers.set(ca,{});const ua=observers.get(ca),Sa=JSON.stringify(aa);return ua[Sa]||(ua[Sa]=new IntersectionObserver(fireAllObserverCallbacks,{root:la,...aa})),ua[Sa]}function observeIntersection(la,aa,ca){const ua=initIntersectionObserver(aa);return observerCallbacks.set(la,ca),ua.observe(la),()=>{observerCallbacks.delete(la),ua.unobserve(la)}}const thresholdNames={some:0,all:1};class InViewFeature extends Feature{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:aa={}}=this.node.getProps(),{root:ca,margin:ua,amount:Sa="some",once:hl}=aa,pl={root:ca?ca.current:void 0,rootMargin:ua,threshold:typeof Sa=="number"?Sa:thresholdNames[Sa]},ml=gl=>{const{isIntersecting:wc}=gl;if(this.isInView===wc||(this.isInView=wc,hl&&!wc&&this.hasEnteredView))return;wc&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",wc);const{onViewportEnter:xu,onViewportLeave:ff}=this.node.getProps(),jf=wc?xu:ff;jf&&jf(gl)};return observeIntersection(this.node.current,pl,ml)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:aa,prevProps:ca}=this.node;["amount","margin","root"].some(hasViewportOptionChanged(aa,ca))&&this.startObserver()}unmount(){}}function hasViewportOptionChanged({viewport:la={}},{viewport:aa={}}={}){return ca=>la[ca]!==aa[ca]}const gestureAnimations={inView:{Feature:InViewFeature},tap:{Feature:PressGesture},focus:{Feature:FocusGesture},hover:{Feature:HoverGesture}},layout={layout:{ProjectionNode:HTMLProjectionNode,MeasureLayout}},featureBundle={...animations,...gestureAnimations,...drag,...layout},motion=createMotionProxy(featureBundle,createDomVisualElement),LoadingOverlay=({steps:la,currentStep:aa,isVisible:ca,statusMessage:ua,isSuccess:Sa,isError:hl,title:pl="Importing Team",subtitle:ml="Please wait while we import your team from GitHub..."})=>{const gl=jf=>{const Uf=la.findIndex(np=>np.id===aa),rp=la.findIndex(np=>np.id===jf);return hl&&jf===aa?"error":rp<Uf?"completed":rp===Uf?"loading":"pending"},wc=jf=>{switch(jf){case"completed":return jsxRuntimeExports.jsx(Icon,{icon:"material-symbols:check-circle",className:"w-5 h-5 text-green-500"});case"loading":return jsxRuntimeExports.jsx(motion.div,{animate:{rotate:360},transition:{duration:1,repeat:1/0,ease:"linear"},children:jsxRuntimeExports.jsx(Icon,{icon:"eos-icons:loading",className:"w-5 h-5 text-blue-500"})});case"error":return jsxRuntimeExports.jsx(Icon,{icon:"material-symbols:error",className:"w-5 h-5 text-red-500"});default:return jsxRuntimeExports.jsx("div",{className:"w-5 h-5 rounded-full border-2 border-gray-400"})}},xu=la.filter(jf=>gl(jf.id)==="completed").length,ff=xu/la.length*100;return jsxRuntimeExports.jsx(AnimatePresence,{children:ca&&jsxRuntimeExports.jsx(motion.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"absolute inset-0 bg-black/80 backdrop-blur-sm flex items-center justify-center z-[999] rounded-lg",children:jsxRuntimeExports.jsxs(motion.div,{initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.9,opacity:0},className:"bg-secondary p-6 rounded-lg max-w-md w-full mx-4",children:[jsxRuntimeExports.jsxs("div",{className:"text-center mb-6",children:[jsxRuntimeExports.jsx(motion.div,{animate:{rotate:360},transition:{duration:2,repeat:1/0,ease:"linear"},className:"inline-block mb-3",children:jsxRuntimeExports.jsx(Icon,{icon:icons.github,className:"w-8 h-8 text-blue-500"})}),jsxRuntimeExports.jsx("h3",{className:"text-lg font-semibold text-white mb-2",children:pl}),jsxRuntimeExports.jsx("p",{className:"text-sm text-gray-400",children:ml})]}),jsxRuntimeExports.jsx("div",{className:"space-y-3 mb-4",children:la.map((jf,Uf)=>{const rp=gl(jf.id);return jsxRuntimeExports.jsxs(motion.div,{initial:{x:-20,opacity:0},animate:{x:0,opacity:1},transition:{delay:Uf*.1,duration:.3},className:`flex items-center space-x-3 p-2 rounded transition-colors ${rp==="loading"?"bg-blue-500/20 border border-blue-500/30":rp==="completed"?"bg-green-500/20 border border-green-500/30":rp==="error"?"bg-red-500/20 border border-red-500/30":"bg-gray-500/20 border border-gray-500/30"}`,children:[wc(rp),jsxRuntimeExports.jsx("span",{className:`flex-1 text-sm ${rp==="completed"?"text-green-400":rp==="loading"?"text-blue-400":rp==="error"?"text-red-400":"text-gray-400"}`,children:jf.label})]},jf.id)})}),jsxRuntimeExports.jsx("div",{className:"w-full h-2 bg-gray-700 rounded-full overflow-hidden mb-2",children:jsxRuntimeExports.jsx(motion.div,{className:`h-full ${hl?"bg-red-500":"bg-blue-500"}`,initial:{width:"0%"},animate:{width:`${ff}%`},transition:{duration:.5,ease:"easeInOut"}})}),jsxRuntimeExports.jsxs("p",{className:"text-xs text-center text-gray-400 mb-4",children:[xu," of ",la.length," steps completed"]}),ua&&jsxRuntimeExports.jsx(motion.div,{initial:{y:10,opacity:0},animate:{y:0,opacity:1},transition:{delay:.2},className:`p-3 rounded text-sm text-center ${Sa?"bg-green-500/20 text-green-400":hl?"bg-red-500/20 text-red-400":"bg-blue-500/20 text-blue-400"}`,children:ua})]})})})},initialValues$1={name:""},getValidationSchema=la=>create$3().shape({name:create$6().required("Team's Name is required").max(50,"Team's Name must be less than 50 characters").matches(/^\S*$/,"Team's Name cannot contain space").matches(/^[a-zA-Z0-9_-]+$/,"Team's Name cannot contain special character").test("unique-name","Team with same name already exists",aa=>aa?!la.includes(aa.toLowerCase()):!0)}),NewTeam=({closeHandler:la})=>{const{workspaceApps:aa}=useTeams(),{addTeam:ca,isLoading:ua,currentStep:Sa,statusMessage:hl,loadingSteps:pl}=useAddTeam(),ml=(aa||[]).map(xu=>(xu?.Name||"").toLowerCase()),gl=getValidationSchema(ml),wc=useOutsideClickHandler(la);return jsxRuntimeExports.jsxs("div",{className:"modal-container",children:[jsxRuntimeExports.jsx(LoadingOverlay,{steps:pl,currentStep:Sa,isVisible:ua,statusMessage:hl,title:"Creating Team",subtitle:"Please wait while we create your new team..."}),jsxRuntimeExports.jsx(Formik,{initialValues:initialValues$1,onSubmit:async xu=>{await ca({name:xu.name})},validationSchema:gl,children:jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:wc,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Add Team"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"trash-icon",onClick:la})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"modal-body",children:jsxRuntimeExports.jsx(nht,{name:"name",placeholder:"Team Name"})}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Add Team",closeHandler:la})]})})]})},GithubUrl=()=>jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center m-auto flex-wrap justify-center",children:[jsxRuntimeExports.jsx("span",{children:"https://github.com/"}),jsxRuntimeExports.jsx(nht,{name:"githubOrg",placeholder:"GitHub Organization"}),jsxRuntimeExports.jsx("span",{children:"/"}),jsxRuntimeExports.jsx(nht,{name:"githubRepo",placeholder:"GitHub Repository"})]}),validationSchema$b=create$3().shape({modelName:create$6().required("Name is required").max(50,"Name must be less than 50 characters").test("no-spaces","Name cannot contain space",la=>la?!/\s/.test(la):!0).test("no-special-characters","Name cannot contain special character",la=>la?/^[a-zA-Z0-9_-]+$/.test(la):!0),githubOrg:create$6().required("GitHub Org is required").max(50,"GitHub Org must be less than 50 characters"),githubRepo:create$6().required("GitHub Repo is required").max(350,"GitHub Repo name must be less than 350 characters"),githubBranch:create$6().when("branchSelected",{is:!0,then:la=>la.required("GitHub Branch name is required and must be less than 100 characters").max(100,"GitHub Branch name must be less than 100 characters"),otherwise:la=>la.notRequired()}),branchSelected:create$7()}),IS_PLAYGROUND$3=!1,initialValues={modelName:"",githubOrg:"",githubRepo:"",githubBranch:"",branchSelected:!1},importLoadingSteps=[{id:"validating",label:"Validating repository access"},{id:"checking",label:"Checking for remote updates"},{id:"updating",label:"Fetching latest changes"},{id:"cloning",label:"Cloning repository"},{id:"processing",label:"Processing team structure"},{id:"creating",label:"Creating workspace app"},{id:"complete",label:"Import completed"},{id:"error",label:"Error during import"}],publishLoadingSteps=[{id:"validating",label:"Validating repository access"},{id:"checking",label:"Checking for remote updates"},{id:"updating",label:"Fetching latest changes"},{id:"cloning",label:"Cloning repository"},{id:"processing",label:"Processing model structure"},{id:"publishing",label:"Publishing to marketplace"},{id:"complete",label:"Publish completed"},{id:"error",label:"Error during publish"}],CustomBranch=()=>{const[la,,aa]=useField("branchSelected"),ca=la.value,ua=()=>{aa.setValue(!ca)};return jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center cursor-pointer",onClick:ua,children:[jsxRuntimeExports.jsx(Icon,{icon:ca?icons.checkboxSelected:icons.checkbox,className:classNames(["text-xl",ca?"text-checkbox-selected":"text-secondary-font"])}),"Use custom GitHub branch name?"]})},ImportTeam=({type:la,closeHandler:aa})=>{const{addWorkspaceApp:ca}=useTeams(),{publishModel:ua,fetchMarketplaceModels:Sa}=useMarketplace(),hl=useNavigate(),pl=useAppStore(vv=>vv.user),ml=useAppStore(vv=>vv.authData.username),gl=pl.GitHub?.Token,wc=pl.GitHub?.Username,[xu,ff]=reactExports.useState(!1),[jf,Uf]=reactExports.useState(""),[rp,np]=reactExports.useState(""),[qm,Vm]=reactExports.useState(void 0),[eg,tg]=reactExports.useState(void 0),rg=()=>{xu||aa()},ig=useOutsideClickHandler(rg);return jsxRuntimeExports.jsxs("div",{className:"modal-container relative",style:{opacity:xu?.5:1},children:[" ",reactDomExports.createPortal(jsxRuntimeExports.jsx(LoadingOverlay,{steps:la==="marketplace"?publishLoadingSteps:importLoadingSteps,currentStep:jf,isVisible:xu,statusMessage:rp,isSuccess:qm,isError:eg}),document.body),jsxRuntimeExports.jsx(Formik,{initialValues,validationSchema:validationSchema$b,onSubmit:async(vv,{setSubmitting:R1,setStatus:O1})=>{const K0=(Hw,qw,Y0)=>{O1({message:Hw,success:qw,error:Y0}),np(Hw),Vm(qw),tg(Y0)};ff(!0),K0(`Starting ${la==="marketplace"?"publish":"import"} process...`,!1,!1),Uf("validating");try{if(la==="marketplace"){const Hw=ml||"";Uf("publishing"),K0("Publishing to marketplace...",!1,!1);const qw={name:vv.modelName,type:"Team",owner:Hw,gitHubOrg:vv.githubOrg,gitHubRepo:vv.githubRepo,gitHubBranch:vv.branchSelected?vv.githubBranch:"main"};await ua(qw),await Sa(),K0("Model published successfully!",!0,!1),Uf("complete"),K0("Publish completed successfully!",!0,!1),await new Promise(Y0=>setTimeout(Y0,500)),setTimeout(()=>{aa()},1500)}else{const Hw=wc&&wc.trim().length>0,qw=gl&&gl.trim().length>0;(!Hw||!qw)&&console.warn("GitHub credentials missing - clone may fail for private repositories"),Uf("cloning"),K0("Cloning repository...",!1,!1);const Y0=`/${vv.githubRepo}`,G0=vv.branchSelected?vv.githubBranch:"main",X0=generateGitHubUrl(vv.githubOrg,vv.githubRepo,wc||"",gl||"");try{await cloneRepository(X0,Y0,G0,gl||""),Uf("processing"),K0("Processing repository...",!1,!1),await readRepoFile(Y0,"package.json"),await flushAllAndLoad(Y0,{name:"studio"})}catch(zN){try{await pathExists(Y0)&&(console.log(`Cleaning up failed clone: removing ${Y0} from IndexedDB`),await removeDirectory(Y0))}catch(BN){console.error("Error cleaning up failed clone:",BN)}throw zN}const d_=getUserModuleNames();Uf("creating"),K0("Creating workspace app...",!1,!1);const f_={name:vv.modelName,type:"App",gitHubOrg:vv.githubOrg,gitHubRepo:vv.githubRepo,branch:G0,description:"",owner:ml||"",version:"0.0.1",isEditable:!1};await ca(f_),K0(IS_PLAYGROUND$3?"Team added to workspace.":"Workspace app created.",!0,!1),Uf("complete"),K0("Import completed successfully!",!0,!1),await new Promise(zN=>setTimeout(zN,500)),hl(`/design/data-model/${vv.githubOrg}/${vv.modelName}/${d_[0]}`)}}catch(Hw){console.error("Unhandled error:",Hw),Uf("error"),K0(`An unexpected error occurred: ${Hw.message}`,!1,!0)}finally{R1(!1),jf!=="error"&&setTimeout(()=>{ff(!1),Uf(""),np(""),Vm(void 0),tg(void 0)},1500)}},children:vv=>{const R1=vv.values.branchSelected;return jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:ig,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsxs("div",{className:"modal-title",children:[la==="team"&&"Import Team",la==="marketplace"&&"Publish Model"]}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:rg})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-body",children:[jsxRuntimeExports.jsx(nht,{name:"modelName",placeholder:"Team Name"}),jsxRuntimeExports.jsx(GithubUrl,{}),jsxRuntimeExports.jsx(CustomBranch,{}),R1&&jsxRuntimeExports.jsx(nht,{name:"githubBranch",placeholder:"GitHub Branch Name"})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:la==="team"?"Import":"Publish",closeHandler:rg,isLoading:xu})]})}})]})},LLM_SERVICES=[{label:"OpenAI",value:"openai"},{label:"Anthropic",value:"anthropic"}],getLLMVaidtionSchema=la=>create$3().shape({name:create$6().required("Name is required").max(50,"Name must be less than 50 characters").test("unique-name","Language Model with same name already exists",aa=>aa?!la.includes(aa):!0),type:create$6().required("Type is required")}),CreateLLM=({closeHandler:la})=>{const{createLLM:aa,llmData:ca}=useLLM(),ua=ca?.map(pl=>pl.name)??[],Sa=getLLMVaidtionSchema(ua),hl=useOutsideClickHandler(la);return jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{name:"",type:"openai",config:{apiKey:"",model:"",maxTokens:4096,temperature:.7}},onSubmit:pl=>{aa({id:v4$2(),name:pl.name,type:pl.type,config:pl.config}),la()},validationSchema:Sa,children:jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:hl,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Add Language Model"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:la})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-body flex flex-col gap-4",children:[jsxRuntimeExports.jsx(nht,{name:"name",label:"Name",placeholder:"e.g. llm01"}),jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-1",children:jsxRuntimeExports.jsx(q$e,{fieldName:"type",options:LLM_SERVICES,placeholder:"LLM Service"})}),jsxRuntimeExports.jsx(nht,{name:"config.apiKey",label:"API Key",placeholder:"Enter API Key",type:"password"}),jsxRuntimeExports.jsx(nht,{name:"config.model",label:"Model",placeholder:"e.g. gpt-4o"}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[jsxRuntimeExports.jsx(nht,{name:"config.maxTokens",label:"Max Tokens",placeholder:"e.g. 4096",type:"number"}),jsxRuntimeExports.jsx(nht,{name:"config.temperature",label:"Temperature",placeholder:"e.g. 0.7",type:"number"})]})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Add LLM",closeHandler:la})]})})})},getIntegrationValidationSchema=la=>create$3().shape({name:create$6().required("Name is required").max(50,"Name must be less than 50 characters").test("unique-name","Integration with same name already exists",aa=>aa?!la.includes(aa):!0),githubOrg:create$6().required("GitHub Organization is required").max(50,"GitHub Organization must be less than 50 characters"),githubRepo:create$6().required("GitHub Repository is required").max(350,"GitHub Repository name must be less than 350 characters")}),githubCredentialsValidationSchema=create$3().shape({username:create$6().required("GitHub username is required"),token:create$6().matches(/^ghp_[A-Za-z0-9]{36}$/,"Invalid GitHub token format").required("GitHub token is required")}),AddIntegration=({closeHandler:la,source:aa})=>{const{createIntegration:ca,integrationData:ua}=useIntegration(aa),Sa=ua?.map(ig=>ig.name)??[],hl=useOutsideClickHandler(la),[pl,ml]=React.useState(!1),[gl,wc]=React.useState(""),[xu,ff]=React.useState(null),[jf,Uf]=React.useState(!1),[rp,np]=React.useState(null),qm=React.useRef({name:"",githubOrg:"",githubRepo:""}),Vm=useAppStore(ig=>ig.user),eg=useAppStore(ig=>ig.setUser),tg=async ig=>{ml(!0),ff(null),wc("");try{const vv={name:ig.name,userData:{GitHubOrg:ig.githubOrg,GitHubRepo:ig.githubRepo}};await ca(vv),la()}catch(vv){if(vv?.code==="GITHUB_CREDENTIALS_REQUIRED"){np({name:ig.name,userData:{GitHubOrg:ig.githubOrg,GitHubRepo:ig.githubRepo}}),Uf(!0),ml(!1);return}const R1=vv?.message||"Failed to create integration. Please try again.";ff(R1),console.error("Failed to create integration:",vv)}finally{ml(!1),wc("")}},rg=async ig=>{ml(!0),ff(null),wc("");try{const vv={...Vm,GitHub:{...Vm.GitHub,Username:ig.username,Token:ig.token}};eg(vv),rp&&(await ca(rp),np(null),Uf(!1),la())}catch(vv){const R1=vv?.message||"Failed to create integration. Please try again.";ff(R1),console.error("Failed to create integration after credentials update:",vv)}finally{ml(!1),wc("")}};return jsxRuntimeExports.jsx("div",{className:"modal-container",children:jf?jsxRuntimeExports.jsx(Formik,{initialValues:{username:Vm.GitHub?.Username||"",token:Vm.GitHub?.Token||""},validationSchema:githubCredentialsValidationSchema,onSubmit:rg,children:()=>jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:hl,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"GitHub Credentials Required"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:()=>{Uf(!1),np(null),la()}})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-body",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-secondary-font mb-4",children:"To create an integration in local mode, you need to provide your GitHub username and personal access token. These credentials will be stored in your user profile."}),jsxRuntimeExports.jsx(nht,{name:"username",placeholder:"GitHub Username"}),jsxRuntimeExports.jsx(sht,{name:"token",placeholder:"GitHub Personal Access Token"}),jsxRuntimeExports.jsxs("p",{className:"text-xs text-secondary-font mt-2",children:["Don't have a token?"," ",jsxRuntimeExports.jsx("a",{href:"https://github.com/settings/tokens",target:"_blank",rel:"noopener noreferrer",className:"text-blue hover:text-blue-hover underline",children:"Create one here"})]})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Save & Continue",closeHandler:()=>{Uf(!1),np(null),la()},isLoading:pl,error:xu||void 0,statusMessage:gl})]})}):jsxRuntimeExports.jsx(Formik,{initialValues:{name:"",githubOrg:"",githubRepo:""},validationSchema:getIntegrationValidationSchema(Sa),onSubmit:tg,children:({values:ig})=>((qm.current.name!==ig.name||qm.current.githubOrg!==ig.githubOrg||qm.current.githubRepo!==ig.githubRepo)&&(xu&&ff(null),qm.current={name:ig.name,githubOrg:ig.githubOrg,githubRepo:ig.githubRepo}),jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:hl,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Add Integration"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:la})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-body",children:[jsxRuntimeExports.jsx(nht,{name:"name",placeholder:"Integration Name"}),jsxRuntimeExports.jsx(GithubUrl,{})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Add Integration",closeHandler:la,isLoading:pl,error:xu||void 0,statusMessage:gl})]}))})})},AddEntity=({type:la="Entity",closeHandler:aa})=>{const ca=reactExports.useRef(null),{addEntity:ua,addEvent:Sa,addRecord:hl}=useEntity(),{addAgent:pl}=useAgent(),{addModuleHandler:ml}=useModule(),{moduleName:gl}=useParams(),wc=useOutsideClickHandler(aa),xu=()=>{switch(la){case"Module":return"Add Module";case"Entity":return"Add Entity";case"Record":return"Add Record";case"Agent":return"Add Agent";default:return"Add Event"}},ff=()=>create$3().shape({name:create$6().required(`${la}'s Name is required`).max(50,`${la}'s Name must be less than 50 characters`).matches(/^\S*$/,`${la}'s Name cannot contain space`).matches(/^[a-zA-Z0-9_-]+$/,`${la}'s Name cannot contain special character`).test("unique-name",`${la} with this name already exists`,function(jf){if(!jf||!gl)return!0;const Uf=getEntities(gl),rp=getRecords(gl),np=getEvents(gl),qm=getAgents(gl);return![...Uf,...rp,...np,...qm].includes(jf)})});return reactExports.useEffect(()=>{ca.current&&ca.current.focus()},[]),jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{name:""},onSubmit:jf=>{la==="Module"&&ml(jf.name),la==="Entity"&&ua(jf.name),la==="Record"&&hl(jf.name),la==="Event"&&Sa(jf.name),la==="Agent"&&pl(jf.name),aa()},validationSchema:ff(),children:jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:wc,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:xu()}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:aa})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"modal-body",children:jsxRuntimeExports.jsx(nht,{name:"name",placeholder:`${la} Name`,ref:ca})}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Add",closeHandler:aa})]})})})},AddDecision=({closeHandler:la})=>{const aa=reactExports.useRef(null),{addDecision:ca}=useFlow(),ua=useOutsideClickHandler(la),Sa=create$3().shape({name:create$6().required("Decision's Name is required").max(50,"Decision's Name must be less than 50 characters").matches(/^\S*$/,"Decision's Name cannot contain space").matches(/^[a-zA-Z0-9_-]+$/,"Decision's Name cannot contain special character")});return reactExports.useEffect(()=>{aa.current&&aa.current.focus()},[]),jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{name:""},onSubmit:hl=>{ca(hl.name),la()},validationSchema:Sa,children:jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:ua,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Add Decision"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:la})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"modal-body",children:jsxRuntimeExports.jsx(nht,{name:"name",placeholder:"Decision Name",ref:aa})}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Add",closeHandler:la})]})})})},validationSchema$a=create$3().shape({relationshipName:create$6().required("Relationship Name is required").max(50,"Relationship Name must be less than 50 characters").matches(/^\S*$/,"Relationship Name cannot contain space").matches(/^[a-zA-Z0-9_-]+$/,"Relationship Name cannot contain special character").test("unique-relationship-name","Relationship with this name already exists",function(la){if(!la)return!0;const{fromModule:aa}=this.parent;return aa?!getRelationships(aa).includes(la):!0}),fromEntity:create$6().required("From Entity is required"),toEntity:create$6().required("To Entity is required"),fromModule:create$6().required("From Module is required"),toModule:create$6().required("To Module is required")}),AddRelationship=({closeHandler:la})=>{const{addRelationship:aa}=useRelationship$1(),{zoomHandler:ca}=useZoomHandler(),ua=useOutsideClickHandler(la),{teamName:Sa,moduleName:hl}=useParams(),pl=[{label:Sa??"",value:Sa??""}],ml=getUserModuleNames().map(gl=>({label:gl,value:gl}));return jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{relationshipName:"",fromEntity:"",toEntity:"",fromModel:Sa,toModel:Sa,fromModule:hl,toModule:hl,relationshipType:"contains"},validationSchema:validationSchema$a,onSubmit:async gl=>{const wc=gl.fromModule||"",xu=gl.toModule||"",ff=gl.fromEntity||"",jf=gl.toEntity||"";await aa(gl.relationshipName,{module:wc,entity:ff},{module:xu,entity:jf},gl.relationshipType),la(),setTimeout(()=>{const Uf=`${hl}/${gl.relationshipName}`;ca(Uf)},500)},children:gl=>{const{values:wc,setValues:xu}=gl,ff=wc.relationshipType;return jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:ua,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Add Relationship"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:la})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-body",children:[jsxRuntimeExports.jsx(nht,{name:"relationshipName",placeholder:"Relationship Name"}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[jsxRuntimeExports.jsx("p",{className:"font-semibold",children:"From"}),jsxRuntimeExports.jsx("p",{className:"font-semibold",children:"To"}),jsxRuntimeExports.jsx(q$e,{fieldName:"fromModel",placeholder:"From Model",options:pl}),jsxRuntimeExports.jsx(q$e,{fieldName:"toModel",placeholder:"To Model",options:pl}),jsxRuntimeExports.jsx(q$e,{fieldName:"fromModule",placeholder:"From Module",options:ml}),jsxRuntimeExports.jsx(q$e,{fieldName:"toModule",placeholder:"To Module",options:ml}),jsxRuntimeExports.jsx(q$e,{fieldName:"fromEntity",placeholder:"From Entity",options:getEntities(wc.fromModule??"").map(jf=>({label:jf,value:jf}))}),jsxRuntimeExports.jsx(q$e,{fieldName:"toEntity",placeholder:"To Entity",options:getEntities(wc.toModule??"").map(jf=>({label:jf,value:jf}))}),jsxRuntimeExports.jsxs("div",{className:"flex gap-4 col-span-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 cursor-pointer",onClick:()=>xu({...wc,relationshipType:"contains"}),children:[jsxRuntimeExports.jsx(Icon,{icon:ff==="contains"?icons.radioSelected:icons.radio,className:classNames([ff==="contains"?"text-checkbox-selected":"text-secondary-font","text-lg"])}),"Contains"]}),jsxRuntimeExports.jsxs("div",{onClick:()=>xu({...wc,relationshipType:"between"}),className:"flex items-center gap-2 cursor-pointer",children:[jsxRuntimeExports.jsx(Icon,{icon:ff==="between"?icons.radioSelected:icons.radio,className:classNames([ff==="between"?"text-checkbox-selected":"text-secondary-font","text-lg"])}),"Between"]})]})]})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Add",closeHandler:la})]})}})})},compoundTypes=["Entity","Event","Relationship"],validationSchema$9=create$3().shape({name:create$6().required("Attribute Name is required").max(50,"Attribute Name must be less than 50 characters").matches(/^\S*$/,"Attribute Name cannot contain space").matches(/^[a-zA-Z0-9_-]+$/,"Attribute Name cannot contain special character"),valueType:create$6().required(),attributeType:create$6().when("valueType",{is:"type",then:la=>la.required("Type is required"),otherwise:la=>la.notRequired()}),model:create$6().when("attributeType",{is:la=>compoundTypes.includes(la),then:la=>la.required("Model is required"),otherwise:la=>la.notRequired()}),module:create$6().when("attributeType",{is:la=>compoundTypes.includes(la),then:la=>la.required("Module is required"),otherwise:la=>la.notRequired()}),entity:create$6().when("attributeType",{is:la=>compoundTypes.includes(la),then:la=>la.required("Entity is required"),otherwise:la=>la.notRequired()})}),TagInput=({value:la,onChangeHandler:aa,label:ca,className:ua,readOnly:Sa=!1})=>{const[hl,pl]=reactExports.useState(la),[ml,gl]=reactExports.useState(""),wc=Uf=>{const rp=Uf.trim();if(rp&&!hl.includes(rp)){const np=[...hl,rp];pl(np),aa?.(np)}},xu=Uf=>{const rp=hl.filter((np,qm)=>qm!==Uf);pl(rp),aa?.(rp)},ff=Uf=>{gl(Uf.target.value)},jf=Uf=>{Uf.key==="Enter"||Uf.key===","||Uf.key==="Tab"||Uf.key===" "?(Uf.preventDefault(),ml.trim()&&(wc(ml),gl(""))):Uf.key==="Backspace"&&ml===""&&hl.length>0&&xu(hl.length-1)};return jsxRuntimeExports.jsxs("div",{className:`grow rounded-lg flex gap-2 flex-wrap bg-secondary px-1 py-0.5 ${ua}`,children:[hl.map((Uf,rp)=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 px-2 py-0.5 bg-blue/20 border border-blue rounded-lg text-white",children:[jsxRuntimeExports.jsx("span",{className:"text-sm font-medium",children:Uf}),jsxRuntimeExports.jsx("button",{type:"button",className:"cursor-pointer duration-300 hover:text-maroon",onClick:()=>xu(rp),style:{display:Sa?"none":"block"},children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,width:12,height:12})})]},rp)),jsxRuntimeExports.jsx("input",{type:"text",placeholder:ca||"Add a tag",value:ml,onChange:ff,onKeyDown:jf,className:"w-max! border-none outline-none text-sm bg-transparent! no-underline",readOnly:Sa})]})},EntitySelector$1=({type:la="Entity",entryName:aa})=>{const[ca,,ua]=useField("model"),[Sa,,hl]=useField("module"),{dependenciesOptions:pl,getDependenciesModule:ml}=useDependencies(),gl=ml(ca.value),wc=getEntities(Sa.value),xu=getRecords(Sa.value);return jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-2 ",children:[jsxRuntimeExports.jsx(q$e,{fieldName:"model",options:pl,placeholder:"Model",onChangeHandler:ff=>{ua.setValue(ff),hl.setValue(ml(ff)[0])}}),jsxRuntimeExports.jsx(q$e,{fieldName:"module",options:gl.map(ff=>({label:ff,value:ff})),placeholder:"Module"})]}),jsxRuntimeExports.jsx(q$e,{fieldName:"entity",options:la==="Record"?xu.filter(ff=>ff!==aa).map(ff=>({label:ff,value:ff})):wc.filter(ff=>ff!==aa).map(ff=>({label:ff,value:ff})),placeholder:la})]})},getPropertyLabel=la=>{const aa=la.startsWith("@")?la:`@${la}`;return{"@id":"Primary Key","@optional":"Optional","@autoincrement":"Auto Increment","@fk":"Foreign Key","@comment":"Comment","@indexed":"Indexed","@check":"Check Constraint","@array":"Array","@ref":"Reference","@default":"Default Value","@unique":"Unique","@object":"Object","@readonly":"Read Only","@enum":"Enum","@oneof":"One Of"}[aa]||la},valueTypes=[{value:"type",label:"Type"},{value:"@enum",label:"Enum"},{value:"@oneof",label:"One of"},{value:"Entity",label:"Entity"},{value:"Record",label:"Record"}],AddAttribute=({entryName:la,closeHandler:aa})=>{const{addAttribute:ca}=useEntity(),ua=useOutsideClickHandler(aa),Sa=[...Array.from(builtInTypes$1)].map(xu=>({label:xu,value:xu})).sort((xu,ff)=>xu.label.localeCompare(ff.label)),hl=Array.from(propertyNames$1).filter(xu=>xu!=="@oneof"&&xu!=="@enum").map(xu=>({label:getPropertyLabel(xu),value:xu})),{currentTeam:pl}=useTeams(),ml=pl?.GitHubRepo,{getDependenciesModule:gl}=useDependencies(),wc=gl(ml);return jsxRuntimeExports.jsx("div",{className:"modal-container",onClick:xu=>xu.stopPropagation(),children:jsxRuntimeExports.jsx(Formik,{initialValues:{name:"",attributeType:"String",valueType:"type",oneOf:[],defaultValue:"",properties:[],model:ml||"",module:wc[0]||"",entity:""},onSubmit:xu=>{const ff=xu.valueType==="Entity"||xu.valueType==="Record",jf=xu.valueType==="@oneof",Uf=ff||jf?{model:xu.model,module:xu.module,entity:xu.entity}:void 0;ca(la,xu.name,xu.attributeType,xu.properties,xu.valueType,xu.oneOf,xu.defaultValue,Uf),aa()},validationSchema:validationSchema$9,children:xu=>{const{values:ff,setValues:jf}=xu,{valueType:Uf}=ff,rp=Uf==="Entity"||Uf==="Record",np=Uf==="@oneof",qm=Uf==="@enum",Vm=!np&&!rp;return jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:ua,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Add Attribute"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:aa})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-body",children:[jsxRuntimeExports.jsx(nht,{name:"name",placeholder:"Attribute Name"}),jsxRuntimeExports.jsx("div",{className:"grid grid-cols-3 gap-4",children:valueTypes.map(({value:eg,label:tg})=>{const rg=ff.valueType===eg;return jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center cursor-pointer",onClick:()=>{const ig={...ff,valueType:eg};eg==="Entity"||eg==="Record"?ig.attributeType=eg:eg==="type"&&(ig.attributeType="String"),jf(ig)},children:[jsxRuntimeExports.jsx(Icon,{icon:rg?"mdi:radiobox-marked":"mdi:radiobox-blank",className:classNames(["text-xl",rg?"text-checkbox-selected":"text-secondary-font"])}),tg]},eg)})}),qm&&jsxRuntimeExports.jsx(TagInput,{value:ff.oneOf,label:`Enter ${qm?"enum":"one of"} values`,onChangeHandler:eg=>jf({...ff,oneOf:eg})}),Uf==="type"&&jsxRuntimeExports.jsx(q$e,{fieldName:"attributeType",placeholder:"Type",options:Sa}),(rp||np)&&jsxRuntimeExports.jsx(EntitySelector$1,{type:Uf,entryName:la}),Vm&&jsxRuntimeExports.jsx(nht,{name:"defaultValue",placeholder:"Default Value"}),jsxRuntimeExports.jsx("div",{className:"grid grid-cols-3 gap-4",children:hl.map(({value:eg,label:tg})=>{const rg=ff.properties.includes(eg);return jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center cursor-pointer",onClick:()=>{const ig=rg?ff.properties.filter(vv=>vv!==eg):[...ff.properties,eg];jf({...ff,properties:ig})},children:[jsxRuntimeExports.jsx(Icon,{icon:rg?icons.checkboxSelected:icons.checkbox,className:classNames(["text-xl",rg?"text-checkbox-selected":"text-secondary-font"])}),tg]},eg)})})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Add",closeHandler:aa})]})}})})},Spinner=({width:la,height:aa})=>jsxRuntimeExports.jsx("div",{style:{width:la,height:aa},className:"border-2 border-white/30 border-t-white rounded-full animate-spin"}),TeamOrDepIcon=({name:la,width:aa=16,height:ca=16,className:ua=""})=>{const[Sa,hl]=reactExports.useState(icons.loading),[pl,ml]=reactExports.useState(!0),gl=reactExports.useRef(!1),{currentTeam:wc}=useTeams(),xu=wc?.GitHubRepo,ff=reactExports.useCallback(async()=>{if(gl.current)return;const jf=la.split(".")[0].toLowerCase();if(!xu){const Uf=serviceIcons[jf]||icons.agent;hl(Uf),ml(!1);return}gl.current=!0,ml(!0);try{let Uf;jf===xu?Uf=await readPackageJsonFromGit(jf,!1):Uf=await readDependencyPackageJsonFromGit(xu,jf,!1);const rp=Uf?.icon??serviceIcons[jf]??icons.agent;hl(rp)}catch{const rp=serviceIcons[jf]||icons.agent;hl(rp)}finally{ml(!1),gl.current=!1}},[la,xu]);return reactExports.useEffect(()=>{ff()},[ff]),pl?jsxRuntimeExports.jsx(Spinner,{width:aa,height:ca}):jsxRuntimeExports.jsx(Icon,{icon:Sa,width:aa,height:ca,className:ua})},ModelIcon$1=({model:la,size:aa})=>{const ca=la.Name,ua=la.Type,Sa=la.Icon,hl=!!Sa&&ca!=="Jira"&&ca!=="Slack"&&ca!=="Odoo"&&ua!=="Team";let pl;if(hl){const ml=`custom-${ca.toLowerCase()}-icon`;registerBase64Icon(ml,Sa),pl=ml}else ca==="Jira"?pl="logos:jira":ca==="Slack"?pl="logos:slack-icon":ca==="Odoo"?pl="simple-icons:odoo":pl=icons.agent;return hl?jsxRuntimeExports.jsx("img",{src:Sa,width:aa,height:aa,alt:`${ca} icon`,style:{width:`${aa}px`,height:`${aa}px`}}):jsxRuntimeExports.jsx(Icon,{icon:pl,width:aa,height:aa})},ActionOption=({model:la,isLoading:aa,onClick:ca})=>{const ua=la.Type==="Team",Sa=ua&&la.GitHubRepo||la.Name;return jsxRuntimeExports.jsxs("div",{className:"option group",onClick:ca,children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",children:[ua?jsxRuntimeExports.jsx(TeamOrDepIcon,{name:Sa,width:20,height:20}):jsxRuntimeExports.jsx(ModelIcon$1,{model:la,size:20}),la.Name]}),aa?jsxRuntimeExports.jsx(Icon,{icon:"eos-icons:loading"}):jsxRuntimeExports.jsx(Icon,{icon:"tabler:chevron-right",className:"hidden group-hover:inline"})]})},getAttributes=la=>la.map(aa=>{const ca=aa.op==="between",ua=aa.name.includes("?"),Sa=aa.value,hl=resolveType(Sa),pl=ca?Sa.value.map(ml=>ml.toString().replace(/^"(.*)"$/,"$1")):isStringLiteral(Sa)?aa.value.toString().replace(/^"(.*)"$/,"$1"):aa.value.toString();return{...aa,inputValue:pl,type:ca?Sa.value.map(ml=>resolveType(ml)):hl,name:ua?aa.name.replace("?",""):aa.name,isQuery:ua}}),resolveType=la=>isReferenceLiteral(la)?"reference":isExpressionPattern(la)||isGroupExpressionPattern(la)?"expression":isStringLiteral(la)?"string":isBooleanLiteral$1(la)?"boolean":isNumberLiteral(la)?"number":isArrayLiteral(la)?"array":isMapLiteral(la)?"map":"string",getQueryUpdateAttributes=la=>{const[aa,ca]=[la.filter(ua=>ua.name.includes("?")),la.filter(ua=>!ua.name.includes("?"))];return{queryAttributes:getAttributes(aa),updateAttributes:getAttributes(ca)}},setAttributes=(la,aa,ca=!1)=>{la.forEach(ua=>{const Sa=ua.op==="between",hl=`${ua.name}${ca?"?":""}${ca&&ua.op&&ua.op!=="="?`${ua.op}`:""}`,pl=ua.type;if(Sa){const ml=Array.isArray(ua.inputValue)?ua.inputValue:[ua.inputValue,""],gl=Array.isArray(pl)?pl:[pl,pl],wc=ml.map((xu,ff)=>{const jf=gl[ff];if(jf==="reference"){const Uf=xu.split(".");return new ReferencePattern(Uf[0],Uf[1]||"")}else{if(jf==="expression")return new ExpressionPattern$1(xu);{let Uf,rp;try{const np=JSON.parse(xu);Array.isArray(np)?(Uf=np,rp=LiteralPatternType$1.ARRAY):np!==null&&typeof np=="object"?(Uf=np,rp=LiteralPatternType$1.MAP):typeof np=="boolean"?(Uf=np,rp=LiteralPatternType$1.BOOLEAN):typeof np=="number"?(Uf=np,rp=LiteralPatternType$1.NUMBER):(Uf=xu,rp=LiteralPatternType$1.STRING)}catch{Uf=xu,rp=LiteralPatternType$1.STRING}return new LiteralPattern$1(rp,Uf)}}});aa.addAttribute(hl,new LiteralPattern$1(LiteralPatternType$1.ARRAY,wc))}else if(pl==="reference"){const ml=ua.inputValue.split(".");aa.addAttribute(hl,new ReferencePattern(ml[0],ml[1]))}else if(pl==="expression")aa.addAttribute(hl,new ExpressionPattern$1(ua.inputValue));else{let ml,gl;try{const wc=JSON.parse(ua.inputValue);Array.isArray(wc)?(ml=wc,gl=LiteralPatternType$1.ARRAY):wc!==null&&typeof wc=="object"?(ml=wc,gl=LiteralPatternType$1.MAP):typeof wc=="boolean"?(ml=wc,gl=LiteralPatternType$1.BOOLEAN):typeof wc=="number"?(ml=wc,gl=LiteralPatternType$1.NUMBER):(ml=ua.inputValue,gl=LiteralPatternType$1.STRING)}catch{ml=ua.inputValue,gl=LiteralPatternType$1.STRING}aa.addAttribute(hl,new LiteralPattern$1(gl,ml))}})},formRelationshipOutput=(la,aa)=>{aa.forEach(ca=>{const ua=ca.attributes?.length>0?ca.entity:`${ca.entity}?`,Sa=new CrudPattern$1(ua);if(ca.attributes?.length>0){const hl=ca.attributes.filter(ml=>ml.isQuery),pl=ca.attributes.filter(ml=>!ml.isQuery);hl.length>0&&setAttributes(hl,Sa,!0),pl.length>0&&setAttributes(pl,Sa,!1)}ca.relationships?.length>0&&formRelationshipOutput(Sa,ca.relationships),la.addRelationship(ca.name,Sa)})},useRelationship=()=>{const{teamName:la,moduleName:aa}=useParams(),ca=ua=>{const Sa=[];for(const[hl,pl]of ua){const ml=pl,gl=la||"",wc=ml.getNormalizedRecordName(),xu=isFqName$1(wc)?nameToPath$1(wc).getModuleName():aa||"",ff=isFqName$1(wc)?nameToPath$1(wc).getEntryName():wc;Sa.push({id:v4$2(),name:hl,model:gl,module:xu,entity:ff,attributes:getAttributes(ml.attributes),relationships:ml.relationships?ca(ml.relationships):[]})}return Sa};return{formRelationshipInput:ca}},getIntoSyntaxInput=la=>{const aa=[];for(const[ca,ua]of la)aa.push({id:v4$2(),key:ca,value:ua});return aa},addIntoSyntaxInOutput=(la,aa)=>{aa.forEach(ca=>{la.addInto(ca.key,ca.value)})},getEntityNameForStatement=(la,aa,ca,ua)=>ca?la===ua&&aa?ca:`${aa}/${ca}`:"",ActionsList=({onCreateCrudStatement:la,selectedModel:aa})=>{const{moduleName:ca}=useParams(),{currentTeam:ua}=useTeams(),{getDependenciesModule:Sa}=useDependencies();let hl=[];aa?.GitHubRepo?ua?.GitHubRepo!==aa.GitHubRepo?hl=Sa(aa.GitHubRepo):hl=getTeamModules(aa.GitHubRepo):hl=ca?[ca]:[];const pl=aa?.GitHubRepo,ml=hl.flatMap(xu=>getEntities(xu).map(ff=>({name:ff,module:xu,fqn:getEntityNameForStatement(pl,xu,ff,ua?.GitHubRepo)}))),gl=hl.flatMap(xu=>getRecords(xu).map(ff=>({name:ff,module:xu,fqn:getEntityNameForStatement(pl,xu,ff,ua?.GitHubRepo)}))),wc=hl.flatMap(xu=>{const ff=getEvents(xu),jf=getAgents(xu);return ff.filter(rp=>!jf.includes(rp)).map(rp=>({name:rp,module:xu,fqn:getEntityNameForStatement(pl,xu,rp,ua?.GitHubRepo)}))});return jsxRuntimeExports.jsxs("div",{className:"actions-list",children:[jsxRuntimeExports.jsx("div",{className:"font-medium text-secondary-font",children:"Actions"}),jsxRuntimeExports.jsxs("div",{className:"actions-list",children:[ml.map(({name:xu,fqn:ff})=>jsxRuntimeExports.jsxs("div",{className:"action-item",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsx("div",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.entity})}),jsxRuntimeExports.jsx("div",{children:xu})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-1 items-center",children:[jsxRuntimeExports.jsx("div",{className:"rounded-checkbox",onClick:()=>la(ff,"create"),children:"C"}),jsxRuntimeExports.jsx("div",{className:"rounded-checkbox",onClick:()=>la(ff,"read"),children:"R"}),jsxRuntimeExports.jsx("div",{className:"rounded-checkbox",onClick:()=>la(ff,"update"),children:"U"}),jsxRuntimeExports.jsx("div",{className:"rounded-checkbox",onClick:()=>la(ff,"delete"),children:"D"})]})]},ff)),gl.map(({name:xu,fqn:ff})=>jsxRuntimeExports.jsxs("div",{className:"action-item",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsx("div",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.record})}),jsxRuntimeExports.jsx("div",{children:xu})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-1 items-center",children:[jsxRuntimeExports.jsx("div",{className:"rounded-checkbox",onClick:()=>la(ff,"create"),children:"C"}),jsxRuntimeExports.jsx("div",{className:"rounded-checkbox",onClick:()=>la(ff,"read"),children:"R"}),jsxRuntimeExports.jsx("div",{className:"rounded-checkbox",onClick:()=>la(ff,"update"),children:"U"}),jsxRuntimeExports.jsx("div",{className:"rounded-checkbox",onClick:()=>la(ff,"delete"),children:"D"})]})]},ff)),wc.map(({name:xu,fqn:ff})=>jsxRuntimeExports.jsx("div",{className:"action-item cursor-pointer",onClick:()=>la(ff,"create"),children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsx("div",{className:"context-menu-icon bg-blue/20 text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.action})}),jsxRuntimeExports.jsx("div",{children:xu})]})},ff))]})]})},Actions=({onCreateCrudStatement:la,closeHandler:aa})=>{const{currentTeam:ca}=useStore(),{dependenciesOptions:ua}=useDependencies(),[Sa,hl]=reactExports.useState(),[pl,ml]=reactExports.useState(0),[gl,wc]=reactExports.useState(""),ff=useAppStore(rp=>rp.marketplaceModels).result.filter(rp=>rp.Name.toLowerCase().includes(gl.toLowerCase())),jf=reactExports.useMemo(()=>{const rp=ca?.GitHubRepo;return ua.filter(np=>rp&&np.value===rp?!1:np.label.toLowerCase().includes(gl.toLowerCase())).map(np=>({Name:np.label,Type:"Team",GitHubRepo:np.value,GitHubOrg:"",Description:"",Version:"0.0.1",Branch:"main",Config:{},CreatedAt:"",Dependencies:{FractlModels:[],ClojureLibraries:[]},EntityType:"",GithubUrl:"",Id:np.value,__Id__:np.value,LastUpdatedAt:"",Owner:"",Tags:null,isEditable:!1,isPin:!1}))},[ua,ca?.GitHubRepo,gl]),Uf=useOutsideClickHandler(()=>{aa()});return jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsxs("div",{className:"modal-content",ref:Uf,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title leading-none",children:pl===0?"Add Action":jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{onClick:()=>ml(0),icon:"tabler:chevron-left",className:" text-secondary-font text-xl cursor-pointer"}),Sa&&jsxRuntimeExports.jsx(TeamOrDepIcon,{name:Sa.GitHubRepo||Sa.Name,width:20,height:20}),jsxRuntimeExports.jsx("div",{children:Sa?.Name})]})}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:aa})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"modal-body",children:pl===0?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("input",{type:"text",value:gl,onChange:rp=>wc(rp.target.value),placeholder:"Search by name"}),jsxRuntimeExports.jsxs("div",{className:"max-h-[600px] overflow-auto",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 py-2",children:[jsxRuntimeExports.jsx("div",{className:"font-medium text-secondary-font",children:"Current Team and its dependencies"}),jsxRuntimeExports.jsxs("div",{className:"action-option-grid",children:[ca&&jsxRuntimeExports.jsx(ActionOption,{model:ca,isLoading:!1,onClick:()=>{hl(ca),ml(1)}}),jf.map(rp=>jsxRuntimeExports.jsx(ActionOption,{model:rp,isLoading:!1,onClick:()=>{hl(rp),ml(1)}},rp.Id))]})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 py-2",children:[jsxRuntimeExports.jsx("div",{className:"font-medium text-secondary-font",children:"Integrations and Agents"}),jsxRuntimeExports.jsx("div",{className:"action-option-grid",children:ff.map(rp=>jsxRuntimeExports.jsx(ActionOption,{model:rp,isLoading:!1,onClick:()=>{y$b.info("Under Progress")}},rp.Name))})]})]})]}):jsxRuntimeExports.jsx(ActionsList,{onCreateCrudStatement:la,selectedModel:Sa})})]})})},ModelIcon=({model:la,size:aa})=>{const ca=la.Name,ua=la.Type,Sa=la.Icon,hl=!!Sa&&ca!=="Jira"&&ca!=="Slack"&&ca!=="Odoo"&&ua!=="Team";let pl;if(hl){const ml=`custom-${ca.toLowerCase()}-icon`;registerBase64Icon(ml,Sa),pl=ml}else ca==="Jira"?pl="logos:jira":ca==="Slack"?pl="logos:slack-icon":ca==="Odoo"?pl="simple-icons:odoo":pl=icons.agent;return hl?jsxRuntimeExports.jsx("img",{src:Sa,width:aa,height:aa,alt:`${ca} icon`,style:{width:`${aa}px`,height:`${aa}px`}}):jsxRuntimeExports.jsx(Icon,{icon:pl,width:aa,height:aa})},AgentOption=({model:la,isLoading:aa,onClick:ca})=>{const ua=la.Type==="Team",Sa=ua&&la.GitHubRepo||la.Name;return jsxRuntimeExports.jsxs("div",{className:"option group",onClick:ca,children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",children:[ua?jsxRuntimeExports.jsx(TeamOrDepIcon,{name:Sa,width:20,height:20}):jsxRuntimeExports.jsx(ModelIcon,{model:la,size:20}),la.Name]}),aa?jsxRuntimeExports.jsx(Icon,{icon:"eos-icons:loading"}):jsxRuntimeExports.jsx(Icon,{icon:"tabler:chevron-right",className:"hidden group-hover:inline"})]})},AgentsList=({onAgentSelect:la,showEvents:aa,showDecisions:ca,selectedModel:ua})=>{const{moduleName:Sa}=useParams(),{currentTeam:hl}=useTeams(),{getDependenciesModule:pl}=useDependencies();let ml=[];ua?.GitHubRepo?hl?.GitHubRepo!==ua.GitHubRepo?ml=pl(ua.GitHubRepo):ml=getTeamModules(ua.GitHubRepo):ml=Sa?[Sa]:[];const gl=ua?.GitHubRepo,wc=ml.flatMap(jf=>getAgents(jf).map(Uf=>({name:Uf,module:jf,fqn:getEntityNameForStatement(gl,jf,Uf,hl?.GitHubRepo)}))),xu=ml.flatMap(jf=>getEvents(jf).map(Uf=>({name:Uf,module:jf,fqn:getEntityNameForStatement(gl,jf,Uf,hl?.GitHubRepo)}))),ff=ml.flatMap(jf=>getDecisions(jf).map(Uf=>({name:Uf,module:jf,fqn:getEntityNameForStatement(gl,jf,Uf,hl?.GitHubRepo)})));return ca?jsxRuntimeExports.jsxs("div",{className:"actions-list",children:[jsxRuntimeExports.jsx("div",{className:"font-medium text-secondary-font",children:"Available Decisions"}),jsxRuntimeExports.jsx("div",{className:"actions-list",children:ff.length>0?ff.map(({name:jf,fqn:Uf})=>jsxRuntimeExports.jsx("div",{className:"action-item cursor-pointer",onClick:()=>la(Uf),children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsx("div",{className:"context-menu-icon bg-agent-bg text-agent-icon",children:jsxRuntimeExports.jsx(Icon,{icon:icons.decision})}),jsxRuntimeExports.jsx("div",{children:jf})]})},Uf)):jsxRuntimeExports.jsxs("div",{className:"text-center py-8",children:[jsxRuntimeExports.jsx("div",{className:"w-16 h-16 bg-secondary rounded-full flex items-center justify-center mx-auto mb-3",children:jsxRuntimeExports.jsx(Icon,{icon:icons.decision,className:"text-3xl text-secondary-font opacity-50"})}),jsxRuntimeExports.jsx("div",{className:"font-medium text-secondary-font text-base mb-1",children:"No decisions found in this module"})]})})]}):jsxRuntimeExports.jsxs("div",{className:"actions-list",children:[jsxRuntimeExports.jsx("div",{className:"font-medium text-secondary-font",children:"Available Agents"}),jsxRuntimeExports.jsx("div",{className:"actions-list",children:wc.length>0?wc.map(({name:jf,fqn:Uf})=>jsxRuntimeExports.jsx("div",{className:"action-item cursor-pointer",onClick:()=>la(Uf),children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsx("div",{className:"context-menu-icon bg-agent-bg text-agent-icon",children:jsxRuntimeExports.jsx(Icon,{icon:icons.agent})}),jsxRuntimeExports.jsx("div",{children:jf})]})},Uf)):jsxRuntimeExports.jsxs("div",{className:"text-center py-8",children:[jsxRuntimeExports.jsx("div",{className:"w-16 h-16 bg-secondary rounded-full flex items-center justify-center mx-auto mb-3",children:jsxRuntimeExports.jsx(Icon,{icon:icons.agent,className:"text-3xl text-secondary-font opacity-50"})}),jsxRuntimeExports.jsx("div",{className:"font-medium text-secondary-font text-base mb-1",children:"No agents found in this module"}),jsxRuntimeExports.jsx("div",{className:"text-secondary-font text-sm opacity-70",children:"Create agents first to use them in patterns"})]})}),aa&&xu.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"font-medium text-secondary-font",children:"Available Events"}),jsxRuntimeExports.jsx("div",{className:"actions-list",children:xu.map(({name:jf,fqn:Uf})=>jsxRuntimeExports.jsx("div",{className:"action-item cursor-pointer",onClick:()=>la(Uf),children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsx("div",{className:"context-menu-icon bg-action-bg text-action-icon",children:jsxRuntimeExports.jsx(Icon,{icon:icons.action})}),jsxRuntimeExports.jsx("div",{children:jf})]})},Uf))})]})]})},Agents$1=({onCreatePattern:la,closeHandler:aa,showEvents:ca=!1,showDecisions:ua=!1})=>{const{currentTeam:Sa}=useStore(),{dependenciesOptions:hl}=useDependencies(),[pl,ml]=reactExports.useState(),[gl,wc]=reactExports.useState(0),[xu,ff]=reactExports.useState(""),Uf=useAppStore(qm=>qm.marketplaceModels).result.filter(qm=>qm.Name.toLowerCase().includes(xu.toLowerCase())),rp=reactExports.useMemo(()=>{const qm=Sa?.GitHubRepo;return hl.filter(Vm=>qm&&Vm.value===qm?!1:Vm.label.toLowerCase().includes(xu.toLowerCase())).map(Vm=>({Name:Vm.label,Type:"Team",GitHubRepo:Vm.value,GitHubOrg:"",Description:"",Version:"0.0.1",Branch:"main",Config:{},CreatedAt:"",Dependencies:{FractlModels:[],ClojureLibraries:[]},EntityType:"",GithubUrl:"",Id:Vm.value,__Id__:Vm.value,LastUpdatedAt:"",Owner:"",Tags:null,isEditable:!1,isPin:!1}))},[hl,Sa?.GitHubRepo,xu]),np=useOutsideClickHandler(()=>{aa()});return jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsxs("div",{className:"modal-content",ref:np,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title leading-none",children:gl===0?ca?"Add Agent or Event":"Add Agent":jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{onClick:()=>wc(0),icon:"tabler:chevron-left",className:" text-secondary-font text-xl cursor-pointer"}),pl&&jsxRuntimeExports.jsx(TeamOrDepIcon,{name:pl.GitHubRepo||pl.Name,width:20,height:20}),jsxRuntimeExports.jsx("div",{children:pl?.Name})]})}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:aa})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"modal-body",children:gl===0?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("input",{type:"text",value:xu,onChange:qm=>ff(qm.target.value),placeholder:"Search by name"}),jsxRuntimeExports.jsxs("div",{className:"max-h-[600px] overflow-auto",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 py-2",children:[jsxRuntimeExports.jsx("div",{className:"font-medium text-secondary-font",children:"Current Team and its dependencies"}),jsxRuntimeExports.jsxs("div",{className:"action-option-grid",children:[Sa&&jsxRuntimeExports.jsx(AgentOption,{model:Sa,isLoading:!1,onClick:()=>{ml(Sa),wc(1)}}),rp.map(qm=>jsxRuntimeExports.jsx(AgentOption,{model:qm,isLoading:!1,onClick:()=>{ml(qm),wc(1)}},qm.Id))]})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 py-2",children:[jsxRuntimeExports.jsx("div",{className:"font-medium text-secondary-font",children:"Integrations and Agents"}),jsxRuntimeExports.jsx("div",{className:"action-option-grid",children:Uf.map(qm=>jsxRuntimeExports.jsx(AgentOption,{model:qm,isLoading:!1,onClick:()=>{y$b.info("Under Progress")}},qm.Name))})]})]})]}):jsxRuntimeExports.jsx(AgentsList,{showDecisions:ua,showEvents:ca,selectedModel:pl,onAgentSelect:qm=>{la(qm)}})})]})})},ConfirmDelete=({closeHandler:la,onConfirm:aa,title:ca="Confirm Delete",message:ua="Are you sure you want to delete this item?",confirmText:Sa="Delete",cancelText:hl="Cancel",isLoading:pl=!1,itemName:ml})=>{const gl=useOutsideClickHandler(la),wc=async()=>{try{await aa(),la()}catch(xu){console.error("Error during deletion:",xu)}};return jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsxs("div",{className:"modal-content",ref:gl,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:ca}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"trash-icon",onClick:la})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-body",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[jsxRuntimeExports.jsx("div",{className:"w-12 h-12 bg-red-500/20 rounded-full flex items-center justify-center",children:jsxRuntimeExports.jsx(Icon,{icon:"material-symbols:delete-outline",className:"text-red-500 text-xl"})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-medium text-white",children:ca}),ml&&jsxRuntimeExports.jsx("p",{className:"text-sm text-gray-400",children:`"${ml}"`})]})]}),jsxRuntimeExports.jsx("p",{className:"text-gray-300 text-sm leading-relaxed",children:ua}),jsxRuntimeExports.jsx("div",{className:"mt-4 p-3 bg-red-500/10 border border-red-500/20 rounded-lg",children:jsxRuntimeExports.jsxs("p",{className:"text-red-400 text-xs",children:[jsxRuntimeExports.jsx(Icon,{icon:"material-symbols:warning-outline",className:"inline mr-1"}),"This action cannot be undone."]})})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-footer",children:[jsxRuntimeExports.jsx("div",{className:"cancel-button w-[150px]",onClick:la,children:hl}),jsxRuntimeExports.jsx("button",{type:"button",className:"sure-button w-[150px] bg-red-600 hover:bg-red-700 disabled:bg-red-600/50",onClick:wc,disabled:pl,children:pl?jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(CircularProgress,{size:16,color:"inherit"}),"Deleting..."]}):Sa})]})]})})},AddRole=({closeHandler:la})=>{const aa=useOutsideClickHandler(la),{addRole:ca}=useRbac(),ua=create$3().shape({roleName:create$6().required("Role Name is required").min(2,"Role Name must be at least 2 characters").matches(/^[a-zA-Z]+$/,"Role Name can only contain alphabets").test("not-reserved",'Role Name cannot be "admin" or "all"',function(hl){if(!hl)return!0;const pl=hl.toLowerCase();return pl!=="admin"&&pl!=="all"})}),Sa=hl=>{try{const pl=hl.roleName;ca(pl),la()}catch(pl){console.error("Error adding role:",pl)}};return jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{roleName:""},onSubmit:Sa,validationSchema:ua,children:jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:aa,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Add Role"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:la})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"modal-body",children:jsxRuntimeExports.jsx(nht,{name:"roleName",placeholder:"Role Name"})}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Add",closeHandler:la})]})})})},AddTrigger=({closeHandler:la})=>{const{addTrigger:aa}=useWorkflow(""),ca=useOutsideClickHandler(la),{currentTeam:ua}=useTeams(),Sa=ua?.GitHubRepo,{dependenciesOptions:hl,getDependenciesModule:pl}=useDependencies(),ml=pl(Sa),gl=[{label:"Before",value:"before"},{label:"After",value:"after"}],wc=[{label:"Create",value:"create"},{label:"Update",value:"update"},{label:"Delete",value:"delete"}],xu=create$3().shape({model:create$6().required("Model is required"),module:create$6().required("Module is required"),entity:create$6().required("Entity is required"),triggerType:create$6().required("Trigger type is required"),triggerTime:create$6().required("Trigger time is required")});return jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{model:Sa||"",module:ml[0]||"",entity:"",triggerType:"create",triggerTime:"after"},onSubmit:ff=>{console.log(ff),aa(ff.entity,ff.triggerType,ff.triggerTime),la()},validationSchema:xu,children:ff=>{const{values:jf,setValues:Uf}=ff,rp=pl(jf.model),qm=getEntities(jf.module).map(Vm=>({label:Vm,value:Vm}));return jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:ca,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Add Trigger"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:la})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-body ",children:[jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[jsxRuntimeExports.jsx(q$e,{fieldName:"model",options:hl,placeholder:"Model",onChangeHandler:Vm=>{Uf({...jf,model:Vm,module:pl(Vm)[0]||"",entity:""})}}),jsxRuntimeExports.jsx(q$e,{fieldName:"module",options:rp.map(Vm=>({label:Vm,value:Vm})),placeholder:"Module"})]}),jsxRuntimeExports.jsx(q$e,{fieldName:"entity",placeholder:"Select Entity",options:qm}),jsxRuntimeExports.jsx(q$e,{fieldName:"triggerType",placeholder:"Select Trigger Type",options:wc}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx("label",{className:"font-bold text-xs text-secondary-font",children:"Trigger Time"}),jsxRuntimeExports.jsx("div",{className:"grid grid-cols-2 gap-2",children:gl.map(Vm=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 cursor-pointer p-2 rounded-md hover:bg-secondary/20 transition-colors",onClick:()=>Uf({...jf,triggerTime:Vm.value}),children:[jsxRuntimeExports.jsx(Icon,{icon:jf.triggerTime===Vm.value?icons.radioSelected:icons.radio,className:classNames([jf.triggerTime===Vm.value?"text-checkbox-selected":"text-secondary-font","text-lg"])}),jsxRuntimeExports.jsx("span",{className:"text-sm",children:Vm.label})]},Vm.value))})]})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Add Trigger",closeHandler:la})]})}})})},AddFunctionCall=({closeHandler:la,onSubmit:aa})=>{const ca=reactExports.useRef(null),ua=useOutsideClickHandler(la),Sa=create$3().shape({functionName:create$6().required("Function name is required"),args:create$2$1().of(create$6())});return reactExports.useEffect(()=>{ca.current&&ca.current.focus()},[]),jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{functionName:"",args:[""]},onSubmit:hl=>{const pl=hl.args.filter(ml=>ml.trim().length>0);aa(hl.functionName.trim(),pl),la()},validationSchema:Sa,children:({values:hl,setFieldValue:pl})=>jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:ua,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Add Function Call"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:la})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"modal-body",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block font-medium text-gray-300 mb-2",children:"Function Name"}),jsxRuntimeExports.jsx(nht,{name:"functionName",placeholder:"e.g., console.log",ref:ca})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between mb-2",children:[jsxRuntimeExports.jsx("label",{className:"block font-medium text-gray-300",children:"Arguments (optional)"}),jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>pl("args",[...hl.args,""]),className:"sure-button text-xs px-2 py-1",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:plus",className:"w-4 h-4"}),"Add"]})]}),jsxRuntimeExports.jsx("div",{className:"space-y-2",children:hl.args.map((ml,gl)=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("div",{className:"w-full",children:jsxRuntimeExports.jsx(nht,{name:`args.${gl}`,placeholder:`Argument ${gl+1} (e.g., a+b, "hello", 42)`})}),hl.args.length>1&&jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>{const wc=hl.args.filter((xu,ff)=>ff!==gl);pl("args",wc)},className:"flex items-center justify-center w-8 h-8 bg-red-600 hover:bg-red-700 text-white rounded border border-red-500 transition-colors",title:"Remove argument",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:close",className:"w-4 h-4"})})]},gl))})]})]})}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Add",closeHandler:la})]})})})},operators$1={Arithmetic:[{value:"+",label:"Add"},{value:"-",label:"Subtract"},{value:"*",label:"Multiply"},{value:"/",label:"Divide"}],Comparison:[{value:"==",label:"Equal"},{value:"<>",label:"Not Equal"},{value:"<",label:"Less Than"},{value:">",label:"Greater Than"},{value:"<=",label:"Less Than or Equal"},{value:">=",label:"Greater Than or Equal"}],Logical:[{value:"or",label:"OR"},{value:"and",label:"AND"}]},PRECEDENCE={or:1,and:2,"==":3,"<>":3,"<":3,">":3,"<=":3,">=":3,"+":4,"-":4,"*":5,"/":5};function parseExpressionString(la){if(!la||la.trim()==="")return null;const aa=ua(la);let ca=0;function ua(xu){const ff=/\s*("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|[A-Za-z0-9_.]+|==|<=|>=|<>|[()+\-*/<>=!&|])\s*/g,jf=[];let Uf;for(;(Uf=ff.exec(xu))!==null;)jf.push(Uf[1]);return jf}const Sa=xu=>Object.prototype.hasOwnProperty.call(PRECEDENCE,xu),hl=()=>aa[ca],pl=xu=>{const ff=aa[ca];if(xu&&ff!==xu)throw new Error(`Expected '${xu}', got '${ff}'`);return ca++,ff};function ml(){if(ca>=aa.length)return null;if(hl()==="("){pl("(");const jf=wc();if(hl()!==")")throw new Error("Expected closing parenthesis");return pl(")"),jf}const ff=pl();return{id:generateId(),type:"variable",value:ff}}function gl(xu){let ff=ml();for(;ca<aa.length;){const jf=hl();if(!Sa(jf)||PRECEDENCE[jf]<xu)break;const Uf=PRECEDENCE[jf];pl();let rp=ml();for(;ca<aa.length;){const np=hl();if(!Sa(np))break;const qm=PRECEDENCE[np];if(qm>Uf)rp=gl(qm);else break}ff={id:generateId(),type:"operator",value:jf,left:ff??void 0,right:rp??void 0}}return ff}function wc(){return gl(1)}try{if(aa.length===1)return{id:generateId(),type:"variable",value:aa[0]};if(aa.includes("+")){const ff=aa.findIndex(jf=>jf==="+");if(ff>0&&ff<aa.length-1){const jf=aa.slice(0,ff),Uf=aa.slice(ff+1);return{id:generateId(),type:"operator",value:"+",left:{id:generateId(),type:"variable",value:jf.join(" ")},right:{id:generateId(),type:"variable",value:Uf.join(" ")}}}}const xu=wc();return console.log("Parsed result:",xu),xu}catch(xu){return console.error("Parse error:",xu),{id:generateId(),type:"variable",value:la.trim()}}}function getPrecedence(la){return PRECEDENCE[la]??0}function buildExpressionString(la,aa=0,ca=!0){if(!la)return"";if(la.type==="operator"&&la.left&&la.right){const ua=getPrecedence(la.value),Sa=buildExpressionString(la.left,ua,!1),hl=buildExpressionString(la.right,ua,!1),pl=la.value==="and"||la.value==="or",ml=la.left.type==="operator",gl=la.right.type==="operator",wc=ml&&(la.left.value==="and"||la.left.value==="or"),xu=gl&&(la.right.value==="and"||la.right.value==="or"),ff=pl&&ml&&(!wc||getPrecedence(la.left.value)>ua),jf=pl&&gl&&(!xu||getPrecedence(la.right.value)>ua),Uf=ff?`(${Sa})`:Sa,rp=jf?`(${hl})`:hl,np=`${Uf} ${la.value} ${rp}`;return!ca&&ua<aa?`(${np})`:np}return la.value||""}function generateId(){return Math.random().toString(36).substring(2,9)}const getContextMenuProps=(la,aa)=>{const Sa=window.innerWidth,hl=window.innerHeight;let pl=la,ml=aa;return la+500>Sa&&(pl=la-500),aa+300>hl&&(ml=aa-300),pl=Math.max(0,pl),ml=Math.max(0,ml),{x:pl,y:ml}},ContextMenu=({x:la,y:aa,onSelect:ca,onDeleteVariable:ua,onDeleteExpression:Sa,showDeleteVariable:hl=!1,showDeleteExpression:pl=!1})=>jsxRuntimeExports.jsxs("div",{className:"fixed z-50 flex flex-col min-w-[300px] gap-2 p-2 bg-primary border border-border rounded-xl overflow-auto shadow-lg",style:{left:la,top:aa},children:[hl&&ua&&jsxRuntimeExports.jsxs("button",{className:"text-center px-3 py-2 hover:bg-secondary border border-border items-center text-xs rounded-md cursor-pointer duration-300 font-semibold flex justify-center gap-2",onClick:ua,children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon text-del-icon bg-del-bg",children:jsxRuntimeExports.jsx(Icon,{icon:icons.delete})}),"Delete Variable"]}),pl&&Sa&&jsxRuntimeExports.jsxs("button",{className:"text-center px-3 py-2 hover:bg-secondary border border-border items-center text-xs rounded-md cursor-pointer duration-300 font-semibold flex justify-center gap-2",onClick:Sa,children:[jsxRuntimeExports.jsx("span",{className:"context-menu-icon text-del-icon bg-del-bg",children:jsxRuntimeExports.jsx(Icon,{icon:icons.delete})}),"Delete Expression"]}),(hl||pl)&&jsxRuntimeExports.jsx("div",{className:"border-t border-border my-1"}),Object.entries(operators$1).map(([ml,gl])=>jsxRuntimeExports.jsx(reactExports.Fragment,{children:jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[jsxRuntimeExports.jsx("div",{className:"flex items-center col-span-3 justify-center gap-2 bg-secondary border border-secondary p-3 rounded-md text-sm font-semibold",children:ml}),gl.map(wc=>jsxRuntimeExports.jsx("button",{className:"w-full text-center px-3 py-2 hover:bg-secondary border border-border text-sm rounded-md cursor-pointer duration-300",onClick:()=>ca(wc.value),children:wc.label},wc.value))]})},ml))]}),ExpressionBuilder=({expression:la,onExpressionChange:aa,defaultEmptyVariable:ca=!1,isSimpleMode:ua=!1})=>{const[Sa,hl]=reactExports.useState(()=>{const G0=parseExpressionString(la);return G0||(ca?{id:generateId(),type:"variable",value:""}:null)}),[pl,ml]=reactExports.useState(null),[gl,wc]=reactExports.useState(null),[xu,ff]=reactExports.useState(""),[jf,Uf]=reactExports.useState(ua),rp=useOutsideClickHandler(()=>{ml(null)});reactExports.useEffect(()=>{if(aa&&Sa){const G0=buildExpressionString(Sa);aa(G0)}},[Sa]),reactExports.useEffect(()=>{if(la&&la!==buildExpressionString(Sa)){console.log("ExpressionBuilder: Updating from parent expression:",la);const G0=parseExpressionString(la);console.log("ExpressionBuilder: Parsed result:",G0),hl(G0)}},[la]),reactExports.useEffect(()=>{Uf(ua)},[ua]);const np=reactExports.useMemo(()=>la?la.includes(" + ")||la.includes(" +")||la.includes("+ ")||la.split(".").length>2||la.includes('"')||la.includes("'"):!1,[la]),qm=(G0,X0,d_)=>{if(G0.id===X0)return d_(G0);const f_={...G0};return f_.left&&(f_.left=qm(f_.left,X0,d_)),f_.right&&(f_.right=qm(f_.right,X0,d_)),f_},Vm=(G0,X0)=>{Sa&&hl(qm(Sa,G0,d_=>({...d_,value:X0})))},eg=(G0,X0)=>{Sa&&(hl(qm(Sa,G0,d_=>({...d_,value:X0}))),ml(null))},tg=(G0,X0)=>{if(!Sa)return;const d_=generateId(),f_=generateId();hl(qm(Sa,G0,zN=>({id:f_,type:"operator",value:X0,left:{id:zN.id,type:zN.type,value:zN.value,left:zN.left,right:zN.right},right:{id:d_,type:"variable",value:""}}))),ml(null)},rg=G0=>{if(!Sa)return;if(Sa.id===G0&&Sa.type==="variable"){hl(null),ml(null);return}const X0=f_=>{if(f_.type==="operator"&&f_.left&&f_.right){if(f_.left.id===G0&&f_.left.type==="variable")return f_.right??null;if(f_.right.id===G0&&f_.right.type==="variable")return f_.left??null;const zN={...f_};if(zN.left){const BN=X0(zN.left);if(BN===null)return zN.right??null;zN.left=BN}if(zN.right){const BN=X0(zN.right);if(BN===null)return zN.left??null;zN.right=BN}return zN}return f_},d_=X0(Sa);hl(d_),ml(null)},ig=G0=>{if(!Sa)return;if(Sa.id===G0){hl(null);return}const X0=f_=>{if(!f_.left&&!f_.right)return f_;if(f_.left?.id===G0&&f_.left.type==="operator")return f_.right||null;if(f_.right?.id===G0&&f_.right.type==="operator")return f_.left||null;const zN={...f_};if(zN.left){const BN=X0(zN.left);if(BN===null)return zN.right||null;zN.left=BN}if(zN.right){const BN=X0(zN.right);if(BN===null)return zN.left||null;zN.right=BN}return zN};ml(null);const d_=X0(Sa);hl(d_)},vv=(G0,X0,d_)=>{const{x:f_,y:zN}=getContextMenuProps(G0.clientX,G0.clientY);G0.preventDefault(),ml({x:f_,y:zN,nodeId:X0,type:d_})},R1=(G0,X0)=>{wc(G0),ff(X0)},O1=G0=>{if(!Sa){wc(null),ff("");return}hl(qm(Sa,G0,X0=>({...X0,value:xu.trim()||X0.value}))),wc(null),ff("")},K0=(G0,X0)=>{G0.key==="Enter"?O1(X0):G0.key==="Escape"&&(wc(null),ff(""))},J0=G0=>Sa?(Sa.id===G0&&Sa.type==="variable",!0):!1,Hw=(G0,X0=!1)=>G0.type==="operator"&&G0.left&&G0.right?X0?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Hw(G0.left),jsxRuntimeExports.jsx("span",{className:"inline-flex items-center justify-center w-8 h-8 rounded-md border border-blue-500/40 bg-blue-500/10 text-blue-300 font-bold text-sm cursor-pointer hover:bg-blue-500/20 hover:text-blue-200 transition-colors select-none",onContextMenu:f_=>vv(f_,G0.id,"operator"),onDoubleClick:()=>R1(G0.id,G0.value),title:"Right-click to change operator, double-click to edit",children:gl===G0.id?jsxRuntimeExports.jsx("input",{value:xu,onChange:f_=>ff(f_.target.value),onBlur:()=>O1(G0.id),onKeyDown:f_=>K0(f_,G0.id),className:"w-8 h-8 text-center p-0 text-sm font-bold bg-gray-900 rounded-md border border-blue-500/40",autoFocus:!0}):G0.value}),Hw(G0.right)]}):jsxRuntimeExports.jsxs("div",{className:"bg-gray-700 rounded-full flex items-center gap-2 p-2 shadow-2xl relative",children:[Hw(G0.left),jsxRuntimeExports.jsx("span",{className:"inline-flex items-center justify-center w-8 h-8 rounded-md border border-blue-500/40 bg-blue-500/10 text-blue-300 font-bold text-sm cursor-pointer hover:bg-blue-500/20 hover:text-blue-200 transition-colors select-none",onContextMenu:f_=>vv(f_,G0.id,"operator"),onDoubleClick:()=>R1(G0.id,G0.value),title:"Right-click to change operator, double-click to edit",children:gl===G0.id?jsxRuntimeExports.jsx("input",{value:xu,onChange:f_=>ff(f_.target.value),onBlur:()=>O1(G0.id),onKeyDown:f_=>K0(f_,G0.id),className:"w-8 h-8 text-center p-0 text-sm font-bold bg-gray-900 rounded-md border border-blue-500/40",autoFocus:!0}):G0.value}),Hw(G0.right)]}):jsxRuntimeExports.jsx("div",{className:classNames(["relative h-10 bg-gray-900 rounded-full flex items-center justify-center shadow-md",G0.value.length>2?"w-1/3":"w-10"]),onContextMenu:d_=>vv(d_,G0.id,"variable"),title:"Right-click to add operator or delete variable",children:jsxRuntimeExports.jsx("input",{value:G0.value||"",onChange:d_=>Vm(G0.id,d_.target.value),className:"max-w-[200px]absolute inset-0 text-center text-xs font-semibold flex items-center justify-center shadow-md focus:ring-1 focus:ring-outline-[#ffffff66] rounded-full!",placeholder:"?"})}),qw=()=>Sa?jsxRuntimeExports.jsx("div",{className:classNames([ca?"highlight-color":"","rounded-2xl px-4 py-0.5 flex items-center justify-center flex-wrap gap-2 shadow-lg w-full"]),children:Hw(Sa,!0)}):null,Y0=()=>jsxRuntimeExports.jsxs("div",{className:"w-full",children:[jsxRuntimeExports.jsx("div",{className:"relative",children:jsxRuntimeExports.jsx("input",{type:"text",value:la,onChange:G0=>aa?.(G0.target.value),className:"w-full px-3 py-2 bg-gray-800 border border-gray-600 rounded-lg text-white placeholder-gray-400 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-all duration-200 text-sm",placeholder:"Enter expression..."})}),np&&jsxRuntimeExports.jsxs("div",{className:"mt-2 text-xs text-blue-400 bg-blue-900/20 px-2 py-1 rounded border border-blue-700/30",children:[jsxRuntimeExports.jsx("span",{role:"img","aria-label":"lightbulb",children:"💡"})," ","Complex expression detected - Simple mode is recommended"]})]});return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"flex items-center gap-2",onContextMenu:G0=>{if(G0.preventDefault(),Sa)return;const{x:X0,y:d_}=getContextMenuProps(G0.clientX,G0.clientY);ml({type:"root",nodeId:"",x:X0,y:d_})},children:jf?Y0():Sa?qw():jsxRuntimeExports.jsx("div",{className:"bg-gray-800/50 rounded-lg p-4 w-full text-center border-2 border-dashed border-gray-600 hover:border-blue-500 transition-all duration-200 cursor-pointer group",onClick:G0=>{const{x:X0,y:d_}=getContextMenuProps(G0.clientX,G0.clientY);ml({type:"root",nodeId:"",x:X0,y:d_})},title:"Click to show operator menu",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-2",children:[jsxRuntimeExports.jsx("div",{className:"w-8 h-8 bg-blue-600/20 rounded-full flex items-center justify-center border border-blue-500/30 group-hover:bg-blue-600/30 transition-colors",children:jsxRuntimeExports.jsx(Icon,{icon:icons.expression,className:"text-lg text-blue-400"})}),jsxRuntimeExports.jsx("div",{className:"text-gray-400 group-hover:text-gray-300 transition-colors text-sm",children:"Click to build expression"})]})})}),pl&&jsxRuntimeExports.jsx("div",{ref:rp,children:jsxRuntimeExports.jsx(ContextMenu,{x:pl.x,y:pl.y,onSelect:G0=>{if(pl.type==="operator")eg(pl.nodeId,G0);else if(pl.type==="root"){const X0=generateId(),d_=generateId(),f_=generateId();hl({id:X0,type:"operator",value:G0,left:{id:d_,type:"variable",value:""},right:{id:f_,type:"variable",value:""}}),ml(null)}else tg(pl.nodeId,G0)},onDeleteVariable:pl.type==="variable"&&J0(pl.nodeId)?()=>rg(pl.nodeId):void 0,onDeleteExpression:(pl.type==="operator"||pl.type==="root")&&Sa?()=>ig(pl.nodeId):void 0,onClose:()=>ml(null),showDeleteVariable:pl.type==="variable"&&J0(pl.nodeId),showDeleteExpression:pl.type==="operator"||pl.type==="root"})})]})},AddLiteral=({closeHandler:la,onSubmit:aa})=>{const ca=useOutsideClickHandler(la),ua=create$3().shape({variableName:create$6().required("Variable name is required").min(1,"Variable name cannot be empty").matches(/^[a-zA-Z_][a-zA-Z0-9_]*$/,"Variable name must start with a letter or underscore and contain only letters, numbers, and underscores"),alias:create$6().optional()});return jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{variableName:"",alias:""},onSubmit:Sa=>{aa(Sa.variableName,Sa.alias||void 0),la()},validationSchema:ua,children:jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:ca,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Add Literal Pattern"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:la})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"modal-body",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-4",children:[jsxRuntimeExports.jsx(nht,{name:"variableName",placeholder:"Enter variable name",label:"Variable Name",isFloating:!0}),jsxRuntimeExports.jsx(nht,{name:"alias",placeholder:"Enter alias",isFloating:!0,label:"Alias"})]})}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Add",closeHandler:la})]})})})},fetchGitHubFiles=async(la,aa,ca,ua)=>{const Sa=`https://api.github.com/repos/${la}/${aa}/git/trees/${ca}?recursive=1`,hl={Accept:"application/vnd.github.v3+json","User-Agent":"Fractl-Studio-Architect"};ua&&(hl.Authorization=`Bearer ${ua}`);const pl=await fetch(Sa,{headers:hl});if(!pl.ok){let wc=`GitHub API request failed: ${pl.status} ${pl.statusText}`;switch(pl.status){case 401:wc="Authentication failed. Please check your GitHub token.";break;case 403:wc="Access forbidden. Your token may not have sufficient permissions for this repository.";break;case 404:ua?wc="Repository not found. Please check the organization, repository name, and branch.":wc="Repository not found or is private. Please provide GitHub credentials.";break;case 422:wc="Branch not found. Please check the branch name.";break;default:try{const xu=await pl.json();xu.message&&(wc+=`: ${xu.message}`)}catch{}}throw new Error(wc)}const ml=await pl.json();if(!ml.tree||!Array.isArray(ml.tree))throw new Error("Invalid response from GitHub API");return ml.tree.filter(wc=>wc.type==="blob").map(wc=>wc.path).filter(wc=>!wc.startsWith(".git/")&&!wc.startsWith(".github/"))},readGitHubFile=async(la,aa,ca,ua)=>{const Sa=`https://api.github.com/repos/${la}/${aa}/contents/${ca}`,hl={Accept:"application/vnd.github.v3+json","User-Agent":"Fractl-Studio-Architect"};ua&&(hl.Authorization=`Bearer ${ua}`);const pl=await fetch(Sa,{headers:hl});if(!pl.ok){let wc=`Failed to read file: ${pl.status} ${pl.statusText}`;switch(pl.status){case 401:wc="Authentication failed. Please check your GitHub token.";break;case 403:wc="Access forbidden. Your token may not have sufficient permissions.";break;case 404:wc=`File not found: ${ca}`;break;default:try{const xu=await pl.json();xu.message&&(wc+=`: ${xu.message}`)}catch{}}throw new Error(wc)}const ml=await pl.json();if(ml.type!=="file"||!ml.content)throw new Error("Invalid file response from GitHub API");return atob(ml.content.replace(/\s/g,""))},createAndPushRepository=async(la,aa,ca,ua,Sa)=>{try{const pl=ca&&ca.trim()!==""?`https://api.github.com/orgs/${ca}/repos`:"https://api.github.com/user/repos",ml=await fetch(pl,{method:"POST",headers:{Authorization:`token ${ua}`,"Content-Type":"application/json"},body:JSON.stringify({name:la,description:"Generated with Fractl Studio Architect",private:!0,auto_init:!0})});if(!ml.ok){const ff=await ml.text();throw new Error(`Failed to create GitHub repository: ${ml.status} ${ff}`)}const gl=await ml.json(),xu=await fetch(`https://api.github.com/repos/${ca}/${la}/contents/src/core.al`,{method:"PUT",headers:{Authorization:`token ${ua}`,"Content-Type":"application/json"},body:JSON.stringify({message:"Initialize application with Fractl Studio Architect",content:btoa(aa)})});if(!xu.ok){const ff=await xu.text();throw new Error(`Failed to create AgentLang file: ${xu.status} ${ff}`)}return{success:!0,repoUrl:gl.html_url}}catch(hl){return{success:!1,error:hl.message}}},validationSchema$8=create$3().shape({apiKey:create$6().required("API key is required").min(10,"API key must be at least 10 characters")}),AnthropicApiKeyModal=({closeHandler:la,onSubmit:aa})=>{const ca=useOutsideClickHandler(la);return jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{apiKey:""},validationSchema:validationSchema$8,onSubmit:ua=>{aa(ua.apiKey)},children:()=>jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:ca,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Anthropic API Key Required"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:la})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-body",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-secondary-font mb-4",children:"To use the Architect in playground mode, you need to provide your Anthropic API key. This key will be stored locally in your browser."}),jsxRuntimeExports.jsx(nht,{name:"apiKey",placeholder:"Enter your Anthropic API key",type:"password"}),jsxRuntimeExports.jsxs("p",{className:"text-xs text-secondary-font mt-2",children:["Don't have an API key?"," ",jsxRuntimeExports.jsx("a",{href:"https://console.anthropic.com/settings/keys",target:"_blank",rel:"noopener noreferrer",className:"text-blue hover:text-blue-hover underline",children:"Get one here"})]})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Save",closeHandler:la})]})})})},validationSchema$7=create$3().shape({openaiApiKey:create$6().min(10,"API key must be at least 10 characters"),anthropicApiKey:create$6().min(10,"API key must be at least 10 characters")}),PlaygroundLLMConfigModal=({closeHandler:la,onSubmit:aa})=>{const ca=useOutsideClickHandler(la),ua=localStorage.getItem("openai-api-key")||"",Sa=localStorage.getItem("anthropic-api-key")||"";return jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsx(Formik,{initialValues:{openaiApiKey:ua,anthropicApiKey:Sa},validationSchema:validationSchema$7,onSubmit:hl=>{aa(hl.openaiApiKey,hl.anthropicApiKey)},children:()=>jsxRuntimeExports.jsxs(Form$7,{className:"modal-content",ref:ca,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsxs("div",{className:"modal-title flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.llm,className:"w-5 h-5"}),"LLM Configuration"]}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:la})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-body",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-secondary-font mb-6",children:"Configure your LLM API keys for playground mode. These keys will be stored locally in your browser for this session only."}),jsxRuntimeExports.jsxs("div",{className:"mb-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.generativeAI,className:"w-5 h-5"}),jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium",children:"llm_openai"})]}),jsxRuntimeExports.jsx(nht,{name:"openaiApiKey",placeholder:"Enter your OpenAI API key",type:"password"}),jsxRuntimeExports.jsxs("p",{className:"text-xs text-secondary-font mt-2",children:["Don't have an API key?"," ",jsxRuntimeExports.jsx("a",{href:"https://platform.openai.com/api-keys",target:"_blank",rel:"noopener noreferrer",className:"text-blue hover:text-blue-hover underline",children:"Get one here"})]})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"mt-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.agent,className:"w-5 h-5"}),jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium",children:"llm_anthropic"})]}),jsxRuntimeExports.jsx(nht,{name:"anthropicApiKey",placeholder:"Enter your Anthropic API key",type:"password"}),jsxRuntimeExports.jsxs("p",{className:"text-xs text-secondary-font mt-2",children:["Don't have an API key?"," ",jsxRuntimeExports.jsx("a",{href:"https://console.anthropic.com/settings/keys",target:"_blank",rel:"noopener noreferrer",className:"text-blue hover:text-blue-hover underline",children:"Get one here"})]})]})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Save",closeHandler:la})]})})})},EnvironmentKeysModal=({closeHandler:la})=>{const aa=useOutsideClickHandler(la),[ca,ua]=reactExports.useState([]),[Sa,hl]=reactExports.useState(null),[pl,ml]=reactExports.useState(""),[gl,wc]=reactExports.useState(""),[xu,ff]=reactExports.useState(""),[jf,Uf]=reactExports.useState(!1),[rp,np]=reactExports.useState(new Set),[qm,Vm]=reactExports.useState({});reactExports.useEffect(()=>{eg()},[]);const eg=()=>{const J0=getEnvironmentKeys();ua(J0)},tg=()=>{const J0={};if(pl.trim()?/^[A-Z_][A-Z0-9_]*$/.test(pl)?ca.some(Hw=>Hw.name===pl)&&(J0.name="Key name already exists"):J0.name="Key name must be uppercase with underscores (e.g., API_KEY)":J0.name="Key name is required",gl.trim()||(J0.value="Key value is required"),Object.keys(J0).length>0){Vm(J0);return}setEnvironmentKey(pl,gl),eg(),typeof window<"u"&&window.inBrowserREPL?.refreshEnvironmentKeys&&window.inBrowserREPL.refreshEnvironmentKeys().catch(Hw=>{console.error("Failed to refresh environment keys in runtime:",Hw)}),ml(""),wc(""),Uf(!1),Vm({})},rg=J0=>{if(!xu.trim()){Vm({value:"Key value is required"});return}setEnvironmentKey(J0,xu),eg(),typeof window<"u"&&window.inBrowserREPL?.refreshEnvironmentKeys&&window.inBrowserREPL.refreshEnvironmentKeys().catch(Hw=>{console.error("Failed to refresh environment keys in runtime:",Hw)}),hl(null),ff(""),Vm({})},ig=J0=>{window.confirm(`Are you sure you want to delete "${J0}"?`)&&(deleteEnvironmentKey(J0),eg(),typeof window<"u"&&window.inBrowserREPL?.refreshEnvironmentKeys&&window.inBrowserREPL.refreshEnvironmentKeys().catch(Hw=>{console.error("Failed to refresh environment keys in runtime:",Hw)}))},vv=J0=>{hl(J0.name),ff(J0.value),Vm({})},R1=()=>{hl(null),ff(""),Vm({})},O1=J0=>{np(Hw=>{const qw=new Set(Hw);return qw.has(J0)?qw.delete(J0):qw.add(J0),qw})},K0=[{name:"ANTHROPIC_API_KEY",placeholder:"sk-ant-..."},{name:"OPENAI_API_KEY",placeholder:"sk-..."},{name:"GOOGLE_API_KEY",placeholder:"AIza..."},{name:"GROQ_API_KEY",placeholder:"gsk_..."},{name:"HUBSPOT_ACCESS_TOKEN",placeholder:"pat-..."}];return jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsxs("div",{className:"modal-content w-full max-w-3xl",ref:aa,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsxs("div",{className:"modal-title flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.settings,className:"w-5 h-5"}),"Environment Keys"]}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:la})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-body max-h-[60vh] overflow-y-auto",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-secondary-font mb-6",children:"Manage environment variables for your projects. These keys are stored securely in your browser's local storage and are only accessible from this device. In playground mode, they are automatically injected into the runtime. For local development, export them to your shell or reference them in config.al."}),ca.length>0&&jsxRuntimeExports.jsxs("div",{className:"mb-6",children:[jsxRuntimeExports.jsxs("h4",{className:"text-sm font-medium mb-3 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.key,className:"w-4 h-4"}),"Your Keys (",ca.length,")"]}),jsxRuntimeExports.jsx("div",{className:"space-y-2",children:ca.map(J0=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 p-3 bg-gray-800/30 rounded border border-border",children:[jsxRuntimeExports.jsxs("div",{className:"flex-1",children:[jsxRuntimeExports.jsx("div",{className:"text-sm font-medium text-white mb-1",children:J0.name}),Sa===J0.name?jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:rp.has(J0.name)?"text":"password",value:xu,onChange:Hw=>ff(Hw.target.value),placeholder:"Enter key value",className:"flex-1 text-sm px-2 py-1 bg-gray-900 border border-border rounded",autoFocus:!0}),jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>O1(J0.name),children:jsxRuntimeExports.jsx(Icon,{icon:rp.has(J0.name)?icons.eyeOff:icons.eye,className:"w-4 h-4"})})]}):jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:rp.has(J0.name)?"text":"password",value:J0.value,readOnly:!0,className:"flex-1 text-sm px-2 py-1 bg-gray-900/50 border border-border/50 rounded cursor-default"}),jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>O1(J0.name),children:jsxRuntimeExports.jsx(Icon,{icon:rp.has(J0.name)?icons.eyeOff:icons.eye,className:"w-4 h-4"})})]}),qm.value&&Sa===J0.name&&jsxRuntimeExports.jsx("p",{className:"text-xs text-red-500 mt-1",children:qm.value})]}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1",children:Sa===J0.name?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>rg(J0.name),className:"text-green-500 hover:text-green-400",children:jsxRuntimeExports.jsx(Icon,{icon:icons.check,className:"w-4 h-4"})}),jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:R1,className:"text-secondary-font hover:text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"w-4 h-4"})})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>vv(J0),className:"text-blue hover:text-blue-hover",children:jsxRuntimeExports.jsx(Icon,{icon:icons.edit,className:"w-4 h-4"})}),jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>ig(J0.name),className:"text-maroon hover:text-red-400",children:jsxRuntimeExports.jsx(Icon,{icon:icons.delete,className:"w-4 h-4"})})]})})]},J0.name))})]}),ca.length>0&&jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2,my:3}}),jsxRuntimeExports.jsx("div",{children:jf?jsxRuntimeExports.jsxs("div",{className:"bg-gray-800/30 rounded border border-border p-4",children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium mb-3",children:"Add New Key"}),jsxRuntimeExports.jsxs("div",{className:"mb-4",children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-secondary-font mb-2",children:"Common keys:"}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-2",children:K0.filter(J0=>!ca.some(Hw=>Hw.name===J0.name)).map(J0=>jsxRuntimeExports.jsx("button",{onClick:()=>{ml(J0.name),Vm({})},className:"text-xs px-2 py-1 bg-gray-700 hover:bg-gray-600 rounded border border-border transition-colors",children:J0.name},J0.name))})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-3",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"text-xs text-secondary-font block mb-1",children:"Key Name"}),jsxRuntimeExports.jsx("input",{type:"text",value:pl,onChange:J0=>{ml(J0.target.value.toUpperCase()),Vm(Hw=>({...Hw,name:void 0}))},placeholder:"e.g., ANTHROPIC_API_KEY",className:"w-full text-sm px-3 py-2 bg-gray-900 border border-border rounded"}),qm.name&&jsxRuntimeExports.jsx("p",{className:"text-xs text-red-500 mt-1",children:qm.name})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"text-xs text-secondary-font block mb-1",children:"Key Value"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:rp.has("__new__")?"text":"password",value:gl,onChange:J0=>{wc(J0.target.value),Vm(Hw=>({...Hw,value:void 0}))},placeholder:"Enter the API key value",className:"flex-1 text-sm px-3 py-2 bg-gray-900 border border-border rounded"}),jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>O1("__new__"),children:jsxRuntimeExports.jsx(Icon,{icon:rp.has("__new__")?icons.eyeOff:icons.eye,className:"w-4 h-4"})})]}),qm.value&&jsxRuntimeExports.jsx("p",{className:"text-xs text-red-500 mt-1",children:qm.value})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex justify-end gap-2 mt-4",children:[jsxRuntimeExports.jsx("button",{onClick:()=>{Uf(!1),ml(""),wc(""),Vm({}),np(J0=>{const Hw=new Set(J0);return Hw.delete("__new__"),Hw})},className:"px-3 py-1.5 text-sm text-secondary-font hover:text-white transition-colors",children:"Cancel"}),jsxRuntimeExports.jsx("button",{onClick:tg,className:"px-3 py-1.5 text-sm bg-blue hover:bg-blue-hover text-white rounded transition-colors",children:"Add Key"})]})]}):jsxRuntimeExports.jsxs("button",{onClick:()=>Uf(!0),className:"flex items-center gap-2 text-sm text-blue hover:text-blue-hover transition-colors",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.add,className:"w-4 h-4"}),"Add New Key"]})}),jsxRuntimeExports.jsx("div",{className:"mt-6 p-4 bg-blue/10 border border-blue/30 rounded",children:jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.info,className:"w-4 h-4 text-blue mt-0.5"}),jsxRuntimeExports.jsxs("div",{className:"text-xs text-secondary-font space-y-2",children:[jsxRuntimeExports.jsxs("p",{children:[jsxRuntimeExports.jsx("strong",{className:"text-white",children:"Security Note:"})," Keys are stored in your browser's local storage and never leave your device."]}),jsxRuntimeExports.jsxs("p",{children:[jsxRuntimeExports.jsx("strong",{className:"text-white",children:"For Local Development:"})," ","Export these as shell variables before running agentlang, or reference them in config.al using"," ",jsxRuntimeExports.jsx("code",{className:"text-xs bg-gray-800 px-1 py-0.5 rounded",children:"#js process.env.VAR_NAME"})]}),jsxRuntimeExports.jsx("p",{children:"Key names should be in uppercase with underscores (e.g., MY_API_KEY)."})]})]})})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-footer",children:[ca.length>0&&jsxRuntimeExports.jsx("button",{onClick:()=>{const J0=ca.map(Hw=>`export ${Hw.name}="${Hw.value}"`).join(`
|
|
19580
19580
|
`);navigator.clipboard.writeText(J0),alert("Environment variables copied to clipboard!")},className:"px-4 py-2 text-sm bg-gray-700 hover:bg-gray-600 text-white rounded transition-colors",children:"Export for Shell"}),jsxRuntimeExports.jsx("button",{onClick:la,className:"px-4 py-2 text-sm bg-blue hover:bg-blue-hover text-white rounded transition-colors",children:"Done"})]})]})})};function extractEnvKeysFromConfigAl(la){const aa=[],ca=/getLocalEnv\s*\(\s*['"]([^'"]+)['"]\s*,\s*(?:['"]([^'"]*)['"]|(\d+)|([^)]+))\s*\)/g;let ua;for(;(ua=ca.exec(la))!==null;){const Sa=ua[1],hl=ua[2]!==void 0?ua[2]:ua[3]!==void 0?ua[3]:ua[4]!==void 0?ua[4].trim():"",pl=la.substring(0,ua.index),ml=/"([^"]+)"\s*:\s*"#js[^"]*$/,gl=pl.match(ml),wc=gl?gl[1]:"unknown",xu=/"([a-zA-Z0-9]+\/[a-zA-Z0-9]+)"\s*:\s*\{[^}]*$/,ff=pl.match(xu),jf=ff?ff[1]:void 0,Uf=hl===""||hl==="''";aa.push({name:Sa,defaultValue:hl,field:wc,configEntity:jf,isRequired:Uf})}return aa}async function detectKeysFromConfig(la,aa){try{const ca=await readRepoFile(la,aa);return extractEnvKeysFromConfigAl(ca)}catch{return[]}}async function detectEnvKeysFromApp(la){const aa={requiredKeys:[],optionalKeys:[]};try{const ca=[],ua=[];try{const ml=await readRepoFile(la,"package.json"),gl=JSON.parse(ml);if(gl.dependencies)for(const[wc,xu]of Object.entries(gl.dependencies)){if(wc==="agentlang")continue;const ff=wc.includes("-studio")||wc.includes("studio-"),jf=typeof xu=="string"&&xu.startsWith("git+");!ff&&!jf&&!(xu==="*")||ua.push({name:wc,path:`${la}/node_modules/${wc}`})}}catch{}const Sa=await detectKeysFromConfig(la,"config.al");Sa.length>0&&ca.push(...Sa);for(const ml of ua){const gl=await detectKeysFromConfig(ml.path,"config.al");gl.length>0&&ca.push(...gl)}if(ca.length===0)return{...aa,error:"No config.al files found in this app or its dependencies"};const hl=new Map;for(const ml of ca)hl.has(ml.name)||hl.set(ml.name,ml);const pl=Array.from(hl.values());return aa.requiredKeys=pl.filter(ml=>ml.isRequired),aa.optionalKeys=pl.filter(ml=>!ml.isRequired),aa}catch(ca){return{...aa,error:ca.message||"Failed to detect environment keys"}}}function getEnvKeyDescription(la){return{HUBSPOT_ACCESS_TOKEN:"HubSpot Private App access token",GMAIL_CLIENT_ID:"Gmail OAuth2 client ID from Google Cloud Console",GMAIL_CLIENT_SECRET:"Gmail OAuth2 client secret from Google Cloud Console",GMAIL_REFRESH_TOKEN:"Gmail OAuth2 refresh token for accessing Gmail API",GMAIL_ACCESS_TOKEN:"Gmail direct access token (testing only)",ANTHROPIC_API_KEY:"Anthropic API key for Claude models",OPENAI_API_KEY:"OpenAI API key for GPT models",GOOGLE_API_KEY:"Google API key for various Google services",GROQ_API_KEY:"Groq API key for fast inference",PORT:"Service port number",HUBSPOT_POLL_INTERVAL_MINUTES:"How often to poll HubSpot for updates (minutes)",HUBSPOT_SEARCH_RESULT_LIMIT:"Maximum number of search results from HubSpot",GMAIL_POLL_INTERVAL_MINUTES:"How often to check for new emails (minutes)",GMAIL_POLL_MINUTES:"How far back to search for emails (minutes)"}[la]||`Environment variable: ${la}`}function getEnvKeyPlaceholder(la){return{HUBSPOT_ACCESS_TOKEN:"pat-na1-...",GMAIL_CLIENT_ID:"your-app.apps.googleusercontent.com",GMAIL_CLIENT_SECRET:"GOCSPX-...",GMAIL_REFRESH_TOKEN:"1//...",GMAIL_ACCESS_TOKEN:"ya29....",ANTHROPIC_API_KEY:"sk-ant-...",OPENAI_API_KEY:"sk-...",GOOGLE_API_KEY:"AIza...",GROQ_API_KEY:"gsk_...",PORT:"8080",HUBSPOT_POLL_INTERVAL_MINUTES:"15",HUBSPOT_SEARCH_RESULT_LIMIT:"100",GMAIL_POLL_INTERVAL_MINUTES:"15",GMAIL_POLL_MINUTES:"10"}[la]||"Enter value..."}const AppEnvironmentKeysModal=({closeHandler:la,repoPath:aa,appName:ca,isLocalMode:ua=!1})=>{const Sa=useOutsideClickHandler(la),[hl,pl]=reactExports.useState([]),[ml,gl]=reactExports.useState([]),[wc,xu]=reactExports.useState([]),[ff,jf]=reactExports.useState(!0),[Uf,rp]=reactExports.useState(null),[np,qm]=reactExports.useState(null),[Vm,eg]=reactExports.useState(""),[tg,rg]=reactExports.useState(""),[ig,vv]=reactExports.useState(""),[R1,O1]=reactExports.useState(!1),[K0,J0]=reactExports.useState(new Set),[Hw,qw]=reactExports.useState({});reactExports.useEffect(()=>{Y0()},[]),reactExports.useEffect(()=>{(async()=>{jf(!0),rp(null);try{const Lhe=await detectEnvKeysFromApp(aa);Lhe.error?rp(Lhe.error):(gl(Lhe.requiredKeys),xu(Lhe.optionalKeys))}catch(Lhe){rp(Lhe.message||"Failed to detect environment keys")}finally{jf(!1)}})()},[aa]);const Y0=()=>{const bY=getEnvironmentKeys();pl(bY)},G0=bY=>hl.find(Lhe=>Lhe.name===bY)?.value,X0=bY=>{const Lhe=G0(bY);return Lhe!==void 0&&Lhe.trim()!==""},d_=(bY,Lhe)=>{if(!Lhe.trim()){qw({value:"Value is required"});return}setEnvironmentKey(bY,Lhe),Y0(),typeof window<"u"&&window.inBrowserREPL?.refreshEnvironmentKeys&&window.inBrowserREPL.refreshEnvironmentKeys().catch(Dhe=>{console.error("Failed to refresh environment keys in runtime:",Dhe)}),qw({}),qm(null),vv("")},f_=()=>{const bY={};if(Vm.trim()?/^[A-Z_][A-Z0-9_]*$/.test(Vm)?hl.some(Lhe=>Lhe.name===Vm)&&(bY.name="Key name already exists"):bY.name="Key name must be uppercase with underscores (e.g., API_KEY)":bY.name="Key name is required",tg.trim()||(bY.value="Key value is required"),Object.keys(bY).length>0){qw(bY);return}setEnvironmentKey(Vm,tg),Y0(),typeof window<"u"&&window.inBrowserREPL?.refreshEnvironmentKeys&&window.inBrowserREPL.refreshEnvironmentKeys().catch(Lhe=>{console.error("Failed to refresh environment keys in runtime:",Lhe)}),eg(""),rg(""),O1(!1),qw({})},zN=bY=>{window.confirm(`Are you sure you want to delete "${bY}"?`)&&(deleteEnvironmentKey(bY),Y0(),typeof window<"u"&&window.inBrowserREPL?.refreshEnvironmentKeys&&window.inBrowserREPL.refreshEnvironmentKeys().catch(Lhe=>{console.error("Failed to refresh environment keys in runtime:",Lhe)}))},BN=(bY,Lhe)=>{qm(bY),vv(Lhe||""),qw({})},iF=()=>{qm(null),vv(""),qw({})},yY=bY=>{J0(Lhe=>{const Dhe=new Set(Lhe);return Dhe.has(bY)?Dhe.delete(bY):Dhe.add(bY),Dhe})},vQ=new Set([...ml.map(bY=>bY.name),...wc.map(bY=>bY.name)]),Ohe=hl.filter(bY=>!vQ.has(bY.name));return jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsxs("div",{className:"modal-content w-full max-w-4xl",ref:Sa,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsxs("div",{className:"modal-title flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.key,className:"w-5 h-5"}),"Environment Keys",ca&&jsxRuntimeExports.jsxs("span",{className:"text-sm text-secondary-font",children:["· ",ca]})]}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:la})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-body max-h-[70vh] overflow-y-auto",children:[ua?jsxRuntimeExports.jsx("div",{className:"mb-6 p-4 bg-yellow-900/20 border border-yellow-500/40 rounded",children:jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.info,className:"w-5 h-5 text-yellow-500 mt-0.5"}),jsxRuntimeExports.jsxs("div",{className:"flex-1",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-white font-medium mb-2",children:"Local Mode - Backend Environment Variables Required"}),jsxRuntimeExports.jsxs("p",{className:"text-xs text-secondary-font",children:["The following environment variables are required by"," ",jsxRuntimeExports.jsx("strong",{children:ca||"this app"})," and its dependencies. Since execution happens on the backend server (port 8080), you must set these in your"," ",jsxRuntimeExports.jsx("code",{className:"px-1 py-0.5 bg-gray-800 rounded",children:".env"})," ","file or system environment before running the app."]})]})]})}):jsxRuntimeExports.jsxs("p",{className:"text-sm text-secondary-font mb-6",children:["Configure environment variables for"," ",jsxRuntimeExports.jsx("strong",{children:ca||"this app"}),". Required keys are detected from config.al and must be set for the app to function properly."]}),ff&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm text-secondary-font mb-4",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:loading",className:"w-4 h-4 animate-spin"}),"Detecting required environment keys..."]}),Uf&&jsxRuntimeExports.jsx("div",{className:"mb-4 p-3 bg-yellow-500/10 border border-yellow-500/30 rounded",children:jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.info,className:"w-4 h-4 text-yellow-500 mt-0.5"}),jsxRuntimeExports.jsx("p",{className:"text-xs text-secondary-font",children:Uf})]})}),!ff&&ml.length>0&&jsxRuntimeExports.jsxs("div",{className:"mb-6",children:[jsxRuntimeExports.jsxs("h4",{className:"text-sm font-medium mb-3 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:alert-circle",className:"w-4 h-4 text-yellow-500"}),"Required Keys (",ml.length,")"]}),jsxRuntimeExports.jsx("div",{className:"space-y-2",children:ml.map(bY=>{const Lhe=G0(bY.name),Dhe=X0(bY.name);return ua?jsxRuntimeExports.jsxs("div",{className:"p-3 bg-yellow-900/10 border border-yellow-500/30 rounded",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[jsxRuntimeExports.jsx("span",{className:"px-3 py-1 bg-yellow-500/20 border border-yellow-500/40 rounded-full text-xs font-mono font-medium text-yellow-400",children:bY.name}),jsxRuntimeExports.jsx(Icon,{icon:"mdi:alert-circle",className:"w-3.5 h-3.5 text-yellow-500"})]}),jsxRuntimeExports.jsx("p",{className:"text-xs text-secondary-font ml-1",children:getEnvKeyDescription(bY.name)}),bY.configEntity&&jsxRuntimeExports.jsxs("p",{className:"text-xs text-secondary-font/70 mt-1 ml-1",children:["Used in: ",bY.configEntity,".",bY.field]})]},bY.name):jsxRuntimeExports.jsxs("div",{className:`flex items-center gap-2 p-3 rounded border ${Dhe?"bg-green-900/10 border-green-500/30":"bg-yellow-900/10 border-yellow-500/30"}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex-1",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[jsxRuntimeExports.jsx("div",{className:"text-sm font-medium text-white",children:bY.name}),Dhe&&jsxRuntimeExports.jsx(Icon,{icon:"mdi:check-circle",className:"w-4 h-4 text-green-500"})]}),jsxRuntimeExports.jsxs("div",{className:"text-xs text-secondary-font mb-2",children:[getEnvKeyDescription(bY.name),bY.configEntity&&jsxRuntimeExports.jsxs("span",{className:"ml-1 opacity-70",children:["(",bY.configEntity,".",bY.field,")"]})]}),np===bY.name?jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:K0.has(bY.name)?"text":"password",value:ig,onChange:kdt=>vv(kdt.target.value),placeholder:getEnvKeyPlaceholder(bY.name),className:"flex-1 text-sm px-2 py-1 bg-gray-900 border border-border rounded",autoFocus:!0}),jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>yY(bY.name),children:jsxRuntimeExports.jsx(Icon,{icon:K0.has(bY.name)?icons.eyeOff:icons.eye,className:"w-4 h-4"})})]}):Lhe?jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:K0.has(bY.name)?"text":"password",value:Lhe,readOnly:!0,className:"flex-1 text-sm px-2 py-1 bg-gray-900/50 border border-border/50 rounded cursor-default"}),jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>yY(bY.name),children:jsxRuntimeExports.jsx(Icon,{icon:K0.has(bY.name)?icons.eyeOff:icons.eye,className:"w-4 h-4"})})]}):jsxRuntimeExports.jsx("div",{className:"text-xs text-yellow-500",children:"Not set - click Edit to add value"}),Hw.value&&np===bY.name&&jsxRuntimeExports.jsx("p",{className:"text-xs text-red-500 mt-1",children:Hw.value})]}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1",children:np===bY.name?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>d_(bY.name,ig),className:"text-green-500 hover:text-green-400",children:jsxRuntimeExports.jsx(Icon,{icon:icons.check,className:"w-4 h-4"})}),jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:iF,className:"text-secondary-font hover:text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"w-4 h-4"})})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>BN(bY.name,Lhe),className:"text-blue hover:text-blue-hover",children:jsxRuntimeExports.jsx(Icon,{icon:icons.edit,className:"w-4 h-4"})}),Lhe&&jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>zN(bY.name),className:"text-maroon hover:text-red-400",children:jsxRuntimeExports.jsx(Icon,{icon:icons.delete,className:"w-4 h-4"})})]})})]},bY.name)})})]}),!ff&&wc.length>0&&jsxRuntimeExports.jsxs("div",{className:"mb-6",children:[jsxRuntimeExports.jsxs("h4",{className:"text-sm font-medium mb-3 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:information",className:"w-4 h-4 text-blue"}),"Optional Keys (",wc.length,")"]}),jsxRuntimeExports.jsx("div",{className:"space-y-2",children:wc.map(bY=>{const Lhe=G0(bY.name);return ua?jsxRuntimeExports.jsxs("div",{className:"p-3 bg-blue/5 border border-blue/20 rounded",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[jsxRuntimeExports.jsx("span",{className:"px-3 py-1 bg-blue/20 border border-blue/40 rounded-full text-xs font-mono font-medium text-blue-300",children:bY.name}),jsxRuntimeExports.jsx(Icon,{icon:"mdi:information",className:"w-3.5 h-3.5 text-blue"})]}),jsxRuntimeExports.jsx("p",{className:"text-xs text-secondary-font ml-1",children:getEnvKeyDescription(bY.name)}),jsxRuntimeExports.jsxs("p",{className:"text-xs text-green-400/80 mt-1 ml-1",children:["Default: ",bY.defaultValue||"None"]})]},bY.name):jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 p-3 bg-gray-800/30 rounded border border-border",children:[jsxRuntimeExports.jsxs("div",{className:"flex-1",children:[jsxRuntimeExports.jsx("div",{className:"text-sm font-medium text-white mb-1",children:bY.name}),jsxRuntimeExports.jsxs("div",{className:"text-xs text-secondary-font mb-2",children:[getEnvKeyDescription(bY.name)," ","(Default: ",bY.defaultValue,")"]}),np===bY.name?jsxRuntimeExports.jsx("div",{className:"flex items-center gap-2",children:jsxRuntimeExports.jsx("input",{type:"text",value:ig,onChange:Dhe=>vv(Dhe.target.value),placeholder:getEnvKeyPlaceholder(bY.name),className:"flex-1 text-sm px-2 py-1 bg-gray-900 border border-border rounded",autoFocus:!0})}):Lhe?jsxRuntimeExports.jsx("input",{type:"text",value:Lhe,readOnly:!0,className:"flex-1 text-sm px-2 py-1 bg-gray-900/50 border border-border/50 rounded cursor-default w-full"}):jsxRuntimeExports.jsx("div",{className:"text-xs text-secondary-font",children:"Using default value"})]}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1",children:np===bY.name?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>d_(bY.name,ig),className:"text-green-500 hover:text-green-400",children:jsxRuntimeExports.jsx(Icon,{icon:icons.check,className:"w-4 h-4"})}),jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:iF,className:"text-secondary-font hover:text-white",children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"w-4 h-4"})})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>BN(bY.name,Lhe),className:"text-blue hover:text-blue-hover",children:jsxRuntimeExports.jsx(Icon,{icon:icons.edit,className:"w-4 h-4"})}),Lhe&&jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>zN(bY.name),className:"text-maroon hover:text-red-400",children:jsxRuntimeExports.jsx(Icon,{icon:icons.delete,className:"w-4 h-4"})})]})})]},bY.name)})})]}),!ua&&Ohe.length>0&&jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2,my:3}}),!ua&&Ohe.length>0&&jsxRuntimeExports.jsxs("div",{className:"mb-6",children:[jsxRuntimeExports.jsxs("h4",{className:"text-sm font-medium mb-3 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.key,className:"w-4 h-4"}),"Custom Keys (",Ohe.length,")"]}),jsxRuntimeExports.jsx("div",{className:"space-y-2",children:Ohe.map(bY=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 p-3 bg-gray-800/30 rounded border border-border",children:[jsxRuntimeExports.jsxs("div",{className:"flex-1",children:[jsxRuntimeExports.jsx("div",{className:"text-sm font-medium text-white mb-1",children:bY.name}),jsxRuntimeExports.jsx("input",{type:K0.has(bY.name)?"text":"password",value:bY.value,readOnly:!0,className:"flex-1 text-sm px-2 py-1 bg-gray-900/50 border border-border/50 rounded cursor-default w-full"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>yY(bY.name),children:jsxRuntimeExports.jsx(Icon,{icon:K0.has(bY.name)?icons.eyeOff:icons.eye,className:"w-4 h-4"})}),jsxRuntimeExports.jsx(IconButton,{size:"small",onClick:()=>zN(bY.name),className:"text-maroon hover:text-red-400",children:jsxRuntimeExports.jsx(Icon,{icon:icons.delete,className:"w-4 h-4"})})]})]},bY.name))})]}),!ua&&jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2,my:3}}),!ua&&jsxRuntimeExports.jsx("div",{children:R1?jsxRuntimeExports.jsxs("div",{className:"bg-gray-800/30 rounded border border-border p-4",children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium mb-3",children:"Add Custom Key"}),jsxRuntimeExports.jsxs("div",{className:"space-y-3",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"text-xs text-secondary-font block mb-1",children:"Key Name"}),jsxRuntimeExports.jsx("input",{type:"text",value:Vm,onChange:bY=>{eg(bY.target.value.toUpperCase()),qw(Lhe=>({...Lhe,name:void 0}))},placeholder:"e.g., CUSTOM_API_KEY",className:"w-full text-sm px-3 py-2 bg-gray-900 border border-border rounded"}),Hw.name&&jsxRuntimeExports.jsx("p",{className:"text-xs text-red-500 mt-1",children:Hw.name})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"text-xs text-secondary-font block mb-1",children:"Key Value"}),jsxRuntimeExports.jsx("input",{type:"password",value:tg,onChange:bY=>{rg(bY.target.value),qw(Lhe=>({...Lhe,value:void 0}))},placeholder:"Enter the value",className:"w-full text-sm px-3 py-2 bg-gray-900 border border-border rounded"}),Hw.value&&jsxRuntimeExports.jsx("p",{className:"text-xs text-red-500 mt-1",children:Hw.value})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex justify-end gap-2 mt-4",children:[jsxRuntimeExports.jsx("button",{onClick:()=>{O1(!1),eg(""),rg(""),qw({})},className:"px-3 py-1.5 text-sm text-secondary-font hover:text-white transition-colors",children:"Cancel"}),jsxRuntimeExports.jsx("button",{onClick:f_,className:"px-3 py-1.5 text-sm bg-blue hover:bg-blue-hover text-white rounded transition-colors",children:"Add Key"})]})]}):jsxRuntimeExports.jsxs("button",{onClick:()=>O1(!0),className:"flex items-center gap-2 text-sm text-blue hover:text-blue-hover transition-colors",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.add,className:"w-4 h-4"}),"Add Custom Key"]})})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"modal-footer",children:jsxRuntimeExports.jsx("button",{onClick:la,className:"px-4 py-2 text-sm bg-blue hover:bg-blue-hover text-white rounded transition-colors",children:"Done"})})]})})};create$3().shape({username:create$6().required("GitHub username is required"),token:create$6().matches(/^ghp_[A-Za-z0-9]{36}$/,"Invalid GitHub token format").required("GitHub token is required")});const TooltipComponent=({text:la,position:aa="bottom",children:ca})=>jsxRuntimeExports.jsx(Tooltip,{placement:aa,arrow:!1,title:la,children:ca}),MarkeplaceCard=la=>{const[aa,ca]=reactExports.useState(!1),[ua,Sa]=reactExports.useState(!1),[hl,pl]=reactExports.useState(""),[ml,gl]=reactExports.useState(!1),wc=useAppStore(yY=>yY.user),{setAppConfig:xu,setSelectedRole:ff}=useAppStore(),{deleteModel:jf}=useMarketplace(),Uf=Fdt(),rp=useNavigate(),np=wc.GitHub?.Username,qm=wc.GitHub?.Token,{Name:Vm,Icon:eg,isError:tg,isLoading:rg,Type:ig,Owner:vv,GithubUrl:R1,GithubOrg:O1,GitHubRepo:K0,Branch:J0,ExtraDetails:Hw,ErrorMessage:qw}=la,Y0=`custom-${Vm}-icon`;eg&&Vm!=="Jira"&&Vm!=="Slack"&&Vm!=="Odoo"&&ig!=="Team"&&ig!=="OpenAPI"&®isterBase64Icon(Y0,eg);const G0=Vm==="Jira"?"logos:jira":Vm==="Slack"?"logos:slack-icon":Vm==="Odoo"?"simple-icons:odoo":ig==="Team"?icons.team:ig==="OpenAPI"?eg:eg?Y0:"material-symbols:code",X0=()=>tg?jsxRuntimeExports.jsx(Icon,{icon:"material-symbols:error-outline",id:"model-error",width:"24",height:"24",color:"red"}):eg&&Vm!=="Jira"&&Vm!=="Slack"&&Vm!=="Odoo"&&ig!=="Team"?jsxRuntimeExports.jsx("img",{src:eg,alt:`${Vm} icon`,className:"w-6 h-6"}):jsxRuntimeExports.jsx(Icon,{icon:G0,width:"24",height:"24"}),d_=()=>{switch(ig){case"Camel-XML":return Hw?.["kamelet.group"];case"OpenAPI":return Hw?.["x-providerName"];default:return`${O1}/${extractRepoNameFromUrl(R1||"")}`}},f_=yY=>{if(!yY)return"";const vQ=getDate(yY);return vQ.includes("ago")?vQ:`Updated ${vQ}`},zN=wc.Email===vv,BN=async()=>{if(!(aa||rg)){if(ig!=="Team"){console.log("Open functionality only available for Team type models");return}ca(!0),Sa(!1),pl("");try{const yY=K0||Vm,vQ=`/${yY}`,Ohe=J0||"main",bY=np&&np.trim().length>0,Lhe=qm&&qm.trim().length>0;if(!bY||!Lhe){pl("⚠️ GitHub credentials missing. Please set your GitHub username and token in Settings."),Sa(!0),ca(!1);return}const Dhe=generateGitHubUrl(O1,yY,np,qm),kdt=async()=>{try{await pathExists(vQ)&&(console.log(`Cleaning up failed clone: removing ${vQ} from IndexedDB`),await removeDirectory(vQ))}catch(eht){console.error("Error cleaning up failed clone:",eht)}};try{await cloneRepository(Dhe,vQ,Ohe,qm),await readRepoFile(vQ,"package.json").then(async()=>{try{await flushAllAndLoad(vQ,{name:"studio"}),await readRepoFile(vQ,"ui-spec.json").then(oht=>{const iht=JSON.parse(oht);Uf(iht)}).catch(()=>{Uf(null)}),await readRepoFile(vQ,"app.config.json").then(oht=>{const iht=JSON.parse(oht);console.log("Loaded app.config.json:",iht);const Uhe=iht.rbac.roles||[];ff(Uhe.length>0?Uhe[0]:""),xu(iht)}).catch(oht=>{console.error("Failed to read app.config.json:",oht),xu({})});const eht=getUserModuleNames();rp(`/design/marketplace/${O1}/${Vm}/${eht[0]}`)}catch(eht){Sa(!0),pl("Failed to load package.json"),console.error("Failed to load package.json:",eht),await kdt()}}).catch(async()=>{Sa(!0),pl("Failed to read package.json"),console.error("Failed to read package.json"),await kdt()})}catch(eht){Sa(!0),pl("Failed to clone repository"),console.error("Error during repository clone:",eht),await kdt()}finally{ca(!1)}}catch(yY){console.error("Unexpected error in handleCardClick:",yY),ca(!1)}}},iF=async()=>{try{await jf(la.Id),gl(!1)}catch(yY){console.error("Failed to delete model:",yY)}};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{onClick:BN,className:classNames("hf-style-card group cursor-pointer",(rg||aa)&&"relative"),children:[(rg||aa)&&jsxRuntimeExports.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/50 rounded-lg z-10",children:jsxRuntimeExports.jsx(CircularProgress,{color:"inherit",size:24,id:"app-loading"})}),jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between mb-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0 flex items-start gap-2",children:[jsxRuntimeExports.jsx("div",{className:"shrink-0 mt-0.5",children:X0()}),jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0",children:[jsxRuntimeExports.jsx("h3",{className:"text-base font-semibold text-white mb-1 line-clamp-1 group-hover:text-blue-400 transition-colors",children:Vm}),la.Description&&jsxRuntimeExports.jsx("p",{className:"text-xs text-gray-400 line-clamp-2 mb-2",children:la.Description})]})]}),zN&&jsxRuntimeExports.jsx("div",{className:"flex items-center gap-2 ml-2 shrink-0",children:jsxRuntimeExports.jsx(TooltipComponent,{text:"Delete",children:jsxRuntimeExports.jsx("button",{onClick:yY=>{yY.stopPropagation(),gl(!0)},className:"p-1.5 rounded-md text-gray-500 hover:text-red-400 hover:bg-red-400/10 transition-all opacity-0 group-hover:opacity-100 cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.delete,className:"w-4 h-4"})})})})]}),(tg||ua)&&jsxRuntimeExports.jsx("div",{className:"text-xs line-clamp-2 text-red-500 mb-3",children:ua?hl:qw}),!(tg||ua)&&jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap gap-1.5 mb-3",children:[ig&&jsxRuntimeExports.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-blue-500/20 text-blue-400 rounded border border-blue-500/30",children:ig}),la.Version&&jsxRuntimeExports.jsxs("span",{className:"px-2 py-0.5 text-xs font-medium bg-gray-700/50 text-gray-300 rounded border border-gray-600/50",children:["v",la.Version]}),la.Tags&&la.Tags.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[la.Tags.slice(0,2).map((yY,vQ)=>jsxRuntimeExports.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-gray-700/50 text-gray-300 rounded border border-gray-600/50",children:yY},vQ)),la.Tags.length>2&&jsxRuntimeExports.jsxs("span",{className:"px-2 py-0.5 text-xs font-medium text-gray-500",children:["+",la.Tags.length-2]})]})]}),!(tg||ua)&&jsxRuntimeExports.jsx("div",{className:"flex items-center justify-between text-xs text-gray-500 pt-3 border-t border-gray-700/50",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between w-full",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-end gap-1",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:github",className:"w-4 h-4"}),jsxRuntimeExports.jsx("span",{className:"line-clamp-1 leading-none!",children:d_()})]}),la.LastUpdatedAt&&jsxRuntimeExports.jsx("span",{children:f_(la.LastUpdatedAt)})]})})]}),ml&&jsxRuntimeExports.jsx(ConfirmDelete,{closeHandler:()=>gl(!1),onConfirm:iF,title:"Delete Marketplace Model",message:`Are you sure you want to delete "${Vm}"? This action cannot be undone.`})]})},FormikMarketplaceCard=la=>{const{Name:aa,Icon:ca,isError:ua,Type:Sa,GithubUrl:hl,GithubOrg:pl,ExtraDetails:ml}=la,[gl,,wc]=useField("applicationName"),ff=gl.value===aa,jf=()=>{ff?wc.setValue(""):wc.setValue(aa)},Uf=`custom-${aa}-icon`;ca&&aa!=="Jira"&&aa!=="Slack"&&aa!=="Odoo"&&Sa!=="Team"&&Sa!=="OpenAPI"&®isterBase64Icon(Uf,ca);const rp=aa==="Jira"?"logos:jira":aa==="Slack"?"logos:slack-icon":aa==="Odoo"?"simple-icons:odoo":Sa==="Team"?icons.team:Sa==="OpenAPI"?ca:ca?Uf:"material-symbols:code",np=()=>ua?jsxRuntimeExports.jsx(Icon,{icon:"material-symbols:error-outline",id:"model-error",width:"32",height:"32",color:"red"}):ca&&aa!=="Jira"&&aa!=="Slack"&&aa!=="Odoo"&&Sa!=="Team"?jsxRuntimeExports.jsx("img",{src:ca,alt:`${aa} icon`,style:{width:"32px",height:"32px"}}):jsxRuntimeExports.jsx(Icon,{icon:rp,width:"32",height:"32"}),qm=()=>{switch(Sa){case"Camel-XML":return ml?.["kamelet.group"];case"OpenAPI":return ml?.["x-providerName"];default:return`${pl}/${extractRepoNameFromUrl(hl||"")}`}};return jsxRuntimeExports.jsxs("div",{className:"dashboard-card",onClick:jf,children:[jsxRuntimeExports.jsxs("div",{className:"dashboard-card-header",children:[jsxRuntimeExports.jsx("div",{className:"dashboard-model-icon",children:np()}),jsxRuntimeExports.jsx(Icon,{icon:icons.checkboxCircle,className:classNames([ff?"opacity-100":"opacity-20","w-6 h-6"])})]}),jsxRuntimeExports.jsxs("div",{className:"dashboard-card-body",children:[jsxRuntimeExports.jsx("div",{children:aa}),jsxRuntimeExports.jsx("div",{className:"flex justify-between items-center gap-2",children:jsxRuntimeExports.jsx("div",{className:"opacity-70 text-xs line-clamp-1",children:qm()})})]})]})};function stringIncludes(la,aa){return la?la.toLowerCase().includes(aa.toLowerCase()):!1}function inArray(la,aa){return la.includes(aa)}function filterMarketplaceModels(la,aa,ca,ua){const Sa=aa.toLowerCase();return(ca.length===0?la:la.filter(pl=>inArray(ca,pl.Type||""))).filter(pl=>{const ml=typeof pl.Name=="string"?pl.Name:String(pl.Name),gl=pl.ExtraDetails?.["x-providerName"],wc=pl.Description;return stringIncludes(ml,Sa)||stringIncludes(gl,Sa)||stringIncludes(wc,Sa)})}const MODEL_FILTERS=[{value:"Team",label:"Teams",icon:icons.team},{value:"Connector",label:"Connectors",icon:icons.integration},{value:"LLM",label:"LLMs",icon:icons.llm},{value:"Camel-XML",label:"Camel-XML",icon:icons.camel},{value:"OpenAPI",label:"OpenAPI",icon:icons.openApi}],Filter=({showFilter:la,selectedFilters:aa,setSelectedFilters:ca})=>jsxRuntimeExports.jsx(motion.div,{initial:!1,animate:{height:la?"auto":"0px",marginTop:la?"8px":"0px"},className:"marketplace-filters",children:MODEL_FILTERS.map(ua=>{const Sa=aa.includes(ua.value);return jsxRuntimeExports.jsxs("div",{"data-selected":Sa,className:"marketplace-filter",onClick:hl=>{const pl=hl.metaKey||hl.ctrlKey;ca(pl?Sa?aa.filter(ml=>ml!==ua.value):[...aa,ua.value]:[ua.value])},children:[jsxRuntimeExports.jsx(Icon,{icon:ua.icon,className:"w-4.5 h-4.5"}),ua.label]},ua.value)})}),Header$3=({selectedFilters:la,setSelectedFilters:aa,search:ca,setSearch:ua,isLoading:Sa,count:hl,isModal:pl=!1})=>{const[ml,gl]=reactExports.useState(!1),[wc,xu]=reactExports.useState(!1),ff=()=>gl(!1);return jsxRuntimeExports.jsxs("div",{className:"dashboard-content-header",children:[!pl&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"dashboard-buttons",children:[ml&&reactDomExports.createPortal(jsxRuntimeExports.jsx(ImportTeam,{type:"marketplace",closeHandler:ff}),document.body),jsxRuntimeExports.jsxs("button",{onClick:()=>gl(!0),className:"dashboard-button border-t-[2px] border-t-solid border-t-[#8949ef]",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.publish,className:"w-6 h-6"}),jsxRuntimeExports.jsx("div",{className:"heading",children:jsxRuntimeExports.jsx("div",{className:"title",children:"Publish Integration and Agent"})})]})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col",children:[jsxRuntimeExports.jsxs("div",{className:"dashboard-search-panel",children:[jsxRuntimeExports.jsxs("h4",{className:"col-span-2 flex gap-2 items-end",children:[jsxRuntimeExports.jsx(Icon,{icon:"icon-park-outline:more-app",className:"w-6 h-6"}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-end",children:["Integrations and Agents",Sa?jsxRuntimeExports.jsx(Count,{}):jsxRuntimeExports.jsxs("span",{children:["(",hl,")"]})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx("input",{type:"text",placeholder:"Search",value:ca,className:"grow",onChange:jf=>ua(jf.target.value)}),jsxRuntimeExports.jsx("div",{onClick:()=>xu(!wc),className:`text-primary-font hover:bg-white hover:text-[#02050d]
|
|
19581
|
-
text-sm rounded-full duration-300 w-6 h-6 flex items-center justify-center cursor-pointer`,children:jsxRuntimeExports.jsx(Icon,{icon:wc?icons.cross:"tabler:filter"})})]})]}),jsxRuntimeExports.jsx(Filter,{showFilter:wc,selectedFilters:la,setSelectedFilters:aa})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}})]})},MarketplaceDashboard=({isModal:la=!1,models:aa})=>{const[ca,ua]=reactExports.useState(""),[Sa,hl]=reactExports.useState([]);return jsxRuntimeExports.jsxs("div",{className:`dashboard-content ${la?"!py-0":""}`,children:[jsxRuntimeExports.jsx(Header$3,{selectedFilters:Sa,setSelectedFilters:hl,search:ca,setSearch:ua,isLoading:aa.isLoading,count:aa.result.length,isModal:la}),jsxRuntimeExports.jsx("div",{className:"dashboard-grid",children:aa.isLoading?jsxRuntimeExports.jsx(CardsGrid,{}):aa.isError?jsxRuntimeExports.jsxs("div",{className:"formik-error-message",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.error}),"Failed to fetch marketplace models"]}):filterMarketplaceModels(aa.result,ca,Sa).map(pl=>la?jsxRuntimeExports.jsx(FormikMarketplaceCard,{...pl},pl.Id):jsxRuntimeExports.jsx(MarkeplaceCard,{...pl},pl.Id))})]})},Marketplace=()=>{const la=useAppStore(aa=>aa.marketplaceModels);return useMarketplace(),console.log("marketplace models",la),jsxRuntimeExports.jsx(MarketplaceDashboard,{models:la})},ConfigEntityForm=({entityFqn:la,appConfig:aa,showHeader:ca=!0,onSave:ua})=>{let Sa="",hl=la;if(isFqName$1(la)){const jf=nameToPath$1(la);Sa=jf.getModuleName(),hl=jf.getEntryName()}const pl=hl.split(".").pop()||hl,ml=getEntity$1(hl,Sa),gl=ml?.getUserAttributes(),wc={},xu=[];gl&&gl.forEach((jf,Uf)=>{xu.push(Uf);let rp="";aa?.[Sa]?.[la]?.[Uf]?rp=aa[Sa][la][Uf]:aa?.[la]?.[Uf]&&(rp=aa[la][Uf]),wc[Uf]=rp});const ff=jf=>{const Uf={...aa[Sa]||{},[la]:jf};ua({[Sa]:Uf})};return!ml||!gl?jsxRuntimeExports.jsx("div",{className:"p-2 border border-dashed border-gray-600 rounded",children:jsxRuntimeExports.jsxs("div",{className:"text-yellow-500 mb-2",children:["Could not load schema for ",la,". Ensure the module is loaded."]})}):jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-4",children:[ca&&jsxRuntimeExports.jsxs("h5",{className:"text-lg font-medium text-primary-font border-b border-gray-700 pb-2",children:[pl," Configuration"]}),jsxRuntimeExports.jsx(Formik,{enableReinitialize:!0,initialValues:wc,onSubmit:ff,children:({dirty:jf,isSubmitting:Uf})=>jsxRuntimeExports.jsxs(Form$7,{className:"flex flex-col gap-4",children:[jsxRuntimeExports.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:xu.map(rp=>jsxRuntimeExports.jsx("div",{className:"space-y-1",children:jsxRuntimeExports.jsx(nht,{name:rp,label:rp,placeholder:`Enter ${rp}`})},rp))}),jf&&jsxRuntimeExports.jsx("div",{className:"flex justify-end pt-2",children:jsxRuntimeExports.jsx("button",{type:"submit",className:`px-4 py-2 bg-table-header hover:bg-[rgba(255,255,255,0.15)] border border-[rgba(255,255,255,0.2)] hover:border-[rgba(255,255,255,0.3)] rounded-lg text-[rgba(255,255,255,0.9)] text-sm font-medium cursor-pointer ${jf?"":"opacity-50 cursor-not-allowed"}`,disabled:Uf,children:Uf?"Updating...":"Update Configuration"})})]})})]})},IntegrationConfig=({integration:la,source:aa="api"})=>{const{teamName:ca}=useParams(),[ua,Sa]=reactExports.useState([]),[hl,pl]=reactExports.useState(!1),[ml,gl]=reactExports.useState(null),{saveAppConfig:wc}=useAppConfig(),xu=useAppStore(rp=>rp.appConfig),ff=useAppStore(rp=>rp.user),jf=ff.GitHub.Token,Uf=ff.GitHub.Username;return reactExports.useEffect(()=>{(async()=>{pl(!0),gl(null);try{if(aa==="api"){const{GitHubOrg:np,GitHubRepo:qm}=la.userData,Vm=`/integrations/${np}/${qm}`;if(!await pathExists(Vm)){const ig=generateGitHubUrl(np,qm,Uf,jf);await cloneRepository(ig,Vm,"main",jf||"")}await flushAllAndLoad(Vm,{name:"studio"});const tg=await readRepoFile(Vm,"package.json"),rg=JSON.parse(tg);rg?.agentlang?.config&&Array.isArray(rg.agentlang.config)?Sa(rg.agentlang.config):Sa([])}else{if(!ca)return;const np=la.name.split(".")[0].toLowerCase(),qm=await readDependencyPackageJsonFromGit(ca,np);qm?.agentlang?.config&&Array.isArray(qm.agentlang.config)?Sa(qm.agentlang.config):Sa([])}}catch(np){console.error(`Failed to load config for ${la.name}:`,np),gl(`Failed to load configuration: ${np.message}`)}finally{pl(!1)}})()},[ca,la.name,la.userData,aa,Uf,jf]),hl?jsxRuntimeExports.jsx("div",{className:"p-4 text-center text-gray-400",children:"Loading configuration..."}):ml?jsxRuntimeExports.jsx("div",{className:"p-4 text-center text-red-400",children:ml}):ua.length===0?jsxRuntimeExports.jsx("div",{className:"p-4 text-center text-gray-400",children:"No configuration available for this integration."}):jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-6 p-4 bg-primary/30 rounded-lg",children:ua.map(rp=>jsxRuntimeExports.jsx(ConfigEntityForm,{entityFqn:rp,appConfig:xu,onSave:wc},rp))})},Checkbox=({isSelected:la,label:aa,onClick:ca})=>jsxRuntimeExports.jsxs("div",{className:"flex items-center !leading-none gap-2 cursor-pointer",onClick:ca,children:[jsxRuntimeExports.jsx(Icon,{icon:la?"mdi:checkbox-marked":"mdi:checkbox-blank-outline",color:la?"#1976d2":"",width:"20px",height:"20px"}),aa]}),IntegrationRow=({integration:la,source:aa,isSelected:ca,onToggleSelection:ua})=>{const{deleteIntegration:Sa}=useIntegration(aa),[hl,pl]=reactExports.useState(!1),[ml,gl]=reactExports.useState(!1),[wc,xu]=reactExports.useState(!1),ff=np=>{np.stopPropagation(),gl(!0)},jf=async()=>{xu(!0);try{await Sa(la.name),gl(!1)}catch(np){console.error("Failed to delete integration:",np)}finally{xu(!1)}},Uf=aa==="api"&&!!ua,rp=()=>{Uf||pl(!hl)};return jsxRuntimeExports.jsxs("div",{className:"flex flex-col",children:[jsxRuntimeExports.jsxs("div",{className:classNames("grid grid-cols-1 sm:grid-cols-12 p-3 gap-2 sm:gap-4 bg-secondary items-center transition-colors",hl?"rounded-t-lg":"rounded-lg",Uf?"":"cursor-pointer hover:bg-white/5"),onClick:rp,children:[jsxRuntimeExports.jsxs("div",{className:"col-span-1 sm:col-span-10 mb-2 sm:mb-0 flex items-center gap-2",children:[aa==="api"&&ua&&jsxRuntimeExports.jsx("div",{onClick:np=>np.stopPropagation(),children:jsxRuntimeExports.jsx(Checkbox,{isSelected:ca||!1,label:"",onClick:()=>ua(la)})}),(aa==="config"||!Uf)&&jsxRuntimeExports.jsx("div",{className:"p-1 hover:bg-white/10 rounded-full transition-colors",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:chevron-right",className:`transition-transform duration-200 text-gray-400 ${hl?"rotate-90":""}`,width:20,height:20})}),jsxRuntimeExports.jsx("span",{className:"font-medium",children:la.name})]}),jsxRuntimeExports.jsx("div",{className:"col-span-1 sm:col-span-2 flex justify-end items-center",children:jsxRuntimeExports.jsxs("button",{className:"table-delete-button w-full sm:w-auto px-3 py-2 text-xs sm:text-sm",onClick:ff,children:[jsxRuntimeExports.jsx(Icon,{icon:"tabler:trash",width:16,height:16}),"Delete"]})})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:hl&&jsxRuntimeExports.jsx(motion.div,{className:"bg-secondary rounded-b-lg overflow-hidden px-3 pb-3",initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},children:jsxRuntimeExports.jsx(IntegrationConfig,{integration:la,source:aa})})}),ml&&reactDomExports.createPortal(jsxRuntimeExports.jsx(ConfirmDelete,{closeHandler:()=>gl(!1),onConfirm:jf,title:"Delete Integration",message:`Are you sure you want to delete the integration "${la.name}"? This will remove it from package.json and config.al.`,itemName:la.name,isLoading:wc}),document.body)]})},DashboardHistoryNavigationButtons=()=>{const la=useNavigate(),aa=useLocation(),ca=useNavigationType(),[ua,Sa]=reactExports.useState(!1),[hl,pl]=reactExports.useState(!1);return reactExports.useEffect(()=>{const ml=window.history.state&&window.history.state.idx||0,gl="rr_max_idx",wc=sessionStorage.getItem(gl);let xu=wc?parseInt(wc,10):ml;(ca==="PUSH"||ml>xu)&&(xu=ml),sessionStorage.setItem(gl,String(xu)),Sa(ml>0),pl(ml<xu)},[aa,ca]),jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>ua&&la(-1),className:`header-action-icon ${ua?"":"opacity-40 cursor-not-allowed pointer-events-none"}`,disabled:!ua,title:ua?"Back":"No previous page",children:jsxRuntimeExports.jsx(Icon,{icon:icons.back})}),jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>hl&&la(1),className:`header-action-icon ${hl?"":"opacity-40 cursor-not-allowed pointer-events-none"}`,disabled:!hl,title:hl?"Forward":"No next page",children:jsxRuntimeExports.jsx(Icon,{icon:icons.forward})})]})},IntegrationsDasboard=({integrations:la,isModal:aa,source:ca="api",selectedIntegrations:ua,onToggleIntegration:Sa})=>{const{isLoading:hl,isError:pl,result:ml}=la,[gl,wc]=reactExports.useState(""),[xu,ff]=reactExports.useState("");return jsxRuntimeExports.jsxs("div",{className:`dashboard-content ${aa?"p-0! m-0! max-w-none! overflow-auto grow":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"dashboard-content-header",children:[jsxRuntimeExports.jsxs("div",{className:"grid gap-2 sm:gap-3 md:gap-4 lg:gap-6 items-center grid-cols-2 lg:grid-cols-12 px-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-1 col-span-1 lg:col-span-3 row-start-1 col-start-1 lg:row-start-1 lg:col-start-1",children:[jsxRuntimeExports.jsxs("h4",{className:"flex items-end gap-2 text-sm sm:text-base",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.integration,className:"w-5 h-5 sm:w-6 sm:h-6"}),jsxRuntimeExports.jsxs("div",{className:"flex items-end gap-2",children:["Integrations",hl?jsxRuntimeExports.jsx(Count,{}):jsxRuntimeExports.jsxs("span",{children:["(",ml.length,")"]})]})]}),jsxRuntimeExports.jsx("div",{className:"font-normal text-secondary-font text-left line-clamp-1 text-xs sm:text-sm",children:"Search and manage your integrations."})]}),jsxRuntimeExports.jsxs("div",{className:"col-span-2 lg:col-span-7 row-start-2 col-start-1 lg:row-start-1 lg:col-start-4 flex gap-2 items-center",children:[jsxRuntimeExports.jsx(DashboardHistoryNavigationButtons,{}),jsxRuntimeExports.jsx("input",{type:"text",placeholder:"Search Integrations",value:gl,onChange:jf=>wc(jf.target.value),className:"w-full text-sm sm:text-base"})]}),!(aa&&ca==="api")&&jsxRuntimeExports.jsx("div",{className:"col-span-1 row-start-1 col-start-2 lg:row-start-1 lg:col-start-11 lg:col-span-2 flex gap-2 justify-end lg:justify-end",children:jsxRuntimeExports.jsx(TooltipComponent,{text:"New Integration",children:jsxRuntimeExports.jsx("div",{onClick:()=>ff("addIntegration"),className:"header-action-icon",children:jsxRuntimeExports.jsx(Icon,{icon:icons.integration})})})})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),xu==="addIntegration"&&reactDomExports.createPortal(jsxRuntimeExports.jsx(AddIntegration,{closeHandler:()=>ff(""),source:ca}),document.body)]}),jsxRuntimeExports.jsxs("div",{className:"overflow-auto flex flex-col gap-4 scrollbar-none",children:[jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-12 px-3 justify-between",children:[jsxRuntimeExports.jsx("div",{className:"col-span-10",children:"Name"}),jsxRuntimeExports.jsx("div",{className:"col-span-2 flex justify-end",children:"Actions"})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),hl?jsxRuntimeExports.jsx(Integrations$1,{}):pl?jsxRuntimeExports.jsxs("div",{className:"formik-error-message",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.error}),"Failed to fetch Integrations"]}):ml.filter(jf=>jf.name.toLowerCase().includes(gl.toLowerCase())).map(jf=>jsxRuntimeExports.jsx(reactExports.Fragment,{children:jsxRuntimeExports.jsx(IntegrationRow,{integration:jf,source:ca,isSelected:ua?.includes(jf.name)||!1,onToggleSelection:Sa},jf.name)},jf.name))]})]})},Integrations=({isModal:la,source:aa="api",selectedIntegrations:ca,onToggleIntegration:ua})=>{const{integrationData:Sa,isLoadingIntegrations:hl,isErrorIntegrations:pl}=useIntegration(aa),ml=aa==="config"?(Sa??[]).filter(wc=>!wc.userData?.isRemoteIntegration):Sa??[],gl={isLoading:!!hl,isError:!!pl,result:ml};return jsxRuntimeExports.jsx(IntegrationsDasboard,{integrations:gl,isModal:la,source:aa,selectedIntegrations:ca,onToggleIntegration:ua})};function insertReplacement(la,aa,ca){const ua=[];return la.forEach(Sa=>typeof Sa!="string"?ua.push(Sa):aa[Symbol.split](Sa).forEach((hl,pl,ml)=>{hl!==""&&ua.push(hl),pl<ml.length-1&&ua.push(ca)})),ua}/**
|
|
19581
|
+
text-sm rounded-full duration-300 w-6 h-6 flex items-center justify-center cursor-pointer`,children:jsxRuntimeExports.jsx(Icon,{icon:wc?icons.cross:"tabler:filter"})})]})]}),jsxRuntimeExports.jsx(Filter,{showFilter:wc,selectedFilters:la,setSelectedFilters:aa})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}})]})},MarketplaceDashboard=({isModal:la=!1,models:aa})=>{const[ca,ua]=reactExports.useState(""),[Sa,hl]=reactExports.useState([]);return jsxRuntimeExports.jsxs("div",{className:`dashboard-content ${la?"!py-0":""}`,children:[jsxRuntimeExports.jsx(Header$3,{selectedFilters:Sa,setSelectedFilters:hl,search:ca,setSearch:ua,isLoading:aa.isLoading,count:aa.result.length,isModal:la}),jsxRuntimeExports.jsx("div",{className:"dashboard-grid",children:aa.isLoading?jsxRuntimeExports.jsx(CardsGrid,{}):aa.isError?jsxRuntimeExports.jsxs("div",{className:"formik-error-message",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.error}),"Failed to fetch marketplace models"]}):filterMarketplaceModels(aa.result,ca,Sa).map(pl=>la?jsxRuntimeExports.jsx(FormikMarketplaceCard,{...pl},pl.Id):jsxRuntimeExports.jsx(MarkeplaceCard,{...pl},pl.Id))})]})},Marketplace=()=>{const la=useAppStore(aa=>aa.marketplaceModels);return useMarketplace(),console.log("marketplace models",la),jsxRuntimeExports.jsx(MarketplaceDashboard,{models:la})},ConfigEntityForm=({entityFqn:la,appConfig:aa,showHeader:ca=!0,onSave:ua})=>{let Sa="",hl=la;if(isFqName$1(la)){const jf=nameToPath$1(la);Sa=jf.getModuleName(),hl=jf.getEntryName()}const pl=hl.split(".").pop()||hl,ml=getEntity$1(hl,Sa),gl=ml?.getUserAttributes(),wc={},xu=[];gl&&gl.forEach((jf,Uf)=>{xu.push(Uf);let rp="";aa?.[Sa]?.[la]?.[Uf]?rp=aa[Sa][la][Uf]:aa?.[la]?.[Uf]&&(rp=aa[la][Uf]),wc[Uf]=rp});const ff=async jf=>{const Uf={...aa[Sa]||{},[la]:jf};await ua({[Sa]:Uf})};return!ml||!gl?jsxRuntimeExports.jsx("div",{className:"p-2 border border-dashed border-gray-600 rounded",children:jsxRuntimeExports.jsxs("div",{className:"text-yellow-500 mb-2",children:["Could not load schema for ",la,". Ensure the module is loaded."]})}):jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-4",children:[ca&&jsxRuntimeExports.jsxs("h5",{className:"text-lg font-medium text-primary-font border-b border-gray-700 pb-2",children:[pl," Configuration"]}),jsxRuntimeExports.jsx(Formik,{enableReinitialize:!0,initialValues:wc,onSubmit:ff,children:({dirty:jf,isSubmitting:Uf})=>jsxRuntimeExports.jsxs(Form$7,{className:"flex flex-col gap-4",children:[jsxRuntimeExports.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:xu.map(rp=>jsxRuntimeExports.jsx("div",{className:"space-y-1",children:jsxRuntimeExports.jsx(nht,{name:rp,label:rp,placeholder:`Enter ${rp}`})},rp))}),jf&&jsxRuntimeExports.jsx("div",{className:"flex justify-end pt-2",children:jsxRuntimeExports.jsx("button",{type:"submit",className:`px-4 py-2 bg-table-header hover:bg-[rgba(255,255,255,0.15)] border border-[rgba(255,255,255,0.2)] hover:border-[rgba(255,255,255,0.3)] rounded-lg text-[rgba(255,255,255,0.9)] text-sm font-medium cursor-pointer ${jf?"":"opacity-50 cursor-not-allowed"}`,disabled:Uf,children:Uf?"Updating...":"Update Configuration"})})]})})]})},IntegrationConfig=({integration:la,source:aa="api"})=>{const{teamName:ca}=useParams(),[ua,Sa]=reactExports.useState([]),[hl,pl]=reactExports.useState(!1),[ml,gl]=reactExports.useState(null),{saveAppConfig:wc}=useAppConfig(),xu=useAppStore(rp=>rp.appConfig),ff=useAppStore(rp=>rp.user),jf=ff.GitHub.Token,Uf=ff.GitHub.Username;return reactExports.useEffect(()=>{(async()=>{pl(!0),gl(null);try{if(aa==="api"){const{GitHubOrg:np,GitHubRepo:qm}=la.userData,Vm=`/integrations/${np}/${qm}`;if(!await pathExists(Vm)){const ig=generateGitHubUrl(np,qm,Uf,jf);await cloneRepository(ig,Vm,"main",jf||"")}await flushAllAndLoad(Vm,{name:"studio"});const tg=await readRepoFile(Vm,"package.json"),rg=JSON.parse(tg);rg?.agentlang?.config&&Array.isArray(rg.agentlang.config)?Sa(rg.agentlang.config):Sa([])}else{if(!ca)return;const np=la.name.split(".")[0].toLowerCase(),qm=await readDependencyPackageJsonFromGit(ca,np);qm?.agentlang?.config&&Array.isArray(qm.agentlang.config)?Sa(qm.agentlang.config):Sa([])}}catch(np){console.error(`Failed to load config for ${la.name}:`,np),gl(`Failed to load configuration: ${np.message}`)}finally{pl(!1)}})()},[ca,la.name,la.userData,aa,Uf,jf]),hl?jsxRuntimeExports.jsx("div",{className:"p-4 text-center text-gray-400",children:"Loading configuration..."}):ml?jsxRuntimeExports.jsx("div",{className:"p-4 text-center text-red-400",children:ml}):ua.length===0?jsxRuntimeExports.jsx("div",{className:"p-4 text-center text-gray-400",children:"No configuration available for this integration."}):jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-6 p-4 bg-primary/30 rounded-lg",children:ua.map(rp=>jsxRuntimeExports.jsx(ConfigEntityForm,{entityFqn:rp,appConfig:xu,onSave:wc},rp))})},Checkbox=({isSelected:la,label:aa,onClick:ca})=>jsxRuntimeExports.jsxs("div",{className:"flex items-center !leading-none gap-2 cursor-pointer",onClick:ca,children:[jsxRuntimeExports.jsx(Icon,{icon:la?"mdi:checkbox-marked":"mdi:checkbox-blank-outline",color:la?"#1976d2":"",width:"20px",height:"20px"}),aa]}),IntegrationRow=({integration:la,source:aa,isSelected:ca,onToggleSelection:ua})=>{const{deleteIntegration:Sa}=useIntegration(aa),[hl,pl]=reactExports.useState(!1),[ml,gl]=reactExports.useState(!1),[wc,xu]=reactExports.useState(!1),ff=np=>{np.stopPropagation(),gl(!0)},jf=async()=>{xu(!0);try{await Sa(la.name),gl(!1)}catch(np){console.error("Failed to delete integration:",np)}finally{xu(!1)}},Uf=aa==="api"&&!!ua,rp=()=>{Uf||pl(!hl)};return jsxRuntimeExports.jsxs("div",{className:"flex flex-col",children:[jsxRuntimeExports.jsxs("div",{className:classNames("grid grid-cols-1 sm:grid-cols-12 p-3 gap-2 sm:gap-4 bg-secondary items-center transition-colors",hl?"rounded-t-lg":"rounded-lg",Uf?"":"cursor-pointer hover:bg-white/5"),onClick:rp,children:[jsxRuntimeExports.jsxs("div",{className:"col-span-1 sm:col-span-10 mb-2 sm:mb-0 flex items-center gap-2",children:[aa==="api"&&ua&&jsxRuntimeExports.jsx("div",{onClick:np=>np.stopPropagation(),children:jsxRuntimeExports.jsx(Checkbox,{isSelected:ca||!1,label:"",onClick:()=>ua(la)})}),(aa==="config"||!Uf)&&jsxRuntimeExports.jsx("div",{className:"p-1 hover:bg-white/10 rounded-full transition-colors",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:chevron-right",className:`transition-transform duration-200 text-gray-400 ${hl?"rotate-90":""}`,width:20,height:20})}),jsxRuntimeExports.jsx("span",{className:"font-medium",children:la.name})]}),jsxRuntimeExports.jsx("div",{className:"col-span-1 sm:col-span-2 flex justify-end items-center",children:jsxRuntimeExports.jsxs("button",{className:"table-delete-button w-full sm:w-auto px-3 py-2 text-xs sm:text-sm",onClick:ff,children:[jsxRuntimeExports.jsx(Icon,{icon:"tabler:trash",width:16,height:16}),"Delete"]})})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:hl&&jsxRuntimeExports.jsx(motion.div,{className:"bg-secondary rounded-b-lg overflow-hidden px-3 pb-3",initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},children:jsxRuntimeExports.jsx(IntegrationConfig,{integration:la,source:aa})})}),ml&&reactDomExports.createPortal(jsxRuntimeExports.jsx(ConfirmDelete,{closeHandler:()=>gl(!1),onConfirm:jf,title:"Delete Integration",message:`Are you sure you want to delete the integration "${la.name}"? This will remove it from package.json and config.al.`,itemName:la.name,isLoading:wc}),document.body)]})},DashboardHistoryNavigationButtons=()=>{const la=useNavigate(),aa=useLocation(),ca=useNavigationType(),[ua,Sa]=reactExports.useState(!1),[hl,pl]=reactExports.useState(!1);return reactExports.useEffect(()=>{const ml=window.history.state&&window.history.state.idx||0,gl="rr_max_idx",wc=sessionStorage.getItem(gl);let xu=wc?parseInt(wc,10):ml;(ca==="PUSH"||ml>xu)&&(xu=ml),sessionStorage.setItem(gl,String(xu)),Sa(ml>0),pl(ml<xu)},[aa,ca]),jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>ua&&la(-1),className:`header-action-icon ${ua?"":"opacity-40 cursor-not-allowed pointer-events-none"}`,disabled:!ua,title:ua?"Back":"No previous page",children:jsxRuntimeExports.jsx(Icon,{icon:icons.back})}),jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>hl&&la(1),className:`header-action-icon ${hl?"":"opacity-40 cursor-not-allowed pointer-events-none"}`,disabled:!hl,title:hl?"Forward":"No next page",children:jsxRuntimeExports.jsx(Icon,{icon:icons.forward})})]})},IntegrationsDasboard=({integrations:la,isModal:aa,source:ca="api",selectedIntegrations:ua,onToggleIntegration:Sa})=>{const{isLoading:hl,isError:pl,result:ml}=la,[gl,wc]=reactExports.useState(""),[xu,ff]=reactExports.useState("");return jsxRuntimeExports.jsxs("div",{className:`dashboard-content ${aa?"p-0! m-0! max-w-none! overflow-auto grow":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"dashboard-content-header",children:[jsxRuntimeExports.jsxs("div",{className:"grid gap-2 sm:gap-3 md:gap-4 lg:gap-6 items-center grid-cols-2 lg:grid-cols-12 px-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-1 col-span-1 lg:col-span-3 row-start-1 col-start-1 lg:row-start-1 lg:col-start-1",children:[jsxRuntimeExports.jsxs("h4",{className:"flex items-end gap-2 text-sm sm:text-base",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.integration,className:"w-5 h-5 sm:w-6 sm:h-6"}),jsxRuntimeExports.jsxs("div",{className:"flex items-end gap-2",children:["Integrations",hl?jsxRuntimeExports.jsx(Count,{}):jsxRuntimeExports.jsxs("span",{children:["(",ml.length,")"]})]})]}),jsxRuntimeExports.jsx("div",{className:"font-normal text-secondary-font text-left line-clamp-1 text-xs sm:text-sm",children:"Search and manage your integrations."})]}),jsxRuntimeExports.jsxs("div",{className:"col-span-2 lg:col-span-7 row-start-2 col-start-1 lg:row-start-1 lg:col-start-4 flex gap-2 items-center",children:[jsxRuntimeExports.jsx(DashboardHistoryNavigationButtons,{}),jsxRuntimeExports.jsx("input",{type:"text",placeholder:"Search Integrations",value:gl,onChange:jf=>wc(jf.target.value),className:"w-full text-sm sm:text-base"})]}),!(aa&&ca==="api")&&jsxRuntimeExports.jsx("div",{className:"col-span-1 row-start-1 col-start-2 lg:row-start-1 lg:col-start-11 lg:col-span-2 flex gap-2 justify-end lg:justify-end",children:jsxRuntimeExports.jsx(TooltipComponent,{text:"New Integration",children:jsxRuntimeExports.jsx("div",{onClick:()=>ff("addIntegration"),className:"header-action-icon",children:jsxRuntimeExports.jsx(Icon,{icon:icons.integration})})})})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),xu==="addIntegration"&&reactDomExports.createPortal(jsxRuntimeExports.jsx(AddIntegration,{closeHandler:()=>ff(""),source:ca}),document.body)]}),jsxRuntimeExports.jsxs("div",{className:"overflow-auto flex flex-col gap-4 scrollbar-none",children:[jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-12 px-3 justify-between",children:[jsxRuntimeExports.jsx("div",{className:"col-span-10",children:"Name"}),jsxRuntimeExports.jsx("div",{className:"col-span-2 flex justify-end",children:"Actions"})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),hl?jsxRuntimeExports.jsx(Integrations$1,{}):pl?jsxRuntimeExports.jsxs("div",{className:"formik-error-message",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.error}),"Failed to fetch Integrations"]}):ml.filter(jf=>jf.name.toLowerCase().includes(gl.toLowerCase())).map(jf=>jsxRuntimeExports.jsx(reactExports.Fragment,{children:jsxRuntimeExports.jsx(IntegrationRow,{integration:jf,source:ca,isSelected:ua?.includes(jf.name)||!1,onToggleSelection:Sa},jf.name)},jf.name))]})]})},Integrations=({isModal:la,source:aa="api",selectedIntegrations:ca,onToggleIntegration:ua})=>{const{integrationData:Sa,isLoadingIntegrations:hl,isErrorIntegrations:pl}=useIntegration(aa),ml=aa==="config"?(Sa??[]).filter(wc=>!wc.userData?.isRemoteIntegration):Sa??[],gl={isLoading:!!hl,isError:!!pl,result:ml};return jsxRuntimeExports.jsx(IntegrationsDasboard,{integrations:gl,isModal:la,source:aa,selectedIntegrations:ca,onToggleIntegration:ua})};function insertReplacement(la,aa,ca){const ua=[];return la.forEach(Sa=>typeof Sa!="string"?ua.push(Sa):aa[Symbol.split](Sa).forEach((hl,pl,ml)=>{hl!==""&&ua.push(hl),pl<ml.length-1&&ua.push(ca)})),ua}/**
|
|
19582
19582
|
* Takes a string with placeholder variables like `%{smart_count} file selected`
|
|
19583
19583
|
* and replaces it with values from options `{smart_count: 5}`
|
|
19584
19584
|
*
|
|
@@ -20107,7 +20107,7 @@ ${Hw.analysis}
|
|
|
20107
20107
|
• "Add read for Order"
|
|
20108
20108
|
• "Add update for Product"
|
|
20109
20109
|
• "Add delete for Item"
|
|
20110
|
-
• "Help" for more commands`;return{message:ig,actionTaken:vv}},eg=async tg=>{if(tg.preventDefault(),!gl.trim()||xu)return;const rg={id:Date.now().toString(),message:gl,sender:"user",timestamp:new Date().toISOString()};ml(ig=>[...ig,rg]),wc(""),ff(!0);try{const{message:ig}=await Vm(gl),vv={id:(Date.now()+1).toString(),message:ig,sender:"assistant",timestamp:new Date().toISOString()};ml(R1=>[...R1,vv])}catch{const vv={id:(Date.now()+1).toString(),message:"❌ Sorry, an error occurred while processing your request. Please try again.",sender:"assistant",timestamp:new Date().toISOString()};ml(R1=>[...R1,vv])}finally{ff(!1)}};return aa?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(motion.button,{className:"fixed bottom-6 right-6 w-14 h-14 bg-gradient-to-r from-[#8949ef] to-[#ff6b6b] rounded-full shadow-lg flex items-center justify-center z-50 cursor-pointer",whileHover:{scale:1.1},whileTap:{scale:.95},onClick:()=>hl(!Sa),style:{boxShadow:"0 4px 20px rgba(137, 73, 239, 0.3)"},children:jsxRuntimeExports.jsx(Icon,{icon:Sa?icons.cross:"fluent:bot-sparkle-20-filled",width:24,height:24,className:"text-white"})}),jsxRuntimeExports.jsx(AnimatePresence,{children:Sa&&jsxRuntimeExports.jsxs(motion.div,{ref:jf,initial:{opacity:0,y:20,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:20,scale:.95},transition:{duration:.2},className:"fixed bottom-24 right-6 w-96 h-[500px] bg-[rgba(20,20,30,0.98)] backdrop-blur-xl rounded-xl shadow-2xl border border-[rgba(255,255,255,0.1)] flex flex-col z-50",style:{boxShadow:"0 20px 60px rgba(0, 0, 0, 0.5)"},children:[jsxRuntimeExports.jsx("div",{className:"px-6 py-4 border-b border-[rgba(255,255,255,0.1)]",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("div",{className:"w-10 h-10 bg-gradient-to-r from-[#8949ef] to-[#ff6b6b] rounded-lg flex items-center justify-center",children:jsxRuntimeExports.jsx(Icon,{icon:icons.workflow,width:20,height:20,className:"text-white"})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"text-white font-semibold",children:"Workflow Assistant"}),jsxRuntimeExports.jsx("div",{className:"text-xs",children:jsxRuntimeExports.jsx(Breadcrumb,{fullName:ca?`${ca}/${la}`:la,textColor:"rgba(255,255,255,0.6)"})})]})]}),jsxRuntimeExports.jsx("button",{onClick:()=>hl(!1),className:"text-[rgba(255,255,255,0.6)] hover:text-white cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,width:20,height:20})})]})}),jsxRuntimeExports.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-3",children:[pl.map(tg=>jsxRuntimeExports.jsx(motion.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:`flex ${tg.sender==="user"?"justify-end":"justify-start"}`,children:jsxRuntimeExports.jsx("div",{className:`max-w-[80%] px-4 py-2 rounded-lg text-sm ${tg.sender==="user"?"bg-gradient-to-r from-[#8949ef] to-[#ff6b6b] text-white":"bg-[rgba(255,255,255,0.05)] text-[rgba(255,255,255,0.9)] border border-[rgba(255,255,255,0.1)]"}`,style:{whiteSpace:"pre-line"},children:tg.message})},tg.id)),xu&&jsxRuntimeExports.jsx("div",{className:"flex justify-start",children:jsxRuntimeExports.jsx("div",{className:"bg-[rgba(255,255,255,0.05)] px-4 py-2 rounded-lg border border-[rgba(255,255,255,0.1)]",children:jsxRuntimeExports.jsxs("div",{className:"flex space-x-1",children:[jsxRuntimeExports.jsx("div",{className:"w-2 h-2 bg-[rgba(255,255,255,0.6)] rounded-full animate-bounce",style:{animationDelay:"0ms"}}),jsxRuntimeExports.jsx("div",{className:"w-2 h-2 bg-[rgba(255,255,255,0.6)] rounded-full animate-bounce",style:{animationDelay:"150ms"}}),jsxRuntimeExports.jsx("div",{className:"w-2 h-2 bg-[rgba(255,255,255,0.6)] rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})})}),jsxRuntimeExports.jsx("div",{ref:rp})]}),jsxRuntimeExports.jsx("form",{onSubmit:eg,className:"p-4 border-t border-[rgba(255,255,255,0.1)]",children:jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[jsxRuntimeExports.jsx("input",{ref:Uf,type:"text",value:gl,onChange:tg=>wc(tg.target.value),placeholder:"Ask me to build the workflow...",disabled:xu,className:"flex-1 px-4 py-2 bg-[rgba(255,255,255,0.05)] border border-[rgba(255,255,255,0.2)] rounded-lg text-white placeholder-[rgba(255,255,255,0.4)] focus:outline-none focus:border-[#8949ef] focus:ring-2 focus:ring-[rgba(137,73,239,0.2)]"}),jsxRuntimeExports.jsx("button",{type:"submit",disabled:xu||!gl.trim(),className:"px-4 py-2 bg-gradient-to-r from-[#8949ef] to-[#ff6b6b] text-white rounded-lg hover:opacity-90 disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:"material-symbols:send",width:20,height:20})})]})})]})})]}):null},Workflow=()=>{const{getGraphData:la}=useGraphData(),[aa,ca]=reactExports.useState(null),ua=useAppStore(Vm=>Vm.moduleDbChangeCount),{moduleName:Sa}=useParams(),pl=useLocation()?.state?.focusEventId,{zoomHandler:ml}=useZoomHandler(),[gl,wc,xu]=useNodesState([]),[ff,jf,Uf]=useEdgesState([]);reactExports.useEffect(()=>{if(pl&&gl.length>0){const Vm=gl.find(eg=>eg.type==="event"&&eg.data?.label===pl);Vm&&ml(Vm.id)}},[pl,gl,ml]);const rp=reactExports.useCallback(Vm=>{const eg=[...Vm];Vm.forEach(tg=>{if(tg.type==="select"){const rg=tg.id,ig=gl.find(R1=>R1.id===rg);if(!ig)return;tg.selected&&(ig.type==="workflow"||ig.type==="event")?ca(rg):tg.selected||ca(null);let vv;if(ig.type==="workflow"){const R1=ff.find(O1=>O1.target===rg);R1&&(vv=R1.source)}else if(ig.type==="event"){const R1=ff.find(O1=>O1.source===rg);R1&&(vv=R1.target)}vv&&(eg.some(O1=>O1.type==="select"&&O1.id===vv&&"selected"in O1&&O1.selected===tg.selected)||eg.push({type:"select",id:vv,selected:tg.selected}))}}),xu(eg)},[gl,ff,xu]);reactExports.useEffect(()=>{const Vm=()=>{try{if(!Sa||!isModule$1(Sa))return{nodes:[],edges:[]};const tg=fetchModule$2(Sa);return la(tg)}catch(tg){return console.error("Failed to fetch module:",tg),{nodes:[],edges:[]}}},eg=Vm();wc(eg.nodes),jf(eg.edges),setTimeout(()=>{const tg=Vm();wc(tg.nodes),jf(tg.edges)},1)},[Sa,ua]);const[np,qm]=reactExports.useState("");return jsxRuntimeExports.jsxs("div",{className:"relative w-full h-full",children:[np&&jsxRuntimeExports.jsx(CanvasModal,{modal:np,setModal:qm}),jsxRuntimeExports.jsx(CanvasWithContextMenu,{ContextMenuComponent:({menu:Vm,closeHandler:eg})=>jsxRuntimeExports.jsx(WorkflowMenu,{menu:Vm,setModal:qm,closeHandler:eg}),nodes:gl,edges:ff,onNodesChange:rp,onEdgesChange:Uf,defaultViewport:{x:100,y:50,zoom:.6},type:"workflow"}),jsxRuntimeExports.jsx(WorkflowChatbot,{workflowName:aa||"",isWorkflowSelected:!!aa})]})},convertString=la=>la.toLowerCase().replace(/\s+/g,"-"),RoleList=({option:la,deleteRoleHandler:aa})=>{const{label:ca,value:ua}=la;return jsxRuntimeExports.jsx(It,{value:ua,id:convertString(ua),className:({focus:Sa})=>`option ${Sa?"bg-hover text-primary-font":""}`,children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between w-full",children:[jsxRuntimeExports.jsx("span",{children:ca}),ua!=="Create Role"&&ua!=="*"&&ua!=="admin"&&jsxRuntimeExports.jsx("div",{className:"z-[999] trash p-1",id:`${convertString(ua)}-delete`,onClick:Sa=>{Sa.stopPropagation(),aa()},children:jsxRuntimeExports.jsx(Icon,{icon:"ph:x",className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon"})})]})})},SecurityDropdown=({label:la,value:aa,options:ca,placeholder:ua,onChange:Sa,onDeleteRole:hl})=>jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-2 grow h-fit w-full",children:jsxRuntimeExports.jsx(Mo,{className:"relative grow",as:"div",value:aa,onChange:Sa,children:({open:pl})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(Mt$1,{className:"dropdown-button",children:[jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("p",{className:`${la?"floating-input":"text-gray-500"} line-clamp-1`,children:la||ua}),aa&&jsxRuntimeExports.jsx("label",{htmlFor:"floating-input",className:"floating-label",children:ua})]}),jsxRuntimeExports.jsx(Icon,{icon:"ph:caret-down-bold"})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:pl&&jsxRuntimeExports.jsx(Bt,{static:!0,as:motion.div,initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},anchor:"bottom",className:"dropdown-options",children:ca.map(ml=>jsxRuntimeExports.jsx(RoleList,{option:ml,deleteRoleHandler:()=>hl(ml.value)},ml.value))})})]})})});function useTimeoutFn(la,aa){var ca=reactExports.useRef(!1),ua=reactExports.useRef(),Sa=reactExports.useRef(la),hl=reactExports.useCallback(function(){return ca.current},[]),pl=reactExports.useCallback(function(){ca.current=!1,ua.current&&clearTimeout(ua.current),ua.current=setTimeout(function(){ca.current=!0,Sa.current()},aa)},[aa]),ml=reactExports.useCallback(function(){ca.current=null,ua.current&&clearTimeout(ua.current)},[]);return reactExports.useEffect(function(){Sa.current=la},[la]),reactExports.useEffect(function(){return pl(),ml},[aa]),[hl,ml,pl]}function useDebounce(la,aa,ca){ca===void 0&&(ca=[]);var ua=useTimeoutFn(la,aa),Sa=ua[0],hl=ua[1],pl=ua[2];return reactExports.useEffect(pl,ca),[Sa,hl]}var useEffectOnce=function(la){reactExports.useEffect(la,[])};const RoleSelect=()=>{const{moduleName:la}=useParams(),[aa,ca]=reactExports.useState(!1),ua=useAppStore(np=>np.selectedRole),Sa=useAppStore(np=>np.appConfig),hl=useAppStore(np=>np.setSelectedRole),{deleteRole:pl}=useRbac();useEffectOnce(()=>{ua||hl("*")});const ml=Sa.rbac?.roles||[],gl=[{label:"All",value:"*"},{label:"Admin",value:"admin"},...ml.map(np=>({label:np,value:np})),{label:"Create Role",value:"Create Role"}],wc=np=>{np==="Create Role"?ca(!0):hl(np)},xu=np=>{pl(np)},jf=getEntities(la||"").map(np=>{const Vm=getEntity$1(np,la||"")?.getRbacSpecifications();if(Vm){const eg=Vm.find(tg=>tg.roles.has(ua));return eg?{hasCreate:eg.hasCreatePermission(),hasRead:eg.hasReadPermission(),hasUpdate:eg.hasUpdatePermission(),hasDelete:eg.hasDeletePermission()}:{hasCreate:!1,hasRead:!1,hasUpdate:!1,hasDelete:!1}}return{hasCreate:!1,hasRead:!1,hasUpdate:!1,hasDelete:!1}}).filter(np=>np!==null),Uf=np=>jf.every(qm=>qm[np]),rp={create:Uf("hasCreate"),read:Uf("hasRead"),update:Uf("hasUpdate"),delete:Uf("hasDelete")};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[aa&&reactDomExports.createPortal(jsxRuntimeExports.jsx(AddRole,{closeHandler:()=>ca(!1)}),document.body),jsxRuntimeExports.jsxs("div",{className:"bg-primary rounded-xl shadow-lg p-4 flex flex-col items-center gap-2.5 absolute top-2 z-999 left-1/2 -translate-x-1/2 w-1/6",children:[jsxRuntimeExports.jsx(SecurityDropdown,{label:gl.find(np=>np.value===ua)?.label||"",value:ua,options:gl,placeholder:"Select Role",onChange:wc,onDeleteRole:xu}),ua&&jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(RbacComponent,{permission:rp})})]})]})},Security=()=>{const{getGraphData:la}=useGraphData$1(),aa=useAppStore(wc=>wc.moduleDbChangeCount),{moduleName:ca}=useParams(),[ua,Sa,hl]=useNodesState([]),[pl,ml,gl]=useEdgesState([]);return reactExports.useEffect(()=>{const wc=()=>{try{if(!ca||!isModule$1(ca))return{nodes:[],edges:[]};const ff=fetchModule$2(ca||""),jf=buildGraph(ff.name);return la(jf,ff,{includeRecords:!1})}catch(ff){return console.error("Failed to fetch module:",ff),{nodes:[],edges:[]}}},xu=wc();Sa(xu.nodes),ml(xu.edges),setTimeout(()=>{const ff=wc();Sa(ff.nodes),ml(ff.edges)},1)},[aa,ca]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(RoleSelect,{}),jsxRuntimeExports.jsx(CanvasWithContextMenu,{nodes:ua,edges:pl,onNodesChange:hl,onEdgesChange:gl,defaultViewport:{x:100,y:120,zoom:.6}})]})},configurationSchema={service:{port:8080},store:{type:"sqlite",host:"localhost",username:"",password:"",dbname:"",port:5432},rbac:{enabled:!1},auth:{enabled:!1},auditTrail:{enabled:!0},monitoring:{enabled:!0}},tabs=[{name:"General",icon:"mdi:cog",key:"general"},{name:"Integrations",icon:"mdi:connection",key:"integrations"},{name:"Store",icon:"mdi:database",key:"store"}],GeneralTabContent=()=>{const{currentTeam:la}=useTeams(),aa=la?.GitHubRepo,ca=useAppStore(O1=>O1.incrementModuleDbChangeCount),{values:ua,setFieldValue:Sa,submitForm:hl}=useFormikContext(),[pl,ml]=reactExports.useState(""),[gl,wc]=reactExports.useState(!1),[xu,ff]=reactExports.useState(!0),jf=reactExports.useRef(null),Uf=useAppStore(O1=>O1.user),rp=Uf.GitHub.Token,np=Uf.GitHub.Username,qm=reactExports.useRef(!0),{saveAppConfig:Vm}=useAppConfig(),eg=useAppStore(O1=>O1.appConfig),tg=reactExports.useMemo(()=>{const O1=getTeamModules(aa),K0=[];return O1.forEach(J0=>{getEntities(J0).forEach(qw=>{K0.push({label:`${J0}/${qw}`,value:`${J0}/${qw}`})})}),K0},[aa]),rg=reactExports.useCallback(async O1=>{if(aa)try{const K0=await readPackageJsonFromGit(aa);K0.agentlang||(K0.agentlang={});const J0=JSON.stringify(K0,null,2);O1.length>0?K0.agentlang.config=O1:(delete K0.agentlang.config,Object.keys(K0.agentlang).length===0&&delete K0.agentlang);const Hw=JSON.stringify(K0,null,2);if(J0===Hw)return;await savePackageJsonToGit(aa,Hw,"Update config entities from app configuration",np,rp)}finally{ca()}},[aa,np,rp,ca]);reactExports.useEffect(()=>{(async()=>{if(ff(!0),aa)try{const K0=await readPackageJsonFromGit(aa);if(ml(K0?.icon||icons.agent),K0?.agentlang?.config&&Array.isArray(K0.agentlang.config)){const J0=K0.agentlang.config;Sa("configEntities",J0)}}catch(K0){console.error("Failed to fetch icon and entity:",K0)}finally{ff(!1)}else ff(!1)})()},[aa,Sa]),reactExports.useEffect(()=>{if(qm.current){qm.current=!1;return}rg(ua.configEntities)},[ua.configEntities,rg]),reactExports.useEffect(()=>{gl&&jf.current&&jf.current.focus()},[gl]);const ig=async O1=>{if(ml(O1),aa)try{const K0=await readPackageJsonFromGit(aa);K0.icon=O1,await savePackageJsonToGit(aa,JSON.stringify(K0,null,2),"Update icon from app configuration",np,rp)}finally{ca()}},vv=async()=>{wc(!1),await hl()},R1=async(O1,K0)=>{Sa(O1,K0),await hl()};return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsx(hO,{icon:pl,onIconChange:ig,children:jsxRuntimeExports.jsxs("button",{type:"button",className:"flex items-center gap-2 px-3 py-2 bg-blue/20 border border-blue rounded-lg text-white group cursor-pointer hover:bg-blue/30 transition-all",children:[jsxRuntimeExports.jsx(Icon,{icon:pl||icons.agent,width:16,height:16}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium",children:" Icon"}),jsxRuntimeExports.jsx(Icon,{icon:icons.edit,width:16,height:16,className:"opacity-0 group-hover:opacity-100 transition-opacity"})]})}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-blue/20 border border-blue rounded-lg text-white group w-fit max-w-full",children:[jsxRuntimeExports.jsx(Icon,{icon:"tabler:server",width:16,height:16,className:"shrink-0"}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium shrink-0",children:"Port:"}),gl?jsxRuntimeExports.jsx(Field,{type:"number",name:"service.port",className:"bg-transparent! py-1! px-2! min-w-[75px]! max-w-[200px]! text-sm font-medium boder-none! focus:outline-none! ",innerRef:jf}):jsxRuntimeExports.jsx("span",{className:"text-sm font-medium px-2 min-w-0 max-w-[300px] wrap-break-word overflow-wrap-anywhere",children:ua.service.port??"Not set"}),jsxRuntimeExports.jsx("button",{type:"button",onClick:gl?vv:()=>wc(!0),className:`cursor-pointer hover:text-blue-300 transition-all transform hover:scale-110 flex-shrink-0${gl?"":" opacity-0 group-hover:opacity-100"}`,children:jsxRuntimeExports.jsx(Icon,{icon:gl?"mdi:check":icons.edit,width:16,height:16})})]})]}),jsxRuntimeExports.jsx(Checkbox,{isSelected:ua.rbac.enabled,label:" Role-Based Access Control (RBAC)",onClick:()=>R1("rbac.enabled",!ua.rbac.enabled)}),jsxRuntimeExports.jsx(Checkbox,{isSelected:ua.auth.enabled,label:" Authentication",onClick:()=>R1("auth.enabled",!ua.auth.enabled)}),jsxRuntimeExports.jsx(Checkbox,{isSelected:ua.auditTrail.enabled,label:"Audit Trail",onClick:()=>R1("auditTrail.enabled",!ua.auditTrail.enabled)}),jsxRuntimeExports.jsx(Checkbox,{isSelected:ua.monitoring.enabled,label:"Monitoring",onClick:()=>R1("monitoring.enabled",!ua.monitoring.enabled)}),jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-4",children:jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-2",children:xu?jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center p-4",children:jsxRuntimeExports.jsx(Icon,{icon:"eos-icons:loading",className:"h-6 w-6 text-white"})}):jsxRuntimeExports.jsx(FieldArray,{name:"configEntities",children:({remove:O1,push:K0})=>jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-4",children:[(ua.configEntities||[]).map((J0,Hw)=>{const qw=tg.filter(Y0=>!ua.configEntities.includes(Y0.value)||Y0.value===J0);return jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 bg-secondary rounded-lg p-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(q$e,{fieldName:`configEntities[${Hw}]`,options:qw,placeholder:"Select Config entity"}),jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>O1(Hw),className:"text-gray-400 hover:text-red-500 cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:close",width:20,height:20})})]}),J0&&jsxRuntimeExports.jsx(ConfigEntityForm,{entityFqn:J0,appConfig:eg,showHeader:!1,onSave:Vm})]},Hw)}),jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>K0(""),className:"add-workflow-button w-full",children:jsxRuntimeExports.jsx(Icon,{icon:"fa6-solid:plus"})})]})})})})]})},GeneralTab=()=>{const la=useAppStore(ml=>ml.appConfig),{saveAppConfig:aa}=useAppConfig(),{teamName:ca}=useParams(),[ua,Sa]=reactExports.useState([]);reactExports.useEffect(()=>{(async()=>{if(ca)try{const gl=await readPackageJsonFromGit(ca);if(gl?.agentlang?.config&&Array.isArray(gl.agentlang.config)){const wc=gl.agentlang.config;Sa(wc)}}catch(gl){console.error("Error loading entity from package.json:",gl)}})()},[ca]);const hl={service:{port:la?.service?.port||configurationSchema.service.port},rbac:{enabled:la?.rbac?.enabled??configurationSchema.rbac.enabled},auth:{enabled:la?.auth?.enabled??configurationSchema.auth.enabled},auditTrail:{enabled:la?.auditTrail?.enabled??configurationSchema.auditTrail.enabled},monitoring:{enabled:la?.monitoring?.enabled??configurationSchema.monitoring.enabled},configEntities:ua},pl=async ml=>{try{const gl={service:ml.service,rbac:ml.rbac,auth:ml.auth,auditTrail:ml.auditTrail,monitoring:ml.monitoring,selectedEntities:void 0,configEntities:void 0};aa(gl)}catch(gl){console.error("Error saving general configuration:",gl)}};return jsxRuntimeExports.jsx(Formik,{enableReinitialize:!0,initialValues:hl,onSubmit:pl,children:jsxRuntimeExports.jsx(GeneralTabContent,{})})},IntegrationsBadges=({integrations:la,onRemove:aa})=>{const{deleteIntegration:ca}=useIntegration("config"),[ua,Sa]=reactExports.useState(null),[hl,pl]=reactExports.useState(!1),ml=wc=>{Sa(wc)},gl=async()=>{if(ua){pl(!0);try{await ca(ua.name);const wc=la.filter(xu=>xu.name!==ua.name);aa(wc),Sa(null)}catch(wc){console.error("Failed to delete integration:",wc)}finally{pl(!1)}}};return la.length===0?jsxRuntimeExports.jsx("div",{className:"w-full p-6 bg-secondary border border-dashed border-border-color rounded-lg text-center",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-3 text-secondary-font",children:[jsxRuntimeExports.jsx("div",{className:"p-3 rounded-lg bg-blue-600/20 border border-blue-500/30",children:jsxRuntimeExports.jsx(TeamOrDepIcon,{name:"",width:24,height:24,className:"text-blue-400"})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium text-primary-font mb-1",children:"No integrations configured"}),jsxRuntimeExports.jsx("p",{className:"text-xs",children:"Click “Add Integration” to select integrations"})]})]})}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-3",children:la.map(wc=>jsxRuntimeExports.jsxs("div",{className:"group flex items-center gap-3 px-4 py-3 bg-secondary border border-border-color rounded-lg text-primary-font hover:bg-hover hover:border-border-color/40 transition-all duration-200 cursor-pointer",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(TeamOrDepIcon,{name:wc.userData?.isRemoteIntegration&&wc.userData?.GitHubRepo?wc.userData.GitHubRepo:wc.name,width:16,height:16}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium text-primary-font leading-none!",children:wc.name})]}),jsxRuntimeExports.jsx("button",{type:"button",onClick:xu=>{xu.stopPropagation(),ml(wc)},className:"text-secondary-font hover:text-maroon hover:scale-110 transition-all duration-200 p-1 rounded-md hover:bg-red-900/20 cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:close",width:14,height:14})})]},wc.name))}),ua&&reactDomExports.createPortal(jsxRuntimeExports.jsx(ConfirmDelete,{closeHandler:()=>Sa(null),onConfirm:gl,title:"Delete Integration",message:`Are you sure you want to delete the integration "${ua.name}"? This will remove it from package.json and config.al.`,itemName:ua.name,isLoading:hl}),document.body)]})},IntegrationsModal=({mode:la,integrations:aa,setValues:ca,closeHandler:ua})=>{const{addIntegrationToConfig:Sa,removeIntegrationFromConfig:hl}=useIntegration("api"),[pl,ml]=reactExports.useState(!1),[gl,wc]=reactExports.useState(),xu={selectedIntegrations:aa},ff=(Uf,rp)=>{const np=rp.some(qm=>qm.name===Uf.name);return la==="api"?np?rp.filter(qm=>qm.name!==Uf.name):[...rp,Uf]:(ca(np?rp.filter(qm=>qm.name!==Uf.name):[...rp,Uf]),rp)},jf=async Uf=>{if(la==="api"){ml(!0),wc(void 0);try{const rp=new Set(aa.map(eg=>eg.name)),np=new Set(Uf.selectedIntegrations.map(eg=>eg.name)),qm=Uf.selectedIntegrations.filter(eg=>!rp.has(eg.name)),Vm=aa.filter(eg=>!np.has(eg.name));for(const eg of qm)await Sa(eg);for(const eg of Vm)await hl(eg);ca(Uf.selectedIntegrations),ua()}catch(rp){console.error("Error saving integrations:",rp),wc(rp?.message||"Failed to save integrations")}finally{ml(!1)}}else ua()};return la==="api"?jsxRuntimeExports.jsx(Formik,{initialValues:xu,enableReinitialize:!0,onSubmit:jf,children:({values:Uf,setFieldValue:rp})=>{const np=qm=>{const Vm=ff(qm,Uf.selectedIntegrations);rp("selectedIntegrations",Vm)};return jsxRuntimeExports.jsx(Form$7,{children:jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsxs("div",{className:"modal-content w-[90%]! h-[80%]",children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Manage Workspace Integrations"}),jsxRuntimeExports.jsx(Icon,{icon:"mdi:close",className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:ua})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"flex-1 overflow-hidden",children:jsxRuntimeExports.jsx(Integrations,{isModal:!0,source:"config",selectedIntegrations:Uf.selectedIntegrations.map(qm=>qm.name),onToggleIntegration:np})}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Save Changes",closeHandler:ua,isLoading:pl,error:gl})]})})})}}):jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsxs("div",{className:"modal-content w-[90%]! h-[80%]",children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Manage Local Integrations"}),jsxRuntimeExports.jsx(Icon,{icon:"mdi:close",className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:ua})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"flex-1 overflow-hidden",children:jsxRuntimeExports.jsx(Integrations,{isModal:!0,source:"config",selectedIntegrations:aa.map(Uf=>Uf.name),onToggleIntegration:Uf=>{ff(Uf,aa)}})}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"modal-footer",children:jsxRuntimeExports.jsx("div",{className:"sure-button",onClick:ua,children:"Done"})})]})})},IntegrationsTab=()=>{const{integrationData:la}=useIntegration("config"),{workspaceIntegrations:aa,localIntegrations:ca}=reactExports.useMemo(()=>{const ff=la??[],jf=ff.filter(rp=>rp.userData?.isRemoteIntegration===!0),Uf=ff.filter(rp=>!rp.userData?.isRemoteIntegration);return{workspaceIntegrations:jf,localIntegrations:Uf}},[la]),[ua,Sa]=reactExports.useState(!1),[hl,pl]=reactExports.useState(!1),[ml,gl]=reactExports.useState(aa),[wc,xu]=reactExports.useState(ca);return reactExports.useEffect(()=>{gl(aa),xu(ca)},[aa,ca]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!1,hl&&reactDomExports.createPortal(jsxRuntimeExports.jsx(IntegrationsModal,{mode:"config",integrations:wc,setValues:ff=>{xu(ff)},closeHandler:()=>pl(!1)}),document.body),jsxRuntimeExports.jsxs("div",{id:"app-integrations",className:"flex flex-col gap-8",children:[!1,jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("div",{className:"p-2 rounded-lg bg-blue/20 border border-blue",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:cog",width:18,height:18,className:"text-white"})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-semibold text-primary-font",children:"Local Integrations"}),jsxRuntimeExports.jsxs("p",{className:"text-sm text-gray-400",children:[wc.length," configured"]})]})]}),jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>pl(!0),className:"sure-button",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:plus",width:16,height:16}),"Add Local Integration"]})]}),jsxRuntimeExports.jsx(IntegrationsBadges,{integrations:wc,onRemove:ff=>{xu(ff)}})]})]})]})},AutoSave=()=>{const{values:la,submitForm:aa,dirty:ca}=useFormikContext();return useDebounce(()=>{ca&&aa()},1e3,[la]),null},StoreTab=()=>{const la=useAppStore(Sa=>Sa.appConfig),{saveAppConfig:aa}=useAppConfig(),ca={store:{type:la?.store?.type||configurationSchema.store.type,host:la?.store?.host||configurationSchema.store.host,username:la?.store?.username||configurationSchema.store.username,password:la?.store?.password||configurationSchema.store.password,dbname:la?.store?.dbname||configurationSchema.store.dbname,port:la?.store?.port||configurationSchema.store.port}},ua=async Sa=>{try{const hl={store:Sa.store};await aa(hl)}catch(hl){console.error("Error saving store configuration:",hl)}};return jsxRuntimeExports.jsx(Formik,{enableReinitialize:!0,initialValues:ca,onSubmit:ua,children:jsxRuntimeExports.jsxs(Form$7,{className:"space-y-6",children:[jsxRuntimeExports.jsx(AutoSave,{}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("label",{className:"text-sm font-medium text-gray-300 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:database",width:16,height:16,className:"text-blue-400"}),"Database Type"]}),jsxRuntimeExports.jsx(nht,{name:"store.type",placeholder:"Enter database type",isFloating:!1})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("label",{className:"text-sm font-medium text-gray-300 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:web",width:16,height:16,className:"text-blue-400"}),"Host"]}),jsxRuntimeExports.jsx(nht,{name:"store.host",placeholder:"Enter database host",isFloating:!1})]})]}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("label",{className:"text-sm font-medium text-gray-300 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:account",width:16,height:16,className:"text-blue-400"}),"Username"]}),jsxRuntimeExports.jsx(nht,{name:"store.username",placeholder:"Enter database username",isFloating:!1})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("label",{className:"text-sm font-medium text-gray-300 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:lock",width:16,height:16,className:"text-blue-400"}),"Password"]}),jsxRuntimeExports.jsx(sht,{name:"store.password",placeholder:"Enter password",isFloating:!1})]})]}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("label",{className:"text-sm font-medium text-gray-300 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:database",width:16,height:16,className:"text-blue-400"}),"Database Name"]}),jsxRuntimeExports.jsx(nht,{name:"store.dbname",placeholder:"Enter database name",isFloating:!1})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("label",{className:"text-sm font-medium text-gray-300 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:network-port",width:16,height:16,className:"text-blue-400"}),"Port"]}),jsxRuntimeExports.jsx(nht,{name:"store.port",type:"number",placeholder:"Enter database port",isFloating:!1})]})]})]})})},AppConfiguration=()=>jsxRuntimeExports.jsxs("div",{className:"dashboard-content",children:[jsxRuntimeExports.jsxs("div",{className:"dashboard-content-header",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-1 px-3",children:[jsxRuntimeExports.jsxs("h4",{className:"flex items-end gap-2 text-sm sm:text-base",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:cog",className:"w-5 h-5 sm:w-6 sm:h-6"}),jsxRuntimeExports.jsx("div",{className:"flex items-end gap-2",children:"App Configuration"})]}),jsxRuntimeExports.jsx("div",{className:"font-normal text-secondary-font text-left text-xs sm:text-sm",children:"Configure your application integration settings and system configuration"})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}})]}),jsxRuntimeExports.jsxs(Be,{children:[jsxRuntimeExports.jsx(We,{className:"flex space-x-1 rounded-xl bg-gray-800/50 p-1 mb-6",children:tabs.map(la=>jsxRuntimeExports.jsx(dt,{className:"w-full rounded-lg py-2.5 text-sm font-medium leading-5 data-selected:bg-blue-600 data-selected:text-white data-selected:shadow data-hover:text-white data-hover:bg-gray-700/50 text-gray-400 hover:text-white hover:bg-gray-700/50 cursor-pointer focus:outline-none",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:la.icon,width:16,height:16}),la.name]})},la.key))}),jsxRuntimeExports.jsxs(je$1,{children:[jsxRuntimeExports.jsx(Ke,{children:jsxRuntimeExports.jsx(GeneralTab,{})}),jsxRuntimeExports.jsx(Ke,{children:jsxRuntimeExports.jsx(IntegrationsTab,{})}),jsxRuntimeExports.jsx(Ke,{children:jsxRuntimeExports.jsx(StoreTab,{})})]})]})]}),Settings$1=()=>jsxRuntimeExports.jsx("div",{id:"team-settings-container",className:" relative w-full h-full flex overflow-hidden",children:jsxRuntimeExports.jsx("div",{className:"w-full text-white p-8 overflow-auto",children:jsxRuntimeExports.jsx(AppConfiguration,{})})}),DeploymentDetail=()=>{const{deploymentId:la}=useParams(),aa=useNavigate(),{deploymentsData:ca,isLoadingDeployments:ua,isErrorDeployments:Sa}=useDeployments();if(ua)return jsxRuntimeExports.jsx("div",{className:"m-6 grow",children:jsxRuntimeExports.jsx(Deployments,{})});const pl=Object.values(ca||{}).flat().filter(wc=>wc.Type==="App").find(wc=>wc.DeploymentId===la);if(Sa||!pl)return jsxRuntimeExports.jsx("div",{className:"m-6 grow",children:jsxRuntimeExports.jsx("div",{className:"max-w-2xl mx-auto",children:jsxRuntimeExports.jsxs("div",{className:"text-center py-16",children:[jsxRuntimeExports.jsx("div",{className:"w-16 h-16 mx-auto mb-6 bg-gray-100/5 rounded-full flex items-center justify-center",children:jsxRuntimeExports.jsx(Icon,{icon:"tabler:alert-circle",className:"w-8 h-8 text-gray-400"})}),jsxRuntimeExports.jsx("h2",{className:"text-xl font-medium text-gray-200 mb-2",children:"Deployment Not Found"}),jsxRuntimeExports.jsx("p",{className:"text-gray-500 mb-8",children:"The deployment you are looking for does not exist or has been removed."}),jsxRuntimeExports.jsxs("button",{onClick:()=>aa("/home"),className:"inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-gray-300 hover:text-white transition-colors",children:[jsxRuntimeExports.jsx(Icon,{icon:"tabler:arrow-left",className:"w-4 h-4"}),"Back to Home"]})]})})});const ml=pl.Status,gl=()=>ml==="Failed"?"status-badge error-badge":ml==="Running"?"status-badge success-badge":"status-badge progress-badge";return jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 bg-secondary rounded-lg p-2 m-4 w-full",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>aa("/home"),className:"flex items-center gap-1 text-gray-400 hover:text-white transition-colors cursor-pointer",children:[jsxRuntimeExports.jsx(Icon,{icon:"tabler:arrow-left",className:"w-4 h-4"}),jsxRuntimeExports.jsx("span",{className:"text-xs",children:"Back"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"tabler:rocket",className:"w-4 h-4"}),jsxRuntimeExports.jsx("span",{className:"font-medium text-white text-sm",children:pl.Repo})]})]}),jsxRuntimeExports.jsx("div",{className:gl(),children:ml})]}),jsxRuntimeExports.jsx("div",{className:"h-full bg-primary/5 rounded-lg border border-primary/10 overflow-hidden",children:jsxRuntimeExports.jsx("iframe",{src:pl.ExternalUrl,className:"w-full h-full border-0",title:"Application Preview",sandbox:"allow-scripts allow-same-origin allow-forms"})})]})},validationSchema$5=create$3().shape({GitHub:create$3().shape({Username:create$6().required("Username is required"),Org:create$6().required("Organization is required"),Token:create$6().matches(/^ghp_[A-Za-z0-9]{36}$/,"Invalid GitHub token format").required("Token is required")})}),GitHubForm=({isActive:la})=>{const aa=useAppStore(ua=>ua.user),{setUserProfile:ca}=useAuth();return jsxRuntimeExports.jsx(Formik,{enableReinitialize:!0,initialValues:aa,onSubmit:ua=>{ca(ua)},validationSchema:validationSchema$5,children:jsxRuntimeExports.jsxs(Form$7,{id:"github",className:`flex flex-col gap-4 w-full p-8 rounded-md border border-solid border-border-color ${la?"highlight-color":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.github,width:16,height:16}),jsxRuntimeExports.jsx("h4",{children:"GitHub Configuration"})]}),jsxRuntimeExports.jsx("p",{children:"Configure your Github Account's Credentials"}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}})]}),jsxRuntimeExports.jsx(nht,{name:"GitHub.Username",placeholder:"Github Username"}),jsxRuntimeExports.jsx(nht,{name:"GitHub.Org",placeholder:"Github Organization"}),jsxRuntimeExports.jsx(sht,{name:"GitHub.Token",placeholder:"Github Token"}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("button",{type:"submit",className:"sure-button",children:"Save"})]})})},schema=create$3().shape({Anthropic:create$3().shape({Key:create$6().matches(/^sk-ant-[a-zA-Z0-9-]+$/,"Invalid Anthropic key format").required("Anthropic Key is required")}),OpenAI:create$3().shape({Key:create$6().matches(/^sk-[a-zA-Z0-9_-]{20,}$/,"Invalid OpenAI key format").required("OpenAI Key is required"),FinetunedModel:create$6().optional()})}),CopilotForm=({isActive:la})=>{const aa=useAppStore(ua=>ua.user),{setUserProfile:ca}=useAuth();return jsxRuntimeExports.jsx(Formik,{enableReinitialize:!0,initialValues:aa,onSubmit:ua=>{ca(ua)},validationSchema:schema,children:jsxRuntimeExports.jsxs(Form$7,{id:"copilot",className:`flex flex-col gap-4 w-full p-8 rounded-md border border-solid border-border-color ${la?"highlight-color":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.generativeAI,width:16,height:16}),jsxRuntimeExports.jsx("h4",{children:"Co-Pilot Configuration"})]}),jsxRuntimeExports.jsx("p",{children:"Specify Co-Pilot's parameters"}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}})]}),jsxRuntimeExports.jsx(sht,{name:"OpenAI.Key",placeholder:"OpenAI Key"}),jsxRuntimeExports.jsx(nht,{name:"OpenAI.FinetunedModel",placeholder:"Finetuned Model"}),jsxRuntimeExports.jsx(sht,{name:"Anthropic.Key",placeholder:"Anthropic Key"}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("button",{type:"submit",className:"sure-button",children:"Save"})]})})},ChangePassword=({isActive:la})=>{const{changePassword:aa}=useAuth();return jsxRuntimeExports.jsx(Formik,{enableReinitialize:!0,initialValues:{currentPassword:"",newPassword:""},onSubmit:ca=>{const{currentPassword:ua,newPassword:Sa}=ca;aa(ua,Sa)},children:jsxRuntimeExports.jsxs(Form$7,{id:"changePassword",className:`flex flex-col gap-4 w-full p-8 rounded-md border border-solid border-border-color ${la?"highlight-color":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.changePassword,width:16,height:16}),jsxRuntimeExports.jsx("h4",{children:"Change Password"})]}),jsxRuntimeExports.jsx("p",{children:"Change your password"}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}})]}),jsxRuntimeExports.jsx(sht,{name:"currentPassword",placeholder:"Current Password"}),jsxRuntimeExports.jsx(sht,{name:"newPassword",placeholder:"New Password"}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("button",{type:"submit",className:"sure-button",children:"Change Password"})]})})},UserConfiguration=({isModal:la=!1})=>{const[aa,ca]=reactExports.useState("github"),[ua,Sa]=reactExports.useState(!1),{profileLoading:hl,profileError:pl,fetchUserProfile:ml}=useAuth(),gl=async(Uf,rp,np)=>{await ml(np)},{refetch:wc}=useRouteDataFetching({routePattern:"/configuration",fetchFunction:gl,requiresAuth:!0}),xu=Uf=>{ca(Uf),scrollIntoView(Uf)},ff=async()=>{try{Sa(!0),console.log("UserConfiguration: Manual refresh triggered for user profile"),await wc(!0),y$b.success("User profile refreshed successfully")}catch(Uf){console.error("Failed to refresh user profile:",Uf),y$b.error("Failed to refresh user profile")}finally{Sa(!1)}},jf=async()=>{try{Sa(!0),await ml(!0),y$b.success("User profile loaded successfully")}catch(Uf){console.error("Failed to retry user profile fetch:",Uf),y$b.error("Failed to load user profile")}finally{Sa(!1)}};return jsxRuntimeExports.jsxs("div",{className:"p-2 flex gap-2 w-full",children:[!la&&jsxRuntimeExports.jsxs("div",{className:"flex gap-2 flex-col rounded-md border border-solid border-border-color p-3 min-w-[15%] h-fit",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("h3",{children:"User Configuration"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[(hl||ua)&&jsxRuntimeExports.jsx(Icon,{icon:"eos-icons:loading",width:14,height:14,className:"animate-spin text-blue-500"}),jsxRuntimeExports.jsx("button",{onClick:ff,disabled:hl||ua,className:`text-xs cursor-pointer ${hl||ua?"text-gray-400 cursor-not-allowed":"text-blue-500 hover:text-blue-600"}`,title:"Refresh user profile data",children:"Refresh"})]})]}),pl&&jsxRuntimeExports.jsx("div",{className:"bg-red-50 border border-red-200 rounded-md p-2 mb-2",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-red-600",children:"Failed to load profile"}),jsxRuntimeExports.jsx("button",{onClick:jf,disabled:ua,className:"text-xs text-red-600 hover:text-red-700 cursor-pointer",children:"Retry"})]})}),jsxRuntimeExports.jsxs("div",{onClick:()=>xu("github"),className:`flex gap-2 cursor-pointer p-3 rounded-md duration-300 border-solid border-[1px] ${aa==="github"?"highlight-color text-primary-font border-border-color":"border-transparent text-secondary-font hover:text-primary-font hover:highlight-color"}`,children:[jsxRuntimeExports.jsx(Icon,{icon:icons.github,width:16,height:16}),jsxRuntimeExports.jsx("p",{children:"GitHub"})]}),jsxRuntimeExports.jsxs("div",{onClick:()=>xu("copilot"),className:`flex gap-2 cursor-pointer p-3 rounded-md duration-300 border-solid border-[1px] ${aa==="copilot"?"highlight-color text-primary-font border-border-color":"border-transparent text-secondary-font hover:text-primary-font hover:highlight-color"}`,children:[jsxRuntimeExports.jsx(Icon,{icon:icons.generativeAI,width:16,height:16}),jsxRuntimeExports.jsx("p",{children:"Co-pilot"})]}),jsxRuntimeExports.jsxs("div",{onClick:()=>xu("changePassword"),className:`flex gap-2 cursor-pointer p-3 rounded-md duration-300 border-solid border-[1px] ${aa==="changePassword"?"highlight-color text-primary-font border-border-color":"border-transparent text-secondary-font hover:text-primary-font hover:highlight-color"}`,children:[jsxRuntimeExports.jsx(Icon,{icon:icons.changePassword,width:16,height:16}),jsxRuntimeExports.jsx("p",{children:"Change Password"})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 w-full h-full overflow-auto scrollbar-none",children:[jsxRuntimeExports.jsx(GitHubForm,{isActive:aa==="github"}),jsxRuntimeExports.jsx(CopilotForm,{isActive:aa==="copilot"}),!la&&jsxRuntimeExports.jsx(ChangePassword,{isActive:aa==="changePassword"})]})]})},MultiSelectOption=({isSelected:la,label:aa,value:ca,onSelect:ua})=>jsxRuntimeExports.jsx(It,{value:ca,className:({focus:Sa})=>`option ${Sa?"bg-hover text-primary-font":""}`,onClick:()=>ua(ca),children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 cursor-pointer",children:[jsxRuntimeExports.jsx(Icon,{icon:la?icons.checkboxSelected:icons.checkbox,color:la?"#1976d2":"",width:"20px",height:"20px"}),aa]})}),ToolsDropdown=({name:la})=>{const{dependenciesOptions:aa,getDependenciesModule:ca,defaultDependency:ua,defaultModule:Sa}=useDependencies(),[hl,pl]=reactExports.useState(ua||""),[ml,gl]=reactExports.useState(Sa||""),wc=ca(hl).map(R1=>({label:R1,value:R1})),[xu,ff,jf]=useField(la),Uf=xu.value,rp=getEntities(ml),np=getEvents(ml),qm=getRecords(ml),[Vm,eg]=reactExports.useState(!1),tg=useOutsideClickHandler(()=>eg(!1)),rg=R1=>Uf.includes(R1),ig=R1=>{if(rg(R1)){const O1=Uf.filter(K0=>K0!==R1);jf.setValue(O1)}else jf.setValue([...Uf,R1])},vv=R1=>R1.map(O1=>({label:O1,value:`${ml}/${O1}`}));return jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[jsxRuntimeExports.jsx(Dropdown,{value:hl,options:aa,placeholder:"Model",onChange:R1=>{pl(R1);const O1=ca(R1);gl(O1[0])}}),jsxRuntimeExports.jsx(Dropdown,{value:ml,options:wc,placeholder:"Module",onChange:R1=>{gl(R1)}})]}),jsxRuntimeExports.jsxs(Mo,{as:"div",ref:tg,className:"dropdown-menu",value:Uf,onChange:R1=>{if(R1.length>Uf.length){const O1=R1.find(K0=>!Uf.includes(K0));O1&&ig(O1)}else{const O1=Uf.find(K0=>!R1.includes(K0));O1&&ig(O1)}},children:[jsxRuntimeExports.jsxs(Mt$1,{className:"dropdown-button",onClick:()=>eg(!Vm),children:["Tools: ",Uf.length," selected",jsxRuntimeExports.jsx(Icon,{icon:"ph:caret-down-bold"})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:Vm&&jsxRuntimeExports.jsxs(Bt,{static:!0,as:motion.div,initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"dropdown-options",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col ",children:[jsxRuntimeExports.jsx("span",{className:"px-2 py-1",children:"Entities"}),rp.length===0?jsxRuntimeExports.jsx("span",{className:"no-dropdown-item",children:"No entities available"}):jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-1",children:vv(rp).map(R1=>jsxRuntimeExports.jsx(MultiSelectOption,{isSelected:rg(R1.value),label:R1.label,value:R1.value,onSelect:ig},R1.value))})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col ",children:[jsxRuntimeExports.jsx("span",{className:"px-2 py-1",children:"Events"}),np.length===0?jsxRuntimeExports.jsx("span",{className:"no-dropdown-item",children:"No events available"}):jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-1",children:vv(np).map(R1=>jsxRuntimeExports.jsx(MultiSelectOption,{isSelected:rg(R1.value),label:R1.label,value:R1.value,onSelect:ig},R1.value))})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col",children:[jsxRuntimeExports.jsx("span",{className:"px-2 py-1",children:"Records"}),qm.length===0?jsxRuntimeExports.jsx("span",{className:"no-dropdown-item",children:"No records available"}):jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-1",children:vv(qm).map(R1=>jsxRuntimeExports.jsx(MultiSelectOption,{isSelected:rg(R1.value),label:R1.label,value:R1.value,onSelect:ig},R1.value))})]})]})})]})]})},AddToolsModal=({agent:la,closeModal:aa})=>{const ca=useOutsideClickHandler(aa),{setAgentTools:ua}=useAgent();return reactDomExports.createPortal(jsxRuntimeExports.jsx(Formik,{initialValues:{tools:la.getTools()||[]},onSubmit:Sa=>{try{const pl=Sa.tools;ua(la.getName(),pl),aa()}catch(hl){console.error("Error updating agent tools:",hl)}},children:jsxRuntimeExports.jsx(Form$7,{className:"modal-container",children:jsxRuntimeExports.jsxs("div",{className:"modal-content",ref:ca,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Add Tools"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:aa})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"modal-body",children:jsxRuntimeExports.jsx(ToolsDropdown,{name:"tools"})}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-footer",children:[jsxRuntimeExports.jsx("div",{className:"cancel-button",onClick:aa,children:"Cancel"}),jsxRuntimeExports.jsx("button",{type:"submit",className:"sure-button",children:"Save"})]})]})})}),document.body)},AgentFormSection=({children:la})=>jsxRuntimeExports.jsx("div",{className:"bg-[rgba(255,255,255,0.05)] backdrop-blur-sm rounded-xl border border-[rgba(255,255,255,0.1)] p-4 shadow-lg flex flex-col gap-2",children:la}),AgentTools=({agent:la,isEditable:aa=!0})=>{const{moduleName:ca}=useParams(),[ua,Sa]=reactExports.useState(!1),hl=la.getTools()||[],pl=Array.isArray(hl)&&hl.length>0,{setAgentTools:ml}=useAgent();return jsxRuntimeExports.jsxs(AgentFormSection,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.tool,width:20,height:20,className:"text-white"}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(TooltipComponent,{text:"External capabilities the agent can use to accomplish the task",position:"right",children:jsxRuntimeExports.jsx("div",{className:"text-sm font-semibold text-[rgba(255,255,255,0.9)]",children:"Tools"})})})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[pl&&aa&&jsxRuntimeExports.jsx("button",{onClick:()=>Sa(!0),className:"p-2 bg-[rgba(255,255,255,0.05)] border border-[rgba(255,255,255,0.2)] rounded-lg text-[rgba(255,255,255,0.9)] hover:bg-table-header)] flex items-center gap-2 text-sm cursor-pointer transition-all transform hover:scale-110",children:jsxRuntimeExports.jsx(Icon,{icon:icons.edit,width:16,height:16})}),!pl&&aa&&jsxRuntimeExports.jsx("button",{onClick:()=>Sa(!0),className:"p-2 bg-[rgba(255,255,255,0.05)] border border-[rgba(255,255,255,0.2)] rounded-lg text-[rgba(255,255,255,0.9)] hover:bg-table-header flex items-center gap-2 text-sm cursor-pointer transition-all transform hover:scale-110",children:jsxRuntimeExports.jsx(Icon,{icon:icons.add,width:16,height:16})})]})]}),pl&&jsxRuntimeExports.jsx("div",{className:"grid grid-cols-2 gap-2",children:Array.isArray(hl)&&hl.map((gl,wc)=>jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2 px-3 py-2 bg-blue/20 border border-blue rounded-lg text-white group min-w-0",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[jsxRuntimeExports.jsx(TeamOrDepIcon,{name:gl.split("/").length>1?gl.split("/")[0]:gl}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium whitespace-nowrap overflow-hidden truncate min-w-0",children:gl.split("/").length>1&&gl.split("/")[0]!==ca?gl:gl.split("/").pop()})]}),aa&&jsxRuntimeExports.jsx(Icon,{icon:icons.delete,className:"cursor-pointer hover:text-red-400 transition-all transform hover:scale-110 opacity-0 group-hover:opacity-100 shrink-0",onClick:()=>{const xu=hl.filter((ff,jf)=>jf!==wc);ml(la.getName(),xu)}})]},wc))}),ua&&jsxRuntimeExports.jsx(AddToolsModal,{agent:la,closeModal:()=>Sa(!1)})]})},IS_PLAYGROUND$2=!1,AgentLLMModal=({agent:la,closeModal:aa})=>{const ca=useOutsideClickHandler(aa),{setAgentLLM:ua}=useAgent();return reactDomExports.createPortal(jsxRuntimeExports.jsx(Formik,{initialValues:{llm:la.getLLM()},onSubmit:Sa=>{ua(la.getName(),Sa.llm),aa()},children:jsxRuntimeExports.jsx(Form$7,{className:"modal-container",children:jsxRuntimeExports.jsxs("div",{className:"modal-content !w-[90%] h-[80%]",ref:ca,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Select Language Model"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:aa})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(LLM,{isModal:!0}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-footer",children:[jsxRuntimeExports.jsx("div",{className:"cancel-button",onClick:aa,children:"Cancel"}),jsxRuntimeExports.jsx("button",{type:"submit",className:"sure-button",children:"Save"})]})]})})}),document.body)},AgentLLM=({agent:la,isEditable:aa=!0})=>{const[ca,ua]=reactExports.useState(!1),Sa=la.getLLM(),hl=!!Sa,pl=aa;return jsxRuntimeExports.jsxs(AgentFormSection,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between ",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.llm,width:20,height:20,className:"text-white"}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(TooltipComponent,{text:"Select the language model for the agent",position:"right",children:jsxRuntimeExports.jsx("h3",{className:"!text-sm font-semibold text-[rgba(255,255,255,0.9)]",children:"LLM"})})})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[hl&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-[#025cd4]/20 border border-[#025cd4] rounded-lg text-white group",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.llm,width:16,height:16}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium",children:Sa}),pl&&jsxRuntimeExports.jsx("button",{onClick:()=>ua(!0),className:"cursor-pointer hover:text-blue-300 transition-all opacity-0 group-hover:opacity-100 transform hover:scale-110",children:jsxRuntimeExports.jsx(Icon,{icon:icons.edit,width:16,height:16})})]}),!hl&&pl&&jsxRuntimeExports.jsx("button",{onClick:()=>ua(!0),className:"p-2 bg-[rgba(255,255,255,0.05)] border border-[rgba(255,255,255,0.2)] rounded-lg text-[rgba(255,255,255,0.9)] hover:bg-[rgba(255,255,255,0.1)] flex items-center gap-2 text-sm cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.add,width:16,height:16})})]})]}),ca&&IS_PLAYGROUND$2,ca&&!IS_PLAYGROUND$2&&jsxRuntimeExports.jsx(AgentLLMModal,{agent:la,closeModal:()=>ua(!1)})]})};function createAgentUpdatePrompt(la){return`Hi! I can help you modify the ${la} agent configuration. Just tell me what you'd like to change - update the role, instructions, add tools, or any other modifications. I'll understand your request and make the changes for you.`}const AgentFormChatbot=({agent:la,agentId:aa,moduleName:ca,isAgentSelected:ua})=>{const[Sa,hl]=reactExports.useState(!1),[pl,ml]=reactExports.useState([{id:"1",message:`Hi! I can help you modify the ${aa} agent configuration. Just tell me what you'd like to change - update the role, instructions, add tools, or any other modifications. I'll understand your request and make the changes for you.`,sender:"assistant"}]),[gl,wc]=reactExports.useState(""),[xu,ff]=reactExports.useState(!1),jf=reactExports.useRef(null),Uf=reactExports.useRef(null),{setAgentRole:rp,setAgentInstruction:np,setAgentTools:qm,setAgentLLM:Vm}=useAgent(),{addFlow:eg}=useFlow(),tg=useAppStore(J0=>J0.user),{teamName:rg}=useParams(),ig=useAppStore(J0=>J0.incrementModuleDbChangeCount),vv=reactExports.useCallback(()=>{hl(!1)},[]),R1=useOutsideClickHandler(vv);reactExports.useEffect(()=>{Uf.current?.scrollIntoView({behavior:"smooth"})},[pl]),reactExports.useEffect(()=>{Sa&&jf.current?.focus()},[Sa]),reactExports.useEffect(()=>{ua&&aa&&(ml([{id:"1",message:createAgentUpdatePrompt(aa),sender:"assistant"}]),wc(""))},[aa,ua]);const O1=async J0=>{const Hw=J0.toLowerCase();let qw="",Y0=!1;const G0=tg?.Anthropic?.Key&&tg.Anthropic.Key.length>0;if(G0&&!J0.startsWith("@manual"))try{const X0=tg?.GitHub?.Username,d_=tg?.GitHub?.Token;if(!X0||!d_||!ca||!rg)return qw="❌ GitHub credentials or context not configured. Please ensure GitHub username, token, and team are properly set up.",{message:qw,actionTaken:!1};const f_=await anthropicService.processModuleEditRequest({userMessage:J0.trim(),moduleName:ca,sectionName:aa,sectionType:"agent",teamName:rg,githubUsername:X0,githubToken:d_});return f_.success?(ig(),qw=`🤖 AI Assistant Response:
|
|
20110
|
+
• "Help" for more commands`;return{message:ig,actionTaken:vv}},eg=async tg=>{if(tg.preventDefault(),!gl.trim()||xu)return;const rg={id:Date.now().toString(),message:gl,sender:"user",timestamp:new Date().toISOString()};ml(ig=>[...ig,rg]),wc(""),ff(!0);try{const{message:ig}=await Vm(gl),vv={id:(Date.now()+1).toString(),message:ig,sender:"assistant",timestamp:new Date().toISOString()};ml(R1=>[...R1,vv])}catch{const vv={id:(Date.now()+1).toString(),message:"❌ Sorry, an error occurred while processing your request. Please try again.",sender:"assistant",timestamp:new Date().toISOString()};ml(R1=>[...R1,vv])}finally{ff(!1)}};return aa?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(motion.button,{className:"fixed bottom-6 right-6 w-14 h-14 bg-gradient-to-r from-[#8949ef] to-[#ff6b6b] rounded-full shadow-lg flex items-center justify-center z-50 cursor-pointer",whileHover:{scale:1.1},whileTap:{scale:.95},onClick:()=>hl(!Sa),style:{boxShadow:"0 4px 20px rgba(137, 73, 239, 0.3)"},children:jsxRuntimeExports.jsx(Icon,{icon:Sa?icons.cross:"fluent:bot-sparkle-20-filled",width:24,height:24,className:"text-white"})}),jsxRuntimeExports.jsx(AnimatePresence,{children:Sa&&jsxRuntimeExports.jsxs(motion.div,{ref:jf,initial:{opacity:0,y:20,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:20,scale:.95},transition:{duration:.2},className:"fixed bottom-24 right-6 w-96 h-[500px] bg-[rgba(20,20,30,0.98)] backdrop-blur-xl rounded-xl shadow-2xl border border-[rgba(255,255,255,0.1)] flex flex-col z-50",style:{boxShadow:"0 20px 60px rgba(0, 0, 0, 0.5)"},children:[jsxRuntimeExports.jsx("div",{className:"px-6 py-4 border-b border-[rgba(255,255,255,0.1)]",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("div",{className:"w-10 h-10 bg-gradient-to-r from-[#8949ef] to-[#ff6b6b] rounded-lg flex items-center justify-center",children:jsxRuntimeExports.jsx(Icon,{icon:icons.workflow,width:20,height:20,className:"text-white"})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"text-white font-semibold",children:"Workflow Assistant"}),jsxRuntimeExports.jsx("div",{className:"text-xs",children:jsxRuntimeExports.jsx(Breadcrumb,{fullName:ca?`${ca}/${la}`:la,textColor:"rgba(255,255,255,0.6)"})})]})]}),jsxRuntimeExports.jsx("button",{onClick:()=>hl(!1),className:"text-[rgba(255,255,255,0.6)] hover:text-white cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.cross,width:20,height:20})})]})}),jsxRuntimeExports.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-3",children:[pl.map(tg=>jsxRuntimeExports.jsx(motion.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:`flex ${tg.sender==="user"?"justify-end":"justify-start"}`,children:jsxRuntimeExports.jsx("div",{className:`max-w-[80%] px-4 py-2 rounded-lg text-sm ${tg.sender==="user"?"bg-gradient-to-r from-[#8949ef] to-[#ff6b6b] text-white":"bg-[rgba(255,255,255,0.05)] text-[rgba(255,255,255,0.9)] border border-[rgba(255,255,255,0.1)]"}`,style:{whiteSpace:"pre-line"},children:tg.message})},tg.id)),xu&&jsxRuntimeExports.jsx("div",{className:"flex justify-start",children:jsxRuntimeExports.jsx("div",{className:"bg-[rgba(255,255,255,0.05)] px-4 py-2 rounded-lg border border-[rgba(255,255,255,0.1)]",children:jsxRuntimeExports.jsxs("div",{className:"flex space-x-1",children:[jsxRuntimeExports.jsx("div",{className:"w-2 h-2 bg-[rgba(255,255,255,0.6)] rounded-full animate-bounce",style:{animationDelay:"0ms"}}),jsxRuntimeExports.jsx("div",{className:"w-2 h-2 bg-[rgba(255,255,255,0.6)] rounded-full animate-bounce",style:{animationDelay:"150ms"}}),jsxRuntimeExports.jsx("div",{className:"w-2 h-2 bg-[rgba(255,255,255,0.6)] rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})})}),jsxRuntimeExports.jsx("div",{ref:rp})]}),jsxRuntimeExports.jsx("form",{onSubmit:eg,className:"p-4 border-t border-[rgba(255,255,255,0.1)]",children:jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[jsxRuntimeExports.jsx("input",{ref:Uf,type:"text",value:gl,onChange:tg=>wc(tg.target.value),placeholder:"Ask me to build the workflow...",disabled:xu,className:"flex-1 px-4 py-2 bg-[rgba(255,255,255,0.05)] border border-[rgba(255,255,255,0.2)] rounded-lg text-white placeholder-[rgba(255,255,255,0.4)] focus:outline-none focus:border-[#8949ef] focus:ring-2 focus:ring-[rgba(137,73,239,0.2)]"}),jsxRuntimeExports.jsx("button",{type:"submit",disabled:xu||!gl.trim(),className:"px-4 py-2 bg-gradient-to-r from-[#8949ef] to-[#ff6b6b] text-white rounded-lg hover:opacity-90 disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:"material-symbols:send",width:20,height:20})})]})})]})})]}):null},Workflow=()=>{const{getGraphData:la}=useGraphData(),[aa,ca]=reactExports.useState(null),ua=useAppStore(Vm=>Vm.moduleDbChangeCount),{moduleName:Sa}=useParams(),pl=useLocation()?.state?.focusEventId,{zoomHandler:ml}=useZoomHandler(),[gl,wc,xu]=useNodesState([]),[ff,jf,Uf]=useEdgesState([]);reactExports.useEffect(()=>{if(pl&&gl.length>0){const Vm=gl.find(eg=>eg.type==="event"&&eg.data?.label===pl);Vm&&ml(Vm.id)}},[pl,gl,ml]);const rp=reactExports.useCallback(Vm=>{const eg=[...Vm];Vm.forEach(tg=>{if(tg.type==="select"){const rg=tg.id,ig=gl.find(R1=>R1.id===rg);if(!ig)return;tg.selected&&(ig.type==="workflow"||ig.type==="event")?ca(rg):tg.selected||ca(null);let vv;if(ig.type==="workflow"){const R1=ff.find(O1=>O1.target===rg);R1&&(vv=R1.source)}else if(ig.type==="event"){const R1=ff.find(O1=>O1.source===rg);R1&&(vv=R1.target)}vv&&(eg.some(O1=>O1.type==="select"&&O1.id===vv&&"selected"in O1&&O1.selected===tg.selected)||eg.push({type:"select",id:vv,selected:tg.selected}))}}),xu(eg)},[gl,ff,xu]);reactExports.useEffect(()=>{const Vm=()=>{try{if(!Sa||!isModule$1(Sa))return{nodes:[],edges:[]};const tg=fetchModule$2(Sa);return la(tg)}catch(tg){return console.error("Failed to fetch module:",tg),{nodes:[],edges:[]}}},eg=Vm();wc(eg.nodes),jf(eg.edges),setTimeout(()=>{const tg=Vm();wc(tg.nodes),jf(tg.edges)},1)},[Sa,ua]);const[np,qm]=reactExports.useState("");return jsxRuntimeExports.jsxs("div",{className:"relative w-full h-full",children:[np&&jsxRuntimeExports.jsx(CanvasModal,{modal:np,setModal:qm}),jsxRuntimeExports.jsx(CanvasWithContextMenu,{ContextMenuComponent:({menu:Vm,closeHandler:eg})=>jsxRuntimeExports.jsx(WorkflowMenu,{menu:Vm,setModal:qm,closeHandler:eg}),nodes:gl,edges:ff,onNodesChange:rp,onEdgesChange:Uf,defaultViewport:{x:100,y:50,zoom:.6},type:"workflow"}),jsxRuntimeExports.jsx(WorkflowChatbot,{workflowName:aa||"",isWorkflowSelected:!!aa})]})},convertString=la=>la.toLowerCase().replace(/\s+/g,"-"),RoleList=({option:la,deleteRoleHandler:aa})=>{const{label:ca,value:ua}=la;return jsxRuntimeExports.jsx(It,{value:ua,id:convertString(ua),className:({focus:Sa})=>`option ${Sa?"bg-hover text-primary-font":""}`,children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between w-full",children:[jsxRuntimeExports.jsx("span",{children:ca}),ua!=="Create Role"&&ua!=="*"&&ua!=="admin"&&jsxRuntimeExports.jsx("div",{className:"z-[999] trash p-1",id:`${convertString(ua)}-delete`,onClick:Sa=>{Sa.stopPropagation(),aa()},children:jsxRuntimeExports.jsx(Icon,{icon:"ph:x",className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon"})})]})})},SecurityDropdown=({label:la,value:aa,options:ca,placeholder:ua,onChange:Sa,onDeleteRole:hl})=>jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-2 grow h-fit w-full",children:jsxRuntimeExports.jsx(Mo,{className:"relative grow",as:"div",value:aa,onChange:Sa,children:({open:pl})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(Mt$1,{className:"dropdown-button",children:[jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("p",{className:`${la?"floating-input":"text-gray-500"} line-clamp-1`,children:la||ua}),aa&&jsxRuntimeExports.jsx("label",{htmlFor:"floating-input",className:"floating-label",children:ua})]}),jsxRuntimeExports.jsx(Icon,{icon:"ph:caret-down-bold"})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:pl&&jsxRuntimeExports.jsx(Bt,{static:!0,as:motion.div,initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},anchor:"bottom",className:"dropdown-options",children:ca.map(ml=>jsxRuntimeExports.jsx(RoleList,{option:ml,deleteRoleHandler:()=>hl(ml.value)},ml.value))})})]})})});function useTimeoutFn(la,aa){var ca=reactExports.useRef(!1),ua=reactExports.useRef(),Sa=reactExports.useRef(la),hl=reactExports.useCallback(function(){return ca.current},[]),pl=reactExports.useCallback(function(){ca.current=!1,ua.current&&clearTimeout(ua.current),ua.current=setTimeout(function(){ca.current=!0,Sa.current()},aa)},[aa]),ml=reactExports.useCallback(function(){ca.current=null,ua.current&&clearTimeout(ua.current)},[]);return reactExports.useEffect(function(){Sa.current=la},[la]),reactExports.useEffect(function(){return pl(),ml},[aa]),[hl,ml,pl]}function useDebounce(la,aa,ca){ca===void 0&&(ca=[]);var ua=useTimeoutFn(la,aa),Sa=ua[0],hl=ua[1],pl=ua[2];return reactExports.useEffect(pl,ca),[Sa,hl]}var useEffectOnce=function(la){reactExports.useEffect(la,[])};const RoleSelect=()=>{const{moduleName:la}=useParams(),[aa,ca]=reactExports.useState(!1),ua=useAppStore(np=>np.selectedRole),Sa=useAppStore(np=>np.appConfig),hl=useAppStore(np=>np.setSelectedRole),{deleteRole:pl}=useRbac();useEffectOnce(()=>{ua||hl("*")});const ml=Sa.rbac?.roles||[],gl=[{label:"All",value:"*"},{label:"Admin",value:"admin"},...ml.map(np=>({label:np,value:np})),{label:"Create Role",value:"Create Role"}],wc=np=>{np==="Create Role"?ca(!0):hl(np)},xu=np=>{pl(np)},jf=getEntities(la||"").map(np=>{const Vm=getEntity$1(np,la||"")?.getRbacSpecifications();if(Vm){const eg=Vm.find(tg=>tg.roles.has(ua));return eg?{hasCreate:eg.hasCreatePermission(),hasRead:eg.hasReadPermission(),hasUpdate:eg.hasUpdatePermission(),hasDelete:eg.hasDeletePermission()}:{hasCreate:!1,hasRead:!1,hasUpdate:!1,hasDelete:!1}}return{hasCreate:!1,hasRead:!1,hasUpdate:!1,hasDelete:!1}}).filter(np=>np!==null),Uf=np=>jf.every(qm=>qm[np]),rp={create:Uf("hasCreate"),read:Uf("hasRead"),update:Uf("hasUpdate"),delete:Uf("hasDelete")};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[aa&&reactDomExports.createPortal(jsxRuntimeExports.jsx(AddRole,{closeHandler:()=>ca(!1)}),document.body),jsxRuntimeExports.jsxs("div",{className:"bg-primary rounded-xl shadow-lg p-4 flex flex-col items-center gap-2.5 absolute top-2 z-999 left-1/2 -translate-x-1/2 w-1/6",children:[jsxRuntimeExports.jsx(SecurityDropdown,{label:gl.find(np=>np.value===ua)?.label||"",value:ua,options:gl,placeholder:"Select Role",onChange:wc,onDeleteRole:xu}),ua&&jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(RbacComponent,{permission:rp})})]})]})},Security=()=>{const{getGraphData:la}=useGraphData$1(),aa=useAppStore(wc=>wc.moduleDbChangeCount),{moduleName:ca}=useParams(),[ua,Sa,hl]=useNodesState([]),[pl,ml,gl]=useEdgesState([]);return reactExports.useEffect(()=>{const wc=()=>{try{if(!ca||!isModule$1(ca))return{nodes:[],edges:[]};const ff=fetchModule$2(ca||""),jf=buildGraph(ff.name);return la(jf,ff,{includeRecords:!1})}catch(ff){return console.error("Failed to fetch module:",ff),{nodes:[],edges:[]}}},xu=wc();Sa(xu.nodes),ml(xu.edges),setTimeout(()=>{const ff=wc();Sa(ff.nodes),ml(ff.edges)},1)},[aa,ca]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(RoleSelect,{}),jsxRuntimeExports.jsx(CanvasWithContextMenu,{nodes:ua,edges:pl,onNodesChange:hl,onEdgesChange:gl,defaultViewport:{x:100,y:120,zoom:.6}})]})},configurationSchema={service:{port:8080},store:{type:"sqlite",host:"localhost",username:"",password:"",dbname:"",port:5432},rbac:{enabled:!1},auth:{enabled:!1},auditTrail:{enabled:!0},monitoring:{enabled:!0}},tabs=[{name:"General",icon:"mdi:cog",key:"general"},{name:"Integrations",icon:"mdi:connection",key:"integrations"},{name:"Store",icon:"mdi:database",key:"store"}],GeneralTabContent=()=>{const{currentTeam:la}=useTeams(),aa=la?.GitHubRepo,ca=useAppStore(O1=>O1.incrementModuleDbChangeCount),{values:ua,setFieldValue:Sa,submitForm:hl}=useFormikContext(),[pl,ml]=reactExports.useState(""),[gl,wc]=reactExports.useState(!1),[xu,ff]=reactExports.useState(!0),jf=reactExports.useRef(null),Uf=useAppStore(O1=>O1.user),rp=Uf.GitHub.Token,np=Uf.GitHub.Username,qm=reactExports.useRef(!0),{saveAppConfig:Vm}=useAppConfig(),eg=useAppStore(O1=>O1.appConfig),tg=reactExports.useMemo(()=>{const O1=getTeamModules(aa),K0=[];return O1.forEach(J0=>{getEntities(J0).forEach(qw=>{K0.push({label:`${J0}/${qw}`,value:`${J0}/${qw}`})})}),K0},[aa]),rg=reactExports.useCallback(async O1=>{if(aa)try{const K0=await readPackageJsonFromGit(aa);K0.agentlang||(K0.agentlang={});const J0=JSON.stringify(K0,null,2);O1.length>0?K0.agentlang.config=O1:(delete K0.agentlang.config,Object.keys(K0.agentlang).length===0&&delete K0.agentlang);const Hw=JSON.stringify(K0,null,2);if(J0===Hw)return;await savePackageJsonToGit(aa,Hw,"Update config entities from app configuration",np,rp)}finally{ca()}},[aa,np,rp,ca]);reactExports.useEffect(()=>{(async()=>{if(ff(!0),aa)try{const K0=await readPackageJsonFromGit(aa);if(ml(K0?.icon||icons.agent),K0?.agentlang?.config&&Array.isArray(K0.agentlang.config)){const J0=K0.agentlang.config;Sa("configEntities",J0)}}catch(K0){console.error("Failed to fetch icon and entity:",K0)}finally{ff(!1)}else ff(!1)})()},[aa,Sa]),reactExports.useEffect(()=>{if(qm.current){qm.current=!1;return}rg(ua.configEntities)},[ua.configEntities,rg]),reactExports.useEffect(()=>{gl&&jf.current&&jf.current.focus()},[gl]);const ig=async O1=>{if(ml(O1),aa)try{const K0=await readPackageJsonFromGit(aa);K0.icon=O1,await savePackageJsonToGit(aa,JSON.stringify(K0,null,2),"Update icon from app configuration",np,rp)}finally{ca()}},vv=async()=>{wc(!1),await hl()},R1=async(O1,K0)=>{Sa(O1,K0),await hl()};return jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsx(hO,{icon:pl,onIconChange:ig,children:jsxRuntimeExports.jsxs("button",{type:"button",className:"flex items-center gap-2 px-3 py-2 bg-blue/20 border border-blue rounded-lg text-white group cursor-pointer hover:bg-blue/30 transition-all",children:[jsxRuntimeExports.jsx(Icon,{icon:pl||icons.agent,width:16,height:16}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium",children:" Icon"}),jsxRuntimeExports.jsx(Icon,{icon:icons.edit,width:16,height:16,className:"opacity-0 group-hover:opacity-100 transition-opacity"})]})}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-blue/20 border border-blue rounded-lg text-white group w-fit max-w-full",children:[jsxRuntimeExports.jsx(Icon,{icon:"tabler:server",width:16,height:16,className:"shrink-0"}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium shrink-0",children:"Port:"}),gl?jsxRuntimeExports.jsx(Field,{type:"number",name:"service.port",className:"bg-transparent! py-1! px-2! min-w-[75px]! max-w-[200px]! text-sm font-medium boder-none! focus:outline-none! ",innerRef:jf}):jsxRuntimeExports.jsx("span",{className:"text-sm font-medium px-2 min-w-0 max-w-[300px] wrap-break-word overflow-wrap-anywhere",children:ua.service.port??"Not set"}),jsxRuntimeExports.jsx("button",{type:"button",onClick:gl?vv:()=>wc(!0),className:`cursor-pointer hover:text-blue-300 transition-all transform hover:scale-110 flex-shrink-0${gl?"":" opacity-0 group-hover:opacity-100"}`,children:jsxRuntimeExports.jsx(Icon,{icon:gl?"mdi:check":icons.edit,width:16,height:16})})]})]}),jsxRuntimeExports.jsx(Checkbox,{isSelected:ua.rbac.enabled,label:" Role-Based Access Control (RBAC)",onClick:()=>R1("rbac.enabled",!ua.rbac.enabled)}),jsxRuntimeExports.jsx(Checkbox,{isSelected:ua.auth.enabled,label:" Authentication",onClick:()=>R1("auth.enabled",!ua.auth.enabled)}),jsxRuntimeExports.jsx(Checkbox,{isSelected:ua.auditTrail.enabled,label:"Audit Trail",onClick:()=>R1("auditTrail.enabled",!ua.auditTrail.enabled)}),jsxRuntimeExports.jsx(Checkbox,{isSelected:ua.monitoring.enabled,label:"Monitoring",onClick:()=>R1("monitoring.enabled",!ua.monitoring.enabled)}),jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-4",children:jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-2",children:xu?jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center p-4",children:jsxRuntimeExports.jsx(Icon,{icon:"eos-icons:loading",className:"h-6 w-6 text-white"})}):jsxRuntimeExports.jsx(FieldArray,{name:"configEntities",children:({remove:O1,push:K0})=>jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-4",children:[(ua.configEntities||[]).map((J0,Hw)=>{const qw=tg.filter(Y0=>!ua.configEntities.includes(Y0.value)||Y0.value===J0);return jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 bg-secondary rounded-lg p-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(q$e,{fieldName:`configEntities[${Hw}]`,options:qw,placeholder:"Select Config entity"}),jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>O1(Hw),className:"text-gray-400 hover:text-red-500 cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:close",width:20,height:20})})]}),J0&&jsxRuntimeExports.jsx(ConfigEntityForm,{entityFqn:J0,appConfig:eg,showHeader:!1,onSave:Vm})]},Hw)}),jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>K0(""),className:"add-workflow-button w-full",children:jsxRuntimeExports.jsx(Icon,{icon:"fa6-solid:plus"})})]})})})})]})},GeneralTab=()=>{const la=useAppStore(ml=>ml.appConfig),{saveAppConfig:aa}=useAppConfig(),{teamName:ca}=useParams(),[ua,Sa]=reactExports.useState([]);reactExports.useEffect(()=>{(async()=>{if(ca)try{const gl=await readPackageJsonFromGit(ca);if(gl?.agentlang?.config&&Array.isArray(gl.agentlang.config)){const wc=gl.agentlang.config;Sa(wc)}}catch(gl){console.error("Error loading entity from package.json:",gl)}})()},[ca]);const hl={service:{port:la?.service?.port||configurationSchema.service.port},rbac:{enabled:la?.rbac?.enabled??configurationSchema.rbac.enabled},auth:{enabled:la?.auth?.enabled??configurationSchema.auth.enabled},auditTrail:{enabled:la?.auditTrail?.enabled??configurationSchema.auditTrail.enabled},monitoring:{enabled:la?.monitoring?.enabled??configurationSchema.monitoring.enabled},configEntities:ua},pl=async ml=>{try{const gl={service:ml.service,rbac:ml.rbac,auth:ml.auth,auditTrail:ml.auditTrail,monitoring:ml.monitoring,selectedEntities:void 0,configEntities:void 0};await aa(gl)}catch(gl){console.error("Error saving general configuration:",gl)}};return jsxRuntimeExports.jsx(Formik,{enableReinitialize:!0,initialValues:hl,onSubmit:pl,children:jsxRuntimeExports.jsx(GeneralTabContent,{})})},IntegrationsBadges=({integrations:la,onRemove:aa})=>{const{deleteIntegration:ca}=useIntegration("config"),[ua,Sa]=reactExports.useState(null),[hl,pl]=reactExports.useState(!1),ml=wc=>{Sa(wc)},gl=async()=>{if(ua){pl(!0);try{await ca(ua.name);const wc=la.filter(xu=>xu.name!==ua.name);aa(wc),Sa(null)}catch(wc){console.error("Failed to delete integration:",wc)}finally{pl(!1)}}};return la.length===0?jsxRuntimeExports.jsx("div",{className:"w-full p-6 bg-secondary border border-dashed border-border-color rounded-lg text-center",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-3 text-secondary-font",children:[jsxRuntimeExports.jsx("div",{className:"p-3 rounded-lg bg-blue-600/20 border border-blue-500/30",children:jsxRuntimeExports.jsx(TeamOrDepIcon,{name:"",width:24,height:24,className:"text-blue-400"})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium text-primary-font mb-1",children:"No integrations configured"}),jsxRuntimeExports.jsx("p",{className:"text-xs",children:"Click “Add Integration” to select integrations"})]})]})}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-3",children:la.map(wc=>jsxRuntimeExports.jsxs("div",{className:"group flex items-center gap-3 px-4 py-3 bg-secondary border border-border-color rounded-lg text-primary-font hover:bg-hover hover:border-border-color/40 transition-all duration-200 cursor-pointer",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(TeamOrDepIcon,{name:wc.userData?.isRemoteIntegration&&wc.userData?.GitHubRepo?wc.userData.GitHubRepo:wc.name,width:16,height:16}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium text-primary-font leading-none!",children:wc.name})]}),jsxRuntimeExports.jsx("button",{type:"button",onClick:xu=>{xu.stopPropagation(),ml(wc)},className:"text-secondary-font hover:text-maroon hover:scale-110 transition-all duration-200 p-1 rounded-md hover:bg-red-900/20 cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:close",width:14,height:14})})]},wc.name))}),ua&&reactDomExports.createPortal(jsxRuntimeExports.jsx(ConfirmDelete,{closeHandler:()=>Sa(null),onConfirm:gl,title:"Delete Integration",message:`Are you sure you want to delete the integration "${ua.name}"? This will remove it from package.json and config.al.`,itemName:ua.name,isLoading:hl}),document.body)]})},IntegrationsModal=({mode:la,integrations:aa,setValues:ca,closeHandler:ua})=>{const{addIntegrationToConfig:Sa,removeIntegrationFromConfig:hl}=useIntegration("api"),[pl,ml]=reactExports.useState(!1),[gl,wc]=reactExports.useState(),xu={selectedIntegrations:aa},ff=(Uf,rp)=>{const np=rp.some(qm=>qm.name===Uf.name);return la==="api"?np?rp.filter(qm=>qm.name!==Uf.name):[...rp,Uf]:(ca(np?rp.filter(qm=>qm.name!==Uf.name):[...rp,Uf]),rp)},jf=async Uf=>{if(la==="api"){ml(!0),wc(void 0);try{const rp=new Set(aa.map(eg=>eg.name)),np=new Set(Uf.selectedIntegrations.map(eg=>eg.name)),qm=Uf.selectedIntegrations.filter(eg=>!rp.has(eg.name)),Vm=aa.filter(eg=>!np.has(eg.name));for(const eg of qm)await Sa(eg);for(const eg of Vm)await hl(eg);ca(Uf.selectedIntegrations),ua()}catch(rp){console.error("Error saving integrations:",rp),wc(rp?.message||"Failed to save integrations")}finally{ml(!1)}}else ua()};return la==="api"?jsxRuntimeExports.jsx(Formik,{initialValues:xu,enableReinitialize:!0,onSubmit:jf,children:({values:Uf,setFieldValue:rp})=>{const np=qm=>{const Vm=ff(qm,Uf.selectedIntegrations);rp("selectedIntegrations",Vm)};return jsxRuntimeExports.jsx(Form$7,{children:jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsxs("div",{className:"modal-content w-[90%]! h-[80%]",children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Manage Workspace Integrations"}),jsxRuntimeExports.jsx(Icon,{icon:"mdi:close",className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:ua})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"flex-1 overflow-hidden",children:jsxRuntimeExports.jsx(Integrations,{isModal:!0,source:"config",selectedIntegrations:Uf.selectedIntegrations.map(qm=>qm.name),onToggleIntegration:np})}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(Footer,{label:"Save Changes",closeHandler:ua,isLoading:pl,error:gl})]})})})}}):jsxRuntimeExports.jsx("div",{className:"modal-container",children:jsxRuntimeExports.jsxs("div",{className:"modal-content w-[90%]! h-[80%]",children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Manage Local Integrations"}),jsxRuntimeExports.jsx(Icon,{icon:"mdi:close",className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:ua})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"flex-1 overflow-hidden",children:jsxRuntimeExports.jsx(Integrations,{isModal:!0,source:"config",selectedIntegrations:aa.map(Uf=>Uf.name),onToggleIntegration:Uf=>{ff(Uf,aa)}})}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"modal-footer",children:jsxRuntimeExports.jsx("div",{className:"sure-button",onClick:ua,children:"Done"})})]})})},IntegrationsTab=()=>{const{integrationData:la}=useIntegration("config"),{workspaceIntegrations:aa,localIntegrations:ca}=reactExports.useMemo(()=>{const ff=la??[],jf=ff.filter(rp=>rp.userData?.isRemoteIntegration===!0),Uf=ff.filter(rp=>!rp.userData?.isRemoteIntegration);return{workspaceIntegrations:jf,localIntegrations:Uf}},[la]),[ua,Sa]=reactExports.useState(!1),[hl,pl]=reactExports.useState(!1),[ml,gl]=reactExports.useState(aa),[wc,xu]=reactExports.useState(ca);return reactExports.useEffect(()=>{gl(aa),xu(ca)},[aa,ca]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!1,hl&&reactDomExports.createPortal(jsxRuntimeExports.jsx(IntegrationsModal,{mode:"config",integrations:wc,setValues:ff=>{xu(ff)},closeHandler:()=>pl(!1)}),document.body),jsxRuntimeExports.jsxs("div",{id:"app-integrations",className:"flex flex-col gap-8",children:[!1,jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("div",{className:"p-2 rounded-lg bg-blue/20 border border-blue",children:jsxRuntimeExports.jsx(Icon,{icon:"mdi:cog",width:18,height:18,className:"text-white"})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"text-lg font-semibold text-primary-font",children:"Local Integrations"}),jsxRuntimeExports.jsxs("p",{className:"text-sm text-gray-400",children:[wc.length," configured"]})]})]}),jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>pl(!0),className:"sure-button",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:plus",width:16,height:16}),"Add Local Integration"]})]}),jsxRuntimeExports.jsx(IntegrationsBadges,{integrations:wc,onRemove:ff=>{xu(ff)}})]})]})]})},AutoSave=()=>{const{values:la,submitForm:aa,dirty:ca}=useFormikContext();return useDebounce(()=>{ca&&aa()},1e3,[la]),null},StoreTab=()=>{const la=useAppStore(Sa=>Sa.appConfig),{saveAppConfig:aa}=useAppConfig(),ca={store:{type:la?.store?.type||configurationSchema.store.type,host:la?.store?.host||configurationSchema.store.host,username:la?.store?.username||configurationSchema.store.username,password:la?.store?.password||configurationSchema.store.password,dbname:la?.store?.dbname||configurationSchema.store.dbname,port:la?.store?.port||configurationSchema.store.port}},ua=async Sa=>{try{const hl={store:Sa.store};await aa(hl)}catch(hl){console.error("Error saving store configuration:",hl)}};return jsxRuntimeExports.jsx(Formik,{enableReinitialize:!0,initialValues:ca,onSubmit:ua,children:jsxRuntimeExports.jsxs(Form$7,{className:"space-y-6",children:[jsxRuntimeExports.jsx(AutoSave,{}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("label",{className:"text-sm font-medium text-gray-300 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:database",width:16,height:16,className:"text-blue-400"}),"Database Type"]}),jsxRuntimeExports.jsx(nht,{name:"store.type",placeholder:"Enter database type",isFloating:!1})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("label",{className:"text-sm font-medium text-gray-300 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:web",width:16,height:16,className:"text-blue-400"}),"Host"]}),jsxRuntimeExports.jsx(nht,{name:"store.host",placeholder:"Enter database host",isFloating:!1})]})]}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("label",{className:"text-sm font-medium text-gray-300 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:account",width:16,height:16,className:"text-blue-400"}),"Username"]}),jsxRuntimeExports.jsx(nht,{name:"store.username",placeholder:"Enter database username",isFloating:!1})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("label",{className:"text-sm font-medium text-gray-300 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:lock",width:16,height:16,className:"text-blue-400"}),"Password"]}),jsxRuntimeExports.jsx(sht,{name:"store.password",placeholder:"Enter password",isFloating:!1})]})]}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("label",{className:"text-sm font-medium text-gray-300 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:database",width:16,height:16,className:"text-blue-400"}),"Database Name"]}),jsxRuntimeExports.jsx(nht,{name:"store.dbname",placeholder:"Enter database name",isFloating:!1})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsxs("label",{className:"text-sm font-medium text-gray-300 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:network-port",width:16,height:16,className:"text-blue-400"}),"Port"]}),jsxRuntimeExports.jsx(nht,{name:"store.port",type:"number",placeholder:"Enter database port",isFloating:!1})]})]})]})})},AppConfiguration=()=>jsxRuntimeExports.jsxs("div",{className:"dashboard-content",children:[jsxRuntimeExports.jsxs("div",{className:"dashboard-content-header",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-1 px-3",children:[jsxRuntimeExports.jsxs("h4",{className:"flex items-end gap-2 text-sm sm:text-base",children:[jsxRuntimeExports.jsx(Icon,{icon:"mdi:cog",className:"w-5 h-5 sm:w-6 sm:h-6"}),jsxRuntimeExports.jsx("div",{className:"flex items-end gap-2",children:"App Configuration"})]}),jsxRuntimeExports.jsx("div",{className:"font-normal text-secondary-font text-left text-xs sm:text-sm",children:"Configure your application integration settings and system configuration"})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}})]}),jsxRuntimeExports.jsxs(Be,{children:[jsxRuntimeExports.jsx(We,{className:"flex space-x-1 rounded-xl bg-gray-800/50 p-1 mb-6",children:tabs.map(la=>jsxRuntimeExports.jsx(dt,{className:"w-full rounded-lg py-2.5 text-sm font-medium leading-5 data-selected:bg-blue-600 data-selected:text-white data-selected:shadow data-hover:text-white data-hover:bg-gray-700/50 text-gray-400 hover:text-white hover:bg-gray-700/50 cursor-pointer focus:outline-none",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:la.icon,width:16,height:16}),la.name]})},la.key))}),jsxRuntimeExports.jsxs(je$1,{children:[jsxRuntimeExports.jsx(Ke,{children:jsxRuntimeExports.jsx(GeneralTab,{})}),jsxRuntimeExports.jsx(Ke,{children:jsxRuntimeExports.jsx(IntegrationsTab,{})}),jsxRuntimeExports.jsx(Ke,{children:jsxRuntimeExports.jsx(StoreTab,{})})]})]})]}),Settings$1=()=>jsxRuntimeExports.jsx("div",{id:"team-settings-container",className:" relative w-full h-full flex overflow-hidden",children:jsxRuntimeExports.jsx("div",{className:"w-full text-white p-8 overflow-auto",children:jsxRuntimeExports.jsx(AppConfiguration,{})})}),DeploymentDetail=()=>{const{deploymentId:la}=useParams(),aa=useNavigate(),{deploymentsData:ca,isLoadingDeployments:ua,isErrorDeployments:Sa}=useDeployments();if(ua)return jsxRuntimeExports.jsx("div",{className:"m-6 grow",children:jsxRuntimeExports.jsx(Deployments,{})});const pl=Object.values(ca||{}).flat().filter(wc=>wc.Type==="App").find(wc=>wc.DeploymentId===la);if(Sa||!pl)return jsxRuntimeExports.jsx("div",{className:"m-6 grow",children:jsxRuntimeExports.jsx("div",{className:"max-w-2xl mx-auto",children:jsxRuntimeExports.jsxs("div",{className:"text-center py-16",children:[jsxRuntimeExports.jsx("div",{className:"w-16 h-16 mx-auto mb-6 bg-gray-100/5 rounded-full flex items-center justify-center",children:jsxRuntimeExports.jsx(Icon,{icon:"tabler:alert-circle",className:"w-8 h-8 text-gray-400"})}),jsxRuntimeExports.jsx("h2",{className:"text-xl font-medium text-gray-200 mb-2",children:"Deployment Not Found"}),jsxRuntimeExports.jsx("p",{className:"text-gray-500 mb-8",children:"The deployment you are looking for does not exist or has been removed."}),jsxRuntimeExports.jsxs("button",{onClick:()=>aa("/home"),className:"inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-gray-300 hover:text-white transition-colors",children:[jsxRuntimeExports.jsx(Icon,{icon:"tabler:arrow-left",className:"w-4 h-4"}),"Back to Home"]})]})})});const ml=pl.Status,gl=()=>ml==="Failed"?"status-badge error-badge":ml==="Running"?"status-badge success-badge":"status-badge progress-badge";return jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 bg-secondary rounded-lg p-2 m-4 w-full",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>aa("/home"),className:"flex items-center gap-1 text-gray-400 hover:text-white transition-colors cursor-pointer",children:[jsxRuntimeExports.jsx(Icon,{icon:"tabler:arrow-left",className:"w-4 h-4"}),jsxRuntimeExports.jsx("span",{className:"text-xs",children:"Back"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Icon,{icon:"tabler:rocket",className:"w-4 h-4"}),jsxRuntimeExports.jsx("span",{className:"font-medium text-white text-sm",children:pl.Repo})]})]}),jsxRuntimeExports.jsx("div",{className:gl(),children:ml})]}),jsxRuntimeExports.jsx("div",{className:"h-full bg-primary/5 rounded-lg border border-primary/10 overflow-hidden",children:jsxRuntimeExports.jsx("iframe",{src:pl.ExternalUrl,className:"w-full h-full border-0",title:"Application Preview",sandbox:"allow-scripts allow-same-origin allow-forms"})})]})},validationSchema$5=create$3().shape({GitHub:create$3().shape({Username:create$6().required("Username is required"),Org:create$6().required("Organization is required"),Token:create$6().matches(/^ghp_[A-Za-z0-9]{36}$/,"Invalid GitHub token format").required("Token is required")})}),GitHubForm=({isActive:la})=>{const aa=useAppStore(ua=>ua.user),{setUserProfile:ca}=useAuth();return jsxRuntimeExports.jsx(Formik,{enableReinitialize:!0,initialValues:aa,onSubmit:ua=>{ca(ua)},validationSchema:validationSchema$5,children:jsxRuntimeExports.jsxs(Form$7,{id:"github",className:`flex flex-col gap-4 w-full p-8 rounded-md border border-solid border-border-color ${la?"highlight-color":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.github,width:16,height:16}),jsxRuntimeExports.jsx("h4",{children:"GitHub Configuration"})]}),jsxRuntimeExports.jsx("p",{children:"Configure your Github Account's Credentials"}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}})]}),jsxRuntimeExports.jsx(nht,{name:"GitHub.Username",placeholder:"Github Username"}),jsxRuntimeExports.jsx(nht,{name:"GitHub.Org",placeholder:"Github Organization"}),jsxRuntimeExports.jsx(sht,{name:"GitHub.Token",placeholder:"Github Token"}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("button",{type:"submit",className:"sure-button",children:"Save"})]})})},schema=create$3().shape({Anthropic:create$3().shape({Key:create$6().matches(/^sk-ant-[a-zA-Z0-9-]+$/,"Invalid Anthropic key format").required("Anthropic Key is required")}),OpenAI:create$3().shape({Key:create$6().matches(/^sk-[a-zA-Z0-9_-]{20,}$/,"Invalid OpenAI key format").required("OpenAI Key is required"),FinetunedModel:create$6().optional()})}),CopilotForm=({isActive:la})=>{const aa=useAppStore(ua=>ua.user),{setUserProfile:ca}=useAuth();return jsxRuntimeExports.jsx(Formik,{enableReinitialize:!0,initialValues:aa,onSubmit:ua=>{ca(ua)},validationSchema:schema,children:jsxRuntimeExports.jsxs(Form$7,{id:"copilot",className:`flex flex-col gap-4 w-full p-8 rounded-md border border-solid border-border-color ${la?"highlight-color":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.generativeAI,width:16,height:16}),jsxRuntimeExports.jsx("h4",{children:"Co-Pilot Configuration"})]}),jsxRuntimeExports.jsx("p",{children:"Specify Co-Pilot's parameters"}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}})]}),jsxRuntimeExports.jsx(sht,{name:"OpenAI.Key",placeholder:"OpenAI Key"}),jsxRuntimeExports.jsx(nht,{name:"OpenAI.FinetunedModel",placeholder:"Finetuned Model"}),jsxRuntimeExports.jsx(sht,{name:"Anthropic.Key",placeholder:"Anthropic Key"}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("button",{type:"submit",className:"sure-button",children:"Save"})]})})},ChangePassword=({isActive:la})=>{const{changePassword:aa}=useAuth();return jsxRuntimeExports.jsx(Formik,{enableReinitialize:!0,initialValues:{currentPassword:"",newPassword:""},onSubmit:ca=>{const{currentPassword:ua,newPassword:Sa}=ca;aa(ua,Sa)},children:jsxRuntimeExports.jsxs(Form$7,{id:"changePassword",className:`flex flex-col gap-4 w-full p-8 rounded-md border border-solid border-border-color ${la?"highlight-color":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-2 items-center",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.changePassword,width:16,height:16}),jsxRuntimeExports.jsx("h4",{children:"Change Password"})]}),jsxRuntimeExports.jsx("p",{children:"Change your password"}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}})]}),jsxRuntimeExports.jsx(sht,{name:"currentPassword",placeholder:"Current Password"}),jsxRuntimeExports.jsx(sht,{name:"newPassword",placeholder:"New Password"}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("button",{type:"submit",className:"sure-button",children:"Change Password"})]})})},UserConfiguration=({isModal:la=!1})=>{const[aa,ca]=reactExports.useState("github"),[ua,Sa]=reactExports.useState(!1),{profileLoading:hl,profileError:pl,fetchUserProfile:ml}=useAuth(),gl=async(Uf,rp,np)=>{await ml(np)},{refetch:wc}=useRouteDataFetching({routePattern:"/configuration",fetchFunction:gl,requiresAuth:!0}),xu=Uf=>{ca(Uf),scrollIntoView(Uf)},ff=async()=>{try{Sa(!0),console.log("UserConfiguration: Manual refresh triggered for user profile"),await wc(!0),y$b.success("User profile refreshed successfully")}catch(Uf){console.error("Failed to refresh user profile:",Uf),y$b.error("Failed to refresh user profile")}finally{Sa(!1)}},jf=async()=>{try{Sa(!0),await ml(!0),y$b.success("User profile loaded successfully")}catch(Uf){console.error("Failed to retry user profile fetch:",Uf),y$b.error("Failed to load user profile")}finally{Sa(!1)}};return jsxRuntimeExports.jsxs("div",{className:"p-2 flex gap-2 w-full",children:[!la&&jsxRuntimeExports.jsxs("div",{className:"flex gap-2 flex-col rounded-md border border-solid border-border-color p-3 min-w-[15%] h-fit",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("h3",{children:"User Configuration"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[(hl||ua)&&jsxRuntimeExports.jsx(Icon,{icon:"eos-icons:loading",width:14,height:14,className:"animate-spin text-blue-500"}),jsxRuntimeExports.jsx("button",{onClick:ff,disabled:hl||ua,className:`text-xs cursor-pointer ${hl||ua?"text-gray-400 cursor-not-allowed":"text-blue-500 hover:text-blue-600"}`,title:"Refresh user profile data",children:"Refresh"})]})]}),pl&&jsxRuntimeExports.jsx("div",{className:"bg-red-50 border border-red-200 rounded-md p-2 mb-2",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-red-600",children:"Failed to load profile"}),jsxRuntimeExports.jsx("button",{onClick:jf,disabled:ua,className:"text-xs text-red-600 hover:text-red-700 cursor-pointer",children:"Retry"})]})}),jsxRuntimeExports.jsxs("div",{onClick:()=>xu("github"),className:`flex gap-2 cursor-pointer p-3 rounded-md duration-300 border-solid border-[1px] ${aa==="github"?"highlight-color text-primary-font border-border-color":"border-transparent text-secondary-font hover:text-primary-font hover:highlight-color"}`,children:[jsxRuntimeExports.jsx(Icon,{icon:icons.github,width:16,height:16}),jsxRuntimeExports.jsx("p",{children:"GitHub"})]}),jsxRuntimeExports.jsxs("div",{onClick:()=>xu("copilot"),className:`flex gap-2 cursor-pointer p-3 rounded-md duration-300 border-solid border-[1px] ${aa==="copilot"?"highlight-color text-primary-font border-border-color":"border-transparent text-secondary-font hover:text-primary-font hover:highlight-color"}`,children:[jsxRuntimeExports.jsx(Icon,{icon:icons.generativeAI,width:16,height:16}),jsxRuntimeExports.jsx("p",{children:"Co-pilot"})]}),jsxRuntimeExports.jsxs("div",{onClick:()=>xu("changePassword"),className:`flex gap-2 cursor-pointer p-3 rounded-md duration-300 border-solid border-[1px] ${aa==="changePassword"?"highlight-color text-primary-font border-border-color":"border-transparent text-secondary-font hover:text-primary-font hover:highlight-color"}`,children:[jsxRuntimeExports.jsx(Icon,{icon:icons.changePassword,width:16,height:16}),jsxRuntimeExports.jsx("p",{children:"Change Password"})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2 w-full h-full overflow-auto scrollbar-none",children:[jsxRuntimeExports.jsx(GitHubForm,{isActive:aa==="github"}),jsxRuntimeExports.jsx(CopilotForm,{isActive:aa==="copilot"}),!la&&jsxRuntimeExports.jsx(ChangePassword,{isActive:aa==="changePassword"})]})]})},MultiSelectOption=({isSelected:la,label:aa,value:ca,onSelect:ua})=>jsxRuntimeExports.jsx(It,{value:ca,className:({focus:Sa})=>`option ${Sa?"bg-hover text-primary-font":""}`,onClick:()=>ua(ca),children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 cursor-pointer",children:[jsxRuntimeExports.jsx(Icon,{icon:la?icons.checkboxSelected:icons.checkbox,color:la?"#1976d2":"",width:"20px",height:"20px"}),aa]})}),ToolsDropdown=({name:la})=>{const{dependenciesOptions:aa,getDependenciesModule:ca,defaultDependency:ua,defaultModule:Sa}=useDependencies(),[hl,pl]=reactExports.useState(ua||""),[ml,gl]=reactExports.useState(Sa||""),wc=ca(hl).map(R1=>({label:R1,value:R1})),[xu,ff,jf]=useField(la),Uf=xu.value,rp=getEntities(ml),np=getEvents(ml),qm=getRecords(ml),[Vm,eg]=reactExports.useState(!1),tg=useOutsideClickHandler(()=>eg(!1)),rg=R1=>Uf.includes(R1),ig=R1=>{if(rg(R1)){const O1=Uf.filter(K0=>K0!==R1);jf.setValue(O1)}else jf.setValue([...Uf,R1])},vv=R1=>R1.map(O1=>({label:O1,value:`${ml}/${O1}`}));return jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-2",children:[jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[jsxRuntimeExports.jsx(Dropdown,{value:hl,options:aa,placeholder:"Model",onChange:R1=>{pl(R1);const O1=ca(R1);gl(O1[0])}}),jsxRuntimeExports.jsx(Dropdown,{value:ml,options:wc,placeholder:"Module",onChange:R1=>{gl(R1)}})]}),jsxRuntimeExports.jsxs(Mo,{as:"div",ref:tg,className:"dropdown-menu",value:Uf,onChange:R1=>{if(R1.length>Uf.length){const O1=R1.find(K0=>!Uf.includes(K0));O1&&ig(O1)}else{const O1=Uf.find(K0=>!R1.includes(K0));O1&&ig(O1)}},children:[jsxRuntimeExports.jsxs(Mt$1,{className:"dropdown-button",onClick:()=>eg(!Vm),children:["Tools: ",Uf.length," selected",jsxRuntimeExports.jsx(Icon,{icon:"ph:caret-down-bold"})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:Vm&&jsxRuntimeExports.jsxs(Bt,{static:!0,as:motion.div,initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"dropdown-options",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col ",children:[jsxRuntimeExports.jsx("span",{className:"px-2 py-1",children:"Entities"}),rp.length===0?jsxRuntimeExports.jsx("span",{className:"no-dropdown-item",children:"No entities available"}):jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-1",children:vv(rp).map(R1=>jsxRuntimeExports.jsx(MultiSelectOption,{isSelected:rg(R1.value),label:R1.label,value:R1.value,onSelect:ig},R1.value))})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col ",children:[jsxRuntimeExports.jsx("span",{className:"px-2 py-1",children:"Events"}),np.length===0?jsxRuntimeExports.jsx("span",{className:"no-dropdown-item",children:"No events available"}):jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-1",children:vv(np).map(R1=>jsxRuntimeExports.jsx(MultiSelectOption,{isSelected:rg(R1.value),label:R1.label,value:R1.value,onSelect:ig},R1.value))})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col",children:[jsxRuntimeExports.jsx("span",{className:"px-2 py-1",children:"Records"}),qm.length===0?jsxRuntimeExports.jsx("span",{className:"no-dropdown-item",children:"No records available"}):jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-1",children:vv(qm).map(R1=>jsxRuntimeExports.jsx(MultiSelectOption,{isSelected:rg(R1.value),label:R1.label,value:R1.value,onSelect:ig},R1.value))})]})]})})]})]})},AddToolsModal=({agent:la,closeModal:aa})=>{const ca=useOutsideClickHandler(aa),{setAgentTools:ua}=useAgent();return reactDomExports.createPortal(jsxRuntimeExports.jsx(Formik,{initialValues:{tools:la.getTools()||[]},onSubmit:Sa=>{try{const pl=Sa.tools;ua(la.getName(),pl),aa()}catch(hl){console.error("Error updating agent tools:",hl)}},children:jsxRuntimeExports.jsx(Form$7,{className:"modal-container",children:jsxRuntimeExports.jsxs("div",{className:"modal-content",ref:ca,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Add Tools"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:aa})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx("div",{className:"modal-body",children:jsxRuntimeExports.jsx(ToolsDropdown,{name:"tools"})}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-footer",children:[jsxRuntimeExports.jsx("div",{className:"cancel-button",onClick:aa,children:"Cancel"}),jsxRuntimeExports.jsx("button",{type:"submit",className:"sure-button",children:"Save"})]})]})})}),document.body)},AgentFormSection=({children:la})=>jsxRuntimeExports.jsx("div",{className:"bg-[rgba(255,255,255,0.05)] backdrop-blur-sm rounded-xl border border-[rgba(255,255,255,0.1)] p-4 shadow-lg flex flex-col gap-2",children:la}),AgentTools=({agent:la,isEditable:aa=!0})=>{const{moduleName:ca}=useParams(),[ua,Sa]=reactExports.useState(!1),hl=la.getTools()||[],pl=Array.isArray(hl)&&hl.length>0,{setAgentTools:ml}=useAgent();return jsxRuntimeExports.jsxs(AgentFormSection,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.tool,width:20,height:20,className:"text-white"}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(TooltipComponent,{text:"External capabilities the agent can use to accomplish the task",position:"right",children:jsxRuntimeExports.jsx("div",{className:"text-sm font-semibold text-[rgba(255,255,255,0.9)]",children:"Tools"})})})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[pl&&aa&&jsxRuntimeExports.jsx("button",{onClick:()=>Sa(!0),className:"p-2 bg-[rgba(255,255,255,0.05)] border border-[rgba(255,255,255,0.2)] rounded-lg text-[rgba(255,255,255,0.9)] hover:bg-table-header)] flex items-center gap-2 text-sm cursor-pointer transition-all transform hover:scale-110",children:jsxRuntimeExports.jsx(Icon,{icon:icons.edit,width:16,height:16})}),!pl&&aa&&jsxRuntimeExports.jsx("button",{onClick:()=>Sa(!0),className:"p-2 bg-[rgba(255,255,255,0.05)] border border-[rgba(255,255,255,0.2)] rounded-lg text-[rgba(255,255,255,0.9)] hover:bg-table-header flex items-center gap-2 text-sm cursor-pointer transition-all transform hover:scale-110",children:jsxRuntimeExports.jsx(Icon,{icon:icons.add,width:16,height:16})})]})]}),pl&&jsxRuntimeExports.jsx("div",{className:"grid grid-cols-2 gap-2",children:Array.isArray(hl)&&hl.map((gl,wc)=>jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-2 px-3 py-2 bg-blue/20 border border-blue rounded-lg text-white group min-w-0",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[jsxRuntimeExports.jsx(TeamOrDepIcon,{name:gl.split("/").length>1?gl.split("/")[0]:gl}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium whitespace-nowrap overflow-hidden truncate min-w-0",children:gl.split("/").length>1&&gl.split("/")[0]!==ca?gl:gl.split("/").pop()})]}),aa&&jsxRuntimeExports.jsx(Icon,{icon:icons.delete,className:"cursor-pointer hover:text-red-400 transition-all transform hover:scale-110 opacity-0 group-hover:opacity-100 shrink-0",onClick:()=>{const xu=hl.filter((ff,jf)=>jf!==wc);ml(la.getName(),xu)}})]},wc))}),ua&&jsxRuntimeExports.jsx(AddToolsModal,{agent:la,closeModal:()=>Sa(!1)})]})},IS_PLAYGROUND$2=!1,AgentLLMModal=({agent:la,closeModal:aa})=>{const ca=useOutsideClickHandler(aa),{setAgentLLM:ua}=useAgent();return reactDomExports.createPortal(jsxRuntimeExports.jsx(Formik,{initialValues:{llm:la.getLLM()},onSubmit:Sa=>{ua(la.getName(),Sa.llm),aa()},children:jsxRuntimeExports.jsx(Form$7,{className:"modal-container",children:jsxRuntimeExports.jsxs("div",{className:"modal-content !w-[90%] h-[80%]",ref:ca,children:[jsxRuntimeExports.jsxs("div",{className:"modal-header",children:[jsxRuntimeExports.jsx("div",{className:"modal-title",children:"Select Language Model"}),jsxRuntimeExports.jsx(Icon,{icon:icons.cross,className:"cursor-pointer text-secondary-font duration-300 hover:text-maroon",onClick:aa})]}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsx(LLM,{isModal:!0}),jsxRuntimeExports.jsx(Divider,{color:"white",sx:{opacity:.2}}),jsxRuntimeExports.jsxs("div",{className:"modal-footer",children:[jsxRuntimeExports.jsx("div",{className:"cancel-button",onClick:aa,children:"Cancel"}),jsxRuntimeExports.jsx("button",{type:"submit",className:"sure-button",children:"Save"})]})]})})}),document.body)},AgentLLM=({agent:la,isEditable:aa=!0})=>{const[ca,ua]=reactExports.useState(!1),Sa=la.getLLM(),hl=!!Sa,pl=aa;return jsxRuntimeExports.jsxs(AgentFormSection,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between ",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.llm,width:20,height:20,className:"text-white"}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(TooltipComponent,{text:"Select the language model for the agent",position:"right",children:jsxRuntimeExports.jsx("h3",{className:"!text-sm font-semibold text-[rgba(255,255,255,0.9)]",children:"LLM"})})})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[hl&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-[#025cd4]/20 border border-[#025cd4] rounded-lg text-white group",children:[jsxRuntimeExports.jsx(Icon,{icon:icons.llm,width:16,height:16}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium",children:Sa}),pl&&jsxRuntimeExports.jsx("button",{onClick:()=>ua(!0),className:"cursor-pointer hover:text-blue-300 transition-all opacity-0 group-hover:opacity-100 transform hover:scale-110",children:jsxRuntimeExports.jsx(Icon,{icon:icons.edit,width:16,height:16})})]}),!hl&&pl&&jsxRuntimeExports.jsx("button",{onClick:()=>ua(!0),className:"p-2 bg-[rgba(255,255,255,0.05)] border border-[rgba(255,255,255,0.2)] rounded-lg text-[rgba(255,255,255,0.9)] hover:bg-[rgba(255,255,255,0.1)] flex items-center gap-2 text-sm cursor-pointer",children:jsxRuntimeExports.jsx(Icon,{icon:icons.add,width:16,height:16})})]})]}),ca&&IS_PLAYGROUND$2,ca&&!IS_PLAYGROUND$2&&jsxRuntimeExports.jsx(AgentLLMModal,{agent:la,closeModal:()=>ua(!1)})]})};function createAgentUpdatePrompt(la){return`Hi! I can help you modify the ${la} agent configuration. Just tell me what you'd like to change - update the role, instructions, add tools, or any other modifications. I'll understand your request and make the changes for you.`}const AgentFormChatbot=({agent:la,agentId:aa,moduleName:ca,isAgentSelected:ua})=>{const[Sa,hl]=reactExports.useState(!1),[pl,ml]=reactExports.useState([{id:"1",message:`Hi! I can help you modify the ${aa} agent configuration. Just tell me what you'd like to change - update the role, instructions, add tools, or any other modifications. I'll understand your request and make the changes for you.`,sender:"assistant"}]),[gl,wc]=reactExports.useState(""),[xu,ff]=reactExports.useState(!1),jf=reactExports.useRef(null),Uf=reactExports.useRef(null),{setAgentRole:rp,setAgentInstruction:np,setAgentTools:qm,setAgentLLM:Vm}=useAgent(),{addFlow:eg}=useFlow(),tg=useAppStore(J0=>J0.user),{teamName:rg}=useParams(),ig=useAppStore(J0=>J0.incrementModuleDbChangeCount),vv=reactExports.useCallback(()=>{hl(!1)},[]),R1=useOutsideClickHandler(vv);reactExports.useEffect(()=>{Uf.current?.scrollIntoView({behavior:"smooth"})},[pl]),reactExports.useEffect(()=>{Sa&&jf.current?.focus()},[Sa]),reactExports.useEffect(()=>{ua&&aa&&(ml([{id:"1",message:createAgentUpdatePrompt(aa),sender:"assistant"}]),wc(""))},[aa,ua]);const O1=async J0=>{const Hw=J0.toLowerCase();let qw="",Y0=!1;const G0=tg?.Anthropic?.Key&&tg.Anthropic.Key.length>0;if(G0&&!J0.startsWith("@manual"))try{const X0=tg?.GitHub?.Username,d_=tg?.GitHub?.Token;if(!X0||!d_||!ca||!rg)return qw="❌ GitHub credentials or context not configured. Please ensure GitHub username, token, and team are properly set up.",{message:qw,actionTaken:!1};const f_=await anthropicService.processModuleEditRequest({userMessage:J0.trim(),moduleName:ca,sectionName:aa,sectionType:"agent",teamName:rg,githubUsername:X0,githubToken:d_});return f_.success?(ig(),qw=`🤖 AI Assistant Response:
|
|
20111
20111
|
|
|
20112
20112
|
${f_.analysis}
|
|
20113
20113
|
|