fern-api 4.37.6 → 4.37.7

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 +6 -6
  2. package/package.json +1 -1
package/cli.cjs CHANGED
@@ -104,7 +104,7 @@ ${p.indent}`:""}${FMo(l)}:${a.indent?" ":""}`;return s=!1,c=!0,a.objectItem=void
104
104
  `);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:g}=new URL(h.url,"http://github.test");if(!(g.startsWith("/graphql")&&p.status!==401||p.status===403||p.status===429))return;let b=~~m.retryCount;m.retryCount=b,h.request.retryCount=b;let{wantRetry:v,retryAfter:E=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,b),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,b),retryAfter:w}}return{}})();if(v)return m.retryCount++,E*f.retryAfterBaseValue}),e.hook.wrap("request",NBc.bind(null,u)),{}}var Q8o,QBc,kVn,LBc,k8o,N8o,zxe,zBc,j8o=re(()=>{"use strict";Q8o=Ce(RVn(),1),QBc="0.0.0-development",kVn=()=>Promise.resolve();LBc=["/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"];k8o=UBc(LBc),N8o=k8o.test.bind(k8o),zxe={},zBc=function(e,t){zxe.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),zxe.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),zxe.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),zxe.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),zxe.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};nqt.VERSION=QBc;nqt.triggersNotification=N8o});function M8o(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=VBc(`${r}/login/oauth/authorize`,n),n}function VBc(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 L8o=re(()=>{"use strict"});function q8o(e){let t=e.endpoint.DEFAULTS;return/^https:\/\/(api\.)?github\.com$/.test(t.baseUrl)?"https://github.com":t.baseUrl.replace("/api/v3","")}async function iqt(e,t,r){let n={baseUrl:q8o(e),headers:{accept:"application/json"},...r},i=await e(t,n);if("error"in i.data){let o=new K5(`${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 G8o({request:e=kf,...t}){let r=q8o(e);return M8o({...t,baseUrl:r})}async function W8o(e){let t=e.request||kf,r=await iqt(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=U8o(i,r.data.expires_in),n.refreshTokenExpiresAt=U8o(i,r.data.refresh_token_expires_in)}delete n.scopes}return{...r,authentication:n}}function U8o(e,t){return new Date(e+t*1e3).toISOString()}async function $8o(e){let t=e.request||kf,r={client_id:e.clientId};return"scopes"in e&&Array.isArray(e.scopes)&&(r.scope=e.scopes.join(" ")),iqt(t,"POST /login/device/code",r)}async function QVn(e){let t=e.request||kf,r=await iqt(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=z8o(i,r.data.expires_in),n.refreshTokenExpiresAt=z8o(i,r.data.refresh_token_expires_in)}delete n.scopes}return{...r,authentication:n}}function z8o(e,t){return new Date(e+t*1e3).toISOString()}async function oqt(e){let r=await(e.request||kf)("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 sqt(e){let t=e.request||kf,r=await iqt(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:V8o(n,r.data.expires_in),refreshTokenExpiresAt:V8o(n,r.data.refresh_token_expires_in)};return{...r,authentication:i}}function V8o(e,t){return new Date(e+t*1e3).toISOString()}async function H8o(e){let{request:t,clientType:r,clientId:n,clientSecret:i,token:o,...s}=e,u=await(e.request||kf)("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 wdt(e){let t=e.request||kf,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 Cdt(e){let t=e.request||kf,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 xdt(e){let t=e.request||kf,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 J5=re(()=>{"use strict";L8o();l_();ZVt();l_();l_();l_();l_();l_();l_();l_();l_();l_()});async function J8o(e,t){let r=qBc(e,t.auth);if(r)return r;let{data:n}=await $8o({clientType:e.clientType,clientId:e.clientId,request:t.request||e.request,scopes:t.auth.scopes||e.scopes});await e.onVerification(n);let i=await NVn(t.request||e.request,e.clientId,e.clientType,n);return e.authentication=i,i}function qBc(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 K8o(e){await new Promise(t=>setTimeout(t,e*1e3))}async function NVn(e,t,r,n){try{let i={clientId:t,request:e,code:n.device_code},{authentication:o}=r==="oauth-app"?await QVn({...i,clientType:"oauth-app"}):await QVn({...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 K8o(n.interval),NVn(e,t,r,n);if(o==="slow_down")return await K8o(n.interval+7),NVn(e,t,r,n);throw i}}async function GBc(e,t){return J8o(e,{auth:t})}async function WBc(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 J8o(e,{request:t,auth:{type:"oauth"}});return i.headers.authorization=`token ${o}`,t(i)}function Y8o(e){let t=e.request||kf.defaults({headers:{"user-agent":`octokit-auth-oauth-device.js/${$Bc} ${Cg()}`}}),{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(GBc.bind(null,i),{hook:WBc.bind(null,i)})}var $Bc,X8o=re(()=>{"use strict";VD();l_();J5();$Bc="0.0.0-development"});async function Z8o(e){if("code"in e.strategyOptions){let{authentication:t}=await W8o({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 Y8o({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 jVn(e,t={}){if(e.authentication||(e.authentication=e.clientType==="oauth-app"?await Z8o(e):await Z8o(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 sqt({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"?oqt:wdt;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"?Cdt:xdt;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 _dt(e){return e&&HBc.test(e)}async function KBc(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(_dt(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 jVn({...e,request:t}):await jVn({...e,request:t});return i.headers.authorization="token "+o,t(i)}function dS({clientId:e,clientSecret:t,clientType:r="oauth-app",request:n=kf.defaults({headers:{"user-agent":`octokit-auth-oauth-app.js/${e6o} ${Cg()}`}}),onTokenCreated:i,...o}){let s=Object.assign({clientType:r,clientId:e,clientSecret:t,onTokenCreated:i,strategyOptions:o,request:n});return Object.assign(jVn.bind(null,s),{hook:KBc.bind(null,s)})}var e6o,HBc,Gre=re(()=>{"use strict";VD();l_();X8o();J5();J5();e6o="0.0.0-development";HBc=/\/applications\/[^/]+\/(token|grant)s?/;dS.VERSION=e6o});async function JBc(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 dS({...r,clientType:e.clientType}):await dS({...r,clientType:e.clientType}))()}async function YBc(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"&&!_dt(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 aqt(e){let t=Object.assign({request:kf.defaults({headers:{"user-agent":`octokit-auth-oauth-app.js/${XBc} ${Cg()}`}}),clientType:"oauth-app"},e);return Object.assign(JBc.bind(null,t),{hook:YBc.bind(null,t)})}var XBc,uqt=re(()=>{"use strict";VD();l_();Gre();Gre();Gre();XBc="0.0.0-development"});function cqt(e){return e.includes("-----BEGIN RSA PRIVATE KEY-----")}function r6o(e){return e.includes("-----BEGIN OPENSSH PRIVATE KEY-----")}function MVn(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 n6o(e){let t=e.trim().split(`
105
105
  `).slice(1,-1).join(""),r=atob(t);return MVn(r)}function i6o(e,t){return`${t6o(e)}.${t6o(t)}`}function o6o(e){for(var t="",r=new Uint8Array(e),n=r.byteLength,i=0;i<n;i++)t+=String.fromCharCode(r[i]);return s6o(btoa(t))}function s6o(e){return e.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function t6o(e){return s6o(btoa(JSON.stringify(e)))}var LVn=re(()=>{"use strict"});function u6o(e){return cqt(e)?(0,a6o.createPrivateKey)(e).export({type:"pkcs8",format:"pem"}):e}var lqt,a6o,c6o=re(()=>{"use strict";lqt=require("crypto"),a6o=require("crypto");LVn()});async function l6o({privateKey:e,payload:t}){let r=u6o(e);if(cqt(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(r6o(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=n6o(r),s=await lqt.subtle.importKey("pkcs8",o,n,!1,["sign"]),a=i6o(i,t),u=MVn(a),c=await lqt.subtle.sign(n.name,s,u),l=o6o(c);return`${a}.${l}`}var p6o=re(()=>{"use strict";LVn();c6o()});async function UVn({id:e,privateKey:t,now:r=Math.floor(Date.now()/1e3)}){let n=t.replace(/\\n/g,`
106
106
  `),i=r-30,o=i+600,a=await l6o({privateKey:n,payload:{iat:i,exp:o,iss:e}});return{appId:e,expiration:o,token:a}}var f6o=re(()=>{"use strict";p6o()});var pqt,d6o=re(()=>{"use strict";pqt=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 dqt({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 UVn(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 eOc(){return new pqt(15e3,1e3*60*59)}async function tOc(e,t){let r=zVn(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 rOc(e,t,r){let n=zVn(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 zVn({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 m6o({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 h6o(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 nOc(e,{...t,installationId:n},i)}function nOc(e,t,r){let n=zVn(t);if(fqt.has(n))return fqt.get(n);let i=iOc(e,t,r).finally(()=>fqt.delete(n));return fqt.set(n,i),i}async function iOc(e,t,r){if(!t.refresh){let b=await tOc(e.cache,t);if(b){let{token:v,createdAt:E,expiresAt:I,permissions:w,repositoryIds:x,repositoryNames:C,singleFileName:_,repositorySelection:R}=b;return m6o({installationId:t.installationId,token:v,createdAt:E,expiresAt:I,permissions:w,repositorySelection:R,repositoryIds:x,repositoryNames:C,singleFileName:_})}}let n=await dqt(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(b=>b.id):void 0,m=a?a.map(b=>b.name):void 0,h=new Date().toISOString(),g={token:o,createdAt:h,expiresAt:s,repositorySelection:d,permissions:p,repositoryIds:f,repositoryNames:m};l&&Object.assign(i,{singleFileName:l}),await rOc(e.cache,t,g);let A={installationId:t.installationId,token:o,createdAt:h,expiresAt:s,repositorySelection:d,permissions:p,repositoryIds:f,repositoryNames:m};return l&&Object.assign(A,{singleFileName:l}),m6o(A)}async function oOc(e,t){switch(t.type){case"app":return dqt(e);case"oauth-app":return e.oauthApp({type:"oauth-app"});case"installation":return h6o(e,{...t,type:"installation"});case"oauth-user":return e.oauthApp(t);default:throw new Error(`Invalid auth type: ${t.type}`)}}function aOc(e){let r=`^(?:${e.map(n=>n.split("/").map(i=>i.startsWith("{")?"(?:.+?)":i).join("/")).map(n=>`(?:${n})`).join("|")})$`;return new RegExp(r,"i")}function cOc(e){return!!e&&uOc.test(e.split("?")[0])}function pOc(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 fOc(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(cOc(o.replace(t.endpoint.DEFAULTS.baseUrl,""))){let{token:u}=await dqt(e);i.headers.authorization=`bearer ${u}`;let c;try{c=await t(i)}catch(l){if(pOc(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 dqt({...e,timeDifference:p});return i.headers.authorization=`bearer ${d}`,t(i)}return c}if(_dt(o)){let u=await e.oauthApp({type:"oauth-app"});return i.headers.authorization=u.headers.authorization,t(i)}let{token:s,createdAt:a}=await h6o(e,{},t.defaults({baseUrl:i.baseUrl}));return i.headers.authorization=`token ${s}`,g6o(e,t,i,a)}async function g6o(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>=lOc)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)),g6o(e,t,r,n,i)}}function y4e(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||kf.defaults({headers:{"user-agent":`octokit-auth-app.js/${dOc} ${Cg()}`}}),n=Object.assign({request:r,cache:eOc()},e,e.installationId?{installationId:Number(e.installationId)}:{},{log:t,oauthApp:aqt({clientType:"github-app",clientId:e.clientId||"",clientSecret:e.clientSecret||"",request:r})});return Object.assign(oOc.bind(null,n),{hook:fOc.bind(null,n)})}var fqt,sOc,uOc,lOc,dOc,mqt=re(()=>{"use strict";VD();l_();uqt();f6o();d6o();Gre();fqt=new Map;sOc=["/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"];uOc=aOc(sOc);lOc=5*1e3;dOc="7.2.2"});async function mOc(e){return{type:"unauthenticated",reason:e}}function hOc(e){return e.status!==403||!e.response?!1:e.response.headers["x-ratelimit-remaining"]==="0"}function AOc(e){return e.status!==403?!1:gOc.test(e.message)}async function yOc(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):hOc(o)?(o.message=`API rate limit exceeded. This maybe caused by the lack of authentication. Reason: ${e}`,o):AOc(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 gOc,qxe,hqt=re(()=>{"use strict";gOc=/\babuse\b/i;qxe=function(t){if(!t||!t.reason)throw new Error("[@octokit/auth-unauthenticated] No reason passed to createUnauthenticatedAuth");return Object.assign(mOc.bind(null,t.reason),{hook:yOc.bind(null,t.reason)})}});function y6o(e,t,r){if(Array.isArray(t)){for(let n of t)y6o(e,n,r);return}e.eventHandlers[t]||(e.eventHandlers[t]=[]),e.eventHandlers[t].push(r)}async function Wre(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 EOc(e,t){return e.octokit.auth({type:"oauth-user",...t,async factory(r){let n=new e.Octokit({authStrategy:dS,auth:r}),i=await n.auth({type:"get"});return await Wre(e,{name:"token",action:"created",token:i.token,scopes:i.scopes,authentication:i,octokit:n}),n}})}function vOc(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 G8o({clientType:e.clientType,...r})}async function IOc(e,t){let r=await e.octokit.auth({type:"oauth-user",...t});return await Wre(e,{name:"token",action:"created",token:r.token,scopes:r.scopes,authentication:r,octokit:new e.Octokit({authStrategy:dS,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 wOc(e,t){let r=await oqt({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 COc(e,t){let r={clientId:e.clientId,clientSecret:e.clientSecret,request:e.octokit.request,...t};if(e.clientType==="oauth-app"){let o=await wdt({clientType:"oauth-app",...r}),s=Object.assign(o.authentication,{type:"token",tokenType:"oauth"});return await Wre(e,{name:"token",action:"reset",token:o.authentication.token,scopes:o.authentication.scopes||void 0,authentication:s,octokit:new e.Octokit({authStrategy:dS,auth:{clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:o.authentication.token,scopes:o.authentication.scopes}})}),{...o,authentication:s}}let n=await wdt({clientType:"github-app",...r}),i=Object.assign(n.authentication,{type:"token",tokenType:"oauth"});return await Wre(e,{name:"token",action:"reset",token:n.authentication.token,authentication:i,octokit:new e.Octokit({authStrategy:dS,auth:{clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:n.authentication.token}})}),{...n,authentication:i}}async function xOc(e,t){if(e.clientType==="oauth-app")throw new Error("[@octokit/oauth-app] app.refreshToken() is not supported for OAuth Apps");let r=await sqt({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 Wre(e,{name:"token",action:"refreshed",token:r.authentication.token,authentication:n,octokit:new e.Octokit({authStrategy:dS,auth:{clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:r.authentication.token}})}),{...r,authentication:n}}async function _Oc(e,t){if(e.clientType==="oauth-app")throw new Error("[@octokit/oauth-app] app.scopeToken() is not supported for OAuth Apps");let r=await H8o({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 Wre(e,{name:"token",action:"scoped",token:r.authentication.token,authentication:n,octokit:new e.Octokit({authStrategy:dS,auth:{clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:r.authentication.token}})}),{...r,authentication:n}}async function SOc(e,t){let r={clientId:e.clientId,clientSecret:e.clientSecret,request:e.octokit.request,...t},n=e.clientType==="oauth-app"?await Cdt({clientType:"oauth-app",...r}):await Cdt({clientType:"github-app",...r});return await Wre(e,{name:"token",action:"deleted",token:t.token,octokit:new e.Octokit({authStrategy:qxe,auth:{reason:'Handling "token.deleted" event. The access for the token has been revoked.'}})}),n}async function BOc(e,t){let r={clientId:e.clientId,clientSecret:e.clientSecret,request:e.octokit.request,...t},n=e.clientType==="oauth-app"?await xdt({clientType:"oauth-app",...r}):await xdt({clientType:"github-app",...r});return await Wre(e,{name:"token",action:"deleted",token:t.token,octokit:new e.Octokit({authStrategy:qxe,auth:{reason:'Handling "token.deleted" event. The access for the token has been revoked.'}})}),await Wre(e,{name:"authorization",action:"deleted",token:t.token,octokit:new e.Octokit({authStrategy:qxe,auth:{reason:'Handling "authorization.deleted" event. The access for the app has been revoked.'}})}),n}var A6o,bOc,gqt,VVn=re(()=>{"use strict";uqt();eqt();VD();Gre();J5();uqt();J5();J5();Gre();J5();Gre();J5();Gre();J5();hqt();J5();hqt();A6o="7.1.6";bOc=zle.defaults({userAgent:`octokit-oauth-app.js/${A6o} ${Cg()}`});gqt=class{static VERSION=A6o;static defaults(e){return class extends this{constructor(...r){super({...e,...r[0]})}}}constructor(e){let t=e.Octokit||bOc;this.type=e.clientType||"oauth-app";let r=new t({authStrategy:aqt,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=y6o.bind(null,n),this.octokit=r,this.getUserOctokit=EOc.bind(null,n),this.getWebFlowAuthorizationUrl=vOc.bind(null,n),this.createToken=IOc.bind(null,n),this.checkToken=wOc.bind(null,n),this.resetToken=COc.bind(null,n),this.refreshToken=xOc.bind(null,n),this.scopeToken=_Oc.bind(null,n),this.deleteToken=SOc.bind(null,n),this.deleteAuthorization=BOc.bind(null,n)}type;on;octokit;getUserOctokit;getWebFlowAuthorizationUrl;createToken;checkToken;resetToken;refreshToken;scopeToken;deleteToken;deleteAuthorization}});async function Aqt(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,b6o.createHmac)(r,e).update(t).digest("hex")}`}async function Sdt(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=qVn.Buffer.from(r),i=qVn.Buffer.from(await Aqt(e,t));return n.length!==i.length?!1:(0,v6o.timingSafeEqual)(n,i)}async function I6o(e,t,r,n){if(await Sdt(e,t,r))return!0;if(n!==void 0)for(let o of n){let s=await Sdt(o,t,r);if(s)return s}return!1}var b6o,v6o,qVn,E6o,GVn=re(()=>{"use strict";b6o=require("crypto"),v6o=require("crypto"),qVn=require("buffer"),E6o="5.1.1";Aqt.VERSION=E6o;Sdt.VERSION=E6o});function WVn(e,t,r){e.hooks[t]||(e.hooks[t]=[]),e.hooks[t].push(r)}function _6o(e,t,r){if(Array.isArray(t)){t.forEach(n=>_6o(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)}OOc.includes(t)||e.log.warn(`"${t}" is not a known webhook name (https://developer.github.com/v3/activity/events/types/)`),WVn(e,t,r)}function POc(e,t){WVn(e,"*",t)}function TOc(e,t){WVn(e,"error",t)}function w6o(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 DOc(e,t,r){let n=[e.hooks[r],e.hooks["*"]];return t&&n.unshift(e.hooks[`${r}.${t}`]),[].concat(...n.filter(Boolean))}function ROc(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=>w6o(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=DOc(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(`
107
- `));throw Object.assign(s,{event:t}),r.forEach(a=>w6o(a,s)),s})}function S6o(e,t,r){if(Array.isArray(t)){t.forEach(n=>S6o(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 FOc(e){let t={hooks:{},log:x6o(e&&e.log)};return e&&e.transform&&(t.transform=e.transform),{on:_6o.bind(null,t),onAny:POc.bind(null,t),onError:TOc.bind(null,t),removeListener:S6o.bind(null,t),receive:ROc.bind(null,t)}}async function kOc(e,t){if(!await I6o(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 x6o,OOc,C6o,rZh,B6o,O6o=re(()=>{"use strict";GVn();GVn();x6o=(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),OOc=["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"];C6o=new TextDecoder("utf-8",{fatal:!1}),rZh=C6o.decode.bind(C6o),B6o=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:FOc(e),secret:e.secret,additionalSecrets:e.additionalSecrets,hooks:{},log:x6o(e.log)};this.sign=Aqt.bind(null,e.secret),this.verify=Sdt.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=kOc.bind(null,t)}}});function NOc(e,t){return new B6o({secret:t.secret,transform:async r=>{if(!("installation"in r.payload)||typeof r.payload.installation!="object"){let o=new e.constructor({authStrategy:qxe,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:y4e,auth:{...o,installationId:n}})}});return i.hook.before("request",o=>{o.headers["x-github-delivery"]=r.id}),{...r,octokit:i}}})}async function P6o(e,t){return e.octokit.auth({type:"installation",installationId:t,factory(r){let n={...r.octokitOptions,authStrategy:y4e,auth:{...r,installationId:t}};return new r.octokit.constructor(n)}})}function jOc(e){return Object.assign(MOc.bind(null,e),{iterator:T6o.bind(null,e)})}async function MOc(e,t){let r=T6o(e)[Symbol.asyncIterator](),n=await r.next();for(;!n.done;)await t(n.value),n=await r.next()}function T6o(e){return{async*[Symbol.asyncIterator](){let t=tqt.iterator(e.octokit,"GET /app/installations");for await(let{data:r}of t)for(let n of r)yield{octokit:await P6o(e,n.id),installation:n}}}}function LOc(e){return Object.assign(UOc.bind(null,e),{iterator:D6o.bind(null,e)})}async function UOc(e,t,r){let n=D6o(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 zOc(e,t){return{async*[Symbol.asyncIterator](){yield{octokit:await e.getInstallationOctokit(t)}}}}function D6o(e,t){return{async*[Symbol.asyncIterator](){let r=t?zOc(e,t.installationId):e.eachInstallation.iterator();for await(let{octokit:n}of r){let i=tqt.iterator(n,"GET /installation/repositories");for await(let{data:o}of i)for(let s of o)yield{octokit:n,repository:s}}}}}function VOc(e){let t;return async function(n={}){t||(t=qOc(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 qOc(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 QOc,R6o,F6o=re(()=>{"use strict";eqt();mqt();VVn();mqt();hqt();O6o();rqt();mqt();rqt();QOc="15.1.6";R6o=class{static VERSION=QOc;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||zle,r=Object.assign({appId:e.appId,privateKey:e.privateKey},e.oauth?{clientId:e.oauth.clientId,clientSecret:e.oauth.clientSecret}:{}),n={authStrategy:y4e,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=NOc(this.octokit,e.webhooks):Object.defineProperty(this,"webhooks",{get(){throw new Error("[@octokit/app] webhooks option not set")}}),e.oauth?this.oauth=new gqt({...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=P6o.bind(null,this),this.eachInstallation=jOc(this),this.eachRepository=LOc(this),this.getInstallationUrl=VOc(this)}}});function WOc(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 $Oc(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 GOc,Vle,xZh,_Zh,$Vn=re(()=>{"use strict";eqt();rqt();_8o();T8o();F8o();j8o();F6o();VVn();GOc="0.0.0-development",Vle=zle.plugin(PVn,_Vn,x8o,FVn,nqt).defaults({userAgent:`octokit.js/${GOc}`,throttle:{onRateLimit:WOc,onSecondaryRateLimit:$Oc}});xZh=R6o.defaults({Octokit:Vle}),_Zh=gqt.defaults({Octokit:Vle})});async function yqt(e,t,r){let{owner:n,repo:i}=KO(e),o=r?.authToken??process.env.GITHUB_TOKEN,s=o!=null?new Vle({auth:o}):new Vle;try{let u=(await s.rest.repos.getContent({owner:n,repo:i,path:t})).data;return!Array.isArray(u)&&u.type==="file"&&u.content!=null?Buffer.from(u.content,"base64").toString("utf-8"):void 0}catch{return}}var k6o=re(()=>{"use strict";$Vn();ydt()});function Q6o(e){return N6o.default.prerelease(e)!=null}async function bqt(e,t){let{owner:r,repo:n}=KO(e),i=t?.authToken??process.env.GITHUB_TOKEN,o=i!=null?new Vle({auth:i}):new Vle;try{let a=(await o.rest.repos.getLatestRelease({owner:r,repo:n})).data.tag_name;if(!Q6o(a))return a;let u=await o.paginate(o.rest.repos.listReleases,{owner:r,repo:n,per_page:100});for(let c of u)if(!(c.draft||c.prerelease)&&!Q6o(c.tag_name))return c.tag_name;return}catch{return}}var N6o,j6o=re(()=>{"use strict";$Vn();N6o=Ce(Yx(),1);ydt()});async function M6o(e,t,r){try{await e.fetch($Vt,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 L6o=re(()=>{"use strict";Adt()});var Bdt={};Y(Bdt,{ClonedRepository:()=>h4e,cloneRepository:()=>HVt,createOrUpdatePullRequest:()=>k5o,deleteBranch:()=>N5o,getFileContent:()=>yqt,getLatestRelease:()=>bqt,getOrUpdateBranch:()=>M6o,parseRepository:()=>KO});var $re=re(()=>{"use strict";gVn();F5o();Q5o();j5o();k6o();j6o();L6o();ydt()});var rqn=y($xe=>{"use strict";$xe.parse=$xe.decode=tPc;$xe.stringify=$xe.encode=aVo;$xe.safe=v4e;$xe.unsafe=xqt;var tqn=typeof process<"u"&&process.platform==="win32"?`\r
107
+ `));throw Object.assign(s,{event:t}),r.forEach(a=>w6o(a,s)),s})}function S6o(e,t,r){if(Array.isArray(t)){t.forEach(n=>S6o(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 FOc(e){let t={hooks:{},log:x6o(e&&e.log)};return e&&e.transform&&(t.transform=e.transform),{on:_6o.bind(null,t),onAny:POc.bind(null,t),onError:TOc.bind(null,t),removeListener:S6o.bind(null,t),receive:ROc.bind(null,t)}}async function kOc(e,t){if(!await I6o(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 x6o,OOc,C6o,rZh,B6o,O6o=re(()=>{"use strict";GVn();GVn();x6o=(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),OOc=["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"];C6o=new TextDecoder("utf-8",{fatal:!1}),rZh=C6o.decode.bind(C6o),B6o=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:FOc(e),secret:e.secret,additionalSecrets:e.additionalSecrets,hooks:{},log:x6o(e.log)};this.sign=Aqt.bind(null,e.secret),this.verify=Sdt.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=kOc.bind(null,t)}}});function NOc(e,t){return new B6o({secret:t.secret,transform:async r=>{if(!("installation"in r.payload)||typeof r.payload.installation!="object"){let o=new e.constructor({authStrategy:qxe,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:y4e,auth:{...o,installationId:n}})}});return i.hook.before("request",o=>{o.headers["x-github-delivery"]=r.id}),{...r,octokit:i}}})}async function P6o(e,t){return e.octokit.auth({type:"installation",installationId:t,factory(r){let n={...r.octokitOptions,authStrategy:y4e,auth:{...r,installationId:t}};return new r.octokit.constructor(n)}})}function jOc(e){return Object.assign(MOc.bind(null,e),{iterator:T6o.bind(null,e)})}async function MOc(e,t){let r=T6o(e)[Symbol.asyncIterator](),n=await r.next();for(;!n.done;)await t(n.value),n=await r.next()}function T6o(e){return{async*[Symbol.asyncIterator](){let t=tqt.iterator(e.octokit,"GET /app/installations");for await(let{data:r}of t)for(let n of r)yield{octokit:await P6o(e,n.id),installation:n}}}}function LOc(e){return Object.assign(UOc.bind(null,e),{iterator:D6o.bind(null,e)})}async function UOc(e,t,r){let n=D6o(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 zOc(e,t){return{async*[Symbol.asyncIterator](){yield{octokit:await e.getInstallationOctokit(t)}}}}function D6o(e,t){return{async*[Symbol.asyncIterator](){let r=t?zOc(e,t.installationId):e.eachInstallation.iterator();for await(let{octokit:n}of r){let i=tqt.iterator(n,"GET /installation/repositories");for await(let{data:o}of i)for(let s of o)yield{octokit:n,repository:s}}}}}function VOc(e){let t;return async function(n={}){t||(t=qOc(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 qOc(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 QOc,R6o,F6o=re(()=>{"use strict";eqt();mqt();VVn();mqt();hqt();O6o();rqt();mqt();rqt();QOc="15.1.6";R6o=class{static VERSION=QOc;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||zle,r=Object.assign({appId:e.appId,privateKey:e.privateKey},e.oauth?{clientId:e.oauth.clientId,clientSecret:e.oauth.clientSecret}:{}),n={authStrategy:y4e,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=NOc(this.octokit,e.webhooks):Object.defineProperty(this,"webhooks",{get(){throw new Error("[@octokit/app] webhooks option not set")}}),e.oauth?this.oauth=new gqt({...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=P6o.bind(null,this),this.eachInstallation=jOc(this),this.eachRepository=LOc(this),this.getInstallationUrl=VOc(this)}}});function WOc(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 $Oc(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 GOc,Vle,xZh,_Zh,$Vn=re(()=>{"use strict";eqt();rqt();_8o();T8o();F8o();j8o();F6o();VVn();GOc="0.0.0-development",Vle=zle.plugin(PVn,_Vn,x8o,FVn,nqt).defaults({userAgent:`octokit.js/${GOc}`,throttle:{onRateLimit:WOc,onSecondaryRateLimit:$Oc}});xZh=R6o.defaults({Octokit:Vle}),_Zh=gqt.defaults({Octokit:Vle})});async function yqt(e,t,r){let{owner:n,repo:i}=KO(e),o=r?.authToken??process.env.GITHUB_TOKEN,s=o!=null?new Vle({auth:o}):new Vle;try{let u=(await s.rest.repos.getContent({owner:n,repo:i,path:t})).data;return!Array.isArray(u)&&u.type==="file"&&u.content!=null?Buffer.from(u.content,"base64").toString("utf-8"):void 0}catch{return}}var k6o=re(()=>{"use strict";$Vn();ydt()});function Q6o(e){return N6o.default.prerelease(e)!=null}async function bqt(e,t){let{owner:r,repo:n}=KO(e),i=t?.authToken??process.env.GITHUB_TOKEN,o=i!=null?new Vle({auth:i}):new Vle;try{let a=(await o.rest.repos.getLatestRelease({owner:r,repo:n})).data.tag_name;return Q6o(a)?(await o.paginate(o.rest.repos.listReleases,{owner:r,repo:n,per_page:100},(c,l)=>{for(let p of c.data)if(!(p.draft||p.prerelease)&&!Q6o(p.tag_name))return l(),[p.tag_name];return[]}))[0]:a}catch{return}}var N6o,j6o=re(()=>{"use strict";$Vn();N6o=Ce(Yx(),1);ydt()});async function M6o(e,t,r){try{await e.fetch($Vt,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 L6o=re(()=>{"use strict";Adt()});var Bdt={};Y(Bdt,{ClonedRepository:()=>h4e,cloneRepository:()=>HVt,createOrUpdatePullRequest:()=>k5o,deleteBranch:()=>N5o,getFileContent:()=>yqt,getLatestRelease:()=>bqt,getOrUpdateBranch:()=>M6o,parseRepository:()=>KO});var $re=re(()=>{"use strict";gVn();F5o();Q5o();j5o();k6o();j6o();L6o();ydt()});var rqn=y($xe=>{"use strict";$xe.parse=$xe.decode=tPc;$xe.stringify=$xe.encode=aVo;$xe.safe=v4e;$xe.unsafe=xqt;var tqn=typeof process<"u"&&process.platform==="win32"?`\r
108
108
  `:`
109
109
  `;function aVo(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+=v4e(o+"[]")+i+v4e(c)+`
110
110
  `}):u&&typeof u=="object"?r.push(o):n+=v4e(o)+i+v4e(u)+tqn}),t.section&&n.length&&(n="["+v4e(t.section)+"]"+tqn+n),r.forEach(function(o,s,a){var u=uVo(o).join("\\."),c=(t.section?t.section+".":"")+u,l=aVo(e[o],{section:c,whitespace:t.whitespace});n.length&&l.length&&(n+=tqn),n+=l}),n}function uVo(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 tPc(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=xqt(c[1]),n==="__proto__"){r={};return}r=t[n]=t[n]||{};return}var l=xqt(c[2]);if(l!=="__proto__"){var p=c[3]?xqt(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=uVo(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 cVo(e){return e.charAt(0)==='"'&&e.slice(-1)==='"'||e.charAt(0)==="'"&&e.slice(-1)==="'"}function v4e(e){return typeof e!="string"||e.match(/[=\r\n]/)||e.match(/^\[/)||e.length>1&&cVo(e)||e!==e.trim()?JSON.stringify(e):e.replace(/;/g,"\\;").replace(/#/g,"\\#")}function xqt(e,t){if(e=(e||"").trim(),cVo(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 fVo=y((Oeg,pVo)=>{"use strict";var nqn=1,lVo=2;function rPc(){return""}function nPc(e,t,r){return e.slice(t,r).replace(/\S/g," ")}pVo.exports=function(e,t){t=t||{};for(var r,n,i=!1,o=!1,s=0,a="",u=t.whitespace===!1?rPc:nPc,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=nqn,c++;else if(o===nqn&&r+n===`\r
@@ -1655,7 +1655,7 @@ ${c1a.default.cursorShow}`)}releaseCursor(){this.extraLinesUnderPrompt>0&&NBi(th
1655
1655
  `+$Pe.default.red(">> ")+t),this.screen.render(r,n)}getMaskedValue(t){return this.status==="answered"?this.opt.mask?$Pe.default.cyan(y1a(t,this.opt.mask)):$Pe.default.italic($Pe.default.dim("[hidden]")):this.opt.mask?y1a(t,this.opt.mask):$Pe.default.italic($Pe.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 xvr=Ce(qI(),1);var ASa=Ce(yOi(),1),wvr=require("child_process"),q9e=require("fs"),Ivr=Ce(require("path"),1),ySa=Ce(require("os"),1),bSa=require("crypto"),rPi=Ce(hSa(),1);var bvr=class extends Error{originalError;constructor(t){super(`Failed to create temporary file. ${t.message}`),this.originalError=t}};var cxt=class extends Error{originalError;constructor(t){super(`Failed to launch editor. ${t.message}`),this.originalError=t}};var Evr=class extends Error{originalError;constructor(t){super(`Failed to read temporary file. ${t.message}`),this.originalError=t}};var vvr=class extends Error{originalError;constructor(t){super(`Failed to remove temporary file. ${t.message}`),this.originalError=t}};function Cvr(e="",t,r){let n=new nPi(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 gSa(e){return e?e.replace(/[^a-zA-Z0-9_.-]/g,"_"):""}function xEf(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 nPi=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=xEf(t).map(i=>i.replace("\\ "," ")),n=r.shift();this.editor={args:r,bin:n}}createTemporaryFile(){try{let t=this.fileOptions.dir??ySa.default.tmpdir(),r=(0,bSa.randomUUID)(),n=gSa(this.fileOptions.prefix),i=gSa(this.fileOptions.postfix),o=`${n}${r}${i}`,s=Ivr.default.resolve(t,o),a=Ivr.default.resolve(t)+Ivr.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,q9e.writeFileSync)(this.tempFile,this.text,u)}catch(t){throw new bvr(t)}}readTemporaryFile(){try{let t=(0,q9e.readFileSync)(this.tempFile);if(t.length===0)this.text="";else{let r=(0,ASa.detect)(t)??"utf8";rPi.default.encodingExists(r)||(r="utf8"),this.text=rPi.default.decode(t,r)}}catch(t){throw new Evr(t)}}removeTemporaryFile(){try{(0,q9e.unlinkSync)(this.tempFile)}catch(t){throw new vvr(t)}}launchEditor(){try{let t=(0,wvr.spawnSync)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=t.status??0}catch(t){throw new cxt(t)}}launchEditorAsync(t){try{(0,wvr.spawn)(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",n=>{this.lastExitStatus=n,setImmediate(t)})}catch(r){throw new cxt(r)}}};var ESa=Ce(qQ(),1);var lxt=class extends GI{_run(t){this.done=t,this.editorResult=new ESa.Subject;let r=u1(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"?xvr.default.dim("Received"):xvr.default.dim("Press <enter> to launch your preferred editor."),t&&(r=xvr.default.red(">> ")+t),this.screen.render(n,r)}startExternalEditor(){this.rl.pause(),Cvr(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 xSa=require("stream");var wSa=Ce(require("readline"),1),CSa=Ce(ISa(),1),YPe=class{constructor(t){this.rl||=wSa.default.createInterface(SEf(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 SEf(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 CSa.default;return r.pipe(e.output||process.stdout),{terminal:!0,...e,input:t,output:r}}var pxt=class extends YPe{constructor(t={}){super(t),this.log=new xSa.Writable({write:(r,n,i)=>{this.writeLog(r),i()}}),this.bottomBar=t.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return HCt(this.rl,this.bottomBar.split(`
1656
1656
  `).length),this}updateBottomBar(t){return HCt(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+`
1657
1657
  `}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&&$Er(this.rl,t.length+this.rl.line.length),this.rl.output.write(t)}};var vf=Ce(qQ(),1),BSa=Ce(xCt(),1);var _vr=Ce(qQ(),1),_Sa=Ce(xCt(),1),Svr=function(e,t,r){return typeof e[t]!="function"?(0,_vr.of)(e):(0,_vr.from)((0,_Sa.default)(e[t])(r).then(n=>(e[t]=n,e)))};var SSa={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}},G9e=class extends YPe{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,vf.from)(t):(0,vf.isObservable)(t)?n=t:Object.values(t).every(i=>typeof i=="object"&&!Array.isArray(i)&&i!=null)?n=(0,vf.from)(Object.entries(t).map(([i,o])=>({name:i,...o}))):n=(0,vf.from)([t]),this.process=n.pipe((0,vf.concatMap)(this.processQuestion.bind(this)),(0,vf.publish)()),this.process.connect(),this.process.pipe((0,vf.reduce)((i,o)=>(SSa.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,vf.defer)(()=>(0,vf.of)(t).pipe((0,vf.concatMap)(this.setDefaultType.bind(this)),(0,vf.concatMap)(this.filterIfRunnable.bind(this)),(0,vf.concatMap)(()=>Svr(t,"message",this.answers)),(0,vf.concatMap)(()=>Svr(t,"default",this.answers)),(0,vf.concatMap)(()=>Svr(t,"choices",this.answers)),(0,vf.concatMap)(this.fetchAnswer.bind(this))))}fetchAnswer(t){let r=this.prompts[t.type];return this.activePrompt=new r(t,this.rl,this.answers),(0,vf.defer)(()=>(0,vf.from)(this.activePrompt.run().then(n=>({name:t.name,answer:n}))))}setDefaultType(t){return this.prompts[t.type]||(t.type="input"),(0,vf.defer)(()=>(0,vf.of)(t))}filterIfRunnable(t){if(t.askAnswered!==!0&&SSa.get(this.answers,t.name)!==void 0)return vf.EMPTY;if(t.when===!1)return vf.EMPTY;if(typeof t.when!="function")return(0,vf.of)(t);let{answers:r}=this;return(0,vf.defer)(()=>(0,vf.from)((0,BSa.default)(t.when)(r).then(n=>{if(n)return t})).pipe((0,vf.filter)(n=>n!=null)))}};function OSa(e){let t=function(r,n){let i;try{i=new G9e(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",JCt),this.registerPrompt("input",WPe),this.registerPrompt("number",YCt),this.registerPrompt("confirm",XCt),this.registerPrompt("rawlist",ZCt),this.registerPrompt("expand",ext),this.registerPrompt("checkbox",txt),this.registerPrompt("password",rxt),this.registerPrompt("editor",lxt)},t.restoreDefaultPrompts(),t}var oPi=OSa();function OEf(e,t){oPi.registerPrompt(e,t)}function PEf(){oPi.restoreDefaultPrompts()}var TEf={prompt:oPi,ui:{BottomBar:pxt,Prompt:G9e},createPromptModule:OSa,registerPrompt:OEf,restoreDefaultPrompts:PEf,Separator:EF},pp=TEf;var W9e=require("path");function TSa(){let e=DEf();return async t=>{for(let r of t)r.module=e(r.filename);return t}}function DEf(e=process.argv[1]?(0,W9e.dirname)(process.argv[1]):process.cwd(),t=W9e.sep==="\\"){let r=t?PSa(e):e;return n=>{if(!n)return;let i=t?PSa(n):n,{dir:o,base:s,ext:a}=W9e.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 PSa(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var sPi=e=>{if("flags"in e){let t=DSa(e.flags),r=RSa(e.flags);return{...e,featureFlags:t,featureFlagPayloads:r}}{let t=e.featureFlags??{},r=Object.fromEntries(Object.entries(e.featureFlagPayloads||{}).map(([i,o])=>[i,aPi(o)])),n=Object.fromEntries(Object.entries(t).map(([i,o])=>[i,REf(i,o,r[i])]));return{...e,featureFlags:t,featureFlagPayloads:r,flags:n}}};function REf(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 DSa=e=>Object.fromEntries(Object.entries(e??{}).map(([t,r])=>[t,fxt(r)]).filter(([,t])=>t!==void 0)),RSa=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?aPi(n):void 0]}))};var fxt=e=>e===void 0?void 0:e.variant??e.enabled,aPi=e=>{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}};var Bvr="0123456789abcdef",Ovr=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+=Bvr.charAt(this.bytes[r]>>>4),t+=Bvr.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+=Bvr.charAt(this.bytes[r]>>>4),t+=Bvr.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}},uPi=class{constructor(t){this.timestamp=0,this.counter=0,this.random=t??FEf()}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 Ovr.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,Ovr.ofInner(t)}},FEf=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),FSa,pK=()=>kEf().toString(),kEf=()=>(FSa||(FSa=new uPi)).generate();var IF=(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 QEf=["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"],kSa=function(e,t=[]){if(!e)return!1;let r=e.toLowerCase();return QEf.concat(t).some(n=>{let i=n.toLowerCase();return r.indexOf(i)!==-1})};var jEf=Array.isArray,QSa=Object.prototype,$My=QSa.hasOwnProperty,cPi=QSa.toString,lPi=jEf||function(e){return cPi.call(e)==="[object Array]"};var pPi=e=>e===Object(e)&&!lPi(e);var $9e=e=>e===void 0,dxt=e=>cPi.call(e)=="[object String]",NSa=e=>dxt(e)&&e.trim().length===0;var jSa=e=>cPi.call(e)=="[object Number]"&&e===e;var fPi=e=>e instanceof Error;function mxt(e){return e===null||typeof e!="object"}function XPe(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function MSa(e){return XPe(e,"ErrorEvent")}function Pvr(e){return!$9e(Event)&&MEf(e,Event)}function LSa(e){return XPe(e,"Object")}function MEf(e,t){try{return e instanceof t}catch{return!1}}function hxt(e,t,r,n,i){return t>r&&(n.warn("min cannot be greater than max."),t=r),jSa(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),hxt(i||r,t,r,n))}var LEf=864e5,Tvr=class{constructor(t){this._buckets={},this._onBucketRateLimited=t._onBucketRateLimited,this._bucketSize=hxt(t.bucketSize,0,100,t._logger),this._refillRate=hxt(t.refillRate,0,this._bucketSize,t._logger),this._refillInterval=hxt(t.refillInterval,0,LEf,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 Dvr=class{add(t){let r=pK();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 UEf(e=console){return{log:e.log.bind(e),warn:e.warn.bind(e),error:e.error.bind(e),debug:e.debug.bind(e)}}var USa=(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=>USa(`${e} ${o}`,t,r)}},zEf=e=>e();function zSa(e,t=zEf){return USa(e,t,UEf())}var K9e="Mobile",Fvr="iOS",H9e="Android",VSa="Tablet",o4y=H9e+" "+VSa;var VEf="Apple",s4y=VEf+" Watch",qSa="Safari",kvr="BlackBerry",GSa="Samsung",qEf=GSa+"Browser",GEf=GSa+" Internet",Qvr="Chrome",WEf=Qvr+" OS",$Ef=Qvr+" "+Fvr,WSa="Internet Explorer",HEf=WSa+" "+K9e,mPi="Opera",a4y=mPi+" Mini",$Sa="Edge",KEf="Microsoft "+$Sa,hPi="Firefox",JEf=hPi+" "+Fvr,gPi="Nintendo",APi="PlayStation",Rvr="Xbox",YEf=H9e+" "+K9e,XEf=K9e+" "+qSa,gxt="Windows",ZEf=gxt+" Phone";var HSa="Generic",u4y=HSa+" "+K9e.toLowerCase(),c4y=HSa+" "+VSa.toLowerCase(),evf="Konqueror",QP="(\\d+(\\.\\d+)?)",dPi=new RegExp("Version/"+QP),l4y=new RegExp(Rvr,"i"),p4y=new RegExp(APi+" \\w+","i"),f4y=new RegExp(gPi+" \\w+","i"),tvf=new RegExp(kvr+"|PlayBook|BB10","i"),rvf={"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 d4y={[HEf]:[new RegExp("rv:"+QP)],[KEf]:[new RegExp($Sa+"?\\/"+QP)],[Qvr]:[new RegExp("("+Qvr+"|CrMo)\\/"+QP)],[$Ef]:[new RegExp("CriOS\\/"+QP)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+QP)],[qSa]:[dPi],[XEf]:[dPi],[mPi]:[new RegExp("("+mPi+"|OPR)\\/"+QP)],[hPi]:[new RegExp(hPi+"\\/"+QP)],[JEf]:[new RegExp("FxiOS\\/"+QP)],[evf]:[new RegExp("Konqueror[:/]?"+QP,"i")],[kvr]:[new RegExp(kvr+" "+QP),dPi],[YEf]:[new RegExp("android\\s"+QP,"i")],[GEf]:[new RegExp(qEf+"\\/"+QP)],[WSa]:[new RegExp("(rv:|MSIE )"+QP)],Mozilla:[new RegExp("rv:"+QP)]};var m4y=[[new RegExp(Rvr+"; "+Rvr+" (.*?)[);]","i"),e=>[Rvr,e&&e[1]||""]],[new RegExp(gPi,"i"),[gPi,""]],[new RegExp(APi,"i"),[APi,""]],[tvf,[kvr,""]],[new RegExp(gxt,"i"),(e,t)=>{if(/Phone/.test(t)||/WPDesktop/.test(t))return[ZEf,""];if(new RegExp(K9e).test(t)&&!/IEMobile\b/.test(t))return[gxt+" "+K9e,""];let r=/Windows NT ([0-9.]+)/i.exec(t);if(r&&r[1]){let n=r[1],i=rvf[n]||"";return/arm/i.test(t)&&(i="RT"),[gxt,i]}return[gxt,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,e=>{if(e&&e[3]){let t=[e[3],e[4],e[5]||"0"];return[Fvr,t.join(".")]}return[Fvr,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,e=>{let t="";return e&&e.length>=3&&(t=$9e(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+H9e+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+H9e+")","i"),e=>{if(e&&e[2]){let t=[e[2],e[3],e[4]||"0"];return[H9e,t.join(".")]}return[H9e,""]}],[/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/,[WEf,""]],[/Linux|debian/i,["Linux",""]]];var KSa="utf8";function JSa(e,t){if(!e||typeof e!="string"||nvf(e))throw new Error(t)}function nvf(e){return e.trim().length===0}function YSa(e){return e?.replace(/\/+$/,"")}async function XSa(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 Nvr(){return new Date().toISOString()}function ZPe(e,t){let r=setTimeout(e,t);return r?.unref&&r?.unref(),r}var ZSa=e=>e instanceof Error;function yPi(e){return Promise.all(e.map(t=>(t??Promise.resolve()).then(r=>({status:"fulfilled",value:r}),r=>({status:"rejected",reason:r}))))}var jvr=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 eBa(){return"CompressionStream"in globalThis}async function bPi(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 eTe=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()}},J9e=class extends Error{constructor(t){super("Network error while fetching PostHog",t instanceof Error?{cause:t}:{}),this.error=t,this.name="PostHogFetchNetworkError"}};async function tBa(e){if(e instanceof eTe){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 EPi(e){return typeof e=="object"&&(e instanceof eTe||e instanceof J9e)}function rBa(e){return typeof e=="object"&&e instanceof eTe&&e.status===413}var Axt=class{constructor(t,r={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new Dvr,this._events=new jvr,this._isInitialized=!1,JSa(t,"You must pass your PostHog project's api key."),this.apiKey=t,this.host=YSa(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:EPi},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=zSa("[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=!eBa()||(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(IF.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(IF.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(IF.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:sPi(p)})).catch(p=>(this._events.emit("error",p),{success:!1,error:this.categorizeRequestError(p)}))}categorizeRequestError(t){if(t instanceof eTe)return{type:"api_error",statusCode:t.status};if(t instanceof J9e){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=fxt(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(IF.Props)),this._props||{}}set props(t){this._props=t}async register(t){this.wrap(()=>{this.props={...this.props,...t},this.setPersistedProperty(IF.Props,this.props)})}async unregister(t){this.wrap(()=>{delete this.props[t],this.setPersistedProperty(IF.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(IF.Queue)||[];o.length>=this.maxQueueSize&&(o.shift(),this._logger.info("Queue is full, the oldest event is dropped.")),o.push({message:i}),this.setPersistedProperty(IF.Queue,o),this._events.emit(t,i),o.length>=this.flushAt&&this.flushBackground(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=ZPe(()=>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:Nvr()};this.historicalMigration&&(o.historical_migration=!0);let s=JSON.stringify(o),a=`${this.host}/batch/`,u=this.disableCompression?null:await bPi(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:Nvr(),uuid:n?.uuid?n.uuid:pK()};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 tBa(t)})}async flush(){let t=yPi([this.flushPromise]).then(()=>this._flush());return this.flushPromise=t,this.addPendingPromise(t),yPi([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(IF.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(IF.Queue)||[]).slice(i.length);this.setPersistedProperty(IF.Queue,m),t=m,await this.flushStorage()},a={api_key:this.apiKey,batch:o,sent_at:Nvr()};this.historicalMigration&&(a.historical_migration=!0);let u=JSON.stringify(a),c=`${this.host}/batch/`,l=this.disableCompression?null:await bPi(u,this.isDebug),p={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...l!==null&&{"Content-Encoding":"gzip"}},body:l||u},d={retryCheck:f=>rBa(f)?!1:EPi(f)};try{await this.fetchWithRetry(c,p,d)}catch(f){if(rBa(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 J9e||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,KSa)}catch{o instanceof Blob?s=o.size:s=new TextEncoder().encode(o).length}return await XSa(async()=>{let a=null;try{a=await this.fetch(t,{signal:AbortSignal.timeout(i??this.requestTimeout),...r})}catch(c){throw new J9e(c)}if(!(r.mode==="no-cors")&&(a.status<200||a.status>=400))throw new eTe(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(IF.Queue)||[]).length===0||(await this.flush(),r)););}catch(i){if(!EPi(i))throw i;await tBa(i)}};return Promise.race([new Promise((i,o)=>{ZPe(()=>{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 wF={};Y(wF,{DOMExceptionCoercer:()=>CPi,ErrorCoercer:()=>xPi,ErrorEventCoercer:()=>_Pi,ErrorPropertiesBuilder:()=>vPi,EventCoercer:()=>OPi,ObjectCoercer:()=>BPi,PrimitiveCoercer:()=>PPi,PromiseRejectionEventCoercer:()=>TPi,ReduceableCache:()=>DPi,StringCoercer:()=>SPi,chromeStackLineParser:()=>IPi,createDefaultStackParser:()=>yvf,createStackParser:()=>dBa,geckoStackLineParser:()=>wPi,nodeStackLineParser:()=>cBa,opera10StackLineParser:()=>sBa,opera11StackLineParser:()=>aBa,reverseAndStripFrames:()=>fBa,winjsStackLineParser:()=>oBa});var Mvr,nBa,Lvr;function iBa(e){let t=globalThis._posthogChunkIds;if(!t)return;let r=Object.keys(t);return Lvr&&r.length===nBa||(nBa=r.length,Lvr=r.reduce((n,i)=>{Mvr||(Mvr={});let o=Mvr[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,Mvr[i]=[c,l];break}}}return n},{})),Lvr}var ovf=4,vPi=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&&lPi(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:iBa(this.stackParser),skipFirstLines:t.skipFirstLines??1}}buildCoercingContext(t,r,n=0){let i=(s,a)=>{if(a<=ovf){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 l1="?";function fK(e,t,r,n,i){let o={platform:e,filename:t,function:r==="<anonymous>"?l1:r,in_app:!0};return $9e(n)||(o.lineno=n),$9e(i)||(o.colno=i),o}var Uvr=(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]:l1,r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};var svf=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,avf=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,uvf=/\((\S*)(?::(\d+))(?::(\d+))\)/,IPi=(e,t)=>{let r=svf.exec(e);if(r){let[,i,o,s]=r;return fK(t,i,l1,+o,+s)}let n=avf.exec(e);if(n){if(n[2]&&n[2].indexOf("eval")===0){let a=uvf.exec(n[2]);a&&(n[2]=a[1],n[3]=a[2],n[4]=a[3])}let[o,s]=Uvr(n[1]||l1,n[2]);return fK(t,s,o,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}};var cvf=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,lvf=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,wPi=(e,t)=>{let r=cvf.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){let s=lvf.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]||l1;return[o,i]=Uvr(o,i),fK(t,i,o,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}};var pvf=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,oBa=(e,t)=>{let r=pvf.exec(e);return r?fK(t,r[2],r[1]||l1,+r[3],r[4]?+r[4]:void 0):void 0};var fvf=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,sBa=(e,t)=>{let r=fvf.exec(e);return r?fK(t,r[2],r[3]||l1,+r[1]):void 0},dvf=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,aBa=(e,t)=>{let r=dvf.exec(e);return r?fK(t,r[5],r[3]||r[4]||l1,+r[1],+r[2]):void 0};var mvf=/^\s*[-]{4,}$/,hvf=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,cBa=(e,t)=>{let r=e.match(hvf);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||l1,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:uBa(r[3]),colno:uBa(r[4]),in_app:gvf(u||"",c),platform:t}}if(e.match(mvf))return{filename:e,platform:t}};function gvf(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 uBa(e){return parseInt(e||"",10)||void 0}var lBa=/\(error: (.*)\)/,pBa=50;function fBa(e){if(!e.length)return[];let t=Array.from(e);return t.reverse(),t.slice(0,pBa).map(r=>({...r,filename:r.filename||Avf(t).filename,function:r.function||l1}))}function Avf(e){return e[e.length-1]||{}}function yvf(){return dBa("web:javascript",IPi,wPi)}function dBa(e,...t){return(r,n=0)=>{let i=[],o=r.split(`
1658
- `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let u=lBa.test(a)?a.replace(lBa,"$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>=pBa)break}}return fBa(i)}}var CPi=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=dxt(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 XPe(t,"DOMException")}isDOMError(t){return XPe(t,"DOMError")}};var xPi=class{match(t){return fPi(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 _Pi=class{constructor(){}match(t){return MSa(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 bvf=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,SPi=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(bvf);return i&&(r=i[1],n=i[2]),[r,n]}};var mBa=["fatal","error","warning","log","info","debug"];function zvr(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 BPi=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 Pvr(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=zvr(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return dxt(t)&&!NSa(t)&&mBa.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(ZSa(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var OPi=class{match(t){return Pvr(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${zvr(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var PPi=class{match(t){return mxt(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var TPi=class{match(t){return XPe(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return mxt(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(mxt(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 DPi=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 ABa=require("fs"),yBa=require("readline"),Vvr=new wF.ReduceableCache(25),bBa=new wF.ReduceableCache(20),RPi=7,Evf=1e3,vvf=1e4;async function EBa(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"||xvf(s)||_vf(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(bBa.get(i))continue;let o=t[i];if(!o)continue;o.sort((u,c)=>u-c);let s=Bvf(o);if(s.every(u=>Svf(i,u)))continue;let a=Ovf(Vvr,i,{});n.push(Ivf(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&wvf(e,Vvr),Vvr.reduce(),e}function Ivf(e,t,r){return new Promise(n=>{let i=(0,ABa.createReadStream)(e),o=(0,yBa.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(){bBa.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]=Pvf(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 wvf(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;Cvf(r.lineno,r,n)}}function Cvf(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=vBa(e);i<e;i++){let o=r[i];if(o===void 0)return void hBa(t);t.pre_context.push(o)}if(r[e]===void 0)return void hBa(t);t.context_line=r[e];let n=IBa(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 hBa(e){delete e.pre_context,delete e.context_line,delete e.post_context}function xvf(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function _vf(e){return e.lineno!==void 0&&e.lineno>vvf||e.colno!==void 0&&e.colno>Evf}function Svf(e,t){let r=Vvr.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 Bvf(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=gBa(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+RPi:(i.push(n),n=gBa(o)),t++}return i}function gBa(e){return[vBa(e),IBa(e)]}function vBa(e){return Math.max(1,e-RPi)}function IBa(e){return e+RPi}function Ovf(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function Pvf(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 Tvf(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 wBa(e,t){globalThis.process?.on("uncaughtException",Tvf(e,t))}function CBa(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var Dvf=2e3,cV=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new Tvr({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return pPi(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||pK(),properties:{...s,...o},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){this.isEnabled()&&(wBa(this.onException.bind(this),this.onFatalError.bind(this)),CBa(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(Dvf),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var xBa="5.26.2";var yxt={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function _Ba(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 Rvf=6e4,Fvf=1152921504606847e3,kvf=["is_not"],Y9e=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},uh=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},dK=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},qvr=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 dK||c instanceof uh?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 dK||c instanceof uh?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 uh("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 uh("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 uh(`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 uh("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new uh(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new uh(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new uh(`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 uh(`Error evaluating flag dependency '${u}' for flag '${o}': ${p}`)}else i[u]=!1;else throw new uh(`Missing flag dependency '${u}' for flag '${o}'`)}if(i[u]==null)throw new uh(`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 dK)throw l;if(l instanceof uh)a=!0;else throw l}if(u!==void 0)return u;if(a)throw new uh("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"?TBa(u,i,this.cohorts,this.debugMode):c==="flag"?await this.evaluateFlagDependency(u,i,o):PBa(u,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await SBa(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await SBa(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(Rvf,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 Y9e(`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 Y9e(`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 Y9e(`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 Y9e&&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=ZPe(()=>{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 SBa(e,t,r=""){let n=await _Ba(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/Fvf}function PBa(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 uh("Operator is_not_set is not supported")}else throw new uh(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!kvf.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 BBa(String(i))&&String(s).match(String(i))!==null;case"not_regex":return BBa(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 uh("Date operations cannot be performed on boolean values");let c=Nvf(String(i));if(c==null&&(c=OBa(i)),c==null)throw new uh(`Invalid date: ${i}`);let l=OBa(s);return["is_date_before"].includes(o)?l<c:l>c}default:throw new uh(`Unknown operator: ${o}`)}}function Qvf(e,t){if(!(e in t))throw new dK(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function TBa(e,t,r,n=!1){let i=String(e.value);Qvf(i,r);let o=r[i];return DBa(o,t,r,n)}function DBa(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=DBa(a,t,r,n);if(i==="AND"){if(!u)return!1}else if(u)return!0}catch(u){if(u instanceof dK)throw u;if(u instanceof uh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new uh("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=TBa(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=PBa(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 dK)throw u;if(u instanceof uh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new uh("can't match cohort without a given cohort property value");return i==="AND"}function BBa(e){try{return new RegExp(e),!0}catch{return!1}}function OBa(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 uh(`${e} is in an invalid date format`)}throw new uh(`The date provided ${e} must be a string, number, or date object`)}function Nvf(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 Gvr=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var jvf=100,RBa=3e4,Mvf=5e4,Wvr=class extends Axt{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Gvr,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,jvf):RBa,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 qvr({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 cV(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||Mvf}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 xBa}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=RBa){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 x=this._payloadOverrides?.[t];return{key:t,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:x}}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,g,A,b,v,E;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let w=this.featureFlagsPoller?.featureFlagsByKey[t];if(w)try{let x=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(w,d,{matchValue:i});if(x){m=!0;let C=x.value;b=w.id,E="Evaluated locally",f={key:t,enabled:C!==!1,variant:typeof C=="string"?C:void 0,payload:x.payload??void 0}}}catch(x){if(x instanceof dK||x instanceof uh)this._logger?.info(`${x.name} when computing flag locally: ${t}: ${x.message}`);else throw x}}if(!m&&!u){let w=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(w===void 0)A=yxt.UNKNOWN_ERROR;else{h=w.requestId,g=w.evaluatedAt;let x=[];w.errorsWhileComputingFlags&&x.push(yxt.ERRORS_WHILE_COMPUTING),w.quotaLimited?.includes("feature_flags")&&x.push(yxt.QUOTA_LIMITED);let C=w.flags[t];if(C===void 0)x.push(yxt.FLAG_MISSING);else{b=C.metadata?.id,v=C.metadata?.version,E=C.reason?.description??C.reason?.code;let _;if(C.metadata?.payload!==void 0)try{_=JSON.parse(C.metadata.payload)}catch{_=C.metadata.payload}f={key:t,enabled:C.enabled,variant:C.variant,payload:_}}x.length>0&&(A=x.join(","))}}if(o){let w=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,x=`${t}_${w}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(x)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(x):this.distinctIdHasSentFlagCalls[r]=[x];let C={$feature_flag:t,$feature_flag_response:w,$feature_flag_id:b,$feature_flag_version:v,$feature_flag_reason:E,locally_evaluated:m,[`$feature/${t}`]:w,$feature_flag_request_id:h,$feature_flag_evaluated_at:m?Date.now():g};if(m&&this.featureFlagsPoller){let _=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();_!==void 0&&(C.$feature_flag_definitions_loaded_at=_)}A&&(C.$feature_flag_error=A),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={},g=!0;if(f&&(m=f.response,h=f.payloads,g=f.fallbackToFlags),g&&!u){let A=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...A.flags||{}},h={...h,...A.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=ZPe(()=>{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(LSa(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(!cV.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(cV.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!cV.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(cV.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=pK(),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 g={};if(h)for(let[b,v]of Object.entries(h))g[`$feature/${b}`]=v;let A=Object.keys(h||{}).filter(b=>h?.[b]!==!1).sort();return A.length>0&&(g.$active_feature_flags=A),g}).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"&&kSa(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 FBa=require("async_hooks"),$vr=class{constructor(){this.storage=new FBa.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 kBa="posthog-node";function Lvf(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[FPi.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 FPi=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=kBa,this.name=kBa,this.setupOnce=function(s,a){let u=a()?.getClient()?.getDsn()?.projectId;s(Lvf(t,{organization:r,projectId:u,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};cV.errorPropertiesBuilder=new wF.ErrorPropertiesBuilder([new wF.EventCoercer,new wF.ErrorCoercer,new wF.ObjectCoercer,new wF.StringCoercer,new wF.PrimitiveCoercer],wF.createStackParser("node:javascript",wF.nodeStackLineParser),[TSa(),EBa]);var X9e=class extends Wvr{getLibraryId(){return"posthog-node"}initializeContext(){return new $vr}};var Hvr=class{posthog;constructor({posthogApiKey:t}){this.posthog=new X9e(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"4.37.6",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var bxt=class{async sendEvent(){}async identify(){}async flush(){}};qt();var Z9e=require("fs/promises"),QBa=require("os"),NBa=require("path");var Uvf="id",zvf=".fern",Ext=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new X9e(r),this.userId=t==null?void 0:YCi(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.37.6",...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 kA({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=Ge(Ut.of((0,QBa.homedir)()),xe.of(zvf),xe.of(Uvf));await Zt(t)||(await(0,Z9e.mkdir)((0,NBa.dirname)(t),{recursive:!0}),await(0,Z9e.writeFile)(t,EC())),this.persistedDistinctId=(await(0,Z9e.readFile)(t)).toString()}return this.persistedDistinctId}};var kPi;async function eGe(){return kPi==null&&(kPi=await Vvf()),kPi}async function Vvf(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new bxt;let r=await agr();return r!=null?new Ext({token:r,posthogApiKey:e}):await HH()!=null?new Hvr({posthogApiKey:e}):new Ext({token:void 0,posthogApiKey:e})}catch{return new bxt}}St();var vxt=Ce(require("process"),1);ENe();var LBa=Ce(HAi(),1),UBa=Ce(MBa(),1);function NC(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=w5(e),e.length===0))return 0;e=e.replace((0,UBa.default)()," ");let r=t.ambiguousIsNarrow?1:2,n=0;for(let i of e){let o=i.codePointAt(0);if(o<=31||o>=127&&o<=159||o>=768&&o<=879)continue;switch(LBa.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}function Kvr(e){let t=0;for(let r of e.split(`
1658
+ `);for(let s=n;s<o.length;s++){let a=o[s];if(a.length>1024)continue;let u=lBa.test(a)?a.replace(lBa,"$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>=pBa)break}}return fBa(i)}}var CPi=class{match(t){return this.isDOMException(t)||this.isDOMError(t)}coerce(t,r){let n=dxt(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 XPe(t,"DOMException")}isDOMError(t){return XPe(t,"DOMError")}};var xPi=class{match(t){return fPi(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 _Pi=class{constructor(){}match(t){return MSa(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 bvf=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,SPi=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(bvf);return i&&(r=i[1],n=i[2]),[r,n]}};var mBa=["fatal","error","warning","log","info","debug"];function zvr(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 BPi=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 Pvr(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=zvr(t);return`${r&&r!=="Object"?`'${r}'`:"Object"} captured as exception with keys: ${n}`}isSeverityLevel(t){return dxt(t)&&!NSa(t)&&mBa.indexOf(t)>=0}getErrorPropertyFromObject(t){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=t[r];if(ZSa(n))return n}}getObjectClassName(t){try{let r=Object.getPrototypeOf(t);return r?r.constructor.name:void 0}catch{return}}};var OPi=class{match(t){return Pvr(t)}coerce(t,r){let n=t.constructor.name;return{type:n,value:`${n} captured as exception with keys: ${zvr(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var PPi=class{match(t){return mxt(t)}coerce(t,r){return{type:"Error",value:`Primitive value captured as exception: ${String(t)}`,stack:r.syntheticException?.stack,synthetic:!0}}};var TPi=class{match(t){return XPe(t,"PromiseRejectionEvent")}coerce(t,r){let n=this.getUnhandledRejectionReason(t);return mxt(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(mxt(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 DPi=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 ABa=require("fs"),yBa=require("readline"),Vvr=new wF.ReduceableCache(25),bBa=new wF.ReduceableCache(20),RPi=7,Evf=1e3,vvf=1e4;async function EBa(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"||xvf(s)||_vf(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(bBa.get(i))continue;let o=t[i];if(!o)continue;o.sort((u,c)=>u-c);let s=Bvf(o);if(s.every(u=>Svf(i,u)))continue;let a=Ovf(Vvr,i,{});n.push(Ivf(i,s,a))}return await Promise.all(n).catch(()=>{}),e&&e.length>0&&wvf(e,Vvr),Vvr.reduce(),e}function Ivf(e,t,r){return new Promise(n=>{let i=(0,ABa.createReadStream)(e),o=(0,yBa.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(){bBa.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]=Pvf(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 wvf(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;Cvf(r.lineno,r,n)}}function Cvf(e,t,r){if(t.lineno===void 0||r===void 0)return;t.pre_context=[];for(let i=vBa(e);i<e;i++){let o=r[i];if(o===void 0)return void hBa(t);t.pre_context.push(o)}if(r[e]===void 0)return void hBa(t);t.context_line=r[e];let n=IBa(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 hBa(e){delete e.pre_context,delete e.context_line,delete e.post_context}function xvf(e){return e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:")}function _vf(e){return e.lineno!==void 0&&e.lineno>vvf||e.colno!==void 0&&e.colno>Evf}function Svf(e,t){let r=Vvr.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 Bvf(e){if(!e.length)return[];let t=0,r=e[0];if(typeof r!="number")return[];let n=gBa(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+RPi:(i.push(n),n=gBa(o)),t++}return i}function gBa(e){return[vBa(e),IBa(e)]}function vBa(e){return Math.max(1,e-RPi)}function IBa(e){return e+RPi}function Ovf(e,t,r){let n=e.get(t);return n===void 0?(e.set(t,r),r):n}function Pvf(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 Tvf(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 wBa(e,t){globalThis.process?.on("uncaughtException",Tvf(e,t))}function CBa(e){globalThis.process?.on("unhandledRejection",t=>e(t,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var Dvf=2e3,cV=class e{constructor(t,r,n){this.client=t,this._exceptionAutocaptureEnabled=r.enableExceptionAutocapture||!1,this._logger=n,this._rateLimiter=new Tvr({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(t){return pPi(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||pK(),properties:{...s,...o},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){this.isEnabled()&&(wBa(this.onException.bind(this),this.onFatalError.bind(this)),CBa(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(Dvf),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}};var xBa="5.26.2";var yxt={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"};async function _Ba(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 Rvf=6e4,Fvf=1152921504606847e3,kvf=["is_not"],Y9e=class e extends Error{constructor(t){super(),Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=t,Object.setPrototypeOf(this,e.prototype)}},uh=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},dK=class e extends Error{constructor(t){super(t),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,e.prototype)}},qvr=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 dK||c instanceof uh?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 dK||c instanceof uh?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 uh("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 uh("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 uh(`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 uh("Feature flags not available for dependency evaluation");if(!("dependency_chain"in t))throw new uh(`Flag dependency property for '${o}' is missing required 'dependency_chain' field`);let s=t.dependency_chain;if(!Array.isArray(s))throw new uh(`Flag dependency property for '${o}' has an invalid 'dependency_chain' (expected array, got ${typeof s})`);if(s.length===0)throw new uh(`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 uh(`Error evaluating flag dependency '${u}' for flag '${o}': ${p}`)}else i[u]=!1;else throw new uh(`Missing flag dependency '${u}' for flag '${o}'`)}if(i[u]==null)throw new uh(`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 dK)throw l;if(l instanceof uh)a=!0;else throw l}if(u!==void 0)return u;if(a)throw new uh("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"?TBa(u,i,this.cohorts,this.debugMode):c==="flag"?await this.evaluateFlagDependency(u,i,o):PBa(u,i,a),!l)return!1}if(s==null)return!0}return!(s!=null&&await SBa(t.key,r)>s/100)}async getMatchingVariant(t,r){let n=await SBa(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(Rvf,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 Y9e(`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 Y9e(`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 Y9e(`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 Y9e&&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=ZPe(()=>{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 SBa(e,t,r=""){let n=await _Ba(`${e}.${t}${r}`);return parseInt(n.slice(0,15),16)/Fvf}function PBa(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 uh("Operator is_not_set is not supported")}else throw new uh(`Property ${n} not found in propertyValues`);let s=t[n];if(s==null&&!kvf.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 BBa(String(i))&&String(s).match(String(i))!==null;case"not_regex":return BBa(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 uh("Date operations cannot be performed on boolean values");let c=Nvf(String(i));if(c==null&&(c=OBa(i)),c==null)throw new uh(`Invalid date: ${i}`);let l=OBa(s);return["is_date_before"].includes(o)?l<c:l>c}default:throw new uh(`Unknown operator: ${o}`)}}function Qvf(e,t){if(!(e in t))throw new dK(`cohort ${e} not found in local cohorts - likely a static cohort that requires server evaluation`)}function TBa(e,t,r,n=!1){let i=String(e.value);Qvf(i,r);let o=r[i];return DBa(o,t,r,n)}function DBa(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=DBa(a,t,r,n);if(i==="AND"){if(!u)return!1}else if(u)return!0}catch(u){if(u instanceof dK)throw u;if(u instanceof uh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new uh("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=TBa(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=PBa(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 dK)throw u;if(u instanceof uh)n&&console.debug(`Failed to compute property ${a} locally: ${u}`),s=!0;else throw u}if(s)throw new uh("can't match cohort without a given cohort property value");return i==="AND"}function BBa(e){try{return new RegExp(e),!0}catch{return!1}}function OBa(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 uh(`${e} is in an invalid date format`)}throw new uh(`The date provided ${e} must be a string, number, or date object`)}function Nvf(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 Gvr=class{getProperty(t){return this._memoryStorage[t]}setProperty(t,r){this._memoryStorage[t]=r!==null?r:void 0}constructor(){this._memoryStorage={}}};var jvf=100,RBa=3e4,Mvf=5e4,Wvr=class extends Axt{constructor(t,r={}){if(super(t,r),this._memoryStorage=new Gvr,this.options=r,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof r.featureFlagsPollingInterval=="number"?Math.max(r.featureFlagsPollingInterval,jvf):RBa,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 qvr({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 cV(this,r,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=r.maxCacheSize||Mvf}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 xBa}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=RBa){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 x=this._payloadOverrides?.[t];return{key:t,enabled:w!==!1,variant:typeof w=="string"?w:void 0,payload:x}}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,g,A,b,v,E;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let w=this.featureFlagsPoller?.featureFlagsByKey[t];if(w)try{let x=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(w,d,{matchValue:i});if(x){m=!0;let C=x.value;b=w.id,E="Evaluated locally",f={key:t,enabled:C!==!1,variant:typeof C=="string"?C:void 0,payload:x.payload??void 0}}}catch(x){if(x instanceof dK||x instanceof uh)this._logger?.info(`${x.name} when computing flag locally: ${t}: ${x.message}`);else throw x}}if(!m&&!u){let w=await super.getFeatureFlagDetailsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,a,[t]);if(w===void 0)A=yxt.UNKNOWN_ERROR;else{h=w.requestId,g=w.evaluatedAt;let x=[];w.errorsWhileComputingFlags&&x.push(yxt.ERRORS_WHILE_COMPUTING),w.quotaLimited?.includes("feature_flags")&&x.push(yxt.QUOTA_LIMITED);let C=w.flags[t];if(C===void 0)x.push(yxt.FLAG_MISSING);else{b=C.metadata?.id,v=C.metadata?.version,E=C.reason?.description??C.reason?.code;let _;if(C.metadata?.payload!==void 0)try{_=JSON.parse(C.metadata.payload)}catch{_=C.metadata.payload}f={key:t,enabled:C.enabled,variant:C.variant,payload:_}}x.length>0&&(A=x.join(","))}}if(o){let w=f===void 0?void 0:f.enabled===!1?!1:f.variant??!0,x=`${t}_${w}`;if(!(r in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[r].includes(x)){Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[r])?this.distinctIdHasSentFlagCalls[r].push(x):this.distinctIdHasSentFlagCalls[r]=[x];let C={$feature_flag:t,$feature_flag_response:w,$feature_flag_id:b,$feature_flag_version:v,$feature_flag_reason:E,locally_evaluated:m,[`$feature/${t}`]:w,$feature_flag_request_id:h,$feature_flag_evaluated_at:m?Date.now():g};if(m&&this.featureFlagsPoller){let _=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();_!==void 0&&(C.$feature_flag_definitions_loaded_at=_)}A&&(C.$feature_flag_error=A),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={},g=!0;if(f&&(m=f.response,h=f.payloads,g=f.fallbackToFlags),g&&!u){let A=await super.getFeatureFlagsAndPayloadsStateless(d.distinctId,d.groups,d.personProperties,d.groupProperties,s,a);m={...m,...A.flags||{}},h={...h,...A.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=ZPe(()=>{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(LSa(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(!cV.isPreviouslyCapturedError(t)){let o=new Error("PostHog syntheticException");this.addPendingPromise(cV.buildEventMessage(t,{syntheticException:o},r,n).then(s=>this.capture({...s,uuid:i})))}}async captureExceptionImmediate(t,r,n){if(!cV.isPreviouslyCapturedError(t)){let i=new Error("PostHog syntheticException");this.addPendingPromise(cV.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=pK(),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 g={};if(h)for(let[b,v]of Object.entries(h))g[`$feature/${b}`]=v;let A=Object.keys(h||{}).filter(b=>h?.[b]!==!1).sort();return A.length>0&&(g.$active_feature_flags=A),g}).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"&&kSa(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 FBa=require("async_hooks"),$vr=class{constructor(){this.storage=new FBa.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 kBa="posthog-node";function Lvf(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[FPi.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 FPi=class{static#e=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(t,r,n,i,o){this.name=kBa,this.name=kBa,this.setupOnce=function(s,a){let u=a()?.getClient()?.getDsn()?.projectId;s(Lvf(t,{organization:r,projectId:u,prefix:n,severityAllowList:i,sendExceptionsToPostHog:o??!0}))}}};cV.errorPropertiesBuilder=new wF.ErrorPropertiesBuilder([new wF.EventCoercer,new wF.ErrorCoercer,new wF.ObjectCoercer,new wF.StringCoercer,new wF.PrimitiveCoercer],wF.createStackParser("node:javascript",wF.nodeStackLineParser),[TSa(),EBa]);var X9e=class extends Wvr{getLibraryId(){return"posthog-node"}initializeContext(){return new $vr}};var Hvr=class{posthog;constructor({posthogApiKey:t}){this.posthog=new X9e(t)}async identify(){}async sendEvent(t){t.orgId!=null&&this.posthog.capture({distinctId:t.orgId,event:"CLI",properties:{...t,...t.properties,version:"4.37.7",usingAccessToken:!0}})}async flush(){await this.posthog.flush()}};var bxt=class{async sendEvent(){}async identify(){}async flush(){}};qt();var Z9e=require("fs/promises"),QBa=require("os"),NBa=require("path");var Uvf="id",zvf=".fern",Ext=class{posthog;userId;token;constructor({token:t,posthogApiKey:r}){this.posthog=new X9e(r),this.userId=t==null?void 0:YCi(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.37.7",...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 kA({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=Ge(Ut.of((0,QBa.homedir)()),xe.of(zvf),xe.of(Uvf));await Zt(t)||(await(0,Z9e.mkdir)((0,NBa.dirname)(t),{recursive:!0}),await(0,Z9e.writeFile)(t,EC())),this.persistedDistinctId=(await(0,Z9e.readFile)(t)).toString()}return this.persistedDistinctId}};var kPi;async function eGe(){return kPi==null&&(kPi=await Vvf()),kPi}async function Vvf(){try{let e="phc_yQgAEdJJkVpI24NdSRID2mor1x1leRpDoC9yZ9mfXal",t=process.env.FERN_DISABLE_TELEMETRY==="true";if(e==null||t)return new bxt;let r=await agr();return r!=null?new Ext({token:r,posthogApiKey:e}):await HH()!=null?new Hvr({posthogApiKey:e}):new Ext({token:void 0,posthogApiKey:e})}catch{return new bxt}}St();var vxt=Ce(require("process"),1);ENe();var LBa=Ce(HAi(),1),UBa=Ce(MBa(),1);function NC(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=w5(e),e.length===0))return 0;e=e.replace((0,UBa.default)()," ");let r=t.ambiguousIsNarrow?1:2,n=0;for(let i of e){let o=i.codePointAt(0);if(o<=31||o>=127&&o<=159||o>=768&&o<=879)continue;switch(LBa.default.eastAsianWidth(i)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}function Kvr(e){let t=0;for(let r of e.split(`
1659
1659
  `))t=Math.max(t,NC(r));return t}var aOa=Ce(NPi(),1);var Gvf=/[\p{Lu}]/u,Wvf=/[\p{Ll}]/u,qBa=/^[\p{Lu}](?![\p{Lu}])/gu,$Ba=/([\p{Alpha}\p{N}_]|$)/u,jPi=/[_.\- ]+/,$vf=new RegExp("^"+jPi.source),GBa=new RegExp(jPi.source+$Ba.source,"gu"),WBa=new RegExp("\\d+"+$Ba.source,"gu"),Hvf=(e,t,r,n)=>{let i=!1,o=!1,s=!1,a=!1;for(let u=0;u<e.length;u++){let c=e[u];a=u>2?e[u-3]==="-":!0,i&&Gvf.test(c)?(e=e.slice(0,u)+"-"+e.slice(u),i=!1,s=o,o=!0,u++):o&&s&&Wvf.test(c)&&(!a||n)?(e=e.slice(0,u-1)+"-"+e.slice(u-1),s=o,o=!1,i=!0):(i=t(c)===c&&r(c)!==c,s=o,o=r(c)===c&&t(c)!==c)}return e},Kvf=(e,t)=>(qBa.lastIndex=0,e.replace(qBa,r=>t(r))),Jvf=(e,t)=>(GBa.lastIndex=0,WBa.lastIndex=0,e.replace(GBa,(r,n)=>t(n)).replace(WBa,r=>t(r)));function MPi(e,t){if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:!1,preserveConsecutiveUppercase:!1,...t},Array.isArray(e)?e=e.map(o=>o.trim()).filter(o=>o.length).join("-"):e=e.trim(),e.length===0)return"";let r=t.locale===!1?o=>o.toLowerCase():o=>o.toLocaleLowerCase(t.locale),n=t.locale===!1?o=>o.toUpperCase():o=>o.toLocaleUpperCase(t.locale);return e.length===1?jPi.test(e)?"":t.pascalCase?n(e):r(e):(e!==r(e)&&(e=Hvf(e,r,n,t.preserveConsecutiveUppercase)),e=e.replace($vf,""),e=t.preserveConsecutiveUppercase?Kvf(e,r):r(e),t.pascalCase&&(e=n(e.charAt(0))+e.slice(1)),Jvf(e,n))}var VPi=Ce(KBa(),1);ENe();var JBa=(e=0)=>t=>`\x1B[${t+e}m`,YBa=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,XBa=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,By={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]}},I3y=Object.keys(By.modifier),eIf=Object.keys(By.color),tIf=Object.keys(By.bgColor),w3y=[...eIf,...tIf];function rIf(){let e=new Map;for(let[t,r]of Object.entries(By)){for(let[n,i]of Object.entries(r))By[n]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[n]=By[n],e.set(i[0],i[1]);Object.defineProperty(By,t,{value:r,enumerable:!1})}return Object.defineProperty(By,"codes",{value:e,enumerable:!1}),By.color.close="\x1B[39m",By.bgColor.close="\x1B[49m",By.color.ansi=JBa(),By.color.ansi256=YBa(),By.color.ansi16m=XBa(),By.bgColor.ansi=JBa(10),By.bgColor.ansi256=YBa(10),By.bgColor.ansi16m=XBa(10),Object.defineProperties(By,{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=>By.rgbToAnsi256(...By.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)=>By.ansi256ToAnsi(By.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>By.ansi256ToAnsi(By.hexToAnsi256(t)),enumerable:!1}}),By}var nIf=rIf(),ZBa=nIf;var Jvr=new Set(["\x1B","\x9B"]),iIf=39,UPi="\x07",rOa="[",oIf="]",nOa="m",zPi=`${oIf}8;;`,eOa=e=>`${Jvr.values().next().value}${rOa}${e}${nOa}`,tOa=e=>`${Jvr.values().next().value}${zPi}${e}${UPi}`,sIf=e=>e.split(" ").map(t=>NC(t)),LPi=(e,t,r)=>{let n=[...t],i=!1,o=!1,s=NC(w5(e[e.length-1]));for(let[a,u]of n.entries()){let c=NC(u);if(s+c<=r?e[e.length-1]+=u:(e.push(u),s=0),Jvr.has(u)&&(i=!0,o=n.slice(a+1).join("").startsWith(zPi)),i){o?u===UPi&&(i=!1,o=!1):u===nOa&&(i=!1);continue}s+=c,s===r&&a<n.length-1&&(e.push(""),s=0)}!s&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},aIf=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(NC(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},uIf=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",i,o,s=sIf(e),a=[""];for(let[c,l]of e.split(" ").entries()){r.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let p=NC(a[a.length-1]);if(c!==0&&(p>=t&&(r.wordWrap===!1||r.trim===!1)&&(a.push(""),p=0),(p>0||r.trim===!1)&&(a[a.length-1]+=" ",p++)),r.hard&&s[c]>t){let d=t-p,f=1+Math.floor((s[c]-d-1)/t);Math.floor((s[c]-1)/t)<f&&a.push(""),LPi(a,l,t);continue}if(p+s[c]>t&&p>0&&s[c]>0){if(r.wordWrap===!1&&p<t){LPi(a,l,t);continue}a.push("")}if(p+s[c]>t&&r.wordWrap===!1){LPi(a,l,t);continue}a[a.length-1]+=l}r.trim!==!1&&(a=a.map(c=>aIf(c)));let u=[...a.join(`
1660
1660
  `)];for(let[c,l]of u.entries()){if(n+=l,Jvr.has(l)){let{groups:d}=new RegExp(`(?:\\${rOa}(?<code>\\d+)m|\\${zPi}(?<uri>.*)${UPi})`).exec(u.slice(c).join(""))||{groups:{}};if(d.code!==void 0){let f=Number.parseFloat(d.code);i=f===iIf?void 0:f}else d.uri!==void 0&&(o=d.uri.length===0?void 0:d.uri)}let p=ZBa.codes.get(Number(i));u[c+1]===`
1661
1661
  `?(o&&(n+=tOa("")),i&&p&&(n+=eOa(p))):l===`
@@ -2165,7 +2165,7 @@ Hint: Values starting with "@" (such as scoped npm packages) must be wrapped in
2165
2165
  Example: package-name: "@scope/package"`)}return{success:!1,warnings:[{type:"conflict",message:`Failed to parse generators.yml: ${o}`}]}}}checkDeprecatedFields(t,r){t.openapi!=null&&r.push({type:"deprecated",message:"The 'openapi' field is deprecated",suggestion:"Use 'api.specs' instead"}),t["openapi-overrides"]!=null&&r.push({type:"deprecated",message:"The 'openapi-overrides' field is deprecated",suggestion:"Use 'api.specs.[].overrides' instead"}),t["spec-origin"]!=null&&r.push({type:"deprecated",message:"The 'spec-origin' field is deprecated",suggestion:"Use 'api.specs.[].origin' instead"}),t["async-api"]!=null&&r.push({type:"deprecated",message:"The 'async-api' field is deprecated",suggestion:"Use 'api.specs' with asyncapi instead"}),t["api-settings"]!=null&&r.push({type:"deprecated",message:"The 'api-settings' field is deprecated",suggestion:"Use 'api.specs.[].settings' instead"}),t.whitelabel!=null&&r.push({type:"unsupported",message:"Whitelabel configuration is not yet supported in fern.yml"}),t.metadata!=null&&r.push({type:"unsupported",message:"Metadata configuration is not yet supported in fern.yml"}),t.reviewers!=null&&r.push({type:"unsupported",message:"Reviewers configuration is not yet supported in fern.yml"}),t.aliases!=null&&r.push({type:"unsupported",message:"Group aliases are not yet supported in fern.yml",suggestion:"Use multiple group names in target.group array instead"}),t["auth-schemes"]!=null&&r.push({type:"info",message:"Auth schemes configuration detected but not yet migrated",suggestion:"Auth schemes will be supported in a future version"})}async getAbsoluteFilePath(){let t=Ge(this.cwd,xe.of(Kd)),r=Ge(this.cwd,xe.of(S4e));if(await Zt(t,"file"))return t;if(await Zt(r,"file"))return r}};var ZSt=class{cwd;logger;deleteOriginals;constructor(t){this.cwd=t.cwd,this.logger=t.logger,this.deleteOriginals=t.deleteOriginals??!0}async migrate(){let t=[],r=[],n=await this.findFernDirectory();if(n==null)return{success:!1,warnings:[{type:"conflict",message:"Could not find fern directory",suggestion:"Run this command from a directory containing a 'fern' folder"}],migratedFiles:r};let o=await new XSt({cwd:n}).migrate();if(t.push(...o.warnings),!o.success||o.org==null)return{success:!1,warnings:[...t,{type:"conflict",message:"Failed to migrate fern.config.json - organization is required"}],migratedFiles:r};o.absoluteFilePath!=null&&r.push(o.absoluteFilePath);let s=Ge(n,xe.of(JO)),a=await Zt(s,"directory"),u;if(a){let p=await this.migrateMultiApi({fernDir:n,apisDir:s,org:o.org,warnings:t,migratedFiles:r});if(!p.success)return{success:!1,warnings:t,migratedFiles:r};u=p.fernYml}else{let p=await this.migrateSingleApi({fernDir:n,org:o.org,warnings:t,migratedFiles:r});if(!p.success)return{success:!1,warnings:t,migratedFiles:r};u=p.fernYml}let c=Ge(this.cwd,xe.of(vE)),l=this.serializeFernYml(u);if(await(0,Drt.writeFile)(c,l,"utf-8"),this.deleteOriginals)for(let p of r)try{await(0,Drt.rm)(p),this.logger.debug(`Deleted ${p}`)}catch{t.push({type:"info",message:`Could not delete ${p}`})}return this.logger.info(`Created ${c}`),{success:!0,warnings:t,migratedFiles:r,outputPath:c}}async migrateSingleApi(t){let{fernDir:r,org:n,warnings:i,migratedFiles:o}=t,a=await new zDe({cwd:r}).migrate();i.push(...a.warnings),a.absoluteFilePath!=null&&o.push(a.absoluteFilePath);let u=await D8i({fernDir:r,generatorsYmlApi:a.rawApi});i.push(...u.warnings);let c={org:n};return u.api!=null&&(c.api=u.api),a.sdks!=null&&(c.sdks=a.sdks),{success:!0,fernYml:c}}async migrateMultiApi(t){let{fernDir:r,apisDir:n,org:i,warnings:o,migratedFiles:s}=t,u=(await(0,Drt.readdir)(n,{withFileTypes:!0})).filter(A=>A.isDirectory()).map(A=>A.name);if(u.length===0)return o.push({type:"conflict",message:"No API directories found in fern/apis/"}),{success:!1,fernYml:{org:i}};let c={},l={targets:{}},p,d;for(let A of u){let b=Ge(n,xe.of(A)),E=await new zDe({cwd:b,apiName:A}).migrate();if(o.push(...E.warnings),E.absoluteFilePath!=null&&s.push(E.absoluteFilePath),c[A]=E.rawApi,E.sdks!=null){for(let[I,w]of Object.entries(E.sdks.targets))l.targets[I]=w;E.sdks.defaultGroup!=null&&p==null&&(p=E.sdks.defaultGroup),E.sdks.autorelease!=null&&d==null&&(d=E.sdks.autorelease)}}let f=await R8i({fernDir:r,apisDir:n,generatorsYmlApis:c});o.push(...f.warnings);let m={org:i,apis:f.apis};Object.keys(l.targets).length>0&&(p!=null&&(l.defaultGroup=p),d!=null&&(l.autorelease=d),m.sdks=l);let g=await new zDe({cwd:r}).detect();return g.found&&g.absoluteFilePath!=null&&(o.push({type:"info",message:"Found generators.yml in fern root alongside apis/ directory",suggestion:"Review the migrated configuration to ensure it's correct"}),s.push(g.absoluteFilePath)),{success:!0,fernYml:m}}async findFernDirectory(){if(this.cwd.split("/").pop()===Hh)return this.cwd;let r=Ge(this.cwd,xe.of(Hh));if(await Zt(r,"directory"))return r}serializeFernYml(t){let r={edition:t.edition,org:t.org};return t.api!=null&&(r.api=t.api),t.apis!=null&&(r.apis=t.apis),t.ai!=null&&(r.ai=t.ai),t.cli!=null&&(r.cli=t.cli),t.sdks!=null&&(r.sdks=this.simplifySdks(t.sdks)),xr.dump(r,{indent:2,lineWidth:120,noRefs:!0,sortKeys:!1,quotingType:'"',forceQuotes:!1})}simplifySdks(t){let r={...t},n={};for(let[i,o]of Object.entries(t.targets)){let s=o.output;if(typeof s=="string"){n[i]=o;continue}if(s.git==null&&s.path!=null){n[i]={...o,output:s.path};continue}n[i]=o}return r.targets=n,r}};var F8i=class{async handle(t,r){let i=await new ZSt({cwd:t.cwd,logger:t.stdout,deleteOriginals:r.delete}).migrate();for(let o of i.warnings){switch(o.type){case"deprecated":t.stdout.warn(`Deprecated: ${o.message}`);break;case"unsupported":t.stdout.warn(`Unsupported: ${o.message}`);break;case"conflict":t.stderr.error(`Error: ${o.message}`);break;case"info":t.stdout.info(o.message);break}o.suggestion!=null&&t.stdout.info(` Suggestion: ${o.suggestion}`)}if(i.success){i.outputPath!=null&&t.stdout.debug(`Created: ${i.outputPath}`);return}throw new Jr({message:"Migration failed"})}};function k8i(e){let t=new F8i;Ia(e,"migrate","Migrate legacy configuration files to fern.yml",(r,n)=>t.handle(r,n),r=>r.option("delete",{type:"boolean",description:"Keep original files after migration",default:!0}))}function Q8i(e){$1(e,"config","Configure, edit, and inspect your settings",[k8i])}var N8i=class{async handle(t,r){let n=await t.loadWorkspaceOrThrow();if(n.docs==null)throw new Jr({message:`No docs configuration found in fern.yml.
2166
2166
 
2167
2167
  Add a 'docs:' section to your fern.yml to get started.`});let o=await new Sve({context:t}).check({workspace:n,strict:r.strict}),s=o.hasErrors||r.strict&&o.hasWarnings;if(r.json){let a=this.buildJsonResponse({result:o,hasErrors:s});if(t.stdout.info(JSON.stringify(a,null,2)),s)throw Jr.exit();return}if(o.violations.length>0)for(let a of o.violations){let u=a.severity==="warning"?be.yellow:be.red;process.stderr.write(`${u(`${a.displayRelativeFilepath}:${a.line}:${a.column}: ${a.message}`)}
2168
- `)}if(s)throw Jr.exit();if(o.warningCount>0){t.stderr.info(`${fo.warning} ${be.yellow(`Found ${o.warningCount} warnings`)}`),t.stderr.info(be.dim(" Run 'fern docs check --strict' to treat warnings as errors"));return}t.stderr.info(`${fo.success} ${be.green("All checks passed")}`)}buildJsonResponse({result:t,hasErrors:r}){let n={};return t.violations.length>0&&(n.docs=t.violations.map(i=>bK(i))),{success:!r,results:n}}};function j8i(e){let t=new N8i;Ia(e,"check","Validate docs configuration",(r,n)=>t.handle(r,n),r=>r.option("strict",{type:"boolean",description:"Treat warnings as errors",default:!1}).option("json",{type:"boolean",description:"Output results as JSON to stdout",default:!1}))}var bHa=Ce(require("net"),1),EHa=Ce(require("os"),1),AEn=class extends Error{constructor(t){super(`${t} is locked`)}},Rrt={old:new Set,young:new Set},aXf=1e3*15;var eBt,uXf=()=>{let e=EHa.default.networkInterfaces(),t=new Set([void 0,"0.0.0.0"]);for(let r of Object.values(e))for(let n of r)t.add(n.address);return t},AHa=e=>new Promise((t,r)=>{let n=bHa.default.createServer();n.unref(),n.on("error",r),n.listen(e,()=>{let{port:i}=n.address();n.close(()=>{t(i)})})}),yHa=async(e,t)=>{if(e.host||e.port===0)return AHa(e);for(let r of t)try{await AHa({port:e.port,host:r})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return e.port},cXf=function*(e){e&&(yield*e),yield 0};async function Bve(e){let t,r=new Set;if(e&&(e.port&&(t=typeof e.port=="number"?[e.port]:e.port),e.exclude)){let i=e.exclude;if(typeof i[Symbol.iterator]!="function")throw new TypeError("The `exclude` option must be an iterable.");for(let o of i){if(typeof o!="number")throw new TypeError("Each item in the `exclude` option must be a number corresponding to the port you want excluded.");if(!Number.isSafeInteger(o))throw new TypeError(`Number ${o} in the exclude option is not a safe integer and can't be used`)}r=new Set(i)}eBt===void 0&&(eBt=setTimeout(()=>{eBt=void 0,Rrt.old=Rrt.young,Rrt.young=new Set},aXf),eBt.unref&&eBt.unref());let n=uXf();for(let i of cXf(t))try{if(r.has(i))continue;let o=await yHa({...e,port:i},n);for(;Rrt.old.has(o)||Rrt.young.has(o);){if(i!==0)throw new AEn(i);o=await yHa({...e,port:i},n)}return Rrt.young.add(o),o}catch(o){if(!["EADDRINUSE","EACCES"].includes(o.code)&&!(o instanceof AEn))throw o}throw new Error("No available ports found")}St();ng();qt();var Nsu=Ce(U8i(),1),jsu=Ce(nvn(),1),UIn=require("fs/promises"),Msu=Ce(require("http"),1),Lsu=Ce(require("path"),1);var yZa=require("events"),uvn=Ce(require("fs"),1),XDe=Ce(require("path"),1);var eZa=Ce(require("os"),1),tZa=300,kve=20,xBt=1e7,rZa=eZa.default.platform();var Cod=rZa==="darwin",sVi=rZa==="win32",Qve=Cod||sVi,nZa=3e3,iZa=2e4,aVi=1250;var zX;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(zX||(zX={}));var YDe;(function(e){e.CHANGE="change",e.RENAME="rename"})(YDe||(YDe={}));var _Bt;(function(e){e.CHANGE="change",e.ERROR="error"})(_Bt||(_Bt={}));var eu;(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"})(eu||(eu={}));var LT;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(LT||(LT={}));var xod=(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 E=Date.now(),I=E-u,w=E-c,x=I>=t||w>=o;return[E,x]},p=E=>{if(c=E,!s)return;let I=s;s=void 0,e.apply(void 0,I)},d=()=>{b(0)},f=()=>{a&&(d(),p(Date.now()))},m=E=>{if(c=E,n)return p(E)},h=E=>{if(i&&s)return p(E);s=void 0},g=()=>{a=void 0;let[E,I]=l();return I?h(E):A(E)},A=E=>{let I=E-u,w=E-c,x=t-I,C=o-w,_=Math.min(x,C);return b(_)},b=E=>{a&&clearTimeout(a),!(E<=0)&&(a=setTimeout(g,E))},v=(...E)=>{let[I,w]=l(),x=!!a;if(s=E,u=I,(w||!a)&&b(t),w)return x?p(I):m(I)};return v.cancel=d,v.flush=f,v},ivn=xod;var pVi=Ce(require("fs"),1),svn=Ce(require("path"),1);var wf=Ce(require("fs"),1),C1=require("util");var wae=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},VX=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var uVi=Ce(require("process"),1),oZa=uVi.default.getuid?!uVi.default.getuid():!1,sZa=1e4,Dk=()=>{};var SBt={isChangeErrorOk:e=>{if(!SBt.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!oZa&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!SBt.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(!SBt.isNodeError(e))throw e;if(!SBt.isChangeErrorOk(e))throw e}},OE=SBt;var cVi=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=sZa,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()}}}}},aZa=new cVi;var Cae=(e,t)=>function(n){return function i(...o){return aZa.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)})}},xae=(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 _od={attempt:{chmod:wae((0,C1.promisify)(wf.default.chmod),OE.onChangeError),chown:wae((0,C1.promisify)(wf.default.chown),OE.onChangeError),close:wae((0,C1.promisify)(wf.default.close),Dk),fsync:wae((0,C1.promisify)(wf.default.fsync),Dk),mkdir:wae((0,C1.promisify)(wf.default.mkdir),Dk),realpath:wae((0,C1.promisify)(wf.default.realpath),Dk),stat:wae((0,C1.promisify)(wf.default.stat),Dk),unlink:wae((0,C1.promisify)(wf.default.unlink),Dk),chmodSync:VX(wf.default.chmodSync,OE.onChangeError),chownSync:VX(wf.default.chownSync,OE.onChangeError),closeSync:VX(wf.default.closeSync,Dk),existsSync:VX(wf.default.existsSync,Dk),fsyncSync:VX(wf.default.fsync,Dk),mkdirSync:VX(wf.default.mkdirSync,Dk),realpathSync:VX(wf.default.realpathSync,Dk),statSync:VX(wf.default.statSync,Dk),unlinkSync:VX(wf.default.unlinkSync,Dk)},retry:{close:Cae((0,C1.promisify)(wf.default.close),OE.isRetriableError),fsync:Cae((0,C1.promisify)(wf.default.fsync),OE.isRetriableError),open:Cae((0,C1.promisify)(wf.default.open),OE.isRetriableError),readFile:Cae((0,C1.promisify)(wf.default.readFile),OE.isRetriableError),rename:Cae((0,C1.promisify)(wf.default.rename),OE.isRetriableError),stat:Cae((0,C1.promisify)(wf.default.stat),OE.isRetriableError),write:Cae((0,C1.promisify)(wf.default.write),OE.isRetriableError),writeFile:Cae((0,C1.promisify)(wf.default.writeFile),OE.isRetriableError),closeSync:xae(wf.default.closeSync,OE.isRetriableError),fsyncSync:xae(wf.default.fsyncSync,OE.isRetriableError),openSync:xae(wf.default.openSync,OE.isRetriableError),readFileSync:xae(wf.default.readFileSync,OE.isRetriableError),renameSync:xae(wf.default.renameSync,OE.isRetriableError),statSync:xae(wf.default.statSync,OE.isRetriableError),writeSync:xae(wf.default.writeSync,OE.isRetriableError),writeFileSync:xae(wf.default.writeFileSync,OE.isRetriableError)}},uZa=_od;var ovn=Ce(require("fs"),1),BBt=Ce(require("path"),1);var lVi=()=>{};var Sod=()=>{let e=lVi,t=lVi,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}},cZa=Sod;var Bod=()=>{let{promise:e,resolve:t,isPending:r}=cZa(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},lZa=Bod;var pZa={then:e=>{e()}};var fZa=e=>Array.isArray(e)?e:[e],dZa=e=>typeof e=="function";var Ood=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=fZa(o).map(J=>dZa(J)?J:K=>J.test(K)),a=J=>s.some(K=>K(J)),u=t?.signal??{aborted:!1},c=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,h={},g=[],A=new Set,b={},v={},E=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:g,symlinksNames:A,symlinksNamesToPaths:b,map:v},{promise:x,increment:C,decrement:_}=lZa(),R=0,U=(J,K,ge,he)=>{E.has(K)||R>=i||(R+=1,J.directories.push(K),J.directoriesNames.add(ge),l.push(K),p.add(ge),d.propertyIsEnumerable(ge)||(d[ge]=[]),d[ge].push(K),E.add(K),!(he>=n)&&(R>=i||H(K,he+1)))},q=(J,K,ge)=>{E.has(K)||R>=i||(R+=1,J.files.push(K),J.filesNames.add(ge),f.push(K),m.add(ge),h.propertyIsEnumerable(ge)||(h[ge]=[]),h[ge].push(K),E.add(K))},z=(J,K,ge,he)=>{E.has(K)||R>=i||(R+=1,J.symlinks.push(K),J.symlinksNames.add(ge),g.push(K),A.add(ge),b.propertyIsEnumerable(ge)||(b[ge]=[]),b[ge].push(K),E.add(K),r&&(he>=n||R>=i||Ee(K,he+1)))},Z=(J,K,ge,he,we)=>{u.aborted||a(K)||(he.isDirectory()?U(J,K,ge,we):he.isFile()?q(J,K,ge):he.isSymbolicLink()&&z(J,K,ge,we))},oe=(J,K,ge,he)=>{if(u.aborted)return;let we=K===BBt.default.sep?"":BBt.default.sep,Be=ge.name,le=`${K}${we}${Be}`;a(le)||(ge.isDirectory()?U(J,le,Be,he):ge.isFile()?q(J,le,Be):ge.isSymbolicLink()&&z(J,le,Be,he))},V=(J,K,ge,he)=>{for(let we=0,Be=ge.length;we<Be;we++)oe(J,K,ge[we],he)},H=(J,K)=>{u.aborted||K>n||R>=i||(C(),ovn.default.readdir(J,{withFileTypes:!0},(ge,he)=>{if(ge||u.aborted||!he.length)return _();(c(he)||pZa).then(()=>{let Be=v[J]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};V(Be,J,he,K),_()})}))},Ee=(J,K)=>{C(),ovn.default.realpath(J,(ge,he)=>{if(ge||u.aborted)return _();ovn.default.stat(he,(we,Be)=>{if(we||u.aborted)return _();let le=BBt.default.basename(he),ue=v[J]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};Z(ue,he,le,Be,K),_()})})};return(async(J,K=1)=>(J=BBt.default.normalize(J),E.add(J),H(J,K),await x,u.aborted?I:w))(e)},mZa=Ood;var qX={lang:{debounce:ivn,attempt:e=>{try{return e()}catch(t){return qX.lang.castError(t)}},castArray:e=>qX.lang.isArray(e)?e:[e],castError:e=>qX.lang.isError(e)?e:qX.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(qX.lang.isNaN(e))return qX.lang.isNaN(t);if(qX.lang.isPrimitive(e)||qX.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(svn.default.sep).length-1),getRealPath:(e,t)=>{try{return t?pVi.default.realpathSync.native(e):pVi.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===svn.default.sep&&t.length-e.length>svn.default.sep.length,poll:(e,t=iZa)=>uZa.retry.stat(t)(e,{bigint:!0}).catch(qX.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 mZa(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},pl=qX;var avn=Ce(require("path"),1);var fVi=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||pl.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=tZa){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=pl.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===eu.CHANGE&&a===eu.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===eu.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===eu.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??kve:Math.min(1,this.options.depth??kve),s=this.options.limit??xBt,[a,u]=await pl.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())pl.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(eu.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!Qve&&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(eu.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(eu.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(avn.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(eu.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(avn.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(eu.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===eu.ADD?this.onTargetAdd(n):r===eu.ADD_DIR?this.onTargetAddDir(n):r===eu.CHANGE?this.onTargetChange(n):r===eu.UNLINK?this.onTargetUnlink(n):r===eu.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=YDe.CHANGE,r){if(this.watcher.isClosed())return;let n=avn.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){sVi&&t.code==="EPERM"?this.onWatcherChange(YDe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(_Bt.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(_Bt.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(YDe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&Qve&&this.options.native!==!1?this.options.depth??kve:Math.min(1,this.options.depth??kve),n=this.options.limit??xBt,[i,o]=await pl.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(YDe.CHANGE,a,t)}))}}},hZa=fVi;var UT={interval:100,intervalId:void 0,fns:new Map,init:()=>{UT.intervalId||(UT.intervalId=setInterval(UT.resolve,UT.interval))},reset:()=>{UT.intervalId&&(clearInterval(UT.intervalId),delete UT.intervalId)},add:(e,t)=>{UT.fns.set(e,Date.now()+t),UT.init()},remove:e=>{UT.fns.delete(e)},resolve:()=>{if(!UT.fns.size)return UT.reset();let e=Date.now();for(let[t,r]of UT.fns)r>=e||(UT.remove(t),t())}},OBt=UT;var PBt=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=aVi){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(pl.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),OBt.remove(c)},c=()=>{u(),a()};OBt.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=aVi){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),OBt.remove(c)},c=()=>{u(),a()};OBt.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,eu.ADD,zX.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,eu.ADD_DIR,zX.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,eu.UNLINK,zX.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,eu.UNLINK_DIR,zX.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}}};PBt.DIR_EVENTS={add:eu.ADD_DIR,rename:eu.RENAME_DIR,unlink:eu.UNLINK_DIR};PBt.FILE_EVENTS={add:eu.ADD,change:eu.CHANGE,rename:eu.RENAME,unlink:eu.UNLINK};var gZa=PBt;var dVi=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(pl.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(pl.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(pl.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(pl.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return pl.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);pl.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},mVi=dVi;var hVi=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}},AZa=hVi;var gVi=class{constructor(){this.inos={},this.paths=new mVi,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 pl.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new AZa(n)}reset(){this.inos={},this.paths=new mVi,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,eu.ADD,i),[eu.ADD];if(i.isDirectory())return this.updateIno(t,eu.ADD_DIR,i),[eu.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,eu.UNLINK,n),[eu.UNLINK];if(n.isDirectory())return this.updateIno(t,eu.UNLINK_DIR,n),[eu.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,eu.CHANGE,i),[eu.CHANGE]);if(i.isDirectory())return this.updateIno(t,eu.UNLINK,n),this.updateIno(t,eu.ADD_DIR,i),[eu.UNLINK,eu.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,eu.UNLINK_DIR,n),this.updateIno(t,eu.ADD,i),[eu.UNLINK_DIR,eu.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,eu.UNLINK_DIR,n),this.updateIno(t,eu.ADD_DIR,i),[eu.UNLINK_DIR,eu.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?zX.FILE:zX.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)}}},AVi=gVi;var yVi=class e extends yZa.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(LT.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(LT.CLOSE,i)),this._readyWait=new Promise(i=>this.on(LT.READY,i)),this._locker=new gZa(this),this._roots=new Set,this._poller=new AVi,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&&(pl.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(LT.CLOSE))}error(t){if(this.isClosed())return!1;let r=pl.lang.castError(t);return this.emit(LT.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(LT.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(LT.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&pl.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&pl.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)pl.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 hZa(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=pl.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=XDe.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??kve))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&Qve&&l.options.native!==!1)))return!0;if(!Qve)break;let c=XDe.default.dirname(t);if(s===c)break;s=c}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=pl.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||Qve&&r.native!==!1?r:{...r,recursive:!1},l={watcher:uvn.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=XDe.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||Qve&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??kve,a=r.limit??xBt,[u]=await pl.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=pl.fs.getDepth(t);for(let p of u){let d=pl.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(LT.CLOSE,u),s.watchFile(t,r,o)},u=()=>{this._subwatchers.delete(i),this.removeListener(LT.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=XDe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new AVi,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 pl.lang.noop;if(this.pollerExists(t,r))return pl.lang.noop;let i={...r,interval:r.pollingInterval??nZa},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(LT.CLOSE,a),uvn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(LT.CLOSE,a),uvn.default.unwatchFile(t,n)};return pl.lang.attempt(s),()=>pl.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=pl.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,u)=>u===s||!pl.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=XDe.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await pl.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=XDe.default.dirname(t);return(await pl.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=pl.lang.noop){if(pl.lang.isFunction(t))return this.watch([],{},t);if(pl.lang.isUndefined(t))return this.watch([],r,n);if(pl.lang.isFunction(r))return this.watch(t,{},r);if(pl.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=pl.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==pl.lang.noop&&this.on(LT.ALL,n),r.readdirMap=void 0,this.ready())}},cvn=yVi;wvn();qt();var nnt=require("fs/promises"),Ceu=require("os"),xeu=Ce(require("path"),1),Xsd=".fern",Zsd="logs";function ead(){return"cli@4.37.6"}var iRe=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=Ge(Ut.of((0,Ceu.homedir)()),xe.of(Xsd)),r=Ge(t,xe.of(Zsd));await Zt(r)||await(0,nnt.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=Ge(r,xe.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${xeu.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
2168
+ `)}if(s)throw Jr.exit();if(o.warningCount>0){t.stderr.info(`${fo.warning} ${be.yellow(`Found ${o.warningCount} warnings`)}`),t.stderr.info(be.dim(" Run 'fern docs check --strict' to treat warnings as errors"));return}t.stderr.info(`${fo.success} ${be.green("All checks passed")}`)}buildJsonResponse({result:t,hasErrors:r}){let n={};return t.violations.length>0&&(n.docs=t.violations.map(i=>bK(i))),{success:!r,results:n}}};function j8i(e){let t=new N8i;Ia(e,"check","Validate docs configuration",(r,n)=>t.handle(r,n),r=>r.option("strict",{type:"boolean",description:"Treat warnings as errors",default:!1}).option("json",{type:"boolean",description:"Output results as JSON to stdout",default:!1}))}var bHa=Ce(require("net"),1),EHa=Ce(require("os"),1),AEn=class extends Error{constructor(t){super(`${t} is locked`)}},Rrt={old:new Set,young:new Set},aXf=1e3*15;var eBt,uXf=()=>{let e=EHa.default.networkInterfaces(),t=new Set([void 0,"0.0.0.0"]);for(let r of Object.values(e))for(let n of r)t.add(n.address);return t},AHa=e=>new Promise((t,r)=>{let n=bHa.default.createServer();n.unref(),n.on("error",r),n.listen(e,()=>{let{port:i}=n.address();n.close(()=>{t(i)})})}),yHa=async(e,t)=>{if(e.host||e.port===0)return AHa(e);for(let r of t)try{await AHa({port:e.port,host:r})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return e.port},cXf=function*(e){e&&(yield*e),yield 0};async function Bve(e){let t,r=new Set;if(e&&(e.port&&(t=typeof e.port=="number"?[e.port]:e.port),e.exclude)){let i=e.exclude;if(typeof i[Symbol.iterator]!="function")throw new TypeError("The `exclude` option must be an iterable.");for(let o of i){if(typeof o!="number")throw new TypeError("Each item in the `exclude` option must be a number corresponding to the port you want excluded.");if(!Number.isSafeInteger(o))throw new TypeError(`Number ${o} in the exclude option is not a safe integer and can't be used`)}r=new Set(i)}eBt===void 0&&(eBt=setTimeout(()=>{eBt=void 0,Rrt.old=Rrt.young,Rrt.young=new Set},aXf),eBt.unref&&eBt.unref());let n=uXf();for(let i of cXf(t))try{if(r.has(i))continue;let o=await yHa({...e,port:i},n);for(;Rrt.old.has(o)||Rrt.young.has(o);){if(i!==0)throw new AEn(i);o=await yHa({...e,port:i},n)}return Rrt.young.add(o),o}catch(o){if(!["EADDRINUSE","EACCES"].includes(o.code)&&!(o instanceof AEn))throw o}throw new Error("No available ports found")}St();ng();qt();var Nsu=Ce(U8i(),1),jsu=Ce(nvn(),1),UIn=require("fs/promises"),Msu=Ce(require("http"),1),Lsu=Ce(require("path"),1);var yZa=require("events"),uvn=Ce(require("fs"),1),XDe=Ce(require("path"),1);var eZa=Ce(require("os"),1),tZa=300,kve=20,xBt=1e7,rZa=eZa.default.platform();var Cod=rZa==="darwin",sVi=rZa==="win32",Qve=Cod||sVi,nZa=3e3,iZa=2e4,aVi=1250;var zX;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(zX||(zX={}));var YDe;(function(e){e.CHANGE="change",e.RENAME="rename"})(YDe||(YDe={}));var _Bt;(function(e){e.CHANGE="change",e.ERROR="error"})(_Bt||(_Bt={}));var eu;(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"})(eu||(eu={}));var LT;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(LT||(LT={}));var xod=(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 E=Date.now(),I=E-u,w=E-c,x=I>=t||w>=o;return[E,x]},p=E=>{if(c=E,!s)return;let I=s;s=void 0,e.apply(void 0,I)},d=()=>{b(0)},f=()=>{a&&(d(),p(Date.now()))},m=E=>{if(c=E,n)return p(E)},h=E=>{if(i&&s)return p(E);s=void 0},g=()=>{a=void 0;let[E,I]=l();return I?h(E):A(E)},A=E=>{let I=E-u,w=E-c,x=t-I,C=o-w,_=Math.min(x,C);return b(_)},b=E=>{a&&clearTimeout(a),!(E<=0)&&(a=setTimeout(g,E))},v=(...E)=>{let[I,w]=l(),x=!!a;if(s=E,u=I,(w||!a)&&b(t),w)return x?p(I):m(I)};return v.cancel=d,v.flush=f,v},ivn=xod;var pVi=Ce(require("fs"),1),svn=Ce(require("path"),1);var wf=Ce(require("fs"),1),C1=require("util");var wae=(e,t)=>function(...n){return e.apply(void 0,n).catch(t)},VX=(e,t)=>function(...n){try{return e.apply(void 0,n)}catch(i){return t(i)}};var uVi=Ce(require("process"),1),oZa=uVi.default.getuid?!uVi.default.getuid():!1,sZa=1e4,Dk=()=>{};var SBt={isChangeErrorOk:e=>{if(!SBt.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!oZa&&(t==="EINVAL"||t==="EPERM")},isNodeError:e=>e instanceof Error,isRetriableError:e=>{if(!SBt.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(!SBt.isNodeError(e))throw e;if(!SBt.isChangeErrorOk(e))throw e}},OE=SBt;var cVi=class{constructor(){this.interval=25,this.intervalId=void 0,this.limit=sZa,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()}}}}},aZa=new cVi;var Cae=(e,t)=>function(n){return function i(...o){return aZa.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)})}},xae=(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 _od={attempt:{chmod:wae((0,C1.promisify)(wf.default.chmod),OE.onChangeError),chown:wae((0,C1.promisify)(wf.default.chown),OE.onChangeError),close:wae((0,C1.promisify)(wf.default.close),Dk),fsync:wae((0,C1.promisify)(wf.default.fsync),Dk),mkdir:wae((0,C1.promisify)(wf.default.mkdir),Dk),realpath:wae((0,C1.promisify)(wf.default.realpath),Dk),stat:wae((0,C1.promisify)(wf.default.stat),Dk),unlink:wae((0,C1.promisify)(wf.default.unlink),Dk),chmodSync:VX(wf.default.chmodSync,OE.onChangeError),chownSync:VX(wf.default.chownSync,OE.onChangeError),closeSync:VX(wf.default.closeSync,Dk),existsSync:VX(wf.default.existsSync,Dk),fsyncSync:VX(wf.default.fsync,Dk),mkdirSync:VX(wf.default.mkdirSync,Dk),realpathSync:VX(wf.default.realpathSync,Dk),statSync:VX(wf.default.statSync,Dk),unlinkSync:VX(wf.default.unlinkSync,Dk)},retry:{close:Cae((0,C1.promisify)(wf.default.close),OE.isRetriableError),fsync:Cae((0,C1.promisify)(wf.default.fsync),OE.isRetriableError),open:Cae((0,C1.promisify)(wf.default.open),OE.isRetriableError),readFile:Cae((0,C1.promisify)(wf.default.readFile),OE.isRetriableError),rename:Cae((0,C1.promisify)(wf.default.rename),OE.isRetriableError),stat:Cae((0,C1.promisify)(wf.default.stat),OE.isRetriableError),write:Cae((0,C1.promisify)(wf.default.write),OE.isRetriableError),writeFile:Cae((0,C1.promisify)(wf.default.writeFile),OE.isRetriableError),closeSync:xae(wf.default.closeSync,OE.isRetriableError),fsyncSync:xae(wf.default.fsyncSync,OE.isRetriableError),openSync:xae(wf.default.openSync,OE.isRetriableError),readFileSync:xae(wf.default.readFileSync,OE.isRetriableError),renameSync:xae(wf.default.renameSync,OE.isRetriableError),statSync:xae(wf.default.statSync,OE.isRetriableError),writeSync:xae(wf.default.writeSync,OE.isRetriableError),writeFileSync:xae(wf.default.writeFileSync,OE.isRetriableError)}},uZa=_od;var ovn=Ce(require("fs"),1),BBt=Ce(require("path"),1);var lVi=()=>{};var Sod=()=>{let e=lVi,t=lVi,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}},cZa=Sod;var Bod=()=>{let{promise:e,resolve:t,isPending:r}=cZa(),n=0,i=()=>{n+=1},o=()=>{n-=1,!n&&t()};return i(),queueMicrotask(o),{promise:e,isPending:r,increment:i,decrement:o}},lZa=Bod;var pZa={then:e=>{e()}};var fZa=e=>Array.isArray(e)?e:[e],dZa=e=>typeof e=="function";var Ood=(e,t)=>{let r=t?.followSymlinks??!1,n=t?.depth??1/0,i=t?.limit??1/0,o=t?.ignore??[],s=fZa(o).map(J=>dZa(J)?J:K=>J.test(K)),a=J=>s.some(K=>K(J)),u=t?.signal??{aborted:!1},c=t?.onDirents||(()=>{}),l=[],p=new Set,d={},f=[],m=new Set,h={},g=[],A=new Set,b={},v={},E=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:g,symlinksNames:A,symlinksNamesToPaths:b,map:v},{promise:x,increment:C,decrement:_}=lZa(),R=0,U=(J,K,ge,he)=>{E.has(K)||R>=i||(R+=1,J.directories.push(K),J.directoriesNames.add(ge),l.push(K),p.add(ge),d.propertyIsEnumerable(ge)||(d[ge]=[]),d[ge].push(K),E.add(K),!(he>=n)&&(R>=i||H(K,he+1)))},q=(J,K,ge)=>{E.has(K)||R>=i||(R+=1,J.files.push(K),J.filesNames.add(ge),f.push(K),m.add(ge),h.propertyIsEnumerable(ge)||(h[ge]=[]),h[ge].push(K),E.add(K))},z=(J,K,ge,he)=>{E.has(K)||R>=i||(R+=1,J.symlinks.push(K),J.symlinksNames.add(ge),g.push(K),A.add(ge),b.propertyIsEnumerable(ge)||(b[ge]=[]),b[ge].push(K),E.add(K),r&&(he>=n||R>=i||Ee(K,he+1)))},Z=(J,K,ge,he,we)=>{u.aborted||a(K)||(he.isDirectory()?U(J,K,ge,we):he.isFile()?q(J,K,ge):he.isSymbolicLink()&&z(J,K,ge,we))},oe=(J,K,ge,he)=>{if(u.aborted)return;let we=K===BBt.default.sep?"":BBt.default.sep,Be=ge.name,le=`${K}${we}${Be}`;a(le)||(ge.isDirectory()?U(J,le,Be,he):ge.isFile()?q(J,le,Be):ge.isSymbolicLink()&&z(J,le,Be,he))},V=(J,K,ge,he)=>{for(let we=0,Be=ge.length;we<Be;we++)oe(J,K,ge[we],he)},H=(J,K)=>{u.aborted||K>n||R>=i||(C(),ovn.default.readdir(J,{withFileTypes:!0},(ge,he)=>{if(ge||u.aborted||!he.length)return _();(c(he)||pZa).then(()=>{let Be=v[J]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};V(Be,J,he,K),_()})}))},Ee=(J,K)=>{C(),ovn.default.realpath(J,(ge,he)=>{if(ge||u.aborted)return _();ovn.default.stat(he,(we,Be)=>{if(we||u.aborted)return _();let le=BBt.default.basename(he),ue=v[J]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};Z(ue,he,le,Be,K),_()})})};return(async(J,K=1)=>(J=BBt.default.normalize(J),E.add(J),H(J,K),await x,u.aborted?I:w))(e)},mZa=Ood;var qX={lang:{debounce:ivn,attempt:e=>{try{return e()}catch(t){return qX.lang.castError(t)}},castArray:e=>qX.lang.isArray(e)?e:[e],castError:e=>qX.lang.isError(e)?e:qX.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(qX.lang.isNaN(e))return qX.lang.isNaN(t);if(qX.lang.isPrimitive(e)||qX.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(svn.default.sep).length-1),getRealPath:(e,t)=>{try{return t?pVi.default.realpathSync.native(e):pVi.default.realpathSync(e)}catch{return}},isSubPath:(e,t)=>t.startsWith(e)&&t[e.length]===svn.default.sep&&t.length-e.length>svn.default.sep.length,poll:(e,t=iZa)=>uZa.retry.stat(t)(e,{bigint:!0}).catch(qX.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 mZa(e,{depth:r,limit:n,ignore:t,signal:i});return[s.directories,s.files]}}}},pl=qX;var avn=Ce(require("path"),1);var fVi=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||pl.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=tZa){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=pl.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===eu.CHANGE&&a===eu.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===eu.ADD_DIR?await this.eventsPopulateAddDir(t,i,r,n):s===eu.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??kve:Math.min(1,this.options.depth??kve),s=this.options.limit??xBt,[a,u]=await pl.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())pl.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(eu.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!Qve&&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(eu.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(eu.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(avn.default.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(eu.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(avn.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(eu.UNLINK_DIR,t))}onTargetEvent(t){let[r,n]=t;r===eu.ADD?this.onTargetAdd(n):r===eu.ADD_DIR?this.onTargetAddDir(n):r===eu.CHANGE?this.onTargetChange(n):r===eu.UNLINK?this.onTargetUnlink(n):r===eu.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=YDe.CHANGE,r){if(this.watcher.isClosed())return;let n=avn.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){sVi&&t.code==="EPERM"?this.onWatcherChange(YDe.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(_Bt.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(_Bt.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(YDe.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&Qve&&this.options.native!==!1?this.options.depth??kve:Math.min(1,this.options.depth??kve),n=this.options.limit??xBt,[i,o]=await pl.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(YDe.CHANGE,a,t)}))}}},hZa=fVi;var UT={interval:100,intervalId:void 0,fns:new Map,init:()=>{UT.intervalId||(UT.intervalId=setInterval(UT.resolve,UT.interval))},reset:()=>{UT.intervalId&&(clearInterval(UT.intervalId),delete UT.intervalId)},add:(e,t)=>{UT.fns.set(e,Date.now()+t),UT.init()},remove:e=>{UT.fns.delete(e)},resolve:()=>{if(!UT.fns.size)return UT.reset();let e=Date.now();for(let[t,r]of UT.fns)r>=e||(UT.remove(t),t())}},OBt=UT;var PBt=class e{constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=aVi){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(pl.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),OBt.remove(c)},c=()=>{u(),a()};OBt.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=aVi){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),OBt.remove(c)},c=()=>{u(),a()};OBt.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,eu.ADD,zX.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,eu.ADD_DIR,zX.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,eu.UNLINK,zX.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,eu.UNLINK_DIR,zX.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}}};PBt.DIR_EVENTS={add:eu.ADD_DIR,rename:eu.RENAME_DIR,unlink:eu.UNLINK_DIR};PBt.FILE_EVENTS={add:eu.ADD,change:eu.CHANGE,rename:eu.RENAME,unlink:eu.UNLINK};var gZa=PBt;var dVi=class{constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(pl.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let n=this.map.get(t);if(pl.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(pl.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(pl.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let n=this.map.get(t);return pl.lang.isSet(n)?n.has(r):n===r}return!1}set(t,r){if(this.map.has(t)){let n=this.map.get(t);pl.lang.isSet(n)?n.add(r):n!==r&&this.map.set(t,new Set([n,r]))}else this.map.set(t,r);return this}},mVi=dVi;var hVi=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}},AZa=hVi;var gVi=class{constructor(){this.inos={},this.paths=new mVi,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 pl.fs.poll(t,r);if(!(!n||!(n.isFile()||n.isDirectory())))return new AZa(n)}reset(){this.inos={},this.paths=new mVi,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,eu.ADD,i),[eu.ADD];if(i.isDirectory())return this.updateIno(t,eu.ADD_DIR,i),[eu.ADD_DIR]}else if(n&&!i){if(n.isFile())return this.updateIno(t,eu.UNLINK,n),[eu.UNLINK];if(n.isDirectory())return this.updateIno(t,eu.UNLINK_DIR,n),[eu.UNLINK_DIR]}else if(n&&i){if(n.isFile()){if(i.isFile())return n.ino===i.ino&&!n.size&&!i.size?[]:(this.updateIno(t,eu.CHANGE,i),[eu.CHANGE]);if(i.isDirectory())return this.updateIno(t,eu.UNLINK,n),this.updateIno(t,eu.ADD_DIR,i),[eu.UNLINK,eu.ADD_DIR]}else if(n.isDirectory()){if(i.isFile())return this.updateIno(t,eu.UNLINK_DIR,n),this.updateIno(t,eu.ADD,i),[eu.UNLINK_DIR,eu.ADD];if(i.isDirectory())return n.ino===i.ino?[]:(this.updateIno(t,eu.UNLINK_DIR,n),this.updateIno(t,eu.ADD_DIR,i),[eu.UNLINK_DIR,eu.ADD_DIR])}}return[]}updateIno(t,r,n){let i=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=n.isFile()?zX.FILE:zX.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)}}},AVi=gVi;var yVi=class e extends yZa.EventEmitter{constructor(t,r,n){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(LT.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(i=>this.on(LT.CLOSE,i)),this._readyWait=new Promise(i=>this.on(LT.READY,i)),this._locker=new gZa(this),this._roots=new Set,this._poller=new AVi,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&&(pl.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(LT.CLOSE))}error(t){if(this.isClosed())return!1;let r=pl.lang.castError(t);return this.emit(LT.ERROR,r)}event(t,r,n){return this.isClosed()?!1:(this.emit(LT.ALL,t,r,n),this.emit(t,r,n))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(LT.READY))}pollerExists(t,r){for(let n of this._pollers)if(n.targetPath===t&&pl.lang.isShallowEqual(n.options,r))return!0;return!1}subwatcherExists(t,r){for(let n of this._subwatchers)if(n.targetPath===t&&pl.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)pl.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 hZa(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=pl.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=XDe.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??kve))&&l.handler===n&&(!l.filePath||l.filePath===i)&&l.options.ignore===r.ignore&&!!l.options.native==!!r.native&&(!r.recursive||l.options.recursive&&Qve&&l.options.native!==!1)))return!0;if(!Qve)break;let c=XDe.default.dirname(t);if(s===c)break;s=c}return!1}async watchDirectories(t,r,n,i,o){if(this.isClosed())return;t=pl.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||Qve&&r.native!==!1?r:{...r,recursive:!1},l={watcher:uvn.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=XDe.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||Qve&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,n,i,o));{r={...r,recursive:!0};let s=r.depth??kve,a=r.limit??xBt,[u]=await pl.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=pl.fs.getDepth(t);for(let p of u){let d=pl.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(LT.CLOSE,u),s.watchFile(t,r,o)},u=()=>{this._subwatchers.delete(i),this.removeListener(LT.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=XDe.default.dirname(t);return this.watchDirectory(i,r,n,t)}async watchPollingOnce(t,r,n){if(this.isClosed())return;let i=!1,o=new AVi,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 pl.lang.noop;if(this.pollerExists(t,r))return pl.lang.noop;let i={...r,interval:r.pollingInterval??nZa},o={targetPath:t,options:r},s=()=>{this._pollers.add(o),this.on(LT.CLOSE,a),uvn.default.watchFile(t,i,n)},a=()=>{this._pollers.delete(o),this.removeListener(LT.CLOSE,a),uvn.default.unwatchFile(t,n)};return pl.lang.attempt(s),()=>pl.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=pl.lang.uniq(t).sort(),t.every((o,s)=>t.every((a,u)=>u===s||!pl.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=XDe.default.resolve(t),this.isIgnored(t,r.ignore)))return;let i=await pl.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=XDe.default.dirname(t);return(await pl.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,n):this.watchUnknownTarget(t,r,n)}}async watch(t,r,n=pl.lang.noop){if(pl.lang.isFunction(t))return this.watch([],{},t);if(pl.lang.isUndefined(t))return this.watch([],r,n);if(pl.lang.isFunction(r))return this.watch(t,{},r);if(pl.lang.isUndefined(r))return this.watch(t,{},n);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let i=pl.lang.castArray(t);i.forEach(o=>this._roots.add(o)),await this.watchPaths(i,r,n),!this.isClosed()&&(n!==pl.lang.noop&&this.on(LT.ALL,n),r.readdirMap=void 0,this.ready())}},cvn=yVi;wvn();qt();var nnt=require("fs/promises"),Ceu=require("os"),xeu=Ce(require("path"),1),Xsd=".fern",Zsd="logs";function ead(){return"cli@4.37.7"}var iRe=class{logFilePath=null;initialized=!1;sessionStartTime;constructor(){this.sessionStartTime=Date.now()}async initialize(){if(this.initialized)return;let t=Ge(Ut.of((0,Ceu.homedir)()),xe.of(Xsd)),r=Ge(t,xe.of(Zsd));await Zt(r)||await(0,nnt.mkdir)(r,{recursive:!0});let i=`${new Date().toISOString().replace(/[:.]/g,"-")}.debug.log`;this.logFilePath=Ge(r,xe.of(i));let o=["================================================================================","Fern Docs Dev Debug Log",`Session started: ${new Date().toISOString()}`,`Log file: ${xeu.default.basename(this.logFilePath)}`,"================================================================================",""].join(`
2169
2169
  `);await(0,nnt.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)+`
2170
2170
  `;try{await(0,nnt.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:ead(),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 LVi={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};function _eu(e){let t=tad();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:LVi});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",...LVi}});let p=/^\/_local\/(.*)/.exec(l.pathname);return u.method==="GET"&&p!=null?new Response(t.file(`/${p[1]}`),{headers:LVi}):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 iRe.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 tad(){return globalThis.Bun}qt();var E9i=Ce(KVi(),1),Osu=Ce(u9i(),1),Rk=require("fs/promises"),Psu=require("os"),Tsu=Ce(ww(),1),Dsu=Ce(Ssu(),1),kIn=process.platform==="win32",b9i=be.cyan("[docs]:"),Tpd="etag",Dpd=23,Bsu=e=>e.padEnd(Dpd," "),Rpd="preview",Fpd="app-preview",kpd="bundle",Qpd=".next",Npd="standalone",jpd=".fern",Mpd="packages/fern-docs/bundle/.next/server/instrumentation.js",Lpd=".npmrc",Upd=".pnpmfile.cjs",zpd="pnpm-workspace.yaml",Vpd='Cannot find matching keyid: {"signatures":';function qpd(){return Ge(Ut.of((0,Psu.homedir)()),xe.of(jpd))}function vnt({app:e=!1}){return Ge(qpd(),xe.of(e?Fpd:Rpd))}function $ve({app:e=!1}){return Ge(vnt({app:e}),xe.of(e?Qpd:kpd))}function cOt({app:e=!1}){return Ge($ve({app:e}),xe.of(Npd))}function Gpd({app:e=!1}){return Ge(cOt({app:e}),xe.of(Mpd))}function Wpd({app:e=!1}){return Ge(cOt({app:e}),xe.of(zpd))}function $pd({app:e=!1}){return Ge(cOt({app:e}),xe.of(Upd))}function Hpd({app:e=!1}){return Ge(cOt({app:e}),xe.of(Lpd))}function dRe(e){return new Error(`${e}. Please reach out to support@buildwithfern.com.`)}function Kpd({app:e=!1}){return Ge(vnt({app:e}),xe.of(Tpd))}var Jpd=`module.exports = {
2171
2171
  hooks: {
@@ -2206,7 +2206,7 @@ Please ensure you have membership at https://dashboard.buildwithfern.com, and as
2206
2206
 
2207
2207
  Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`);case"UnavailableError":return t.failAndThrow("Failed to publish docs. Please try again later or reach out to Fern support at support@buildwithfern.com.");default:return t.failAndThrow("Failed to publish docs.",e)}}function zmd(e,t){let n=e?.content;if(n?.reason==="status-code"){let i=n.statusCode;if(i===401||i===403)return`${`You do not have permission to publish docs to organization '${t}'. Please run 'fern login' to ensure you are logged in with the correct account.`}
2208
2208
 
2209
- Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`}}function Vmd(e){try{return new URL(RT(e)).pathname}catch{return}}async function qmd({fdr:e,workspace:t,organization:r,context:n,snippetsConfig:i}){if(!t)return;let o=await Gmd({fdr:e,workspace:t,snippetsConfig:i,context:n});if(Object.keys(o).length===0){n.logger.debug("[SDK Dynamic IR] No snippet configs found, skipping S3 check");return}try{let s=await e.api.v1.register.checkSdkDynamicIrExists({orgId:_r.OrgId(r),snippetConfiguration:o});if(!s.ok||!s.body){n.logger.debug("[SDK Dynamic IR] API call failed or returned empty body");return}let a=s.body.existingDynamicIrs;if(Object.keys(a).length===0){n.logger.debug("[SDK Dynamic IR] No existing SDK dynamic IRs found in S3");return}let u={};for(let[c,l]of Object.entries(a))try{n.logger.debug(`Downloading existing SDK dynamic IR for ${c}...`);let p=await fetch(l.downloadUrl);if(p.ok){let d=await p.json();u[c]={dynamicIR:d},n.logger.debug(`Successfully downloaded SDK dynamic IR for ${c}`)}else n.logger.warn(`Failed to download SDK dynamic IR for ${c}: ${p.status}`)}catch(p){n.logger.warn(`Error downloading SDK dynamic IR for ${c}: ${p}`)}return Object.keys(u).length>0?u:void 0}catch(s){n.logger.debug(`Error checking for existing SDK dynamic IRs: ${s}`);return}}function yuu(e){return e.replace(/^https:\/\//,"")}async function Gmd({fdr:e,workspace:t,snippetsConfig:r,context:n}){let i={},o=[{language:"typescript",snippetName:r.typescriptSdk?.package,explicitVersion:r.typescriptSdk?.version},{language:"python",snippetName:r.pythonSdk?.package,explicitVersion:r.pythonSdk?.version},{language:"java",snippetName:r.javaSdk?.coordinate,explicitVersion:r.javaSdk?.version},{language:"go",snippetName:r.goSdk?.githubRepo&&yuu(r.goSdk?.githubRepo),explicitVersion:r.goSdk?.version},{language:"csharp",snippetName:r.csharpSdk?.package,explicitVersion:r.csharpSdk?.version},{language:"ruby",snippetName:r.rubySdk?.gem,explicitVersion:r.rubySdk?.version},{language:"php",snippetName:r.phpSdk?.package,explicitVersion:r.phpSdk?.version},{language:"swift",snippetName:r.swiftSdk?.package,explicitVersion:r.swiftSdk?.version},{language:"rust",snippetName:r.rustSdk?.package,explicitVersion:r.rustSdk?.version}];for(let s of o){if(!s.snippetName)continue;let a=s.explicitVersion;a||(a=(await Wmd({fdr:e,workspace:t,language:s.language,snippetName:s.snippetName,context:n}))?.version),i[s.language]={packageName:s.snippetName,version:a},a||n.logger.debug(`[SDK Dynamic IR] ${s.language}: no version specified, will use latest`)}return i}async function Wmd({fdr:e,workspace:t,language:r,snippetName:n,context:i}){let o;switch(r){case"csharp":o="Csharp";break;case"go":o="Go";break;case"java":o="Java";break;case"python":o="Python";break;case"ruby":o="Ruby";break;case"typescript":o="TypeScript";break;case"php":o="Php";break;case"swift":o="Swift";break;default:return}let s,a,u;if(t.generatorsConfiguration?.groups){let c=[];for(let l of t.generatorsConfiguration.groups)for(let p of l.generators)if(p.language===r){let d=bn.getPackageName({generatorInvocation:p});d&&c.push(d),!a&&d&&(a=d,u=p.name,p.outputMode.type==="githubV2"&&(s=`${p.outputMode.githubV2.owner}/${p.outputMode.githubV2.repo}`))}}if(!a){i.logger.debug(`[SDK Dynamic IR] ${r}: no generator found with a package name`);return}try{let c=await e.sdks.versions.computeSemanticVersion({githubRepository:s,language:o,package:a});if(!c.ok){i.logger.debug(`[SDK Dynamic IR] ${r}: version computation failed for package "${a}"`);return}return i.logger.debug(`[SDK Dynamic IR] ${r}: computed version ${c.body.version} for package "${a}"`),{version:c.body.version,generatorPackage:a}}catch(c){i.logger.debug(`[SDK Dynamic IR] ${r}: error computing version: ${c}`);return}}async function $md({workspace:e,organization:t,context:r,snippetsConfig:n,skipLanguages:i=new Set}){let o={};if(!e)return;let s={typescript:n.typescriptSdk?.package,python:n.pythonSdk?.package,java:n.javaSdk?.coordinate,go:n.goSdk?.githubRepo&&yuu(n.goSdk?.githubRepo),csharp:n.csharpSdk?.package,ruby:n.rubySdk?.gem,php:n.phpSdk?.package,swift:n.swiftSdk?.package,rust:n.rustSdk?.package};if(e.generatorsConfiguration?.groups)for(let a of e.generatorsConfiguration.groups)for(let u of a.generators){let c=mRe({apiName:e.workspaceName??"",organization:t,generatorInvocation:u}),l="";if(c?.outputConfig.type==="publish")switch(c.outputConfig.value.type){case"npm":case"nuget":case"pypi":case"rubygems":l=c.outputConfig.value.packageName;break;case"maven":l=c.outputConfig.value.coordinate;break;case"go":l=c.outputConfig.value.repoUrl;break;case"swift":l=c.outputConfig.value.repoUrl;break;case"crates":l=c.outputConfig.value.packageName;break}if(u.language==="php"&&u.config&&typeof u.config=="object"&&"packageName"in u.config&&(l=u.config.packageName??""),!!u.language){if(i.has(u.language)){r.logger.debug(`Skipping dynamic IR generation for ${u.language} (using existing SDK dynamic IR)`);continue}if(u.language&&s[u.language]===l){let p=eh({workspace:e,generationLanguage:u.language,keywords:void 0,smartCasing:u.smartCasing,exampleGeneration:{disabled:!0,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!0},audiences:{type:"all"},readme:void 0,packageName:l,version:void 0,context:r,sourceResolver:new rm(r,e),dynamicGeneratorConfig:c}),d=oOe({ir:p,disableExamples:!0,smartCasing:u.smartCasing,generationLanguage:u.language,generatorConfig:c});d?o[u.language]={dynamicIR:d}:r.logger.debug(`Failed to create dynamic IR for ${u.language}`)}}}for(let[a,u]of Object.entries(s))a&&u&&!Object.keys(o).includes(a)&&!i.has(a)&&(r.logger.warn(),r.logger.warn(`Failed to upload ${a} SDK snippets because of unknown package \`${u}\`.`),r.logger.warn(`Please make sure your ${e.workspaceName?`${e.workspaceName}/`:""}generators.yml has a generator that publishes a ${u} package.`),r.logger.warn());if(Object.keys(o).length>0)return o}async function Hmd({dynamicIRs:e,dynamicIRUploadUrls:t,context:r,apiId:n}){if(Object.keys(t).length>0)for(let[i,o]of Object.entries(t)){let s=e[i]?.dynamicIR;if(s){let a=JSON.stringify(s);(await fetch(o.uploadUrl,{method:"PUT",body:a,headers:{"Content-Type":"application/octet-stream","Content-Length":Buffer.byteLength(a,"utf8").toString()}})).ok?r.logger.debug(`Uploaded dynamic IR for ${n}:${i}`):r.logger.warn(`Failed to upload dynamic IR for ${n}:${i}`)}else r.logger.warn(`Could not find matching dynamic IR to upload for ${n}:${i}`)}}async function Kmd({docsDefinition:e,isPreview:t,context:r}){e.config.aiChatConfig==null||t||r.logger.warn(be.yellow("Enabling Ask Fern from docs.yml is deprecated. Please enable it from the Fern dashboard instead."))}function Jmd(e,t){if(e)return{enabled:!0,model:process.env.FERN_AI_MODEL||"gpt-4o-mini",maxRetries:parseInt(process.env.FERN_AI_MAX_RETRIES||"3"),requestTimeoutMs:parseInt(process.env.FERN_AI_TIMEOUT_MS||"25000"),styleInstructions:t}}function Ymd(e){let t=e,r=t?.content;return{errorType:t?.error,statusCode:t?.statusCode??r?.statusCode,reason:r?.reason,errorMessage:r?.errorMessage??r?.message,body:r?.body,cause:r?.cause,rawError:e}}var AOt=[60*1e3,300*1e3,300*1e3];async function yOt({organization:e,apiWorkspaces:t,ossWorkspaces:r,docsWorkspace:n,context:i,token:o,instanceUrl:s,preview:a,previewId:u,disableTemplates:c,skipUpload:l,cliVersion:p}){let d=a&&!n.config.settings?.substituteEnvVars;n.config=uy(n.config,{onError:A=>i.failAndThrow(A)},{substituteAsEmpty:d});let f=n.config.instances;if(f.length===0){i.failAndThrow("No instances specified in docs.yml! Cannot register docs.");return}if(f.length>1&&s==null){i.failAndThrow(`More than one docs instances. Please specify one (e.g. --instance ${f[0]?.url})`);return}let m=f.find(A=>A.url===s)??f[0];if(m==null){i.failAndThrow(`No docs instance with url ${s}. Failed to register.`);return}let h=[];m.customDomain!=null&&(typeof m.customDomain=="string"?h.push(m.customDomain):Array.isArray(m.customDomain)&&h.push(...m.customDomain)),i.logger.info(`Starting docs publishing for ${a?"preview":"production"}: ${m.url}`),i.logger.debug(`Organization: ${e}, Preview: ${a}, APIs: ${t.length}, OSS: ${r.length}`);let g;return await i.runInteractiveTask({name:m.url},async()=>{let A=performance.now(),b=()=>Auu({docsWorkspace:n,customDomains:h,domain:m.url,token:o,organization:e,context:i,apiWorkspaces:t,ossWorkspaces:r,preview:a,previewId:u,editThisPage:m.editThisPage,isPrivate:m.private,disableTemplates:c,skipUpload:l,withAiExamples:n.config.aiExamples?.enabled??n.config.experimental?.aiExamples??!0,excludeApis:n.config.experimental?.excludeApis??!1,targetAudiences:m.audiences?Array.isArray(m.audiences)?m.audiences:[m.audiences]:void 0,docsUrl:m.url,cliVersion:p});for(let E=0;;E++)try{g=await b();break}catch(I){if(!(I instanceof xnt)||E>=AOt.length){if(I instanceof xnt)return i.failAndThrow("Another docs publish is currently in progress. Please try again once the other publish is complete.");throw I}let w=AOt[E]??AOt[AOt.length-1]??6e4,x=w/6e4;i.logger.warn(`Another docs publish is in progress. Retrying in ${x} minute${x===1?"":"s"} (attempt ${E+1}/${AOt.length})...`),await new Promise(C=>setTimeout(C,w))}let v=performance.now()-A;i.logger.debug(`Docs publishing completed in ${v.toFixed(0)}ms`)}),g}var Twn=class{context;task;project;docsWorkspace;ossWorkspaces;token;constructor({context:t,task:r,project:n,docsWorkspace:i,ossWorkspaces:o,token:s}){this.context=t,this.task=r,this.project=n,this.docsWorkspace=i,this.ossWorkspaces=o,this.token=s}async publish({instanceUrl:t,preview:r,skipUpload:n}){let i=new oh({context:this.context,task:this.task});try{let o=await yOt({organization:this.project.config.organization,apiWorkspaces:this.project.apiWorkspaces,ossWorkspaces:this.ossWorkspaces,docsWorkspace:this.docsWorkspace,context:i,token:this.token,instanceUrl:t,preview:r,previewId:void 0,disableTemplates:void 0,skipUpload:n,cliVersion:"4.37.6"});return i.getResult()===Tp.Failure?{success:!1}:{success:!0,url:o}}catch(o){return{success:!1,error:xi(o)}}}};St();var _nt=class e{static MAX_DISPLAYED_LOGS_TTY=10;static URL_PATTERN=/https?:\/\/[^\s]+/;context;stream;tasks={};taskOrder=[];startTime;isRegistered=!1;constructor(t){this.context=t.context,this.stream=t.stream??process.stderr}addTask(t){let r={...t,status:t.status??"pending"};return this.tasks[t.id]=r,this.taskOrder.push(t.id),this}async start(t){return this.startTime=Date.now(),t!=null&&await this.context.ttyAwareLogger.takeOverTerminal(()=>{this.stream.write(`
2209
+ Please ensure you have membership at https://dashboard.buildwithfern.com, and ask a team member for an invite if not.`}}function Vmd(e){try{return new URL(RT(e)).pathname}catch{return}}async function qmd({fdr:e,workspace:t,organization:r,context:n,snippetsConfig:i}){if(!t)return;let o=await Gmd({fdr:e,workspace:t,snippetsConfig:i,context:n});if(Object.keys(o).length===0){n.logger.debug("[SDK Dynamic IR] No snippet configs found, skipping S3 check");return}try{let s=await e.api.v1.register.checkSdkDynamicIrExists({orgId:_r.OrgId(r),snippetConfiguration:o});if(!s.ok||!s.body){n.logger.debug("[SDK Dynamic IR] API call failed or returned empty body");return}let a=s.body.existingDynamicIrs;if(Object.keys(a).length===0){n.logger.debug("[SDK Dynamic IR] No existing SDK dynamic IRs found in S3");return}let u={};for(let[c,l]of Object.entries(a))try{n.logger.debug(`Downloading existing SDK dynamic IR for ${c}...`);let p=await fetch(l.downloadUrl);if(p.ok){let d=await p.json();u[c]={dynamicIR:d},n.logger.debug(`Successfully downloaded SDK dynamic IR for ${c}`)}else n.logger.warn(`Failed to download SDK dynamic IR for ${c}: ${p.status}`)}catch(p){n.logger.warn(`Error downloading SDK dynamic IR for ${c}: ${p}`)}return Object.keys(u).length>0?u:void 0}catch(s){n.logger.debug(`Error checking for existing SDK dynamic IRs: ${s}`);return}}function yuu(e){return e.replace(/^https:\/\//,"")}async function Gmd({fdr:e,workspace:t,snippetsConfig:r,context:n}){let i={},o=[{language:"typescript",snippetName:r.typescriptSdk?.package,explicitVersion:r.typescriptSdk?.version},{language:"python",snippetName:r.pythonSdk?.package,explicitVersion:r.pythonSdk?.version},{language:"java",snippetName:r.javaSdk?.coordinate,explicitVersion:r.javaSdk?.version},{language:"go",snippetName:r.goSdk?.githubRepo&&yuu(r.goSdk?.githubRepo),explicitVersion:r.goSdk?.version},{language:"csharp",snippetName:r.csharpSdk?.package,explicitVersion:r.csharpSdk?.version},{language:"ruby",snippetName:r.rubySdk?.gem,explicitVersion:r.rubySdk?.version},{language:"php",snippetName:r.phpSdk?.package,explicitVersion:r.phpSdk?.version},{language:"swift",snippetName:r.swiftSdk?.package,explicitVersion:r.swiftSdk?.version},{language:"rust",snippetName:r.rustSdk?.package,explicitVersion:r.rustSdk?.version}];for(let s of o){if(!s.snippetName)continue;let a=s.explicitVersion;a||(a=(await Wmd({fdr:e,workspace:t,language:s.language,snippetName:s.snippetName,context:n}))?.version),i[s.language]={packageName:s.snippetName,version:a},a||n.logger.debug(`[SDK Dynamic IR] ${s.language}: no version specified, will use latest`)}return i}async function Wmd({fdr:e,workspace:t,language:r,snippetName:n,context:i}){let o;switch(r){case"csharp":o="Csharp";break;case"go":o="Go";break;case"java":o="Java";break;case"python":o="Python";break;case"ruby":o="Ruby";break;case"typescript":o="TypeScript";break;case"php":o="Php";break;case"swift":o="Swift";break;default:return}let s,a,u;if(t.generatorsConfiguration?.groups){let c=[];for(let l of t.generatorsConfiguration.groups)for(let p of l.generators)if(p.language===r){let d=bn.getPackageName({generatorInvocation:p});d&&c.push(d),!a&&d&&(a=d,u=p.name,p.outputMode.type==="githubV2"&&(s=`${p.outputMode.githubV2.owner}/${p.outputMode.githubV2.repo}`))}}if(!a){i.logger.debug(`[SDK Dynamic IR] ${r}: no generator found with a package name`);return}try{let c=await e.sdks.versions.computeSemanticVersion({githubRepository:s,language:o,package:a});if(!c.ok){i.logger.debug(`[SDK Dynamic IR] ${r}: version computation failed for package "${a}"`);return}return i.logger.debug(`[SDK Dynamic IR] ${r}: computed version ${c.body.version} for package "${a}"`),{version:c.body.version,generatorPackage:a}}catch(c){i.logger.debug(`[SDK Dynamic IR] ${r}: error computing version: ${c}`);return}}async function $md({workspace:e,organization:t,context:r,snippetsConfig:n,skipLanguages:i=new Set}){let o={};if(!e)return;let s={typescript:n.typescriptSdk?.package,python:n.pythonSdk?.package,java:n.javaSdk?.coordinate,go:n.goSdk?.githubRepo&&yuu(n.goSdk?.githubRepo),csharp:n.csharpSdk?.package,ruby:n.rubySdk?.gem,php:n.phpSdk?.package,swift:n.swiftSdk?.package,rust:n.rustSdk?.package};if(e.generatorsConfiguration?.groups)for(let a of e.generatorsConfiguration.groups)for(let u of a.generators){let c=mRe({apiName:e.workspaceName??"",organization:t,generatorInvocation:u}),l="";if(c?.outputConfig.type==="publish")switch(c.outputConfig.value.type){case"npm":case"nuget":case"pypi":case"rubygems":l=c.outputConfig.value.packageName;break;case"maven":l=c.outputConfig.value.coordinate;break;case"go":l=c.outputConfig.value.repoUrl;break;case"swift":l=c.outputConfig.value.repoUrl;break;case"crates":l=c.outputConfig.value.packageName;break}if(u.language==="php"&&u.config&&typeof u.config=="object"&&"packageName"in u.config&&(l=u.config.packageName??""),!!u.language){if(i.has(u.language)){r.logger.debug(`Skipping dynamic IR generation for ${u.language} (using existing SDK dynamic IR)`);continue}if(u.language&&s[u.language]===l){let p=eh({workspace:e,generationLanguage:u.language,keywords:void 0,smartCasing:u.smartCasing,exampleGeneration:{disabled:!0,skipAutogenerationIfManualExamplesExist:!0,skipErrorAutogenerationIfManualErrorExamplesExist:!0},audiences:{type:"all"},readme:void 0,packageName:l,version:void 0,context:r,sourceResolver:new rm(r,e),dynamicGeneratorConfig:c}),d=oOe({ir:p,disableExamples:!0,smartCasing:u.smartCasing,generationLanguage:u.language,generatorConfig:c});d?o[u.language]={dynamicIR:d}:r.logger.debug(`Failed to create dynamic IR for ${u.language}`)}}}for(let[a,u]of Object.entries(s))a&&u&&!Object.keys(o).includes(a)&&!i.has(a)&&(r.logger.warn(),r.logger.warn(`Failed to upload ${a} SDK snippets because of unknown package \`${u}\`.`),r.logger.warn(`Please make sure your ${e.workspaceName?`${e.workspaceName}/`:""}generators.yml has a generator that publishes a ${u} package.`),r.logger.warn());if(Object.keys(o).length>0)return o}async function Hmd({dynamicIRs:e,dynamicIRUploadUrls:t,context:r,apiId:n}){if(Object.keys(t).length>0)for(let[i,o]of Object.entries(t)){let s=e[i]?.dynamicIR;if(s){let a=JSON.stringify(s);(await fetch(o.uploadUrl,{method:"PUT",body:a,headers:{"Content-Type":"application/octet-stream","Content-Length":Buffer.byteLength(a,"utf8").toString()}})).ok?r.logger.debug(`Uploaded dynamic IR for ${n}:${i}`):r.logger.warn(`Failed to upload dynamic IR for ${n}:${i}`)}else r.logger.warn(`Could not find matching dynamic IR to upload for ${n}:${i}`)}}async function Kmd({docsDefinition:e,isPreview:t,context:r}){e.config.aiChatConfig==null||t||r.logger.warn(be.yellow("Enabling Ask Fern from docs.yml is deprecated. Please enable it from the Fern dashboard instead."))}function Jmd(e,t){if(e)return{enabled:!0,model:process.env.FERN_AI_MODEL||"gpt-4o-mini",maxRetries:parseInt(process.env.FERN_AI_MAX_RETRIES||"3"),requestTimeoutMs:parseInt(process.env.FERN_AI_TIMEOUT_MS||"25000"),styleInstructions:t}}function Ymd(e){let t=e,r=t?.content;return{errorType:t?.error,statusCode:t?.statusCode??r?.statusCode,reason:r?.reason,errorMessage:r?.errorMessage??r?.message,body:r?.body,cause:r?.cause,rawError:e}}var AOt=[60*1e3,300*1e3,300*1e3];async function yOt({organization:e,apiWorkspaces:t,ossWorkspaces:r,docsWorkspace:n,context:i,token:o,instanceUrl:s,preview:a,previewId:u,disableTemplates:c,skipUpload:l,cliVersion:p}){let d=a&&!n.config.settings?.substituteEnvVars;n.config=uy(n.config,{onError:A=>i.failAndThrow(A)},{substituteAsEmpty:d});let f=n.config.instances;if(f.length===0){i.failAndThrow("No instances specified in docs.yml! Cannot register docs.");return}if(f.length>1&&s==null){i.failAndThrow(`More than one docs instances. Please specify one (e.g. --instance ${f[0]?.url})`);return}let m=f.find(A=>A.url===s)??f[0];if(m==null){i.failAndThrow(`No docs instance with url ${s}. Failed to register.`);return}let h=[];m.customDomain!=null&&(typeof m.customDomain=="string"?h.push(m.customDomain):Array.isArray(m.customDomain)&&h.push(...m.customDomain)),i.logger.info(`Starting docs publishing for ${a?"preview":"production"}: ${m.url}`),i.logger.debug(`Organization: ${e}, Preview: ${a}, APIs: ${t.length}, OSS: ${r.length}`);let g;return await i.runInteractiveTask({name:m.url},async()=>{let A=performance.now(),b=()=>Auu({docsWorkspace:n,customDomains:h,domain:m.url,token:o,organization:e,context:i,apiWorkspaces:t,ossWorkspaces:r,preview:a,previewId:u,editThisPage:m.editThisPage,isPrivate:m.private,disableTemplates:c,skipUpload:l,withAiExamples:n.config.aiExamples?.enabled??n.config.experimental?.aiExamples??!0,excludeApis:n.config.experimental?.excludeApis??!1,targetAudiences:m.audiences?Array.isArray(m.audiences)?m.audiences:[m.audiences]:void 0,docsUrl:m.url,cliVersion:p});for(let E=0;;E++)try{g=await b();break}catch(I){if(!(I instanceof xnt)||E>=AOt.length){if(I instanceof xnt)return i.failAndThrow("Another docs publish is currently in progress. Please try again once the other publish is complete.");throw I}let w=AOt[E]??AOt[AOt.length-1]??6e4,x=w/6e4;i.logger.warn(`Another docs publish is in progress. Retrying in ${x} minute${x===1?"":"s"} (attempt ${E+1}/${AOt.length})...`),await new Promise(C=>setTimeout(C,w))}let v=performance.now()-A;i.logger.debug(`Docs publishing completed in ${v.toFixed(0)}ms`)}),g}var Twn=class{context;task;project;docsWorkspace;ossWorkspaces;token;constructor({context:t,task:r,project:n,docsWorkspace:i,ossWorkspaces:o,token:s}){this.context=t,this.task=r,this.project=n,this.docsWorkspace=i,this.ossWorkspaces=o,this.token=s}async publish({instanceUrl:t,preview:r,skipUpload:n}){let i=new oh({context:this.context,task:this.task});try{let o=await yOt({organization:this.project.config.organization,apiWorkspaces:this.project.apiWorkspaces,ossWorkspaces:this.ossWorkspaces,docsWorkspace:this.docsWorkspace,context:i,token:this.token,instanceUrl:t,preview:r,previewId:void 0,disableTemplates:void 0,skipUpload:n,cliVersion:"4.37.7"});return i.getResult()===Tp.Failure?{success:!1}:{success:!0,url:o}}catch(o){return{success:!1,error:xi(o)}}}};St();var _nt=class e{static MAX_DISPLAYED_LOGS_TTY=10;static URL_PATTERN=/https?:\/\/[^\s]+/;context;stream;tasks={};taskOrder=[];startTime;isRegistered=!1;constructor(t){this.context=t.context,this.stream=t.stream??process.stderr}addTask(t){let r={...t,status:t.status??"pending"};return this.tasks[t.id]=r,this.taskOrder.push(t.id),this}async start(t){return this.startTime=Date.now(),t!=null&&await this.context.ttyAwareLogger.takeOverTerminal(()=>{this.stream.write(`
2210
2210
  `),this.stream.write(`${be.cyan("\u25C6")} ${be.bold(t.title)}
2211
2211
  `),t.subtitle!=null&&this.stream.write(` ${be.dim(t.subtitle)}
2212
2212
  `),this.stream.write(`
@@ -2528,7 +2528,7 @@ ${this.buffer}`:this.buffer}stringifyRequires(){return Array.from(this.requires)
2528
2528
  `).replace(/\r/g,`
2529
2529
  `).replace(/\x00/g,"").trim()}};function n2(e,t){switch(t.type){case"public":e.write("pub");break;case"pub_crate":e.write("pub(crate)");break;case"pub_super":e.write("pub(super)");break;case"private":break}}var NFe=class extends Gu{name;visibility;attributes;variants;docs;constructor({name:t,visibility:r,attributes:n,variants:i,docs:o}){super(),this.name=t,this.visibility=r,this.attributes=n,this.variants=i,this.docs=o}write(t){this.docs&&this.docs.write(t),this.attributes&&this.attributes.length>0&&this.attributes.forEach(r=>{r.write(t),t.newLine()}),this.visibility&&(n2(t,this.visibility),t.write(" ")),t.write(`enum ${this.name} {`),t.newLine(),this.variants.forEach(r=>{r.write(t),t.newLine()}),t.write("}")}};var jFe=class extends Gu{name;attributes;data;namedFields;docs;constructor({name:t,attributes:r,data:n,namedFields:i,docs:o}){super(),this.name=t,this.attributes=r,this.data=n,this.namedFields=i,this.docs=o}write(t){if(this.docs){let r=new Dz;this.docs.write(r),r.toString().split(`
2530
2530
  `).filter(o=>o.trim()).forEach(o=>{t.write(" "),t.write(o.trim()),t.newLine()})}this.attributes&&this.attributes.length>0&&this.attributes.forEach(r=>{t.write(" "),r.write(t),t.newLine()}),t.write(" "),t.write(this.name),this.data&&this.data.length>0&&(t.write("("),this.data.forEach((r,n)=>{n>0&&t.write(", "),r.write(t)}),t.write(")")),this.namedFields&&this.namedFields.length>0&&(t.write(" { "),this.namedFields.forEach((r,n)=>{n>0&&t.write(", "),t.write(`${r.name}: `),r.type.write(t)}),t.write(" }")),t.write(",")}};var mot=class e extends Gu{args;constructor(t){super(),this.args=t}write(t){switch(this.args.type){case"reference":t.write(this.args.name);break;case"self":t.write("self");break;case"field-access":this.args.target.write(t),t.write("."),t.write(this.args.field);break;case"method-call":{let r=this.args;r.target.write(t),t.write("."),t.write(r.method),t.write("("),r.multiline&&r.args.length>0?(t.newLine(),t.indent(),r.args.forEach((n,i)=>{i>0&&(t.write(","),t.newLine()),n.write(t)}),t.newLine(),t.dedent()):r.args.forEach((n,i)=>{i>0&&t.write(", "),n.write(t)}),t.write(")"),r.isAsync&&t.write(".await");break}case"method-chain":{this.args.calls.forEach((n,i)=>{i>0&&t.write("."),t.write(n.method),t.write("("),n.args.forEach((o,s)=>{s>0&&t.write(", "),o.write(t)}),t.write(")"),n.isAsync&&t.write(".await")});break}case"function-call":{let r=this.args;t.write(r.function),t.write("("),r.multiline&&r.args.length>0?(t.newLine(),t.indent(),r.args.forEach((n,i)=>{i>0&&(t.write(","),t.newLine()),n.write(t)}),t.newLine(),t.dedent()):r.args.forEach((n,i)=>{i>0&&t.write(", "),n.write(t)}),t.write(")");break}case"await":this.args.expression.write(t),t.write(".await");break;case"try":this.args.expression.write(t),t.write("?");break;case"ok":t.write("Ok("),this.args.value.write(t),t.write(")");break;case"err":t.write("Err("),this.args.value.write(t),t.write(")");break;case"some":t.write("Some("),this.args.value.write(t),t.write(")");break;case"none":t.write("None");break;case"string-literal":t.write(JSON.stringify(this.args.value));break;case"number-literal":t.write(this.args.value.toString());break;case"float-literal":{let r=this.args.value,n=Number.isInteger(r)?`${r}.0`:r.toString();t.write(n);break}case"boolean-literal":t.write(this.args.value.toString());break;case"format-string":t.write("format!("),t.write(JSON.stringify(this.args.template)),this.args.args.forEach(r=>{t.write(", "),r.write(t)}),t.write(")");break;case"vec-literal":t.write("vec!["),this.args.elements.forEach((r,n)=>{n>0&&t.write(", "),r.write(t)}),t.write("]");break;case"struct-literal":t.write(this.args.name),t.write(" { "),this.args.fields.forEach((r,n)=>{n>0&&t.write(", "),t.write(r.name),t.write(": "),r.value.write(t)}),t.write(" }");break;case"struct-construction":{let r=this.args;t.write(r.typeName),t.write(" {"),(r.fields.length>0||r.useDefault)&&(t.newLine(),t.indent(),r.fields.forEach((n,i)=>{t.write(n.name),t.write(": "),n.value.write(t),(i<r.fields.length-1||r.useDefault)&&t.write(","),t.newLine()}),r.useDefault&&(t.write("..Default::default()"),t.newLine()),t.dedent()),t.write("}");break}case"reference-of":{let r=this.args;t.write("&"),r.mutable&&t.write("mut "),r.inner.write(t);break}case"dereference":{let r=this.args;t.write("*"),r.inner.write(t);break}case"clone":{this.args.expression.write(t),t.write(".clone()");break}case"if-let":{let r=this.args;t.write("if let "),t.write(r.pattern),t.write(" = "),r.value.write(t),t.write(" { "),r.then.write(t),t.write(" }"),r.else_&&(t.write(" else { "),r.else_.write(t),t.write(" }"));break}case"if-condition":{let r=this.args;t.write("if "),r.condition.write(t),t.write(" { "),r.then.write(t),t.write(" }"),r.else_&&(t.write(" else { "),r.else_.write(t),t.write(" }"));break}case"block":{let r=this.args;t.write("{ "),r.statements.length>0?(t.newLine(),t.indent(),r.statements.forEach(n=>{n.write(t),t.newLine()}),r.result&&(r.result.write(t),t.newLine()),t.dedent()):r.result&&r.result.write(t),t.write(" }");break}case"tuple":{let r=this.args;t.write("("),r.elements.forEach((n,i)=>{i>0&&t.write(", "),n.write(t)}),t.write(")");break}case"array":{let r=this.args;t.write("["),r.elements.forEach((n,i)=>{i>0&&t.write(", "),n.write(t)}),t.write("]");break}case"macro-call":{let r=this.args;t.write(r.name),t.write("!("),r.args.forEach((n,i)=>{i>0&&t.write(", "),n.write(t)}),t.write(")");break}case"closure":{let r=this.args;t.write("|"),r.parameters.forEach((n,i)=>{i>0&&t.write(", "),t.write(n.name),n.type&&(t.write(": "),n.type.write(t))}),t.write("| "),r.body.write(t);break}case"raw":{let r=this.args;t.write(r.value);break}}}static reference(t){return new e({type:"reference",name:t})}static variable(t){return e.reference(t)}static self(){return new e({type:"self"})}static fieldAccess(t,r){return new e({type:"field-access",target:t,field:r})}static methodCall(t){return new e({type:"method-call",target:t.target,method:t.method,args:t.args,isAsync:t.isAsync,multiline:t.multiline})}static methodChain(t,r){let n=t;for(let i of r)n=e.methodCall({target:n,method:i.method,args:i.args,isAsync:i.isAsync});return n}static functionCall(t,r,n=!1){return new e({type:"function-call",function:t,args:r,multiline:n})}static await(t){return new e({type:"await",expression:t})}static try(t){return new e({type:"try",expression:t})}static ok(t){return new e({type:"ok",value:t})}static err(t){return new e({type:"err",value:t})}static some(t){return new e({type:"some",value:t})}static none(){return new e({type:"none"})}static stringLiteral(t){return new e({type:"string-literal",value:t})}static literal(t){return e.stringLiteral(t)}static numberLiteral(t){return new e({type:"number-literal",value:t})}static floatLiteral(t){return new e({type:"float-literal",value:t})}static booleanLiteral(t){return new e({type:"boolean-literal",value:t})}static formatString(t,r){return new e({type:"format-string",template:t,args:r})}static vec(t){return new e({type:"vec-literal",elements:t})}static structLiteral(t,r){return new e({type:"struct-literal",name:t,fields:r})}static structConstruction(t,r,n){return new e({type:"struct-construction",typeName:t,fields:r,useDefault:n})}static referenceOf(t,r){return new e({type:"reference-of",inner:t,mutable:r})}static clone(t){return new e({type:"clone",expression:t})}static dereference(t){return new e({type:"dereference",inner:t})}static ifLet(t,r,n,i){return new e({type:"if-let",pattern:t,value:r,then:n,else_:i})}static ifCondition(t,r,n){return new e({type:"if-condition",condition:t,then:r,else_:n})}static block(t,r){return new e({type:"block",statements:t,result:r})}static tuple(t){return new e({type:"tuple",elements:t})}static array(t){return new e({type:"array",elements:t})}static macroCall(t,r){return new e({type:"macro-call",name:t,args:r})}static closure(t,r){return new e({type:"closure",parameters:t,body:r})}static raw(t){return new e({type:"raw",value:t})}static unwrapOr(t,r){return e.methodCall({target:t,method:"unwrap_or",args:[r]})}static toString(t){return e.methodCall({target:t,method:"to_string",args:[]})}static andThen(t,r){return e.methodCall({target:t,method:"and_then",args:[r]})}static map(t,r){return e.methodCall({target:t,method:"map",args:[r]})}};var MFe=class extends Gu{name;type;visibility;attributes;docs;constructor({name:t,type:r,visibility:n,attributes:i,docs:o}){super(),this.name=t,this.type=r,this.visibility=n,this.attributes=i,this.docs=o}write(t){if(this.docs){let r=new Dz;this.docs.write(r),r.toString().split(`
2531
- `).filter(o=>o.trim()).forEach(o=>{t.write(" "),t.write(o.trim()),t.newLine()})}this.attributes&&this.attributes.length>0&&this.attributes.forEach(r=>{t.write(" "),r.write(t),t.newLine()}),t.write(" "),this.visibility&&(n2(t,this.visibility),t.write(" ")),t.write(`${this.name}: `),this.type.write(t),t.write(",")}};var LFe=class extends Gu{targetType;attributes;methods;traitName;constructor({targetType:t,attributes:r,methods:n,traitName:i}){super(),this.targetType=t,this.attributes=r,this.methods=n,this.traitName=i}write(t){this.attributes&&this.attributes.length>0&&this.attributes.forEach(r=>{r.write(t),t.newLine()}),t.write("impl "),this.traitName&&t.write(`${this.traitName} for `),this.targetType.write(t),t.write(" {"),t.newLine(),this.methods.forEach((r,n)=>{n>0&&t.newLine(),r.write(t),t.newLine()}),t.write("}")}};var hot=class e extends Gu{pattern;guard;body;trailing_comma;constructor({pattern:t,guard:r,body:n,trailing_comma:i=!0}){super(),this.pattern=t,this.guard=r,this.body=n,this.trailing_comma=i}write(t){this.pattern.write(t),this.guard&&(t.write(" if "),this.guard.write(t)),t.write(" => "),Array.isArray(this.body)?(t.write("{"),this.body.length>0&&(t.newLine(),t.indent(),this.body.forEach(r=>{r.write(t),t.newLine()}),t.dedent()),t.write("}")):this.body.write(t),this.trailing_comma&&t.write(",")}static create(t,r,n){return new e({pattern:t,guard:r,body:n})}static withExpression(t,r,n){return new e({pattern:t,guard:n,body:r})}static withStatements(t,r,n){return new e({pattern:t,guard:n,body:r})}static withoutComma(t,r,n){return new e({pattern:t,guard:n,body:r,trailing_comma:!1})}};var UFe=class extends Gu{name;visibility;attributes;parameters;returnType;isAsync;isStatic;body;constructor({name:t,visibility:r,attributes:n,parameters:i,returnType:o,isAsync:s=!1,isStatic:a=!1,body:u}){super(),this.name=t,this.visibility=r,this.attributes=n,this.parameters=i,this.returnType=o,this.isAsync=s,this.isStatic=a,this.body=u}write(t){this.attributes&&this.attributes.length>0&&this.attributes.forEach(r=>{t.write(" "),r.write(t),t.newLine()}),t.write(" "),this.visibility&&(n2(t,this.visibility),t.write(" ")),this.isAsync&&t.write("async "),t.write(`fn ${this.name}(`),this.parameters.forEach((r,n)=>{n>0&&t.write(", "),r.isSelf?(r.isRef&&t.write("&"),r.isMut&&t.write("mut "),t.write("self")):(t.write(r.name),t.write(": "),r.isRef&&t.write("&"),r.parameterType.write(t))}),t.write(")"),this.returnType&&(t.write(" -> "),this.returnType.write(t)),this.body?(t.write(" "),this.body.write(t)):t.write(";")}};var zFe=class extends Gu{moduleDoc;imports;useStatements;moduleDeclarations;structs;implBlocks;enums;rawDeclarations;constructor({moduleDoc:t,imports:r,useStatements:n,moduleDeclarations:i,structs:o,implBlocks:s,enums:a,rawDeclarations:u}){super(),this.moduleDoc=t,this.imports=r,this.useStatements=n,this.moduleDeclarations=i,this.structs=o,this.implBlocks=s,this.enums=a,this.rawDeclarations=u}write(t){this.moduleDoc&&this.moduleDoc.length>0&&(this.moduleDoc.forEach(r=>{r===""?t.writeLine("//!"):t.writeLine(`//! ${r}`)}),t.newLine()),this.imports&&this.imports.length>0&&(this.imports.forEach(r=>{t.write(r),t.newLine()}),t.newLine()),this.moduleDeclarations&&this.moduleDeclarations.length>0&&(this.moduleDeclarations.forEach(r=>{r.write(t),t.newLine()}),t.newLine()),this.useStatements&&this.useStatements.length>0&&(this.useStatements.forEach(r=>{r.write(t),t.newLine()}),t.newLine()),this.structs&&this.structs.length>0&&(this.structs.forEach((r,n)=>{n>0&&t.newLine(),r.write(t),t.newLine()}),t.newLine()),this.enums&&this.enums.length>0&&(this.enums.forEach((r,n)=>{n>0&&t.newLine(),r.write(t),t.newLine()}),t.newLine()),this.implBlocks&&this.implBlocks.length>0&&(this.implBlocks.forEach((r,n)=>{n>0&&t.newLine(),r.write(t),t.newLine()}),t.newLine()),this.rawDeclarations&&this.rawDeclarations.length>0&&this.rawDeclarations.forEach(r=>{t.write(r),t.newLine()})}};var L_n=class extends Gu{name;isPublic;constructor({name:t,isPublic:r=!1}){super(),this.name=t,this.isPublic=r}write(t){this.isPublic&&t.write("pub "),t.write("mod "),t.write(this.name),t.write(";")}};var VFe=class extends Gu{name;innerType;visibility;innerVisibility;attributes;innerAttributes;constructor({name:t,innerType:r,visibility:n,innerVisibility:i,attributes:o,innerAttributes:s}){super(),this.name=t,this.innerType=r,this.visibility=n,this.innerVisibility=i,this.attributes=o,this.innerAttributes=s}write(t){this.attributes&&this.attributes.length>0&&this.attributes.forEach(r=>{r.write(t),t.newLine()}),this.visibility&&(n2(t,this.visibility),t.write(" ")),this.innerAttributes&&this.innerAttributes.length>0?(t.writeLine(`struct ${this.name}(`),t.indent(),this.innerAttributes.forEach(r=>{r.write(t),t.newLine()}),this.innerVisibility&&(n2(t,this.innerVisibility),t.write(" ")),this.innerType.write(t),t.newLine(),t.dedent(),t.write(");")):(t.write(`struct ${this.name}(`),this.innerVisibility&&(n2(t,this.innerVisibility),t.write(" ")),this.innerType.write(t),t.write(");"))}};var U_n=class extends Gu{args;constructor(t){super(),this.args=t}write(t){this.args.isAsync?this.writeAsyncMethod(t):this.writeSyncMethod(t)}writeAsyncMethod(t){let{name:r,parameters:n,itemType:i}=this.args,o=`AsyncPaginator<${i.toString()}>`;t.writeLine(`pub async fn ${r}_paginated(&self, ${n.join(", ")}) -> Result<${o}, ClientError> {`),t.indent(),t.writeLine(this.args.body),t.dedent(),t.writeLine("}"),t.writeLine("")}writeSyncMethod(t){let{name:r,parameters:n,itemType:i}=this.args,o=`SyncPaginator<${i.toString()}>`;t.writeLine(`pub fn ${r}_paginated_sync(&self, ${n.join(", ")}) -> Result<${o}, ClientError> {`),t.indent(),t.writeLine(this.args.body),t.dedent(),t.writeLine("}"),t.writeLine("")}};var got=class e extends Gu{args;constructor(t){super(),this.args=t}write(t){switch(this.args.type){case"literal":typeof this.args.value=="string"?t.write(JSON.stringify(this.args.value)):t.write(this.args.value.toString());break;case"wildcard":t.write("_");break;case"variable":t.write(this.args.name);break;case"some":t.write("Some("),this.args.inner.write(t),t.write(")");break;case"none":t.write("None");break;case"ok":t.write("Ok("),this.args.inner.write(t),t.write(")");break;case"err":t.write("Err("),this.args.inner.write(t),t.write(")");break;case"struct":{let r=this.args;t.write(r.name),r.fields.length>0&&(t.write(" { "),r.fields.forEach((n,i)=>{i>0&&t.write(", "),t.write(n.name),n.pattern&&(t.write(": "),n.pattern.write(t))}),t.write(" }"));break}case"tuple":{let r=this.args;t.write("("),r.elements.forEach((n,i)=>{i>0&&t.write(", "),n.write(t)}),t.write(")");break}case"reference":{let r=this.args;t.write("&"),r.mutable&&t.write("mut "),r.inner.write(t);break}case"slice":{let r=this.args;t.write("["),r.elements.forEach((n,i)=>{i>0&&t.write(", "),n.write(t)}),t.write("]");break}case"range":{let r=this.args;t.write(r.start.toString()),t.write(r.inclusive?"..=":".."),t.write(r.end.toString());break}case"raw":t.write(this.args.value);break}}static literal(t){return new e({type:"literal",value:t})}static wildcard(){return new e({type:"wildcard"})}static variable(t){return new e({type:"variable",name:t})}static some(t){return new e({type:"some",inner:t})}static none(){return new e({type:"none"})}static ok(t){return new e({type:"ok",inner:t})}static err(t){return new e({type:"err",inner:t})}static struct(t,r){return new e({type:"struct",name:t,fields:r})}static tuple(t){return new e({type:"tuple",elements:t})}static reference(t,r){return new e({type:"reference",inner:t,mutable:r})}static slice(t){return new e({type:"slice",elements:t})}static range(t,r,n=!1){return new e({type:"range",start:t,end:r,inclusive:n})}static raw(t){return new e({type:"raw",value:t})}};var qFe=class extends Gu{name;module;genericArgs;constructor({name:t,module:r,genericArgs:n}){super(),this.name=t,this.module=r,this.genericArgs=n}write(t){this.module&&t.write(`${this.module}::`),t.write(this.name),this.genericArgs&&this.genericArgs.length>0&&(t.write("<"),this.genericArgs.forEach((r,n)=>{n>0&&t.write(", "),r.write(t)}),t.write(">"))}getImportPath(){return this.module}getName(){return this.name}};var GFe=class extends Gu{name;visibility;attributes;parameters;returnType;isAsync;body;constructor({name:t,visibility:r,attributes:n,parameters:i,returnType:o,isAsync:s=!1,body:a}){super(),this.name=t,this.visibility=r,this.attributes=n,this.parameters=i,this.returnType=o,this.isAsync=s,this.body=a}write(t){this.attributes&&this.attributes.length>0&&this.attributes.forEach(r=>{r.write(t),t.newLine()}),this.visibility&&(n2(t,this.visibility),t.write(" ")),this.isAsync&&t.write("async "),t.write(`fn ${this.name}(`),this.parameters.forEach((r,n)=>{n>0&&t.write(", "),r.isSelf?(r.isRef&&t.write("&"),r.isMut&&t.write("mut "),t.write("self")):(t.write(r.name),t.write(": "),r.isRef&&t.write("&"),r.parameterType.write(t))}),t.write(")"),this.returnType&&(t.write(" -> "),this.returnType.write(t)),this.body?(t.write(" "),this.body.write(t)):t.write(";")}};var WFe=class extends Gu{name;visibility;attributes;fields;docs;constructor({name:t,visibility:r,attributes:n,fields:i,docs:o}){super(),this.name=t,this.visibility=r,this.attributes=n,this.fields=i,this.docs=o}write(t){this.docs&&this.docs.write(t),this.attributes&&this.attributes.length>0&&this.attributes.forEach(r=>{r.write(t),t.newLine()}),this.visibility&&(n2(t,this.visibility),t.write(" ")),t.write(`struct ${this.name} {`),t.newLine(),this.fields.forEach(r=>{r.write(t),t.newLine()}),t.write("}")}};var Aot;(function(e){e.I8="i8",e.I16="i16",e.I32="i32",e.I64="i64",e.I128="i128",e.U8="u8",e.U16="u16",e.U32="u32",e.U64="u64",e.U128="u128",e.F32="f32",e.F64="f64",e.Bool="bool",e.Char="char",e.Str="str",e.String="String"})(Aot||(Aot={}));var z_n={type:"public"},kgu={type:"private"};var dh=class e extends Gu{static primitive(t){return new i$i(t)}static reference(t){return new o$i(t)}static option(t){return this.isAlreadyOptional(t)?t:new V_n(t)}static result(t,r){return new s$i(t,r)}static vec(t){return new a$i(t)}static hashMap(t,r){return new u$i(t,r)}static str(){return new c$i}static string(){return e.primitive(Aot.String)}static tuple(t){return new l$i(t)}static array(t,r){return new p$i(t,r)}static mutableReference(t){return new f$i(t)}static immutableReference(t){return new d$i(t)}static lifetime(t,r){return new m$i(t,r)}static generic(t,r){return new h$i(t,r)}static trait(t){return new g$i(t)}static closure(t,r){return new A$i(t,r)}static unit(){return new y$i}static never(){return new b$i}static isAlreadyOptional(t){return t instanceof V_n}},i$i=class extends dh{primitive;constructor(t){super(),this.primitive=t}write(t){t.write(this.primitive)}},o$i=class extends dh{reference;constructor(t){super(),this.reference=t}write(t){this.reference.write(t)}},V_n=class extends dh{inner;constructor(t){super(),this.inner=t}write(t){t.write("Option<"),this.inner.write(t),t.write(">")}},s$i=class extends dh{ok;err;constructor(t,r){super(),this.ok=t,this.err=r}write(t){t.write("Result<"),this.ok.write(t),t.write(", "),this.err.write(t),t.write(">")}},a$i=class extends dh{inner;constructor(t){super(),this.inner=t}write(t){t.write("Vec<"),this.inner.write(t),t.write(">")}},u$i=class extends dh{key;value;constructor(t,r){super(),this.key=t,this.value=r}write(t){t.write("HashMap<"),this.key.write(t),t.write(", "),this.value.write(t),t.write(">")}},c$i=class extends dh{write(t){t.write("&str")}},l$i=class extends dh{types;constructor(t){super(),this.types=t}write(t){t.write("("),this.types.forEach((r,n)=>{n>0&&t.write(", "),r.write(t)}),t.write(")")}},p$i=class extends dh{inner;size;constructor(t,r){super(),this.inner=t,this.size=r}write(t){t.write("["),this.inner.write(t),this.size!==void 0&&t.write(`; ${this.size}`),t.write("]")}},f$i=class extends dh{inner;constructor(t){super(),this.inner=t}write(t){t.write("&mut "),this.inner.write(t)}},d$i=class extends dh{inner;constructor(t){super(),this.inner=t}write(t){t.write("&"),this.inner.write(t)}},m$i=class extends dh{name;inner;constructor(t,r){super(),this.name=t,this.inner=r}write(t){t.write("&'"),t.write(this.name),t.write(" "),this.inner.write(t)}},h$i=class extends dh{name;bounds;constructor(t,r){super(),this.name=t,this.bounds=r}write(t){t.write(this.name),this.bounds&&this.bounds.length>0&&(t.write(": "),this.bounds.forEach((r,n)=>{n>0&&t.write(" + "),r.write(t)}))}},g$i=class extends dh{name;constructor(t){super(),this.name=t}write(t){t.write("dyn "),t.write(this.name)}},A$i=class extends dh{params;returnType;constructor(t,r){super(),this.params=t,this.returnType=r}write(t){t.write("Box<dyn Fn("),this.params.forEach((r,n)=>{n>0&&t.write(", "),r.write(t)}),t.write(") -> "),this.returnType.write(t),t.write(">")}},y$i=class extends dh{write(t){t.write("()")}},b$i=class extends dh{write(t){t.write("!")}};var q_n=class extends Gu{path;items;isPublic;constructor({path:t,items:r,isPublic:n=!1}){super(),this.path=t,this.items=r,this.isPublic=n}write(t){this.isPublic&&t.write("pub "),t.write("use "),t.write(this.path),this.items&&this.items.length>0&&(t.write("::{"),this.items.forEach((r,n)=>{n>0&&t.write(", "),t.write(r)}),t.write("}")),t.write(";")}};var or={};Y(or,{AstNode:()=>Gu,Attribute:()=>FFe,Client:()=>kFe,CodeBlock:()=>dot,DocComment:()=>QFe,Enum:()=>NFe,EnumVariant:()=>jFe,Expression:()=>mot,Field:()=>MFe,ImplBlock:()=>LFe,MatchArm:()=>hot,Method:()=>UFe,Module:()=>zFe,ModuleDeclaration:()=>L_n,NewtypeStruct:()=>VFe,PRIVATE:()=>kgu,PUBLIC:()=>z_n,PaginatedMethod:()=>U_n,Pattern:()=>got,PrimitiveType:()=>Aot,Reference:()=>qFe,StandaloneFunction:()=>GFe,Statement:()=>jIe,Struct:()=>WFe,Type:()=>dh,UseStatement:()=>q_n,Writer:()=>Dz,attribute:()=>Qgu,client:()=>Wgu,docComment:()=>$gu,enumVariant:()=>Lgu,enum_:()=>Mgu,field:()=>Ngu,hashMapType:()=>l1d,implBlock:()=>qgu,method:()=>zgu,module:()=>Ggu,newtypeStruct:()=>Ugu,optionType:()=>a1d,primitiveType:()=>o1d,reference:()=>p1d,referenceType:()=>s1d,resultType:()=>u1d,rust:()=>f1d,standaloneFunction:()=>Vgu,struct:()=>jgu,vecType:()=>c1d,writer:()=>Hgu});function o1d(e){return dh.primitive(e)}function s1d(e){return dh.reference(e)}function a1d(e){return dh.option(e)}function u1d(e,t){return dh.result(e,t)}function c1d(e){return dh.vec(e)}function l1d(e,t){return dh.hashMap(e,t)}function p1d(e){return new qFe(e)}function Qgu(e){return new FFe(e)}function Ngu(e){return new MFe(e)}function jgu(e){return new WFe(e)}function Mgu(e){return new NFe(e)}function Lgu(e){return new jFe(e)}function Ugu(e){return new VFe(e)}function zgu(e){return new UFe(e)}function Vgu(e){return new GFe(e)}function qgu(e){return new LFe(e)}function Ggu(e){return new zFe(e)}function Wgu(e){return new kFe(e)}function $gu(e){return new QFe(e)}function Hgu(){return new Dz}var f1d={Type:dh,Reference:qFe,Attribute:FFe,Field:MFe,Struct:WFe,Enum:NFe,EnumVariant:jFe,NewtypeStruct:VFe,Method:UFe,StandaloneFunction:GFe,ImplBlock:LFe,Module:zFe,Client:kFe,DocComment:QFe,Expression:mot,Statement:jIe,CodeBlock:dot,Pattern:got,MatchArm:hot,attribute:Qgu,field:Ngu,struct:jgu,enum_:Mgu,enumVariant:Lgu,newtypeStruct:Ugu,method:zgu,standaloneFunction:Vgu,implBlock:qgu,module:Ggu,client:Wgu,docComment:$gu,writer:Hgu,visibility:{public:z_n,private:{type:"private"}}};var G_n=class{context;constructor({context:t}){this.context=t}convert(t){if(t.value==null)return this.context.isNullable(t.typeReference)?or.Expression.none():(this.context.addScopedError("Expected non-null value, but got null. Using placeholder.",vr.Critical),this.generatePlaceholderValue(t.typeReference));switch(this.context.validateTypeReference(t.typeReference,t.value)||this.context.addScopedError(`Type validation failed: expected ${t.typeReference.type}, got ${typeof t.value}`,vr.Warning),t.typeReference.type){case"primitive":return this.convertPrimitive({primitive:t.typeReference.value,value:t.value,as:t.as});case"literal":return this.convertLiteral({literal:t.typeReference.value,value:t.value});case"unknown":return this.convertUnknown({value:t.value});case"named":return this.convertNamed({typeReference:t.typeReference,value:t.value});case"optional":case"nullable":return this.convertOptional({typeReference:t.typeReference,value:t.value});case"list":return this.convertList({typeReference:t.typeReference,value:t.value});case"map":return this.convertMap({map:t.typeReference,value:t.value});case"set":return this.convertSet({set:t.typeReference,value:t.value});default:return this.context.addScopedError("Unhandled type reference",vr.Critical),or.Expression.raw("Default::default()")}}generatePlaceholderValue(t){switch(t.type){case"primitive":return this.generatePrimitivePlaceholder(t.value);case"named":return or.Expression.raw("Default::default()");case"list":return or.Expression.vec([]);case"set":return or.Expression.raw("HashSet::new()");case"map":return or.Expression.raw("HashMap::new()");case"literal":return this.convertLiteral({literal:t.value,value:t.value.value});case"unknown":return or.Expression.raw("serde_json::json!(null)");default:return or.Expression.raw("Default::default()")}}generatePrimitivePlaceholder(t){switch(t){case"STRING":case"UUID":return or.Expression.methodCall({target:or.Expression.stringLiteral("value"),method:"to_string",args:[]});case"BIG_INTEGER":return or.Expression.raw('BigInt::parse_bytes("0".as_bytes(), 10).unwrap()');case"BASE_64":return or.Expression.raw("vec![]");case"INTEGER":case"LONG":case"UINT":case"UINT_64":return or.Expression.numberLiteral(0);case"FLOAT":case"DOUBLE":return or.Expression.floatLiteral(0);case"BOOLEAN":return or.Expression.booleanLiteral(!1);case"DATE":return or.Expression.raw('NaiveDate::parse_from_str("2024-01-01", "%Y-%m-%d").unwrap()');case"DATE_TIME":return this.context.getDateTimeType()==="utc"?or.Expression.raw('DateTime::parse_from_rfc3339("2024-01-01T00:00:00Z").unwrap().with_timezone(&Utc)'):or.Expression.raw('DateTime::parse_from_rfc3339("2024-01-01T00:00:00Z").unwrap()');default:return or.Expression.raw("Default::default()")}}convertPrimitive({primitive:t,value:r,as:n}){switch(t){case"STRING":{let i=this.context.getValueAsString({value:r});return i==null?or.Expression.raw("Default::default()"):or.Expression.methodCall({target:or.Expression.stringLiteral(i),method:"to_string",args:[]})}case"INTEGER":case"LONG":{let i=this.getValueAsNumber({value:r,as:n});return i==null?or.Expression.raw("Default::default()"):or.Expression.numberLiteral(i)}case"DOUBLE":case"FLOAT":{let i=this.getValueAsNumber({value:r,as:n});return i==null?or.Expression.raw("Default::default()"):or.Expression.floatLiteral(i)}case"BOOLEAN":{let i=this.getValueAsBoolean({value:r,as:n});return i==null?or.Expression.raw("Default::default()"):or.Expression.booleanLiteral(i)}case"UUID":{let i=this.context.getValueAsString({value:r});return i==null?or.Expression.raw("Default::default()"):or.Expression.methodCall({target:or.Expression.functionCall("Uuid::parse_str",[or.Expression.stringLiteral(i)]),method:"unwrap",args:[]})}case"DATE":{let i=this.context.getValueAsString({value:r});return i==null?or.Expression.raw("Default::default()"):or.Expression.methodCall({target:or.Expression.functionCall("NaiveDate::parse_from_str",[or.Expression.stringLiteral(i),or.Expression.stringLiteral("%Y-%m-%d")]),method:"unwrap",args:[]})}case"DATE_TIME":{let i=this.context.getValueAsString({value:r});return i==null?or.Expression.raw("Default::default()"):this.context.getDateTimeType()==="utc"?or.Expression.methodCall({target:or.Expression.methodCall({target:or.Expression.functionCall("DateTime::parse_from_rfc3339",[or.Expression.stringLiteral(i)]),method:"unwrap",args:[]}),method:"with_timezone",args:[or.Expression.raw("&Utc")]}):or.Expression.methodCall({target:or.Expression.functionCall("DateTime::parse_from_rfc3339",[or.Expression.stringLiteral(i)]),method:"unwrap",args:[]})}case"BASE_64":{let i=this.context.getValueAsString({value:r});return i==null?or.Expression.raw("vec![]"):or.Expression.methodCall({target:or.Expression.methodCall({target:or.Expression.raw("base64::engine::general_purpose::STANDARD"),method:"decode",args:[or.Expression.stringLiteral(i)]}),method:"unwrap",args:[]})}case"BIG_INTEGER":{let i=this.context.getValueAsString({value:r});return i==null?or.Expression.raw("Default::default()"):or.Expression.methodCall({target:or.Expression.functionCall("BigInt::parse_bytes",[or.Expression.raw(`${JSON.stringify(i)}.as_bytes()`),or.Expression.numberLiteral(10)]),method:"unwrap",args:[]})}case"UINT":case"UINT_64":{let i=this.getValueAsNumber({value:r,as:n});return i==null?or.Expression.raw("Default::default()"):or.Expression.numberLiteral(i)}default:return this.context.addScopedError(`Unhandled primitive: ${t}`,vr.Critical),or.Expression.raw("Default::default()")}}convertLiteral({literal:t,value:r}){return typeof t?.value=="boolean"?or.Expression.booleanLiteral(t.value):typeof t?.value=="string"?or.Expression.methodCall({target:or.Expression.stringLiteral(t.value),method:"to_string",args:[]}):(this.context.addScopedError("Unknown literal type",vr.Critical),or.Expression.raw("Default::default()"))}convertUnknown({value:t}){return t==null?or.Expression.reference("None"):or.Expression.raw(`serde_json::json!(${JSON.stringify(t)})`)}convertNamed({typeReference:t,value:r}){if(t.type!=="named")return or.Expression.raw('todo!("Invalid named type reference")');let n=t.value,i=this.context.ir.types[n];if(!i)return this.context.addScopedError(`Type not found: ${n}`,vr.Critical),or.Expression.raw("Default::default()");switch(i.type){case"object":return this.convertObjectType({objectType:i,value:r});case"alias":{let o=this.context.getStructName(i.declaration.name),s=this.convert({typeReference:i.typeReference,value:r});return or.Expression.functionCall(o,[s])}case"enum":return this.convertEnumType({enumType:i,value:r});case"discriminatedUnion":return this.convertDiscriminatedUnionType({unionType:i,value:r});case"undiscriminatedUnion":return this.convertUndiscriminatedUnionType({unionType:i,value:r});default:return this.context.addScopedError("Unsupported named type",vr.Critical),or.Expression.raw("Default::default()")}}convertOptional({typeReference:t,value:r}){if(r==null)return or.Expression.none();let n=t.value||{type:"unknown"},i=this.convert({typeReference:n,value:r});return or.Expression.functionCall("Some",[i])}convertList({typeReference:t,value:r}){if(!Array.isArray(r))return or.Expression.vec([]);let n=t.value||{type:"unknown"},i=r.map((o,s)=>{this.context.scopeError(`[${s}]`);try{return this.convert({typeReference:n,value:o})}finally{this.context.unscopeError()}});return or.Expression.vec(i)}convertObjectType({objectType:t,value:r}){if(typeof r!="object"||r==null)return this.context.addScopedError("Expected object value for object type",vr.Critical),or.Expression.raw("Default::default()");let n=this.context.getStructName(t.declaration.name),i=this.context.getRecord(r)??{},o=this.getObjectExtensionInfo(t);if(o)return this.convertExtendedObject({objectType:t,value:i,structName:n,extendsInfo:o});let s=[];for(let a of t.properties){this.context.scopeError(a.name.wireValue);try{let u=this.context.getPropertyName(a.name.name),c=a.name.wireValue,l;if(u.endsWith("_fields")&&a.typeReference.type==="named"){let p=a.typeReference.value,d=this.context.ir.types[p];d&&d.type==="object"?l=this.convertObjectType({objectType:d,value:i}):l=this.convert({typeReference:a.typeReference,value:i[c]})}else c in i?l=this.convert({typeReference:a.typeReference,value:i[c]}):this.context.isNullable(a.typeReference)?l=or.Expression.none():(this.context.addScopedError(`Required field '${c}' is missing`,vr.Critical),l=or.Expression.raw("Default::default()"));s.push({name:u,value:l})}finally{this.context.unscopeError()}}return or.Expression.structConstruction(n,s)}getObjectExtensionInfo(t){let r=t.extends;if(r!=null&&r.length>0){let i=r[0];if(i!=null){let o=this.context.ir.types[i];if(o!=null&&o.type==="object"){let s=this.getBaseFieldName(o.declaration.name);return{baseObjectTypeId:i,baseObjectType:o,baseFieldName:s}}}}let n=t.properties.find(i=>i.name.name.snakeCase.safeName.endsWith("_fields")&&i.typeReference.type==="named");if(n!=null&&n.typeReference.type==="named"){let i=n.typeReference.value,o=this.context.ir.types[i];if(o!=null&&o.type==="object")return{baseObjectTypeId:i,baseObjectType:o,baseFieldName:n.name.name.snakeCase.safeName}}return null}convertExtendedObject({objectType:t,value:r,structName:n,extendsInfo:i}){let o=[],s=i.baseObjectType.properties.map(p=>{this.context.scopeError(p.name.wireValue);try{let d=r[p.name.wireValue],f;return d!==void 0?f=this.convert({typeReference:p.typeReference,value:d}):p.typeReference.type==="optional"||p.typeReference.type==="nullable"?f=or.Expression.raw("None"):f=or.Expression.raw("Default::default()"),{name:this.context.getPropertyName(p.name.name),value:f}}finally{this.context.unscopeError()}}),a=this.context.getStructName(i.baseObjectType.declaration.name),u=or.Expression.structConstruction(a,s);o.push({name:i.baseFieldName,value:u});let c=t.properties.filter(p=>!i.baseObjectType.properties.some(d=>d.name.wireValue===p.name.wireValue));return this.context.associateByWireValue({parameters:c,values:r}).forEach(p=>{this.context.scopeError(p.name.wireValue);try{o.push({name:this.context.getPropertyName(p.name.name),value:this.convert({typeReference:p.typeReference,value:p.value})})}finally{this.context.unscopeError()}}),or.Expression.structConstruction(n,o)}getBaseFieldName(t){return`${t.snakeCase.safeName}_fields`}convertEnumType({enumType:t,value:r}){if(typeof r!="string")return or.Expression.raw('todo!("Expected string value for enum type")');let n=this.context.getEnumName(t.declaration.name),i=t.values.find(a=>a.wireValue===r);if(!i)return or.Expression.raw(`todo!("Unknown enum variant: ${r}")`);let o=i.name.pascalCase.unsafeName,s=this.context.escapeRustReservedType(o);return or.Expression.reference(`${n}::${s}`)}convertDiscriminatedUnionType({unionType:t,value:r}){let n=this.context.resolveDiscriminatedUnionTypeInstance({discriminatedUnion:t,value:r});if(n==null)return this.context.addScopedError("Could not resolve discriminated union variant",vr.Critical),or.Expression.raw("Default::default()");let i=n.singleDiscriminatedUnionType,o=this.context.getStructNameByDeclaration(t.declaration),s=i.discriminantValue.name.pascalCase.unsafeName,a=this.context.escapeRustReservedType(s);switch(i.type){case"singleProperty":{let u=this.context.getRecord(n.value);if(u==null)return or.Expression.reference(`${o}::${a}`);this.context.scopeError(i.discriminantValue.wireValue);try{let c=this.convert({typeReference:i.typeReference,value:u[i.discriminantValue.wireValue]}),l=[{name:this.getUnionFieldName(i),value:c}];if(i.properties&&i.properties.length>0)for(let p of i.properties){let d=p.name.wireValue,f=p.name.name.snakeCase.safeName,m=u[d];this.context.scopeError(d);try{let h=this.convert({typeReference:p.typeReference,value:m});l.push({name:f,value:h})}finally{this.context.unscopeError()}}return or.Expression.structConstruction(`${o}::${a}`,l)}finally{this.context.unscopeError()}}case"samePropertiesAsObject":{let u=this.context.ir.types[i.typeId];if(!u||u.type!=="object")return this.context.addScopedError("Referenced union type not found or not an object",vr.Critical),or.Expression.reference(`${o}::${a}`);let c=this.convertObjectType({objectType:u,value:n.value});return or.Expression.structConstruction(`${o}::${a}`,[{name:"data",value:c}])}case"noProperties":return or.Expression.reference(`${o}::${a}`);default:return this.context.addScopedError("Unsupported union variant type",vr.Critical),or.Expression.reference(`${o}::${a}`)}}getUnionFieldName(t){return"value"}convertUndiscriminatedUnionType({unionType:t,value:r}){let n=this.context.getStructNameByDeclaration(t.declaration);for(let i=0;i<t.types.length;i++){let o=t.types[i];if(o)try{let s=this.convert({typeReference:o,value:r}),a=this.getUndiscriminatedUnionVariantName(o);return or.Expression.functionCall(`${n}::${a}`,[s])}catch{continue}}return this.context.addScopedError("No matching type in undiscriminated union",vr.Critical),or.Expression.raw("Default::default()")}getUndiscriminatedUnionVariantName(t){switch(t.type){case"named":{let r=this.context.ir.types[t.value];return r?r.declaration.name.pascalCase.safeName:"Unknown"}case"primitive":switch(t.value){case"STRING":return"String";case"INTEGER":return"Integer";case"BOOLEAN":return"Boolean";case"DOUBLE":return"Double";default:return"Unknown"}default:return"Unknown"}}getValueAsNumber({value:t,as:r}){let n=r==="mapKey"&&typeof t=="string"?Number(t):t;return this.context.getValueAsNumber({value:n})}getValueAsBoolean({value:t,as:r}){let n=(()=>{switch(r){case"mapKey":return t==="true"?!0:t==="false"?!1:t;case"mapValue":case void 0:return t;default:return t}})();return this.context.getValueAsBoolean({value:n})}convertMap({map:t,value:r}){if(typeof r!="object"||r==null)return this.context.addScopedError(`Expected object but got: ${r==null?"null":typeof r}`,vr.Critical),or.Expression.raw("Default::default()");let n=Object.entries(r).map(([i,o])=>{this.context.scopeError(i);try{return[this.convert({typeReference:t.key,value:i,as:"mapKey"}),this.convert({typeReference:t.value,value:o,as:"mapValue"})]}finally{this.context.unscopeError()}});return or.Expression.raw(`HashMap::from([${n.map(i=>`(${i[0]}, ${i[1]})`).join(", ")}])`)}convertSet({set:t,value:r}){if(!Array.isArray(r))return this.context.addScopedError(`Expected array but got: ${typeof r}`,vr.Critical),or.Expression.raw("Default::default()");let i=r.map((o,s)=>{this.context.scopeError(`[${s}]`);try{return this.convert({typeReference:t.value,value:o})}finally{this.context.unscopeError()}}).map(o=>o.toString());return or.Expression.raw(`HashSet::from([${i.join(", ")}])`)}};var W_n=class{context;constructor({context:t}){this.context=t}mapType(t){switch(t.typeReference.type){case"primitive":return this.mapPrimitive(t.typeReference.value);case"list":return`Vec<${this.mapType({typeReference:t.typeReference.value})}>`;case"map":{let r=this.mapType({typeReference:t.typeReference.key}),n=this.mapType({typeReference:t.typeReference.value});return`HashMap<${r}, ${n}>`}case"set":return`HashSet<${this.mapType({typeReference:t.typeReference.value})}>`;case"optional":case"nullable":return`Option<${this.mapType({typeReference:t.typeReference.value})}>`;case"named":{let r=this.context.ir.types[t.typeReference.value];return r?this.mapNamed(r):"String"}case"literal":return this.mapLiteral(t.typeReference.value);case"unknown":return"serde_json::Value";default:return"String"}}mapPrimitive(t){switch(t){case"STRING":case"BASE_64":case"BIG_INTEGER":return"String";case"INTEGER":case"LONG":return"i64";case"UINT":case"UINT_64":return"u64";case"FLOAT":return"f32";case"DOUBLE":return"f64";case"BOOLEAN":return"bool";case"UUID":return"Uuid";case"DATE":return"NaiveDate";case"DATE_TIME":return this.context.getDateTimeType()==="utc"?"DateTime<Utc>":"DateTime<FixedOffset>";default:return"String"}}mapNamed(t){switch(t.type){case"alias":return this.mapType({typeReference:t.typeReference});case"object":case"enum":case"discriminatedUnion":case"undiscriminatedUnion":return this.context.getStructName(t.declaration.name);default:return"String"}}mapLiteral(t){switch(t.type){case"string":return"String";case"boolean":return"bool";default:return"String"}}};St();var $_n=class{context;constructor({context:t}){this.context=t}getFilePropertyInfo({body:t,value:r}){let n={fileFields:[],bodyPropertyFields:[]},i=this.context.getRecord(r)??{};for(let o of t.properties)switch(o.type){case"file":n.fileFields.push({name:this.context.getPropertyName(o.name),value:this.getSingleFileProperty({property:o,record:i})});break;case"fileArray":n.fileFields.push({name:this.context.getPropertyName(o.name),value:this.getArrayFileProperty({property:o,record:i})});break;case"bodyProperty":n.bodyPropertyFields.push({name:this.context.getPropertyName(o.name.name),value:this.getBodyProperty({property:o,record:i})});break;default:_e(o)}return n}getSingleFileProperty({property:t,record:r}){let n=this.context.getSingleFileValue({property:t,record:r});return n==null?or.Expression.raw('b"test file content".to_vec()'):this.createFileExpression(n)}getArrayFileProperty({property:t,record:r}){let n=this.context.getFileArrayValues({property:t,record:r});return n==null?or.Expression.vec([or.Expression.raw('b"test file 1".to_vec()'),or.Expression.raw('b"test file 2".to_vec()')]):or.Expression.vec(n.map(i=>this.createFileExpression(i)))}getBodyProperty({property:t,record:r}){let n=r[t.name.wireValue];return n==null?t.typeReference.type==="optional"||t.typeReference.type==="nullable"?or.Expression.raw("None"):or.Expression.raw("Default::default()"):this.context.dynamicTypeLiteralMapper.convert({typeReference:t.typeReference,value:n})}createFileExpression(t){return or.Expression.methodCall({target:or.Expression.methodCall({target:or.Expression.stringLiteral(t),method:"as_bytes",args:[]}),method:"to_vec",args:[]})}};var oTt=class e extends RE{ir;customConfig;dynamicTypeMapper;dynamicTypeLiteralMapper;filePropertyMapper;errorStack=[];registry;declarationToTypeId=new Map;endpointDeclarationToQueryRequestName=new Map;constructor({ir:t,config:r,options:n}){super({ir:t,config:r,options:n}),this.ir=t,this.customConfig=r.customConfig,this.registry=iTt.create(),this.preregisterTypeNames(),this.preregisterQueryRequestNames(),this.dynamicTypeMapper=new W_n({context:this}),this.dynamicTypeLiteralMapper=new G_n({context:this}),this.filePropertyMapper=new $_n({context:this})}preregisterTypeNames(){for(let[t,r]of Object.entries(this.ir.types)){let n=r.declaration.name.pascalCase.safeName;this.registry.registerSchemaTypeTypeName(t,n);let i=this.getDeclarationKey(r.declaration);this.declarationToTypeId.set(i,t)}}preregisterQueryRequestNames(){let t=[];for(let[n,i]of Object.entries(this.ir.endpoints)){let o=i.request;if(o.type!=="inlined")continue;let s=(o.queryParameters??[]).length>0,a=o.body!=null;if(s&&!a){let u=i.declaration.name.pascalCase.safeName;t.push({endpointId:n,endpoint:i,methodName:u})}}let r=new Map;for(let{methodName:n}of t)r.set(n,(r.get(n)??0)+1);for(let{endpointId:n,endpoint:i,methodName:o}of t){let s=(r.get(o)??0)>1,a;s?a=`${i.declaration.fernFilepath.allParts.map(f=>f.pascalCase.safeName).join("")}${o}QueryRequest`:a=`${o}QueryRequest`;let u=`query_request:${n}`,c=this.registry.registerSchemaTypeTypeName(u,a),l=this.getEndpointDeclarationKey(i.declaration);this.endpointDeclarationToQueryRequestName.set(l,c)}}getDeclarationKey(t){let r=t.fernFilepath.packagePath.map(i=>i.pascalCase.safeName).join("/"),n=t.name.pascalCase.safeName;return`${r}::${n}`}getEndpointDeclarationKey(t){let r=t.fernFilepath.allParts.map(i=>i.pascalCase.safeName).join("/"),n=t.name.pascalCase.safeName;return`${r}::${n}`}clone(){return new e({ir:this.ir,config:this.config,options:this.options})}getStructName(t){return this.getTypeName(t)}getStructNameByDeclaration(t){let r=this.getDeclarationKey(t),n=this.declarationToTypeId.get(r);return n?this.registry.getSchemaTypeTypeNameOrThrow(n):j_n(t.name.pascalCase.safeName)}getQueryRequestNameByEndpoint(t){let r=this.getEndpointDeclarationKey(t);return this.endpointDeclarationToQueryRequestName.get(r)}getEnumName(t){return this.getTypeName(t)}getTypeNameById(t){return this.registry.getSchemaTypeTypeNameOrThrow(t)}getTypeName(t){return j_n(t.pascalCase.safeName)}getPropertyName(t){let r=t.snakeCase.safeName;if(r.endsWith("_")){let n=r.slice(0,-1);return t$i(n)}return t$i(r)}getMethodName(t){return j_n(t.snakeCase.safeName)}escapeRustReservedType(t){return Dgu(t)}getCrateName(){let t=this.config.organization,r=this.config.workspaceName,n=this.customConfig?.crateName??Fgu(t,r);return Rgu(n)}getDateTimeType(){return this.customConfig?.dateTimeType??"offset"}getClientStructName(){return this.customConfig?.clientClassName??`${Tgu(this.config.workspaceName)}Client`}resolveEnvironmentName(t){}scopeError(t){this.errorStack.push(t)}unscopeError(){this.errorStack.pop()}addScopedError(t,r){let n=this.errorStack.length>0?this.errorStack.join("."):"root";this.errors.add({severity:r,message:`[${n}] ${t}`})}getCurrentScope(){return this.errorStack.join(".")}getValueAsNumber({value:t}){if(typeof t=="number"&&!isNaN(t))return t;if(typeof t=="string"){let r=Number(t);if(!isNaN(r))return r}this.addScopedError(`Expected number but got: ${typeof t}`,vr.Critical)}getValueAsBoolean({value:t}){if(typeof t=="boolean")return t;if(typeof t=="string"){if(t==="true")return!0;if(t==="false")return!1}this.addScopedError(`Expected boolean but got: ${typeof t}`,vr.Critical)}getValueAsString({value:t}){if(typeof t=="string")return t;this.addScopedError(`Expected string but got: ${typeof t}`,vr.Critical)}validateTypeReference(t,r){switch(t.type){case"primitive":return this.validatePrimitive(t.value,r);case"list":return Array.isArray(r);case"named":return this.validateNamedType(t.value,r);case"optional":case"nullable":return r==null||this.validateTypeReference(t.value,r);case"map":return typeof r=="object"&&r!=null&&!Array.isArray(r);case"set":return Array.isArray(r);case"literal":return this.validateLiteral(t.value,r);case"unknown":return!0;default:return!1}}validatePrimitive(t,r){switch(t){case"STRING":case"UUID":case"DATE":case"DATE_TIME":case"BASE_64":case"BIG_INTEGER":return typeof r=="string";case"INTEGER":case"LONG":case"UINT":case"UINT_64":return typeof r=="number"&&Number.isInteger(r);case"FLOAT":case"DOUBLE":return typeof r=="number";case"BOOLEAN":return typeof r=="boolean";default:return!1}}validateNamedType(t,r){let n=this.ir.types[t];if(!n)return!1;switch(n.type){case"object":return typeof r=="object"&&r!=null&&!Array.isArray(r);case"enum":return typeof r=="string"&&n.values.some(i=>i.wireValue===r);case"alias":return this.validateTypeReference(n.typeReference,r);case"discriminatedUnion":return this.validateDiscriminatedUnion(n,r);case"undiscriminatedUnion":return this.validateUndiscriminatedUnion(n,r);default:return!1}}validateLiteral(t,r){switch(t.type){case"string":return typeof r=="string"&&r===t.value;case"boolean":return typeof r=="boolean"&&r===t.value;default:return!1}}validateDiscriminatedUnion(t,r){if(typeof r!="object"||r==null)return!1;let i=r[t.discriminant.wireValue];return typeof i=="string"&&Object.keys(t.types).includes(i)}validateUndiscriminatedUnion(t,r){return t.types.some(n=>this.validateTypeReference(n,r))}isNullable(t){return t.type==="nullable"||t.type==="optional"}associateByWireValue({parameters:t,values:r,ignoreMissingParameters:n}){let i=[];for(let o of t){let s=o.name.wireValue,a=r[s];if(a!=null){this.errors.scope(s);try{i.push({name:o.name,typeReference:o.typeReference,value:a})}finally{this.errors.unscope()}}}return i}isOptionalType(t){return t.type==="optional"||t.type==="nullable"}allParametersAreOptional(t){return t.every(r=>this.isOptionalType(r.typeReference))}canRequestUseDefault(t){let n=[...t.queryParameters??[]];if(t.body!=null){if(t.body.type==="properties")n.push(...t.body.value);else if(t.body.type==="referenced"){let i=t.body.bodyType.type==="typeReference"?t.body.bodyType.value:{type:"primitive",value:"STRING"};if(!this.isOptionalType(i))return!1}else if(t.body.type==="fileUpload")return!1}return this.allParametersAreOptional(n)}};St();var Kgu="client",sTt=class{context;constructor({context:t}){this.context=t}async generateSnippet({endpoint:t,request:r}){let i=this.buildCodeComponents({endpoint:t,snippet:r}).join(`
2531
+ `).filter(o=>o.trim()).forEach(o=>{t.write(" "),t.write(o.trim()),t.newLine()})}this.attributes&&this.attributes.length>0&&this.attributes.forEach(r=>{t.write(" "),r.write(t),t.newLine()}),t.write(" "),this.visibility&&(n2(t,this.visibility),t.write(" ")),t.write(`${this.name}: `),this.type.write(t),t.write(",")}};var LFe=class extends Gu{targetType;attributes;methods;traitName;constructor({targetType:t,attributes:r,methods:n,traitName:i}){super(),this.targetType=t,this.attributes=r,this.methods=n,this.traitName=i}write(t){this.attributes&&this.attributes.length>0&&this.attributes.forEach(r=>{r.write(t),t.newLine()}),t.write("impl "),this.traitName&&t.write(`${this.traitName} for `),this.targetType.write(t),t.write(" {"),t.newLine(),this.methods.forEach((r,n)=>{n>0&&t.newLine(),r.write(t),t.newLine()}),t.write("}")}};var hot=class e extends Gu{pattern;guard;body;trailing_comma;constructor({pattern:t,guard:r,body:n,trailing_comma:i=!0}){super(),this.pattern=t,this.guard=r,this.body=n,this.trailing_comma=i}write(t){this.pattern.write(t),this.guard&&(t.write(" if "),this.guard.write(t)),t.write(" => "),Array.isArray(this.body)?(t.write("{"),this.body.length>0&&(t.newLine(),t.indent(),this.body.forEach(r=>{r.write(t),t.newLine()}),t.dedent()),t.write("}")):this.body.write(t),this.trailing_comma&&t.write(",")}static create(t,r,n){return new e({pattern:t,guard:r,body:n})}static withExpression(t,r,n){return new e({pattern:t,guard:n,body:r})}static withStatements(t,r,n){return new e({pattern:t,guard:n,body:r})}static withoutComma(t,r,n){return new e({pattern:t,guard:n,body:r,trailing_comma:!1})}};var UFe=class extends Gu{name;visibility;attributes;parameters;returnType;isAsync;isStatic;body;constructor({name:t,visibility:r,attributes:n,parameters:i,returnType:o,isAsync:s=!1,isStatic:a=!1,body:u}){super(),this.name=t,this.visibility=r,this.attributes=n,this.parameters=i,this.returnType=o,this.isAsync=s,this.isStatic=a,this.body=u}write(t){this.attributes&&this.attributes.length>0&&this.attributes.forEach(r=>{t.write(" "),r.write(t),t.newLine()}),t.write(" "),this.visibility&&(n2(t,this.visibility),t.write(" ")),this.isAsync&&t.write("async "),t.write(`fn ${this.name}(`),this.parameters.forEach((r,n)=>{n>0&&t.write(", "),r.isSelf?(r.isRef&&t.write("&"),r.isMut&&t.write("mut "),t.write("self")):(t.write(r.name),t.write(": "),r.isRef&&t.write("&"),r.parameterType.write(t))}),t.write(")"),this.returnType&&(t.write(" -> "),this.returnType.write(t)),this.body?(t.write(" "),this.body.write(t)):t.write(";")}};var zFe=class extends Gu{moduleDoc;imports;useStatements;moduleDeclarations;structs;implBlocks;enums;rawDeclarations;constructor({moduleDoc:t,imports:r,useStatements:n,moduleDeclarations:i,structs:o,implBlocks:s,enums:a,rawDeclarations:u}){super(),this.moduleDoc=t,this.imports=r,this.useStatements=n,this.moduleDeclarations=i,this.structs=o,this.implBlocks=s,this.enums=a,this.rawDeclarations=u}write(t){this.moduleDoc&&this.moduleDoc.length>0&&(this.moduleDoc.forEach(r=>{r===""?t.writeLine("//!"):t.writeLine(`//! ${r}`)}),t.newLine()),this.imports&&this.imports.length>0&&(this.imports.forEach(r=>{t.write(r),t.newLine()}),t.newLine()),this.moduleDeclarations&&this.moduleDeclarations.length>0&&(this.moduleDeclarations.forEach(r=>{r.write(t),t.newLine()}),t.newLine()),this.useStatements&&this.useStatements.length>0&&(this.useStatements.forEach(r=>{r.write(t),t.newLine()}),t.newLine()),this.structs&&this.structs.length>0&&(this.structs.forEach((r,n)=>{n>0&&t.newLine(),r.write(t),t.newLine()}),t.newLine()),this.enums&&this.enums.length>0&&(this.enums.forEach((r,n)=>{n>0&&t.newLine(),r.write(t),t.newLine()}),t.newLine()),this.implBlocks&&this.implBlocks.length>0&&(this.implBlocks.forEach((r,n)=>{n>0&&t.newLine(),r.write(t),t.newLine()}),t.newLine()),this.rawDeclarations&&this.rawDeclarations.length>0&&this.rawDeclarations.forEach(r=>{t.write(r),t.newLine()})}};var L_n=class extends Gu{name;isPublic;constructor({name:t,isPublic:r=!1}){super(),this.name=t,this.isPublic=r}write(t){this.isPublic&&t.write("pub "),t.write("mod "),t.write(this.name),t.write(";")}};var VFe=class extends Gu{name;innerType;visibility;innerVisibility;attributes;innerAttributes;constructor({name:t,innerType:r,visibility:n,innerVisibility:i,attributes:o,innerAttributes:s}){super(),this.name=t,this.innerType=r,this.visibility=n,this.innerVisibility=i,this.attributes=o,this.innerAttributes=s}write(t){this.attributes&&this.attributes.length>0&&this.attributes.forEach(r=>{r.write(t),t.newLine()}),this.visibility&&(n2(t,this.visibility),t.write(" ")),this.innerAttributes&&this.innerAttributes.length>0?(t.writeLine(`struct ${this.name}(`),t.indent(),this.innerAttributes.forEach(r=>{r.write(t),t.newLine()}),this.innerVisibility&&(n2(t,this.innerVisibility),t.write(" ")),this.innerType.write(t),t.newLine(),t.dedent(),t.write(");")):(t.write(`struct ${this.name}(`),this.innerVisibility&&(n2(t,this.innerVisibility),t.write(" ")),this.innerType.write(t),t.write(");"))}};var U_n=class extends Gu{args;constructor(t){super(),this.args=t}write(t){this.args.isAsync?this.writeAsyncMethod(t):this.writeSyncMethod(t)}writeAsyncMethod(t){let{name:r,parameters:n,itemType:i}=this.args,o=`AsyncPaginator<${i.toString()}>`;t.writeLine(`pub async fn ${r}_paginated(&self, ${n.join(", ")}) -> Result<${o}, ClientError> {`),t.indent(),t.writeLine(this.args.body),t.dedent(),t.writeLine("}"),t.writeLine("")}writeSyncMethod(t){let{name:r,parameters:n,itemType:i}=this.args,o=`SyncPaginator<${i.toString()}>`;t.writeLine(`pub fn ${r}_paginated_sync(&self, ${n.join(", ")}) -> Result<${o}, ClientError> {`),t.indent(),t.writeLine(this.args.body),t.dedent(),t.writeLine("}"),t.writeLine("")}};var got=class e extends Gu{args;constructor(t){super(),this.args=t}write(t){switch(this.args.type){case"literal":typeof this.args.value=="string"?t.write(JSON.stringify(this.args.value)):t.write(this.args.value.toString());break;case"wildcard":t.write("_");break;case"variable":t.write(this.args.name);break;case"some":t.write("Some("),this.args.inner.write(t),t.write(")");break;case"none":t.write("None");break;case"ok":t.write("Ok("),this.args.inner.write(t),t.write(")");break;case"err":t.write("Err("),this.args.inner.write(t),t.write(")");break;case"struct":{let r=this.args;t.write(r.name),r.fields.length>0&&(t.write(" { "),r.fields.forEach((n,i)=>{i>0&&t.write(", "),t.write(n.name),n.pattern&&(t.write(": "),n.pattern.write(t))}),t.write(" }"));break}case"tuple":{let r=this.args;t.write("("),r.elements.forEach((n,i)=>{i>0&&t.write(", "),n.write(t)}),t.write(")");break}case"reference":{let r=this.args;t.write("&"),r.mutable&&t.write("mut "),r.inner.write(t);break}case"slice":{let r=this.args;t.write("["),r.elements.forEach((n,i)=>{i>0&&t.write(", "),n.write(t)}),t.write("]");break}case"range":{let r=this.args;t.write(r.start.toString()),t.write(r.inclusive?"..=":".."),t.write(r.end.toString());break}case"raw":t.write(this.args.value);break}}static literal(t){return new e({type:"literal",value:t})}static wildcard(){return new e({type:"wildcard"})}static variable(t){return new e({type:"variable",name:t})}static some(t){return new e({type:"some",inner:t})}static none(){return new e({type:"none"})}static ok(t){return new e({type:"ok",inner:t})}static err(t){return new e({type:"err",inner:t})}static struct(t,r){return new e({type:"struct",name:t,fields:r})}static tuple(t){return new e({type:"tuple",elements:t})}static reference(t,r){return new e({type:"reference",inner:t,mutable:r})}static slice(t){return new e({type:"slice",elements:t})}static range(t,r,n=!1){return new e({type:"range",start:t,end:r,inclusive:n})}static raw(t){return new e({type:"raw",value:t})}};var qFe=class extends Gu{name;module;genericArgs;constructor({name:t,module:r,genericArgs:n}){super(),this.name=t,this.module=r,this.genericArgs=n}write(t){this.module&&t.write(`${this.module}::`),t.write(this.name),this.genericArgs&&this.genericArgs.length>0&&(t.write("<"),this.genericArgs.forEach((r,n)=>{n>0&&t.write(", "),r.write(t)}),t.write(">"))}getImportPath(){return this.module}getName(){return this.name}};var GFe=class extends Gu{name;visibility;attributes;parameters;returnType;isAsync;body;constructor({name:t,visibility:r,attributes:n,parameters:i,returnType:o,isAsync:s=!1,body:a}){super(),this.name=t,this.visibility=r,this.attributes=n,this.parameters=i,this.returnType=o,this.isAsync=s,this.body=a}write(t){this.attributes&&this.attributes.length>0&&this.attributes.forEach(r=>{r.write(t),t.newLine()}),this.visibility&&(n2(t,this.visibility),t.write(" ")),this.isAsync&&t.write("async "),t.write(`fn ${this.name}(`),this.parameters.forEach((r,n)=>{n>0&&t.write(", "),r.isSelf?(r.isRef&&t.write("&"),r.isMut&&t.write("mut "),t.write("self")):(t.write(r.name),t.write(": "),r.isRef&&t.write("&"),r.parameterType.write(t))}),t.write(")"),this.returnType&&(t.write(" -> "),this.returnType.write(t)),this.body?(t.write(" "),this.body.write(t)):t.write(";")}};var WFe=class extends Gu{name;visibility;attributes;fields;docs;constructor({name:t,visibility:r,attributes:n,fields:i,docs:o}){super(),this.name=t,this.visibility=r,this.attributes=n,this.fields=i,this.docs=o}write(t){this.docs&&this.docs.write(t),this.attributes&&this.attributes.length>0&&this.attributes.forEach(r=>{r.write(t),t.newLine()}),this.visibility&&(n2(t,this.visibility),t.write(" ")),t.write(`struct ${this.name} {`),t.newLine(),this.fields.forEach(r=>{r.write(t),t.newLine()}),t.write("}")}};var Aot;(function(e){e.I8="i8",e.I16="i16",e.I32="i32",e.I64="i64",e.I128="i128",e.U8="u8",e.U16="u16",e.U32="u32",e.U64="u64",e.U128="u128",e.F32="f32",e.F64="f64",e.Bool="bool",e.Char="char",e.Str="str",e.String="String"})(Aot||(Aot={}));var z_n={type:"public"},kgu={type:"private"};var dh=class e extends Gu{static primitive(t){return new i$i(t)}static reference(t){return new o$i(t)}static option(t){return this.isAlreadyOptional(t)?t:new V_n(t)}static result(t,r){return new s$i(t,r)}static vec(t){return new a$i(t)}static hashMap(t,r){return new u$i(t,r)}static str(){return new c$i}static string(){return e.primitive(Aot.String)}static tuple(t){return new l$i(t)}static array(t,r){return new p$i(t,r)}static mutableReference(t){return new f$i(t)}static immutableReference(t){return new d$i(t)}static lifetime(t,r){return new m$i(t,r)}static generic(t,r){return new h$i(t,r)}static trait(t){return new g$i(t)}static closure(t,r){return new A$i(t,r)}static unit(){return new y$i}static never(){return new b$i}static isAlreadyOptional(t){return t instanceof V_n}},i$i=class extends dh{primitive;constructor(t){super(),this.primitive=t}write(t){t.write(this.primitive)}},o$i=class extends dh{reference;constructor(t){super(),this.reference=t}write(t){this.reference.write(t)}},V_n=class extends dh{inner;constructor(t){super(),this.inner=t}write(t){t.write("Option<"),this.inner.write(t),t.write(">")}},s$i=class extends dh{ok;err;constructor(t,r){super(),this.ok=t,this.err=r}write(t){t.write("Result<"),this.ok.write(t),t.write(", "),this.err.write(t),t.write(">")}},a$i=class extends dh{inner;constructor(t){super(),this.inner=t}write(t){t.write("Vec<"),this.inner.write(t),t.write(">")}},u$i=class extends dh{key;value;constructor(t,r){super(),this.key=t,this.value=r}write(t){t.write("HashMap<"),this.key.write(t),t.write(", "),this.value.write(t),t.write(">")}},c$i=class extends dh{write(t){t.write("&str")}},l$i=class extends dh{types;constructor(t){super(),this.types=t}write(t){t.write("("),this.types.forEach((r,n)=>{n>0&&t.write(", "),r.write(t)}),t.write(")")}},p$i=class extends dh{inner;size;constructor(t,r){super(),this.inner=t,this.size=r}write(t){t.write("["),this.inner.write(t),this.size!==void 0&&t.write(`; ${this.size}`),t.write("]")}},f$i=class extends dh{inner;constructor(t){super(),this.inner=t}write(t){t.write("&mut "),this.inner.write(t)}},d$i=class extends dh{inner;constructor(t){super(),this.inner=t}write(t){t.write("&"),this.inner.write(t)}},m$i=class extends dh{name;inner;constructor(t,r){super(),this.name=t,this.inner=r}write(t){t.write("&'"),t.write(this.name),t.write(" "),this.inner.write(t)}},h$i=class extends dh{name;bounds;constructor(t,r){super(),this.name=t,this.bounds=r}write(t){t.write(this.name),this.bounds&&this.bounds.length>0&&(t.write(": "),this.bounds.forEach((r,n)=>{n>0&&t.write(" + "),r.write(t)}))}},g$i=class extends dh{name;constructor(t){super(),this.name=t}write(t){t.write("dyn "),t.write(this.name)}},A$i=class extends dh{params;returnType;constructor(t,r){super(),this.params=t,this.returnType=r}write(t){t.write("Box<dyn Fn("),this.params.forEach((r,n)=>{n>0&&t.write(", "),r.write(t)}),t.write(") -> "),this.returnType.write(t),t.write(">")}},y$i=class extends dh{write(t){t.write("()")}},b$i=class extends dh{write(t){t.write("!")}};var q_n=class extends Gu{path;items;isPublic;constructor({path:t,items:r,isPublic:n=!1}){super(),this.path=t,this.items=r,this.isPublic=n}write(t){this.isPublic&&t.write("pub "),t.write("use "),t.write(this.path),this.items&&this.items.length>0&&(t.write("::{"),this.items.forEach((r,n)=>{n>0&&t.write(", "),t.write(r)}),t.write("}")),t.write(";")}};var or={};Y(or,{AstNode:()=>Gu,Attribute:()=>FFe,Client:()=>kFe,CodeBlock:()=>dot,DocComment:()=>QFe,Enum:()=>NFe,EnumVariant:()=>jFe,Expression:()=>mot,Field:()=>MFe,ImplBlock:()=>LFe,MatchArm:()=>hot,Method:()=>UFe,Module:()=>zFe,ModuleDeclaration:()=>L_n,NewtypeStruct:()=>VFe,PRIVATE:()=>kgu,PUBLIC:()=>z_n,PaginatedMethod:()=>U_n,Pattern:()=>got,PrimitiveType:()=>Aot,Reference:()=>qFe,StandaloneFunction:()=>GFe,Statement:()=>jIe,Struct:()=>WFe,Type:()=>dh,UseStatement:()=>q_n,Writer:()=>Dz,attribute:()=>Qgu,client:()=>Wgu,docComment:()=>$gu,enumVariant:()=>Lgu,enum_:()=>Mgu,field:()=>Ngu,hashMapType:()=>l1d,implBlock:()=>qgu,method:()=>zgu,module:()=>Ggu,newtypeStruct:()=>Ugu,optionType:()=>a1d,primitiveType:()=>o1d,reference:()=>p1d,referenceType:()=>s1d,resultType:()=>u1d,rust:()=>f1d,standaloneFunction:()=>Vgu,struct:()=>jgu,vecType:()=>c1d,writer:()=>Hgu});function o1d(e){return dh.primitive(e)}function s1d(e){return dh.reference(e)}function a1d(e){return dh.option(e)}function u1d(e,t){return dh.result(e,t)}function c1d(e){return dh.vec(e)}function l1d(e,t){return dh.hashMap(e,t)}function p1d(e){return new qFe(e)}function Qgu(e){return new FFe(e)}function Ngu(e){return new MFe(e)}function jgu(e){return new WFe(e)}function Mgu(e){return new NFe(e)}function Lgu(e){return new jFe(e)}function Ugu(e){return new VFe(e)}function zgu(e){return new UFe(e)}function Vgu(e){return new GFe(e)}function qgu(e){return new LFe(e)}function Ggu(e){return new zFe(e)}function Wgu(e){return new kFe(e)}function $gu(e){return new QFe(e)}function Hgu(){return new Dz}var f1d={Type:dh,Reference:qFe,Attribute:FFe,Field:MFe,Struct:WFe,Enum:NFe,EnumVariant:jFe,NewtypeStruct:VFe,Method:UFe,StandaloneFunction:GFe,ImplBlock:LFe,Module:zFe,Client:kFe,DocComment:QFe,Expression:mot,Statement:jIe,CodeBlock:dot,Pattern:got,MatchArm:hot,attribute:Qgu,field:Ngu,struct:jgu,enum_:Mgu,enumVariant:Lgu,newtypeStruct:Ugu,method:zgu,standaloneFunction:Vgu,implBlock:qgu,module:Ggu,client:Wgu,docComment:$gu,writer:Hgu,visibility:{public:z_n,private:{type:"private"}}};var G_n=class{context;constructor({context:t}){this.context=t}convert(t){if(t.value==null)return this.context.isNullable(t.typeReference)?or.Expression.none():(this.context.addScopedError("Expected non-null value, but got null. Using placeholder.",vr.Critical),this.generatePlaceholderValue(t.typeReference));switch(this.context.validateTypeReference(t.typeReference,t.value)||this.context.addScopedError(`Type validation failed: expected ${t.typeReference.type}, got ${typeof t.value}`,vr.Warning),t.typeReference.type){case"primitive":return this.convertPrimitive({primitive:t.typeReference.value,value:t.value,as:t.as});case"literal":return this.convertLiteral({literal:t.typeReference.value,value:t.value});case"unknown":return this.convertUnknown({value:t.value});case"named":return this.convertNamed({typeReference:t.typeReference,value:t.value});case"optional":case"nullable":return this.convertOptional({typeReference:t.typeReference,value:t.value});case"list":return this.convertList({typeReference:t.typeReference,value:t.value});case"map":return this.convertMap({map:t.typeReference,value:t.value});case"set":return this.convertSet({set:t.typeReference,value:t.value});default:return this.context.addScopedError("Unhandled type reference",vr.Critical),or.Expression.raw("Default::default()")}}generatePlaceholderValue(t){switch(t.type){case"primitive":return this.generatePrimitivePlaceholder(t.value);case"named":return or.Expression.raw("Default::default()");case"list":return or.Expression.vec([]);case"set":return or.Expression.raw("HashSet::new()");case"map":return or.Expression.raw("HashMap::new()");case"literal":return this.convertLiteral({literal:t.value,value:t.value.value});case"unknown":return or.Expression.raw("serde_json::json!(null)");default:return or.Expression.raw("Default::default()")}}generatePrimitivePlaceholder(t){switch(t){case"STRING":case"UUID":return or.Expression.methodCall({target:or.Expression.stringLiteral("value"),method:"to_string",args:[]});case"BIG_INTEGER":return or.Expression.raw('BigInt::parse_bytes("0".as_bytes(), 10).unwrap()');case"BASE_64":return or.Expression.raw("vec![]");case"INTEGER":case"LONG":case"UINT":case"UINT_64":return or.Expression.numberLiteral(0);case"FLOAT":case"DOUBLE":return or.Expression.floatLiteral(0);case"BOOLEAN":return or.Expression.booleanLiteral(!1);case"DATE":return or.Expression.raw('NaiveDate::parse_from_str("2024-01-01", "%Y-%m-%d").unwrap()');case"DATE_TIME":return this.context.getDateTimeType()==="utc"?or.Expression.raw('DateTime::parse_from_rfc3339("2024-01-01T00:00:00Z").unwrap().with_timezone(&Utc)'):or.Expression.raw('DateTime::parse_from_rfc3339("2024-01-01T00:00:00Z").unwrap()');default:return or.Expression.raw("Default::default()")}}convertPrimitive({primitive:t,value:r,as:n}){switch(t){case"STRING":{let i=this.context.getValueAsString({value:r});return i==null?or.Expression.raw("Default::default()"):or.Expression.methodCall({target:or.Expression.stringLiteral(i),method:"to_string",args:[]})}case"INTEGER":case"LONG":{let i=this.getValueAsNumber({value:r,as:n});return i==null?or.Expression.raw("Default::default()"):or.Expression.numberLiteral(i)}case"DOUBLE":case"FLOAT":{let i=this.getValueAsNumber({value:r,as:n});return i==null?or.Expression.raw("Default::default()"):or.Expression.floatLiteral(i)}case"BOOLEAN":{let i=this.getValueAsBoolean({value:r,as:n});return i==null?or.Expression.raw("Default::default()"):or.Expression.booleanLiteral(i)}case"UUID":{let i=this.context.getValueAsString({value:r});return i==null?or.Expression.raw("Default::default()"):or.Expression.methodCall({target:or.Expression.functionCall("Uuid::parse_str",[or.Expression.stringLiteral(i)]),method:"unwrap",args:[]})}case"DATE":{let i=this.context.getValueAsString({value:r});return i==null?or.Expression.raw("Default::default()"):or.Expression.methodCall({target:or.Expression.functionCall("NaiveDate::parse_from_str",[or.Expression.stringLiteral(i),or.Expression.stringLiteral("%Y-%m-%d")]),method:"unwrap",args:[]})}case"DATE_TIME":{let i=this.context.getValueAsString({value:r});return i==null?or.Expression.raw("Default::default()"):this.context.getDateTimeType()==="utc"?or.Expression.methodCall({target:or.Expression.methodCall({target:or.Expression.functionCall("DateTime::parse_from_rfc3339",[or.Expression.stringLiteral(i)]),method:"unwrap",args:[]}),method:"with_timezone",args:[or.Expression.raw("&Utc")]}):or.Expression.methodCall({target:or.Expression.functionCall("DateTime::parse_from_rfc3339",[or.Expression.stringLiteral(i)]),method:"unwrap",args:[]})}case"BASE_64":{let i=this.context.getValueAsString({value:r});return i==null?or.Expression.raw("vec![]"):or.Expression.methodCall({target:or.Expression.methodCall({target:or.Expression.raw("base64::engine::general_purpose::STANDARD"),method:"decode",args:[or.Expression.stringLiteral(i)]}),method:"unwrap",args:[]})}case"BIG_INTEGER":{let i=this.context.getValueAsString({value:r});return i==null?or.Expression.raw("Default::default()"):or.Expression.methodCall({target:or.Expression.functionCall("BigInt::parse_bytes",[or.Expression.raw(`${JSON.stringify(i)}.as_bytes()`),or.Expression.numberLiteral(10)]),method:"unwrap",args:[]})}case"UINT":case"UINT_64":{let i=this.getValueAsNumber({value:r,as:n});return i==null?or.Expression.raw("Default::default()"):or.Expression.numberLiteral(i)}default:return this.context.addScopedError(`Unhandled primitive: ${t}`,vr.Critical),or.Expression.raw("Default::default()")}}convertLiteral({literal:t,value:r}){return typeof t?.value=="boolean"?or.Expression.booleanLiteral(t.value):typeof t?.value=="string"?or.Expression.methodCall({target:or.Expression.stringLiteral(t.value),method:"to_string",args:[]}):(this.context.addScopedError("Unknown literal type",vr.Critical),or.Expression.raw("Default::default()"))}convertUnknown({value:t}){return t==null?or.Expression.reference("None"):or.Expression.raw(`serde_json::json!(${JSON.stringify(t)})`)}convertNamed({typeReference:t,value:r}){if(t.type!=="named")return or.Expression.raw('todo!("Invalid named type reference")');let n=t.value,i=this.context.ir.types[n];if(!i)return this.context.addScopedError(`Type not found: ${n}`,vr.Critical),or.Expression.raw("Default::default()");switch(i.type){case"object":return this.convertObjectType({objectType:i,value:r});case"alias":{let o=this.context.getStructName(i.declaration.name),s=this.convert({typeReference:i.typeReference,value:r});return or.Expression.functionCall(o,[s])}case"enum":return this.convertEnumType({enumType:i,value:r});case"discriminatedUnion":return this.convertDiscriminatedUnionType({unionType:i,value:r});case"undiscriminatedUnion":return this.convertUndiscriminatedUnionType({unionType:i,value:r});default:return this.context.addScopedError("Unsupported named type",vr.Critical),or.Expression.raw("Default::default()")}}convertOptional({typeReference:t,value:r}){if(r==null)return or.Expression.none();let n=t.value||{type:"unknown"},i=this.convert({typeReference:n,value:r});return or.Expression.functionCall("Some",[i])}convertList({typeReference:t,value:r}){if(!Array.isArray(r))return or.Expression.vec([]);let n=t.value||{type:"unknown"},i=r.map((o,s)=>{this.context.scopeError(`[${s}]`);try{return this.convert({typeReference:n,value:o})}finally{this.context.unscopeError()}});return or.Expression.vec(i)}convertObjectType({objectType:t,value:r}){if(typeof r!="object"||r==null)return this.context.addScopedError("Expected object value for object type",vr.Critical),or.Expression.raw("Default::default()");let n=this.context.getStructName(t.declaration.name),i=this.context.getRecord(r)??{},o=this.getObjectExtensionInfo(t);if(o)return this.convertExtendedObject({objectType:t,value:i,structName:n,extendsInfo:o});let s=[];for(let a of t.properties){this.context.scopeError(a.name.wireValue);try{let u=this.context.getPropertyName(a.name.name),c=a.name.wireValue,l;if(u.endsWith("_fields")&&a.typeReference.type==="named"){let p=a.typeReference.value,d=this.context.ir.types[p];d&&d.type==="object"?l=this.convertObjectType({objectType:d,value:i}):l=this.convert({typeReference:a.typeReference,value:i[c]})}else c in i?l=this.convert({typeReference:a.typeReference,value:i[c]}):this.context.isNullable(a.typeReference)?l=or.Expression.none():(this.context.addScopedError(`Required field '${c}' is missing`,vr.Critical),l=or.Expression.raw("Default::default()"));s.push({name:u,value:l})}finally{this.context.unscopeError()}}return or.Expression.structConstruction(n,s)}getObjectExtensionInfo(t){let r=t.extends;if(r!=null&&r.length>0){let i=r[0];if(i!=null){let o=this.context.ir.types[i];if(o!=null&&o.type==="object"){let s=this.getBaseFieldName(o.declaration.name);return{baseObjectTypeId:i,baseObjectType:o,baseFieldName:s}}}}let n=t.properties.find(i=>i.name.name.snakeCase.safeName.endsWith("_fields")&&i.typeReference.type==="named");if(n!=null&&n.typeReference.type==="named"){let i=n.typeReference.value,o=this.context.ir.types[i];if(o!=null&&o.type==="object")return{baseObjectTypeId:i,baseObjectType:o,baseFieldName:n.name.name.snakeCase.safeName}}return null}convertExtendedObject({objectType:t,value:r,structName:n,extendsInfo:i}){let o=[],s=i.baseObjectType.properties.map(p=>{this.context.scopeError(p.name.wireValue);try{let d=r[p.name.wireValue],f;return d!==void 0?f=this.convert({typeReference:p.typeReference,value:d}):p.typeReference.type==="optional"||p.typeReference.type==="nullable"?f=or.Expression.raw("None"):f=or.Expression.raw("Default::default()"),{name:this.context.getPropertyName(p.name.name),value:f}}finally{this.context.unscopeError()}}),a=this.context.getStructName(i.baseObjectType.declaration.name),u=or.Expression.structConstruction(a,s);o.push({name:i.baseFieldName,value:u});let c=t.properties.filter(p=>!i.baseObjectType.properties.some(d=>d.name.wireValue===p.name.wireValue));return this.context.associateByWireValue({parameters:c,values:r}).forEach(p=>{this.context.scopeError(p.name.wireValue);try{o.push({name:this.context.getPropertyName(p.name.name),value:this.convert({typeReference:p.typeReference,value:p.value})})}finally{this.context.unscopeError()}}),or.Expression.structConstruction(n,o)}getBaseFieldName(t){return`${t.snakeCase.safeName}_fields`}convertEnumType({enumType:t,value:r}){if(typeof r!="string")return or.Expression.raw('todo!("Expected string value for enum type")');let n=this.context.getEnumName(t.declaration.name),i=t.values.find(a=>a.wireValue===r);if(!i)return or.Expression.raw(`todo!("Unknown enum variant: ${r}")`);let o=i.name.pascalCase.unsafeName,s=this.context.escapeRustReservedType(o);return or.Expression.reference(`${n}::${s}`)}convertDiscriminatedUnionType({unionType:t,value:r}){let n=this.context.resolveDiscriminatedUnionTypeInstance({discriminatedUnion:t,value:r});if(n==null)return this.context.addScopedError("Could not resolve discriminated union variant",vr.Critical),or.Expression.raw("Default::default()");let i=n.singleDiscriminatedUnionType,o=this.context.getStructNameByDeclaration(t.declaration),s=i.discriminantValue.name.pascalCase.unsafeName,a=this.context.escapeRustReservedType(s);switch(i.type){case"singleProperty":{let u=this.context.getRecord(n.value);if(u==null)return or.Expression.reference(`${o}::${a}`);this.context.scopeError(i.discriminantValue.wireValue);try{let c=this.convert({typeReference:i.typeReference,value:u[i.discriminantValue.wireValue]}),l=[{name:this.getUnionFieldName(i),value:c}];if(i.properties&&i.properties.length>0)for(let p of i.properties){let d=p.name.wireValue,f=p.name.name.snakeCase.safeName,m=u[d];this.context.scopeError(d);try{let h=this.convert({typeReference:p.typeReference,value:m});l.push({name:f,value:h})}finally{this.context.unscopeError()}}return or.Expression.structConstruction(`${o}::${a}`,l)}finally{this.context.unscopeError()}}case"samePropertiesAsObject":{let u=this.context.ir.types[i.typeId];if(!u||u.type!=="object")return this.context.addScopedError("Referenced union type not found or not an object",vr.Critical),or.Expression.reference(`${o}::${a}`);let c=this.convertObjectType({objectType:u,value:n.value});return or.Expression.structConstruction(`${o}::${a}`,[{name:"data",value:c}])}case"noProperties":return or.Expression.reference(`${o}::${a}`);default:return this.context.addScopedError("Unsupported union variant type",vr.Critical),or.Expression.reference(`${o}::${a}`)}}getUnionFieldName(t){return"value"}convertUndiscriminatedUnionType({unionType:t,value:r}){let n=this.context.getStructNameByDeclaration(t.declaration);for(let i=0;i<t.types.length;i++){let o=t.types[i];if(o)try{let s=this.convert({typeReference:o,value:r}),a=this.getUndiscriminatedUnionVariantName(o);return or.Expression.functionCall(`${n}::${a}`,[s])}catch{continue}}return this.context.addScopedError("No matching type in undiscriminated union",vr.Critical),or.Expression.raw("Default::default()")}getUndiscriminatedUnionVariantName(t){let r=this.getInnerTypeVariantName(t);if(r)return r;switch(t.type){case"list":{let n=this.getInnerTypeVariantName(t.value);return n?`${n}List`:"List"}case"set":{let n=this.getInnerTypeVariantName(t.value);return n?`${n}Set`:"Set"}case"map":{let n=this.getInnerTypeVariantName(t.key),i=this.getInnerTypeVariantName(t.value);return n&&i?`${n}To${i}Map`:"Map"}case"optional":{let n=this.getInnerTypeVariantName(t.value);return n?`Optional${n}`:"Optional"}case"nullable":{let n=this.getInnerTypeVariantName(t.value);return n?`Nullable${n}`:"Nullable"}default:return"Unknown"}}getInnerTypeVariantName(t){switch(t.type){case"named":return this.context.ir.types[t.value]?.declaration.name.pascalCase.safeName;case"primitive":switch(t.value){case"STRING":return"String";case"BOOLEAN":return"Boolean";case"INTEGER":return"Integer";case"LONG":return"Long";case"DOUBLE":return"Double";case"FLOAT":return"Float";case"DATE_TIME":return"DateTime";case"DATE":return"Date";case"UUID":return"Uuid";case"BASE_64":return"Base64";case"BIG_INTEGER":return"BigInteger";case"UINT":return"Uint";case"UINT_64":return"Uint64";default:return}default:return}}getValueAsNumber({value:t,as:r}){let n=r==="mapKey"&&typeof t=="string"?Number(t):t;return this.context.getValueAsNumber({value:n})}getValueAsBoolean({value:t,as:r}){let n=(()=>{switch(r){case"mapKey":return t==="true"?!0:t==="false"?!1:t;case"mapValue":case void 0:return t;default:return t}})();return this.context.getValueAsBoolean({value:n})}convertMap({map:t,value:r}){if(typeof r!="object"||r==null)return this.context.addScopedError(`Expected object but got: ${r==null?"null":typeof r}`,vr.Critical),or.Expression.raw("Default::default()");let n=Object.entries(r).map(([i,o])=>{this.context.scopeError(i);try{return[this.convert({typeReference:t.key,value:i,as:"mapKey"}),this.convert({typeReference:t.value,value:o,as:"mapValue"})]}finally{this.context.unscopeError()}});return or.Expression.raw(`HashMap::from([${n.map(i=>`(${i[0]}, ${i[1]})`).join(", ")}])`)}convertSet({set:t,value:r}){if(!Array.isArray(r))return this.context.addScopedError(`Expected array but got: ${typeof r}`,vr.Critical),or.Expression.raw("Default::default()");let i=r.map((o,s)=>{this.context.scopeError(`[${s}]`);try{return this.convert({typeReference:t.value,value:o})}finally{this.context.unscopeError()}}).map(o=>o.toString());return or.Expression.raw(`HashSet::from([${i.join(", ")}])`)}};var W_n=class{context;constructor({context:t}){this.context=t}mapType(t){switch(t.typeReference.type){case"primitive":return this.mapPrimitive(t.typeReference.value);case"list":return`Vec<${this.mapType({typeReference:t.typeReference.value})}>`;case"map":{let r=this.mapType({typeReference:t.typeReference.key}),n=this.mapType({typeReference:t.typeReference.value});return`HashMap<${r}, ${n}>`}case"set":return`HashSet<${this.mapType({typeReference:t.typeReference.value})}>`;case"optional":case"nullable":return`Option<${this.mapType({typeReference:t.typeReference.value})}>`;case"named":{let r=this.context.ir.types[t.typeReference.value];return r?this.mapNamed(r):"String"}case"literal":return this.mapLiteral(t.typeReference.value);case"unknown":return"serde_json::Value";default:return"String"}}mapPrimitive(t){switch(t){case"STRING":case"BASE_64":case"BIG_INTEGER":return"String";case"INTEGER":case"LONG":return"i64";case"UINT":case"UINT_64":return"u64";case"FLOAT":return"f32";case"DOUBLE":return"f64";case"BOOLEAN":return"bool";case"UUID":return"Uuid";case"DATE":return"NaiveDate";case"DATE_TIME":return this.context.getDateTimeType()==="utc"?"DateTime<Utc>":"DateTime<FixedOffset>";default:return"String"}}mapNamed(t){switch(t.type){case"alias":return this.mapType({typeReference:t.typeReference});case"object":case"enum":case"discriminatedUnion":case"undiscriminatedUnion":return this.context.getStructName(t.declaration.name);default:return"String"}}mapLiteral(t){switch(t.type){case"string":return"String";case"boolean":return"bool";default:return"String"}}};St();var $_n=class{context;constructor({context:t}){this.context=t}getFilePropertyInfo({body:t,value:r}){let n={fileFields:[],bodyPropertyFields:[]},i=this.context.getRecord(r)??{};for(let o of t.properties)switch(o.type){case"file":n.fileFields.push({name:this.context.getPropertyName(o.name),value:this.getSingleFileProperty({property:o,record:i})});break;case"fileArray":n.fileFields.push({name:this.context.getPropertyName(o.name),value:this.getArrayFileProperty({property:o,record:i})});break;case"bodyProperty":n.bodyPropertyFields.push({name:this.context.getPropertyName(o.name.name),value:this.getBodyProperty({property:o,record:i})});break;default:_e(o)}return n}getSingleFileProperty({property:t,record:r}){let n=this.context.getSingleFileValue({property:t,record:r});return n==null?or.Expression.raw('b"test file content".to_vec()'):this.createFileExpression(n)}getArrayFileProperty({property:t,record:r}){let n=this.context.getFileArrayValues({property:t,record:r});return n==null?or.Expression.vec([or.Expression.raw('b"test file 1".to_vec()'),or.Expression.raw('b"test file 2".to_vec()')]):or.Expression.vec(n.map(i=>this.createFileExpression(i)))}getBodyProperty({property:t,record:r}){let n=r[t.name.wireValue];return n==null?t.typeReference.type==="optional"||t.typeReference.type==="nullable"?or.Expression.raw("None"):or.Expression.raw("Default::default()"):this.context.dynamicTypeLiteralMapper.convert({typeReference:t.typeReference,value:n})}createFileExpression(t){return or.Expression.methodCall({target:or.Expression.methodCall({target:or.Expression.stringLiteral(t),method:"as_bytes",args:[]}),method:"to_vec",args:[]})}};var oTt=class e extends RE{ir;customConfig;dynamicTypeMapper;dynamicTypeLiteralMapper;filePropertyMapper;errorStack=[];registry;declarationToTypeId=new Map;endpointDeclarationToQueryRequestName=new Map;constructor({ir:t,config:r,options:n}){super({ir:t,config:r,options:n}),this.ir=t,this.customConfig=r.customConfig,this.registry=iTt.create(),this.preregisterTypeNames(),this.preregisterQueryRequestNames(),this.dynamicTypeMapper=new W_n({context:this}),this.dynamicTypeLiteralMapper=new G_n({context:this}),this.filePropertyMapper=new $_n({context:this})}preregisterTypeNames(){for(let[t,r]of Object.entries(this.ir.types)){let n=r.declaration.name.pascalCase.safeName;this.registry.registerSchemaTypeTypeName(t,n);let i=this.getDeclarationKey(r.declaration);this.declarationToTypeId.set(i,t)}}preregisterQueryRequestNames(){let t=[];for(let[n,i]of Object.entries(this.ir.endpoints)){let o=i.request;if(o.type!=="inlined")continue;let s=(o.queryParameters??[]).length>0,a=o.body!=null;if(s&&!a){let u=i.declaration.name.pascalCase.safeName;t.push({endpointId:n,endpoint:i,methodName:u})}}let r=new Map;for(let{methodName:n}of t)r.set(n,(r.get(n)??0)+1);for(let{endpointId:n,endpoint:i,methodName:o}of t){let s=(r.get(o)??0)>1,a;s?a=`${i.declaration.fernFilepath.allParts.map(f=>f.pascalCase.safeName).join("")}${o}QueryRequest`:a=`${o}QueryRequest`;let u=`query_request:${n}`,c=this.registry.registerSchemaTypeTypeName(u,a),l=this.getEndpointDeclarationKey(i.declaration);this.endpointDeclarationToQueryRequestName.set(l,c)}}getDeclarationKey(t){let r=t.fernFilepath.packagePath.map(i=>i.pascalCase.safeName).join("/"),n=t.name.pascalCase.safeName;return`${r}::${n}`}getEndpointDeclarationKey(t){let r=t.fernFilepath.allParts.map(i=>i.pascalCase.safeName).join("/"),n=t.name.pascalCase.safeName;return`${r}::${n}`}clone(){return new e({ir:this.ir,config:this.config,options:this.options})}getStructName(t){return this.getTypeName(t)}getStructNameByDeclaration(t){let r=this.getDeclarationKey(t),n=this.declarationToTypeId.get(r);return n?this.registry.getSchemaTypeTypeNameOrThrow(n):j_n(t.name.pascalCase.safeName)}getQueryRequestNameByEndpoint(t){let r=this.getEndpointDeclarationKey(t);return this.endpointDeclarationToQueryRequestName.get(r)}getEnumName(t){return this.getTypeName(t)}getTypeNameById(t){return this.registry.getSchemaTypeTypeNameOrThrow(t)}getTypeName(t){return j_n(t.pascalCase.safeName)}getPropertyName(t){let r=t.snakeCase.safeName;if(r.endsWith("_")){let n=r.slice(0,-1);return t$i(n)}return t$i(r)}getMethodName(t){return j_n(t.snakeCase.safeName)}escapeRustReservedType(t){return Dgu(t)}getCrateName(){let t=this.config.organization,r=this.config.workspaceName,n=this.customConfig?.crateName??Fgu(t,r);return Rgu(n)}getDateTimeType(){return this.customConfig?.dateTimeType??"offset"}getClientStructName(){return this.customConfig?.clientClassName??`${Tgu(this.config.workspaceName)}Client`}resolveEnvironmentName(t){}scopeError(t){this.errorStack.push(t)}unscopeError(){this.errorStack.pop()}addScopedError(t,r){let n=this.errorStack.length>0?this.errorStack.join("."):"root";this.errors.add({severity:r,message:`[${n}] ${t}`})}getCurrentScope(){return this.errorStack.join(".")}getValueAsNumber({value:t}){if(typeof t=="number"&&!isNaN(t))return t;if(typeof t=="string"){let r=Number(t);if(!isNaN(r))return r}this.addScopedError(`Expected number but got: ${typeof t}`,vr.Critical)}getValueAsBoolean({value:t}){if(typeof t=="boolean")return t;if(typeof t=="string"){if(t==="true")return!0;if(t==="false")return!1}this.addScopedError(`Expected boolean but got: ${typeof t}`,vr.Critical)}getValueAsString({value:t}){if(typeof t=="string")return t;this.addScopedError(`Expected string but got: ${typeof t}`,vr.Critical)}validateTypeReference(t,r){switch(t.type){case"primitive":return this.validatePrimitive(t.value,r);case"list":return Array.isArray(r);case"named":return this.validateNamedType(t.value,r);case"optional":case"nullable":return r==null||this.validateTypeReference(t.value,r);case"map":return typeof r=="object"&&r!=null&&!Array.isArray(r);case"set":return Array.isArray(r);case"literal":return this.validateLiteral(t.value,r);case"unknown":return!0;default:return!1}}validatePrimitive(t,r){switch(t){case"STRING":case"UUID":case"DATE":case"DATE_TIME":case"BASE_64":case"BIG_INTEGER":return typeof r=="string";case"INTEGER":case"LONG":case"UINT":case"UINT_64":return typeof r=="number"&&Number.isInteger(r);case"FLOAT":case"DOUBLE":return typeof r=="number";case"BOOLEAN":return typeof r=="boolean";default:return!1}}validateNamedType(t,r){let n=this.ir.types[t];if(!n)return!1;switch(n.type){case"object":return typeof r=="object"&&r!=null&&!Array.isArray(r);case"enum":return typeof r=="string"&&n.values.some(i=>i.wireValue===r);case"alias":return this.validateTypeReference(n.typeReference,r);case"discriminatedUnion":return this.validateDiscriminatedUnion(n,r);case"undiscriminatedUnion":return this.validateUndiscriminatedUnion(n,r);default:return!1}}validateLiteral(t,r){switch(t.type){case"string":return typeof r=="string"&&r===t.value;case"boolean":return typeof r=="boolean"&&r===t.value;default:return!1}}validateDiscriminatedUnion(t,r){if(typeof r!="object"||r==null)return!1;let i=r[t.discriminant.wireValue];return typeof i=="string"&&Object.keys(t.types).includes(i)}validateUndiscriminatedUnion(t,r){return t.types.some(n=>this.validateTypeReference(n,r))}isNullable(t){return t.type==="nullable"||t.type==="optional"}associateByWireValue({parameters:t,values:r,ignoreMissingParameters:n}){let i=[];for(let o of t){let s=o.name.wireValue,a=r[s];if(a!=null){this.errors.scope(s);try{i.push({name:o.name,typeReference:o.typeReference,value:a})}finally{this.errors.unscope()}}}return i}isOptionalType(t){return t.type==="optional"||t.type==="nullable"}allParametersAreOptional(t){return t.every(r=>this.isOptionalType(r.typeReference))}canRequestUseDefault(t){let n=[...t.queryParameters??[]];if(t.body!=null){if(t.body.type==="properties")n.push(...t.body.value);else if(t.body.type==="referenced"){let i=t.body.bodyType.type==="typeReference"?t.body.bodyType.value:{type:"primitive",value:"STRING"};if(!this.isOptionalType(i))return!1}else if(t.body.type==="fileUpload")return!1}return this.allParametersAreOptional(n)}};St();var Kgu="client",sTt=class{context;constructor({context:t}){this.context=t}async generateSnippet({endpoint:t,request:r}){let i=this.buildCodeComponents({endpoint:t,snippet:r}).join(`
2532
2532
  `)+`
2533
2533
  `;return await n$i(i)}generateSnippetSync({endpoint:t,request:r}){let i=this.buildCodeComponents({endpoint:t,snippet:r}).join(`
2534
2534
  `)+`
@@ -3603,7 +3603,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
3603
3603
  Run ${be.cyan("fern generator upgrade")} to upgrade your generators.`),i.length>2&&(r+=`
3604
3604
  Run ${be.cyan("fern generator upgrade --list")} to see the full list of generator upgrades available.`),tGe(r,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"})}async function I0o({generatorUpgradeInfo:e,header:t,limit:r,includeBoxen:n=!0}){if(!zzu(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+=`
3605
3605
  ${await QPm(a.generatorName)} (${a.apiName!=null?"API: "+a.apiName+", ":""}Group: ${a.generatorGroup}) `+be.dim(a.currentVersion)+be.reset(" \u2192 ")+be.green(a.latestVersion);return i+=`
3606
- `,n?tGe(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function QPm(e){let r=await new Uzu.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 NPm({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await qzu({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(u,c,l,p)=>{a.versions[c]==null&&(a.versions[c]={});let d=bBe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await VS({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 qzu({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=bBe(c.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${c.name}`);return}let d=await VS({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 qzu({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 CQ({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let u=n!=null?pC(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 Gzu(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=rF(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 k2n({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await NPm({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(...Gzu(c,u,t.logger));else s.push(...Gzu(a.versions,void 0,t.logger))}return s}async function dce({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:Ndt(e.packageName,{version:t?"prerelease":"latest"})}var Wzu=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],Q2n=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Vn.Info;isLocal;stdoutRedirector=new F2n;jsonMode=!1;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new EOe(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.37.6"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${be.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new fm}failWithoutThrowing(t,r){this.didSucceed=!1,_Et({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)+`
3606
+ `,n?tGe(i,{padding:1,float:"center",textAlignment:"center",borderColor:"yellow",borderStyle:"round"}):i}async function QPm(e){let r=await new Uzu.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 NPm({cliContext:e,project:{apiWorkspaces:t},generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){if(t.length===1){let a={type:"singleApi",versions:{}};return await qzu({cliContext:e,apiWorkspaces:t,perGeneratorAction:async(u,c,l,p)=>{a.versions[c]==null&&(a.versions[c]={});let d=bBe(l.name);if(d==null){p.logger.debug(`Skipping unknown generator: ${l.name}`);return}let f=await VS({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 qzu({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=bBe(c.name);if(p==null){l.logger.debug(`Skipping unknown generator: ${c.name}`);return}let d=await VS({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 qzu({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 CQ({absolutePathToWorkspace:o.absoluteFilePath,context:s});if(a==null||a.groups==null)return;let u=n!=null?pC(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 Gzu(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=rF(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 k2n({project:e,cliContext:t,generatorFilter:r,groupFilter:n,channel:i,includeMajor:o}){let s=[];if(e!=null){let a=await NPm({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(...Gzu(c,u,t.logger));else s.push(...Gzu(a.versions,void 0,t.logger))}return s}async function dce({cliEnvironment:e,includePreReleases:t=!1}){return e.packageName!=="fern-api"?e.packageVersion:Ndt(e.packageName,{version:t?"prerelease":"latest"})}var Wzu=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],Q2n=class{environment;didSucceed=!0;numTasks=0;ttyAwareLogger;logLevel=Vn.Info;isLocal;stdoutRedirector=new F2n;jsonMode=!1;constructor(t,r,{isLocal:n}){this.ttyAwareLogger=new EOe(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.37.7"}getCliName(){return"fern"}setLogLevel(t){this.logLevel=t}logFernVersionDebug(){this.logger.debug(`Running ${be.bold(`${this.environment.cliName}`)} (${this.environment.packageName}@${this.environment.packageVersion})`)}failAndThrow(t,r){throw this.failWithoutThrowing(t,r),new fm}failWithoutThrowing(t,r){this.didSucceed=!1,_Et({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)+`
3607
3607
  `),this.jsonMode&&this.stdoutRedirector.redirect()}async exit({code:t}={}){!this._suppressUpgradeMessage&&!this.isLocal&&await this.nudgeUpgradeIfAvailable(),this.ttyAwareLogger.finish(),await(await eGe()).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 Vzu({cliEnvironment:this.environment,upgradeInfo:t});r!=null&&(r.endsWith(`
3608
3608
  `)||(r+=`
3609
3609
  `),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=mUn(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 ukt(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 fm}finally{n.finish()}return i}async instrumentPostHogEvent(t){this.isLocal||(await eGe()).sendEvent(t)}logger=fP((t,...r)=>this.log(t,...r));stderr=fP((t,...r)=>this.logStderr(t,...r));constructTaskInitForWorkspace(t){let r=$zu(t.type==="docs"?"docs":t.workspaceName??"api"),n=1+(this.longestWorkspaceName!=null?$zu(this.longestWorkspaceName):r).length,i=r.padEnd(n),o=Wzu[this.numTasks++%Wzu.length],s=be.hex(o)(i);return{...this.constructTaskInit(),logPrefix:s}}constructTaskInit(){return{logImmediately:t=>this.logImmediately(t),takeOverTerminal:t=>this.ttyAwareLogger.takeOverTerminal(t),onResult:t=>{t===Tp.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=>__.indexOf(i.level)>=__.indexOf(this.logLevel));this.ttyAwareLogger.log(n,{includeDebugInfo:this.logLevel===Vn.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 dce({cliEnvironment:this.environment,includePreReleases:t}),n=rF(r,this.environment.packageVersion);this.logger.debug(`Latest version: ${r}. `+(n?"Upgrade available.":"No upgrade available."));let i={isUpgradeAvailable:n,latestVersion:r},o=await k2n({project:this.project,cliContext:this});this._isUpgradeAvailable={cliUpgradeInfo:i,generatorUpgradeInfo:o}}return this._isUpgradeAvailable}async confirmPrompt(t,r=!1){try{return await E0o({message:t,choices:[{name:"No",value:!1},{name:"Yes",value:!0}],default:r,theme:{prefix:be.yellow("?"),style:{answer:i=>be.cyan(i),message:i=>be.bold(i),highlight:i=>be.cyan(i)}}})}catch(n){throw n?.name==="ExitPromptError"?(this.logger.info(`
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.37.6",
2
+ "version": "4.37.7",
3
3
  "repository": {
4
4
  "type": "git",
5
5
  "url": "git+https://github.com/fern-api/fern.git",