fern-api 4.3.1 → 4.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/cli.cjs +4 -4
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -545,7 +545,7 @@ ${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.pus
545
545
  `);let c={},l=new n.Events(c);return c.on("secondary-limit",u.onSecondaryRateLimit),c.on("rate-limit",u.onRateLimit),c.on("error",p=>e.log.warn("Error in throttling-plugin limit handler",p)),u.retryLimiter.on("failed",async function(p,d){let[f,m,h]=d.args,{pathname:A}=new URL(h.url,"http://github.test");if(!(A.startsWith("/graphql")&&p.status!==401||p.status===403||p.status===429))return;let v=~~m.retryCount;m.retryCount=v,h.request.retryCount=v;let{wantRetry:E,retryAfter:b=0}=await(async function(){if(/\bsecondary rate\b/i.test(p.message)){let I=Number(p.response.headers["retry-after"])||f.fallbackSecondaryRateRetryAfter;return{wantRetry:await l.trigger("secondary-limit",I,h,e,v),retryAfter:I}}if(p.response.headers!=null&&p.response.headers["x-ratelimit-remaining"]==="0"||(p.response.data?.errors??[]).some(I=>I.type==="RATE_LIMITED")){let I=new Date(~~p.response.headers["x-ratelimit-reset"]*1e3).getTime(),w=Math.max(Math.ceil((I-Date.now())/1e3)+1,0);return{wantRetry:await l.trigger("rate-limit",w,h,e,v),retryAfter:w}}return{}})();if(E)return m.retryCount++,b*f.retryAfterBaseValue}),e.hook.wrap("request",Mmf.bind(null,u)),{}}var hEa,kmf,qDi,zmf,mEa,gEa,oke,qmf,AEa=re(()=>{"use strict";hEa=we(zDi(),1),kmf="0.0.0-development",qDi=()=>Promise.resolve();zmf=["/orgs/{org}/invitations","/orgs/{org}/invitations/{invitation_id}","/orgs/{org}/teams/{team_slug}/discussions","/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","/repos/{owner}/{repo}/collaborators/{username}","/repos/{owner}/{repo}/commits/{commit_sha}/comments","/repos/{owner}/{repo}/issues","/repos/{owner}/{repo}/issues/{issue_number}/comments","/repos/{owner}/{repo}/issues/{issue_number}/sub_issue","/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority","/repos/{owner}/{repo}/pulls","/repos/{owner}/{repo}/pulls/{pull_number}/comments","/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies","/repos/{owner}/{repo}/pulls/{pull_number}/merge","/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","/repos/{owner}/{repo}/pulls/{pull_number}/reviews","/repos/{owner}/{repo}/releases","/teams/{team_id}/discussions","/teams/{team_id}/discussions/{discussion_number}/comments"];mEa=Vmf(zmf),gEa=mEa.test.bind(mEa),oke={},qmf=function(e,t){oke.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),oke.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),oke.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),oke.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),oke.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};R0r.VERSION=kmf;R0r.triggersNotification=gEa});function yEa(e){let t=e.clientType||"oauth-app",r=e.baseUrl||"https://github.com",n={clientType:t,allowSignup:e.allowSignup!==!1,clientId:e.clientId,login:e.login||null,redirectUrl:e.redirectUrl||null,state:e.state||Math.random().toString(36).substr(2),url:""};if(t==="oauth-app"){let i="scopes"in e?e.scopes:[];n.scopes=typeof i=="string"?i.split(/[,\s]+/).filter(Boolean):i}return n.url=Gmf(`${r}/login/oauth/authorize`,n),n}function Gmf(e,t){let r={allowSignup:"allow_signup",clientId:"client_id",login:"login",redirectUrl:"redirect_uri",scopes:"scope",state:"state"},n=e;return Object.keys(r).filter(i=>t[i]!==null).filter(i=>i!=="scopes"?!0:t.clientType==="github-app"?!1:!Array.isArray(t[i])||t[i].length>0).map(i=>[r[i],`${t[i]}`]).forEach(([i,o],s)=>{n+=s===0?"?":"&",n+=`${i}=${encodeURIComponent(o)}`}),n}var bEa=re(()=>{"use strict"});function wEa(e){let t=e.endpoint.DEFAULTS;return/^https:\/\/(api\.)?github\.com$/.test(t.baseUrl)?"https://github.com":t.baseUrl.replace("/api/v3","")}async function F0r(e,t,r){let n={baseUrl:wEa(e),headers:{accept:"application/json"},...r},i=await e(t,n);if("error"in i.data){let o=new Yq(`${i.data.error_description} (${i.data.error}, ${i.data.error_uri})`,400,{request:e.endpoint.merge(t,n)});throw o.response=i,o}return i}function CEa({request:e=Xf,...t}){let r=wEa(e);return yEa({...t,baseUrl:r})}async function _Ea(e){let t=e.request||Xf,r=await F0r(t,"POST /login/oauth/access_token",{client_id:e.clientId,client_secret:e.clientSecret,code:e.code,redirect_uri:e.redirectUrl}),n={clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:r.data.access_token,scopes:r.data.scope.split(/\s+/).filter(Boolean)};if(e.clientType==="github-app"){if("refresh_token"in r.data){let i=new Date(r.headers.date).getTime();n.refreshToken=r.data.refresh_token,n.expiresAt=vEa(i,r.data.expires_in),n.refreshTokenExpiresAt=vEa(i,r.data.refresh_token_expires_in)}delete n.scopes}return{...r,authentication:n}}function vEa(e,t){return new Date(e+t*1e3).toISOString()}async function xEa(e){let t=e.request||Xf,r={client_id:e.clientId};return"scopes"in e&&Array.isArray(e.scopes)&&(r.scope=e.scopes.join(" ")),F0r(t,"POST /login/device/code",r)}async function GDi(e){let t=e.request||Xf,r=await F0r(t,"POST /login/oauth/access_token",{client_id:e.clientId,device_code:e.code,grant_type:"urn:ietf:params:oauth:grant-type:device_code"}),n={clientType:e.clientType,clientId:e.clientId,token:r.data.access_token,scopes:r.data.scope.split(/\s+/).filter(Boolean)};if("clientSecret"in e&&(n.clientSecret=e.clientSecret),e.clientType==="github-app"){if("refresh_token"in r.data){let i=new Date(r.headers.date).getTime();n.refreshToken=r.data.refresh_token,n.expiresAt=EEa(i,r.data.expires_in),n.refreshTokenExpiresAt=EEa(i,r.data.refresh_token_expires_in)}delete n.scopes}return{...r,authentication:n}}function EEa(e,t){return new Date(e+t*1e3).toISOString()}async function j0r(e){let r=await(e.request||Xf)("POST /applications/{client_id}/token",{headers:{authorization:`basic ${btoa(`${e.clientId}:${e.clientSecret}`)}`},client_id:e.clientId,access_token:e.token}),n={clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:e.token,scopes:r.data.scopes};return r.data.expires_at&&(n.expiresAt=r.data.expires_at),e.clientType==="github-app"&&delete n.scopes,{...r,authentication:n}}async function Q0r(e){let t=e.request||Xf,r=await F0r(t,"POST /login/oauth/access_token",{client_id:e.clientId,client_secret:e.clientSecret,grant_type:"refresh_token",refresh_token:e.refreshToken}),n=new Date(r.headers.date).getTime(),i={clientType:"github-app",clientId:e.clientId,clientSecret:e.clientSecret,token:r.data.access_token,refreshToken:r.data.refresh_token,expiresAt:IEa(n,r.data.expires_in),refreshTokenExpiresAt:IEa(n,r.data.refresh_token_expires_in)};return{...r,authentication:i}}function IEa(e,t){return new Date(e+t*1e3).toISOString()}async function SEa(e){let{request:t,clientType:r,clientId:n,clientSecret:i,token:o,...s}=e,u=await(e.request||Xf)("POST /applications/{client_id}/token/scoped",{headers:{authorization:`basic ${btoa(`${n}:${i}`)}`},client_id:n,access_token:o,...s}),c=Object.assign({clientType:r,clientId:n,clientSecret:i,token:u.data.token},u.data.expires_at?{expiresAt:u.data.expires_at}:{});return{...u,authentication:c}}async function hDt(e){let t=e.request||Xf,r=btoa(`${e.clientId}:${e.clientSecret}`),n=await t("PATCH /applications/{client_id}/token",{headers:{authorization:`basic ${r}`},client_id:e.clientId,access_token:e.token}),i={clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:n.data.token,scopes:n.data.scopes};return n.data.expires_at&&(i.expiresAt=n.data.expires_at),e.clientType==="github-app"&&delete i.scopes,{...n,authentication:i}}async function gDt(e){let t=e.request||Xf,r=btoa(`${e.clientId}:${e.clientSecret}`);return t("DELETE /applications/{client_id}/token",{headers:{authorization:`basic ${r}`},client_id:e.clientId,access_token:e.token})}async function ADt(e){let t=e.request||Xf,r=btoa(`${e.clientId}:${e.clientSecret}`);return t("DELETE /applications/{client_id}/grant",{headers:{authorization:`basic ${r}`},client_id:e.clientId,access_token:e.token})}var Xq=re(()=>{"use strict";bEa();_S();B0r();_S();_S();_S();_S();_S();_S();_S();_S();_S()});async function BEa(e,t){let r=Wmf(e,t.auth);if(r)return r;let{data:n}=await xEa({clientType:e.clientType,clientId:e.clientId,request:t.request||e.request,scopes:t.auth.scopes||e.scopes});await e.onVerification(n);let i=await WDi(t.request||e.request,e.clientId,e.clientType,n);return e.authentication=i,i}function Wmf(e,t){if(t.refresh===!0||!e.authentication)return!1;if(e.clientType==="github-app")return e.authentication;let r=e.authentication,n=("scopes"in t&&t.scopes||e.scopes).join(" "),i=r.scopes.join(" ");return n===i?r:!1}async function OEa(e){await new Promise(t=>setTimeout(t,e*1e3))}async function WDi(e,t,r,n){try{let i={clientId:t,request:e,code:n.device_code},{authentication:o}=r==="oauth-app"?await GDi({...i,clientType:"oauth-app"}):await GDi({...i,clientType:"github-app"});return{type:"token",tokenType:"oauth",...o}}catch(i){if(!i.response)throw i;let o=i.response.data.error;if(o==="authorization_pending")return await OEa(n.interval),WDi(e,t,r,n);if(o==="slow_down")return await OEa(n.interval+7),WDi(e,t,r,n);throw i}}async function $mf(e,t){return BEa(e,{auth:t})}async function Hmf(e,t,r,n){let i=t.endpoint.merge(r,n);if(/\/login\/(oauth\/access_token|device\/code)$/.test(i.url))return t(i);let{token:o}=await BEa(e,{request:t,auth:{type:"oauth"}});return i.headers.authorization=`token ${o}`,t(i)}function PEa(e){let t=e.request||Xf.defaults({headers:{"user-agent":`octokit-auth-oauth-device.js/${Kmf} ${nA()}`}}),{request:r=t,...n}=e,i=e.clientType==="github-app"?{...n,clientType:"github-app",request:r}:{...n,clientType:"oauth-app",request:r,scopes:e.scopes||[]};if(!e.clientId)throw new Error('[@octokit/auth-oauth-device] "clientId" option must be set (https://github.com/octokit/auth-oauth-device.js#usage)');if(!e.onVerification)throw new Error('[@octokit/auth-oauth-device] "onVerification" option must be a function (https://github.com/octokit/auth-oauth-device.js#usage)');return Object.assign($mf.bind(null,i),{hook:Hmf.bind(null,i)})}var Kmf,TEa=re(()=>{"use strict";jF();_S();Xq();Kmf="0.0.0-development"});async function DEa(e){if("code"in e.strategyOptions){let{authentication:t}=await _Ea({clientId:e.clientId,clientSecret:e.clientSecret,clientType:e.clientType,onTokenCreated:e.onTokenCreated,...e.strategyOptions,request:e.request});return{type:"token",tokenType:"oauth",...t}}if("onVerification"in e.strategyOptions){let r=await PEa({clientType:e.clientType,clientId:e.clientId,onTokenCreated:e.onTokenCreated,...e.strategyOptions,request:e.request})({type:"oauth"});return{clientSecret:e.clientSecret,...r}}if("token"in e.strategyOptions)return{type:"token",tokenType:"oauth",clientId:e.clientId,clientSecret:e.clientSecret,clientType:e.clientType,onTokenCreated:e.onTokenCreated,...e.strategyOptions};throw new Error("[@octokit/auth-oauth-user] Invalid strategy options")}async function $Di(e,t={}){if(e.authentication||(e.authentication=e.clientType==="oauth-app"?await DEa(e):await DEa(e)),e.authentication.invalid)throw new Error("[@octokit/auth-oauth-user] Token is invalid");let r=e.authentication;if("expiresAt"in r&&(t.type==="refresh"||new Date(r.expiresAt)<new Date)){let{authentication:n}=await Q0r({clientType:"github-app",clientId:e.clientId,clientSecret:e.clientSecret,refreshToken:r.refreshToken,request:e.request});e.authentication={tokenType:"oauth",type:"token",...n}}if(t.type==="refresh"){if(e.clientType==="oauth-app")throw new Error("[@octokit/auth-oauth-user] OAuth Apps do not support expiring tokens");if(!r.hasOwnProperty("expiresAt"))throw new Error("[@octokit/auth-oauth-user] Refresh token missing");await e.onTokenCreated?.(e.authentication,{type:t.type})}if(t.type==="check"||t.type==="reset"){let n=t.type==="check"?j0r:hDt;try{let{authentication:i}=await n({clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:e.authentication.token,request:e.request});return e.authentication={tokenType:"oauth",type:"token",...i},t.type==="reset"&&await e.onTokenCreated?.(e.authentication,{type:t.type}),e.authentication}catch(i){throw i.status===404&&(i.message="[@octokit/auth-oauth-user] Token is invalid",e.authentication.invalid=!0),i}}if(t.type==="delete"||t.type==="deleteAuthorization"){let n=t.type==="delete"?gDt:ADt;try{await n({clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:e.authentication.token,request:e.request})}catch(i){if(i.status!==404)throw i}return e.authentication.invalid=!0,e.authentication}return e.authentication}function yDt(e){return e&&Jmf.test(e)}async function Ymf(e,t,r,n={}){let i=t.endpoint.merge(r,n);if(/\/login\/(oauth\/access_token|device\/code)$/.test(i.url))return t(i);if(yDt(i.url)){let s=btoa(`${e.clientId}:${e.clientSecret}`);return i.headers.authorization=`basic ${s}`,t(i)}let{token:o}=e.clientType==="oauth-app"?await $Di({...e,request:t}):await $Di({...e,request:t});return i.headers.authorization="token "+o,t(i)}function cO({clientId:e,clientSecret:t,clientType:r="oauth-app",request:n=Xf.defaults({headers:{"user-agent":`octokit-auth-oauth-app.js/${REa} ${nA()}`}}),onTokenCreated:i,...o}){let s=Object.assign({clientType:r,clientId:e,clientSecret:t,onTokenCreated:i,strategyOptions:o,request:n});return Object.assign($Di.bind(null,s),{hook:Ymf.bind(null,s)})}var REa,Jmf,Phe=re(()=>{"use strict";jF();_S();TEa();Xq();Xq();REa="0.0.0-development";Jmf=/\/applications\/[^/]+\/(token|grant)s?/;cO.VERSION=REa});async function Xmf(e,t){if(t.type==="oauth-app")return{type:"oauth-app",clientId:e.clientId,clientSecret:e.clientSecret,clientType:e.clientType,headers:{authorization:`basic ${btoa(`${e.clientId}:${e.clientSecret}`)}`}};if("factory"in t){let{type:i,...o}={...t,...e};return t.factory(o)}let r={clientId:e.clientId,clientSecret:e.clientSecret,request:e.request,...t};return(e.clientType==="oauth-app"?await cO({...r,clientType:e.clientType}):await cO({...r,clientType:e.clientType}))()}async function Zmf(e,t,r,n){let i=t.endpoint.merge(r,n);if(/\/login\/(oauth\/access_token|device\/code)$/.test(i.url))return t(i);if(e.clientType==="github-app"&&!yDt(i.url))throw new Error(`[@octokit/auth-oauth-app] GitHub Apps cannot use their client ID/secret for basic authentication for endpoints other than "/applications/{client_id}/**". "${i.method} ${i.url}" is not supported.`);let o=btoa(`${e.clientId}:${e.clientSecret}`);i.headers.authorization=`basic ${o}`;try{return await t(i)}catch(s){throw s.status!==401||(s.message=`[@octokit/auth-oauth-app] "${i.method} ${i.url}" does not support clientId/clientSecret basic authentication.`),s}}function N0r(e){let t=Object.assign({request:Xf.defaults({headers:{"user-agent":`octokit-auth-oauth-app.js/${ehf} ${nA()}`}}),clientType:"oauth-app"},e);return Object.assign(Xmf.bind(null,t),{hook:Zmf.bind(null,t)})}var ehf,k0r=re(()=>{"use strict";jF();_S();Phe();Phe();Phe();ehf="0.0.0-development"});function M0r(e){return e.includes("-----BEGIN RSA PRIVATE KEY-----")}function jEa(e){return e.includes("-----BEGIN OPENSSH PRIVATE KEY-----")}function HDi(e){let t=new ArrayBuffer(e.length),r=new Uint8Array(t);for(let n=0,i=e.length;n<i;n++)r[n]=e.charCodeAt(n);return t}function QEa(e){let t=e.trim().split(`
546
546
  `).slice(1,-1).join(""),r=atob(t);return HDi(r)}function NEa(e,t){return`${FEa(e)}.${FEa(t)}`}function kEa(e){for(var t="",r=new Uint8Array(e),n=r.byteLength,i=0;i<n;i++)t+=String.fromCharCode(r[i]);return MEa(btoa(t))}function MEa(e){return e.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function FEa(e){return MEa(btoa(JSON.stringify(e)))}var KDi=re(()=>{"use strict"});function UEa(e){return M0r(e)?(0,LEa.createPrivateKey)(e).export({type:"pkcs8",format:"pem"}):e}var L0r,LEa,zEa=re(()=>{"use strict";L0r=require("crypto"),LEa=require("crypto");KDi()});async function VEa({privateKey:e,payload:t}){let r=UEa(e);if(M0r(r))throw new Error("[universal-github-app-jwt] Private Key is in PKCS#1 format, but only PKCS#8 is supported. See https://github.com/gr2m/universal-github-app-jwt#private-key-formats");if(jEa(r))throw new Error("[universal-github-app-jwt] Private Key is in OpenSSH format, but only PKCS#8 is supported. See https://github.com/gr2m/universal-github-app-jwt#private-key-formats");let n={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},i={alg:"RS256",typ:"JWT"},o=QEa(r),s=await L0r.subtle.importKey("pkcs8",o,n,!1,["sign"]),a=NEa(i,t),u=HDi(a),c=await L0r.subtle.sign(n.name,s,u),l=kEa(c);return`${a}.${l}`}var qEa=re(()=>{"use strict";KDi();zEa()});async function JDi({id:e,privateKey:t,now:r=Math.floor(Date.now()/1e3)}){let n=t.replace(/\\n/g,`
547
547
  `),i=r-30,o=i+600,a=await VEa({privateKey:n,payload:{iat:i,exp:o,iss:e}});return{appId:e,expiration:o,token:a}}var GEa=re(()=>{"use strict";qEa()});var U0r,WEa=re(()=>{"use strict";U0r=class{constructor(t=1e3,r=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(r)||r<0)throw new Error("Invalid ttl value");this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this.max=t,this.ttl=r}bumpLru(t){if(this.last===t)return;let r=this.last,n=t.next,i=t.prev;this.first===t&&(this.first=n),t.next=null,t.prev=r,r.next=t,i!==null&&(i.next=n),n!==null&&(n.prev=i),this.last=t}clear(){this.items=Object.create(null),this.first=null,this.last=null,this.size=0}delete(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let r=this.items[t];delete this.items[t],this.size--,r.prev!==null&&(r.prev.next=r.next),r.next!==null&&(r.next.prev=r.prev),this.first===r&&(this.first=r.next),this.last===r&&(this.last=r.prev)}}deleteMany(t){for(var r=0;r<t.length;r++)this.delete(t[r])}evict(){if(this.size>0){let t=this.first;delete this.items[t.key],--this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(Object.prototype.hasOwnProperty.call(this.items,t))return this.items[t].expiry}get(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let r=this.items[t];if(this.ttl>0&&r.expiry<=Date.now()){this.delete(t);return}return this.bumpLru(r),r.value}}getMany(t){let r=[];for(var n=0;n<t.length;n++)r.push(this.get(t[n]));return r}keys(){return Object.keys(this.items)}set(t,r){if(Object.prototype.hasOwnProperty.call(this.items,t)){let i=this.items[t];i.value=r,i.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl,this.last!==i&&this.bumpLru(i);return}this.max>0&&this.size===this.max&&this.evict();let n={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:r};this.items[t]=n,++this.size===1?this.first=n:this.last.next=n,this.last=n}}});async function V0r({appId:e,privateKey:t,timeDifference:r}){try{let n={id:e,privateKey:t};r&&Object.assign(n,{now:Math.floor(Date.now()/1e3)+r});let i=await JDi(n);return{type:"app",token:i.token,appId:i.appId,expiresAt:new Date(i.expiration*1e3).toISOString()}}catch(n){throw t==="-----BEGIN RSA PRIVATE KEY-----"?new Error("The 'privateKey` option contains only the first line '-----BEGIN RSA PRIVATE KEY-----'. If you are setting it using a `.env` file, make sure it is set on a single line with newlines replaced by '\n'"):n}}function rhf(){return new U0r(15e3,1e3*60*59)}async function nhf(e,t){let r=YDi(t),n=await e.get(r);if(!n)return;let[i,o,s,a,u,c]=n.split("|"),l=t.permissions||u.split(/,/).reduce((p,d)=>(/!$/.test(d)?p[d.slice(0,-1)]="write":p[d]="read",p),{});return{token:i,createdAt:o,expiresAt:s,permissions:l,repositoryIds:t.repositoryIds,repositoryNames:t.repositoryNames,singleFileName:c,repositorySelection:a}}async function ihf(e,t,r){let n=YDi(t),i=t.permissions?"":Object.keys(r.permissions).map(s=>`${s}${r.permissions[s]==="write"?"!":""}`).join(","),o=[r.token,r.createdAt,r.expiresAt,r.repositorySelection,i,r.singleFileName].join("|");await e.set(n,o)}function YDi({installationId:e,permissions:t={},repositoryIds:r=[],repositoryNames:n=[]}){let i=Object.keys(t).sort().map(a=>t[a]==="read"?a:`${a}!`).join(","),o=r.sort().join(","),s=n.join(",");return[e,o,s,i].filter(Boolean).join("|")}function $Ea({installationId:e,token:t,createdAt:r,expiresAt:n,repositorySelection:i,permissions:o,repositoryIds:s,repositoryNames:a,singleFileName:u}){return Object.assign({type:"token",tokenType:"installation",token:t,installationId:e,permissions:o,createdAt:r,expiresAt:n,repositorySelection:i},s?{repositoryIds:s}:null,a?{repositoryNames:a}:null,u?{singleFileName:u}:null)}async function HEa(e,t,r){let n=Number(t.installationId||e.installationId);if(!n)throw new Error("[@octokit/auth-app] installationId option is required for installation authentication.");if(t.factory){let{type:o,factory:s,oauthApp:a,...u}={...e,...t};return s(u)}let i=r||e.request;return ohf(e,{...t,installationId:n},i)}function ohf(e,t,r){let n=YDi(t);if(z0r.has(n))return z0r.get(n);let i=shf(e,t,r).finally(()=>z0r.delete(n));return z0r.set(n,i),i}async function shf(e,t,r){if(!t.refresh){let v=await nhf(e.cache,t);if(v){let{token:E,createdAt:b,expiresAt:I,permissions:w,repositoryIds:_,repositoryNames:C,singleFileName:x,repositorySelection:R}=v;return $Ea({installationId:t.installationId,token:E,createdAt:b,expiresAt:I,permissions:w,repositorySelection:R,repositoryIds:_,repositoryNames:C,singleFileName:x})}}let n=await V0r(e),i={installation_id:t.installationId,mediaType:{previews:["machine-man"]},headers:{authorization:`bearer ${n.token}`}};t.repositoryIds&&Object.assign(i,{repository_ids:t.repositoryIds}),t.repositoryNames&&Object.assign(i,{repositories:t.repositoryNames}),t.permissions&&Object.assign(i,{permissions:t.permissions});let{data:{token:o,expires_at:s,repositories:a,permissions:u,repository_selection:c,single_file:l}}=await r("POST /app/installations/{installation_id}/access_tokens",i),p=u||{},d=c||"all",f=a?a.map(v=>v.id):void 0,m=a?a.map(v=>v.name):void 0,h=new Date().toISOString(),A={token:o,createdAt:h,expiresAt:s,repositorySelection:d,permissions:p,repositoryIds:f,repositoryNames:m};l&&Object.assign(i,{singleFileName:l}),await ihf(e.cache,t,A);let y={installationId:t.installationId,token:o,createdAt:h,expiresAt:s,repositorySelection:d,permissions:p,repositoryIds:f,repositoryNames:m};return l&&Object.assign(y,{singleFileName:l}),$Ea(y)}async function ahf(e,t){switch(t.type){case"app":return V0r(e);case"oauth-app":return e.oauthApp({type:"oauth-app"});case"installation":return HEa(e,{...t,type:"installation"});case"oauth-user":return e.oauthApp(t);default:throw new Error(`Invalid auth type: ${t.type}`)}}function chf(e){let r=`^(?:${e.map(n=>n.split("/").map(i=>i.startsWith("{")?"(?:.+?)":i).join("/")).map(n=>`(?:${n})`).join("|")})$`;return new RegExp(r,"i")}function phf(e){return!!e&&lhf.test(e.split("?")[0])}function dhf(e){return!(e.message.match(/'Expiration time' claim \('exp'\) must be a numeric value representing the future time at which the assertion expires/)||e.message.match(/'Issued at' claim \('iat'\) must be an Integer representing the time that the assertion was issued/))}async function mhf(e,t,r,n){let i=t.endpoint.merge(r,n),o=i.url;if(/\/login\/oauth\/access_token$/.test(o))return t(i);if(phf(o.replace(t.endpoint.DEFAULTS.baseUrl,""))){let{token:u}=await V0r(e);i.headers.authorization=`bearer ${u}`;let c;try{c=await t(i)}catch(l){if(dhf(l)||typeof l.response.headers.date>"u")throw l;let p=Math.floor((Date.parse(l.response.headers.date)-Date.parse(new Date().toString()))/1e3);e.log.warn(l.message),e.log.warn(`[@octokit/auth-app] GitHub API time and system time are different by ${p} seconds. Retrying request with the difference accounted for.`);let{token:d}=await V0r({...e,timeDifference:p});return i.headers.authorization=`bearer ${d}`,t(i)}return c}if(yDt(o)){let u=await e.oauthApp({type:"oauth-app"});return i.headers.authorization=u.headers.authorization,t(i)}let{token:s,createdAt:a}=await HEa(e,{},t.defaults({baseUrl:i.baseUrl}));return i.headers.authorization=`token ${s}`,KEa(e,t,i,a)}async function KEa(e,t,r,n,i=0){let o=+new Date-+new Date(n);try{return await t(r)}catch(s){if(s.status!==401)throw s;if(o>=fhf)throw i>0&&(s.message=`After ${i} retries within ${o/1e3}s of creating the installation access token, the response remains 401. At this point, the cause may be an authentication problem or a system outage. Please check https://www.githubstatus.com for status information`),s;++i;let a=i*1e3;return e.log.warn(`[@octokit/auth-app] Retrying after 401 response to account for token replication delay (retry: ${i}, wait: ${a/1e3}s)`),await new Promise(u=>setTimeout(u,a)),KEa(e,t,r,n,i)}}function jYe(e){if(!e.appId)throw new Error("[@octokit/auth-app] appId option is required");if(!e.privateKey)throw new Error("[@octokit/auth-app] privateKey option is required");if("installationId"in e&&!e.installationId)throw new Error("[@octokit/auth-app] installationId is set to a falsy value");let t=e.log||{};typeof t.warn!="function"&&(t.warn=console.warn.bind(console));let r=e.request||Xf.defaults({headers:{"user-agent":`octokit-auth-app.js/${hhf} ${nA()}`}}),n=Object.assign({request:r,cache:rhf()},e,e.installationId?{installationId:Number(e.installationId)}:{},{log:t,oauthApp:N0r({clientType:"github-app",clientId:e.clientId||"",clientSecret:e.clientSecret||"",request:r})});return Object.assign(ahf.bind(null,n),{hook:mhf.bind(null,n)})}var z0r,uhf,lhf,fhf,hhf,q0r=re(()=>{"use strict";jF();_S();k0r();GEa();WEa();Phe();z0r=new Map;uhf=["/app","/app/hook/config","/app/hook/deliveries","/app/hook/deliveries/{delivery_id}","/app/hook/deliveries/{delivery_id}/attempts","/app/installations","/app/installations/{installation_id}","/app/installations/{installation_id}/access_tokens","/app/installations/{installation_id}/suspended","/app/installation-requests","/marketplace_listing/accounts/{account_id}","/marketplace_listing/plan","/marketplace_listing/plans","/marketplace_listing/plans/{plan_id}/accounts","/marketplace_listing/stubbed/accounts/{account_id}","/marketplace_listing/stubbed/plan","/marketplace_listing/stubbed/plans","/marketplace_listing/stubbed/plans/{plan_id}/accounts","/orgs/{org}/installation","/repos/{owner}/{repo}/installation","/users/{username}/installation"];lhf=chf(uhf);fhf=5*1e3;hhf="7.2.2"});async function ghf(e){return{type:"unauthenticated",reason:e}}function Ahf(e){return e.status!==403||!e.response?!1:e.response.headers["x-ratelimit-remaining"]==="0"}function bhf(e){return e.status!==403?!1:yhf.test(e.message)}async function vhf(e,t,r,n){let i=t.endpoint.merge(r,n);return t(i).catch(o=>{throw o.status===404?(o.message=`Not found. May be due to lack of authentication. Reason: ${e}`,o):Ahf(o)?(o.message=`API rate limit exceeded. This maybe caused by the lack of authentication. Reason: ${e}`,o):bhf(o)?(o.message=`You have triggered an abuse detection mechanism. This maybe caused by the lack of authentication. Reason: ${e}`,o):o.status===401?(o.message=`Unauthorized. "${i.method} ${i.url}" failed most likely due to lack of authentication. Reason: ${e}`,o):(o.status>=400&&o.status<500&&(o.message=o.message.replace(/\.?$/,`. May be caused by lack of authentication (${e}).`)),o)})}var yhf,ake,G0r=re(()=>{"use strict";yhf=/\babuse\b/i;ake=function(t){if(!t||!t.reason)throw new Error("[@octokit/auth-unauthenticated] No reason passed to createUnauthenticatedAuth");return Object.assign(ghf.bind(null,t.reason),{hook:vhf.bind(null,t.reason)})}});function YEa(e,t,r){if(Array.isArray(t)){for(let n of t)YEa(e,n,r);return}e.eventHandlers[t]||(e.eventHandlers[t]=[]),e.eventHandlers[t].push(r)}async function The(e,t){let{name:r,action:n}=t;if(e.eventHandlers[`${r}.${n}`])for(let i of e.eventHandlers[`${r}.${n}`])await i(t);if(e.eventHandlers[r])for(let i of e.eventHandlers[r])await i(t)}async function Ihf(e,t){return e.octokit.auth({type:"oauth-user",...t,async factory(r){let n=new e.Octokit({authStrategy:cO,auth:r}),i=await n.auth({type:"get"});return await The(e,{name:"token",action:"created",token:i.token,scopes:i.scopes,authentication:i,octokit:n}),n}})}function whf(e,t){let r={clientId:e.clientId,request:e.octokit.request,...t,allowSignup:e.allowSignup??t.allowSignup,redirectUrl:t.redirectUrl??e.redirectUrl,scopes:t.scopes??e.defaultScopes};return CEa({clientType:e.clientType,...r})}async function Chf(e,t){let r=await e.octokit.auth({type:"oauth-user",...t});return await The(e,{name:"token",action:"created",token:r.token,scopes:r.scopes,authentication:r,octokit:new e.Octokit({authStrategy:cO,auth:{clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:r.token,scopes:r.scopes,refreshToken:r.refreshToken,expiresAt:r.expiresAt,refreshTokenExpiresAt:r.refreshTokenExpiresAt}})}),{authentication:r}}async function _hf(e,t){let r=await j0r({clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,request:e.octokit.request,...t});return Object.assign(r.authentication,{type:"token",tokenType:"oauth"}),r}async function xhf(e,t){let r={clientId:e.clientId,clientSecret:e.clientSecret,request:e.octokit.request,...t};if(e.clientType==="oauth-app"){let o=await hDt({clientType:"oauth-app",...r}),s=Object.assign(o.authentication,{type:"token",tokenType:"oauth"});return await The(e,{name:"token",action:"reset",token:o.authentication.token,scopes:o.authentication.scopes||void 0,authentication:s,octokit:new e.Octokit({authStrategy:cO,auth:{clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:o.authentication.token,scopes:o.authentication.scopes}})}),{...o,authentication:s}}let n=await hDt({clientType:"github-app",...r}),i=Object.assign(n.authentication,{type:"token",tokenType:"oauth"});return await The(e,{name:"token",action:"reset",token:n.authentication.token,authentication:i,octokit:new e.Octokit({authStrategy:cO,auth:{clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:n.authentication.token}})}),{...n,authentication:i}}async function Shf(e,t){if(e.clientType==="oauth-app")throw new Error("[@octokit/oauth-app] app.refreshToken() is not supported for OAuth Apps");let r=await Q0r({clientType:"github-app",clientId:e.clientId,clientSecret:e.clientSecret,request:e.octokit.request,refreshToken:t.refreshToken}),n=Object.assign(r.authentication,{type:"token",tokenType:"oauth"});return await The(e,{name:"token",action:"refreshed",token:r.authentication.token,authentication:n,octokit:new e.Octokit({authStrategy:cO,auth:{clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:r.authentication.token}})}),{...r,authentication:n}}async function Ohf(e,t){if(e.clientType==="oauth-app")throw new Error("[@octokit/oauth-app] app.scopeToken() is not supported for OAuth Apps");let r=await SEa({clientType:"github-app",clientId:e.clientId,clientSecret:e.clientSecret,request:e.octokit.request,...t}),n=Object.assign(r.authentication,{type:"token",tokenType:"oauth"});return await The(e,{name:"token",action:"scoped",token:r.authentication.token,authentication:n,octokit:new e.Octokit({authStrategy:cO,auth:{clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:r.authentication.token}})}),{...r,authentication:n}}async function Bhf(e,t){let r={clientId:e.clientId,clientSecret:e.clientSecret,request:e.octokit.request,...t},n=e.clientType==="oauth-app"?await gDt({clientType:"oauth-app",...r}):await gDt({clientType:"github-app",...r});return await The(e,{name:"token",action:"deleted",token:t.token,octokit:new e.Octokit({authStrategy:ake,auth:{reason:'Handling "token.deleted" event. The access for the token has been revoked.'}})}),n}async function Phf(e,t){let r={clientId:e.clientId,clientSecret:e.clientSecret,request:e.octokit.request,...t},n=e.clientType==="oauth-app"?await ADt({clientType:"oauth-app",...r}):await ADt({clientType:"github-app",...r});return await The(e,{name:"token",action:"deleted",token:t.token,octokit:new e.Octokit({authStrategy:ake,auth:{reason:'Handling "token.deleted" event. The access for the token has been revoked.'}})}),await The(e,{name:"authorization",action:"deleted",token:t.token,octokit:new e.Octokit({authStrategy:ake,auth:{reason:'Handling "authorization.deleted" event. The access for the app has been revoked.'}})}),n}var JEa,Ehf,W0r,XDi=re(()=>{"use strict";k0r();P0r();jF();Phe();Xq();k0r();Xq();Xq();Phe();Xq();Phe();Xq();Phe();Xq();G0r();Xq();G0r();JEa="7.1.6";Ehf=mwe.defaults({userAgent:`octokit-oauth-app.js/${JEa} ${nA()}`});W0r=class{static VERSION=JEa;static defaults(e){return class extends this{constructor(...r){super({...e,...r[0]})}}}constructor(e){let t=e.Octokit||Ehf;this.type=e.clientType||"oauth-app";let r=new t({authStrategy:N0r,auth:{clientType:this.type,clientId:e.clientId,clientSecret:e.clientSecret}}),n={clientType:this.type,clientId:e.clientId,clientSecret:e.clientSecret,defaultScopes:e.defaultScopes||[],allowSignup:e.allowSignup,baseUrl:e.baseUrl,redirectUrl:e.redirectUrl,log:e.log,Octokit:t,octokit:r,eventHandlers:{}};this.on=YEa.bind(null,n),this.octokit=r,this.getUserOctokit=Ihf.bind(null,n),this.getWebFlowAuthorizationUrl=whf.bind(null,n),this.createToken=Chf.bind(null,n),this.checkToken=_hf.bind(null,n),this.resetToken=xhf.bind(null,n),this.refreshToken=Shf.bind(null,n),this.scopeToken=Ohf.bind(null,n),this.deleteToken=Bhf.bind(null,n),this.deleteAuthorization=Phf.bind(null,n)}type;on;octokit;getUserOctokit;getWebFlowAuthorizationUrl;createToken;checkToken;resetToken;refreshToken;scopeToken;deleteToken;deleteAuthorization}});async function $0r(e,t){if(!e||!t)throw new TypeError("[@octokit/webhooks-methods] secret & payload required for sign()");if(typeof t!="string")throw new TypeError("[@octokit/webhooks-methods] payload must be a string");let r="sha256";return`${r}=${(0,XEa.createHmac)(r,e).update(t).digest("hex")}`}async function bDt(e,t,r){if(!e||!t||!r)throw new TypeError("[@octokit/webhooks-methods] secret, eventPayload & signature required");if(typeof t!="string")throw new TypeError("[@octokit/webhooks-methods] eventPayload must be a string");let n=ZDi.Buffer.from(r),i=ZDi.Buffer.from(await $0r(e,t));return n.length!==i.length?!1:(0,eIa.timingSafeEqual)(n,i)}async function tIa(e,t,r,n){if(await bDt(e,t,r))return!0;if(n!==void 0)for(let o of n){let s=await bDt(o,t,r);if(s)return s}return!1}var XEa,eIa,ZDi,ZEa,eRi=re(()=>{"use strict";XEa=require("crypto"),eIa=require("crypto"),ZDi=require("buffer"),ZEa="5.1.1";$0r.VERSION=ZEa;bDt.VERSION=ZEa});function tRi(e,t,r){e.hooks[t]||(e.hooks[t]=[]),e.hooks[t].push(r)}function oIa(e,t,r){if(Array.isArray(t)){t.forEach(n=>oIa(e,n,r));return}if(["*","error"].includes(t)){let n=t==="*"?"any":t,i=`Using the "${t}" event with the regular Webhooks.on() function is not supported. Please use the Webhooks.on${n.charAt(0).toUpperCase()+n.slice(1)}() method instead`;throw new Error(i)}Thf.includes(t)||e.log.warn(`"${t}" is not a known webhook name (https://developer.github.com/v3/activity/events/types/)`),tRi(e,t,r)}function Dhf(e,t){tRi(e,"*",t)}function Rhf(e,t){tRi(e,"error",t)}function rIa(e,t){let r;try{r=e(t)}catch(n){console.log('FATAL: Error occurred in "error" event handler'),console.log(n)}r&&r.catch&&r.catch(n=>{console.log('FATAL: Error occurred in "error" event handler'),console.log(n)})}function Fhf(e,t,r){let n=[e.hooks[r],e.hooks["*"]];return t&&n.unshift(e.hooks[`${r}.${t}`]),[].concat(...n.filter(Boolean))}function jhf(e,t){let r=e.hooks.error||[];if(t instanceof Error){let s=Object.assign(new AggregateError([t],t.message),{event:t});return r.forEach(a=>rIa(a,s)),Promise.reject(s)}if(!t||!t.name){let s=new Error("Event name not passed");throw new AggregateError([s],s.message)}if(!t.payload){let s=new Error("Event name not passed");throw new AggregateError([s],s.message)}let n=Fhf(e,"action"in t.payload?t.payload.action:null,t.name);if(n.length===0)return Promise.resolve();let i=[],o=n.map(s=>{let a=Promise.resolve(t);return e.transform&&(a=a.then(e.transform)),a.then(u=>s(u)).catch(u=>i.push(Object.assign(u,{event:t})))});return Promise.all(o).then(()=>{if(i.length===0)return;let s=new AggregateError(i,i.map(a=>a.message).join(`
548
- `));throw Object.assign(s,{event:t}),r.forEach(a=>rIa(a,s)),s})}function sIa(e,t,r){if(Array.isArray(t)){t.forEach(n=>sIa(e,n,r));return}if(e.hooks[t]){for(let n=e.hooks[t].length-1;n>=0;n--)if(e.hooks[t][n]===r){e.hooks[t].splice(n,1);return}}}function Qhf(e){let t={hooks:{},log:iIa(e&&e.log)};return e&&e.transform&&(t.transform=e.transform),{on:oIa.bind(null,t),onAny:Dhf.bind(null,t),onError:Rhf.bind(null,t),removeListener:sIa.bind(null,t),receive:jhf.bind(null,t)}}async function Nhf(e,t){if(!await tIa(e.secret,t.payload,t.signature,e.additionalSecrets).catch(()=>!1)){let i=new Error("[@octokit/webhooks] signature does not match event payload and secret");return e.eventHandler.receive(Object.assign(i,{event:t,status:400}))}let n;try{n=JSON.parse(t.payload)}catch(i){throw i.message="Invalid JSON",i.status=400,new AggregateError([i],i.message)}return e.eventHandler.receive({id:t.id,name:t.name,payload:n})}var iIa,Thf,nIa,xky,aIa,uIa=re(()=>{"use strict";eRi();eRi();iIa=(e={})=>(typeof e.debug!="function"&&(e.debug=()=>{}),typeof e.info!="function"&&(e.info=()=>{}),typeof e.warn!="function"&&(e.warn=console.warn.bind(console)),typeof e.error!="function"&&(e.error=console.error.bind(console)),e),Thf=["branch_protection_configuration","branch_protection_configuration.disabled","branch_protection_configuration.enabled","branch_protection_rule","branch_protection_rule.created","branch_protection_rule.deleted","branch_protection_rule.edited","check_run","check_run.completed","check_run.created","check_run.requested_action","check_run.rerequested","check_suite","check_suite.completed","check_suite.requested","check_suite.rerequested","code_scanning_alert","code_scanning_alert.appeared_in_branch","code_scanning_alert.closed_by_user","code_scanning_alert.created","code_scanning_alert.fixed","code_scanning_alert.reopened","code_scanning_alert.reopened_by_user","commit_comment","commit_comment.created","create","custom_property","custom_property.created","custom_property.deleted","custom_property.promote_to_enterprise","custom_property.updated","custom_property_values","custom_property_values.updated","delete","dependabot_alert","dependabot_alert.auto_dismissed","dependabot_alert.auto_reopened","dependabot_alert.created","dependabot_alert.dismissed","dependabot_alert.fixed","dependabot_alert.reintroduced","dependabot_alert.reopened","deploy_key","deploy_key.created","deploy_key.deleted","deployment","deployment.created","deployment_protection_rule","deployment_protection_rule.requested","deployment_review","deployment_review.approved","deployment_review.rejected","deployment_review.requested","deployment_status","deployment_status.created","discussion","discussion.answered","discussion.category_changed","discussion.closed","discussion.created","discussion.deleted","discussion.edited","discussion.labeled","discussion.locked","discussion.pinned","discussion.reopened","discussion.transferred","discussion.unanswered","discussion.unlabeled","discussion.unlocked","discussion.unpinned","discussion_comment","discussion_comment.created","discussion_comment.deleted","discussion_comment.edited","fork","github_app_authorization","github_app_authorization.revoked","gollum","installation","installation.created","installation.deleted","installation.new_permissions_accepted","installation.suspend","installation.unsuspend","installation_repositories","installation_repositories.added","installation_repositories.removed","installation_target","installation_target.renamed","issue_comment","issue_comment.created","issue_comment.deleted","issue_comment.edited","issues","issues.assigned","issues.closed","issues.deleted","issues.demilestoned","issues.edited","issues.labeled","issues.locked","issues.milestoned","issues.opened","issues.pinned","issues.reopened","issues.transferred","issues.typed","issues.unassigned","issues.unlabeled","issues.unlocked","issues.unpinned","issues.untyped","label","label.created","label.deleted","label.edited","marketplace_purchase","marketplace_purchase.cancelled","marketplace_purchase.changed","marketplace_purchase.pending_change","marketplace_purchase.pending_change_cancelled","marketplace_purchase.purchased","member","member.added","member.edited","member.removed","membership","membership.added","membership.removed","merge_group","merge_group.checks_requested","merge_group.destroyed","meta","meta.deleted","milestone","milestone.closed","milestone.created","milestone.deleted","milestone.edited","milestone.opened","org_block","org_block.blocked","org_block.unblocked","organization","organization.deleted","organization.member_added","organization.member_invited","organization.member_removed","organization.renamed","package","package.published","package.updated","page_build","personal_access_token_request","personal_access_token_request.approved","personal_access_token_request.cancelled","personal_access_token_request.created","personal_access_token_request.denied","ping","project","project.closed","project.created","project.deleted","project.edited","project.reopened","project_card","project_card.converted","project_card.created","project_card.deleted","project_card.edited","project_card.moved","project_column","project_column.created","project_column.deleted","project_column.edited","project_column.moved","projects_v2","projects_v2.closed","projects_v2.created","projects_v2.deleted","projects_v2.edited","projects_v2.reopened","projects_v2_item","projects_v2_item.archived","projects_v2_item.converted","projects_v2_item.created","projects_v2_item.deleted","projects_v2_item.edited","projects_v2_item.reordered","projects_v2_item.restored","projects_v2_status_update","projects_v2_status_update.created","projects_v2_status_update.deleted","projects_v2_status_update.edited","public","pull_request","pull_request.assigned","pull_request.auto_merge_disabled","pull_request.auto_merge_enabled","pull_request.closed","pull_request.converted_to_draft","pull_request.demilestoned","pull_request.dequeued","pull_request.edited","pull_request.enqueued","pull_request.labeled","pull_request.locked","pull_request.milestoned","pull_request.opened","pull_request.ready_for_review","pull_request.reopened","pull_request.review_request_removed","pull_request.review_requested","pull_request.synchronize","pull_request.unassigned","pull_request.unlabeled","pull_request.unlocked","pull_request_review","pull_request_review.dismissed","pull_request_review.edited","pull_request_review.submitted","pull_request_review_comment","pull_request_review_comment.created","pull_request_review_comment.deleted","pull_request_review_comment.edited","pull_request_review_thread","pull_request_review_thread.resolved","pull_request_review_thread.unresolved","push","registry_package","registry_package.published","registry_package.updated","release","release.created","release.deleted","release.edited","release.prereleased","release.published","release.released","release.unpublished","repository","repository.archived","repository.created","repository.deleted","repository.edited","repository.privatized","repository.publicized","repository.renamed","repository.transferred","repository.unarchived","repository_advisory","repository_advisory.published","repository_advisory.reported","repository_dispatch","repository_dispatch.sample.collected","repository_import","repository_ruleset","repository_ruleset.created","repository_ruleset.deleted","repository_ruleset.edited","repository_vulnerability_alert","repository_vulnerability_alert.create","repository_vulnerability_alert.dismiss","repository_vulnerability_alert.reopen","repository_vulnerability_alert.resolve","secret_scanning_alert","secret_scanning_alert.created","secret_scanning_alert.publicly_leaked","secret_scanning_alert.reopened","secret_scanning_alert.resolved","secret_scanning_alert.validated","secret_scanning_alert_location","secret_scanning_alert_location.created","secret_scanning_scan","secret_scanning_scan.completed","security_advisory","security_advisory.published","security_advisory.updated","security_advisory.withdrawn","security_and_analysis","sponsorship","sponsorship.cancelled","sponsorship.created","sponsorship.edited","sponsorship.pending_cancellation","sponsorship.pending_tier_change","sponsorship.tier_changed","star","star.created","star.deleted","status","sub_issues","sub_issues.parent_issue_added","sub_issues.parent_issue_removed","sub_issues.sub_issue_added","sub_issues.sub_issue_removed","team","team.added_to_repository","team.created","team.deleted","team.edited","team.removed_from_repository","team_add","watch","watch.started","workflow_dispatch","workflow_job","workflow_job.completed","workflow_job.in_progress","workflow_job.queued","workflow_job.waiting","workflow_run","workflow_run.completed","workflow_run.in_progress","workflow_run.requested"];nIa=new TextDecoder("utf-8",{fatal:!1}),xky=nIa.decode.bind(nIa),aIa=class{sign;verify;on;onAny;onError;removeListener;receive;verifyAndReceive;constructor(e){if(!e||!e.secret)throw new Error("[@octokit/webhooks] options.secret required");let t={eventHandler:Qhf(e),secret:e.secret,additionalSecrets:e.additionalSecrets,hooks:{},log:iIa(e.log)};this.sign=$0r.bind(null,e.secret),this.verify=bDt.bind(null,e.secret),this.on=t.eventHandler.on,this.onAny=t.eventHandler.onAny,this.onError=t.eventHandler.onError,this.removeListener=t.eventHandler.removeListener,this.receive=t.eventHandler.receive,this.verifyAndReceive=Nhf.bind(null,t)}}});function Mhf(e,t){return new aIa({secret:t.secret,transform:async r=>{if(!("installation"in r.payload)||typeof r.payload.installation!="object"){let o=new e.constructor({authStrategy:ake,auth:{reason:'"installation" key missing in webhook event payload'}});return{...r,octokit:o}}let n=r.payload.installation.id,i=await e.auth({type:"installation",installationId:n,factory(o){return new o.octokit.constructor({...o.octokitOptions,authStrategy:jYe,auth:{...o,installationId:n}})}});return i.hook.before("request",o=>{o.headers["x-github-delivery"]=r.id}),{...r,octokit:i}}})}async function cIa(e,t){return e.octokit.auth({type:"installation",installationId:t,factory(r){let n={...r.octokitOptions,authStrategy:jYe,auth:{...r,installationId:t}};return new r.octokit.constructor(n)}})}function Lhf(e){return Object.assign(Uhf.bind(null,e),{iterator:lIa.bind(null,e)})}async function Uhf(e,t){let r=lIa(e)[Symbol.asyncIterator](),n=await r.next();for(;!n.done;)await t(n.value),n=await r.next()}function lIa(e){return{async*[Symbol.asyncIterator](){let t=T0r.iterator(e.octokit,"GET /app/installations");for await(let{data:r}of t)for(let n of r)yield{octokit:await cIa(e,n.id),installation:n}}}}function zhf(e){return Object.assign(Vhf.bind(null,e),{iterator:pIa.bind(null,e)})}async function Vhf(e,t,r){let n=pIa(e,r?t:void 0)[Symbol.asyncIterator](),i=await n.next();for(;!i.done;)r?await r(i.value):await t(i.value),i=await n.next()}function qhf(e,t){return{async*[Symbol.asyncIterator](){yield{octokit:await e.getInstallationOctokit(t)}}}}function pIa(e,t){return{async*[Symbol.asyncIterator](){let r=t?qhf(e,t.installationId):e.eachInstallation.iterator();for await(let{octokit:n}of r){let i=T0r.iterator(n,"GET /installation/repositories");for await(let{data:o}of i)for(let s of o)yield{octokit:n,repository:s}}}}}function Ghf(e){let t;return async function(n={}){t||(t=Whf(e));let i=await t,o=new URL(i);return n.target_id!==void 0&&(o.pathname+="/permissions",o.searchParams.append("target_id",n.target_id.toFixed())),n.state!==void 0&&o.searchParams.append("state",n.state),o.href}}async function Whf(e){let{data:t}=await e.octokit.request("GET /app");if(!t)throw new Error("[@octokit/app] unable to fetch metadata for app");return`${t.html_url}/installations/new`}var khf,fIa,dIa=re(()=>{"use strict";P0r();q0r();XDi();q0r();G0r();uIa();D0r();q0r();D0r();khf="15.1.6";fIa=class{static VERSION=khf;static defaults(e){return class extends this{constructor(...r){super({...e,...r[0]})}}}octokit;webhooks;oauth;getInstallationOctokit;eachInstallation;eachRepository;getInstallationUrl;log;constructor(e){let t=e.Octokit||mwe,r=Object.assign({appId:e.appId,privateKey:e.privateKey},e.oauth?{clientId:e.oauth.clientId,clientSecret:e.oauth.clientSecret}:{}),n={authStrategy:jYe,auth:r};"log"in e&&typeof e.log<"u"&&(n.log=e.log),this.octokit=new t(n),this.log=Object.assign({debug:()=>{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},e.log),e.webhooks?this.webhooks=Mhf(this.octokit,e.webhooks):Object.defineProperty(this,"webhooks",{get(){throw new Error("[@octokit/app] webhooks option not set")}}),e.oauth?this.oauth=new W0r({...e.oauth,clientType:"github-app",Octokit:t}):Object.defineProperty(this,"oauth",{get(){throw new Error("[@octokit/app] oauth.clientId / oauth.clientSecret options are not set")}}),this.getInstallationOctokit=cIa.bind(null,this),this.eachInstallation=Lhf(this),this.eachRepository=zhf(this),this.getInstallationUrl=Ghf(this)}}});function Hhf(e,t,r){if(r.log.warn(`Request quota exhausted for request ${t.method} ${t.url}`),t.request.retryCount===0)return r.log.info(`Retrying after ${e} seconds!`),!0}function Khf(e,t,r){if(r.log.warn(`SecondaryRateLimit detected for request ${t.method} ${t.url}`),t.request.retryCount===0)return r.log.info(`Retrying after ${e} seconds!`),!0}var $hf,vDt,Kky,Jky,mIa=re(()=>{"use strict";P0r();D0r();oEa();lEa();dEa();AEa();dIa();XDi();$hf="0.0.0-development",vDt=mwe.plugin(MDi,jDi,iEa,VDi,R0r).defaults({userAgent:`octokit.js/${$hf}`,throttle:{onRateLimit:Hhf,onSecondaryRateLimit:Khf}});Kky=fIa.defaults({Octokit:vDt}),Jky=W0r.defaults({Octokit:vDt})});async function H0r(e,t){let{owner:r,repo:n}=y2(e),i=t?.authToken??process.env.GITHUB_TOKEN;return(await(i!=null?new vDt({auth:i}):new vDt).rest.repos.listTags({owner:r,repo:n,per_page:1})).data?.[0]?.name}var hIa=re(()=>{"use strict";mIa();w0r()});async function gIa(e,t,r){try{await e.fetch(I0r,r),console.log(`Branch (${r}) exists, checking out`),await e.checkout(r),await e.merge(["-X","theirs",t])}catch(n){console.log(`Branch (${r}) does not exist, create and checkout`,n),await e.checkoutBranch(r,t)}}var AIa=re(()=>{"use strict";lDt()});var EDt={};X(EDt,{ClonedRepository:()=>DYe,cloneRepository:()=>C0r,createOrUpdatePullRequest:()=>mva,deleteBranch:()=>gva,getLatestTag:()=>H0r,getOrUpdateBranch:()=>gIa,parseRepository:()=>y2});var Dhe=re(()=>{"use strict";_Di();dva();hva();Ava();hIa();AIa();w0r()});var lRi=g(lke=>{"use strict";lke.parse=lke.decode=ngf;lke.stringify=lke.encode=kIa;lke.safe=kYe;lke.unsafe=evr;var cRi=typeof process<"u"&&process.platform==="win32"?`\r
548
+ `));throw Object.assign(s,{event:t}),r.forEach(a=>rIa(a,s)),s})}function sIa(e,t,r){if(Array.isArray(t)){t.forEach(n=>sIa(e,n,r));return}if(e.hooks[t]){for(let n=e.hooks[t].length-1;n>=0;n--)if(e.hooks[t][n]===r){e.hooks[t].splice(n,1);return}}}function Qhf(e){let t={hooks:{},log:iIa(e&&e.log)};return e&&e.transform&&(t.transform=e.transform),{on:oIa.bind(null,t),onAny:Dhf.bind(null,t),onError:Rhf.bind(null,t),removeListener:sIa.bind(null,t),receive:jhf.bind(null,t)}}async function Nhf(e,t){if(!await tIa(e.secret,t.payload,t.signature,e.additionalSecrets).catch(()=>!1)){let i=new Error("[@octokit/webhooks] signature does not match event payload and secret");return e.eventHandler.receive(Object.assign(i,{event:t,status:400}))}let n;try{n=JSON.parse(t.payload)}catch(i){throw i.message="Invalid JSON",i.status=400,new AggregateError([i],i.message)}return e.eventHandler.receive({id:t.id,name:t.name,payload:n})}var iIa,Thf,nIa,xky,aIa,uIa=re(()=>{"use strict";eRi();eRi();iIa=(e={})=>(typeof e.debug!="function"&&(e.debug=()=>{}),typeof e.info!="function"&&(e.info=()=>{}),typeof e.warn!="function"&&(e.warn=console.warn.bind(console)),typeof e.error!="function"&&(e.error=console.error.bind(console)),e),Thf=["branch_protection_configuration","branch_protection_configuration.disabled","branch_protection_configuration.enabled","branch_protection_rule","branch_protection_rule.created","branch_protection_rule.deleted","branch_protection_rule.edited","check_run","check_run.completed","check_run.created","check_run.requested_action","check_run.rerequested","check_suite","check_suite.completed","check_suite.requested","check_suite.rerequested","code_scanning_alert","code_scanning_alert.appeared_in_branch","code_scanning_alert.closed_by_user","code_scanning_alert.created","code_scanning_alert.fixed","code_scanning_alert.reopened","code_scanning_alert.reopened_by_user","commit_comment","commit_comment.created","create","custom_property","custom_property.created","custom_property.deleted","custom_property.promote_to_enterprise","custom_property.updated","custom_property_values","custom_property_values.updated","delete","dependabot_alert","dependabot_alert.auto_dismissed","dependabot_alert.auto_reopened","dependabot_alert.created","dependabot_alert.dismissed","dependabot_alert.fixed","dependabot_alert.reintroduced","dependabot_alert.reopened","deploy_key","deploy_key.created","deploy_key.deleted","deployment","deployment.created","deployment_protection_rule","deployment_protection_rule.requested","deployment_review","deployment_review.approved","deployment_review.rejected","deployment_review.requested","deployment_status","deployment_status.created","discussion","discussion.answered","discussion.category_changed","discussion.closed","discussion.created","discussion.deleted","discussion.edited","discussion.labeled","discussion.locked","discussion.pinned","discussion.reopened","discussion.transferred","discussion.unanswered","discussion.unlabeled","discussion.unlocked","discussion.unpinned","discussion_comment","discussion_comment.created","discussion_comment.deleted","discussion_comment.edited","fork","github_app_authorization","github_app_authorization.revoked","gollum","installation","installation.created","installation.deleted","installation.new_permissions_accepted","installation.suspend","installation.unsuspend","installation_repositories","installation_repositories.added","installation_repositories.removed","installation_target","installation_target.renamed","issue_comment","issue_comment.created","issue_comment.deleted","issue_comment.edited","issues","issues.assigned","issues.closed","issues.deleted","issues.demilestoned","issues.edited","issues.labeled","issues.locked","issues.milestoned","issues.opened","issues.pinned","issues.reopened","issues.transferred","issues.typed","issues.unassigned","issues.unlabeled","issues.unlocked","issues.unpinned","issues.untyped","label","label.created","label.deleted","label.edited","marketplace_purchase","marketplace_purchase.cancelled","marketplace_purchase.changed","marketplace_purchase.pending_change","marketplace_purchase.pending_change_cancelled","marketplace_purchase.purchased","member","member.added","member.edited","member.removed","membership","membership.added","membership.removed","merge_group","merge_group.checks_requested","merge_group.destroyed","meta","meta.deleted","milestone","milestone.closed","milestone.created","milestone.deleted","milestone.edited","milestone.opened","org_block","org_block.blocked","org_block.unblocked","organization","organization.deleted","organization.member_added","organization.member_invited","organization.member_removed","organization.renamed","package","package.published","package.updated","page_build","personal_access_token_request","personal_access_token_request.approved","personal_access_token_request.cancelled","personal_access_token_request.created","personal_access_token_request.denied","ping","project","project.closed","project.created","project.deleted","project.edited","project.reopened","project_card","project_card.converted","project_card.created","project_card.deleted","project_card.edited","project_card.moved","project_column","project_column.created","project_column.deleted","project_column.edited","project_column.moved","projects_v2","projects_v2.closed","projects_v2.created","projects_v2.deleted","projects_v2.edited","projects_v2.reopened","projects_v2_item","projects_v2_item.archived","projects_v2_item.converted","projects_v2_item.created","projects_v2_item.deleted","projects_v2_item.edited","projects_v2_item.reordered","projects_v2_item.restored","projects_v2_status_update","projects_v2_status_update.created","projects_v2_status_update.deleted","projects_v2_status_update.edited","public","pull_request","pull_request.assigned","pull_request.auto_merge_disabled","pull_request.auto_merge_enabled","pull_request.closed","pull_request.converted_to_draft","pull_request.demilestoned","pull_request.dequeued","pull_request.edited","pull_request.enqueued","pull_request.labeled","pull_request.locked","pull_request.milestoned","pull_request.opened","pull_request.ready_for_review","pull_request.reopened","pull_request.review_request_removed","pull_request.review_requested","pull_request.synchronize","pull_request.unassigned","pull_request.unlabeled","pull_request.unlocked","pull_request_review","pull_request_review.dismissed","pull_request_review.edited","pull_request_review.submitted","pull_request_review_comment","pull_request_review_comment.created","pull_request_review_comment.deleted","pull_request_review_comment.edited","pull_request_review_thread","pull_request_review_thread.resolved","pull_request_review_thread.unresolved","push","registry_package","registry_package.published","registry_package.updated","release","release.created","release.deleted","release.edited","release.prereleased","release.published","release.released","release.unpublished","repository","repository.archived","repository.created","repository.deleted","repository.edited","repository.privatized","repository.publicized","repository.renamed","repository.transferred","repository.unarchived","repository_advisory","repository_advisory.published","repository_advisory.reported","repository_dispatch","repository_dispatch.sample.collected","repository_import","repository_ruleset","repository_ruleset.created","repository_ruleset.deleted","repository_ruleset.edited","repository_vulnerability_alert","repository_vulnerability_alert.create","repository_vulnerability_alert.dismiss","repository_vulnerability_alert.reopen","repository_vulnerability_alert.resolve","secret_scanning_alert","secret_scanning_alert.created","secret_scanning_alert.publicly_leaked","secret_scanning_alert.reopened","secret_scanning_alert.resolved","secret_scanning_alert.validated","secret_scanning_alert_location","secret_scanning_alert_location.created","secret_scanning_scan","secret_scanning_scan.completed","security_advisory","security_advisory.published","security_advisory.updated","security_advisory.withdrawn","security_and_analysis","sponsorship","sponsorship.cancelled","sponsorship.created","sponsorship.edited","sponsorship.pending_cancellation","sponsorship.pending_tier_change","sponsorship.tier_changed","star","star.created","star.deleted","status","sub_issues","sub_issues.parent_issue_added","sub_issues.parent_issue_removed","sub_issues.sub_issue_added","sub_issues.sub_issue_removed","team","team.added_to_repository","team.created","team.deleted","team.edited","team.removed_from_repository","team_add","watch","watch.started","workflow_dispatch","workflow_job","workflow_job.completed","workflow_job.in_progress","workflow_job.queued","workflow_job.waiting","workflow_run","workflow_run.completed","workflow_run.in_progress","workflow_run.requested"];nIa=new TextDecoder("utf-8",{fatal:!1}),xky=nIa.decode.bind(nIa),aIa=class{sign;verify;on;onAny;onError;removeListener;receive;verifyAndReceive;constructor(e){if(!e||!e.secret)throw new Error("[@octokit/webhooks] options.secret required");let t={eventHandler:Qhf(e),secret:e.secret,additionalSecrets:e.additionalSecrets,hooks:{},log:iIa(e.log)};this.sign=$0r.bind(null,e.secret),this.verify=bDt.bind(null,e.secret),this.on=t.eventHandler.on,this.onAny=t.eventHandler.onAny,this.onError=t.eventHandler.onError,this.removeListener=t.eventHandler.removeListener,this.receive=t.eventHandler.receive,this.verifyAndReceive=Nhf.bind(null,t)}}});function Mhf(e,t){return new aIa({secret:t.secret,transform:async r=>{if(!("installation"in r.payload)||typeof r.payload.installation!="object"){let o=new e.constructor({authStrategy:ake,auth:{reason:'"installation" key missing in webhook event payload'}});return{...r,octokit:o}}let n=r.payload.installation.id,i=await e.auth({type:"installation",installationId:n,factory(o){return new o.octokit.constructor({...o.octokitOptions,authStrategy:jYe,auth:{...o,installationId:n}})}});return i.hook.before("request",o=>{o.headers["x-github-delivery"]=r.id}),{...r,octokit:i}}})}async function cIa(e,t){return e.octokit.auth({type:"installation",installationId:t,factory(r){let n={...r.octokitOptions,authStrategy:jYe,auth:{...r,installationId:t}};return new r.octokit.constructor(n)}})}function Lhf(e){return Object.assign(Uhf.bind(null,e),{iterator:lIa.bind(null,e)})}async function Uhf(e,t){let r=lIa(e)[Symbol.asyncIterator](),n=await r.next();for(;!n.done;)await t(n.value),n=await r.next()}function lIa(e){return{async*[Symbol.asyncIterator](){let t=T0r.iterator(e.octokit,"GET /app/installations");for await(let{data:r}of t)for(let n of r)yield{octokit:await cIa(e,n.id),installation:n}}}}function zhf(e){return Object.assign(Vhf.bind(null,e),{iterator:pIa.bind(null,e)})}async function Vhf(e,t,r){let n=pIa(e,r?t:void 0)[Symbol.asyncIterator](),i=await n.next();for(;!i.done;)r?await r(i.value):await t(i.value),i=await n.next()}function qhf(e,t){return{async*[Symbol.asyncIterator](){yield{octokit:await e.getInstallationOctokit(t)}}}}function pIa(e,t){return{async*[Symbol.asyncIterator](){let r=t?qhf(e,t.installationId):e.eachInstallation.iterator();for await(let{octokit:n}of r){let i=T0r.iterator(n,"GET /installation/repositories");for await(let{data:o}of i)for(let s of o)yield{octokit:n,repository:s}}}}}function Ghf(e){let t;return async function(n={}){t||(t=Whf(e));let i=await t,o=new URL(i);return n.target_id!==void 0&&(o.pathname+="/permissions",o.searchParams.append("target_id",n.target_id.toFixed())),n.state!==void 0&&o.searchParams.append("state",n.state),o.href}}async function Whf(e){let{data:t}=await e.octokit.request("GET /app");if(!t)throw new Error("[@octokit/app] unable to fetch metadata for app");return`${t.html_url}/installations/new`}var khf,fIa,dIa=re(()=>{"use strict";P0r();q0r();XDi();q0r();G0r();uIa();D0r();q0r();D0r();khf="15.1.6";fIa=class{static VERSION=khf;static defaults(e){return class extends this{constructor(...r){super({...e,...r[0]})}}}octokit;webhooks;oauth;getInstallationOctokit;eachInstallation;eachRepository;getInstallationUrl;log;constructor(e){let t=e.Octokit||mwe,r=Object.assign({appId:e.appId,privateKey:e.privateKey},e.oauth?{clientId:e.oauth.clientId,clientSecret:e.oauth.clientSecret}:{}),n={authStrategy:jYe,auth:r};"log"in e&&typeof e.log<"u"&&(n.log=e.log),this.octokit=new t(n),this.log=Object.assign({debug:()=>{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},e.log),e.webhooks?this.webhooks=Mhf(this.octokit,e.webhooks):Object.defineProperty(this,"webhooks",{get(){throw new Error("[@octokit/app] webhooks option not set")}}),e.oauth?this.oauth=new W0r({...e.oauth,clientType:"github-app",Octokit:t}):Object.defineProperty(this,"oauth",{get(){throw new Error("[@octokit/app] oauth.clientId / oauth.clientSecret options are not set")}}),this.getInstallationOctokit=cIa.bind(null,this),this.eachInstallation=Lhf(this),this.eachRepository=zhf(this),this.getInstallationUrl=Ghf(this)}}});function Hhf(e,t,r){if(r.log.warn(`Request quota exhausted for request ${t.method} ${t.url}`),t.request.retryCount===0)return r.log.info(`Retrying after ${e} seconds!`),!0}function Khf(e,t,r){if(r.log.warn(`SecondaryRateLimit detected for request ${t.method} ${t.url}`),t.request.retryCount===0)return r.log.info(`Retrying after ${e} seconds!`),!0}var $hf,vDt,Kky,Jky,mIa=re(()=>{"use strict";P0r();D0r();oEa();lEa();dEa();AEa();dIa();XDi();$hf="0.0.0-development",vDt=mwe.plugin(MDi,jDi,iEa,VDi,R0r).defaults({userAgent:`octokit.js/${$hf}`,throttle:{onRateLimit:Hhf,onSecondaryRateLimit:Khf}});Kky=fIa.defaults({Octokit:vDt}),Jky=W0r.defaults({Octokit:vDt})});async function H0r(e,t){let{owner:r,repo:n}=y2(e),i=t?.authToken??process.env.GITHUB_TOKEN,o=i!=null?new vDt({auth:i}):new vDt;try{return(await o.rest.repos.getLatestRelease({owner:r,repo:n})).data.tag_name}catch{return}}var hIa=re(()=>{"use strict";mIa();w0r()});async function gIa(e,t,r){try{await e.fetch(I0r,r),console.log(`Branch (${r}) exists, checking out`),await e.checkout(r),await e.merge(["-X","theirs",t])}catch(n){console.log(`Branch (${r}) does not exist, create and checkout`,n),await e.checkoutBranch(r,t)}}var AIa=re(()=>{"use strict";lDt()});var EDt={};X(EDt,{ClonedRepository:()=>DYe,cloneRepository:()=>C0r,createOrUpdatePullRequest:()=>mva,deleteBranch:()=>gva,getLatestRelease:()=>H0r,getOrUpdateBranch:()=>gIa,parseRepository:()=>y2});var Dhe=re(()=>{"use strict";_Di();dva();hva();Ava();hIa();AIa();w0r()});var lRi=g(lke=>{"use strict";lke.parse=lke.decode=ngf;lke.stringify=lke.encode=kIa;lke.safe=kYe;lke.unsafe=evr;var cRi=typeof process<"u"&&process.platform==="win32"?`\r
549
549
  `:`
550
550
  `;function kIa(e,t){var r=[],n="";typeof t=="string"?t={section:t,whitespace:!1}:(t=t||{},t.whitespace=t.whitespace===!0);var i=t.whitespace?" = ":"=";return Object.keys(e).forEach(function(o,s,a){var u=e[o];u&&Array.isArray(u)?u.forEach(function(c){n+=kYe(o+"[]")+i+kYe(c)+`
551
551
  `}):u&&typeof u=="object"?r.push(o):n+=kYe(o)+i+kYe(u)+cRi}),t.section&&n.length&&(n="["+kYe(t.section)+"]"+cRi+n),r.forEach(function(o,s,a){var u=MIa(o).join("\\."),c=(t.section?t.section+".":"")+u,l=kIa(e[o],{section:c,whitespace:t.whitespace});n.length&&l.length&&(n+=cRi),n+=l}),n}function MIa(e){return e.replace(/\1/g,"LITERAL\\1LITERAL").replace(/\\\./g,"").split(/\./).map(function(t){return t.replace(/\1/g,"\\.").replace(/\2LITERAL\\1LITERAL\2/g,"")})}function ngf(e){var t={},r=t,n=null,i=/^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i,o=e.split(/[\r\n]+/g);return o.forEach(function(s,a,u){if(!(!s||s.match(/^\s*[;#]/))){var c=s.match(i);if(c){if(c[1]!==void 0){if(n=evr(c[1]),n==="__proto__"){r={};return}r=t[n]=t[n]||{};return}var l=evr(c[2]);if(l!=="__proto__"){var p=c[3]?evr(c[4]):!0;switch(p){case"true":case"false":case"null":p=JSON.parse(p)}if(l.length>2&&l.slice(-2)==="[]"){if(l=l.substring(0,l.length-2),l==="__proto__")return;r[l]?Array.isArray(r[l])||(r[l]=[r[l]]):r[l]=[]}Array.isArray(r[l])?r[l].push(p):r[l]=p}}}}),Object.keys(t).filter(function(s,a,u){if(!t[s]||typeof t[s]!="object"||Array.isArray(t[s]))return!1;var c=MIa(s),l=t,p=c.pop(),d=p.replace(/\\\./g,".");return c.forEach(function(f,m,h){f!=="__proto__"&&((!l[f]||typeof l[f]!="object")&&(l[f]={}),l=l[f])}),l===t&&d===p?!1:(l[d]=t[s],!0)}).forEach(function(s,a,u){delete t[s]}),t}function LIa(e){return e.charAt(0)==='"'&&e.slice(-1)==='"'||e.charAt(0)==="'"&&e.slice(-1)==="'"}function kYe(e){return typeof e!="string"||e.match(/[=\r\n]/)||e.match(/^\[/)||e.length>1&&LIa(e)||e!==e.trim()?JSON.stringify(e):e.replace(/;/g,"\\;").replace(/#/g,"\\#")}function evr(e,t){if(e=(e||"").trim(),LIa(e)){e.charAt(0)==="'"&&(e=e.substr(1,e.length-2));try{e=JSON.parse(e)}catch{}}else{for(var r=!1,n="",i=0,o=e.length;i<o;i++){var s=e.charAt(i);if(r)"\\;#".indexOf(s)!==-1?n+=s:n+="\\"+s,r=!1;else{if(";#".indexOf(s)!==-1)break;s==="\\"?r=!0:n+=s}}return r&&(n+="\\"),n.trim()}return e}});var VIa=g((KMy,zIa)=>{"use strict";var pRi=1,UIa=2;function igf(){return""}function ogf(e,t,r){return e.slice(t,r).replace(/\S/g," ")}zIa.exports=function(e,t){t=t||{};for(var r,n,i=!1,o=!1,s=0,a="",u=t.whitespace===!1?igf:ogf,c=0;c<e.length;c++){if(r=e[c],n=e[c+1],!o&&r==='"'){var l=e[c-1]==="\\"&&e[c-2]!=="\\";l||(i=!i)}if(!i){if(!o&&r+n==="//")a+=e.slice(s,c),s=c,o=pRi,c++;else if(o===pRi&&r+n===`\r
@@ -1442,7 +1442,7 @@ ${Uea.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&Pbi(th
1442
1442
  `+ZNe.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?ZNe.default.cyan(Jea(t,this.opt.mask)):ZNe.default.italic(ZNe.default.dim("[hidden]")):this.opt.mask?Jea(t,this.opt.mask):ZNe.default.italic(ZNe.default.dim("[input is hidden] "))}getSpinningValue(t){return this.getMaskedValue(t)}filterInput(t){return t||(this.opt.default==null?"":this.opt.default)}onEnd(t){this.status="answered",this.answer=t.value,this.render(),this.screen.done(),this.done(t.value)}onError(t){this.render(t.isValid)}onKeypress(){this.opt.default&&=void 0,this.render()}};var Zir=we(iw(),1);var Kta=we(p0i(),1),Yir=require("child_process"),cHe=require("fs"),Jir=we(require("path"),1),Jta=we(require("os"),1),Yta=require("crypto"),K0i=we($ta(),1);var $ir=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var VOt=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var Hir=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var Kir=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function Xir(e="",t,r){let n=new J0i(e,r);n.runAsync((i,o)=>{if(i)setImmediate(t,i,void 0);else try{n.cleanup(),setImmediate(t,void 0,o)}catch(s){setImmediate(t,s,void 0)}})}function Hta(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function C7p(e){let t=[],r="";for(let n=0;n<e.length;n++){let i=e.charAt(n);n>0&&i===" "&&e[n-1]!=="\\"&&r.length>0?(t.push(r),r=""):r=`${r}${i}`}return r.length>0&&t.push(r),t}var J0i=class{text="";tempFile;editor;lastExitStatus=0;fileOptions={};get temp_file(){return console.log("DEPRECATED: temp_file. Use tempFile moving forward."),this.tempFile}get last_exit_status(){return console.log("DEPRECATED: last_exit_status. Use lastExitStatus moving forward."),this.lastExitStatus}constructor(t="",r){this.text=t,r&&(this.fileOptions=r),this.determineEditor(),this.createTemporaryFile()}run(){return this.launchEditor(),this.readTemporaryFile(),this.text}runAsync(t){try{this.launchEditorAsync(()=>{try{this.readTemporaryFile(),setImmediate(t,void 0,this.text)}catch(r){setImmediate(t,r,void 0)}})}catch(r){setImmediate(t,r,void 0)}}cleanup(){this.removeTemporaryFile()}determineEditor(){let t=process.env.VISUAL?process.env.VISUAL:process.env.EDITOR?process.env.EDITOR:process.platform.startsWith("win")?"notepad":"vim",r=C7p(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??Jta.default.tmpdir(),r=(0,Yta.randomUUID)(),n=Hta(this.fileOptions.prefix),i=Hta(this.fileOptions.postfix),o=`${n}${r}${i}`,s=Jir.default.resolve(t,o),a=Jir.default.resolve(t)+Jir.default.sep;if(!s.startsWith(a))throw new Error("Resolved temporary file escaped the base directory");this.tempFile=s;let u={encoding:"utf8",flag:"wx"};Object.prototype.hasOwnProperty.call(this.fileOptions,"mode")&&(u.mode=this.fileOptions.mode),(0,cHe.writeFileSync)(this.tempFile,this.text,u)}catch(t){throw new $ir(t)}}readTemporaryFile(){try{let t=(0,cHe.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,Kta.detect)(t)??"utf8";K0i.default.encodingExists(r)||(r="utf8"),this.text=K0i.default.decode(t,r)}}catch(t){throw new Hir(t)}}removeTemporaryFile(){try{(0,cHe.unlinkSync)(this.tempFile)}catch(t){throw new Kir(t)}}launchEditor(){try{let t=(0,Yir.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new VOt(t)}}launchEditorAsync(t){try{(0,Yir.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new VOt(r)}}};var Xta=we(o2(),1);var qOt=class extends ow{_run(t){this.done=t,this.editorResult=new Xta.Subject;let r=cS(this.rl);this.lineSubscription=r.line.subscribe(this.startExternalEditor.bind(this));let n=this.opt.waitUserInput===void 0?!0:this.opt.waitUserInput,i=this.handleSubmitEvents(this.editorResult);return i.success.forEach(this.onEnd.bind(this)),i.error.forEach(this.onError.bind(this)),this.currentText=this.opt.default,this.opt.default=null,n?this.render():this.startExternalEditor(),this}render(t){let r="",n=this.getQuestion();n+=this.status==="answered"?Zir.default.dim("Received"):Zir.default.dim("Press <enter> to launch your preferred editor."),t&&(r=Zir.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),Xir(this.currentText,this.endExternalEditor.bind(this),{postfix:this.opt.postfix??".txt"})}endExternalEditor(t,r){this.rl.resume(),t?this.editorResult.error(t):this.editorResult.next(r)}onEnd(t){this.editorResult.unsubscribe(),this.lineSubscription.unsubscribe(),this.answer=t.value,this.status="answered",this.render(),this.screen.done(),this.done(this.answer)}onError(t){this.render(t.isValid)}};var nra=require("stream");var tra=we(require("readline"),1),rra=we(era(),1),n2e=class{constructor(t){this.rl||=tra.default.createInterface(x7p(t)),this.rl.resume(),this.onForceClose=this.onForceClose.bind(this),process.on("exit",this.onForceClose),this.rl.on("SIGINT",this.onForceClose)}onForceClose(){this.close(),process.kill(process.pid,"SIGINT"),console.log("")}close(){this.rl.removeListener("SIGINT",this.onForceClose),process.removeListener("exit",this.onForceClose),this.rl.output.unmute(),this.activePrompt&&typeof this.activePrompt.close=="function"&&this.activePrompt.close(),this.rl.output.end(),this.rl.pause(),this.rl.close()}};function x7p(e={}){e.skipTTYChecks=e.skipTTYChecks===void 0?!0:e.skipTTYChecks;let t=e.input||process.stdin;if(!e.skipTTYChecks&&!t.isTTY){let i=new Error("Prompts can not be meaningfully rendered in non-TTY environments");throw i.isTtyError=!0,i}let r=new rra.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var GOt=class extends n2e{constructor(t={}){super(t),this.log=new nra.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return OOt(this.rl,this.bottomBar.split(`
1443
1443
  `).length),this}updateBottomBar(t){return OOt(this.rl,1),this.rl.output.unmute(),this.clean(),this.bottomBar=t,this.render(),this.rl.output.mute(),this}writeLog(t){return this.rl.output.unmute(),this.clean(),this.rl.output.write(this.enforceLF(t.toString())),this.render(),this.rl.output.mute(),this}enforceLF(t){return/[\n\r]$/.test(t)?t:t+`
1444
1444
  `}write(t){let r=t.split(/\n/);this.height=r.length,this.rl.setPrompt(r.at(-1)),this.rl.output.rows===0&&this.rl.output.columns===0&&Eir(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var Bf=we(o2(),1),sra=we(K1t(),1);var eor=we(o2(),1),ira=we(K1t(),1),tor=function(e,t,r){return typeof e[t]!="function"?(0,eor.of)(e):(0,eor.from)((0,ira.default)(e[t])(r).then(n=>(e[t]=n,e)))};var ora={set:(e,t="",r)=>{let n=e;t.split(".").forEach((i,o,s)=>{i==="__proto__"||i==="constructor"||(o===s.length-1?n[i]=r:(!(i in n)||typeof n[i]!="object")&&(n[i]={}),n=n[i])})},get:(e,t="",r)=>{let n=o=>String.prototype.split.call(t,o).filter(Boolean).reduce((s,a)=>s!=null?s[a]:s,e),i=n(/[,[\]]+?/)||n(/[,.[\]]+?/);return i===void 0||i===e?r:i}},lHe=class extends n2e{constructor(t,r){super(r),this.prompts=t}run(t,r){this.answers=typeof r=="object"?{...r}:{};let n;return Array.isArray(t)?n=(0,Bf.from)(t):(0,Bf.isObservable)(t)?n=t:Object.values(t).every(i=>typeof i=="object"&&!Array.isArray(i)&&i!=null)?n=(0,Bf.from)(Object.entries(t).map(([i,o])=>({name:i,...o}))):n=(0,Bf.from)([t]),this.process=n.pipe((0,Bf.concatMap)(this.processQuestion.bind(this)),(0,Bf.publish)()),this.process.connect(),this.process.pipe((0,Bf.reduce)((i,o)=>(ora.set(i,o.name,o.answer),i),this.answers)).toPromise(Promise).then(this.onCompletion.bind(this),this.onError.bind(this))}onCompletion(){return this.close(),this.answers}onError(t){return this.close(),Promise.reject(t)}processQuestion(t){return t={...t},(0,Bf.defer)(()=>(0,Bf.of)(t).pipe((0,Bf.concatMap)(this.setDefaultType.bind(this)),(0,Bf.concatMap)(this.filterIfRunnable.bind(this)),(0,Bf.concatMap)(()=>tor(t,"message",this.answers)),(0,Bf.concatMap)(()=>tor(t,"default",this.answers)),(0,Bf.concatMap)(()=>tor(t,"choices",this.answers)),(0,Bf.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,Bf.defer)(()=>(0,Bf.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,Bf.defer)(()=>(0,Bf.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&ora.get(this.answers,t.name)!==void 0)return Bf.EMPTY;if(t.when===!1)return Bf.EMPTY;if(typeof t.when!="function")return(0,Bf.of)(t);let{answers:r}=this;return(0,Bf.defer)(()=>(0,Bf.from)((0,sra.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,Bf.filter)(n=>n!=null)))}};function ara(e){let t=function(r,n){let i;try{i=new lHe(t.prompts,e)}catch(s){return Promise.reject(s)}let o=i.run(r,n);return o.ui=i,o};return t.prompts={},t.registerPrompt=function(r,n){return t.prompts[r]=n,this},t.restoreDefaultPrompts=function(){this.registerPrompt("list",POt),this.registerPrompt("input",XNe),this.registerPrompt("number",TOt),this.registerPrompt("confirm",DOt),this.registerPrompt("rawlist",ROt),this.registerPrompt("expand",FOt),this.registerPrompt("checkbox",jOt),this.registerPrompt("password",QOt),this.registerPrompt("editor",qOt)},t.restoreDefaultPrompts(),t}var X0i=ara();function O7p(e,t){X0i.registerPrompt(e,t)}function B7p(){X0i.restoreDefaultPrompts()}var P7p={prompt:X0i,ui:{BottomBar:GOt,Prompt:lHe},createPromptModule:ara,registerPrompt:O7p,restoreDefaultPrompts:B7p,Separator:pF},Hp=P7p;var pHe=require("path");function cra(){let e=T7p();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function T7p(e=process.argv[1]?(0,pHe.dirname)(process.argv[1]):process.cwd(),t=pHe.sep==="\\"){let r=t?ura(e):e;return n=>{if(!n)return;let i=t?ura(n):n,{dir:o,base:s,ext:a}=pHe.posix.parse(i);(a===".js"||a===".mjs"||a===".cjs")&&(s=s.slice(0,-1*a.length));let u=decodeURIComponent(s);o||(o=".");let c=o.lastIndexOf("/node_modules");if(c>-1)return`${o.slice(c+14).replace(/\//g,".")}:${u}`;if(o.startsWith(r)){let l=o.slice(r.length+1).replace(/\//g,".");return l?`${l}:${u}`:u}return u}}function ura(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var Z0i=e=>{if("flags"in e){let t=lra(e.flags),r=pra(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,evi(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,D7p(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function D7p(e,t,r){return{key:e,enabled:typeof t=="string"?!0:t,variant:typeof t=="string"?t:void 0,reason:void 0,metadata:{id:void 0,version:void 0,payload:r?JSON.stringify(r):void 0,description:void 0}}}var lra=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,WOt(r)]).filter(([,t])=>t!==void 0)),pra=e=>{let t=e??{};return Object.fromEntries(Object.keys(t).filter(r=>{let n=t[r];return n.enabled&&n.metadata&&n.metadata.payload!==void 0}).map(r=>{let n=t[r].metadata?.payload;return[r,n?evi(n):void 0]}))};var WOt=e=>e===void 0?void 0:e.variant??e.enabled,evi=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};var ror="0123456789abcdef",nor=class e{constructor(t){this.bytes=t}static ofInner(t){if(t.length===16)return new e(t);throw new TypeError("not 128-bit length")}static fromFieldsV7(t,r,n,i){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(i)||t<0||r<0||n<0||i<0||t>0xffffffffffff||r>4095||n>1073741823||i>4294967295)throw new RangeError("invalid field value");let o=new Uint8Array(16);return o[0]=t/2**40,o[1]=t/2**32,o[2]=t/2**24,o[3]=t/2**16,o[4]=t/256,o[5]=t,o[6]=112|r>>>8,o[7]=r,o[8]=128|n>>>24,o[9]=n>>>16,o[10]=n>>>8,o[11]=n,o[12]=i>>>24,o[13]=i>>>16,o[14]=i>>>8,o[15]=i,new e(o)}static parse(t){let r;switch(t.length){case 32:r=/^[0-9a-f]{32}$/i.exec(t)?.[0];break;case 36:r=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t)?.slice(1,6).join("");break;case 38:r=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(t)?.slice(1,6).join("");break;case 45:r=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(t)?.slice(1,6).join("");break;default:break}if(r){let n=new Uint8Array(16);for(let i=0;i<16;i+=4){let o=parseInt(r.substring(2*i,2*i+8),16);n[i+0]=o>>>24,n[i+1]=o>>>16,n[i+2]=o>>>8,n[i+3]=o}return new e(n)}throw new SyntaxError("could not parse UUID string")}toString(){let t="";for(let r=0;r<this.bytes.length;r++)t+=ror.charAt(this.bytes[r]>>>4),t+=ror.charAt(15&this.bytes[r]),(r===3||r===5||r===7||r===9)&&(t+="-");return t}toHex(){let t="";for(let r=0;r<this.bytes.length;r++)t+=ror.charAt(this.bytes[r]>>>4),t+=ror.charAt(15&this.bytes[r]);return t}toJSON(){return this.toString()}getVariant(){let t=this.bytes[8]>>>4;if(t<0)throw new Error("unreachable");if(t<=7)return this.bytes.every(r=>r===0)?"NIL":"VAR_0";if(t<=11)return"VAR_10";if(t<=13)return"VAR_110";if(t<=15)return this.bytes.every(r=>r===255)?"MAX":"VAR_RESERVED";throw new Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new e(this.bytes.slice(0))}equals(t){return this.compareTo(t)===0}compareTo(t){for(let r=0;r<16;r++){let n=this.bytes[r]-t.bytes[r];if(n!==0)return Math.sign(n)}return 0}},tvi=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??R7p()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(t,r){let n=this.generateOrAbortCore(t,r);return n===void 0&&(this.timestamp=0,n=this.generateOrAbortCore(t,r)),n}generateOrAbortCore(t,r){if(!Number.isInteger(t)||t<1||t>0xffffffffffff)throw new RangeError("`unixTsMs` must be a 48-bit positive integer");if(r<0||r>0xffffffffffff)throw new RangeError("`rollbackAllowance` out of reasonable range");if(t>this.timestamp)this.timestamp=t,this.resetCounter();else{if(!(t+r>=this.timestamp))return;this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter())}return nor.fromFieldsV7(this.timestamp,Math.trunc(this.counter/2**30),this.counter&2**30-1,this.random.nextUint32())}resetCounter(){this.counter=1024*this.random.nextUint32()+(1023&this.random.nextUint32())}generateV4(){let t=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return t[6]=64|t[6]>>>4,t[8]=128|t[8]>>>2,nor.ofInner(t)}},R7p=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),fra,yJ=()=>F7p().toString(),F7p=()=>(fra||(fra=new tvi)).generate();var dF=(function(e){return e.AnonymousId="anonymous_id",e.DistinctId="distinct_id",e.Props="props",e.EnablePersonProcessing="enable_person_processing",e.PersonMode="person_mode",e.FeatureFlagDetails="feature_flag_details",e.FeatureFlags="feature_flags",e.FeatureFlagPayloads="feature_flag_payloads",e.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",e.BootstrapFeatureFlags="bootstrap_feature_flags",e.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",e.OverrideFeatureFlags="override_feature_flags",e.Queue="queue",e.OptedOut="opted_out",e.SessionId="session_id",e.SessionStartTimestamp="session_start_timestamp",e.SessionLastTimestamp="session_timestamp",e.PersonProperties="person_properties",e.GroupProperties="group_properties",e.InstalledAppBuild="installed_app_build",e.InstalledAppVersion="installed_app_version",e.SessionReplay="session_replay",e.SurveyLastSeenDate="survey_last_seen_date",e.SurveysSeen="surveys_seen",e.Surveys="surveys",e.RemoteConfig="remote_config",e.FlagsEndpointWasHit="flags_endpoint_was_hit",e})({});var j7p=["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"],dra=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return j7p.concat(t).some(n=>{let i=n.toLowerCase();return r.indexOf(i)!==-1})};var N7p=Array.isArray,mra=Object.prototype,h_A=mra.hasOwnProperty,rvi=mra.toString,nvi=N7p||function(e){return rvi.call(e)==="[object Array]"};var ivi=e=>e===Object(e)&&!nvi(e);var fHe=e=>e===void 0,$Ot=e=>rvi.call(e)=="[object String]",hra=e=>$Ot(e)&&e.trim().length===0;var gra=e=>rvi.call(e)=="[object Number]"&&e===e;var ovi=e=>e instanceof Error;function HOt(e){return e===null||typeof e!="object"}function i2e(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function Ara(e){return i2e(e,"ErrorEvent")}function ior(e){return!fHe(Event)&&k7p(e,Event)}function yra(e){return i2e(e,"Object")}function k7p(e,t){try{return e instanceof t}catch{return!1}}function KOt(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),gra(e)?e>r?(n.warn(" cannot be greater than max: "+r+". Using max value instead."),r):e<t?(n.warn(" cannot be less than min: "+t+". Using min value instead."),t):e:(n.warn(" must be a number. using max or fallback. max: "+r+", fallback: "+i),KOt(i||r,t,r,n))}var M7p=864e5,oor=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=KOt(t.bucketSize,0,100,t._logger),this._refillRate=KOt(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=KOt(t.refillInterval,0,M7p,t._logger)}_applyRefill(t,r){let n=r-t.lastAccess,i=Math.floor(n/this._refillInterval);if(i>0){let o=i*this._refillRate;t.tokens=Math.min(t.tokens+o,this._bucketSize),t.lastAccess=t.lastAccess+i*this._refillInterval}}consumeRateLimit(t){let r=Date.now(),n=String(t),i=this._buckets[n];return i?this._applyRefill(i,r):(i={tokens:this._bucketSize,lastAccess:r},this._buckets[n]=i),i.tokens===0?!0:(i.tokens--,i.tokens===0&&this._onBucketRateLimited?.(t),i.tokens===0)}stop(){this._buckets={}}};var sor=class{add(t){let r=yJ();return this.promiseByIds[r]=t,t.catch(()=>{}).finally(()=>{delete this.promiseByIds[r]}),t}async join(){let t=Object.values(this.promiseByIds),r=t.length;for(;r>0;)await Promise.all(t),t=Object.values(this.promiseByIds),r=t.length}get length(){return Object.keys(this.promiseByIds).length}constructor(){this.promiseByIds={}}};function L7p(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var bra=(e,t,r)=>{function n(o,...s){t(()=>{let a=r[o];a(e,...s)})}return{info:(...o)=>{n("log",...o)},warn:(...o)=>{n("warn",...o)},error:(...o)=>{n("error",...o)},critical:(...o)=>{r.error(e,...o)},createLogger:o=>bra(`${e} ${o}`,t,r)}},U7p=e=>e();function vra(e,t=U7p){return bra(e,t,L7p())}var mHe="Mobile",uor="iOS",dHe="Android",Era="Tablet",S_A=dHe+" "+Era;var z7p="Apple",O_A=z7p+" Watch",Ira="Safari",cor="BlackBerry",wra="Samsung",V7p=wra+"Browser",q7p=wra+" Internet",lor="Chrome",G7p=lor+" OS",W7p=lor+" "+uor,Cra="Internet Explorer",$7p=Cra+" "+mHe,avi="Opera",B_A=avi+" Mini",_ra="Edge",H7p="Microsoft "+_ra,uvi="Firefox",K7p=uvi+" "+uor,cvi="Nintendo",lvi="PlayStation",aor="Xbox",J7p=dHe+" "+mHe,Y7p=mHe+" "+Ira,JOt="Windows",X7p=JOt+" Phone";var xra="Generic",P_A=xra+" "+mHe.toLowerCase(),T_A=xra+" "+Era.toLowerCase(),Z7p="Konqueror",UP="(\\d+(\\.\\d+)?)",svi=new RegExp("Version/"+UP),D_A=new RegExp(aor,"i"),R_A=new RegExp(lvi+" \\w+","i"),F_A=new RegExp(cvi+" \\w+","i"),eWp=new RegExp(cor+"|PlayBook|BB10","i"),tWp={"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"};var j_A={[$7p]:[new RegExp("rv:"+UP)],[H7p]:[new RegExp(_ra+"?\\/"+UP)],[lor]:[new RegExp("("+lor+"|CrMo)\\/"+UP)],[W7p]:[new RegExp("CriOS\\/"+UP)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+UP)],[Ira]:[svi],[Y7p]:[svi],[avi]:[new RegExp("("+avi+"|OPR)\\/"+UP)],[uvi]:[new RegExp(uvi+"\\/"+UP)],[K7p]:[new RegExp("FxiOS\\/"+UP)],[Z7p]:[new RegExp("Konqueror[:/]?"+UP,"i")],[cor]:[new RegExp(cor+" "+UP),svi],[J7p]:[new RegExp("android\\s"+UP,"i")],[q7p]:[new RegExp(V7p+"\\/"+UP)],[Cra]:[new RegExp("(rv:|MSIE )"+UP)],Mozilla:[new RegExp("rv:"+UP)]};var Q_A=[[new RegExp(aor+"; "+aor+" (.*?)[);]","i"),e=>[aor,e&&e[1]||""]],[new RegExp(cvi,"i"),[cvi,""]],[new RegExp(lvi,"i"),[lvi,""]],[eWp,[cor,""]],[new RegExp(JOt,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[X7p,""];if(new RegExp(mHe).test(t)&&!/IEMobile\b/.test(t))return[JOt+" "+mHe,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=tWp[n]||"";return/arm/i.test(t)&&(i="RT"),[JOt,i]}return[JOt,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[uor,t.join(".")]}return[uor,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=fHe(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+dHe+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+dHe+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[dHe,t.join(".")]}return[dHe,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,e=>{let t=["Mac OS X",""];if(e&&e[1]){let r=[e[1],e[2],e[3]||"0"];t[1]=r.join(".")}return t}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[G7p,""]],[/Linux|debian/i,["Linux",""]]];var Sra="utf8";function Ora(e,t){if(!e||typeof e!="string"||rWp(e))throw new Error(t)}function rWp(e){return e.trim().length===0}function Bra(e){return e?.replace(/\/+$/,"")}async function Pra(e,t){let r=null;for(let n=0;n<t.retryCount+1;n++){n>0&&await new Promise(i=>setTimeout(i,t.retryDelay));try{return await e()}catch(i){if(r=i,!t.retryCheck(i))throw i}}throw r}function por(){return new Date().toISOString()}function o2e(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var Tra=e=>e instanceof Error;function pvi(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var dor=class{constructor(){this.events={},this.events={}}on(t,r){return this.events[t]||(this.events[t]=[]),this.events[t].push(r),()=>{this.events[t]=this.events[t].filter(n=>n!==r)}}emit(t,r){for(let n of this.events[t]||[])n(r);for(let n of this.events["*"]||[])n(t,r)}};function Dra(){return"CompressionStream"in globalThis}async function fvi(e,t=!0){try{let n=new Blob([e],{type:"text/plain"}).stream().pipeThrough(new CompressionStream("gzip"));return await new Response(n).blob()}catch(r){return t&&console.error("Failed to gzip compress data",r),null}}var s2e=class extends Error{constructor(t,r){super("HTTP error while fetching PostHog: status="+t.status+", reqByteLength="+r),this.response=t,this.reqByteLength=r,this.name="PostHogFetchHttpError"}get status(){return this.response.status}get text(){return this.response.text()}get json(){return this.response.json()}},hHe=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function Rra(e){if(e instanceof s2e){let t="";try{t=await e.text}catch{}console.error(`Error while flushing PostHog: message=${e.message}, response body=${t}`,e)}else console.error("Error while flushing PostHog",e);return Promise.resolve()}function dvi(e){return typeof e=="object"&&(e instanceof s2e||e instanceof hHe)}function Fra(e){return typeof e=="object"&&e instanceof s2e&&e.status===413}var YOt=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new sor,this._events=new dor,this._isInitialized=!1,Ora(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=Bra(r.host||"https://us.i.posthog.com"),this.flushAt=r.flushAt?Math.max(r.flushAt,1):20,this.maxBatchSize=Math.max(this.flushAt,r.maxBatchSize??100),this.maxQueueSize=Math.max(this.flushAt,r.maxQueueSize??1e3),this.flushInterval=r.flushInterval??1e4,this.preloadFeatureFlags=r.preloadFeatureFlags??!0,this.defaultOptIn=r.defaultOptIn??!0,this.disableSurveys=r.disableSurveys??!1,this._retryOptions={retryCount:r.fetchRetryCount??3,retryDelay:r.fetchRetryDelay??3e3,retryCheck:dvi},this.requestTimeout=r.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=r.featureFlagsRequestTimeoutMs??3e3,this.remoteConfigRequestTimeoutMs=r.remoteConfigRequestTimeoutMs??3e3,this.disableGeoip=r.disableGeoip??!0,this.disabled=r.disabled??!1,this.historicalMigration=r?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this._logger=vra("[PostHog]",this.logMsgIfDebug.bind(this)),this.evaluationContexts=r?.evaluationContexts??r?.evaluationEnvironments,r?.evaluationEnvironments&&!r?.evaluationContexts&&this._logger.warn("evaluationEnvironments is deprecated. Use evaluationContexts instead. This property will be removed in a future version."),this.disableCompression=!Dra()||(r?.disableCompression??!1)}logMsgIfDebug(t){this.isDebug&&t()}wrap(t){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized)return t();this._initPromise.then(()=>t())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(dF.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(dF.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(dF.OptedOut,!0)})}on(t,r){return this._events.on(t,r)}debug(t=!0){if(this.removeDebugCallback?.(),t){let r=this.on("*",(n,i)=>this._logger.info(n,i));this.removeDebugCallback=()=>{r(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload(t){return{distinct_id:t.distinct_id,event:t.event,properties:{...t.properties||{},...this.getCommonEventProperties()}}}addPendingPromise(t){return this.promiseQueue.add(t)}identifyStateless(t,r,n){this.wrap(()=>{let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};this.enqueue("identify",i,n)})}async identifyStatelessImmediate(t,r,n){let i={...this.buildPayload({distinct_id:t,event:"$identify",properties:r})};await this.sendImmediate("identify",i,n)}captureStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({distinct_id:t,event:r,properties:n});this.enqueue("capture",o,i)})}async captureStatelessImmediate(t,r,n,i){let o=this.buildPayload({distinct_id:t,event:r,properties:n});await this.sendImmediate("capture",o,i)}aliasStateless(t,r,n,i){this.wrap(()=>{let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});this.enqueue("alias",o,i)})}async aliasStatelessImmediate(t,r,n,i){let o=this.buildPayload({event:"$create_alias",distinct_id:r,properties:{...n||{},distinct_id:r,alias:t}});await this.sendImmediate("alias",o,i)}groupIdentifyStateless(t,r,n,i,o,s){this.wrap(()=>{let a=this.buildPayload({distinct_id:o||`$${t}_${r}`,event:"$groupidentify",properties:{$group_type:t,$group_key:r,$group_set:n||{},...s||{}}});this.enqueue("capture",a,i)})}async getRemoteConfig(){await this._initPromise;let t=this.host;t==="https://us.i.posthog.com"?t="https://us-assets.i.posthog.com":t==="https://eu.i.posthog.com"&&(t="https://eu-assets.i.posthog.com");let r=`${t}/array/${this.apiKey}/config`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(r,n,{retryCount:0},this.remoteConfigRequestTimeoutMs).then(i=>i.json()).catch(i=>{this._logger.error("Remote config could not be loaded",i),this._events.emit("error",i)})}async getFlags(t,r={},n={},i={},o={},s=!0){await this._initPromise;let a=s?"&config=true":"",u=`${this.host}/flags/?v=2${a}`,c={token:this.apiKey,distinct_id:t,groups:r,person_properties:n,group_properties:i,...o};this.evaluationContexts&&this.evaluationContexts.length>0&&(c.evaluation_contexts=this.evaluationContexts);let l={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(c)};return this._logger.info("Flags URL",u),this.fetchWithRetry(u,l,{retryCount:0},this.featureFlagsRequestTimeoutMs).then(p=>p.json()).then(p=>({success:!0,response:Z0i(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof s2e)return{type:"api_error",statusCode:t.status};if(t instanceof hHe){let r=t.error;return r instanceof Error&&(r.name==="AbortError"||r.name==="TimeoutError")?{type:"timeout"}:{type:"connection_error"}}return{type:"unknown_error"}}async getFeatureFlagStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagDetailStateless(t,r,n,i,o,s);if(a===void 0)return{response:void 0,requestId:void 0};let u=WOt(a.response);return u===void 0&&(u=!1),{response:u,requestId:a.requestId}}async getFeatureFlagDetailStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(r,n,i,o,s,[t]);return a===void 0?void 0:{response:a.flags[t],requestId:a.requestId,evaluatedAt:a.evaluatedAt}}async getFeatureFlagPayloadStateless(t,r,n={},i={},o={},s){await this._initPromise;let a=await this.getFeatureFlagPayloadsStateless(r,n,i,o,s,[t]);if(!a)return;let u=a[t];return u===void 0?null:u}async getFeatureFlagPayloadsStateless(t,r={},n={},i={},o,s){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)).payloads}async getFeatureFlagsStateless(t,r={},n={},i={},o,s){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless(t,r,n,i,o,s)}async getFeatureFlagsAndPayloadsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a=await this.getFeatureFlagDetailsStateless(t,r,n,i,o,s);return a?{flags:a.featureFlags,payloads:a.featureFlagPayloads,requestId:a.requestId}:{flags:void 0,payloads:void 0,requestId:void 0}}async getFeatureFlagDetailsStateless(t,r={},n={},i={},o,s){await this._initPromise;let a={};(o??this.disableGeoip)&&(a.geoip_disable=!0),s&&(a.flag_keys_to_evaluate=s);let u=await this.getFlags(t,r,n,i,a);if(!u.success)return;let c=u.response;return c.errorsWhileComputingFlags&&console.error("[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices"),c.quotaLimited?.includes("feature_flags")?(console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),{flags:{},featureFlags:{},featureFlagPayloads:{},requestId:c?.requestId,quotaLimited:c.quotaLimited}):c}async getSurveysStateless(){if(await this._initPromise,this.disableSurveys===!0)return this._logger.info("Loading surveys is disabled."),[];let t=`${this.host}/api/surveys/?token=${this.apiKey}`,r={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},i=(await this.fetchWithRetry(t,r).then(o=>{if(o.status!==200||!o.json){let s=`Surveys API could not be loaded: ${o.status}`,a=new Error(s);this._logger.error(a),this._events.emit("error",new Error(s));return}return o.json()}).catch(o=>{this._logger.error("Surveys API could not be loaded",o),this._events.emit("error",o)}))?.surveys;return i&&this._logger.info("Surveys fetched from API: ",JSON.stringify(i)),i??[]}get props(){return this._props||(this._props=this.getPersistedProperty(dF.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(dF.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(dF.Props,this.props)})}processBeforeEnqueue(t){return t}async flushStorage(){}enqueue(t,r,n){this.wrap(()=>{if(this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r,n);if(i=this.processBeforeEnqueue(i),i===null)return;let o=this.getPersistedProperty(dF.Queue)||[];o.length>=this.maxQueueSize&&(o.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),o.push({message:i}),this.setPersistedProperty(dF.Queue,o),this._events.emit(t,i),o.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=o2e(()=>this.flushBackground(),this.flushInterval))})}async sendImmediate(t,r,n){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized||await this._initPromise,this.optedOut)return void this._events.emit(t,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let i=this.prepareMessage(t,r,n);if(i=this.processBeforeEnqueue(i),i===null)return;let o={api_key:this.apiKey,batch:[i],sent_at:por()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,u=this.disableCompression?null:await fvi(s,this.isDebug),c={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...u!==null&&{"Content-Encoding":"gzip"}},body:u||s};try{await this.fetchWithRetry(a,c)}catch(l){this._events.emit("error",l)}}prepareMessage(t,r,n){let i={...r,type:t,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:n?.timestamp?n?.timestamp:por(),uuid:n?.uuid?n.uuid:yJ()};return(n?.disableGeoip??this.disableGeoip)&&(i.properties||(i.properties={}),i.properties.$geoip_disable=!0),i.distinctId&&(i.distinct_id=i.distinctId,delete i.distinctId),i}clearFlushTimer(){this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=void 0)}flushBackground(){this.flush().catch(async t=>{await Rra(t)})}async flush(){let t=pvi([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),pvi([t]).then(()=>{this.flushPromise===t&&(this.flushPromise=null)}),t}getCustomHeaders(){let t=this.getCustomUserAgent(),r={};return t&&t!==""&&(r["User-Agent"]=t),r}async _flush(){this.clearFlushTimer(),await this._initPromise;let t=this.getPersistedProperty(dF.Queue)||[];if(!t.length)return;let r=[],n=t.length;for(;t.length>0&&r.length<n;){let i=t.slice(0,this.maxBatchSize),o=i.map(f=>f.message),s=async()=>{let m=(this.getPersistedProperty(dF.Queue)||[]).slice(i.length);this.setPersistedProperty(dF.Queue,m),t=m,await this.flushStorage()},a={api_key:this.apiKey,batch:o,sent_at:por()};this.historicalMigration&&(a.historical_migration=!0);let u=JSON.stringify(a),c=`${this.host}/batch/`,l=this.disableCompression?null:await fvi(u,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||u},d={retryCheck:f=>Fra(f)?!1:dvi(f)};try{await this.fetchWithRetry(c,p,d)}catch(f){if(Fra(f)&&o.length>1){this.maxBatchSize=Math.max(1,Math.floor(o.length/2)),this._logger.warn(`Received 413 when sending batch of size ${o.length}, reducing batch size to ${this.maxBatchSize}`);continue}throw f instanceof hHe||await s(),this._events.emit("error",f),f}await s(),r.push(...o)}this._events.emit("flush",r)}async fetchWithRetry(t,r,n,i){AbortSignal.timeout??=function(a){let u=new AbortController;return setTimeout(()=>u.abort(),a),u.signal};let o=r.body?r.body:"",s=-1;try{s=o instanceof Blob?o.size:Buffer.byteLength(o,Sra)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await Pra(async()=>{let a=null;try{a=await this.fetch(t,{signal:AbortSignal.timeout(i??this.requestTimeout),...r})}catch(c){throw new hHe(c)}if(!(r.mode==="no-cors")&&(a.status<200||a.status>=400))throw new s2e(a,s);return a},{...this._retryOptions,...n})}async _shutdown(t=3e4){await this._initPromise;let r=!1;this.clearFlushTimer();let n=async()=>{try{for(await this.promiseQueue.join();!((this.getPersistedProperty(dF.Queue)||[]).length===0||(await this.flush(),r)););}catch(i){if(!dvi(i))throw i;await Rra(i)}};return Promise.race([new Promise((i,o)=>{o2e(()=>{this._logger.error("Timed out while shutting down PostHog"),r=!0,o("Timeout while shutting down PostHog. Some events may not have been sent.")},t)}),n()])}async shutdown(t=3e4){return this.shutdownPromise?this._logger.warn("shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup"):this.shutdownPromise=this._shutdown(t).finally(()=>{this.shutdownPromise=null}),this.shutdownPromise}};var mF={};X(mF,{DOMExceptionCoercer:()=>Avi,ErrorCoercer:()=>yvi,ErrorEventCoercer:()=>bvi,ErrorPropertiesBuilder:()=>mvi,EventCoercer:()=>Ivi,ObjectCoercer:()=>Evi,PrimitiveCoercer:()=>wvi,PromiseRejectionEventCoercer:()=>Cvi,ReduceableCache:()=>_vi,StringCoercer:()=>vvi,chromeStackLineParser:()=>hvi,createDefaultStackParser:()=>AWp,createStackParser:()=>Gra,geckoStackLineParser:()=>gvi,nodeStackLineParser:()=>Ura,opera10StackLineParser:()=>kra,opera11StackLineParser:()=>Mra,reverseAndStripFrames:()=>qra,winjsStackLineParser:()=>Nra});var mor,jra,hor;function Qra(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return hor&&r.length===jra||(jra=r.length,hor=r.reduce((n,i)=>{mor||(mor={});let o=mor[i];if(o)n[o[0]]=o[1];else{let s=e(i);for(let a=s.length-1;a>=0;a--){let c=s[a]?.filename,l=t[i];if(c&&l){n[c]=l,mor[i]=[c,l];break}}}return n},{})),hor}var iWp=4,mvi=class{constructor(t,r,n=[]){this.coercers=t,this.stackParser=r,this.modifiers=n}buildFromUnknown(t,r={}){let i=r&&r.mechanism||{handled:!0,type:"generic"},s=this.buildCoercingContext(i,r,0).apply(t),a=this.buildParsingContext(r),u=this.parseStacktrace(s,a);return{$exception_list:this.convertToExceptionList(u,i),$exception_level:"error"}}async modifyFrames(t){for(let r of t)r.stacktrace&&r.stacktrace.frames&&nvi(r.stacktrace.frames)&&(r.stacktrace.frames=await this.applyModifiers(r.stacktrace.frames));return t}coerceFallback(t){return{type:"Error",value:"Unknown error",stack:t.syntheticException?.stack,synthetic:!0}}parseStacktrace(t,r){let n;t.cause!=null&&(n=this.parseStacktrace(t.cause,r));let i;return t.stack!=""&&t.stack!=null&&(i=this.applyChunkIds(this.stackParser(t.stack,t.synthetic?r.skipFirstLines:0),r.chunkIdMap)),{...t,cause:n,stack:i}}applyChunkIds(t,r){return t.map(n=>(n.filename&&r&&(n.chunk_id=r[n.filename]),n))}applyCoercers(t,r){for(let n of this.coercers)if(n.match(t))return n.coerce(t,r);return this.coerceFallback(r)}async applyModifiers(t){let r=t;for(let n of this.modifiers)r=await n(r);return r}convertToExceptionList(t,r){let n={type:t.type,value:t.value,mechanism:{type:r.type??"generic",handled:r.handled??!0,synthetic:t.synthetic??!1}};t.stack&&(n.stacktrace={type:"raw",frames:t.stack});let i=[n];return t.cause!=null&&i.push(...this.convertToExceptionList(t.cause,{...r,handled:!0})),i}buildParsingContext(t){return{chunkIdMap:Qra(this.stackParser),skipFirstLines:t.skipFirstLines??1}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=iWp){let u=this.buildCoercingContext(t,r,a);return this.applyCoercers(s,u)}};return{...r,syntheticException:n==0?r.syntheticException:void 0,mechanism:t,apply:s=>i(s,n),next:s=>i(s,n+1)}}};var pS="?";function bJ(e,t,r,n,i){let o={platform:e,filename:t,function:r==="<anonymous>"?pS:r,in_app:!0};return fHe(n)||(o.lineno=n),fHe(i)||(o.colno=i),o}var gor=(e,t)=>{let r=e.indexOf("safari-extension")!==-1,n=e.indexOf("safari-web-extension")!==-1;return r||n?[e.indexOf("@")!==-1?e.split("@")[0]:pS,r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};var oWp=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,sWp=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,aWp=/\((\S*)(?::(\d+))(?::(\d+))\)/,hvi=(e,t)=>{let r=oWp.exec(e);if(r){let[,i,o,s]=r;return bJ(t,i,pS,+o,+s)}let n=sWp.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=aWp.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=gor(n[1]||pS,n[2]);return bJ(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var uWp=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,cWp=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,gvi=(e,t)=>{let r=uWp.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=cWp.exec(r[3]);s&&(r[1]=r[1]||"eval",r[3]=s[1],r[4]=s[2],r[5]="")}let i=r[3],o=r[1]||pS;return[o,i]=gor(o,i),bJ(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var lWp=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,Nra=(e,t)=>{let r=lWp.exec(e);return r?bJ(t,r[2],r[1]||pS,+r[3],r[4]?+r[4]:void 0):void 0};var pWp=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,kra=(e,t)=>{let r=pWp.exec(e);return r?bJ(t,r[2],r[3]||pS,+r[1]):void 0},fWp=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,Mra=(e,t)=>{let r=fWp.exec(e);return r?bJ(t,r[5],r[3]||r[4]||pS,+r[1],+r[2]):void 0};var dWp=/^\s*[-]{4,}$/,mWp=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,Ura=(e,t)=>{let r=e.match(mWp);if(r){let n,i,o,s,a;if(r[1]){o=r[1];let l=o.lastIndexOf(".");if(o[l-1]==="."&&l--,l>0){n=o.slice(0,l),i=o.slice(l+1);let p=n.indexOf(".Module");p>0&&(o=o.slice(p+1),n=n.slice(0,p))}s=void 0}i&&(s=n,a=i),i==="<anonymous>"&&(a=void 0,o=void 0),o===void 0&&(a=a||pS,o=s?`${s}.${a}`:a);let u=r[2]?.startsWith("file://")?r[2].slice(7):r[2],c=r[5]==="native";return u?.match(/\/[A-Z]:/)&&(u=u.slice(1)),!u&&r[5]&&!c&&(u=r[5]),{filename:u?decodeURI(u):void 0,module:void 0,function:o,lineno:Lra(r[3]),colno:Lra(r[4]),in_app:hWp(u||"",c),platform:t}}if(e.match(dWp))return{filename:e,platform:t}};function hWp(e,t=!1){return!(t||e&&!e.startsWith("/")&&!e.match(/^[A-Z]:/)&&!e.startsWith(".")&&!e.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&e!==void 0&&!e.includes("node_modules/")}function Lra(e){return parseInt(e||"",10)||void 0}var zra=/\(error: (.*)\)/,Vra=50;function qra(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,Vra).map(r=>({...r,filename:r.filename||gWp(t).filename,function:r.function||pS}))}function gWp(e){return e[e.length-1]||{}}function AWp(){return Gra("web:javascript",hvi,gvi)}function Gra(e,...t){return(r,n=0)=>{let i=[],o=r.split(`
1445
- `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let u=zra.test(a)?a.replace(zra,"$1"):a;if(!u.match(/\S*Error: /)){for(let c of t){let l=c(u,e);if(l){i.push(l);break}}if(i.length>=Vra)break}}return qra(i)}}var Avi=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=$Ot(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:n?t.stack:void 0,cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return this.isDOMError(t)?"DOMError":"DOMException"}getValue(t){let r=t.name||(this.isDOMError(t)?"DOMError":"DOMException");return t.message?`${r}: ${t.message}`:r}isDOMException(t){return i2e(t,"DOMException")}isDOMError(t){return i2e(t,"DOMError")}};var yvi=class{match(t){return ovi(t)}coerce(t,r){return{type:this.getType(t),value:this.getMessage(t,r),stack:this.getStack(t),cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return t.name||t.constructor.name}getMessage(t,r){let n=t.message;return n.error&&typeof n.error.message=="string"?String(n.error.message):String(n)}getStack(t){return t.stacktrace||t.stack||void 0}};var bvi=class{constructor(){}match(t){return Ara(t)&&t.error!=null}coerce(t,r){let n=r.apply(t.error);return n||{type:"ErrorEvent",value:t.message,stack:r.syntheticException?.stack,synthetic:!0}}};var yWp=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,vvi=class{match(t){return typeof t=="string"}coerce(t,r){let[n,i]=this.getInfos(t);return{type:n??"Error",value:i??t,stack:r.syntheticException?.stack,synthetic:!0}}getInfos(t){let r="Error",n=t,i=t.match(yWp);return i&&(r=i[1],n=i[2]),[r,n]}};var Wra=["fatal","error","warning","log","info","debug"];function Aor(e,t=40){let r=Object.keys(e);if(r.sort(),!r.length)return"[object has no keys]";for(let n=r.length;n>0;n--){let i=r.slice(0,n).join(", ");if(!(i.length>t))return n===r.length||i.length<=t?i:`${i.slice(0,t)}...`}return""}var Evi=class{match(t){return typeof t=="object"&&t!==null}coerce(t,r){let n=this.getErrorPropertyFromObject(t);return n?r.apply(n):{type:this.getType(t),value:this.getValue(t),stack:r.syntheticException?.stack,level:this.isSeverityLevel(t.level)?t.level:"error",synthetic:!0}}getType(t){return ior(t)?t.constructor.name:"Error"}getValue(t){if("name"in t&&typeof t.name=="string"){let i=`'${t.name}' captured as exception`;return"message"in t&&typeof t.message=="string"&&(i+=` with message: '${t.message}'`),i}if("message"in t&&typeof t.message=="string")return t.message;let r=this.getObjectClassName(t),n=Aor(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return $Ot(t)&&!hra(t)&&Wra.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(Tra(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var Ivi=class{match(t){return ior(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Aor(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var wvi=class{match(t){return HOt(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var Cvi=class{match(t){return i2e(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return HOt(n)?{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(n)}`,stack:r.syntheticException?.stack,synthetic:!0}:r.apply(n)}getUnhandledRejectionReason(t){if(HOt(t))return t;try{if("reason"in t)return t.reason;if("detail"in t&&"reason"in t.detail)return t.detail.reason}catch{}return t}};var _vi=class{constructor(t){this._maxSize=t,this._cache=new Map}get(t){let r=this._cache.get(t);if(r!==void 0)return this._cache.delete(t),this._cache.set(t,r),r}set(t,r){this._cache.set(t,r)}reduce(){for(;this._cache.size>=this._maxSize;){let t=this._cache.keys().next().value;t&&this._cache.delete(t)}}};var Kra=require("fs"),Jra=require("readline"),yor=new mF.ReduceableCache(25),Yra=new mF.ReduceableCache(20),xvi=7,bWp=1e3,vWp=1e4;async function Xra(e){let t={};for(let i=e.length-1;i>=0;i--){let o=e[i],s=o?.filename;if(!o||typeof s!="string"||typeof o.lineno!="number"||CWp(s)||_Wp(o))continue;t[s]||(t[s]=[]),t[s].push(o.lineno)}let r=Object.keys(t);if(r.length==0)return e;let n=[];for(let i of r){if(Yra.get(i))continue;let o=t[i];if(!o)continue;o.sort((u,c)=>u-c);let s=SWp(o);if(s.every(u=>xWp(i,u)))continue;let a=OWp(yor,i,{});n.push(EWp(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&IWp(e,yor),yor.reduce(),e}function EWp(e,t,r){return new Promise(n=>{let i=(0,Kra.createReadStream)(e),o=(0,Jra.createInterface)({input:i});function s(){i.destroy(),n()}let a=0,u=0,c=t[u];if(c===void 0)return void s();let l=c[0],p=c[1];function d(){Yra.set(e,1),o.close(),o.removeAllListeners(),s()}i.on("error",d),o.on("error",d),o.on("close",s),o.on("line",f=>{if(a++,!(a<l)&&(r[a]=BWp(f,0),a>=p)){if(u===t.length-1){o.close(),o.removeAllListeners();return}u++;let m=t[u];if(m===void 0){o.close(),o.removeAllListeners();return}l=m[0],p=m[1]}})})}function IWp(e,t){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno=="number"){let n=t.get(r.filename);if(n===void 0)continue;wWp(r.lineno,r,n)}}function wWp(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=Zra(e);i<e;i++){let o=r[i];if(o===void 0)return void $ra(t);t.pre_context.push(o)}if(r[e]===void 0)return void $ra(t);t.context_line=r[e];let n=ena(e);t.post_context=[];for(let i=e+1;i<=n;i++){let o=r[i];if(o===void 0)break;t.post_context.push(o)}}function $ra(e){delete e.pre_context,delete e.context_line,delete e.post_context}function CWp(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function _Wp(e){return e.lineno!==void 0&&e.lineno>vWp||e.colno!==void 0&&e.colno>bWp}function xWp(e,t){let r=yor.get(e);if(r===void 0)return!1;for(let n=t[0];n<=t[1];n++)if(r[n]===void 0)return!1;return!0}function SWp(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=Hra(r),i=[];for(;;){if(t===e.length-1){i.push(n);break}let o=e[t+1];if(typeof o!="number")break;o<=n[1]?n[1]=o+xvi:(i.push(n),n=Hra(o)),t++}return i}function Hra(e){return[Zra(e),ena(e)]}function Zra(e){return Math.max(1,e-xvi)}function ena(e){return e+xvi}function OWp(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function BWp(e,t){let r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,n);return o>n-5&&(o=n),o===n&&(i=Math.max(o-140,0)),r=r.slice(i,o),i>0&&(r=`...${r}`),o<n&&(r+="..."),r}function PWp(e,t){let r=!1;return Object.assign(n=>{let o=global.process.listeners("uncaughtException").filter(s=>s.name!=="domainUncaughtExceptionClear"&&s._posthogErrorHandler!==!0).length===0;e(n,{mechanism:{type:"onuncaughtexception",handled:!1}}),!r&&o&&(r=!0,t(n))},{_posthogErrorHandler:!0})}function tna(e,t){globalThis.process?.on("uncaughtException",PWp(e,t))}function rna(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var TWp=2e3,Oq=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new oor({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return ivi(t)&&"__posthog_previously_captured_error"in t&&t.__posthog_previously_captured_error===!0}static async buildEventMessage(t,r,n,i){let o={...i};n||(o.$process_person_profile=!1);let s=this.errorPropertiesBuilder.buildFromUnknown(t,r);return s.$exception_list=await this.errorPropertiesBuilder.modifyFrames(s.$exception_list),{event:"$exception",distinctId:n||yJ(),properties:{...s,...o},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){this.isEnabled()&&(tna(this.onException.bind(this),this.onFatalError.bind(this)),rna(this.onException.bind(this)))}onException(t,r){this.client.addPendingPromise((async()=>{if(!e.isPreviouslyCapturedError(t)){let n=await e.buildEventMessage(t,r),o=n.properties?.$exception_list[0]?.type??"Exception";return this._rateLimiter.consumeRateLimit(o)?void this._logger.info("Skipping exception capture because of client rate limiting.",{exception:o}):this.client.capture(n)}})())}async onFatalError(t){console.error(t),await this.client.shutdown(TWp),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var nna="5.26.2";var XOt={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function ina(e){let t=globalThis.crypto?.subtle;if(!t)throw new Error("SubtleCrypto API not available");let r=await t.digest("SHA-1",new TextEncoder().encode(e));return Array.from(new Uint8Array(r)).map(i=>i.toString(16).padStart(2,"0")).join("")}var DWp=6e4,RWp=1152921504606847e3,FWp=["is_not"],gHe=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},vh=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},vJ=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},bor=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:o,customHeaders:s,...a}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=t,this.personalApiKey=r,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=n,this.host=o,this.poller=void 0,this.fetch=a.fetch||fetch,this.onError=a.onError,this.customHeaders=s,this.onLoad=a.onLoad,this.cacheProvider=a.cacheProvider,this.strictLocalEvaluation=a.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}createEvaluationContext(t,r={},n={},i={},o={}){return{distinctId:t,groups:r,personProperties:n,groupProperties:i,evaluationCache:o}}async getFeatureFlag(t,r,n={},i={},o={}){await this.loadFeatureFlags();let s,a;if(!this.loadedSuccessfullyOnce)return s;if(a=this.featureFlagsByKey[t],a!==void 0){let u=this.createEvaluationContext(r,n,i,o);try{s=(await this.computeFlagAndPayloadLocally(a,u)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(c){c instanceof vJ||c instanceof vh?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${t}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${c}`))}}return s}async getAllFlagsAndPayloads(t,r){await this.loadFeatureFlags();let n={},i={},o=this.featureFlags.length==0,s=r?r.map(u=>this.featureFlagsByKey[u]).filter(Boolean):this.featureFlags,a={...t,evaluationCache:t.evaluationCache??{}};return await Promise.all(s.map(async u=>{try{let{value:c,payload:l}=await this.computeFlagAndPayloadLocally(u,a);n[u.key]=c,l&&(i[u.key]=l)}catch(c){c instanceof vJ||c instanceof vh?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${u.key}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${u.key}: ${c}`)),o=!0}})),{response:n,payloads:i,fallbackToFlags:o}}async computeFlagAndPayloadLocally(t,r,n={}){let{matchValue:i,skipLoadCheck:o=!1}=n;if(o||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=i!==void 0?i:await this.computeFlagValueLocally(t,r);let a=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:a}}async computeFlagValueLocally(t,r){let{distinctId:n,groups:i,personProperties:o,groupProperties:s}=r;if(t.ensure_experience_continuity)throw new vh("Flag has experience continuity enabled");if(!t.active)return!1;let u=(t.filters||{}).aggregation_group_type_index;if(u!=null){let c=this.groupTypeMapping[String(u)];if(!c)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${u} for feature flag ${t.key}`)),new vh("Flag has unknown group type index");if(!(c in i))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;t.bucketing_identifier==="device_id"&&(o?.$device_id===void 0||o?.$device_id===null||o?.$device_id==="")&&this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${t.key}`));let l=s[c];return await this.matchFeatureFlagProperties(t,i[c],l,r)}{let c=this.getBucketingValueForFlag(t,n,o);if(c===void 0)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${t.key} without $device_id, falling back to server evaluation`)),new vh(`Can't compute feature flag: ${t.key} without $device_id`);return await this.matchFeatureFlagProperties(t,c,o,r)}}getBucketingValueForFlag(t,r,n){if(t.filters?.aggregation_group_type_index!=null)return r;if(t.bucketing_identifier==="device_id"){let i=n?.$device_id;return i==null||i===""?void 0:i}return r}getFeatureFlagPayload(t,r){let n=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),n!=null)){if(typeof n=="object")return n;if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}return null}async evaluateFlagDependency(t,r,n){let{evaluationCache:i}=n,o=t.key;if(!this.featureFlagsByKey)throw new vh("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new vh(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new vh(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new vh(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let u of s){if(!(u in i)){let l=this.featureFlagsByKey[u];if(l)if(l.active)try{let p=await this.computeFlagValueLocally(l,n);i[u]=p}catch(p){throw new vh(`Error evaluating flag dependency '${u}' for flag '${o}': ${p}`)}else i[u]=!1;else throw new vh(`Missing flag dependency '${u}' for flag '${o}'`)}if(i[u]==null)throw new vh(`Dependency '${u}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i){let o=t.filters||{},s=o.groups||[],a=!1,u;for(let c of s)try{if(await this.isConditionMatch(t,r,c,n,i)){let l=c.variant,p=o.multivariate?.variants||[];u=l&&p.some(d=>d.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof vJ)throw l;if(l instanceof vh)a=!0;else throw l}if(u!==void 0)return u;if(a)throw new vh("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o){let s=n.rollout_percentage,a=u=>{this.logMsgIfDebug(()=>console.warn(u))};if((n.properties||[]).length>0){for(let u of n.properties){let c=u.type,l=!1;if(l=c==="cohort"?cna(u,i,this.cohorts,this.debugMode):c==="flag"?await this.evaluateFlagDependency(u,i,o):una(u,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await ona(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await ona(t.key,r,"variant"),i=this.variantLookupTable(t).find(o=>n>=o.valueMin&&n<o.valueMax);if(i)return i.key}variantLookupTable(t){let r=[],n=0,i=0;return((t.filters||{}).multivariate?.variants||[]).forEach(a=>{i=n+a.rollout_percentage/100,r.push({valueMin:n,valueMax:i,key:a.key}),n=i}),r}updateFlagState(t){this.featureFlags=t.flags,this.featureFlagsByKey=t.flags.reduce((r,n)=>(r[n.key]=n,r),{}),this.groupTypeMapping=t.groupTypeMapping,this.cohorts=t.cohorts,this.loadedSuccessfullyOnce=!0}warnAboutExperienceContinuityFlags(t){if(this.strictLocalEvaluation)return;let r=t.filter(n=>n.ensure_experience_continuity);r.length>0&&console.warn(`[PostHog] You are using local evaluation but ${r.length} flag(s) have experience continuity enabled: ${r.map(n=>n.key).join(", ")}. Experience continuity is incompatible with local evaluation and will cause a server request on every flag evaluation, negating local evaluation cost savings. To avoid server requests and unexpected costs, either disable experience continuity on these flags in PostHog, use strictLocalEvaluation: true in client init, or pass onlyEvaluateLocally: true per flag call (flags that cannot be evaluated locally will return undefined).`)}async loadFromCache(t){if(!this.cacheProvider)return!1;try{let r=await this.cacheProvider.getFlagDefinitions();return r?(this.updateFlagState(r),this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] ${t} (${r.flags.length} flags)`)),this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(r.flags),!0):!1}catch(r){return this.onError?.(new Error(`Failed to load from cache: ${r}`)),!1}}async loadFeatureFlags(t=!1){if(!(this.loadedSuccessfullyOnce&&!t))return!t&&this.nextFetchAllowedAt&&Date.now()<this.nextFetchAllowedAt?void this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Skipping fetch, in backoff period")):(this.loadingPromise||(this.loadingPromise=this._loadFeatureFlags().catch(r=>this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Failed to load feature flags: ${r}`))).finally(()=>{this.loadingPromise=void 0})),this.loadingPromise)}isLocalEvaluationReady(){return(this.loadedSuccessfullyOnce??!1)&&(this.featureFlags?.length??0)>0}getFlagDefinitionsLoadedAt(){return this.flagDefinitionsLoadedAt}getPollingInterval(){return this.shouldBeginExponentialBackoff?Math.min(DWp,this.pollingInterval*2**this.backOffCount):this.pollingInterval}beginBackoff(){this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,this.nextFetchAllowedAt=Date.now()+this.getPollingInterval()}clearBackoff(){this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.nextFetchAllowedAt=void 0}async _loadFeatureFlags(){this.poller&&(clearTimeout(this.poller),this.poller=void 0),this.poller=setTimeout(()=>this.loadFeatureFlags(!0),this.getPollingInterval());try{let t=!0;if(this.cacheProvider)try{t=await this.cacheProvider.shouldFetchFlagDefinitions()}catch(n){this.onError?.(new Error(`Error in shouldFetchFlagDefinitions: ${n}`))}if(!t&&(await this.loadFromCache("Loaded flags from cache (skipped fetch)")||this.loadedSuccessfullyOnce))return;let r=await this._requestFeatureFlagDefinitions();if(!r)return;switch(r.status){case 304:this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Flags not modified (304), using cached data")),this.flagsEtag=r.headers?.get("ETag")??this.flagsEtag,this.loadedSuccessfullyOnce=!0,this.clearBackoff();return;case 401:throw this.beginBackoff(),new gHe(`Your project key or personal API key is invalid. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 402:console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - unsetting all local flags. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={};return;case 403:throw this.beginBackoff(),new gHe(`Your personal API key does not have permission to fetch feature flag definitions for local evaluation. Setting next polling interval to ${this.getPollingInterval()}ms. Are you sure you're using the correct personal and Project API key pair? More information: https://posthog.com/docs/api/overview`);case 429:throw this.beginBackoff(),new gHe(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let n=await r.json()??{};if(!("flags"in n))return void this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(n)}`));this.flagsEtag=r.headers?.get("ETag")??void 0;let i={flags:n.flags??[],groupTypeMapping:n.group_type_mapping||{},cohorts:n.cohorts||{}};if(this.updateFlagState(i),this.flagDefinitionsLoadedAt=Date.now(),this.clearBackoff(),this.cacheProvider&&t)try{await this.cacheProvider.onFlagDefinitionsReceived(i)}catch(o){this.onError?.(new Error(`Failed to store in cache: ${o}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(i.flags);break}default:return}}catch(t){t instanceof gHe&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=o2e(()=>{i.abort()},this.timeout),r.signal=i.signal}try{let i=this.fetch;return i(t,r)}finally{clearTimeout(n)}}async stopPoller(t=3e4){if(clearTimeout(this.poller),this.cacheProvider)try{let r=this.cacheProvider.shutdown();r instanceof Promise&&await Promise.race([r,new Promise((n,i)=>setTimeout(()=>i(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function ona(e,t,r=""){let n=await ina(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/RWp}function una(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")throw new vh("Operator is_not_set is not supported")}else throw new vh(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!FWp.includes(o))return r&&r(`Property ${n} cannot have a value of null/undefined with the ${o} operator`),!1;function a(c,l){return Array.isArray(c)?c.map(p=>String(p).toLowerCase()).includes(String(l).toLowerCase()):String(c).toLowerCase()===String(l).toLowerCase()}function u(c,l,p){if(p==="gt")return c>l;if(p==="gte")return c>=l;if(p==="lt")return c<l;if(p==="lte")return c<=l;throw new Error(`Invalid operator: ${p}`)}switch(o){case"exact":return a(i,s);case"is_not":return!a(i,s);case"is_set":return n in t;case"icontains":return String(s).toLowerCase().includes(String(i).toLowerCase());case"not_icontains":return!String(s).toLowerCase().includes(String(i).toLowerCase());case"regex":return sna(String(i))&&String(s).match(String(i))!==null;case"not_regex":return sna(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let c=typeof i=="number"?i:null;if(typeof i=="string")try{c=parseFloat(i)}catch{}return c==null||s==null?u(String(s),String(i),o):typeof s=="string"?u(s,String(i),o):u(s,c,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new vh("Date operations cannot be performed on boolean values");let c=QWp(String(i));if(c==null&&(c=ana(i)),c==null)throw new vh(`Invalid date: ${i}`);let l=ana(s);return["is_date_before"].includes(o)?l<c:l>c}default:throw new vh(`Unknown operator: ${o}`)}}function jWp(e,t){if(!(e in t))throw new vJ(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function cna(e,t,r,n=!1){let i=String(e.value);jWp(i,r);let o=r[i];return lna(o,t,r,n)}function lna(e,t,r,n=!1){if(!e)return!0;let i=e.type,o=e.values;if(!o||o.length===0)return!0;let s=!1;if("values"in o[0]){for(let a of o)try{let u=lna(a,t,r,n);if(i==="AND"){if(!u)return!1}else if(u)return!0}catch(u){if(u instanceof vJ)throw u;if(u instanceof vh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new vh("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let u;if(a.type==="cohort")u=cna(a,t,r,n);else if(a.type==="flag"){n&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${a.key||"unknown"}'`);continue}else u=una(a,t);let c=a.negation||!1;if(i==="AND"){if(!u&&!c||u&&c)return!1}else if(u&&!c||!u&&c)return!0}catch(u){if(u instanceof vJ)throw u;if(u instanceof vh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new vh("can't match cohort without a given cohort property value");return i==="AND"}function sna(e){try{return new RegExp(e),!0}catch{return!1}}function ana(e){if(e instanceof Date)return e;if(typeof e=="string"||typeof e=="number"){let t=new Date(e);if(!isNaN(t.valueOf()))return t;throw new vh(`${e} is in an invalid date format`)}throw new vh(`The date provided ${e} must be a string, number, or date object`)}function QWp(e){let t=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,r=e.match(t),n=new Date(new Date().toISOString());if(!r)return null;{if(!r.groups)return null;let i=parseInt(r.groups.number);if(i>=1e4)return null;let o=r.groups.interval;if(o=="h")n.setUTCHours(n.getUTCHours()-i);else if(o=="d")n.setUTCDate(n.getUTCDate()-i);else if(o=="w")n.setUTCDate(n.getUTCDate()-7*i);else if(o=="m")n.setUTCMonth(n.getUTCMonth()-i);else{if(o!="y")return null;n.setUTCFullYear(n.getUTCFullYear()-i)}return n}}var vor=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var NWp=100,pna=3e4,kWp=5e4,Eor=class extends YOt{constructor(t,r={}){if(super(t,r),this._memoryStorage=new vor,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,NWp):pna,r.personalApiKey){if(r.personalApiKey.includes("phc_"))throw new Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');r.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new bor({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new Oq(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||kWp}getPersistedProperty(t){return this._memoryStorage.getProperty(t)}setPersistedProperty(t,r){return this._memoryStorage.setProperty(t,r)}fetch(t,r){return this.options.fetch?this.options.fetch(t,r):fetch(t,r)}getLibraryVersion(){return nna}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=pna){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let w=this._flagOverrides[t];if(w===void 0)return;let _=this._payloadOverrides?.[t];return{key:t,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:_}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:u,personProperties:c,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,c,l);c=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,c,l);u==null&&(u=this.options.strictLocalEvaluation??!1);let f,m=!1,h,A,y,v,E,b;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let w=this.featureFlagsPoller?.featureFlagsByKey[t];if(w)try{let _=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(w,d,{matchValue:i});if(_){m=!0;let C=_.value;v=w.id,b="Evaluated locally",f={key:t,enabled:C!==!1,variant:typeof C=="string"?C:void 0,payload:_.payload??void 0}}}catch(_){if(_ instanceof vJ||_ instanceof vh)this._logger?.info(`${_.name} when computing flag locally: ${t}: ${_.message}`);else throw _}}if(!m&&!u){let w=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(w===void 0)y=XOt.UNKNOWN_ERROR;else{h=w.requestId,A=w.evaluatedAt;let _=[];w.errorsWhileComputingFlags&&_.push(XOt.ERRORS_WHILE_COMPUTING),w.quotaLimited?.includes("feature_flags")&&_.push(XOt.QUOTA_LIMITED);let C=w.flags[t];if(C===void 0)_.push(XOt.FLAG_MISSING);else{v=C.metadata?.id,E=C.metadata?.version,b=C.reason?.description??C.reason?.code;let x;if(C.metadata?.payload!==void 0)try{x=JSON.parse(C.metadata.payload)}catch{x=C.metadata.payload}f={key:t,enabled:C.enabled,variant:C.variant,payload:x}}_.length>0&&(y=_.join(","))}}if(o){let w=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,_=`${t}_${w}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(_)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(_):this.distinctIdHasSentFlagCalls[r]=[_];let C={$feature_flag:t,$feature_flag_response:w,$feature_flag_id:v,$feature_flag_version:E,$feature_flag_reason:b,locally_evaluated:m,[`$feature/${t}`]:w,$feature_flag_request_id:h,$feature_flag_evaluated_at:m?Date.now():A};if(m&&this.featureFlagsPoller){let x=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();x!==void 0&&(C.$feature_flag_definitions_loaded_at=x)}y&&(C.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:C,groups:s,disableGeoip:a})}}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){let{distinctId:i,options:o}=this._resolveDistinctId(r,n);return i?this._getFeatureFlagResult(t,i,{...o,sendFeatureFlagEvents:o?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()")}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);return n?(await this.getAllFlagsAndPayloads(n,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:u,personProperties:c,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,c,l);c=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,c,l);u==null&&(u=this.options.strictLocalEvaluation??!1);let f=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),m={},h={},A=!0;if(f&&(m=f.response,h=f.payloads,A=f.fallbackToFlags),A&&!u){let y=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...y.flags||{}},h={...h,...y.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(h={...h,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:h}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}enterContext(t,r){this.context?.enter(t,r)}async _shutdown(t){return this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown(),super._shutdown(t)}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=o2e(()=>{o.abort()},this.options.requestTimeout),n.signal=o.signal}try{return await this.fetch(r,n)}catch(o){this._events.emit("error",o);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let n={},i={};for(let[o,s]of Object.entries(t))if(yra(s)&&r&&o in r){let a={};for(let[u,c]of Object.entries(s))a[String(u)]=String(c);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let c={};for(let[l,p]of Object.entries(r||{}))c[l]=String(p);return await this.getAllFlags(t,{groups:c,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let c={};for(let[l,p]of Object.entries(r||{}))c[l]=String(p);return await this.getAllFlags(t,{groups:c,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}createFeatureFlagEvaluationContext(t,r,n,i){return{distinctId:t,groups:r||{},personProperties:n||{},groupProperties:i||{},evaluationCache:{}}}captureException(t,r,n,i){if(!Oq.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(Oq.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!Oq.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(Oq.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:u,uuid:c}=t,l=this.context?.get(),p=r||l?.distinctId,d={...this.props,...l?.properties||{},...i||{}};p||(p=yJ(),d.$process_person_profile=!1),l?.sessionId&&!d.$session_id&&(d.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:d,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:u,uuid:c});if(!f)return Promise.reject(null);let m=await Promise.resolve().then(async()=>{if(s){let h=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,u,h)}return f.event,{}}).then(h=>{let A={};if(h)for(let[v,E]of Object.entries(h))A[`$feature/${v}`]=E;let y=Object.keys(h||{}).filter(v=>h?.[v]!==!1).sort();return y.length>0&&(A.$active_feature_flags=y),A}).catch(()=>({})).then(h=>({...h,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof m.$raw_user_agent=="string"&&dra(m.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",m.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:m,options:{timestamp:f.timestamp,disableGeoip:f.disableGeoip,uuid:f.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var fna=require("async_hooks"),Ior=class{constructor(){this.storage=new fna.AsyncLocalStorage}get(){return this.storage.getStore()}run(t,r,n){return this.storage.run(this.resolve(t,n),r)}enter(t,r){this.storage.enterWith(this.resolve(t,r))}resolve(t,r){if(r?.fresh===!0)return t;let n=this.get()||{};return{distinctId:t.distinctId??n.distinctId,sessionId:t.sessionId??n.sessionId,properties:{...n.properties||{},...t.properties||{}}}}};var dna="posthog-node";function MWp(e,{organization:t,projectId:r,prefix:n,severityAllowList:i=["error"],sendExceptionsToPostHog:o=!0}={}){return s=>{if(!(i==="*"||i.includes(s.level)))return s;s.tags||(s.tags={});let u=s.tags[Svi.POSTHOG_ID_TAG];if(u===void 0)return s;let c=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${u}`,c).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],d=p.map(m=>({...m,stacktrace:m.stacktrace?{...m.stacktrace,type:"raw",frames:(m.stacktrace.frames||[]).map(h=>({...h,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:d,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:u,properties:f}),s}}var Svi=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=dna,this.name=dna,this.setupOnce=function(s,a){let u=a()?.getClient()?.getDsn()?.projectId;s(MWp(t,{organization:r,projectId:u,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};Oq.errorPropertiesBuilder=new mF.ErrorPropertiesBuilder([new mF.EventCoercer,new mF.ErrorCoercer,new mF.ObjectCoercer,new mF.StringCoercer,new mF.PrimitiveCoercer],mF.createStackParser("node:javascript",mF.nodeStackLineParser),[cra(),Xra]);var AHe=class extends Eor{getLibraryId(){return"posthog-node"}initializeContext(){return new Ior}};var wor=class{posthog;constructor({posthogApiKey:t}){this.posthog=new AHe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"4.3.1",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var ZOt=class{async sendEvent(){}async identify(){}async flush(){}};Wt();var yHe=require("fs/promises"),yna=require("os"),bna=require("path");var mna=we(require("crypto")),_or=new Uint8Array(256),Cor=_or.length;function Ovi(){return Cor>_or.length-16&&(mna.default.randomFillSync(_or),Cor=0),_or.slice(Cor,Cor+=16)}var hna=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function LWp(e){return typeof e=="string"&&hna.test(e)}var Bvi=LWp;var fS=[];for(let e=0;e<256;++e)fS.push((e+256).toString(16).slice(1));function gna(e,t=0){return fS[e[t+0]]+fS[e[t+1]]+fS[e[t+2]]+fS[e[t+3]]+"-"+fS[e[t+4]]+fS[e[t+5]]+"-"+fS[e[t+6]]+fS[e[t+7]]+"-"+fS[e[t+8]]+fS[e[t+9]]+"-"+fS[e[t+10]]+fS[e[t+11]]+fS[e[t+12]]+fS[e[t+13]]+fS[e[t+14]]+fS[e[t+15]]}var Ana=we(require("crypto")),Pvi={randomUUID:Ana.default.randomUUID};function UWp(e,t,r){if(Pvi.randomUUID&&!t&&!e)return Pvi.randomUUID();e=e||{};let n=e.random||(e.rng||Ovi)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(let i=0;i<16;++i)t[r+i]=n[i];return t}return gna(n)}var vC=UWp;var zWp="id",VWp=".fern",eBt=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new AHe(r),this.userId=t==null?void 0:lmi(t),this.token=t}async identify(){this.userId!=null&&this.posthog.alias({distinctId:this.userId,alias:await this.getPersistedDistinctId()})}async sendEvent(t){let r=await this.getUserEmail();this.posthog.capture({distinctId:this.userId??await this.getPersistedDistinctId(),event:"CLI",properties:{version:"4.3.1",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await Ib({token:this.token.value}).user.getMyself();if(t.ok&&t.body.email!=null)return this.userEmail=t.body.email,this.userEmail}catch{}this.userEmail=null}}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=We(Vt.of((0,yna.homedir)()),Oe.of(VWp),Oe.of(zWp));await nr(t)||(await(0,yHe.mkdir)((0,bna.dirname)(t),{recursive:!0}),await(0,yHe.writeFile)(t,vC())),this.persistedDistinctId=(await(0,yHe.readFile)(t)).toString()}return this.persistedDistinctId}};var Tvi;async function bHe(){return Tvi==null&&(Tvi=await qWp()),Tvi}async function qWp(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new ZOt;let r=await LXt();return r!=null?new eBt({token:r,posthogApiKey:e}):await ZK()!=null?new wor({posthogApiKey:e}):new eBt({token:void 0,posthogApiKey:e})}catch{return new ZOt}}var vna=(e=0)=>t=>`\x1B[${t+e}m`,Ena=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Ina=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,Qy={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},H1A=Object.keys(Qy.modifier),GWp=Object.keys(Qy.color),WWp=Object.keys(Qy.bgColor),K1A=[...GWp,...WWp];function $Wp(){let e=new Map;for(let[t,r]of Object.entries(Qy)){for(let[n,i]of Object.entries(r))Qy[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=Qy[n],e.set(i[0],i[1]);Object.defineProperty(Qy,t,{value:r,enumerable:!1})}return Object.defineProperty(Qy,"codes",{value:e,enumerable:!1}),Qy.color.close="\x1B[39m",Qy.bgColor.close="\x1B[49m",Qy.color.ansi=vna(),Qy.color.ansi256=Ena(),Qy.color.ansi16m=Ina(),Qy.bgColor.ansi=vna(10),Qy.bgColor.ansi256=Ena(10),Qy.bgColor.ansi16m=Ina(10),Object.defineProperties(Qy,{rgbToAnsi256:{value(t,r,n){return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let i=Number.parseInt(n,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>Qy.rgbToAnsi256(...Qy.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,i;if(t>=232)r=((t-232)*10+8)/255,n=r,i=r;else{t-=16;let a=t%36;r=Math.floor(t/36)/5,n=Math.floor(a/6)/5,i=a%6/5}let o=Math.max(r,n,i)*2;if(o===0)return 30;let s=30+(Math.round(i)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>Qy.ansi256ToAnsi(Qy.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>Qy.ansi256ToAnsi(Qy.hexToAnsi256(t)),enumerable:!1}}),Qy}var HWp=$Wp(),Bq=HWp;var Sor=we(require("process"),1),Cna=we(require("os"),1),Dvi=we(require("tty"),1);function oL(e,t=globalThis.Deno?globalThis.Deno.args:Sor.default.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return n!==-1&&(i===-1||n<i)}var{env:Ny}=Sor.default,xor;oL("no-color")||oL("no-colors")||oL("color=false")||oL("color=never")?xor=0:(oL("color")||oL("colors")||oL("color=true")||oL("color=always"))&&(xor=1);function KWp(){if("FORCE_COLOR"in Ny)return Ny.FORCE_COLOR==="true"?1:Ny.FORCE_COLOR==="false"?0:Ny.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(Ny.FORCE_COLOR,10),3)}function JWp(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function YWp(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=KWp();n!==void 0&&(xor=n);let i=r?xor:n;if(i===0)return 0;if(r){if(oL("color=16m")||oL("color=full")||oL("color=truecolor"))return 3;if(oL("color=256"))return 2}if("TF_BUILD"in Ny&&"AGENT_NAME"in Ny)return 1;if(e&&!t&&i===void 0)return 0;let o=i||0;if(Ny.TERM==="dumb")return o;if(Sor.default.platform==="win32"){let s=Cna.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in Ny)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in Ny)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in Ny)||Ny.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in Ny)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Ny.TEAMCITY_VERSION)?1:0;if(Ny.COLORTERM==="truecolor"||Ny.TERM==="xterm-kitty"||Ny.TERM==="xterm-ghostty"||Ny.TERM==="wezterm")return 3;if("TERM_PROGRAM"in Ny){let s=Number.parseInt((Ny.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Ny.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Ny.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Ny.TERM)||"COLORTERM"in Ny?1:o}function wna(e,t={}){let r=YWp(e,{streamIsTTY:e&&e.isTTY,...t});return JWp(r)}var XWp={stdout:wna({isTTY:Dvi.default.isatty(1)}),stderr:wna({isTTY:Dvi.default.isatty(2)})},_na=XWp;function xna(e,t,r){let n=e.indexOf(t);if(n===-1)return e;let i=t.length,o=0,s="";do s+=e.slice(o,n)+t+r,o=n+i,n=e.indexOf(t,o);while(n!==-1);return s+=e.slice(o),s}function Sna(e,t,r,n){let i=0,o="";do{let s=e[n-1]==="\r";o+=e.slice(i,s?n-1:n)+t+(s?`\r
1445
+ `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let u=zra.test(a)?a.replace(zra,"$1"):a;if(!u.match(/\S*Error: /)){for(let c of t){let l=c(u,e);if(l){i.push(l);break}}if(i.length>=Vra)break}}return qra(i)}}var Avi=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=$Ot(t.stack);return{type:this.getType(t),value:this.getValue(t),stack:n?t.stack:void 0,cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return this.isDOMError(t)?"DOMError":"DOMException"}getValue(t){let r=t.name||(this.isDOMError(t)?"DOMError":"DOMException");return t.message?`${r}: ${t.message}`:r}isDOMException(t){return i2e(t,"DOMException")}isDOMError(t){return i2e(t,"DOMError")}};var yvi=class{match(t){return ovi(t)}coerce(t,r){return{type:this.getType(t),value:this.getMessage(t,r),stack:this.getStack(t),cause:t.cause?r.next(t.cause):void 0,synthetic:!1}}getType(t){return t.name||t.constructor.name}getMessage(t,r){let n=t.message;return n.error&&typeof n.error.message=="string"?String(n.error.message):String(n)}getStack(t){return t.stacktrace||t.stack||void 0}};var bvi=class{constructor(){}match(t){return Ara(t)&&t.error!=null}coerce(t,r){let n=r.apply(t.error);return n||{type:"ErrorEvent",value:t.message,stack:r.syntheticException?.stack,synthetic:!0}}};var yWp=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,vvi=class{match(t){return typeof t=="string"}coerce(t,r){let[n,i]=this.getInfos(t);return{type:n??"Error",value:i??t,stack:r.syntheticException?.stack,synthetic:!0}}getInfos(t){let r="Error",n=t,i=t.match(yWp);return i&&(r=i[1],n=i[2]),[r,n]}};var Wra=["fatal","error","warning","log","info","debug"];function Aor(e,t=40){let r=Object.keys(e);if(r.sort(),!r.length)return"[object has no keys]";for(let n=r.length;n>0;n--){let i=r.slice(0,n).join(", ");if(!(i.length>t))return n===r.length||i.length<=t?i:`${i.slice(0,t)}...`}return""}var Evi=class{match(t){return typeof t=="object"&&t!==null}coerce(t,r){let n=this.getErrorPropertyFromObject(t);return n?r.apply(n):{type:this.getType(t),value:this.getValue(t),stack:r.syntheticException?.stack,level:this.isSeverityLevel(t.level)?t.level:"error",synthetic:!0}}getType(t){return ior(t)?t.constructor.name:"Error"}getValue(t){if("name"in t&&typeof t.name=="string"){let i=`'${t.name}' captured as exception`;return"message"in t&&typeof t.message=="string"&&(i+=` with message: '${t.message}'`),i}if("message"in t&&typeof t.message=="string")return t.message;let r=this.getObjectClassName(t),n=Aor(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return $Ot(t)&&!hra(t)&&Wra.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(Tra(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var Ivi=class{match(t){return ior(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${Aor(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var wvi=class{match(t){return HOt(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var Cvi=class{match(t){return i2e(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return HOt(n)?{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(n)}`,stack:r.syntheticException?.stack,synthetic:!0}:r.apply(n)}getUnhandledRejectionReason(t){if(HOt(t))return t;try{if("reason"in t)return t.reason;if("detail"in t&&"reason"in t.detail)return t.detail.reason}catch{}return t}};var _vi=class{constructor(t){this._maxSize=t,this._cache=new Map}get(t){let r=this._cache.get(t);if(r!==void 0)return this._cache.delete(t),this._cache.set(t,r),r}set(t,r){this._cache.set(t,r)}reduce(){for(;this._cache.size>=this._maxSize;){let t=this._cache.keys().next().value;t&&this._cache.delete(t)}}};var Kra=require("fs"),Jra=require("readline"),yor=new mF.ReduceableCache(25),Yra=new mF.ReduceableCache(20),xvi=7,bWp=1e3,vWp=1e4;async function Xra(e){let t={};for(let i=e.length-1;i>=0;i--){let o=e[i],s=o?.filename;if(!o||typeof s!="string"||typeof o.lineno!="number"||CWp(s)||_Wp(o))continue;t[s]||(t[s]=[]),t[s].push(o.lineno)}let r=Object.keys(t);if(r.length==0)return e;let n=[];for(let i of r){if(Yra.get(i))continue;let o=t[i];if(!o)continue;o.sort((u,c)=>u-c);let s=SWp(o);if(s.every(u=>xWp(i,u)))continue;let a=OWp(yor,i,{});n.push(EWp(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&IWp(e,yor),yor.reduce(),e}function EWp(e,t,r){return new Promise(n=>{let i=(0,Kra.createReadStream)(e),o=(0,Jra.createInterface)({input:i});function s(){i.destroy(),n()}let a=0,u=0,c=t[u];if(c===void 0)return void s();let l=c[0],p=c[1];function d(){Yra.set(e,1),o.close(),o.removeAllListeners(),s()}i.on("error",d),o.on("error",d),o.on("close",s),o.on("line",f=>{if(a++,!(a<l)&&(r[a]=BWp(f,0),a>=p)){if(u===t.length-1){o.close(),o.removeAllListeners();return}u++;let m=t[u];if(m===void 0){o.close(),o.removeAllListeners();return}l=m[0],p=m[1]}})})}function IWp(e,t){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno=="number"){let n=t.get(r.filename);if(n===void 0)continue;wWp(r.lineno,r,n)}}function wWp(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=Zra(e);i<e;i++){let o=r[i];if(o===void 0)return void $ra(t);t.pre_context.push(o)}if(r[e]===void 0)return void $ra(t);t.context_line=r[e];let n=ena(e);t.post_context=[];for(let i=e+1;i<=n;i++){let o=r[i];if(o===void 0)break;t.post_context.push(o)}}function $ra(e){delete e.pre_context,delete e.context_line,delete e.post_context}function CWp(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function _Wp(e){return e.lineno!==void 0&&e.lineno>vWp||e.colno!==void 0&&e.colno>bWp}function xWp(e,t){let r=yor.get(e);if(r===void 0)return!1;for(let n=t[0];n<=t[1];n++)if(r[n]===void 0)return!1;return!0}function SWp(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=Hra(r),i=[];for(;;){if(t===e.length-1){i.push(n);break}let o=e[t+1];if(typeof o!="number")break;o<=n[1]?n[1]=o+xvi:(i.push(n),n=Hra(o)),t++}return i}function Hra(e){return[Zra(e),ena(e)]}function Zra(e){return Math.max(1,e-xvi)}function ena(e){return e+xvi}function OWp(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function BWp(e,t){let r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,n);return o>n-5&&(o=n),o===n&&(i=Math.max(o-140,0)),r=r.slice(i,o),i>0&&(r=`...${r}`),o<n&&(r+="..."),r}function PWp(e,t){let r=!1;return Object.assign(n=>{let o=global.process.listeners("uncaughtException").filter(s=>s.name!=="domainUncaughtExceptionClear"&&s._posthogErrorHandler!==!0).length===0;e(n,{mechanism:{type:"onuncaughtexception",handled:!1}}),!r&&o&&(r=!0,t(n))},{_posthogErrorHandler:!0})}function tna(e,t){globalThis.process?.on("uncaughtException",PWp(e,t))}function rna(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var TWp=2e3,Oq=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new oor({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return ivi(t)&&"__posthog_previously_captured_error"in t&&t.__posthog_previously_captured_error===!0}static async buildEventMessage(t,r,n,i){let o={...i};n||(o.$process_person_profile=!1);let s=this.errorPropertiesBuilder.buildFromUnknown(t,r);return s.$exception_list=await this.errorPropertiesBuilder.modifyFrames(s.$exception_list),{event:"$exception",distinctId:n||yJ(),properties:{...s,...o},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){this.isEnabled()&&(tna(this.onException.bind(this),this.onFatalError.bind(this)),rna(this.onException.bind(this)))}onException(t,r){this.client.addPendingPromise((async()=>{if(!e.isPreviouslyCapturedError(t)){let n=await e.buildEventMessage(t,r),o=n.properties?.$exception_list[0]?.type??"Exception";return this._rateLimiter.consumeRateLimit(o)?void this._logger.info("Skipping exception capture because of client rate limiting.",{exception:o}):this.client.capture(n)}})())}async onFatalError(t){console.error(t),await this.client.shutdown(TWp),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var nna="5.26.2";var XOt={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function ina(e){let t=globalThis.crypto?.subtle;if(!t)throw new Error("SubtleCrypto API not available");let r=await t.digest("SHA-1",new TextEncoder().encode(e));return Array.from(new Uint8Array(r)).map(i=>i.toString(16).padStart(2,"0")).join("")}var DWp=6e4,RWp=1152921504606847e3,FWp=["is_not"],gHe=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},vh=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},vJ=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},bor=class{constructor({pollingInterval:t,personalApiKey:r,projectApiKey:n,timeout:i,host:o,customHeaders:s,...a}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=t,this.personalApiKey=r,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=i,this.projectApiKey=n,this.host=o,this.poller=void 0,this.fetch=a.fetch||fetch,this.onError=a.onError,this.customHeaders=s,this.onLoad=a.onLoad,this.cacheProvider=a.cacheProvider,this.strictLocalEvaluation=a.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(t=!0){this.debugMode=t}logMsgIfDebug(t){this.debugMode&&t()}createEvaluationContext(t,r={},n={},i={},o={}){return{distinctId:t,groups:r,personProperties:n,groupProperties:i,evaluationCache:o}}async getFeatureFlag(t,r,n={},i={},o={}){await this.loadFeatureFlags();let s,a;if(!this.loadedSuccessfullyOnce)return s;if(a=this.featureFlagsByKey[t],a!==void 0){let u=this.createEvaluationContext(r,n,i,o);try{s=(await this.computeFlagAndPayloadLocally(a,u)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${t} -> ${s}`))}catch(c){c instanceof vJ||c instanceof vh?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${t}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${t}: ${c}`))}}return s}async getAllFlagsAndPayloads(t,r){await this.loadFeatureFlags();let n={},i={},o=this.featureFlags.length==0,s=r?r.map(u=>this.featureFlagsByKey[u]).filter(Boolean):this.featureFlags,a={...t,evaluationCache:t.evaluationCache??{}};return await Promise.all(s.map(async u=>{try{let{value:c,payload:l}=await this.computeFlagAndPayloadLocally(u,a);n[u.key]=c,l&&(i[u.key]=l)}catch(c){c instanceof vJ||c instanceof vh?this.logMsgIfDebug(()=>console.debug(`${c.name} when computing flag locally: ${u.key}: ${c.message}`)):c instanceof Error&&this.onError?.(new Error(`Error computing flag locally: ${u.key}: ${c}`)),o=!0}})),{response:n,payloads:i,fallbackToFlags:o}}async computeFlagAndPayloadLocally(t,r,n={}){let{matchValue:i,skipLoadCheck:o=!1}=n;if(o||await this.loadFeatureFlags(),!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let s;s=i!==void 0?i:await this.computeFlagValueLocally(t,r);let a=this.getFeatureFlagPayload(t.key,s);return{value:s,payload:a}}async computeFlagValueLocally(t,r){let{distinctId:n,groups:i,personProperties:o,groupProperties:s}=r;if(t.ensure_experience_continuity)throw new vh("Flag has experience continuity enabled");if(!t.active)return!1;let u=(t.filters||{}).aggregation_group_type_index;if(u!=null){let c=this.groupTypeMapping[String(u)];if(!c)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${u} for feature flag ${t.key}`)),new vh("Flag has unknown group type index");if(!(c in i))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${t.key} without group names passed in`)),!1;t.bucketing_identifier==="device_id"&&(o?.$device_id===void 0||o?.$device_id===null||o?.$device_id==="")&&this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${t.key}`));let l=s[c];return await this.matchFeatureFlagProperties(t,i[c],l,r)}{let c=this.getBucketingValueForFlag(t,n,o);if(c===void 0)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${t.key} without $device_id, falling back to server evaluation`)),new vh(`Can't compute feature flag: ${t.key} without $device_id`);return await this.matchFeatureFlagProperties(t,c,o,r)}}getBucketingValueForFlag(t,r,n){if(t.filters?.aggregation_group_type_index!=null)return r;if(t.bucketing_identifier==="device_id"){let i=n?.$device_id;return i==null||i===""?void 0:i}return r}getFeatureFlagPayload(t,r){let n=null;if(r!==!1&&r!=null&&(typeof r=="boolean"?n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r.toString()]||null:typeof r=="string"&&(n=this.featureFlagsByKey?.[t]?.filters?.payloads?.[r]||null),n!=null)){if(typeof n=="object")return n;if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}return null}async evaluateFlagDependency(t,r,n){let{evaluationCache:i}=n,o=t.key;if(!this.featureFlagsByKey)throw new vh("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new vh(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new vh(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new vh(`Circular dependency detected for flag '${o}' (empty dependency chain)`);for(let u of s){if(!(u in i)){let l=this.featureFlagsByKey[u];if(l)if(l.active)try{let p=await this.computeFlagValueLocally(l,n);i[u]=p}catch(p){throw new vh(`Error evaluating flag dependency '${u}' for flag '${o}': ${p}`)}else i[u]=!1;else throw new vh(`Missing flag dependency '${u}' for flag '${o}'`)}if(i[u]==null)throw new vh(`Dependency '${u}' could not be evaluated`)}let a=i[o];return this.flagEvaluatesToExpectedValue(t.value,a)}flagEvaluatesToExpectedValue(t,r){return typeof t=="boolean"?t===r||typeof r=="string"&&r!==""&&t===!0:typeof t=="string"?r===t:!1}async matchFeatureFlagProperties(t,r,n,i){let o=t.filters||{},s=o.groups||[],a=!1,u;for(let c of s)try{if(await this.isConditionMatch(t,r,c,n,i)){let l=c.variant,p=o.multivariate?.variants||[];u=l&&p.some(d=>d.key===l)?l:await this.getMatchingVariant(t,r)||!0;break}}catch(l){if(l instanceof vJ)throw l;if(l instanceof vh)a=!0;else throw l}if(u!==void 0)return u;if(a)throw new vh("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(t,r,n,i,o){let s=n.rollout_percentage,a=u=>{this.logMsgIfDebug(()=>console.warn(u))};if((n.properties||[]).length>0){for(let u of n.properties){let c=u.type,l=!1;if(l=c==="cohort"?cna(u,i,this.cohorts,this.debugMode):c==="flag"?await this.evaluateFlagDependency(u,i,o):una(u,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await ona(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await ona(t.key,r,"variant"),i=this.variantLookupTable(t).find(o=>n>=o.valueMin&&n<o.valueMax);if(i)return i.key}variantLookupTable(t){let r=[],n=0,i=0;return((t.filters||{}).multivariate?.variants||[]).forEach(a=>{i=n+a.rollout_percentage/100,r.push({valueMin:n,valueMax:i,key:a.key}),n=i}),r}updateFlagState(t){this.featureFlags=t.flags,this.featureFlagsByKey=t.flags.reduce((r,n)=>(r[n.key]=n,r),{}),this.groupTypeMapping=t.groupTypeMapping,this.cohorts=t.cohorts,this.loadedSuccessfullyOnce=!0}warnAboutExperienceContinuityFlags(t){if(this.strictLocalEvaluation)return;let r=t.filter(n=>n.ensure_experience_continuity);r.length>0&&console.warn(`[PostHog] You are using local evaluation but ${r.length} flag(s) have experience continuity enabled: ${r.map(n=>n.key).join(", ")}. Experience continuity is incompatible with local evaluation and will cause a server request on every flag evaluation, negating local evaluation cost savings. To avoid server requests and unexpected costs, either disable experience continuity on these flags in PostHog, use strictLocalEvaluation: true in client init, or pass onlyEvaluateLocally: true per flag call (flags that cannot be evaluated locally will return undefined).`)}async loadFromCache(t){if(!this.cacheProvider)return!1;try{let r=await this.cacheProvider.getFlagDefinitions();return r?(this.updateFlagState(r),this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] ${t} (${r.flags.length} flags)`)),this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(r.flags),!0):!1}catch(r){return this.onError?.(new Error(`Failed to load from cache: ${r}`)),!1}}async loadFeatureFlags(t=!1){if(!(this.loadedSuccessfullyOnce&&!t))return!t&&this.nextFetchAllowedAt&&Date.now()<this.nextFetchAllowedAt?void this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Skipping fetch, in backoff period")):(this.loadingPromise||(this.loadingPromise=this._loadFeatureFlags().catch(r=>this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Failed to load feature flags: ${r}`))).finally(()=>{this.loadingPromise=void 0})),this.loadingPromise)}isLocalEvaluationReady(){return(this.loadedSuccessfullyOnce??!1)&&(this.featureFlags?.length??0)>0}getFlagDefinitionsLoadedAt(){return this.flagDefinitionsLoadedAt}getPollingInterval(){return this.shouldBeginExponentialBackoff?Math.min(DWp,this.pollingInterval*2**this.backOffCount):this.pollingInterval}beginBackoff(){this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,this.nextFetchAllowedAt=Date.now()+this.getPollingInterval()}clearBackoff(){this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.nextFetchAllowedAt=void 0}async _loadFeatureFlags(){this.poller&&(clearTimeout(this.poller),this.poller=void 0),this.poller=setTimeout(()=>this.loadFeatureFlags(!0),this.getPollingInterval());try{let t=!0;if(this.cacheProvider)try{t=await this.cacheProvider.shouldFetchFlagDefinitions()}catch(n){this.onError?.(new Error(`Error in shouldFetchFlagDefinitions: ${n}`))}if(!t&&(await this.loadFromCache("Loaded flags from cache (skipped fetch)")||this.loadedSuccessfullyOnce))return;let r=await this._requestFeatureFlagDefinitions();if(!r)return;switch(r.status){case 304:this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Flags not modified (304), using cached data")),this.flagsEtag=r.headers?.get("ETag")??this.flagsEtag,this.loadedSuccessfullyOnce=!0,this.clearBackoff();return;case 401:throw this.beginBackoff(),new gHe(`Your project key or personal API key is invalid. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 402:console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - unsetting all local flags. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={};return;case 403:throw this.beginBackoff(),new gHe(`Your personal API key does not have permission to fetch feature flag definitions for local evaluation. Setting next polling interval to ${this.getPollingInterval()}ms. Are you sure you're using the correct personal and Project API key pair? More information: https://posthog.com/docs/api/overview`);case 429:throw this.beginBackoff(),new gHe(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let n=await r.json()??{};if(!("flags"in n))return void this.onError?.(new Error(`Invalid response when getting feature flags: ${JSON.stringify(n)}`));this.flagsEtag=r.headers?.get("ETag")??void 0;let i={flags:n.flags??[],groupTypeMapping:n.group_type_mapping||{},cohorts:n.cohorts||{}};if(this.updateFlagState(i),this.flagDefinitionsLoadedAt=Date.now(),this.clearBackoff(),this.cacheProvider&&t)try{await this.cacheProvider.onFlagDefinitionsReceived(i)}catch(o){this.onError?.(new Error(`Failed to store in cache: ${o}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(i.flags);break}default:return}}catch(t){t instanceof gHe&&this.onError?.(t)}}getPersonalApiKeyRequestOptions(t="GET",r){let n={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};return r&&(n["If-None-Match"]=r),{method:t,headers:n}}_requestFeatureFlagDefinitions(){let t=`${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`,r=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),n=null;if(this.timeout&&typeof this.timeout=="number"){let i=new AbortController;n=o2e(()=>{i.abort()},this.timeout),r.signal=i.signal}try{let i=this.fetch;return i(t,r)}finally{clearTimeout(n)}}async stopPoller(t=3e4){if(clearTimeout(this.poller),this.cacheProvider)try{let r=this.cacheProvider.shutdown();r instanceof Promise&&await Promise.race([r,new Promise((n,i)=>setTimeout(()=>i(new Error(`Cache shutdown timeout after ${t}ms`)),t))])}catch(r){this.onError?.(new Error(`Error during cache shutdown: ${r}`))}}};async function ona(e,t,r=""){let n=await ina(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/RWp}function una(e,t,r){let n=e.key,i=e.value,o=e.operator||"exact";if(n in t){if(o==="is_not_set")throw new vh("Operator is_not_set is not supported")}else throw new vh(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!FWp.includes(o))return r&&r(`Property ${n} cannot have a value of null/undefined with the ${o} operator`),!1;function a(c,l){return Array.isArray(c)?c.map(p=>String(p).toLowerCase()).includes(String(l).toLowerCase()):String(c).toLowerCase()===String(l).toLowerCase()}function u(c,l,p){if(p==="gt")return c>l;if(p==="gte")return c>=l;if(p==="lt")return c<l;if(p==="lte")return c<=l;throw new Error(`Invalid operator: ${p}`)}switch(o){case"exact":return a(i,s);case"is_not":return!a(i,s);case"is_set":return n in t;case"icontains":return String(s).toLowerCase().includes(String(i).toLowerCase());case"not_icontains":return!String(s).toLowerCase().includes(String(i).toLowerCase());case"regex":return sna(String(i))&&String(s).match(String(i))!==null;case"not_regex":return sna(String(i))&&String(s).match(String(i))===null;case"gt":case"gte":case"lt":case"lte":{let c=typeof i=="number"?i:null;if(typeof i=="string")try{c=parseFloat(i)}catch{}return c==null||s==null?u(String(s),String(i),o):typeof s=="string"?u(s,String(i),o):u(s,c,o)}case"is_date_after":case"is_date_before":{if(typeof i=="boolean")throw new vh("Date operations cannot be performed on boolean values");let c=QWp(String(i));if(c==null&&(c=ana(i)),c==null)throw new vh(`Invalid date: ${i}`);let l=ana(s);return["is_date_before"].includes(o)?l<c:l>c}default:throw new vh(`Unknown operator: ${o}`)}}function jWp(e,t){if(!(e in t))throw new vJ(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function cna(e,t,r,n=!1){let i=String(e.value);jWp(i,r);let o=r[i];return lna(o,t,r,n)}function lna(e,t,r,n=!1){if(!e)return!0;let i=e.type,o=e.values;if(!o||o.length===0)return!0;let s=!1;if("values"in o[0]){for(let a of o)try{let u=lna(a,t,r,n);if(i==="AND"){if(!u)return!1}else if(u)return!0}catch(u){if(u instanceof vJ)throw u;if(u instanceof vh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new vh("Can't match cohort without a given cohort property value");return i==="AND"}for(let a of o)try{let u;if(a.type==="cohort")u=cna(a,t,r,n);else if(a.type==="flag"){n&&console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${a.key||"unknown"}'`);continue}else u=una(a,t);let c=a.negation||!1;if(i==="AND"){if(!u&&!c||u&&c)return!1}else if(u&&!c||!u&&c)return!0}catch(u){if(u instanceof vJ)throw u;if(u instanceof vh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new vh("can't match cohort without a given cohort property value");return i==="AND"}function sna(e){try{return new RegExp(e),!0}catch{return!1}}function ana(e){if(e instanceof Date)return e;if(typeof e=="string"||typeof e=="number"){let t=new Date(e);if(!isNaN(t.valueOf()))return t;throw new vh(`${e} is in an invalid date format`)}throw new vh(`The date provided ${e} must be a string, number, or date object`)}function QWp(e){let t=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,r=e.match(t),n=new Date(new Date().toISOString());if(!r)return null;{if(!r.groups)return null;let i=parseInt(r.groups.number);if(i>=1e4)return null;let o=r.groups.interval;if(o=="h")n.setUTCHours(n.getUTCHours()-i);else if(o=="d")n.setUTCDate(n.getUTCDate()-i);else if(o=="w")n.setUTCDate(n.getUTCDate()-7*i);else if(o=="m")n.setUTCMonth(n.getUTCMonth()-i);else{if(o!="y")return null;n.setUTCFullYear(n.getUTCFullYear()-i)}return n}}var vor=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var NWp=100,pna=3e4,kWp=5e4,Eor=class extends YOt{constructor(t,r={}){if(super(t,r),this._memoryStorage=new vor,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,NWp):pna,r.personalApiKey){if(r.personalApiKey.includes("phc_"))throw new Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');r.enableLocalEvaluation!==!1&&(this.featureFlagsPoller=new bor({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:r.personalApiKey,projectApiKey:t,timeout:r.requestTimeout??1e4,host:this.host,fetch:r.fetch,onError:i=>{this._events.emit("error",i)},onLoad:i=>{this._events.emit("localEvaluationFlagsLoaded",i)},customHeaders:this.getCustomHeaders(),cacheProvider:r.flagDefinitionCacheProvider,strictLocalEvaluation:r.strictLocalEvaluation}))}this.errorTracking=new Oq(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||kWp}getPersistedProperty(t){return this._memoryStorage.getProperty(t)}setPersistedProperty(t,r){return this._memoryStorage.setProperty(t,r)}fetch(t,r){return this.options.fetch?this.options.fetch(t,r):fetch(t,r)}getLibraryVersion(){return nna}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(t=!0){super.debug(t),this.featureFlagsPoller?.debug(t)}capture(t){typeof t=="string"&&this._logger.warn("Called capture() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStateless(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}async captureImmediate(t){return typeof t=="string"&&this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected."),t.event==="$exception"&&!t._originatedFromCaptureException&&this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default."),this.addPendingPromise(this.prepareEventMessage(t).then(({distinctId:r,event:n,properties:i,options:o})=>super.captureStatelessImmediate(r,n,i,{timestamp:o.timestamp,disableGeoip:o.disableGeoip,uuid:o.uuid})).catch(r=>{r&&console.error(r)}))}identify({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStateless(t,l,{disableGeoip:n})}async identifyImmediate({distinctId:t,properties:r={},disableGeoip:n}){let{$set:i,$set_once:o,$anon_distinct_id:s,...a}=r,l={$set:i||a,$set_once:o||{},$anon_distinct_id:s??void 0};super.identifyStatelessImmediate(t,l,{disableGeoip:n})}alias(t){super.aliasStateless(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}async aliasImmediate(t){await super.aliasStatelessImmediate(t.alias,t.distinctId,void 0,{disableGeoip:t.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(t=pna){return this.isLocalEvaluationReady()?!0:this.featureFlagsPoller===void 0?!1:new Promise(r=>{let n=setTimeout(()=>{i(),r(!1)},t),i=this._events.on("localEvaluationFlagsLoaded",o=>{clearTimeout(n),i(),r(o>0)})})}_resolveDistinctId(t,r){return typeof t=="string"?{distinctId:t,options:r}:{distinctId:this.context?.get()?.distinctId,options:t}}async _getFeatureFlagResult(t,r,n={},i){let o=n.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&t in this._flagOverrides){let w=this._flagOverrides[t];if(w===void 0)return;let _=this._payloadOverrides?.[t];return{key:t,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:_}}let{groups:s,disableGeoip:a}=n,{onlyEvaluateLocally:u,personProperties:c,groupProperties:l}=n,p=this.addLocalPersonAndGroupProperties(r,s,c,l);c=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(r,s,c,l);u==null&&(u=this.options.strictLocalEvaluation??!1);let f,m=!1,h,A,y,v,E,b;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let w=this.featureFlagsPoller?.featureFlagsByKey[t];if(w)try{let _=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(w,d,{matchValue:i});if(_){m=!0;let C=_.value;v=w.id,b="Evaluated locally",f={key:t,enabled:C!==!1,variant:typeof C=="string"?C:void 0,payload:_.payload??void 0}}}catch(_){if(_ instanceof vJ||_ instanceof vh)this._logger?.info(`${_.name} when computing flag locally: ${t}: ${_.message}`);else throw _}}if(!m&&!u){let w=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(w===void 0)y=XOt.UNKNOWN_ERROR;else{h=w.requestId,A=w.evaluatedAt;let _=[];w.errorsWhileComputingFlags&&_.push(XOt.ERRORS_WHILE_COMPUTING),w.quotaLimited?.includes("feature_flags")&&_.push(XOt.QUOTA_LIMITED);let C=w.flags[t];if(C===void 0)_.push(XOt.FLAG_MISSING);else{v=C.metadata?.id,E=C.metadata?.version,b=C.reason?.description??C.reason?.code;let x;if(C.metadata?.payload!==void 0)try{x=JSON.parse(C.metadata.payload)}catch{x=C.metadata.payload}f={key:t,enabled:C.enabled,variant:C.variant,payload:x}}_.length>0&&(y=_.join(","))}}if(o){let w=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,_=`${t}_${w}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(_)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(_):this.distinctIdHasSentFlagCalls[r]=[_];let C={$feature_flag:t,$feature_flag_response:w,$feature_flag_id:v,$feature_flag_version:E,$feature_flag_reason:b,locally_evaluated:m,[`$feature/${t}`]:w,$feature_flag_request_id:h,$feature_flag_evaluated_at:m?Date.now():A};if(m&&this.featureFlagsPoller){let x=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();x!==void 0&&(C.$feature_flag_definitions_loaded_at=x)}y&&(C.$feature_flag_error=y),this.capture({distinctId:r,event:"$feature_flag_called",properties:C,groups:s,disableGeoip:a})}}return f!==void 0&&this._payloadOverrides!==void 0&&t in this._payloadOverrides&&(f={...f,payload:this._payloadOverrides[t]}),f}async getFeatureFlag(t,r,n){let i=await this._getFeatureFlagResult(t,r,{...n,sendFeatureFlagEvents:n?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(i!==void 0)return i.enabled===!1?!1:i.variant??!0}async getFeatureFlagPayload(t,r,n,i){if(this._payloadOverrides!==void 0&&t in this._payloadOverrides)return this._payloadOverrides[t];let o=await this._getFeatureFlagResult(t,r,{...i,sendFeatureFlagEvents:!1},n);if(o!==void 0)return o.payload??null}async getFeatureFlagResult(t,r,n){let{distinctId:i,options:o}=this._resolveDistinctId(r,n);return i?this._getFeatureFlagResult(t,i,{...o,sendFeatureFlagEvents:o?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0}):void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()")}async getRemoteConfigPayload(t){if(!this.options.personalApiKey)throw new Error("Personal API key is required for remote config payload decryption");let r=await this._requestRemoteConfigPayload(t);if(!r)return;let n=await r.json();if(typeof n=="string")try{return JSON.parse(n)}catch{}return n}async isFeatureEnabled(t,r,n){let i=await this.getFeatureFlag(t,r,n);if(i!==void 0)return!!i||!1}async getAllFlags(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);return n?(await this.getAllFlagsAndPayloads(n,i)).featureFlags||{}:(this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{})}async getAllFlagsAndPayloads(t,r){let{distinctId:n,options:i}=this._resolveDistinctId(t,r);if(!n)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:o,disableGeoip:s,flagKeys:a}=i||{},{onlyEvaluateLocally:u,personProperties:c,groupProperties:l}=i||{},p=this.addLocalPersonAndGroupProperties(n,o,c,l);c=p.allPersonProperties,l=p.allGroupProperties;let d=this.createFeatureFlagEvaluationContext(n,o,c,l);u==null&&(u=this.options.strictLocalEvaluation??!1);let f=await this.featureFlagsPoller?.getAllFlagsAndPayloads(d,a),m={},h={},A=!0;if(f&&(m=f.response,h=f.payloads,A=f.fallbackToFlags),A&&!u){let y=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...y.flags||{}},h={...h,...y.payloads||{}}}return this._flagOverrides!==void 0&&(m={...m,...this._flagOverrides}),this._payloadOverrides!==void 0&&(h={...h,...this._payloadOverrides}),{featureFlags:m,featureFlagPayloads:h}}groupIdentify({groupType:t,groupKey:r,properties:n,distinctId:i,disableGeoip:o}){super.groupIdentifyStateless(t,r,n,{disableGeoip:o},i)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(t){let r=n=>Object.fromEntries(n.map(i=>[i,!0]));if(t===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(t)){this._flagOverrides=r(t);return}if(this._isFeatureFlagOverrideOptions(t)){"flags"in t&&(t.flags===!1?this._flagOverrides=void 0:Array.isArray(t.flags)?this._flagOverrides=r(t.flags):t.flags!==void 0&&(this._flagOverrides={...t.flags})),"payloads"in t&&(t.payloads===!1?this._payloadOverrides=void 0:t.payloads!==void 0&&(this._payloadOverrides={...t.payloads}));return}this._flagOverrides={...t}}_isFeatureFlagOverrideOptions(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let r=t;if("flags"in r){let n=r.flags;if(n===!1||Array.isArray(n)||typeof n=="object"&&n!==null)return!0}if("payloads"in r){let n=r.payloads;if(n===!1||typeof n=="object"&&n!==null)return!0}return!1}withContext(t,r,n){return this.context?this.context.run(t,r,n):r()}getContext(){return this.context?.get()}enterContext(t,r){this.context?.enter(t,r)}async _shutdown(t){return this.featureFlagsPoller?.stopPoller(t),this.errorTracking.shutdown(),super._shutdown(t)}async _requestRemoteConfigPayload(t){if(!this.options.personalApiKey)return;let r=`${this.host}/api/projects/@current/feature_flags/${t}/remote_config?token=${encodeURIComponent(this.apiKey)}`,n={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},i=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let o=new AbortController;i=o2e(()=>{o.abort()},this.options.requestTimeout),n.signal=o.signal}try{return await this.fetch(r,n)}catch(o){this._events.emit("error",o);return}finally{i&&clearTimeout(i)}}extractPropertiesFromEvent(t,r){if(!t)return{personProperties:{},groupProperties:{}};let n={},i={};for(let[o,s]of Object.entries(t))if(yra(s)&&r&&o in r){let a={};for(let[u,c]of Object.entries(s))a[String(u)]=String(c);i[String(o)]=a}else n[String(o)]=String(s);return{personProperties:n,groupProperties:i}}async getFeatureFlagsForEvent(t,r,n,i){let o=i?.personProperties||{},s=i?.groupProperties||{},a=i?.flagKeys;if(i?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let c={};for(let[l,p]of Object.entries(r||{}))c[l]=String(p);return await this.getAllFlags(t,{groups:c,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}else return{};if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let c={};for(let[l,p]of Object.entries(r||{}))c[l]=String(p);return await this.getAllFlags(t,{groups:c,personProperties:o,groupProperties:s,disableGeoip:n,onlyEvaluateLocally:!0,flagKeys:a})}return(await super.getFeatureFlagsStateless(t,r,o,s,n)).flags}addLocalPersonAndGroupProperties(t,r,n,i){let o={distinct_id:t,...n||{}},s={};if(r)for(let a of Object.keys(r))s[a]={$group_key:r[a],...i?.[a]||{}};return{allPersonProperties:o,allGroupProperties:s}}createFeatureFlagEvaluationContext(t,r,n,i){return{distinctId:t,groups:r||{},personProperties:n||{},groupProperties:i||{},evaluationCache:{}}}captureException(t,r,n,i){if(!Oq.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(Oq.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!Oq.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(Oq.buildEventMessage(t,{syntheticException:i},r,n).then(o=>this.captureImmediate(o)))}}async prepareEventMessage(t){let{distinctId:r,event:n,properties:i,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:u,uuid:c}=t,l=this.context?.get(),p=r||l?.distinctId,d={...this.props,...l?.properties||{},...i||{}};p||(p=yJ(),d.$process_person_profile=!1),l?.sessionId&&!d.$session_id&&(d.$session_id=l.sessionId);let f=this._runBeforeSend({distinctId:p,event:n,properties:d,groups:o,sendFeatureFlags:s,timestamp:a,disableGeoip:u,uuid:c});if(!f)return Promise.reject(null);let m=await Promise.resolve().then(async()=>{if(s){let h=typeof s=="object"?s:void 0;return await this.getFeatureFlagsForEvent(f.distinctId,o,u,h)}return f.event,{}}).then(h=>{let A={};if(h)for(let[v,E]of Object.entries(h))A[`$feature/${v}`]=E;let y=Object.keys(h||{}).filter(v=>h?.[v]!==!1).sort();return y.length>0&&(A.$active_feature_flags=y),A}).catch(()=>({})).then(h=>({...h,...f.properties||{},$groups:f.groups||o}));return f.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof m.$raw_user_agent=="string"&&dra(m.$raw_user_agent,this.options.custom_blocked_useragents||[])&&(f.event="$bot_pageview",m.$browser_type="bot"),{distinctId:f.distinctId,event:f.event,properties:m,options:{timestamp:f.timestamp,disableGeoip:f.disableGeoip,uuid:f.uuid}}}_runBeforeSend(t){let r=this.options.before_send;if(!r)return t;let n=Array.isArray(r)?r:[r],i=t;for(let o of n){if(i=o(i),!i)return this._logger.info(`Event '${t.event}' was rejected in beforeSend function`),null;if(!i.properties||Object.keys(i.properties).length===0){let s=`Event '${i.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(s)}}return i}};var fna=require("async_hooks"),Ior=class{constructor(){this.storage=new fna.AsyncLocalStorage}get(){return this.storage.getStore()}run(t,r,n){return this.storage.run(this.resolve(t,n),r)}enter(t,r){this.storage.enterWith(this.resolve(t,r))}resolve(t,r){if(r?.fresh===!0)return t;let n=this.get()||{};return{distinctId:t.distinctId??n.distinctId,sessionId:t.sessionId??n.sessionId,properties:{...n.properties||{},...t.properties||{}}}}};var dna="posthog-node";function MWp(e,{organization:t,projectId:r,prefix:n,severityAllowList:i=["error"],sendExceptionsToPostHog:o=!0}={}){return s=>{if(!(i==="*"||i.includes(s.level)))return s;s.tags||(s.tags={});let u=s.tags[Svi.POSTHOG_ID_TAG];if(u===void 0)return s;let c=e.options.host??"https://us.i.posthog.com",l=new URL(`/project/${e.apiKey}/person/${u}`,c).toString();s.tags["PostHog Person URL"]=l;let p=s.exception?.values||[],d=p.map(m=>({...m,stacktrace:m.stacktrace?{...m.stacktrace,type:"raw",frames:(m.stacktrace.frames||[]).map(h=>({...h,platform:"node:javascript"}))}:void 0})),f={$exception_message:p[0]?.value||s.message,$exception_type:p[0]?.type,$exception_level:s.level,$exception_list:d,$sentry_event_id:s.event_id,$sentry_exception:s.exception,$sentry_exception_message:p[0]?.value||s.message,$sentry_exception_type:p[0]?.type,$sentry_tags:s.tags};return t&&r&&(f.$sentry_url=(n||"https://sentry.io/organizations/")+t+"/issues/?project="+r+"&query="+s.event_id),o&&e.capture({event:"$exception",distinctId:u,properties:f}),s}}var Svi=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=dna,this.name=dna,this.setupOnce=function(s,a){let u=a()?.getClient()?.getDsn()?.projectId;s(MWp(t,{organization:r,projectId:u,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};Oq.errorPropertiesBuilder=new mF.ErrorPropertiesBuilder([new mF.EventCoercer,new mF.ErrorCoercer,new mF.ObjectCoercer,new mF.StringCoercer,new mF.PrimitiveCoercer],mF.createStackParser("node:javascript",mF.nodeStackLineParser),[cra(),Xra]);var AHe=class extends Eor{getLibraryId(){return"posthog-node"}initializeContext(){return new Ior}};var wor=class{posthog;constructor({posthogApiKey:t}){this.posthog=new AHe(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"4.3.2",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var ZOt=class{async sendEvent(){}async identify(){}async flush(){}};Wt();var yHe=require("fs/promises"),yna=require("os"),bna=require("path");var mna=we(require("crypto")),_or=new Uint8Array(256),Cor=_or.length;function Ovi(){return Cor>_or.length-16&&(mna.default.randomFillSync(_or),Cor=0),_or.slice(Cor,Cor+=16)}var hna=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function LWp(e){return typeof e=="string"&&hna.test(e)}var Bvi=LWp;var fS=[];for(let e=0;e<256;++e)fS.push((e+256).toString(16).slice(1));function gna(e,t=0){return fS[e[t+0]]+fS[e[t+1]]+fS[e[t+2]]+fS[e[t+3]]+"-"+fS[e[t+4]]+fS[e[t+5]]+"-"+fS[e[t+6]]+fS[e[t+7]]+"-"+fS[e[t+8]]+fS[e[t+9]]+"-"+fS[e[t+10]]+fS[e[t+11]]+fS[e[t+12]]+fS[e[t+13]]+fS[e[t+14]]+fS[e[t+15]]}var Ana=we(require("crypto")),Pvi={randomUUID:Ana.default.randomUUID};function UWp(e,t,r){if(Pvi.randomUUID&&!t&&!e)return Pvi.randomUUID();e=e||{};let n=e.random||(e.rng||Ovi)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(let i=0;i<16;++i)t[r+i]=n[i];return t}return gna(n)}var vC=UWp;var zWp="id",VWp=".fern",eBt=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new AHe(r),this.userId=t==null?void 0:lmi(t),this.token=t}async identify(){this.userId!=null&&this.posthog.alias({distinctId:this.userId,alias:await this.getPersistedDistinctId()})}async sendEvent(t){let r=await this.getUserEmail();this.posthog.capture({distinctId:this.userId??await this.getPersistedDistinctId(),event:"CLI",properties:{version:"4.3.2",...t,...t.properties,usingAccessToken:!1,...r!=null?{userEmail:r}:{}}})}async flush(){await this.posthog.flush()}userEmail;async getUserEmail(){if(this.userEmail!==null){if(this.userEmail!=null)return this.userEmail;if(this.token==null){this.userEmail=null;return}try{let t=await Ib({token:this.token.value}).user.getMyself();if(t.ok&&t.body.email!=null)return this.userEmail=t.body.email,this.userEmail}catch{}this.userEmail=null}}persistedDistinctId;async getPersistedDistinctId(){if(this.persistedDistinctId==null){let t=We(Vt.of((0,yna.homedir)()),Oe.of(VWp),Oe.of(zWp));await nr(t)||(await(0,yHe.mkdir)((0,bna.dirname)(t),{recursive:!0}),await(0,yHe.writeFile)(t,vC())),this.persistedDistinctId=(await(0,yHe.readFile)(t)).toString()}return this.persistedDistinctId}};var Tvi;async function bHe(){return Tvi==null&&(Tvi=await qWp()),Tvi}async function qWp(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new ZOt;let r=await LXt();return r!=null?new eBt({token:r,posthogApiKey:e}):await ZK()!=null?new wor({posthogApiKey:e}):new eBt({token:void 0,posthogApiKey:e})}catch{return new ZOt}}var vna=(e=0)=>t=>`\x1B[${t+e}m`,Ena=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Ina=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,Qy={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},H1A=Object.keys(Qy.modifier),GWp=Object.keys(Qy.color),WWp=Object.keys(Qy.bgColor),K1A=[...GWp,...WWp];function $Wp(){let e=new Map;for(let[t,r]of Object.entries(Qy)){for(let[n,i]of Object.entries(r))Qy[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=Qy[n],e.set(i[0],i[1]);Object.defineProperty(Qy,t,{value:r,enumerable:!1})}return Object.defineProperty(Qy,"codes",{value:e,enumerable:!1}),Qy.color.close="\x1B[39m",Qy.bgColor.close="\x1B[49m",Qy.color.ansi=vna(),Qy.color.ansi256=Ena(),Qy.color.ansi16m=Ina(),Qy.bgColor.ansi=vna(10),Qy.bgColor.ansi256=Ena(10),Qy.bgColor.ansi16m=Ina(10),Object.defineProperties(Qy,{rgbToAnsi256:{value(t,r,n){return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let i=Number.parseInt(n,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>Qy.rgbToAnsi256(...Qy.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,i;if(t>=232)r=((t-232)*10+8)/255,n=r,i=r;else{t-=16;let a=t%36;r=Math.floor(t/36)/5,n=Math.floor(a/6)/5,i=a%6/5}let o=Math.max(r,n,i)*2;if(o===0)return 30;let s=30+(Math.round(i)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>Qy.ansi256ToAnsi(Qy.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>Qy.ansi256ToAnsi(Qy.hexToAnsi256(t)),enumerable:!1}}),Qy}var HWp=$Wp(),Bq=HWp;var Sor=we(require("process"),1),Cna=we(require("os"),1),Dvi=we(require("tty"),1);function oL(e,t=globalThis.Deno?globalThis.Deno.args:Sor.default.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return n!==-1&&(i===-1||n<i)}var{env:Ny}=Sor.default,xor;oL("no-color")||oL("no-colors")||oL("color=false")||oL("color=never")?xor=0:(oL("color")||oL("colors")||oL("color=true")||oL("color=always"))&&(xor=1);function KWp(){if("FORCE_COLOR"in Ny)return Ny.FORCE_COLOR==="true"?1:Ny.FORCE_COLOR==="false"?0:Ny.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(Ny.FORCE_COLOR,10),3)}function JWp(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function YWp(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=KWp();n!==void 0&&(xor=n);let i=r?xor:n;if(i===0)return 0;if(r){if(oL("color=16m")||oL("color=full")||oL("color=truecolor"))return 3;if(oL("color=256"))return 2}if("TF_BUILD"in Ny&&"AGENT_NAME"in Ny)return 1;if(e&&!t&&i===void 0)return 0;let o=i||0;if(Ny.TERM==="dumb")return o;if(Sor.default.platform==="win32"){let s=Cna.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in Ny)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(s=>s in Ny)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in Ny)||Ny.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in Ny)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Ny.TEAMCITY_VERSION)?1:0;if(Ny.COLORTERM==="truecolor"||Ny.TERM==="xterm-kitty"||Ny.TERM==="xterm-ghostty"||Ny.TERM==="wezterm")return 3;if("TERM_PROGRAM"in Ny){let s=Number.parseInt((Ny.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Ny.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Ny.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Ny.TERM)||"COLORTERM"in Ny?1:o}function wna(e,t={}){let r=YWp(e,{streamIsTTY:e&&e.isTTY,...t});return JWp(r)}var XWp={stdout:wna({isTTY:Dvi.default.isatty(1)}),stderr:wna({isTTY:Dvi.default.isatty(2)})},_na=XWp;function xna(e,t,r){let n=e.indexOf(t);if(n===-1)return e;let i=t.length,o=0,s="";do s+=e.slice(o,n)+t+r,o=n+i,n=e.indexOf(t,o);while(n!==-1);return s+=e.slice(o),s}function Sna(e,t,r,n){let i=0,o="";do{let s=e[n-1]==="\r";o+=e.slice(i,s?n-1:n)+t+(s?`\r
1446
1446
  `:`
1447
1447
  `)+r,i=n+1,n=e.indexOf(`
1448
1448
  `,i)}while(n!==-1);return o+=e.slice(i),o}var{stdout:Ona,stderr:Bna}=_na,Rvi=Symbol("GENERATOR"),vHe=Symbol("STYLER"),tBt=Symbol("IS_EMPTY"),Pna=["ansi","ansi","ansi256","ansi16m"],EHe=Object.create(null),ZWp=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=Ona?Ona.level:0;e.level=t.level===void 0?r:t.level};var e$p=e=>{let t=(...r)=>r.join(" ");return ZWp(t,e),Object.setPrototypeOf(t,rBt.prototype),t};function rBt(e){return e$p(e)}Object.setPrototypeOf(rBt.prototype,Function.prototype);for(let[e,t]of Object.entries(Bq))EHe[e]={get(){let r=Oor(this,jvi(t.open,t.close,this[vHe]),this[tBt]);return Object.defineProperty(this,e,{value:r}),r}};EHe.visible={get(){let e=Oor(this,this[vHe],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var Fvi=(e,t,r,...n)=>e==="rgb"?t==="ansi16m"?Bq[r].ansi16m(...n):t==="ansi256"?Bq[r].ansi256(Bq.rgbToAnsi256(...n)):Bq[r].ansi(Bq.rgbToAnsi(...n)):e==="hex"?Fvi("rgb",t,r,...Bq.hexToRgb(...n)):Bq[r][e](...n),t$p=["rgb","hex","ansi256"];for(let e of t$p){EHe[e]={get(){let{level:r}=this;return function(...n){let i=jvi(Fvi(e,Pna[r],"color",...n),Bq.color.close,this[vHe]);return Oor(this,i,this[tBt])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);EHe[t]={get(){let{level:r}=this;return function(...n){let i=jvi(Fvi(e,Pna[r],"bgColor",...n),Bq.bgColor.close,this[vHe]);return Oor(this,i,this[tBt])}}}}var r$p=Object.defineProperties(()=>{},{...EHe,level:{enumerable:!0,get(){return this[Rvi].level},set(e){this[Rvi].level=e}}}),jvi=(e,t,r)=>{let n,i;return r===void 0?(n=e,i=t):(n=r.openAll+e,i=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:i,parent:r}},Oor=(e,t,r)=>{let n=(...i)=>n$p(n,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(n,r$p),n[Rvi]=e,n[vHe]=t,n[tBt]=r,n},n$p=(e,t)=>{if(e.level<=0||!t)return e[tBt]?"":t;let r=e[vHe];if(r===void 0)return t;let{openAll:n,closeAll:i}=r;if(t.includes("\x1B"))for(;r!==void 0;)t=xna(t,r.close,r.open),r=r.parent;let o=t.indexOf(`
@@ -2117,7 +2117,7 @@ https://buildwithfern.com/learn/docs/getting-started/project-structure#api-defin
2117
2117
  Learn more about project structure:
2118
2118
  https://buildwithfern.com/learn/docs/getting-started/project-structure#api-definitions`;throw new Error(r)}async toRootNode(){let t=_t.V1.SlugGenerator.init(_t.slugjoin(this.getDocsBasePath())),r=this.#e.get("root"),n=await this.toRootChild(t);return{type:"root",version:"v1",id:r,child:n,slug:t.get(),title:this.parsedDocsConfig.title??"Documentation",hidden:!1,icon:void 0,pointsTo:void 0,authed:void 0,viewers:void 0,orphaned:void 0,roles:this.parsedDocsConfig.roles?.map(i=>_t.RoleId(i)),featureFlags:void 0}}async toRootChild(t){return ME(this.parsedDocsConfig.navigation)._visit({untabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),tabbed:r=>this.toUnversionedNode({landingPage:this.parsedDocsConfig.landingPage,navigationConfig:r,parentSlug:t}),versioned:r=>this.toVersionedNode(r,t),productgroup:r=>this.toProductGroupNode({landingPageConfig:this.parsedDocsConfig.landingPage,productGroup:r,parentSlug:t})})}toLandingPageNode(t,r){let n=_t.PageId(this.toRelativeFilepath(t.absolutePath)),i=r.apply({urlSlug:t.slug??fm(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")});return{type:"landingPage",id:this.#e.get(n),title:t.title,slug:i.get(),icon:this.resolveIconFileId(t.icon),hidden:t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:n,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags}}async toUnversionedNode({landingPage:t,navigationConfig:r,parentSlug:n}){let i=this.#e.get("unversioned"),o=t!=null?this.toLandingPageNode(t,n):void 0,s=r.type==="tabbed"?await this.convertTabbedNavigation(i,r.items,n):await this.toSidebarRootNode(i,r.items,n);return{type:"unversioned",id:i,landingPage:o,child:s}}async toVersionedNode(t,r){let n=this.#e.get("versioned"),i=t.versions[0];if(i?.hidden===!0)throw new Error(`The default version "${i.version}" cannot be hidden. Please set a non-hidden version as the first version in your versions list, or remove the hidden flag from the default version.`);let o=5,s=[];for(let a=0;a<t.versions.length;a+=o){let u=t.versions.slice(a,a+o),c=await Promise.all(u.map((l,p)=>this.toVersionNode(l,r,a+p===0)));s.push(...c)}return{id:n,type:"versioned",children:s}}async toProductGroupNode({productGroup:t,landingPageConfig:r,parentSlug:n}){let i=this.#e.get("productgroup"),o=r!=null?this.toLandingPageNode(r,n):void 0;return{id:i,type:"productgroup",landingPage:o,children:await Promise.all(t.products.map(s=>this.toProductNode(s,n)))}}async toProductNode(t,r){if(t.type==="internal"){let n=r.setProductSlug(t.slug??fm(t.product)),i;switch(t.navigation.type){case"tabbed":i={type:"unversioned",id:this.#e.get(t.product),landingPage:void 0,child:await this.convertTabbedNavigation(this.#e.get(t.product),t.navigation.items,n)};break;case"untabbed":i={type:"unversioned",id:this.#e.get(t.product),landingPage:void 0,child:await this.toSidebarRootNode(this.#e.get(t.product),t.navigation.items,n)};break;case"versioned":i=await this.toVersionedNode(t.navigation,n);break;default:_e(t.navigation)}return{type:"product",id:this.#e.get(t.product),productId:_t.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",slug:n.get(),child:i,default:!1,hidden:void 0,authed:void 0,icon:this.resolveIconFileId(t.icon),image:t.image!=null?this.getFileId(t.image):void 0,pointsTo:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags,announcement:t.announcement!=null?{text:t.announcement.message}:void 0}}else return{type:"productLink",id:this.#e.get(t.product),productId:_t.V1.ProductId(t.product),title:t.product,subtitle:t.subtitle??"",href:vP.Url(t.href??""),target:t.target,default:!1,hidden:void 0,authed:void 0,icon:this.resolveIconFileId(t.icon),image:t.image!=null?this.getFileId(t.image):void 0,viewers:t.viewers,orphaned:t.orphaned}}async toVersionNode(t,r,n){let i=this.#e.get(t.version),o=r.setVersionSlug(t.slug??fm(t.version)),s=t.navigation.type==="tabbed"?await this.convertTabbedNavigation(i,t.navigation.items,o):await this.toSidebarRootNode(i,t.navigation.items,o);return{type:"version",id:i,versionId:_t.VersionId(t.version),title:t.version,slug:o.get(),child:s,default:n,availability:t.availability!=null?gcd(t.availability):void 0,landingPage:t.landingPage?this.toLandingPageNode(t.landingPage,o):void 0,hidden:t.hidden,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,icon:void 0,pointsTo:void 0,featureFlags:t.featureFlags,announcement:t.announcement!=null?{text:t.announcement.message}:void 0}}async toSidebarRootNode(t,r,n){let i=this.#e.get(`${t}/root`),s=(await Promise.all(r.map(u=>this.toNavigationChild({prefix:i,item:u,parentSlug:n})))).filter(u=>u!=null),a=[];return s.forEach(u=>{if(u.type==="apiReference"){a.push(u);return}let c=u.type==="section"&&(u.collapsible===!0||u.collapsible==null&&u.collapsed===!0);if(u.type==="section"&&!c){a.push(u);return}let l=a.length>0?a[a.length-1]:void 0,p;l?.type==="sidebarGroup"?p=l:(p={id:this.#e.get(`${i}/group`),type:"sidebarGroup",children:[]},a.push(p)),p.children.push(u)}),{type:"sidebarRoot",id:i,children:a}}async toSidebarRootNodeWithVariants(t,r,n){let i=this.#e.get(`${t}/root`);return{type:"sidebarRoot",id:i,children:[{type:"varianted",id:i,children:await Promise.all(r.map(o=>this.toVariantNode(o,i,n)))}]}}async toVariantNode(t,r,n){let i=this.#e.get(`${r}/variant/${t.slug??fm(t.title)}`),o=n.apply({urlSlug:t.slug??fm(t.title),skipUrlSlug:t.skipUrlSlug}),a=(await Promise.all(t.layout.map(u=>this.toVariantChild(u,i,o)))).filter(u=>u!=null);return{type:"variant",id:i,variantId:_t.V1.VariantId(t.title),subtitle:t.subtitle??"",default:t.default??!1,image:void 0,children:a,title:t.title,slug:o.get(),icon:this.resolveIconFileId(t.icon),hidden:t.hidden,authed:void 0,viewers:t.viewers,orphaned:t.orphaned,featureFlags:t.featureFlags,pointsTo:void 0}}async toVariantChild(t,r,n){return ME(t)._visit({page:async i=>this.toPageNode({item:i,parentSlug:n}),apiSection:async i=>this.toApiSectionNode({item:i,parentSlug:n}),section:async i=>this.toSectionNode({prefix:r,item:i,parentSlug:n}),link:async i=>this.toLinkNode(i),changelog:async i=>this.toChangelogNode(i,n),librarySection:async i=>this.handleLibrarySection(i,n)})}async toNavigationChild({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){return ME(r)._visit({page:async s=>this.toPageNode({item:s,parentSlug:n,hideChildren:i,parentAvailability:o}),apiSection:async s=>this.toApiSectionNode({item:s,parentSlug:n,hideChildren:i,parentAvailability:o}),section:async s=>this.toSectionNode({prefix:t,item:s,parentSlug:n,hideChildren:i,parentAvailability:o}),link:async s=>this.toLinkNode(s),changelog:async s=>this.toChangelogNode(s,n,i),librarySection:async s=>this.handleLibrarySection(s,n)})}async toApiSectionNode({item:t,parentSlug:r,hideChildren:n,parentAvailability:i}){let o=$Ha(t.snippetsConfiguration),s,a,u,c,l=this.parsedDocsConfig.experimental?.openapiParserV3,p=l==null||l;if(p)try{u=this.getOpenApiWorkspaceForApiSection(t),s=await u.getIntermediateRepresentation({context:this.taskContext,audiences:t.audiences,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1})}catch(b){c=b}let d;if(t.tagDescriptionPages&&p)try{let I=await(u??this.getOpenApiWorkspaceForApiSection(t)).getOpenAPIIr({context:this.taskContext,loadAiExamples:!0});I.tags.tagsById&&(d=Object.fromEntries(Object.entries(I.tags.tagsById).filter(([w,_])=>_.description&&_.description.trim().length>0).map(([w,_])=>[$n(w),{id:String(_.id),description:_.description}])))}catch(b){this.taskContext.logger.warn("Failed to extract OpenAPI tags for tag description pages",String(b))}if(s==null){if(this.apiWorkspaces.length===0&&c!=null)throw c;a=await this.getFernWorkspaceForApiSection(t).toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,objectQueryParameters:!0,preserveSchemaIds:!0}),s=Pg({workspace:a,audiences:t.audiences,generationLanguage:void 0,keywords:void 0,smartCasing:!1,exampleGeneration:{disabled:!1,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!0},readme:void 0,version:void 0,packageName:void 0,context:this.taskContext,sourceResolver:new Sh(this.taskContext,a)})}else try{a=await this.getFernWorkspaceForApiSection(t).toFernWorkspace({context:this.taskContext},{enableUniqueErrorsPerEndpoint:!0,detectGlobalHeaders:!1,objectQueryParameters:!0,preserveSchemaIds:!0})}catch(b){this.taskContext.logger.debug(`Could not load workspace: ${b}. Dynamic snippets and AI examples may not be available.`)}this.docsWorkspace.config.settings?.substituteEnvVars&&(s=bv(s,{onError:b=>this.taskContext.failAndThrow(`Error substituting environment variables in API spec: ${b}`)},{substituteAsEmpty:!1}));let f=await this.extractGraphQLData(),m=t.apiName??a?.workspaceName??u?.workspaceName,h=`__pending_api_${this.pendingApiCounter++}__`,A=BNt({ir:s,apiDefinitionId:h,playgroundConfig:{oauth:t.playground?.oauth},context:this.taskContext,graphqlOperations:f.operations,graphqlTypes:f.types}),y=new oQr(t,A,r,this.docsWorkspace,this.taskContext,this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,this.#e,this.collectedFileIds,a,n,i??t.availability,d,f.namespacesByOperationId),v=y.getTagDescriptionContent();for(let[b,I]of v.entries()){let w=b.split("/").pop()||b,_=Oe.of(w),C=I;this.docsWorkspace.config.settings?.substituteEnvVars&&(C=bv(I,{onError:x=>this.taskContext.logger.error(`Error in tag description environment variable substitution: ${x}`)},{substituteAsEmpty:!1})),this.rawMarkdownFiles[_]=C,this.parsedDocsConfig.pages[_]=C}let E=y.get();return this.pendingApiRegistrations.push({ir:s,snippetsConfig:o,playgroundConfig:{oauth:t.playground?.oauth},apiName:m,workspace:a,graphqlOperations:f.operations,graphqlTypes:f.types,tempApiDefinitionId:h,apiReferenceNode:E}),E}async toChangelogNode(t,r,n){return new iLe(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,t.changelog,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:r,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:n||t.hidden,slug:t.slug})}async toLinkNode(t){return{type:"link",id:this.#e.get(t.url),title:t.text,url:_t.V1.Url(t.url),icon:this.resolveIconFileId(t.icon),target:t.target}}async extractGraphQLData(){let t={},r={},n=new Map;for(let i of this.ossWorkspaces){let o=i.allSpecs.filter(s=>s.type==="graphql");for(let s of o)try{let u=await new art({context:this.taskContext,filePath:s.absoluteFilepath,namespace:s.namespace}).convert();if(Object.assign(t,u.graphqlOperations),Object.assign(r,u.types),s.namespace)for(let c of Object.keys(u.graphqlOperations))n.set(wr.GraphQlOperationId(c),s.namespace)}catch(a){this.taskContext.logger.error(`Failed to process GraphQL spec ${s.absoluteFilepath}:`,String(a))}}return{operations:t,types:r,namespacesByOperationId:n}}async handleLibrarySection(t,r){let n=this.parsedDocsConfig.libraries?.[t.libraryName];if(n==null)return this.taskContext.logger.warn(`Library '${t.libraryName}' not found in libraries config. Skipping.`),null;let i=Vo(this.docsWorkspace.absoluteFilePath,n.output.path),o=await this.loadLibraryNavNodes(t.libraryName,i);if(o==null)return null;let s=t.title??t.libraryName,a=r.apply({urlSlug:t.slug??fm(s)}),u=this.#e.get(`library/${t.libraryName}`),c;if(o.length>0){let p=o[0]?.slug.split("/").slice(0,-1).join("/");p&&(c=await this.registerLibraryMdxPage(i,`${p}.mdx`))}let l=await this.convertLibraryNavNodes(o,i,a);return{id:u,type:"section",overviewPageId:c,slug:a.get(),title:s,icon:void 0,collapsed:void 0,hidden:!1,viewers:t.viewers,orphaned:t.orphaned,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:t.featureFlags,availability:void 0}}async loadLibraryNavNodes(t,r){let n=We(r,Oe.of("_navigation.yml"));if(!(0,MVi.existsSync)(n))return this.taskContext.logger.warn(`No _navigation.yml found for library '${t}' at ${n}. Run 'fern docs md generate' first.`),null;let o=(await(0,P_e.readFile)(n,"utf-8")).split(`
2119
2119
  `).filter(s=>!s.startsWith("#")).join(`
2120
- `);try{return xr.load(o)??[]}catch(s){return this.taskContext.logger.warn(`Failed to parse _navigation.yml for library '${t}': ${s instanceof Error?s.message:String(s)}`),null}}async registerLibraryMdxPage(t,r){let n=We(t,Oe.of(r));if(!(0,MVi.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=Fa(this.docsWorkspace.absoluteFilePath,n),o=await(0,P_e.readFile)(n,"utf-8");return this.parsedDocsConfig.pages[i]=o,_t.PageId(i)}async convertLibraryNavNodes(t,r,n){let i=[];for(let o of t)if(o.type==="page"&&o.pageId!=null){let s=await this.registerLibraryMdxPage(r,o.pageId);if(s==null)continue;let a=n.apply({fullSlug:o.slug.split("/"),urlSlug:fm(o.title)});i.push({id:this.#e.get(s),type:"page",slug:a.get(),title:o.title,icon:void 0,hidden:!1,viewers:void 0,orphaned:void 0,pageId:s,authed:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}else if(o.type==="section"){let s=n.apply({fullSlug:o.slug.split("/"),urlSlug:fm(o.title)}),a=this.#e.get(`library-section/${o.slug}`),u=await this.registerLibraryMdxPage(r,`${o.slug}.mdx`),c=(o.children??[]).filter(p=>!(p.type==="page"&&p.slug===o.slug)),l=await this.convertLibraryNavNodes(c,r,s);i.push({id:a,type:"section",overviewPageId:u,slug:s.get(),title:o.title,icon:void 0,collapsed:void 0,hidden:!1,viewers:void 0,orphaned:void 0,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}return i}async toPageNode({item:t,parentSlug:r,hideChildren:n,parentAvailability:i}){let o=_t.PageId(this.toRelativeFilepath(t.absolutePath)),s=r.apply({urlSlug:t.slug??fm(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")}),a=this.#e.get(o),u=this.markdownFilesToAvailability.get(t.absolutePath);return{id:a,type:"page",slug:s.get(),title:this.markdownFilesToSidebarTitle.get(t.absolutePath)??t.title,icon:this.resolveIconFileId(t.icon),hidden:n||t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:o,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags,availability:u??t.availability??i}}async toSectionNode({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){let s=this.toRelativeFilepath(r.overviewAbsolutePath),a=s?_t.PageId(s):void 0,u=this.#e.get(a??`${t}/section`),c=n.apply({urlSlug:r.slug??fm(r.title),fullSlug:r.overviewAbsolutePath?this.markdownFilesToFullSlugs.get(r.overviewAbsolutePath)?.split("/"):void 0,skipUrlSlug:r.skipUrlSlug}),l=r.overviewAbsolutePath!=null?this.markdownFilesToNoIndex.get(r.overviewAbsolutePath):void 0,p=r.overviewAbsolutePath!=null?this.markdownFilesToAvailability.get(r.overviewAbsolutePath):void 0,d=i||r.hidden,m=(await Promise.all(r.contents.map(h=>this.toNavigationChild({prefix:u,item:h,parentSlug:c,hideChildren:d,parentAvailability:r.availability??o})))).filter(h=>h!=null);if(a==null){let h=m.find(A=>A.type==="apiReference"&&A.hideTitle===!0&&A.overviewPageId!=null);h!=null&&(a=h.overviewPageId)}return{id:u,type:"section",overviewPageId:a,slug:c.get(),title:r.overviewAbsolutePath!=null?this.markdownFilesToSidebarTitle.get(r.overviewAbsolutePath)??r.title:r.title,icon:this.resolveIconFileId(r.icon),collapsed:r.collapsed,collapsible:r.collapsible??(r.collapsed===!0?!0:void 0),collapsedByDefault:r.collapsedByDefault??(r.collapsed===!0?!0:void 0),hidden:d,viewers:r.viewers,orphaned:r.orphaned,children:m,authed:void 0,pointsTo:void 0,noindex:l,featureFlags:r.featureFlags,availability:p??r.availability??o}}async convertTabbedNavigation(t,r,n){let i=this.#e.get(`${t}/tabbed`);return{type:"tabbed",id:i,children:await Promise.all(r.map(o=>this.toTabChild(i,o,n)))}}async toTabChild(t,r,n){return ME(r.child)._visit({link:({href:i,target:o})=>this.toTabLinkNode(r,i,o),layout:({layout:i})=>this.toTabNode(t,r,i,n),changelog:({changelog:i})=>this.toTabChangelogNode(r,i,n),variants:({variants:i})=>this.toTabNodeWithVariants(t,r,i,n)})}async toTabChangelogNode(t,r,n){return new iLe(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,r,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:n,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:t.hidden,slug:t.slug})}async toTabLinkNode(t,r,n){return{type:"link",id:this.#e.get(r),title:t.title,url:_t.V1.Url(r),target:n,icon:this.resolveIconFileId(t.icon)}}async toTabNode(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??fm(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNode(o,n,s),featureFlags:r.featureFlags}}async toTabNodeWithVariants(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??fm(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNodeWithVariants(o,n,s),featureFlags:r.featureFlags}}getFileId(t){if(t==null)return;let r=this.collectedFileIds.get(t);return r==null?this.taskContext.failAndThrow("Failed to locate file after uploading: "+t):vP.FileId(r)}resolveIconFileId(t){if(t!=null)return this.collectedFileIds.has(t)?`file:${this.getFileId(t)}`:t}convertPageActions(){if(this.parsedDocsConfig.pageActions!=null)return{default:this.parsedDocsConfig.pageActions.default,options:{askAi:this.parsedDocsConfig.pageActions.options.askAi,copyPage:this.parsedDocsConfig.pageActions.options.copyPage,viewAsMarkdown:this.parsedDocsConfig.pageActions.options.viewAsMarkdown,openAi:this.parsedDocsConfig.pageActions.options.openAi,claude:this.parsedDocsConfig.pageActions.options.claude,cursor:this.parsedDocsConfig.pageActions.options.cursor,vscode:this.parsedDocsConfig.pageActions.options.vscode,custom:this.parsedDocsConfig.pageActions.options.custom.map(t=>({title:t.title,subtitle:t.subtitle,url:t.url,icon:this.resolveIconFileId(t.icon),default:t.default}))}}}convertColorConfigImageReferences(){let{colors:t}=this.parsedDocsConfig;if(t!=null)return t.type==="dark"?{...t,...this.convertLogoAndBackgroundImage({theme:"dark"})}:t.type==="light"?{...t,...this.convertLogoAndBackgroundImage({theme:"light"}),type:"light"}:{...t,dark:{...t.dark,...this.convertLogoAndBackgroundImage({theme:"dark"})},light:{...t.light,...this.convertLogoAndBackgroundImage({theme:"light"})}}}convertLogoAndBackgroundImage({theme:t}){let{logo:r,backgroundImage:n}=this.parsedDocsConfig,i=r?.[t],o=n?.[t];return{logo:this.getFileId(i),backgroundImage:this.getFileId(o)}}convertDocsTypographyConfiguration(){if(this.parsedDocsConfig.typography!=null)return{headingsFont:this.convertFont(this.parsedDocsConfig.typography.headingsFont,"headings"),bodyFont:this.convertFont(this.parsedDocsConfig.typography.bodyFont,"body"),codeFont:this.convertFont(this.parsedDocsConfig.typography.codeFont,"code")}}convertFont(t,r){if(t==null||t.variants[0]==null)return;let n=this.getFileId(t.variants[0].absolutePath);return{type:"custom",name:t.name??`font:${r}:${n}`,variants:t.variants.map(i=>({fontFile:this.getFileId(i.absolutePath),weight:i.weight,style:i.style!=null?[i.style]:void 0})),display:t.display,fallback:t.fallback,fontVariationSettings:t.fontVariationSettings}}convertJavascriptConfiguration(){if(this.parsedDocsConfig.js!=null)return{files:this.parsedDocsConfig.js.files.map(({absolutePath:t,strategy:r})=>({fileId:this.getFileId(t),strategy:r})).filter(_a),remote:this.parsedDocsConfig.js.remote?.map(t=>({...t,url:vP.Url(t.url)})),inline:void 0}}convertMetadata(){if(this.parsedDocsConfig.metadata==null)return;let{"og:image":t,"og:logo":r,"twitter:image":n,"og:background-image":i,...o}=this.parsedDocsConfig.metadata;return{...o,"og:image":this.convertFileIdOrUrl(t),"og:logo":this.convertFileIdOrUrl(r),"twitter:image":this.convertFileIdOrUrl(n),"og:background-image":this.convertFileIdOrUrl(i)}}convertFileIdOrUrl(t){if(t!=null)return ME(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:vP.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}resolveLinksInIrDocs(t,r){let n={absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.docsWorkspace.absoluteFilePath};hQr(t,r,n)}};function hcd(e,t){let r=e?.launch??"github";if(e?.github==null)return{url:void 0,launch:r};let{owner:n,repo:i,branch:o="main",host:s="https://github.com"}=e.github;return{url:`${OT(s)}/${n}/${i}/blob/${o}/fern/${t}?plain=1`,launch:r}}function gcd(e){switch(e){case"beta":return _t.V1.NavigationV1Availability.Beta;case"deprecated":return _t.V1.NavigationV1Availability.Deprecated;case"ga":return _t.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return _t.V1.NavigationV1Availability.Stable;default:_e(e)}}Nt();async function GS(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof Yp?t:null))).filter(_a)}async function LVi(e,t,r){if(e instanceof OO){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof Yp))return;let n=await e.getIntermediateRepresentation({context:t,audiences:r,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});return ST({ir:n,snippetsConfig:{typescriptSdk:void 0,pythonSdk:void 0,javaSdk:void 0,rubySdk:void 0,goSdk:void 0,csharpSdk:void 0,phpSdk:void 0,swiftSdk:void 0,rustSdk:void 0},playgroundConfig:{oauth:!0},context:t})}var Ia={};X(Ia,{AlgoliaSearchIndex:()=>dKa,ApiDefinitionId:()=>FKa,ApiId:()=>kKa,Availability:()=>ZKa,DocsConfigId:()=>MKa,EndpointId:()=>UKa,EndpointPathLiteral:()=>YKa,EnvironmentId:()=>LKa,FileId:()=>WKa,HttpMethod:()=>XKa,IndexSegmentId:()=>mKa,JqString:()=>HKa,OrgId:()=>QKa,PageId:()=>GKa,PayloadLocation:()=>xJa,PropertyKey:()=>KKa,PullRequestState:()=>EJa,RoleId:()=>JKa,TokenId:()=>NKa,TypeId:()=>qKa,Url:()=>$Ka,VersionId:()=>jKa,WebSocketId:()=>zKa,WebhookId:()=>VKa,algolia:()=>UVi,api:()=>YVi,commons:()=>XVi,diff:()=>eJa,docs:()=>aqi,generators:()=>cqi,git:()=>lqi,navigation:()=>dqi,sdks:()=>hqi,snippets:()=>CJa,snippetsFactory:()=>_Ja,templates:()=>gqi,tokens:()=>SJa});var UVi={};X(UVi,{AlgoliaSearchIndex:()=>dKa,IndexSegmentId:()=>mKa});function dKa(e){return e}function mKa(e){return e}var YVi={};X(YVi,{latest:()=>qVi,v1:()=>JVi});var qVi={};X(qVi,{AuthSchemeId:()=>hKa,WebhookHttpMethod:()=>bKa,auth:()=>zVi,commons:()=>gKa,endpoint:()=>AKa,type_:()=>yKa,webhook:()=>VVi,websocket:()=>vKa});var zVi={};X(zVi,{AuthSchemeId:()=>hKa});function hKa(e){return e}var gKa={};var AKa={};var yKa={};var VVi={};X(VVi,{WebhookHttpMethod:()=>bKa});var bKa={Get:"GET",Post:"POST"};var vKa={};var JVi={};X(JVi,{SubpackageId:()=>PKa,WebSocketMessageId:()=>TKa,WebSocketMessageOrigin:()=>DKa,WebhookHttpMethod:()=>RKa,commons:()=>KVi,db:()=>GVi,read:()=>$Vi,register:()=>HVi});var GVi={};X(GVi,{endpoint:()=>EKa});var EKa={};var $Vi={};X($Vi,{SupportedLanguage:()=>IKa,endpoint:()=>WVi,type_:()=>wKa,webhook:()=>CKa,websocket:()=>_Ka});var WVi={};X(WVi,{SupportedLanguage:()=>IKa});var IKa={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var wKa={};var CKa={};var _Ka={};var HVi={};X(HVi,{SourceId:()=>Acd,endpoint:()=>xKa,type_:()=>SKa,webhook:()=>OKa,websocket:()=>BKa});var xKa={};var SKa={};var OKa={};var BKa={};function Acd(e){return e}var KVi={};X(KVi,{SubpackageId:()=>PKa,WebSocketMessageId:()=>TKa,WebSocketMessageOrigin:()=>DKa,WebhookHttpMethod:()=>RKa});function PKa(e){return e}function TKa(e){return e}var DKa={Client:"client",Server:"server"};var RKa={Get:"GET",Post:"POST"};var XVi={};X(XVi,{ApiDefinitionId:()=>FKa,ApiId:()=>kKa,Availability:()=>ZKa,DocsConfigId:()=>MKa,EndpointId:()=>UKa,EndpointPathLiteral:()=>YKa,EnvironmentId:()=>LKa,FileId:()=>WKa,HttpMethod:()=>XKa,JqString:()=>HKa,OrgId:()=>QKa,PageId:()=>GKa,PropertyKey:()=>KKa,RoleId:()=>JKa,TokenId:()=>NKa,TypeId:()=>qKa,Url:()=>$Ka,VersionId:()=>jKa,WebSocketId:()=>zKa,WebhookId:()=>VKa});function FKa(e){return e}function jKa(e){return e}function QKa(e){return e}function NKa(e){return e}function kKa(e){return e}function MKa(e){return e}function LKa(e){return e}function UKa(e){return e}function zKa(e){return e}function VKa(e){return e}function qKa(e){return e}function GKa(e){return e}function WKa(e){return e}function $Ka(e){return e}function HKa(e){return e}function KKa(e){return e}function JKa(e){return e}function YKa(e){return e}var XKa={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var ZKa={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var eJa={};var aqi={};X(aqi,{latest:()=>tqi,v1:()=>oqi,v2:()=>sqi});var tqi={};X(tqi,{Layout:()=>rJa,MdxEngine:()=>ycd,TwitterCardSetting:()=>nJa,commons:()=>tJa,frontmatter:()=>ZVi,seo:()=>eqi});var ycd={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var tJa={};var ZVi={};X(ZVi,{Layout:()=>rJa});var rJa={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var eqi={};X(eqi,{TwitterCardSetting:()=>nJa});var nJa={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var oqi={};X(oqi,{commons:()=>iqi,db:()=>iJa,read:()=>oJa,write:()=>rqi});var iJa={};var oJa={};var rqi={};X(rqi,{DocsRegistrationId:()=>vcd,FilePath:()=>bcd});function bcd(e){return e}function vcd(e){return e}var iqi={};X(iqi,{ContentAlignment:()=>cJa,FontDisplay:()=>mJa,FontStyle:()=>dJa,HeaderPosition:()=>lJa,JsScriptStrategy:()=>fJa,ProgrammingLanguage:()=>sJa,SearchbarPlacement:()=>aJa,TabsPlacement:()=>uJa,TwitterCardSetting:()=>pJa,commons:()=>nqi});var nqi={};X(nqi,{ContentAlignment:()=>cJa,FontDisplay:()=>mJa,FontStyle:()=>dJa,HeaderPosition:()=>lJa,JsScriptStrategy:()=>fJa,ProgrammingLanguage:()=>sJa,SearchbarPlacement:()=>aJa,TabsPlacement:()=>uJa,TwitterCardSetting:()=>pJa});var sJa={Typescript:"typescript",Javascript:"javascript",Python:"python",Java:"java",Go:"go",Ruby:"ruby",Csharp:"csharp",Nodets:"nodets",Nodejs:"nodejs",Dotnet:"dotnet",Curl:"curl",Jvm:"jvm",Ts:"ts",Js:"js"};var aJa={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var uJa={Header:"HEADER",Sidebar:"SIDEBAR"};var cJa={Center:"CENTER",Left:"LEFT"};var lJa={Fixed:"FIXED",Absolute:"ABSOLUTE"};var pJa={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var fJa={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var dJa={Normal:"normal",Italic:"italic"};var mJa={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var sqi={};X(sqi,{read:()=>hJa,write:()=>gJa});var hJa={};var gJa={};var cqi={};X(cqi,{ChangelogEntryType:()=>yJa,GeneratorId:()=>Ecd,GeneratorLanguage:()=>Icd,ReleaseType:()=>bJa,cli:()=>AJa,commons:()=>uqi,versions:()=>vJa});var AJa={};var uqi={};X(uqi,{ChangelogEntryType:()=>yJa,ReleaseType:()=>bJa});var yJa={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var bJa={Ga:"GA",Rc:"RC"};var vJa={};function Ecd(e){return e}var Icd={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var lqi={};X(lqi,{PullRequestState:()=>EJa});var EJa={Open:"open",Closed:"closed",Merged:"merged"};var dqi={};X(dqi,{latest:()=>pqi,v1:()=>fqi});var pqi={};X(pqi,{NodeId:()=>_cd,ProductId:()=>xcd,Slug:()=>wcd,TabId:()=>Ccd});function wcd(e){return e}function Ccd(e){return e}function _cd(e){return e}function xcd(e){return e}var fqi={};X(fqi,{NavigationV1Availability:()=>Tcd,NodeId:()=>Bcd,ProductId:()=>Pcd,Slug:()=>Scd,TabId:()=>Ocd});function Scd(e){return e}function Ocd(e){return e}function Bcd(e){return e}function Pcd(e){return e}var Tcd={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var hqi={};X(hqi,{Language:()=>IJa,VersionBump:()=>wJa,versions:()=>mqi});var mqi={};X(mqi,{Language:()=>IJa,VersionBump:()=>wJa});var IJa={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var wJa={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var CJa={};var _Ja={};var gqi={};X(gqi,{PayloadLocation:()=>xJa});var xJa={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var SJa={};var yQr=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function OJa({endpoints:e,webhookEndpoints:t}){let r={};return Object.values({...e,...t}).forEach(n=>{let i=[];n.namespace?.forEach(o=>{let s=[...i,o],a=Ia.api.v1.SubpackageId(s.join("."));r[a]={id:a,name:o,displayName:qS(o)},i.push(o)})}),r}var bQr=class{input;context;constructor(t,r){this.input=t,this.context=r}errors(){return this.context.errors.errors}warnings(){return this.context.errors.warnings}};function BJa(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var Wo=class extends bQr{context;accessPath;pathId;constructor({input:t,context:r,accessPath:n,pathId:i}){if(super(t,r),this.context=r,this.accessPath=[...n],this.pathId=i,i!=null){let o=Array.isArray(this.pathId)?this.pathId:[this.pathId];o.every((s,a)=>s===this.accessPath[this.accessPath.length-o.length+a])||this.accessPath.push(...o)}r.logger.debug(`Processing ${BJa(this.accessPath)}`)}safeParse(...t){try{this.parse(...t)}catch{this.context.errors.error({message:"Error converting node. Please contact support if the error persists",path:this.accessPath})}}},Vv=class extends Wo{},vj=class extends Vv{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var PJa="x-fern-base-path",TJa="x-fern-availability",vQr="x-fern-sdk-group-name",DJa="x-fern-global-headers",RJa="x-fern-sdk-method-name";var FJa="x-fern-webhook",jJa="x-fern-access-token-locator",QJa="x-fern-basic",NJa="x-fern-username-variable-name",kJa="x-fern-password-variable-name",MJa="x-fern-bearer",LJa="x-fern-token-variable-name",UJa="x-fern-header",zJa="x-fern-header-variable-name",VJa="x-fern-server-name",qJa="x-fern-examples";var EQr=class extends Wo{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[VJa]}convert(){if(this.serverName!=null)return this.serverName}};var IQr=class extends Wo{url;serverName;constructor(t){super(t),this.safeParse()}parse(){this.url=Object.entries(this.input.variables??{}).reduce((t,[r,n])=>t.replace(`{${r}}`,n.default),this.input.url)??this.input.url,this.serverName=new EQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})}convert(){let t=this.serverName?.convert()??this.url;if(!(this.url==null||t==null))return{id:Ia.EnvironmentId(t),baseUrl:this.url}}};function T_e(e,t,r,n){let i=e??[],o=new Set(i.map(a=>a.url)),s=(t??[]).filter(a=>!o.has(a.url)).map((a,u)=>new IQr({input:a,context:r,accessPath:n,pathId:["servers",`${u}`]}));return[...i,...s]}function Lp(e){return typeof e=="object"&&Xo(e)&&"$ref"in e&&typeof e.$ref=="string"}function WS(e,t,r){let n=e.$ref.substring(2).split("/").map(o=>o.replace(/~1/g,"/")),i=t;for(let o of n){if(typeof i!="object"||i==null)return r;i=i[o]}return i==null?r:(Lp(i)&&(i=WS(i,t,r)),i)}function wQr(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Lp(r)?WS(r,t,void 0):r}var lYa=we(By());var CQr=class extends Wo{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[QJa];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var _Qr=class extends Wo{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[kJa]}convert(){return this.passwordVariableName}};var xQr=class extends Wo{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[NJa]}convert(){return this.usernameVariableName}};var SQr=class extends Wo{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[MJa];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var OQr=class extends Wo{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[LJa]}convert(){return this.tokenVariableName}};function GJa(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var WJa="x-bearer-format",$Ja="x-code-samples",HJa="x-codeSamples";var BQr=class extends Wo{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[WJa]}convert(){return this.bearerFormat}};var PQr=class extends Wo{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[UJa];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var TQr=class extends Wo{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[zJa]}convert(){return this.headerVariableName}};function KJa(e){return e.type==="apiKey"}var krt=class extends Wo{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){KJa(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new PQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new TQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new BQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})}convert(){let t=this.headerAuthNode?.convert();if(t!=null)return{type:"header",nameOverride:t?.name,headerWireValue:this.headerName??"Authorization",prefix:t?.prefix??this.headerBearerFormatNode?.convert()}}};_Jn();_7o();function DQr(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function Mrt(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function oLe(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(oLe).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function RQr(e){if(Array.isArray(e))return e.map(Mrt);if(typeof e=="symbol")return[e];e=oLe(e);let t=[],r=e.length;if(r===0)return t;let n=0,i="",o="",s=!1;for(e.charCodeAt(0)===46&&(t.push(""),n++);n<r;){let a=e[n];o?a==="\\"&&n+1<r?(n++,i+=e[n]):a===o?o="":i+=a:s?a==='"'||a==="'"?o=a:a==="]"?(s=!1,t.push(i),i=""):i+=a:a==="["?(s=!0,i&&(t.push(i),i="")):a==="."?i&&(t.push(i),i=""):i+=a,n++}return i&&t.push(i),t}function PNt(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(bqt(t))return r;let n=e[t];return n===void 0?DQr(t)?PNt(e,RQr(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Mrt(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return Dcd(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),bqt(t))return r;let n=e[t];return n===void 0?r:n}}}function Dcd(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||bqt(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function JJa(e){return function(t){return PNt(t,e)}}function YJa(e){return e!==null&&(typeof e=="object"||typeof e=="function")}rKn();function Aqi(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function bqi(e,t,r){return typeof r!="function"?bqi(e,t,()=>{}):yqi(e,t,function n(i,o,s,a,u,c){let l=r(i,o,s,a,u,c);return l!==void 0?!!l:yqi(i,o,n,c)},new Map)}function yqi(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return Rcd(e,t,r,n);case"function":return Object.keys(t).length>0?yqi(e,{...t},r,n):Aqi(e,t);default:return YJa(e)?typeof t=="string"?t==="":!0:Aqi(e,t)}}function Rcd(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return XJa(e,t,r,n);if(t instanceof Map)return Fcd(e,t,r,n);if(t instanceof Set)return jcd(e,t,r,n);let i=Object.keys(t);if(e==null||CIt(e))return i.length===0;if(i.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let o=0;o<i.length;o++){let s=i[o];if(!CIt(e)&&!(s in e)||t[s]===void 0&&e[s]!==void 0||t[s]===null&&e[s]!==null||!r(e[s],t[s],s,e,t,n))return!1}return!0}finally{n?.delete(t)}}function Fcd(e,t,r,n){if(t.size===0)return!0;if(!(e instanceof Map))return!1;for(let[i,o]of t.entries()){let s=e.get(i);if(r(s,o,i,e,t,n)===!1)return!1}return!0}function XJa(e,t,r,n){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let i=new Set;for(let o=0;o<t.length;o++){let s=t[o],a=!1;for(let u=0;u<e.length;u++){if(i.has(u))continue;let c=e[u],l=!1;if(r(c,s,o,e,t,n)&&(l=!0),l){i.add(u),a=!0;break}}if(!a)return!1}return!0}function jcd(e,t,r,n){return t.size===0?!0:e instanceof Set?XJa([...e],[...t],r,n):!1}function FQr(e,t){return bqi(e,t,()=>{})}C7o();function ZJa(e){return e=w7o(e),t=>FQr(t,e)}iKn();dqt();nKn();function eYa(e,t){return I7o(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(lqe(e)===yqt&&typeof e.constructor!="function"){let a={};return o.set(e,a),IM(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case hqt:case mqt:case gqt:{let a=new e.constructor(e?.valueOf());return IM(a,e),a}case Aqt:{let a={};return IM(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function tYa(e){return eYa(e)}var Qcd=/^(?:0|[1-9]\d*)$/;function rYa(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e<t;case"symbol":return!1;case"string":return Qcd.test(e)}}dqt();function nYa(e){return e!==null&&typeof e=="object"&&lqe(e)==="[object Arguments]"}function iYa(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&DQr(t)&&e?.[t]==null?r=RQr(t):r=[t],r.length===0)return!1;let n=e;for(let i=0;i<r.length;i++){let o=r[i];if((n==null||!Object.hasOwn(n,o))&&!((Array.isArray(n)||nYa(n))&&rYa(o)&&o<n.length))return!1;n=n[o]}return!0}function oYa(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=Mrt(e);break}}return t=tYa(t),function(r){let n=PNt(r,e);return n===void 0?iYa(r,e):t===void 0?n===void 0:FQr(n,t)}}function sYa(e){if(e==null)return R9t;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?oYa(e[0],e[1]):ZJa(e);case"string":case"symbol":case"number":return JJa(e)}}_Jn();oKn();function jQr(e,t=R9t){return e==null?{}:Ox(e,sYa(t))}HYo();function aYa(e){return $Yo(oLe(e))}B7o();function uYa(e){return typeof e!="string"&&(e=oLe(e)),e.replace(/['\u2019]/g,"")}function G9(e){return O7o(uYa(aYa(e)))}function Nm(e){if(e!=null)return Array.isArray(e)?e:[e]}function QQr({namespace:e,path:t,method:r,sdkMethodName:n,operationId:i,displayName:o,isWebhook:s}){if(t==null)return;let a=r!=null&&t!=null?`${r}_${t.split("/").join("_")}`:r??t.split("/").join("_");if(!(n==null&&i==null&&o==null&&a==null))return`${Ncd(s)}${kcd(e)}.${Mcd(n,i,o,a)}`}function Ncd(e){return e?"webhook_":"endpoint_"}function kcd(e){return e!=null?Nm(e)?.map(t=>G9(t)).join("/"):""}function Mcd(e,t,r,n){return e||t||G9(r??"")||G9(n??"")}function cYa(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var NQr=class extends Wo{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[jJa],this.accessTokenLocator!=null&&(cYa(this.accessTokenLocator)||(this.context.errors.error({message:"Invalid access token locator, must be a valid jq path",path:this.accessPath}),this.accessTokenLocator=void 0))}convert(){return this.accessTokenLocator}};var kQr=class extends Wo{authorizationUrl;headerAuthNode;accessTokenLocatorNode;constructor(t){super(t),this.safeParse()}parse(){if(this.input.flows.clientCredentials!=null){let t=this.input.flows.clientCredentials;this.authorizationUrl=t.tokenUrl,this.authorizationUrl==null&&this.context.errors.error({message:"Expected 'tokenUrl' property to be specified",path:this.accessPath}),this.headerAuthNode=new krt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new NQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.authorizationUrl==null&&this.context.errors.error({message:"Expected 'tokenUrl' property to be specified",path:this.accessPath}),this.accessTokenLocatorNode?.accessTokenLocator==null&&this.context.errors.error({message:"Expected 'x-fern-access-token-locator' property to be specified",path:this.accessPath})}}convert(){let t=this.accessTokenLocatorNode?.convert();if(t==null||this.authorizationUrl==null)return{type:"bearerAuth",tokenName:void 0};let r=QQr({namespace:void 0,path:this.authorizationUrl,method:"POST",sdkMethodName:void 0,operationId:void 0,displayName:void 0,isWebhook:void 0});if(r!=null)return{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:Ia.EndpointId(r),accessTokenLocator:Ia.JqString(t),headerName:this.headerAuthNode?.convert()?.headerWireValue,tokenPrefix:this.headerAuthNode?.convert()?.prefix}}}}};var Lrt=class extends Wo{authScheme;headerAuthNode;bearerTokenNode;bearerTokenVariableNameNode;basicAuthNode;basicUsernameVariableNameNode;basicPasswordVariableNameNode;oauth2Node;constructor(t){super(t),this.safeParse()}parse(){switch(this.input.type){case"http":switch(this.input.scheme){case"basic":{this.authScheme="basic",this.basicAuthNode=new CQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new xQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new _Qr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),(this.basicAuthNode==null||this.basicAuthNode.username==null&&this.basicUsernameVariableNameNode?.usernameVariableName==null||this.basicAuthNode.password==null&&this.basicPasswordVariableNameNode?.passwordVariableName==null)&&this.context.errors.warning({message:"Basic auth should specify either a username or a username variable name",path:this.accessPath});break}case"bearer":{this.authScheme="bearer",this.bearerTokenNode=new SQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new OQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});break}default:{this.context.errors.warning({message:`Unsupported HTTP auth scheme: ${this.input.scheme}`,path:this.accessPath});break}}break;case"apiKey":{GJa(this.input)?(this.authScheme="header",this.headerAuthNode=new krt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})):this.context.errors.error({message:`Unsupported API key location: ${this.input.in}`,path:this.accessPath});break}case"oauth2":{this.authScheme="oauth",this.oauth2Node=new kQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});break}case"openIdConnect":{this.authScheme="bearer";break}}}convert(){switch(this.authScheme){case"basic":{let t=this.basicAuthNode?.convert();return{type:"basicAuth",usernameName:t?.username?.name??this.basicUsernameVariableNameNode?.convert(),passwordName:t?.password?.name??this.basicPasswordVariableNameNode?.convert()}}case"bearer":return{type:"bearerAuth",tokenName:this.bearerTokenNode?.convert()?.tokenVariableName??this.bearerTokenVariableNameNode?.convert()};case"header":return this.headerAuthNode?.convert();case"oauth":return this.oauth2Node?.convert();case void 0:return;default:new lYa.UnreachableCaseError(this.authScheme);return}}};var Urt=class extends Wo{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=wQr(n,this.context.document);if(i==null){this.context.errors.warning({message:`No auth scheme found for ${n}. Inline security schemes are not supported.`,path:this.accessPath});return}let o=new Lrt({input:i,context:this.context,accessPath:this.accessPath,pathId:["security",`${r}`]});o.convert()!=null?(this.authNodesMap??={},this.authNodesMap[n]=o):this.context.errors.warning({message:`No auth scheme found for ${n}`,path:this.accessPath})}))}convert(){return Object.fromEntries(Object.entries(this.authNodesMap??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[t,n]}).filter(Xo))}};var MQr=class extends Wo{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[PJa],this.basePath!=null?(this.basePath.startsWith("/")&&(this.basePath=this.basePath.slice(1)),this.basePath.endsWith("/")&&(this.basePath=this.basePath.slice(0,-1))):this.basePath=void 0}convert(){return this.basePath}};function pYa(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function fYa(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function zrt(e,t){return e==null?void 0:Object.entries(e).map(([n,i])=>Nm(i.convert())?.map(s=>((t!=null&&!t.includes(n)||t==null&&!pYa(i))&&(s=fYa(s,s.type==="enum"?s.default:void 0)),{key:Ia.PropertyKey(n),valueShape:s,description:i.description,availability:i.availability?.convert()})).filter(Xo)).filter(Xo).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]])}function LQr(e,t){return Lp(e)?WS(e,t,void 0):e}function D_e(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function dYa(e,t){let r={...e};for(let[n,i]of Object.entries(t??{}))r[n]=[...r[n]??[],...i];return Object.keys(r).length>0?r:void 0}function mYa(e,t){if(e==null)return t;if(t==null)return e;let r=[];for(let n of e)for(let i of t)r.push({path:n.path??i.path,responseStatusCode:n.responseStatusCode??i.responseStatusCode,name:n.name??i.name,description:n.description??i.description,pathParameters:n.pathParameters??i.pathParameters,queryParameters:n.queryParameters??i.queryParameters,headers:n.headers??i.headers,requestBody:n.requestBody??i.requestBody,responseBody:n.responseBody??i.responseBody,snippets:{...i.snippets,...n.snippets}});return r}var hYa=we(By());var vqi=["decimal","decimal128","double-int","double","float","sf-decimal"],Eqi=["int16","int32","int64","int8","sf-integer","uint8"],Iqi=["base64url","binary","byte","char","commonmark","date-time","date","decimal","decimal128","duration","email","hostname","html","http-date","idn-email","idn-hostname","int64","ipv4","ipv6","iri-reference","iri","json-pointer","media-range","password","regex","relative-json-pointer","sf-binary","sf-boolean","sf-string","sf-token","time","uri-reference","uri-template","uri","uuid"],wqi=["beta","pre-release","in-development","generally-available","deprecated"];function qv(e,t){return Lp(e)?WS(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var OU=class extends Wo{availability;constructor(t){super(t),this.safeParse()}parse(){if(qv(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[TJa];r!=null&&(wqi.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${wqi.join(", ")}. Received: ${r}`,path:this.accessPath}),this.availability=void 0))}}convert(){switch(this.availability){case"beta":case"pre-release":return Ia.Availability.Beta;case"in-development":return Ia.Availability.InDevelopment;case"generally-available":return Ia.Availability.GenerallyAvailable;case"deprecated":return Ia.Availability.Deprecated;case void 0:return;default:new hYa.UnreachableCaseError(this.availability);return}}};var zQr=we(By());function gYa(e){return typeof e=="object"&&e!=null&&"language"in e}function AYa(e){return typeof e=="object"&&e!=null&&"sdk"in e}function yYa(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function bYa(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function UQr(e){return typeof e=="object"&&e!=null&&"event"in e}function Cqi(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(UQr)}function R_e(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function vYa(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var VQr=class extends Wo{path;successResponseStatusCode;requestBodyByContentType;responseBodies;examples;constructor(t,r,n,i,o){super(t),this.path=r,this.successResponseStatusCode=n,this.requestBodyByContentType=i,this.responseBodies=o,this.safeParse()}parse(){this.examples=this.input[qJa]}convertFormDataExampleRequest(t,r){if(t.fields!=null)switch(t.contentType){case"form-data":return{type:"form",value:Object.fromEntries(Object.entries(t.fields).map(([i,o])=>{let s=typeof r=="object"?r[i]:void 0;switch(o.multipartType){case"file":return R_e(s)?[i,{type:"filenameWithData",filename:s.filename,data:Ia.FileId(s.data)}]:s!=null?[i,{type:"filename",value:s}]:void 0;case"files":{if(Array.isArray(s)){if(s.every(a=>R_e(a)))return[i,{type:"filenamesWithData",value:s.map(a=>({filename:a.filename,data:Ia.FileId(a.data)}))}];if(s.every(a=>typeof a=="string"))return[i,{type:"filenames",value:s}]}return}case"property":return[i,{type:"json",value:s}];case void 0:return;default:new zQr.UnreachableCaseError(o.multipartType);return}}).filter(Xo))};case"json":return{type:"json",value:r};case"bytes":return typeof r=="string"?{type:"bytes",value:{type:"base64",value:r}}:void 0;default:return}}convert(){if(this.examples==null)return;this.requestBodyByContentType!=null&&Object.keys(this.requestBodyByContentType).length>1&&this.context.logger.warn(`Multiple request bodies found for #/${[this.accessPath,this.pathId,"x-fern-examples"].join("/")}. Coercing to first request body until supported.`);let t=Object.keys(this.requestBodyByContentType??{})[0];return this.examples.flatMap(r=>(this.responseBodies??[]).map(n=>{let i=t!=null?this.requestBodyByContentType?.[t]:void 0,o;if(i!=null)switch(i.contentType){case"form-data":o=vYa(r.request)?this.convertFormDataExampleRequest(i,r.request):void 0;break;case"json":o=r.request!=null?{type:"json",value:r.request}:void 0;break;case"bytes":o=typeof r.request=="string"&&r.request!=null?{type:"bytes",value:{type:"base64",value:r.request}}:void 0;break;case void 0:break;default:new zQr.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{yYa(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{Cqi(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!Cqi(r.response)&&bYa(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new zQr.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{gYa(p)?p.language!=null&&(a[p.language]??=[],a[p.language]?.push({name:p.name,language:p.language,install:p.install,code:p.code,generated:!1,description:p.docs})):AYa(p)&&p.sdk!=null&&(a[p.sdk]??=[],a[p.sdk]?.push({name:p.name,language:p.sdk,install:void 0,code:p.code,generated:!1,description:p.docs}))});let u=Object.fromEntries(Object.entries(r["path-parameters"]??{}).map(([p,d])=>[Ia.PropertyKey(p),d])),c=Object.fromEntries(Object.entries(r["query-parameters"]??{}).map(([p,d])=>[Ia.PropertyKey(p),d])),l=Object.fromEntries(Object.entries(r.headers??{}).map(([p,d])=>[Ia.PropertyKey(p),d]));return{path:this.path,responseStatusCode:this.successResponseStatusCode,name:r.name,description:r.docs,pathParameters:Object.keys(u).length>0?u:void 0,queryParameters:Object.keys(c).length>0?c:void 0,headers:Object.keys(l).length>0?l:void 0,requestBody:o,responseBody:s,snippets:a}}))}};var TNt=class extends Wo{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[vQr]}convert(){if(this.groupName==null)return;let t;return Array.isArray(this.groupName)?t=this.groupName:t=[this.groupName],t.map(r=>Ia.api.v1.SubpackageId(G9(r)))}};var qQr=class extends Wo{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[RJa]}convert(){return this.sdkMethodName}};var GQr=class extends Wo{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[FJa]}convert(){return this.isWebhook}};var WQr=class extends Wo{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[$Ja]??[],...this.input[HJa]??[]],this.codeSamples.forEach(t=>{[...Object.values(Ia.api.v1.read.SupportedLanguage),"Kotlin","Swift","PHP"].map(r=>r.toLowerCase()).includes(t.lang.toLowerCase())||this.context.errors.warning({message:`Unsupported language: ${t.lang}. This may not render correctly.`,path:this.accessPath})})}convert(){let t={};if(this.codeSamples?.forEach(r=>{t[r.lang.toLowerCase()]??=[],t[r.lang.toLowerCase()]?.push({name:r.label,language:r.lang,code:r.source,install:void 0,generated:!1,description:void 0})}),Object.keys(t).length!==0)return t}};var sLe=we(By());function _qi(e,t){return Lp(e)?WS(e,t,void 0):e}function EYa(e,t){return e.replace(/{(\w+)}/g,(r,n)=>t[n]!=null&&typeof t[n]=="string"||typeof t[n]=="number"||typeof t[n]=="boolean"?`${t[n]}`:r)}var a_="",nX=class extends Wo{path;responseStatusCode;name;shapes;resolvedRequestInput;resolvedResponseInput;summary;constructor(t,r,n,i,o){super(t),this.path=r,this.responseStatusCode=n,this.name=i,this.shapes=o,this.safeParse()}validateFormDataRequestExample(){return typeof this.resolvedRequestInput?.value!="object"?!1:Object.entries(this.shapes.requestBody?.fields??{}).reduce((t,[r,n])=>{let i=this.resolvedRequestInput?.value[r];switch(n.multipartType){case"file":return t&&(R_e(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>R_e(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new sLe.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=_qi(this.input?.requestExample,this.context.document)??(t!=null?{value:t}:void 0);let r=this.shapes.responseBody?.schema?.example({includeOptionals:!1,override:void 0});if(this.resolvedResponseInput=_qi(this.input?.responseExample,this.context.document)??(r!=null?{value:r}:void 0),this.summary=this.input?.requestExample?.summary??this.input?.responseExample?.summary,this.shapes.requestBody!=null&&this.resolvedRequestInput!=null)switch(this.shapes.requestBody?.contentType){case"json":{if(typeof this.resolvedRequestInput.value!="object"){this.context.errors.error({message:"Invalid example, expected object for json",path:this.accessPath});return}break}case"bytes":{if(typeof this.resolvedRequestInput.value!="string"){this.context.errors.error({message:"Invalid example, expected string for bytes",path:this.accessPath});return}break}case"form-data":{if(!this.validateFormDataRequestExample()){this.context.errors.error({message:"Invalid example, expected valid form-data",path:this.accessPath});return}break}case void 0:break;default:new sLe.UnreachableCaseError(this.shapes.requestBody?.contentType),this.context.errors.error({message:"Invalid example, unsupported content type",path:this.accessPath});return}if(this.shapes.responseBody!=null&&this.resolvedResponseInput!=null)switch(this.shapes.responseBody?.contentType){case"application/json":if(this.resolvedResponseInput!=null&&typeof this.resolvedResponseInput!="object"||this.resolvedResponseInput.value!=null&&typeof this.resolvedResponseInput.value!="object"){this.context.errors.error({message:"Invalid example, expected object for json",path:this.accessPath});return}break;case"text/event-stream":if(this.resolvedResponseInput.value!=null&&!Array.isArray(this.resolvedResponseInput.value)&&!this.resolvedResponseInput.value.every(UQr)){this.context.errors.error({message:"Invalid example, expected array of SSE events for event-stream",path:this.accessPath});return}break;case"application/octet-stream":if(this.resolvedResponseInput.value!=null&&typeof this.resolvedResponseInput.value!="string"&&!Array.isArray(this.resolvedResponseInput.value)){this.context.errors.error({message:"Invalid example, expected string or array for octet-stream",path:this.accessPath});return}break;case void 0:break;default:new sLe.UnreachableCaseError(this.shapes.responseBody?.contentType);return}}convertFormDataExampleRequest(){if(!(this.resolvedRequestInput==null||this.shapes.requestBody?.fields==null))switch(this.shapes.requestBody?.contentType){case"form-data":return{type:"form",value:Object.fromEntries(Object.entries(this.shapes.requestBody.fields).map(([r,n])=>{let i=this.resolvedRequestInput?.value?.[r];switch(n.multipartType){case"file":return R_e(i)?[r,{type:"filenameWithData",filename:i.filename,data:Ia.FileId(i.data)}]:[r,{type:"filename",value:i}];case"files":{if(Array.isArray(i)){if(i.every(o=>R_e(o)))return[r,{type:"filenamesWithData",value:i.map(o=>({filename:o.filename,data:Ia.FileId(o.data)}))}];if(i.every(o=>typeof o=="string"))return[r,{type:"filenames",value:i}]}return}case"property":return[r,{type:"json",value:i}];case void 0:return;default:new sLe.UnreachableCaseError(n.multipartType);return}}).filter(Xo))};case"json":return{type:"json",value:this.resolvedRequestInput.value};case"bytes":return typeof this.resolvedRequestInput.value=="string"?{type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}}:void 0;default:return}}convertDescription(){if(this.resolvedRequestInput!=null&&this.resolvedResponseInput!=null)return this.resolvedResponseInput.description;if(this.resolvedRequestInput!=null)return this.resolvedRequestInput.description;if(this.resolvedResponseInput!=null)return this.resolvedResponseInput.description}convert(){let t;if(this.shapes.requestBody!=null&&this.resolvedRequestInput!=null)switch(this.shapes.requestBody.contentType){case"form-data":t=this.convertFormDataExampleRequest();break;case"json":t={type:"json",value:this.resolvedRequestInput.value};break;case"bytes":t={type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}};break;case void 0:break;default:new sLe.UnreachableCaseError(this.shapes.requestBody?.contentType);break}let r;if(this.shapes.responseBody!=null&&this.resolvedResponseInput!=null)switch(this.shapes.responseBody.contentType){case"application/json":{r={type:"json",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break}case"text/event-stream":r={type:"sse",value:this.resolvedResponseInput?.value};break;case"application/octet-stream":r={type:typeof this.resolvedResponseInput?.value=="string"?"filename":"stream",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break;case void 0:r={type:"json",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break;default:new sLe.UnreachableCaseError(this.shapes.responseBody?.contentType);break}let n=Object.fromEntries(Object.entries(this.shapes.pathParameters??{}).map(([s,a])=>[s,a.example({includeOptionals:!1,override:s})]));n=Object.keys(n).length>0?n:void 0;let i=Object.fromEntries(Object.entries(this.shapes.queryParameters??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(Xo));i=Object.keys(i).length>0?i:void 0;let o=Object.fromEntries(Object.entries(this.shapes.requestHeaders??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(Xo));if(o=Object.keys(o).length>0?o:void 0,!(this.path==null&&t==null&&r==null&&o==null&&i==null&&n==null))return{path:EYa(this.path,n??{}),responseStatusCode:this.responseStatusCode,name:this.name!=null?qS(this.name):this.summary!=null?qS(this.summary):void 0,description:this.convertDescription(),pathParameters:n,queryParameters:i,headers:o,requestBody:t,responseBody:r,snippets:void 0}}};function IYa(e,t){return Lp(e)?WS(e,t,void 0):e}var jYa=we(By());var wYa="#/components/schemas/";function Vrt(e){if(e.$ref.startsWith(wYa))return e.$ref.replace(wYa,"")}function oAe(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function F_e(e){return typeof e.type=="string"&&e.type==="array"}function CYa(e){return e.type==="boolean"}function _Ya(e){return e.type==="integer"}function j_e(e){return!Array.isArray(e.type)&&!F_e(e)}function xYa(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||j_e(t)||F_e(t))}function SYa(e){return"nullable"in e&&typeof e.nullable=="boolean"}function OYa(e){return e.type==="null"}function BYa(e){return e.type==="number"}function xqi(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function PYa(e){return e.type==="string"}var $Qr=class extends vj{item;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.item=new Fg({input:this.input.items,context:this.context,accessPath:this.accessPath,pathId:"items",seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}),this.input.items==null&&this.context.errors.error({message:"Expected 'items' property to be specified",path:this.accessPath})}convert(){return Nm(this.item?.convert())?.map(r=>({type:"alias",value:{type:"list",itemShape:r}}))}example(t){return this.input.example??this.input.examples?.[0]??[this.item?.example(t)]}};var HQr=class extends Vv{constValue;description;availability;constructor(t){super(t),this.safeParse()}parse(){this.input.const!=null&&(typeof this.input.const=="string"||typeof this.input.const=="number"||typeof this.input.const=="boolean")?this.constValue=this.input.const.toString():this.context.errors.warning({message:`Unsupported const type: ${typeof this.input}`,path:this.accessPath}),this.description=this.input.description,this.availability=new OU({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"})}convert(){if(this.constValue!=null)return{type:"enum",default:this.constValue,values:[{value:this.constValue,description:this.description,availability:this.availability?.convert()}]}}example(){return this.input.example??this.input.examples?.[0]??this.constValue}};var KQr=class extends vj{typeNodes;nullable;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.parse()}parse(){this.typeNodes=this.input.map(t=>{if(t.type==="null")this.nullable=!0;else return new Fg({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName})}).filter(Xo)}convert(){if(this.typeNodes==null)return;let n=this.typeNodes.map(i=>Nm(i.convert())?.map(s=>({displayName:i.name,shape:s,description:i.description,availability:i.availability?.convert()}))).filter(Xo).reduce((i,o)=>i.flatMap(s=>o.length>0?o.map(a=>[...s,a]):[[...s]]),[[]]).map(i=>({type:"undiscriminatedUnion",variants:i}));return this.nullable?n.map(oAe).filter(Xo):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function JQr(e){return e!=null&&e.length>0?e:[void 0]}var qrt=class extends vj{description;extends=[];properties;extraProperties;requiredProperties;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.extends=[],this.requiredProperties=this.input.required,this.properties=Object.fromEntries(Object.entries(this.input.properties??{}).map(([t,r])=>[t,new Fg({input:r,context:this.context,accessPath:this.accessPath,pathId:["properties",t],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})])),this.extraProperties=this.input.additionalProperties!=null?typeof this.input.additionalProperties=="boolean"?this.input.additionalProperties?this.input.title:void 0:new Fg({input:this.input.additionalProperties,context:this.context,accessPath:this.accessPath,pathId:["additionalProperties"],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0,this.input.allOf!=null&&(this.extends=this.extends.concat(this.input.allOf.map((t,r)=>{if(Lp(t))return Vrt(t);this.properties={...this.properties,...Object.fromEntries(Object.entries(t.properties??{}).map(([n,i])=>[n,new Fg({input:i,context:this.context,accessPath:this.accessPath,pathId:["allOf",r.toString(),"properties",n],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))}}).filter(Xo))),this.description=this.input.description}convertProperties(){if(this.properties!=null)return zrt(this.properties,this.requiredProperties)}convertExtraProperties(){return this.extraProperties==null?void 0:typeof this.extraProperties=="string"?[{type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:{type:"alias",value:{type:"unknown",displayName:this.extraProperties}}}]:Nm(this.extraProperties.convert())?.map(r=>({type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:r})).filter(Xo)}convert(){let t=this.convertProperties();if(t==null)return;let r=this.convertExtraProperties();return t.flatMap(n=>JQr(r).map(i=>(this.extends==null||this.extends.length===0)&&n.length===0&&i!=null?{type:"alias",value:i}:{type:"object",extends:this.extends.map(o=>Ia.TypeId(o)),properties:n,extraProperties:i}))}example({includeOptionals:t}){let r={...this.properties};return this.input.allOf?.forEach(n=>{let i=qv(n,this.context.document);i!=null&&(r={...r,...Object.fromEntries(Object.entries(i.properties??{}).map(([o,s])=>[o,new Fg({input:s,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))})}),this.input.example??this.input.examples?.[0]??(!t&&this.requiredProperties!=null&&this.requiredProperties.length>0?this.requiredProperties?.reduce((n,i)=>{let o=r?.[i];return n[i]=o?.example({includeOptionals:t,override:i}),n},{}):Object.entries(r).reduce((n,[i,o])=>(n[i]=o?.example({includeOptionals:t,override:i}),n),{}))}};var YQr=class extends vj{isNullable;discriminated;discriminant;discriminatedMapping;undiscriminatedMapping;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.input.oneOf!=null||this.input.anyOf!=null)if(this.isNullable=(this.input.oneOf??this.input.anyOf)?.some(t=>qv(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>qv(t,this.context.document)?.type!=="null"?new Fg({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0).filter(Xo);else{let t=this.input.discriminator.mapping;if(t!=null){this.discriminated=!0,this.discriminant=this.input.discriminator.propertyName,this.discriminatedMapping={};let r=this.discriminatedMapping;Object.entries(t).map(([n,i])=>{let o=qv({$ref:i},this.context.document);if(o==null){this.context.errors.warning({message:`Expected schema reference. Received undefined reference: ${i}`,path:[...this.accessPath,"discriminator","mapping",n]});return}r[n]=new Fg({input:o,context:this.context,accessPath:[...this.accessPath,"discriminator","mapping",n],pathId:n,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})})}}}convert(){if(!this.discriminated&&this.undiscriminatedMapping?.length===1){let i=this.undiscriminatedMapping?.flatMap(o=>o.convert()).filter(Xo);return this.isNullable&&i!=null?i.map(oAe).filter(Xo):i}let t=0,r=this.discriminated&&this.discriminant!=null&&this.discriminatedMapping!=null?{type:"discriminatedUnion",discriminant:Ia.PropertyKey(this.discriminant),variants:Object.entries(this.discriminatedMapping).flatMap(([i,o])=>Nm(o.convert())?.map(a=>{if(!(a==null||a.type!=="object"))return{discriminantValue:i,displayName:o.name??qS(i),availability:o.availability?.convert(),description:o.description,...a}}).filter(Xo)).filter(Xo)}:this.undiscriminatedMapping!=null?{type:"undiscriminatedUnion",variants:this.undiscriminatedMapping.flatMap(i=>Nm(i.convert())?.map(s=>{if(s==null)return;t+=1;let a=s.type==="object"?qS(`${this.schemaName??"Variant"} ${t}`):void 0;return{displayName:i.name??(s.type==="alias"&&s.value.type==="id"?qS(s.value.id):a),shape:s,description:i.description,availability:i.availability?.convert()}}).filter(Xo)).filter(Xo)}:void 0,n=this.isNullable?oAe(r):r;return n!=null?[n]:void 0}example(t){return this.input.example??this.input.examples?.[0]??this.undiscriminatedMapping?.[0]?.example(t)??Object.values(this.discriminatedMapping??{})[0]?.example(t)}};var XQr=class extends Vv{default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.input.default!=null&&typeof this.input.default!="boolean"&&this.context.errors.warning({message:`Expected default value to be a boolean. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default}convert(){return{type:"alias",value:{type:"primitive",value:{type:"boolean",default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:!1)}};var Q_e=class extends Vv{default;values=[];nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){if(this.input.enum!=null){let t=!0;this.values=this.input.enum.map((r,n)=>{if(t){if(Lp(r)){let i=qv(r,this.context.document);r=typeof i=="string"?i:typeof i?.default=="string"?i?.default:typeof i?.example=="string"?i.example:void 0}if(typeof r!="string"){this.context.errors.error({message:`Expected enum values to be strings. Received ${r}`,path:[...this.accessPath,`enum[${n}]`]}),t=!1;return}return r}}).filter(Xo),this.values=Array.from(new Set(this.values))}this.default=this.input.default}convert(){return{type:"enum",values:this.values.map(t=>({value:t,description:void 0,availability:void 0})),default:this.default}}example(){return this.input.example??this.input.examples?.[0]??this.default??this.values[0]??(this.nullable?null:void 0)}};var TYa=we(By());function Lcd(e){return Eqi.includes(e)}var ZQr=class extends Vv{format;minimum;maximum;default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.minimum=this.input.minimum,this.maximum=this.input.maximum,this.input.default!=null&&typeof this.input.default!="number"&&this.context.errors.warning({message:`Expected default value to be an integer. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(Lcd(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${Eqi.join(", ")}. Received ${this.input.format}`,path:this.accessPath}))}convert(){let t="integer";if(this.format!=null)switch(this.format){case"int64":t="long";break;case"int8":case"int16":case"int32":case"uint8":case"sf-integer":case void 0:t="integer";break;default:new TYa.UnreachableCaseError(this.format);break}return{type:"alias",value:{type:"primitive",value:{type:t,minimum:this.minimum,maximum:this.maximum,default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:0)}};var eNr=class extends Vv{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return oAe({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var DYa=we(By());function Ucd(e){return vqi.includes(e)}var tNr=class extends Vv{format;minimum;maximum;default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.minimum=this.input.minimum,this.maximum=this.input.maximum,this.input.default!=null&&typeof this.input.default!="number"&&this.context.errors.warning({message:`Expected default value to be a number. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(Ucd(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${vqi.join(", ")}. Received ${this.input.format}`,path:this.accessPath}))}convert(){let t="double";if(this.format!=null)switch(this.format){case"decimal":case"decimal128":case"double-int":case"double":case"float":case"sf-decimal":case void 0:t="double";break;default:new DYa.UnreachableCaseError(this.format);break}return{type:"alias",value:{type:"primitive",value:{type:t,minimum:this.minimum,maximum:this.maximum,default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:0)}};var RYa=we(By());function zcd(e){return Iqi.includes(e)}var rNr=class extends Vv{format;regex;default;minLength;maxLength;enum;mimeType;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}mapToFdrType(t){switch(t){case"base64url":case"binary":case"byte":case"sf-binary":return"base64";case"date-time":return"datetime";case"int64":return"bigInteger";case"date":return"date";case"uuid":return"uuid";case"char":case"commonmark":case"decimal":case"decimal128":case"duration":case"email":case"hostname":case"html":case"http-date":case"idn-email":case"idn-hostname":case"ipv4":case"ipv6":case"iri-reference":case"iri":case"json-pointer":case"media-range":case"password":case"regex":case"relative-json-pointer":case"sf-boolean":case"sf-string":case"sf-token":case"time":case"uri-reference":case"uri-template":case"uri":case void 0:return"string";default:return new RYa.UnreachableCaseError(t),"string"}}parse(){this.regex=this.input.pattern,this.minLength=this.input.minLength,this.maxLength=this.input.maxLength,this.mimeType=this.input.contentMediaType,this.input.default!=null&&typeof this.input.default!="string"&&this.context.errors.warning({message:`Expected default value to be a string. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(zcd(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${Iqi.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new Q_e({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"enum",nullable:this.nullable}))}convert(){if(this.enum!=null)return this.enum.convert();let t="string";return this.format!=null&&(t=this.mapToFdrType(this.format)),{type:"alias",value:{type:"primitive",value:t==="base64"?{type:t,mimeType:this.mimeType,default:this.default}:{type:t,format:t==="string"?this.format:void 0,regex:this.regex,minLength:this.minLength,maxLength:this.maxLength,default:this.default}}}}example({override:t}){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:t??"string")}};var FYa=we(By());var nNr=class extends Vv{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,FYa.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var aLe=class extends vj{description;availability;schemaId;maybeEnumConverterNode;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.description=t.description,this.availability=t.availability,this.safeParse()}parse(){this.schemaId=Vrt(this.input);let t=qv(this.input,this.context.document);t?.enum!=null&&j_e(t)&&(this.maybeEnumConverterNode=new Q_e({input:t,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",nullable:this.nullable})),this.schemaId==null&&this.context.errors.error({message:`Unprocessable reference: ${this.input.$ref}`,path:this.accessPath})}convert(){if(this.schemaId!=null)return{type:"alias",value:{type:"id",id:Ia.TypeId(this.schemaId),default:this.maybeEnumConverterNode?.default!=null?{type:"enum",value:this.maybeEnumConverterNode.default}:void 0}}}example(t){let r=qv(this.input,this.context.document);if(r!=null)return new Fg({input:r,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName}).example(t)}};var Fg=class e extends vj{typeShapeNode;description;name;examples;availability;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.description=this.input.description,this.availability=new OU({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),j_e(this.input)&&SYa(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Lp(this.input)){let t=Vrt(this.input);if(t==null){this.context.errors.error({message:"Reference object does not have a valid schema ID",path:this.accessPath});return}if(this.seenSchemas.has(t)){this.context.errors.warning({message:"Circular or deeply nested schema found, terminating",path:this.accessPath});return}this.seenSchemas.add(t),this.typeShapeNode=new aLe({input:this.input,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName,description:this.description,availability:this.availability})}else if(this.name=this.input.title,this.examples=this.input.example,this.input.const!=null)this.typeShapeNode=new HQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(xYa(this.input))this.typeShapeNode=new KQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(j_e(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new YQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(xqi(this.input)&&this.input.allOf!=null)this.typeShapeNode=new qrt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(j_e(this.input)&&this.input.enum!=null)this.typeShapeNode=new Q_e({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable});else if(typeof this.input.type=="string"||Array.isArray(this.input.type)&&this.input.type.length===1){if(this.input.type=Array.isArray(this.input.type)?this.input.type[0]:this.input.type,!Array.isArray(this.input.type))switch(this.input.type){case"object":xqi(this.input)&&(this.typeShapeNode=new qrt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":F_e(this.input)&&(this.typeShapeNode=new $Qr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":CYa(this.input)&&(this.typeShapeNode=new XQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":_Ya(this.input)&&(this.typeShapeNode=new ZQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":BYa(this.input)&&(this.typeShapeNode=new tNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":PYa(this.input)&&(this.typeShapeNode=new rNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":OYa(this.input)&&(this.typeShapeNode=new eNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new jYa.UnreachableCaseError(this.input.type);break}}else if(Array.isArray(this.input.type)&&this.input.type.includes("null")&&this.input.type.length===2){let t=this.input.type.filter(r=>r!=="null")[0];t!=="array"&&(this.typeShapeNode=new e({input:{...this.input,type:t},context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:!0,schemaName:this.schemaName}))}else this.input.properties!=null&&(this.typeShapeNode=new qrt({input:{...this.input,type:"object"},context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));this.typeShapeNode==null&&(this.typeShapeNode=new nNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Lp(this.input)&&(!F_e(this.input)&&this.input==null||F_e(this.input)&&this.input.items==null)&&this.context.errors.error({message:"Expected type declaration. Received: null",path:this.accessPath}))}convert(){let t=this.typeShapeNode?.convert();if(t==null)return;let r=Nm(t)?.map(n=>this.nullable?oAe(n):n).filter(Xo);return Array.isArray(t)&&t.length>1?r:r?.[0]}example(t){return this.availability?.availability!=="deprecated"?this.typeShapeNode?.example(t):void 0}};function N_e(e){if(e!=null)return zrt(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(Xo))}var iX=class extends Vv{availability;required;schema;description;inputExample;constructor(t){super(t),this.safeParse(t.parameterName)}parse(t){this.description=this.input.description;let r;Lp(this.input)?r=this.input:this.input.schema!=null?(r=this.input.schema,this.required=this.input.required):(r={type:"string"},this.required=!1),this.availability=new OU({input:r,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=new Fg({input:r,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:t});let n=IYa(this.input,this.context.document);this.inputExample=n?.example??Object.values(n?.examples??{})[0]}convert(){return this.schema?.convert()}example(t){return this.inputExample??this.schema?.example(t)}};function QYa(e,t){return Lp(e)?WS(e,t,void 0):e}var Sqi=we(By());function iNr(e){let{uniqueId:t,type:r,contextTypes:n,description:i,availability:o}=e;n[Ia.TypeId(t)]={name:t,shape:r,description:i,availability:o}}var NYa=we(ypi(),1),Grt=class e{type;subtype;essence;parameters;mimeType;input;constructor(t,r,n,i,o,s){this.type=t,this.subtype=r,this.essence=n,this.parameters=i,this.mimeType=o,this.input=s}static APPLICATION_JSON="application/json";static APPLICATION_OCTET_STREAM="application/octet-stream";static MULTIPART_FORM_DATA="multipart/form-data";static parse(t){if(t==null)return null;let r=NYa.default.parse(t);return r==null?null:new e(r.type,r.subtype,r.essence,r.parameters,r,t)}toString(){return this.input}isText(){return this.type==="text"}isImage(){return this.type==="image"}isAudio(){return this.type==="audio"}isVideo(){return this.type==="video"}isFont(){return this.type==="font"}isMultipart(){return this.type==="multipart"}isApplication(){return this.type==="application"}isMessage(){return this.type==="message"}isModel(){return this.type==="model"}isCSS(){return this.isText()&&this.subtype==="css"}isCSV(){return this.isText()&&this.subtype==="csv"}isMarkdown(){return this.isText()&&this.subtype==="markdown"}isPlainText(){return this.isText()&&this.subtype==="plain"}isEventStream(){return this.isText()&&this.subtype==="event-stream"}isMultiPartFormData(){return this.isMultipart()&&this.subtype==="form-data"}isJSON(){return this.isApplication()&&this.subtype==="json"}containsJSON(){return this.isApplication()&&this.subtype.includes("json")}isURLEncoded(){return this.isApplication()&&this.subtype==="x-www-form-urlencoded"}isOctetStream(){return this.isApplication()&&this.subtype==="octet-stream"}isPDF(){return this.isApplication()&&this.subtype==="pdf"}isZip(){return this.isApplication()&&this.subtype==="zip"}isGzip(){return this.isApplication()&&this.subtype==="gzip"}isTar(){return this.isApplication()&&this.subtype==="tar"}isBrotli(){return this.isApplication()&&this.subtype==="br"}isDeflate(){return this.isApplication()&&this.subtype==="deflate"}isProtobuf(){return this.isApplication()&&this.subtype==="protobuf"}isAvif(){return this.isImage()&&this.subtype==="avif"}isWebP(){return this.isImage()&&this.subtype==="webp"}isSVG(){return this.isImage()&&this.subtype==="svg+xml"}isPNG(){return this.isImage()&&this.subtype==="png"}isJPEG(){return this.isImage()&&this.subtype==="jpeg"}isGIF(){return this.isImage()&&this.subtype==="gif"}isMPEG(){return this.isAudio()&&this.subtype==="mpeg"}isWAV(){return this.isAudio()&&this.subtype==="wav"}isHTML(){return this.mimeType.isHTML()}isXML(){return this.mimeType.isXML()}isJavaScript(){return this.mimeType.isJavaScript()}};function Vcd(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var oNr=class extends Wo{typeSchemas;securitySchemes;constructor(t){super(t),this.safeParse()}parse(){this.input.schemas!=null&&(this.typeSchemas=Object.fromEntries(Object.entries(this.input.schemas).map(([t,r])=>[t,new Fg({input:r,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:new Set,nullable:void 0,schemaName:t})]))),Vcd(this.input)&&this.input.securitySchemes!=null&&(this.securitySchemes=Object.fromEntries(Object.entries(this.input.securitySchemes??{}).map(([t,r],n)=>{let i;if(Lp(r)?i=wQr(r.$ref,this.context.document):i=r,i!=null)return[t,new Lrt({input:i,context:this.context,accessPath:this.accessPath,pathId:["securitySchemes",`${n}`]})]}).filter(Xo)))}convert(){return{auths:this.securitySchemes!=null?Object.fromEntries(Object.entries(this.securitySchemes??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[Ia.api.latest.AuthSchemeId(t),n]}).filter(Xo)):void 0,types:this.typeSchemas!=null?Object.fromEntries(Object.entries(this.typeSchemas).map(([t,r])=>{let n=r.name??t,i=Nm(r.convert());return i==null?[t,void 0]:[Ia.TypeId(t),{name:n,shape:i[0],description:r.description,availability:void 0}]}).filter(([t,r])=>Xo(r))):void 0}}};var sNr=class extends Fg{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=qv(this.input,this.context.document);if(t==null){this.context.errors.error({message:`Expected multipart form data property definition. ${Lp(this.input)?`Received undefined reference: ${this.input.$ref}`:""}`,path:this.accessPath});return}if(t.type==="string"&&t.format==="binary")this.multipartType="file",this.contentType=t.contentMediaType;else if(t.type==="array"){let r=qv(t.items,this.context.document);r?.type==="string"&&r?.format==="binary"?(this.multipartType="files",this.contentType=r?.contentMediaType):(this.context.errors.warning({message:"Expected multipart form data files definition with array type with internal string type and binary format.",path:this.accessPath}),this.multipartType=void 0,this.contentType=void 0)}else this.multipartType="property",this.contentType=t.contentMediaType}};var aNr=class extends Wo{description;method;path;schema;isOptional;contentType;availability;requiredFields;fields;examples;constructor(t){super(t),this.method=t.method,this.path=t.path,this.safeParse(t)}parse({contentType:t}){if(this.input.schema!=null){let n=qv(this.input.schema,this.context.document);this.availability=new OU({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Lp(this.input.schema)?new aLe({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:!1,schemaName:"Request Body",description:this.input.schema.description,availability:this.availability}):void 0;let i=Grt.parse(t);i?.containsJSON()?(this.contentType="json",this.schema=this.schema??new Fg({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:"Request Body"})):i?.isOctetStream()?(this.contentType="bytes",this.isOptional=n?.required==null):i?.isMultiPartFormData()?(this.contentType="form-data",this.requiredFields=n?.required,this.fields=Object.fromEntries(Object.entries(n?.properties??{}).map(([o,s])=>{if(s!=null)return[o,new sNr({input:s,context:this.context,accessPath:this.accessPath,pathId:`schema.${o}`,seenSchemas:new Set,nullable:void 0,schemaName:o})]}).filter(Xo))):this.context.errors.warning({message:`Expected request body of reference or object with json, streaming or form-data content types. Received: ${t}`,path:this.accessPath})}let r=this.schema?.example({includeOptionals:!0,override:void 0});this.examples={...this.input.example!=null?{[a_]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[a_]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:Nm(t)?.map(n=>{let i=n.type;switch(i){case"object":case"alias":return n;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let o=G9([this.method,this.path,this.contentType,"request"].join("_"));return iNr({uniqueId:o,type:n,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:Ia.TypeId(o),default:n.type==="enum"&&n.default!=null?{type:"enum",value:n.default}:void 0}}}case void 0:return;default:new Sqi.UnreachableCaseError(i);return}}).filter(Xo)}convert(){if(this.schema instanceof aLe)return this.schema.convert();switch(this.contentType){case"json":return this.convertJsonLike();case"bytes":return{type:"bytes",isOptional:this.isOptional??!1,contentType:this.contentType};case"form-data":return Object.entries(this.fields??{}).map(([n,i])=>{switch(i.multipartType){case"file":return[{type:i.multipartType,key:Ia.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"files":return[{type:i.multipartType,key:Ia.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"property":{let o=Nm(i.convert()),s=i.multipartType;return o?.map(a=>({type:s,key:Ia.PropertyKey(n),contentType:i.contentType,exploded:void 0,valueShape:a,description:i.description,availability:i.availability?.convert()}))}case void 0:return[];default:return new Sqi.UnreachableCaseError(i.multipartType),[]}}).filter(Xo).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]]).map(n=>({type:"formData",fields:n,availability:this.availability?.convert(),description:this.description}));case void 0:return this.convertJsonLike();default:return}}};var uNr=class extends Wo{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=QYa(this.input,this.context.document);if(n==null){this.context.errors.error({message:"Expected request body. Received: null",path:this.accessPath});return}Object.entries(n.content).forEach(([i,o])=>{this.requestBodiesByContentType??={},this.requestBodiesByContentType[i]=new aNr({input:o,context:this.context,accessPath:this.accessPath,pathId:"content",contentType:i,method:t,path:r})})}convert(){return Object.entries(this.requestBodiesByContentType??{}).flatMap(([t,r])=>Nm(r.convert())?.map(i=>({description:this.description,contentType:t,body:i}))).filter(Xo)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>Nm(t.convert())?.map(n=>{if(!(n.type!=="alias"&&n.type!=="object"))return{description:this.description,shape:n}})).filter(Xo)}webhookExample(){return{payload:this.requestBodiesByContentType?.["application/json"]?.schema?.example({includeOptionals:!0,override:void 0})}}};var kYa={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",306:"Switch Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",510:"Not Extended",511:"Network Authentication Required"};function MYa(e,t){if(Lp(e)){let r=WS(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var cNr=we(By());var LYa="application/json";var UYa="application/octet-stream";function zYa(e,t){return e===t||t===a_||e===a_}var DNt=class extends Wo{streamingFormat;path;method;statusCode;requests;shapes;schema;contentType;unsupportedContentType;contentSubtype;examples;empty;constructor(t,r,n,i,o,s,a,u){super(t),this.streamingFormat=n,this.path=i,this.method=o,this.statusCode=s,this.requests=a,this.shapes=u,this.safeParse(r)}matchRequestResponseExamplesByName(t,r,n){for(let i of t)for(let[o,s]of Object.entries(i?.examples??{}))for(let[a,u]of Object.entries(r))for(let c of u)zYa(a,o)&&(n.add(a),this.examples?.push(new nX({input:{requestExample:s,responseExample:c},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,D_e(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}matchExamplesByIndex(t,r){let n=0;for(let i of t){let o=0;for(let[s,a]of r){if(o===n){let[u,c,l]=i??[void 0,void 0,void 0];this.examples?.push(...a.map(p=>new nX({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,D_e(c,s),{requestBody:u,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}o++}n++}if(t.length>r.length)for(let i of t.slice(r.length)){let[o,s]=r[r.length-1]??[void 0,void 0],[a,u,c]=i??[void 0,void 0,void 0];this.examples?.push(...(s??[void 0]).map(l=>new nX({input:{requestExample:c,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,D_e(u,o),{requestBody:a,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}if(r.length>t.length){let[i,o,s]=t[t.length-1]??[void 0,void 0,void 0];for(let[a,u]of r.slice(t.length))this.examples?.push(...u.map(c=>new nX({input:{requestExample:s,responseExample:c},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,D_e(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}}pushResponseExample(t,r,n,i){let o=t[a_];if(o!=null)for(let s of o)this.examples?.push(new nX({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,D_e(n,void 0),{requestBody:r,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders}))}addGlobalFallbackExample(t,r){if(t==null||t.length===0)this.pushResponseExample(r,void 0,void 0,void 0);else for(let n of t)if(Object.keys(n.examples??{}).length===0)this.pushResponseExample(r,n,void 0,void 0);else for(let[i,o]of Object.entries(n.examples??{}))this.pushResponseExample(r,n,i,o)}parse(t){if(t==="empty")this.empty=!0;else{let a=Grt.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=LYa,this.input.schema==null?(this.streamingFormat==null||this.streamingFormat==="json")&&this.context.errors.error({message:"Expected schema for JSON response body. Received null",path:this.accessPath}):this.schema=new Fg({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"type",seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"});else if(a?.isOctetStream())this.contentType=UYa,this.contentSubtype=qv(this.input.schema,this.context.document)?.contentMediaType;else if(this.unsupportedContentType=t,this.input.schema==null){this.context.errors.error({message:"Expected schema for plain text response body. Received null",path:this.accessPath});return}else this.schema=new Fg({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"})}let r={};this.input.examples!=null&&(r=jQr(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[a_]??=[],r[a_]=[{value:this.input.example}]);let n=qv(this.input.schema,this.context.document);if(n!=null&&(n.examples!=null&&Object.keys(r).length===0&&(r=jQr(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[a_]??=[],r[a_]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[a_]??=[],r[a_]?.push(a!=null?{value:a}:void 0)}this.examples??=[];let i=new Set;this.matchRequestResponseExamplesByName(this.requests,r,i);let o=[];for(let a of this.requests)o.push(...Object.entries(a.examples??{}).filter(([u])=>!i.has(u)&&u!==a_).map(([u,c])=>[a,u,c]));let s=Object.entries(r).filter(([a,u])=>!i.has(a)&&Xo(u)&&a!==a_);Object.keys(r).every(a=>a===a_)||this.matchExamplesByIndex(o,s),!i.has(a_)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return Nm(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new cNr.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return Nm(this.schema?.convert())?.map(r=>{let n=r.type;switch(n){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let i=G9([this.method,this.path,this.statusCode,"response"].join("_"));return iNr({uniqueId:i,type:r,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:Ia.TypeId(i),default:r.type==="enum"&&r.default!=null?{type:"enum",value:r.default}:void 0}}}case"object":return r;default:new cNr.UnreachableCaseError(n);return}}).filter(Xo)}convert(){if(this.empty)return{type:"empty"};if(this.contentType!=null)switch(this.contentType){case"application/json":return this.streamingFormat==null?this.convertJsonLike():this.convertStreamingFormat();case"application/octet-stream":return{type:"fileDownload",contentType:this.contentSubtype};case"text/event-stream":return this.convertStreamingFormat();case void 0:return;default:new cNr.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var RNt=class extends Wo{path;method;statusCode;requests;shapes;headers;responses;description;constructor(t,r,n,i,o,s){super(t),this.path=r,this.method=n,this.statusCode=i,this.requests=o,this.shapes=s,this.safeParse()}parse(t){this.description=this.input.description;let r=MYa(this.input,this.context.document);if(r==null){this.context.errors.error({message:Lp(this.input)?`Undefined reference: ${this.input.$ref}`:"Expected response, received null",path:this.accessPath});return}Object.entries(r.headers??{}).forEach(([n,i])=>{this.headers??={},this.headers[n]=new iX({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new DNt({input:{},context:this.context,accessPath:this.accessPath,pathId:["content"]},"empty",t,this.path,this.method,this.statusCode,this.requests,this.shapes))):Object.entries(r.content??{}).forEach(([n,i])=>{this.responses??=[],this.responses.push(new DNt({input:i,context:this.context,accessPath:this.accessPath,pathId:["content",n]},n,t,this.path,this.method,this.statusCode,this.requests,this.shapes))})}convert(){return this.responses?.flatMap(t=>t.convert()).filter(Xo)}};var lNr=class extends Wo{path;method;requests;shapes;responsesByStatusCode;errorsByStatusCode;constructor(t,r,n,i,o){super(t),this.path=r,this.method=n,this.requests=i,this.shapes=o,this.safeParse()}parse(){let t=this.input.default;Object.entries(this.input).forEach(([r,n])=>{r!=="default"&&(parseInt(r)>=400?(this.errorsByStatusCode??={},this.errorsByStatusCode[r]=new RNt({input:{...t,...n},context:this.context,accessPath:this.accessPath,pathId:"errors"},this.path,this.method,parseInt(r),[],this.shapes)):(this.responsesByStatusCode??={},this.responsesByStatusCode[r]=new RNt({input:n,context:this.context,accessPath:this.accessPath,pathId:"responses"},this.path,this.method,parseInt(r),this.requests,this.shapes)))})}convertResponseObjectToHttpResponses(){return Object.entries(this.responsesByStatusCode??{}).flatMap(([t,r])=>{let n=r.convert();if(n!=null)return JQr(N_e(r.headers)).flatMap(i=>n?.map(o=>({headers:i,response:{statusCode:parseInt(t),body:o,description:r.description},examples:(r.responses??[]).flatMap(s=>(s.examples??[]).map(a=>a.convert()).filter(Xo))})))}).filter(Xo)}convertResponseObjectToErrors(){return Object.entries(this.errorsByStatusCode??{}).flatMap(([t,r])=>r.responses?.flatMap(n=>{let i=n.schema,o=Nm(i?.convert());if(i!=null)return o?.map(s=>({statusCode:parseInt(t),shape:s,description:r.description??i.description,availability:i.availability?.convert(),name:i.name??kYa[parseInt(t)]??"UNKNOWN ERROR",examples:n.examples?.map(a=>{let u=a.convert();if(u!=null&&u.responseBody?.type==="json")return{name:u.name,description:u.description,responseBody:u.responseBody}}).filter(Xo)})).filter(Xo)})).filter(Xo)}convert(){return{responses:this.convertResponseObjectToHttpResponses(),errors:this.convertResponseObjectToErrors()}}};var k_e=class extends Wo{servers;globalAuth;path;method;basePath;isWebhook;endpointIds;description;displayName;operationId;pathParameters;queryParameters;requestHeaders;requests;responses;availability;auth;namespaces;xFernExamplesNode;redocExamplesNode;emptyResponseExamples;constructor(t){super(t),this.servers=t.servers,this.globalAuth=t.globalAuth,this.path=t.path,this.method=t.method,this.basePath=t.basePath,this.isWebhook=t.isWebhook,this.safeParse()}pushEmptyResponseExample(t,r,n){this.emptyResponseExamples??=[],this.emptyResponseExamples.push(new nX({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,D_e(n,void 0),{requestBody:r,pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}))}parse(){if(this.isWebhook&&this.method!=="POST"&&this.method!=="GET"){this.context.errors.error({message:`Webhook method must be POST or GET. Received: ${this.method}`,path:this.accessPath});return}this.description=this.input.description,this.displayName=this.input.summary,this.operationId=this.input.operationId,this.availability=new OU({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=T_e(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new GQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}).isWebhook||this.isWebhook,this.input.parameters?.map((n,i)=>{if(Lp(n)){let o=LQr(n,this.context.document);if(o!=null)n=o;else{this.context.errors.warning({message:`Expected parameter reference to resolve to an object. Received undefined reference: ${n.$ref}`,path:[...this.accessPath,`parameters[${i}]`]});return}}n.in==="path"?n.schema!=null&&(this.pathParameters??={},this.pathParameters[n.name]=new iX({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="query"?n.schema!=null&&(this.queryParameters??={},this.queryParameters[n.name]=new iX({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="header"&&n.schema!=null&&(this.requestHeaders??={},this.requestHeaders[n.name]=new iX({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name}))});for(let n of this.extractPathParameterIds()??[])this.pathParameters?.[n]==null&&this.context.errors.warning({message:`Path parameter not defined: ${n}`,path:[...this.accessPath,"parameters"]});if(this.redocExamplesNode=new WQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new uNr({input:this.input.requestBody,context:this.context,accessPath:this.accessPath,pathId:"requestBody",method:this.method,path:this.path}):void 0,this.responses=this.input.responses!=null?new lNr({input:this.input.responses,context:this.context,accessPath:this.accessPath,pathId:"responses"},this.path,this.method,Object.values(this.requests?.requestBodiesByContentType??{}),{pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}):void 0,this.responses==null){let n=this.requests?.requestBodiesByContentType;n==null||Object.keys(n).length===0?this.pushEmptyResponseExample(void 0,void 0,void 0):Object.values(n).forEach(i=>{if(Object.keys(i.examples??{}).length===0){let o=i.schema?.example({includeOptionals:!1,override:void 0});o!=null&&this.pushEmptyResponseExample({value:o},i,void 0)}else Object.entries(i.examples??{}).forEach(([o,s])=>{this.pushEmptyResponseExample(s,i,o)})})}let t=200;this.responses?.responsesByStatusCode!=null&&(t=Number(Object.keys(this.responses.responsesByStatusCode)?.filter(n=>Number(n)>=200&&Number(n)<300)[0])),this.globalAuth!=null&&(this.auth=this.globalAuth),this.input.security!=null&&(this.auth=new Urt({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new TNt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-group-name"})],this.namespaces?.every(n=>n.groupName==null)&&this.input.tags!=null&&(this.namespaces=this.input.tags.slice(0,1).map((n,i)=>new TNt({input:{[vQr]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new qQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>QQr({namespace:Nm(n?.groupName),path:this.path,method:this.method,sdkMethodName:r.sdkMethodName,operationId:this.input.operationId,displayName:this.displayName,isWebhook:this.isWebhook})).filter(Xo),this.xFernExamplesNode=new VQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-examples"},this.path,t,this.requests?.requestBodiesByContentType,this.responses?.responsesByStatusCode?.[t]?.responses)}extractPathParameterIds(){if(this.path!=null)return this.path.split("/").map(t=>{if(t.startsWith("{")&&t.endsWith("}"))return t.slice(1,-1).trim()}).filter(Xo)}convertPathToPathParts(){if(this.path===void 0)return;let t=this.path.startsWith("/")?this.path.slice(1):this.path,r=this.basePath?.convert();return(r?[r,...t.split("/")]:t.split("/")).reduce((i,o)=>(i.push({type:"literal",value:"/"}),o.startsWith("{")&&o.endsWith("}")?i.push({type:"pathParameter",value:Ia.PropertyKey(o.slice(1,-1).trim())}):i.push({type:"literal",value:o}),i),[])}convert(){if(this.path==null||this.endpointIds==null)return;let{responses:t,errors:r}=this.responses?.convert()??{responses:void 0,errors:void 0},n=this.emptyResponseExamples?.map(l=>l.convert()).filter(Xo),i=mYa(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:dYa(l.snippets,this.redocExamplesNode?.convert())}));if(this.isWebhook)return this.endpointIds.map((l,p)=>{if(!(this.method!=="POST"&&this.method!=="GET"))return{id:Ia.WebhookId(l),description:this.description,availability:this.availability?.convert(),displayName:this.displayName,operationId:this.operationId,namespace:this.namespaces?.[p]?.convert(),method:this.method,path:this.convertPathToPathParts()?.map(d=>d.value.toString())??[],queryParameters:N_e(this.queryParameters)?.flat(),headers:N_e(this.requestHeaders)?.flat(),payloads:this.requests?.convertToWebhookPayload(),examples:[this.requests?.webhookExample()].filter(Xo)}}).filter(Xo);let o=this.servers?.map(l=>l.convert()).filter(Xo),s=this.convertPathToPathParts();if(s==null)return;let a,u=this.auth?.convert();u!=null&&(a=Object.keys(u));let c=t?.flatMap(l=>l.headers).filter(Xo);return this.endpointIds.map((l,p)=>({id:Ia.EndpointId(l),description:this.description,availability:this.availability?.convert(),namespace:this.namespaces?.[p]?.convert()?.map(d=>Ia.api.v1.SubpackageId(d)),displayName:this.displayName,operationId:this.operationId,method:this.method,path:s,auth:a?.map(d=>Ia.api.latest.AuthSchemeId(d)),defaultEnvironment:o?.[0]?.id,environments:o,pathParameters:N_e(this.pathParameters)?.flat(),queryParameters:N_e(this.queryParameters)?.flat(),requestHeaders:N_e(this.requestHeaders)?.flat(),responseHeaders:c!=null&&c.length>0?c:void 0,requests:this.requests?.convert(),responses:t?.map(d=>d.response),errors:r,examples:i,snippetTemplates:void 0,protocol:{type:"rest"}}))}};var Wrt=class extends Wo{description;get;post;put;patch;delete;path;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n,isWebhook:i}){this.description=this.input.description;let o=T_e(t,this.input.servers,this.context,this.accessPath),s=Array.isArray(this.pathId)?this.pathId.join("/"):this.pathId;this.input.get!=null&&(this.get=new k_e({input:this.input.get,context:this.context,accessPath:this.accessPath,pathId:"get",servers:o,globalAuth:r,path:s,method:"GET",basePath:n,isWebhook:i})),this.input.post!=null&&(this.post=new k_e({input:this.input.post,context:this.context,accessPath:this.accessPath,pathId:"post",servers:o,globalAuth:r,path:s,method:"POST",basePath:n,isWebhook:i})),this.input.put!=null&&(this.put=new k_e({input:this.input.put,context:this.context,accessPath:this.accessPath,pathId:"put",servers:o,globalAuth:r,path:s,method:"PUT",basePath:n,isWebhook:!1})),this.input.patch!=null&&(this.patch=new k_e({input:this.input.patch,context:this.context,accessPath:this.accessPath,pathId:"patch",servers:o,globalAuth:r,path:s,method:"PATCH",basePath:n,isWebhook:!1})),this.input.delete!=null&&(this.delete=new k_e({input:this.input.delete,context:this.context,accessPath:this.accessPath,pathId:"delete",servers:o,globalAuth:r,path:s,method:"DELETE",basePath:n,isWebhook:!1}))}convert(){return[...this.get?.convert()??[],...this.post?.convert()??[],...this.put?.convert()??[],...this.patch?.convert()??[],...this.delete?.convert()??[]].filter(Xo)}};function pNr(e){return"payloads"in e}var fNr=class extends Wo{paths;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.paths=Object.entries(this.input).map(([i,o])=>{if(o!=null)return new Wrt({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:T_e(t,o.servers,this.context,this.accessPath),globalAuth:r,basePath:n,isWebhook:void 0})}).filter(Xo)}convert(){if(this.paths==null)return;let t={},r={};return this.paths.forEach(n=>{let i=n.convert();i?.forEach(o=>{pNr(o)?r[Ia.WebhookId(o.id)]=o:t[Ia.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var dNr=class extends Wo{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[DJa]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||LQr(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new iX({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return zrt(this.globalHeaders,this.requiredProperties)?.flat()}};function VYa(e,t){if(Lp(e)){let r=WS(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var mNr=class extends Wo{webhooks;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.webhooks=Object.entries(this.input??{}).map(([i,o])=>{let s=VYa(o,this.context.document);if(s!=null)return new Wrt({input:s,context:this.context,accessPath:this.accessPath,pathId:i,servers:t,globalAuth:r,basePath:n,isWebhook:!0})}).filter(Xo)}convert(){return this.webhooks?.reduce((t,r)=>(r.convert()?.forEach(n=>{pNr(n)&&(t[Ia.WebhookId(n.id)]=n)}),t),{})}};var hNr=class extends Wo{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=T_e(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new Urt({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new MQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});this.input.paths==null&&this.input.webhooks==null&&this.context.errors.warning({message:"Expected 'paths' or 'webhooks' property to be specified",path:this.accessPath}),this.input.paths!=null&&(this.paths=new fNr({input:this.input.paths,context:this.context,accessPath:this.accessPath,pathId:"paths",basePath:r,servers:t,globalAuth:this.auth})),this.input.webhooks!=null&&(this.webhooks=new mNr({input:this.input.webhooks,context:this.context,accessPath:this.accessPath,pathId:"webhooks",basePath:r,servers:t,globalAuth:this.auth})),this.input.components!=null&&(this.components=new oNr({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new dNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=vC(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=OJa({endpoints:n,webhookEndpoints:i}),{types:s,auths:a}=this.components?.convert()??{};return{id:Ia.ApiDefinitionId(t),endpoints:n??{},websockets:{},webhooks:i,types:{...s,...this.context.generatedTypes},subpackages:o,auths:{...a,...this.auth?.convert()??{}},globalHeaders:this.globalHeaders?.convert(),snippetsConfiguration:void 0}}};xi();async function Oqi(e,t){if(e instanceof OO){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof Yp))return;let r=new B9(e.absoluteFilePath),n=await fU({context:t,specs:e.specs}),i=await r.loadDocuments({context:t,specs:n,loadAiExamples:!0}),o;for(let s of i){if(s.type!=="openapi")continue;let a={document:s.value,logger:t.logger,errors:new yQr,generatedTypes:{}},u=new hNr({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=sWe(o,u.convert())}return o}dg();Wt();var tlu=we(Tqi(),1),rlu=we(t2r(),1),kkr=require("fs/promises"),nlu=we(require("http"),1),ilu=we(require("path"),1);var Uru=require("events"),s2r=we(require("fs"),1),ALe=we(require("path"),1);var wru=we(require("os"),1),Cru=300,G_e=20,i2t=1e7,_ru=wru.default.platform();var iAd=_ru==="darwin",J9i=_ru==="win32",W_e=iAd||J9i,xru=3e3,Sru=2e4,Y9i=1250;var uX;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(uX||(uX={}));var gLe;(function(e){e.CHANGE="change",e.RENAME="rename"})(gLe||(gLe={}));var o2t;(function(e){e.CHANGE="change",e.ERROR="error"})(o2t||(o2t={}));var cu;(function(e){e.ADD="add",e.ADD_DIR="addDir",e.CHANGE="change",e.RENAME="rename",e.RENAME_DIR="renameDir",e.UNLINK="unlink",e.UNLINK_DIR="unlinkDir"})(cu||(cu={}));var TT;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(TT||(TT={}));var oAd=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,u=0,c=0,l=()=>{let b=Date.now(),I=b-u,w=b-c,_=I>=t||w>=o;return[b,_]},p=b=>{if(c=b,!s)return;let I=s;s=void 0,e.apply(void 0,I)},d=()=>{v(0)},f=()=>{a&&(d(),p(Date.now()))},m=b=>{if(c=b,n)return p(b)},h=b=>{if(i&&s)return p(b);s=void 0},A=()=>{a=void 0;let[b,I]=l();return I?h(b):y(b)},y=b=>{let I=b-u,w=b-c,_=t-I,C=o-w,x=Math.min(_,C);return v(x)},v=b=>{a&&clearTimeout(a),!(b<=0)&&(a=setTimeout(A,b))},E=(...b)=>{let[I,w]=l(),_=!!a;if(s=b,u=I,(w||!a)&&v(t),w)return _?p(I):m(I)};return E.cancel=d,E.flush=f,E},r2r=oAd;var tGi=we(require("fs"),1),i2r=we(require("path"),1);var jf=we(require("fs"),1),$S=require("util");var aAe=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},cX=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var X9i=we(require("process"),1),Oru=X9i.default.getuid?!X9i.default.getuid():!1,Bru=1e4,Cj=()=>{};var s2t={isChangeErrorOk:e=>{if(!s2t.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!Oru&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!s2t.isNodeError(e))return!1;let{code:t}=e;return t==="EMFILE"||t==="ENFILE"||t==="EAGAIN"||t==="EBUSY"||t==="EACCESS"||t==="EACCES"||t==="EACCS"||t==="EPERM"},onChangeError:e=>{if(!s2t.isNodeError(e))throw e;if(!s2t.isChangeErrorOk(e))throw e}},Gv=s2t;var Z9i=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=Bru,this.queueActive=new Set,this.queueWaiting=new Set,this.init=()=>{this.intervalId||(this.intervalId=setInterval(this.tick,this.interval))},this.reset=()=>{this.intervalId&&(clearInterval(this.intervalId),delete this.intervalId)},this.add=t=>{this.queueWaiting.add(t),this.queueActive.size<this.limit/2?this.tick():this.init()},this.remove=t=>{this.queueWaiting.delete(t),this.queueActive.delete(t)},this.schedule=()=>new Promise(t=>{let r=()=>this.remove(n),n=()=>t(r);this.add(n)}),this.tick=()=>{if(!(this.queueActive.size>=this.limit)){if(!this.queueWaiting.size)return this.reset();for(let t of this.queueWaiting){if(this.queueActive.size>=this.limit)break;this.queueWaiting.delete(t),this.queueActive.add(t),t()}}}}},Pru=new Z9i;var uAe=(e,t)=>function(n){return function i(...o){return Pru.schedule().then(s=>{let a=c=>(s(),c),u=c=>{if(s(),Date.now()>=n)throw c;if(t(c)){let l=Math.round(100*Math.random());return new Promise(d=>setTimeout(d,l)).then(()=>i.apply(void 0,o))}throw c};return e.apply(void 0,o).then(a,u)})}},cAe=(e,t)=>function(n){return function i(...o){try{return e.apply(void 0,o)}catch(s){if(Date.now()>n)throw s;if(t(s))return i.apply(void 0,o);throw s}}};var sAd={attempt:{chmod:aAe((0,$S.promisify)(jf.default.chmod),Gv.onChangeError),chown:aAe((0,$S.promisify)(jf.default.chown),Gv.onChangeError),close:aAe((0,$S.promisify)(jf.default.close),Cj),fsync:aAe((0,$S.promisify)(jf.default.fsync),Cj),mkdir:aAe((0,$S.promisify)(jf.default.mkdir),Cj),realpath:aAe((0,$S.promisify)(jf.default.realpath),Cj),stat:aAe((0,$S.promisify)(jf.default.stat),Cj),unlink:aAe((0,$S.promisify)(jf.default.unlink),Cj),chmodSync:cX(jf.default.chmodSync,Gv.onChangeError),chownSync:cX(jf.default.chownSync,Gv.onChangeError),closeSync:cX(jf.default.closeSync,Cj),existsSync:cX(jf.default.existsSync,Cj),fsyncSync:cX(jf.default.fsync,Cj),mkdirSync:cX(jf.default.mkdirSync,Cj),realpathSync:cX(jf.default.realpathSync,Cj),statSync:cX(jf.default.statSync,Cj),unlinkSync:cX(jf.default.unlinkSync,Cj)},retry:{close:uAe((0,$S.promisify)(jf.default.close),Gv.isRetriableError),fsync:uAe((0,$S.promisify)(jf.default.fsync),Gv.isRetriableError),open:uAe((0,$S.promisify)(jf.default.open),Gv.isRetriableError),readFile:uAe((0,$S.promisify)(jf.default.readFile),Gv.isRetriableError),rename:uAe((0,$S.promisify)(jf.default.rename),Gv.isRetriableError),stat:uAe((0,$S.promisify)(jf.default.stat),Gv.isRetriableError),write:uAe((0,$S.promisify)(jf.default.write),Gv.isRetriableError),writeFile:uAe((0,$S.promisify)(jf.default.writeFile),Gv.isRetriableError),closeSync:cAe(jf.default.closeSync,Gv.isRetriableError),fsyncSync:cAe(jf.default.fsyncSync,Gv.isRetriableError),openSync:cAe(jf.default.openSync,Gv.isRetriableError),readFileSync:cAe(jf.default.readFileSync,Gv.isRetriableError),renameSync:cAe(jf.default.renameSync,Gv.isRetriableError),statSync:cAe(jf.default.statSync,Gv.isRetriableError),writeSync:cAe(jf.default.writeSync,Gv.isRetriableError),writeFileSync:cAe(jf.default.writeFileSync,Gv.isRetriableError)}},Tru=sAd;var n2r=we(require("fs"),1),a2t=we(require("path"),1);var eGi=()=>{};var aAd=()=>{let e=eGi,t=eGi,r=!1,n=!1;return{promise:new Promise((u,c)=>{e=l=>(r=!0,u(l)),t=l=>(n=!0,c(l))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}},Dru=aAd;var uAd=()=>{let{promise:e,resolve:t,isPending:r}=Dru(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},Rru=uAd;var Fru={then:e=>{e()}};var jru=e=>Array.isArray(e)?e:[e],Qru=e=>typeof e=="function";var cAd=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=jru(o).map(H=>Qru(H)?H:J=>H.test(J)),a=H=>s.some(J=>J(H)),u=t?.signal??{aborted:!1},c=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,h={},A=[],y=new Set,v={},E={},b=new Set,I={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},w={directories:l,directoriesNames:p,directoriesNamesToPaths:d,files:f,filesNames:m,filesNamesToPaths:h,symlinks:A,symlinksNames:y,symlinksNamesToPaths:v,map:E},{promise:_,increment:C,decrement:x}=Rru(),R=0,z=(H,J,Ae,ge)=>{b.has(J)||R>=i||(R+=1,H.directories.push(J),H.directoriesNames.add(Ae),l.push(J),p.add(Ae),d.propertyIsEnumerable(Ae)||(d[Ae]=[]),d[Ae].push(J),b.add(J),!(ge>=n)&&(R>=i||K(J,ge+1)))},U=(H,J,Ae)=>{b.has(J)||R>=i||(R+=1,H.files.push(J),H.filesNames.add(Ae),f.push(J),m.add(Ae),h.propertyIsEnumerable(Ae)||(h[Ae]=[]),h[Ae].push(J),b.add(J))},q=(H,J,Ae,ge)=>{b.has(J)||R>=i||(R+=1,H.symlinks.push(J),H.symlinksNames.add(Ae),A.push(J),y.add(Ae),v.propertyIsEnumerable(Ae)||(v[Ae]=[]),v[Ae].push(J),b.add(J),r&&(ge>=n||R>=i||Ee(J,ge+1)))},te=(H,J,Ae,ge,Ce)=>{u.aborted||a(J)||(ge.isDirectory()?z(H,J,Ae,Ce):ge.isFile()?U(H,J,Ae):ge.isSymbolicLink()&&q(H,J,Ae,Ce))},ie=(H,J,Ae,ge)=>{if(u.aborted)return;let Ce=J===a2t.default.sep?"":a2t.default.sep,Se=Ae.name,pe=`${J}${Ce}${Se}`;a(pe)||(Ae.isDirectory()?z(H,pe,Se,ge):Ae.isFile()?U(H,pe,Se):Ae.isSymbolicLink()&&q(H,pe,Se,ge))},V=(H,J,Ae,ge)=>{for(let Ce=0,Se=Ae.length;Ce<Se;Ce++)ie(H,J,Ae[Ce],ge)},K=(H,J)=>{u.aborted||J>n||R>=i||(C(),n2r.default.readdir(H,{withFileTypes:!0},(Ae,ge)=>{if(Ae||u.aborted||!ge.length)return x();(c(ge)||Fru).then(()=>{let Se=E[H]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};V(Se,H,ge,J),x()})}))},Ee=(H,J)=>{C(),n2r.default.realpath(H,(Ae,ge)=>{if(Ae||u.aborted)return x();n2r.default.stat(ge,(Ce,Se)=>{if(Ce||u.aborted)return x();let pe=a2t.default.basename(ge),le=E[H]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};te(le,ge,pe,Se,J),x()})})};return(async(H,J=1)=>(H=a2t.default.normalize(H),b.add(H),K(H,J),await _,u.aborted?I:w))(e)},Nru=cAd;var lX={lang:{debounce:r2r,attempt:e=>{try{return e()}catch(t){return lX.lang.castError(t)}},castArray:e=>lX.lang.isArray(e)?e:[e],castError:e=>lX.lang.isError(e)?e:lX.lang.isString(e)?new Error(e):new Error("Unknown error"),defer:e=>setTimeout(e,0),isArray:e=>Array.isArray(e),isError:e=>e instanceof Error,isFunction:e=>typeof e=="function",isNaN:e=>Number.isNaN(e),isNumber:e=>typeof e=="number",isPrimitive:e=>{if(e===null)return!0;let t=typeof e;return t!=="object"&&t!=="function"},isShallowEqual:(e,t)=>{if(e===t)return!0;if(lX.lang.isNaN(e))return lX.lang.isNaN(t);if(lX.lang.isPrimitive(e)||lX.lang.isPrimitive(t))return e===t;for(let r in e)if(!(r in t))return!1;for(let r in t)if(e[r]!==t[r])return!1;return!0},isSet:e=>e instanceof Set,isString:e=>typeof e=="string",isUndefined:e=>e===void 0,noop:()=>{},uniq:e=>e.length<2?e:Array.from(new Set(e))},fs:{getDepth:e=>Math.max(0,e.split(i2r.default.sep).length-1),getRealPath:(e,t)=>{try{return t?tGi.default.realpathSync.native(e):tGi.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===i2r.default.sep&&t.length-e.length>i2r.default.sep.length,poll:(e,t=Sru)=>Tru.retry.stat(t)(e,{bigint:!0}).catch(lX.lang.noop),readdir:async(e,t,r=1/0,n=1/0,i,o)=>{if(o&&r===1&&e in o){let s=o[e];return[s.directories,s.files]}else{let s=await Nru(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},bl=lX;var o2r=we(require("path"),1);var rGi=class{constructor(t,r,n){this.base=n,this.watcher=t,this.handler=r.handler,this.fswatcher=r.watcher,this.options=r.options,this.folderPath=r.folderPath,this.filePath=r.filePath,this.handlerBatched=this.base?this.base.onWatcherEvent.bind(this.base):this._makeHandlerBatched(this.options.debounce)}_isSubRoot(t){return this.filePath?t===this.filePath:t===this.folderPath||bl.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=Cru){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,u)=>{let c=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...u]),p=this.eventsDeduplicate([...c,...l]);this.onTargetEvents(p)},s=bl.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,u="",c=!1)=>{c?await this.eventsPopulate([u],n,!0):i.add(u),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===cu.CHANGE&&a===cu.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===cu.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===cu.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??G_e:Math.min(1,this.options.depth??G_e),s=this.options.limit??i2t,[a,u]=await bl.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),c=[...a,...u];return await Promise.all(c.map(l=>{if(!this.watcher.isIgnored(l,this.options.ignore)&&!t.includes(l))return this.eventsPopulate([l],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let o of this.watcher._poller.stats.keys())bl.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(cu.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!W_e&&this.options.native!==!1&&this.watcher.watchDirectory(t,this.options,this.handler,void 0,this.base||this),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAddDir(t,this.options.renameTimeout):this.watcher.event(cu.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(cu.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(o2r.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(cu.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(o2r.default.dirname(t),t,!1),this.watcher.watchersClose(t),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlinkDir(t,this.options.renameTimeout):this.watcher.event(cu.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===cu.ADD?this.onTargetAdd(n):r===cu.ADD_DIR?this.onTargetAddDir(n):r===cu.CHANGE?this.onTargetChange(n):r===cu.UNLINK?this.onTargetUnlink(n):r===cu.UNLINK_DIR&&this.onTargetUnlinkDir(n)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,n=!1){return this.handlerBatched(t,r,n)}onWatcherChange(t=gLe.CHANGE,r){if(this.watcher.isClosed())return;let n=o2r.default.resolve(this.folderPath,r||"");this.filePath&&n!==this.folderPath&&n!==this.filePath||this.watcher.isIgnored(n,this.options.ignore)||this.onWatcherEvent(t,n)}onWatcherError(t){J9i&&t.code==="EPERM"?this.onWatcherChange(gLe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(o2t.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(o2t.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(gLe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&W_e&&this.options.native!==!1?this.options.depth??G_e:Math.min(1,this.options.depth??G_e),n=this.options.limit??i2t,[i,o]=await bl.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),s=[this.folderPath,...i,...o];await Promise.all(s.map(a=>{if(!this.watcher._poller.stats.has(a)&&!this.watcher.isIgnored(a,this.options.ignore))return this.onWatcherEvent(gLe.CHANGE,a,t)}))}}},kru=rGi;var DT={interval:100,intervalId:void 0,fns:new Map,init:()=>{DT.intervalId||(DT.intervalId=setInterval(DT.resolve,DT.interval))},reset:()=>{DT.intervalId&&(clearInterval(DT.intervalId),delete DT.intervalId)},add:(e,t)=>{DT.fns.set(e,Date.now()+t),DT.init()},remove:e=>{DT.fns.delete(e)},resolve:()=>{if(!DT.fns.size)return DT.reset();let e=Date.now();for(let[t,r]of DT.fns)r>=e||(DT.remove(t),t())}},u2t=DT;var c2t=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=Y9i){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,d=>d!==i);if(p&&p!==i){if(bl.fs.getRealPath(i,!0)===p)return;this._watcher.event(o.rename,p,i)}else this._watcher.event(o.add,i)};if(!n)return a();let u=()=>{s.add.delete(n),u2t.remove(c)},c=()=>{u(),a()};u2t.add(c,r);let l=()=>{let p=s.unlink.get(n);if(!p)return;u();let d=p();i===d?o.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(o.change,i):this._watcher.event(o.rename,d,i)};s.add.set(n,l),l()}getLockUnlink(t,r=Y9i){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{this._watcher.event(o.unlink,i)};if(!n)return a();let u=()=>{s.unlink.delete(n),u2t.remove(c)},c=()=>{u(),a()};u2t.add(c,r);let l=()=>(u(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,cu.ADD,uX.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,cu.ADD_DIR,uX.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,cu.UNLINK,uX.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,cu.UNLINK_DIR,uX.DIR);return this.getLockUnlink({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}reset(){this._locksAdd=new Map,this._locksAddDir=new Map,this._locksUnlink=new Map,this._locksUnlinkDir=new Map,this._locksDir={add:this._locksAddDir,unlink:this._locksUnlinkDir},this._locksFile={add:this._locksAdd,unlink:this._locksUnlink}}};c2t.DIR_EVENTS={add:cu.ADD_DIR,rename:cu.RENAME_DIR,unlink:cu.UNLINK_DIR};c2t.FILE_EVENTS={add:cu.ADD,change:cu.CHANGE,rename:cu.RENAME,unlink:cu.UNLINK};var Mru=c2t;var nGi=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(bl.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(bl.lang.isSet(n)){let i=n.delete(r);return n.size||this.map.delete(t),i}else if(n===r)return this.map.delete(t),!0}return!1}find(t,r){if(this.map.has(t)){let n=this.map.get(t);if(bl.lang.isSet(n))return Array.from(n).find(r);if(r(n))return n}}get(t){return this.map.get(t)}has(t,r){if(bl.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return bl.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);bl.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},iGi=nGi;var oGi=class{constructor(t){this.ino=t.ino<=Number.MAX_SAFE_INTEGER?Number(t.ino):t.ino,this.size=Number(t.size),this.atimeMs=Number(t.atimeMs),this.mtimeMs=Number(t.mtimeMs),this.ctimeMs=Number(t.ctimeMs),this.birthtimeMs=Number(t.birthtimeMs),this._isFile=t.isFile(),this._isDirectory=t.isDirectory(),this._isSymbolicLink=t.isSymbolicLink()}isFile(){return this._isFile}isDirectory(){return this._isDirectory}isSymbolicLink(){return this._isSymbolicLink}},Lru=oGi;var sGi=class{constructor(){this.inos={},this.paths=new iGi,this.stats=new Map}getIno(t,r,n){let i=this.inos[r];if(!i)return;let o=i[t];if(o&&!(n&&o[1]!==n))return o[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let n=await bl.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new Lru(n)}reset(){this.inos={},this.paths=new iGi,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,cu.ADD,i),[cu.ADD];if(i.isDirectory())return this.updateIno(t,cu.ADD_DIR,i),[cu.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,cu.UNLINK,n),[cu.UNLINK];if(n.isDirectory())return this.updateIno(t,cu.UNLINK_DIR,n),[cu.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,cu.CHANGE,i),[cu.CHANGE]);if(i.isDirectory())return this.updateIno(t,cu.UNLINK,n),this.updateIno(t,cu.ADD_DIR,i),[cu.UNLINK,cu.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,cu.UNLINK_DIR,n),this.updateIno(t,cu.ADD,i),[cu.UNLINK_DIR,cu.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,cu.UNLINK_DIR,n),this.updateIno(t,cu.ADD_DIR,i),[cu.UNLINK_DIR,cu.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?uX.FILE:uX.DIR;i[t]=[n.ino,o]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let n=this.stats.get(t)?.ino||-1;this.paths.delete(n,t),this.stats.delete(t)}}},aGi=sGi;var uGi=class e extends Uru.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(TT.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(TT.CLOSE,i)),this._readyWait=new Promise(i=>this.on(TT.READY,i)),this._locker=new Mru(this),this._roots=new Set,this._poller=new aGi,this._pollers=new Set,this._subwatchers=new Set,this._watchers={},this._watchersLock=Promise.resolve(),this._watchersRestorable={},this.watch(t,r,n)}isClosed(){return this._closed}isIgnored(t,r){return!!r&&(bl.lang.isFunction(r)?!!r(t):r.test(t))}isReady(){return this._ready}close(){return this._locker.reset(),this._poller.reset(),this._roots.clear(),this.watchersClose(),this.isClosed()?!1:(this._closed=!0,this.emit(TT.CLOSE))}error(t){if(this.isClosed())return!1;let r=bl.lang.castError(t);return this.emit(TT.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(TT.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(TT.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&bl.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&bl.lang.isShallowEqual(n.options,r))return!0;return!1}watchersClose(t,r,n=!0){if(t){let i=this._watchers[t];if(i)for(let o of[...i])r&&o.filePath!==r||this.watcherClose(o);if(n)for(let o in this._watchers)bl.fs.isSubPath(t,o)&&this.watchersClose(o,r,!1)}else for(let i in this._watchers)this.watchersClose(i,r,!1)}watchersLock(t){return this._watchersLock.then(()=>this._watchersLock=new Promise(async r=>{await t(),r()}))}watchersRestore(){delete this._watchersRestoreTimeout;let t=Object.entries(this._watchersRestorable);this._watchersRestorable={};for(let[r,n]of t)this.watchPath(r,n.options,n.handler)}async watcherAdd(t,r){let{folderPath:n}=t;(this._watchers[n]=this._watchers[n]||[]).push(t);let o=new kru(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let n=t.filePath||t.folderPath;this._roots.has(n)&&(this._watchersRestorable[n]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=bl.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(a=>a.handler===n&&(!a.filePath||a.filePath===i)&&a.options.ignore===r.ignore&&!!a.options.native==!!r.native&&(!r.recursive||a.options.recursive)))return!0;let s=ALe.default.dirname(t);for(let a=1;a<1/0;a++){if(this._watchers[s]?.find(l=>(a===1||l.options.recursive&&a<=(l.options.depth??G_e))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&W_e&&l.options.native!==!1)))return!0;if(!W_e)break;let c=ALe.default.dirname(t);if(s===c)break;s=c}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=bl.lang.uniq(t).sort();let s;for(let a of t)if(!this.isIgnored(a,r.ignore)&&!this.watcherExists(a,r,n,i))try{let u=!r.recursive||W_e&&r.native!==!1?r:{...r,recursive:!1},l={watcher:s2r.default.watch(a,u),handler:n,options:r,folderPath:a,filePath:i},p=s=await this.watcherAdd(l,o);if(this._roots.has(i||a)){let f={...r,ignoreInitial:!0,recursive:!1},m=ALe.default.dirname(a),h=a;await this.watchDirectories([m],f,n,h,p)}}catch(u){this.error(u)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||W_e&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??G_e,a=r.limit??i2t,[u]=await bl.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let c=await this.watchDirectories([t],r,n,i,o);if(u.length){let l=bl.fs.getDepth(t);for(let p of u){let d=bl.fs.getDepth(p),f=Math.max(0,s-(d-l)),m={...r,depth:f};await this.watchDirectories([p],m,n,i,o||c)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(c,l)=>{l===t&&(u(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(TT.CLOSE,u),s.watchFile(t,r,o)},u=()=>{this._subwatchers.delete(i),this.removeListener(TT.CLOSE,u),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=ALe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new aGi,s=await this.watchPolling(t,r,async()=>{i||!(await o.update(t,r.pollingTimeout)).length||i||(i=!0,s(),n())})}async watchPolling(t,r,n){if(this.isClosed())return bl.lang.noop;if(this.pollerExists(t,r))return bl.lang.noop;let i={...r,interval:r.pollingInterval??xru},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(TT.CLOSE,a),s2r.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(TT.CLOSE,a),s2r.default.unwatchFile(t,n)};return bl.lang.attempt(s),()=>bl.lang.attempt(a)}async watchUnknownChild(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchFileOnce(t,r,i)}async watchUnknownTarget(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchPollingOnce(t,r,i)}async watchPaths(t,r,n){if(this.isClosed())return;if(t=bl.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,u)=>u===s||!bl.fs.isSubPath(o,a))))await Promise.all(t.map(o=>this.watchPath(o,r,n)));else for(let o of t)await this.watchPath(o,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=ALe.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await bl.fs.poll(t,r.pollingTimeout);if(i){if(i.isFile())return this.watchFile(t,r,n);if(i.isDirectory())return this.watchDirectory(t,r,n);this.error(`"${t}" is not supported`)}else{let o=ALe.default.dirname(t);return(await bl.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=bl.lang.noop){if(bl.lang.isFunction(t))return this.watch([],{},t);if(bl.lang.isUndefined(t))return this.watch([],r,n);if(bl.lang.isFunction(r))return this.watch(t,{},r);if(bl.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=bl.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==bl.lang.noop&&this.on(TT.ALL,n),r.readdirMap=void 0,this.ready())}},a2r=uGi;E2r();Wt();var gnt=require("fs/promises"),$nu=require("os"),Hnu=we(require("path"),1),Dyd=".fern",Ryd="logs";function Fyd(){return"cli@4.3.1"}var wLe=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=We(Vt.of((0,$nu.homedir)()),Oe.of(Dyd)),r=We(t,Oe.of(Ryd));await nr(r)||await(0,gnt.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=We(r,Oe.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${Hnu.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
2120
+ `);try{return xr.load(o)??[]}catch(s){return this.taskContext.logger.warn(`Failed to parse _navigation.yml for library '${t}': ${s instanceof Error?s.message:String(s)}`),null}}async registerLibraryMdxPage(t,r){let n=We(t,Oe.of(r));if(!(0,MVi.existsSync)(n)){this.taskContext.logger.warn(`Library MDX file not found: ${n}`);return}let i=Fa(this.docsWorkspace.absoluteFilePath,n),o=await(0,P_e.readFile)(n,"utf-8");return this.parsedDocsConfig.pages[i]=o,_t.PageId(i)}async convertLibraryNavNodes(t,r,n){let i=[];for(let o of t)if(o.type==="page"&&o.pageId!=null){let s=await this.registerLibraryMdxPage(r,o.pageId);if(s==null)continue;let a=n.apply({fullSlug:o.slug.split("/"),urlSlug:fm(o.title)});i.push({id:this.#e.get(s),type:"page",slug:a.get(),title:o.title,icon:void 0,hidden:!1,viewers:void 0,orphaned:void 0,pageId:s,authed:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}else if(o.type==="section"){let s=n.apply({fullSlug:o.slug.split("/"),urlSlug:fm(o.title)}),a=this.#e.get(`library-section/${o.slug}`),u=await this.registerLibraryMdxPage(r,`${o.slug}.mdx`),c=(o.children??[]).filter(p=>!(p.type==="page"&&p.slug===o.slug)),l=await this.convertLibraryNavNodes(c,r,s);i.push({id:a,type:"section",overviewPageId:u,slug:s.get(),title:o.title,icon:void 0,collapsed:void 0,hidden:!1,viewers:void 0,orphaned:void 0,children:l,authed:void 0,pointsTo:void 0,noindex:void 0,featureFlags:void 0,availability:void 0})}return i}async toPageNode({item:t,parentSlug:r,hideChildren:n,parentAvailability:i}){let o=_t.PageId(this.toRelativeFilepath(t.absolutePath)),s=r.apply({urlSlug:t.slug??fm(t.title),fullSlug:this.markdownFilesToFullSlugs.get(t.absolutePath)?.split("/")}),a=this.#e.get(o),u=this.markdownFilesToAvailability.get(t.absolutePath);return{id:a,type:"page",slug:s.get(),title:this.markdownFilesToSidebarTitle.get(t.absolutePath)??t.title,icon:this.resolveIconFileId(t.icon),hidden:n||t.hidden,viewers:t.viewers,orphaned:t.orphaned,pageId:o,authed:void 0,noindex:t.noindex||this.markdownFilesToNoIndex.get(t.absolutePath),featureFlags:t.featureFlags,availability:u??t.availability??i}}async toSectionNode({prefix:t,item:r,parentSlug:n,hideChildren:i,parentAvailability:o}){let s=this.toRelativeFilepath(r.overviewAbsolutePath),a=s?_t.PageId(s):void 0,u=this.#e.get(a??`${t}/section`),c=n.apply({urlSlug:r.slug??fm(r.title),fullSlug:r.overviewAbsolutePath?this.markdownFilesToFullSlugs.get(r.overviewAbsolutePath)?.split("/"):void 0,skipUrlSlug:r.skipUrlSlug}),l=r.overviewAbsolutePath!=null?this.markdownFilesToNoIndex.get(r.overviewAbsolutePath):void 0,p=r.overviewAbsolutePath!=null?this.markdownFilesToAvailability.get(r.overviewAbsolutePath):void 0,d=i||r.hidden,m=(await Promise.all(r.contents.map(h=>this.toNavigationChild({prefix:u,item:h,parentSlug:c,hideChildren:d,parentAvailability:r.availability??o})))).filter(h=>h!=null);if(a==null){let h=m.find(A=>A.type==="apiReference"&&A.hideTitle===!0&&A.overviewPageId!=null);h!=null&&(a=h.overviewPageId)}return{id:u,type:"section",overviewPageId:a,slug:c.get(),title:r.overviewAbsolutePath!=null?this.markdownFilesToSidebarTitle.get(r.overviewAbsolutePath)??r.title:r.title,icon:this.resolveIconFileId(r.icon),collapsed:r.collapsed,collapsible:r.collapsible??(r.collapsed===!0?!0:void 0),collapsedByDefault:r.collapsedByDefault??(r.collapsed===!0?!0:void 0),hidden:d,viewers:r.viewers,orphaned:r.orphaned,children:m,authed:void 0,pointsTo:void 0,noindex:l,featureFlags:r.featureFlags,availability:p??r.availability??o}}async convertTabbedNavigation(t,r,n){let i=this.#e.get(`${t}/tabbed`);return{type:"tabbed",id:i,children:await Promise.all(r.map(o=>this.toTabChild(i,o,n)))}}async toTabChild(t,r,n){return ME(r.child)._visit({link:({href:i,target:o})=>this.toTabLinkNode(r,i,o),layout:({layout:i})=>this.toTabNode(t,r,i,n),changelog:({changelog:i})=>this.toTabChangelogNode(r,i,n),variants:({variants:i})=>this.toTabNodeWithVariants(t,r,i,n)})}async toTabChangelogNode(t,r,n){return new iLe(this.markdownFilesToFullSlugs,this.markdownFilesToNoIndex,this.markdownFilesToTags,r,this.docsWorkspace,this.#e).toChangelogNode({parentSlug:n,title:t.title,icon:this.resolveIconFileId(t.icon),viewers:t.viewers,hidden:t.hidden,slug:t.slug})}async toTabLinkNode(t,r,n){return{type:"link",id:this.#e.get(r),title:t.title,url:_t.V1.Url(r),target:n,icon:this.resolveIconFileId(t.icon)}}async toTabNode(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??fm(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNode(o,n,s),featureFlags:r.featureFlags}}async toTabNodeWithVariants(t,r,n,i){let o=this.#e.get(`${t}/tab`),s=i.apply({urlSlug:r.slug??fm(r.title),skipUrlSlug:r.skipUrlSlug});return{type:"tab",id:o,title:r.title,slug:s.get(),icon:this.resolveIconFileId(r.icon),hidden:r.hidden,authed:void 0,viewers:r.viewers,orphaned:r.orphaned,pointsTo:void 0,child:await this.toSidebarRootNodeWithVariants(o,n,s),featureFlags:r.featureFlags}}getFileId(t){if(t==null)return;let r=this.collectedFileIds.get(t);return r==null?this.taskContext.failAndThrow("Failed to locate file after uploading: "+t):vP.FileId(r)}resolveIconFileId(t){if(t!=null)return this.collectedFileIds.has(t)?`file:${this.getFileId(t)}`:t}convertPageActions(){if(this.parsedDocsConfig.pageActions!=null)return{default:this.parsedDocsConfig.pageActions.default,options:{askAi:this.parsedDocsConfig.pageActions.options.askAi,copyPage:this.parsedDocsConfig.pageActions.options.copyPage,viewAsMarkdown:this.parsedDocsConfig.pageActions.options.viewAsMarkdown,openAi:this.parsedDocsConfig.pageActions.options.openAi,claude:this.parsedDocsConfig.pageActions.options.claude,cursor:this.parsedDocsConfig.pageActions.options.cursor,vscode:this.parsedDocsConfig.pageActions.options.vscode,custom:this.parsedDocsConfig.pageActions.options.custom.map(t=>({title:t.title,subtitle:t.subtitle,url:t.url,icon:this.resolveIconFileId(t.icon),default:t.default}))}}}convertColorConfigImageReferences(){let{colors:t}=this.parsedDocsConfig;if(t!=null)return t.type==="dark"?{...t,...this.convertLogoAndBackgroundImage({theme:"dark"})}:t.type==="light"?{...t,...this.convertLogoAndBackgroundImage({theme:"light"}),type:"light"}:{...t,dark:{...t.dark,...this.convertLogoAndBackgroundImage({theme:"dark"})},light:{...t.light,...this.convertLogoAndBackgroundImage({theme:"light"})}}}convertLogoAndBackgroundImage({theme:t}){let{logo:r,backgroundImage:n}=this.parsedDocsConfig,i=r?.[t],o=n?.[t];return{logo:this.getFileId(i),backgroundImage:this.getFileId(o)}}convertDocsTypographyConfiguration(){if(this.parsedDocsConfig.typography!=null)return{headingsFont:this.convertFont(this.parsedDocsConfig.typography.headingsFont,"headings"),bodyFont:this.convertFont(this.parsedDocsConfig.typography.bodyFont,"body"),codeFont:this.convertFont(this.parsedDocsConfig.typography.codeFont,"code")}}convertFont(t,r){if(t==null||t.variants[0]==null)return;let n=this.getFileId(t.variants[0].absolutePath);return{type:"custom",name:t.name??`font:${r}:${n}`,variants:t.variants.map(i=>({fontFile:this.getFileId(i.absolutePath),weight:i.weight,style:i.style!=null?[i.style]:void 0})),display:t.display,fallback:t.fallback,fontVariationSettings:t.fontVariationSettings}}convertJavascriptConfiguration(){if(this.parsedDocsConfig.js!=null)return{files:this.parsedDocsConfig.js.files.map(({absolutePath:t,strategy:r})=>({fileId:this.getFileId(t),strategy:r})).filter(_a),remote:this.parsedDocsConfig.js.remote?.map(t=>({...t,url:vP.Url(t.url)})),inline:void 0}}convertMetadata(){if(this.parsedDocsConfig.metadata==null)return;let{"og:image":t,"og:logo":r,"twitter:image":n,"og:background-image":i,...o}=this.parsedDocsConfig.metadata;return{...o,"og:image":this.convertFileIdOrUrl(t),"og:logo":this.convertFileIdOrUrl(r),"twitter:image":this.convertFileIdOrUrl(n),"og:background-image":this.convertFileIdOrUrl(i)}}convertFileIdOrUrl(t){if(t!=null)return ME(t,"type")._visit({filepath:({value:r})=>({type:"fileId",value:this.getFileId(r)}),url:({value:r})=>({type:"url",value:vP.Url(r)}),_other:()=>this.taskContext.failAndThrow("Invalid metadata configuration")})}resolveLinksInIrDocs(t,r){let n={absolutePathToFernFolder:this.docsWorkspace.absoluteFilePath,absolutePathToMarkdownFile:this.docsWorkspace.absoluteFilePath};hQr(t,r,n)}};function hcd(e,t){let r=e?.launch??"github";if(e?.github==null)return{url:void 0,launch:r};let{owner:n,repo:i,branch:o="main",host:s="https://github.com"}=e.github;return{url:`${OT(s)}/${n}/${i}/blob/${o}/fern/${t}?plain=1`,launch:r}}function gcd(e){switch(e){case"beta":return _t.V1.NavigationV1Availability.Beta;case"deprecated":return _t.V1.NavigationV1Availability.Deprecated;case"ga":return _t.V1.NavigationV1Availability.GenerallyAvailable;case"stable":return _t.V1.NavigationV1Availability.Stable;default:_e(e)}}Nt();async function GS(e){return(await Promise.all(e.apiWorkspaces.map(async t=>t instanceof Yp?t:null))).filter(_a)}async function LVi(e,t,r){if(e instanceof OO){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof Yp))return;let n=await e.getIntermediateRepresentation({context:t,audiences:r,enableUniqueErrorsPerEndpoint:!0,generateV1Examples:!1,logWarnings:!1});return ST({ir:n,snippetsConfig:{typescriptSdk:void 0,pythonSdk:void 0,javaSdk:void 0,rubySdk:void 0,goSdk:void 0,csharpSdk:void 0,phpSdk:void 0,swiftSdk:void 0,rustSdk:void 0},playgroundConfig:{oauth:!0},context:t})}var Ia={};X(Ia,{AlgoliaSearchIndex:()=>dKa,ApiDefinitionId:()=>FKa,ApiId:()=>kKa,Availability:()=>ZKa,DocsConfigId:()=>MKa,EndpointId:()=>UKa,EndpointPathLiteral:()=>YKa,EnvironmentId:()=>LKa,FileId:()=>WKa,HttpMethod:()=>XKa,IndexSegmentId:()=>mKa,JqString:()=>HKa,OrgId:()=>QKa,PageId:()=>GKa,PayloadLocation:()=>xJa,PropertyKey:()=>KKa,PullRequestState:()=>EJa,RoleId:()=>JKa,TokenId:()=>NKa,TypeId:()=>qKa,Url:()=>$Ka,VersionId:()=>jKa,WebSocketId:()=>zKa,WebhookId:()=>VKa,algolia:()=>UVi,api:()=>YVi,commons:()=>XVi,diff:()=>eJa,docs:()=>aqi,generators:()=>cqi,git:()=>lqi,navigation:()=>dqi,sdks:()=>hqi,snippets:()=>CJa,snippetsFactory:()=>_Ja,templates:()=>gqi,tokens:()=>SJa});var UVi={};X(UVi,{AlgoliaSearchIndex:()=>dKa,IndexSegmentId:()=>mKa});function dKa(e){return e}function mKa(e){return e}var YVi={};X(YVi,{latest:()=>qVi,v1:()=>JVi});var qVi={};X(qVi,{AuthSchemeId:()=>hKa,WebhookHttpMethod:()=>bKa,auth:()=>zVi,commons:()=>gKa,endpoint:()=>AKa,type_:()=>yKa,webhook:()=>VVi,websocket:()=>vKa});var zVi={};X(zVi,{AuthSchemeId:()=>hKa});function hKa(e){return e}var gKa={};var AKa={};var yKa={};var VVi={};X(VVi,{WebhookHttpMethod:()=>bKa});var bKa={Get:"GET",Post:"POST"};var vKa={};var JVi={};X(JVi,{SubpackageId:()=>PKa,WebSocketMessageId:()=>TKa,WebSocketMessageOrigin:()=>DKa,WebhookHttpMethod:()=>RKa,commons:()=>KVi,db:()=>GVi,read:()=>$Vi,register:()=>HVi});var GVi={};X(GVi,{endpoint:()=>EKa});var EKa={};var $Vi={};X($Vi,{SupportedLanguage:()=>IKa,endpoint:()=>WVi,type_:()=>wKa,webhook:()=>CKa,websocket:()=>_Ka});var WVi={};X(WVi,{SupportedLanguage:()=>IKa});var IKa={Curl:"curl",Python:"python",Javascript:"javascript",Js:"js",Node:"node",Typescript:"typescript",Ts:"ts",Go:"go",Ruby:"ruby",Csharp:"csharp"};var wKa={};var CKa={};var _Ka={};var HVi={};X(HVi,{SourceId:()=>Acd,endpoint:()=>xKa,type_:()=>SKa,webhook:()=>OKa,websocket:()=>BKa});var xKa={};var SKa={};var OKa={};var BKa={};function Acd(e){return e}var KVi={};X(KVi,{SubpackageId:()=>PKa,WebSocketMessageId:()=>TKa,WebSocketMessageOrigin:()=>DKa,WebhookHttpMethod:()=>RKa});function PKa(e){return e}function TKa(e){return e}var DKa={Client:"client",Server:"server"};var RKa={Get:"GET",Post:"POST"};var XVi={};X(XVi,{ApiDefinitionId:()=>FKa,ApiId:()=>kKa,Availability:()=>ZKa,DocsConfigId:()=>MKa,EndpointId:()=>UKa,EndpointPathLiteral:()=>YKa,EnvironmentId:()=>LKa,FileId:()=>WKa,HttpMethod:()=>XKa,JqString:()=>HKa,OrgId:()=>QKa,PageId:()=>GKa,PropertyKey:()=>KKa,RoleId:()=>JKa,TokenId:()=>NKa,TypeId:()=>qKa,Url:()=>$Ka,VersionId:()=>jKa,WebSocketId:()=>zKa,WebhookId:()=>VKa});function FKa(e){return e}function jKa(e){return e}function QKa(e){return e}function NKa(e){return e}function kKa(e){return e}function MKa(e){return e}function LKa(e){return e}function UKa(e){return e}function zKa(e){return e}function VKa(e){return e}function qKa(e){return e}function GKa(e){return e}function WKa(e){return e}function $Ka(e){return e}function HKa(e){return e}function KKa(e){return e}function JKa(e){return e}function YKa(e){return e}var XKa={Get:"GET",Post:"POST",Put:"PUT",Patch:"PATCH",Delete:"DELETE"};var ZKa={Stable:"Stable",GenerallyAvailable:"GenerallyAvailable",InDevelopment:"InDevelopment",PreRelease:"PreRelease",Deprecated:"Deprecated",Beta:"Beta"};var eJa={};var aqi={};X(aqi,{latest:()=>tqi,v1:()=>oqi,v2:()=>sqi});var tqi={};X(tqi,{Layout:()=>rJa,MdxEngine:()=>ycd,TwitterCardSetting:()=>nJa,commons:()=>tJa,frontmatter:()=>ZVi,seo:()=>eqi});var ycd={NextMdxRemote:"next-mdx-remote",MdxBundler:"mdx-bundler"};var tJa={};var ZVi={};X(ZVi,{Layout:()=>rJa});var rJa={Guide:"guide",Overview:"overview",Reference:"reference",Page:"page",Custom:"custom"};var eqi={};X(eqi,{TwitterCardSetting:()=>nJa});var nJa={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var oqi={};X(oqi,{commons:()=>iqi,db:()=>iJa,read:()=>oJa,write:()=>rqi});var iJa={};var oJa={};var rqi={};X(rqi,{DocsRegistrationId:()=>vcd,FilePath:()=>bcd});function bcd(e){return e}function vcd(e){return e}var iqi={};X(iqi,{ContentAlignment:()=>cJa,FontDisplay:()=>mJa,FontStyle:()=>dJa,HeaderPosition:()=>lJa,JsScriptStrategy:()=>fJa,ProgrammingLanguage:()=>sJa,SearchbarPlacement:()=>aJa,TabsPlacement:()=>uJa,TwitterCardSetting:()=>pJa,commons:()=>nqi});var nqi={};X(nqi,{ContentAlignment:()=>cJa,FontDisplay:()=>mJa,FontStyle:()=>dJa,HeaderPosition:()=>lJa,JsScriptStrategy:()=>fJa,ProgrammingLanguage:()=>sJa,SearchbarPlacement:()=>aJa,TabsPlacement:()=>uJa,TwitterCardSetting:()=>pJa});var sJa={Typescript:"typescript",Javascript:"javascript",Python:"python",Java:"java",Go:"go",Ruby:"ruby",Csharp:"csharp",Nodets:"nodets",Nodejs:"nodejs",Dotnet:"dotnet",Curl:"curl",Jvm:"jvm",Ts:"ts",Js:"js"};var aJa={Header:"HEADER",HeaderTabs:"HEADER_TABS",Sidebar:"SIDEBAR"};var uJa={Header:"HEADER",Sidebar:"SIDEBAR"};var cJa={Center:"CENTER",Left:"LEFT"};var lJa={Fixed:"FIXED",Absolute:"ABSOLUTE"};var pJa={Summary:"summary",SummaryLargeImage:"summary_large_image",App:"app",Player:"player"};var fJa={BeforeInteractive:"beforeInteractive",AfterInteractive:"afterInteractive",LazyOnload:"lazyOnload"};var dJa={Normal:"normal",Italic:"italic"};var mJa={Auto:"auto",Block:"block",Swap:"swap",Fallback:"fallback",Optional:"optional"};var sqi={};X(sqi,{read:()=>hJa,write:()=>gJa});var hJa={};var gJa={};var cqi={};X(cqi,{ChangelogEntryType:()=>yJa,GeneratorId:()=>Ecd,GeneratorLanguage:()=>Icd,ReleaseType:()=>bJa,cli:()=>AJa,commons:()=>uqi,versions:()=>vJa});var AJa={};var uqi={};X(uqi,{ChangelogEntryType:()=>yJa,ReleaseType:()=>bJa});var yJa={Fix:"fix",Feat:"feat",Chore:"chore",Break:"break",Internal:"internal"};var bJa={Ga:"GA",Rc:"RC"};var vJa={};function Ecd(e){return e}var Icd={Python:"python",Go:"go",Java:"java",Typescript:"typescript",Ruby:"ruby",Csharp:"csharp",Php:"php",Swift:"swift",Rust:"rust"};var lqi={};X(lqi,{PullRequestState:()=>EJa});var EJa={Open:"open",Closed:"closed",Merged:"merged"};var dqi={};X(dqi,{latest:()=>pqi,v1:()=>fqi});var pqi={};X(pqi,{NodeId:()=>_cd,ProductId:()=>xcd,Slug:()=>wcd,TabId:()=>Ccd});function wcd(e){return e}function Ccd(e){return e}function _cd(e){return e}function xcd(e){return e}var fqi={};X(fqi,{NavigationV1Availability:()=>Tcd,NodeId:()=>Bcd,ProductId:()=>Pcd,Slug:()=>Scd,TabId:()=>Ocd});function Scd(e){return e}function Ocd(e){return e}function Bcd(e){return e}function Pcd(e){return e}var Tcd={Stable:"stable",GenerallyAvailable:"generally-available",InDevelopment:"in-development",PreRelease:"pre-release",Beta:"beta",Deprecated:"deprecated"};var hqi={};X(hqi,{Language:()=>IJa,VersionBump:()=>wJa,versions:()=>mqi});var mqi={};X(mqi,{Language:()=>IJa,VersionBump:()=>wJa});var IJa={Go:"Go",TypeScript:"TypeScript",Java:"Java",Python:"Python",Csharp:"Csharp",Ruby:"Ruby"};var wJa={Major:"MAJOR",Minor:"MINOR",Patch:"PATCH"};var CJa={};var _Ja={};var gqi={};X(gqi,{PayloadLocation:()=>xJa});var xJa={Body:"BODY",Query:"QUERY",Path:"PATH",Headers:"HEADERS",Relative:"RELATIVE",Auth:"AUTH"};var SJa={};var yQr=class{warnings=[];errors=[];error(t){this.errors.push(t)}warning(t){this.warnings.push(t)}};function OJa({endpoints:e,webhookEndpoints:t}){let r={};return Object.values({...e,...t}).forEach(n=>{let i=[];n.namespace?.forEach(o=>{let s=[...i,o],a=Ia.api.v1.SubpackageId(s.join("."));r[a]={id:a,name:o,displayName:qS(o)},i.push(o)})}),r}var bQr=class{input;context;constructor(t,r){this.input=t,this.context=r}errors(){return this.context.errors.errors}warnings(){return this.context.errors.warnings}};function BJa(e){return`#/${e.map(t=>t.replaceAll(/~/g,"~0").replaceAll(/\//g,"~1")).join("/")}`}var Wo=class extends bQr{context;accessPath;pathId;constructor({input:t,context:r,accessPath:n,pathId:i}){if(super(t,r),this.context=r,this.accessPath=[...n],this.pathId=i,i!=null){let o=Array.isArray(this.pathId)?this.pathId:[this.pathId];o.every((s,a)=>s===this.accessPath[this.accessPath.length-o.length+a])||this.accessPath.push(...o)}r.logger.debug(`Processing ${BJa(this.accessPath)}`)}safeParse(...t){try{this.parse(...t)}catch{this.context.errors.error({message:"Error converting node. Please contact support if the error persists",path:this.accessPath})}}},Vv=class extends Wo{},vj=class extends Vv{seenSchemas;constructor(t){super(t),this.seenSchemas=new Set(t.seenSchemas)}};var PJa="x-fern-base-path",TJa="x-fern-availability",vQr="x-fern-sdk-group-name",DJa="x-fern-global-headers",RJa="x-fern-sdk-method-name";var FJa="x-fern-webhook",jJa="x-fern-access-token-locator",QJa="x-fern-basic",NJa="x-fern-username-variable-name",kJa="x-fern-password-variable-name",MJa="x-fern-bearer",LJa="x-fern-token-variable-name",UJa="x-fern-header",zJa="x-fern-header-variable-name",VJa="x-fern-server-name",qJa="x-fern-examples";var EQr=class extends Wo{serverName;constructor(t){super(t),this.safeParse()}parse(){this.serverName=this.input[VJa]}convert(){if(this.serverName!=null)return this.serverName}};var IQr=class extends Wo{url;serverName;constructor(t){super(t),this.safeParse()}parse(){this.url=Object.entries(this.input.variables??{}).reduce((t,[r,n])=>t.replace(`{${r}}`,n.default),this.input.url)??this.input.url,this.serverName=new EQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})}convert(){let t=this.serverName?.convert()??this.url;if(!(this.url==null||t==null))return{id:Ia.EnvironmentId(t),baseUrl:this.url}}};function T_e(e,t,r,n){let i=e??[],o=new Set(i.map(a=>a.url)),s=(t??[]).filter(a=>!o.has(a.url)).map((a,u)=>new IQr({input:a,context:r,accessPath:n,pathId:["servers",`${u}`]}));return[...i,...s]}function Lp(e){return typeof e=="object"&&Xo(e)&&"$ref"in e&&typeof e.$ref=="string"}function WS(e,t,r){let n=e.$ref.substring(2).split("/").map(o=>o.replace(/~1/g,"/")),i=t;for(let o of n){if(typeof i!="object"||i==null)return r;i=i[o]}return i==null?r:(Lp(i)&&(i=WS(i,t,r)),i)}function wQr(e,t){let r=t.components?.securitySchemes?.[e];if(r!=null)return Lp(r)?WS(r,t,void 0):r}var lYa=we(By());var CQr=class extends Wo{username;password;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[QJa];this.username=t?.username,this.password=t?.password}convert(){return{username:this.username,password:this.password}}};var _Qr=class extends Wo{passwordVariableName;constructor(t){super(t),this.safeParse()}parse(){this.passwordVariableName=this.input[kJa]}convert(){return this.passwordVariableName}};var xQr=class extends Wo{usernameVariableName;constructor(t){super(t),this.safeParse()}parse(){this.usernameVariableName=this.input[NJa]}convert(){return this.usernameVariableName}};var SQr=class extends Wo{bearerTokenVariableName;bearerTokenEnvVar;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[MJa];this.bearerTokenVariableName=t?.name,this.bearerTokenEnvVar=t?.env}convert(){return{tokenVariableName:this.bearerTokenVariableName,tokenEnvVar:this.bearerTokenEnvVar}}};var OQr=class extends Wo{tokenVariableName;constructor(t){super(t),this.safeParse()}parse(){this.tokenVariableName=this.input[LJa]}convert(){return this.tokenVariableName}};function GJa(e){return typeof e=="object"&&e!=null&&"in"in e&&e.in==="header"}var WJa="x-bearer-format",$Ja="x-code-samples",HJa="x-codeSamples";var BQr=class extends Wo{bearerFormat;constructor(t){super(t),this.safeParse()}parse(){this.bearerFormat=this.input[WJa]}convert(){return this.bearerFormat}};var PQr=class extends Wo{headerVariableName;headerEnvVar;headerPrefix;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[UJa];this.headerVariableName=t?.name,this.headerEnvVar=t?.env,this.headerPrefix=t?.prefix}convert(){return{name:this.headerVariableName,env:this.headerEnvVar,prefix:this.headerPrefix}}};var TQr=class extends Wo{headerVariableName;constructor(t){super(t),this.safeParse()}parse(){this.headerVariableName=this.input[zJa]}convert(){return this.headerVariableName}};function KJa(e){return e.type==="apiKey"}var krt=class extends Wo{headerName;headerBearerFormatNode;headerAuthNode;headerVariableNameNode;constructor(t){super(t),this.safeParse()}parse(){KJa(this.input)&&(this.headerName=this.input.name),this.headerAuthNode=new PQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerVariableNameNode=new TQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.headerBearerFormatNode=new BQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})}convert(){let t=this.headerAuthNode?.convert();if(t!=null)return{type:"header",nameOverride:t?.name,headerWireValue:this.headerName??"Authorization",prefix:t?.prefix??this.headerBearerFormatNode?.convert()}}};_Jn();_7o();function DQr(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function Mrt(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function oLe(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(oLe).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}function RQr(e){if(Array.isArray(e))return e.map(Mrt);if(typeof e=="symbol")return[e];e=oLe(e);let t=[],r=e.length;if(r===0)return t;let n=0,i="",o="",s=!1;for(e.charCodeAt(0)===46&&(t.push(""),n++);n<r;){let a=e[n];o?a==="\\"&&n+1<r?(n++,i+=e[n]):a===o?o="":i+=a:s?a==='"'||a==="'"?o=a:a==="]"?(s=!1,t.push(i),i=""):i+=a:a==="["?(s=!0,i&&(t.push(i),i="")):a==="."?i&&(t.push(i),i=""):i+=a,n++}return i&&t.push(i),t}function PNt(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(bqt(t))return r;let n=e[t];return n===void 0?DQr(t)?PNt(e,RQr(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Mrt(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return Dcd(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),bqt(t))return r;let n=e[t];return n===void 0?r:n}}}function Dcd(e,t,r){if(t.length===0)return r;let n=e;for(let i=0;i<t.length;i++){if(n==null||bqt(t[i]))return r;n=n[t[i]]}return n===void 0?r:n}function JJa(e){return function(t){return PNt(t,e)}}function YJa(e){return e!==null&&(typeof e=="object"||typeof e=="function")}rKn();function Aqi(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function bqi(e,t,r){return typeof r!="function"?bqi(e,t,()=>{}):yqi(e,t,function n(i,o,s,a,u,c){let l=r(i,o,s,a,u,c);return l!==void 0?!!l:yqi(i,o,n,c)},new Map)}function yqi(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return Rcd(e,t,r,n);case"function":return Object.keys(t).length>0?yqi(e,{...t},r,n):Aqi(e,t);default:return YJa(e)?typeof t=="string"?t==="":!0:Aqi(e,t)}}function Rcd(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return XJa(e,t,r,n);if(t instanceof Map)return Fcd(e,t,r,n);if(t instanceof Set)return jcd(e,t,r,n);let i=Object.keys(t);if(e==null||CIt(e))return i.length===0;if(i.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let o=0;o<i.length;o++){let s=i[o];if(!CIt(e)&&!(s in e)||t[s]===void 0&&e[s]!==void 0||t[s]===null&&e[s]!==null||!r(e[s],t[s],s,e,t,n))return!1}return!0}finally{n?.delete(t)}}function Fcd(e,t,r,n){if(t.size===0)return!0;if(!(e instanceof Map))return!1;for(let[i,o]of t.entries()){let s=e.get(i);if(r(s,o,i,e,t,n)===!1)return!1}return!0}function XJa(e,t,r,n){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let i=new Set;for(let o=0;o<t.length;o++){let s=t[o],a=!1;for(let u=0;u<e.length;u++){if(i.has(u))continue;let c=e[u],l=!1;if(r(c,s,o,e,t,n)&&(l=!0),l){i.add(u),a=!0;break}}if(!a)return!1}return!0}function jcd(e,t,r,n){return t.size===0?!0:e instanceof Set?XJa([...e],[...t],r,n):!1}function FQr(e,t){return bqi(e,t,()=>{})}C7o();function ZJa(e){return e=w7o(e),t=>FQr(t,e)}iKn();dqt();nKn();function eYa(e,t){return I7o(e,(r,n,i,o)=>{let s=t?.(r,n,i,o);if(s!==void 0)return s;if(typeof e=="object"){if(lqe(e)===yqt&&typeof e.constructor!="function"){let a={};return o.set(e,a),IM(a,e,i,o),a}switch(Object.prototype.toString.call(e)){case hqt:case mqt:case gqt:{let a=new e.constructor(e?.valueOf());return IM(a,e),a}case Aqt:{let a={};return IM(a,e),a.length=e.length,a[Symbol.iterator]=e[Symbol.iterator],a}default:return}}})}function tYa(e){return eYa(e)}var Qcd=/^(?:0|[1-9]\d*)$/;function rYa(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e<t;case"symbol":return!1;case"string":return Qcd.test(e)}}dqt();function nYa(e){return e!==null&&typeof e=="object"&&lqe(e)==="[object Arguments]"}function iYa(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&DQr(t)&&e?.[t]==null?r=RQr(t):r=[t],r.length===0)return!1;let n=e;for(let i=0;i<r.length;i++){let o=r[i];if((n==null||!Object.hasOwn(n,o))&&!((Array.isArray(n)||nYa(n))&&rYa(o)&&o<n.length))return!1;n=n[o]}return!0}function oYa(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=Mrt(e);break}}return t=tYa(t),function(r){let n=PNt(r,e);return n===void 0?iYa(r,e):t===void 0?n===void 0:FQr(n,t)}}function sYa(e){if(e==null)return R9t;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?oYa(e[0],e[1]):ZJa(e);case"string":case"symbol":case"number":return JJa(e)}}_Jn();oKn();function jQr(e,t=R9t){return e==null?{}:Ox(e,sYa(t))}HYo();function aYa(e){return $Yo(oLe(e))}B7o();function uYa(e){return typeof e!="string"&&(e=oLe(e)),e.replace(/['\u2019]/g,"")}function G9(e){return O7o(uYa(aYa(e)))}function Nm(e){if(e!=null)return Array.isArray(e)?e:[e]}function QQr({namespace:e,path:t,method:r,sdkMethodName:n,operationId:i,displayName:o,isWebhook:s}){if(t==null)return;let a=r!=null&&t!=null?`${r}_${t.split("/").join("_")}`:r??t.split("/").join("_");if(!(n==null&&i==null&&o==null&&a==null))return`${Ncd(s)}${kcd(e)}.${Mcd(n,i,o,a)}`}function Ncd(e){return e?"webhook_":"endpoint_"}function kcd(e){return e!=null?Nm(e)?.map(t=>G9(t)).join("/"):""}function Mcd(e,t,r,n){return e||t||G9(r??"")||G9(n??"")}function cYa(e){return e.length===0?!1:/^\$?(\.[\w*]+|\[['"][\w*]+['"]?\]|\[['"]?[\d*]+['"]?\]|\[[\d:]+\])*$/.test(e)}var NQr=class extends Wo{accessTokenLocator;constructor(t){super(t),this.safeParse()}parse(){this.accessTokenLocator=this.input[jJa],this.accessTokenLocator!=null&&(cYa(this.accessTokenLocator)||(this.context.errors.error({message:"Invalid access token locator, must be a valid jq path",path:this.accessPath}),this.accessTokenLocator=void 0))}convert(){return this.accessTokenLocator}};var kQr=class extends Wo{authorizationUrl;headerAuthNode;accessTokenLocatorNode;constructor(t){super(t),this.safeParse()}parse(){if(this.input.flows.clientCredentials!=null){let t=this.input.flows.clientCredentials;this.authorizationUrl=t.tokenUrl,this.authorizationUrl==null&&this.context.errors.error({message:"Expected 'tokenUrl' property to be specified",path:this.accessPath}),this.headerAuthNode=new krt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.accessTokenLocatorNode=new NQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.authorizationUrl==null&&this.context.errors.error({message:"Expected 'tokenUrl' property to be specified",path:this.accessPath}),this.accessTokenLocatorNode?.accessTokenLocator==null&&this.context.errors.error({message:"Expected 'x-fern-access-token-locator' property to be specified",path:this.accessPath})}}convert(){let t=this.accessTokenLocatorNode?.convert();if(t==null||this.authorizationUrl==null)return{type:"bearerAuth",tokenName:void 0};let r=QQr({namespace:void 0,path:this.authorizationUrl,method:"POST",sdkMethodName:void 0,operationId:void 0,displayName:void 0,isWebhook:void 0});if(r!=null)return{type:"oAuth",value:{type:"clientCredentials",value:{type:"referencedEndpoint",endpointId:Ia.EndpointId(r),accessTokenLocator:Ia.JqString(t),headerName:this.headerAuthNode?.convert()?.headerWireValue,tokenPrefix:this.headerAuthNode?.convert()?.prefix}}}}};var Lrt=class extends Wo{authScheme;headerAuthNode;bearerTokenNode;bearerTokenVariableNameNode;basicAuthNode;basicUsernameVariableNameNode;basicPasswordVariableNameNode;oauth2Node;constructor(t){super(t),this.safeParse()}parse(){switch(this.input.type){case"http":switch(this.input.scheme){case"basic":{this.authScheme="basic",this.basicAuthNode=new CQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicUsernameVariableNameNode=new xQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.basicPasswordVariableNameNode=new _Qr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),(this.basicAuthNode==null||this.basicAuthNode.username==null&&this.basicUsernameVariableNameNode?.usernameVariableName==null||this.basicAuthNode.password==null&&this.basicPasswordVariableNameNode?.passwordVariableName==null)&&this.context.errors.warning({message:"Basic auth should specify either a username or a username variable name",path:this.accessPath});break}case"bearer":{this.authScheme="bearer",this.bearerTokenNode=new SQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),this.bearerTokenVariableNameNode=new OQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});break}default:{this.context.errors.warning({message:`Unsupported HTTP auth scheme: ${this.input.scheme}`,path:this.accessPath});break}}break;case"apiKey":{GJa(this.input)?(this.authScheme="header",this.headerAuthNode=new krt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId})):this.context.errors.error({message:`Unsupported API key location: ${this.input.in}`,path:this.accessPath});break}case"oauth2":{this.authScheme="oauth",this.oauth2Node=new kQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});break}case"openIdConnect":{this.authScheme="bearer";break}}}convert(){switch(this.authScheme){case"basic":{let t=this.basicAuthNode?.convert();return{type:"basicAuth",usernameName:t?.username?.name??this.basicUsernameVariableNameNode?.convert(),passwordName:t?.password?.name??this.basicPasswordVariableNameNode?.convert()}}case"bearer":return{type:"bearerAuth",tokenName:this.bearerTokenNode?.convert()?.tokenVariableName??this.bearerTokenVariableNameNode?.convert()};case"header":return this.headerAuthNode?.convert();case"oauth":return this.oauth2Node?.convert();case void 0:return;default:new lYa.UnreachableCaseError(this.authScheme);return}}};var Urt=class extends Wo{authNodesMap;constructor(t){super(t),this.safeParse()}parse(){this.input.map((t,r)=>Object.keys(t).map(n=>{let i=wQr(n,this.context.document);if(i==null){this.context.errors.warning({message:`No auth scheme found for ${n}. Inline security schemes are not supported.`,path:this.accessPath});return}let o=new Lrt({input:i,context:this.context,accessPath:this.accessPath,pathId:["security",`${r}`]});o.convert()!=null?(this.authNodesMap??={},this.authNodesMap[n]=o):this.context.errors.warning({message:`No auth scheme found for ${n}`,path:this.accessPath})}))}convert(){return Object.fromEntries(Object.entries(this.authNodesMap??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[t,n]}).filter(Xo))}};var MQr=class extends Wo{basePath;constructor(t){super(t),this.safeParse()}parse(){this.basePath=this.input[PJa],this.basePath!=null?(this.basePath.startsWith("/")&&(this.basePath=this.basePath.slice(1)),this.basePath.endsWith("/")&&(this.basePath=this.basePath.slice(0,-1))):this.basePath=void 0}convert(){return this.basePath}};function pYa(e){return"required"in e&&typeof e.required=="boolean"?e.required:!1}function fYa(e,t){return{type:"alias",value:{type:"optional",shape:e,default:t}}}function zrt(e,t){return e==null?void 0:Object.entries(e).map(([n,i])=>Nm(i.convert())?.map(s=>((t!=null&&!t.includes(n)||t==null&&!pYa(i))&&(s=fYa(s,s.type==="enum"?s.default:void 0)),{key:Ia.PropertyKey(n),valueShape:s,description:i.description,availability:i.availability?.convert()})).filter(Xo)).filter(Xo).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]])}function LQr(e,t){return Lp(e)?WS(e,t,void 0):e}function D_e(e,t){return e!=null&&e!==""?e:t!=null&&t!==""?t:void 0}function dYa(e,t){let r={...e};for(let[n,i]of Object.entries(t??{}))r[n]=[...r[n]??[],...i];return Object.keys(r).length>0?r:void 0}function mYa(e,t){if(e==null)return t;if(t==null)return e;let r=[];for(let n of e)for(let i of t)r.push({path:n.path??i.path,responseStatusCode:n.responseStatusCode??i.responseStatusCode,name:n.name??i.name,description:n.description??i.description,pathParameters:n.pathParameters??i.pathParameters,queryParameters:n.queryParameters??i.queryParameters,headers:n.headers??i.headers,requestBody:n.requestBody??i.requestBody,responseBody:n.responseBody??i.responseBody,snippets:{...i.snippets,...n.snippets}});return r}var hYa=we(By());var vqi=["decimal","decimal128","double-int","double","float","sf-decimal"],Eqi=["int16","int32","int64","int8","sf-integer","uint8"],Iqi=["base64url","binary","byte","char","commonmark","date-time","date","decimal","decimal128","duration","email","hostname","html","http-date","idn-email","idn-hostname","int64","ipv4","ipv6","iri-reference","iri","json-pointer","media-range","password","regex","relative-json-pointer","sf-binary","sf-boolean","sf-string","sf-token","time","uri-reference","uri-template","uri","uuid"],wqi=["beta","pre-release","in-development","generally-available","deprecated"];function qv(e,t){return Lp(e)?WS(e,t,{type:"unknown","x-fern-type":"unknown",additionalProperties:!1}):e}var OU=class extends Wo{availability;constructor(t){super(t),this.safeParse()}parse(){if(qv(this.input,this.context.document)?.deprecated)this.availability="deprecated";else{let r=this.input[TJa];r!=null&&(wqi.includes(r)?this.availability=r:(this.context.errors.warning({message:`Expected one of: ${wqi.join(", ")}. Received: ${r}`,path:this.accessPath}),this.availability=void 0))}}convert(){switch(this.availability){case"beta":case"pre-release":return Ia.Availability.Beta;case"in-development":return Ia.Availability.InDevelopment;case"generally-available":return Ia.Availability.GenerallyAvailable;case"deprecated":return Ia.Availability.Deprecated;case void 0:return;default:new hYa.UnreachableCaseError(this.availability);return}}};var zQr=we(By());function gYa(e){return typeof e=="object"&&e!=null&&"language"in e}function AYa(e){return typeof e=="object"&&e!=null&&"sdk"in e}function yYa(e){return typeof e=="object"&&e!=null&&("error"in e||"body"in e)}function bYa(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)}function UQr(e){return typeof e=="object"&&e!=null&&"event"in e}function Cqi(e){return typeof e=="object"&&e!=null&&"stream"in e&&Array.isArray(e.stream)&&e.stream.every(UQr)}function R_e(e){return typeof e=="object"&&e!=null&&"filename"in e&&"data"in e&&typeof e.filename=="string"&&typeof e.data=="string"}function vYa(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var VQr=class extends Wo{path;successResponseStatusCode;requestBodyByContentType;responseBodies;examples;constructor(t,r,n,i,o){super(t),this.path=r,this.successResponseStatusCode=n,this.requestBodyByContentType=i,this.responseBodies=o,this.safeParse()}parse(){this.examples=this.input[qJa]}convertFormDataExampleRequest(t,r){if(t.fields!=null)switch(t.contentType){case"form-data":return{type:"form",value:Object.fromEntries(Object.entries(t.fields).map(([i,o])=>{let s=typeof r=="object"?r[i]:void 0;switch(o.multipartType){case"file":return R_e(s)?[i,{type:"filenameWithData",filename:s.filename,data:Ia.FileId(s.data)}]:s!=null?[i,{type:"filename",value:s}]:void 0;case"files":{if(Array.isArray(s)){if(s.every(a=>R_e(a)))return[i,{type:"filenamesWithData",value:s.map(a=>({filename:a.filename,data:Ia.FileId(a.data)}))}];if(s.every(a=>typeof a=="string"))return[i,{type:"filenames",value:s}]}return}case"property":return[i,{type:"json",value:s}];case void 0:return;default:new zQr.UnreachableCaseError(o.multipartType);return}}).filter(Xo))};case"json":return{type:"json",value:r};case"bytes":return typeof r=="string"?{type:"bytes",value:{type:"base64",value:r}}:void 0;default:return}}convert(){if(this.examples==null)return;this.requestBodyByContentType!=null&&Object.keys(this.requestBodyByContentType).length>1&&this.context.logger.warn(`Multiple request bodies found for #/${[this.accessPath,this.pathId,"x-fern-examples"].join("/")}. Coercing to first request body until supported.`);let t=Object.keys(this.requestBodyByContentType??{})[0];return this.examples.flatMap(r=>(this.responseBodies??[]).map(n=>{let i=t!=null?this.requestBodyByContentType?.[t]:void 0,o;if(i!=null)switch(i.contentType){case"form-data":o=vYa(r.request)?this.convertFormDataExampleRequest(i,r.request):void 0;break;case"json":o=r.request!=null?{type:"json",value:r.request}:void 0;break;case"bytes":o=typeof r.request=="string"&&r.request!=null?{type:"bytes",value:{type:"base64",value:r.request}}:void 0;break;case void 0:break;default:new zQr.UnreachableCaseError(i.contentType);break}let s;switch(n.contentType){case"application/json":{yYa(r.response)&&(s={type:"json",value:r.response.body});break}case"text/event-stream":{Cqi(r.response)&&(s={type:"sse",value:r.response.stream.map(p=>({event:p.event,data:p.data}))});break}case"application/octet-stream":!Cqi(r.response)&&bYa(r.response)&&(s={type:"stream",value:r.response.stream});break;case void 0:break;default:new zQr.UnreachableCaseError(n.contentType);break}let a={};r["code-samples"]?.forEach(p=>{gYa(p)?p.language!=null&&(a[p.language]??=[],a[p.language]?.push({name:p.name,language:p.language,install:p.install,code:p.code,generated:!1,description:p.docs})):AYa(p)&&p.sdk!=null&&(a[p.sdk]??=[],a[p.sdk]?.push({name:p.name,language:p.sdk,install:void 0,code:p.code,generated:!1,description:p.docs}))});let u=Object.fromEntries(Object.entries(r["path-parameters"]??{}).map(([p,d])=>[Ia.PropertyKey(p),d])),c=Object.fromEntries(Object.entries(r["query-parameters"]??{}).map(([p,d])=>[Ia.PropertyKey(p),d])),l=Object.fromEntries(Object.entries(r.headers??{}).map(([p,d])=>[Ia.PropertyKey(p),d]));return{path:this.path,responseStatusCode:this.successResponseStatusCode,name:r.name,description:r.docs,pathParameters:Object.keys(u).length>0?u:void 0,queryParameters:Object.keys(c).length>0?c:void 0,headers:Object.keys(l).length>0?l:void 0,requestBody:o,responseBody:s,snippets:a}}))}};var TNt=class extends Wo{groupName;constructor(t){super(t),this.safeParse()}parse(){this.groupName=this.input[vQr]}convert(){if(this.groupName==null)return;let t;return Array.isArray(this.groupName)?t=this.groupName:t=[this.groupName],t.map(r=>Ia.api.v1.SubpackageId(G9(r)))}};var qQr=class extends Wo{sdkMethodName;constructor(t){super(t),this.safeParse()}parse(){this.sdkMethodName=this.input[RJa]}convert(){return this.sdkMethodName}};var GQr=class extends Wo{isWebhook;constructor(t){super(t),this.safeParse()}parse(){this.isWebhook=this.input[FJa]}convert(){return this.isWebhook}};var WQr=class extends Wo{codeSamples;constructor(t){super(t),this.safeParse()}parse(){this.codeSamples=[...this.input[$Ja]??[],...this.input[HJa]??[]],this.codeSamples.forEach(t=>{[...Object.values(Ia.api.v1.read.SupportedLanguage),"Kotlin","Swift","PHP"].map(r=>r.toLowerCase()).includes(t.lang.toLowerCase())||this.context.errors.warning({message:`Unsupported language: ${t.lang}. This may not render correctly.`,path:this.accessPath})})}convert(){let t={};if(this.codeSamples?.forEach(r=>{t[r.lang.toLowerCase()]??=[],t[r.lang.toLowerCase()]?.push({name:r.label,language:r.lang,code:r.source,install:void 0,generated:!1,description:void 0})}),Object.keys(t).length!==0)return t}};var sLe=we(By());function _qi(e,t){return Lp(e)?WS(e,t,void 0):e}function EYa(e,t){return e.replace(/{(\w+)}/g,(r,n)=>t[n]!=null&&typeof t[n]=="string"||typeof t[n]=="number"||typeof t[n]=="boolean"?`${t[n]}`:r)}var a_="",nX=class extends Wo{path;responseStatusCode;name;shapes;resolvedRequestInput;resolvedResponseInput;summary;constructor(t,r,n,i,o){super(t),this.path=r,this.responseStatusCode=n,this.name=i,this.shapes=o,this.safeParse()}validateFormDataRequestExample(){return typeof this.resolvedRequestInput?.value!="object"?!1:Object.entries(this.shapes.requestBody?.fields??{}).reduce((t,[r,n])=>{let i=this.resolvedRequestInput?.value[r];switch(n.multipartType){case"file":return t&&(R_e(i)||typeof i=="string");case"files":return t&&Array.isArray(i)&&i.every(o=>R_e(o)||typeof o=="string");case"property":return t;case void 0:return t&&!1;default:return new sLe.UnreachableCaseError(n.multipartType),t}},!0)}parse(){let t=this.shapes.requestBody?.schema?.example({includeOptionals:!1,override:void 0});this.resolvedRequestInput=_qi(this.input?.requestExample,this.context.document)??(t!=null?{value:t}:void 0);let r=this.shapes.responseBody?.schema?.example({includeOptionals:!1,override:void 0});if(this.resolvedResponseInput=_qi(this.input?.responseExample,this.context.document)??(r!=null?{value:r}:void 0),this.summary=this.input?.requestExample?.summary??this.input?.responseExample?.summary,this.shapes.requestBody!=null&&this.resolvedRequestInput!=null)switch(this.shapes.requestBody?.contentType){case"json":{if(typeof this.resolvedRequestInput.value!="object"){this.context.errors.error({message:"Invalid example, expected object for json",path:this.accessPath});return}break}case"bytes":{if(typeof this.resolvedRequestInput.value!="string"){this.context.errors.error({message:"Invalid example, expected string for bytes",path:this.accessPath});return}break}case"form-data":{if(!this.validateFormDataRequestExample()){this.context.errors.error({message:"Invalid example, expected valid form-data",path:this.accessPath});return}break}case void 0:break;default:new sLe.UnreachableCaseError(this.shapes.requestBody?.contentType),this.context.errors.error({message:"Invalid example, unsupported content type",path:this.accessPath});return}if(this.shapes.responseBody!=null&&this.resolvedResponseInput!=null)switch(this.shapes.responseBody?.contentType){case"application/json":if(this.resolvedResponseInput!=null&&typeof this.resolvedResponseInput!="object"||this.resolvedResponseInput.value!=null&&typeof this.resolvedResponseInput.value!="object"){this.context.errors.error({message:"Invalid example, expected object for json",path:this.accessPath});return}break;case"text/event-stream":if(this.resolvedResponseInput.value!=null&&!Array.isArray(this.resolvedResponseInput.value)&&!this.resolvedResponseInput.value.every(UQr)){this.context.errors.error({message:"Invalid example, expected array of SSE events for event-stream",path:this.accessPath});return}break;case"application/octet-stream":if(this.resolvedResponseInput.value!=null&&typeof this.resolvedResponseInput.value!="string"&&!Array.isArray(this.resolvedResponseInput.value)){this.context.errors.error({message:"Invalid example, expected string or array for octet-stream",path:this.accessPath});return}break;case void 0:break;default:new sLe.UnreachableCaseError(this.shapes.responseBody?.contentType);return}}convertFormDataExampleRequest(){if(!(this.resolvedRequestInput==null||this.shapes.requestBody?.fields==null))switch(this.shapes.requestBody?.contentType){case"form-data":return{type:"form",value:Object.fromEntries(Object.entries(this.shapes.requestBody.fields).map(([r,n])=>{let i=this.resolvedRequestInput?.value?.[r];switch(n.multipartType){case"file":return R_e(i)?[r,{type:"filenameWithData",filename:i.filename,data:Ia.FileId(i.data)}]:[r,{type:"filename",value:i}];case"files":{if(Array.isArray(i)){if(i.every(o=>R_e(o)))return[r,{type:"filenamesWithData",value:i.map(o=>({filename:o.filename,data:Ia.FileId(o.data)}))}];if(i.every(o=>typeof o=="string"))return[r,{type:"filenames",value:i}]}return}case"property":return[r,{type:"json",value:i}];case void 0:return;default:new sLe.UnreachableCaseError(n.multipartType);return}}).filter(Xo))};case"json":return{type:"json",value:this.resolvedRequestInput.value};case"bytes":return typeof this.resolvedRequestInput.value=="string"?{type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}}:void 0;default:return}}convertDescription(){if(this.resolvedRequestInput!=null&&this.resolvedResponseInput!=null)return this.resolvedResponseInput.description;if(this.resolvedRequestInput!=null)return this.resolvedRequestInput.description;if(this.resolvedResponseInput!=null)return this.resolvedResponseInput.description}convert(){let t;if(this.shapes.requestBody!=null&&this.resolvedRequestInput!=null)switch(this.shapes.requestBody.contentType){case"form-data":t=this.convertFormDataExampleRequest();break;case"json":t={type:"json",value:this.resolvedRequestInput.value};break;case"bytes":t={type:"bytes",value:{type:"base64",value:this.resolvedRequestInput.value}};break;case void 0:break;default:new sLe.UnreachableCaseError(this.shapes.requestBody?.contentType);break}let r;if(this.shapes.responseBody!=null&&this.resolvedResponseInput!=null)switch(this.shapes.responseBody.contentType){case"application/json":{r={type:"json",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break}case"text/event-stream":r={type:"sse",value:this.resolvedResponseInput?.value};break;case"application/octet-stream":r={type:typeof this.resolvedResponseInput?.value=="string"?"filename":"stream",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break;case void 0:r={type:"json",value:this.resolvedResponseInput?.value??this.resolvedResponseInput};break;default:new sLe.UnreachableCaseError(this.shapes.responseBody?.contentType);break}let n=Object.fromEntries(Object.entries(this.shapes.pathParameters??{}).map(([s,a])=>[s,a.example({includeOptionals:!1,override:s})]));n=Object.keys(n).length>0?n:void 0;let i=Object.fromEntries(Object.entries(this.shapes.queryParameters??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(Xo));i=Object.keys(i).length>0?i:void 0;let o=Object.fromEntries(Object.entries(this.shapes.requestHeaders??{}).map(([s,a])=>a.required||a.inputExample!=null?[s,a.example({includeOptionals:!1,override:s})]:void 0).filter(Xo));if(o=Object.keys(o).length>0?o:void 0,!(this.path==null&&t==null&&r==null&&o==null&&i==null&&n==null))return{path:EYa(this.path,n??{}),responseStatusCode:this.responseStatusCode,name:this.name!=null?qS(this.name):this.summary!=null?qS(this.summary):void 0,description:this.convertDescription(),pathParameters:n,queryParameters:i,headers:o,requestBody:t,responseBody:r,snippets:void 0}}};function IYa(e,t){return Lp(e)?WS(e,t,void 0):e}var jYa=we(By());var wYa="#/components/schemas/";function Vrt(e){if(e.$ref.startsWith(wYa))return e.$ref.replace(wYa,"")}function oAe(e){if(e!=null)return{type:"alias",value:{type:"nullable",shape:e}}}function F_e(e){return typeof e.type=="string"&&e.type==="array"}function CYa(e){return e.type==="boolean"}function _Ya(e){return e.type==="integer"}function j_e(e){return!Array.isArray(e.type)&&!F_e(e)}function xYa(e){return e!=null&&Array.isArray(e)&&e.every(t=>t.type==="null"||j_e(t)||F_e(t))}function SYa(e){return"nullable"in e&&typeof e.nullable=="boolean"}function OYa(e){return e.type==="null"}function BYa(e){return e.type==="number"}function xqi(e){return e.type==null||typeof e.type=="string"&&e.type==="object"}function PYa(e){return e.type==="string"}var $Qr=class extends vj{item;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.item=new Fg({input:this.input.items,context:this.context,accessPath:this.accessPath,pathId:"items",seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}),this.input.items==null&&this.context.errors.error({message:"Expected 'items' property to be specified",path:this.accessPath})}convert(){return Nm(this.item?.convert())?.map(r=>({type:"alias",value:{type:"list",itemShape:r}}))}example(t){return this.input.example??this.input.examples?.[0]??[this.item?.example(t)]}};var HQr=class extends Vv{constValue;description;availability;constructor(t){super(t),this.safeParse()}parse(){this.input.const!=null&&(typeof this.input.const=="string"||typeof this.input.const=="number"||typeof this.input.const=="boolean")?this.constValue=this.input.const.toString():this.context.errors.warning({message:`Unsupported const type: ${typeof this.input}`,path:this.accessPath}),this.description=this.input.description,this.availability=new OU({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"})}convert(){if(this.constValue!=null)return{type:"enum",default:this.constValue,values:[{value:this.constValue,description:this.description,availability:this.availability?.convert()}]}}example(){return this.input.example??this.input.examples?.[0]??this.constValue}};var KQr=class extends vj{typeNodes;nullable;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.parse()}parse(){this.typeNodes=this.input.map(t=>{if(t.type==="null")this.nullable=!0;else return new Fg({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName})}).filter(Xo)}convert(){if(this.typeNodes==null)return;let n=this.typeNodes.map(i=>Nm(i.convert())?.map(s=>({displayName:i.name,shape:s,description:i.description,availability:i.availability?.convert()}))).filter(Xo).reduce((i,o)=>i.flatMap(s=>o.length>0?o.map(a=>[...s,a]):[[...s]]),[[]]).map(i=>({type:"undiscriminatedUnion",variants:i}));return this.nullable?n.map(oAe).filter(Xo):n}example(t){return this.nullable?null:this.typeNodes?.[0]?.example(t)}};function JQr(e){return e!=null&&e.length>0?e:[void 0]}var qrt=class extends vj{description;extends=[];properties;extraProperties;requiredProperties;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){this.extends=[],this.requiredProperties=this.input.required,this.properties=Object.fromEntries(Object.entries(this.input.properties??{}).map(([t,r])=>[t,new Fg({input:r,context:this.context,accessPath:this.accessPath,pathId:["properties",t],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})])),this.extraProperties=this.input.additionalProperties!=null?typeof this.input.additionalProperties=="boolean"?this.input.additionalProperties?this.input.title:void 0:new Fg({input:this.input.additionalProperties,context:this.context,accessPath:this.accessPath,pathId:["additionalProperties"],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0,this.input.allOf!=null&&(this.extends=this.extends.concat(this.input.allOf.map((t,r)=>{if(Lp(t))return Vrt(t);this.properties={...this.properties,...Object.fromEntries(Object.entries(t.properties??{}).map(([n,i])=>[n,new Fg({input:i,context:this.context,accessPath:this.accessPath,pathId:["allOf",r.toString(),"properties",n],seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))}}).filter(Xo))),this.description=this.input.description}convertProperties(){if(this.properties!=null)return zrt(this.properties,this.requiredProperties)}convertExtraProperties(){return this.extraProperties==null?void 0:typeof this.extraProperties=="string"?[{type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:{type:"alias",value:{type:"unknown",displayName:this.extraProperties}}}]:Nm(this.extraProperties.convert())?.map(r=>({type:"map",keyShape:{type:"alias",value:{type:"primitive",value:{type:"string",format:void 0,regex:void 0,minLength:void 0,maxLength:void 0,default:void 0}}},valueShape:r})).filter(Xo)}convert(){let t=this.convertProperties();if(t==null)return;let r=this.convertExtraProperties();return t.flatMap(n=>JQr(r).map(i=>(this.extends==null||this.extends.length===0)&&n.length===0&&i!=null?{type:"alias",value:i}:{type:"object",extends:this.extends.map(o=>Ia.TypeId(o)),properties:n,extraProperties:i}))}example({includeOptionals:t}){let r={...this.properties};return this.input.allOf?.forEach(n=>{let i=qv(n,this.context.document);i!=null&&(r={...r,...Object.fromEntries(Object.entries(i.properties??{}).map(([o,s])=>[o,new Fg({input:s,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})]))})}),this.input.example??this.input.examples?.[0]??(!t&&this.requiredProperties!=null&&this.requiredProperties.length>0?this.requiredProperties?.reduce((n,i)=>{let o=r?.[i];return n[i]=o?.example({includeOptionals:t,override:i}),n},{}):Object.entries(r).reduce((n,[i,o])=>(n[i]=o?.example({includeOptionals:t,override:i}),n),{}))}};var YQr=class extends vj{isNullable;discriminated;discriminant;discriminatedMapping;undiscriminatedMapping;schemaName;constructor(t){super(t),this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.input.oneOf!=null||this.input.anyOf!=null)if(this.isNullable=(this.input.oneOf??this.input.anyOf)?.some(t=>qv(t,this.context.document)?.type==="null"),this.input.discriminator==null)this.discriminated=!1,this.undiscriminatedMapping=(this.input.oneOf??this.input.anyOf)?.map(t=>qv(t,this.context.document)?.type!=="null"?new Fg({input:t,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName}):void 0).filter(Xo);else{let t=this.input.discriminator.mapping;if(t!=null){this.discriminated=!0,this.discriminant=this.input.discriminator.propertyName,this.discriminatedMapping={};let r=this.discriminatedMapping;Object.entries(t).map(([n,i])=>{let o=qv({$ref:i},this.context.document);if(o==null){this.context.errors.warning({message:`Expected schema reference. Received undefined reference: ${i}`,path:[...this.accessPath,"discriminator","mapping",n]});return}r[n]=new Fg({input:o,context:this.context,accessPath:[...this.accessPath,"discriminator","mapping",n],pathId:n,seenSchemas:this.seenSchemas,nullable:void 0,schemaName:this.schemaName})})}}}convert(){if(!this.discriminated&&this.undiscriminatedMapping?.length===1){let i=this.undiscriminatedMapping?.flatMap(o=>o.convert()).filter(Xo);return this.isNullable&&i!=null?i.map(oAe).filter(Xo):i}let t=0,r=this.discriminated&&this.discriminant!=null&&this.discriminatedMapping!=null?{type:"discriminatedUnion",discriminant:Ia.PropertyKey(this.discriminant),variants:Object.entries(this.discriminatedMapping).flatMap(([i,o])=>Nm(o.convert())?.map(a=>{if(!(a==null||a.type!=="object"))return{discriminantValue:i,displayName:o.name??qS(i),availability:o.availability?.convert(),description:o.description,...a}}).filter(Xo)).filter(Xo)}:this.undiscriminatedMapping!=null?{type:"undiscriminatedUnion",variants:this.undiscriminatedMapping.flatMap(i=>Nm(i.convert())?.map(s=>{if(s==null)return;t+=1;let a=s.type==="object"?qS(`${this.schemaName??"Variant"} ${t}`):void 0;return{displayName:i.name??(s.type==="alias"&&s.value.type==="id"?qS(s.value.id):a),shape:s,description:i.description,availability:i.availability?.convert()}}).filter(Xo)).filter(Xo)}:void 0,n=this.isNullable?oAe(r):r;return n!=null?[n]:void 0}example(t){return this.input.example??this.input.examples?.[0]??this.undiscriminatedMapping?.[0]?.example(t)??Object.values(this.discriminatedMapping??{})[0]?.example(t)}};var XQr=class extends Vv{default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.input.default!=null&&typeof this.input.default!="boolean"&&this.context.errors.warning({message:`Expected default value to be a boolean. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default}convert(){return{type:"alias",value:{type:"primitive",value:{type:"boolean",default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:!1)}};var Q_e=class extends Vv{default;values=[];nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){if(this.input.enum!=null){let t=!0;this.values=this.input.enum.map((r,n)=>{if(t){if(Lp(r)){let i=qv(r,this.context.document);r=typeof i=="string"?i:typeof i?.default=="string"?i?.default:typeof i?.example=="string"?i.example:void 0}if(typeof r!="string"){this.context.errors.error({message:`Expected enum values to be strings. Received ${r}`,path:[...this.accessPath,`enum[${n}]`]}),t=!1;return}return r}}).filter(Xo),this.values=Array.from(new Set(this.values))}this.default=this.input.default}convert(){return{type:"enum",values:this.values.map(t=>({value:t,description:void 0,availability:void 0})),default:this.default}}example(){return this.input.example??this.input.examples?.[0]??this.default??this.values[0]??(this.nullable?null:void 0)}};var TYa=we(By());function Lcd(e){return Eqi.includes(e)}var ZQr=class extends Vv{format;minimum;maximum;default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.minimum=this.input.minimum,this.maximum=this.input.maximum,this.input.default!=null&&typeof this.input.default!="number"&&this.context.errors.warning({message:`Expected default value to be an integer. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(Lcd(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${Eqi.join(", ")}. Received ${this.input.format}`,path:this.accessPath}))}convert(){let t="integer";if(this.format!=null)switch(this.format){case"int64":t="long";break;case"int8":case"int16":case"int32":case"uint8":case"sf-integer":case void 0:t="integer";break;default:new TYa.UnreachableCaseError(this.format);break}return{type:"alias",value:{type:"primitive",value:{type:t,minimum:this.minimum,maximum:this.maximum,default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:0)}};var eNr=class extends Vv{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){this.displayName=this.input.title}convert(){return oAe({type:"alias",value:{type:"unknown",displayName:this.displayName}})}example(){return null}};var DYa=we(By());function Ucd(e){return vqi.includes(e)}var tNr=class extends Vv{format;minimum;maximum;default;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}parse(){this.minimum=this.input.minimum,this.maximum=this.input.maximum,this.input.default!=null&&typeof this.input.default!="number"&&this.context.errors.warning({message:`Expected default value to be a number. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(Ucd(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${vqi.join(", ")}. Received ${this.input.format}`,path:this.accessPath}))}convert(){let t="double";if(this.format!=null)switch(this.format){case"decimal":case"decimal128":case"double-int":case"double":case"float":case"sf-decimal":case void 0:t="double";break;default:new DYa.UnreachableCaseError(this.format);break}return{type:"alias",value:{type:"primitive",value:{type:t,minimum:this.minimum,maximum:this.maximum,default:this.default}}}}example(){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:0)}};var RYa=we(By());function zcd(e){return Iqi.includes(e)}var rNr=class extends Vv{format;regex;default;minLength;maxLength;enum;mimeType;nullable;constructor(t){super(t),this.nullable=t.nullable,this.safeParse()}mapToFdrType(t){switch(t){case"base64url":case"binary":case"byte":case"sf-binary":return"base64";case"date-time":return"datetime";case"int64":return"bigInteger";case"date":return"date";case"uuid":return"uuid";case"char":case"commonmark":case"decimal":case"decimal128":case"duration":case"email":case"hostname":case"html":case"http-date":case"idn-email":case"idn-hostname":case"ipv4":case"ipv6":case"iri-reference":case"iri":case"json-pointer":case"media-range":case"password":case"regex":case"relative-json-pointer":case"sf-boolean":case"sf-string":case"sf-token":case"time":case"uri-reference":case"uri-template":case"uri":case void 0:return"string";default:return new RYa.UnreachableCaseError(t),"string"}}parse(){this.regex=this.input.pattern,this.minLength=this.input.minLength,this.maxLength=this.input.maxLength,this.mimeType=this.input.contentMediaType,this.input.default!=null&&typeof this.input.default!="string"&&this.context.errors.warning({message:`Expected default value to be a string. Received ${this.input.default}`,path:this.accessPath}),this.default=this.input.default,this.input.format!=null&&(zcd(this.input.format)?this.format=this.input.format:this.context.errors.warning({message:`Expected format to be one of ${Iqi.join(", ")}. Received ${this.input.format}`,path:this.accessPath})),this.input.enum!=null&&(this.enum=new Q_e({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"enum",nullable:this.nullable}))}convert(){if(this.enum!=null)return this.enum.convert();let t="string";return this.format!=null&&(t=this.mapToFdrType(this.format)),{type:"alias",value:{type:"primitive",value:t==="base64"?{type:t,mimeType:this.mimeType,default:this.default}:{type:t,format:t==="string"?this.format:void 0,regex:this.regex,minLength:this.minLength,maxLength:this.maxLength,default:this.default}}}}example({override:t}){return this.input.example??this.input.examples?.[0]??this.default??(this.nullable?null:t??"string")}};var FYa=we(By());var nNr=class extends Vv{displayName;shape;constructor(t){super(t),this.safeParse()}parse(){(0,FYa.noop)()}convert(){return{type:"alias",value:{type:"unknown",displayName:void 0}}}example(){}};var aLe=class extends vj{description;availability;schemaId;maybeEnumConverterNode;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.description=t.description,this.availability=t.availability,this.safeParse()}parse(){this.schemaId=Vrt(this.input);let t=qv(this.input,this.context.document);t?.enum!=null&&j_e(t)&&(this.maybeEnumConverterNode=new Q_e({input:t,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",nullable:this.nullable})),this.schemaId==null&&this.context.errors.error({message:`Unprocessable reference: ${this.input.$ref}`,path:this.accessPath})}convert(){if(this.schemaId!=null)return{type:"alias",value:{type:"id",id:Ia.TypeId(this.schemaId),default:this.maybeEnumConverterNode?.default!=null?{type:"enum",value:this.maybeEnumConverterNode.default}:void 0}}}example(t){let r=qv(this.input,this.context.document);if(r!=null)return new Fg({input:r,context:this.context,accessPath:this.accessPath,pathId:this.schemaId??"",seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName}).example(t)}};var Fg=class e extends vj{typeShapeNode;description;name;examples;availability;nullable;schemaName;constructor(t){super(t),this.nullable=t.nullable,this.schemaName=t.schemaName,this.safeParse()}parse(){if(this.description=this.input.description,this.availability=new OU({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),j_e(this.input)&&SYa(this.input)&&(this.nullable=this.input.nullable!=null?this.input.nullable:this.nullable),Lp(this.input)){let t=Vrt(this.input);if(t==null){this.context.errors.error({message:"Reference object does not have a valid schema ID",path:this.accessPath});return}if(this.seenSchemas.has(t)){this.context.errors.warning({message:"Circular or deeply nested schema found, terminating",path:this.accessPath});return}this.seenSchemas.add(t),this.typeShapeNode=new aLe({input:this.input,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:this.seenSchemas,nullable:this.nullable,schemaName:this.schemaName,description:this.description,availability:this.availability})}else if(this.name=this.input.title,this.examples=this.input.example,this.input.const!=null)this.typeShapeNode=new HQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});else if(xYa(this.input))this.typeShapeNode=new KQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(j_e(this.input)&&(this.input.oneOf!=null||this.input.anyOf!=null))this.typeShapeNode=new YQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(xqi(this.input)&&this.input.allOf!=null)this.typeShapeNode=new qrt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName});else if(j_e(this.input)&&this.input.enum!=null)this.typeShapeNode=new Q_e({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable});else if(typeof this.input.type=="string"||Array.isArray(this.input.type)&&this.input.type.length===1){if(this.input.type=Array.isArray(this.input.type)?this.input.type[0]:this.input.type,!Array.isArray(this.input.type))switch(this.input.type){case"object":xqi(this.input)&&(this.typeShapeNode=new qrt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"array":F_e(this.input)&&(this.typeShapeNode=new $Qr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));break;case"boolean":CYa(this.input)&&(this.typeShapeNode=new XQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"integer":_Ya(this.input)&&(this.typeShapeNode=new ZQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"number":BYa(this.input)&&(this.typeShapeNode=new tNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"string":PYa(this.input)&&(this.typeShapeNode=new rNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId,nullable:this.nullable}));break;case"null":OYa(this.input)&&(this.typeShapeNode=new eNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}));break;case void 0:break;default:new jYa.UnreachableCaseError(this.input.type);break}}else if(Array.isArray(this.input.type)&&this.input.type.includes("null")&&this.input.type.length===2){let t=this.input.type.filter(r=>r!=="null")[0];t!=="array"&&(this.typeShapeNode=new e({input:{...this.input,type:t},context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,nullable:!0,schemaName:this.schemaName}))}else this.input.properties!=null&&(this.typeShapeNode=new qrt({input:{...this.input,type:"object"},context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:this.seenSchemas,schemaName:this.schemaName}));this.typeShapeNode==null&&(this.typeShapeNode=new nNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}),!Lp(this.input)&&(!F_e(this.input)&&this.input==null||F_e(this.input)&&this.input.items==null)&&this.context.errors.error({message:"Expected type declaration. Received: null",path:this.accessPath}))}convert(){let t=this.typeShapeNode?.convert();if(t==null)return;let r=Nm(t)?.map(n=>this.nullable?oAe(n):n).filter(Xo);return Array.isArray(t)&&t.length>1?r:r?.[0]}example(t){return this.availability?.availability!=="deprecated"?this.typeShapeNode?.example(t):void 0}};function N_e(e){if(e!=null)return zrt(e,Object.entries(e??{}).map(([t,r])=>r.required?t:void 0).filter(Xo))}var iX=class extends Vv{availability;required;schema;description;inputExample;constructor(t){super(t),this.safeParse(t.parameterName)}parse(t){this.description=this.input.description;let r;Lp(this.input)?r=this.input:this.input.schema!=null?(r=this.input.schema,this.required=this.input.required):(r={type:"string"},this.required=!1),this.availability=new OU({input:r,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=new Fg({input:r,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:t});let n=IYa(this.input,this.context.document);this.inputExample=n?.example??Object.values(n?.examples??{})[0]}convert(){return this.schema?.convert()}example(t){return this.inputExample??this.schema?.example(t)}};function QYa(e,t){return Lp(e)?WS(e,t,void 0):e}var Sqi=we(By());function iNr(e){let{uniqueId:t,type:r,contextTypes:n,description:i,availability:o}=e;n[Ia.TypeId(t)]={name:t,shape:r,description:i,availability:o}}var NYa=we(ypi(),1),Grt=class e{type;subtype;essence;parameters;mimeType;input;constructor(t,r,n,i,o,s){this.type=t,this.subtype=r,this.essence=n,this.parameters=i,this.mimeType=o,this.input=s}static APPLICATION_JSON="application/json";static APPLICATION_OCTET_STREAM="application/octet-stream";static MULTIPART_FORM_DATA="multipart/form-data";static parse(t){if(t==null)return null;let r=NYa.default.parse(t);return r==null?null:new e(r.type,r.subtype,r.essence,r.parameters,r,t)}toString(){return this.input}isText(){return this.type==="text"}isImage(){return this.type==="image"}isAudio(){return this.type==="audio"}isVideo(){return this.type==="video"}isFont(){return this.type==="font"}isMultipart(){return this.type==="multipart"}isApplication(){return this.type==="application"}isMessage(){return this.type==="message"}isModel(){return this.type==="model"}isCSS(){return this.isText()&&this.subtype==="css"}isCSV(){return this.isText()&&this.subtype==="csv"}isMarkdown(){return this.isText()&&this.subtype==="markdown"}isPlainText(){return this.isText()&&this.subtype==="plain"}isEventStream(){return this.isText()&&this.subtype==="event-stream"}isMultiPartFormData(){return this.isMultipart()&&this.subtype==="form-data"}isJSON(){return this.isApplication()&&this.subtype==="json"}containsJSON(){return this.isApplication()&&this.subtype.includes("json")}isURLEncoded(){return this.isApplication()&&this.subtype==="x-www-form-urlencoded"}isOctetStream(){return this.isApplication()&&this.subtype==="octet-stream"}isPDF(){return this.isApplication()&&this.subtype==="pdf"}isZip(){return this.isApplication()&&this.subtype==="zip"}isGzip(){return this.isApplication()&&this.subtype==="gzip"}isTar(){return this.isApplication()&&this.subtype==="tar"}isBrotli(){return this.isApplication()&&this.subtype==="br"}isDeflate(){return this.isApplication()&&this.subtype==="deflate"}isProtobuf(){return this.isApplication()&&this.subtype==="protobuf"}isAvif(){return this.isImage()&&this.subtype==="avif"}isWebP(){return this.isImage()&&this.subtype==="webp"}isSVG(){return this.isImage()&&this.subtype==="svg+xml"}isPNG(){return this.isImage()&&this.subtype==="png"}isJPEG(){return this.isImage()&&this.subtype==="jpeg"}isGIF(){return this.isImage()&&this.subtype==="gif"}isMPEG(){return this.isAudio()&&this.subtype==="mpeg"}isWAV(){return this.isAudio()&&this.subtype==="wav"}isHTML(){return this.mimeType.isHTML()}isXML(){return this.mimeType.isXML()}isJavaScript(){return this.mimeType.isJavaScript()}};function Vcd(e){return typeof e.securitySchemes=="object"&&e.securitySchemes!=null}var oNr=class extends Wo{typeSchemas;securitySchemes;constructor(t){super(t),this.safeParse()}parse(){this.input.schemas!=null&&(this.typeSchemas=Object.fromEntries(Object.entries(this.input.schemas).map(([t,r])=>[t,new Fg({input:r,context:this.context,accessPath:this.accessPath,pathId:t,seenSchemas:new Set,nullable:void 0,schemaName:t})]))),Vcd(this.input)&&this.input.securitySchemes!=null&&(this.securitySchemes=Object.fromEntries(Object.entries(this.input.securitySchemes??{}).map(([t,r],n)=>{let i;if(Lp(r)?i=wQr(r.$ref,this.context.document):i=r,i!=null)return[t,new Lrt({input:i,context:this.context,accessPath:this.accessPath,pathId:["securitySchemes",`${n}`]})]}).filter(Xo)))}convert(){return{auths:this.securitySchemes!=null?Object.fromEntries(Object.entries(this.securitySchemes??{}).map(([t,r])=>{let n=r.convert();if(n!=null)return[Ia.api.latest.AuthSchemeId(t),n]}).filter(Xo)):void 0,types:this.typeSchemas!=null?Object.fromEntries(Object.entries(this.typeSchemas).map(([t,r])=>{let n=r.name??t,i=Nm(r.convert());return i==null?[t,void 0]:[Ia.TypeId(t),{name:n,shape:i[0],description:r.description,availability:void 0}]}).filter(([t,r])=>Xo(r))):void 0}}};var sNr=class extends Fg{multipartType;contentType;constructor(t){super(t),this.safeParse()}parse(){super.parse();let t=qv(this.input,this.context.document);if(t==null){this.context.errors.error({message:`Expected multipart form data property definition. ${Lp(this.input)?`Received undefined reference: ${this.input.$ref}`:""}`,path:this.accessPath});return}if(t.type==="string"&&t.format==="binary")this.multipartType="file",this.contentType=t.contentMediaType;else if(t.type==="array"){let r=qv(t.items,this.context.document);r?.type==="string"&&r?.format==="binary"?(this.multipartType="files",this.contentType=r?.contentMediaType):(this.context.errors.warning({message:"Expected multipart form data files definition with array type with internal string type and binary format.",path:this.accessPath}),this.multipartType=void 0,this.contentType=void 0)}else this.multipartType="property",this.contentType=t.contentMediaType}};var aNr=class extends Wo{description;method;path;schema;isOptional;contentType;availability;requiredFields;fields;examples;constructor(t){super(t),this.method=t.method,this.path=t.path,this.safeParse(t)}parse({contentType:t}){if(this.input.schema!=null){let n=qv(this.input.schema,this.context.document);this.availability=new OU({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"availability"}),this.schema=Lp(this.input.schema)?new aLe({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:!1,schemaName:"Request Body",description:this.input.schema.description,availability:this.availability}):void 0;let i=Grt.parse(t);i?.containsJSON()?(this.contentType="json",this.schema=this.schema??new Fg({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"schema",seenSchemas:new Set,nullable:void 0,schemaName:"Request Body"})):i?.isOctetStream()?(this.contentType="bytes",this.isOptional=n?.required==null):i?.isMultiPartFormData()?(this.contentType="form-data",this.requiredFields=n?.required,this.fields=Object.fromEntries(Object.entries(n?.properties??{}).map(([o,s])=>{if(s!=null)return[o,new sNr({input:s,context:this.context,accessPath:this.accessPath,pathId:`schema.${o}`,seenSchemas:new Set,nullable:void 0,schemaName:o})]}).filter(Xo))):this.context.errors.warning({message:`Expected request body of reference or object with json, streaming or form-data content types. Received: ${t}`,path:this.accessPath})}let r=this.schema?.example({includeOptionals:!0,override:void 0});this.examples={...this.input.example!=null?{[a_]:{value:this.input.example}}:{},...this.input.examples},r!=null&&Object.keys(this.examples).length===0&&(this.examples={[a_]:{value:r}})}convertJsonLike(){let t=this.schema?.convert();return t==null?void 0:Nm(t)?.map(n=>{let i=n.type;switch(i){case"object":case"alias":return n;case"enum":case"undiscriminatedUnion":case"discriminatedUnion":{let o=G9([this.method,this.path,this.contentType,"request"].join("_"));return iNr({uniqueId:o,type:n,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:Ia.TypeId(o),default:n.type==="enum"&&n.default!=null?{type:"enum",value:n.default}:void 0}}}case void 0:return;default:new Sqi.UnreachableCaseError(i);return}}).filter(Xo)}convert(){if(this.schema instanceof aLe)return this.schema.convert();switch(this.contentType){case"json":return this.convertJsonLike();case"bytes":return{type:"bytes",isOptional:this.isOptional??!1,contentType:this.contentType};case"form-data":return Object.entries(this.fields??{}).map(([n,i])=>{switch(i.multipartType){case"file":return[{type:i.multipartType,key:Ia.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"files":return[{type:i.multipartType,key:Ia.PropertyKey(n),isOptional:this.requiredFields?.includes(n)==null,contentType:i.contentType,description:i.description,availability:i.availability?.convert()}];case"property":{let o=Nm(i.convert()),s=i.multipartType;return o?.map(a=>({type:s,key:Ia.PropertyKey(n),contentType:i.contentType,exploded:void 0,valueShape:a,description:i.description,availability:i.availability?.convert()}))}case void 0:return[];default:return new Sqi.UnreachableCaseError(i.multipartType),[]}}).filter(Xo).reduce((n,i)=>n.flatMap(o=>i.length>0?i.map(s=>[...o,s]):[[...o]]),[[]]).map(n=>({type:"formData",fields:n,availability:this.availability?.convert(),description:this.description}));case void 0:return this.convertJsonLike();default:return}}};var uNr=class extends Wo{description;requestBodiesByContentType;constructor(t){super(t),this.safeParse(t)}parse({method:t,path:r}){let n=QYa(this.input,this.context.document);if(n==null){this.context.errors.error({message:"Expected request body. Received: null",path:this.accessPath});return}Object.entries(n.content).forEach(([i,o])=>{this.requestBodiesByContentType??={},this.requestBodiesByContentType[i]=new aNr({input:o,context:this.context,accessPath:this.accessPath,pathId:"content",contentType:i,method:t,path:r})})}convert(){return Object.entries(this.requestBodiesByContentType??{}).flatMap(([t,r])=>Nm(r.convert())?.map(i=>({description:this.description,contentType:t,body:i}))).filter(Xo)}convertToWebhookPayload(){return Object.values(this.requestBodiesByContentType??{}).flatMap(t=>Nm(t.convert())?.map(n=>{if(!(n.type!=="alias"&&n.type!=="object"))return{description:this.description,shape:n}})).filter(Xo)}webhookExample(){return{payload:this.requestBodiesByContentType?.["application/json"]?.schema?.example({includeOptionals:!0,override:void 0})}}};var kYa={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",306:"Switch Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",510:"Not Extended",511:"Network Authentication Required"};function MYa(e,t){if(Lp(e)){let r=WS(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var cNr=we(By());var LYa="application/json";var UYa="application/octet-stream";function zYa(e,t){return e===t||t===a_||e===a_}var DNt=class extends Wo{streamingFormat;path;method;statusCode;requests;shapes;schema;contentType;unsupportedContentType;contentSubtype;examples;empty;constructor(t,r,n,i,o,s,a,u){super(t),this.streamingFormat=n,this.path=i,this.method=o,this.statusCode=s,this.requests=a,this.shapes=u,this.safeParse(r)}matchRequestResponseExamplesByName(t,r,n){for(let i of t)for(let[o,s]of Object.entries(i?.examples??{}))for(let[a,u]of Object.entries(r))for(let c of u)zYa(a,o)&&(n.add(a),this.examples?.push(new nX({input:{requestExample:s,responseExample:c},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,D_e(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}matchExamplesByIndex(t,r){let n=0;for(let i of t){let o=0;for(let[s,a]of r){if(o===n){let[u,c,l]=i??[void 0,void 0,void 0];this.examples?.push(...a.map(p=>new nX({input:{requestExample:l,responseExample:p},context:this.context,accessPath:this.accessPath,pathId:c!=null&&c!==""?["examples",c]:"examples"},this.path,this.statusCode,D_e(c,s),{requestBody:u,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}o++}n++}if(t.length>r.length)for(let i of t.slice(r.length)){let[o,s]=r[r.length-1]??[void 0,void 0],[a,u,c]=i??[void 0,void 0,void 0];this.examples?.push(...(s??[void 0]).map(l=>new nX({input:{requestExample:c,responseExample:l},context:this.context,accessPath:this.accessPath,pathId:u!=null&&u!==""?["examples",u]:"examples"},this.path,this.statusCode,D_e(u,o),{requestBody:a,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}if(r.length>t.length){let[i,o,s]=t[t.length-1]??[void 0,void 0,void 0];for(let[a,u]of r.slice(t.length))this.examples?.push(...u.map(c=>new nX({input:{requestExample:s,responseExample:c},context:this.context,accessPath:this.accessPath,pathId:o!=null&&o!==""?["examples",o]:"examples"},this.path,this.statusCode,D_e(o,a),{requestBody:i,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders})))}}pushResponseExample(t,r,n,i){let o=t[a_];if(o!=null)for(let s of o)this.examples?.push(new nX({input:{requestExample:i,responseExample:s},context:this.context,accessPath:this.accessPath,pathId:n!=null&&n!==""?["examples",n]:"examples"},this.path,this.statusCode,D_e(n,void 0),{requestBody:r,responseBody:this,pathParameters:this.shapes.pathParameters,queryParameters:this.shapes.queryParameters,requestHeaders:this.shapes.requestHeaders}))}addGlobalFallbackExample(t,r){if(t==null||t.length===0)this.pushResponseExample(r,void 0,void 0,void 0);else for(let n of t)if(Object.keys(n.examples??{}).length===0)this.pushResponseExample(r,n,void 0,void 0);else for(let[i,o]of Object.entries(n.examples??{}))this.pushResponseExample(r,n,i,o)}parse(t){if(t==="empty")this.empty=!0;else{let a=Grt.parse(t);if(a?.isJSON()||a?.isEventStream())this.contentType=LYa,this.input.schema==null?(this.streamingFormat==null||this.streamingFormat==="json")&&this.context.errors.error({message:"Expected schema for JSON response body. Received null",path:this.accessPath}):this.schema=new Fg({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:"type",seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"});else if(a?.isOctetStream())this.contentType=UYa,this.contentSubtype=qv(this.input.schema,this.context.document)?.contentMediaType;else if(this.unsupportedContentType=t,this.input.schema==null){this.context.errors.error({message:"Expected schema for plain text response body. Received null",path:this.accessPath});return}else this.schema=new Fg({input:this.input.schema,context:this.context,accessPath:this.accessPath,pathId:this.pathId,seenSchemas:new Set,nullable:void 0,schemaName:"Response Body"})}let r={};this.input.examples!=null&&(r=jQr(this.input.examples,a=>[a])),this.input.example!=null&&Object.keys(r).length===0&&(r[a_]??=[],r[a_]=[{value:this.input.example}]);let n=qv(this.input.schema,this.context.document);if(n!=null&&(n.examples!=null&&Object.keys(r).length===0&&(r=jQr(n.examples,a=>[a])),n.example!=null&&Object.keys(r).length===0&&(r[a_]??=[],r[a_]?.push({value:n.example}))),Object.keys(r).length===0){let a=this.schema?.example({includeOptionals:!0,override:void 0});r[a_]??=[],r[a_]?.push(a!=null?{value:a}:void 0)}this.examples??=[];let i=new Set;this.matchRequestResponseExamplesByName(this.requests,r,i);let o=[];for(let a of this.requests)o.push(...Object.entries(a.examples??{}).filter(([u])=>!i.has(u)&&u!==a_).map(([u,c])=>[a,u,c]));let s=Object.entries(r).filter(([a,u])=>!i.has(a)&&Xo(u)&&a!==a_);Object.keys(r).every(a=>a===a_)||this.matchExamplesByIndex(o,s),!i.has(a_)&&this.examples.length===0&&this.addGlobalFallbackExample(this.requests,r),this.examples.length===0&&(this.examples=void 0)}convertStreamingFormat(){switch(this.streamingFormat){case"json":return Nm(this.schema?.convert())?.map(r=>({type:"stream",terminator:"[DATA]",shape:r}));case"sse":return{type:"streamingText"};case void 0:return;default:new cNr.UnreachableCaseError(this.streamingFormat);return}}convertJsonLike(){return Nm(this.schema?.convert())?.map(r=>{let n=r.type;switch(n){case"alias":return r;case"discriminatedUnion":case"undiscriminatedUnion":case"enum":{let i=G9([this.method,this.path,this.statusCode,"response"].join("_"));return iNr({uniqueId:i,type:r,contextTypes:this.context.generatedTypes,description:this.schema?.description,availability:this.schema?.availability?.convert()}),{type:"alias",value:{type:"id",id:Ia.TypeId(i),default:r.type==="enum"&&r.default!=null?{type:"enum",value:r.default}:void 0}}}case"object":return r;default:new cNr.UnreachableCaseError(n);return}}).filter(Xo)}convert(){if(this.empty)return{type:"empty"};if(this.contentType!=null)switch(this.contentType){case"application/json":return this.streamingFormat==null?this.convertJsonLike():this.convertStreamingFormat();case"application/octet-stream":return{type:"fileDownload",contentType:this.contentSubtype};case"text/event-stream":return this.convertStreamingFormat();case void 0:return;default:new cNr.UnreachableCaseError(this.contentType);return}else return this.unsupportedContentType!=null?this.convertJsonLike():void 0}};var RNt=class extends Wo{path;method;statusCode;requests;shapes;headers;responses;description;constructor(t,r,n,i,o,s){super(t),this.path=r,this.method=n,this.statusCode=i,this.requests=o,this.shapes=s,this.safeParse()}parse(t){this.description=this.input.description;let r=MYa(this.input,this.context.document);if(r==null){this.context.errors.error({message:Lp(this.input)?`Undefined reference: ${this.input.$ref}`:"Expected response, received null",path:this.accessPath});return}Object.entries(r.headers??{}).forEach(([n,i])=>{this.headers??={},this.headers[n]=new iX({input:i,context:this.context,accessPath:this.accessPath,pathId:"headers",parameterName:n})}),r.content==null?(this.responses??=[],this.responses.push(new DNt({input:{},context:this.context,accessPath:this.accessPath,pathId:["content"]},"empty",t,this.path,this.method,this.statusCode,this.requests,this.shapes))):Object.entries(r.content??{}).forEach(([n,i])=>{this.responses??=[],this.responses.push(new DNt({input:i,context:this.context,accessPath:this.accessPath,pathId:["content",n]},n,t,this.path,this.method,this.statusCode,this.requests,this.shapes))})}convert(){return this.responses?.flatMap(t=>t.convert()).filter(Xo)}};var lNr=class extends Wo{path;method;requests;shapes;responsesByStatusCode;errorsByStatusCode;constructor(t,r,n,i,o){super(t),this.path=r,this.method=n,this.requests=i,this.shapes=o,this.safeParse()}parse(){let t=this.input.default;Object.entries(this.input).forEach(([r,n])=>{r!=="default"&&(parseInt(r)>=400?(this.errorsByStatusCode??={},this.errorsByStatusCode[r]=new RNt({input:{...t,...n},context:this.context,accessPath:this.accessPath,pathId:"errors"},this.path,this.method,parseInt(r),[],this.shapes)):(this.responsesByStatusCode??={},this.responsesByStatusCode[r]=new RNt({input:n,context:this.context,accessPath:this.accessPath,pathId:"responses"},this.path,this.method,parseInt(r),this.requests,this.shapes)))})}convertResponseObjectToHttpResponses(){return Object.entries(this.responsesByStatusCode??{}).flatMap(([t,r])=>{let n=r.convert();if(n!=null)return JQr(N_e(r.headers)).flatMap(i=>n?.map(o=>({headers:i,response:{statusCode:parseInt(t),body:o,description:r.description},examples:(r.responses??[]).flatMap(s=>(s.examples??[]).map(a=>a.convert()).filter(Xo))})))}).filter(Xo)}convertResponseObjectToErrors(){return Object.entries(this.errorsByStatusCode??{}).flatMap(([t,r])=>r.responses?.flatMap(n=>{let i=n.schema,o=Nm(i?.convert());if(i!=null)return o?.map(s=>({statusCode:parseInt(t),shape:s,description:r.description??i.description,availability:i.availability?.convert(),name:i.name??kYa[parseInt(t)]??"UNKNOWN ERROR",examples:n.examples?.map(a=>{let u=a.convert();if(u!=null&&u.responseBody?.type==="json")return{name:u.name,description:u.description,responseBody:u.responseBody}}).filter(Xo)})).filter(Xo)})).filter(Xo)}convert(){return{responses:this.convertResponseObjectToHttpResponses(),errors:this.convertResponseObjectToErrors()}}};var k_e=class extends Wo{servers;globalAuth;path;method;basePath;isWebhook;endpointIds;description;displayName;operationId;pathParameters;queryParameters;requestHeaders;requests;responses;availability;auth;namespaces;xFernExamplesNode;redocExamplesNode;emptyResponseExamples;constructor(t){super(t),this.servers=t.servers,this.globalAuth=t.globalAuth,this.path=t.path,this.method=t.method,this.basePath=t.basePath,this.isWebhook=t.isWebhook,this.safeParse()}pushEmptyResponseExample(t,r,n){this.emptyResponseExamples??=[],this.emptyResponseExamples.push(new nX({input:{requestExample:t,responseExample:void 0},context:this.context,accessPath:this.accessPath,pathId:"examples"},this.path,200,D_e(n,void 0),{requestBody:r,pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}))}parse(){if(this.isWebhook&&this.method!=="POST"&&this.method!=="GET"){this.context.errors.error({message:`Webhook method must be POST or GET. Received: ${this.method}`,path:this.accessPath});return}this.description=this.input.description,this.displayName=this.input.summary,this.operationId=this.input.operationId,this.availability=new OU({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-availability"}),this.servers=T_e(this.servers,this.input.servers,this.context,this.accessPath),this.isWebhook=new GQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId}).isWebhook||this.isWebhook,this.input.parameters?.map((n,i)=>{if(Lp(n)){let o=LQr(n,this.context.document);if(o!=null)n=o;else{this.context.errors.warning({message:`Expected parameter reference to resolve to an object. Received undefined reference: ${n.$ref}`,path:[...this.accessPath,`parameters[${i}]`]});return}}n.in==="path"?n.schema!=null&&(this.pathParameters??={},this.pathParameters[n.name]=new iX({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="query"?n.schema!=null&&(this.queryParameters??={},this.queryParameters[n.name]=new iX({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name})):n.in==="header"&&n.schema!=null&&(this.requestHeaders??={},this.requestHeaders[n.name]=new iX({input:n,context:this.context,accessPath:this.accessPath,pathId:["parameters",`${i}`],parameterName:n.name}))});for(let n of this.extractPathParameterIds()??[])this.pathParameters?.[n]==null&&this.context.errors.warning({message:`Path parameter not defined: ${n}`,path:[...this.accessPath,"parameters"]});if(this.redocExamplesNode=new WQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-code-samples"}),this.requests=this.input.requestBody!=null?new uNr({input:this.input.requestBody,context:this.context,accessPath:this.accessPath,pathId:"requestBody",method:this.method,path:this.path}):void 0,this.responses=this.input.responses!=null?new lNr({input:this.input.responses,context:this.context,accessPath:this.accessPath,pathId:"responses"},this.path,this.method,Object.values(this.requests?.requestBodiesByContentType??{}),{pathParameters:this.pathParameters,queryParameters:this.queryParameters,requestHeaders:this.requestHeaders}):void 0,this.responses==null){let n=this.requests?.requestBodiesByContentType;n==null||Object.keys(n).length===0?this.pushEmptyResponseExample(void 0,void 0,void 0):Object.values(n).forEach(i=>{if(Object.keys(i.examples??{}).length===0){let o=i.schema?.example({includeOptionals:!1,override:void 0});o!=null&&this.pushEmptyResponseExample({value:o},i,void 0)}else Object.entries(i.examples??{}).forEach(([o,s])=>{this.pushEmptyResponseExample(s,i,o)})})}let t=200;this.responses?.responsesByStatusCode!=null&&(t=Number(Object.keys(this.responses.responsesByStatusCode)?.filter(n=>Number(n)>=200&&Number(n)<300)[0])),this.globalAuth!=null&&(this.auth=this.globalAuth),this.input.security!=null&&(this.auth=new Urt({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"})),this.namespaces=[new TNt({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-group-name"})],this.namespaces?.every(n=>n.groupName==null)&&this.input.tags!=null&&(this.namespaces=this.input.tags.slice(0,1).map((n,i)=>new TNt({input:{[vQr]:n},context:this.context,accessPath:this.accessPath,pathId:["tags",`${i}`]})));let r=new qQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-sdk-method-name"});this.endpointIds=this.namespaces.map(n=>QQr({namespace:Nm(n?.groupName),path:this.path,method:this.method,sdkMethodName:r.sdkMethodName,operationId:this.input.operationId,displayName:this.displayName,isWebhook:this.isWebhook})).filter(Xo),this.xFernExamplesNode=new VQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-examples"},this.path,t,this.requests?.requestBodiesByContentType,this.responses?.responsesByStatusCode?.[t]?.responses)}extractPathParameterIds(){if(this.path!=null)return this.path.split("/").map(t=>{if(t.startsWith("{")&&t.endsWith("}"))return t.slice(1,-1).trim()}).filter(Xo)}convertPathToPathParts(){if(this.path===void 0)return;let t=this.path.startsWith("/")?this.path.slice(1):this.path,r=this.basePath?.convert();return(r?[r,...t.split("/")]:t.split("/")).reduce((i,o)=>(i.push({type:"literal",value:"/"}),o.startsWith("{")&&o.endsWith("}")?i.push({type:"pathParameter",value:Ia.PropertyKey(o.slice(1,-1).trim())}):i.push({type:"literal",value:o}),i),[])}convert(){if(this.path==null||this.endpointIds==null)return;let{responses:t,errors:r}=this.responses?.convert()??{responses:void 0,errors:void 0},n=this.emptyResponseExamples?.map(l=>l.convert()).filter(Xo),i=mYa(this.xFernExamplesNode?.convert(),[...n??[],...t?.flatMap(l=>l.examples)??[]])?.map(l=>({...l,snippets:dYa(l.snippets,this.redocExamplesNode?.convert())}));if(this.isWebhook)return this.endpointIds.map((l,p)=>{if(!(this.method!=="POST"&&this.method!=="GET"))return{id:Ia.WebhookId(l),description:this.description,availability:this.availability?.convert(),displayName:this.displayName,operationId:this.operationId,namespace:this.namespaces?.[p]?.convert(),method:this.method,path:this.convertPathToPathParts()?.map(d=>d.value.toString())??[],queryParameters:N_e(this.queryParameters)?.flat(),headers:N_e(this.requestHeaders)?.flat(),payloads:this.requests?.convertToWebhookPayload(),examples:[this.requests?.webhookExample()].filter(Xo)}}).filter(Xo);let o=this.servers?.map(l=>l.convert()).filter(Xo),s=this.convertPathToPathParts();if(s==null)return;let a,u=this.auth?.convert();u!=null&&(a=Object.keys(u));let c=t?.flatMap(l=>l.headers).filter(Xo);return this.endpointIds.map((l,p)=>({id:Ia.EndpointId(l),description:this.description,availability:this.availability?.convert(),namespace:this.namespaces?.[p]?.convert()?.map(d=>Ia.api.v1.SubpackageId(d)),displayName:this.displayName,operationId:this.operationId,method:this.method,path:s,auth:a?.map(d=>Ia.api.latest.AuthSchemeId(d)),defaultEnvironment:o?.[0]?.id,environments:o,pathParameters:N_e(this.pathParameters)?.flat(),queryParameters:N_e(this.queryParameters)?.flat(),requestHeaders:N_e(this.requestHeaders)?.flat(),responseHeaders:c!=null&&c.length>0?c:void 0,requests:this.requests?.convert(),responses:t?.map(d=>d.response),errors:r,examples:i,snippetTemplates:void 0,protocol:{type:"rest"}}))}};var Wrt=class extends Wo{description;get;post;put;patch;delete;path;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n,isWebhook:i}){this.description=this.input.description;let o=T_e(t,this.input.servers,this.context,this.accessPath),s=Array.isArray(this.pathId)?this.pathId.join("/"):this.pathId;this.input.get!=null&&(this.get=new k_e({input:this.input.get,context:this.context,accessPath:this.accessPath,pathId:"get",servers:o,globalAuth:r,path:s,method:"GET",basePath:n,isWebhook:i})),this.input.post!=null&&(this.post=new k_e({input:this.input.post,context:this.context,accessPath:this.accessPath,pathId:"post",servers:o,globalAuth:r,path:s,method:"POST",basePath:n,isWebhook:i})),this.input.put!=null&&(this.put=new k_e({input:this.input.put,context:this.context,accessPath:this.accessPath,pathId:"put",servers:o,globalAuth:r,path:s,method:"PUT",basePath:n,isWebhook:!1})),this.input.patch!=null&&(this.patch=new k_e({input:this.input.patch,context:this.context,accessPath:this.accessPath,pathId:"patch",servers:o,globalAuth:r,path:s,method:"PATCH",basePath:n,isWebhook:!1})),this.input.delete!=null&&(this.delete=new k_e({input:this.input.delete,context:this.context,accessPath:this.accessPath,pathId:"delete",servers:o,globalAuth:r,path:s,method:"DELETE",basePath:n,isWebhook:!1}))}convert(){return[...this.get?.convert()??[],...this.post?.convert()??[],...this.put?.convert()??[],...this.patch?.convert()??[],...this.delete?.convert()??[]].filter(Xo)}};function pNr(e){return"payloads"in e}var fNr=class extends Wo{paths;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.paths=Object.entries(this.input).map(([i,o])=>{if(o!=null)return new Wrt({input:o,context:this.context,accessPath:this.accessPath,pathId:i,servers:T_e(t,o.servers,this.context,this.accessPath),globalAuth:r,basePath:n,isWebhook:void 0})}).filter(Xo)}convert(){if(this.paths==null)return;let t={},r={};return this.paths.forEach(n=>{let i=n.convert();i?.forEach(o=>{pNr(o)?r[Ia.WebhookId(o.id)]=o:t[Ia.EndpointId(o.id)]=o})}),{endpoints:t,webhookEndpoints:r}}};var dNr=class extends Wo{globalHeaders;requiredProperties;constructor(t){super(t),this.safeParse()}parse(){let t=this.input[DJa]?.map(r=>{let{header:n,...i}=r;return(i.optional!=null&&!i.optional||LQr(i,this.context.document)?.required)&&(this.requiredProperties??=[],this.requiredProperties?.push(n)),[n,new iX({input:i,context:this.context,accessPath:this.accessPath,pathId:this.pathId,parameterName:n})]});t!=null&&(this.globalHeaders=Object.fromEntries(t))}convert(){return zrt(this.globalHeaders,this.requiredProperties)?.flat()}};function VYa(e,t){if(Lp(e)){let r=WS(e,t,void 0);return r==null?void 0:{...r,...e}}return e}var mNr=class extends Wo{webhooks;constructor(t){super(t),this.safeParse(t)}parse({servers:t,globalAuth:r,basePath:n}){this.webhooks=Object.entries(this.input??{}).map(([i,o])=>{let s=VYa(o,this.context.document);if(s!=null)return new Wrt({input:s,context:this.context,accessPath:this.accessPath,pathId:i,servers:t,globalAuth:r,basePath:n,isWebhook:!0})}).filter(Xo)}convert(){return this.webhooks?.reduce((t,r)=>(r.convert()?.forEach(n=>{pNr(n)&&(t[Ia.WebhookId(n.id)]=n)}),t),{})}};var hNr=class extends Wo{paths;webhooks;components;auth;globalHeaders;constructor(t){super(t),this.safeParse()}parse(){let t=T_e(void 0,this.input.servers,this.context,this.accessPath);this.input.security!=null&&(this.auth=new Urt({input:this.input.security,context:this.context,accessPath:this.accessPath,pathId:"security"}));let r=new MQr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:this.pathId});this.input.paths==null&&this.input.webhooks==null&&this.context.errors.warning({message:"Expected 'paths' or 'webhooks' property to be specified",path:this.accessPath}),this.input.paths!=null&&(this.paths=new fNr({input:this.input.paths,context:this.context,accessPath:this.accessPath,pathId:"paths",basePath:r,servers:t,globalAuth:this.auth})),this.input.webhooks!=null&&(this.webhooks=new mNr({input:this.input.webhooks,context:this.context,accessPath:this.accessPath,pathId:"webhooks",basePath:r,servers:t,globalAuth:this.auth})),this.input.components!=null&&(this.components=new oNr({input:this.input.components,context:this.context,accessPath:this.accessPath,pathId:"components"})),this.globalHeaders=new dNr({input:this.input,context:this.context,accessPath:this.accessPath,pathId:"x-fern-global-headers"})}convert(){let t=vC(),{webhookEndpoints:r,endpoints:n}=this.paths?.convert()??{},i={...this.webhooks?.convert()??{},...r??{}},o=OJa({endpoints:n,webhookEndpoints:i}),{types:s,auths:a}=this.components?.convert()??{};return{id:Ia.ApiDefinitionId(t),endpoints:n??{},websockets:{},webhooks:i,types:{...s,...this.context.generatedTypes},subpackages:o,auths:{...a,...this.auth?.convert()??{}},globalHeaders:this.globalHeaders?.convert(),snippetsConfiguration:void 0}}};xi();async function Oqi(e,t){if(e instanceof OO){t.logger.info("Skipping, API is specified as a Fern Definition.");return}else if(!(e instanceof Yp))return;let r=new B9(e.absoluteFilePath),n=await fU({context:t,specs:e.specs}),i=await r.loadDocuments({context:t,specs:n,loadAiExamples:!0}),o;for(let s of i){if(s.type!=="openapi")continue;let a={document:s.value,logger:t.logger,errors:new yQr,generatedTypes:{}},u=new hNr({input:s.value,context:a,accessPath:[],pathId:e.workspaceName??"openapi parser"});o=sWe(o,u.convert())}return o}dg();Wt();var tlu=we(Tqi(),1),rlu=we(t2r(),1),kkr=require("fs/promises"),nlu=we(require("http"),1),ilu=we(require("path"),1);var Uru=require("events"),s2r=we(require("fs"),1),ALe=we(require("path"),1);var wru=we(require("os"),1),Cru=300,G_e=20,i2t=1e7,_ru=wru.default.platform();var iAd=_ru==="darwin",J9i=_ru==="win32",W_e=iAd||J9i,xru=3e3,Sru=2e4,Y9i=1250;var uX;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(uX||(uX={}));var gLe;(function(e){e.CHANGE="change",e.RENAME="rename"})(gLe||(gLe={}));var o2t;(function(e){e.CHANGE="change",e.ERROR="error"})(o2t||(o2t={}));var cu;(function(e){e.ADD="add",e.ADD_DIR="addDir",e.CHANGE="change",e.RENAME="rename",e.RENAME_DIR="renameDir",e.UNLINK="unlink",e.UNLINK_DIR="unlinkDir"})(cu||(cu={}));var TT;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(TT||(TT={}));var oAd=(e,t=1,r)=>{t=Math.max(1,t);let n=r?.leading??!1,i=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),s,a,u=0,c=0,l=()=>{let b=Date.now(),I=b-u,w=b-c,_=I>=t||w>=o;return[b,_]},p=b=>{if(c=b,!s)return;let I=s;s=void 0,e.apply(void 0,I)},d=()=>{v(0)},f=()=>{a&&(d(),p(Date.now()))},m=b=>{if(c=b,n)return p(b)},h=b=>{if(i&&s)return p(b);s=void 0},A=()=>{a=void 0;let[b,I]=l();return I?h(b):y(b)},y=b=>{let I=b-u,w=b-c,_=t-I,C=o-w,x=Math.min(_,C);return v(x)},v=b=>{a&&clearTimeout(a),!(b<=0)&&(a=setTimeout(A,b))},E=(...b)=>{let[I,w]=l(),_=!!a;if(s=b,u=I,(w||!a)&&v(t),w)return _?p(I):m(I)};return E.cancel=d,E.flush=f,E},r2r=oAd;var tGi=we(require("fs"),1),i2r=we(require("path"),1);var jf=we(require("fs"),1),$S=require("util");var aAe=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},cX=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var X9i=we(require("process"),1),Oru=X9i.default.getuid?!X9i.default.getuid():!1,Bru=1e4,Cj=()=>{};var s2t={isChangeErrorOk:e=>{if(!s2t.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!Oru&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!s2t.isNodeError(e))return!1;let{code:t}=e;return t==="EMFILE"||t==="ENFILE"||t==="EAGAIN"||t==="EBUSY"||t==="EACCESS"||t==="EACCES"||t==="EACCS"||t==="EPERM"},onChangeError:e=>{if(!s2t.isNodeError(e))throw e;if(!s2t.isChangeErrorOk(e))throw e}},Gv=s2t;var Z9i=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=Bru,this.queueActive=new Set,this.queueWaiting=new Set,this.init=()=>{this.intervalId||(this.intervalId=setInterval(this.tick,this.interval))},this.reset=()=>{this.intervalId&&(clearInterval(this.intervalId),delete this.intervalId)},this.add=t=>{this.queueWaiting.add(t),this.queueActive.size<this.limit/2?this.tick():this.init()},this.remove=t=>{this.queueWaiting.delete(t),this.queueActive.delete(t)},this.schedule=()=>new Promise(t=>{let r=()=>this.remove(n),n=()=>t(r);this.add(n)}),this.tick=()=>{if(!(this.queueActive.size>=this.limit)){if(!this.queueWaiting.size)return this.reset();for(let t of this.queueWaiting){if(this.queueActive.size>=this.limit)break;this.queueWaiting.delete(t),this.queueActive.add(t),t()}}}}},Pru=new Z9i;var uAe=(e,t)=>function(n){return function i(...o){return Pru.schedule().then(s=>{let a=c=>(s(),c),u=c=>{if(s(),Date.now()>=n)throw c;if(t(c)){let l=Math.round(100*Math.random());return new Promise(d=>setTimeout(d,l)).then(()=>i.apply(void 0,o))}throw c};return e.apply(void 0,o).then(a,u)})}},cAe=(e,t)=>function(n){return function i(...o){try{return e.apply(void 0,o)}catch(s){if(Date.now()>n)throw s;if(t(s))return i.apply(void 0,o);throw s}}};var sAd={attempt:{chmod:aAe((0,$S.promisify)(jf.default.chmod),Gv.onChangeError),chown:aAe((0,$S.promisify)(jf.default.chown),Gv.onChangeError),close:aAe((0,$S.promisify)(jf.default.close),Cj),fsync:aAe((0,$S.promisify)(jf.default.fsync),Cj),mkdir:aAe((0,$S.promisify)(jf.default.mkdir),Cj),realpath:aAe((0,$S.promisify)(jf.default.realpath),Cj),stat:aAe((0,$S.promisify)(jf.default.stat),Cj),unlink:aAe((0,$S.promisify)(jf.default.unlink),Cj),chmodSync:cX(jf.default.chmodSync,Gv.onChangeError),chownSync:cX(jf.default.chownSync,Gv.onChangeError),closeSync:cX(jf.default.closeSync,Cj),existsSync:cX(jf.default.existsSync,Cj),fsyncSync:cX(jf.default.fsync,Cj),mkdirSync:cX(jf.default.mkdirSync,Cj),realpathSync:cX(jf.default.realpathSync,Cj),statSync:cX(jf.default.statSync,Cj),unlinkSync:cX(jf.default.unlinkSync,Cj)},retry:{close:uAe((0,$S.promisify)(jf.default.close),Gv.isRetriableError),fsync:uAe((0,$S.promisify)(jf.default.fsync),Gv.isRetriableError),open:uAe((0,$S.promisify)(jf.default.open),Gv.isRetriableError),readFile:uAe((0,$S.promisify)(jf.default.readFile),Gv.isRetriableError),rename:uAe((0,$S.promisify)(jf.default.rename),Gv.isRetriableError),stat:uAe((0,$S.promisify)(jf.default.stat),Gv.isRetriableError),write:uAe((0,$S.promisify)(jf.default.write),Gv.isRetriableError),writeFile:uAe((0,$S.promisify)(jf.default.writeFile),Gv.isRetriableError),closeSync:cAe(jf.default.closeSync,Gv.isRetriableError),fsyncSync:cAe(jf.default.fsyncSync,Gv.isRetriableError),openSync:cAe(jf.default.openSync,Gv.isRetriableError),readFileSync:cAe(jf.default.readFileSync,Gv.isRetriableError),renameSync:cAe(jf.default.renameSync,Gv.isRetriableError),statSync:cAe(jf.default.statSync,Gv.isRetriableError),writeSync:cAe(jf.default.writeSync,Gv.isRetriableError),writeFileSync:cAe(jf.default.writeFileSync,Gv.isRetriableError)}},Tru=sAd;var n2r=we(require("fs"),1),a2t=we(require("path"),1);var eGi=()=>{};var aAd=()=>{let e=eGi,t=eGi,r=!1,n=!1;return{promise:new Promise((u,c)=>{e=l=>(r=!0,u(l)),t=l=>(n=!0,c(l))}),resolve:e,reject:t,isPending:()=>!r&&!n,isResolved:()=>r,isRejected:()=>n}},Dru=aAd;var uAd=()=>{let{promise:e,resolve:t,isPending:r}=Dru(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},Rru=uAd;var Fru={then:e=>{e()}};var jru=e=>Array.isArray(e)?e:[e],Qru=e=>typeof e=="function";var cAd=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=jru(o).map(H=>Qru(H)?H:J=>H.test(J)),a=H=>s.some(J=>J(H)),u=t?.signal??{aborted:!1},c=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,h={},A=[],y=new Set,v={},E={},b=new Set,I={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},w={directories:l,directoriesNames:p,directoriesNamesToPaths:d,files:f,filesNames:m,filesNamesToPaths:h,symlinks:A,symlinksNames:y,symlinksNamesToPaths:v,map:E},{promise:_,increment:C,decrement:x}=Rru(),R=0,z=(H,J,Ae,ge)=>{b.has(J)||R>=i||(R+=1,H.directories.push(J),H.directoriesNames.add(Ae),l.push(J),p.add(Ae),d.propertyIsEnumerable(Ae)||(d[Ae]=[]),d[Ae].push(J),b.add(J),!(ge>=n)&&(R>=i||K(J,ge+1)))},U=(H,J,Ae)=>{b.has(J)||R>=i||(R+=1,H.files.push(J),H.filesNames.add(Ae),f.push(J),m.add(Ae),h.propertyIsEnumerable(Ae)||(h[Ae]=[]),h[Ae].push(J),b.add(J))},q=(H,J,Ae,ge)=>{b.has(J)||R>=i||(R+=1,H.symlinks.push(J),H.symlinksNames.add(Ae),A.push(J),y.add(Ae),v.propertyIsEnumerable(Ae)||(v[Ae]=[]),v[Ae].push(J),b.add(J),r&&(ge>=n||R>=i||Ee(J,ge+1)))},te=(H,J,Ae,ge,Ce)=>{u.aborted||a(J)||(ge.isDirectory()?z(H,J,Ae,Ce):ge.isFile()?U(H,J,Ae):ge.isSymbolicLink()&&q(H,J,Ae,Ce))},ie=(H,J,Ae,ge)=>{if(u.aborted)return;let Ce=J===a2t.default.sep?"":a2t.default.sep,Se=Ae.name,pe=`${J}${Ce}${Se}`;a(pe)||(Ae.isDirectory()?z(H,pe,Se,ge):Ae.isFile()?U(H,pe,Se):Ae.isSymbolicLink()&&q(H,pe,Se,ge))},V=(H,J,Ae,ge)=>{for(let Ce=0,Se=Ae.length;Ce<Se;Ce++)ie(H,J,Ae[Ce],ge)},K=(H,J)=>{u.aborted||J>n||R>=i||(C(),n2r.default.readdir(H,{withFileTypes:!0},(Ae,ge)=>{if(Ae||u.aborted||!ge.length)return x();(c(ge)||Fru).then(()=>{let Se=E[H]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};V(Se,H,ge,J),x()})}))},Ee=(H,J)=>{C(),n2r.default.realpath(H,(Ae,ge)=>{if(Ae||u.aborted)return x();n2r.default.stat(ge,(Ce,Se)=>{if(Ce||u.aborted)return x();let pe=a2t.default.basename(ge),le=E[H]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};te(le,ge,pe,Se,J),x()})})};return(async(H,J=1)=>(H=a2t.default.normalize(H),b.add(H),K(H,J),await _,u.aborted?I:w))(e)},Nru=cAd;var lX={lang:{debounce:r2r,attempt:e=>{try{return e()}catch(t){return lX.lang.castError(t)}},castArray:e=>lX.lang.isArray(e)?e:[e],castError:e=>lX.lang.isError(e)?e:lX.lang.isString(e)?new Error(e):new Error("Unknown error"),defer:e=>setTimeout(e,0),isArray:e=>Array.isArray(e),isError:e=>e instanceof Error,isFunction:e=>typeof e=="function",isNaN:e=>Number.isNaN(e),isNumber:e=>typeof e=="number",isPrimitive:e=>{if(e===null)return!0;let t=typeof e;return t!=="object"&&t!=="function"},isShallowEqual:(e,t)=>{if(e===t)return!0;if(lX.lang.isNaN(e))return lX.lang.isNaN(t);if(lX.lang.isPrimitive(e)||lX.lang.isPrimitive(t))return e===t;for(let r in e)if(!(r in t))return!1;for(let r in t)if(e[r]!==t[r])return!1;return!0},isSet:e=>e instanceof Set,isString:e=>typeof e=="string",isUndefined:e=>e===void 0,noop:()=>{},uniq:e=>e.length<2?e:Array.from(new Set(e))},fs:{getDepth:e=>Math.max(0,e.split(i2r.default.sep).length-1),getRealPath:(e,t)=>{try{return t?tGi.default.realpathSync.native(e):tGi.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===i2r.default.sep&&t.length-e.length>i2r.default.sep.length,poll:(e,t=Sru)=>Tru.retry.stat(t)(e,{bigint:!0}).catch(lX.lang.noop),readdir:async(e,t,r=1/0,n=1/0,i,o)=>{if(o&&r===1&&e in o){let s=o[e];return[s.directories,s.files]}else{let s=await Nru(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},bl=lX;var o2r=we(require("path"),1);var rGi=class{constructor(t,r,n){this.base=n,this.watcher=t,this.handler=r.handler,this.fswatcher=r.watcher,this.options=r.options,this.folderPath=r.folderPath,this.filePath=r.filePath,this.handlerBatched=this.base?this.base.onWatcherEvent.bind(this.base):this._makeHandlerBatched(this.options.debounce)}_isSubRoot(t){return this.filePath?t===this.filePath:t===this.folderPath||bl.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=Cru){return(()=>{let r=this.watcher._readyWait,n=[],i=new Set,o=async(a,u)=>{let c=this.options.ignoreInitial?[]:a,l=await this.eventsPopulate([...u]),p=this.eventsDeduplicate([...c,...l]);this.onTargetEvents(p)},s=bl.lang.debounce(()=>{this.watcher.isClosed()||(r=o(n,i),n=[],i=new Set)},t);return async(a,u="",c=!1)=>{c?await this.eventsPopulate([u],n,!0):i.add(u),r.then(s)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((n,i)=>{let[o,s]=i,a=r[s];return o===a||o===cu.CHANGE&&a===cu.ADD||(r[s]=o,n.push(i)),n},[])}async eventsPopulate(t,r=[],n=!1){return await Promise.all(t.map(async i=>{let o=await this.watcher._poller.update(i,this.options.pollingTimeout);await Promise.all(o.map(async s=>{r.push([s,i]),s===cu.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===cu.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,i,r,n)}))})),r}async eventsPopulateAddDir(t,r,n=[],i=!1){if(i)return n;let o=this.options.recursive?this.options.depth??G_e:Math.min(1,this.options.depth??G_e),s=this.options.limit??i2t,[a,u]=await bl.fs.readdir(r,this.options.ignore,o,s,this.watcher._closeSignal),c=[...a,...u];return await Promise.all(c.map(l=>{if(!this.watcher.isIgnored(l,this.options.ignore)&&!t.includes(l))return this.eventsPopulate([l],n,!0)})),n}async eventsPopulateUnlinkDir(t,r,n=[],i=!1){if(i)return n;for(let o of this.watcher._poller.stats.keys())bl.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],n,!0));return n}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(cu.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!W_e&&this.options.native!==!1&&this.watcher.watchDirectory(t,this.options,this.handler,void 0,this.base||this),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAddDir(t,this.options.renameTimeout):this.watcher.event(cu.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(cu.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(o2r.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(cu.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(o2r.default.dirname(t),t,!1),this.watcher.watchersClose(t),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlinkDir(t,this.options.renameTimeout):this.watcher.event(cu.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===cu.ADD?this.onTargetAdd(n):r===cu.ADD_DIR?this.onTargetAddDir(n):r===cu.CHANGE?this.onTargetChange(n):r===cu.UNLINK?this.onTargetUnlink(n):r===cu.UNLINK_DIR&&this.onTargetUnlinkDir(n)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,n=!1){return this.handlerBatched(t,r,n)}onWatcherChange(t=gLe.CHANGE,r){if(this.watcher.isClosed())return;let n=o2r.default.resolve(this.folderPath,r||"");this.filePath&&n!==this.folderPath&&n!==this.filePath||this.watcher.isIgnored(n,this.options.ignore)||this.onWatcherEvent(t,n)}onWatcherError(t){J9i&&t.code==="EPERM"?this.onWatcherChange(gLe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(o2t.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(o2t.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(gLe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&W_e&&this.options.native!==!1?this.options.depth??G_e:Math.min(1,this.options.depth??G_e),n=this.options.limit??i2t,[i,o]=await bl.fs.readdir(this.folderPath,this.options.ignore,r,n,this.watcher._closeSignal,this.options.readdirMap),s=[this.folderPath,...i,...o];await Promise.all(s.map(a=>{if(!this.watcher._poller.stats.has(a)&&!this.watcher.isIgnored(a,this.options.ignore))return this.onWatcherEvent(gLe.CHANGE,a,t)}))}}},kru=rGi;var DT={interval:100,intervalId:void 0,fns:new Map,init:()=>{DT.intervalId||(DT.intervalId=setInterval(DT.resolve,DT.interval))},reset:()=>{DT.intervalId&&(clearInterval(DT.intervalId),delete DT.intervalId)},add:(e,t)=>{DT.fns.set(e,Date.now()+t),DT.init()},remove:e=>{DT.fns.delete(e)},resolve:()=>{if(!DT.fns.size)return DT.reset();let e=Date.now();for(let[t,r]of DT.fns)r>=e||(DT.remove(t),t())}},u2t=DT;var c2t=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=Y9i){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{let p=this._watcher._poller.paths.find(n||-1,d=>d!==i);if(p&&p!==i){if(bl.fs.getRealPath(i,!0)===p)return;this._watcher.event(o.rename,p,i)}else this._watcher.event(o.add,i)};if(!n)return a();let u=()=>{s.add.delete(n),u2t.remove(c)},c=()=>{u(),a()};u2t.add(c,r);let l=()=>{let p=s.unlink.get(n);if(!p)return;u();let d=p();i===d?o.change&&this._watcher._poller.stats.has(i)&&this._watcher.event(o.change,i):this._watcher.event(o.rename,d,i)};s.add.set(n,l),l()}getLockUnlink(t,r=Y9i){let{ino:n,targetPath:i,events:o,locks:s}=t,a=()=>{this._watcher.event(o.unlink,i)};if(!n)return a();let u=()=>{s.unlink.delete(n),u2t.remove(c)},c=()=>{u(),a()};u2t.add(c,r);let l=()=>(u(),i);s.unlink.set(n,l),s.add.get(n)?.()}getLockTargetAdd(t,r){let n=this._watcher._poller.getIno(t,cu.ADD,uX.FILE);return this.getLockAdd({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let n=this._watcher._poller.getIno(t,cu.ADD_DIR,uX.DIR);return this.getLockAdd({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let n=this._watcher._poller.getIno(t,cu.UNLINK,uX.FILE);return this.getLockUnlink({ino:n,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let n=this._watcher._poller.getIno(t,cu.UNLINK_DIR,uX.DIR);return this.getLockUnlink({ino:n,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}reset(){this._locksAdd=new Map,this._locksAddDir=new Map,this._locksUnlink=new Map,this._locksUnlinkDir=new Map,this._locksDir={add:this._locksAddDir,unlink:this._locksUnlinkDir},this._locksFile={add:this._locksAdd,unlink:this._locksUnlink}}};c2t.DIR_EVENTS={add:cu.ADD_DIR,rename:cu.RENAME_DIR,unlink:cu.UNLINK_DIR};c2t.FILE_EVENTS={add:cu.ADD,change:cu.CHANGE,rename:cu.RENAME,unlink:cu.UNLINK};var Mru=c2t;var nGi=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(bl.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(bl.lang.isSet(n)){let i=n.delete(r);return n.size||this.map.delete(t),i}else if(n===r)return this.map.delete(t),!0}return!1}find(t,r){if(this.map.has(t)){let n=this.map.get(t);if(bl.lang.isSet(n))return Array.from(n).find(r);if(r(n))return n}}get(t){return this.map.get(t)}has(t,r){if(bl.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return bl.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);bl.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},iGi=nGi;var oGi=class{constructor(t){this.ino=t.ino<=Number.MAX_SAFE_INTEGER?Number(t.ino):t.ino,this.size=Number(t.size),this.atimeMs=Number(t.atimeMs),this.mtimeMs=Number(t.mtimeMs),this.ctimeMs=Number(t.ctimeMs),this.birthtimeMs=Number(t.birthtimeMs),this._isFile=t.isFile(),this._isDirectory=t.isDirectory(),this._isSymbolicLink=t.isSymbolicLink()}isFile(){return this._isFile}isDirectory(){return this._isDirectory}isSymbolicLink(){return this._isSymbolicLink}},Lru=oGi;var sGi=class{constructor(){this.inos={},this.paths=new iGi,this.stats=new Map}getIno(t,r,n){let i=this.inos[r];if(!i)return;let o=i[t];if(o&&!(n&&o[1]!==n))return o[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let n=await bl.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new Lru(n)}reset(){this.inos={},this.paths=new iGi,this.stats=new Map}async update(t,r){let n=this.getStats(t),i=await this.poll(t,r);if(this.updateStats(t,i),!n&&i){if(i.isFile())return this.updateIno(t,cu.ADD,i),[cu.ADD];if(i.isDirectory())return this.updateIno(t,cu.ADD_DIR,i),[cu.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,cu.UNLINK,n),[cu.UNLINK];if(n.isDirectory())return this.updateIno(t,cu.UNLINK_DIR,n),[cu.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,cu.CHANGE,i),[cu.CHANGE]);if(i.isDirectory())return this.updateIno(t,cu.UNLINK,n),this.updateIno(t,cu.ADD_DIR,i),[cu.UNLINK,cu.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,cu.UNLINK_DIR,n),this.updateIno(t,cu.ADD,i),[cu.UNLINK_DIR,cu.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,cu.UNLINK_DIR,n),this.updateIno(t,cu.ADD_DIR,i),[cu.UNLINK_DIR,cu.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?uX.FILE:uX.DIR;i[t]=[n.ino,o]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let n=this.stats.get(t)?.ino||-1;this.paths.delete(n,t),this.stats.delete(t)}}},aGi=sGi;var uGi=class e extends Uru.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(TT.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(TT.CLOSE,i)),this._readyWait=new Promise(i=>this.on(TT.READY,i)),this._locker=new Mru(this),this._roots=new Set,this._poller=new aGi,this._pollers=new Set,this._subwatchers=new Set,this._watchers={},this._watchersLock=Promise.resolve(),this._watchersRestorable={},this.watch(t,r,n)}isClosed(){return this._closed}isIgnored(t,r){return!!r&&(bl.lang.isFunction(r)?!!r(t):r.test(t))}isReady(){return this._ready}close(){return this._locker.reset(),this._poller.reset(),this._roots.clear(),this.watchersClose(),this.isClosed()?!1:(this._closed=!0,this.emit(TT.CLOSE))}error(t){if(this.isClosed())return!1;let r=bl.lang.castError(t);return this.emit(TT.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(TT.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(TT.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&bl.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&bl.lang.isShallowEqual(n.options,r))return!0;return!1}watchersClose(t,r,n=!0){if(t){let i=this._watchers[t];if(i)for(let o of[...i])r&&o.filePath!==r||this.watcherClose(o);if(n)for(let o in this._watchers)bl.fs.isSubPath(t,o)&&this.watchersClose(o,r,!1)}else for(let i in this._watchers)this.watchersClose(i,r,!1)}watchersLock(t){return this._watchersLock.then(()=>this._watchersLock=new Promise(async r=>{await t(),r()}))}watchersRestore(){delete this._watchersRestoreTimeout;let t=Object.entries(this._watchersRestorable);this._watchersRestorable={};for(let[r,n]of t)this.watchPath(r,n.options,n.handler)}async watcherAdd(t,r){let{folderPath:n}=t;(this._watchers[n]=this._watchers[n]||[]).push(t);let o=new kru(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let n=t.filePath||t.folderPath;this._roots.has(n)&&(this._watchersRestorable[n]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=bl.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,n,i){if(this._watchers[t]?.find(a=>a.handler===n&&(!a.filePath||a.filePath===i)&&a.options.ignore===r.ignore&&!!a.options.native==!!r.native&&(!r.recursive||a.options.recursive)))return!0;let s=ALe.default.dirname(t);for(let a=1;a<1/0;a++){if(this._watchers[s]?.find(l=>(a===1||l.options.recursive&&a<=(l.options.depth??G_e))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&W_e&&l.options.native!==!1)))return!0;if(!W_e)break;let c=ALe.default.dirname(t);if(s===c)break;s=c}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=bl.lang.uniq(t).sort();let s;for(let a of t)if(!this.isIgnored(a,r.ignore)&&!this.watcherExists(a,r,n,i))try{let u=!r.recursive||W_e&&r.native!==!1?r:{...r,recursive:!1},l={watcher:s2r.default.watch(a,u),handler:n,options:r,folderPath:a,filePath:i},p=s=await this.watcherAdd(l,o);if(this._roots.has(i||a)){let f={...r,ignoreInitial:!0,recursive:!1},m=ALe.default.dirname(a),h=a;await this.watchDirectories([m],f,n,h,p)}}catch(u){this.error(u)}return s}async watchDirectory(t,r,n,i,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||W_e&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??G_e,a=r.limit??i2t,[u]=await bl.fs.readdir(t,r.ignore,s,a,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let c=await this.watchDirectories([t],r,n,i,o);if(u.length){let l=bl.fs.getDepth(t);for(let p of u){let d=bl.fs.getDepth(p),f=Math.max(0,s-(d-l)),m={...r,depth:f};await this.watchDirectories([p],m,n,i,o||c)}}})}}}async watchFileOnce(t,r,n){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let i={targetPath:t,options:r},o=(c,l)=>{l===t&&(u(),n())},s=new e(o),a=()=>{this._subwatchers.add(i),this.on(TT.CLOSE,u),s.watchFile(t,r,o)},u=()=>{this._subwatchers.delete(i),this.removeListener(TT.CLOSE,u),s.close()};return a()}async watchFile(t,r,n){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let i=ALe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new aGi,s=await this.watchPolling(t,r,async()=>{i||!(await o.update(t,r.pollingTimeout)).length||i||(i=!0,s(),n())})}async watchPolling(t,r,n){if(this.isClosed())return bl.lang.noop;if(this.pollerExists(t,r))return bl.lang.noop;let i={...r,interval:r.pollingInterval??xru},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(TT.CLOSE,a),s2r.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(TT.CLOSE,a),s2r.default.unwatchFile(t,n)};return bl.lang.attempt(s),()=>bl.lang.attempt(a)}async watchUnknownChild(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchFileOnce(t,r,i)}async watchUnknownTarget(t,r,n){if(this.isClosed())return;let i=()=>this.watchPath(t,r,n);return this.watchPollingOnce(t,r,i)}async watchPaths(t,r,n){if(this.isClosed())return;if(t=bl.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,u)=>u===s||!bl.fs.isSubPath(o,a))))await Promise.all(t.map(o=>this.watchPath(o,r,n)));else for(let o of t)await this.watchPath(o,r,n)}async watchPath(t,r,n){if(this.isClosed()||(t=ALe.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await bl.fs.poll(t,r.pollingTimeout);if(i){if(i.isFile())return this.watchFile(t,r,n);if(i.isDirectory())return this.watchDirectory(t,r,n);this.error(`"${t}" is not supported`)}else{let o=ALe.default.dirname(t);return(await bl.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=bl.lang.noop){if(bl.lang.isFunction(t))return this.watch([],{},t);if(bl.lang.isUndefined(t))return this.watch([],r,n);if(bl.lang.isFunction(r))return this.watch(t,{},r);if(bl.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=bl.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==bl.lang.noop&&this.on(TT.ALL,n),r.readdirMap=void 0,this.ready())}},a2r=uGi;E2r();Wt();var gnt=require("fs/promises"),$nu=require("os"),Hnu=we(require("path"),1),Dyd=".fern",Ryd="logs";function Fyd(){return"cli@4.3.2"}var wLe=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=We(Vt.of((0,$nu.homedir)()),Oe.of(Dyd)),r=We(t,Oe.of(Ryd));await nr(r)||await(0,gnt.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=We(r,Oe.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${Hnu.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
2121
2121
  `);await(0,gnt.writeFile)(this.logFilePath,o,"utf-8"),this.initialized=!0}getLogFilePath(){return this.logFilePath}async writeEntry(t){if(!this.initialized||!this.logFilePath)return;let r=JSON.stringify(t)+`
2122
2122
  `;try{await(0,gnt.appendFile)(this.logFilePath,r,"utf-8")}catch{}}async logFrontendMetrics(t){let r={timestamp:t.timestamp,source:t.source,level:t.level,eventType:this.getEventType(t.payload,t.isAggregate),isAggregate:t.isAggregate,data:t.payload};await this.writeEntry(r)}async logCliMetric(t,r="info"){let n={timestamp:t.timestamp,source:Fyd(),level:r,eventType:t.type,data:{durationMs:t.durationMs,metadata:t.metadata}};await this.writeEntry(n)}async logCliMemory(){let t=process.memoryUsage(),r={type:"cli_memory",timestamp:new Date().toISOString(),metadata:{heapUsed:t.heapUsed,heapTotal:t.heapTotal,external:t.external,rss:t.rss,heapUsedMB:Math.round(t.heapUsed/1024/1024*100)/100,heapTotalMB:Math.round(t.heapTotal/1024/1024*100)/100,rssMB:Math.round(t.rss/1024/1024*100)/100}};await this.logCliMetric(r)}async logCliReloadStart(){let t={type:"cli_reload_start",timestamp:new Date().toISOString()};await this.logCliMetric(t)}async logCliReloadFinish(t,r){let n={type:"cli_reload_finish",timestamp:new Date().toISOString(),durationMs:t,metadata:r};await this.logCliMetric(n)}async logCliDocsGeneration(t,r){let n={type:"cli_docs_generation",timestamp:new Date().toISOString(),durationMs:t,metadata:r};await this.logCliMetric(n)}async logCliValidation(t,r){let n={type:"cli_validation",timestamp:new Date().toISOString(),durationMs:t,metadata:{success:r}};await this.logCliMetric(n)}getEventType(t,r){return r?"aggregate_summary":"type"in t&&typeof t.type=="string"?t.type:"unknown"}static isMetricsMessage(t){if(typeof t!="object"||t===null)return!1;let r=t;return r.type==="metrics"&&typeof r.timestamp=="string"&&typeof r.source=="string"}};var PGi={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};function Knu(e){let t=jyd();if(t==null)return;let{port:r,debugLogger:n,getDocsLoadResponse:i}=e,o=new Map;function s(u){let c=JSON.stringify(u),l=[];for(let[p]of o)try{p.send(c)}catch{l.push(p)}for(let p of l){let d=o.get(p);d&&(clearInterval(d.pingInterval),o.delete(p))}}let a=t.serve({port:r,fetch(u,c){if(u.method==="OPTIONS")return new Response(null,{status:204,headers:PGi});let l=new URL(u.url);if(u.headers.get("upgrade")?.toLowerCase()==="websocket"){c.upgrade(u,{data:{connectionId:`${Date.now()}`}});return}if(u.method==="POST"&&l.pathname==="/v2/registry/docs/load-with-url")return new Response(JSON.stringify(i()),{headers:{"Content-Type":"application/json",...PGi}});let p=/^\/_local\/(.*)/.exec(l.pathname);return u.method==="GET"&&p!=null?new Response(t.file(`/${p[1]}`),{headers:PGi}):new Response("Not Found",{status:404})},websocket:{open(u){let{connectionId:c}=u.data,l=setInterval(()=>{let p=o.get(u);if(!p)return;let d=Date.now();if(d-p.lastPong>9e4){u.close();return}try{u.send(JSON.stringify({type:"ping",timestamp:d}))}catch{u.close()}},3e4);o.set(u,{pingInterval:l,lastPong:Date.now()});try{u.send(JSON.stringify({type:"connected",connectionId:c}))}catch{}},message(u,c){try{let l=JSON.parse(c.toString());if(l.type==="pong"){let p=o.get(u);p&&(p.lastPong=Date.now())}else wLe.isMetricsMessage(l)&&n.logFrontendMetrics(l)}catch{}},close(u){let c=o.get(u);c&&(clearInterval(c.pingInterval),o.delete(u))}}});return{sendData:s,stop:u=>a.stop(u)}}function jyd(){return globalThis.Bun}Wt();var fWi=we(MGi(),1),$cu=we(eWi(),1),_j=require("fs/promises"),Hcu=require("os"),Kcu=we(fC(),1),Jcu=we(Gcu(),1),Dkr=process.platform==="win32",pWi=xe.cyan("[docs]:"),pId="etag",fId=23,Wcu=e=>e.padEnd(fId," "),dId="preview",mId="app-preview",hId="bundle",gId=".next",AId="standalone",yId=".fern",bId="packages/fern-docs/bundle/.next/server/instrumentation.js",vId=".npmrc",EId=".pnpmfile.cjs",IId="pnpm-workspace.yaml",wId='Cannot find matching keyid: {"signatures":';function CId(){return We(Vt.of((0,Hcu.homedir)()),Oe.of(yId))}function Fnt({app:e=!1}){return We(CId(),Oe.of(e?mId:dId))}function ixe({app:e=!1}){return We(Fnt({app:e}),Oe.of(e?gId:hId))}function z2t({app:e=!1}){return We(ixe({app:e}),Oe.of(AId))}function _Id({app:e=!1}){return We(z2t({app:e}),Oe.of(bId))}function xId({app:e=!1}){return We(z2t({app:e}),Oe.of(IId))}function SId({app:e=!1}){return We(z2t({app:e}),Oe.of(EId))}function OId({app:e=!1}){return We(z2t({app:e}),Oe.of(vId))}function DLe(e){return new Error(`${e}. Please reach out to support@buildwithfern.com.`)}function BId({app:e=!1}){return We(Fnt({app:e}),Oe.of(pId))}var PId=`module.exports = {
2123
2123
  hooks: {
@@ -2901,7 +2901,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
2901
2901
  Run ${xe.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
2902
2902
  Run ${xe.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),PHe(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function e4o({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!ZIc(e))return;let i=t??"",o=e.filter(a=>a.isUpgradeAvailable);r!=null&&(o=o.slice(0,r+1));let s=o.sort((a,u)=>a.generatorName.localeCompare(u.generatorName)||a.currentVersion.localeCompare(u.currentVersion));for(let a of s)i+=`
2903
2903
  ${await f9h(a.generatorName)} (${a.apiName!=null?"API: "+a.apiName+", ":""}Group: ${a.generatorGroup}) `+xe.dim(a.currentVersion)+xe.reset(" \u2192 ")+xe.green(a.latestVersion);return i+=`
2904
- `,n?PHe(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function f9h(e){let r=await new XIc.FernRegistryClient({environment:"https://registry.buildwithfern.com"}).generators.getGeneratorByImage({dockerImage:e});if(!r.ok||r.body==null)throw new Error(`Generator ${e} not found`);return r.body.displayName}async function d9h({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await twc({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(u,c,l,p)=>{a.versions[c]==null&&(a.versions[c]={});let d=LMe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await _O({generatorName:d,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[c][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await twc({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(a,u,c,l)=>{if(a==null)return;s.versions[a]==null&&(s.versions[a]={}),s.versions[a][u]==null&&(s.versions[a][u]={});let p=LMe(c.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${c.name}`);return}let d=await _O({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:c.version,channel:i,includeMajor:o,context:l});d!=null&&(s.versions[a][u][c.name]={previousVersion:c.version,latestVersion:d})},generatorFilter:r,groupFilter:n}),s}async function twc({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async o=>{await e.runTaskForWorkspace(o,async s=>{let a=await x2({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let u=n!=null?YC(n):void 0;for(let c of a.groups)if(!(i!=null&&c.groupName!==i))for(let l of c.generators)u!=null&&l.name!==u||await r(o.workspaceName,c.groupName,l,s)})}))}function rwc(e,t,r){let n=[];for(let[i,o]of Object.entries(e))for(let[s,a]of Object.entries(o)){r.debug(`Checking if ${s} in group ${i} has an upgrade available...`);let u=oj(a.latestVersion,a.previousVersion);r.debug(`Latest version: ${a.latestVersion}. `+(u?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:u,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function o9n({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await d9h({cliContext:t,project:e,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o});if(a.type==="multiApi")for(let[u,c]of Object.entries(a.versions))s.push(...rwc(c,u,t.logger));else s.push(...rwc(a.versions,void 0,t.logger))}return s}async function NRe({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:PDt(e.packageName,{version:t?"prerelease":"latest"})}var nwc=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],s9n=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Un.Info;isLocal;stdoutRedirector=new i9n;jsonMode=!1;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new h2e(t,r),this.isLocal=n??!1;let i=this.getPackageName(),o=this.getPackageVersion(),s=this.getCliName();(i==null||o==null||s==null)&&this.exitProgram(),this.environment={packageName:i,packageVersion:o,cliName:s}}getPackageName(){return"fern-api"}getPackageVersion(){return"4.3.1"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${xe.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new Yg}failWithoutThrowing(t,r){this.didSucceed=!1,IBt({message:t,error:r,logger:this.logger})}enableJsonMode(){this.jsonMode||(this.jsonMode=!0,this.stdoutRedirector.redirect())}get isJsonMode(){return this.jsonMode}writeJsonToStdout(t){this.stdoutRedirector.restore(),process.stdout.write(JSON.stringify(t,null,2)+`
2904
+ `,n?PHe(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function f9h(e){let r=await new XIc.FernRegistryClient({environment:"https://registry.buildwithfern.com"}).generators.getGeneratorByImage({dockerImage:e});if(!r.ok||r.body==null)throw new Error(`Generator ${e} not found`);return r.body.displayName}async function d9h({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await twc({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(u,c,l,p)=>{a.versions[c]==null&&(a.versions[c]={});let d=LMe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await _O({generatorName:d,cliVersion:e.environment.packageVersion,currentGeneratorVersion:l.version,channel:i,includeMajor:o,context:p});f!=null&&(a.versions[c][l.name]={previousVersion:l.version,latestVersion:f})},generatorFilter:r,groupFilter:n}),a}let s={type:"multiApi",versions:{}};return await twc({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(a,u,c,l)=>{if(a==null)return;s.versions[a]==null&&(s.versions[a]={}),s.versions[a][u]==null&&(s.versions[a][u]={});let p=LMe(c.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${c.name}`);return}let d=await _O({generatorName:p,cliVersion:e.environment.packageVersion,currentGeneratorVersion:c.version,channel:i,includeMajor:o,context:l});d!=null&&(s.versions[a][u][c.name]={previousVersion:c.version,latestVersion:d})},generatorFilter:r,groupFilter:n}),s}async function twc({cliContext:e,apiWorkspaces:t,perGeneratorAction:r,generatorFilter:n,groupFilter:i}){await Promise.all(t.map(async o=>{await e.runTaskForWorkspace(o,async s=>{let a=await x2({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let u=n!=null?YC(n):void 0;for(let c of a.groups)if(!(i!=null&&c.groupName!==i))for(let l of c.generators)u!=null&&l.name!==u||await r(o.workspaceName,c.groupName,l,s)})}))}function rwc(e,t,r){let n=[];for(let[i,o]of Object.entries(e))for(let[s,a]of Object.entries(o)){r.debug(`Checking if ${s} in group ${i} has an upgrade available...`);let u=oj(a.latestVersion,a.previousVersion);r.debug(`Latest version: ${a.latestVersion}. `+(u?"Upgrade available.":"No upgrade available.")),n.push({generatorName:s,generatorGroup:i,apiName:t,isUpgradeAvailable:u,currentVersion:a.previousVersion,latestVersion:a.latestVersion})}return n}async function o9n({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await d9h({cliContext:t,project:e,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o});if(a.type==="multiApi")for(let[u,c]of Object.entries(a.versions))s.push(...rwc(c,u,t.logger));else s.push(...rwc(a.versions,void 0,t.logger))}return s}async function NRe({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:PDt(e.packageName,{version:t?"prerelease":"latest"})}var nwc=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],s9n=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Un.Info;isLocal;stdoutRedirector=new i9n;jsonMode=!1;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new h2e(t,r),this.isLocal=n??!1;let i=this.getPackageName(),o=this.getPackageVersion(),s=this.getCliName();(i==null||o==null||s==null)&&this.exitProgram(),this.environment={packageName:i,packageVersion:o,cliName:s}}getPackageName(){return"fern-api"}getPackageVersion(){return"4.3.2"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${xe.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new Yg}failWithoutThrowing(t,r){this.didSucceed=!1,IBt({message:t,error:r,logger:this.logger})}enableJsonMode(){this.jsonMode||(this.jsonMode=!0,this.stdoutRedirector.redirect())}get isJsonMode(){return this.jsonMode}writeJsonToStdout(t){this.stdoutRedirector.restore(),process.stdout.write(JSON.stringify(t,null,2)+`
2905
2905
  `),this.jsonMode&&this.stdoutRedirector.redirect()}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish(),await(await bHe()).flush(),this.exitProgram({code:t})}async nudgeUpgradeIfAvailable(){try{let t=await Promise.race([this.isUpgradeAvailable(),new Promise((n,i)=>setTimeout(()=>i("Request timed out"),300))]),r=await ewc({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
2906
2906
  `)||(r+=`
2907
2907
  `),this.stderr.info(r))}catch{}}async exitIfFailed(){this.didSucceed||await this.exit()}exitProgram({code:t}={}){process.exit(t??(this.didSucceed?0:1))}longestWorkspaceName;registerWorkspaces(t){let r=api(t.map(n=>n.type==="docs"?"docs":n.workspaceName??"api"),n=>n.length);r!=null&&(this.longestWorkspaceName=r)}project;registerProject(t){this.project=t}runTask(t){return this.runTaskWithInit(this.constructTaskInit(),t)}addTask(){return this.addTaskWithInit(this.constructTaskInit())}async runTaskForWorkspace(t,r){await this.runTaskWithInit(this.constructTaskInitForWorkspace(t),r)}addTaskWithInit(t){let r=new T8t(t);return this.ttyAwareLogger.registerTask(r),r}USE_NODE_18_OR_ABOVE_MESSAGE="The Fern CLI requires Node 18+ or above.";async runTaskWithInit(t,r){let n=this.addTaskWithInit(t).start(),i;try{i=await r(n)}catch(o){throw o.message.includes("globalThis")?(n.logger.error(this.USE_NODE_18_OR_ABOVE_MESSAGE),n.failWithoutThrowing()):n.failWithoutThrowing(void 0,o),new Yg}finally{n.finish()}return i}async instrumentPostHogEvent(t){this.isLocal||(await bHe()).sendEvent(t)}logger=NP((t,...r)=>this.log(t,...r));stderr=NP((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=iwc(t.type==="docs"?"docs":t.workspaceName??"api"),n=1+(this.longestWorkspaceName!=null?iwc(this.longestWorkspaceName):r).length,i=r.padEnd(n),o=nwc[this.numTasks++%nwc.length],s=xe.hex(o)(i);return{...this.constructTaskInit(),logPrefix:s}}constructTaskInit(){return{logImmediately:t=>this.logImmediately(t),takeOverTerminal:t=>this.ttyAwareLogger.takeOverTerminal(t),onResult:t=>{t===Od.Failure&&(this.didSucceed=!1)},instrumentPostHogEvent:async t=>{await this.instrumentPostHogEvent(t)},shouldBufferLogs:!1}}log(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}])}logStderr(t,...r){this.logImmediately([{parts:r,level:t,time:new Date}],{stderr:!0})}logImmediately(t,{stderr:r=!1}={}){let n=t.filter(i=>oS.indexOf(i.level)>=oS.indexOf(this.logLevel));this.ttyAwareLogger.log(n,{includeDebugInfo:this.logLevel===Un.Debug,stderr:r||this.jsonMode})}_suppressUpgradeMessage=!1;suppressUpgradeMessage(){this._suppressUpgradeMessage=!0}_isUpgradeAvailable;async isUpgradeAvailable({includePreReleases:t=!1}={}){if(this._isUpgradeAvailable==null){this.logger.debug(`Checking if ${this.environment.packageName} upgrade is available...`);let r=await NRe({cliEnvironment:this.environment,includePreReleases:t}),n=oj(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},o=await o9n({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await XMo({message:t,choices:[{name:"No",value:!1},{name:"Yes",value:!0}],default:r,theme:{prefix:xe.yellow("?"),style:{answer:i=>xe.cyan(i),message:i=>xe.bold(i),highlight:i=>xe.cyan(i)}}})}catch(n){throw n?.name==="ExitPromptError"?(this.logger.info(`