@stacksjs/rpx 0.11.30 → 0.11.31

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.
@@ -1,4 +1,4 @@
1
- import{Ab as F$,Bb as Nt,Cb as Y,Db as O$,Hb as Sh,Ib as wl,Kb as Of,Lb as ah,Nb as r$,Ob as Jh,yb as s,zb as Gl}from"./chunk-z86swbd8.js";import d$ from"node:dgram";import*as D$ from"node:fs/promises";import*as b$ from"node:path";import*as Et from"node:process";import{spawn as G$}from"node:child_process";import*as Ti from"node:fs/promises";import{homedir as H$}from"node:os";import*as Pi from"node:path";import*as j from"node:process";var J={info:(...i)=>console.log("[info]",...i),success:(...i)=>console.log("[success]",...i),warn:(...i)=>console.warn("[warn]",...i),error:(...i)=>console.error("[error]",...i),debug:(...i)=>console.debug("[debug]",...i),log:(...i)=>console.log(...i),start:(...i)=>console.log("[start]",...i),box:(...i)=>console.log("[box]",...i)};import{execSync as ll}from"node:child_process";import Z from"node:fs/promises";import*as yl from"node:os";import{homedir as en}from"node:os";import*as Fh from"node:path";import{join as D}from"node:path";import*as Li from"node:process";import{createRequire as c1}from"node:module";import{Resolver as f0}from"node:dns/promises";import{createHash as y1,sign as w1}from"node:crypto";import{createHash as u1}from"node:crypto";import{sign as h1}from"node:crypto";import{generateKeyPairSync as nw,X509Certificate as m1}from"node:crypto";import c0 from"node:os";import l0 from"node:path";import{existsSync as ol,statSync as pl}from"fs";import{existsSync as j1,mkdirSync as kC,readdirSync as VC,readFileSync as N1,writeFileSync as dC}from"fs";import{homedir as Lt}from"os";import{dirname as PC,resolve as Ji}from"path";import kr from"process";import{existsSync as iy,statSync as ty}from"fs";import{existsSync as I0,mkdirSync as R1,readdirSync as X1,writeFileSync as W1}from"fs";import{homedir as xt}from"os";import{dirname as ny,resolve as Yi}from"path";import _t from"process";import{join as S1,relative as a1,resolve as ry}from"path";import ar from"process";import{existsSync as rw,mkdirSync as cm,readdirSync as lm,writeFileSync as ym}from"fs";import{homedir as y0}from"os";import{dirname as hm,resolve as Ei}from"path";import Fn from"process";import{join as J1,relative as F1,resolve as fy}from"path";import Jr from"process";import{existsSync as fw,mkdirSync as Ym,readdirSync as Bm,writeFileSync as em}from"fs";import{dirname as mm,resolve as Fr}from"path";import K0 from"process";import{Buffer as Bt}from"buffer";import{createCipheriv as I1,createDecipheriv as K1,randomBytes as w0}from"crypto";import{closeSync as u0,createReadStream as cy,createWriteStream as _1,existsSync as h0,fsyncSync as ly,openSync as yy,writeFileSync as z1}from"fs";import{access as Q1,constants as wy,mkdir as M1,readdir as fr,rename as uy,stat as kt,unlink as cr,writeFile as $0}from"fs/promises";import{join as Vt}from"path";import yi from"process";import{pipeline as O1}from"stream/promises";import{createGzip as hy}from"zlib";import dt from"process";import it from"process";import{Buffer as vi}from"buffer";import{createCipheriv as G1,createDecipheriv as H1,randomBytes as A0}from"crypto";import{closeSync as T0,createReadStream as $y,createWriteStream as q1,existsSync as lr,fsyncSync as Ay,openSync as Ty,writeFileSync as g1}from"fs";import{access as s1,constants as Ey,mkdir as L1,readdir as yr,rename as Yy,stat as Dt,unlink as wr,writeFile as E0}from"fs/promises";import{isAbsolute as x1,join as bt,resolve as k1}from"path";import H from"process";import{pipeline as V1}from"stream/promises";import{createGzip as By}from"zlib";import Pt from"process";import tt from"process";import ur from"process";import{existsSync as hr}from"fs";import{resolve as Y0}from"path";import{existsSync as d1}from"fs";import{existsSync as D1,readdirSync as b1}from"fs";import{extname as B0,resolve as ey}from"path";import P1 from"process";import{join as Z1,relative as v1,resolve as Cy}from"path";import Ir from"process";import{Buffer as oi}from"buffer";import{createCipheriv as o1,createDecipheriv as p1,randomBytes as e0}from"crypto";import{closeSync as C0,createReadStream as my,createWriteStream as iA,existsSync as $r,fsyncSync as Uy,openSync as jy,writeFileSync as tA}from"fs";import{access as nA,constants as Ny,mkdir as rA,readdir as Ar,rename as Ry,stat as Zt,unlink as Tr,writeFile as m0}from"fs/promises";import{isAbsolute as fA,join as vt,resolve as cA}from"path";import q from"process";import{pipeline as lA}from"stream/promises";import{createGzip as Xy}from"zlib";import ot from"process";import nt from"process";import Er from"process";import{existsSync as Yr}from"fs";import{resolve as U0}from"path";import{existsSync as yA}from"fs";import{exec as FT}from"node:child_process";import L0 from"node:fs";import IT from"node:os";import Mi from"node:path";import gw from"node:process";import{promisify as KT}from"node:util";import rn from"node:crypto";import rt from"node:fs";import V0 from"node:path";import iE from"node:crypto";import tE from"node:fs";import nE from"node:tls";import{execSync as cE}from"node:child_process";import Lr from"node:os";var l1=c1(import.meta.url),Ly=30000;async function Cr(i,t={},n=30000){try{return await fetch(i,{...t,signal:AbortSignal.timeout(n)})}catch(r){if(r&&typeof r==="object"&&r.name==="TimeoutError"){let f=Error(`ACME HTTP request to ${i} timed out after ${n}ms`);throw f.name="AcmeRequestTimeoutError",f}throw r}}async function xy(i,t,n={}){let r=n.timeoutMs??120000,f=n.intervalMs??3000,c=i.split(".").slice(-2).join("."),l;try{let u=new f0,h=await u.resolveNs(c),$=(await Promise.all(h.map((A)=>u.resolve4(A).catch(()=>[])))).flat();if($.length>0)l=new f0,l.setServers($)}catch{}let y=Date.now()+r,w=l??new f0;for(;;){try{if((await w.resolveTxt(i)).some((u)=>u.join("")===t))return!0}catch{}if(Date.now()>=y)return!1;await new Promise((u)=>setTimeout(u,f))}}class Jn{tokens=new Map;add(i,t){this.tokens.set(i,t)}get(i){return this.tokens.get(i)}remove(i){this.tokens.delete(i)}static PATH_PREFIX="/.well-known/acme-challenge/";handlePath(i){let t=i.indexOf(Jn.PATH_PREFIX);if(t===-1)return;let n=i.slice(t+Jn.PATH_PREFIX.length);return this.get(n)}}var xr=new Jn;function mr(i){return(typeof i==="string"?Buffer.from(i,"utf8"):Buffer.from(i)).toString("base64url")}function S0(i){return Buffer.from(i,"base64url")}function ky(i){let t=i.export({format:"jwk"});if(t.kty!=="EC"||t.crv!=="P-256"||!t.x||!t.y)throw Error(`Expected a P-256 EC public key, got kty=${t.kty} crv=${t.crv}`);return{crv:"P-256",kty:"EC",x:t.x,y:t.y}}function Vy(i){let t=`{"crv":"${i.crv}","kty":"${i.kty}","x":"${i.x}","y":"${i.y}"}`;return y1("sha256").update(t).digest("base64url")}function dy(i){let{protectedHeader:t,payload:n,privateKey:r}=i,f=mr(JSON.stringify(t)),c=n===""?"":mr(JSON.stringify(n)),l=`${f}.${c}`,y=w1("sha256",Buffer.from(l),{key:r,dsaEncoding:"ieee-p1363"});return{protected:f,payload:c,signature:mr(y)}}var Dy="https://acme-staging-v02.api.letsencrypt.org/directory",by="https://acme-v02.api.letsencrypt.org/directory";class Wr extends Error{problem;httpStatus;constructor(i,t,n){super(i);this.name="AcmeError",this.problem=t,this.httpStatus=n}}class Sr{directoryUrl;accountKey;jwk;thumbprint;requestTimeoutMs;directoryCache;nonce;accountKid;constructor(i){this.directoryUrl=i.directoryUrl,this.accountKey=i.accountKey,this.jwk=ky(i.accountPublicKey),this.thumbprint=Vy(this.jwk),this.requestTimeoutMs=i.requestTimeoutMs??Ly}get keyThumbprint(){return this.thumbprint}get kid(){return this.accountKid}async directory(){if(this.directoryCache)return this.directoryCache;let i=await Cr(this.directoryUrl,{},this.requestTimeoutMs);if(!i.ok)throw Error(`Failed to fetch ACME directory: HTTP ${i.status}`);return this.directoryCache=await i.json(),this.directoryCache}async newNonce(){let i=await this.directory(),t=(await Cr(i.newNonce,{method:"HEAD"},this.requestTimeoutMs)).headers.get("replay-nonce");if(!t)throw Error("ACME server did not return a Replay-Nonce");return this.nonce=t,t}async ensureNonce(){if(this.nonce){let i=this.nonce;return this.nonce=void 0,i}return this.newNonce()}async signedPost(i){let{url:t,payload:n,useJwk:r}=i,f={alg:"ES256",nonce:await this.ensureNonce(),url:t};if(r)f.jwk=this.jwk;else f.kid=this.requireKid();let c=dy({protectedHeader:f,payload:n,privateKey:this.accountKey}),l=await Cr(t,{method:"POST",headers:{"content-type":"application/jose+json"},body:JSON.stringify(c)},this.requestTimeoutMs),y=l.headers.get("replay-nonce");if(y)this.nonce=y;let w=l.headers.get("content-type")??"",u;if(w.includes("application/pem-certificate-chain")||w.startsWith("text/"))u=await l.text();else{let h=await l.text();u=h?JSON.parse(h):{}}if(l.status>=400){let h=u??{};throw new Wr(`ACME request to ${t} failed (HTTP ${l.status}): ${h.type??""} ${h.detail??""}`.trim(),h,l.status)}return{status:l.status,headers:l.headers,body:u,location:l.headers.get("location")??void 0}}requireKid(){if(!this.accountKid)throw Error("No ACME account; call newAccount() first");return this.accountKid}async newAccount(i={}){let t=await this.directory(),n={termsOfServiceAgreed:!0};if(i.email)n.contact=[`mailto:${i.email}`];let r=await this.signedPost({url:t.newAccount,payload:n,useJwk:!0});if(!r.location)throw Error("ACME newAccount did not return an account URL (Location header)");return this.accountKid=r.location,this.accountKid}async newOrder(i){let t=await this.directory(),n={identifiers:i.map((f)=>({type:"dns",value:f}))},r=await this.signedPost({url:t.newOrder,payload:n});if(!r.location)throw Error("ACME newOrder did not return an order URL (Location header)");return{order:r.body,orderUrl:r.location}}async getAuthorization(i){return(await this.signedPost({url:i,payload:""})).body}keyAuthorization(i){return`${i}.${this.thumbprint}`}dns01TxtValue(i){return u1("sha256").update(this.keyAuthorization(i)).digest("base64url")}async notifyChallengeReady(i){await this.signedPost({url:i,payload:{}})}async pollAuthorization(i,t={}){let n=t.timeoutMs??60000,r=t.intervalMs??2000,f=Date.now()+n;while(Date.now()<f){let c=await this.getAuthorization(i);if(c.status==="valid")return;if(c.status==="invalid"){let l=c.challenges.find((y)=>y.status==="invalid");throw new Wr(`Authorization for ${c.identifier.value} became invalid: ${l?.error?.detail??"unknown reason"}`,l?.error??{},0)}await vl(r),r=Math.min(r*1.5,1e4)}throw Error(`Timed out waiting for authorization ${i} to become valid`)}async finalizeOrder(i,t){return(await this.signedPost({url:i,payload:{csr:t}})).body}async getOrder(i){return(await this.signedPost({url:i,payload:""})).body}async pollOrder(i,t={}){let n=t.timeoutMs??60000,r=t.intervalMs??2000,f=Date.now()+n;while(Date.now()<f){let c=await this.getOrder(i);if(c.status==="valid"){if(!c.certificate)throw Error("ACME order is valid but has no certificate URL");return c.certificate}if(c.status==="invalid")throw Error(`ACME order ${i} became invalid`);await vl(r),r=Math.min(r*1.5,1e4)}throw Error(`Timed out waiting for order ${i} to become valid`)}async downloadCertificate(i){let t=await this.signedPost({url:i,payload:""});return typeof t.body==="string"?t.body:String(t.body)}static selectChallenge(i,t){let n=i.challenges.find((r)=>r.type===t);if(!n)throw Error(`No ${t} challenge available for ${i.identifier.value}`);return n}}function Py(i){let t=i.match(/-----BEGIN CERTIFICATE-----[\s\S]*?-----END CERTIFICATE-----\n?/g)??[],n=t[0];if(!n)return{certPem:`${i.trim()}
1
+ import{Ab as F$,Cb as Nt,Db as Y,Eb as O$,Ib as Sh,Jb as wl,Lb as Of,Mb as ah,Ob as r$,Pb as Jh,yb as s,zb as Gl}from"./chunk-qfckr5a3.js";import d$ from"node:dgram";import*as D$ from"node:fs/promises";import*as b$ from"node:path";import*as Et from"node:process";import{spawn as G$}from"node:child_process";import*as Ti from"node:fs/promises";import{homedir as H$}from"node:os";import*as Pi from"node:path";import*as j from"node:process";var J={info:(...i)=>console.log("[info]",...i),success:(...i)=>console.log("[success]",...i),warn:(...i)=>console.warn("[warn]",...i),error:(...i)=>console.error("[error]",...i),debug:(...i)=>console.debug("[debug]",...i),log:(...i)=>console.log(...i),start:(...i)=>console.log("[start]",...i),box:(...i)=>console.log("[box]",...i)};import{execSync as ll}from"node:child_process";import Z from"node:fs/promises";import*as yl from"node:os";import{homedir as en}from"node:os";import*as Fh from"node:path";import{join as D}from"node:path";import*as Li from"node:process";import{createRequire as c1}from"node:module";import{Resolver as f0}from"node:dns/promises";import{createHash as y1,sign as w1}from"node:crypto";import{createHash as u1}from"node:crypto";import{sign as h1}from"node:crypto";import{generateKeyPairSync as nw,X509Certificate as m1}from"node:crypto";import c0 from"node:os";import l0 from"node:path";import{existsSync as ol,statSync as pl}from"fs";import{existsSync as j1,mkdirSync as kC,readdirSync as VC,readFileSync as N1,writeFileSync as dC}from"fs";import{homedir as Lt}from"os";import{dirname as PC,resolve as Ji}from"path";import kr from"process";import{existsSync as iy,statSync as ty}from"fs";import{existsSync as I0,mkdirSync as R1,readdirSync as X1,writeFileSync as W1}from"fs";import{homedir as xt}from"os";import{dirname as ny,resolve as Yi}from"path";import _t from"process";import{join as S1,relative as a1,resolve as ry}from"path";import ar from"process";import{existsSync as rw,mkdirSync as cm,readdirSync as lm,writeFileSync as ym}from"fs";import{homedir as y0}from"os";import{dirname as hm,resolve as Ei}from"path";import Fn from"process";import{join as J1,relative as F1,resolve as fy}from"path";import Jr from"process";import{existsSync as fw,mkdirSync as Ym,readdirSync as Bm,writeFileSync as em}from"fs";import{dirname as mm,resolve as Fr}from"path";import K0 from"process";import{Buffer as Bt}from"buffer";import{createCipheriv as I1,createDecipheriv as K1,randomBytes as w0}from"crypto";import{closeSync as u0,createReadStream as cy,createWriteStream as _1,existsSync as h0,fsyncSync as ly,openSync as yy,writeFileSync as z1}from"fs";import{access as Q1,constants as wy,mkdir as M1,readdir as fr,rename as uy,stat as kt,unlink as cr,writeFile as $0}from"fs/promises";import{join as Vt}from"path";import yi from"process";import{pipeline as O1}from"stream/promises";import{createGzip as hy}from"zlib";import dt from"process";import it from"process";import{Buffer as vi}from"buffer";import{createCipheriv as G1,createDecipheriv as H1,randomBytes as A0}from"crypto";import{closeSync as T0,createReadStream as $y,createWriteStream as q1,existsSync as lr,fsyncSync as Ay,openSync as Ty,writeFileSync as g1}from"fs";import{access as s1,constants as Ey,mkdir as L1,readdir as yr,rename as Yy,stat as Dt,unlink as wr,writeFile as E0}from"fs/promises";import{isAbsolute as x1,join as bt,resolve as k1}from"path";import H from"process";import{pipeline as V1}from"stream/promises";import{createGzip as By}from"zlib";import Pt from"process";import tt from"process";import ur from"process";import{existsSync as hr}from"fs";import{resolve as Y0}from"path";import{existsSync as d1}from"fs";import{existsSync as D1,readdirSync as b1}from"fs";import{extname as B0,resolve as ey}from"path";import P1 from"process";import{join as Z1,relative as v1,resolve as Cy}from"path";import Ir from"process";import{Buffer as oi}from"buffer";import{createCipheriv as o1,createDecipheriv as p1,randomBytes as e0}from"crypto";import{closeSync as C0,createReadStream as my,createWriteStream as iA,existsSync as $r,fsyncSync as Uy,openSync as jy,writeFileSync as tA}from"fs";import{access as nA,constants as Ny,mkdir as rA,readdir as Ar,rename as Ry,stat as Zt,unlink as Tr,writeFile as m0}from"fs/promises";import{isAbsolute as fA,join as vt,resolve as cA}from"path";import q from"process";import{pipeline as lA}from"stream/promises";import{createGzip as Xy}from"zlib";import ot from"process";import nt from"process";import Er from"process";import{existsSync as Yr}from"fs";import{resolve as U0}from"path";import{existsSync as yA}from"fs";import{exec as FT}from"node:child_process";import L0 from"node:fs";import IT from"node:os";import Mi from"node:path";import gw from"node:process";import{promisify as KT}from"node:util";import rn from"node:crypto";import rt from"node:fs";import V0 from"node:path";import iE from"node:crypto";import tE from"node:fs";import nE from"node:tls";import{execSync as cE}from"node:child_process";import Lr from"node:os";var l1=c1(import.meta.url),Ly=30000;async function Cr(i,t={},n=30000){try{return await fetch(i,{...t,signal:AbortSignal.timeout(n)})}catch(r){if(r&&typeof r==="object"&&r.name==="TimeoutError"){let f=Error(`ACME HTTP request to ${i} timed out after ${n}ms`);throw f.name="AcmeRequestTimeoutError",f}throw r}}async function xy(i,t,n={}){let r=n.timeoutMs??120000,f=n.intervalMs??3000,c=i.split(".").slice(-2).join("."),l;try{let u=new f0,h=await u.resolveNs(c),$=(await Promise.all(h.map((A)=>u.resolve4(A).catch(()=>[])))).flat();if($.length>0)l=new f0,l.setServers($)}catch{}let y=Date.now()+r,w=l??new f0;for(;;){try{if((await w.resolveTxt(i)).some((u)=>u.join("")===t))return!0}catch{}if(Date.now()>=y)return!1;await new Promise((u)=>setTimeout(u,f))}}class Jn{tokens=new Map;add(i,t){this.tokens.set(i,t)}get(i){return this.tokens.get(i)}remove(i){this.tokens.delete(i)}static PATH_PREFIX="/.well-known/acme-challenge/";handlePath(i){let t=i.indexOf(Jn.PATH_PREFIX);if(t===-1)return;let n=i.slice(t+Jn.PATH_PREFIX.length);return this.get(n)}}var xr=new Jn;function mr(i){return(typeof i==="string"?Buffer.from(i,"utf8"):Buffer.from(i)).toString("base64url")}function S0(i){return Buffer.from(i,"base64url")}function ky(i){let t=i.export({format:"jwk"});if(t.kty!=="EC"||t.crv!=="P-256"||!t.x||!t.y)throw Error(`Expected a P-256 EC public key, got kty=${t.kty} crv=${t.crv}`);return{crv:"P-256",kty:"EC",x:t.x,y:t.y}}function Vy(i){let t=`{"crv":"${i.crv}","kty":"${i.kty}","x":"${i.x}","y":"${i.y}"}`;return y1("sha256").update(t).digest("base64url")}function dy(i){let{protectedHeader:t,payload:n,privateKey:r}=i,f=mr(JSON.stringify(t)),c=n===""?"":mr(JSON.stringify(n)),l=`${f}.${c}`,y=w1("sha256",Buffer.from(l),{key:r,dsaEncoding:"ieee-p1363"});return{protected:f,payload:c,signature:mr(y)}}var Dy="https://acme-staging-v02.api.letsencrypt.org/directory",by="https://acme-v02.api.letsencrypt.org/directory";class Wr extends Error{problem;httpStatus;constructor(i,t,n){super(i);this.name="AcmeError",this.problem=t,this.httpStatus=n}}class Sr{directoryUrl;accountKey;jwk;thumbprint;requestTimeoutMs;directoryCache;nonce;accountKid;constructor(i){this.directoryUrl=i.directoryUrl,this.accountKey=i.accountKey,this.jwk=ky(i.accountPublicKey),this.thumbprint=Vy(this.jwk),this.requestTimeoutMs=i.requestTimeoutMs??Ly}get keyThumbprint(){return this.thumbprint}get kid(){return this.accountKid}async directory(){if(this.directoryCache)return this.directoryCache;let i=await Cr(this.directoryUrl,{},this.requestTimeoutMs);if(!i.ok)throw Error(`Failed to fetch ACME directory: HTTP ${i.status}`);return this.directoryCache=await i.json(),this.directoryCache}async newNonce(){let i=await this.directory(),t=(await Cr(i.newNonce,{method:"HEAD"},this.requestTimeoutMs)).headers.get("replay-nonce");if(!t)throw Error("ACME server did not return a Replay-Nonce");return this.nonce=t,t}async ensureNonce(){if(this.nonce){let i=this.nonce;return this.nonce=void 0,i}return this.newNonce()}async signedPost(i){let{url:t,payload:n,useJwk:r}=i,f={alg:"ES256",nonce:await this.ensureNonce(),url:t};if(r)f.jwk=this.jwk;else f.kid=this.requireKid();let c=dy({protectedHeader:f,payload:n,privateKey:this.accountKey}),l=await Cr(t,{method:"POST",headers:{"content-type":"application/jose+json"},body:JSON.stringify(c)},this.requestTimeoutMs),y=l.headers.get("replay-nonce");if(y)this.nonce=y;let w=l.headers.get("content-type")??"",u;if(w.includes("application/pem-certificate-chain")||w.startsWith("text/"))u=await l.text();else{let h=await l.text();u=h?JSON.parse(h):{}}if(l.status>=400){let h=u??{};throw new Wr(`ACME request to ${t} failed (HTTP ${l.status}): ${h.type??""} ${h.detail??""}`.trim(),h,l.status)}return{status:l.status,headers:l.headers,body:u,location:l.headers.get("location")??void 0}}requireKid(){if(!this.accountKid)throw Error("No ACME account; call newAccount() first");return this.accountKid}async newAccount(i={}){let t=await this.directory(),n={termsOfServiceAgreed:!0};if(i.email)n.contact=[`mailto:${i.email}`];let r=await this.signedPost({url:t.newAccount,payload:n,useJwk:!0});if(!r.location)throw Error("ACME newAccount did not return an account URL (Location header)");return this.accountKid=r.location,this.accountKid}async newOrder(i){let t=await this.directory(),n={identifiers:i.map((f)=>({type:"dns",value:f}))},r=await this.signedPost({url:t.newOrder,payload:n});if(!r.location)throw Error("ACME newOrder did not return an order URL (Location header)");return{order:r.body,orderUrl:r.location}}async getAuthorization(i){return(await this.signedPost({url:i,payload:""})).body}keyAuthorization(i){return`${i}.${this.thumbprint}`}dns01TxtValue(i){return u1("sha256").update(this.keyAuthorization(i)).digest("base64url")}async notifyChallengeReady(i){await this.signedPost({url:i,payload:{}})}async pollAuthorization(i,t={}){let n=t.timeoutMs??60000,r=t.intervalMs??2000,f=Date.now()+n;while(Date.now()<f){let c=await this.getAuthorization(i);if(c.status==="valid")return;if(c.status==="invalid"){let l=c.challenges.find((y)=>y.status==="invalid");throw new Wr(`Authorization for ${c.identifier.value} became invalid: ${l?.error?.detail??"unknown reason"}`,l?.error??{},0)}await vl(r),r=Math.min(r*1.5,1e4)}throw Error(`Timed out waiting for authorization ${i} to become valid`)}async finalizeOrder(i,t){return(await this.signedPost({url:i,payload:{csr:t}})).body}async getOrder(i){return(await this.signedPost({url:i,payload:""})).body}async pollOrder(i,t={}){let n=t.timeoutMs??60000,r=t.intervalMs??2000,f=Date.now()+n;while(Date.now()<f){let c=await this.getOrder(i);if(c.status==="valid"){if(!c.certificate)throw Error("ACME order is valid but has no certificate URL");return c.certificate}if(c.status==="invalid")throw Error(`ACME order ${i} became invalid`);await vl(r),r=Math.min(r*1.5,1e4)}throw Error(`Timed out waiting for order ${i} to become valid`)}async downloadCertificate(i){let t=await this.signedPost({url:i,payload:""});return typeof t.body==="string"?t.body:String(t.body)}static selectChallenge(i,t){let n=i.challenges.find((r)=>r.type===t);if(!n)throw Error(`No ${t} challenge available for ${i.identifier.value}`);return n}}function Py(i){let t=i.match(/-----BEGIN CERTIFICATE-----[\s\S]*?-----END CERTIFICATE-----\n?/g)??[],n=t[0];if(!n)return{certPem:`${i.trim()}
2
2
  `,chainPem:""};let r=`${n.trim()}
3
3
  `,f=t.slice(1).map((c)=>c.trim()).join(`
4
4
  `);return{certPem:r,chainPem:f?`${f}
@@ -248,5 +248,5 @@ ${n>0?`<meta http-equiv="refresh" content="${n}">`:""}
248
248
  `,"utf8")}async function kl(i){await St.rm(xl(i),{force:!0})}function V$(i){let t=i.trim().toLowerCase().replace(/\.$/,"");if(!t||t.includes("127.0.0.1"))return null;if(t==="localhost"||t.endsWith(".localhost"))return null;if(/^\d{1,3}(\.\d{1,3}){3}$/.test(t))return null;if(!/^[a-z0-9.-]+$/.test(t))return null;return t}function mC(i){let t=V$(i);if(!t)return null;let n=t.split(".");if(n.length<2)return null;return n.slice(-2).join(".")}function Vl(i){let t=new Set;for(let n of i){let r=mC(n);if(r)t.add(r)}return Array.from(t).sort()}function dl(i){let t=new Set;for(let n of i){let r=V$(n);if(r)t.add(r)}return Array.from(t).sort()}var pf=15353,UC="# managed-by: rpx",P$="/etc/resolver",Ni=null,of=new Set;function Z$(i){return{id:i.readUInt16BE(0),flags:i.readUInt16BE(2),qdcount:i.readUInt16BE(4),ancount:i.readUInt16BE(6),nscount:i.readUInt16BE(8),arcount:i.readUInt16BE(10)}}function v$(i,t,n=0){let r=[],f=t,c=0;while(!0){if(f>=i.length||++c>128)break;let l=i[f];if(l===0){f++;break}if((l&192)===192){if(f+1>=i.length||n>=10)break;let y=i.readUInt16BE(f)&16383,{name:w}=v$(i,y,n+1);if(w)r.push(w);f+=2;break}if(f++,f+l>i.length)break;r.push(i.subarray(f,f+l).toString("ascii")),f+=l}return{name:r.join("."),newOffset:f}}function jC(i,t){let{name:n,newOffset:r}=v$(i,t),f=i.readUInt16BE(r),c=i.readUInt16BE(r+2);return{question:{name:n,type:f,class:c},newOffset:r+4}}function tr(i){let t=i.split("."),n=[];for(let r of t)n.push(Buffer.from([r.length])),n.push(Buffer.from(r,"ascii"));return n.push(Buffer.from([0])),Buffer.concat(n)}function NC(i,t,n){let r=[],f=Buffer.alloc(12);f.writeUInt16BE(i,0),f.writeUInt16BE(33152,2),f.writeUInt16BE(1,4),f.writeUInt16BE(1,6),f.writeUInt16BE(0,8),f.writeUInt16BE(0,10),r.push(f),r.push(tr(t.name));let c=Buffer.alloc(4);c.writeUInt16BE(t.type,0),c.writeUInt16BE(t.class,2),r.push(c),r.push(tr(t.name));let l=Buffer.alloc(10);if(l.writeUInt16BE(t.type,0),l.writeUInt16BE(1,2),l.writeUInt32BE(300,4),t.type===1){l.writeUInt16BE(4,8),r.push(l);let y=n.split(".").map((w)=>Number.parseInt(w,10));r.push(Buffer.from(y))}else if(t.type===28)l.writeUInt16BE(16,8),r.push(l),r.push(Buffer.from([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]));else return f.writeUInt16BE(33155,2),f.writeUInt16BE(0,6),Buffer.concat([f,tr(t.name),c]);return Buffer.concat(r)}function RC(i,t){let n=[],r=Buffer.alloc(12);r.writeUInt16BE(i,0),r.writeUInt16BE(33155,2),r.writeUInt16BE(1,4),r.writeUInt16BE(0,6),r.writeUInt16BE(0,8),r.writeUInt16BE(0,10),n.push(r),n.push(tr(t.name));let f=Buffer.alloc(4);return f.writeUInt16BE(t.type,0),f.writeUInt16BE(t.class,2),n.push(f),Buffer.concat(n)}async function XC(i,t){if(Et.platform!=="darwin")return!1;let n=dl(i);if(n.length===0)return!1;if(Ni){for(let r of n)of.add(r);return Y("dns","DNS server already running — merged domains",t),!0}return of=new Set(n),new Promise((r)=>{Ni=d$.createSocket("udp4"),Ni.on("error",(f)=>{Y("dns",`DNS server error: ${f.message}`,t),Ni?.close(),Ni=null,r(!1)}),Ni.on("message",(f,c)=>{try{let l=Z$(f),{question:y}=jC(f,12);Y("dns",`Query for ${y.name} type ${y.type} from ${c.address}`,t);let w=y.name.toLowerCase(),u=!1;for(let $ of of)if(w===$||w.endsWith(`.${$}`)){u=!0;break}let h;if(u&&(y.type===1||y.type===28))h=NC(l.id,y,"127.0.0.1"),Y("dns",`Responding with localhost for ${y.name}`,t);else h=RC(l.id,y),Y("dns",`NXDOMAIN for ${y.name}`,t);Ni?.send(h,c.port,c.address)}catch(l){Y("dns",`Error processing DNS query: ${l}`,t)}}),Ni.on("listening",()=>{let f=Ni?.address();Y("dns",`DNS server listening on ${f?.address}:${f?.port}`,t),r(!0)});try{Ni.bind(pf,"127.0.0.1")}catch(f){Y("dns",`Failed to bind DNS server: ${f}`,t),r(!1)}})}function o$(i){if(Ni)Y("dns","Stopping DNS server",i),Ni.close(),Ni=null,of=new Set}function UW(){return Ni!==null}async function WC(i,t=500){let n=i.trim().toLowerCase().replace(/\.$/,"");if(!n)return!1;return new Promise((r)=>{let f=d$.createSocket("udp4"),c=setTimeout(()=>{f.close(),r(!1)},t);f.on("message",(y)=>{clearTimeout(c),f.close();try{let w=Z$(y);r(w.ancount>0)}catch{r(!1)}}),f.on("error",()=>{clearTimeout(c),f.close(),r(!1)});let l=SC(n,1);f.send(l,pf,"127.0.0.1",(y)=>{if(y)clearTimeout(c),f.close(),r(!1)})})}function SC(i,t){let n=Buffer.alloc(12);n.writeUInt16BE(1,0),n.writeUInt16BE(256,2),n.writeUInt16BE(1,4);let r=Buffer.concat([tr(i),Buffer.from([0,t,0,1])]);return Buffer.concat([n,r])}function aC(){return`${UC}
249
249
  nameserver 127.0.0.1
250
250
  port ${pf}
251
- `}function nr(i){return b$.join(P$,i)}function JC(i){return i.includes("127.0.0.1")&&i.includes(String(pf))}async function FC(i){try{return await D$.readFile(nr(i),"utf8")}catch(t){if(t.code==="ENOENT")return null;throw t}}async function Dl(i){if(Et.platform!=="darwin")return;let{execSudoSync:t,getSudoPassword:n,isProcessElevated:r}=await import("./chunk-22h4jf2c.js");if(!r()&&!n()){Y("dns","Cannot flush DNS cache without SUDO_PASSWORD",i);return}try{t("dscacheutil -flushcache"),t("killall -HUP mDNSResponder 2>/dev/null || true"),Y("dns","DNS cache flushed",i)}catch(f){Y("dns",`Could not flush DNS cache: ${f}`,i)}}function p$(i){if(!/^[a-z0-9.-]+$/.test(i))throw Error(`refusing unsafe resolver basename: ${JSON.stringify(i)}`)}async function IC(i,t){p$(i);let{execSudoSync:n}=await import("./chunk-22h4jf2c.js"),r=aC().replace(/\n/g,"\\n"),f=`bash -c 'mkdir -p ${P$} && printf "%b" "${r}" > ${nr(i)}'`;n(f),Y("dns",`Created ${nr(i)}`,t)}async function KC(i,t){p$(i);let{execSudoSync:n}=await import("./chunk-22h4jf2c.js");n(`rm -f ${nr(i)}`),Y("dns",`Removed ${nr(i)}`,t)}async function jW(i,t){return t1({domains:t??[],verbose:i})}async function _C(i,t){if(Et.platform!=="darwin")return!0;let{getSudoPassword:n,isProcessElevated:r}=await import("./chunk-22h4jf2c.js");if(!r()&&!n())return Y("dns","SUDO_PASSWORD not set, cannot create resolver files",t),!1;try{for(let f of i)await IC(f,t);return await Dl(t),!0}catch(f){return Y("dns",`Failed to create resolver file: ${f}`,t),!1}}async function bl(i,t){if(Et.platform!=="darwin")return;let{getSudoPassword:n,isProcessElevated:r}=await import("./chunk-22h4jf2c.js");if(!r()&&!n())return;try{for(let f of i)await KC(f,t);await Dl(t)}catch(f){Y("dns",`Failed to remove resolver files: ${f}`,t)}}async function i1(i){if(Et.platform!=="darwin")return[];let t=[];for(let n of L$){let r=await FC(n);if(r&&JC(r))await bl([n],i),t.push(n)}return t}async function t1(i){let t=i.rpxDir??ji(),n=dl(i.domains);if(n.length===0)return!1;let r=Vl(n),f=await XC(n,i.verbose);if(!f){let y=n[0];if(y&&await WC(y))f=!0;else Y("dns","Dev DNS server not available on 127.0.0.1:15353",i.verbose)}if(!f)return!1;if(!await _C(r,i.verbose))return!1;let l={version:Zf,resolvers:r,domains:n,ownerPid:i.ownerPid??Et.pid,updatedAt:new Date().toISOString()};return await k$(t,l),!0}async function ir(i,t={}){let n=i.map((w)=>w.to).filter(Boolean),r=t.rpxDir??ji(),f=Vl(n),y=((await vf(r))?.resolvers??[]).filter((w)=>!f.includes(w));if(y.length>0)await bl(y,t.verbose);if(f.length===0){o$(t.verbose),await kl(r);return}await t1({domains:n,rpxDir:r,verbose:t.verbose,ownerPid:t.ownerPid??Et.pid})}async function Nn(i={}){let t=i.rpxDir??ji();o$(i.verbose);let r=(await vf(t))?.resolvers??[];await bl(r,i.verbose),await i1(i.verbose),await kl(t)}async function NW(i){await Nn({verbose:i})}async function Rn(i={}){let t=i.rpxDir??ji(),n=await vf(t),r=n?.ownerPid!=null&&Ui(n.ownerPid);if(n&&!r){Y("dns",`reconcile: owner pid ${n.ownerPid} is gone — tearing down DNS`,i.verbose),await Nn(i);return}let f=await i1(i.verbose);if(f.length>0)Y("dns",`reconcile: removed legacy TLD resolvers: ${f.join(", ")}`,i.verbose);await Dl(i.verbose)}
251
+ `}function nr(i){return b$.join(P$,i)}function JC(i){return i.includes("127.0.0.1")&&i.includes(String(pf))}async function FC(i){try{return await D$.readFile(nr(i),"utf8")}catch(t){if(t.code==="ENOENT")return null;throw t}}async function Dl(i){if(Et.platform!=="darwin")return;let{execSudoSync:t,getSudoPassword:n,isProcessElevated:r}=await import("./chunk-xbct09d3.js");if(!r()&&!n()){Y("dns","Cannot flush DNS cache without SUDO_PASSWORD",i);return}try{t("dscacheutil -flushcache"),t("killall -HUP mDNSResponder 2>/dev/null || true"),Y("dns","DNS cache flushed",i)}catch(f){Y("dns",`Could not flush DNS cache: ${f}`,i)}}function p$(i){if(!/^[a-z0-9.-]+$/.test(i))throw Error(`refusing unsafe resolver basename: ${JSON.stringify(i)}`)}async function IC(i,t){p$(i);let{execSudoSync:n}=await import("./chunk-xbct09d3.js"),r=aC().replace(/\n/g,"\\n"),f=`bash -c 'mkdir -p ${P$} && printf "%b" "${r}" > ${nr(i)}'`;n(f),Y("dns",`Created ${nr(i)}`,t)}async function KC(i,t){p$(i);let{execSudoSync:n}=await import("./chunk-xbct09d3.js");n(`rm -f ${nr(i)}`),Y("dns",`Removed ${nr(i)}`,t)}async function jW(i,t){return t1({domains:t??[],verbose:i})}async function _C(i,t){if(Et.platform!=="darwin")return!0;let{getSudoPassword:n,isProcessElevated:r}=await import("./chunk-xbct09d3.js");if(!r()&&!n())return Y("dns","SUDO_PASSWORD not set, cannot create resolver files",t),!1;try{for(let f of i)await IC(f,t);return await Dl(t),!0}catch(f){return Y("dns",`Failed to create resolver file: ${f}`,t),!1}}async function bl(i,t){if(Et.platform!=="darwin")return;let{getSudoPassword:n,isProcessElevated:r}=await import("./chunk-xbct09d3.js");if(!r()&&!n())return;try{for(let f of i)await KC(f,t);await Dl(t)}catch(f){Y("dns",`Failed to remove resolver files: ${f}`,t)}}async function i1(i){if(Et.platform!=="darwin")return[];let t=[];for(let n of L$){let r=await FC(n);if(r&&JC(r))await bl([n],i),t.push(n)}return t}async function t1(i){let t=i.rpxDir??ji(),n=dl(i.domains);if(n.length===0)return!1;let r=Vl(n),f=await XC(n,i.verbose);if(!f){let y=n[0];if(y&&await WC(y))f=!0;else Y("dns","Dev DNS server not available on 127.0.0.1:15353",i.verbose)}if(!f)return!1;if(!await _C(r,i.verbose))return!1;let l={version:Zf,resolvers:r,domains:n,ownerPid:i.ownerPid??Et.pid,updatedAt:new Date().toISOString()};return await k$(t,l),!0}async function ir(i,t={}){let n=i.map((w)=>w.to).filter(Boolean),r=t.rpxDir??ji(),f=Vl(n),y=((await vf(r))?.resolvers??[]).filter((w)=>!f.includes(w));if(y.length>0)await bl(y,t.verbose);if(f.length===0){o$(t.verbose),await kl(r);return}await t1({domains:n,rpxDir:r,verbose:t.verbose,ownerPid:t.ownerPid??Et.pid})}async function Nn(i={}){let t=i.rpxDir??ji();o$(i.verbose);let r=(await vf(t))?.resolvers??[];await bl(r,i.verbose),await i1(i.verbose),await kl(t)}async function NW(i){await Nn({verbose:i})}async function Rn(i={}){let t=i.rpxDir??ji(),n=await vf(t),r=n?.ownerPid!=null&&Ui(n.ownerPid);if(n&&!r){Y("dns",`reconcile: owner pid ${n.ownerPid} is gone — tearing down DNS`,i.verbose),await Nn(i);return}let f=await i1(i.verbose);if(f.length>0)Y("dns",`reconcile: removed legacy TLD resolvers: ${f.join(", ")}`,i.verbose);await Dl(i.verbose)}
252
252
  export{J as a,Nh as b,UB as c,Qt as d,tl as e,nl as f,jB as g,NB as h,Di as i,At as j,rl as k,gn as l,fl as m,Rh as n,Mf as o,sn as p,Ln as q,cl as r,ul as s,Ih as t,Kh as u,hl as v,KR as w,_R as x,zR as y,zh as z,$l as A,Al as B,Tl as C,QR as D,Qh as E,Oh as F,Gh as G,Hh as H,Gf as I,xn as J,qh as K,El as L,sB as M,Lh as N,xh as O,xR as P,oh as Q,ph as R,Ee as S,Ye as T,Be as U,i$ as V,f$ as W,el as X,Cl as Y,c$ as Z,w$ as _,gf as $,ml as aa,u$ as ba,Ot as ca,je as da,Ul as ea,jl as fa,Nl as ga,Ne as ha,Xl as ia,We as ja,$$ as ka,sf as la,al as ma,A$ as na,ze as oa,Qe as pa,Oe as qa,Jl as ra,AX as sa,C$ as ta,Fl as ua,m$ as va,YX as wa,Wt as xa,Kl as ya,Ui as za,j$ as Aa,zl as Ba,se as Ca,Tt as Da,Dn as Ea,Vf as Fa,Ml as Ga,mn as Ha,W$ as Ia,S$ as Ja,J$ as Ka,on as La,_$ as Ma,cC as Na,lC as Oa,GX as Pa,HX as Qa,qX as Ra,gX as Sa,pn as Ta,Zf as Ua,L$ as Va,V$ as Wa,mC as Xa,Vl as Ya,dl as Za,pf as _a,UC as $a,XC as ab,o$ as bb,UW as cb,WC as db,nr as eb,JC as fb,jW as gb,i1 as hb,t1 as ib,ir as jb,Nn as kb,NW as lb,Rn as mb,ji as nb,Pf as ob,jn as pb,wC as qb,q$ as rb,Un as sb,wW as tb,BC as ub,uW as vb,hW as wb,$W as xb};
@@ -1 +1 @@
1
- import{$a as b,_a as a,ab as c,bb as d,cb as e,db as f,eb as g,fb as h,gb as i,hb as j,ib as k,jb as l,kb as m,lb as n,mb as o}from"./chunk-4bedpzty.js";import"./chunk-z86swbd8.js";export{m as tearDownDevelopmentDns,l as syncDevelopmentDnsFromRegistry,d as stopDnsServer,c as startDnsServer,i as setupResolver,k as setupDevelopmentDns,g as resolverFilePath,n as removeResolver,j as removeLegacyTldResolvers,o as reconcileStaleDevelopmentDns,f as isRpxDevelopmentDnsAnswering,e as isDnsServerRunning,h as contentLooksLikeRpxResolver,b as RPX_RESOLVER_MARKER,a as DNS_PORT};
1
+ import{$a as b,_a as a,ab as c,bb as d,cb as e,db as f,eb as g,fb as h,gb as i,hb as j,ib as k,jb as l,kb as m,lb as n,mb as o}from"./chunk-9amtxw74.js";import"./chunk-qfckr5a3.js";export{m as tearDownDevelopmentDns,l as syncDevelopmentDnsFromRegistry,d as stopDnsServer,c as startDnsServer,i as setupResolver,k as setupDevelopmentDns,g as resolverFilePath,n as removeResolver,j as removeLegacyTldResolvers,o as reconcileStaleDevelopmentDns,f as isRpxDevelopmentDnsAnswering,e as isDnsServerRunning,h as contentLooksLikeRpxResolver,b as RPX_RESOLVER_MARKER,a as DNS_PORT};