@shumai-one/shumai 0.5.2 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/{chunk-zf5cyxnt.js → chunk-03zkxckm.js} +1 -1
- package/bin/{chunk-2w6gve12.js → chunk-04nqnkzs.js} +3 -3
- package/bin/{chunk-rw5h0n0s.js → chunk-157axqz1.js} +1 -1
- package/bin/{chunk-w9z27p0m.js → chunk-1tesbv8w.js} +1 -1
- package/bin/{chunk-vzdgsfkf.js → chunk-24da4wg9.js} +1 -1
- package/bin/chunk-24nx3krz.js +2 -0
- package/bin/{chunk-twpc640e.js → chunk-26am2rzm.js} +1 -1
- package/bin/{chunk-8ayz61rc.js → chunk-2pt9h882.js} +3 -3
- package/bin/{chunk-mn108p93.js → chunk-2rrcdhkj.js} +1 -1
- package/bin/{chunk-ryepy5er.js → chunk-2w2bknn2.js} +4 -4
- package/bin/{chunk-ypkkfwfb.js → chunk-3ahax79y.js} +2 -2
- package/bin/{chunk-zdzkjp4q.js → chunk-3fjgf7eb.js} +2 -2
- package/bin/{chunk-rmvhyqyb.js → chunk-3wcvema0.js} +3 -3
- package/bin/{chunk-kvwec0p3.js → chunk-40tmh04g.js} +2 -2
- package/bin/chunk-45p7d22e.js +2 -0
- package/bin/chunk-461gcgrs.js +2 -0
- package/bin/{chunk-p0j4wpa5.js → chunk-4bc3gqmn.js} +1 -1
- package/bin/{chunk-8tzfcqtb.js → chunk-4nkwe7dz.js} +1 -1
- package/bin/{chunk-eqr0znmc.js → chunk-59ayg5am.js} +1 -1
- package/bin/{chunk-8zgq5sav.js → chunk-5ebb2pdf.js} +2 -2
- package/bin/{chunk-n76w2wcr.js → chunk-5y3kx4kk.js} +1 -1
- package/bin/{chunk-d2dgazjj.js → chunk-68xsb3t8.js} +1 -1
- package/bin/{chunk-n9vp9nbg.js → chunk-6hs63sva.js} +30 -30
- package/bin/{chunk-bpxw19ez.js → chunk-6pwf7qa6.js} +1 -1
- package/bin/{chunk-f5z3096k.js → chunk-6sq6dfa1.js} +2 -2
- package/bin/chunk-87secbzy.js +1 -0
- package/bin/chunk-8pykp70z.js +1 -0
- package/bin/{chunk-3pm6q6kg.js → chunk-8ts3xkme.js} +1 -1
- package/bin/{chunk-rza95y4z.js → chunk-909h3qzp.js} +2 -2
- package/bin/{chunk-0v9srsdz.js → chunk-929abwgr.js} +1 -1
- package/bin/{chunk-j53sjkxt.js → chunk-9ca8a5f2.js} +1 -1
- package/bin/{chunk-2pw7xcrn.js → chunk-9fyb95r5.js} +1 -1
- package/bin/{chunk-mneeg71d.js → chunk-axeq2pq5.js} +2 -2
- package/bin/{chunk-r249n1xe.js → chunk-b3tkvdfk.js} +2 -2
- package/bin/{chunk-9ggwc289.js → chunk-b6dbqs39.js} +1 -1
- package/bin/{chunk-w73v578p.js → chunk-b88tdt79.js} +2 -2
- package/bin/{chunk-19q13a80.js → chunk-bcyvxp1c.js} +4 -4
- package/bin/{chunk-7qvvf0yd.js → chunk-bn0taqr3.js} +2 -2
- package/bin/chunk-cb37q6t0.js +1 -0
- package/bin/chunk-cfqny70c.js +3 -0
- package/bin/{chunk-ffj9cq9y.js → chunk-cqnected.js} +1 -1
- package/bin/{chunk-98mg3dpd.js → chunk-cvfznrnt.js} +4 -4
- package/bin/{chunk-951r2rx1.js → chunk-d1q1tn36.js} +1 -1
- package/bin/{chunk-0asthrjf.js → chunk-d1rjpbgv.js} +2 -2
- package/bin/{chunk-81dawvn4.js → chunk-eshwjf91.js} +2 -2
- package/bin/{chunk-04avc4fn.js → chunk-fa9yq17g.js} +26 -26
- package/bin/{chunk-m6v8vt2b.js → chunk-fnkkwna8.js} +2 -2
- package/bin/{chunk-3q5qkfkc.js → chunk-fpjvr3qw.js} +1 -1
- package/bin/{chunk-ggfx2b0f.js → chunk-fsr83nb1.js} +1 -1
- package/bin/{chunk-kzr6ecke.js → chunk-fznchvm7.js} +1 -1
- package/bin/chunk-g2z0c39g.js +1 -0
- package/bin/{chunk-5vqbzsjv.js → chunk-gvcjqcjf.js} +1 -1
- package/bin/{chunk-0ge2mm8j.js → chunk-hbnpx0a5.js} +1 -1
- package/bin/{chunk-tvkekn4z.js → chunk-hgy9rqt1.js} +1 -1
- package/bin/chunk-hk659cg2.css +1 -0
- package/bin/{chunk-8ny7wvzb.js → chunk-hn2g40r6.js} +1 -1
- package/bin/{chunk-0y4zq3y4.js → chunk-hsx4pns6.js} +1 -1
- package/bin/{chunk-bbcmhcvc.js → chunk-hy5ncvpf.js} +2 -2
- package/bin/{chunk-5nqvqvqp.js → chunk-j420aqk8.js} +3 -3
- package/bin/{chunk-t1yamxgk.js → chunk-k3ds96cb.js} +1 -1
- package/bin/{chunk-dppfek34.js → chunk-m41tbrvt.js} +2 -2
- package/bin/chunk-m9f21ye9.js +1 -0
- package/bin/chunk-md7pgk86.js +2 -0
- package/bin/chunk-me3zmpj5.js +14 -0
- package/bin/chunk-mg6sybt0.js +1 -0
- package/bin/{chunk-jgfye6nf.js → chunk-mzme3m82.js} +1 -1
- package/bin/{chunk-ce0bhc72.js → chunk-n08h1jgx.js} +1 -1
- package/bin/{chunk-ae6zgjhd.js → chunk-ncv8v6mj.js} +2 -2
- package/bin/{chunk-cx32wsa1.js → chunk-nmd1901j.js} +1 -1
- package/bin/{chunk-wnqxyqrg.js → chunk-np39aknv.js} +2 -2
- package/bin/{chunk-dche0gy0.js → chunk-p7zw53ep.js} +1 -1
- package/bin/{chunk-xr2v0d6y.js → chunk-ppb4aj0y.js} +4 -4
- package/bin/{chunk-15vsw36h.js → chunk-pwq6dbb5.js} +5 -5
- package/bin/chunk-q1gfypy3.js +2 -0
- package/bin/{chunk-0j22699g.js → chunk-q4qqmes7.js} +2 -2
- package/bin/{chunk-vm2pz2hm.js → chunk-q7t5zs7n.js} +2 -2
- package/bin/{chunk-e439kt05.js → chunk-qcpeefhr.js} +1 -1
- package/bin/{chunk-6rn094yj.js → chunk-qjdvs1s5.js} +1 -1
- package/bin/{chunk-9zgqjdx1.js → chunk-qqapw198.js} +2 -2
- package/bin/chunk-qx553512.js +211 -0
- package/bin/chunk-r3s1x5wp.js +1 -0
- package/bin/{chunk-rtaya5wc.js → chunk-rh8dy99a.js} +2 -2
- package/bin/{chunk-5rzxekn4.js → chunk-s0vfj06y.js} +1 -1
- package/bin/{chunk-4zksqvwj.js → chunk-s6g2mzpn.js} +2 -2
- package/bin/{chunk-zckxc8m6.js → chunk-s9sf37dv.js} +2 -2
- package/bin/{chunk-19jpn3r6.js → chunk-scvepfv8.js} +1 -1
- package/bin/chunk-sjbvt3wa.js +2 -0
- package/bin/{chunk-mn208vrv.js → chunk-srmx5z3v.js} +2 -2
- package/bin/{chunk-r776bhsg.js → chunk-srv5kvm4.js} +1 -1
- package/bin/{chunk-qmrg2jhs.js → chunk-t1h12r3q.js} +5 -5
- package/bin/{chunk-gvas3xkp.js → chunk-t6myw0jf.js} +1 -1
- package/bin/{chunk-z8e4wc59.js → chunk-t8jfp3vx.js} +1 -1
- package/bin/{chunk-15w79661.js → chunk-tqdde9bj.js} +1 -1
- package/bin/chunk-vk9ecq8n.js +2 -0
- package/bin/{chunk-d5hbzp7t.js → chunk-vsnq4381.js} +1 -1
- package/bin/{chunk-1nvj833s.js → chunk-w4adkd0a.js} +5 -5
- package/bin/{chunk-qxscgcn9.js → chunk-wbmqbpgm.js} +1 -1
- package/bin/{chunk-v034sfw8.js → chunk-wperd2h9.js} +2 -2
- package/bin/{chunk-y2dhf3p0.js → chunk-xbw7ffrz.js} +2 -2
- package/bin/{chunk-9bakwac0.js → chunk-xdrpahym.js} +4 -4
- package/bin/{chunk-6jkjx0n2.js → chunk-xfmnfcv2.js} +3 -3
- package/bin/chunk-xhngtwn9.js +1 -0
- package/bin/chunk-xjnehexk.js +2 -0
- package/bin/chunk-xzb0t8mx.js +1 -0
- package/bin/{chunk-k3prp6c6.js → chunk-y5h5d5gx.js} +4 -4
- package/bin/{chunk-wwkhskce.js → chunk-y6xyc4wp.js} +2 -2
- package/bin/{chunk-93p27bbm.js → chunk-zpk87b33.js} +5 -5
- package/bin/{chunk-asy868kq.js → chunk-zq5j9wsc.js} +1 -1
- package/bin/{chunk-grjek810.js → chunk-zsg61vr0.js} +2 -2
- package/bin/chunk-zts21ft7.js +1 -0
- package/bin/{chunk-cpj562n6.js → chunk-zzbn0b6c.js} +1 -1
- package/bin/shumai-app.html +1 -1
- package/bin/shumai-app.js +350 -333
- package/package.json +7 -7
- package/prisma/migrations/20261014054332_add_embedding_768/migration.sql +8 -0
- package/prisma/schema.prisma +10 -8
- package/bin/chunk-2gf95tj0.js +0 -1
- package/bin/chunk-2tk5w3jc.js +0 -1
- package/bin/chunk-301e7g3z.js +0 -2
- package/bin/chunk-3kmjbc3m.js +0 -2
- package/bin/chunk-3td60k1m.js +0 -2
- package/bin/chunk-42hrvk6k.js +0 -211
- package/bin/chunk-5bk16qdp.js +0 -2
- package/bin/chunk-8abhmarc.js +0 -2
- package/bin/chunk-965102pf.js +0 -3
- package/bin/chunk-acn3r2m2.js +0 -1
- package/bin/chunk-ce75dw3k.css +0 -1
- package/bin/chunk-d9qpgkek.js +0 -2
- package/bin/chunk-dv6p6n5e.js +0 -1
- package/bin/chunk-qb178ntp.js +0 -2
- package/bin/chunk-s4r6e6ms.js +0 -1
- package/bin/chunk-syjjke3f.js +0 -1
- package/bin/chunk-tgfxe0sb.js +0 -1
- package/bin/chunk-tjretpx8.js +0 -1
- package/bin/chunk-w4yjgez6.js +0 -14
- package/bin/chunk-wjcebkpb.js +0 -1
- package/bin/chunk-ws71fg50.js +0 -2
- package/bin/chunk-yfp3q4da.js +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ca,bo,ar,Ge,tn,Xt,qt}from"./chunk-k3prp6c6.js";import{w,G}from"./chunk-a8bymrv1.js";var Wo=w(function(hr){var{Readable:Gt}=G("stream"),{NoOpLogger:Wt,normalizeProvider:ge}=ar(),{HttpResponse:me,HttpRequest:F}=qt(),{parseRfc7231DateTime:$t,v4:Ae}=Xt(),{hasOwn:Vt}=bo(),ye=(e)=>e?.body instanceof Gt||typeof ReadableStream<"u"&&e?.body instanceof ReadableStream,zt=["AccessDeniedException","AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch"],Yt=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"],jt=["TimeoutError","RequestTimeout","RequestTimeoutException"],Kt=[500,502,503,504],Qt=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT"],Jt=["EHOSTUNREACH","ENETUNREACH","ENOTFOUND","EAI_AGAIN"],V=(e)=>e?.$retryable!==void 0,be=(e)=>zt.includes(e.name),Se=(e)=>e.$metadata?.clockSkewCorrected,_e=(e)=>{let i=new Set(["Failed to fetch","NetworkError when attempting to fetch resource","The Internet connection appears to be offline","Load failed","Network request failed"]);if(!(e&&e instanceof TypeError))return!1;return i.has(e.message)},T=(e)=>e.$metadata?.httpStatusCode===429||Yt.includes(e.name)||e.$retryable?.throttling==!0,R=(e,i=0)=>V(e)||Se(e)||e.name==="InvalidSignatureException"&&e.message?.includes("Signature expired")||jt.includes(e.name)||Qt.includes(e?.code||"")||Jt.includes(e?.code||"")||Kt.includes(e.$metadata?.httpStatusCode||0)||_e(e)||we(e)||e.cause!==void 0&&i<=10&&R(e.cause,i+1),Me=(e)=>{if(e.$metadata?.httpStatusCode!==void 0){let i=e.$metadata.httpStatusCode;if(500<=i&&i<=599&&!R(e))return!0;return!1}return!1};function we(e){return e.code==="ERR_HTTP2_STREAM_ERROR"&&e.message.includes("NGHTTP2_REFUSED_STREAM")}var ve=100,N=20000,Ee=500,I=500,Te=5,Re=10,z=1,D="amz-sdk-invocation-id",C="amz-sdk-request";function Pe(e,i){if(!me.isInstance(e))return;for(let a in e.headers){if(!Vt(e.headers,a))continue;let c=a.toLowerCase();if(c==="retry-after"){let s=e.headers[a],o=NaN;if(s.endsWith("GMT"))try{o=($t(s).getTime()-Date.now())/1000}catch(u){i?.trace?.("Failed to parse retry-after header"),i?.trace?.(u)}else if(s.match(/ GMT, ((\d+)|(\d+\.\d+))$/))o=Number(s.match(/ GMT, ([\d.]+)$/)?.[1]);else if(s.match(/^((\d+)|(\d+\.\d+))$/))o=Number(s);else if(Date.parse(s)>=Date.now())o=(Date.parse(s)-Date.now())/1000;if(isNaN(o))return;return new Date(Date.now()+o*1000)}else if(c==="x-amz-retry-after"){let s=e.headers[a],o=Number(s);if(isNaN(o)){i?.trace?.(`Failed to parse x-amz-retry-after=${s}`);return}return new Date(Date.now()+o)}}}function Zt(e,i){return Pe(e,i)}var xe=(e)=>{if(e instanceof Error)return e;if(e instanceof Object)return Object.assign(Error(),e);if(typeof e==="string")return Error(e);return Error(`AWS SDK error wrapper for ${e}`)};function Oe(e){return(i)=>(a,c)=>async(s)=>{let o=await i.retryStrategy(),u=await i.maxAttempts();if(tr(o)){o=o;let t=await o.acquireInitialRetryToken((c.partition_id??"")+(c.__retryLongPoll?":longpoll":"")),r=Error(),n=0,p=0,{request:d}=s,l=F.isInstance(d);if(l)d.headers[D]=Ae();while(!0)try{if(l)d.headers[C]=`attempt=${n+1}; max=${u}`;let{response:f,output:h}=await a(s);return o.recordSuccess(t),h.$metadata.attempts=n+1,h.$metadata.totalRetryDelay=p,{response:f,output:h}}catch(f){let h=rr(f,i.logger);if(r=xe(f),l&&e(d))throw(c.logger instanceof Wt?console:c.logger)?.warn("An error was encountered in a non-retryable streaming request."),r;try{t=await o.refreshRetryTokenForRetry(t,h)}catch(A){if(!r.$metadata)r.$metadata={};throw r.$metadata.attempts=n+1,r.$metadata.totalRetryDelay=p,r}n=t.getRetryCount();let g=t.getRetryDelay();if(p+=(t?.$retryLog?.acquisitionDelay??0)+g,g>0)await er(g)}}else{if(o=o,o?.mode)c.userAgent=[...c.userAgent||[],["cfg/retry-mode",o.mode]];return o.retry(a,s)}}}var er=(e)=>new Promise((i)=>setTimeout(i,e)),tr=(e)=>typeof e.acquireInitialRetryToken<"u"&&typeof e.refreshRetryTokenForRetry<"u"&&typeof e.recordSuccess<"u",rr=(e,i)=>{let a={error:e,errorType:nr(e)},c=Pe(e.$response,i);if(c)a.retryAfterHint=c;return a},nr=(e)=>{if(T(e))return"THROTTLING";if(R(e))return"TRANSIENT";if(Me(e))return"SERVER_ERROR";return"CLIENT_ERROR"},ke={name:"retryMiddleware",tags:["RETRY"],step:"finalizeRequest",priority:"high",override:!0};function ir(e){let i=Oe(e);return(a)=>({applyToStack:(c)=>{c.add(i(a),ke)}})}class P{static setTimeoutFn=(e,i)=>setTimeout(e,i);beta;minCapacity;minFillRate;scaleConstant;smooth;enabled=!1;availableTokens=0;lastMaxRate=0;measuredTxRate=0;requestCount=0;fillRate;lastThrottleTime;lastTimestamp=0;lastTxRateBucket;maxCapacity;timeWindow=0;constructor(e){this.beta=e?.beta??0.7,this.minCapacity=e?.minCapacity??1,this.minFillRate=e?.minFillRate??0.5,this.scaleConstant=e?.scaleConstant??0.4,this.smooth=e?.smooth??0.8,this.lastThrottleTime=this.getCurrentTimeInSeconds(),this.lastTxRateBucket=Math.floor(this.getCurrentTimeInSeconds()),this.fillRate=this.minFillRate,this.maxCapacity=this.minCapacity}async getSendToken(){return this.acquireTokenBucket(1)}updateClientSendingRate(e){let i;this.updateMeasuredRate();let a=e;if(a?.errorType==="THROTTLING"||T(a?.error??e)){let o=!this.enabled?this.measuredTxRate:Math.min(this.measuredTxRate,this.fillRate);this.lastMaxRate=o,this.calculateTimeWindow(),this.lastThrottleTime=this.getCurrentTimeInSeconds(),i=this.cubicThrottle(o),this.enableTokenBucket()}else this.calculateTimeWindow(),i=this.cubicSuccess(this.getCurrentTimeInSeconds());let s=Math.min(i,2*this.measuredTxRate);this.updateTokenBucketRate(s)}getCurrentTimeInSeconds(){return Date.now()/1000}async acquireTokenBucket(e){if(!this.enabled)return;this.refillTokenBucket();while(e>this.availableTokens){let i=(e-this.availableTokens)/this.fillRate*1000;await new Promise((a)=>P.setTimeoutFn(a,i)),this.refillTokenBucket()}this.availableTokens=this.availableTokens-e}refillTokenBucket(){let e=this.getCurrentTimeInSeconds();if(!this.lastTimestamp){this.lastTimestamp=e;return}let i=(e-this.lastTimestamp)*this.fillRate;this.availableTokens=Math.min(this.maxCapacity,this.availableTokens+i),this.lastTimestamp=e}calculateTimeWindow(){this.timeWindow=this.getPrecise(Math.pow(this.lastMaxRate*(1-this.beta)/this.scaleConstant,0.3333333333333333))}cubicThrottle(e){return this.getPrecise(e*this.beta)}cubicSuccess(e){return this.getPrecise(this.scaleConstant*Math.pow(e-this.lastThrottleTime-this.timeWindow,3)+this.lastMaxRate)}enableTokenBucket(){this.enabled=!0}updateTokenBucketRate(e){this.refillTokenBucket(),this.fillRate=Math.max(e,this.minFillRate),this.maxCapacity=Math.max(e,this.minCapacity),this.availableTokens=Math.min(this.availableTokens,this.maxCapacity)}updateMeasuredRate(){let e=this.getCurrentTimeInSeconds(),i=Math.floor(e*2)/2;if(this.requestCount++,i>this.lastTxRateBucket){let a=this.requestCount/(i-this.lastTxRateBucket);this.measuredTxRate=this.getPrecise(a*this.smooth+this.measuredTxRate*(1-this.smooth)),this.requestCount=0,this.lastTxRateBucket=i}}getPrecise(e){return parseFloat(e.toFixed(8))}}class m{static v2026=typeof process<"u"&&process.env?.SMITHY_NEW_RETRIES_2026==="true";static delay(){return m.v2026?50:100}static throttlingDelay(){return m.v2026?1000:500}static cost(){return m.v2026?14:5}static throttlingCost(){return m.v2026?5:10}static modifiedCostType(){return m.v2026?"THROTTLING":"TRANSIENT"}}class Fe{x=m.delay();computeNextBackoffDelay(e){let i=Math.random(),a=2,c=i*Math.min(this.x*2**e,N);return Math.floor(c)}setDelayBase(e){this.x=e}}class H{delay;count;cost;longPoll;$retryLog={acquisitionDelay:0};constructor(e,i,a,c){this.delay=e,this.count=i,this.cost=a,this.longPoll=c}getRetryCount(){return this.count}getRetryDelay(){return Math.min(N,this.delay)}getRetryCost(){return this.cost}isLongPoll(){return this.longPoll}}var S;(function(e){e.STANDARD="standard",e.ADAPTIVE="adaptive"})(S||(S={}));var M=3,Ie=S.STANDARD,k={incompatible:1,attempts:2,capacity:3},E=class{mode=S.STANDARD;retryBackoffStrategy;capacity=I;maxAttemptsProvider;baseDelay;constructor(i){if(typeof i==="number")this.maxAttemptsProvider=async()=>i;else if(typeof i==="function")this.maxAttemptsProvider=i;else if(i&&typeof i==="object")this.maxAttemptsProvider=async()=>i.maxAttempts,this.baseDelay=i.baseDelay,this.retryBackoffStrategy=i.backoff;this.maxAttemptsProvider??=async()=>M,this.baseDelay??=m.delay(),this.retryBackoffStrategy??=new Fe}async acquireInitialRetryToken(i){return new H(m.delay(),0,void 0,m.v2026&&i.includes(":longpoll"))}async refreshRetryTokenForRetry(i,a){let c=await this.getMaxAttempts(),s=this.retryCode(i,a,c),o=s===0,u=i.isLongPoll?.();if(o||u){let t=a.errorType;this.retryBackoffStrategy.setDelayBase(t==="THROTTLING"?m.throttlingDelay():this.baseDelay);let r=this.retryBackoffStrategy.computeNextBackoffDelay(i.getRetryCount()),n=r;if(a.retryAfterHint instanceof Date)n=Math.max(r,Math.min(a.retryAfterHint.getTime()-Date.now(),r+5000));if(!o){let p=m.v2026&&s===k.capacity&&u?n:0;if(p>0)await new Promise((d)=>setTimeout(d,p))}else{let p=this.getCapacityCost(t);this.capacity-=p;let d=new H(0,i.getRetryCount()+1,p,i.isLongPoll?.()??!1);return await new Promise((l)=>setTimeout(l,n)),d.$retryLog.acquisitionDelay=n,d}}throw Error("No retry token available")}recordSuccess(i){this.capacity=Math.min(I,this.capacity+(i.getRetryCost()??z))}getCapacity(){return this.capacity}async maxAttempts(){return this.maxAttemptsProvider()}async getMaxAttempts(){try{return await this.maxAttemptsProvider()}catch(i){return console.warn(`Max attempts provider could not resolve. Using default of ${M}`),M}}retryCode(i,a,c){let s=i.getRetryCount()+1,o=this.isRetryableError(a.errorType)?0:k.incompatible,u=s<c?0:k.attempts,t=this.capacity>=this.getCapacityCost(a.errorType)?0:k.capacity;return o||u||t}getCapacityCost(i){return i===m.modifiedCostType()?m.throttlingCost():m.cost()}isRetryableError(i){return i==="THROTTLING"||i==="TRANSIENT"}},Ne=class{mode=S.ADAPTIVE;rateLimiter;standardRetryStrategy;constructor(i,a){let{rateLimiter:c}=a??{};this.rateLimiter=c??new P,this.standardRetryStrategy=a?new E({maxAttempts:typeof i==="number"?i:3,...a}):new E(i)}async acquireInitialRetryToken(i){let a=await this.standardRetryStrategy.acquireInitialRetryToken(i);return await this.rateLimiter.getSendToken(),a}async refreshRetryTokenForRetry(i,a){this.rateLimiter.updateClientSendingRate(a);let c=await this.standardRetryStrategy.refreshRetryTokenForRetry(i,a);return await this.rateLimiter.getSendToken(),c}recordSuccess(i){this.rateLimiter.updateClientSendingRate({}),this.standardRetryStrategy.recordSuccess(i)}async maxAttemptsProvider(){return this.standardRetryStrategy.maxAttempts()}};class De extends E{computeNextBackoffDelay;constructor(e,i=m.delay()){super(typeof e==="function"?e:async()=>e);if(typeof i==="number")this.computeNextBackoffDelay=()=>i;else this.computeNextBackoffDelay=i;this.retryBackoffStrategy.computeNextBackoffDelay=(a)=>{let c=a+1;return this.computeNextBackoffDelay(c)}}}var sr=(e,i)=>{let a=e,c=z,s=Te,o=Re,u=e,t=(d)=>d.name==="TimeoutError"?o:s,r=(d)=>t(d)<=u;return Object.freeze({hasRetryTokens:r,retrieveRetryTokens:(d)=>{if(!r(d))throw Error("No retry token available");let l=t(d);return u-=l,l},releaseRetryTokens:(d)=>{u+=d??c,u=Math.min(u,a)}})},Ce=(e,i)=>Math.floor(Math.min(N,Math.random()*2**i*e)),Be=(e)=>{if(!e)return!1;return V(e)||be(e)||T(e)||R(e)};class Y{maxAttemptsProvider;retryDecider;delayDecider;retryQuota;mode=S.STANDARD;constructor(e,i){this.maxAttemptsProvider=e,this.retryDecider=i?.retryDecider??Be,this.delayDecider=i?.delayDecider??Ce,this.retryQuota=i?.retryQuota??sr(I)}shouldRetry(e,i,a){return i<a&&this.retryDecider(e)&&this.retryQuota.hasRetryTokens(e)}async getMaxAttempts(){let e;try{e=await this.maxAttemptsProvider()}catch(i){e=M}return e}async retry(e,i,a){let c,s=0,o=0,u=await this.getMaxAttempts(),{request:t}=i;if(F.isInstance(t))t.headers[D]=Ae();while(!0)try{if(F.isInstance(t))t.headers[C]=`attempt=${s+1}; max=${u}`;if(a?.beforeRequest)await a.beforeRequest();let{response:r,output:n}=await e(i);if(a?.afterRequest)a.afterRequest(r);return this.retryQuota.releaseRetryTokens(c),n.$metadata.attempts=s+1,n.$metadata.totalRetryDelay=o,{response:r,output:n}}catch(r){let n=xe(r);if(s++,this.shouldRetry(n,s,u)){c=this.retryQuota.retrieveRetryTokens(n);let p=this.delayDecider(T(n)?Ee:ve,s),d=or(n.$response),l=Math.max(d||0,p);o+=l,await new Promise((f)=>setTimeout(f,l));continue}if(!n.$metadata)n.$metadata={};throw n.$metadata.attempts=s,n.$metadata.totalRetryDelay=o,n}}}var or=(e)=>{if(!me.isInstance(e))return;let i=Object.keys(e.headers).find((o)=>o.toLowerCase()==="retry-after");if(!i)return;let a=e.headers[i],c=Number(a);if(!Number.isNaN(c))return Math.min(c*1000,20000);let s=new Date(a);return Math.min(s.getTime()-Date.now(),20000)};class Le extends Y{rateLimiter;constructor(e,i){let{rateLimiter:a,...c}=i??{};super(e,c);this.rateLimiter=a??new P,this.mode=S.ADAPTIVE}async retry(e,i){return super.retry(e,i,{beforeRequest:async()=>this.rateLimiter.getSendToken(),afterRequest:(a)=>{this.rateLimiter.updateClientSendingRate(a)}})}}var q="AWS_MAX_ATTEMPTS",W="max_attempts",cr={environmentVariableSelector:(e)=>{let i=e[q];if(!i)return;let a=parseInt(i);if(Number.isNaN(a))throw Error(`Environment variable ${q} mast be a number, got "${i}"`);return a},configFileSelector:(e)=>{let i=e[W];if(!i)return;let a=parseInt(i);if(Number.isNaN(a))throw Error(`Shared config file entry ${W} mast be a number, got "${i}"`);return a},default:M},ur=(e,i)=>{let{retryStrategy:a,retryMode:c}=e,{defaultMaxAttempts:s=M,defaultBaseDelay:o=m.delay()}=i??{},u=ge(e.maxAttempts??s),t=a?Promise.resolve(a):void 0,r=async()=>{let n=await u();if(await ge(c)()===S.ADAPTIVE)return new Ne(u,{maxAttempts:n,baseDelay:o});return new E({maxAttempts:n,baseDelay:o})};return Object.assign(e,{maxAttempts:u,retryStrategy:()=>t??=r()})},Ue="AWS_RETRY_MODE",He="retry_mode",dr={environmentVariableSelector:(e)=>e[Ue],configFileSelector:(e)=>e[He],default:Ie},qe=()=>(e)=>async(i)=>{let{request:a}=i;if(F.isInstance(a))delete a.headers[D],delete a.headers[C];return e(i)},We={name:"omitRetryHeadersMiddleware",tags:["RETRY","HEADERS","OMIT_RETRY_HEADERS"],relation:"before",toMiddleware:"awsAuthMiddleware",override:!0},lr=(e)=>({applyToStack:(i)=>{i.addRelativeTo(qe(),We)}}),fr=Oe(ye),pr=ir(ye);hr.AdaptiveRetryStrategy=Ne;hr.CONFIG_MAX_ATTEMPTS=W;hr.CONFIG_RETRY_MODE=He;hr.ConfiguredRetryStrategy=De;hr.DEFAULT_MAX_ATTEMPTS=M;hr.DEFAULT_RETRY_DELAY_BASE=ve;hr.DEFAULT_RETRY_MODE=Ie;hr.DefaultRateLimiter=P;hr.DeprecatedAdaptiveRetryStrategy=Le;hr.DeprecatedStandardRetryStrategy=Y;hr.ENV_MAX_ATTEMPTS=q;hr.ENV_RETRY_MODE=Ue;hr.INITIAL_RETRY_TOKENS=I;hr.INVOCATION_ID_HEADER=D;hr.MAXIMUM_RETRY_DELAY=N;hr.NODE_MAX_ATTEMPT_CONFIG_OPTIONS=cr;hr.NODE_RETRY_MODE_CONFIG_OPTIONS=dr;hr.NO_RETRY_INCREMENT=z;hr.REQUEST_HEADER=C;hr.RETRY_COST=Te;hr.RETRY_MODES=S;hr.Retry=m;hr.StandardRetryStrategy=E;hr.THROTTLING_RETRY_DELAY_BASE=Ee;hr.TIMEOUT_RETRY_COST=Re;hr.defaultDelayDecider=Ce;hr.defaultRetryDecider=Be;hr.getOmitRetryHeadersPlugin=lr;hr.getRetryAfterHint=Zt;hr.getRetryPlugin=pr;hr.isBrowserNetworkError=_e;hr.isClockSkewCorrectedError=Se;hr.isClockSkewError=be;hr.isNodeJsHttp2TransientError=we;hr.isRetryableByTrait=V;hr.isServerError=Me;hr.isThrottlingError=T;hr.isTransientError=R;hr.omitRetryHeadersMiddleware=qe;hr.omitRetryHeadersMiddlewareOptions=We;hr.resolveRetryConfig=ur;hr.retryMiddleware=fr;hr.retryMiddlewareOptions=ke});var yo=w(function(Mn){var{getSmithyContext:j,hasOwn:on}=bo();Mn.getSmithyContext=j;var{HttpRequest:K}=qt(),{requestBuilder:an}=qt();Mn.requestBuilder=an;var{HttpApiKeyAuthLocation:$e}=Ca(),cn=(e,i)=>{if(!i||i.length===0)return e;let a=[];for(let c of i)for(let s of e)if(s.schemeId.split("#")[1]===c)a.push(s);for(let c of e)if(!a.find(({schemeId:s})=>s===c.schemeId))a.push(c);return a};function un(e){let i=new Map;for(let a of e)i.set(a.schemeId,a);return i}var X=(e,i)=>(a,c)=>async(s)=>{let o=e.httpAuthSchemeProvider(await i.httpAuthSchemeParametersProvider(e,c,s.input)),u=e.authSchemePreference?await e.authSchemePreference():[],t=cn(o,u),r=un(e.httpAuthSchemes),n=j(c),p=[];for(let d of t){let l=r.get(d.schemeId);if(!l){p.push(`HttpAuthScheme \`${d.schemeId}\` was not enabled for this service.`);continue}let f=l.identityProvider(await i.identityProviderConfigProvider(e));if(!f){p.push(`HttpAuthScheme \`${d.schemeId}\` did not have an IdentityProvider configured.`);continue}let{identityProperties:h={},signingProperties:g={}}=d.propertiesExtractor?.(e,c)||{};d.identityProperties=Object.assign(d.identityProperties||{},h),d.signingProperties=Object.assign(d.signingProperties||{},g),n.selectedHttpAuthScheme={httpAuthOption:d,identity:await f(d.identityProperties),signer:l.signer};break}if(!n.selectedHttpAuthScheme)throw Error(p.join(`
|
|
3
|
-
`));return a(s)},Ve={step:"serialize",tags:["HTTP_AUTH_SCHEME"],name:"httpAuthSchemeMiddleware",override:!0,relation:"before",toMiddleware:"endpointV2Middleware"},dn=(e,{httpAuthSchemeParametersProvider:i,identityProviderConfigProvider:a})=>({applyToStack:(c)=>{c.addRelativeTo(X(e,{httpAuthSchemeParametersProvider:i,identityProviderConfigProvider:a}),Ve)}}),ze={step:"serialize",tags:["HTTP_AUTH_SCHEME"],name:"httpAuthSchemeMiddleware",override:!0,relation:"before",toMiddleware:"serializerMiddleware"},ln=(e,{httpAuthSchemeParametersProvider:i,identityProviderConfigProvider:a})=>({applyToStack:(c)=>{c.addRelativeTo(X(e,{httpAuthSchemeParametersProvider:i,identityProviderConfigProvider:a}),ze)}}),fn=(e)=>(i)=>{throw i},pn=(e,i)=>{},Ye=(e)=>(i,a)=>async(c)=>{if(!K.isInstance(c.request))return i(c);let o=j(a).selectedHttpAuthScheme;if(!o)throw Error("No HttpAuthScheme was selected: unable to sign request");let{httpAuthOption:{signingProperties:u={}},identity:t,signer:r}=o,n=await i({...c,request:await r.sign(c.request,t,u)}).catch((r.errorHandler||fn)(u));return(r.successHandler||pn)(n.response,u),n},je={step:"finalizeRequest",tags:["HTTP_SIGNING"],name:"httpSigningMiddleware",aliases:["apiKeyMiddleware","tokenMiddleware","awsAuthMiddleware"],override:!0,relation:"after",toMiddleware:"retryMiddleware"},hn=(e)=>({applyToStack:(i)=>{i.addRelativeTo(Ye(),je)}}),gn=(e)=>{if(typeof e==="function")return e;let i=Promise.resolve(e);return()=>i},mn=async(e,i,a,c=(o)=>o,...s)=>{let o=new e(a);return o=c(o)??o,await i.send(o,...s)};function An(e,i,a,c,s){return async function*(u,t,...r){let n=t,p=u.startingToken??n[a],d=!0,l;while(d){if(n[a]=p,s)n[s]=n[s]??u.pageSize;if(u.client instanceof e)l=await mn(i,u.client,t,u.withCommand,...r);else throw Error(`Invalid client, expected instance of ${e.name}`);yield l;let f=p;p=yn(l,c),d=!!(p&&(!u.stopOnSameToken||p!==f))}return}}var yn=(e,i)=>{let a=e,c=i.split(".");for(let s of c){if(!a||typeof a!=="object")return;a=a[s]}return a};function bn(e,i,a){if(!e.__smithy_context)e.__smithy_context={features:{}};else if(!e.__smithy_context.features)e.__smithy_context.features={};e.__smithy_context.features[i]=a}class Ke{authSchemes=new Map;constructor(e){for(let i in e){if(!on(e,i))continue;let a=e[i];if(a!==void 0)this.authSchemes.set(i,a)}}getIdentityProvider(e){return this.authSchemes.get(e)}}class Xe{async sign(e,i,a){if(!a)throw Error("request could not be signed with `apiKey` since the `name` and `in` signer properties are missing");if(!a.name)throw Error("request could not be signed with `apiKey` since the `name` signer property is missing");if(!a.in)throw Error("request could not be signed with `apiKey` since the `in` signer property is missing");if(!i.apiKey)throw Error("request could not be signed with `apiKey` since the `apiKey` is not defined");let c=K.clone(e);if(a.in===$e.QUERY)c.query[a.name]=i.apiKey;else if(a.in===$e.HEADER)c.headers[a.name]=a.scheme?`${a.scheme} ${i.apiKey}`:i.apiKey;else throw Error("request can only be signed with `apiKey` locations `query` or `header`, but found: `"+a.in+"`");return c}}class Qe{async sign(e,i,a){let c=K.clone(e);if(!i.token)throw Error("request could not be signed with `token` since the `token` is not defined");return c.headers.Authorization=`Bearer ${i.token}`,c}}class Je{async sign(e,i,a){return e}}var Ze=(e)=>function(a){return tt(a)&&a.expiration.getTime()-Date.now()<e},et=300000,Sn=Ze(et),tt=(e)=>e.expiration!==void 0,_n=(e,i,a)=>{if(e===void 0)return;let c=typeof e!=="function"?async()=>Promise.resolve(e):e,s,o,u,t=!1,r=async(n)=>{if(!o)o=c(n);try{s=await o,u=!0,t=!1}finally{o=void 0}return s};if(i===void 0)return async(n)=>{if(!u||n?.forceRefresh)s=await r(n);return s};return async(n)=>{if(!u||n?.forceRefresh)s=await r(n);if(t)return s;if(!a(s))return t=!0,s;if(i(s))return await r(n),s;return s}};Mn.DefaultIdentityProviderConfig=Ke;Mn.EXPIRATION_MS=et;Mn.HttpApiKeyAuthSigner=Xe;Mn.HttpBearerAuthSigner=Qe;Mn.NoAuthSigner=Je;Mn.createIsIdentityExpiredFunction=Ze;Mn.createPaginator=An;Mn.doesIdentityRequireRefresh=tt;Mn.getHttpAuthSchemeEndpointRuleSetPlugin=dn;Mn.getHttpAuthSchemePlugin=ln;Mn.getHttpSigningPlugin=hn;Mn.httpAuthSchemeEndpointRuleSetMiddlewareOptions=Ve;Mn.httpAuthSchemeMiddleware=X;Mn.httpAuthSchemeMiddlewareOptions=ze;Mn.httpSigningMiddleware=Ye;Mn.httpSigningMiddlewareOptions=je;Mn.isIdentityExpired=Sn;Mn.memoizeIdentityProvider=_n;Mn.normalizeProvider=gn;Mn.setFeature=bn});var nt=w(function(Vn){var _={REQUEST_ID:Symbol.for("_AWS_LAMBDA_REQUEST_ID"),X_RAY_TRACE_ID:Symbol.for("_AWS_LAMBDA_X_RAY_TRACE_ID"),TENANT_ID:Symbol.for("_AWS_LAMBDA_TENANT_ID"),TRACEPARENT:Symbol.for("_AWS_LAMBDA_TRACEPARENT"),TRACESTATE:Symbol.for("_AWS_LAMBDA_TRACESTATE"),BAGGAGE:Symbol.for("_AWS_LAMBDA_BAGGAGE")},Q=["true","1"].includes(process.env?.AWS_LAMBDA_NODEJS_NO_GLOBAL_AWSLAMBDA??"");if(!Q)globalThis.awslambda=globalThis.awslambda||{};class B{static PROTECTED_KEYS=_;isProtectedKey(e){return Object.values(_).includes(e)}getRequestId(){return this.get(_.REQUEST_ID)??"-"}getXRayTraceId(){return this.get(_.X_RAY_TRACE_ID)}getTenantId(){return this.get(_.TENANT_ID)}getTraceparent(){return this.get(_.TRACEPARENT)}getTracestate(){return this.get(_.TRACESTATE)}getBaggage(){return this.get(_.BAGGAGE)}}class rt extends B{currentContext;getContext(){return this.currentContext}hasContext(){return this.currentContext!==void 0}get(e){return this.currentContext?.[e]}set(e,i){if(this.isProtectedKey(e))throw Error(`Cannot modify protected Lambda context field: ${String(e)}`);this.currentContext=this.currentContext||{},this.currentContext[e]=i}run(e,i){return this.currentContext=e,i()}}class Z extends B{als;static async create(){let e=new Z,i=await import("async_hooks");return e.als=new i.AsyncLocalStorage,e}getContext(){return this.als.getStore()}hasContext(){return this.als.getStore()!==void 0}get(e){return this.als.getStore()?.[e]}set(e,i){if(this.isProtectedKey(e))throw Error(`Cannot modify protected Lambda context field: ${String(e)}`);let a=this.als.getStore();if(!a)throw Error("No context available");a[e]=i}run(e,i){return this.als.run(e,i)}}Vn.InvokeStore=void 0;(function(e){let i=null;async function a(c){if(!i)i=(async()=>{let o=c===!0||"AWS_LAMBDA_MAX_CONCURRENCY"in process.env?await Z.create():new rt;if(!Q&&globalThis.awslambda?.InvokeStore)return globalThis.awslambda.InvokeStore;else if(!Q&&globalThis.awslambda)return globalThis.awslambda.InvokeStore=o,o;else return o})();return i}e.getInstanceAsync=a,e._testing=process.env.AWS_LAMBDA_BENCHMARK_MODE==="1"?{reset:()=>{if(i=null,globalThis.awslambda?.InvokeStore)delete globalThis.awslambda.InvokeStore;globalThis.awslambda={InvokeStore:void 0}}}:void 0})(Vn.InvokeStore||(Vn.InvokeStore={}));Vn.InvokeStoreBase=B});var it=w(function(x,ee){(function(e,i){typeof x=="object"&&typeof ee=="object"?ee.exports=i():typeof define=="function"&&define.amd?define([],i):typeof x=="object"?x.bowser=i():e.bowser=i()})(x,function(){return function(e){var i={};function a(c){if(i[c])return i[c].exports;var s=i[c]={i:c,l:!1,exports:{}};return e[c].call(s.exports,s,s.exports,a),s.l=!0,s.exports}return a.m=e,a.c=i,a.d=function(c,s,o){a.o(c,s)||Object.defineProperty(c,s,{enumerable:!0,get:o})},a.r=function(c){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})},a.t=function(c,s){if(1&s&&(c=a(c)),8&s)return c;if(4&s&&typeof c=="object"&&c&&c.__esModule)return c;var o=Object.create(null);if(a.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:c}),2&s&&typeof c!="string")for(var u in c)a.d(o,u,function(t){return c[t]}.bind(null,u));return o},a.n=function(c){var s=c&&c.__esModule?function(){return c.default}:function(){return c};return a.d(s,"a",s),s},a.o=function(c,s){return Object.prototype.hasOwnProperty.call(c,s)},a.p="",a(a.s=90)}({17:function(e,i,a){i.__esModule=!0,i.default=void 0;var c=a(18),s=function(){function o(){}return o.getFirstMatch=function(u,t){var r=t.match(u);return r&&r.length>0&&r[1]||""},o.getSecondMatch=function(u,t){var r=t.match(u);return r&&r.length>1&&r[2]||""},o.matchAndReturnConst=function(u,t,r){if(u.test(t))return r},o.getWindowsVersionName=function(u){switch(u){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},o.getMacOSVersionName=function(u){var t=u.split(".").splice(0,2).map(function(p){return parseInt(p,10)||0});t.push(0);var r=t[0],n=t[1];if(r===10)switch(n){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}switch(r){case 11:return"Big Sur";case 12:return"Monterey";case 13:return"Ventura";case 14:return"Sonoma";case 15:return"Sequoia";default:return}},o.getAndroidVersionName=function(u){var t=u.split(".").splice(0,2).map(function(r){return parseInt(r,10)||0});if(t.push(0),!(t[0]===1&&t[1]<5))return t[0]===1&&t[1]<6?"Cupcake":t[0]===1&&t[1]>=6?"Donut":t[0]===2&&t[1]<2?"Eclair":t[0]===2&&t[1]===2?"Froyo":t[0]===2&&t[1]>2?"Gingerbread":t[0]===3?"Honeycomb":t[0]===4&&t[1]<1?"Ice Cream Sandwich":t[0]===4&&t[1]<4?"Jelly Bean":t[0]===4&&t[1]>=4?"KitKat":t[0]===5?"Lollipop":t[0]===6?"Marshmallow":t[0]===7?"Nougat":t[0]===8?"Oreo":t[0]===9?"Pie":void 0},o.getVersionPrecision=function(u){return u.split(".").length},o.compareVersions=function(u,t,r){r===void 0&&(r=!1);var n=o.getVersionPrecision(u),p=o.getVersionPrecision(t),d=Math.max(n,p),l=0,f=o.map([u,t],function(h){var g=d-o.getVersionPrecision(h),A=h+Array(g+1).join(".0");return o.map(A.split("."),function(v){return Array(20-v.length).join("0")+v}).reverse()});for(r&&(l=d-Math.min(n,p)),d-=1;d>=l;){if(f[0][d]>f[1][d])return 1;if(f[0][d]===f[1][d]){if(d===l)return 0;d-=1}else if(f[0][d]<f[1][d])return-1}},o.map=function(u,t){var r,n=[];if(Array.prototype.map)return Array.prototype.map.call(u,t);for(r=0;r<u.length;r+=1)n.push(t(u[r]));return n},o.find=function(u,t){var r,n;if(Array.prototype.find)return Array.prototype.find.call(u,t);for(r=0,n=u.length;r<n;r+=1){var p=u[r];if(t(p,r))return p}},o.assign=function(u){for(var t,r,n=u,p=arguments.length,d=Array(p>1?p-1:0),l=1;l<p;l++)d[l-1]=arguments[l];if(Object.assign)return Object.assign.apply(Object,[u].concat(d));var f=function(){var h=d[t];typeof h=="object"&&h!==null&&Object.keys(h).forEach(function(g){n[g]=h[g]})};for(t=0,r=d.length;t<r;t+=1)f();return u},o.getBrowserAlias=function(u){return c.BROWSER_ALIASES_MAP[u]},o.getBrowserTypeByAlias=function(u){return c.BROWSER_MAP[u]||""},o}();i.default=s,e.exports=i.default},18:function(e,i,a){i.__esModule=!0,i.ENGINE_MAP=i.OS_MAP=i.PLATFORMS_MAP=i.BROWSER_MAP=i.BROWSER_ALIASES_MAP=void 0,i.BROWSER_ALIASES_MAP={AmazonBot:"amazonbot","Amazon Silk":"amazon_silk","Android Browser":"android",BaiduSpider:"baiduspider",Bada:"bada",BingCrawler:"bingcrawler",Brave:"brave",BlackBerry:"blackberry","ChatGPT-User":"chatgpt_user",Chrome:"chrome",ClaudeBot:"claudebot",Chromium:"chromium",Diffbot:"diffbot",DuckDuckBot:"duckduckbot",DuckDuckGo:"duckduckgo",Electron:"electron",Epiphany:"epiphany",FacebookExternalHit:"facebookexternalhit",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot",GPTBot:"gptbot","Internet Explorer":"ie",InternetArchiveCrawler:"internetarchivecrawler","K-Meleon":"k_meleon",LibreWolf:"librewolf",Linespider:"linespider",Maxthon:"maxthon","Meta-ExternalAds":"meta_externalads","Meta-ExternalAgent":"meta_externalagent","Meta-ExternalFetcher":"meta_externalfetcher","Meta-WebIndexer":"meta_webindexer","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver","OAI-SearchBot":"oai_searchbot",Omgilibot:"omgilibot",Opera:"opera","Opera Coast":"opera_coast","Pale Moon":"pale_moon",PerplexityBot:"perplexitybot","Perplexity-User":"perplexity_user",PhantomJS:"phantomjs",PingdomBot:"pingdombot",Puffin:"puffin",QQ:"qq",QQLite:"qqlite",QupZilla:"qupzilla",Roku:"roku",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SlackBot:"slackbot",SeaMonkey:"seamonkey",Sleipnir:"sleipnir","Sogou Browser":"sogou",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat",YahooSlurp:"yahooslurp","Yandex Browser":"yandex",YandexBot:"yandexbot",YouBot:"youbot"},i.BROWSER_MAP={amazonbot:"AmazonBot",amazon_silk:"Amazon Silk",android:"Android Browser",baiduspider:"BaiduSpider",bada:"Bada",bingcrawler:"BingCrawler",blackberry:"BlackBerry",brave:"Brave",chatgpt_user:"ChatGPT-User",chrome:"Chrome",claudebot:"ClaudeBot",chromium:"Chromium",diffbot:"Diffbot",duckduckbot:"DuckDuckBot",duckduckgo:"DuckDuckGo",edge:"Microsoft Edge",electron:"Electron",epiphany:"Epiphany",facebookexternalhit:"FacebookExternalHit",firefox:"Firefox",focus:"Focus",generic:"Generic",google_search:"Google Search",googlebot:"Googlebot",gptbot:"GPTBot",ie:"Internet Explorer",internetarchivecrawler:"InternetArchiveCrawler",k_meleon:"K-Meleon",librewolf:"LibreWolf",linespider:"Linespider",maxthon:"Maxthon",meta_externalads:"Meta-ExternalAds",meta_externalagent:"Meta-ExternalAgent",meta_externalfetcher:"Meta-ExternalFetcher",meta_webindexer:"Meta-WebIndexer",mz:"MZ Browser",naver:"NAVER Whale Browser",oai_searchbot:"OAI-SearchBot",omgilibot:"Omgilibot",opera:"Opera",opera_coast:"Opera Coast",pale_moon:"Pale Moon",perplexitybot:"PerplexityBot",perplexity_user:"Perplexity-User",phantomjs:"PhantomJS",pingdombot:"PingdomBot",puffin:"Puffin",qq:"QQ Browser",qqlite:"QQ Browser Lite",qupzilla:"QupZilla",roku:"Roku",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",slackbot:"SlackBot",sleipnir:"Sleipnir",sogou:"Sogou Browser",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yahooslurp:"YahooSlurp",yandex:"Yandex Browser",yandexbot:"YandexBot",youbot:"YouBot"},i.PLATFORMS_MAP={bot:"bot",desktop:"desktop",mobile:"mobile",tablet:"tablet",tv:"tv"},i.OS_MAP={Android:"Android",Bada:"Bada",BlackBerry:"BlackBerry",ChromeOS:"Chrome OS",HarmonyOS:"HarmonyOS",iOS:"iOS",Linux:"Linux",MacOS:"macOS",PlayStation4:"PlayStation 4",Roku:"Roku",Tizen:"Tizen",WebOS:"WebOS",Windows:"Windows",WindowsPhone:"Windows Phone"},i.ENGINE_MAP={Blink:"Blink",EdgeHTML:"EdgeHTML",Gecko:"Gecko",Presto:"Presto",Trident:"Trident",WebKit:"WebKit"}},90:function(e,i,a){i.__esModule=!0,i.default=void 0;var c,s=(c=a(91))&&c.__esModule?c:{default:c},o=a(18);function u(r,n){for(var p=0;p<n.length;p++){var d=n[p];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(r,d.key,d)}}var t=function(){function r(){}var n,p,d;return r.getParser=function(l,f,h){if(f===void 0&&(f=!1),h===void 0&&(h=null),typeof l!="string")throw Error("UserAgent should be a string");return new s.default(l,f,h)},r.parse=function(l,f){return f===void 0&&(f=null),new s.default(l,f).getResult()},n=r,d=[{key:"BROWSER_MAP",get:function(){return o.BROWSER_MAP}},{key:"ENGINE_MAP",get:function(){return o.ENGINE_MAP}},{key:"OS_MAP",get:function(){return o.OS_MAP}},{key:"PLATFORMS_MAP",get:function(){return o.PLATFORMS_MAP}}],(p=null)&&u(n.prototype,p),d&&u(n,d),r}();i.default=t,e.exports=i.default},91:function(e,i,a){i.__esModule=!0,i.default=void 0;var c=r(a(92)),s=r(a(93)),o=r(a(94)),u=r(a(95)),t=r(a(17));function r(p){return p&&p.__esModule?p:{default:p}}var n=function(){function p(l,f,h){if(f===void 0&&(f=!1),h===void 0&&(h=null),l==null||l==="")throw Error("UserAgent parameter can't be empty");this._ua=l;var g=!1;typeof f=="boolean"?(g=f,this._hints=h):this._hints=f!=null&&typeof f=="object"?f:null,this.parsedResult={},g!==!0&&this.parse()}var d=p.prototype;return d.getHints=function(){return this._hints},d.hasBrand=function(l){if(!this._hints||!Array.isArray(this._hints.brands))return!1;var f=l.toLowerCase();return this._hints.brands.some(function(h){return h.brand&&h.brand.toLowerCase()===f})},d.getBrandVersion=function(l){if(this._hints&&Array.isArray(this._hints.brands)){var f=l.toLowerCase(),h=this._hints.brands.find(function(g){return g.brand&&g.brand.toLowerCase()===f});return h?h.version:void 0}},d.getUA=function(){return this._ua},d.test=function(l){return l.test(this._ua)},d.parseBrowser=function(){var l=this;this.parsedResult.browser={};var f=t.default.find(c.default,function(h){if(typeof h.test=="function")return h.test(l);if(Array.isArray(h.test))return h.test.some(function(g){return l.test(g)});throw Error("Browser's test function is not valid")});return f&&(this.parsedResult.browser=f.describe(this.getUA(),this)),this.parsedResult.browser},d.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},d.getBrowserName=function(l){return l?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""},d.getBrowserVersion=function(){return this.getBrowser().version},d.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},d.parseOS=function(){var l=this;this.parsedResult.os={};var f=t.default.find(s.default,function(h){if(typeof h.test=="function")return h.test(l);if(Array.isArray(h.test))return h.test.some(function(g){return l.test(g)});throw Error("Browser's test function is not valid")});return f&&(this.parsedResult.os=f.describe(this.getUA())),this.parsedResult.os},d.getOSName=function(l){var f=this.getOS().name;return l?String(f).toLowerCase()||"":f||""},d.getOSVersion=function(){return this.getOS().version},d.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},d.getPlatformType=function(l){l===void 0&&(l=!1);var f=this.getPlatform().type;return l?String(f).toLowerCase()||"":f||""},d.parsePlatform=function(){var l=this;this.parsedResult.platform={};var f=t.default.find(o.default,function(h){if(typeof h.test=="function")return h.test(l);if(Array.isArray(h.test))return h.test.some(function(g){return l.test(g)});throw Error("Browser's test function is not valid")});return f&&(this.parsedResult.platform=f.describe(this.getUA())),this.parsedResult.platform},d.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},d.getEngineName=function(l){return l?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""},d.parseEngine=function(){var l=this;this.parsedResult.engine={};var f=t.default.find(u.default,function(h){if(typeof h.test=="function")return h.test(l);if(Array.isArray(h.test))return h.test.some(function(g){return l.test(g)});throw Error("Browser's test function is not valid")});return f&&(this.parsedResult.engine=f.describe(this.getUA())),this.parsedResult.engine},d.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},d.getResult=function(){return t.default.assign({},this.parsedResult)},d.satisfies=function(l){var f=this,h={},g=0,A={},v=0;if(Object.keys(l).forEach(function(b){var O=l[b];typeof O=="string"?(A[b]=O,v+=1):typeof O=="object"&&(h[b]=O,g+=1)}),g>0){var ue=Object.keys(h),de=t.default.find(ue,function(b){return f.isOS(b)});if(de){var le=this.satisfies(h[de]);if(le!==void 0)return le}var fe=t.default.find(ue,function(b){return f.isPlatform(b)});if(fe){var pe=this.satisfies(h[fe]);if(pe!==void 0)return pe}}if(v>0){var Ht=Object.keys(A),he=t.default.find(Ht,function(b){return f.isBrowser(b,!0)});if(he!==void 0)return this.compareVersion(A[he])}},d.isBrowser=function(l,f){f===void 0&&(f=!1);var h=this.getBrowserName().toLowerCase(),g=l.toLowerCase(),A=t.default.getBrowserTypeByAlias(g);return f&&A&&(g=A.toLowerCase()),g===h},d.compareVersion=function(l){var f=[0],h=l,g=!1,A=this.getBrowserVersion();if(typeof A=="string")return l[0]===">"||l[0]==="<"?(h=l.substr(1),l[1]==="="?(g=!0,h=l.substr(2)):f=[],l[0]===">"?f.push(1):f.push(-1)):l[0]==="="?h=l.substr(1):l[0]==="~"&&(g=!0,h=l.substr(1)),f.indexOf(t.default.compareVersions(A,h,g))>-1},d.isOS=function(l){return this.getOSName(!0)===String(l).toLowerCase()},d.isPlatform=function(l){return this.getPlatformType(!0)===String(l).toLowerCase()},d.isEngine=function(l){return this.getEngineName(!0)===String(l).toLowerCase()},d.is=function(l,f){return f===void 0&&(f=!1),this.isBrowser(l,f)||this.isOS(l)||this.isPlatform(l)},d.some=function(l){var f=this;return l===void 0&&(l=[]),l.some(function(h){return f.is(h)})},p}();i.default=n,e.exports=i.default},92:function(e,i,a){i.__esModule=!0,i.default=void 0;var c,s=(c=a(17))&&c.__esModule?c:{default:c},o=/version\/(\d+(\.?_?\d+)+)/i,u=[{test:[/gptbot/i],describe:function(t){var r={name:"GPTBot"},n=s.default.getFirstMatch(/gptbot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/chatgpt-user/i],describe:function(t){var r={name:"ChatGPT-User"},n=s.default.getFirstMatch(/chatgpt-user\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/oai-searchbot/i],describe:function(t){var r={name:"OAI-SearchBot"},n=s.default.getFirstMatch(/oai-searchbot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe:function(t){var r={name:"ClaudeBot"},n=s.default.getFirstMatch(/(?:claudebot|claude-web|claude-user|claude-searchbot)\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/omgilibot/i,/webzio-extended/i],describe:function(t){var r={name:"Omgilibot"},n=s.default.getFirstMatch(/(?:omgilibot|webzio-extended)\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/diffbot/i],describe:function(t){var r={name:"Diffbot"},n=s.default.getFirstMatch(/diffbot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/perplexitybot/i],describe:function(t){var r={name:"PerplexityBot"},n=s.default.getFirstMatch(/perplexitybot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/perplexity-user/i],describe:function(t){var r={name:"Perplexity-User"},n=s.default.getFirstMatch(/perplexity-user\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/youbot/i],describe:function(t){var r={name:"YouBot"},n=s.default.getFirstMatch(/youbot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/meta-webindexer/i],describe:function(t){var r={name:"Meta-WebIndexer"},n=s.default.getFirstMatch(/meta-webindexer\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/meta-externalads/i],describe:function(t){var r={name:"Meta-ExternalAds"},n=s.default.getFirstMatch(/meta-externalads\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/meta-externalagent/i],describe:function(t){var r={name:"Meta-ExternalAgent"},n=s.default.getFirstMatch(/meta-externalagent\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/meta-externalfetcher/i],describe:function(t){var r={name:"Meta-ExternalFetcher"},n=s.default.getFirstMatch(/meta-externalfetcher\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/googlebot/i],describe:function(t){var r={name:"Googlebot"},n=s.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/linespider/i],describe:function(t){var r={name:"Linespider"},n=s.default.getFirstMatch(/(?:linespider)(?:-[-\w]+)?[\s/](\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/amazonbot/i],describe:function(t){var r={name:"AmazonBot"},n=s.default.getFirstMatch(/amazonbot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/bingbot/i],describe:function(t){var r={name:"BingCrawler"},n=s.default.getFirstMatch(/bingbot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/baiduspider/i],describe:function(t){var r={name:"BaiduSpider"},n=s.default.getFirstMatch(/baiduspider\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/duckduckbot/i],describe:function(t){var r={name:"DuckDuckBot"},n=s.default.getFirstMatch(/duckduckbot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/ia_archiver/i],describe:function(t){var r={name:"InternetArchiveCrawler"},n=s.default.getFirstMatch(/ia_archiver\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe:function(){return{name:"FacebookExternalHit"}}},{test:[/slackbot/i,/slack-imgProxy/i],describe:function(t){var r={name:"SlackBot"},n=s.default.getFirstMatch(/(?:slackbot|slack-imgproxy)(?:-[-\w]+)?[\s/](\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/yahoo!?[\s/]*slurp/i],describe:function(){return{name:"YahooSlurp"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe:function(){return{name:"YandexBot"}}},{test:[/pingdom/i],describe:function(){return{name:"PingdomBot"}}},{test:[/opera/i],describe:function(t){var r={name:"Opera"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/opr\/|opios/i],describe:function(t){var r={name:"Opera"},n=s.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/SamsungBrowser/i],describe:function(t){var r={name:"Samsung Internet for Android"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/Whale/i],describe:function(t){var r={name:"NAVER Whale Browser"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/PaleMoon/i],describe:function(t){var r={name:"Pale Moon"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:PaleMoon)[\s/](\d+(?:\.\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/MZBrowser/i],describe:function(t){var r={name:"MZ Browser"},n=s.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/focus/i],describe:function(t){var r={name:"Focus"},n=s.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/swing/i],describe:function(t){var r={name:"Swing"},n=s.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/coast/i],describe:function(t){var r={name:"Opera Coast"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(t){var r={name:"Opera Touch"},n=s.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/yabrowser/i],describe:function(t){var r={name:"Yandex Browser"},n=s.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/ucbrowser/i],describe:function(t){var r={name:"UC Browser"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/Maxthon|mxios/i],describe:function(t){var r={name:"Maxthon"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/epiphany/i],describe:function(t){var r={name:"Epiphany"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/puffin/i],describe:function(t){var r={name:"Puffin"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/sleipnir/i],describe:function(t){var r={name:"Sleipnir"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/k-meleon/i],describe:function(t){var r={name:"K-Meleon"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/micromessenger/i],describe:function(t){var r={name:"WeChat"},n=s.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/qqbrowser/i],describe:function(t){var r={name:/qqbrowserlite/i.test(t)?"QQ Browser Lite":"QQ Browser"},n=s.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/msie|trident/i],describe:function(t){var r={name:"Internet Explorer"},n=s.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/\sedg\//i],describe:function(t){var r={name:"Microsoft Edge"},n=s.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/edg([ea]|ios)/i],describe:function(t){var r={name:"Microsoft Edge"},n=s.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/vivaldi/i],describe:function(t){var r={name:"Vivaldi"},n=s.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/seamonkey/i],describe:function(t){var r={name:"SeaMonkey"},n=s.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/sailfish/i],describe:function(t){var r={name:"Sailfish"},n=s.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,t);return n&&(r.version=n),r}},{test:[/silk/i],describe:function(t){var r={name:"Amazon Silk"},n=s.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/phantom/i],describe:function(t){var r={name:"PhantomJS"},n=s.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/slimerjs/i],describe:function(t){var r={name:"SlimerJS"},n=s.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(t){var r={name:"BlackBerry"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/(web|hpw)[o0]s/i],describe:function(t){var r={name:"WebOS Browser"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/bada/i],describe:function(t){var r={name:"Bada"},n=s.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/tizen/i],describe:function(t){var r={name:"Tizen"},n=s.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/qupzilla/i],describe:function(t){var r={name:"QupZilla"},n=s.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/librewolf/i],describe:function(t){var r={name:"LibreWolf"},n=s.default.getFirstMatch(/(?:librewolf)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/firefox|iceweasel|fxios/i],describe:function(t){var r={name:"Firefox"},n=s.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/electron/i],describe:function(t){var r={name:"Electron"},n=s.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/sogoumobilebrowser/i,/metasr/i,/se 2\.[x]/i],describe:function(t){var r={name:"Sogou Browser"},n=s.default.getFirstMatch(/(?:sogoumobilebrowser)[\s/](\d+(\.?_?\d+)+)/i,t),p=s.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,t),d=s.default.getFirstMatch(/se ([\d.]+)x/i,t),l=n||p||d;return l&&(r.version=l),r}},{test:[/MiuiBrowser/i],describe:function(t){var r={name:"Miui"},n=s.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:function(t){return!!t.hasBrand("DuckDuckGo")||t.test(/\sDdg\/[\d.]+$/i)},describe:function(t,r){var n={name:"DuckDuckGo"};if(r){var p=r.getBrandVersion("DuckDuckGo");if(p)return n.version=p,n}var d=s.default.getFirstMatch(/\sDdg\/([\d.]+)$/i,t);return d&&(n.version=d),n}},{test:function(t){return t.hasBrand("Brave")},describe:function(t,r){var n={name:"Brave"};if(r){var p=r.getBrandVersion("Brave");if(p)return n.version=p,n}return n}},{test:[/chromium/i],describe:function(t){var r={name:"Chromium"},n=s.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/chrome|crios|crmo/i],describe:function(t){var r={name:"Chrome"},n=s.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/GSA/i],describe:function(t){var r={name:"Google Search"},n=s.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:function(t){var r=!t.test(/like android/i),n=t.test(/android/i);return r&&n},describe:function(t){var r={name:"Android Browser"},n=s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/playstation 4/i],describe:function(t){var r={name:"PlayStation 4"},n=s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/safari|applewebkit/i],describe:function(t){var r={name:"Safari"},n=s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/.*/i],describe:function(t){var r=t.search("\\(")!==-1?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:s.default.getFirstMatch(r,t),version:s.default.getSecondMatch(r,t)}}}];i.default=u,e.exports=i.default},93:function(e,i,a){i.__esModule=!0,i.default=void 0;var c,s=(c=a(17))&&c.__esModule?c:{default:c},o=a(18),u=[{test:[/Roku\/DVP/],describe:function(t){var r=s.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,t);return{name:o.OS_MAP.Roku,version:r}}},{test:[/windows phone/i],describe:function(t){var r=s.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,t);return{name:o.OS_MAP.WindowsPhone,version:r}}},{test:[/windows /i],describe:function(t){var r=s.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,t),n=s.default.getWindowsVersionName(r);return{name:o.OS_MAP.Windows,version:r,versionName:n}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(t){var r={name:o.OS_MAP.iOS},n=s.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,t);return n&&(r.version=n),r}},{test:[/macintosh/i],describe:function(t){var r=s.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,t).replace(/[_\s]/g,"."),n=s.default.getMacOSVersionName(r),p={name:o.OS_MAP.MacOS,version:r};return n&&(p.versionName=n),p}},{test:[/(ipod|iphone|ipad)/i],describe:function(t){var r=s.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,t).replace(/[_\s]/g,".");return{name:o.OS_MAP.iOS,version:r}}},{test:[/OpenHarmony/i],describe:function(t){var r=s.default.getFirstMatch(/OpenHarmony\s+(\d+(\.\d+)*)/i,t);return{name:o.OS_MAP.HarmonyOS,version:r}}},{test:function(t){var r=!t.test(/like android/i),n=t.test(/android/i);return r&&n},describe:function(t){var r=s.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,t),n=s.default.getAndroidVersionName(r),p={name:o.OS_MAP.Android,version:r};return n&&(p.versionName=n),p}},{test:[/(web|hpw)[o0]s/i],describe:function(t){var r=s.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,t),n={name:o.OS_MAP.WebOS};return r&&r.length&&(n.version=r),n}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(t){var r=s.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,t)||s.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,t)||s.default.getFirstMatch(/\bbb(\d+)/i,t);return{name:o.OS_MAP.BlackBerry,version:r}}},{test:[/bada/i],describe:function(t){var r=s.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,t);return{name:o.OS_MAP.Bada,version:r}}},{test:[/tizen/i],describe:function(t){var r=s.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,t);return{name:o.OS_MAP.Tizen,version:r}}},{test:[/linux/i],describe:function(){return{name:o.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:o.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(t){var r=s.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,t);return{name:o.OS_MAP.PlayStation4,version:r}}}];i.default=u,e.exports=i.default},94:function(e,i,a){i.__esModule=!0,i.default=void 0;var c,s=(c=a(17))&&c.__esModule?c:{default:c},o=a(18),u=[{test:[/googlebot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Google"}}},{test:[/linespider/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Line"}}},{test:[/amazonbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Amazon"}}},{test:[/gptbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"OpenAI"}}},{test:[/chatgpt-user/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"OpenAI"}}},{test:[/oai-searchbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"OpenAI"}}},{test:[/baiduspider/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Baidu"}}},{test:[/bingbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Bing"}}},{test:[/duckduckbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"DuckDuckGo"}}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Anthropic"}}},{test:[/omgilibot/i,/webzio-extended/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Webz.io"}}},{test:[/diffbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Diffbot"}}},{test:[/perplexitybot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Perplexity AI"}}},{test:[/perplexity-user/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Perplexity AI"}}},{test:[/youbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"You.com"}}},{test:[/ia_archiver/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Internet Archive"}}},{test:[/meta-webindexer/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Meta"}}},{test:[/meta-externalads/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Meta"}}},{test:[/meta-externalagent/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Meta"}}},{test:[/meta-externalfetcher/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Meta"}}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Meta"}}},{test:[/slackbot/i,/slack-imgProxy/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Slack"}}},{test:[/yahoo/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Yahoo"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Yandex"}}},{test:[/pingdom/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Pingdom"}}},{test:[/huawei/i],describe:function(t){var r=s.default.getFirstMatch(/(can-l01)/i,t)&&"Nova",n={type:o.PLATFORMS_MAP.mobile,vendor:"Huawei"};return r&&(n.model=r),n}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet}}},{test:function(t){var r=t.test(/ipod|iphone/i),n=t.test(/like (ipod|iphone)/i);return r&&!n},describe:function(t){var r=s.default.getFirstMatch(/(ipod|iphone)/i,t);return{type:o.PLATFORMS_MAP.mobile,vendor:"Apple",model:r}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/Nokia/i],describe:function(t){var r=s.default.getFirstMatch(/Nokia\s+([0-9]+(\.[0-9]+)?)/i,t),n={type:o.PLATFORMS_MAP.mobile,vendor:"Nokia"};return r&&(n.model=r),n}},{test:[/[^-]mobi/i],describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(t){return t.getBrowserName(!0)==="blackberry"},describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(t){return t.getBrowserName(!0)==="bada"},describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(t){return t.getBrowserName()==="windows phone"},describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(t){var r=Number(String(t.getOSVersion()).split(".")[0]);return t.getOSName(!0)==="android"&&r>=3},describe:function(){return{type:o.PLATFORMS_MAP.tablet}}},{test:function(t){return t.getOSName(!0)==="android"},describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:[/smart-?tv|smarttv/i],describe:function(){return{type:o.PLATFORMS_MAP.tv}}},{test:[/netcast/i],describe:function(){return{type:o.PLATFORMS_MAP.tv}}},{test:function(t){return t.getOSName(!0)==="macos"},describe:function(){return{type:o.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(t){return t.getOSName(!0)==="windows"},describe:function(){return{type:o.PLATFORMS_MAP.desktop}}},{test:function(t){return t.getOSName(!0)==="linux"},describe:function(){return{type:o.PLATFORMS_MAP.desktop}}},{test:function(t){return t.getOSName(!0)==="playstation 4"},describe:function(){return{type:o.PLATFORMS_MAP.tv}}},{test:function(t){return t.getOSName(!0)==="roku"},describe:function(){return{type:o.PLATFORMS_MAP.tv}}}];i.default=u,e.exports=i.default},95:function(e,i,a){i.__esModule=!0,i.default=void 0;var c,s=(c=a(17))&&c.__esModule?c:{default:c},o=a(18),u=[{test:function(t){return t.getBrowserName(!0)==="microsoft edge"},describe:function(t){if(/\sedg\//i.test(t))return{name:o.ENGINE_MAP.Blink};var r=s.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,t);return{name:o.ENGINE_MAP.EdgeHTML,version:r}}},{test:[/trident/i],describe:function(t){var r={name:o.ENGINE_MAP.Trident},n=s.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:function(t){return t.test(/presto/i)},describe:function(t){var r={name:o.ENGINE_MAP.Presto},n=s.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:function(t){var r=t.test(/gecko/i),n=t.test(/like gecko/i);return r&&!n},describe:function(t){var r={name:o.ENGINE_MAP.Gecko},n=s.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:o.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(t){var r={name:o.ENGINE_MAP.WebKit},n=s.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}}];i.default=u,e.exports=i.default}})})});var Dt=w(function(qi){var{Retry:Yn,RETRY_MODES:st}=Wo(),{HttpRequest:oe,parseUrl:jn}=qt(),{InvokeStore:ot}=nt(),{normalizeProvider:Kn}=yo(),{platform:Xn,release:Qn}=G("os"),{versions:te,env:at}=G("process"),{isValidHostLabel:Jn,isIpAddress:ft,customEndpointFunctions:Zn}=tn(),{EndpointError:ei,resolveEndpoint:ti}=tn();qi.EndpointError=ei;qi.isIpAddress=ft;qi.resolveEndpoint=ti;var{loadConfig:ri,NODE_REGION_CONFIG_OPTIONS:pt,NODE_REGION_CONFIG_FILE_OPTIONS:ht}=Ge(),{REGION_ENV_NAME:ni,REGION_INI_NAME:ii,resolveRegionConfig:si}=Ge();qi.NODE_REGION_CONFIG_FILE_OPTIONS=ht;qi.NODE_REGION_CONFIG_OPTIONS=pt;qi.REGION_ENV_NAME=ni;qi.REGION_INI_NAME=ii;qi.resolveRegionConfig=si;var U={warningEmitted:!1},oi=(e)=>{if(e&&!U.warningEmitted){if(process.env.AWS_SDK_JS_NODE_VERSION_SUPPORT_WARNING_DISABLED==="true"){U.warningEmitted=!0;return}let i=parseInt(e.substring(1,e.indexOf("."))),a=22;if(i<a)U.warningEmitted=!0,process.emitWarning(`NodeVersionSupportWarning: The AWS SDK for JavaScript (v3)
|
|
2
|
+
import{Ca,bo,sr,Ge,en,Xt,qt}from"./chunk-y5h5d5gx.js";import{w,G}from"./chunk-a8bymrv1.js";var Wo=w(function(hr){var{Readable:Gt}=G("stream"),{NoOpLogger:Wt,normalizeProvider:ge}=sr(),{HttpResponse:me,HttpRequest:F}=qt(),{parseRfc7231DateTime:$t,v4:Ae}=Xt(),{hasOwn:Vt}=bo(),ye=(e)=>e?.body instanceof Gt||typeof ReadableStream<"u"&&e?.body instanceof ReadableStream,zt=["AccessDeniedException","AuthFailure","InvalidSignatureException","RequestExpired","RequestInTheFuture","RequestTimeTooSkewed","SignatureDoesNotMatch"],Yt=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"],jt=["TimeoutError","RequestTimeout","RequestTimeoutException"],Kt=[500,502,503,504],Qt=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT"],Jt=["EHOSTUNREACH","ENETUNREACH","ENOTFOUND","EAI_AGAIN"],V=(e)=>e?.$retryable!==void 0,be=(e)=>zt.includes(e.name),Se=(e)=>e.$metadata?.clockSkewCorrected,_e=(e)=>{let i=new Set(["Failed to fetch","NetworkError when attempting to fetch resource","The Internet connection appears to be offline","Load failed","Network request failed"]);if(!(e&&e instanceof TypeError))return!1;return i.has(e.message)},T=(e)=>e.$metadata?.httpStatusCode===429||Yt.includes(e.name)||e.$retryable?.throttling==!0,R=(e,i=0)=>V(e)||Se(e)||e.name==="InvalidSignatureException"&&e.message?.includes("Signature expired")||jt.includes(e.name)||Qt.includes(e?.code||"")||Jt.includes(e?.code||"")||Kt.includes(e.$metadata?.httpStatusCode||0)||_e(e)||we(e)||e.cause!==void 0&&i<=10&&R(e.cause,i+1),Me=(e)=>{if(e.$metadata?.httpStatusCode!==void 0){let i=e.$metadata.httpStatusCode;if(500<=i&&i<=599&&!R(e))return!0;return!1}return!1};function we(e){return e.code==="ERR_HTTP2_STREAM_ERROR"&&e.message.includes("NGHTTP2_REFUSED_STREAM")}var ve=100,N=20000,Ee=500,I=500,Te=5,Re=10,z=1,D="amz-sdk-invocation-id",C="amz-sdk-request";function Pe(e,i){if(!me.isInstance(e))return;for(let a in e.headers){if(!Vt(e.headers,a))continue;let c=a.toLowerCase();if(c==="retry-after"){let s=e.headers[a],o=NaN;if(s.endsWith("GMT"))try{o=($t(s).getTime()-Date.now())/1000}catch(u){i?.trace?.("Failed to parse retry-after header"),i?.trace?.(u)}else if(s.match(/ GMT, ((\d+)|(\d+\.\d+))$/))o=Number(s.match(/ GMT, ([\d.]+)$/)?.[1]);else if(s.match(/^((\d+)|(\d+\.\d+))$/))o=Number(s);else if(Date.parse(s)>=Date.now())o=(Date.parse(s)-Date.now())/1000;if(isNaN(o))return;return new Date(Date.now()+o*1000)}else if(c==="x-amz-retry-after"){let s=e.headers[a],o=Number(s);if(isNaN(o)){i?.trace?.(`Failed to parse x-amz-retry-after=${s}`);return}return new Date(Date.now()+o)}}}function Zt(e,i){return Pe(e,i)}var xe=(e)=>{if(e instanceof Error)return e;if(e instanceof Object)return Object.assign(Error(),e);if(typeof e==="string")return Error(e);return Error(`AWS SDK error wrapper for ${e}`)};function Oe(e){return(i)=>(a,c)=>async(s)=>{let o=await i.retryStrategy(),u=await i.maxAttempts();if(tr(o)){o=o;let t=await o.acquireInitialRetryToken((c.partition_id??"")+(c.__retryLongPoll?":longpoll":"")),r=Error(),n=0,p=0,{request:d}=s,l=F.isInstance(d);if(l)d.headers[D]=Ae();while(!0)try{if(l)d.headers[C]=`attempt=${n+1}; max=${u}`;let{response:f,output:h}=await a(s);return o.recordSuccess(t),h.$metadata.attempts=n+1,h.$metadata.totalRetryDelay=p,{response:f,output:h}}catch(f){let h=rr(f,i.logger);if(r=xe(f),l&&e(d))throw(c.logger instanceof Wt?console:c.logger)?.warn("An error was encountered in a non-retryable streaming request."),r;try{t=await o.refreshRetryTokenForRetry(t,h)}catch(A){if(!r.$metadata)r.$metadata={};throw r.$metadata.attempts=n+1,r.$metadata.totalRetryDelay=p,r}n=t.getRetryCount();let g=t.getRetryDelay();if(p+=(t?.$retryLog?.acquisitionDelay??0)+g,g>0)await er(g)}}else{if(o=o,o?.mode)c.userAgent=[...c.userAgent||[],["cfg/retry-mode",o.mode]];return o.retry(a,s)}}}var er=(e)=>new Promise((i)=>setTimeout(i,e)),tr=(e)=>typeof e.acquireInitialRetryToken<"u"&&typeof e.refreshRetryTokenForRetry<"u"&&typeof e.recordSuccess<"u",rr=(e,i)=>{let a={error:e,errorType:nr(e)},c=Pe(e.$response,i);if(c)a.retryAfterHint=c;return a},nr=(e)=>{if(T(e))return"THROTTLING";if(R(e))return"TRANSIENT";if(Me(e))return"SERVER_ERROR";return"CLIENT_ERROR"},ke={name:"retryMiddleware",tags:["RETRY"],step:"finalizeRequest",priority:"high",override:!0};function ir(e){let i=Oe(e);return(a)=>({applyToStack:(c)=>{c.add(i(a),ke)}})}class P{static setTimeoutFn=(e,i)=>setTimeout(e,i);beta;minCapacity;minFillRate;scaleConstant;smooth;enabled=!1;availableTokens=0;lastMaxRate=0;measuredTxRate=0;requestCount=0;fillRate;lastThrottleTime;lastTimestamp=0;lastTxRateBucket;maxCapacity;timeWindow=0;constructor(e){this.beta=e?.beta??0.7,this.minCapacity=e?.minCapacity??1,this.minFillRate=e?.minFillRate??0.5,this.scaleConstant=e?.scaleConstant??0.4,this.smooth=e?.smooth??0.8,this.lastThrottleTime=this.getCurrentTimeInSeconds(),this.lastTxRateBucket=Math.floor(this.getCurrentTimeInSeconds()),this.fillRate=this.minFillRate,this.maxCapacity=this.minCapacity}async getSendToken(){return this.acquireTokenBucket(1)}updateClientSendingRate(e){let i;this.updateMeasuredRate();let a=e;if(a?.errorType==="THROTTLING"||T(a?.error??e)){let o=!this.enabled?this.measuredTxRate:Math.min(this.measuredTxRate,this.fillRate);this.lastMaxRate=o,this.calculateTimeWindow(),this.lastThrottleTime=this.getCurrentTimeInSeconds(),i=this.cubicThrottle(o),this.enableTokenBucket()}else this.calculateTimeWindow(),i=this.cubicSuccess(this.getCurrentTimeInSeconds());let s=Math.min(i,2*this.measuredTxRate);this.updateTokenBucketRate(s)}getCurrentTimeInSeconds(){return Date.now()/1000}async acquireTokenBucket(e){if(!this.enabled)return;this.refillTokenBucket();while(e>this.availableTokens){let i=(e-this.availableTokens)/this.fillRate*1000;await new Promise((a)=>P.setTimeoutFn(a,i)),this.refillTokenBucket()}this.availableTokens=this.availableTokens-e}refillTokenBucket(){let e=this.getCurrentTimeInSeconds();if(!this.lastTimestamp){this.lastTimestamp=e;return}let i=(e-this.lastTimestamp)*this.fillRate;this.availableTokens=Math.min(this.maxCapacity,this.availableTokens+i),this.lastTimestamp=e}calculateTimeWindow(){this.timeWindow=this.getPrecise(Math.pow(this.lastMaxRate*(1-this.beta)/this.scaleConstant,0.3333333333333333))}cubicThrottle(e){return this.getPrecise(e*this.beta)}cubicSuccess(e){return this.getPrecise(this.scaleConstant*Math.pow(e-this.lastThrottleTime-this.timeWindow,3)+this.lastMaxRate)}enableTokenBucket(){this.enabled=!0}updateTokenBucketRate(e){this.refillTokenBucket(),this.fillRate=Math.max(e,this.minFillRate),this.maxCapacity=Math.max(e,this.minCapacity),this.availableTokens=Math.min(this.availableTokens,this.maxCapacity)}updateMeasuredRate(){let e=this.getCurrentTimeInSeconds(),i=Math.floor(e*2)/2;if(this.requestCount++,i>this.lastTxRateBucket){let a=this.requestCount/(i-this.lastTxRateBucket);this.measuredTxRate=this.getPrecise(a*this.smooth+this.measuredTxRate*(1-this.smooth)),this.requestCount=0,this.lastTxRateBucket=i}}getPrecise(e){return parseFloat(e.toFixed(8))}}class m{static v2026=typeof process<"u"&&process.env?.SMITHY_NEW_RETRIES_2026==="true";static delay(){return m.v2026?50:100}static throttlingDelay(){return m.v2026?1000:500}static cost(){return m.v2026?14:5}static throttlingCost(){return m.v2026?5:10}static modifiedCostType(){return m.v2026?"THROTTLING":"TRANSIENT"}}class Fe{x=m.delay();computeNextBackoffDelay(e){let i=Math.random(),a=2,c=i*Math.min(this.x*2**e,N);return Math.floor(c)}setDelayBase(e){this.x=e}}class H{delay;count;cost;longPoll;$retryLog={acquisitionDelay:0};constructor(e,i,a,c){this.delay=e,this.count=i,this.cost=a,this.longPoll=c}getRetryCount(){return this.count}getRetryDelay(){return Math.min(N,this.delay)}getRetryCost(){return this.cost}isLongPoll(){return this.longPoll}}var S;(function(e){e.STANDARD="standard",e.ADAPTIVE="adaptive"})(S||(S={}));var M=3,Ie=S.STANDARD,k={incompatible:1,attempts:2,capacity:3},E=class{mode=S.STANDARD;retryBackoffStrategy;capacity=I;maxAttemptsProvider;baseDelay;constructor(i){if(typeof i==="number")this.maxAttemptsProvider=async()=>i;else if(typeof i==="function")this.maxAttemptsProvider=i;else if(i&&typeof i==="object")this.maxAttemptsProvider=async()=>i.maxAttempts,this.baseDelay=i.baseDelay,this.retryBackoffStrategy=i.backoff;this.maxAttemptsProvider??=async()=>M,this.baseDelay??=m.delay(),this.retryBackoffStrategy??=new Fe}async acquireInitialRetryToken(i){return new H(m.delay(),0,void 0,m.v2026&&i.includes(":longpoll"))}async refreshRetryTokenForRetry(i,a){let c=await this.getMaxAttempts(),s=this.retryCode(i,a,c),o=s===0,u=i.isLongPoll?.();if(o||u){let t=a.errorType;this.retryBackoffStrategy.setDelayBase(t==="THROTTLING"?m.throttlingDelay():this.baseDelay);let r=this.retryBackoffStrategy.computeNextBackoffDelay(i.getRetryCount()),n=r;if(a.retryAfterHint instanceof Date)n=Math.max(r,Math.min(a.retryAfterHint.getTime()-Date.now(),r+5000));if(!o){let p=m.v2026&&s===k.capacity&&u?n:0;if(p>0)await new Promise((d)=>setTimeout(d,p))}else{let p=this.getCapacityCost(t);this.capacity-=p;let d=new H(0,i.getRetryCount()+1,p,i.isLongPoll?.()??!1);return await new Promise((l)=>setTimeout(l,n)),d.$retryLog.acquisitionDelay=n,d}}throw Error("No retry token available")}recordSuccess(i){this.capacity=Math.min(I,this.capacity+(i.getRetryCost()??z))}getCapacity(){return this.capacity}async maxAttempts(){return this.maxAttemptsProvider()}async getMaxAttempts(){try{return await this.maxAttemptsProvider()}catch(i){return console.warn(`Max attempts provider could not resolve. Using default of ${M}`),M}}retryCode(i,a,c){let s=i.getRetryCount()+1,o=this.isRetryableError(a.errorType)?0:k.incompatible,u=s<c?0:k.attempts,t=this.capacity>=this.getCapacityCost(a.errorType)?0:k.capacity;return o||u||t}getCapacityCost(i){return i===m.modifiedCostType()?m.throttlingCost():m.cost()}isRetryableError(i){return i==="THROTTLING"||i==="TRANSIENT"}},Ne=class{mode=S.ADAPTIVE;rateLimiter;standardRetryStrategy;constructor(i,a){let{rateLimiter:c}=a??{};this.rateLimiter=c??new P,this.standardRetryStrategy=a?new E({maxAttempts:typeof i==="number"?i:3,...a}):new E(i)}async acquireInitialRetryToken(i){let a=await this.standardRetryStrategy.acquireInitialRetryToken(i);return await this.rateLimiter.getSendToken(),a}async refreshRetryTokenForRetry(i,a){this.rateLimiter.updateClientSendingRate(a);let c=await this.standardRetryStrategy.refreshRetryTokenForRetry(i,a);return await this.rateLimiter.getSendToken(),c}recordSuccess(i){this.rateLimiter.updateClientSendingRate({}),this.standardRetryStrategy.recordSuccess(i)}async maxAttemptsProvider(){return this.standardRetryStrategy.maxAttempts()}};class De extends E{computeNextBackoffDelay;constructor(e,i=m.delay()){super(typeof e==="function"?e:async()=>e);if(typeof i==="number")this.computeNextBackoffDelay=()=>i;else this.computeNextBackoffDelay=i;this.retryBackoffStrategy.computeNextBackoffDelay=(a)=>{let c=a+1;return this.computeNextBackoffDelay(c)}}}var or=(e,i)=>{let a=e,c=z,s=Te,o=Re,u=e,t=(d)=>d.name==="TimeoutError"?o:s,r=(d)=>t(d)<=u;return Object.freeze({hasRetryTokens:r,retrieveRetryTokens:(d)=>{if(!r(d))throw Error("No retry token available");let l=t(d);return u-=l,l},releaseRetryTokens:(d)=>{u+=d??c,u=Math.min(u,a)}})},Ce=(e,i)=>Math.floor(Math.min(N,Math.random()*2**i*e)),Be=(e)=>{if(!e)return!1;return V(e)||be(e)||T(e)||R(e)};class Y{maxAttemptsProvider;retryDecider;delayDecider;retryQuota;mode=S.STANDARD;constructor(e,i){this.maxAttemptsProvider=e,this.retryDecider=i?.retryDecider??Be,this.delayDecider=i?.delayDecider??Ce,this.retryQuota=i?.retryQuota??or(I)}shouldRetry(e,i,a){return i<a&&this.retryDecider(e)&&this.retryQuota.hasRetryTokens(e)}async getMaxAttempts(){let e;try{e=await this.maxAttemptsProvider()}catch(i){e=M}return e}async retry(e,i,a){let c,s=0,o=0,u=await this.getMaxAttempts(),{request:t}=i;if(F.isInstance(t))t.headers[D]=Ae();while(!0)try{if(F.isInstance(t))t.headers[C]=`attempt=${s+1}; max=${u}`;if(a?.beforeRequest)await a.beforeRequest();let{response:r,output:n}=await e(i);if(a?.afterRequest)a.afterRequest(r);return this.retryQuota.releaseRetryTokens(c),n.$metadata.attempts=s+1,n.$metadata.totalRetryDelay=o,{response:r,output:n}}catch(r){let n=xe(r);if(s++,this.shouldRetry(n,s,u)){c=this.retryQuota.retrieveRetryTokens(n);let p=this.delayDecider(T(n)?Ee:ve,s),d=ar(n.$response),l=Math.max(d||0,p);o+=l,await new Promise((f)=>setTimeout(f,l));continue}if(!n.$metadata)n.$metadata={};throw n.$metadata.attempts=s,n.$metadata.totalRetryDelay=o,n}}}var ar=(e)=>{if(!me.isInstance(e))return;let i=Object.keys(e.headers).find((o)=>o.toLowerCase()==="retry-after");if(!i)return;let a=e.headers[i],c=Number(a);if(!Number.isNaN(c))return Math.min(c*1000,20000);let s=new Date(a);return Math.min(s.getTime()-Date.now(),20000)};class Le extends Y{rateLimiter;constructor(e,i){let{rateLimiter:a,...c}=i??{};super(e,c);this.rateLimiter=a??new P,this.mode=S.ADAPTIVE}async retry(e,i){return super.retry(e,i,{beforeRequest:async()=>this.rateLimiter.getSendToken(),afterRequest:(a)=>{this.rateLimiter.updateClientSendingRate(a)}})}}var q="AWS_MAX_ATTEMPTS",W="max_attempts",cr={environmentVariableSelector:(e)=>{let i=e[q];if(!i)return;let a=parseInt(i);if(Number.isNaN(a))throw Error(`Environment variable ${q} mast be a number, got "${i}"`);return a},configFileSelector:(e)=>{let i=e[W];if(!i)return;let a=parseInt(i);if(Number.isNaN(a))throw Error(`Shared config file entry ${W} mast be a number, got "${i}"`);return a},default:M},ur=(e,i)=>{let{retryStrategy:a,retryMode:c}=e,{defaultMaxAttempts:s=M,defaultBaseDelay:o=m.delay()}=i??{},u=ge(e.maxAttempts??s),t=a?Promise.resolve(a):void 0,r=async()=>{let n=await u();if(await ge(c)()===S.ADAPTIVE)return new Ne(u,{maxAttempts:n,baseDelay:o});return new E({maxAttempts:n,baseDelay:o})};return Object.assign(e,{maxAttempts:u,retryStrategy:()=>t??=r()})},Ue="AWS_RETRY_MODE",He="retry_mode",dr={environmentVariableSelector:(e)=>e[Ue],configFileSelector:(e)=>e[He],default:Ie},qe=()=>(e)=>async(i)=>{let{request:a}=i;if(F.isInstance(a))delete a.headers[D],delete a.headers[C];return e(i)},We={name:"omitRetryHeadersMiddleware",tags:["RETRY","HEADERS","OMIT_RETRY_HEADERS"],relation:"before",toMiddleware:"awsAuthMiddleware",override:!0},lr=(e)=>({applyToStack:(i)=>{i.addRelativeTo(qe(),We)}}),fr=Oe(ye),pr=ir(ye);hr.AdaptiveRetryStrategy=Ne;hr.CONFIG_MAX_ATTEMPTS=W;hr.CONFIG_RETRY_MODE=He;hr.ConfiguredRetryStrategy=De;hr.DEFAULT_MAX_ATTEMPTS=M;hr.DEFAULT_RETRY_DELAY_BASE=ve;hr.DEFAULT_RETRY_MODE=Ie;hr.DefaultRateLimiter=P;hr.DeprecatedAdaptiveRetryStrategy=Le;hr.DeprecatedStandardRetryStrategy=Y;hr.ENV_MAX_ATTEMPTS=q;hr.ENV_RETRY_MODE=Ue;hr.INITIAL_RETRY_TOKENS=I;hr.INVOCATION_ID_HEADER=D;hr.MAXIMUM_RETRY_DELAY=N;hr.NODE_MAX_ATTEMPT_CONFIG_OPTIONS=cr;hr.NODE_RETRY_MODE_CONFIG_OPTIONS=dr;hr.NO_RETRY_INCREMENT=z;hr.REQUEST_HEADER=C;hr.RETRY_COST=Te;hr.RETRY_MODES=S;hr.Retry=m;hr.StandardRetryStrategy=E;hr.THROTTLING_RETRY_DELAY_BASE=Ee;hr.TIMEOUT_RETRY_COST=Re;hr.defaultDelayDecider=Ce;hr.defaultRetryDecider=Be;hr.getOmitRetryHeadersPlugin=lr;hr.getRetryAfterHint=Zt;hr.getRetryPlugin=pr;hr.isBrowserNetworkError=_e;hr.isClockSkewCorrectedError=Se;hr.isClockSkewError=be;hr.isNodeJsHttp2TransientError=we;hr.isRetryableByTrait=V;hr.isServerError=Me;hr.isThrottlingError=T;hr.isTransientError=R;hr.omitRetryHeadersMiddleware=qe;hr.omitRetryHeadersMiddlewareOptions=We;hr.resolveRetryConfig=ur;hr.retryMiddleware=fr;hr.retryMiddlewareOptions=ke});var yo=w(function(Mn){var{getSmithyContext:j,hasOwn:on}=bo();Mn.getSmithyContext=j;var{HttpRequest:K}=qt(),{requestBuilder:an}=qt();Mn.requestBuilder=an;var{HttpApiKeyAuthLocation:$e}=Ca(),cn=(e,i)=>{if(!i||i.length===0)return e;let a=[];for(let c of i)for(let s of e)if(s.schemeId.split("#")[1]===c)a.push(s);for(let c of e)if(!a.find(({schemeId:s})=>s===c.schemeId))a.push(c);return a};function un(e){let i=new Map;for(let a of e)i.set(a.schemeId,a);return i}var X=(e,i)=>(a,c)=>async(s)=>{let o=e.httpAuthSchemeProvider(await i.httpAuthSchemeParametersProvider(e,c,s.input)),u=e.authSchemePreference?await e.authSchemePreference():[],t=cn(o,u),r=un(e.httpAuthSchemes),n=j(c),p=[];for(let d of t){let l=r.get(d.schemeId);if(!l){p.push(`HttpAuthScheme \`${d.schemeId}\` was not enabled for this service.`);continue}let f=l.identityProvider(await i.identityProviderConfigProvider(e));if(!f){p.push(`HttpAuthScheme \`${d.schemeId}\` did not have an IdentityProvider configured.`);continue}let{identityProperties:h={},signingProperties:g={}}=d.propertiesExtractor?.(e,c)||{};d.identityProperties=Object.assign(d.identityProperties||{},h),d.signingProperties=Object.assign(d.signingProperties||{},g),n.selectedHttpAuthScheme={httpAuthOption:d,identity:await f(d.identityProperties),signer:l.signer};break}if(!n.selectedHttpAuthScheme)throw Error(p.join(`
|
|
3
|
+
`));return a(s)},Ve={step:"serialize",tags:["HTTP_AUTH_SCHEME"],name:"httpAuthSchemeMiddleware",override:!0,relation:"before",toMiddleware:"endpointV2Middleware"},dn=(e,{httpAuthSchemeParametersProvider:i,identityProviderConfigProvider:a})=>({applyToStack:(c)=>{c.addRelativeTo(X(e,{httpAuthSchemeParametersProvider:i,identityProviderConfigProvider:a}),Ve)}}),ze={step:"serialize",tags:["HTTP_AUTH_SCHEME"],name:"httpAuthSchemeMiddleware",override:!0,relation:"before",toMiddleware:"serializerMiddleware"},ln=(e,{httpAuthSchemeParametersProvider:i,identityProviderConfigProvider:a})=>({applyToStack:(c)=>{c.addRelativeTo(X(e,{httpAuthSchemeParametersProvider:i,identityProviderConfigProvider:a}),ze)}}),fn=(e)=>(i)=>{throw i},pn=(e,i)=>{},Ye=(e)=>(i,a)=>async(c)=>{if(!K.isInstance(c.request))return i(c);let o=j(a).selectedHttpAuthScheme;if(!o)throw Error("No HttpAuthScheme was selected: unable to sign request");let{httpAuthOption:{signingProperties:u={}},identity:t,signer:r}=o,n=await i({...c,request:await r.sign(c.request,t,u)}).catch((r.errorHandler||fn)(u));return(r.successHandler||pn)(n.response,u),n},je={step:"finalizeRequest",tags:["HTTP_SIGNING"],name:"httpSigningMiddleware",aliases:["apiKeyMiddleware","tokenMiddleware","awsAuthMiddleware"],override:!0,relation:"after",toMiddleware:"retryMiddleware"},hn=(e)=>({applyToStack:(i)=>{i.addRelativeTo(Ye(),je)}}),gn=(e)=>{if(typeof e==="function")return e;let i=Promise.resolve(e);return()=>i},mn=async(e,i,a,c=(o)=>o,...s)=>{let o=new e(a);return o=c(o)??o,await i.send(o,...s)};function An(e,i,a,c,s){return async function*(u,t,...r){let n=t,p=u.startingToken??n[a],d=!0,l;while(d){if(n[a]=p,s)n[s]=n[s]??u.pageSize;if(u.client instanceof e)l=await mn(i,u.client,t,u.withCommand,...r);else throw Error(`Invalid client, expected instance of ${e.name}`);yield l;let f=p;p=yn(l,c),d=!!(p&&(!u.stopOnSameToken||p!==f))}return}}var yn=(e,i)=>{let a=e,c=i.split(".");for(let s of c){if(!a||typeof a!=="object")return;a=a[s]}return a};function bn(e,i,a){if(!e.__smithy_context)e.__smithy_context={features:{}};else if(!e.__smithy_context.features)e.__smithy_context.features={};e.__smithy_context.features[i]=a}class Ke{authSchemes=new Map;constructor(e){for(let i in e){if(!on(e,i))continue;let a=e[i];if(a!==void 0)this.authSchemes.set(i,a)}}getIdentityProvider(e){return this.authSchemes.get(e)}}class Xe{async sign(e,i,a){if(!a)throw Error("request could not be signed with `apiKey` since the `name` and `in` signer properties are missing");if(!a.name)throw Error("request could not be signed with `apiKey` since the `name` signer property is missing");if(!a.in)throw Error("request could not be signed with `apiKey` since the `in` signer property is missing");if(!i.apiKey)throw Error("request could not be signed with `apiKey` since the `apiKey` is not defined");let c=K.clone(e);if(a.in===$e.QUERY)c.query[a.name]=i.apiKey;else if(a.in===$e.HEADER)c.headers[a.name]=a.scheme?`${a.scheme} ${i.apiKey}`:i.apiKey;else throw Error("request can only be signed with `apiKey` locations `query` or `header`, but found: `"+a.in+"`");return c}}class Qe{async sign(e,i,a){let c=K.clone(e);if(!i.token)throw Error("request could not be signed with `token` since the `token` is not defined");return c.headers.Authorization=`Bearer ${i.token}`,c}}class Je{async sign(e,i,a){return e}}var Ze=(e)=>function(a){return tt(a)&&a.expiration.getTime()-Date.now()<e},et=300000,Sn=Ze(et),tt=(e)=>e.expiration!==void 0,_n=(e,i,a)=>{if(e===void 0)return;let c=typeof e!=="function"?async()=>Promise.resolve(e):e,s,o,u,t=!1,r=async(n)=>{if(!o)o=c(n);try{s=await o,u=!0,t=!1}finally{o=void 0}return s};if(i===void 0)return async(n)=>{if(!u||n?.forceRefresh)s=await r(n);return s};return async(n)=>{if(!u||n?.forceRefresh)s=await r(n);if(t)return s;if(!a(s))return t=!0,s;if(i(s))return await r(n),s;return s}};Mn.DefaultIdentityProviderConfig=Ke;Mn.EXPIRATION_MS=et;Mn.HttpApiKeyAuthSigner=Xe;Mn.HttpBearerAuthSigner=Qe;Mn.NoAuthSigner=Je;Mn.createIsIdentityExpiredFunction=Ze;Mn.createPaginator=An;Mn.doesIdentityRequireRefresh=tt;Mn.getHttpAuthSchemeEndpointRuleSetPlugin=dn;Mn.getHttpAuthSchemePlugin=ln;Mn.getHttpSigningPlugin=hn;Mn.httpAuthSchemeEndpointRuleSetMiddlewareOptions=Ve;Mn.httpAuthSchemeMiddleware=X;Mn.httpAuthSchemeMiddlewareOptions=ze;Mn.httpSigningMiddleware=Ye;Mn.httpSigningMiddlewareOptions=je;Mn.isIdentityExpired=Sn;Mn.memoizeIdentityProvider=_n;Mn.normalizeProvider=gn;Mn.setFeature=bn});var nt=w(function(Vn){var _={REQUEST_ID:Symbol.for("_AWS_LAMBDA_REQUEST_ID"),X_RAY_TRACE_ID:Symbol.for("_AWS_LAMBDA_X_RAY_TRACE_ID"),TENANT_ID:Symbol.for("_AWS_LAMBDA_TENANT_ID"),TRACEPARENT:Symbol.for("_AWS_LAMBDA_TRACEPARENT"),TRACESTATE:Symbol.for("_AWS_LAMBDA_TRACESTATE"),BAGGAGE:Symbol.for("_AWS_LAMBDA_BAGGAGE")},Q=["true","1"].includes(process.env?.AWS_LAMBDA_NODEJS_NO_GLOBAL_AWSLAMBDA??"");if(!Q)globalThis.awslambda=globalThis.awslambda||{};class B{static PROTECTED_KEYS=_;isProtectedKey(e){return Object.values(_).includes(e)}getRequestId(){return this.get(_.REQUEST_ID)??"-"}getXRayTraceId(){return this.get(_.X_RAY_TRACE_ID)}getTenantId(){return this.get(_.TENANT_ID)}getTraceparent(){return this.get(_.TRACEPARENT)}getTracestate(){return this.get(_.TRACESTATE)}getBaggage(){return this.get(_.BAGGAGE)}}class rt extends B{currentContext;getContext(){return this.currentContext}hasContext(){return this.currentContext!==void 0}get(e){return this.currentContext?.[e]}set(e,i){if(this.isProtectedKey(e))throw Error(`Cannot modify protected Lambda context field: ${String(e)}`);this.currentContext=this.currentContext||{},this.currentContext[e]=i}run(e,i){return this.currentContext=e,i()}}class Z extends B{als;static async create(){let e=new Z,i=await import("async_hooks");return e.als=new i.AsyncLocalStorage,e}getContext(){return this.als.getStore()}hasContext(){return this.als.getStore()!==void 0}get(e){return this.als.getStore()?.[e]}set(e,i){if(this.isProtectedKey(e))throw Error(`Cannot modify protected Lambda context field: ${String(e)}`);let a=this.als.getStore();if(!a)throw Error("No context available");a[e]=i}run(e,i){return this.als.run(e,i)}}Vn.InvokeStore=void 0;(function(e){let i=null;async function a(c){if(!i)i=(async()=>{let o=c===!0||"AWS_LAMBDA_MAX_CONCURRENCY"in process.env?await Z.create():new rt;if(!Q&&globalThis.awslambda?.InvokeStore)return globalThis.awslambda.InvokeStore;else if(!Q&&globalThis.awslambda)return globalThis.awslambda.InvokeStore=o,o;else return o})();return i}e.getInstanceAsync=a,e._testing=process.env.AWS_LAMBDA_BENCHMARK_MODE==="1"?{reset:()=>{if(i=null,globalThis.awslambda?.InvokeStore)delete globalThis.awslambda.InvokeStore;globalThis.awslambda={InvokeStore:void 0}}}:void 0})(Vn.InvokeStore||(Vn.InvokeStore={}));Vn.InvokeStoreBase=B});var it=w(function(x,ee){(function(e,i){typeof x=="object"&&typeof ee=="object"?ee.exports=i():typeof define=="function"&&define.amd?define([],i):typeof x=="object"?x.bowser=i():e.bowser=i()})(x,function(){return function(e){var i={};function a(c){if(i[c])return i[c].exports;var s=i[c]={i:c,l:!1,exports:{}};return e[c].call(s.exports,s,s.exports,a),s.l=!0,s.exports}return a.m=e,a.c=i,a.d=function(c,s,o){a.o(c,s)||Object.defineProperty(c,s,{enumerable:!0,get:o})},a.r=function(c){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})},a.t=function(c,s){if(1&s&&(c=a(c)),8&s)return c;if(4&s&&typeof c=="object"&&c&&c.__esModule)return c;var o=Object.create(null);if(a.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:c}),2&s&&typeof c!="string")for(var u in c)a.d(o,u,function(t){return c[t]}.bind(null,u));return o},a.n=function(c){var s=c&&c.__esModule?function(){return c.default}:function(){return c};return a.d(s,"a",s),s},a.o=function(c,s){return Object.prototype.hasOwnProperty.call(c,s)},a.p="",a(a.s=90)}({17:function(e,i,a){i.__esModule=!0,i.default=void 0;var c=a(18),s=function(){function o(){}return o.getFirstMatch=function(u,t){var r=t.match(u);return r&&r.length>0&&r[1]||""},o.getSecondMatch=function(u,t){var r=t.match(u);return r&&r.length>1&&r[2]||""},o.matchAndReturnConst=function(u,t,r){if(u.test(t))return r},o.getWindowsVersionName=function(u){switch(u){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},o.getMacOSVersionName=function(u){var t=u.split(".").splice(0,2).map(function(p){return parseInt(p,10)||0});t.push(0);var r=t[0],n=t[1];if(r===10)switch(n){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}switch(r){case 11:return"Big Sur";case 12:return"Monterey";case 13:return"Ventura";case 14:return"Sonoma";case 15:return"Sequoia";default:return}},o.getAndroidVersionName=function(u){var t=u.split(".").splice(0,2).map(function(r){return parseInt(r,10)||0});if(t.push(0),!(t[0]===1&&t[1]<5))return t[0]===1&&t[1]<6?"Cupcake":t[0]===1&&t[1]>=6?"Donut":t[0]===2&&t[1]<2?"Eclair":t[0]===2&&t[1]===2?"Froyo":t[0]===2&&t[1]>2?"Gingerbread":t[0]===3?"Honeycomb":t[0]===4&&t[1]<1?"Ice Cream Sandwich":t[0]===4&&t[1]<4?"Jelly Bean":t[0]===4&&t[1]>=4?"KitKat":t[0]===5?"Lollipop":t[0]===6?"Marshmallow":t[0]===7?"Nougat":t[0]===8?"Oreo":t[0]===9?"Pie":void 0},o.getVersionPrecision=function(u){return u.split(".").length},o.compareVersions=function(u,t,r){r===void 0&&(r=!1);var n=o.getVersionPrecision(u),p=o.getVersionPrecision(t),d=Math.max(n,p),l=0,f=o.map([u,t],function(h){var g=d-o.getVersionPrecision(h),A=h+Array(g+1).join(".0");return o.map(A.split("."),function(v){return Array(20-v.length).join("0")+v}).reverse()});for(r&&(l=d-Math.min(n,p)),d-=1;d>=l;){if(f[0][d]>f[1][d])return 1;if(f[0][d]===f[1][d]){if(d===l)return 0;d-=1}else if(f[0][d]<f[1][d])return-1}},o.map=function(u,t){var r,n=[];if(Array.prototype.map)return Array.prototype.map.call(u,t);for(r=0;r<u.length;r+=1)n.push(t(u[r]));return n},o.find=function(u,t){var r,n;if(Array.prototype.find)return Array.prototype.find.call(u,t);for(r=0,n=u.length;r<n;r+=1){var p=u[r];if(t(p,r))return p}},o.assign=function(u){for(var t,r,n=u,p=arguments.length,d=Array(p>1?p-1:0),l=1;l<p;l++)d[l-1]=arguments[l];if(Object.assign)return Object.assign.apply(Object,[u].concat(d));var f=function(){var h=d[t];typeof h=="object"&&h!==null&&Object.keys(h).forEach(function(g){n[g]=h[g]})};for(t=0,r=d.length;t<r;t+=1)f();return u},o.getBrowserAlias=function(u){return c.BROWSER_ALIASES_MAP[u]},o.getBrowserTypeByAlias=function(u){return c.BROWSER_MAP[u]||""},o}();i.default=s,e.exports=i.default},18:function(e,i,a){i.__esModule=!0,i.ENGINE_MAP=i.OS_MAP=i.PLATFORMS_MAP=i.BROWSER_MAP=i.BROWSER_ALIASES_MAP=void 0,i.BROWSER_ALIASES_MAP={AmazonBot:"amazonbot","Amazon Silk":"amazon_silk","Android Browser":"android",BaiduSpider:"baiduspider",Bada:"bada",BingCrawler:"bingcrawler",Brave:"brave",BlackBerry:"blackberry","ChatGPT-User":"chatgpt_user",Chrome:"chrome",ClaudeBot:"claudebot",Chromium:"chromium",Diffbot:"diffbot",DuckDuckBot:"duckduckbot",DuckDuckGo:"duckduckgo",Electron:"electron",Epiphany:"epiphany",FacebookExternalHit:"facebookexternalhit",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot",GPTBot:"gptbot","Internet Explorer":"ie",InternetArchiveCrawler:"internetarchivecrawler","K-Meleon":"k_meleon",LibreWolf:"librewolf",Linespider:"linespider",Maxthon:"maxthon","Meta-ExternalAds":"meta_externalads","Meta-ExternalAgent":"meta_externalagent","Meta-ExternalFetcher":"meta_externalfetcher","Meta-WebIndexer":"meta_webindexer","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver","OAI-SearchBot":"oai_searchbot",Omgilibot:"omgilibot",Opera:"opera","Opera Coast":"opera_coast","Pale Moon":"pale_moon",PerplexityBot:"perplexitybot","Perplexity-User":"perplexity_user",PhantomJS:"phantomjs",PingdomBot:"pingdombot",Puffin:"puffin",QQ:"qq",QQLite:"qqlite",QupZilla:"qupzilla",Roku:"roku",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SlackBot:"slackbot",SeaMonkey:"seamonkey",Sleipnir:"sleipnir","Sogou Browser":"sogou",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat",YahooSlurp:"yahooslurp","Yandex Browser":"yandex",YandexBot:"yandexbot",YouBot:"youbot"},i.BROWSER_MAP={amazonbot:"AmazonBot",amazon_silk:"Amazon Silk",android:"Android Browser",baiduspider:"BaiduSpider",bada:"Bada",bingcrawler:"BingCrawler",blackberry:"BlackBerry",brave:"Brave",chatgpt_user:"ChatGPT-User",chrome:"Chrome",claudebot:"ClaudeBot",chromium:"Chromium",diffbot:"Diffbot",duckduckbot:"DuckDuckBot",duckduckgo:"DuckDuckGo",edge:"Microsoft Edge",electron:"Electron",epiphany:"Epiphany",facebookexternalhit:"FacebookExternalHit",firefox:"Firefox",focus:"Focus",generic:"Generic",google_search:"Google Search",googlebot:"Googlebot",gptbot:"GPTBot",ie:"Internet Explorer",internetarchivecrawler:"InternetArchiveCrawler",k_meleon:"K-Meleon",librewolf:"LibreWolf",linespider:"Linespider",maxthon:"Maxthon",meta_externalads:"Meta-ExternalAds",meta_externalagent:"Meta-ExternalAgent",meta_externalfetcher:"Meta-ExternalFetcher",meta_webindexer:"Meta-WebIndexer",mz:"MZ Browser",naver:"NAVER Whale Browser",oai_searchbot:"OAI-SearchBot",omgilibot:"Omgilibot",opera:"Opera",opera_coast:"Opera Coast",pale_moon:"Pale Moon",perplexitybot:"PerplexityBot",perplexity_user:"Perplexity-User",phantomjs:"PhantomJS",pingdombot:"PingdomBot",puffin:"Puffin",qq:"QQ Browser",qqlite:"QQ Browser Lite",qupzilla:"QupZilla",roku:"Roku",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",slackbot:"SlackBot",sleipnir:"Sleipnir",sogou:"Sogou Browser",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yahooslurp:"YahooSlurp",yandex:"Yandex Browser",yandexbot:"YandexBot",youbot:"YouBot"},i.PLATFORMS_MAP={bot:"bot",desktop:"desktop",mobile:"mobile",tablet:"tablet",tv:"tv"},i.OS_MAP={Android:"Android",Bada:"Bada",BlackBerry:"BlackBerry",ChromeOS:"Chrome OS",HarmonyOS:"HarmonyOS",iOS:"iOS",Linux:"Linux",MacOS:"macOS",PlayStation4:"PlayStation 4",Roku:"Roku",Tizen:"Tizen",WebOS:"WebOS",Windows:"Windows",WindowsPhone:"Windows Phone"},i.ENGINE_MAP={Blink:"Blink",EdgeHTML:"EdgeHTML",Gecko:"Gecko",Presto:"Presto",Trident:"Trident",WebKit:"WebKit"}},90:function(e,i,a){i.__esModule=!0,i.default=void 0;var c,s=(c=a(91))&&c.__esModule?c:{default:c},o=a(18);function u(r,n){for(var p=0;p<n.length;p++){var d=n[p];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(r,d.key,d)}}var t=function(){function r(){}var n,p,d;return r.getParser=function(l,f,h){if(f===void 0&&(f=!1),h===void 0&&(h=null),typeof l!="string")throw Error("UserAgent should be a string");return new s.default(l,f,h)},r.parse=function(l,f){return f===void 0&&(f=null),new s.default(l,f).getResult()},n=r,d=[{key:"BROWSER_MAP",get:function(){return o.BROWSER_MAP}},{key:"ENGINE_MAP",get:function(){return o.ENGINE_MAP}},{key:"OS_MAP",get:function(){return o.OS_MAP}},{key:"PLATFORMS_MAP",get:function(){return o.PLATFORMS_MAP}}],(p=null)&&u(n.prototype,p),d&&u(n,d),r}();i.default=t,e.exports=i.default},91:function(e,i,a){i.__esModule=!0,i.default=void 0;var c=r(a(92)),s=r(a(93)),o=r(a(94)),u=r(a(95)),t=r(a(17));function r(p){return p&&p.__esModule?p:{default:p}}var n=function(){function p(l,f,h){if(f===void 0&&(f=!1),h===void 0&&(h=null),l==null||l==="")throw Error("UserAgent parameter can't be empty");this._ua=l;var g=!1;typeof f=="boolean"?(g=f,this._hints=h):this._hints=f!=null&&typeof f=="object"?f:null,this.parsedResult={},g!==!0&&this.parse()}var d=p.prototype;return d.getHints=function(){return this._hints},d.hasBrand=function(l){if(!this._hints||!Array.isArray(this._hints.brands))return!1;var f=l.toLowerCase();return this._hints.brands.some(function(h){return h.brand&&h.brand.toLowerCase()===f})},d.getBrandVersion=function(l){if(this._hints&&Array.isArray(this._hints.brands)){var f=l.toLowerCase(),h=this._hints.brands.find(function(g){return g.brand&&g.brand.toLowerCase()===f});return h?h.version:void 0}},d.getUA=function(){return this._ua},d.test=function(l){return l.test(this._ua)},d.parseBrowser=function(){var l=this;this.parsedResult.browser={};var f=t.default.find(c.default,function(h){if(typeof h.test=="function")return h.test(l);if(Array.isArray(h.test))return h.test.some(function(g){return l.test(g)});throw Error("Browser's test function is not valid")});return f&&(this.parsedResult.browser=f.describe(this.getUA(),this)),this.parsedResult.browser},d.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},d.getBrowserName=function(l){return l?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""},d.getBrowserVersion=function(){return this.getBrowser().version},d.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},d.parseOS=function(){var l=this;this.parsedResult.os={};var f=t.default.find(s.default,function(h){if(typeof h.test=="function")return h.test(l);if(Array.isArray(h.test))return h.test.some(function(g){return l.test(g)});throw Error("Browser's test function is not valid")});return f&&(this.parsedResult.os=f.describe(this.getUA())),this.parsedResult.os},d.getOSName=function(l){var f=this.getOS().name;return l?String(f).toLowerCase()||"":f||""},d.getOSVersion=function(){return this.getOS().version},d.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},d.getPlatformType=function(l){l===void 0&&(l=!1);var f=this.getPlatform().type;return l?String(f).toLowerCase()||"":f||""},d.parsePlatform=function(){var l=this;this.parsedResult.platform={};var f=t.default.find(o.default,function(h){if(typeof h.test=="function")return h.test(l);if(Array.isArray(h.test))return h.test.some(function(g){return l.test(g)});throw Error("Browser's test function is not valid")});return f&&(this.parsedResult.platform=f.describe(this.getUA())),this.parsedResult.platform},d.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},d.getEngineName=function(l){return l?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""},d.parseEngine=function(){var l=this;this.parsedResult.engine={};var f=t.default.find(u.default,function(h){if(typeof h.test=="function")return h.test(l);if(Array.isArray(h.test))return h.test.some(function(g){return l.test(g)});throw Error("Browser's test function is not valid")});return f&&(this.parsedResult.engine=f.describe(this.getUA())),this.parsedResult.engine},d.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},d.getResult=function(){return t.default.assign({},this.parsedResult)},d.satisfies=function(l){var f=this,h={},g=0,A={},v=0;if(Object.keys(l).forEach(function(b){var O=l[b];typeof O=="string"?(A[b]=O,v+=1):typeof O=="object"&&(h[b]=O,g+=1)}),g>0){var ue=Object.keys(h),de=t.default.find(ue,function(b){return f.isOS(b)});if(de){var le=this.satisfies(h[de]);if(le!==void 0)return le}var fe=t.default.find(ue,function(b){return f.isPlatform(b)});if(fe){var pe=this.satisfies(h[fe]);if(pe!==void 0)return pe}}if(v>0){var Ht=Object.keys(A),he=t.default.find(Ht,function(b){return f.isBrowser(b,!0)});if(he!==void 0)return this.compareVersion(A[he])}},d.isBrowser=function(l,f){f===void 0&&(f=!1);var h=this.getBrowserName().toLowerCase(),g=l.toLowerCase(),A=t.default.getBrowserTypeByAlias(g);return f&&A&&(g=A.toLowerCase()),g===h},d.compareVersion=function(l){var f=[0],h=l,g=!1,A=this.getBrowserVersion();if(typeof A=="string")return l[0]===">"||l[0]==="<"?(h=l.substr(1),l[1]==="="?(g=!0,h=l.substr(2)):f=[],l[0]===">"?f.push(1):f.push(-1)):l[0]==="="?h=l.substr(1):l[0]==="~"&&(g=!0,h=l.substr(1)),f.indexOf(t.default.compareVersions(A,h,g))>-1},d.isOS=function(l){return this.getOSName(!0)===String(l).toLowerCase()},d.isPlatform=function(l){return this.getPlatformType(!0)===String(l).toLowerCase()},d.isEngine=function(l){return this.getEngineName(!0)===String(l).toLowerCase()},d.is=function(l,f){return f===void 0&&(f=!1),this.isBrowser(l,f)||this.isOS(l)||this.isPlatform(l)},d.some=function(l){var f=this;return l===void 0&&(l=[]),l.some(function(h){return f.is(h)})},p}();i.default=n,e.exports=i.default},92:function(e,i,a){i.__esModule=!0,i.default=void 0;var c,s=(c=a(17))&&c.__esModule?c:{default:c},o=/version\/(\d+(\.?_?\d+)+)/i,u=[{test:[/gptbot/i],describe:function(t){var r={name:"GPTBot"},n=s.default.getFirstMatch(/gptbot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/chatgpt-user/i],describe:function(t){var r={name:"ChatGPT-User"},n=s.default.getFirstMatch(/chatgpt-user\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/oai-searchbot/i],describe:function(t){var r={name:"OAI-SearchBot"},n=s.default.getFirstMatch(/oai-searchbot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe:function(t){var r={name:"ClaudeBot"},n=s.default.getFirstMatch(/(?:claudebot|claude-web|claude-user|claude-searchbot)\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/omgilibot/i,/webzio-extended/i],describe:function(t){var r={name:"Omgilibot"},n=s.default.getFirstMatch(/(?:omgilibot|webzio-extended)\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/diffbot/i],describe:function(t){var r={name:"Diffbot"},n=s.default.getFirstMatch(/diffbot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/perplexitybot/i],describe:function(t){var r={name:"PerplexityBot"},n=s.default.getFirstMatch(/perplexitybot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/perplexity-user/i],describe:function(t){var r={name:"Perplexity-User"},n=s.default.getFirstMatch(/perplexity-user\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/youbot/i],describe:function(t){var r={name:"YouBot"},n=s.default.getFirstMatch(/youbot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/meta-webindexer/i],describe:function(t){var r={name:"Meta-WebIndexer"},n=s.default.getFirstMatch(/meta-webindexer\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/meta-externalads/i],describe:function(t){var r={name:"Meta-ExternalAds"},n=s.default.getFirstMatch(/meta-externalads\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/meta-externalagent/i],describe:function(t){var r={name:"Meta-ExternalAgent"},n=s.default.getFirstMatch(/meta-externalagent\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/meta-externalfetcher/i],describe:function(t){var r={name:"Meta-ExternalFetcher"},n=s.default.getFirstMatch(/meta-externalfetcher\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/googlebot/i],describe:function(t){var r={name:"Googlebot"},n=s.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/linespider/i],describe:function(t){var r={name:"Linespider"},n=s.default.getFirstMatch(/(?:linespider)(?:-[-\w]+)?[\s/](\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/amazonbot/i],describe:function(t){var r={name:"AmazonBot"},n=s.default.getFirstMatch(/amazonbot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/bingbot/i],describe:function(t){var r={name:"BingCrawler"},n=s.default.getFirstMatch(/bingbot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/baiduspider/i],describe:function(t){var r={name:"BaiduSpider"},n=s.default.getFirstMatch(/baiduspider\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/duckduckbot/i],describe:function(t){var r={name:"DuckDuckBot"},n=s.default.getFirstMatch(/duckduckbot\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/ia_archiver/i],describe:function(t){var r={name:"InternetArchiveCrawler"},n=s.default.getFirstMatch(/ia_archiver\/(\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe:function(){return{name:"FacebookExternalHit"}}},{test:[/slackbot/i,/slack-imgProxy/i],describe:function(t){var r={name:"SlackBot"},n=s.default.getFirstMatch(/(?:slackbot|slack-imgproxy)(?:-[-\w]+)?[\s/](\d+(\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/yahoo!?[\s/]*slurp/i],describe:function(){return{name:"YahooSlurp"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe:function(){return{name:"YandexBot"}}},{test:[/pingdom/i],describe:function(){return{name:"PingdomBot"}}},{test:[/opera/i],describe:function(t){var r={name:"Opera"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/opr\/|opios/i],describe:function(t){var r={name:"Opera"},n=s.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/SamsungBrowser/i],describe:function(t){var r={name:"Samsung Internet for Android"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/Whale/i],describe:function(t){var r={name:"NAVER Whale Browser"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/PaleMoon/i],describe:function(t){var r={name:"Pale Moon"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:PaleMoon)[\s/](\d+(?:\.\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/MZBrowser/i],describe:function(t){var r={name:"MZ Browser"},n=s.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/focus/i],describe:function(t){var r={name:"Focus"},n=s.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/swing/i],describe:function(t){var r={name:"Swing"},n=s.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/coast/i],describe:function(t){var r={name:"Opera Coast"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(t){var r={name:"Opera Touch"},n=s.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/yabrowser/i],describe:function(t){var r={name:"Yandex Browser"},n=s.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/ucbrowser/i],describe:function(t){var r={name:"UC Browser"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/Maxthon|mxios/i],describe:function(t){var r={name:"Maxthon"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/epiphany/i],describe:function(t){var r={name:"Epiphany"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/puffin/i],describe:function(t){var r={name:"Puffin"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/sleipnir/i],describe:function(t){var r={name:"Sleipnir"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/k-meleon/i],describe:function(t){var r={name:"K-Meleon"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/micromessenger/i],describe:function(t){var r={name:"WeChat"},n=s.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/qqbrowser/i],describe:function(t){var r={name:/qqbrowserlite/i.test(t)?"QQ Browser Lite":"QQ Browser"},n=s.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/msie|trident/i],describe:function(t){var r={name:"Internet Explorer"},n=s.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/\sedg\//i],describe:function(t){var r={name:"Microsoft Edge"},n=s.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/edg([ea]|ios)/i],describe:function(t){var r={name:"Microsoft Edge"},n=s.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/vivaldi/i],describe:function(t){var r={name:"Vivaldi"},n=s.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/seamonkey/i],describe:function(t){var r={name:"SeaMonkey"},n=s.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/sailfish/i],describe:function(t){var r={name:"Sailfish"},n=s.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,t);return n&&(r.version=n),r}},{test:[/silk/i],describe:function(t){var r={name:"Amazon Silk"},n=s.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/phantom/i],describe:function(t){var r={name:"PhantomJS"},n=s.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/slimerjs/i],describe:function(t){var r={name:"SlimerJS"},n=s.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(t){var r={name:"BlackBerry"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/(web|hpw)[o0]s/i],describe:function(t){var r={name:"WebOS Browser"},n=s.default.getFirstMatch(o,t)||s.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/bada/i],describe:function(t){var r={name:"Bada"},n=s.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/tizen/i],describe:function(t){var r={name:"Tizen"},n=s.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/qupzilla/i],describe:function(t){var r={name:"QupZilla"},n=s.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/librewolf/i],describe:function(t){var r={name:"LibreWolf"},n=s.default.getFirstMatch(/(?:librewolf)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/firefox|iceweasel|fxios/i],describe:function(t){var r={name:"Firefox"},n=s.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/electron/i],describe:function(t){var r={name:"Electron"},n=s.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/sogoumobilebrowser/i,/metasr/i,/se 2\.[x]/i],describe:function(t){var r={name:"Sogou Browser"},n=s.default.getFirstMatch(/(?:sogoumobilebrowser)[\s/](\d+(\.?_?\d+)+)/i,t),p=s.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,t),d=s.default.getFirstMatch(/se ([\d.]+)x/i,t),l=n||p||d;return l&&(r.version=l),r}},{test:[/MiuiBrowser/i],describe:function(t){var r={name:"Miui"},n=s.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:function(t){return!!t.hasBrand("DuckDuckGo")||t.test(/\sDdg\/[\d.]+$/i)},describe:function(t,r){var n={name:"DuckDuckGo"};if(r){var p=r.getBrandVersion("DuckDuckGo");if(p)return n.version=p,n}var d=s.default.getFirstMatch(/\sDdg\/([\d.]+)$/i,t);return d&&(n.version=d),n}},{test:function(t){return t.hasBrand("Brave")},describe:function(t,r){var n={name:"Brave"};if(r){var p=r.getBrandVersion("Brave");if(p)return n.version=p,n}return n}},{test:[/chromium/i],describe:function(t){var r={name:"Chromium"},n=s.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,t)||s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/chrome|crios|crmo/i],describe:function(t){var r={name:"Chrome"},n=s.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/GSA/i],describe:function(t){var r={name:"Google Search"},n=s.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:function(t){var r=!t.test(/like android/i),n=t.test(/android/i);return r&&n},describe:function(t){var r={name:"Android Browser"},n=s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/playstation 4/i],describe:function(t){var r={name:"PlayStation 4"},n=s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/safari|applewebkit/i],describe:function(t){var r={name:"Safari"},n=s.default.getFirstMatch(o,t);return n&&(r.version=n),r}},{test:[/.*/i],describe:function(t){var r=t.search("\\(")!==-1?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:s.default.getFirstMatch(r,t),version:s.default.getSecondMatch(r,t)}}}];i.default=u,e.exports=i.default},93:function(e,i,a){i.__esModule=!0,i.default=void 0;var c,s=(c=a(17))&&c.__esModule?c:{default:c},o=a(18),u=[{test:[/Roku\/DVP/],describe:function(t){var r=s.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,t);return{name:o.OS_MAP.Roku,version:r}}},{test:[/windows phone/i],describe:function(t){var r=s.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,t);return{name:o.OS_MAP.WindowsPhone,version:r}}},{test:[/windows /i],describe:function(t){var r=s.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,t),n=s.default.getWindowsVersionName(r);return{name:o.OS_MAP.Windows,version:r,versionName:n}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(t){var r={name:o.OS_MAP.iOS},n=s.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,t);return n&&(r.version=n),r}},{test:[/macintosh/i],describe:function(t){var r=s.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,t).replace(/[_\s]/g,"."),n=s.default.getMacOSVersionName(r),p={name:o.OS_MAP.MacOS,version:r};return n&&(p.versionName=n),p}},{test:[/(ipod|iphone|ipad)/i],describe:function(t){var r=s.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,t).replace(/[_\s]/g,".");return{name:o.OS_MAP.iOS,version:r}}},{test:[/OpenHarmony/i],describe:function(t){var r=s.default.getFirstMatch(/OpenHarmony\s+(\d+(\.\d+)*)/i,t);return{name:o.OS_MAP.HarmonyOS,version:r}}},{test:function(t){var r=!t.test(/like android/i),n=t.test(/android/i);return r&&n},describe:function(t){var r=s.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,t),n=s.default.getAndroidVersionName(r),p={name:o.OS_MAP.Android,version:r};return n&&(p.versionName=n),p}},{test:[/(web|hpw)[o0]s/i],describe:function(t){var r=s.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,t),n={name:o.OS_MAP.WebOS};return r&&r.length&&(n.version=r),n}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(t){var r=s.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,t)||s.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,t)||s.default.getFirstMatch(/\bbb(\d+)/i,t);return{name:o.OS_MAP.BlackBerry,version:r}}},{test:[/bada/i],describe:function(t){var r=s.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,t);return{name:o.OS_MAP.Bada,version:r}}},{test:[/tizen/i],describe:function(t){var r=s.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,t);return{name:o.OS_MAP.Tizen,version:r}}},{test:[/linux/i],describe:function(){return{name:o.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:o.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(t){var r=s.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,t);return{name:o.OS_MAP.PlayStation4,version:r}}}];i.default=u,e.exports=i.default},94:function(e,i,a){i.__esModule=!0,i.default=void 0;var c,s=(c=a(17))&&c.__esModule?c:{default:c},o=a(18),u=[{test:[/googlebot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Google"}}},{test:[/linespider/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Line"}}},{test:[/amazonbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Amazon"}}},{test:[/gptbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"OpenAI"}}},{test:[/chatgpt-user/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"OpenAI"}}},{test:[/oai-searchbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"OpenAI"}}},{test:[/baiduspider/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Baidu"}}},{test:[/bingbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Bing"}}},{test:[/duckduckbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"DuckDuckGo"}}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Anthropic"}}},{test:[/omgilibot/i,/webzio-extended/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Webz.io"}}},{test:[/diffbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Diffbot"}}},{test:[/perplexitybot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Perplexity AI"}}},{test:[/perplexity-user/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Perplexity AI"}}},{test:[/youbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"You.com"}}},{test:[/ia_archiver/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Internet Archive"}}},{test:[/meta-webindexer/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Meta"}}},{test:[/meta-externalads/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Meta"}}},{test:[/meta-externalagent/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Meta"}}},{test:[/meta-externalfetcher/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Meta"}}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Meta"}}},{test:[/slackbot/i,/slack-imgProxy/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Slack"}}},{test:[/yahoo/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Yahoo"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Yandex"}}},{test:[/pingdom/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Pingdom"}}},{test:[/huawei/i],describe:function(t){var r=s.default.getFirstMatch(/(can-l01)/i,t)&&"Nova",n={type:o.PLATFORMS_MAP.mobile,vendor:"Huawei"};return r&&(n.model=r),n}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet}}},{test:function(t){var r=t.test(/ipod|iphone/i),n=t.test(/like (ipod|iphone)/i);return r&&!n},describe:function(t){var r=s.default.getFirstMatch(/(ipod|iphone)/i,t);return{type:o.PLATFORMS_MAP.mobile,vendor:"Apple",model:r}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/Nokia/i],describe:function(t){var r=s.default.getFirstMatch(/Nokia\s+([0-9]+(\.[0-9]+)?)/i,t),n={type:o.PLATFORMS_MAP.mobile,vendor:"Nokia"};return r&&(n.model=r),n}},{test:[/[^-]mobi/i],describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(t){return t.getBrowserName(!0)==="blackberry"},describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(t){return t.getBrowserName(!0)==="bada"},describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(t){return t.getBrowserName()==="windows phone"},describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(t){var r=Number(String(t.getOSVersion()).split(".")[0]);return t.getOSName(!0)==="android"&&r>=3},describe:function(){return{type:o.PLATFORMS_MAP.tablet}}},{test:function(t){return t.getOSName(!0)==="android"},describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:[/smart-?tv|smarttv/i],describe:function(){return{type:o.PLATFORMS_MAP.tv}}},{test:[/netcast/i],describe:function(){return{type:o.PLATFORMS_MAP.tv}}},{test:function(t){return t.getOSName(!0)==="macos"},describe:function(){return{type:o.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(t){return t.getOSName(!0)==="windows"},describe:function(){return{type:o.PLATFORMS_MAP.desktop}}},{test:function(t){return t.getOSName(!0)==="linux"},describe:function(){return{type:o.PLATFORMS_MAP.desktop}}},{test:function(t){return t.getOSName(!0)==="playstation 4"},describe:function(){return{type:o.PLATFORMS_MAP.tv}}},{test:function(t){return t.getOSName(!0)==="roku"},describe:function(){return{type:o.PLATFORMS_MAP.tv}}}];i.default=u,e.exports=i.default},95:function(e,i,a){i.__esModule=!0,i.default=void 0;var c,s=(c=a(17))&&c.__esModule?c:{default:c},o=a(18),u=[{test:function(t){return t.getBrowserName(!0)==="microsoft edge"},describe:function(t){if(/\sedg\//i.test(t))return{name:o.ENGINE_MAP.Blink};var r=s.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,t);return{name:o.ENGINE_MAP.EdgeHTML,version:r}}},{test:[/trident/i],describe:function(t){var r={name:o.ENGINE_MAP.Trident},n=s.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:function(t){return t.test(/presto/i)},describe:function(t){var r={name:o.ENGINE_MAP.Presto},n=s.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:function(t){var r=t.test(/gecko/i),n=t.test(/like gecko/i);return r&&!n},describe:function(t){var r={name:o.ENGINE_MAP.Gecko},n=s.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:o.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(t){var r={name:o.ENGINE_MAP.WebKit},n=s.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,t);return n&&(r.version=n),r}}];i.default=u,e.exports=i.default}})})});var Dt=w(function(qi){var{Retry:Yn,RETRY_MODES:st}=Wo(),{HttpRequest:oe,parseUrl:jn}=qt(),{InvokeStore:ot}=nt(),{normalizeProvider:Kn}=yo(),{platform:Xn,release:Qn}=G("os"),{versions:te,env:at}=G("process"),{isValidHostLabel:Jn,isIpAddress:ft,customEndpointFunctions:Zn}=en(),{EndpointError:ei,resolveEndpoint:ti}=en();qi.EndpointError=ei;qi.isIpAddress=ft;qi.resolveEndpoint=ti;var{loadConfig:ri,NODE_REGION_CONFIG_OPTIONS:pt,NODE_REGION_CONFIG_FILE_OPTIONS:ht}=Ge(),{REGION_ENV_NAME:ni,REGION_INI_NAME:ii,resolveRegionConfig:si}=Ge();qi.NODE_REGION_CONFIG_FILE_OPTIONS=ht;qi.NODE_REGION_CONFIG_OPTIONS=pt;qi.REGION_ENV_NAME=ni;qi.REGION_INI_NAME=ii;qi.resolveRegionConfig=si;var U={warningEmitted:!1},oi=(e)=>{if(e&&!U.warningEmitted){if(process.env.AWS_SDK_JS_NODE_VERSION_SUPPORT_WARNING_DISABLED==="true"){U.warningEmitted=!0;return}let i=parseInt(e.substring(1,e.indexOf("."))),a=22;if(i<a)U.warningEmitted=!0,process.emitWarning(`NodeVersionSupportWarning: The AWS SDK for JavaScript (v3)
|
|
4
4
|
versions published after the first week of January 2027
|
|
5
5
|
will require node >=${a}. You are running node ${e}.
|
|
6
6
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
function
|
|
3
|
-
export{
|
|
2
|
+
function pn(n){let e={};for(let[t,r]of n.entries())e[t]=r;return e}function qi(n){if(!n)return;let e={};for(let[t,r]of Object.entries(n))if(r!==null)e[t]=r;return Object.keys(e).length>0?e:void 0}
|
|
3
|
+
export{pn,qi};
|
|
@@ -22,11 +22,11 @@ ${A}
|
|
|
22
22
|
${k}`,F=`${u}/${e.region}/${n}/${Dd}`,W=`${sc}
|
|
23
23
|
${i}
|
|
24
24
|
${F}
|
|
25
|
-
`+await e.crypto.sha256DigestHex(N),x=await Ud(e.crypto,e.securityCredentials.secretAccessKey,u,e.region,n),j=await kt(e.crypto,x,W),b=`${sc} Credential=${e.securityCredentials.accessKeyId}/${F}, SignedHeaders=${A}, Signature=${ic.fromArrayBufferToHex(j)}`;return{amzDate:t.has("date")?void 0:i,authorizationHeader:b,canonicalQuerystring:e.canonicalQuerystring}}});var fc=w(function(lc){Object.defineProperty(lc,"__esModule",{value:!0});lc.DefaultAwsSecurityCredentialsSupplier=void 0;var ar=_e();class uc{regionUrl;securityCredentialsUrl;imdsV2SessionTokenUrl;additionalGaxiosOptions;constructor(e){this.regionUrl=e.regionUrl,this.securityCredentialsUrl=e.securityCredentialsUrl,this.imdsV2SessionTokenUrl=e.imdsV2SessionTokenUrl,this.additionalGaxiosOptions=e.additionalGaxiosOptions}async getAwsRegion(e){if(this.#n)return this.#n;let t=new Headers;if(!this.#n&&this.imdsV2SessionTokenUrl)t.set("x-aws-ec2-metadata-token",await this.#e(e.transporter));if(!this.regionUrl)throw RangeError('Unable to determine AWS region due to missing "options.credential_source.region_url"');let r={...this.additionalGaxiosOptions,url:this.regionUrl,method:"GET",responseType:"text",headers:t};ar.AuthClient.setMethodName(r,"getAwsRegion");let n=await e.transporter.request(r);return n.data.substr(0,n.data.length-1)}async getAwsSecurityCredentials(e){if(this.#s)return this.#s;let t=new Headers;if(this.imdsV2SessionTokenUrl)t.set("x-aws-ec2-metadata-token",await this.#e(e.transporter));let r=await this.#t(t,e.transporter),n=await this.#r(r,t,e.transporter);return{accessKeyId:n.AccessKeyId,secretAccessKey:n.SecretAccessKey,token:n.Token}}async#e(e){let t={...this.additionalGaxiosOptions,url:this.imdsV2SessionTokenUrl,method:"PUT",responseType:"text",headers:{"x-aws-ec2-metadata-token-ttl-seconds":"300"}};return ar.AuthClient.setMethodName(t,"#getImdsV2SessionToken"),(await e.request(t)).data}async#t(e,t){if(!this.securityCredentialsUrl)throw Error('Unable to determine AWS role name due to missing "options.credential_source.url"');let r={...this.additionalGaxiosOptions,url:this.securityCredentialsUrl,method:"GET",responseType:"text",headers:e};return ar.AuthClient.setMethodName(r,"#getAwsRoleName"),(await t.request(r)).data}async#r(e,t,r){let n={...this.additionalGaxiosOptions,url:`${this.securityCredentialsUrl}/${e}`,headers:t,responseType:"json"};return ar.AuthClient.setMethodName(n,"#retrieveAwsSecurityCredentials"),(await r.request(n)).data}get#n(){return process.env.AWS_REGION||process.env.AWS_DEFAULT_REGION||null}get#s(){if(process.env.AWS_ACCESS_KEY_ID&&process.env.AWS_SECRET_ACCESS_KEY)return{accessKeyId:process.env.AWS_ACCESS_KEY_ID,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY,token:process.env.AWS_SESSION_TOKEN};return null}}lc.DefaultAwsSecurityCredentialsSupplier=uc});var On=w(function(pc){Object.defineProperty(pc,"__esModule",{value:!0});pc.AwsClient=void 0;var Fd=Cn(),Md=$e(),Ld=fc(),dc=Oe(),Gd=ie();class cr extends Md.BaseExternalAccountClient{environmentId;awsSecurityCredentialsSupplier;regionalCredVerificationUrl;awsRequestSigner;region;static#e="https://sts.{region}.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15";static AWS_EC2_METADATA_IPV4_ADDRESS="169.254.169.254";static AWS_EC2_METADATA_IPV6_ADDRESS="fd00:ec2::254";constructor(e){super(e);let t=dc.originalOrCamelOptions(e),r=t.get("credential_source"),n=t.get("aws_security_credentials_supplier");if(!r&&!n)throw Error("A credential source or AWS security credentials supplier must be specified.");if(r&&n)throw Error("Only one of credential source or AWS security credentials supplier can be specified.");if(n)this.awsSecurityCredentialsSupplier=n,this.regionalCredVerificationUrl=cr.#e,this.credentialSourceType="programmatic";else{let s=dc.originalOrCamelOptions(r);this.environmentId=s.get("environment_id");let i=s.get("region_url"),u=s.get("url"),h=s.get("imdsv2_session_token_url");this.awsSecurityCredentialsSupplier=new Ld.DefaultAwsSecurityCredentialsSupplier({regionUrl:i,securityCredentialsUrl:u,imdsV2SessionTokenUrl:h}),this.regionalCredVerificationUrl=s.get("regional_cred_verification_url"),this.credentialSourceType="aws",this.validateEnvironmentId()}this.awsRequestSigner=null,this.region=""}validateEnvironmentId(){let e=this.environmentId?.match(/^(aws)(\d+)$/);if(!e||!this.regionalCredVerificationUrl)throw Error('No valid AWS "credential_source" provided');else if(parseInt(e[2],10)!==1)throw Error(`aws version "${e[2]}" is not supported in the current build.`)}async retrieveSubjectToken(){if(!this.awsRequestSigner)this.region=await this.awsSecurityCredentialsSupplier.getAwsRegion(this.supplierContext),this.awsRequestSigner=new Fd.AwsRequestSigner(async()=>this.awsSecurityCredentialsSupplier.getAwsSecurityCredentials(this.supplierContext),this.region);let e=await this.awsRequestSigner.getRequestOptions({...cr.RETRY_CONFIG,url:this.regionalCredVerificationUrl.replace("{region}",this.region),method:"POST"}),t=[];return Gd.Gaxios.mergeHeaders({"x-goog-cloud-target-resource":this.audience},e.headers).forEach((n,s)=>t.push({key:s,value:n})),encodeURIComponent(JSON.stringify({url:e.url,method:e.method,headers:t}))}}pc.AwsClient=cr});var jn=w(function(mc){Object.defineProperty(mc,"__esModule",{value:!0});mc.InvalidSubjectTokenError=mc.InvalidMessageFieldError=mc.InvalidCodeFieldError=mc.InvalidTokenTypeFieldError=mc.InvalidExpirationTimeFieldError=mc.InvalidSuccessFieldError=mc.InvalidVersionFieldError=mc.ExecutableResponseError=mc.ExecutableResponse=void 0;var ur="urn:ietf:params:oauth:token-type:saml2",kn="urn:ietf:params:oauth:token-type:id_token",bn="urn:ietf:params:oauth:token-type:jwt";class _c{version;success;expirationTime;tokenType;errorCode;errorMessage;subjectToken;constructor(e){if(!e.version)throw new xn("Executable response must contain a 'version' field.");if(e.success===void 0)throw new Rn("Executable response must contain a 'success' field.");if(this.version=e.version,this.success=e.success,this.success){if(this.expirationTime=e.expiration_time,this.tokenType=e.token_type,this.tokenType!==ur&&this.tokenType!==kn&&this.tokenType!==bn)throw new Nn(`Executable response must contain a 'token_type' field when successful and it must be one of ${kn}, ${bn}, or ${ur}.`);if(this.tokenType===ur){if(!e.saml_response)throw new lr(`Executable response must contain a 'saml_response' field when token_type=${ur}.`);this.subjectToken=e.saml_response}else{if(!e.id_token)throw new lr(`Executable response must contain a 'id_token' field when token_type=${kn} or ${bn}.`);this.subjectToken=e.id_token}}else{if(!e.code)throw new Pn("Executable response must contain a 'code' field when unsuccessful.");if(!e.message)throw new In("Executable response must contain a 'message' field when unsuccessful.");this.errorCode=e.code,this.errorMessage=e.message}}isValid(){return!this.isExpired()&&this.success}isExpired(){return this.expirationTime!==void 0&&this.expirationTime<Math.round(Date.now()/1000)}}mc.ExecutableResponse=_c;class Me extends Error{constructor(e){super(e);Object.setPrototypeOf(this,new.target.prototype)}}mc.ExecutableResponseError=Me;class xn extends Me{}mc.InvalidVersionFieldError=xn;class Rn extends Me{}mc.InvalidSuccessFieldError=Rn;class yc extends Me{}mc.InvalidExpirationTimeFieldError=yc;class Nn extends Me{}mc.InvalidTokenTypeFieldError=Nn;class Pn extends Me{}mc.InvalidCodeFieldError=Pn;class In extends Me{}mc.InvalidMessageFieldError=In;class lr extends Me{}mc.InvalidSubjectTokenError=lr});var Fn=w(function(wc){Object.defineProperty(wc,"__esModule",{value:!0});wc.PluggableAuthHandler=wc.ExecutableError=void 0;var Qe=jn(),zd=G("child_process"),Dn=G("fs");class Un extends Error{code;constructor(e,t){super(`The executable failed with exit code: ${t} and error message: ${e}.`);this.code=t,Object.setPrototypeOf(this,new.target.prototype)}}wc.ExecutableError=Un;class qn{commandComponents;timeoutMillis;outputFile;constructor(e){if(!e.command)throw Error("No command provided.");if(this.commandComponents=qn.parseCommand(e.command),this.timeoutMillis=e.timeoutMillis,!this.timeoutMillis)throw Error("No timeoutMillis provided.");this.outputFile=e.outputFile}retrieveResponseFromExecutable(e){return new Promise((t,r)=>{let n=zd.spawn(this.commandComponents[0],this.commandComponents.slice(1),{env:{...process.env,...Object.fromEntries(e)}}),s="";n.stdout.on("data",(u)=>{s+=u}),n.stderr.on("data",(u)=>{s+=u});let i=setTimeout(()=>(n.removeAllListeners(),n.kill(),r(Error("The executable failed to finish within the timeout specified."))),this.timeoutMillis);n.on("close",(u)=>{if(clearTimeout(i),u===0)try{let h=JSON.parse(s),y=new Qe.ExecutableResponse(h);return t(y)}catch(h){if(h instanceof Qe.ExecutableResponseError)return r(h);return r(new Qe.ExecutableResponseError(`The executable returned an invalid response: ${s}`))}else return r(new Un(s,u.toString()))})})}async retrieveCachedResponse(){if(!this.outputFile||this.outputFile.length===0)return;let e;try{e=await Dn.promises.realpath(this.outputFile)}catch{return}if(!(await Dn.promises.lstat(e)).isFile())return;let t=await Dn.promises.readFile(e,{encoding:"utf8"});if(t==="")return;try{let r=JSON.parse(t);if(new Qe.ExecutableResponse(r).isValid())return new Qe.ExecutableResponse(r);return}catch(r){if(r instanceof Qe.ExecutableResponseError)throw r;throw new Qe.ExecutableResponseError(`The output file contained an invalid response: ${t}`)}}static parseCommand(e){let t=e.match(/(?:[^\s"]+|"[^"]*")+/g);if(!t)throw Error(`Provided command: "${e}" could not be parsed.`);for(let r=0;r<t.length;r++)if(t[r][0]==='"'&&t[r].slice(-1)==='"')t[r]=t[r].slice(1,-1);return t}}wc.PluggableAuthHandler=qn});var Ln=w(function(Mn){Object.defineProperty(Mn,"__esModule",{value:!0});Mn.PluggableAuthClient=Mn.ExecutableError=void 0;var Qd=$e(),Zd=jn(),Oc=Fn(),ep=Fn();Object.defineProperty(Mn,"ExecutableError",{enumerable:!0,get:function(){return ep.ExecutableError}});var tp=30000,vc=5000,Sc=120000,rp="GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES",Cc=1;class kc extends Qd.BaseExternalAccountClient{command;timeoutMillis;outputFile;handler;constructor(e){super(e);if(!e.credential_source.executable)throw Error('No valid Pluggable Auth "credential_source" provided.');if(this.command=e.credential_source.executable.command,!this.command)throw Error('No valid Pluggable Auth "credential_source" provided.');if(e.credential_source.executable.timeout_millis===void 0)this.timeoutMillis=tp;else if(this.timeoutMillis=e.credential_source.executable.timeout_millis,this.timeoutMillis<vc||this.timeoutMillis>Sc)throw Error(`Timeout must be between ${vc} and ${Sc} milliseconds.`);this.outputFile=e.credential_source.executable.output_file,this.handler=new Oc.PluggableAuthHandler({command:this.command,timeoutMillis:this.timeoutMillis,outputFile:this.outputFile}),this.credentialSourceType="executable"}async retrieveSubjectToken(){if(process.env[rp]!=="1")throw Error("Pluggable Auth executables need to be explicitly allowed to run by setting the GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES environment Variable to 1.");let e=void 0;if(this.outputFile)e=await this.handler.retrieveCachedResponse();if(!e){let t=new Map;if(t.set("GOOGLE_EXTERNAL_ACCOUNT_AUDIENCE",this.audience),t.set("GOOGLE_EXTERNAL_ACCOUNT_TOKEN_TYPE",this.subjectTokenType),t.set("GOOGLE_EXTERNAL_ACCOUNT_INTERACTIVE","0"),this.outputFile)t.set("GOOGLE_EXTERNAL_ACCOUNT_OUTPUT_FILE",this.outputFile);let r=this.getServiceAccountEmail();if(r)t.set("GOOGLE_EXTERNAL_ACCOUNT_IMPERSONATED_EMAIL",r);e=await this.handler.retrieveResponseFromExecutable(t)}if(e.version>Cc)throw Error(`Version of executable is not currently supported, maximum supported version is ${Cc}.`);if(!e.success)throw new Oc.ExecutableError(e.errorMessage,e.errorCode);if(this.outputFile){if(!e.expirationTime)throw new Zd.InvalidExpirationTimeFieldError("The executable response must contain the `expiration_time` field for successful responses when an output_file has been specified in the configuration.")}if(e.isExpired())throw Error("Executable response is expired.");return e.subjectToken}}Mn.PluggableAuthClient=kc});var Gn=w(function(Rc){Object.defineProperty(Rc,"__esModule",{value:!0});Rc.ExternalAccountClient=void 0;var np=$e(),sp=Sn(),ip=On(),op=Ln();class xc{constructor(){throw Error("ExternalAccountClients should be initialized via: ExternalAccountClient.fromJSON(), directly via explicit constructors, eg. new AwsClient(options), new IdentityPoolClient(options), newPluggableAuthClientOptions, or via new GoogleAuth(options).getClient()")}static fromJSON(e){if(e&&e.type===np.EXTERNAL_ACCOUNT_TYPE)if(e.credential_source?.environment_id)return new ip.AwsClient(e);else if(e.credential_source?.executable)return new op.PluggableAuthClient(e);else return new sp.IdentityPoolClient(e);else return null}}Rc.ExternalAccountClient=xc});var Hn=w(function(Uc){Object.defineProperty(Uc,"__esModule",{value:!0});Uc.ExternalAccountAuthorizedUserClient=Uc.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE=void 0;var Pc=_e(),Ic=gn(),jc=ie(),ap=G("stream"),cp=$e();Uc.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE="external_account_authorized_user";var up="https://sts.{universeDomain}/v1/oauthtoken";class Bn extends Ic.OAuthClientAuthHandler{#e;constructor(e){super(e);this.#e=e.tokenRefreshEndpoint}async refreshToken(e,t){let r={...Bn.RETRY_CONFIG,url:this.#e,method:"POST",headers:t,data:new URLSearchParams({grant_type:"refresh_token",refresh_token:e}),responseType:"json"};Pc.AuthClient.setMethodName(r,"refreshToken"),this.applyClientAuthenticationOptions(r);try{let n=await this.transporter.request(r),s=n.data;return s.res=n,s}catch(n){if(n instanceof jc.GaxiosError&&n.response)throw Ic.getErrorFromOAuthErrorResponse(n.response.data,n);throw n}}}class Dc extends Pc.AuthClient{cachedAccessToken;externalAccountAuthorizedUserHandler;refreshToken;constructor(e){super(e);if(e.universe_domain)this.universeDomain=e.universe_domain;this.refreshToken=e.refresh_token;let t={confidentialClientType:"basic",clientId:e.client_id,clientSecret:e.client_secret};if(this.externalAccountAuthorizedUserHandler=new Bn({tokenRefreshEndpoint:e.token_url??up.replace("{universeDomain}",this.universeDomain),transporter:this.transporter,clientAuthentication:t}),this.cachedAccessToken=null,this.quotaProjectId=e.quota_project_id,typeof e?.eagerRefreshThresholdMillis!=="number")this.eagerRefreshThresholdMillis=cp.EXPIRATION_TIME_OFFSET;else this.eagerRefreshThresholdMillis=e.eagerRefreshThresholdMillis;this.forceRefreshOnFailure=!!e?.forceRefreshOnFailure}async getAccessToken(){if(!this.cachedAccessToken||this.isExpired(this.cachedAccessToken))await this.refreshAccessTokenAsync();return{token:this.cachedAccessToken.access_token,res:this.cachedAccessToken.res}}async getRequestHeaders(){let e=await this.getAccessToken(),t=new Headers({authorization:`Bearer ${e.token}`});return this.addSharedMetadataHeaders(t)}request(e,t){if(t)this.requestAsync(e).then((r)=>t(null,r),(r)=>t(r,r.response));else return this.requestAsync(e)}async requestAsync(e,t=!1){let r;try{let n=await this.getRequestHeaders();e.headers=jc.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,n),r=await this.transporter.request(e)}catch(n){let s=n.response;if(s){let i=s.status,u=s.config.data instanceof ap.Readable;if(!t&&(i===401||i===403)&&!u&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(e,!0)}throw n}return r}async refreshAccessTokenAsync(){let e=await this.externalAccountAuthorizedUserHandler.refreshToken(this.refreshToken);if(this.cachedAccessToken={access_token:e.access_token,expiry_date:new Date().getTime()+e.expires_in*1000,res:e.res},e.refresh_token!==void 0)this.refreshToken=e.refresh_token;return this.cachedAccessToken}isExpired(e){let t=new Date().getTime();return e.expiry_date?t>=e.expiry_date-this.eagerRefreshThresholdMillis:!1}}Uc.ExternalAccountAuthorizedUserClient=Dc});var Jn=w(function(Fc){Object.defineProperty(Fc,"__esModule",{value:!0});Fc.GdchClient=Fc.GDCH_SERVICE_ACCOUNT_TYPE=void 0;var hp=G("crypto"),fp=G("fs"),dp=G("https"),pp=Be(),gp=3600;Fc.GDCH_SERVICE_ACCOUNT_TYPE="gdch_service_account";class Kn extends pp.OAuth2Client{projectId;privateKeyId;privateKey;serviceIdentityName;tokenServerUri;caCertPath;apiAudience;lifetime;gdchOptions;caAgentPromise;cachedCaCertPath;lastCaCertReadTime=0;CA_CERT_TTL_MS=300000;constructor(e={}){super(e);this.gdchOptions=e,this.projectId=e.projectId||void 0,this.privateKeyId=e.privateKeyId,this.privateKey=e.privateKey,this.serviceIdentityName=e.serviceIdentityName,this.tokenServerUri=e.tokenServerUri,this.caCertPath=e.caCertPath,this.apiAudience=e.apiAudience,this.lifetime=e.lifetime||gp,this.credentials={refresh_token:"gdch-placeholder",expiry_date:1}}createWithGdchAudience(e){if(!e)throw Error("Audience cannot be null or empty for GDCH service account credentials.");return new Kn({...this.gdchOptions,projectId:this.projectId,privateKeyId:this.privateKeyId,privateKey:this.privateKey,serviceIdentityName:this.serviceIdentityName,tokenServerUri:this.tokenServerUri,caCertPath:this.caCertPath,lifetime:this.lifetime,apiAudience:e})}fromJSON(e){if(!e)throw Error("Must pass in a JSON object containing the GDCH credentials settings.");if(e.type!==Fc.GDCH_SERVICE_ACCOUNT_TYPE)throw Error(`The incoming JSON object does not have the "${Fc.GDCH_SERVICE_ACCOUNT_TYPE}" type`);if(e.format_version!=="1")throw Error("Only format version 1 is supported.");if(!e.project)throw Error("The incoming JSON object does not contain a project field");if(!e.private_key_id)throw Error("The incoming JSON object does not contain a private_key_id field");if(!e.private_key)throw Error("The incoming JSON object does not contain a private_key field");if(!e.name)throw Error("The incoming JSON object does not contain a name field");if(!e.token_uri)throw Error("The incoming JSON object does not contain a token_uri field");this.projectId=e.project,this.privateKeyId=e.private_key_id,this.privateKey=e.private_key,this.serviceIdentityName=e.name,this.tokenServerUri=e.token_uri,this.caCertPath=e.ca_cert_path,this.gdchOptions={...this.gdchOptions,projectId:e.project,privateKeyId:e.private_key_id,privateKey:e.private_key,serviceIdentityName:e.name,tokenServerUri:e.token_uri,caCertPath:e.ca_cert_path}}async refreshTokenNoCache(){if(!this.apiAudience)throw Error("Audience cannot be null or empty for GDCH service account credentials. Specify the audience by calling createWithGdchAudience.");if(!this.privateKey)throw Error("Private key is not configured for GDCH credentials.");if(!this.privateKeyId)throw Error("Private key ID is not configured for GDCH credentials.");if(!this.projectId)throw Error("Project is not configured for GDCH credentials.");if(!this.serviceIdentityName)throw Error("Service identity name is not configured for GDCH credentials.");if(!this.tokenServerUri)throw Error("Token server URI is not configured for GDCH credentials.");let e=this.createAssertion(),t={audience:this.apiAudience,grant_type:"urn:ietf:params:oauth:token-type:token-exchange",requested_token_type:"urn:ietf:params:oauth:token-type:access_token",subject_token:e,subject_token_type:"urn:k8s:params:oauth:token-type:serviceaccount"},r={url:this.tokenServerUri,method:"POST",headers:{"Content-Type":"application/json"},data:t,responseType:"json",timeout:1e4,retry:!0,retryConfig:{httpMethodsToRetry:["POST"],statusCodesToRetry:[[500,599]],noResponseRetries:3}};if(this.caCertPath)r.agent=await this.getCaAgent();try{let n=await this.transporter.request(r),s=n.data;if(!s.access_token)throw Error("Token response did not contain an access_token.");if(!s.expires_in)throw Error("Token response did not contain an expires_in field.");let i={access_token:s.access_token,token_type:"STS-Bearer",expiry_date:Date.now()+s.expires_in*1000};return this.emit("tokens",i),{res:n,tokens:i}}catch(n){if(n&&n.config&&n.config.data)try{if(typeof n.config.data==="string"){let s=JSON.parse(n.config.data);if(s.subject_token)s.subject_token="***REDACTED***",n.config.data=JSON.stringify(s)}else if(typeof n.config.data==="object"&&n.config.data.subject_token)n.config.data.subject_token="***REDACTED***"}catch{}if(n instanceof Error)n.message=`Error getting access token for GDCH service account: ${n.message}, iss: ${this.serviceIdentityName}`;throw n}}createAssertion(){let e={alg:"ES256",typ:"JWT",kid:this.privateKeyId},t=`system:serviceaccount:${this.projectId}:${this.serviceIdentityName}`,r=Math.floor(Date.now()/1000),n={iss:t,sub:t,iat:r,exp:r+this.lifetime,aud:this.tokenServerUri},s=this.base64UrlEncode(JSON.stringify(e)),i=this.base64UrlEncode(JSON.stringify(n)),u=`${s}.${i}`,h=hp.sign("sha256",Buffer.from(u),{key:this.privateKey,dsaEncoding:"ieee-p1363"}),y=this.base64UrlEncode(h);return`${u}.${y}`}async requestAsync(e,t=!1){if(this.caCertPath&&!e.agent){let r=(e.url||"").toString();if(!r.includes("googleapis.com")&&!r.includes("google.com"))e.agent=await this.getCaAgent()}return super.requestAsync(e,t)}getCaAgent(){if(!this.caCertPath){this.caAgentPromise=void 0,this.cachedCaCertPath=void 0,this.lastCaCertReadTime=0;return}let e=Date.now(),t=e-this.lastCaCertReadTime>this.CA_CERT_TTL_MS;if(this.caAgentPromise&&this.caCertPath===this.cachedCaCertPath&&!t)return this.caAgentPromise;this.cachedCaCertPath=this.caCertPath,this.lastCaCertReadTime=e;let r=this.caCertPath;return this.caAgentPromise=(async()=>{try{let n=await fp.promises.readFile(r);return new dp.Agent({ca:n})}catch(n){if(this.cachedCaCertPath===r)this.caAgentPromise=void 0,this.cachedCaCertPath=void 0,this.lastCaCertReadTime=0;if(n instanceof Error)n.message=`Error reading certificate file from CA cert path, value '${r}': ${n.message}`;throw n}})(),this.caAgentPromise}toJSON(){return{...this,privateKey:this.privateKey?"***REDACTED***":void 0,_clientSecret:this._clientSecret?"***REDACTED***":void 0,apiKey:this.apiKey?"***REDACTED***":void 0,gdchOptions:this.gdchOptions?{...this.gdchOptions,privateKey:this.gdchOptions.privateKey?"***REDACTED***":void 0,clientSecret:this.gdchOptions.clientSecret?"***REDACTED***":void 0,client_secret:this.gdchOptions.client_secret?"***REDACTED***":void 0,apiKey:this.gdchOptions.apiKey?"***REDACTED***":void 0,credentials:this.gdchOptions.credentials?{...this.gdchOptions.credentials,access_token:this.gdchOptions.credentials.access_token?"***REDACTED***":void 0,refresh_token:this.gdchOptions.credentials.refresh_token?"***REDACTED***":void 0}:void 0}:void 0,credentials:{...this.credentials,access_token:this.credentials?.access_token?"***REDACTED***":void 0,refresh_token:this.credentials?.refresh_token?"***REDACTED***":void 0}}}[Symbol.for("nodejs.util.inspect.custom")](){return this.toJSON()}base64UrlEncode(e){return(typeof e==="string"?Buffer.from(e):e).toString("base64url")}}Fc.GdchClient=Kn});var Jc=w(function($c){Object.defineProperty($c,"__esModule",{value:!0});$c.GoogleAuth=$c.GoogleAuthExceptionMessages=void 0;var _p=G("child_process"),xt=G("fs"),yp=ie(),Rt=yt(),mp=G("os"),hr=G("path"),Ep=mt(),wp=Wr(),Tp=Yr(),Ap=zr(),ut=fn(),Gc=dn(),ht=pn(),vp=Gn(),bt=$e(),Vn=_e(),Bc=Hn(),Wn=Jn(),Lc=Oe();$c.GoogleAuthExceptionMessages={API_KEY_WITH_CREDENTIALS:"API Keys and Credentials are mutually exclusive authentication methods and cannot be used together.",NO_PROJECT_ID_FOUND:`Unable to detect a Project Id in the current environment.
|
|
25
|
+
`+await e.crypto.sha256DigestHex(N),x=await Ud(e.crypto,e.securityCredentials.secretAccessKey,u,e.region,n),j=await kt(e.crypto,x,W),b=`${sc} Credential=${e.securityCredentials.accessKeyId}/${F}, SignedHeaders=${A}, Signature=${ic.fromArrayBufferToHex(j)}`;return{amzDate:t.has("date")?void 0:i,authorizationHeader:b,canonicalQuerystring:e.canonicalQuerystring}}});var fc=w(function(lc){Object.defineProperty(lc,"__esModule",{value:!0});lc.DefaultAwsSecurityCredentialsSupplier=void 0;var ar=_e();class uc{regionUrl;securityCredentialsUrl;imdsV2SessionTokenUrl;additionalGaxiosOptions;constructor(e){this.regionUrl=e.regionUrl,this.securityCredentialsUrl=e.securityCredentialsUrl,this.imdsV2SessionTokenUrl=e.imdsV2SessionTokenUrl,this.additionalGaxiosOptions=e.additionalGaxiosOptions}async getAwsRegion(e){if(this.#n)return this.#n;let t=new Headers;if(!this.#n&&this.imdsV2SessionTokenUrl)t.set("x-aws-ec2-metadata-token",await this.#e(e.transporter));if(!this.regionUrl)throw RangeError('Unable to determine AWS region due to missing "options.credential_source.region_url"');let r={...this.additionalGaxiosOptions,url:this.regionUrl,method:"GET",responseType:"text",headers:t};ar.AuthClient.setMethodName(r,"getAwsRegion");let n=await e.transporter.request(r);return n.data.substr(0,n.data.length-1)}async getAwsSecurityCredentials(e){if(this.#s)return this.#s;let t=new Headers;if(this.imdsV2SessionTokenUrl)t.set("x-aws-ec2-metadata-token",await this.#e(e.transporter));let r=await this.#t(t,e.transporter),n=await this.#r(r,t,e.transporter);return{accessKeyId:n.AccessKeyId,secretAccessKey:n.SecretAccessKey,token:n.Token}}async#e(e){let t={...this.additionalGaxiosOptions,url:this.imdsV2SessionTokenUrl,method:"PUT",responseType:"text",headers:{"x-aws-ec2-metadata-token-ttl-seconds":"300"}};return ar.AuthClient.setMethodName(t,"#getImdsV2SessionToken"),(await e.request(t)).data}async#t(e,t){if(!this.securityCredentialsUrl)throw Error('Unable to determine AWS role name due to missing "options.credential_source.url"');let r={...this.additionalGaxiosOptions,url:this.securityCredentialsUrl,method:"GET",responseType:"text",headers:e};return ar.AuthClient.setMethodName(r,"#getAwsRoleName"),(await t.request(r)).data}async#r(e,t,r){let n={...this.additionalGaxiosOptions,url:`${this.securityCredentialsUrl}/${e}`,headers:t,responseType:"json"};return ar.AuthClient.setMethodName(n,"#retrieveAwsSecurityCredentials"),(await r.request(n)).data}get#n(){return process.env.AWS_REGION||process.env.AWS_DEFAULT_REGION||null}get#s(){if(process.env.AWS_ACCESS_KEY_ID&&process.env.AWS_SECRET_ACCESS_KEY)return{accessKeyId:process.env.AWS_ACCESS_KEY_ID,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY,token:process.env.AWS_SESSION_TOKEN};return null}}lc.DefaultAwsSecurityCredentialsSupplier=uc});var On=w(function(pc){Object.defineProperty(pc,"__esModule",{value:!0});pc.AwsClient=void 0;var Fd=Cn(),Md=$e(),Ld=fc(),dc=Oe(),Gd=ie();class cr extends Md.BaseExternalAccountClient{environmentId;awsSecurityCredentialsSupplier;regionalCredVerificationUrl;awsRequestSigner;region;static#e="https://sts.{region}.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15";static AWS_EC2_METADATA_IPV4_ADDRESS="169.254.169.254";static AWS_EC2_METADATA_IPV6_ADDRESS="fd00:ec2::254";constructor(e){super(e);let t=dc.originalOrCamelOptions(e),r=t.get("credential_source"),n=t.get("aws_security_credentials_supplier");if(!r&&!n)throw Error("A credential source or AWS security credentials supplier must be specified.");if(r&&n)throw Error("Only one of credential source or AWS security credentials supplier can be specified.");if(n)this.awsSecurityCredentialsSupplier=n,this.regionalCredVerificationUrl=cr.#e,this.credentialSourceType="programmatic";else{let s=dc.originalOrCamelOptions(r);this.environmentId=s.get("environment_id");let i=s.get("region_url"),u=s.get("url"),h=s.get("imdsv2_session_token_url");this.awsSecurityCredentialsSupplier=new Ld.DefaultAwsSecurityCredentialsSupplier({regionUrl:i,securityCredentialsUrl:u,imdsV2SessionTokenUrl:h}),this.regionalCredVerificationUrl=s.get("regional_cred_verification_url"),this.credentialSourceType="aws",this.validateEnvironmentId()}this.awsRequestSigner=null,this.region=""}validateEnvironmentId(){let e=this.environmentId?.match(/^(aws)(\d+)$/);if(!e||!this.regionalCredVerificationUrl)throw Error('No valid AWS "credential_source" provided');else if(parseInt(e[2],10)!==1)throw Error(`aws version "${e[2]}" is not supported in the current build.`)}async retrieveSubjectToken(){if(!this.awsRequestSigner)this.region=await this.awsSecurityCredentialsSupplier.getAwsRegion(this.supplierContext),this.awsRequestSigner=new Fd.AwsRequestSigner(async()=>this.awsSecurityCredentialsSupplier.getAwsSecurityCredentials(this.supplierContext),this.region);let e=await this.awsRequestSigner.getRequestOptions({...cr.RETRY_CONFIG,url:this.regionalCredVerificationUrl.replace("{region}",this.region),method:"POST"}),t=[];return Gd.Gaxios.mergeHeaders({"x-goog-cloud-target-resource":this.audience},e.headers).forEach((n,s)=>t.push({key:s,value:n})),encodeURIComponent(JSON.stringify({url:e.url,method:e.method,headers:t}))}}pc.AwsClient=cr});var jn=w(function(mc){Object.defineProperty(mc,"__esModule",{value:!0});mc.InvalidSubjectTokenError=mc.InvalidMessageFieldError=mc.InvalidCodeFieldError=mc.InvalidTokenTypeFieldError=mc.InvalidExpirationTimeFieldError=mc.InvalidSuccessFieldError=mc.InvalidVersionFieldError=mc.ExecutableResponseError=mc.ExecutableResponse=void 0;var ur="urn:ietf:params:oauth:token-type:saml2",kn="urn:ietf:params:oauth:token-type:id_token",bn="urn:ietf:params:oauth:token-type:jwt";class _c{version;success;expirationTime;tokenType;errorCode;errorMessage;subjectToken;constructor(e){if(!e.version)throw new xn("Executable response must contain a 'version' field.");if(e.success===void 0)throw new Rn("Executable response must contain a 'success' field.");if(this.version=e.version,this.success=e.success,this.success){if(this.expirationTime=e.expiration_time,this.tokenType=e.token_type,this.tokenType!==ur&&this.tokenType!==kn&&this.tokenType!==bn)throw new Nn(`Executable response must contain a 'token_type' field when successful and it must be one of ${kn}, ${bn}, or ${ur}.`);if(this.tokenType===ur){if(!e.saml_response)throw new lr(`Executable response must contain a 'saml_response' field when token_type=${ur}.`);this.subjectToken=e.saml_response}else{if(!e.id_token)throw new lr(`Executable response must contain a 'id_token' field when token_type=${kn} or ${bn}.`);this.subjectToken=e.id_token}}else{if(!e.code)throw new Pn("Executable response must contain a 'code' field when unsuccessful.");if(!e.message)throw new In("Executable response must contain a 'message' field when unsuccessful.");this.errorCode=e.code,this.errorMessage=e.message}}isValid(){return!this.isExpired()&&this.success}isExpired(){return this.expirationTime!==void 0&&this.expirationTime<Math.round(Date.now()/1000)}}mc.ExecutableResponse=_c;class Me extends Error{constructor(e){super(e);Object.setPrototypeOf(this,new.target.prototype)}}mc.ExecutableResponseError=Me;class xn extends Me{}mc.InvalidVersionFieldError=xn;class Rn extends Me{}mc.InvalidSuccessFieldError=Rn;class yc extends Me{}mc.InvalidExpirationTimeFieldError=yc;class Nn extends Me{}mc.InvalidTokenTypeFieldError=Nn;class Pn extends Me{}mc.InvalidCodeFieldError=Pn;class In extends Me{}mc.InvalidMessageFieldError=In;class lr extends Me{}mc.InvalidSubjectTokenError=lr});var Fn=w(function(wc){Object.defineProperty(wc,"__esModule",{value:!0});wc.PluggableAuthHandler=wc.ExecutableError=void 0;var Qe=jn(),zd=G("child_process"),Dn=G("fs");class Un extends Error{code;constructor(e,t){super(`The executable failed with exit code: ${t} and error message: ${e}.`);this.code=t,Object.setPrototypeOf(this,new.target.prototype)}}wc.ExecutableError=Un;class qn{commandComponents;timeoutMillis;outputFile;constructor(e){if(!e.command)throw Error("No command provided.");if(this.commandComponents=qn.parseCommand(e.command),this.timeoutMillis=e.timeoutMillis,!this.timeoutMillis)throw Error("No timeoutMillis provided.");this.outputFile=e.outputFile}retrieveResponseFromExecutable(e){return new Promise((t,r)=>{let n=zd.spawn(this.commandComponents[0],this.commandComponents.slice(1),{env:{...process.env,...Object.fromEntries(e)}}),s="";n.stdout.on("data",(u)=>{s+=u}),n.stderr.on("data",(u)=>{s+=u});let i=setTimeout(()=>(n.removeAllListeners(),n.kill(),r(Error("The executable failed to finish within the timeout specified."))),this.timeoutMillis);n.on("close",(u)=>{if(clearTimeout(i),u===0)try{let h=JSON.parse(s),y=new Qe.ExecutableResponse(h);return t(y)}catch(h){if(h instanceof Qe.ExecutableResponseError)return r(h);return r(new Qe.ExecutableResponseError(`The executable returned an invalid response: ${s}`))}else return r(new Un(s,u.toString()))})})}async retrieveCachedResponse(){if(!this.outputFile||this.outputFile.length===0)return;let e;try{e=await Dn.promises.realpath(this.outputFile)}catch{return}if(!(await Dn.promises.lstat(e)).isFile())return;let t=await Dn.promises.readFile(e,{encoding:"utf8"});if(t==="")return;try{let r=JSON.parse(t);if(new Qe.ExecutableResponse(r).isValid())return new Qe.ExecutableResponse(r);return}catch(r){if(r instanceof Qe.ExecutableResponseError)throw r;throw new Qe.ExecutableResponseError(`The output file contained an invalid response: ${t}`)}}static parseCommand(e){let t=e.match(/(?:[^\s"]+|"[^"]*")+/g);if(!t)throw Error(`Provided command: "${e}" could not be parsed.`);for(let r=0;r<t.length;r++)if(t[r][0]==='"'&&t[r].slice(-1)==='"')t[r]=t[r].slice(1,-1);return t}}wc.PluggableAuthHandler=qn});var Ln=w(function(Mn){Object.defineProperty(Mn,"__esModule",{value:!0});Mn.PluggableAuthClient=Mn.ExecutableError=void 0;var Qd=$e(),Zd=jn(),Cc=Fn(),ep=Fn();Object.defineProperty(Mn,"ExecutableError",{enumerable:!0,get:function(){return ep.ExecutableError}});var tp=30000,Ac=5000,vc=120000,rp="GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES",Sc=1;class Oc extends Qd.BaseExternalAccountClient{command;timeoutMillis;outputFile;handler;constructor(e){super(e);if(!e.credential_source.executable)throw Error('No valid Pluggable Auth "credential_source" provided.');if(this.command=e.credential_source.executable.command,!this.command)throw Error('No valid Pluggable Auth "credential_source" provided.');if(e.credential_source.executable.timeout_millis===void 0)this.timeoutMillis=tp;else if(this.timeoutMillis=e.credential_source.executable.timeout_millis,this.timeoutMillis<Ac||this.timeoutMillis>vc)throw Error(`Timeout must be between ${Ac} and ${vc} milliseconds.`);this.outputFile=e.credential_source.executable.output_file,this.handler=new Cc.PluggableAuthHandler({command:this.command,timeoutMillis:this.timeoutMillis,outputFile:this.outputFile}),this.credentialSourceType="executable"}async retrieveSubjectToken(){if(process.env[rp]!=="1")throw Error("Pluggable Auth executables need to be explicitly allowed to run by setting the GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES environment Variable to 1.");let e=void 0;if(this.outputFile)e=await this.handler.retrieveCachedResponse();if(!e){let t=new Map;if(t.set("GOOGLE_EXTERNAL_ACCOUNT_AUDIENCE",this.audience),t.set("GOOGLE_EXTERNAL_ACCOUNT_TOKEN_TYPE",this.subjectTokenType),t.set("GOOGLE_EXTERNAL_ACCOUNT_INTERACTIVE","0"),this.outputFile)t.set("GOOGLE_EXTERNAL_ACCOUNT_OUTPUT_FILE",this.outputFile);let r=this.getServiceAccountEmail();if(r)t.set("GOOGLE_EXTERNAL_ACCOUNT_IMPERSONATED_EMAIL",r);e=await this.handler.retrieveResponseFromExecutable(t)}if(e.version>Sc)throw Error(`Version of executable is not currently supported, maximum supported version is ${Sc}.`);if(!e.success)throw new Cc.ExecutableError(e.errorMessage,e.errorCode);if(this.outputFile){if(!e.expirationTime)throw new Zd.InvalidExpirationTimeFieldError("The executable response must contain the `expiration_time` field for successful responses when an output_file has been specified in the configuration.")}if(e.isExpired())throw Error("Executable response is expired.");return e.subjectToken}}Mn.PluggableAuthClient=Oc});var Gn=w(function(Rc){Object.defineProperty(Rc,"__esModule",{value:!0});Rc.ExternalAccountClient=void 0;var np=$e(),sp=Sn(),ip=On(),op=Ln();class xc{constructor(){throw Error("ExternalAccountClients should be initialized via: ExternalAccountClient.fromJSON(), directly via explicit constructors, eg. new AwsClient(options), new IdentityPoolClient(options), newPluggableAuthClientOptions, or via new GoogleAuth(options).getClient()")}static fromJSON(e){if(e&&e.type===np.EXTERNAL_ACCOUNT_TYPE)if(e.credential_source?.environment_id)return new ip.AwsClient(e);else if(e.credential_source?.executable)return new op.PluggableAuthClient(e);else return new sp.IdentityPoolClient(e);else return null}}Rc.ExternalAccountClient=xc});var Hn=w(function(Uc){Object.defineProperty(Uc,"__esModule",{value:!0});Uc.ExternalAccountAuthorizedUserClient=Uc.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE=void 0;var Pc=_e(),Ic=gn(),jc=ie(),ap=G("stream"),cp=$e();Uc.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE="external_account_authorized_user";var up="https://sts.{universeDomain}/v1/oauthtoken";class Bn extends Ic.OAuthClientAuthHandler{#e;constructor(e){super(e);this.#e=e.tokenRefreshEndpoint}async refreshToken(e,t){let r={...Bn.RETRY_CONFIG,url:this.#e,method:"POST",headers:t,data:new URLSearchParams({grant_type:"refresh_token",refresh_token:e}),responseType:"json"};Pc.AuthClient.setMethodName(r,"refreshToken"),this.applyClientAuthenticationOptions(r);try{let n=await this.transporter.request(r),s=n.data;return s.res=n,s}catch(n){if(n instanceof jc.GaxiosError&&n.response)throw Ic.getErrorFromOAuthErrorResponse(n.response.data,n);throw n}}}class Dc extends Pc.AuthClient{cachedAccessToken;externalAccountAuthorizedUserHandler;refreshToken;constructor(e){super(e);if(e.universe_domain)this.universeDomain=e.universe_domain;this.refreshToken=e.refresh_token;let t={confidentialClientType:"basic",clientId:e.client_id,clientSecret:e.client_secret};if(this.externalAccountAuthorizedUserHandler=new Bn({tokenRefreshEndpoint:e.token_url??up.replace("{universeDomain}",this.universeDomain),transporter:this.transporter,clientAuthentication:t}),this.cachedAccessToken=null,this.quotaProjectId=e.quota_project_id,typeof e?.eagerRefreshThresholdMillis!=="number")this.eagerRefreshThresholdMillis=cp.EXPIRATION_TIME_OFFSET;else this.eagerRefreshThresholdMillis=e.eagerRefreshThresholdMillis;this.forceRefreshOnFailure=!!e?.forceRefreshOnFailure}async getAccessToken(){if(!this.cachedAccessToken||this.isExpired(this.cachedAccessToken))await this.refreshAccessTokenAsync();return{token:this.cachedAccessToken.access_token,res:this.cachedAccessToken.res}}async getRequestHeaders(){let e=await this.getAccessToken(),t=new Headers({authorization:`Bearer ${e.token}`});return this.addSharedMetadataHeaders(t)}request(e,t){if(t)this.requestAsync(e).then((r)=>t(null,r),(r)=>t(r,r.response));else return this.requestAsync(e)}async requestAsync(e,t=!1){let r;try{let n=await this.getRequestHeaders();e.headers=jc.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,n),r=await this.transporter.request(e)}catch(n){let s=n.response;if(s){let i=s.status,u=s.config.data instanceof ap.Readable;if(!t&&(i===401||i===403)&&!u&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(e,!0)}throw n}return r}async refreshAccessTokenAsync(){let e=await this.externalAccountAuthorizedUserHandler.refreshToken(this.refreshToken);if(this.cachedAccessToken={access_token:e.access_token,expiry_date:new Date().getTime()+e.expires_in*1000,res:e.res},e.refresh_token!==void 0)this.refreshToken=e.refresh_token;return this.cachedAccessToken}isExpired(e){let t=new Date().getTime();return e.expiry_date?t>=e.expiry_date-this.eagerRefreshThresholdMillis:!1}}Uc.ExternalAccountAuthorizedUserClient=Dc});var Jn=w(function(Fc){Object.defineProperty(Fc,"__esModule",{value:!0});Fc.GdchClient=Fc.GDCH_SERVICE_ACCOUNT_TYPE=void 0;var hp=G("crypto"),fp=G("fs"),dp=G("https"),pp=Be(),gp=3600;Fc.GDCH_SERVICE_ACCOUNT_TYPE="gdch_service_account";class Kn extends pp.OAuth2Client{projectId;privateKeyId;privateKey;serviceIdentityName;tokenServerUri;caCertPath;apiAudience;lifetime;gdchOptions;caAgentPromise;cachedCaCertPath;lastCaCertReadTime=0;CA_CERT_TTL_MS=300000;constructor(e={}){super(e);this.gdchOptions=e,this.projectId=e.projectId||void 0,this.privateKeyId=e.privateKeyId,this.privateKey=e.privateKey,this.serviceIdentityName=e.serviceIdentityName,this.tokenServerUri=e.tokenServerUri,this.caCertPath=e.caCertPath,this.apiAudience=e.apiAudience,this.lifetime=e.lifetime||gp,this.credentials={refresh_token:"gdch-placeholder",expiry_date:1}}createWithGdchAudience(e){if(!e)throw Error("Audience cannot be null or empty for GDCH service account credentials.");return new Kn({...this.gdchOptions,projectId:this.projectId,privateKeyId:this.privateKeyId,privateKey:this.privateKey,serviceIdentityName:this.serviceIdentityName,tokenServerUri:this.tokenServerUri,caCertPath:this.caCertPath,lifetime:this.lifetime,apiAudience:e})}fromJSON(e){if(!e)throw Error("Must pass in a JSON object containing the GDCH credentials settings.");if(e.type!==Fc.GDCH_SERVICE_ACCOUNT_TYPE)throw Error(`The incoming JSON object does not have the "${Fc.GDCH_SERVICE_ACCOUNT_TYPE}" type`);if(e.format_version!=="1")throw Error("Only format version 1 is supported.");if(!e.project)throw Error("The incoming JSON object does not contain a project field");if(!e.private_key_id)throw Error("The incoming JSON object does not contain a private_key_id field");if(!e.private_key)throw Error("The incoming JSON object does not contain a private_key field");if(!e.name)throw Error("The incoming JSON object does not contain a name field");if(!e.token_uri)throw Error("The incoming JSON object does not contain a token_uri field");this.projectId=e.project,this.privateKeyId=e.private_key_id,this.privateKey=e.private_key,this.serviceIdentityName=e.name,this.tokenServerUri=e.token_uri,this.caCertPath=e.ca_cert_path,this.gdchOptions={...this.gdchOptions,projectId:e.project,privateKeyId:e.private_key_id,privateKey:e.private_key,serviceIdentityName:e.name,tokenServerUri:e.token_uri,caCertPath:e.ca_cert_path}}async refreshTokenNoCache(){if(!this.apiAudience)throw Error("Audience cannot be null or empty for GDCH service account credentials. Specify the audience by calling createWithGdchAudience.");if(!this.privateKey)throw Error("Private key is not configured for GDCH credentials.");if(!this.privateKeyId)throw Error("Private key ID is not configured for GDCH credentials.");if(!this.projectId)throw Error("Project is not configured for GDCH credentials.");if(!this.serviceIdentityName)throw Error("Service identity name is not configured for GDCH credentials.");if(!this.tokenServerUri)throw Error("Token server URI is not configured for GDCH credentials.");let e=this.createAssertion(),t={audience:this.apiAudience,grant_type:"urn:ietf:params:oauth:token-type:token-exchange",requested_token_type:"urn:ietf:params:oauth:token-type:access_token",subject_token:e,subject_token_type:"urn:k8s:params:oauth:token-type:serviceaccount"},r={url:this.tokenServerUri,method:"POST",headers:{"Content-Type":"application/json"},data:t,responseType:"json",timeout:1e4,retry:!0,retryConfig:{httpMethodsToRetry:["POST"],statusCodesToRetry:[[500,599]],noResponseRetries:3}};if(this.caCertPath)r.agent=await this.getCaAgent();try{let n=await this.transporter.request(r),s=n.data;if(!s.access_token)throw Error("Token response did not contain an access_token.");if(!s.expires_in)throw Error("Token response did not contain an expires_in field.");let i={access_token:s.access_token,token_type:"STS-Bearer",expiry_date:Date.now()+s.expires_in*1000};return this.emit("tokens",i),{res:n,tokens:i}}catch(n){if(n&&n.config&&n.config.data)try{if(typeof n.config.data==="string"){let s=JSON.parse(n.config.data);if(s.subject_token)s.subject_token="***REDACTED***",n.config.data=JSON.stringify(s)}else if(typeof n.config.data==="object"&&n.config.data.subject_token)n.config.data.subject_token="***REDACTED***"}catch{}if(n instanceof Error)n.message=`Error getting access token for GDCH service account: ${n.message}, iss: ${this.serviceIdentityName}`;throw n}}createAssertion(){let e={alg:"ES256",typ:"JWT",kid:this.privateKeyId},t=`system:serviceaccount:${this.projectId}:${this.serviceIdentityName}`,r=Math.floor(Date.now()/1000),n={iss:t,sub:t,iat:r,exp:r+this.lifetime,aud:this.tokenServerUri},s=this.base64UrlEncode(JSON.stringify(e)),i=this.base64UrlEncode(JSON.stringify(n)),u=`${s}.${i}`,h=hp.sign("sha256",Buffer.from(u),{key:this.privateKey,dsaEncoding:"ieee-p1363"}),y=this.base64UrlEncode(h);return`${u}.${y}`}async requestAsync(e,t=!1){if(this.caCertPath&&!e.agent){let r=(e.url||"").toString();if(!r.includes("googleapis.com")&&!r.includes("google.com"))e.agent=await this.getCaAgent()}return super.requestAsync(e,t)}getCaAgent(){if(!this.caCertPath){this.caAgentPromise=void 0,this.cachedCaCertPath=void 0,this.lastCaCertReadTime=0;return}let e=Date.now(),t=e-this.lastCaCertReadTime>this.CA_CERT_TTL_MS;if(this.caAgentPromise&&this.caCertPath===this.cachedCaCertPath&&!t)return this.caAgentPromise;this.cachedCaCertPath=this.caCertPath,this.lastCaCertReadTime=e;let r=this.caCertPath;return this.caAgentPromise=(async()=>{try{let n=await fp.promises.readFile(r);return new dp.Agent({ca:n})}catch(n){if(this.cachedCaCertPath===r)this.caAgentPromise=void 0,this.cachedCaCertPath=void 0,this.lastCaCertReadTime=0;if(n instanceof Error)n.message=`Error reading certificate file from CA cert path, value '${r}': ${n.message}`;throw n}})(),this.caAgentPromise}toJSON(){return{...this,privateKey:this.privateKey?"***REDACTED***":void 0,_clientSecret:this._clientSecret?"***REDACTED***":void 0,apiKey:this.apiKey?"***REDACTED***":void 0,gdchOptions:this.gdchOptions?{...this.gdchOptions,privateKey:this.gdchOptions.privateKey?"***REDACTED***":void 0,clientSecret:this.gdchOptions.clientSecret?"***REDACTED***":void 0,client_secret:this.gdchOptions.client_secret?"***REDACTED***":void 0,apiKey:this.gdchOptions.apiKey?"***REDACTED***":void 0,credentials:this.gdchOptions.credentials?{...this.gdchOptions.credentials,access_token:this.gdchOptions.credentials.access_token?"***REDACTED***":void 0,refresh_token:this.gdchOptions.credentials.refresh_token?"***REDACTED***":void 0}:void 0}:void 0,credentials:{...this.credentials,access_token:this.credentials?.access_token?"***REDACTED***":void 0,refresh_token:this.credentials?.refresh_token?"***REDACTED***":void 0}}}[Symbol.for("nodejs.util.inspect.custom")](){return this.toJSON()}base64UrlEncode(e){return(typeof e==="string"?Buffer.from(e):e).toString("base64url")}}Fc.GdchClient=Kn});var Jc=w(function($c){Object.defineProperty($c,"__esModule",{value:!0});$c.GoogleAuth=$c.GoogleAuthExceptionMessages=void 0;var _p=G("child_process"),xt=G("fs"),yp=ie(),Rt=yt(),mp=G("os"),hr=G("path"),Ep=mt(),wp=Wr(),Tp=Yr(),Ap=zr(),ut=fn(),Gc=dn(),ht=pn(),vp=Gn(),bt=$e(),Vn=_e(),Bc=Hn(),Wn=Jn(),Lc=Oe();$c.GoogleAuthExceptionMessages={API_KEY_WITH_CREDENTIALS:"API Keys and Credentials are mutually exclusive authentication methods and cannot be used together.",NO_PROJECT_ID_FOUND:`Unable to detect a Project Id in the current environment.
|
|
26
26
|
To learn more about authentication and Google APIs, visit:
|
|
27
27
|
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment.
|
|
28
28
|
To learn more about authentication and Google APIs, visit:
|
|
29
29
|
https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.",NO_UNIVERSE_DOMAIN_FOUND:`Unable to detect a Universe Domain in the current environment.
|
|
30
30
|
To learn more about Universe Domain retrieval, visit:
|
|
31
|
-
https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class Hc{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findProjectIdPromise;_cachedProjectId;jsonContent=null;apiKey;cachedCredential=null;#e=null;defaultScopes;keyFilename;scopes;clientOptions={};constructor(e={}){if(this._cachedProjectId=e.projectId||null,this.cachedCredential=e.authClient||null,this.keyFilename=e.keyFilename||e.keyFile,this.scopes=e.scopes,this.clientOptions=e.clientOptions||{},this.jsonContent=e.credentials||null,this.apiKey=e.apiKey||this.clientOptions.apiKey||null,this.apiKey&&(this.jsonContent||this.clientOptions.credentials))throw RangeError($c.GoogleAuthExceptionMessages.API_KEY_WITH_CREDENTIALS);if(e.universeDomain)this.clientOptions.universeDomain=e.universeDomain}setGapicJWTValues(e){e.defaultServicePath=this.defaultServicePath,e.useJWTAccessWithScope=this.useJWTAccessWithScope,e.defaultScopes=this.defaultScopes}getProjectId(e){if(e)this.getProjectIdAsync().then((t)=>e(null,t),e);else return this.getProjectIdAsync()}async getProjectIdOptional(){try{return await this.getProjectId()}catch(e){if(e instanceof Error&&e.message===$c.GoogleAuthExceptionMessages.NO_PROJECT_ID_FOUND)return null;else throw e}}async findAndCacheProjectId(){let e=null;if(e||=await this.getProductionProjectId(),e||=await this.getFileProjectId(),e||=await this.getDefaultServiceProjectId(),e||=await this.getGCEProjectId(),e||=await this.getExternalAccountClientProjectId(),e)return this._cachedProjectId=e,e;else throw Error($c.GoogleAuthExceptionMessages.NO_PROJECT_ID_FOUND)}async getProjectIdAsync(){if(this._cachedProjectId)return this._cachedProjectId;if(!this._findProjectIdPromise)this._findProjectIdPromise=this.findAndCacheProjectId();return this._findProjectIdPromise}async getUniverseDomainFromMetadataServer(){let e;try{e=await Rt.universe("universe-domain"),e||=Vn.DEFAULT_UNIVERSE}catch(t){if(t&&t?.response?.status===404)e=Vn.DEFAULT_UNIVERSE;else throw t}return e}async getUniverseDomain(){let e=Lc.originalOrCamelOptions(this.clientOptions).get("universe_domain");try{e??=(await this.getClient()).universeDomain}catch{e??=Vn.DEFAULT_UNIVERSE}return e}getAnyScopes(){return this.scopes||this.defaultScopes}getApplicationDefault(e={},t){let r;if(typeof e==="function")t=e;else r=e;if(t)this.getApplicationDefaultAsync(r).then((n)=>t(null,n.credential,n.projectId),t);else return this.getApplicationDefaultAsync(r)}async getApplicationDefaultAsync(e={}){if(this.cachedCredential)return await this.#t(this.cachedCredential,null);let t;if(t=await this._tryGetApplicationCredentialsFromEnvironmentVariable(e),t){if(t instanceof ut.JWT)t.scopes=this.scopes;else if(t instanceof bt.BaseExternalAccountClient)t.scopes=this.getAnyScopes();return await this.#t(t)}if(t=await this._tryGetApplicationCredentialsFromWellKnownFile(e),t){if(t instanceof ut.JWT)t.scopes=this.scopes;else if(t instanceof bt.BaseExternalAccountClient)t.scopes=this.getAnyScopes();return await this.#t(t)}if(await this._checkIsGCE())return e.scopes=this.getAnyScopes(),await this.#t(new wp.Compute(e));throw Error($c.GoogleAuthExceptionMessages.NO_ADC_FOUND)}async#t(e,t=process.env.GOOGLE_CLOUD_QUOTA_PROJECT||null){let r=await this.getProjectIdOptional();if(t)e.quotaProjectId=t;return this.cachedCredential=e,{credential:e,projectId:r}}async _checkIsGCE(){if(this.checkIsGCE===void 0)this.checkIsGCE=Rt.getGCPResidency()||await Rt.isAvailable();return this.checkIsGCE}async _tryGetApplicationCredentialsFromEnvironmentVariable(e){let t=process.env.GOOGLE_APPLICATION_CREDENTIALS||process.env.google_application_credentials;if(!t||t.length===0)return null;try{return await this._getApplicationCredentialsFromFilePath(t,e)}catch(r){if(r instanceof Error)r.message=`Unable to read the credential file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable: ${r.message}`;throw r}}async _tryGetApplicationCredentialsFromWellKnownFile(e){let t=process.env.CLOUDSDK_CONFIG;if(!t)if(this._isWindows()){if(process.env.APPDATA)t=hr.join(process.env.APPDATA,"gcloud")}else{let s=process.env.HOME;if(s)t=hr.join(s,".config","gcloud")}if(!t)return null;let r=hr.join(t,"application_default_credentials.json");if(!xt.existsSync(r))return null;return await this._getApplicationCredentialsFromFilePath(r,e)}async _getApplicationCredentialsFromFilePath(e,t={}){if(!e||e.length===0)throw Error("The file path is invalid.");try{if(e=xt.realpathSync(e),!xt.lstatSync(e).isFile())throw Error()}catch(n){if(n instanceof Error)n.message=`The file at ${e} does not exist, or it is not a file. ${n.message}`;throw n}let r=xt.createReadStream(e);return this.fromStream(r,t)}fromImpersonatedJSON(e){if(!e)throw Error("Must pass in a JSON object containing an impersonated refresh token");if(e.type!==ht.IMPERSONATED_ACCOUNT_TYPE)throw Error(`The incoming JSON object does not have the "${ht.IMPERSONATED_ACCOUNT_TYPE}" type`);if(!e.source_credentials)throw Error("The incoming JSON object does not contain a source_credentials field");if(!e.service_account_impersonation_url)throw Error("The incoming JSON object does not contain a service_account_impersonation_url field");let t=this.fromJSON(e.source_credentials);if(e.service_account_impersonation_url?.length>256)throw RangeError(`Target principal is too long: ${e.service_account_impersonation_url}`);let r=/(?<target>[^/]+):(generateAccessToken|generateIdToken)$/.exec(e.service_account_impersonation_url)?.groups?.target;if(!r)throw RangeError(`Cannot extract target principal from ${e.service_account_impersonation_url}`);let n=(this.scopes||e.scopes||this.defaultScopes)??[];return new ht.Impersonated({...e,sourceClient:t,targetPrincipal:r,targetScopes:Array.isArray(n)?n:[n]})}fromJSON(e,t={}){let r,n=Lc.originalOrCamelOptions(t).get("universe_domain");if(e.type===Gc.USER_REFRESH_ACCOUNT_TYPE)r=new Gc.UserRefreshClient(t),r.fromJSON(e);else if(e.type===ht.IMPERSONATED_ACCOUNT_TYPE)r=this.fromImpersonatedJSON(e);else if(e.type===bt.EXTERNAL_ACCOUNT_TYPE)r=vp.ExternalAccountClient.fromJSON({...e,...t}),r.scopes=this.getAnyScopes();else if(e.type===Bc.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE)r=new Bc.ExternalAccountAuthorizedUserClient({...e,...t});else if(e.type===Wn.GDCH_SERVICE_ACCOUNT_TYPE)r=new Wn.GdchClient(t),r.fromJSON(e);else t.scopes=this.scopes,r=new ut.JWT(t),this.setGapicJWTValues(r),r.fromJSON(e);if(n)r.universeDomain=n;return r}_cacheClientFromJSON(e,t){let r=this.fromJSON(e,t);return this.jsonContent=e,this.cachedCredential=r,r}fromStream(e,t={},r){let n={};if(typeof t==="function")r=t;else n=t;if(r)this.fromStreamAsync(e,n).then((s)=>r(null,s),r);else return this.fromStreamAsync(e,n)}fromStreamAsync(e,t){return new Promise((r,n)=>{if(!e)throw Error("Must pass in a stream containing the Google auth settings.");let s=[];e.setEncoding("utf8").on("error",n).on("data",(i)=>s.push(i)).on("end",()=>{try{try{let i=JSON.parse(s.join("")),u=this._cacheClientFromJSON(i,t);return r(u)}catch(i){if(!this.keyFilename)throw i;let u=new ut.JWT({...this.clientOptions,keyFile:this.keyFilename});return this.cachedCredential=u,this.setGapicJWTValues(u),r(u)}}catch(i){return n(i)}})})}fromAPIKey(e,t={}){return new ut.JWT({...t,apiKey:e})}_isWindows(){let e=mp.platform();if(e&&e.length>=3){if(e.substring(0,3).toLowerCase()==="win")return!0}return!1}async getDefaultServiceProjectId(){return new Promise((e)=>{_p.exec("gcloud config config-helper --format json",(t,r)=>{if(!t&&r)try{let n=JSON.parse(r).configuration.properties.core.project;e(n);return}catch(n){}e(null)})})}getProductionProjectId(){return process.env.GCLOUD_PROJECT||process.env.GOOGLE_CLOUD_PROJECT||process.env.gcloud_project||process.env.google_cloud_project}async getFileProjectId(){if(this.cachedCredential)return this.cachedCredential.projectId;if(this.keyFilename){let t=await this.getClient();if(t&&t.projectId)return t.projectId}let e=await this._tryGetApplicationCredentialsFromEnvironmentVariable();if(e)return e.projectId;else return null}async getExternalAccountClientProjectId(){if(!this.jsonContent||this.jsonContent.type!==bt.EXTERNAL_ACCOUNT_TYPE)return null;return await(await this.getClient()).getProjectId()}async getGCEProjectId(){try{return await Rt.project("project-id")}catch(e){return null}}getCredentials(e){if(e)this.getCredentialsAsync().then((t)=>e(null,t),e);else return this.getCredentialsAsync()}async getCredentialsAsync(){let e=await this.getClient();if(e instanceof ht.Impersonated)return{client_email:e.getTargetPrincipal()};if(e instanceof bt.BaseExternalAccountClient){let t=e.getServiceAccountEmail();if(t)return{client_email:t,universe_domain:e.universeDomain}}if(this.jsonContent)return{client_email:this.jsonContent.client_email,private_key:this.jsonContent.private_key,universe_domain:this.jsonContent.universe_domain};if(await this._checkIsGCE()){let[t,r]=await Promise.all([Rt.instance("service-accounts/default/email"),this.getUniverseDomain()]);return{client_email:t,universe_domain:r}}throw Error($c.GoogleAuthExceptionMessages.NO_CREDENTIALS_FOUND)}async getClient(){if(this.cachedCredential)return this.cachedCredential;this.#e=this.#e||this.#r();try{let e=await this.#e;if(e instanceof Wn.GdchClient&&!e.apiAudience){let t=this.clientOptions,r=t.apiEndpoint||t.servicePath;if(r){let s=`${r.startsWith("http")?"":"https://"}${r}`.replace(/\/+$/,""),i=e.createWithGdchAudience(s);return this.cachedCredential=i,i}}return e}finally{this.#e=null}}async#r(){if(this.jsonContent)return this._cacheClientFromJSON(this.jsonContent,this.clientOptions);else if(this.keyFilename){let e=hr.resolve(this.keyFilename),t=xt.createReadStream(e);return await this.fromStreamAsync(t,this.clientOptions)}else if(this.apiKey){let e=await this.fromAPIKey(this.apiKey,this.clientOptions);e.scopes=this.scopes;let{credential:t}=await this.#t(e);return t}else{let{credential:e}=await this.getApplicationDefaultAsync(this.clientOptions);return e}}async getIdTokenClient(e){let t=await this.getClient();if(!("fetchIdToken"in t))throw Error("Cannot fetch ID token in this environment, use GCE or set the GOOGLE_APPLICATION_CREDENTIALS environment variable to a service account credentials JSON file.");return new Tp.IdTokenClient({targetAudience:e,idTokenProvider:t})}async getAccessToken(){return(await(await this.getClient()).getAccessToken()).token}async getRequestHeaders(e){return(await this.getClient()).getRequestHeaders(e)}async authorizeRequest(e={}){let t=e.url,n=await(await this.getClient()).getRequestHeaders(t);return e.headers=yp.Gaxios.mergeHeaders(e.headers,n),e}async fetch(...e){return(await this.getClient()).fetch(...e)}async request(e){return(await this.getClient()).request(e)}getEnv(){return Ap.getEnv()}async sign(e,t){let r=await this.getClient(),n=await this.getUniverseDomain();if(t=t||`https://iamcredentials.${n}/v1/projects/-/serviceAccounts/`,r instanceof ht.Impersonated)return(await r.sign(e)).signedBlob;let s=Ep.createCrypto();if(r instanceof ut.JWT&&r.key)return await s.sign(r.key,e);let i=await this.getCredentials();if(!i.client_email)throw Error("Cannot sign data without `client_email`.");return this.signBlob(s,i.client_email,e,t)}async signBlob(e,t,r,n){let s=new URL(n+`${t}:signBlob`);return(await this.request({method:"POST",url:s.href,data:{payload:e.encodeBase64StringUtf8(r)},retry:!0,retryConfig:{httpMethodsToRetry:["POST"]}})).data.signedBlob}}$c.GoogleAuth=Hc});var zc=w(function(Wc){Object.defineProperty(Wc,"__esModule",{value:!0});Wc.IAMAuth=void 0;class Vc{selector;token;constructor(e,t){this.selector=e,this.token=t,this.selector=e,this.token=t}getRequestHeaders(){return{"x-goog-iam-authority-selector":this.selector,"x-goog-iam-authorization-token":this.token}}}Wc.IAMAuth=Vc});var eu=w(function(Qc){Object.defineProperty(Qc,"__esModule",{value:!0});Qc.DownscopedClient=Qc.EXPIRATION_TIME_OFFSET=Qc.MAX_ACCESS_BOUNDARY_RULES_COUNT=void 0;var Sp=ie(),Cp=G("stream"),Yn=_e(),Op=er(),kp="urn:ietf:params:oauth:grant-type:token-exchange",bp="urn:ietf:params:oauth:token-type:access_token",xp="urn:ietf:params:oauth:token-type:access_token";Qc.MAX_ACCESS_BOUNDARY_RULES_COUNT=10;Qc.EXPIRATION_TIME_OFFSET=300000;class Xc extends Yn.AuthClient{authClient;credentialAccessBoundary;cachedDownscopedAccessToken;stsCredential;constructor(e,t={accessBoundary:{accessBoundaryRules:[]}}){super(e instanceof Yn.AuthClient?{}:e);if(e instanceof Yn.AuthClient)this.authClient=e,this.credentialAccessBoundary=t;else this.authClient=e.authClient,this.credentialAccessBoundary=e.credentialAccessBoundary;if(this.credentialAccessBoundary.accessBoundary.accessBoundaryRules.length===0)throw Error("At least one access boundary rule needs to be defined.");else if(this.credentialAccessBoundary.accessBoundary.accessBoundaryRules.length>Qc.MAX_ACCESS_BOUNDARY_RULES_COUNT)throw Error(`The provided access boundary has more than ${Qc.MAX_ACCESS_BOUNDARY_RULES_COUNT} access boundary rules.`);for(let r of this.credentialAccessBoundary.accessBoundary.accessBoundaryRules)if(r.availablePermissions.length===0)throw Error("At least one permission should be defined in access boundary rules.");this.stsCredential=new Op.StsCredentials({tokenExchangeEndpoint:`https://sts.${this.universeDomain}/v1/token`}),this.cachedDownscopedAccessToken=null}setCredentials(e){if(!e.expiry_date)throw Error("The access token expiry_date field is missing in the provided credentials.");super.setCredentials(e),this.cachedDownscopedAccessToken=e}async getAccessToken(){if(!this.cachedDownscopedAccessToken||this.isExpired(this.cachedDownscopedAccessToken))await this.refreshAccessTokenAsync();return{token:this.cachedDownscopedAccessToken.access_token,expirationTime:this.cachedDownscopedAccessToken.expiry_date,res:this.cachedDownscopedAccessToken.res}}async getRequestHeaders(){let e=await this.getAccessToken(),t=new Headers({authorization:`Bearer ${e.token}`});return this.addSharedMetadataHeaders(t)}request(e,t){if(t)this.requestAsync(e).then((r)=>t(null,r),(r)=>t(r,r.response));else return this.requestAsync(e)}async requestAsync(e,t=!1){let r;try{let n=await this.getRequestHeaders();e.headers=Sp.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,n),r=await this.transporter.request(e)}catch(n){let s=n.response;if(s){let i=s.status,u=s.config.data instanceof Cp.Readable;if(!t&&(i===401||i===403)&&!u&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(e,!0)}throw n}return r}async refreshAccessTokenAsync(){let e=(await this.authClient.getAccessToken()).token,t={grantType:kp,requestedTokenType:bp,subjectToken:e,subjectTokenType:xp},r=await this.stsCredential.exchangeToken(t,void 0,this.credentialAccessBoundary),n=this.authClient.credentials?.expiry_date||null,s=r.expires_in?new Date().getTime()+r.expires_in*1000:n;return this.cachedDownscopedAccessToken={access_token:r.access_token,expiry_date:s,res:r.res},this.credentials={},Object.assign(this.credentials,this.cachedDownscopedAccessToken),delete this.credentials.res,this.emit("tokens",{refresh_token:null,expiry_date:this.cachedDownscopedAccessToken.expiry_date,access_token:this.cachedDownscopedAccessToken.access_token,token_type:"Bearer",id_token:null}),this.cachedDownscopedAccessToken}isExpired(e){let t=new Date().getTime();return e.expiry_date?t>=e.expiry_date-this.eagerRefreshThresholdMillis:!1}}Qc.DownscopedClient=Xc});var su=w(function(ru){Object.defineProperty(ru,"__esModule",{value:!0});ru.PassThroughClient=void 0;var Np=_e();class tu extends Np.AuthClient{async request(e){return this.transporter.request(e)}async getAccessToken(){return{}}async getRequestHeaders(){return new Headers}}ru.PassThroughClient=tu});var Ac=w(function(O){var Pp=O&&O.__createBinding||(Object.create?function(e,t,r,n){if(n===void 0)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable))s={enumerable:!0,get:function(){return t[r]}};Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===void 0)n=r;e[n]=t[r]}),Ip=O&&O.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))Pp(t,e,r)};Object.defineProperty(O,"__esModule",{value:!0});O.GoogleAuth=O.auth=O.GDCH_SERVICE_ACCOUNT_TYPE=O.GdchClient=O.PassThroughClient=O.ExternalAccountAuthorizedUserClient=O.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE=O.ExecutableError=O.PluggableAuthClient=O.DownscopedClient=O.BaseExternalAccountClient=O.ExternalAccountClient=O.IdentityPoolClient=O.AwsRequestSigner=O.AwsClient=O.UserRefreshClient=O.LoginTicket=O.ClientAuthentication=O.OAuth2Client=O.CodeChallengeMethod=O.Impersonated=O.JWT=O.JWTAccess=O.IdTokenClient=O.IAMAuth=O.GCPEnv=O.Compute=O.DEFAULT_UNIVERSE=O.AuthClient=O.gaxios=O.gcpMetadata=void 0;var iu=Jc();Object.defineProperty(O,"GoogleAuth",{enumerable:!0,get:function(){return iu.GoogleAuth}});O.gcpMetadata=yt();O.gaxios=ie();var ou=_e();Object.defineProperty(O,"AuthClient",{enumerable:!0,get:function(){return ou.AuthClient}});Object.defineProperty(O,"DEFAULT_UNIVERSE",{enumerable:!0,get:function(){return ou.DEFAULT_UNIVERSE}});var jp=Wr();Object.defineProperty(O,"Compute",{enumerable:!0,get:function(){return jp.Compute}});var Dp=zr();Object.defineProperty(O,"GCPEnv",{enumerable:!0,get:function(){return Dp.GCPEnv}});var Up=zc();Object.defineProperty(O,"IAMAuth",{enumerable:!0,get:function(){return Up.IAMAuth}});var qp=Yr();Object.defineProperty(O,"IdTokenClient",{enumerable:!0,get:function(){return qp.IdTokenClient}});var Fp=ln();Object.defineProperty(O,"JWTAccess",{enumerable:!0,get:function(){return Fp.JWTAccess}});var Mp=fn();Object.defineProperty(O,"JWT",{enumerable:!0,get:function(){return Mp.JWT}});var Lp=pn();Object.defineProperty(O,"Impersonated",{enumerable:!0,get:function(){return Lp.Impersonated}});var Xn=Be();Object.defineProperty(O,"CodeChallengeMethod",{enumerable:!0,get:function(){return Xn.CodeChallengeMethod}});Object.defineProperty(O,"OAuth2Client",{enumerable:!0,get:function(){return Xn.OAuth2Client}});Object.defineProperty(O,"ClientAuthentication",{enumerable:!0,get:function(){return Xn.ClientAuthentication}});var Gp=Jr();Object.defineProperty(O,"LoginTicket",{enumerable:!0,get:function(){return Gp.LoginTicket}});var Bp=dn();Object.defineProperty(O,"UserRefreshClient",{enumerable:!0,get:function(){return Bp.UserRefreshClient}});var Hp=On();Object.defineProperty(O,"AwsClient",{enumerable:!0,get:function(){return Hp.AwsClient}});var $p=Cn();Object.defineProperty(O,"AwsRequestSigner",{enumerable:!0,get:function(){return $p.AwsRequestSigner}});var Kp=Sn();Object.defineProperty(O,"IdentityPoolClient",{enumerable:!0,get:function(){return Kp.IdentityPoolClient}});var Jp=Gn();Object.defineProperty(O,"ExternalAccountClient",{enumerable:!0,get:function(){return Jp.ExternalAccountClient}});var Vp=$e();Object.defineProperty(O,"BaseExternalAccountClient",{enumerable:!0,get:function(){return Vp.BaseExternalAccountClient}});var Wp=eu();Object.defineProperty(O,"DownscopedClient",{enumerable:!0,get:function(){return Wp.DownscopedClient}});var au=Ln();Object.defineProperty(O,"PluggableAuthClient",{enumerable:!0,get:function(){return au.PluggableAuthClient}});Object.defineProperty(O,"ExecutableError",{enumerable:!0,get:function(){return au.ExecutableError}});var cu=Hn();Object.defineProperty(O,"EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE",{enumerable:!0,get:function(){return cu.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE}});Object.defineProperty(O,"ExternalAccountAuthorizedUserClient",{enumerable:!0,get:function(){return cu.ExternalAccountAuthorizedUserClient}});var Yp=su();Object.defineProperty(O,"PassThroughClient",{enumerable:!0,get:function(){return Yp.PassThroughClient}});var uu=Jn();Object.defineProperty(O,"GdchClient",{enumerable:!0,get:function(){return uu.GdchClient}});Object.defineProperty(O,"GDCH_SERVICE_ACCOUNT_TYPE",{enumerable:!0,get:function(){return uu.GDCH_SERVICE_ACCOUNT_TYPE}});Ip(cn(),O);var zp=new iu.GoogleAuth;O.auth=zp});
|
|
32
|
-
export{Cu,
|
|
31
|
+
https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class Hc{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findProjectIdPromise;_cachedProjectId;jsonContent=null;apiKey;cachedCredential=null;#e=null;defaultScopes;keyFilename;scopes;clientOptions={};constructor(e={}){if(this._cachedProjectId=e.projectId||null,this.cachedCredential=e.authClient||null,this.keyFilename=e.keyFilename||e.keyFile,this.scopes=e.scopes,this.clientOptions=e.clientOptions||{},this.jsonContent=e.credentials||null,this.apiKey=e.apiKey||this.clientOptions.apiKey||null,this.apiKey&&(this.jsonContent||this.clientOptions.credentials))throw RangeError($c.GoogleAuthExceptionMessages.API_KEY_WITH_CREDENTIALS);if(e.universeDomain)this.clientOptions.universeDomain=e.universeDomain}setGapicJWTValues(e){e.defaultServicePath=this.defaultServicePath,e.useJWTAccessWithScope=this.useJWTAccessWithScope,e.defaultScopes=this.defaultScopes}getProjectId(e){if(e)this.getProjectIdAsync().then((t)=>e(null,t),e);else return this.getProjectIdAsync()}async getProjectIdOptional(){try{return await this.getProjectId()}catch(e){if(e instanceof Error&&e.message===$c.GoogleAuthExceptionMessages.NO_PROJECT_ID_FOUND)return null;else throw e}}async findAndCacheProjectId(){let e=null;if(e||=await this.getProductionProjectId(),e||=await this.getFileProjectId(),e||=await this.getDefaultServiceProjectId(),e||=await this.getGCEProjectId(),e||=await this.getExternalAccountClientProjectId(),e)return this._cachedProjectId=e,e;else throw Error($c.GoogleAuthExceptionMessages.NO_PROJECT_ID_FOUND)}async getProjectIdAsync(){if(this._cachedProjectId)return this._cachedProjectId;if(!this._findProjectIdPromise)this._findProjectIdPromise=this.findAndCacheProjectId();return this._findProjectIdPromise}async getUniverseDomainFromMetadataServer(){let e;try{e=await Rt.universe("universe-domain"),e||=Vn.DEFAULT_UNIVERSE}catch(t){if(t&&t?.response?.status===404)e=Vn.DEFAULT_UNIVERSE;else throw t}return e}async getUniverseDomain(){let e=Lc.originalOrCamelOptions(this.clientOptions).get("universe_domain");try{e??=(await this.getClient()).universeDomain}catch{e??=Vn.DEFAULT_UNIVERSE}return e}getAnyScopes(){return this.scopes||this.defaultScopes}getApplicationDefault(e={},t){let r;if(typeof e==="function")t=e;else r=e;if(t)this.getApplicationDefaultAsync(r).then((n)=>t(null,n.credential,n.projectId),t);else return this.getApplicationDefaultAsync(r)}async getApplicationDefaultAsync(e={}){if(this.cachedCredential)return await this.#t(this.cachedCredential,null);let t;if(t=await this._tryGetApplicationCredentialsFromEnvironmentVariable(e),t){if(t instanceof ut.JWT)t.scopes=this.scopes;else if(t instanceof bt.BaseExternalAccountClient)t.scopes=this.getAnyScopes();return await this.#t(t)}if(t=await this._tryGetApplicationCredentialsFromWellKnownFile(e),t){if(t instanceof ut.JWT)t.scopes=this.scopes;else if(t instanceof bt.BaseExternalAccountClient)t.scopes=this.getAnyScopes();return await this.#t(t)}if(await this._checkIsGCE())return e.scopes=this.getAnyScopes(),await this.#t(new wp.Compute(e));throw Error($c.GoogleAuthExceptionMessages.NO_ADC_FOUND)}async#t(e,t=process.env.GOOGLE_CLOUD_QUOTA_PROJECT||null){let r=await this.getProjectIdOptional();if(t)e.quotaProjectId=t;return this.cachedCredential=e,{credential:e,projectId:r}}async _checkIsGCE(){if(this.checkIsGCE===void 0)this.checkIsGCE=Rt.getGCPResidency()||await Rt.isAvailable();return this.checkIsGCE}async _tryGetApplicationCredentialsFromEnvironmentVariable(e){let t=process.env.GOOGLE_APPLICATION_CREDENTIALS||process.env.google_application_credentials;if(!t||t.length===0)return null;try{return await this._getApplicationCredentialsFromFilePath(t,e)}catch(r){if(r instanceof Error)r.message=`Unable to read the credential file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable: ${r.message}`;throw r}}async _tryGetApplicationCredentialsFromWellKnownFile(e){let t=process.env.CLOUDSDK_CONFIG;if(!t)if(this._isWindows()){if(process.env.APPDATA)t=hr.join(process.env.APPDATA,"gcloud")}else{let s=process.env.HOME;if(s)t=hr.join(s,".config","gcloud")}if(!t)return null;let r=hr.join(t,"application_default_credentials.json");if(!xt.existsSync(r))return null;return await this._getApplicationCredentialsFromFilePath(r,e)}async _getApplicationCredentialsFromFilePath(e,t={}){if(!e||e.length===0)throw Error("The file path is invalid.");try{if(e=xt.realpathSync(e),!xt.lstatSync(e).isFile())throw Error()}catch(n){if(n instanceof Error)n.message=`The file at ${e} does not exist, or it is not a file. ${n.message}`;throw n}let r=xt.createReadStream(e);return this.fromStream(r,t)}fromImpersonatedJSON(e){if(!e)throw Error("Must pass in a JSON object containing an impersonated refresh token");if(e.type!==ht.IMPERSONATED_ACCOUNT_TYPE)throw Error(`The incoming JSON object does not have the "${ht.IMPERSONATED_ACCOUNT_TYPE}" type`);if(!e.source_credentials)throw Error("The incoming JSON object does not contain a source_credentials field");if(!e.service_account_impersonation_url)throw Error("The incoming JSON object does not contain a service_account_impersonation_url field");let t=this.fromJSON(e.source_credentials);if(e.service_account_impersonation_url?.length>256)throw RangeError(`Target principal is too long: ${e.service_account_impersonation_url}`);let r=/(?<target>[^/]+):(generateAccessToken|generateIdToken)$/.exec(e.service_account_impersonation_url)?.groups?.target;if(!r)throw RangeError(`Cannot extract target principal from ${e.service_account_impersonation_url}`);let n=(this.scopes||e.scopes||this.defaultScopes)??[];return new ht.Impersonated({...e,sourceClient:t,targetPrincipal:r,targetScopes:Array.isArray(n)?n:[n]})}fromJSON(e,t={}){let r,n=Lc.originalOrCamelOptions(t).get("universe_domain");if(e.type===Gc.USER_REFRESH_ACCOUNT_TYPE)r=new Gc.UserRefreshClient(t),r.fromJSON(e);else if(e.type===ht.IMPERSONATED_ACCOUNT_TYPE)r=this.fromImpersonatedJSON(e);else if(e.type===bt.EXTERNAL_ACCOUNT_TYPE)r=vp.ExternalAccountClient.fromJSON({...e,...t}),r.scopes=this.getAnyScopes();else if(e.type===Bc.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE)r=new Bc.ExternalAccountAuthorizedUserClient({...e,...t});else if(e.type===Wn.GDCH_SERVICE_ACCOUNT_TYPE)r=new Wn.GdchClient(t),r.fromJSON(e);else t.scopes=this.scopes,r=new ut.JWT(t),this.setGapicJWTValues(r),r.fromJSON(e);if(n)r.universeDomain=n;return r}_cacheClientFromJSON(e,t){let r=this.fromJSON(e,t);return this.jsonContent=e,this.cachedCredential=r,r}fromStream(e,t={},r){let n={};if(typeof t==="function")r=t;else n=t;if(r)this.fromStreamAsync(e,n).then((s)=>r(null,s),r);else return this.fromStreamAsync(e,n)}fromStreamAsync(e,t){return new Promise((r,n)=>{if(!e)throw Error("Must pass in a stream containing the Google auth settings.");let s=[];e.setEncoding("utf8").on("error",n).on("data",(i)=>s.push(i)).on("end",()=>{try{try{let i=JSON.parse(s.join("")),u=this._cacheClientFromJSON(i,t);return r(u)}catch(i){if(!this.keyFilename)throw i;let u=new ut.JWT({...this.clientOptions,keyFile:this.keyFilename});return this.cachedCredential=u,this.setGapicJWTValues(u),r(u)}}catch(i){return n(i)}})})}fromAPIKey(e,t={}){return new ut.JWT({...t,apiKey:e})}_isWindows(){let e=mp.platform();if(e&&e.length>=3){if(e.substring(0,3).toLowerCase()==="win")return!0}return!1}async getDefaultServiceProjectId(){return new Promise((e)=>{_p.exec("gcloud config config-helper --format json",(t,r)=>{if(!t&&r)try{let n=JSON.parse(r).configuration.properties.core.project;e(n);return}catch(n){}e(null)})})}getProductionProjectId(){return process.env.GCLOUD_PROJECT||process.env.GOOGLE_CLOUD_PROJECT||process.env.gcloud_project||process.env.google_cloud_project}async getFileProjectId(){if(this.cachedCredential)return this.cachedCredential.projectId;if(this.keyFilename){let t=await this.getClient();if(t&&t.projectId)return t.projectId}let e=await this._tryGetApplicationCredentialsFromEnvironmentVariable();if(e)return e.projectId;else return null}async getExternalAccountClientProjectId(){if(!this.jsonContent||this.jsonContent.type!==bt.EXTERNAL_ACCOUNT_TYPE)return null;return await(await this.getClient()).getProjectId()}async getGCEProjectId(){try{return await Rt.project("project-id")}catch(e){return null}}getCredentials(e){if(e)this.getCredentialsAsync().then((t)=>e(null,t),e);else return this.getCredentialsAsync()}async getCredentialsAsync(){let e=await this.getClient();if(e instanceof ht.Impersonated)return{client_email:e.getTargetPrincipal()};if(e instanceof bt.BaseExternalAccountClient){let t=e.getServiceAccountEmail();if(t)return{client_email:t,universe_domain:e.universeDomain}}if(this.jsonContent)return{client_email:this.jsonContent.client_email,private_key:this.jsonContent.private_key,universe_domain:this.jsonContent.universe_domain};if(await this._checkIsGCE()){let[t,r]=await Promise.all([Rt.instance("service-accounts/default/email"),this.getUniverseDomain()]);return{client_email:t,universe_domain:r}}throw Error($c.GoogleAuthExceptionMessages.NO_CREDENTIALS_FOUND)}async getClient(){if(this.cachedCredential)return this.cachedCredential;this.#e=this.#e||this.#r();try{let e=await this.#e;if(e instanceof Wn.GdchClient&&!e.apiAudience){let t=this.clientOptions,r=t.apiEndpoint||t.servicePath;if(r){let s=`${r.startsWith("http")?"":"https://"}${r}`.replace(/\/+$/,""),i=e.createWithGdchAudience(s);return this.cachedCredential=i,i}}return e}finally{this.#e=null}}async#r(){if(this.jsonContent)return this._cacheClientFromJSON(this.jsonContent,this.clientOptions);else if(this.keyFilename){let e=hr.resolve(this.keyFilename),t=xt.createReadStream(e);return await this.fromStreamAsync(t,this.clientOptions)}else if(this.apiKey){let e=await this.fromAPIKey(this.apiKey,this.clientOptions);e.scopes=this.scopes;let{credential:t}=await this.#t(e);return t}else{let{credential:e}=await this.getApplicationDefaultAsync(this.clientOptions);return e}}async getIdTokenClient(e){let t=await this.getClient();if(!("fetchIdToken"in t))throw Error("Cannot fetch ID token in this environment, use GCE or set the GOOGLE_APPLICATION_CREDENTIALS environment variable to a service account credentials JSON file.");return new Tp.IdTokenClient({targetAudience:e,idTokenProvider:t})}async getAccessToken(){return(await(await this.getClient()).getAccessToken()).token}async getRequestHeaders(e){return(await this.getClient()).getRequestHeaders(e)}async authorizeRequest(e={}){let t=e.url,n=await(await this.getClient()).getRequestHeaders(t);return e.headers=yp.Gaxios.mergeHeaders(e.headers,n),e}async fetch(...e){return(await this.getClient()).fetch(...e)}async request(e){return(await this.getClient()).request(e)}getEnv(){return Ap.getEnv()}async sign(e,t){let r=await this.getClient(),n=await this.getUniverseDomain();if(t=t||`https://iamcredentials.${n}/v1/projects/-/serviceAccounts/`,r instanceof ht.Impersonated)return(await r.sign(e)).signedBlob;let s=Ep.createCrypto();if(r instanceof ut.JWT&&r.key)return await s.sign(r.key,e);let i=await this.getCredentials();if(!i.client_email)throw Error("Cannot sign data without `client_email`.");return this.signBlob(s,i.client_email,e,t)}async signBlob(e,t,r,n){let s=new URL(n+`${t}:signBlob`);return(await this.request({method:"POST",url:s.href,data:{payload:e.encodeBase64StringUtf8(r)},retry:!0,retryConfig:{httpMethodsToRetry:["POST"]}})).data.signedBlob}}$c.GoogleAuth=Hc});var zc=w(function(Wc){Object.defineProperty(Wc,"__esModule",{value:!0});Wc.IAMAuth=void 0;class Vc{selector;token;constructor(e,t){this.selector=e,this.token=t,this.selector=e,this.token=t}getRequestHeaders(){return{"x-goog-iam-authority-selector":this.selector,"x-goog-iam-authorization-token":this.token}}}Wc.IAMAuth=Vc});var eu=w(function(Qc){Object.defineProperty(Qc,"__esModule",{value:!0});Qc.DownscopedClient=Qc.EXPIRATION_TIME_OFFSET=Qc.MAX_ACCESS_BOUNDARY_RULES_COUNT=void 0;var Sp=ie(),Cp=G("stream"),Yn=_e(),Op=er(),kp="urn:ietf:params:oauth:grant-type:token-exchange",bp="urn:ietf:params:oauth:token-type:access_token",xp="urn:ietf:params:oauth:token-type:access_token";Qc.MAX_ACCESS_BOUNDARY_RULES_COUNT=10;Qc.EXPIRATION_TIME_OFFSET=300000;class Xc extends Yn.AuthClient{authClient;credentialAccessBoundary;cachedDownscopedAccessToken;stsCredential;constructor(e,t={accessBoundary:{accessBoundaryRules:[]}}){super(e instanceof Yn.AuthClient?{}:e);if(e instanceof Yn.AuthClient)this.authClient=e,this.credentialAccessBoundary=t;else this.authClient=e.authClient,this.credentialAccessBoundary=e.credentialAccessBoundary;if(this.credentialAccessBoundary.accessBoundary.accessBoundaryRules.length===0)throw Error("At least one access boundary rule needs to be defined.");else if(this.credentialAccessBoundary.accessBoundary.accessBoundaryRules.length>Qc.MAX_ACCESS_BOUNDARY_RULES_COUNT)throw Error(`The provided access boundary has more than ${Qc.MAX_ACCESS_BOUNDARY_RULES_COUNT} access boundary rules.`);for(let r of this.credentialAccessBoundary.accessBoundary.accessBoundaryRules)if(r.availablePermissions.length===0)throw Error("At least one permission should be defined in access boundary rules.");this.stsCredential=new Op.StsCredentials({tokenExchangeEndpoint:`https://sts.${this.universeDomain}/v1/token`}),this.cachedDownscopedAccessToken=null}setCredentials(e){if(!e.expiry_date)throw Error("The access token expiry_date field is missing in the provided credentials.");super.setCredentials(e),this.cachedDownscopedAccessToken=e}async getAccessToken(){if(!this.cachedDownscopedAccessToken||this.isExpired(this.cachedDownscopedAccessToken))await this.refreshAccessTokenAsync();return{token:this.cachedDownscopedAccessToken.access_token,expirationTime:this.cachedDownscopedAccessToken.expiry_date,res:this.cachedDownscopedAccessToken.res}}async getRequestHeaders(){let e=await this.getAccessToken(),t=new Headers({authorization:`Bearer ${e.token}`});return this.addSharedMetadataHeaders(t)}request(e,t){if(t)this.requestAsync(e).then((r)=>t(null,r),(r)=>t(r,r.response));else return this.requestAsync(e)}async requestAsync(e,t=!1){let r;try{let n=await this.getRequestHeaders();e.headers=Sp.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,n),r=await this.transporter.request(e)}catch(n){let s=n.response;if(s){let i=s.status,u=s.config.data instanceof Cp.Readable;if(!t&&(i===401||i===403)&&!u&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(e,!0)}throw n}return r}async refreshAccessTokenAsync(){let e=(await this.authClient.getAccessToken()).token,t={grantType:kp,requestedTokenType:bp,subjectToken:e,subjectTokenType:xp},r=await this.stsCredential.exchangeToken(t,void 0,this.credentialAccessBoundary),n=this.authClient.credentials?.expiry_date||null,s=r.expires_in?new Date().getTime()+r.expires_in*1000:n;return this.cachedDownscopedAccessToken={access_token:r.access_token,expiry_date:s,res:r.res},this.credentials={},Object.assign(this.credentials,this.cachedDownscopedAccessToken),delete this.credentials.res,this.emit("tokens",{refresh_token:null,expiry_date:this.cachedDownscopedAccessToken.expiry_date,access_token:this.cachedDownscopedAccessToken.access_token,token_type:"Bearer",id_token:null}),this.cachedDownscopedAccessToken}isExpired(e){let t=new Date().getTime();return e.expiry_date?t>=e.expiry_date-this.eagerRefreshThresholdMillis:!1}}Qc.DownscopedClient=Xc});var su=w(function(ru){Object.defineProperty(ru,"__esModule",{value:!0});ru.PassThroughClient=void 0;var Np=_e();class tu extends Np.AuthClient{async request(e){return this.transporter.request(e)}async getAccessToken(){return{}}async getRequestHeaders(){return new Headers}}ru.PassThroughClient=tu});var bc=w(function(O){var Pp=O&&O.__createBinding||(Object.create?function(e,t,r,n){if(n===void 0)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable))s={enumerable:!0,get:function(){return t[r]}};Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===void 0)n=r;e[n]=t[r]}),Ip=O&&O.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))Pp(t,e,r)};Object.defineProperty(O,"__esModule",{value:!0});O.GoogleAuth=O.auth=O.GDCH_SERVICE_ACCOUNT_TYPE=O.GdchClient=O.PassThroughClient=O.ExternalAccountAuthorizedUserClient=O.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE=O.ExecutableError=O.PluggableAuthClient=O.DownscopedClient=O.BaseExternalAccountClient=O.ExternalAccountClient=O.IdentityPoolClient=O.AwsRequestSigner=O.AwsClient=O.UserRefreshClient=O.LoginTicket=O.ClientAuthentication=O.OAuth2Client=O.CodeChallengeMethod=O.Impersonated=O.JWT=O.JWTAccess=O.IdTokenClient=O.IAMAuth=O.GCPEnv=O.Compute=O.DEFAULT_UNIVERSE=O.AuthClient=O.gaxios=O.gcpMetadata=void 0;var iu=Jc();Object.defineProperty(O,"GoogleAuth",{enumerable:!0,get:function(){return iu.GoogleAuth}});O.gcpMetadata=yt();O.gaxios=ie();var ou=_e();Object.defineProperty(O,"AuthClient",{enumerable:!0,get:function(){return ou.AuthClient}});Object.defineProperty(O,"DEFAULT_UNIVERSE",{enumerable:!0,get:function(){return ou.DEFAULT_UNIVERSE}});var jp=Wr();Object.defineProperty(O,"Compute",{enumerable:!0,get:function(){return jp.Compute}});var Dp=zr();Object.defineProperty(O,"GCPEnv",{enumerable:!0,get:function(){return Dp.GCPEnv}});var Up=zc();Object.defineProperty(O,"IAMAuth",{enumerable:!0,get:function(){return Up.IAMAuth}});var qp=Yr();Object.defineProperty(O,"IdTokenClient",{enumerable:!0,get:function(){return qp.IdTokenClient}});var Fp=ln();Object.defineProperty(O,"JWTAccess",{enumerable:!0,get:function(){return Fp.JWTAccess}});var Mp=fn();Object.defineProperty(O,"JWT",{enumerable:!0,get:function(){return Mp.JWT}});var Lp=pn();Object.defineProperty(O,"Impersonated",{enumerable:!0,get:function(){return Lp.Impersonated}});var Xn=Be();Object.defineProperty(O,"CodeChallengeMethod",{enumerable:!0,get:function(){return Xn.CodeChallengeMethod}});Object.defineProperty(O,"OAuth2Client",{enumerable:!0,get:function(){return Xn.OAuth2Client}});Object.defineProperty(O,"ClientAuthentication",{enumerable:!0,get:function(){return Xn.ClientAuthentication}});var Gp=Jr();Object.defineProperty(O,"LoginTicket",{enumerable:!0,get:function(){return Gp.LoginTicket}});var Bp=dn();Object.defineProperty(O,"UserRefreshClient",{enumerable:!0,get:function(){return Bp.UserRefreshClient}});var Hp=On();Object.defineProperty(O,"AwsClient",{enumerable:!0,get:function(){return Hp.AwsClient}});var $p=Cn();Object.defineProperty(O,"AwsRequestSigner",{enumerable:!0,get:function(){return $p.AwsRequestSigner}});var Kp=Sn();Object.defineProperty(O,"IdentityPoolClient",{enumerable:!0,get:function(){return Kp.IdentityPoolClient}});var Jp=Gn();Object.defineProperty(O,"ExternalAccountClient",{enumerable:!0,get:function(){return Jp.ExternalAccountClient}});var Vp=$e();Object.defineProperty(O,"BaseExternalAccountClient",{enumerable:!0,get:function(){return Vp.BaseExternalAccountClient}});var Wp=eu();Object.defineProperty(O,"DownscopedClient",{enumerable:!0,get:function(){return Wp.DownscopedClient}});var au=Ln();Object.defineProperty(O,"PluggableAuthClient",{enumerable:!0,get:function(){return au.PluggableAuthClient}});Object.defineProperty(O,"ExecutableError",{enumerable:!0,get:function(){return au.ExecutableError}});var cu=Hn();Object.defineProperty(O,"EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE",{enumerable:!0,get:function(){return cu.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE}});Object.defineProperty(O,"ExternalAccountAuthorizedUserClient",{enumerable:!0,get:function(){return cu.ExternalAccountAuthorizedUserClient}});var Yp=su();Object.defineProperty(O,"PassThroughClient",{enumerable:!0,get:function(){return Yp.PassThroughClient}});var uu=Jn();Object.defineProperty(O,"GdchClient",{enumerable:!0,get:function(){return uu.GdchClient}});Object.defineProperty(O,"GDCH_SERVICE_ACCOUNT_TYPE",{enumerable:!0,get:function(){return uu.GDCH_SERVICE_ACCOUNT_TYPE}});Ip(cn(),O);var zp=new iu.GoogleAuth;O.auth=zp});
|
|
32
|
+
export{Cu,bc};
|