@stacksjs/ts-cloud 0.16.14 → 0.16.15
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/dist/aws/index.js +1 -1
- package/dist/bin/{chunk-9bshng4v.js → chunk-8t0mrz5d.js} +77 -77
- package/dist/bin/{chunk-e4gqzp7n.js → chunk-r35q7kve.js} +1 -1
- package/dist/bin/{chunk-0ed5yh3v.js → chunk-trdteh51.js} +1 -1
- package/dist/bin/cli.js +4 -4
- package/dist/bin/dashboard-server.js +1 -1
- package/dist/{chunk-tgzp1h6j.js → chunk-2rt6xbmv.js} +2 -2
- package/dist/{chunk-xdsaxgny.js → chunk-2vgdfywj.js} +1 -1
- package/dist/{chunk-d72ddm5x.js → chunk-42ngwzvc.js} +79 -79
- package/dist/{chunk-7pk6cctr.js → chunk-8x24tv2g.js} +38 -38
- package/dist/{chunk-0hf0rdze.js → chunk-97a7sxpe.js} +1 -1
- package/dist/{chunk-nw5yqgtn.js → chunk-9nxb5fyp.js} +4 -4
- package/dist/{chunk-bpvpq6w6.js → chunk-bd75na8x.js} +86 -86
- package/dist/{chunk-aesvajfc.js → chunk-fs78rxy1.js} +2 -2
- package/dist/chunk-gj27zyk5.js +1 -0
- package/dist/{chunk-s40cx3fh.js → chunk-ht8rawp1.js} +2 -2
- package/dist/{chunk-ffjc6gev.js → chunk-kx7zw3xn.js} +128 -128
- package/dist/{chunk-2jgx2s5y.js → chunk-p0w0kwhx.js} +5 -5
- package/dist/{chunk-4yb7hf91.js → chunk-pc0tz6be.js} +2 -2
- package/dist/{chunk-mmdd5thg.js → chunk-s1bfyvmc.js} +1 -1
- package/dist/{chunk-55cmjg49.js → chunk-tznx5510.js} +3 -3
- package/dist/{chunk-kt6qnc6f.js → chunk-y59rkb2n.js} +1 -1
- package/dist/deploy/index.js +1 -1
- package/dist/dns/index.js +1 -1
- package/dist/drivers/index.js +1 -1
- package/dist/drivers/shared/deploy-script.d.ts +62 -29
- package/dist/index.js +32 -32
- package/dist/operations/index.js +1 -1
- package/dist/protection/index.js +1 -1
- package/dist/spend/index.js +1 -1
- package/dist/ui/404.html +1 -1
- package/dist/ui/accept-invitation.html +1 -1
- package/dist/ui/access-denied.html +1 -1
- package/dist/ui/account/automation.html +6 -6
- package/dist/ui/account/security.html +2 -2
- package/dist/ui/applications/compose.html +5 -5
- package/dist/ui/applications/new.html +2 -2
- package/dist/ui/data/backups.html +6 -6
- package/dist/ui/data/services.html +6 -6
- package/dist/ui/data/volumes.html +6 -6
- package/dist/ui/index.html +5 -5
- package/dist/ui/infrastructure/topology.html +6 -6
- package/dist/ui/integrations.html +2 -2
- package/dist/ui/operations/alerts.html +5 -5
- package/dist/ui/operations/configuration.html +5 -5
- package/dist/ui/operations/jobs.html +6 -6
- package/dist/ui/operations/maintenance.html +6 -6
- package/dist/ui/operations/observability.html +6 -6
- package/dist/ui/operations/previews.html +6 -6
- package/dist/ui/operations/queue.html +6 -6
- package/dist/ui/operations/regions.html +6 -6
- package/dist/ui/operations/releases.html +6 -6
- package/dist/ui/operations/spend.html +6 -6
- package/dist/ui/operations/workloads.html +6 -6
- package/dist/ui/security.html +2 -2
- package/dist/ui/server/actions.html +6 -6
- package/dist/ui/server/activity.html +2 -2
- package/dist/ui/server/capacity.html +6 -6
- package/dist/ui/server/database.html +6 -6
- package/dist/ui/server/deployments.html +6 -6
- package/dist/ui/server/diagnostics.html +2 -2
- package/dist/ui/server/firewall.html +6 -6
- package/dist/ui/server/fleet.html +6 -6
- package/dist/ui/server/logs.html +6 -6
- package/dist/ui/server/metrics.html +6 -6
- package/dist/ui/server/security.html +2 -2
- package/dist/ui/server/services.html +2 -2
- package/dist/ui/server/sites.html +6 -6
- package/dist/ui/server/ssh-keys.html +5 -5
- package/dist/ui/server/team.html +6 -6
- package/dist/ui/server/terminal.html +2 -2
- package/dist/ui/serverless/alarms.html +6 -6
- package/dist/ui/serverless/assets.html +2 -2
- package/dist/ui/serverless/cost.html +2 -2
- package/dist/ui/serverless/data.html +6 -6
- package/dist/ui/serverless/deployments.html +2 -2
- package/dist/ui/serverless/firewall.html +1 -1
- package/dist/ui/serverless/functions.html +6 -6
- package/dist/ui/serverless/logs.html +6 -6
- package/dist/ui/serverless/metrics.html +2 -2
- package/dist/ui/serverless/queues.html +5 -5
- package/dist/ui/serverless/secrets.html +6 -6
- package/dist/ui/serverless/traces.html +6 -6
- package/dist/ui/serverless.html +6 -6
- package/package.json +3 -3
- package/dist/chunk-6n5wgv3d.js +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import{n}from"./chunk-8a02v9gs.js";import{kt,a}from"./chunk-3bz7xz2d.js";import{et}from"./chunk-g8tp1zj4.js";import{Me}from"./chunk-80vxhxt5.js";class Xt{region;client;constructor(e="us-east-1",t=new n){this.region=e;this.client=t}request(e,t){return this.client.request({service:"backup",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`CryoControllerFrontendService.${e}`},body:JSON.stringify(t)})}startBackupJob(e){return this.request("StartBackupJob",e)}describeBackupJob(e){return this.request("DescribeBackupJob",{BackupJobId:e})}startRestoreJob(e){return this.request("StartRestoreJob",e)}describeRestoreJob(e){return this.request("DescribeRestoreJob",{RestoreJobId:e})}deleteRecoveryPoint(e,t){return this.request("DeleteRecoveryPoint",{BackupVaultName:e,RecoveryPointArn:t})}}function te(e,t){if(!t)return e;return e.startsWith(t)?e.slice(t.length):e}function Yi(e,t,r){let i=te(e,t);return`${r??""}${i}`}function Zi(e,t,r){if(r&&r.some((i)=>e.startsWith(i)))return!1;if(t&&t.length>0)return t.some((i)=>e.startsWith(i));return!0}async function re(e,t,r){let i=0,s=[],o=Math.max(1,Math.min(t,e.length||1));for(let c=0;c<o;c++)s.push((async()=>{while(!0){let u=i++;if(u>=e.length)return;await r(e[u],u)}})());await Promise.all(s)}function v(e){if(e.client)return e.client;return es({provider:e.provider,region:e.region,endpoint:e.endpoint,forcePathStyle:e.forcePathStyle,credentials:e.credentials})}async function Zl(e){let t=e.concurrency??8,r=v(e.from),i=v(e.to),s=await r.listAllObjects({bucket:e.from.bucket,prefix:e.from.prefix}),o={copied:0,skipped:0,excluded:0,bytesCopied:0,errors:[],excludedKeys:[],deleted:[]},c=[];for(let d of s){if(!Zi(d.Key,e.include,e.exclude)){o.excluded++,o.excludedKeys.push(d.Key);continue}c.push({source:d,destKey:Yi(d.Key,e.from.prefix,e.to.prefix)})}if(e.dryRun){o.plan=c.map(({source:p,destKey:h})=>({key:p.Key,destKey:h,size:p.Size}));let d=s.length,l=0;for(let p of s){l++;let h=!Zi(p.Key,e.include,e.exclude);e.onProgress?.({key:p.Key,destKey:h?"":Yi(p.Key,e.from.prefix,e.to.prefix),size:p.Size,action:h?"excluded":"planned",index:l,total:d})}return o}let u=c.length,g=0;await re(c,t,async({source:d,destKey:l})=>{let p=++g;try{if(!e.force){let f=await i.headObject(e.to.bucket,l);if(f&&f.ContentLength===d.Size){o.skipped++,e.onProgress?.({key:d.Key,destKey:l,size:d.Size,action:"skipped",index:p,total:u});return}}let{body:h,contentType:y}=await r.getObjectBytes(e.from.bucket,d.Key);await i.putObject({bucket:e.to.bucket,key:l,body:h,contentType:y}),o.copied++,o.bytesCopied+=h.byteLength,e.onProgress?.({key:d.Key,destKey:l,size:d.Size,action:"copied",index:p,total:u})}catch(h){o.errors.push({key:d.Key,message:h?.message??String(h)}),e.onProgress?.({key:d.Key,destKey:l,size:d.Size,action:"error",index:p,total:u})}});let m=new Set(c.map((d)=>d.destKey));if(e.deleteExtraneous){let l=(await i.listAllObjects({bucket:e.to.bucket,prefix:e.to.prefix})).filter((p)=>!m.has(p.Key)).map((p)=>p.Key);for(let p of l)try{await i.deleteObject(e.to.bucket,p),o.deleted.push(p)}catch(h){o.errors.push({key:p,message:`delete failed: ${h?.message??String(h)}`})}}if(e.verify){let d=await i.listAllObjects({bucket:e.to.bucket,prefix:e.to.prefix}),l=new Map(d.map((f)=>[f.Key,f.Size])),p=[],h=[],y=0;for(let{source:f,destKey:S}of c){if(!l.has(S)){p.push(S);continue}let b=l.get(S);if(b!==f.Size){h.push({key:S,expected:f.Size,actual:b});continue}y++}o.verification={ok:p.length===0&&h.length===0,matched:y,missing:p,sizeMismatches:h}}return o}var se={aws:"us-east-1",backblaze:"us-west-004",hetzner:"fsn1"};function Ra(e,t){switch(e){case"backblaze":return`s3.${t}.backblazeb2.com`;case"hetzner":return`${t}.your-objectstorage.com`;case"aws":default:return}}function T(...e){for(let t of e){let r=process.env[t];if(r)return r}return}function oe(e,t){if(t?.accessKeyId&&t.secretAccessKey)return t;let r,i;if(e==="backblaze")r=T("B2_APPLICATION_KEY_ID","B2_KEY_ID","S3_ACCESS_KEY_ID","AWS_ACCESS_KEY_ID"),i=T("B2_APPLICATION_KEY","B2_SECRET_KEY","S3_SECRET_ACCESS_KEY","AWS_SECRET_ACCESS_KEY");else if(e==="hetzner")r=T("HETZNER_S3_ACCESS_KEY","HETZNER_ACCESS_KEY","S3_ACCESS_KEY_ID","AWS_ACCESS_KEY_ID"),i=T("HETZNER_S3_SECRET_KEY","HETZNER_SECRET_KEY","S3_SECRET_ACCESS_KEY","AWS_SECRET_ACCESS_KEY");else r=T("S3_ACCESS_KEY_ID"),i=T("S3_SECRET_ACCESS_KEY");if(r&&i)return{accessKeyId:r,secretAccessKey:i,sessionToken:T("AWS_SESSION_TOKEN")};return}function Da(e={}){let t=e.provider||T("OBJECT_STORAGE_PROVIDER","STORAGE_PROVIDER")||"aws",r=e.region||(t==="backblaze"?T("B2_REGION"):void 0)||(t==="hetzner"?T("HETZNER_S3_REGION","HETZNER_REGION"):void 0)||T("S3_REGION","AWS_REGION","AWS_DEFAULT_REGION")||se[t],i=e.endpoint||T("S3_ENDPOINT")||Ra(t,r),s=e.forcePathStyle??T("S3_FORCE_PATH_STYLE")==="true",o=oe(t,e.credentials),c=(u)=>{let g=i||`s3.${r}.amazonaws.com`;return s?`https://${g}/${u}`:`https://${u}.${g}`};return{provider:t,region:r,endpoint:i,forcePathStyle:s,credentials:o,profile:e.profile,publicBaseUrl:c}}function es(e={}){let t=Da(e),r={endpoint:t.endpoint,forcePathStyle:t.forcePathStyle,credentials:t.credentials};return new a(t.region,t.profile,r)}import{createHash as ae}from"node:crypto";import{existsSync as ce,mkdirSync as ue,readdirSync as Ge,readFileSync as de,rmSync as qe,writeFileSync as le}from"node:fs";import{homedir as pe}from"node:os";import{join as x}from"node:path";var w=1,k=3600000,he=24*k,ye=k,fe=30*he;function Se(){let e=process.env.XDG_CACHE_HOME;return x(e&&e.trim()?e:x(pe(),".cache"),"ts-cloud","cost-explorer")}function L(e){return x(Se(),e??"__default__")}function M(e){let t={s:e.start,e:e.end,g:e.granularity,m:[...e.metrics].sort(),gb:[...e.groupBy].map((r)=>`${r.Type}:${r.Key}`).sort(),f:e.filter??null};return ae("sha256").update(JSON.stringify(t)).digest("hex").slice(0,24)}function be(e,t){let r=Date.parse(`${t}T00:00:00Z`);if(Number.isNaN(r))return!1;let i=new Date,s=Date.UTC(i.getUTCFullYear(),i.getUTCMonth(),1);return r<=s}function Ce(e){return be(e.start,e.end)?fe:ye}function F(e,t){let r=x(L(e),`${M(t)}.json`);if(!ce(r))return null;let i;try{i=JSON.parse(de(r,"utf-8"))}catch{return null}if(i.schema!==w)return null;let s=Date.now()-i.savedAt;if(s<0||s>Ce(t))return null;return{response:i.response,ageSeconds:Math.floor(s/1000)}}function U(e,t,r){let i=L(e);ue(i,{recursive:!0});let s={schema:w,savedAt:Date.now(),key:t,response:r};le(x(i,`${M(t)}.json`),JSON.stringify(s))}class ts{client;profile;useCache;lastCacheAgeSeconds=null;constructor(e,t){this.profile=e,this.useCache=t?.useCache??!0,this.client=new n(kt(e))}async getCostByService(e){return(await this.getCostByDimension({...e,dimension:"SERVICE"})).map((r)=>({service:r.key,amount:r.amount,unit:r.unit}))}async getCostByDimension(e){let{start:t,end:r,dimension:i,granularity:s="MONTHLY",filter:o}=e,c=["UnblendedCost"],u=[{Type:"DIMENSION",Key:i}],g={start:t,end:r,granularity:s,metrics:c,groupBy:u,filter:o};if(this.useCache){let p=F(this.profile,g);if(p)return this.lastCacheAgeSeconds=p.ageSeconds,p.response}this.lastCacheAgeSeconds=null;let m=new Map,d;do{let p={TimePeriod:{Start:t,End:r},Granularity:s,Metrics:c,GroupBy:u};if(o)p.Filter=o;if(d)p.NextPageToken=d;let h=await this.client.request({service:"ce",region:"us-east-1",method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSInsightsIndexService.GetCostAndUsage"},body:JSON.stringify(p)});for(let y of h?.ResultsByTime??[])for(let f of y?.Groups??[]){let S=f.Keys?.[0]??"Unknown",b=Number.parseFloat(f.Metrics?.UnblendedCost?.Amount??"0"),I=f.Metrics?.UnblendedCost?.Unit??"USD",A=m.get(S);m.set(S,{key:S,amount:(A?.amount??0)+b,unit:I})}d=h?.NextPageToken||void 0}while(d);let l=[...m.values()].filter((p)=>p.amount>0).sort((p,h)=>h.amount-p.amount);if(this.useCache)U(this.profile,g,l);return l}async getDailyTotals(e){return((await this.client.request({service:"ce",region:"us-east-1",method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSInsightsIndexService.GetCostAndUsage"},body:JSON.stringify({TimePeriod:{Start:e.start,End:e.end},Granularity:"DAILY",Metrics:["UnblendedCost"]})}))?.ResultsByTime??[]).map((i)=>Number.parseFloat(i.Total?.UnblendedCost?.Amount??"0"))}}class Pa{client;region="us-east-1";constructor(){this.client=new n}async getDomainDetail(e){let t=JSON.stringify({DomainName:e.DomainName}),r=await this.client.request({service:"route53domains",region:this.region,method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.1","x-amz-target":"Route53Domains_v20140515.GetDomainDetail"},body:t});return this.parseDomainDetail(r)}async updateDomainNameservers(e){let t=JSON.stringify({DomainName:e.DomainName,Nameservers:e.Nameservers.map((i)=>({Name:i.Name,...i.GlueIps&&{GlueIps:i.GlueIps}}))});return{OperationId:(await this.client.request({service:"route53domains",region:this.region,method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.1","x-amz-target":"Route53Domains_v20140515.UpdateDomainNameservers"},body:t})).OperationId||""}}async listDomains(e){let t={};if(e?.Marker)t.Marker=e.Marker;if(e?.MaxItems)t.MaxItems=e.MaxItems;if(e?.SortCondition)t.SortCondition=e.SortCondition;let r=JSON.stringify(t),i=await this.client.request({service:"route53domains",region:this.region,method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.1","x-amz-target":"Route53Domains_v20140515.ListDomains"},body:r});return{Domains:i.Domains||[],NextPageMarker:i.NextPageMarker}}async checkDomainAvailability(e){let t=JSON.stringify({DomainName:e.DomainName});return{Availability:(await this.client.request({service:"route53domains",region:this.region,method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.1","x-amz-target":"Route53Domains_v20140515.CheckDomainAvailability"},body:t})).Availability||"DONT_KNOW"}}async getDomainPrice(e){let t=e.DomainName.split(".").slice(1).join("."),r=JSON.stringify({Tld:t}),s=(await this.client.request({service:"route53domains",region:this.region,method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.1","x-amz-target":"Route53Domains_v20140515.ListPrices"},body:r})).Prices?.[0]||{};return{RegistrationPrice:s.RegistrationPrice?{Price:s.RegistrationPrice.Price,Currency:s.RegistrationPrice.Currency}:void 0,RenewalPrice:s.RenewalPrice?{Price:s.RenewalPrice.Price,Currency:s.RenewalPrice.Currency}:void 0,TransferPrice:s.TransferPrice?{Price:s.TransferPrice.Price,Currency:s.TransferPrice.Currency}:void 0}}async registerDomain(e){let t=JSON.stringify({DomainName:e.DomainName,DurationInYears:e.DurationInYears,AutoRenew:e.AutoRenew??!0,AdminContact:e.AdminContact,RegistrantContact:e.RegistrantContact,TechContact:e.TechContact,PrivacyProtectAdminContact:e.PrivacyProtectAdminContact??!0,PrivacyProtectRegistrantContact:e.PrivacyProtectRegistrantContact??!0,PrivacyProtectTechContact:e.PrivacyProtectTechContact??!0});return{OperationId:(await this.client.request({service:"route53domains",region:this.region,method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.1","x-amz-target":"Route53Domains_v20140515.RegisterDomain"},body:t})).OperationId||""}}async getOperationDetail(e){let t=JSON.stringify({OperationId:e.OperationId}),r=await this.client.request({service:"route53domains",region:this.region,method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.1","x-amz-target":"Route53Domains_v20140515.GetOperationDetail"},body:t});return{OperationId:r.OperationId||"",Status:r.Status||"SUBMITTED",Message:r.Message,DomainName:r.DomainName,Type:r.Type,SubmittedDate:r.SubmittedDate}}parseDomainDetail(e){return{DomainName:e.DomainName||"",Nameservers:e.Nameservers?.map((t)=>({Name:t.Name,GlueIps:t.GlueIps})),AutoRenew:e.AutoRenew,AdminContact:e.AdminContact,RegistrantContact:e.RegistrantContact,TechContact:e.TechContact,AdminPrivacy:e.AdminPrivacy,RegistrantPrivacy:e.RegistrantPrivacy,TechPrivacy:e.TechPrivacy,RegistrarName:e.RegistrarName,WhoIsServer:e.WhoIsServer,RegistrarUrl:e.RegistrarUrl,AbuseContactEmail:e.AbuseContactEmail,AbuseContactPhone:e.AbuseContactPhone,RegistryDomainId:e.RegistryDomainId,CreationDate:e.CreationDate,UpdatedDate:e.UpdatedDate,ExpirationDate:e.ExpirationDate,Reseller:e.Reseller,DnsSec:e.DnsSec,StatusList:e.StatusList}}}class Xe{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new n(void 0,{profile:t})}async describeServices(e){let t={cluster:e.cluster,services:e.services};return await this.client.request({service:"ecs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerServiceV20141113.DescribeServices","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async listServices(e,t={}){let r={cluster:e,...t};return await this.client.request({service:"ecs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerServiceV20141113.ListServices","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)})}async listTasks(e,t,r={}){let i={cluster:e,...r};if(t)i.serviceName=t;return await this.client.request({service:"ecs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerServiceV20141113.ListTasks","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(i)})}async describeTasks(e,t){let r={cluster:e,tasks:t};return await this.client.request({service:"ecs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerServiceV20141113.DescribeTasks","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)})}async updateService(e){let t={cluster:e.cluster,service:e.service};if(e.forceNewDeployment!==void 0)t.forceNewDeployment=e.forceNewDeployment;if(e.desiredCount!==void 0)t.desiredCount=e.desiredCount;if(e.taskDefinition)t.taskDefinition=e.taskDefinition;return await this.client.request({service:"ecs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerServiceV20141113.UpdateService","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async createService(e){let t={cluster:e.cluster,serviceName:e.serviceName,taskDefinition:e.taskDefinition,desiredCount:e.desiredCount};if(e.launchType)t.launchType=e.launchType;if(e.networkConfiguration)t.networkConfiguration=e.networkConfiguration;if(e.loadBalancers)t.loadBalancers=e.loadBalancers;if(e.healthCheckGracePeriodSeconds!==void 0)t.healthCheckGracePeriodSeconds=e.healthCheckGracePeriodSeconds;if(e.deploymentConfiguration)t.deploymentConfiguration=e.deploymentConfiguration;return await this.client.request({service:"ecs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerServiceV20141113.CreateService","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async deleteService(e){let t={cluster:e.cluster,service:e.service};if(e.force!==void 0)t.force=e.force;return await this.client.request({service:"ecs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerServiceV20141113.DeleteService","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async listClusters(e={}){return await this.client.request({service:"ecs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerServiceV20141113.ListClusters","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(e)})}async describeClusters(e){let t={clusters:e,include:["ATTACHMENTS","CONFIGURATIONS","SETTINGS","STATISTICS","TAGS"]};return await this.client.request({service:"ecs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerServiceV20141113.DescribeClusters","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async stopTask(e){let t={cluster:e.cluster,task:e.task};if(e.reason)t.reason=e.reason;return await this.client.request({service:"ecs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerServiceV20141113.StopTask","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async runTask(e){let t={cluster:e.cluster,taskDefinition:e.taskDefinition};if(e.count!==void 0)t.count=e.count;if(e.launchType)t.launchType=e.launchType;if(e.networkConfiguration)t.networkConfiguration=e.networkConfiguration;if(e.overrides)t.overrides=e.overrides;return await this.client.request({service:"ecs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerServiceV20141113.RunTask","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async registerTaskDefinition(e){return await this.client.request({service:"ecs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerServiceV20141113.RegisterTaskDefinition","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(e)})}async deregisterTaskDefinition(e){return await this.client.request({service:"ecs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerServiceV20141113.DeregisterTaskDefinition","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({taskDefinition:e})})}async describeTaskDefinition(e){return await this.client.request({service:"ecs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerServiceV20141113.DescribeTaskDefinition","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({taskDefinition:e,include:["TAGS"]})})}async listTaskDefinitionFamilies(e){let t={};if(e?.familyPrefix)t.familyPrefix=e.familyPrefix;if(e?.status)t.status=e.status;return await this.client.request({service:"ecs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerServiceV20141113.ListTaskDefinitionFamilies","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async waitForServiceStable(e,t,r=40,i=15000){for(let s=0;s<r;s++){let c=(await this.describeServices({cluster:e,services:[t]})).services?.[0];if(c){let u=c.deployments?.find((g)=>g.status==="PRIMARY");if(u&&u.runningCount===u.desiredCount&&c.deployments?.length===1)return!0}await new Promise((u)=>setTimeout(u,i))}return!1}async forceNewDeployment(e,t){return this.updateService({cluster:e,service:t,forceNewDeployment:!0})}async scaleService(e,t,r){return this.updateService({cluster:e,service:t,desiredCount:r})}}class ge{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new n(void 0,{profile:t})}async getCallerIdentity(){let e=await this.client.request({service:"sts",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:"Action=GetCallerIdentity&Version=2011-06-15"});if(typeof e==="string"){let r=e.match(/<Account>(\d+)<\/Account>/),i=e.match(/<UserId>([^<]+)<\/UserId>/),s=e.match(/<Arn>([^<]+)<\/Arn>/);return{Account:r?.[1],UserId:i?.[1],Arn:s?.[1]}}let t=e?.GetCallerIdentityResponse?.GetCallerIdentityResult||e?.GetCallerIdentityResult;if(t)return{Account:String(t.Account),UserId:t.UserId,Arn:t.Arn};if(e?.Account)return{Account:String(e.Account),UserId:e.UserId,Arn:e.Arn};return{Account:void 0,UserId:void 0,Arn:void 0}}}class V{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new n}async createSecret(e){let t={Name:e.Name};if(e.Description)t.Description=e.Description;if(e.KmsKeyId)t.KmsKeyId=e.KmsKeyId;if(e.SecretBinary)t.SecretBinary=e.SecretBinary;if(e.SecretString)t.SecretString=e.SecretString;if(e.Tags&&e.Tags.length>0)t.Tags=e.Tags;if(e.AddReplicaRegions&&e.AddReplicaRegions.length>0)t.AddReplicaRegions=e.AddReplicaRegions;if(e.ForceOverwriteReplicaSecret!==void 0)t.ForceOverwriteReplicaSecret=e.ForceOverwriteReplicaSecret;t.ClientRequestToken=e.ClientRequestToken||crypto.randomUUID();let r=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.CreateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ARN:r.ARN,Name:r.Name,VersionId:r.VersionId,ReplicationStatus:r.ReplicationStatus}}async updateSecret(e){let t={SecretId:e.SecretId};if(e.Description)t.Description=e.Description;if(e.KmsKeyId)t.KmsKeyId=e.KmsKeyId;if(e.SecretBinary)t.SecretBinary=e.SecretBinary;if(e.SecretString)t.SecretString=e.SecretString;let r=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.UpdateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ARN:r.ARN,Name:r.Name,VersionId:r.VersionId}}async putSecretValue(e){let t={SecretId:e.SecretId};if(e.SecretBinary)t.SecretBinary=e.SecretBinary;if(e.SecretString)t.SecretString=e.SecretString;if(e.VersionStages&&e.VersionStages.length>0)t.VersionStages=e.VersionStages;if(e.ClientRequestToken)t.ClientRequestToken=e.ClientRequestToken;let r=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.PutSecretValue","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ARN:r.ARN,Name:r.Name,VersionId:r.VersionId,VersionStages:r.VersionStages}}async getSecretValue(e){let t={SecretId:e.SecretId};if(e.VersionId)t.VersionId=e.VersionId;if(e.VersionStage)t.VersionStage=e.VersionStage;let r=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.GetSecretValue","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ARN:r.ARN,Name:r.Name,VersionId:r.VersionId,SecretBinary:r.SecretBinary,SecretString:r.SecretString,VersionStages:r.VersionStages,CreatedDate:r.CreatedDate}}async describeSecret(e){let t={SecretId:e},r=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.DescribeSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return this.parseSecret(r)}async listSecrets(e){let t={};if(e?.MaxResults)t.MaxResults=e.MaxResults;if(e?.NextToken)t.NextToken=e.NextToken;if(e?.Filters&&e.Filters.length>0)t.Filters=e.Filters;if(e?.SortOrder)t.SortOrder=e.SortOrder;let r=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.ListSecrets","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{SecretList:r.SecretList?.map((i)=>this.parseSecret(i)),NextToken:r.NextToken}}async deleteSecret(e){let t={SecretId:e.SecretId};if(e.RecoveryWindowInDays!==void 0)t.RecoveryWindowInDays=e.RecoveryWindowInDays;if(e.ForceDeleteWithoutRecovery!==void 0)t.ForceDeleteWithoutRecovery=e.ForceDeleteWithoutRecovery;let r=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.DeleteSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ARN:r.ARN,Name:r.Name,DeletionDate:r.DeletionDate}}async restoreSecret(e){let t={SecretId:e},r=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.RestoreSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ARN:r.ARN,Name:r.Name}}async rotateSecret(e){let t={SecretId:e.SecretId};if(e.ClientRequestToken)t.ClientRequestToken=e.ClientRequestToken;if(e.RotationLambdaARN)t.RotationLambdaARN=e.RotationLambdaARN;if(e.RotationRules)t.RotationRules=e.RotationRules;if(e.RotateImmediately!==void 0)t.RotateImmediately=e.RotateImmediately;let r=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.RotateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ARN:r.ARN,Name:r.Name,VersionId:r.VersionId}}async cancelRotateSecret(e){let t={SecretId:e},r=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.CancelRotateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ARN:r.ARN,Name:r.Name}}async getResourcePolicy(e){let t={SecretId:e},r=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.GetResourcePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ARN:r.ARN,Name:r.Name,ResourcePolicy:r.ResourcePolicy}}async putResourcePolicy(e){let t={SecretId:e.SecretId,ResourcePolicy:e.ResourcePolicy};if(e.BlockPublicPolicy!==void 0)t.BlockPublicPolicy=e.BlockPublicPolicy;let r=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.PutResourcePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ARN:r.ARN,Name:r.Name}}async deleteResourcePolicy(e){let t={SecretId:e},r=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.DeleteResourcePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ARN:r.ARN,Name:r.Name}}async tagResource(e){let t={SecretId:e.SecretId,Tags:e.Tags};await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.TagResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async untagResource(e){let t={SecretId:e.SecretId,TagKeys:e.TagKeys};await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.UntagResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async setString(e,t,r){try{let i=await this.putSecretValue({SecretId:e,SecretString:t});return{ARN:i.ARN,VersionId:i.VersionId}}catch(i){if(i.code==="ResourceNotFoundException"){let s=await this.createSecret({Name:e,SecretString:t,Description:r?.description,KmsKeyId:r?.kmsKeyId,Tags:r?.tags});return{ARN:s.ARN,VersionId:s.VersionId}}throw i}}async setJson(e,t,r){return this.setString(e,JSON.stringify(t),r)}async getString(e){return(await this.getSecretValue({SecretId:e})).SecretString}async getJson(e){let t=await this.getString(e);if(t)return JSON.parse(t);return}async listAll(){let e=[],t;do{let r=await this.listSecrets({NextToken:t});if(r.SecretList)e.push(...r.SecretList);t=r.NextToken}while(t);return e}parseSecret(e){return{ARN:e.ARN,Name:e.Name,Description:e.Description,KmsKeyId:e.KmsKeyId,RotationEnabled:e.RotationEnabled,RotationLambdaARN:e.RotationLambdaARN,RotationRules:e.RotationRules,LastRotatedDate:e.LastRotatedDate,LastChangedDate:e.LastChangedDate,LastAccessedDate:e.LastAccessedDate,DeletedDate:e.DeletedDate,NextRotationDate:e.NextRotationDate,Tags:e.Tags,SecretVersionsToStages:e.SecretVersionsToStages,CreatedDate:e.CreatedDate,PrimaryRegion:e.PrimaryRegion}}}class Ye{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}buildFormBody(e){return Object.entries(e).filter(([,r])=>r!==void 0).map(([r,i])=>`${encodeURIComponent(r)}=${encodeURIComponent(i)}`).join("&")}async createTopic(e){let t={Action:"CreateTopic",Version:"2010-03-31",Name:e.Name};if(e.DisplayName)t["Attributes.entry.1.key"]="DisplayName",t["Attributes.entry.1.value"]=e.DisplayName;if(e.Tags)e.Tags.forEach((i,s)=>{t[`Tags.member.${s+1}.Key`]=i.Key,t[`Tags.member.${s+1}.Value`]=i.Value});if(e.Attributes){let i=e.DisplayName?2:1;Object.entries(e.Attributes).forEach(([s,o])=>{t[`Attributes.entry.${i}.key`]=s,t[`Attributes.entry.${i}.value`]=o,i++})}let r=await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody(t)});return{TopicArn:r?.CreateTopicResponse?.CreateTopicResult?.TopicArn||r?.TopicArn}}async deleteTopic(e){await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody({Action:"DeleteTopic",Version:"2010-03-31",TopicArn:e})})}async listTopics(e){let t={Action:"ListTopics",Version:"2010-03-31"};if(e)t.NextToken=e;let r=await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody(t)}),i=r?.ListTopicsResponse?.ListTopicsResult||r?.ListTopicsResult,s=i?.Topics?.member;return{Topics:Array.isArray(s)?s:s?[s]:[],NextToken:i?.NextToken}}async getTopicAttributes(e){let r=(await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody({Action:"GetTopicAttributes",Version:"2010-03-31",TopicArn:e})}))?.GetTopicAttributesResponse?.GetTopicAttributesResult?.Attributes?.entry,i={TopicArn:e};if(Array.isArray(r))r.forEach((s)=>{i[s.key]=s.value});return i}async setTopicAttributes(e){await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody({Action:"SetTopicAttributes",Version:"2010-03-31",TopicArn:e.TopicArn,AttributeName:e.AttributeName,AttributeValue:e.AttributeValue})})}async subscribe(e){let t={Action:"Subscribe",Version:"2010-03-31",TopicArn:e.TopicArn,Protocol:e.Protocol,Endpoint:e.Endpoint};if(e.ReturnSubscriptionArn)t.ReturnSubscriptionArn="true";if(e.Attributes){let i=1;Object.entries(e.Attributes).forEach(([s,o])=>{t[`Attributes.entry.${i}.key`]=s,t[`Attributes.entry.${i}.value`]=o,i++})}let r=await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody(t)});return{SubscriptionArn:r?.SubscribeResponse?.SubscribeResult?.SubscriptionArn||r?.SubscriptionArn}}async unsubscribe(e){await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody({Action:"Unsubscribe",Version:"2010-03-31",SubscriptionArn:e})})}async listSubscriptionsByTopic(e,t){let r={Action:"ListSubscriptionsByTopic",Version:"2010-03-31",TopicArn:e};if(t)r.NextToken=t;let i=await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody(r)}),s=i?.ListSubscriptionsByTopicResponse?.ListSubscriptionsByTopicResult?.Subscriptions?.member;return{Subscriptions:Array.isArray(s)?s:s?[s]:[],NextToken:i?.ListSubscriptionsByTopicResponse?.ListSubscriptionsByTopicResult?.NextToken}}async publish(e){let t={Action:"Publish",Version:"2010-03-31",Message:e.Message};if(e.TopicArn)t.TopicArn=e.TopicArn;if(e.TargetArn)t.TargetArn=e.TargetArn;if(e.PhoneNumber)t.PhoneNumber=e.PhoneNumber;if(e.Subject)t.Subject=e.Subject;if(e.MessageStructure)t.MessageStructure=e.MessageStructure;if(e.MessageAttributes){let i=1;Object.entries(e.MessageAttributes).forEach(([s,o])=>{if(t[`MessageAttributes.entry.${i}.Name`]=s,t[`MessageAttributes.entry.${i}.Value.DataType`]=o.DataType,o.StringValue)t[`MessageAttributes.entry.${i}.Value.StringValue`]=o.StringValue;if(o.BinaryValue)t[`MessageAttributes.entry.${i}.Value.BinaryValue`]=o.BinaryValue;i++})}let r=await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody(t)});return{MessageId:r?.PublishResponse?.PublishResult?.MessageId||r?.MessageId}}async publishSMS(e,t,r){let i={};if(r)i["AWS.SNS.SMS.SenderID"]={DataType:"String",StringValue:r};return this.publish({PhoneNumber:e,Message:t,MessageAttributes:Object.keys(i).length>0?i:void 0})}async subscribeEmail(e,t){return this.subscribe({TopicArn:e,Protocol:"email",Endpoint:t})}async subscribeLambda(e,t){return this.subscribe({TopicArn:e,Protocol:"lambda",Endpoint:t})}async subscribeSqs(e,t,r){let i={};if(r)i.RawMessageDelivery="true";return this.subscribe({TopicArn:e,Protocol:"sqs",Endpoint:t,Attributes:Object.keys(i).length>0?i:void 0})}async subscribeHttp(e,t,r){let i=t.startsWith("https")?"https":"http",s={};if(r)s.RawMessageDelivery="true";return this.subscribe({TopicArn:e,Protocol:i,Endpoint:t,Attributes:Object.keys(s).length>0?s:void 0})}async subscribeSms(e,t){return this.subscribe({TopicArn:e,Protocol:"sms",Endpoint:t})}async topicExists(e){try{return await this.getTopicAttributes(e),!0}catch(t){if(t.code==="NotFound"||t.statusCode===404)return!1;throw t}}async getSMSAttributes(){let t=(await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody({Action:"GetSMSAttributes",Version:"2010-03-31"})}))?.GetSMSAttributesResponse?.GetSMSAttributesResult?.attributes?.entry,r={};if(Array.isArray(t))t.forEach((i)=>{r[i.key]=i.value});else if(t)r[t.key]=t.value;return r}async setSMSAttributes(e){let t={Action:"SetSMSAttributes",Version:"2010-03-31"},r=1;Object.entries(e).forEach(([i,s])=>{if(s!==void 0)t[`attributes.entry.${r}.key`]=i,t[`attributes.entry.${r}.value`]=s,r++}),await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody(t)})}async checkIfPhoneNumberIsOptedOut(e){return(await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody({Action:"CheckIfPhoneNumberIsOptedOut",Version:"2010-03-31",phoneNumber:e})}))?.CheckIfPhoneNumberIsOptedOutResponse?.CheckIfPhoneNumberIsOptedOutResult?.isOptedOut==="true"}async listPhoneNumbersOptedOut(e){let t={Action:"ListPhoneNumbersOptedOut",Version:"2010-03-31"};if(e)t.nextToken=e;let r=await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody(t)}),i=r?.ListPhoneNumbersOptedOutResponse?.ListPhoneNumbersOptedOutResult?.phoneNumbers?.member;return{phoneNumbers:Array.isArray(i)?i:i?[i]:[],nextToken:r?.ListPhoneNumbersOptedOutResponse?.ListPhoneNumbersOptedOutResult?.nextToken}}async optInPhoneNumber(e){await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody({Action:"OptInPhoneNumber",Version:"2010-03-31",phoneNumber:e})})}async listSMSSandboxPhoneNumbers(e){let t={Action:"ListSMSSandboxPhoneNumbers",Version:"2010-03-31"};if(e)t.NextToken=e;let r=await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody(t)}),i=r?.ListSMSSandboxPhoneNumbersResponse?.ListSMSSandboxPhoneNumbersResult?.PhoneNumbers?.member;return{PhoneNumbers:Array.isArray(i)?i:i?[i]:[],NextToken:r?.ListSMSSandboxPhoneNumbersResponse?.ListSMSSandboxPhoneNumbersResult?.NextToken}}async createSMSSandboxPhoneNumber(e,t){await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody({Action:"CreateSMSSandboxPhoneNumber",Version:"2010-03-31",PhoneNumber:e,LanguageCode:t||"en-US"})})}async verifySMSSandboxPhoneNumber(e,t){await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody({Action:"VerifySMSSandboxPhoneNumber",Version:"2010-03-31",PhoneNumber:e,OneTimePassword:t})})}async deleteSMSSandboxPhoneNumber(e){await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody({Action:"DeleteSMSSandboxPhoneNumber",Version:"2010-03-31",PhoneNumber:e})})}async getSMSSandboxAccountStatus(){return{IsInSandbox:(await this.client.request({service:"sns",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody({Action:"GetSMSSandboxAccountStatus",Version:"2010-03-31"})}))?.GetSMSSandboxAccountStatusResponse?.GetSMSSandboxAccountStatusResult?.IsInSandbox==="true"}}}class ne{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new n}async createQueue(e){let r={Action:"CreateQueue",QueueName:e.fifo&&!e.queueName.endsWith(".fifo")?`${e.queueName}.fifo`:e.queueName,Version:"2012-11-05"},i=1;if(e.visibilityTimeout!==void 0)r[`Attribute.${i}.Name`]="VisibilityTimeout",r[`Attribute.${i}.Value`]=e.visibilityTimeout.toString(),i++;if(e.messageRetentionPeriod!==void 0)r[`Attribute.${i}.Name`]="MessageRetentionPeriod",r[`Attribute.${i}.Value`]=e.messageRetentionPeriod.toString(),i++;if(e.delaySeconds!==void 0)r[`Attribute.${i}.Name`]="DelaySeconds",r[`Attribute.${i}.Value`]=e.delaySeconds.toString(),i++;if(e.maxMessageSize!==void 0)r[`Attribute.${i}.Name`]="MaximumMessageSize",r[`Attribute.${i}.Value`]=e.maxMessageSize.toString(),i++;if(e.receiveMessageWaitTime!==void 0)r[`Attribute.${i}.Name`]="ReceiveMessageWaitTimeSeconds",r[`Attribute.${i}.Value`]=e.receiveMessageWaitTime.toString(),i++;if(e.fifo){if(r[`Attribute.${i}.Name`]="FifoQueue",r[`Attribute.${i}.Value`]="true",i++,e.contentBasedDeduplication)r[`Attribute.${i}.Name`]="ContentBasedDeduplication",r[`Attribute.${i}.Value`]="true",i++}if(e.deadLetterTargetArn&&e.maxReceiveCount)r[`Attribute.${i}.Name`]="RedrivePolicy",r[`Attribute.${i}.Value`]=JSON.stringify({deadLetterTargetArn:e.deadLetterTargetArn,maxReceiveCount:e.maxReceiveCount}),i++;if(e.tags&&Object.keys(e.tags).length>0){let o=1;for(let[c,u]of Object.entries(e.tags))r[`Tag.${o}.Key`]=c,r[`Tag.${o}.Value`]=u,o++}let s=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(r).toString()});return{QueueUrl:s.QueueUrl||s.CreateQueueResult?.QueueUrl}}async listQueues(e){let t={Action:"ListQueues",Version:"2012-11-05"};if(e)t.QueueNamePrefix=e;let r=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()}),i=[];if(r.QueueUrl)i.push(r.QueueUrl);else if(r.ListQueuesResult?.QueueUrl)if(Array.isArray(r.ListQueuesResult.QueueUrl))i.push(...r.ListQueuesResult.QueueUrl);else i.push(r.ListQueuesResult.QueueUrl);return{QueueUrls:i}}async getQueueAttributes(e){let t={Action:"GetQueueAttributes",QueueUrl:e,Version:"2012-11-05","AttributeName.1":"All"},r=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{Attributes:r.Attributes||r.GetQueueAttributesResult?.Attributes||{}}}async getQueueUrl(e){let t={Action:"GetQueueUrl",QueueName:e,Version:"2012-11-05"},r=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{QueueUrl:r.QueueUrl||r.GetQueueUrlResult?.QueueUrl}}async deleteQueue(e){let t={Action:"DeleteQueue",QueueUrl:e,Version:"2012-11-05"};await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()})}async purgeQueue(e){let t={Action:"PurgeQueue",QueueUrl:e,Version:"2012-11-05"};await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()})}async sendMessage(e){let t={Action:"SendMessage",QueueUrl:e.queueUrl,MessageBody:e.messageBody,Version:"2012-11-05"};if(e.delaySeconds!==void 0)t.DelaySeconds=e.delaySeconds;if(e.messageGroupId)t.MessageGroupId=e.messageGroupId;if(e.messageDeduplicationId)t.MessageDeduplicationId=e.messageDeduplicationId;let r=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{MessageId:r.MessageId||r.SendMessageResult?.MessageId}}async receiveMessages(e){let t={Action:"ReceiveMessage",QueueUrl:e.queueUrl,Version:"2012-11-05"};if(e.maxMessages!==void 0)t.MaxNumberOfMessages=e.maxMessages;if(e.visibilityTimeout!==void 0)t.VisibilityTimeout=e.visibilityTimeout;if(e.waitTimeSeconds!==void 0)t.WaitTimeSeconds=e.waitTimeSeconds;let r=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()}),i=[],s=r.Message||r.ReceiveMessageResult?.Message;if(s)if(Array.isArray(s))i.push(...s.map((o)=>({MessageId:o.MessageId,ReceiptHandle:o.ReceiptHandle,Body:o.Body})));else i.push({MessageId:s.MessageId,ReceiptHandle:s.ReceiptHandle,Body:s.Body});return{Messages:i}}async deleteMessage(e,t){let r={Action:"DeleteMessage",QueueUrl:e,ReceiptHandle:t,Version:"2012-11-05"};await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(r).toString()})}}import{deflateRawSync as Te}from"zlib";function B(e,t){let r=typeof t==="string"?Buffer.from(t,"utf-8"):t,i=Te(r),s=Ie(r),o=new Date,c=(o.getHours()<<11|o.getMinutes()<<5|o.getSeconds()>>1)&65535,u=(o.getFullYear()-1980<<9|o.getMonth()+1<<5|o.getDate())&65535,g=Buffer.from(e,"utf-8"),m=Buffer.alloc(30+g.length);m.writeUInt32LE(67324752,0),m.writeUInt16LE(20,4),m.writeUInt16LE(0,6),m.writeUInt16LE(8,8),m.writeUInt16LE(c,10),m.writeUInt16LE(u,12),m.writeUInt32LE(s,14),m.writeUInt32LE(i.length,18),m.writeUInt32LE(r.length,22),m.writeUInt16LE(g.length,26),m.writeUInt16LE(0,28),g.copy(m,30);let d=Buffer.alloc(46+g.length);d.writeUInt32LE(33639248,0),d.writeUInt16LE(20,4),d.writeUInt16LE(20,6),d.writeUInt16LE(0,8),d.writeUInt16LE(8,10),d.writeUInt16LE(c,12),d.writeUInt16LE(u,14),d.writeUInt32LE(s,16),d.writeUInt32LE(i.length,20),d.writeUInt32LE(r.length,24),d.writeUInt16LE(g.length,28),d.writeUInt16LE(0,30),d.writeUInt16LE(0,32),d.writeUInt16LE(0,34),d.writeUInt16LE(0,36),d.writeUInt32LE(0,38),d.writeUInt32LE(0,42),g.copy(d,46);let l=m.length+i.length,p=d.length,h=Buffer.alloc(22);return h.writeUInt32LE(101010256,0),h.writeUInt16LE(0,4),h.writeUInt16LE(0,6),h.writeUInt16LE(1,8),h.writeUInt16LE(1,10),h.writeUInt32LE(p,12),h.writeUInt32LE(l,16),h.writeUInt16LE(0,20),Buffer.concat([m,i,d,h])}function Ie(e){let t=[];for(let i=0;i<256;i++){let s=i;for(let o=0;o<8;o++)s=s&1?3988292384^s>>>1:s>>>1;t[i]=s}let r=4294967295;for(let i=0;i<e.length;i++)r=t[(r^e[i])&255]^r>>>8;return(r^4294967295)>>>0}class C{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new n(void 0,{profile:t})}async createFunction(e){return await this.client.request({service:"lambda",region:this.region,method:"POST",path:"/2015-03-31/functions",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getFunction(e){return await this.client.request({service:"lambda",region:this.region,method:"GET",path:`/2015-03-31/functions/${encodeURIComponent(e)}`,headers:{"Content-Type":"application/json"}})}async updateFunctionCode(e){let{FunctionName:t,...r}=e;return await this.client.request({service:"lambda",region:this.region,method:"PUT",path:`/2015-03-31/functions/${encodeURIComponent(t)}/code`,headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})}async updateFunctionCodeInline(e,t,r="index.js"){let i=B(r,t);return this.updateFunctionCode({FunctionName:e,ZipFile:i.toString("base64")})}async updateFunctionConfiguration(e){let{FunctionName:t,...r}=e;return await this.client.request({service:"lambda",region:this.region,method:"PUT",path:`/2015-03-31/functions/${encodeURIComponent(t)}/configuration`,headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})}async deleteFunction(e){await this.client.request({service:"lambda",region:this.region,method:"DELETE",path:`/2015-03-31/functions/${encodeURIComponent(e)}`,headers:{"Content-Type":"application/json"}})}async invoke(e){let{FunctionName:t,InvocationType:r="RequestResponse",Payload:i,LogType:s}=e,o={"Content-Type":"application/json","X-Amz-Invocation-Type":r};if(s)o["X-Amz-Log-Type"]=s;let c=i?typeof i==="string"?i:JSON.stringify(i):void 0,u=await this.client.request({service:"lambda",region:this.region,method:"POST",path:`/2015-03-31/functions/${encodeURIComponent(t)}/invocations`,headers:o,body:c,returnHeaders:!0});return{StatusCode:u.statusCode||200,FunctionError:u.headers?.["x-amz-function-error"],LogResult:u.headers?.["x-amz-log-result"],Payload:typeof u.body==="string"?u.body:JSON.stringify(u.body),ExecutedVersion:u.headers?.["x-amz-executed-version"]}}async listFunctions(e){let t={};if(e?.MaxItems)t.MaxItems=String(e.MaxItems);if(e?.Marker)t.Marker=e.Marker;if(e?.FunctionVersion)t.FunctionVersion=e.FunctionVersion;return await this.client.request({service:"lambda",region:this.region,method:"GET",path:"/2015-03-31/functions",queryParams:Object.keys(t).length>0?t:void 0,headers:{"Content-Type":"application/json"}})}async addPermission(e){let{FunctionName:t,...r}=e;return await this.client.request({service:"lambda",region:this.region,method:"POST",path:`/2015-03-31/functions/${encodeURIComponent(t)}/policy`,headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})}async removePermission(e,t){await this.client.request({service:"lambda",region:this.region,method:"DELETE",path:`/2015-03-31/functions/${encodeURIComponent(e)}/policy/${encodeURIComponent(t)}`,headers:{"Content-Type":"application/json"}})}async publishVersion(e){let{FunctionName:t,...r}=e;return await this.client.request({service:"lambda",region:this.region,method:"POST",path:`/2015-03-31/functions/${encodeURIComponent(t)}/versions`,headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})}async createAlias(e){let{FunctionName:t,...r}=e;return await this.client.request({service:"lambda",region:this.region,method:"POST",path:`/2015-03-31/functions/${encodeURIComponent(t)}/aliases`,headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})}async updateAlias(e){let{FunctionName:t,Name:r,...i}=e;return this.client.request({service:"lambda",region:this.region,method:"PUT",path:`/2015-03-31/functions/${encodeURIComponent(t)}/aliases/${encodeURIComponent(r)}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(i)})}async getAlias(e,t){try{return await this.client.request({service:"lambda",region:this.region,method:"GET",path:`/2015-03-31/functions/${encodeURIComponent(e)}/aliases/${encodeURIComponent(t)}`})}catch(r){if(/ResourceNotFound/i.test(String(r?.message)))return null;throw r}}async getProvisionedConcurrencyConfig(e,t){try{return await this.client.request({service:"lambda",region:this.region,method:"GET",path:`/2019-09-30/functions/${encodeURIComponent(e)}/provisioned-concurrency`,queryParams:{Qualifier:t}})}catch(r){if(/ProvisionedConcurrencyConfigNotFound|ResourceNotFound/i.test(String(r?.message)))return null;throw r}}async putProvisionedConcurrencyConfig(e){let{FunctionName:t,Qualifier:r,ProvisionedConcurrentExecutions:i}=e;return this.client.request({service:"lambda",region:this.region,method:"PUT",path:`/2019-09-30/functions/${encodeURIComponent(t)}/provisioned-concurrency`,queryParams:{Qualifier:r},headers:{"Content-Type":"application/json"},body:JSON.stringify({ProvisionedConcurrentExecutions:i})})}async getFunctionConcurrency(e){try{return(await this.client.request({service:"lambda",region:this.region,method:"GET",path:`/2019-10-31/functions/${encodeURIComponent(e)}/concurrency`}))?.ReservedConcurrentExecutions??null}catch(t){if(/ResourceNotFound|ProvisionedConcurrencyConfigNotFound/i.test(String(t?.message)))return null;throw t}}async putFunctionConcurrency(e,t){await this.client.request({service:"lambda",region:this.region,method:"PUT",path:`/2019-10-31/functions/${encodeURIComponent(e)}/concurrency`,headers:{"Content-Type":"application/json"},body:JSON.stringify({ReservedConcurrentExecutions:t})})}async deleteFunctionConcurrency(e){await this.client.request({service:"lambda",region:this.region,method:"DELETE",path:`/2019-10-31/functions/${encodeURIComponent(e)}/concurrency`})}async deleteProvisionedConcurrencyConfig(e,t){await this.client.request({service:"lambda",region:this.region,method:"DELETE",path:`/2019-09-30/functions/${encodeURIComponent(e)}/provisioned-concurrency`,queryParams:{Qualifier:t}})}async waitForFunctionActive(e,t=60){let r=Date.now(),i=t*1000;while(Date.now()-r<i)try{let s=await this.getFunction(e),o=s.Configuration?.State;if(o==="Active")return s.Configuration;if(o==="Failed")throw Error(`Function ${e} failed: ${s.Configuration?.StateReason}`);await new Promise((c)=>setTimeout(c,2000))}catch(s){if(s.code==="ResourceNotFoundException"){await new Promise((o)=>setTimeout(o,2000));continue}throw s}throw Error(`Timeout waiting for function ${e} to become active`)}async functionExists(e){try{return await this.getFunction(e),!0}catch(t){if(t.code==="ResourceNotFoundException"||t.statusCode===404)return!1;throw t}}async createFunctionUrl(e){let{FunctionName:t,...r}=e;return await this.client.request({service:"lambda",region:this.region,method:"POST",path:`/2021-10-31/functions/${encodeURIComponent(t)}/url`,headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})}async getFunctionUrl(e){try{return await this.client.request({service:"lambda",region:this.region,method:"GET",path:`/2021-10-31/functions/${encodeURIComponent(e)}/url`,headers:{"Content-Type":"application/json"}})}catch(t){if(t.statusCode===404)return null;throw t}}async deleteFunctionUrl(e){await this.client.request({service:"lambda",region:this.region,method:"DELETE",path:`/2021-10-31/functions/${encodeURIComponent(e)}/url`,headers:{"Content-Type":"application/json"}})}async createFunctionWithCode(e){let{Code:t,Filename:r="index.js",...i}=e,s=B(r,t);return this.createFunction({...i,Code:{ZipFile:s.toString("base64")}})}async addFunctionUrlPermission(e){return this.addPermission({FunctionName:e,StatementId:"FunctionURLAllowPublicAccess",Action:"lambda:InvokeFunctionUrl",Principal:"*",FunctionUrlAuthType:"NONE"})}async publishLayerVersion(e){let{LayerName:t,...r}=e;return await this.client.request({service:"lambda",region:this.region,method:"POST",path:`/2018-10-31/layers/${encodeURIComponent(t)}/versions`,headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})}async listLayerVersions(e,t){let r={};if(t?.CompatibleRuntime)r.CompatibleRuntime=t.CompatibleRuntime;if(t?.CompatibleArchitecture)r.CompatibleArchitecture=t.CompatibleArchitecture;if(t?.MaxItems)r.MaxItems=String(t.MaxItems);if(t?.Marker)r.Marker=t.Marker;return await this.client.request({service:"lambda",region:this.region,method:"GET",path:`/2018-10-31/layers/${encodeURIComponent(e)}/versions`,queryParams:Object.keys(r).length>0?r:void 0,headers:{"Content-Type":"application/json"}})}async getLayerVersion(e,t){return await this.client.request({service:"lambda",region:this.region,method:"GET",path:`/2018-10-31/layers/${encodeURIComponent(e)}/versions/${t}`,headers:{"Content-Type":"application/json"}})}async addLayerVersionPermission(e){let{LayerName:t,VersionNumber:r,...i}=e;return await this.client.request({service:"lambda",region:this.region,method:"POST",path:`/2018-10-31/layers/${encodeURIComponent(t)}/versions/${r}/policy`,headers:{"Content-Type":"application/json"},body:JSON.stringify(i)})}async deleteLayerVersion(e,t){await this.client.request({service:"lambda",region:this.region,method:"DELETE",path:`/2018-10-31/layers/${encodeURIComponent(e)}/versions/${t}`,headers:{"Content-Type":"application/json"}})}}class me{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new n(void 0,{profile:t})}async createLogGroup(e,t){await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.CreateLogGroup","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({logGroupName:e,...t?{tags:t}:{}})})}async putRetentionPolicy(e,t){if(![1,3,5,7,14,30,60,90,120,150,180,365,400,545,731,1096,1827,2192,2557,2922,3288,3653].includes(t))throw Error("Unsupported CloudWatch Logs retention period");await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.PutRetentionPolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({logGroupName:e,retentionInDays:t})})}async describeLogStreams(e){let t={logGroupName:e.logGroupName};if(e.logStreamNamePrefix)t.logStreamNamePrefix=e.logStreamNamePrefix;if(e.orderBy)t.orderBy=e.orderBy;if(e.descending!==void 0)t.descending=e.descending;if(e.limit)t.limit=e.limit;return await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.DescribeLogStreams","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async getLogEvents(e){let t={logGroupName:e.logGroupName,logStreamName:e.logStreamName};if(e.startTime)t.startTime=e.startTime;if(e.endTime)t.endTime=e.endTime;if(e.limit)t.limit=e.limit;if(e.startFromHead!==void 0)t.startFromHead=e.startFromHead;return await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.GetLogEvents","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async describeLogGroups(e){let t={};if(e?.logGroupNamePrefix)t.logGroupNamePrefix=e.logGroupNamePrefix;if(e?.limit)t.limit=e.limit;return await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.DescribeLogGroups","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async deleteLogGroup(e){await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.DeleteLogGroup","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({logGroupName:e})})}async filterLogEvents(e){let t={logGroupName:e.logGroupName};if(e.logStreamNames)t.logStreamNames=e.logStreamNames;if(e.startTime)t.startTime=e.startTime;if(e.endTime)t.endTime=e.endTime;if(e.filterPattern)t.filterPattern=e.filterPattern;if(e.limit)t.limit=e.limit;return await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.FilterLogEvents","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}}class an{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async createInstance(e){let t={InstanceAlias:e.InstanceAlias,IdentityManagementType:e.IdentityManagementType||"CONNECT_MANAGED",InboundCallsEnabled:e.InboundCallsEnabled??!0,OutboundCallsEnabled:e.OutboundCallsEnabled??!0};if(e.DirectoryId)t.DirectoryId=e.DirectoryId;if(e.ClientToken)t.ClientToken=e.ClientToken;if(e.Tags)t.Tags=e.Tags;return await this.client.request({service:"connect",region:this.region,method:"PUT",path:"/instance",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async deleteInstance(e){await this.client.request({service:"connect",region:this.region,method:"DELETE",path:`/instance/${e}`})}async describeInstance(e){let t=await this.client.request({service:"connect",region:this.region,method:"GET",path:`/instance/${e}`});return t.Instance||t}async listInstances(e){let t={};if(e?.MaxResults)t.maxResults=String(e.MaxResults);if(e?.NextToken)t.nextToken=e.NextToken;return await this.client.request({service:"connect",region:this.region,method:"GET",path:"/instance",queryParams:t})}async searchAvailablePhoneNumbers(e){let t={TargetArn:e.TargetArn,PhoneNumberCountryCode:e.PhoneNumberCountryCode,PhoneNumberType:e.PhoneNumberType};if(e.PhoneNumberPrefix)t.PhoneNumberPrefix=e.PhoneNumberPrefix;if(e.MaxResults)t.MaxResults=e.MaxResults;if(e.NextToken)t.NextToken=e.NextToken;return await this.client.request({service:"connect",region:this.region,method:"POST",path:"/phone-number/search-available",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async claimPhoneNumber(e){let t={TargetArn:e.TargetArn,PhoneNumber:e.PhoneNumber};if(e.PhoneNumberDescription)t.PhoneNumberDescription=e.PhoneNumberDescription;if(e.Tags)t.Tags=e.Tags;if(e.ClientToken)t.ClientToken=e.ClientToken;return await this.client.request({service:"connect",region:this.region,method:"POST",path:"/phone-number/claim",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async releasePhoneNumber(e,t){let r={};if(t)r.clientToken=t;await this.client.request({service:"connect",region:this.region,method:"DELETE",path:`/phone-number/${e}`,queryParams:r})}async listPhoneNumbers(e){let t={};if(e.TargetArn)t.TargetArn=e.TargetArn;if(e.InstanceId)t.InstanceId=e.InstanceId;if(e.PhoneNumberTypes)t.PhoneNumberTypes=e.PhoneNumberTypes;if(e.PhoneNumberCountryCodes)t.PhoneNumberCountryCodes=e.PhoneNumberCountryCodes;if(e.MaxResults)t.MaxResults=e.MaxResults;if(e.NextToken)t.NextToken=e.NextToken;return await this.client.request({service:"connect",region:this.region,method:"POST",path:"/phone-number/list",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async createContactFlow(e){let t={Name:e.Name,Type:e.Type,Content:e.Content};if(e.Description)t.Description=e.Description;if(e.Tags)t.Tags=e.Tags;return await this.client.request({service:"connect",region:this.region,method:"PUT",path:`/contact-flows/${e.InstanceId}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async updateContactFlowContent(e){await this.client.request({service:"connect",region:this.region,method:"POST",path:`/contact-flows/${e.InstanceId}/${e.ContactFlowId}/content`,headers:{"Content-Type":"application/json"},body:JSON.stringify({Content:e.Content})})}async listContactFlows(e){let t={};if(e.ContactFlowTypes)t.contactFlowTypes=e.ContactFlowTypes.join(",");if(e.MaxResults)t.maxResults=String(e.MaxResults);if(e.NextToken)t.nextToken=e.NextToken;return await this.client.request({service:"connect",region:this.region,method:"GET",path:`/contact-flows-summary/${e.InstanceId}`,queryParams:t})}async createQueue(e){let t={Name:e.Name,HoursOfOperationId:e.HoursOfOperationId};if(e.Description)t.Description=e.Description;if(e.MaxContacts)t.MaxContacts=e.MaxContacts;if(e.OutboundCallerConfig)t.OutboundCallerConfig=e.OutboundCallerConfig;if(e.Tags)t.Tags=e.Tags;return await this.client.request({service:"connect",region:this.region,method:"PUT",path:`/queues/${e.InstanceId}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async createHoursOfOperation(e){let t={Name:e.Name,TimeZone:e.TimeZone,Config:e.Config};if(e.Description)t.Description=e.Description;if(e.Tags)t.Tags=e.Tags;return await this.client.request({service:"connect",region:this.region,method:"PUT",path:`/hours-of-operations/${e.InstanceId}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async associatePhoneNumberContactFlow(e){await this.client.request({service:"connect",region:this.region,method:"PUT",path:`/phone-number/${e.PhoneNumberId}/contact-flow`,headers:{"Content-Type":"application/json"},body:JSON.stringify({InstanceId:e.InstanceId,ContactFlowId:e.ContactFlowId})})}async createRoutingProfile(e){let t={Name:e.Name,DefaultOutboundQueueId:e.DefaultOutboundQueueId,MediaConcurrencies:e.MediaConcurrencies};if(e.Description)t.Description=e.Description;if(e.QueueConfigs)t.QueueConfigs=e.QueueConfigs;if(e.Tags)t.Tags=e.Tags;return await this.client.request({service:"connect",region:this.region,method:"PUT",path:`/routing-profiles/${e.InstanceId}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async instanceExists(e){try{return(await this.listInstances({MaxResults:100})).InstanceSummaryList?.some((r)=>r.InstanceAlias===e)||!1}catch{return!1}}async startOutboundVoiceContact(e){let t={ContactFlowId:e.ContactFlowId,DestinationPhoneNumber:e.DestinationPhoneNumber};if(e.SourcePhoneNumber)t.SourcePhoneNumber=e.SourcePhoneNumber;if(e.QueueId)t.QueueId=e.QueueId;if(e.Attributes)t.Attributes=e.Attributes;if(e.AnswerMachineDetectionConfig)t.AnswerMachineDetectionConfig=e.AnswerMachineDetectionConfig;if(e.CampaignId)t.CampaignId=e.CampaignId;if(e.TrafficType)t.TrafficType=e.TrafficType;if(e.ClientToken)t.ClientToken=e.ClientToken;return await this.client.request({service:"connect",region:this.region,method:"PUT",path:`/contact/outbound-voice/${e.InstanceId}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async makeCall(e){return this.startOutboundVoiceContact({InstanceId:e.instanceId,ContactFlowId:e.contactFlowId,DestinationPhoneNumber:e.to,SourcePhoneNumber:e.from,Attributes:e.attributes})}async stopContact(e){await this.client.request({service:"connect",region:this.region,method:"POST",path:`/contact/stop/${e.InstanceId}/${e.ContactId}`})}async describeContact(e){return this.client.request({service:"connect",region:this.region,method:"GET",path:`/contacts/${e.InstanceId}/${e.ContactId}`})}async updateContactAttributes(e){await this.client.request({service:"connect",region:this.region,method:"POST",path:`/contact/attributes/${e.InstanceId}`,headers:{"Content-Type":"application/json"},body:JSON.stringify({InitialContactId:e.InitialContactId,Attributes:e.Attributes})})}async createUser(e){let t={Username:e.Username,PhoneConfig:e.PhoneConfig,SecurityProfileIds:e.SecurityProfileIds,RoutingProfileId:e.RoutingProfileId};if(e.Password)t.Password=e.Password;if(e.IdentityInfo)t.IdentityInfo=e.IdentityInfo;if(e.DirectoryUserId)t.DirectoryUserId=e.DirectoryUserId;if(e.HierarchyGroupId)t.HierarchyGroupId=e.HierarchyGroupId;if(e.Tags)t.Tags=e.Tags;return this.client.request({service:"connect",region:this.region,method:"PUT",path:`/users/${e.InstanceId}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async deleteUser(e){await this.client.request({service:"connect",region:this.region,method:"DELETE",path:`/users/${e.InstanceId}/${e.UserId}`})}async listUsers(e){let t={};if(e.NextToken)t.nextToken=e.NextToken;if(e.MaxResults)t.maxResults=String(e.MaxResults);return this.client.request({service:"connect",region:this.region,method:"GET",path:`/users-summary/${e.InstanceId}`,queryParams:t})}async createPrompt(e){let t={Name:e.Name,S3Uri:e.S3Uri};if(e.Description)t.Description=e.Description;if(e.Tags)t.Tags=e.Tags;return this.client.request({service:"connect",region:this.region,method:"PUT",path:`/prompts/${e.InstanceId}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async listPrompts(e){let t={};if(e.NextToken)t.nextToken=e.NextToken;if(e.MaxResults)t.maxResults=String(e.MaxResults);return this.client.request({service:"connect",region:this.region,method:"GET",path:`/prompts-summary/${e.InstanceId}`,queryParams:t})}async createQuickConnect(e){let t={Name:e.Name,QuickConnectConfig:e.QuickConnectConfig};if(e.Description)t.Description=e.Description;if(e.Tags)t.Tags=e.Tags;return this.client.request({service:"connect",region:this.region,method:"PUT",path:`/quick-connects/${e.InstanceId}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async startChatContact(e){return this.client.request({service:"connect",region:this.region,method:"PUT",path:`/contact/chat/${e.InstanceId}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async startTaskContact(e){return this.client.request({service:"connect",region:this.region,method:"PUT",path:`/contact/task/${e.InstanceId}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}createOutboundIvrFlow(e){let t=e.voiceId||"Joanna";return JSON.stringify({Version:"2019-10-30",StartAction:"play-prompt",Actions:{"play-prompt":{Type:"MessageParticipant",Parameters:{Text:e.message,TextToSpeechVoice:t,TextToSpeechEngine:"neural"},Transitions:{NextAction:"disconnect",Errors:[{NextAction:"disconnect",ErrorType:"NoMatchingError"}]}},disconnect:{Type:"DisconnectParticipant",Parameters:{},Transitions:{}}}})}createInputCollectionFlow(e){let t=e.voiceId||"Joanna",r=e.inputTimeout||5,i=e.maxDigits||1;return JSON.stringify({Version:"2019-10-30",StartAction:"get-input",Actions:{"get-input":{Type:"GetParticipantInput",Parameters:{Text:e.promptMessage,TextToSpeechVoice:t,TextToSpeechEngine:"neural",InputTimeLimitSeconds:String(r),MaxDigits:i,EncryptEntry:!1},Transitions:{NextAction:e.successNextAction||"disconnect",Conditions:[],Errors:[{NextAction:"disconnect",ErrorType:"NoMatchingCondition"},{NextAction:"disconnect",ErrorType:"NoMatchingError"}]}},disconnect:{Type:"DisconnectParticipant",Parameters:{},Transitions:{}}}})}async getCurrentMetricData(e){return this.client.request({service:"connect",region:this.region,method:"POST",path:`/metrics/current/${e.InstanceId}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}}class Na{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async describeLoadBalancers(e){let t={};if(e?.LoadBalancerArns)e.LoadBalancerArns.forEach((i,s)=>{t[`LoadBalancerArns.member.${s+1}`]=i});if(e?.Names)e.Names.forEach((i,s)=>{t[`Names.member.${s+1}`]=i});if(e?.Marker)t.Marker=e.Marker;if(e?.PageSize)t.PageSize=e.PageSize;let r=await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("DescribeLoadBalancers",t)});return this.normalizeResult(r,"DescribeLoadBalancersResult")}async describeTargetGroups(e){let t={};if(e?.LoadBalancerArn)t.LoadBalancerArn=e.LoadBalancerArn;if(e?.TargetGroupArns)e.TargetGroupArns.forEach((i,s)=>{t[`TargetGroupArns.member.${s+1}`]=i});if(e?.Names)e.Names.forEach((i,s)=>{t[`Names.member.${s+1}`]=i});if(e?.Marker)t.Marker=e.Marker;if(e?.PageSize)t.PageSize=e.PageSize;let r=await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("DescribeTargetGroups",t)});return this.normalizeResult(r,"DescribeTargetGroupsResult")}async describeTargetHealth(e){let t={TargetGroupArn:e.TargetGroupArn};if(e.Targets)e.Targets.forEach((i,s)=>{if(t[`Targets.member.${s+1}.Id`]=i.Id,i.Port)t[`Targets.member.${s+1}.Port`]=i.Port;if(i.AvailabilityZone)t[`Targets.member.${s+1}.AvailabilityZone`]=i.AvailabilityZone});let r=await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("DescribeTargetHealth",t)});return this.normalizeResult(r,"DescribeTargetHealthResult")}async describeListeners(e){let t={};if(e?.LoadBalancerArn)t.LoadBalancerArn=e.LoadBalancerArn;if(e?.ListenerArns)e.ListenerArns.forEach((i,s)=>{t[`ListenerArns.member.${s+1}`]=i});if(e?.Marker)t.Marker=e.Marker;if(e?.PageSize)t.PageSize=e.PageSize;let r=await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("DescribeListeners",t)});return this.normalizeResult(r,"DescribeListenersResult")}async describeRules(e){let t={};if(e?.ListenerArn)t.ListenerArn=e.ListenerArn;if(e?.RuleArns)e.RuleArns.forEach((i,s)=>{t[`RuleArns.member.${s+1}`]=i});if(e?.Marker)t.Marker=e.Marker;if(e?.PageSize)t.PageSize=e.PageSize;let r=await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("DescribeRules",t)});return this.normalizeResult(r,"DescribeRulesResult")}async describeLoadBalancerAttributes(e){let t={LoadBalancerArn:e},r=await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("DescribeLoadBalancerAttributes",t)});return this.normalizeResult(r,"DescribeLoadBalancerAttributesResult")}async describeTargetGroupAttributes(e){let t={TargetGroupArn:e},r=await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("DescribeTargetGroupAttributes",t)});return this.normalizeResult(r,"DescribeTargetGroupAttributesResult")}async createLoadBalancer(e){let t={Name:e.Name};if(e.Subnets)e.Subnets.forEach((i,s)=>{t[`Subnets.member.${s+1}`]=i});if(e.SubnetMappings)e.SubnetMappings.forEach((i,s)=>{if(t[`SubnetMappings.member.${s+1}.SubnetId`]=i.SubnetId,i.AllocationId)t[`SubnetMappings.member.${s+1}.AllocationId`]=i.AllocationId;if(i.PrivateIPv4Address)t[`SubnetMappings.member.${s+1}.PrivateIPv4Address`]=i.PrivateIPv4Address;if(i.IPv6Address)t[`SubnetMappings.member.${s+1}.IPv6Address`]=i.IPv6Address});if(e.SecurityGroups)e.SecurityGroups.forEach((i,s)=>{t[`SecurityGroups.member.${s+1}`]=i});if(e.Scheme)t.Scheme=e.Scheme;if(e.Type)t.Type=e.Type;if(e.IpAddressType)t.IpAddressType=e.IpAddressType;if(e.Tags)e.Tags.forEach((i,s)=>{t[`Tags.member.${s+1}.Key`]=i.Key,t[`Tags.member.${s+1}.Value`]=i.Value});let r=await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("CreateLoadBalancer",t)});return this.normalizeResult(r,"CreateLoadBalancerResult")}async deleteLoadBalancer(e){let t={LoadBalancerArn:e};await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("DeleteLoadBalancer",t)})}async createTargetGroup(e){let t={Name:e.Name};if(e.Protocol)t.Protocol=e.Protocol;if(e.ProtocolVersion)t.ProtocolVersion=e.ProtocolVersion;if(e.Port)t.Port=e.Port;if(e.VpcId)t.VpcId=e.VpcId;if(e.HealthCheckProtocol)t.HealthCheckProtocol=e.HealthCheckProtocol;if(e.HealthCheckPort)t.HealthCheckPort=e.HealthCheckPort;if(e.HealthCheckEnabled!==void 0)t.HealthCheckEnabled=e.HealthCheckEnabled;if(e.HealthCheckPath)t.HealthCheckPath=e.HealthCheckPath;if(e.HealthCheckIntervalSeconds)t.HealthCheckIntervalSeconds=e.HealthCheckIntervalSeconds;if(e.HealthCheckTimeoutSeconds)t.HealthCheckTimeoutSeconds=e.HealthCheckTimeoutSeconds;if(e.HealthyThresholdCount)t.HealthyThresholdCount=e.HealthyThresholdCount;if(e.UnhealthyThresholdCount)t.UnhealthyThresholdCount=e.UnhealthyThresholdCount;if(e.TargetType)t.TargetType=e.TargetType;if(e.IpAddressType)t.IpAddressType=e.IpAddressType;if(e.Matcher){if(e.Matcher.HttpCode)t["Matcher.HttpCode"]=e.Matcher.HttpCode;if(e.Matcher.GrpcCode)t["Matcher.GrpcCode"]=e.Matcher.GrpcCode}if(e.Tags)e.Tags.forEach((i,s)=>{t[`Tags.member.${s+1}.Key`]=i.Key,t[`Tags.member.${s+1}.Value`]=i.Value});let r=await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("CreateTargetGroup",t)});return this.normalizeResult(r,"CreateTargetGroupResult")}async deleteTargetGroup(e){let t={TargetGroupArn:e};await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("DeleteTargetGroup",t)})}async registerTargets(e){let t={TargetGroupArn:e.TargetGroupArn};e.Targets.forEach((r,i)=>{if(t[`Targets.member.${i+1}.Id`]=r.Id,r.Port)t[`Targets.member.${i+1}.Port`]=r.Port;if(r.AvailabilityZone)t[`Targets.member.${i+1}.AvailabilityZone`]=r.AvailabilityZone}),await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("RegisterTargets",t)})}async deregisterTargets(e){let t={TargetGroupArn:e.TargetGroupArn};e.Targets.forEach((r,i)=>{if(t[`Targets.member.${i+1}.Id`]=r.Id,r.Port)t[`Targets.member.${i+1}.Port`]=r.Port;if(r.AvailabilityZone)t[`Targets.member.${i+1}.AvailabilityZone`]=r.AvailabilityZone}),await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("DeregisterTargets",t)})}async createListener(e){let t={LoadBalancerArn:e.LoadBalancerArn,Port:e.Port};if(e.Protocol)t.Protocol=e.Protocol;if(e.SslPolicy)t.SslPolicy=e.SslPolicy;if(e.Certificates)e.Certificates.forEach((i,s)=>{t[`Certificates.member.${s+1}.CertificateArn`]=i.CertificateArn});if(e.DefaultActions.forEach((i,s)=>{if(t[`DefaultActions.member.${s+1}.Type`]=i.Type,i.TargetGroupArn)t[`DefaultActions.member.${s+1}.TargetGroupArn`]=i.TargetGroupArn;if(i.Order!==void 0)t[`DefaultActions.member.${s+1}.Order`]=i.Order;if(i.RedirectConfig){let o=i.RedirectConfig;if(o.Protocol)t[`DefaultActions.member.${s+1}.RedirectConfig.Protocol`]=o.Protocol;if(o.Port)t[`DefaultActions.member.${s+1}.RedirectConfig.Port`]=o.Port;if(o.Host)t[`DefaultActions.member.${s+1}.RedirectConfig.Host`]=o.Host;if(o.Path)t[`DefaultActions.member.${s+1}.RedirectConfig.Path`]=o.Path;if(o.Query)t[`DefaultActions.member.${s+1}.RedirectConfig.Query`]=o.Query;t[`DefaultActions.member.${s+1}.RedirectConfig.StatusCode`]=o.StatusCode}if(i.FixedResponseConfig){let o=i.FixedResponseConfig;if(o.MessageBody)t[`DefaultActions.member.${s+1}.FixedResponseConfig.MessageBody`]=o.MessageBody;if(t[`DefaultActions.member.${s+1}.FixedResponseConfig.StatusCode`]=o.StatusCode,o.ContentType)t[`DefaultActions.member.${s+1}.FixedResponseConfig.ContentType`]=o.ContentType}}),e.AlpnPolicy)e.AlpnPolicy.forEach((i,s)=>{t[`AlpnPolicy.member.${s+1}`]=i});if(e.Tags)e.Tags.forEach((i,s)=>{t[`Tags.member.${s+1}.Key`]=i.Key,t[`Tags.member.${s+1}.Value`]=i.Value});let r=await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("CreateListener",t)});return this.normalizeResult(r,"CreateListenerResult")}async deleteListener(e){let t={ListenerArn:e};await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("DeleteListener",t)})}async modifyListener(e){let t={ListenerArn:e.ListenerArn};if(e.Port)t.Port=e.Port;if(e.Protocol)t.Protocol=e.Protocol;if(e.SslPolicy)t.SslPolicy=e.SslPolicy;if(e.Certificates)e.Certificates.forEach((i,s)=>{t[`Certificates.member.${s+1}.CertificateArn`]=i.CertificateArn});if(e.DefaultActions)e.DefaultActions.forEach((i,s)=>{if(i.Type)t[`DefaultActions.member.${s+1}.Type`]=i.Type;if(i.TargetGroupArn)t[`DefaultActions.member.${s+1}.TargetGroupArn`]=i.TargetGroupArn;if(i.Order!==void 0)t[`DefaultActions.member.${s+1}.Order`]=i.Order});if(e.AlpnPolicy)e.AlpnPolicy.forEach((i,s)=>{t[`AlpnPolicy.member.${s+1}`]=i});let r=await this.client.request({service:"elasticloadbalancing",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:this.buildFormBody("ModifyListener",t)});return this.normalizeResult(r,"ModifyListenerResult")}buildFormBody(e,t){let r={Action:e,Version:"2015-12-01"};for(let[i,s]of Object.entries(t))if(s!==void 0&&s!==null)r[i]=String(s);return Object.entries(r).map(([i,s])=>`${encodeURIComponent(i)}=${encodeURIComponent(s)}`).join("&")}normalizeResult(e,t){if(e&&e[t])return this.normalizeArrays(e[t]);let r=t.replace("Result","Response");if(e&&e[r]&&e[r][t])return this.normalizeArrays(e[r][t]);return this.normalizeArrays(e)}normalizeArrays(e){if(!e||typeof e!=="object")return e;if(Array.isArray(e))return e.map((r)=>this.normalizeArrays(r));let t={};for(let[r,i]of Object.entries(e)){let s=["LoadBalancers","TargetGroups","Listeners","Rules","TargetHealthDescriptions","Attributes","SecurityGroups","AvailabilityZones","Certificates","DefaultActions","Conditions","Actions","member"];if(r==="member"){if(Array.isArray(i))return i.map((o)=>this.normalizeArrays(o));return[this.normalizeArrays(i)]}if(s.includes(r))if(i&&typeof i==="object"&&"member"in i){let o=i.member;t[r]=Array.isArray(o)?o.map((c)=>this.normalizeArrays(c)):[this.normalizeArrays(o)]}else if(Array.isArray(i))t[r]=i.map((o)=>this.normalizeArrays(o));else if(i)t[r]=[this.normalizeArrays(i)];else t[r]=[];else if(typeof i==="object")t[r]=this.normalizeArrays(i);else t[r]=i}return t}}class ke{client;region;endpoint;constructor(e="us-east-1",t){this.region=e,this.endpoint=t?.endpoint,this.client=new n}async request(e,t){if(this.endpoint){let r=await fetch(this.endpoint,{method:"POST",headers:{"Content-Type":"application/x-amz-json-1.0","X-Amz-Target":`DynamoDB_20120810.${e}`},body:JSON.stringify(t)});if(!r.ok){let i=await r.text();throw Error(`DynamoDB request failed: ${r.status} ${i}`)}return r.json()}return this.client.request({service:"dynamodb",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.0","X-Amz-Target":`DynamoDB_20120810.${e}`},body:JSON.stringify(t)})}async createTable(e){return this.request("CreateTable",e)}async deleteTable(e){return this.request("DeleteTable",e)}async describeTable(e){return this.request("DescribeTable",e)}async listTables(e){return this.request("ListTables",e||{})}async putItem(e){return this.request("PutItem",e)}async getItem(e){return this.request("GetItem",e)}async updateItem(e){return this.request("UpdateItem",e)}async deleteItem(e){return this.request("DeleteItem",e)}async query(e){return this.request("Query",e)}async scan(e){return this.request("Scan",e)}async batchWriteItem(e){return this.request("BatchWriteItem",e)}async batchGetItem(e){return this.request("BatchGetItem",e)}async updateTimeToLive(e){return this.request("UpdateTimeToLive",e)}static marshal(e){let t={};for(let[r,i]of Object.entries(e))t[r]=ke.marshalValue(i);return t}static marshalValue(e){if(e===null||e===void 0)return{NULL:!0};if(typeof e==="string")return{S:e};if(typeof e==="number")return{N:String(e)};if(typeof e==="boolean")return{BOOL:e};if(Array.isArray(e))return{L:e.map((t)=>ke.marshalValue(t))};if(typeof e==="object")return{M:ke.marshal(e)};return{S:String(e)}}static unmarshal(e){let t={};for(let[r,i]of Object.entries(e))t[r]=ke.unmarshalValue(i);return t}static unmarshalValue(e){if(e.S!==void 0)return e.S;if(e.N!==void 0)return Number(e.N);if(e.BOOL!==void 0)return e.BOOL;if(e.NULL!==void 0)return null;if(e.L!==void 0)return e.L.map((t)=>ke.unmarshalValue(t));if(e.M!==void 0)return ke.unmarshal(e.M);if(e.SS!==void 0)return e.SS;if(e.NS!==void 0)return e.NS.map(Number);return null}}class ka{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async createDomain(e){return this.client.request({service:"es",region:this.region,method:"POST",path:"/2021-01-01/opensearch/domain",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async deleteDomain(e){return this.client.request({service:"es",region:this.region,method:"DELETE",path:`/2021-01-01/opensearch/domain/${e}`})}async describeDomain(e){return this.client.request({service:"es",region:this.region,method:"GET",path:`/2021-01-01/opensearch/domain/${e}`})}async listDomainNames(){return this.client.request({service:"es",region:this.region,method:"GET",path:"/2021-01-01/domain"})}async updateDomainConfig(e){let{DomainName:t,...r}=e;return this.client.request({service:"es",region:this.region,method:"POST",path:`/2021-01-01/opensearch/domain/${t}/config`,headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})}}class cn{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"transcribe",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`Transcribe.${e}`},body:JSON.stringify(t)})}async startTranscriptionJob(e){return this.request("StartTranscriptionJob",e)}async getTranscriptionJob(e){return this.request("GetTranscriptionJob",e)}async listTranscriptionJobs(e){return this.request("ListTranscriptionJobs",e||{})}async deleteTranscriptionJob(e){return this.request("DeleteTranscriptionJob",e)}}class dn{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async invokeModel(e){let t=typeof e.body==="string"?e.body:e.body instanceof Uint8Array?new TextDecoder().decode(e.body):JSON.stringify(e.body),r={"Content-Type":e.contentType||"application/json",Accept:e.accept||"application/json"};if(e.trace)r["X-Amzn-Bedrock-Trace"]=e.trace;if(e.guardrailIdentifier)r["X-Amzn-Bedrock-GuardrailIdentifier"]=e.guardrailIdentifier;if(e.guardrailVersion)r["X-Amzn-Bedrock-GuardrailVersion"]=e.guardrailVersion;let i=await this.client.request({service:"bedrock-runtime",region:this.region,method:"POST",path:`/model/${encodeURIComponent(e.modelId)}/invoke`,headers:r,body:t,rawResponse:!0,returnHeaders:!0});return{body:new TextEncoder().encode(i.body),contentType:i.headers?.["content-type"]||"application/json"}}async invokeModelWithResponseStream(e){let t=typeof e.body==="string"?e.body:e.body instanceof Uint8Array?new TextDecoder().decode(e.body):JSON.stringify(e.body),r={"Content-Type":e.contentType||"application/json",Accept:e.accept||"application/vnd.amazon.eventstream"};if(e.trace)r["X-Amzn-Bedrock-Trace"]=e.trace;if(e.guardrailIdentifier)r["X-Amzn-Bedrock-GuardrailIdentifier"]=e.guardrailIdentifier;if(e.guardrailVersion)r["X-Amzn-Bedrock-GuardrailVersion"]=e.guardrailVersion;return{body:await this.makeStreamRequest(e.modelId,r,t),contentType:"application/vnd.amazon.eventstream"}}async makeStreamRequest(e,t,r){let i=this.getCredentialsFromEnv(),s=`https://bedrock-runtime.${this.region}.amazonaws.com/model/${encodeURIComponent(e)}/invoke-with-response-stream`,o=this.signStreamRequest("POST",`/model/${encodeURIComponent(e)}/invoke-with-response-stream`,t,r,i),c=await fetch(s,{method:"POST",headers:o,body:r});if(!c.ok){let g=await c.text();throw Error(`Bedrock streaming error (${c.status}): ${g}`)}let u=c.body?.getReader();if(!u)throw Error("No response body for streaming");return this.parseEventStream(u)}async*parseEventStream(e){let t=new TextDecoder,r="";try{while(!0){let{done:i,value:s}=await e.read();if(i)break;r+=t.decode(s,{stream:!0});let o=this.extractJsonChunks(r);for(let c of o.parsed)yield{chunk:{bytes:new TextEncoder().encode(JSON.stringify(c))}};r=o.remaining}}finally{e.releaseLock()}}extractJsonChunks(e){let t=[],r=e,i=0,s=-1;for(let o=0;o<r.length;o++)if(r[o]==="{"){if(i===0)s=o;i++}else if(r[o]==="}"){if(i--,i===0&&s!==-1)try{let c=JSON.parse(r.slice(s,o+1));t.push(c),r=r.slice(o+1),o=-1,s=-1}catch{}}return{parsed:t,remaining:r}}getCredentialsFromEnv(){let e=process.env.AWS_ACCESS_KEY_ID,t=process.env.AWS_SECRET_ACCESS_KEY,r=process.env.AWS_SESSION_TOKEN;if(!e||!t)throw Error("AWS credentials not found in environment variables");return{accessKeyId:e,secretAccessKey:t,sessionToken:r}}signStreamRequest(e,t,r,i,s){let o=Me("node:crypto"),c="bedrock-runtime",u=this.region,g=`bedrock-runtime.${u}.amazonaws.com`,m=new Date,d=m.toISOString().replace(/[:-]|\.\d{3}/g,""),l=m.toISOString().slice(0,10).replace(/-/g,""),p={host:g,"x-amz-date":d,...r};if(s.sessionToken)p["x-amz-security-token"]=s.sessionToken;let h=o.createHash("sha256").update(i,"utf8").digest("hex");p["x-amz-content-sha256"]=h,p["content-length"]=Buffer.byteLength(i).toString();let y=Object.keys(p).sort((E,ee)=>E.toLowerCase().localeCompare(ee.toLowerCase())),f=y.map((E)=>`${E.toLowerCase()}:${p[E].trim()}
|
|
2
2
|
`).join(""),S=y.map((E)=>E.toLowerCase()).join(";"),b=[e,t,"",f,S,h].join(`
|
|
3
3
|
`),I="AWS4-HMAC-SHA256",A=`${l}/${u}/bedrock-runtime/aws4_request`,O=[I,d,A,o.createHash("sha256").update(b).digest("hex")].join(`
|
|
4
|
-
`),H=o.createHmac("sha256",`AWS4${s.secretAccessKey}`).update(l).digest(),W=o.createHmac("sha256",H).update(u).digest(),X=o.createHmac("sha256",W).update("bedrock-runtime").digest(),Q=o.createHmac("sha256",X).update("aws4_request").digest(),Y=o.createHmac("sha256",Q).update(O).digest("hex"),Z=`${I} Credential=${s.accessKeyId}/${A}, SignedHeaders=${S}, Signature=${Y}`;return{...p,Authorization:Z}}async invokeClaudeMessages(e){let t=e.modelId||"anthropic.claude-3-haiku-20240307-v1:0",r={anthropic_version:"bedrock-2023-05-31",max_tokens:e.maxTokens||1024,messages:e.messages};if(e.temperature!==void 0)r.temperature=e.temperature;if(e.topP!==void 0)r.top_p=e.topP;if(e.topK!==void 0)r.top_k=e.topK;if(e.stopSequences)r.stop_sequences=e.stopSequences;if(e.system)r.system=e.system;if(e.tools)r.tools=e.tools;if(e.toolChoice)r.tool_choice=e.toolChoice;return await this.client.request({service:"bedrock-runtime",region:this.region,method:"POST",path:`/model/${encodeURIComponent(t)}/invoke`,headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(r)})}async converse(e){let t={modelId:e.modelId,messages:e.messages};if(e.system)t.system=e.system;if(e.inferenceConfig)t.inferenceConfig=e.inferenceConfig;if(e.toolConfig)t.toolConfig=e.toolConfig;if(e.guardrailConfig)t.guardrailConfig=e.guardrailConfig;return await this.client.request({service:"bedrock-runtime",region:this.region,method:"POST",path:`/model/${encodeURIComponent(e.modelId)}/converse`,headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(t)})}async generateEmbeddings(e){let t=e.modelId||"amazon.titan-embed-text-v1",r;if(t.includes("cohere"))r={texts:Array.isArray(e.inputText)?e.inputText:[e.inputText],input_type:"search_document"};else if(t.includes("titan")){if(r={inputText:Array.isArray(e.inputText)?e.inputText[0]:e.inputText},e.dimensions)r.dimensions=e.dimensions;if(e.normalize!==void 0)r.normalize=e.normalize}else r={inputText:Array.isArray(e.inputText)?e.inputText[0]:e.inputText};return await this.client.request({service:"bedrock-runtime",region:this.region,method:"POST",path:`/model/${encodeURIComponent(t)}/invoke`,headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(r)})}async applyGuardrail(e){return await this.client.request({service:"bedrock-runtime",region:this.region,method:"POST",path:`/guardrail/${encodeURIComponent(e.guardrailIdentifier)}/version/${encodeURIComponent(e.guardrailVersion)}/apply`,headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({source:e.source,content:e.content})})}}class ln{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async listFoundationModels(e){let t={};if(e?.byProvider)t.byProvider=e.byProvider;if(e?.byCustomizationType)t.byCustomizationType=e.byCustomizationType;if(e?.byOutputModality)t.byOutputModality=e.byOutputModality;if(e?.byInferenceType)t.byInferenceType=e.byInferenceType;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/foundation-models",queryParams:Object.keys(t).length>0?t:void 0})}async getFoundationModel(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/foundation-models/${encodeURIComponent(e.modelIdentifier)}`})}async createModelCustomizationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/model-customization-jobs",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getModelCustomizationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/model-customization-jobs/${encodeURIComponent(e.jobIdentifier)}`})}async listModelCustomizationJobs(e){let t={};if(e?.creationTimeAfter)t.creationTimeAfter=e.creationTimeAfter;if(e?.creationTimeBefore)t.creationTimeBefore=e.creationTimeBefore;if(e?.statusEquals)t.statusEquals=e.statusEquals;if(e?.nameContains)t.nameContains=e.nameContains;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;if(e?.sortBy)t.sortBy=e.sortBy;if(e?.sortOrder)t.sortOrder=e.sortOrder;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/model-customization-jobs",queryParams:Object.keys(t).length>0?t:void 0})}async stopModelCustomizationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:`/model-customization-jobs/${encodeURIComponent(e.jobIdentifier)}/stop`,headers:{"Content-Type":"application/json"}})}async listCustomModels(e){let t={};if(e?.creationTimeBefore)t.creationTimeBefore=e.creationTimeBefore;if(e?.creationTimeAfter)t.creationTimeAfter=e.creationTimeAfter;if(e?.nameContains)t.nameContains=e.nameContains;if(e?.baseModelArnEquals)t.baseModelArnEquals=e.baseModelArnEquals;if(e?.foundationModelArnEquals)t.foundationModelArnEquals=e.foundationModelArnEquals;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;if(e?.sortBy)t.sortBy=e.sortBy;if(e?.sortOrder)t.sortOrder=e.sortOrder;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/custom-models",queryParams:Object.keys(t).length>0?t:void 0})}async getCustomModel(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/custom-models/${encodeURIComponent(e.modelIdentifier)}`})}async deleteCustomModel(e){return this.client.request({service:"bedrock",region:this.region,method:"DELETE",path:`/custom-models/${encodeURIComponent(e.modelIdentifier)}`})}async requestModelAccess(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/foundation-model-entitlement",headers:{"Content-Type":"application/json"},body:JSON.stringify({modelId:e.modelId})})}async createGuardrail(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/guardrails",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getGuardrail(e){let t=`/guardrails/${encodeURIComponent(e.guardrailIdentifier)}`;if(e.guardrailVersion)t+=`?guardrailVersion=${encodeURIComponent(e.guardrailVersion)}`;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:t})}async listGuardrails(e){let t={};if(e?.guardrailIdentifier)t.guardrailIdentifier=e.guardrailIdentifier;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/guardrails",queryParams:Object.keys(t).length>0?t:void 0})}async deleteGuardrail(e){let t=`/guardrails/${encodeURIComponent(e.guardrailIdentifier)}`;if(e.guardrailVersion)t+=`?guardrailVersion=${encodeURIComponent(e.guardrailVersion)}`;return this.client.request({service:"bedrock",region:this.region,method:"DELETE",path:t})}async listModelInvocationJobs(e){let t={};if(e?.submitTimeAfter)t.submitTimeAfter=e.submitTimeAfter;if(e?.submitTimeBefore)t.submitTimeBefore=e.submitTimeBefore;if(e?.statusEquals)t.statusEquals=e.statusEquals;if(e?.nameContains)t.nameContains=e.nameContains;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;if(e?.sortBy)t.sortBy=e.sortBy;if(e?.sortOrder)t.sortOrder=e.sortOrder;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/model-invocation-jobs",queryParams:Object.keys(t).length>0?t:void 0})}async waitForModelCustomizationJob(e,t){let r=t?.maxWaitMs??3600000,i=t?.pollIntervalMs??30000,s=Date.now();while(Date.now()-s<r){let o=await this.getModelCustomizationJob({jobIdentifier:e});if(o.status==="Completed"||o.status==="Failed"||o.status==="Stopped")return o;await new Promise((c)=>setTimeout(c,i))}throw Error(`Timeout waiting for model customization job ${e}`)}async requestAccessToModels(e){let t=[];for(let r of e)try{let i=await this.requestModelAccess({modelId:r});t.push({modelId:r,status:i.status})}catch(i){let s=i instanceof Error?i.message:String(i);t.push({modelId:r,status:"ERROR",error:s})}return t}async listModelsByProvider(e){return(await this.listFoundationModels({byProvider:e})).modelSummaries||[]}async listClaudeModels(){return this.listModelsByProvider("Anthropic")}async listEmbeddingModels(){return(await this.listFoundationModels({byOutputModality:"EMBEDDING"})).modelSummaries||[]}async createModelInvocationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/model-invocation-jobs",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getModelInvocationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/model-invocation-jobs/${encodeURIComponent(e.jobIdentifier)}`})}async stopModelInvocationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:`/model-invocation-jobs/${encodeURIComponent(e.jobIdentifier)}/stop`,headers:{"Content-Type":"application/json"}})}async createProvisionedModelThroughput(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/provisioned-model-throughput",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getProvisionedModelThroughput(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/provisioned-model-throughput/${encodeURIComponent(e.provisionedModelId)}`})}async listProvisionedModelThroughputs(e){let t={};if(e?.creationTimeAfter)t.creationTimeAfter=e.creationTimeAfter;if(e?.creationTimeBefore)t.creationTimeBefore=e.creationTimeBefore;if(e?.statusEquals)t.statusEquals=e.statusEquals;if(e?.modelArnEquals)t.modelArnEquals=e.modelArnEquals;if(e?.nameContains)t.nameContains=e.nameContains;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;if(e?.sortBy)t.sortBy=e.sortBy;if(e?.sortOrder)t.sortOrder=e.sortOrder;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/provisioned-model-throughput",queryParams:Object.keys(t).length>0?t:void 0})}async updateProvisionedModelThroughput(e){return this.client.request({service:"bedrock",region:this.region,method:"PATCH",path:`/provisioned-model-throughput/${encodeURIComponent(e.provisionedModelId)}`,headers:{"Content-Type":"application/json"},body:JSON.stringify({desiredProvisionedModelName:e.desiredProvisionedModelName,desiredModelId:e.desiredModelId})})}async deleteProvisionedModelThroughput(e){return this.client.request({service:"bedrock",region:this.region,method:"DELETE",path:`/provisioned-model-throughput/${encodeURIComponent(e.provisionedModelId)}`})}async createEvaluationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/evaluation-jobs",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getEvaluationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/evaluation-jobs/${encodeURIComponent(e.jobIdentifier)}`})}async listEvaluationJobs(e){let t={};if(e?.creationTimeAfter)t.creationTimeAfter=e.creationTimeAfter;if(e?.creationTimeBefore)t.creationTimeBefore=e.creationTimeBefore;if(e?.statusEquals)t.statusEquals=e.statusEquals;if(e?.nameContains)t.nameContains=e.nameContains;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;if(e?.sortBy)t.sortBy=e.sortBy;if(e?.sortOrder)t.sortOrder=e.sortOrder;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/evaluation-jobs",queryParams:Object.keys(t).length>0?t:void 0})}async stopEvaluationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:`/evaluation-jobs/${encodeURIComponent(e.jobIdentifier)}/stop`,headers:{"Content-Type":"application/json"}})}async getInferenceProfile(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/inference-profiles/${encodeURIComponent(e.inferenceProfileIdentifier)}`})}async listInferenceProfiles(e){let t={};if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;if(e?.typeEquals)t.typeEquals=e.typeEquals;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/inference-profiles",queryParams:Object.keys(t).length>0?t:void 0})}async createInferenceProfile(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/inference-profiles",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async deleteInferenceProfile(e){return this.client.request({service:"bedrock",region:this.region,method:"DELETE",path:`/inference-profiles/${encodeURIComponent(e.inferenceProfileIdentifier)}`})}async createModelCopyJob(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/model-copy-jobs",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getModelCopyJob(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/model-copy-jobs/${encodeURIComponent(e.jobArn)}`})}async listModelCopyJobs(e){let t={};if(e?.creationTimeAfter)t.creationTimeAfter=e.creationTimeAfter;if(e?.creationTimeBefore)t.creationTimeBefore=e.creationTimeBefore;if(e?.statusEquals)t.statusEquals=e.statusEquals;if(e?.sourceAccountEquals)t.sourceAccountEquals=e.sourceAccountEquals;if(e?.sourceModelArnEquals)t.sourceModelArnEquals=e.sourceModelArnEquals;if(e?.targetModelNameContains)t.targetModelNameContains=e.targetModelNameContains;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;if(e?.sortBy)t.sortBy=e.sortBy;if(e?.sortOrder)t.sortOrder=e.sortOrder;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/model-copy-jobs",queryParams:Object.keys(t).length>0?t:void 0})}}class Mm{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async invokeAgent(e){let t={inputText:e.inputText};if(e.endSession!==void 0)t.endSession=e.endSession;if(e.enableTrace!==void 0)t.enableTrace=e.enableTrace;if(e.memoryId)t.memoryId=e.memoryId;if(e.sessionState)t.sessionState=e.sessionState;return await this.client.request({service:"bedrock-agent-runtime",region:this.region,method:"POST",path:`/agents/${encodeURIComponent(e.agentId)}/agentAliases/${encodeURIComponent(e.agentAliasId)}/sessions/${encodeURIComponent(e.sessionId)}/text`,headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(t)})}async retrieve(e){return this.client.request({service:"bedrock-agent-runtime",region:this.region,method:"POST",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/retrieve`,headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({retrievalQuery:e.retrievalQuery,retrievalConfiguration:e.retrievalConfiguration,nextToken:e.nextToken})})}async retrieveAndGenerate(e){return this.client.request({service:"bedrock-agent-runtime",region:this.region,method:"POST",path:"/retrieveAndGenerate",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e)})}}class Fm{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async createAgent(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"PUT",path:"/agents/",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getAgent(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:`/agents/${encodeURIComponent(e.agentId)}/`})}async listAgents(e){let t={};if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:"/agents/",queryParams:Object.keys(t).length>0?t:void 0})}async deleteAgent(e){let t={};if(e.skipResourceInUseCheck!==void 0)t.skipResourceInUseCheck=e.skipResourceInUseCheck.toString();return this.client.request({service:"bedrock-agent",region:this.region,method:"DELETE",path:`/agents/${encodeURIComponent(e.agentId)}/`,queryParams:Object.keys(t).length>0?t:void 0})}async prepareAgent(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:`/agents/${encodeURIComponent(e.agentId)}/`,headers:{"Content-Type":"application/json"}})}async createKnowledgeBase(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"PUT",path:"/knowledgebases/",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getKnowledgeBase(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}`})}async listKnowledgeBases(e){let t={};if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:"/knowledgebases/",queryParams:Object.keys(t).length>0?t:void 0})}async deleteKnowledgeBase(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"DELETE",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}`})}async createDataSource(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"PUT",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/`,headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getDataSource(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/${encodeURIComponent(e.dataSourceId)}`})}async listDataSources(e){let t={};if(e.maxResults)t.maxResults=e.maxResults.toString();if(e.nextToken)t.nextToken=e.nextToken;return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/`,queryParams:Object.keys(t).length>0?t:void 0})}async updateDataSource(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"PUT",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/${encodeURIComponent(e.dataSourceId)}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async deleteDataSource(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"DELETE",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/${encodeURIComponent(e.dataSourceId)}`})}async startIngestionJob(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"PUT",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/${encodeURIComponent(e.dataSourceId)}/ingestionjobs/`,headers:{"Content-Type":"application/json"},body:JSON.stringify({clientToken:e.clientToken,description:e.description})})}async getIngestionJob(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/${encodeURIComponent(e.dataSourceId)}/ingestionjobs/${encodeURIComponent(e.ingestionJobId)}`})}async listIngestionJobs(e){let t={};if(e.maxResults)t.maxResults=e.maxResults.toString();if(e.nextToken)t.nextToken=e.nextToken;return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/${encodeURIComponent(e.dataSourceId)}/ingestionjobs/`,headers:{"Content-Type":"application/json"},body:JSON.stringify({filters:e.filters,sortBy:e.sortBy,maxResults:e.maxResults,nextToken:e.nextToken})})}async createPrompt(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:"/prompts/",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getPrompt(e){let t={};if(e.promptVersion)t.promptVersion=e.promptVersion;return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:`/prompts/${encodeURIComponent(e.promptIdentifier)}/`,queryParams:Object.keys(t).length>0?t:void 0})}async listPrompts(e){let t={};if(e?.promptIdentifier)t.promptIdentifier=e.promptIdentifier;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:"/prompts/",queryParams:Object.keys(t).length>0?t:void 0})}async deletePrompt(e){let t={};if(e.promptVersion)t.promptVersion=e.promptVersion;return this.client.request({service:"bedrock-agent",region:this.region,method:"DELETE",path:`/prompts/${encodeURIComponent(e.promptIdentifier)}/`,queryParams:Object.keys(t).length>0?t:void 0})}async createPromptVersion(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:`/prompts/${encodeURIComponent(e.promptIdentifier)}/versions/`,headers:{"Content-Type":"application/json"},body:JSON.stringify({description:e.description,clientToken:e.clientToken,tags:e.tags})})}async createFlow(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:"/flows/",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getFlow(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:`/flows/${encodeURIComponent(e.flowIdentifier)}/`})}async listFlows(e){let t={};if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:"/flows/",queryParams:Object.keys(t).length>0?t:void 0})}async updateFlow(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"PUT",path:`/flows/${encodeURIComponent(e.flowIdentifier)}/`,headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async deleteFlow(e){let t={};if(e.skipResourceInUseCheck!==void 0)t.skipResourceInUseCheck=e.skipResourceInUseCheck.toString();return this.client.request({service:"bedrock-agent",region:this.region,method:"DELETE",path:`/flows/${encodeURIComponent(e.flowIdentifier)}/`,queryParams:Object.keys(t).length>0?t:void 0})}async prepareFlow(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:`/flows/${encodeURIComponent(e.flowIdentifier)}/`,headers:{"Content-Type":"application/json"}})}async createFlowVersion(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:`/flows/${encodeURIComponent(e.flowIdentifier)}/versions/`,headers:{"Content-Type":"application/json"},body:JSON.stringify({description:e.description,clientToken:e.clientToken})})}async createFlowAlias(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:`/flows/${encodeURIComponent(e.flowIdentifier)}/aliases/`,headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}}async function QA(e,t="us-east-1"){return new ln(t).requestAccessToModels(e)}async function HA(e="us-east-1"){return new ln(e).listClaudeModels()}async function GA(e,t){let s=(await new dn(t?.region||"us-east-1").invokeClaudeMessages({modelId:t?.modelId||"anthropic.claude-3-haiku-20240307-v1:0",messages:[{role:"user",content:e}],maxTokens:t?.maxTokens||1024,temperature:t?.temperature})).content.find((o)=>o.type==="text");return s?.type==="text"?s.text:""}async function qA(e,t){let i=await new dn(t?.region||"us-east-1").generateEmbeddings({modelId:t?.modelId||"amazon.titan-embed-text-v1",inputText:e});return i.embeddings||i.embedding||[]}class Ct{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"comprehend",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`Comprehend_20171127.${e}`},body:JSON.stringify(t)})}async detectSentiment(e){return this.request("DetectSentiment",e)}async detectEntities(e){return this.request("DetectEntities",e)}async detectKeyPhrases(e){return this.request("DetectKeyPhrases",e)}async detectDominantLanguage(e){return this.request("DetectDominantLanguage",e)}async detectPiiEntities(e){return this.request("DetectPiiEntities",e)}async containsPiiEntities(e){return this.request("ContainsPiiEntities",e)}async detectSyntax(e){return this.request("DetectSyntax",e)}async detectTargetedSentiment(e){return this.request("DetectTargetedSentiment",e)}async classifyDocument(e){return this.request("ClassifyDocument",e)}async batchDetectSentiment(e){return this.request("BatchDetectSentiment",e)}async batchDetectEntities(e){return this.request("BatchDetectEntities",e)}async batchDetectKeyPhrases(e){return this.request("BatchDetectKeyPhrases",e)}async batchDetectDominantLanguage(e){return this.request("BatchDetectDominantLanguage",e)}async batchDetectSyntax(e){return this.request("BatchDetectSyntax",e)}async startSentimentDetectionJob(e){return this.request("StartSentimentDetectionJob",e)}async startEntitiesDetectionJob(e){return this.request("StartEntitiesDetectionJob",e)}async startKeyPhrasesDetectionJob(e){return this.request("StartKeyPhrasesDetectionJob",e)}async startPiiEntitiesDetectionJob(e){return this.request("StartPiiEntitiesDetectionJob",e)}async describeSentimentDetectionJob(e){return this.request("DescribeSentimentDetectionJob",e)}async analyzeSentiment(e,t="en"){let r=await this.detectSentiment({Text:e,LanguageCode:t});return{sentiment:r.Sentiment,scores:{positive:r.SentimentScore.Positive,negative:r.SentimentScore.Negative,neutral:r.SentimentScore.Neutral,mixed:r.SentimentScore.Mixed}}}async extractEntities(e,t="en"){return(await this.detectEntities({Text:e,LanguageCode:t})).Entities.map((i)=>({text:i.Text||"",type:i.Type||"UNKNOWN",score:i.Score||0}))}async extractKeyPhrases(e,t="en"){return(await this.detectKeyPhrases({Text:e,LanguageCode:t})).KeyPhrases.map((i)=>i.Text||"").filter(Boolean)}async detectLanguage(e){let r=(await this.detectDominantLanguage({Text:e})).Languages[0];return{languageCode:r?.LanguageCode||"unknown",confidence:r?.Score||0}}async findPii(e,t="en"){return(await this.detectPiiEntities({Text:e,LanguageCode:t})).Entities.map((i)=>({type:i.Type||"UNKNOWN",beginOffset:i.BeginOffset||0,endOffset:i.EndOffset||0,score:i.Score||0}))}async hasPii(e,t="en"){return(await this.detectPiiEntities({Text:e,LanguageCode:t})).Entities.length>0}async redactPii(e,t="en"){let i=[...(await this.detectPiiEntities({Text:e,LanguageCode:t})).Entities].sort((o,c)=>(c.EndOffset||0)-(o.EndOffset||0)),s=e;for(let o of i)if(o.BeginOffset!==void 0&&o.EndOffset!==void 0)s=s.slice(0,o.BeginOffset)+`[${o.Type}]`+s.slice(o.EndOffset);return s}}async function VA(e,t){let i=await new Ct(t?.region||"us-east-1").analyzeSentiment(e,t?.languageCode||"en"),s=Math.max(i.scores.positive,i.scores.negative,i.scores.neutral,i.scores.mixed);return{sentiment:i.sentiment,confidence:s}}async function jA(e,t){return new Ct(t?.region||"us-east-1").extractEntities(e,t?.languageCode||"en")}async function zA(e,t){return(await new Ct(t||"us-east-1").detectLanguage(e)).languageCode}async function KA(e,t){return new Ct(t?.region||"us-east-1").hasPii(e,t?.languageCode||"en")}class bt{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"rekognition",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`RekognitionService.${e}`},body:JSON.stringify(t)})}async detectFaces(e){return this.request("DetectFaces",e)}async detectLabels(e){return this.request("DetectLabels",e)}async detectText(e){return this.request("DetectText",e)}async detectModerationLabels(e){return this.request("DetectModerationLabels",e)}async recognizeCelebrities(e){return this.request("RecognizeCelebrities",e)}async compareFaces(e){return this.request("CompareFaces",e)}async createCollection(e){return this.request("CreateCollection",e)}async deleteCollection(e){return this.request("DeleteCollection",e)}async listCollections(e){return this.request("ListCollections",e||{})}async indexFaces(e){return this.request("IndexFaces",e)}async searchFacesByImage(e){return this.request("SearchFacesByImage",e)}async searchFaces(e){return this.request("SearchFaces",e)}async startLabelDetection(e){return this.request("StartLabelDetection",e)}async getLabelDetection(e){return this.request("GetLabelDetection",e)}async startFaceDetection(e){return this.request("StartFaceDetection",e)}async getFaceDetection(e){return this.request("GetFaceDetection",e)}async startContentModeration(e){return this.request("StartContentModeration",e)}async getContentModeration(e){return this.request("GetContentModeration",e)}async analyzeS3Image(e,t,r){return(await this.detectLabels({Image:{S3Object:{Bucket:e,Name:t}},MaxLabels:r?.maxLabels,MinConfidence:r?.minConfidence})).Labels||[]}async analyzeImageBytes(e,t){return(await this.detectLabels({Image:{Bytes:e},MaxLabels:t?.maxLabels,MinConfidence:t?.minConfidence})).Labels||[]}async isImageSafe(e,t=50){return((await this.detectModerationLabels({Image:e,MinConfidence:t})).ModerationLabels?.length||0)===0}async countFaces(e){return(await this.detectFaces({Image:e,Attributes:["DEFAULT"]})).FaceDetails?.length||0}async extractText(e){return(await this.detectText({Image:e})).TextDetections?.filter((r)=>r.Type==="LINE").map((r)=>r.DetectedText||"")||[]}async findFace(e,t,r=80){try{return(await this.searchFacesByImage({CollectionId:e,Image:t,FaceMatchThreshold:r,MaxFaces:1})).FaceMatches?.[0]||null}catch(i){if(i instanceof Error&&i.message.includes("InvalidParameterException"))return null;throw i}}}async function Um(e,t,r){return(await new bt(r?.region||"us-east-1").analyzeS3Image(e,t,{maxLabels:r?.maxLabels})).map((o)=>o.Name||"").filter(Boolean)}async function Qm(e,t,r){return new bt(r||"us-east-1").countFaces({S3Object:{Bucket:e,Name:t}})}async function Hm(e,t,r){return new bt(r?.region||"us-east-1").isImageSafe({S3Object:{Bucket:e,Name:t}},r?.threshold)}class Et{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"textract",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`Textract.${e}`},body:JSON.stringify(t)})}async detectDocumentText(e){return this.request("DetectDocumentText",e)}async analyzeDocument(e){return this.request("AnalyzeDocument",e)}async analyzeExpense(e){return this.request("AnalyzeExpense",e)}async analyzeID(e){return this.request("AnalyzeID",e)}async startDocumentTextDetection(e){return this.request("StartDocumentTextDetection",e)}async getDocumentTextDetection(e){return this.request("GetDocumentTextDetection",e)}async startDocumentAnalysis(e){return this.request("StartDocumentAnalysis",e)}async getDocumentAnalysis(e){return this.request("GetDocumentAnalysis",e)}async startExpenseAnalysis(e){return this.request("StartExpenseAnalysis",e)}async getExpenseAnalysis(e){return this.request("GetExpenseAnalysis",e)}async startLendingAnalysis(e){return this.request("StartLendingAnalysis",e)}async getLendingAnalysis(e){return this.request("GetLendingAnalysis",e)}async extractText(e){return(await this.detectDocumentText({Document:e})).Blocks?.filter((r)=>r.BlockType==="LINE").map((r)=>r.Text||"")||[]}async extractTextFromS3(e,t){return this.extractText({S3Object:{Bucket:e,Name:t}})}async extractForms(e){let r=(await this.analyzeDocument({Document:e,FeatureTypes:["FORMS"]})).Blocks||[],i=new Map;r.forEach((o)=>o.Id&&i.set(o.Id,o));let s=[];for(let o of r)if(o.BlockType==="KEY_VALUE_SET"&&o.EntityTypes?.includes("KEY")){let c=this.getBlockText(o,i),u=o.Relationships?.find((m)=>m.Type==="VALUE"),g="";if(u?.Ids)for(let m of u.Ids){let d=i.get(m);if(d)g+=this.getBlockText(d,i)+" "}s.push({key:c.trim(),value:g.trim(),confidence:o.Confidence||0})}return s}async extractTables(e){let r=(await this.analyzeDocument({Document:e,FeatureTypes:["TABLES"]})).Blocks||[],i=new Map;r.forEach((o)=>o.Id&&i.set(o.Id,o));let s=[];for(let o of r)if(o.BlockType==="TABLE"){let u=(o.Relationships?.find((l)=>l.Type==="CHILD")?.Ids||[]).map((l)=>i.get(l)).filter(Boolean),g=0,m=0;for(let l of u){if(l.RowIndex&&l.RowIndex>g)g=l.RowIndex;if(l.ColumnIndex&&l.ColumnIndex>m)m=l.ColumnIndex}let d=Array.from({length:g},()=>Array.from({length:m},()=>""));for(let l of u)if(l.RowIndex&&l.ColumnIndex)d[l.RowIndex-1][l.ColumnIndex-1]=this.getBlockText(l,i);s.push({rows:d})}return s}async extractExpenseSummary(e){let r=(await this.analyzeExpense({Document:e})).ExpenseDocuments?.[0];if(!r)return{items:[]};let i={};for(let o of r.SummaryFields||[]){let c=o.Type?.Text?.toUpperCase(),u=o.ValueDetection?.Text;if(c==="VENDOR_NAME")i.vendor=u;if(c==="TOTAL")i.total=u;if(c==="INVOICE_RECEIPT_DATE")i.date=u}let s=[];for(let o of r.LineItemGroups||[])for(let c of o.LineItems||[]){let u={};for(let g of c.LineItemExpenseFields||[]){let m=g.Type?.Text?.toUpperCase(),d=g.ValueDetection?.Text;if(m==="ITEM")u.description=d;if(m==="QUANTITY")u.quantity=d;if(m==="PRICE")u.price=d}if(u.description||u.price)s.push(u)}return{...i,items:s}}async queryDocument(e,t){let i=(await this.analyzeDocument({Document:e,FeatureTypes:["QUERIES"],QueriesConfig:{Queries:t.map((o)=>({Text:o}))}})).Blocks||[],s=[];for(let o of i)if(o.BlockType==="QUERY_RESULT"&&o.Text){let c=i.find((u)=>u.BlockType==="QUERY"&&u.Relationships?.some((g)=>g.Type==="ANSWER"&&g.Ids?.includes(o.Id||"")));s.push({question:c?.Query?.Text||"",answer:o.Text,confidence:o.Confidence||0})}return s}async waitForJob(e,t,r){let i=r?.maxWaitMs??300000,s=r?.pollIntervalMs??5000,o=Date.now();while(Date.now()-o<i){let c=await t(e);if(c.JobStatus==="SUCCEEDED"||c.JobStatus==="PARTIAL_SUCCESS")return;if(c.JobStatus==="FAILED")throw Error(`Textract job ${e} failed`);await new Promise((u)=>setTimeout(u,s))}throw Error(`Timeout waiting for Textract job ${e}`)}getBlockText(e,t){if(e.Text)return e.Text;return(e.Relationships?.find((i)=>i.Type==="CHILD")?.Ids||[]).map((i)=>t.get(i)?.Text||"").join(" ")}}async function Gm(e,t,r){return(await new Et(r||"us-east-1").extractTextFromS3(e,t)).join(`
|
|
5
|
-
`)}async function qm(e,t,r){let s=await new Et(r||"us-east-1").extractForms({S3Object:{Bucket:e,Name:t}});return Object.fromEntries(s.map((o)=>[o.key,o.value]))}async function Vm(e,t,r){return(await new Et(r||"us-east-1").extractTables({S3Object:{Bucket:e,Name:t}})).map((o)=>o.rows)}class un{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async synthesizeSpeech(e){let t=await this.client.request({service:"polly",region:this.region,method:"POST",path:"/v1/speech",headers:{"Content-Type":"application/json"},body:JSON.stringify({Engine:e.Engine,LanguageCode:e.LanguageCode,LexiconNames:e.LexiconNames,OutputFormat:e.OutputFormat,SampleRate:e.SampleRate,SpeechMarkTypes:e.SpeechMarkTypes,Text:e.Text,TextType:e.TextType,VoiceId:e.VoiceId}),rawResponse:!0,returnHeaders:!0});return{AudioStream:new TextEncoder().encode(t.body),ContentType:t.headers?.["content-type"],RequestCharacters:t.headers?.["x-amzn-requestcharacters"]?Number.parseInt(t.headers["x-amzn-requestcharacters"]):void 0}}async startSpeechSynthesisTask(e){return this.client.request({service:"polly",region:this.region,method:"POST",path:"/v1/synthesisTasks",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getSpeechSynthesisTask(e){return this.client.request({service:"polly",region:this.region,method:"GET",path:`/v1/synthesisTasks/${encodeURIComponent(e.TaskId)}`})}async listSpeechSynthesisTasks(e){let t={};if(e?.MaxResults)t.MaxResults=e.MaxResults.toString();if(e?.NextToken)t.NextToken=e.NextToken;if(e?.Status)t.Status=e.Status;return this.client.request({service:"polly",region:this.region,method:"GET",path:"/v1/synthesisTasks",queryParams:Object.keys(t).length>0?t:void 0})}async describeVoices(e){let t={};if(e?.Engine)t.Engine=e.Engine;if(e?.LanguageCode)t.LanguageCode=e.LanguageCode;if(e?.IncludeAdditionalLanguageCodes!==void 0)t.IncludeAdditionalLanguageCodes=e.IncludeAdditionalLanguageCodes.toString();if(e?.NextToken)t.NextToken=e.NextToken;return this.client.request({service:"polly",region:this.region,method:"GET",path:"/v1/voices",queryParams:Object.keys(t).length>0?t:void 0})}async putLexicon(e){return this.client.request({service:"polly",region:this.region,method:"PUT",path:`/v1/lexicons/${encodeURIComponent(e.Name)}`,headers:{"Content-Type":"application/pls+xml"},body:e.Content})}async getLexicon(e){return this.client.request({service:"polly",region:this.region,method:"GET",path:`/v1/lexicons/${encodeURIComponent(e.Name)}`})}async deleteLexicon(e){return this.client.request({service:"polly",region:this.region,method:"DELETE",path:`/v1/lexicons/${encodeURIComponent(e.Name)}`})}async listLexicons(e){let t={};if(e?.NextToken)t.NextToken=e.NextToken;return this.client.request({service:"polly",region:this.region,method:"GET",path:"/v1/lexicons",queryParams:Object.keys(t).length>0?t:void 0})}async textToSpeech(e,t){return(await this.synthesizeSpeech({Text:e,VoiceId:t?.voiceId||"Joanna",Engine:t?.engine||"neural",LanguageCode:t?.languageCode,OutputFormat:"mp3"})).AudioStream||new Uint8Array}async ssmlToSpeech(e,t){return(await this.synthesizeSpeech({Text:e,TextType:"ssml",VoiceId:t?.voiceId||"Joanna",Engine:t?.engine||"neural",LanguageCode:t?.languageCode,OutputFormat:"mp3"})).AudioStream||new Uint8Array}async saveToS3(e,t,r,i){let s=await this.startSpeechSynthesisTask({Text:e,TextType:i?.textType||"text",VoiceId:i?.voiceId||"Joanna",Engine:i?.engine||"neural",LanguageCode:i?.languageCode,OutputFormat:"mp3",OutputS3BucketName:t,OutputS3KeyPrefix:r});return{taskId:s.SynthesisTask?.TaskId||"",outputUri:s.SynthesisTask?.OutputUri||""}}async listVoicesForLanguage(e){return(await this.describeVoices({LanguageCode:e})).Voices||[]}async listNeuralVoices(){return(await this.describeVoices({Engine:"neural"})).Voices||[]}async waitForTask(e,t){let r=t?.maxWaitMs??300000,i=t?.pollIntervalMs??5000,s=Date.now();while(Date.now()-s<r){let c=(await this.getSpeechSynthesisTask({TaskId:e})).SynthesisTask;if(c?.TaskStatus==="completed")return c;if(c?.TaskStatus==="failed")throw Error(`Polly task ${e} failed: ${c.TaskStatusReason}`);await new Promise((u)=>setTimeout(u,i))}throw Error(`Timeout waiting for Polly task ${e}`)}}async function WA(e,t){return new un(t?.region||"us-east-1").textToSpeech(e,t)}async function JA(e){return(await new un(e?.region||"us-east-1").describeVoices({LanguageCode:e?.languageCode,Engine:e?.engine})).Voices||[]}function XA(e,t){let r="<speak>";if(t?.rate||t?.pitch||t?.volume){if(r+="<prosody",t.rate)r+=` rate="${t.rate}"`;if(t.pitch)r+=` pitch="${t.pitch}"`;if(t.volume)r+=` volume="${t.volume}"`;r+=`>${e}</prosody>`}else r+=e;return r+="</speak>",r}class Yt{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"translate",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`AWSShineFrontendService_20170701.${e}`},body:JSON.stringify(t)})}async translateText(e){return this.request("TranslateText",e)}async translateDocument(e){return this.request("TranslateDocument",e)}async startTextTranslationJob(e){return this.request("StartTextTranslationJob",e)}async describeTextTranslationJob(e){return this.request("DescribeTextTranslationJob",e)}async listTextTranslationJobs(e){return this.request("ListTextTranslationJobs",e||{})}async stopTextTranslationJob(e){return this.request("StopTextTranslationJob",e)}async listLanguages(e){return this.request("ListLanguages",e||{})}async importTerminology(e){return this.request("ImportTerminology",e)}async getTerminology(e){return this.request("GetTerminology",e)}async listTerminologies(e){return this.request("ListTerminologies",e||{})}async deleteTerminology(e){return this.request("DeleteTerminology",e)}async createParallelData(e){return this.request("CreateParallelData",e)}async getParallelData(e){return this.request("GetParallelData",e)}async listParallelData(e){return this.request("ListParallelData",e||{})}async deleteParallelData(e){return this.request("DeleteParallelData",e)}async translate(e,t,r="auto"){return(await this.translateText({Text:e,SourceLanguageCode:r,TargetLanguageCode:t})).TranslatedText}async translateFormal(e,t,r="auto",i="FORMAL"){return(await this.translateText({Text:e,SourceLanguageCode:r,TargetLanguageCode:t,Settings:{Formality:i}})).TranslatedText}async translateToMultiple(e,t,r="auto"){let i={};for(let s of t)i[s]=await this.translate(e,s,r);return i}async waitForJob(e,t){let r=t?.maxWaitMs??3600000,i=t?.pollIntervalMs??30000,s=Date.now();while(Date.now()-s<r){let c=(await this.describeTextTranslationJob({JobId:e})).TextTranslationJobProperties;if(c?.JobStatus==="COMPLETED"||c?.JobStatus==="COMPLETED_WITH_ERROR")return c;if(c?.JobStatus==="FAILED"||c?.JobStatus==="STOPPED")throw Error(`Translation job ${e} failed: ${c.Message}`);await new Promise((u)=>setTimeout(u,i))}throw Error(`Timeout waiting for translation job ${e}`)}async getSupportedLanguages(){return(await this.listLanguages()).Languages?.map((t)=>t.LanguageCode||"").filter(Boolean)||[]}}async function YA(e,t,r){return new Yt(r?.region||"us-east-1").translate(e,t,r?.sourceLanguage||"auto")}async function ZA(e,t,r){return new Yt(r?.region||"us-east-1").translateToMultiple(e,t,r?.sourceLanguage||"auto")}async function ey(e){return(await new Yt(e||"us-east-1").listLanguages()).Languages||[]}class Ba{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"personalize",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`AmazonPersonalize.${e}`},body:JSON.stringify(t)})}async createDatasetGroup(e){return this.request("CreateDatasetGroup",e)}async describeDatasetGroup(e){return this.request("DescribeDatasetGroup",e)}async listDatasetGroups(e){return this.request("ListDatasetGroups",e||{})}async createSchema(e){return this.request("CreateSchema",e)}async createDataset(e){return this.request("CreateDataset",e)}async createDatasetImportJob(e){return this.request("CreateDatasetImportJob",e)}async describeDatasetImportJob(e){return this.request("DescribeDatasetImportJob",e)}async createSolution(e){return this.request("CreateSolution",e)}async createSolutionVersion(e){return this.request("CreateSolutionVersion",e)}async describeSolutionVersion(e){return this.request("DescribeSolutionVersion",e)}async createCampaign(e){return this.request("CreateCampaign",e)}async describeCampaign(e){return this.request("DescribeCampaign",e)}async createRecommender(e){return this.request("CreateRecommender",e)}async describeRecommender(e){return this.request("DescribeRecommender",e)}async listRecommenders(e){return this.request("ListRecommenders",e||{})}async createEventTracker(e){return this.request("CreateEventTracker",e)}async describeEventTracker(e){return this.request("DescribeEventTracker",e)}async createFilter(e){return this.request("CreateFilter",e)}async listRecipes(e){return this.request("ListRecipes",e||{})}async waitForSolutionVersion(e,t){let r=t?.maxWaitMs??7200000,i=t?.pollIntervalMs??60000,s=Date.now();while(Date.now()-s<r){let c=(await this.describeSolutionVersion({solutionVersionArn:e})).solutionVersion;if(c?.status==="ACTIVE")return c;if(c?.status==="CREATE FAILED")throw Error(`Solution version failed: ${c.failureReason}`);await new Promise((u)=>setTimeout(u,i))}throw Error(`Timeout waiting for solution version ${e}`)}async waitForCampaign(e,t){let r=t?.maxWaitMs??1800000,i=t?.pollIntervalMs??30000,s=Date.now();while(Date.now()-s<r){let c=(await this.describeCampaign({campaignArn:e})).campaign;if(c?.status==="ACTIVE")return c;if(c?.status==="CREATE FAILED")throw Error(`Campaign failed: ${c.failureReason}`);await new Promise((u)=>setTimeout(u,i))}throw Error(`Timeout waiting for campaign ${e}`)}async waitForDatasetImportJob(e,t){let r=t?.maxWaitMs??3600000,i=t?.pollIntervalMs??30000,s=Date.now();while(Date.now()-s<r){let c=(await this.describeDatasetImportJob({datasetImportJobArn:e})).datasetImportJob;if(c?.status==="ACTIVE")return c;if(c?.status==="CREATE FAILED")throw Error(`Dataset import job failed: ${c.failureReason}`);await new Promise((u)=>setTimeout(u,i))}throw Error(`Timeout waiting for dataset import job ${e}`)}}class xa{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"personalize-runtime",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`AmazonPersonalizeRuntime.${e}`},body:JSON.stringify(t)})}async getRecommendations(e){return this.request("GetRecommendations",e)}async getPersonalizedRanking(e){return this.request("GetPersonalizedRanking",e)}async recommendForUser(e,t,r=10){return(await this.getRecommendations({campaignArn:e,userId:t,numResults:r})).itemList?.map((s)=>s.itemId||"").filter(Boolean)||[]}async getSimilarItems(e,t,r=10){return(await this.getRecommendations({campaignArn:e,itemId:t,numResults:r})).itemList?.map((s)=>s.itemId||"").filter(Boolean)||[]}async rankItems(e,t,r){return(await this.getPersonalizedRanking({campaignArn:e,userId:t,inputList:r})).personalizedRanking?.map((s)=>s.itemId||"").filter(Boolean)||[]}}class eu{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"personalize-events",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`AmazonPersonalizeEvents.${e}`},body:JSON.stringify(t)})}async putEvents(e){return this.request("PutEvents",e)}async putItems(e){return this.request("PutItems",e)}async putUsers(e){return this.request("PutUsers",e)}async trackEvent(e,t,r,i,s="click"){await this.putEvents({trackingId:e,sessionId:t,userId:r,eventList:[{eventType:s,itemId:i,sentAt:new Date().toISOString()}]})}async trackPurchase(e,t,r,i,s){await this.putEvents({trackingId:e,sessionId:t,userId:r,eventList:[{eventType:"purchase",eventValue:s,itemId:i,sentAt:new Date().toISOString()}]})}}async function ty(e,t,r){return new xa(r?.region||"us-east-1").recommendForUser(e,t,r?.numResults)}async function ry(e,t,r){return new xa(r?.region||"us-east-1").getSimilarItems(e,t,r?.numResults)}async function ny(e,t,r,i,s="click",o){await new eu(o||"us-east-1").trackEvent(e,t,r,i,s)}class Zt{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"kendra",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`AWSKendraFrontendService.${e}`},body:JSON.stringify(t)})}async createIndex(e){return this.request("CreateIndex",e)}async describeIndex(e){return this.request("DescribeIndex",e)}async listIndices(e){return this.request("ListIndices",e||{})}async deleteIndex(e){return this.request("DeleteIndex",e)}async createDataSource(e){return this.request("CreateDataSource",e)}async describeDataSource(e){return this.request("DescribeDataSource",e)}async listDataSources(e){return this.request("ListDataSources",e)}async startDataSourceSyncJob(e){return this.request("StartDataSourceSyncJob",e)}async stopDataSourceSyncJob(e){return this.request("StopDataSourceSyncJob",e)}async query(e){return this.request("Query",e)}async retrieve(e){return this.request("Retrieve",e)}async batchPutDocument(e){return this.request("BatchPutDocument",e)}async batchDeleteDocument(e){return this.request("BatchDeleteDocument",e)}async search(e,t,r){return(await this.query({IndexId:e,QueryText:t,PageSize:r?.pageSize,PageNumber:r?.pageNumber,AttributeFilter:r?.attributeFilter})).ResultItems||[]}async retrieveDocuments(e,t,r){return(await this.retrieve({IndexId:e,QueryText:t,PageSize:r?.pageSize,PageNumber:r?.pageNumber})).ResultItems||[]}async addDocument(e,t){let r=t.attributes?Object.entries(t.attributes).map(([s,o])=>({Key:s,Value:typeof o==="number"?{LongValue:o}:Array.isArray(o)?{StringListValue:o}:{StringValue:o}})):void 0,i=await this.batchPutDocument({IndexId:e,Documents:[{Id:t.id,Title:t.title,Blob:new TextEncoder().encode(t.content),ContentType:"PLAIN_TEXT",Attributes:r}]});if(i.FailedDocuments?.length)throw Error(`Failed to add document: ${i.FailedDocuments[0].ErrorMessage}`)}async addDocuments(e,t){let r=t.map((o)=>{let c=o.attributes?Object.entries(o.attributes).map(([u,g])=>({Key:u,Value:typeof g==="number"?{LongValue:g}:Array.isArray(g)?{StringListValue:g}:{StringValue:g}})):void 0;return{Id:o.id,Title:o.title,Blob:new TextEncoder().encode(o.content),ContentType:"PLAIN_TEXT",Attributes:c}}),s=(await this.batchPutDocument({IndexId:e,Documents:r})).FailedDocuments?.map((o)=>({id:o.Id||"unknown",error:o.ErrorMessage||"Unknown error"}))||[];return{succeeded:t.length-s.length,failed:s}}async deleteDocuments(e,t){let r=await this.batchDeleteDocument({IndexId:e,DocumentIdList:t});if(r.FailedDocuments?.length)throw Error(`Failed to delete documents: ${r.FailedDocuments.map((i)=>i.Id).join(", ")}`)}async waitForIndex(e,t){let r=t?.maxWaitMs??3600000,i=t?.pollIntervalMs??30000,s=Date.now();while(Date.now()-s<r){let o=await this.describeIndex({Id:e});if(o.Status==="ACTIVE")return o;if(o.Status==="FAILED")throw Error(`Index creation failed: ${o.ErrorMessage}`);await new Promise((c)=>setTimeout(c,i))}throw Error(`Timeout waiting for index ${e}`)}async waitForDataSource(e,t,r){let i=r?.maxWaitMs??1800000,s=r?.pollIntervalMs??30000,o=Date.now();while(Date.now()-o<i){let c=await this.describeDataSource({Id:t,IndexId:e});if(c.Status==="ACTIVE")return c;if(c.Status==="FAILED")throw Error(`Data source creation failed: ${c.ErrorMessage}`);await new Promise((u)=>setTimeout(u,s))}throw Error(`Timeout waiting for data source ${t}`)}}async function jm(e,t,r){return(await new Zt(r?.region||"us-east-1").search(e,t,{pageSize:r?.pageSize})).map((o)=>({title:o.DocumentTitle?.Text||"",excerpt:o.DocumentExcerpt?.Text||"",uri:o.DocumentURI||"",score:o.ScoreAttributes?.ScoreConfidence||"NOT_AVAILABLE"}))}async function zm(e,t,r){return(await new Zt(r?.region||"us-east-1").retrieveDocuments(e,t,{pageSize:r?.pageSize})).map((o)=>({content:o.Content||"",uri:o.DocumentURI||"",score:o.ScoreAttributes?.ScoreConfidence||"NOT_AVAILABLE"}))}class er{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`AWSEvents.${e}`},body:JSON.stringify(t)})}async putRule(e){return this.request("PutRule",e)}async deleteRule(e){return this.request("DeleteRule",e)}async describeRule(e){return this.request("DescribeRule",e)}async listRules(e){return this.request("ListRules",e||{})}async listEventBuses(e){return this.request("ListEventBuses",e||{})}async enableRule(e){return this.request("EnableRule",e)}async disableRule(e){return this.request("DisableRule",e)}async putTargets(e){return this.request("PutTargets",e)}async removeTargets(e){return this.request("RemoveTargets",e)}async listTargetsByRule(e){return this.request("ListTargetsByRule",e)}async putEvents(e){return this.request("PutEvents",e)}async createSchedule(e){return this.client.request({service:"scheduler",region:this.region,method:"POST",path:`/schedules/${e.Name}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}}class Ze{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new n}async describeCacheClusters(e){let t={Action:"DescribeCacheClusters",Version:"2015-02-02",ShowCacheNodeInfo:"true"};if(e)t.CacheClusterId=e;let r=await this.client.request({service:"elasticache",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{CacheClusters:this.parseCacheClusters(r)}}async describeReplicationGroups(e){let t={Action:"DescribeReplicationGroups",Version:"2015-02-02"};if(e)t.ReplicationGroupId=e;let r=await this.client.request({service:"elasticache",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{ReplicationGroups:[]}}async createCacheCluster(e){let t={Action:"CreateCacheCluster",Version:"2015-02-02",CacheClusterId:e.cacheClusterId,Engine:e.engine,CacheNodeType:e.cacheNodeType};if(e.numCacheNodes)t.NumCacheNodes=e.numCacheNodes;if(e.engineVersion)t.EngineVersion=e.engineVersion;if(e.port)t.Port=e.port;if(e.securityGroupIds&&e.securityGroupIds.length>0)e.securityGroupIds.forEach((i,s)=>{t[`SecurityGroupIds.member.${s+1}`]=i});if(e.subnetGroupName)t.CacheSubnetGroupName=e.subnetGroupName;if(e.tags&&e.tags.length>0)e.tags.forEach((i,s)=>{t[`Tags.member.${s+1}.Key`]=i.Key,t[`Tags.member.${s+1}.Value`]=i.Value});let r=await this.client.request({service:"elasticache",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{CacheCluster:this.parseCacheCluster(r)}}async deleteCacheCluster(e,t){let r={Action:"DeleteCacheCluster",Version:"2015-02-02",CacheClusterId:e};if(t)r.FinalSnapshotIdentifier=t;await this.client.request({service:"elasticache",region:this.region,method:"POST",path:"/",body:new URLSearchParams(r).toString()})}async rebootCacheCluster(e,t){let r={Action:"RebootCacheCluster",Version:"2015-02-02",CacheClusterId:e};t.forEach((i,s)=>{r[`CacheNodeIdsToReboot.member.${s+1}`]=i}),await this.client.request({service:"elasticache",region:this.region,method:"POST",path:"/",body:new URLSearchParams(r).toString()})}async describeCacheEngineVersions(e){let t={Action:"DescribeCacheEngineVersions",Version:"2015-02-02"};if(e)t.Engine=e;let r=await this.client.request({service:"elasticache",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{CacheEngineVersions:[]}}async getCacheStatistics(e){let t=await this.describeCacheClusters(e);if(!t.CacheClusters||t.CacheClusters.length===0)throw Error(`Cache cluster ${e} not found`);return{cpuUtilization:0,evictions:0,hits:0,misses:0,connections:0}}parseCacheClusters(e){if(e.CacheClusterId)return[{CacheClusterId:e.CacheClusterId,CacheClusterStatus:e.CacheClusterStatus||"available",Engine:e.Engine||"redis",EngineVersion:e.EngineVersion||"7.0",CacheNodeType:e.CacheNodeType||"cache.t3.micro",NumCacheNodes:Number.parseInt(e.NumCacheNodes||"1"),CacheClusterCreateTime:e.CacheClusterCreateTime||new Date().toISOString()}];return[]}parseCacheCluster(e){return{CacheClusterId:e.CacheClusterId,CacheClusterStatus:e.CacheClusterStatus||"creating",Engine:e.Engine||"redis",EngineVersion:e.EngineVersion||"7.0",CacheNodeType:e.CacheNodeType||"cache.t3.micro",NumCacheNodes:Number.parseInt(e.NumCacheNodes||"1"),CacheClusterCreateTime:e.CacheClusterCreateTime||new Date().toISOString()}}}class pn{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new n}async createRule(e){let t={Action:"PutRule",Name:e.name,ScheduleExpression:e.scheduleExpression,Version:"2015-10-07"};if(e.description)t.Description=e.description;if(e.state)t.State=e.state;else t.State="ENABLED";return{RuleArn:(await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.PutRule","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Name:e.name,ScheduleExpression:e.scheduleExpression,State:e.state||"ENABLED",Description:e.description})})).RuleArn}}async putTargets(e,t){await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.PutTargets","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Rule:e,Targets:t})})}async listRules(e){let t={};if(e)t.NamePrefix=e;return{Rules:(await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.ListRules","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})).Rules||[]}}async describeRule(e){let t=await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.DescribeRule","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Name:e})});return{Name:t.Name,Arn:t.Arn,ScheduleExpression:t.ScheduleExpression,State:t.State,Description:t.Description}}async listTargetsByRule(e){return{Targets:(await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.ListTargetsByRule","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Rule:e})})).Targets||[]}}async deleteRule(e,t){if(t)try{let r=await this.listTargetsByRule(e);if(r.Targets&&r.Targets.length>0)await this.removeTargets(e,r.Targets.map((i)=>i.Id))}catch{}await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.DeleteRule","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Name:e,Force:t||!1})})}async removeTargets(e,t){await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.RemoveTargets","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Rule:e,Ids:t})})}async enableRule(e){await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.EnableRule","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Name:e})})}async disableRule(e){await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.DisableRule","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Name:e})})}async createLambdaSchedule(e){let t=await this.createRule({name:e.name,scheduleExpression:e.scheduleExpression,description:e.description,state:"ENABLED"});return await this.putTargets(e.name,[{Id:"1",Arn:e.functionArn,Input:e.input}]),t}async createEcsSchedule(e){let t=await this.createRule({name:e.name,scheduleExpression:e.scheduleExpression,description:e.description,state:"ENABLED"});return await this.putTargets(e.name,[{Id:"1",Arn:e.clusterArn,RoleArn:e.roleArn,Input:JSON.stringify({containerOverrides:[]})}]),t}async listSchedules(e){let t={};if(e?.NamePrefix)t.NamePrefix=e.NamePrefix;if(e?.State)t.State=e.State;let r=e?.GroupName||"default";return{Schedules:(await this.client.request({service:"scheduler",region:this.region,method:"GET",path:"/schedules",queryParams:{...t,ScheduleGroup:r}}))?.Schedules||[]}}async getSchedule(e){try{let t={};if(e.GroupName)t.groupName=e.GroupName;return await this.client.request({service:"scheduler",region:this.region,method:"GET",path:`/schedules/${encodeURIComponent(e.Name)}`,queryParams:Object.keys(t).length>0?t:void 0})}catch(t){if(t.statusCode===404||t.code==="ResourceNotFoundException")return null;throw t}}async createSchedule(e){let t={ScheduleExpression:e.ScheduleExpression,FlexibleTimeWindow:e.FlexibleTimeWindow,Target:e.Target};if(e.GroupName)t.GroupName=e.GroupName;if(e.ScheduleExpressionTimezone)t.ScheduleExpressionTimezone=e.ScheduleExpressionTimezone;if(e.Description)t.Description=e.Description;if(e.State)t.State=e.State;if(e.StartDate)t.StartDate=e.StartDate.toISOString();if(e.EndDate)t.EndDate=e.EndDate.toISOString();return{ScheduleArn:(await this.client.request({service:"scheduler",region:this.region,method:"POST",path:`/schedules/${encodeURIComponent(e.Name)}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}))?.ScheduleArn||""}}async updateSchedule(e){let t={};if(e.GroupName)t.GroupName=e.GroupName;if(e.ScheduleExpression)t.ScheduleExpression=e.ScheduleExpression;if(e.ScheduleExpressionTimezone)t.ScheduleExpressionTimezone=e.ScheduleExpressionTimezone;if(e.Description!==void 0)t.Description=e.Description;if(e.State)t.State=e.State;if(e.FlexibleTimeWindow)t.FlexibleTimeWindow=e.FlexibleTimeWindow;if(e.Target)t.Target=e.Target;return{ScheduleArn:(await this.client.request({service:"scheduler",region:this.region,method:"PUT",path:`/schedules/${encodeURIComponent(e.Name)}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}))?.ScheduleArn||""}}async deleteSchedule(e){let t={};if(e.GroupName)t.groupName=e.GroupName;await this.client.request({service:"scheduler",region:this.region,method:"DELETE",path:`/schedules/${encodeURIComponent(e.Name)}`,queryParams:Object.keys(t).length>0?t:void 0})}async listScheduleGroups(e){let t={};if(e?.NamePrefix)t.NamePrefix=e.NamePrefix;return{ScheduleGroups:(await this.client.request({service:"scheduler",region:this.region,method:"GET",path:"/schedule-groups",queryParams:Object.keys(t).length>0?t:void 0}))?.ScheduleGroups||[]}}}class _a{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async registerScalableTarget(e){let t={ServiceNamespace:e.serviceNamespace,ResourceId:e.resourceId,ScalableDimension:e.scalableDimension,MinCapacity:e.minCapacity,MaxCapacity:e.maxCapacity};if(e.roleARN)t.RoleARN=e.roleARN;if(e.suspendedState)t.SuspendedState={DynamicScalingInSuspended:e.suspendedState.dynamicScalingInSuspended,DynamicScalingOutSuspended:e.suspendedState.dynamicScalingOutSuspended,ScheduledScalingSuspended:e.suspendedState.scheduledScalingSuspended};await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.RegisterScalableTarget","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async describeScalableTargets(e){let t={ServiceNamespace:e.serviceNamespace};if(e.resourceIds&&e.resourceIds.length>0)t.ResourceIds=e.resourceIds;if(e.scalableDimension)t.ScalableDimension=e.scalableDimension;if(e.maxResults)t.MaxResults=e.maxResults;if(e.nextToken)t.NextToken=e.nextToken;let r=await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.DescribeScalableTargets","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ScalableTargets:r.ScalableTargets||[],NextToken:r.NextToken}}async deregisterScalableTarget(e){let t={ServiceNamespace:e.serviceNamespace,ResourceId:e.resourceId,ScalableDimension:e.scalableDimension};await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.DeregisterScalableTarget","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async putScalingPolicy(e){let t={PolicyName:e.policyName,ServiceNamespace:e.serviceNamespace,ResourceId:e.resourceId,ScalableDimension:e.scalableDimension,PolicyType:e.policyType};if(e.targetTrackingScalingPolicyConfiguration)t.TargetTrackingScalingPolicyConfiguration=e.targetTrackingScalingPolicyConfiguration;if(e.stepScalingPolicyConfiguration)t.StepScalingPolicyConfiguration=e.stepScalingPolicyConfiguration;let r=await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.PutScalingPolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{PolicyARN:r.PolicyARN||"",Alarms:r.Alarms||[]}}async describeScalingPolicies(e){let t={ServiceNamespace:e.serviceNamespace};if(e.policyNames&&e.policyNames.length>0)t.PolicyNames=e.policyNames;if(e.resourceId)t.ResourceId=e.resourceId;if(e.scalableDimension)t.ScalableDimension=e.scalableDimension;if(e.maxResults)t.MaxResults=e.maxResults;if(e.nextToken)t.NextToken=e.nextToken;let r=await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.DescribeScalingPolicies","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ScalingPolicies:r.ScalingPolicies||[],NextToken:r.NextToken}}async deleteScalingPolicy(e){let t={PolicyName:e.policyName,ServiceNamespace:e.serviceNamespace,ResourceId:e.resourceId,ScalableDimension:e.scalableDimension};await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.DeleteScalingPolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async putScheduledAction(e){let t={ScheduledActionName:e.scheduledActionName,ServiceNamespace:e.serviceNamespace,ResourceId:e.resourceId,ScalableDimension:e.scalableDimension,Schedule:e.schedule};if(e.timezone)t.Timezone=e.timezone;if(e.startTime)t.StartTime=e.startTime.toISOString();if(e.endTime)t.EndTime=e.endTime.toISOString();if(e.scalableTargetAction)t.ScalableTargetAction=e.scalableTargetAction;await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.PutScheduledAction","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async describeScheduledActions(e){let t={ServiceNamespace:e.serviceNamespace};if(e.scheduledActionNames&&e.scheduledActionNames.length>0)t.ScheduledActionNames=e.scheduledActionNames;if(e.resourceId)t.ResourceId=e.resourceId;if(e.scalableDimension)t.ScalableDimension=e.scalableDimension;if(e.maxResults)t.MaxResults=e.maxResults;if(e.nextToken)t.NextToken=e.nextToken;let r=await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.DescribeScheduledActions","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ScheduledActions:r.ScheduledActions||[],NextToken:r.NextToken}}async deleteScheduledAction(e){let t={ScheduledActionName:e.scheduledActionName,ServiceNamespace:e.serviceNamespace,ResourceId:e.resourceId,ScalableDimension:e.scalableDimension};await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.DeleteScheduledAction","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async describeScalingActivities(e){let t={ServiceNamespace:e.serviceNamespace};if(e.resourceId)t.ResourceId=e.resourceId;if(e.scalableDimension)t.ScalableDimension=e.scalableDimension;if(e.maxResults)t.MaxResults=e.maxResults;if(e.nextToken)t.NextToken=e.nextToken;if(e.includeNotScaledActivities!==void 0)t.IncludeNotScaledActivities=e.includeNotScaledActivities;let r=await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.DescribeScalingActivities","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ScalingActivities:r.ScalingActivities||[],NextToken:r.NextToken}}getECSServiceResourceId(e,t){return`service/${e}/${t}`}async registerECSServiceScaling(e){let t=this.getECSServiceResourceId(e.clusterName,e.serviceName);await this.registerScalableTarget({serviceNamespace:"ecs",resourceId:t,scalableDimension:"ecs:service:DesiredCount",minCapacity:e.minCapacity,maxCapacity:e.maxCapacity})}async createECSCPUScalingPolicy(e){let t=this.getECSServiceResourceId(e.clusterName,e.serviceName);return this.putScalingPolicy({policyName:e.policyName,serviceNamespace:"ecs",resourceId:t,scalableDimension:"ecs:service:DesiredCount",policyType:"TargetTrackingScaling",targetTrackingScalingPolicyConfiguration:{TargetValue:e.targetCPUPercent,PredefinedMetricSpecification:{PredefinedMetricType:"ECSServiceAverageCPUUtilization"},ScaleOutCooldown:e.scaleOutCooldown??300,ScaleInCooldown:e.scaleInCooldown??300,DisableScaleIn:e.disableScaleIn??!1}})}async createECSMemoryScalingPolicy(e){let t=this.getECSServiceResourceId(e.clusterName,e.serviceName);return this.putScalingPolicy({policyName:e.policyName,serviceNamespace:"ecs",resourceId:t,scalableDimension:"ecs:service:DesiredCount",policyType:"TargetTrackingScaling",targetTrackingScalingPolicyConfiguration:{TargetValue:e.targetMemoryPercent,PredefinedMetricSpecification:{PredefinedMetricType:"ECSServiceAverageMemoryUtilization"},ScaleOutCooldown:e.scaleOutCooldown??300,ScaleInCooldown:e.scaleInCooldown??300,DisableScaleIn:e.disableScaleIn??!1}})}async createECSRequestCountScalingPolicy(e){let t=this.getECSServiceResourceId(e.clusterName,e.serviceName),r=e.targetGroupArn.split(":").pop()||"",i=e.loadBalancerArn.split(":").pop()||"",s=r.replace("targetgroup/",""),c=`${i.replace("loadbalancer/","")}/${s}`;return this.putScalingPolicy({policyName:e.policyName,serviceNamespace:"ecs",resourceId:t,scalableDimension:"ecs:service:DesiredCount",policyType:"TargetTrackingScaling",targetTrackingScalingPolicyConfiguration:{TargetValue:e.targetRequestsPerTarget,PredefinedMetricSpecification:{PredefinedMetricType:"ALBRequestCountPerTarget",ResourceLabel:c},ScaleOutCooldown:e.scaleOutCooldown??300,ScaleInCooldown:e.scaleInCooldown??300,DisableScaleIn:e.disableScaleIn??!1}})}async getECSServiceScalingPolicies(e,t){let r=this.getECSServiceResourceId(e,t);return(await this.describeScalingPolicies({serviceNamespace:"ecs",resourceId:r,scalableDimension:"ecs:service:DesiredCount"})).ScalingPolicies}async removeECSServiceScaling(e,t){let r=this.getECSServiceResourceId(e,t),i=await this.getECSServiceScalingPolicies(e,t);for(let s of i)await this.deleteScalingPolicy({policyName:s.PolicyName,serviceNamespace:"ecs",resourceId:r,scalableDimension:"ecs:service:DesiredCount"});await this.deregisterScalableTarget({serviceNamespace:"ecs",resourceId:r,scalableDimension:"ecs:service:DesiredCount"})}async createECSScheduledScaling(e){let t=this.getECSServiceResourceId(e.clusterName,e.serviceName);await this.putScheduledAction({scheduledActionName:e.actionName,serviceNamespace:"ecs",resourceId:t,scalableDimension:"ecs:service:DesiredCount",schedule:e.schedule,timezone:e.timezone,scalableTargetAction:{minCapacity:e.minCapacity,maxCapacity:e.maxCapacity}})}async getECSScalingActivities(e,t,r=20){let i=this.getECSServiceResourceId(e,t);return(await this.describeScalingActivities({serviceNamespace:"ecs",resourceId:i,scalableDimension:"ecs:service:DesiredCount",maxResults:r})).ScalingActivities.map((o)=>({ActivityId:o.ActivityId,Description:o.Description,Cause:o.Cause,StartTime:o.StartTime,EndTime:o.EndTime,StatusCode:o.StatusCode,StatusMessage:o.StatusMessage}))}}import*as G from"node:crypto";import*as q from"node:net";import*as D from"node:tls";import{readFileSync as P}from"node:fs";class tu{config;s3;server;tlsServer;sessions=new Map;messageCache=new Map;flagsCache=new Map;uidMappingCache=new Map;nextUidCache=new Map;cacheTimestamp=new Map;uidCounter=new Map;CACHE_TTL_MS=1e4;constructor(e){this.config={port:143,sslPort:993,host:"0.0.0.0",prefix:"incoming/",...e},this.s3=new a(e.region||"us-east-1")}async start(){if(this.server=q.createServer((e)=>{this.handleConnection(e)}),this.server.listen(this.config.port,this.config.host,()=>{console.log(`IMAP server listening on ${this.config.host}:${this.config.port}`)}),this.config.tls?.key&&this.config.tls?.cert){let e={key:P(this.config.tls.key),cert:P(this.config.tls.cert)};this.tlsServer=D.createServer(e,(t)=>{this.handleConnection(t)}),this.tlsServer.listen(this.config.sslPort,this.config.host,()=>{console.log(`IMAPS server listening on ${this.config.host}:${this.config.sslPort}`)})}}async stop(){if(this.server)this.server.close();if(this.tlsServer)this.tlsServer.close();for(let e of this.sessions.values())e.socket.destroy();this.sessions.clear()}handleConnection(e){let t=G.randomUUID(),r={id:t,socket:e,state:"not_authenticated"};this.sessions.set(t,r),this.send(r,`* OK [CAPABILITY IMAP4rev1 STARTTLS AUTH=PLAIN] ${this.config.domain} IMAP4rev1 ready`);let i="";e.on("data",async(s)=>{i+=s.toString();let o;while((o=i.indexOf(`\r
|
|
4
|
+
`),H=o.createHmac("sha256",`AWS4${s.secretAccessKey}`).update(l).digest(),W=o.createHmac("sha256",H).update(u).digest(),X=o.createHmac("sha256",W).update("bedrock-runtime").digest(),Q=o.createHmac("sha256",X).update("aws4_request").digest(),Y=o.createHmac("sha256",Q).update(O).digest("hex"),Z=`${I} Credential=${s.accessKeyId}/${A}, SignedHeaders=${S}, Signature=${Y}`;return{...p,Authorization:Z}}async invokeClaudeMessages(e){let t=e.modelId||"anthropic.claude-3-haiku-20240307-v1:0",r={anthropic_version:"bedrock-2023-05-31",max_tokens:e.maxTokens||1024,messages:e.messages};if(e.temperature!==void 0)r.temperature=e.temperature;if(e.topP!==void 0)r.top_p=e.topP;if(e.topK!==void 0)r.top_k=e.topK;if(e.stopSequences)r.stop_sequences=e.stopSequences;if(e.system)r.system=e.system;if(e.tools)r.tools=e.tools;if(e.toolChoice)r.tool_choice=e.toolChoice;return await this.client.request({service:"bedrock-runtime",region:this.region,method:"POST",path:`/model/${encodeURIComponent(t)}/invoke`,headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(r)})}async converse(e){let t={modelId:e.modelId,messages:e.messages};if(e.system)t.system=e.system;if(e.inferenceConfig)t.inferenceConfig=e.inferenceConfig;if(e.toolConfig)t.toolConfig=e.toolConfig;if(e.guardrailConfig)t.guardrailConfig=e.guardrailConfig;return await this.client.request({service:"bedrock-runtime",region:this.region,method:"POST",path:`/model/${encodeURIComponent(e.modelId)}/converse`,headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(t)})}async generateEmbeddings(e){let t=e.modelId||"amazon.titan-embed-text-v1",r;if(t.includes("cohere"))r={texts:Array.isArray(e.inputText)?e.inputText:[e.inputText],input_type:"search_document"};else if(t.includes("titan")){if(r={inputText:Array.isArray(e.inputText)?e.inputText[0]:e.inputText},e.dimensions)r.dimensions=e.dimensions;if(e.normalize!==void 0)r.normalize=e.normalize}else r={inputText:Array.isArray(e.inputText)?e.inputText[0]:e.inputText};return await this.client.request({service:"bedrock-runtime",region:this.region,method:"POST",path:`/model/${encodeURIComponent(t)}/invoke`,headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(r)})}async applyGuardrail(e){return await this.client.request({service:"bedrock-runtime",region:this.region,method:"POST",path:`/guardrail/${encodeURIComponent(e.guardrailIdentifier)}/version/${encodeURIComponent(e.guardrailVersion)}/apply`,headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({source:e.source,content:e.content})})}}class ln{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async listFoundationModels(e){let t={};if(e?.byProvider)t.byProvider=e.byProvider;if(e?.byCustomizationType)t.byCustomizationType=e.byCustomizationType;if(e?.byOutputModality)t.byOutputModality=e.byOutputModality;if(e?.byInferenceType)t.byInferenceType=e.byInferenceType;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/foundation-models",queryParams:Object.keys(t).length>0?t:void 0})}async getFoundationModel(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/foundation-models/${encodeURIComponent(e.modelIdentifier)}`})}async createModelCustomizationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/model-customization-jobs",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getModelCustomizationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/model-customization-jobs/${encodeURIComponent(e.jobIdentifier)}`})}async listModelCustomizationJobs(e){let t={};if(e?.creationTimeAfter)t.creationTimeAfter=e.creationTimeAfter;if(e?.creationTimeBefore)t.creationTimeBefore=e.creationTimeBefore;if(e?.statusEquals)t.statusEquals=e.statusEquals;if(e?.nameContains)t.nameContains=e.nameContains;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;if(e?.sortBy)t.sortBy=e.sortBy;if(e?.sortOrder)t.sortOrder=e.sortOrder;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/model-customization-jobs",queryParams:Object.keys(t).length>0?t:void 0})}async stopModelCustomizationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:`/model-customization-jobs/${encodeURIComponent(e.jobIdentifier)}/stop`,headers:{"Content-Type":"application/json"}})}async listCustomModels(e){let t={};if(e?.creationTimeBefore)t.creationTimeBefore=e.creationTimeBefore;if(e?.creationTimeAfter)t.creationTimeAfter=e.creationTimeAfter;if(e?.nameContains)t.nameContains=e.nameContains;if(e?.baseModelArnEquals)t.baseModelArnEquals=e.baseModelArnEquals;if(e?.foundationModelArnEquals)t.foundationModelArnEquals=e.foundationModelArnEquals;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;if(e?.sortBy)t.sortBy=e.sortBy;if(e?.sortOrder)t.sortOrder=e.sortOrder;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/custom-models",queryParams:Object.keys(t).length>0?t:void 0})}async getCustomModel(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/custom-models/${encodeURIComponent(e.modelIdentifier)}`})}async deleteCustomModel(e){return this.client.request({service:"bedrock",region:this.region,method:"DELETE",path:`/custom-models/${encodeURIComponent(e.modelIdentifier)}`})}async requestModelAccess(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/foundation-model-entitlement",headers:{"Content-Type":"application/json"},body:JSON.stringify({modelId:e.modelId})})}async createGuardrail(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/guardrails",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getGuardrail(e){let t=`/guardrails/${encodeURIComponent(e.guardrailIdentifier)}`;if(e.guardrailVersion)t+=`?guardrailVersion=${encodeURIComponent(e.guardrailVersion)}`;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:t})}async listGuardrails(e){let t={};if(e?.guardrailIdentifier)t.guardrailIdentifier=e.guardrailIdentifier;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/guardrails",queryParams:Object.keys(t).length>0?t:void 0})}async deleteGuardrail(e){let t=`/guardrails/${encodeURIComponent(e.guardrailIdentifier)}`;if(e.guardrailVersion)t+=`?guardrailVersion=${encodeURIComponent(e.guardrailVersion)}`;return this.client.request({service:"bedrock",region:this.region,method:"DELETE",path:t})}async listModelInvocationJobs(e){let t={};if(e?.submitTimeAfter)t.submitTimeAfter=e.submitTimeAfter;if(e?.submitTimeBefore)t.submitTimeBefore=e.submitTimeBefore;if(e?.statusEquals)t.statusEquals=e.statusEquals;if(e?.nameContains)t.nameContains=e.nameContains;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;if(e?.sortBy)t.sortBy=e.sortBy;if(e?.sortOrder)t.sortOrder=e.sortOrder;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/model-invocation-jobs",queryParams:Object.keys(t).length>0?t:void 0})}async waitForModelCustomizationJob(e,t){let r=t?.maxWaitMs??3600000,i=t?.pollIntervalMs??30000,s=Date.now();while(Date.now()-s<r){let o=await this.getModelCustomizationJob({jobIdentifier:e});if(o.status==="Completed"||o.status==="Failed"||o.status==="Stopped")return o;await new Promise((c)=>setTimeout(c,i))}throw Error(`Timeout waiting for model customization job ${e}`)}async requestAccessToModels(e){let t=[];for(let r of e)try{let i=await this.requestModelAccess({modelId:r});t.push({modelId:r,status:i.status})}catch(i){let s=i instanceof Error?i.message:String(i);t.push({modelId:r,status:"ERROR",error:s})}return t}async listModelsByProvider(e){return(await this.listFoundationModels({byProvider:e})).modelSummaries||[]}async listClaudeModels(){return this.listModelsByProvider("Anthropic")}async listEmbeddingModels(){return(await this.listFoundationModels({byOutputModality:"EMBEDDING"})).modelSummaries||[]}async createModelInvocationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/model-invocation-jobs",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getModelInvocationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/model-invocation-jobs/${encodeURIComponent(e.jobIdentifier)}`})}async stopModelInvocationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:`/model-invocation-jobs/${encodeURIComponent(e.jobIdentifier)}/stop`,headers:{"Content-Type":"application/json"}})}async createProvisionedModelThroughput(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/provisioned-model-throughput",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getProvisionedModelThroughput(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/provisioned-model-throughput/${encodeURIComponent(e.provisionedModelId)}`})}async listProvisionedModelThroughputs(e){let t={};if(e?.creationTimeAfter)t.creationTimeAfter=e.creationTimeAfter;if(e?.creationTimeBefore)t.creationTimeBefore=e.creationTimeBefore;if(e?.statusEquals)t.statusEquals=e.statusEquals;if(e?.modelArnEquals)t.modelArnEquals=e.modelArnEquals;if(e?.nameContains)t.nameContains=e.nameContains;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;if(e?.sortBy)t.sortBy=e.sortBy;if(e?.sortOrder)t.sortOrder=e.sortOrder;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/provisioned-model-throughput",queryParams:Object.keys(t).length>0?t:void 0})}async updateProvisionedModelThroughput(e){return this.client.request({service:"bedrock",region:this.region,method:"PATCH",path:`/provisioned-model-throughput/${encodeURIComponent(e.provisionedModelId)}`,headers:{"Content-Type":"application/json"},body:JSON.stringify({desiredProvisionedModelName:e.desiredProvisionedModelName,desiredModelId:e.desiredModelId})})}async deleteProvisionedModelThroughput(e){return this.client.request({service:"bedrock",region:this.region,method:"DELETE",path:`/provisioned-model-throughput/${encodeURIComponent(e.provisionedModelId)}`})}async createEvaluationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/evaluation-jobs",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getEvaluationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/evaluation-jobs/${encodeURIComponent(e.jobIdentifier)}`})}async listEvaluationJobs(e){let t={};if(e?.creationTimeAfter)t.creationTimeAfter=e.creationTimeAfter;if(e?.creationTimeBefore)t.creationTimeBefore=e.creationTimeBefore;if(e?.statusEquals)t.statusEquals=e.statusEquals;if(e?.nameContains)t.nameContains=e.nameContains;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;if(e?.sortBy)t.sortBy=e.sortBy;if(e?.sortOrder)t.sortOrder=e.sortOrder;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/evaluation-jobs",queryParams:Object.keys(t).length>0?t:void 0})}async stopEvaluationJob(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:`/evaluation-jobs/${encodeURIComponent(e.jobIdentifier)}/stop`,headers:{"Content-Type":"application/json"}})}async getInferenceProfile(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/inference-profiles/${encodeURIComponent(e.inferenceProfileIdentifier)}`})}async listInferenceProfiles(e){let t={};if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;if(e?.typeEquals)t.typeEquals=e.typeEquals;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/inference-profiles",queryParams:Object.keys(t).length>0?t:void 0})}async createInferenceProfile(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/inference-profiles",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async deleteInferenceProfile(e){return this.client.request({service:"bedrock",region:this.region,method:"DELETE",path:`/inference-profiles/${encodeURIComponent(e.inferenceProfileIdentifier)}`})}async createModelCopyJob(e){return this.client.request({service:"bedrock",region:this.region,method:"POST",path:"/model-copy-jobs",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getModelCopyJob(e){return this.client.request({service:"bedrock",region:this.region,method:"GET",path:`/model-copy-jobs/${encodeURIComponent(e.jobArn)}`})}async listModelCopyJobs(e){let t={};if(e?.creationTimeAfter)t.creationTimeAfter=e.creationTimeAfter;if(e?.creationTimeBefore)t.creationTimeBefore=e.creationTimeBefore;if(e?.statusEquals)t.statusEquals=e.statusEquals;if(e?.sourceAccountEquals)t.sourceAccountEquals=e.sourceAccountEquals;if(e?.sourceModelArnEquals)t.sourceModelArnEquals=e.sourceModelArnEquals;if(e?.targetModelNameContains)t.targetModelNameContains=e.targetModelNameContains;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;if(e?.sortBy)t.sortBy=e.sortBy;if(e?.sortOrder)t.sortOrder=e.sortOrder;return this.client.request({service:"bedrock",region:this.region,method:"GET",path:"/model-copy-jobs",queryParams:Object.keys(t).length>0?t:void 0})}}class Mm{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async invokeAgent(e){let t={inputText:e.inputText};if(e.endSession!==void 0)t.endSession=e.endSession;if(e.enableTrace!==void 0)t.enableTrace=e.enableTrace;if(e.memoryId)t.memoryId=e.memoryId;if(e.sessionState)t.sessionState=e.sessionState;return await this.client.request({service:"bedrock-agent-runtime",region:this.region,method:"POST",path:`/agents/${encodeURIComponent(e.agentId)}/agentAliases/${encodeURIComponent(e.agentAliasId)}/sessions/${encodeURIComponent(e.sessionId)}/text`,headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(t)})}async retrieve(e){return this.client.request({service:"bedrock-agent-runtime",region:this.region,method:"POST",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/retrieve`,headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({retrievalQuery:e.retrievalQuery,retrievalConfiguration:e.retrievalConfiguration,nextToken:e.nextToken})})}async retrieveAndGenerate(e){return this.client.request({service:"bedrock-agent-runtime",region:this.region,method:"POST",path:"/retrieveAndGenerate",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e)})}}class Fm{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async createAgent(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"PUT",path:"/agents/",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getAgent(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:`/agents/${encodeURIComponent(e.agentId)}/`})}async listAgents(e){let t={};if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:"/agents/",queryParams:Object.keys(t).length>0?t:void 0})}async deleteAgent(e){let t={};if(e.skipResourceInUseCheck!==void 0)t.skipResourceInUseCheck=e.skipResourceInUseCheck.toString();return this.client.request({service:"bedrock-agent",region:this.region,method:"DELETE",path:`/agents/${encodeURIComponent(e.agentId)}/`,queryParams:Object.keys(t).length>0?t:void 0})}async prepareAgent(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:`/agents/${encodeURIComponent(e.agentId)}/`,headers:{"Content-Type":"application/json"}})}async createKnowledgeBase(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"PUT",path:"/knowledgebases/",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getKnowledgeBase(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}`})}async listKnowledgeBases(e){let t={};if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:"/knowledgebases/",queryParams:Object.keys(t).length>0?t:void 0})}async deleteKnowledgeBase(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"DELETE",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}`})}async createDataSource(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"PUT",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/`,headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getDataSource(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/${encodeURIComponent(e.dataSourceId)}`})}async listDataSources(e){let t={};if(e.maxResults)t.maxResults=e.maxResults.toString();if(e.nextToken)t.nextToken=e.nextToken;return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/`,queryParams:Object.keys(t).length>0?t:void 0})}async updateDataSource(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"PUT",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/${encodeURIComponent(e.dataSourceId)}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async deleteDataSource(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"DELETE",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/${encodeURIComponent(e.dataSourceId)}`})}async startIngestionJob(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"PUT",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/${encodeURIComponent(e.dataSourceId)}/ingestionjobs/`,headers:{"Content-Type":"application/json"},body:JSON.stringify({clientToken:e.clientToken,description:e.description})})}async getIngestionJob(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/${encodeURIComponent(e.dataSourceId)}/ingestionjobs/${encodeURIComponent(e.ingestionJobId)}`})}async listIngestionJobs(e){let t={};if(e.maxResults)t.maxResults=e.maxResults.toString();if(e.nextToken)t.nextToken=e.nextToken;return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:`/knowledgebases/${encodeURIComponent(e.knowledgeBaseId)}/datasources/${encodeURIComponent(e.dataSourceId)}/ingestionjobs/`,headers:{"Content-Type":"application/json"},body:JSON.stringify({filters:e.filters,sortBy:e.sortBy,maxResults:e.maxResults,nextToken:e.nextToken})})}async createPrompt(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:"/prompts/",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getPrompt(e){let t={};if(e.promptVersion)t.promptVersion=e.promptVersion;return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:`/prompts/${encodeURIComponent(e.promptIdentifier)}/`,queryParams:Object.keys(t).length>0?t:void 0})}async listPrompts(e){let t={};if(e?.promptIdentifier)t.promptIdentifier=e.promptIdentifier;if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:"/prompts/",queryParams:Object.keys(t).length>0?t:void 0})}async deletePrompt(e){let t={};if(e.promptVersion)t.promptVersion=e.promptVersion;return this.client.request({service:"bedrock-agent",region:this.region,method:"DELETE",path:`/prompts/${encodeURIComponent(e.promptIdentifier)}/`,queryParams:Object.keys(t).length>0?t:void 0})}async createPromptVersion(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:`/prompts/${encodeURIComponent(e.promptIdentifier)}/versions/`,headers:{"Content-Type":"application/json"},body:JSON.stringify({description:e.description,clientToken:e.clientToken,tags:e.tags})})}async createFlow(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:"/flows/",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getFlow(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:`/flows/${encodeURIComponent(e.flowIdentifier)}/`})}async listFlows(e){let t={};if(e?.maxResults)t.maxResults=e.maxResults.toString();if(e?.nextToken)t.nextToken=e.nextToken;return this.client.request({service:"bedrock-agent",region:this.region,method:"GET",path:"/flows/",queryParams:Object.keys(t).length>0?t:void 0})}async updateFlow(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"PUT",path:`/flows/${encodeURIComponent(e.flowIdentifier)}/`,headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async deleteFlow(e){let t={};if(e.skipResourceInUseCheck!==void 0)t.skipResourceInUseCheck=e.skipResourceInUseCheck.toString();return this.client.request({service:"bedrock-agent",region:this.region,method:"DELETE",path:`/flows/${encodeURIComponent(e.flowIdentifier)}/`,queryParams:Object.keys(t).length>0?t:void 0})}async prepareFlow(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:`/flows/${encodeURIComponent(e.flowIdentifier)}/`,headers:{"Content-Type":"application/json"}})}async createFlowVersion(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:`/flows/${encodeURIComponent(e.flowIdentifier)}/versions/`,headers:{"Content-Type":"application/json"},body:JSON.stringify({description:e.description,clientToken:e.clientToken})})}async createFlowAlias(e){return this.client.request({service:"bedrock-agent",region:this.region,method:"POST",path:`/flows/${encodeURIComponent(e.flowIdentifier)}/aliases/`,headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}}async function QA(e,t="us-east-1"){return new ln(t).requestAccessToModels(e)}async function HA(e="us-east-1"){return new ln(e).listClaudeModels()}async function GA(e,t){let s=(await new dn(t?.region||"us-east-1").invokeClaudeMessages({modelId:t?.modelId||"anthropic.claude-3-haiku-20240307-v1:0",messages:[{role:"user",content:e}],maxTokens:t?.maxTokens||1024,temperature:t?.temperature})).content.find((o)=>o.type==="text");return s?.type==="text"?s.text:""}async function qA(e,t){let i=await new dn(t?.region||"us-east-1").generateEmbeddings({modelId:t?.modelId||"amazon.titan-embed-text-v1",inputText:e});return i.embeddings||i.embedding||[]}class Ct{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"comprehend",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`Comprehend_20171127.${e}`},body:JSON.stringify(t)})}async detectSentiment(e){return this.request("DetectSentiment",e)}async detectEntities(e){return this.request("DetectEntities",e)}async detectKeyPhrases(e){return this.request("DetectKeyPhrases",e)}async detectDominantLanguage(e){return this.request("DetectDominantLanguage",e)}async detectPiiEntities(e){return this.request("DetectPiiEntities",e)}async containsPiiEntities(e){return this.request("ContainsPiiEntities",e)}async detectSyntax(e){return this.request("DetectSyntax",e)}async detectTargetedSentiment(e){return this.request("DetectTargetedSentiment",e)}async classifyDocument(e){return this.request("ClassifyDocument",e)}async batchDetectSentiment(e){return this.request("BatchDetectSentiment",e)}async batchDetectEntities(e){return this.request("BatchDetectEntities",e)}async batchDetectKeyPhrases(e){return this.request("BatchDetectKeyPhrases",e)}async batchDetectDominantLanguage(e){return this.request("BatchDetectDominantLanguage",e)}async batchDetectSyntax(e){return this.request("BatchDetectSyntax",e)}async startSentimentDetectionJob(e){return this.request("StartSentimentDetectionJob",e)}async startEntitiesDetectionJob(e){return this.request("StartEntitiesDetectionJob",e)}async startKeyPhrasesDetectionJob(e){return this.request("StartKeyPhrasesDetectionJob",e)}async startPiiEntitiesDetectionJob(e){return this.request("StartPiiEntitiesDetectionJob",e)}async describeSentimentDetectionJob(e){return this.request("DescribeSentimentDetectionJob",e)}async analyzeSentiment(e,t="en"){let r=await this.detectSentiment({Text:e,LanguageCode:t});return{sentiment:r.Sentiment,scores:{positive:r.SentimentScore.Positive,negative:r.SentimentScore.Negative,neutral:r.SentimentScore.Neutral,mixed:r.SentimentScore.Mixed}}}async extractEntities(e,t="en"){return(await this.detectEntities({Text:e,LanguageCode:t})).Entities.map((i)=>({text:i.Text||"",type:i.Type||"UNKNOWN",score:i.Score||0}))}async extractKeyPhrases(e,t="en"){return(await this.detectKeyPhrases({Text:e,LanguageCode:t})).KeyPhrases.map((i)=>i.Text||"").filter(Boolean)}async detectLanguage(e){let r=(await this.detectDominantLanguage({Text:e})).Languages[0];return{languageCode:r?.LanguageCode||"unknown",confidence:r?.Score||0}}async findPii(e,t="en"){return(await this.detectPiiEntities({Text:e,LanguageCode:t})).Entities.map((i)=>({type:i.Type||"UNKNOWN",beginOffset:i.BeginOffset||0,endOffset:i.EndOffset||0,score:i.Score||0}))}async hasPii(e,t="en"){return(await this.detectPiiEntities({Text:e,LanguageCode:t})).Entities.length>0}async redactPii(e,t="en"){let i=[...(await this.detectPiiEntities({Text:e,LanguageCode:t})).Entities].sort((o,c)=>(c.EndOffset||0)-(o.EndOffset||0)),s=e;for(let o of i)if(o.BeginOffset!==void 0&&o.EndOffset!==void 0)s=s.slice(0,o.BeginOffset)+`[${o.Type}]`+s.slice(o.EndOffset);return s}}async function VA(e,t){let i=await new Ct(t?.region||"us-east-1").analyzeSentiment(e,t?.languageCode||"en"),s=Math.max(i.scores.positive,i.scores.negative,i.scores.neutral,i.scores.mixed);return{sentiment:i.sentiment,confidence:s}}async function jA(e,t){return new Ct(t?.region||"us-east-1").extractEntities(e,t?.languageCode||"en")}async function zA(e,t){return(await new Ct(t||"us-east-1").detectLanguage(e)).languageCode}async function KA(e,t){return new Ct(t?.region||"us-east-1").hasPii(e,t?.languageCode||"en")}class Et{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"rekognition",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`RekognitionService.${e}`},body:JSON.stringify(t)})}async detectFaces(e){return this.request("DetectFaces",e)}async detectLabels(e){return this.request("DetectLabels",e)}async detectText(e){return this.request("DetectText",e)}async detectModerationLabels(e){return this.request("DetectModerationLabels",e)}async recognizeCelebrities(e){return this.request("RecognizeCelebrities",e)}async compareFaces(e){return this.request("CompareFaces",e)}async createCollection(e){return this.request("CreateCollection",e)}async deleteCollection(e){return this.request("DeleteCollection",e)}async listCollections(e){return this.request("ListCollections",e||{})}async indexFaces(e){return this.request("IndexFaces",e)}async searchFacesByImage(e){return this.request("SearchFacesByImage",e)}async searchFaces(e){return this.request("SearchFaces",e)}async startLabelDetection(e){return this.request("StartLabelDetection",e)}async getLabelDetection(e){return this.request("GetLabelDetection",e)}async startFaceDetection(e){return this.request("StartFaceDetection",e)}async getFaceDetection(e){return this.request("GetFaceDetection",e)}async startContentModeration(e){return this.request("StartContentModeration",e)}async getContentModeration(e){return this.request("GetContentModeration",e)}async analyzeS3Image(e,t,r){return(await this.detectLabels({Image:{S3Object:{Bucket:e,Name:t}},MaxLabels:r?.maxLabels,MinConfidence:r?.minConfidence})).Labels||[]}async analyzeImageBytes(e,t){return(await this.detectLabels({Image:{Bytes:e},MaxLabels:t?.maxLabels,MinConfidence:t?.minConfidence})).Labels||[]}async isImageSafe(e,t=50){return((await this.detectModerationLabels({Image:e,MinConfidence:t})).ModerationLabels?.length||0)===0}async countFaces(e){return(await this.detectFaces({Image:e,Attributes:["DEFAULT"]})).FaceDetails?.length||0}async extractText(e){return(await this.detectText({Image:e})).TextDetections?.filter((r)=>r.Type==="LINE").map((r)=>r.DetectedText||"")||[]}async findFace(e,t,r=80){try{return(await this.searchFacesByImage({CollectionId:e,Image:t,FaceMatchThreshold:r,MaxFaces:1})).FaceMatches?.[0]||null}catch(i){if(i instanceof Error&&i.message.includes("InvalidParameterException"))return null;throw i}}}async function Um(e,t,r){return(await new Et(r?.region||"us-east-1").analyzeS3Image(e,t,{maxLabels:r?.maxLabels})).map((o)=>o.Name||"").filter(Boolean)}async function Qm(e,t,r){return new Et(r||"us-east-1").countFaces({S3Object:{Bucket:e,Name:t}})}async function Hm(e,t,r){return new Et(r?.region||"us-east-1").isImageSafe({S3Object:{Bucket:e,Name:t}},r?.threshold)}class bt{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"textract",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`Textract.${e}`},body:JSON.stringify(t)})}async detectDocumentText(e){return this.request("DetectDocumentText",e)}async analyzeDocument(e){return this.request("AnalyzeDocument",e)}async analyzeExpense(e){return this.request("AnalyzeExpense",e)}async analyzeID(e){return this.request("AnalyzeID",e)}async startDocumentTextDetection(e){return this.request("StartDocumentTextDetection",e)}async getDocumentTextDetection(e){return this.request("GetDocumentTextDetection",e)}async startDocumentAnalysis(e){return this.request("StartDocumentAnalysis",e)}async getDocumentAnalysis(e){return this.request("GetDocumentAnalysis",e)}async startExpenseAnalysis(e){return this.request("StartExpenseAnalysis",e)}async getExpenseAnalysis(e){return this.request("GetExpenseAnalysis",e)}async startLendingAnalysis(e){return this.request("StartLendingAnalysis",e)}async getLendingAnalysis(e){return this.request("GetLendingAnalysis",e)}async extractText(e){return(await this.detectDocumentText({Document:e})).Blocks?.filter((r)=>r.BlockType==="LINE").map((r)=>r.Text||"")||[]}async extractTextFromS3(e,t){return this.extractText({S3Object:{Bucket:e,Name:t}})}async extractForms(e){let r=(await this.analyzeDocument({Document:e,FeatureTypes:["FORMS"]})).Blocks||[],i=new Map;r.forEach((o)=>o.Id&&i.set(o.Id,o));let s=[];for(let o of r)if(o.BlockType==="KEY_VALUE_SET"&&o.EntityTypes?.includes("KEY")){let c=this.getBlockText(o,i),u=o.Relationships?.find((m)=>m.Type==="VALUE"),g="";if(u?.Ids)for(let m of u.Ids){let d=i.get(m);if(d)g+=this.getBlockText(d,i)+" "}s.push({key:c.trim(),value:g.trim(),confidence:o.Confidence||0})}return s}async extractTables(e){let r=(await this.analyzeDocument({Document:e,FeatureTypes:["TABLES"]})).Blocks||[],i=new Map;r.forEach((o)=>o.Id&&i.set(o.Id,o));let s=[];for(let o of r)if(o.BlockType==="TABLE"){let u=(o.Relationships?.find((l)=>l.Type==="CHILD")?.Ids||[]).map((l)=>i.get(l)).filter(Boolean),g=0,m=0;for(let l of u){if(l.RowIndex&&l.RowIndex>g)g=l.RowIndex;if(l.ColumnIndex&&l.ColumnIndex>m)m=l.ColumnIndex}let d=Array.from({length:g},()=>Array.from({length:m},()=>""));for(let l of u)if(l.RowIndex&&l.ColumnIndex)d[l.RowIndex-1][l.ColumnIndex-1]=this.getBlockText(l,i);s.push({rows:d})}return s}async extractExpenseSummary(e){let r=(await this.analyzeExpense({Document:e})).ExpenseDocuments?.[0];if(!r)return{items:[]};let i={};for(let o of r.SummaryFields||[]){let c=o.Type?.Text?.toUpperCase(),u=o.ValueDetection?.Text;if(c==="VENDOR_NAME")i.vendor=u;if(c==="TOTAL")i.total=u;if(c==="INVOICE_RECEIPT_DATE")i.date=u}let s=[];for(let o of r.LineItemGroups||[])for(let c of o.LineItems||[]){let u={};for(let g of c.LineItemExpenseFields||[]){let m=g.Type?.Text?.toUpperCase(),d=g.ValueDetection?.Text;if(m==="ITEM")u.description=d;if(m==="QUANTITY")u.quantity=d;if(m==="PRICE")u.price=d}if(u.description||u.price)s.push(u)}return{...i,items:s}}async queryDocument(e,t){let i=(await this.analyzeDocument({Document:e,FeatureTypes:["QUERIES"],QueriesConfig:{Queries:t.map((o)=>({Text:o}))}})).Blocks||[],s=[];for(let o of i)if(o.BlockType==="QUERY_RESULT"&&o.Text){let c=i.find((u)=>u.BlockType==="QUERY"&&u.Relationships?.some((g)=>g.Type==="ANSWER"&&g.Ids?.includes(o.Id||"")));s.push({question:c?.Query?.Text||"",answer:o.Text,confidence:o.Confidence||0})}return s}async waitForJob(e,t,r){let i=r?.maxWaitMs??300000,s=r?.pollIntervalMs??5000,o=Date.now();while(Date.now()-o<i){let c=await t(e);if(c.JobStatus==="SUCCEEDED"||c.JobStatus==="PARTIAL_SUCCESS")return;if(c.JobStatus==="FAILED")throw Error(`Textract job ${e} failed`);await new Promise((u)=>setTimeout(u,s))}throw Error(`Timeout waiting for Textract job ${e}`)}getBlockText(e,t){if(e.Text)return e.Text;return(e.Relationships?.find((i)=>i.Type==="CHILD")?.Ids||[]).map((i)=>t.get(i)?.Text||"").join(" ")}}async function Gm(e,t,r){return(await new bt(r||"us-east-1").extractTextFromS3(e,t)).join(`
|
|
5
|
+
`)}async function qm(e,t,r){let s=await new bt(r||"us-east-1").extractForms({S3Object:{Bucket:e,Name:t}});return Object.fromEntries(s.map((o)=>[o.key,o.value]))}async function Vm(e,t,r){return(await new bt(r||"us-east-1").extractTables({S3Object:{Bucket:e,Name:t}})).map((o)=>o.rows)}class un{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async synthesizeSpeech(e){let t=await this.client.request({service:"polly",region:this.region,method:"POST",path:"/v1/speech",headers:{"Content-Type":"application/json"},body:JSON.stringify({Engine:e.Engine,LanguageCode:e.LanguageCode,LexiconNames:e.LexiconNames,OutputFormat:e.OutputFormat,SampleRate:e.SampleRate,SpeechMarkTypes:e.SpeechMarkTypes,Text:e.Text,TextType:e.TextType,VoiceId:e.VoiceId}),rawResponse:!0,returnHeaders:!0});return{AudioStream:new TextEncoder().encode(t.body),ContentType:t.headers?.["content-type"],RequestCharacters:t.headers?.["x-amzn-requestcharacters"]?Number.parseInt(t.headers["x-amzn-requestcharacters"]):void 0}}async startSpeechSynthesisTask(e){return this.client.request({service:"polly",region:this.region,method:"POST",path:"/v1/synthesisTasks",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async getSpeechSynthesisTask(e){return this.client.request({service:"polly",region:this.region,method:"GET",path:`/v1/synthesisTasks/${encodeURIComponent(e.TaskId)}`})}async listSpeechSynthesisTasks(e){let t={};if(e?.MaxResults)t.MaxResults=e.MaxResults.toString();if(e?.NextToken)t.NextToken=e.NextToken;if(e?.Status)t.Status=e.Status;return this.client.request({service:"polly",region:this.region,method:"GET",path:"/v1/synthesisTasks",queryParams:Object.keys(t).length>0?t:void 0})}async describeVoices(e){let t={};if(e?.Engine)t.Engine=e.Engine;if(e?.LanguageCode)t.LanguageCode=e.LanguageCode;if(e?.IncludeAdditionalLanguageCodes!==void 0)t.IncludeAdditionalLanguageCodes=e.IncludeAdditionalLanguageCodes.toString();if(e?.NextToken)t.NextToken=e.NextToken;return this.client.request({service:"polly",region:this.region,method:"GET",path:"/v1/voices",queryParams:Object.keys(t).length>0?t:void 0})}async putLexicon(e){return this.client.request({service:"polly",region:this.region,method:"PUT",path:`/v1/lexicons/${encodeURIComponent(e.Name)}`,headers:{"Content-Type":"application/pls+xml"},body:e.Content})}async getLexicon(e){return this.client.request({service:"polly",region:this.region,method:"GET",path:`/v1/lexicons/${encodeURIComponent(e.Name)}`})}async deleteLexicon(e){return this.client.request({service:"polly",region:this.region,method:"DELETE",path:`/v1/lexicons/${encodeURIComponent(e.Name)}`})}async listLexicons(e){let t={};if(e?.NextToken)t.NextToken=e.NextToken;return this.client.request({service:"polly",region:this.region,method:"GET",path:"/v1/lexicons",queryParams:Object.keys(t).length>0?t:void 0})}async textToSpeech(e,t){return(await this.synthesizeSpeech({Text:e,VoiceId:t?.voiceId||"Joanna",Engine:t?.engine||"neural",LanguageCode:t?.languageCode,OutputFormat:"mp3"})).AudioStream||new Uint8Array}async ssmlToSpeech(e,t){return(await this.synthesizeSpeech({Text:e,TextType:"ssml",VoiceId:t?.voiceId||"Joanna",Engine:t?.engine||"neural",LanguageCode:t?.languageCode,OutputFormat:"mp3"})).AudioStream||new Uint8Array}async saveToS3(e,t,r,i){let s=await this.startSpeechSynthesisTask({Text:e,TextType:i?.textType||"text",VoiceId:i?.voiceId||"Joanna",Engine:i?.engine||"neural",LanguageCode:i?.languageCode,OutputFormat:"mp3",OutputS3BucketName:t,OutputS3KeyPrefix:r});return{taskId:s.SynthesisTask?.TaskId||"",outputUri:s.SynthesisTask?.OutputUri||""}}async listVoicesForLanguage(e){return(await this.describeVoices({LanguageCode:e})).Voices||[]}async listNeuralVoices(){return(await this.describeVoices({Engine:"neural"})).Voices||[]}async waitForTask(e,t){let r=t?.maxWaitMs??300000,i=t?.pollIntervalMs??5000,s=Date.now();while(Date.now()-s<r){let c=(await this.getSpeechSynthesisTask({TaskId:e})).SynthesisTask;if(c?.TaskStatus==="completed")return c;if(c?.TaskStatus==="failed")throw Error(`Polly task ${e} failed: ${c.TaskStatusReason}`);await new Promise((u)=>setTimeout(u,i))}throw Error(`Timeout waiting for Polly task ${e}`)}}async function WA(e,t){return new un(t?.region||"us-east-1").textToSpeech(e,t)}async function JA(e){return(await new un(e?.region||"us-east-1").describeVoices({LanguageCode:e?.languageCode,Engine:e?.engine})).Voices||[]}function XA(e,t){let r="<speak>";if(t?.rate||t?.pitch||t?.volume){if(r+="<prosody",t.rate)r+=` rate="${t.rate}"`;if(t.pitch)r+=` pitch="${t.pitch}"`;if(t.volume)r+=` volume="${t.volume}"`;r+=`>${e}</prosody>`}else r+=e;return r+="</speak>",r}class Yt{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"translate",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`AWSShineFrontendService_20170701.${e}`},body:JSON.stringify(t)})}async translateText(e){return this.request("TranslateText",e)}async translateDocument(e){return this.request("TranslateDocument",e)}async startTextTranslationJob(e){return this.request("StartTextTranslationJob",e)}async describeTextTranslationJob(e){return this.request("DescribeTextTranslationJob",e)}async listTextTranslationJobs(e){return this.request("ListTextTranslationJobs",e||{})}async stopTextTranslationJob(e){return this.request("StopTextTranslationJob",e)}async listLanguages(e){return this.request("ListLanguages",e||{})}async importTerminology(e){return this.request("ImportTerminology",e)}async getTerminology(e){return this.request("GetTerminology",e)}async listTerminologies(e){return this.request("ListTerminologies",e||{})}async deleteTerminology(e){return this.request("DeleteTerminology",e)}async createParallelData(e){return this.request("CreateParallelData",e)}async getParallelData(e){return this.request("GetParallelData",e)}async listParallelData(e){return this.request("ListParallelData",e||{})}async deleteParallelData(e){return this.request("DeleteParallelData",e)}async translate(e,t,r="auto"){return(await this.translateText({Text:e,SourceLanguageCode:r,TargetLanguageCode:t})).TranslatedText}async translateFormal(e,t,r="auto",i="FORMAL"){return(await this.translateText({Text:e,SourceLanguageCode:r,TargetLanguageCode:t,Settings:{Formality:i}})).TranslatedText}async translateToMultiple(e,t,r="auto"){let i={};for(let s of t)i[s]=await this.translate(e,s,r);return i}async waitForJob(e,t){let r=t?.maxWaitMs??3600000,i=t?.pollIntervalMs??30000,s=Date.now();while(Date.now()-s<r){let c=(await this.describeTextTranslationJob({JobId:e})).TextTranslationJobProperties;if(c?.JobStatus==="COMPLETED"||c?.JobStatus==="COMPLETED_WITH_ERROR")return c;if(c?.JobStatus==="FAILED"||c?.JobStatus==="STOPPED")throw Error(`Translation job ${e} failed: ${c.Message}`);await new Promise((u)=>setTimeout(u,i))}throw Error(`Timeout waiting for translation job ${e}`)}async getSupportedLanguages(){return(await this.listLanguages()).Languages?.map((t)=>t.LanguageCode||"").filter(Boolean)||[]}}async function YA(e,t,r){return new Yt(r?.region||"us-east-1").translate(e,t,r?.sourceLanguage||"auto")}async function ZA(e,t,r){return new Yt(r?.region||"us-east-1").translateToMultiple(e,t,r?.sourceLanguage||"auto")}async function ey(e){return(await new Yt(e||"us-east-1").listLanguages()).Languages||[]}class Ba{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"personalize",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`AmazonPersonalize.${e}`},body:JSON.stringify(t)})}async createDatasetGroup(e){return this.request("CreateDatasetGroup",e)}async describeDatasetGroup(e){return this.request("DescribeDatasetGroup",e)}async listDatasetGroups(e){return this.request("ListDatasetGroups",e||{})}async createSchema(e){return this.request("CreateSchema",e)}async createDataset(e){return this.request("CreateDataset",e)}async createDatasetImportJob(e){return this.request("CreateDatasetImportJob",e)}async describeDatasetImportJob(e){return this.request("DescribeDatasetImportJob",e)}async createSolution(e){return this.request("CreateSolution",e)}async createSolutionVersion(e){return this.request("CreateSolutionVersion",e)}async describeSolutionVersion(e){return this.request("DescribeSolutionVersion",e)}async createCampaign(e){return this.request("CreateCampaign",e)}async describeCampaign(e){return this.request("DescribeCampaign",e)}async createRecommender(e){return this.request("CreateRecommender",e)}async describeRecommender(e){return this.request("DescribeRecommender",e)}async listRecommenders(e){return this.request("ListRecommenders",e||{})}async createEventTracker(e){return this.request("CreateEventTracker",e)}async describeEventTracker(e){return this.request("DescribeEventTracker",e)}async createFilter(e){return this.request("CreateFilter",e)}async listRecipes(e){return this.request("ListRecipes",e||{})}async waitForSolutionVersion(e,t){let r=t?.maxWaitMs??7200000,i=t?.pollIntervalMs??60000,s=Date.now();while(Date.now()-s<r){let c=(await this.describeSolutionVersion({solutionVersionArn:e})).solutionVersion;if(c?.status==="ACTIVE")return c;if(c?.status==="CREATE FAILED")throw Error(`Solution version failed: ${c.failureReason}`);await new Promise((u)=>setTimeout(u,i))}throw Error(`Timeout waiting for solution version ${e}`)}async waitForCampaign(e,t){let r=t?.maxWaitMs??1800000,i=t?.pollIntervalMs??30000,s=Date.now();while(Date.now()-s<r){let c=(await this.describeCampaign({campaignArn:e})).campaign;if(c?.status==="ACTIVE")return c;if(c?.status==="CREATE FAILED")throw Error(`Campaign failed: ${c.failureReason}`);await new Promise((u)=>setTimeout(u,i))}throw Error(`Timeout waiting for campaign ${e}`)}async waitForDatasetImportJob(e,t){let r=t?.maxWaitMs??3600000,i=t?.pollIntervalMs??30000,s=Date.now();while(Date.now()-s<r){let c=(await this.describeDatasetImportJob({datasetImportJobArn:e})).datasetImportJob;if(c?.status==="ACTIVE")return c;if(c?.status==="CREATE FAILED")throw Error(`Dataset import job failed: ${c.failureReason}`);await new Promise((u)=>setTimeout(u,i))}throw Error(`Timeout waiting for dataset import job ${e}`)}}class _a{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"personalize-runtime",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`AmazonPersonalizeRuntime.${e}`},body:JSON.stringify(t)})}async getRecommendations(e){return this.request("GetRecommendations",e)}async getPersonalizedRanking(e){return this.request("GetPersonalizedRanking",e)}async recommendForUser(e,t,r=10){return(await this.getRecommendations({campaignArn:e,userId:t,numResults:r})).itemList?.map((s)=>s.itemId||"").filter(Boolean)||[]}async getSimilarItems(e,t,r=10){return(await this.getRecommendations({campaignArn:e,itemId:t,numResults:r})).itemList?.map((s)=>s.itemId||"").filter(Boolean)||[]}async rankItems(e,t,r){return(await this.getPersonalizedRanking({campaignArn:e,userId:t,inputList:r})).personalizedRanking?.map((s)=>s.itemId||"").filter(Boolean)||[]}}class eu{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"personalize-events",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`AmazonPersonalizeEvents.${e}`},body:JSON.stringify(t)})}async putEvents(e){return this.request("PutEvents",e)}async putItems(e){return this.request("PutItems",e)}async putUsers(e){return this.request("PutUsers",e)}async trackEvent(e,t,r,i,s="click"){await this.putEvents({trackingId:e,sessionId:t,userId:r,eventList:[{eventType:s,itemId:i,sentAt:new Date().toISOString()}]})}async trackPurchase(e,t,r,i,s){await this.putEvents({trackingId:e,sessionId:t,userId:r,eventList:[{eventType:"purchase",eventValue:s,itemId:i,sentAt:new Date().toISOString()}]})}}async function ty(e,t,r){return new _a(r?.region||"us-east-1").recommendForUser(e,t,r?.numResults)}async function ry(e,t,r){return new _a(r?.region||"us-east-1").getSimilarItems(e,t,r?.numResults)}async function ny(e,t,r,i,s="click",o){await new eu(o||"us-east-1").trackEvent(e,t,r,i,s)}class Zt{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"kendra",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`AWSKendraFrontendService.${e}`},body:JSON.stringify(t)})}async createIndex(e){return this.request("CreateIndex",e)}async describeIndex(e){return this.request("DescribeIndex",e)}async listIndices(e){return this.request("ListIndices",e||{})}async deleteIndex(e){return this.request("DeleteIndex",e)}async createDataSource(e){return this.request("CreateDataSource",e)}async describeDataSource(e){return this.request("DescribeDataSource",e)}async listDataSources(e){return this.request("ListDataSources",e)}async startDataSourceSyncJob(e){return this.request("StartDataSourceSyncJob",e)}async stopDataSourceSyncJob(e){return this.request("StopDataSourceSyncJob",e)}async query(e){return this.request("Query",e)}async retrieve(e){return this.request("Retrieve",e)}async batchPutDocument(e){return this.request("BatchPutDocument",e)}async batchDeleteDocument(e){return this.request("BatchDeleteDocument",e)}async search(e,t,r){return(await this.query({IndexId:e,QueryText:t,PageSize:r?.pageSize,PageNumber:r?.pageNumber,AttributeFilter:r?.attributeFilter})).ResultItems||[]}async retrieveDocuments(e,t,r){return(await this.retrieve({IndexId:e,QueryText:t,PageSize:r?.pageSize,PageNumber:r?.pageNumber})).ResultItems||[]}async addDocument(e,t){let r=t.attributes?Object.entries(t.attributes).map(([s,o])=>({Key:s,Value:typeof o==="number"?{LongValue:o}:Array.isArray(o)?{StringListValue:o}:{StringValue:o}})):void 0,i=await this.batchPutDocument({IndexId:e,Documents:[{Id:t.id,Title:t.title,Blob:new TextEncoder().encode(t.content),ContentType:"PLAIN_TEXT",Attributes:r}]});if(i.FailedDocuments?.length)throw Error(`Failed to add document: ${i.FailedDocuments[0].ErrorMessage}`)}async addDocuments(e,t){let r=t.map((o)=>{let c=o.attributes?Object.entries(o.attributes).map(([u,g])=>({Key:u,Value:typeof g==="number"?{LongValue:g}:Array.isArray(g)?{StringListValue:g}:{StringValue:g}})):void 0;return{Id:o.id,Title:o.title,Blob:new TextEncoder().encode(o.content),ContentType:"PLAIN_TEXT",Attributes:c}}),s=(await this.batchPutDocument({IndexId:e,Documents:r})).FailedDocuments?.map((o)=>({id:o.Id||"unknown",error:o.ErrorMessage||"Unknown error"}))||[];return{succeeded:t.length-s.length,failed:s}}async deleteDocuments(e,t){let r=await this.batchDeleteDocument({IndexId:e,DocumentIdList:t});if(r.FailedDocuments?.length)throw Error(`Failed to delete documents: ${r.FailedDocuments.map((i)=>i.Id).join(", ")}`)}async waitForIndex(e,t){let r=t?.maxWaitMs??3600000,i=t?.pollIntervalMs??30000,s=Date.now();while(Date.now()-s<r){let o=await this.describeIndex({Id:e});if(o.Status==="ACTIVE")return o;if(o.Status==="FAILED")throw Error(`Index creation failed: ${o.ErrorMessage}`);await new Promise((c)=>setTimeout(c,i))}throw Error(`Timeout waiting for index ${e}`)}async waitForDataSource(e,t,r){let i=r?.maxWaitMs??1800000,s=r?.pollIntervalMs??30000,o=Date.now();while(Date.now()-o<i){let c=await this.describeDataSource({Id:t,IndexId:e});if(c.Status==="ACTIVE")return c;if(c.Status==="FAILED")throw Error(`Data source creation failed: ${c.ErrorMessage}`);await new Promise((u)=>setTimeout(u,s))}throw Error(`Timeout waiting for data source ${t}`)}}async function jm(e,t,r){return(await new Zt(r?.region||"us-east-1").search(e,t,{pageSize:r?.pageSize})).map((o)=>({title:o.DocumentTitle?.Text||"",excerpt:o.DocumentExcerpt?.Text||"",uri:o.DocumentURI||"",score:o.ScoreAttributes?.ScoreConfidence||"NOT_AVAILABLE"}))}async function zm(e,t,r){return(await new Zt(r?.region||"us-east-1").retrieveDocuments(e,t,{pageSize:r?.pageSize})).map((o)=>({content:o.Content||"",uri:o.DocumentURI||"",score:o.ScoreAttributes?.ScoreConfidence||"NOT_AVAILABLE"}))}class er{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async request(e,t){return this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`AWSEvents.${e}`},body:JSON.stringify(t)})}async putRule(e){return this.request("PutRule",e)}async deleteRule(e){return this.request("DeleteRule",e)}async describeRule(e){return this.request("DescribeRule",e)}async listRules(e){return this.request("ListRules",e||{})}async listEventBuses(e){return this.request("ListEventBuses",e||{})}async enableRule(e){return this.request("EnableRule",e)}async disableRule(e){return this.request("DisableRule",e)}async putTargets(e){return this.request("PutTargets",e)}async removeTargets(e){return this.request("RemoveTargets",e)}async listTargetsByRule(e){return this.request("ListTargetsByRule",e)}async putEvents(e){return this.request("PutEvents",e)}async createSchedule(e){return this.client.request({service:"scheduler",region:this.region,method:"POST",path:`/schedules/${e.Name}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}}class Ze{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new n}async describeCacheClusters(e){let t={Action:"DescribeCacheClusters",Version:"2015-02-02",ShowCacheNodeInfo:"true"};if(e)t.CacheClusterId=e;let r=await this.client.request({service:"elasticache",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{CacheClusters:this.parseCacheClusters(r)}}async describeReplicationGroups(e){let t={Action:"DescribeReplicationGroups",Version:"2015-02-02"};if(e)t.ReplicationGroupId=e;let r=await this.client.request({service:"elasticache",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{ReplicationGroups:[]}}async createCacheCluster(e){let t={Action:"CreateCacheCluster",Version:"2015-02-02",CacheClusterId:e.cacheClusterId,Engine:e.engine,CacheNodeType:e.cacheNodeType};if(e.numCacheNodes)t.NumCacheNodes=e.numCacheNodes;if(e.engineVersion)t.EngineVersion=e.engineVersion;if(e.port)t.Port=e.port;if(e.securityGroupIds&&e.securityGroupIds.length>0)e.securityGroupIds.forEach((i,s)=>{t[`SecurityGroupIds.member.${s+1}`]=i});if(e.subnetGroupName)t.CacheSubnetGroupName=e.subnetGroupName;if(e.tags&&e.tags.length>0)e.tags.forEach((i,s)=>{t[`Tags.member.${s+1}.Key`]=i.Key,t[`Tags.member.${s+1}.Value`]=i.Value});let r=await this.client.request({service:"elasticache",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{CacheCluster:this.parseCacheCluster(r)}}async deleteCacheCluster(e,t){let r={Action:"DeleteCacheCluster",Version:"2015-02-02",CacheClusterId:e};if(t)r.FinalSnapshotIdentifier=t;await this.client.request({service:"elasticache",region:this.region,method:"POST",path:"/",body:new URLSearchParams(r).toString()})}async rebootCacheCluster(e,t){let r={Action:"RebootCacheCluster",Version:"2015-02-02",CacheClusterId:e};t.forEach((i,s)=>{r[`CacheNodeIdsToReboot.member.${s+1}`]=i}),await this.client.request({service:"elasticache",region:this.region,method:"POST",path:"/",body:new URLSearchParams(r).toString()})}async describeCacheEngineVersions(e){let t={Action:"DescribeCacheEngineVersions",Version:"2015-02-02"};if(e)t.Engine=e;let r=await this.client.request({service:"elasticache",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{CacheEngineVersions:[]}}async getCacheStatistics(e){let t=await this.describeCacheClusters(e);if(!t.CacheClusters||t.CacheClusters.length===0)throw Error(`Cache cluster ${e} not found`);return{cpuUtilization:0,evictions:0,hits:0,misses:0,connections:0}}parseCacheClusters(e){if(e.CacheClusterId)return[{CacheClusterId:e.CacheClusterId,CacheClusterStatus:e.CacheClusterStatus||"available",Engine:e.Engine||"redis",EngineVersion:e.EngineVersion||"7.0",CacheNodeType:e.CacheNodeType||"cache.t3.micro",NumCacheNodes:Number.parseInt(e.NumCacheNodes||"1"),CacheClusterCreateTime:e.CacheClusterCreateTime||new Date().toISOString()}];return[]}parseCacheCluster(e){return{CacheClusterId:e.CacheClusterId,CacheClusterStatus:e.CacheClusterStatus||"creating",Engine:e.Engine||"redis",EngineVersion:e.EngineVersion||"7.0",CacheNodeType:e.CacheNodeType||"cache.t3.micro",NumCacheNodes:Number.parseInt(e.NumCacheNodes||"1"),CacheClusterCreateTime:e.CacheClusterCreateTime||new Date().toISOString()}}}class pn{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new n}async createRule(e){let t={Action:"PutRule",Name:e.name,ScheduleExpression:e.scheduleExpression,Version:"2015-10-07"};if(e.description)t.Description=e.description;if(e.state)t.State=e.state;else t.State="ENABLED";return{RuleArn:(await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.PutRule","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Name:e.name,ScheduleExpression:e.scheduleExpression,State:e.state||"ENABLED",Description:e.description})})).RuleArn}}async putTargets(e,t){await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.PutTargets","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Rule:e,Targets:t})})}async listRules(e){let t={};if(e)t.NamePrefix=e;return{Rules:(await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.ListRules","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})).Rules||[]}}async describeRule(e){let t=await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.DescribeRule","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Name:e})});return{Name:t.Name,Arn:t.Arn,ScheduleExpression:t.ScheduleExpression,State:t.State,Description:t.Description}}async listTargetsByRule(e){return{Targets:(await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.ListTargetsByRule","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Rule:e})})).Targets||[]}}async deleteRule(e,t){if(t)try{let r=await this.listTargetsByRule(e);if(r.Targets&&r.Targets.length>0)await this.removeTargets(e,r.Targets.map((i)=>i.Id))}catch{}await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.DeleteRule","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Name:e,Force:t||!1})})}async removeTargets(e,t){await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.RemoveTargets","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Rule:e,Ids:t})})}async enableRule(e){await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.EnableRule","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Name:e})})}async disableRule(e){await this.client.request({service:"events",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AWSEvents.DisableRule","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({Name:e})})}async createLambdaSchedule(e){let t=await this.createRule({name:e.name,scheduleExpression:e.scheduleExpression,description:e.description,state:"ENABLED"});return await this.putTargets(e.name,[{Id:"1",Arn:e.functionArn,Input:e.input}]),t}async createEcsSchedule(e){let t=await this.createRule({name:e.name,scheduleExpression:e.scheduleExpression,description:e.description,state:"ENABLED"});return await this.putTargets(e.name,[{Id:"1",Arn:e.clusterArn,RoleArn:e.roleArn,Input:JSON.stringify({containerOverrides:[]})}]),t}async listSchedules(e){let t={};if(e?.NamePrefix)t.NamePrefix=e.NamePrefix;if(e?.State)t.State=e.State;let r=e?.GroupName||"default";return{Schedules:(await this.client.request({service:"scheduler",region:this.region,method:"GET",path:"/schedules",queryParams:{...t,ScheduleGroup:r}}))?.Schedules||[]}}async getSchedule(e){try{let t={};if(e.GroupName)t.groupName=e.GroupName;return await this.client.request({service:"scheduler",region:this.region,method:"GET",path:`/schedules/${encodeURIComponent(e.Name)}`,queryParams:Object.keys(t).length>0?t:void 0})}catch(t){if(t.statusCode===404||t.code==="ResourceNotFoundException")return null;throw t}}async createSchedule(e){let t={ScheduleExpression:e.ScheduleExpression,FlexibleTimeWindow:e.FlexibleTimeWindow,Target:e.Target};if(e.GroupName)t.GroupName=e.GroupName;if(e.ScheduleExpressionTimezone)t.ScheduleExpressionTimezone=e.ScheduleExpressionTimezone;if(e.Description)t.Description=e.Description;if(e.State)t.State=e.State;if(e.StartDate)t.StartDate=e.StartDate.toISOString();if(e.EndDate)t.EndDate=e.EndDate.toISOString();return{ScheduleArn:(await this.client.request({service:"scheduler",region:this.region,method:"POST",path:`/schedules/${encodeURIComponent(e.Name)}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}))?.ScheduleArn||""}}async updateSchedule(e){let t={};if(e.GroupName)t.GroupName=e.GroupName;if(e.ScheduleExpression)t.ScheduleExpression=e.ScheduleExpression;if(e.ScheduleExpressionTimezone)t.ScheduleExpressionTimezone=e.ScheduleExpressionTimezone;if(e.Description!==void 0)t.Description=e.Description;if(e.State)t.State=e.State;if(e.FlexibleTimeWindow)t.FlexibleTimeWindow=e.FlexibleTimeWindow;if(e.Target)t.Target=e.Target;return{ScheduleArn:(await this.client.request({service:"scheduler",region:this.region,method:"PUT",path:`/schedules/${encodeURIComponent(e.Name)}`,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}))?.ScheduleArn||""}}async deleteSchedule(e){let t={};if(e.GroupName)t.groupName=e.GroupName;await this.client.request({service:"scheduler",region:this.region,method:"DELETE",path:`/schedules/${encodeURIComponent(e.Name)}`,queryParams:Object.keys(t).length>0?t:void 0})}async listScheduleGroups(e){let t={};if(e?.NamePrefix)t.NamePrefix=e.NamePrefix;return{ScheduleGroups:(await this.client.request({service:"scheduler",region:this.region,method:"GET",path:"/schedule-groups",queryParams:Object.keys(t).length>0?t:void 0}))?.ScheduleGroups||[]}}}class xa{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async registerScalableTarget(e){let t={ServiceNamespace:e.serviceNamespace,ResourceId:e.resourceId,ScalableDimension:e.scalableDimension,MinCapacity:e.minCapacity,MaxCapacity:e.maxCapacity};if(e.roleARN)t.RoleARN=e.roleARN;if(e.suspendedState)t.SuspendedState={DynamicScalingInSuspended:e.suspendedState.dynamicScalingInSuspended,DynamicScalingOutSuspended:e.suspendedState.dynamicScalingOutSuspended,ScheduledScalingSuspended:e.suspendedState.scheduledScalingSuspended};await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.RegisterScalableTarget","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async describeScalableTargets(e){let t={ServiceNamespace:e.serviceNamespace};if(e.resourceIds&&e.resourceIds.length>0)t.ResourceIds=e.resourceIds;if(e.scalableDimension)t.ScalableDimension=e.scalableDimension;if(e.maxResults)t.MaxResults=e.maxResults;if(e.nextToken)t.NextToken=e.nextToken;let r=await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.DescribeScalableTargets","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ScalableTargets:r.ScalableTargets||[],NextToken:r.NextToken}}async deregisterScalableTarget(e){let t={ServiceNamespace:e.serviceNamespace,ResourceId:e.resourceId,ScalableDimension:e.scalableDimension};await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.DeregisterScalableTarget","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async putScalingPolicy(e){let t={PolicyName:e.policyName,ServiceNamespace:e.serviceNamespace,ResourceId:e.resourceId,ScalableDimension:e.scalableDimension,PolicyType:e.policyType};if(e.targetTrackingScalingPolicyConfiguration)t.TargetTrackingScalingPolicyConfiguration=e.targetTrackingScalingPolicyConfiguration;if(e.stepScalingPolicyConfiguration)t.StepScalingPolicyConfiguration=e.stepScalingPolicyConfiguration;let r=await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.PutScalingPolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{PolicyARN:r.PolicyARN||"",Alarms:r.Alarms||[]}}async describeScalingPolicies(e){let t={ServiceNamespace:e.serviceNamespace};if(e.policyNames&&e.policyNames.length>0)t.PolicyNames=e.policyNames;if(e.resourceId)t.ResourceId=e.resourceId;if(e.scalableDimension)t.ScalableDimension=e.scalableDimension;if(e.maxResults)t.MaxResults=e.maxResults;if(e.nextToken)t.NextToken=e.nextToken;let r=await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.DescribeScalingPolicies","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ScalingPolicies:r.ScalingPolicies||[],NextToken:r.NextToken}}async deleteScalingPolicy(e){let t={PolicyName:e.policyName,ServiceNamespace:e.serviceNamespace,ResourceId:e.resourceId,ScalableDimension:e.scalableDimension};await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.DeleteScalingPolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async putScheduledAction(e){let t={ScheduledActionName:e.scheduledActionName,ServiceNamespace:e.serviceNamespace,ResourceId:e.resourceId,ScalableDimension:e.scalableDimension,Schedule:e.schedule};if(e.timezone)t.Timezone=e.timezone;if(e.startTime)t.StartTime=e.startTime.toISOString();if(e.endTime)t.EndTime=e.endTime.toISOString();if(e.scalableTargetAction)t.ScalableTargetAction=e.scalableTargetAction;await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.PutScheduledAction","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async describeScheduledActions(e){let t={ServiceNamespace:e.serviceNamespace};if(e.scheduledActionNames&&e.scheduledActionNames.length>0)t.ScheduledActionNames=e.scheduledActionNames;if(e.resourceId)t.ResourceId=e.resourceId;if(e.scalableDimension)t.ScalableDimension=e.scalableDimension;if(e.maxResults)t.MaxResults=e.maxResults;if(e.nextToken)t.NextToken=e.nextToken;let r=await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.DescribeScheduledActions","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ScheduledActions:r.ScheduledActions||[],NextToken:r.NextToken}}async deleteScheduledAction(e){let t={ScheduledActionName:e.scheduledActionName,ServiceNamespace:e.serviceNamespace,ResourceId:e.resourceId,ScalableDimension:e.scalableDimension};await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.DeleteScheduledAction","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async describeScalingActivities(e){let t={ServiceNamespace:e.serviceNamespace};if(e.resourceId)t.ResourceId=e.resourceId;if(e.scalableDimension)t.ScalableDimension=e.scalableDimension;if(e.maxResults)t.MaxResults=e.maxResults;if(e.nextToken)t.NextToken=e.nextToken;if(e.includeNotScaledActivities!==void 0)t.IncludeNotScaledActivities=e.includeNotScaledActivities;let r=await this.client.request({service:"application-autoscaling",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AnyScaleFrontendService.DescribeScalingActivities","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)});return{ScalingActivities:r.ScalingActivities||[],NextToken:r.NextToken}}getECSServiceResourceId(e,t){return`service/${e}/${t}`}async registerECSServiceScaling(e){let t=this.getECSServiceResourceId(e.clusterName,e.serviceName);await this.registerScalableTarget({serviceNamespace:"ecs",resourceId:t,scalableDimension:"ecs:service:DesiredCount",minCapacity:e.minCapacity,maxCapacity:e.maxCapacity})}async createECSCPUScalingPolicy(e){let t=this.getECSServiceResourceId(e.clusterName,e.serviceName);return this.putScalingPolicy({policyName:e.policyName,serviceNamespace:"ecs",resourceId:t,scalableDimension:"ecs:service:DesiredCount",policyType:"TargetTrackingScaling",targetTrackingScalingPolicyConfiguration:{TargetValue:e.targetCPUPercent,PredefinedMetricSpecification:{PredefinedMetricType:"ECSServiceAverageCPUUtilization"},ScaleOutCooldown:e.scaleOutCooldown??300,ScaleInCooldown:e.scaleInCooldown??300,DisableScaleIn:e.disableScaleIn??!1}})}async createECSMemoryScalingPolicy(e){let t=this.getECSServiceResourceId(e.clusterName,e.serviceName);return this.putScalingPolicy({policyName:e.policyName,serviceNamespace:"ecs",resourceId:t,scalableDimension:"ecs:service:DesiredCount",policyType:"TargetTrackingScaling",targetTrackingScalingPolicyConfiguration:{TargetValue:e.targetMemoryPercent,PredefinedMetricSpecification:{PredefinedMetricType:"ECSServiceAverageMemoryUtilization"},ScaleOutCooldown:e.scaleOutCooldown??300,ScaleInCooldown:e.scaleInCooldown??300,DisableScaleIn:e.disableScaleIn??!1}})}async createECSRequestCountScalingPolicy(e){let t=this.getECSServiceResourceId(e.clusterName,e.serviceName),r=e.targetGroupArn.split(":").pop()||"",i=e.loadBalancerArn.split(":").pop()||"",s=r.replace("targetgroup/",""),c=`${i.replace("loadbalancer/","")}/${s}`;return this.putScalingPolicy({policyName:e.policyName,serviceNamespace:"ecs",resourceId:t,scalableDimension:"ecs:service:DesiredCount",policyType:"TargetTrackingScaling",targetTrackingScalingPolicyConfiguration:{TargetValue:e.targetRequestsPerTarget,PredefinedMetricSpecification:{PredefinedMetricType:"ALBRequestCountPerTarget",ResourceLabel:c},ScaleOutCooldown:e.scaleOutCooldown??300,ScaleInCooldown:e.scaleInCooldown??300,DisableScaleIn:e.disableScaleIn??!1}})}async getECSServiceScalingPolicies(e,t){let r=this.getECSServiceResourceId(e,t);return(await this.describeScalingPolicies({serviceNamespace:"ecs",resourceId:r,scalableDimension:"ecs:service:DesiredCount"})).ScalingPolicies}async removeECSServiceScaling(e,t){let r=this.getECSServiceResourceId(e,t),i=await this.getECSServiceScalingPolicies(e,t);for(let s of i)await this.deleteScalingPolicy({policyName:s.PolicyName,serviceNamespace:"ecs",resourceId:r,scalableDimension:"ecs:service:DesiredCount"});await this.deregisterScalableTarget({serviceNamespace:"ecs",resourceId:r,scalableDimension:"ecs:service:DesiredCount"})}async createECSScheduledScaling(e){let t=this.getECSServiceResourceId(e.clusterName,e.serviceName);await this.putScheduledAction({scheduledActionName:e.actionName,serviceNamespace:"ecs",resourceId:t,scalableDimension:"ecs:service:DesiredCount",schedule:e.schedule,timezone:e.timezone,scalableTargetAction:{minCapacity:e.minCapacity,maxCapacity:e.maxCapacity}})}async getECSScalingActivities(e,t,r=20){let i=this.getECSServiceResourceId(e,t);return(await this.describeScalingActivities({serviceNamespace:"ecs",resourceId:i,scalableDimension:"ecs:service:DesiredCount",maxResults:r})).ScalingActivities.map((o)=>({ActivityId:o.ActivityId,Description:o.Description,Cause:o.Cause,StartTime:o.StartTime,EndTime:o.EndTime,StatusCode:o.StatusCode,StatusMessage:o.StatusMessage}))}}import*as G from"node:crypto";import*as q from"node:net";import*as D from"node:tls";import{readFileSync as P}from"node:fs";class tu{config;s3;server;tlsServer;sessions=new Map;messageCache=new Map;flagsCache=new Map;uidMappingCache=new Map;nextUidCache=new Map;cacheTimestamp=new Map;uidCounter=new Map;CACHE_TTL_MS=1e4;constructor(e){this.config={port:143,sslPort:993,host:"0.0.0.0",prefix:"incoming/",...e},this.s3=new a(e.region||"us-east-1")}async start(){if(this.server=q.createServer((e)=>{this.handleConnection(e)}),this.server.listen(this.config.port,this.config.host,()=>{console.log(`IMAP server listening on ${this.config.host}:${this.config.port}`)}),this.config.tls?.key&&this.config.tls?.cert){let e={key:P(this.config.tls.key),cert:P(this.config.tls.cert)};this.tlsServer=D.createServer(e,(t)=>{this.handleConnection(t)}),this.tlsServer.listen(this.config.sslPort,this.config.host,()=>{console.log(`IMAPS server listening on ${this.config.host}:${this.config.sslPort}`)})}}async stop(){if(this.server)this.server.close();if(this.tlsServer)this.tlsServer.close();for(let e of this.sessions.values())e.socket.destroy();this.sessions.clear()}handleConnection(e){let t=G.randomUUID(),r={id:t,socket:e,state:"not_authenticated"};this.sessions.set(t,r),this.send(r,`* OK [CAPABILITY IMAP4rev1 STARTTLS AUTH=PLAIN] ${this.config.domain} IMAP4rev1 ready`);let i="";e.on("data",async(s)=>{i+=s.toString();let o;while((o=i.indexOf(`\r
|
|
6
6
|
`))!==-1){let c=i.substring(0,o);i=i.substring(o+2);try{await this.processCommand(r,c)}catch(u){console.error(`Error processing command: ${u}`),this.send(r,"* BAD Internal server error")}}}),e.on("close",()=>{this.sessions.delete(t)}),e.on("error",(s)=>{console.error(`Socket error: ${s}`),this.sessions.delete(t)})}send(e,t){e.socket.write(`${t}\r
|
|
7
7
|
`)}async processCommand(e,t){if(console.log(`IMAP CMD [${e.username||"unauth"}]: ${t}`),t.toUpperCase()==="DONE"){if(e.idling&&e.idleTag)e.idling=!1,this.send(e,`${e.idleTag} OK IDLE terminated`),e.idleTag=void 0;return}let r=t.match(/^(\S+)\s+(\S+)(?:\s+(.*))?$/);if(!r){this.send(e,"* BAD Invalid command");return}let[,i,s,o]=r,c=s.toUpperCase();switch(c){case"CAPABILITY":await this.handleCapability(e,i);break;case"NOOP":this.send(e,`${i} OK NOOP completed`);break;case"LOGOUT":await this.handleLogout(e,i);break;case"LOGIN":await this.handleLogin(e,i,o||"");break;case"AUTHENTICATE":await this.handleAuthenticate(e,i,o||"");break;case"SELECT":await this.handleSelect(e,i,o||"");break;case"EXAMINE":await this.handleExamine(e,i,o||"");break;case"LIST":await this.handleList(e,i,o||"");break;case"LSUB":await this.handleLsub(e,i,o||"");break;case"STATUS":await this.handleStatus(e,i,o||"");break;case"FETCH":await this.handleFetch(e,i,o||"");break;case"UID":await this.handleUid(e,i,o||"");break;case"SEARCH":await this.handleSearch(e,i,o||"");break;case"CLOSE":await this.handleClose(e,i);break;case"EXPUNGE":await this.handleExpunge(e,i);break;case"STORE":await this.handleStore(e,i,o||"");break;case"COPY":await this.handleCopy(e,i,o||"");break;case"IDLE":await this.handleIdle(e,i);break;case"STARTTLS":await this.handleStartTls(e,i);break;case"NAMESPACE":await this.handleNamespace(e,i);break;case"XLIST":await this.handleXlist(e,i,o||"");break;case"CREATE":await this.handleCreate(e,i,o||"");break;case"DELETE":await this.handleDelete(e,i,o||"");break;case"SUBSCRIBE":await this.handleSubscribe(e,i,o||"");break;case"UNSUBSCRIBE":await this.handleUnsubscribe(e,i,o||"");break;case"RENAME":await this.handleRename(e,i,o||"");break;case"APPEND":await this.handleAppend(e,i,o||"");break;case"CHECK":await this.handleCheck(e,i);break;case"MOVE":await this.handleMove(e,i,o||"");break;default:this.send(e,`${i} BAD Unknown command ${c}`)}}async handleCapability(e,t){let r=["IMAP4rev1","STARTTLS","AUTH=PLAIN","AUTH=LOGIN","IDLE","NAMESPACE","UIDPLUS","UNSELECT","CHILDREN","SPECIAL-USE","MOVE"];this.send(e,`* CAPABILITY ${r.join(" ")}`),this.send(e,`${t} OK CAPABILITY completed`)}async handleLogout(e,t){this.send(e,`* BYE ${this.config.domain} IMAP4rev1 server logging out`),this.send(e,`${t} OK LOGOUT completed`),e.state="logout",e.socket.end()}async handleLogin(e,t,r){let i=r.match(/^"?([^"\s]+)"?\s+"?([^"\s]+)"?$/);if(!i){this.send(e,`${t} BAD Invalid LOGIN syntax`);return}let[,s,o]=i,c=this.config.users[s];if(!c||c.password!==o){this.send(e,`${t} NO LOGIN failed`);return}e.username=s,e.email=c.email,e.state="authenticated",this.send(e,`${t} OK LOGIN completed`)}async handleAuthenticate(e,t,r){this.send(e,`${t} NO Use LOGIN command`)}async handleSelect(e,t,r){if(e.state==="not_authenticated"){this.send(e,`${t} NO Must authenticate first`);return}let i=r.replace(/^"(.*)"$/,"$1").toUpperCase();e.selectedMailbox=i,e.state="selected",await this.loadMessages(e,!0);let s=this.getMessagesForFolder(e.email||"",i),o=s.length,c=s.filter((l)=>l.flags.includes("\\Recent")).length,u=s.findIndex((l)=>!l.flags.includes("\\Seen")),g=u>=0?u+1:0,m=this.getUidCounterForFolder(e.email||"",i)+1,d=this.getUidValidity(e.email||"");this.send(e,`* ${o} EXISTS`),this.send(e,`* ${c} RECENT`),this.send(e,`* OK [UNSEEN ${g||1}] First unseen message`),this.send(e,`* OK [UIDVALIDITY ${d}]`),this.send(e,`* OK [UIDNEXT ${m}]`),this.send(e,"* FLAGS (\\Answered \\Flagged \\Deleted \\Seen \\Draft)"),this.send(e,"* OK [PERMANENTFLAGS (\\Answered \\Flagged \\Deleted \\Seen \\Draft \\*)]"),this.send(e,`${t} OK [READ-WRITE] SELECT completed`)}async handleExamine(e,t,r){await this.handleSelect(e,t,r)}async handleNoop(e,t){if(e.state==="selected"&&e.selectedMailbox==="INBOX"){let i=this.getMessagesForFolder(e.email||"",e.selectedMailbox||"INBOX").length;await this.loadMessages(e,!0);let s=this.getMessagesForFolder(e.email||"",e.selectedMailbox||"INBOX"),o=s.length;if(o!==i){this.send(e,`* ${o} EXISTS`);let c=s.filter((u)=>u.flags.includes("\\Recent")).length;this.send(e,`* ${c} RECENT`)}}this.send(e,`${t} OK NOOP completed`)}async handleCheck(e,t){if(e.state==="selected"){await this.loadMessages(e,!0);let r=this.getMessagesForFolder(e.email||"",e.selectedMailbox||"INBOX");this.send(e,`* ${r.length} EXISTS`)}this.send(e,`${t} OK CHECK completed`)}async handleList(e,t,r){if(e.state==="not_authenticated"){this.send(e,`${t} NO Must authenticate first`);return}let i=r.match(/^"?([^"]*)"?\s+"?([^"]*)"?$/);if(!i){this.send(e,`${t} BAD Invalid LIST syntax`);return}let[,s,o]=i;if(o==="*"||o==="%"||o==="")this.send(e,'* LIST (\\HasNoChildren) "/" "INBOX"'),this.send(e,'* LIST (\\HasNoChildren \\Sent) "/" "Sent"'),this.send(e,'* LIST (\\HasNoChildren \\Drafts) "/" "Drafts"'),this.send(e,'* LIST (\\HasNoChildren \\Trash) "/" "Trash"'),this.send(e,'* LIST (\\HasNoChildren \\Junk) "/" "Junk"'),this.send(e,'* LIST (\\HasNoChildren \\Archive) "/" "Archive"'),this.send(e,'* LIST (\\HasNoChildren \\All) "/" "All Mail"');else if(o.toUpperCase()==="INBOX")this.send(e,'* LIST (\\HasNoChildren) "/" "INBOX"');else{let c=o.toUpperCase();if(c==="SENT"||c==="*SENT*")this.send(e,'* LIST (\\HasNoChildren \\Sent) "/" "Sent"');if(c==="DRAFTS"||c==="*DRAFT*")this.send(e,'* LIST (\\HasNoChildren \\Drafts) "/" "Drafts"');if(c==="TRASH"||c==="*TRASH*")this.send(e,'* LIST (\\HasNoChildren \\Trash) "/" "Trash"');if(c==="JUNK"||c==="SPAM"||c==="*JUNK*"||c==="*SPAM*")this.send(e,'* LIST (\\HasNoChildren \\Junk) "/" "Junk"');if(c==="ARCHIVE"||c==="*ARCHIVE*")this.send(e,'* LIST (\\HasNoChildren \\Archive) "/" "Archive"')}this.send(e,`${t} OK LIST completed`)}async handleLsub(e,t,r){if(e.state==="not_authenticated"){this.send(e,`${t} NO Must authenticate first`);return}let i=r.match(/^"?([^"]*)"?\s+"?([^"]*)"?$/);if(!i){this.send(e,`${t} BAD Invalid LSUB syntax`);return}let[,s,o]=i;if(o==="*"||o==="%"||o==="")this.send(e,'* LSUB (\\HasNoChildren) "/" "INBOX"'),this.send(e,'* LSUB (\\HasNoChildren \\Sent) "/" "Sent"'),this.send(e,'* LSUB (\\HasNoChildren \\Drafts) "/" "Drafts"'),this.send(e,'* LSUB (\\HasNoChildren \\Trash) "/" "Trash"'),this.send(e,'* LSUB (\\HasNoChildren \\Junk) "/" "Junk"'),this.send(e,'* LSUB (\\HasNoChildren \\Archive) "/" "Archive"'),this.send(e,'* LSUB (\\HasNoChildren \\All) "/" "All Mail"');else if(o.toUpperCase()==="INBOX")this.send(e,'* LSUB (\\HasNoChildren) "/" "INBOX"');this.send(e,`${t} OK LSUB completed`)}async handleStatus(e,t,r){if(e.state==="not_authenticated"){this.send(e,`${t} NO Must authenticate first`);return}let i=r.match(/^"?([^"]+)"?\s+\(([^)]+)\)$/i);if(!i){this.send(e,`${t} BAD Invalid STATUS syntax`);return}let[,s,o]=i;await this.loadMessagesForFolder(e,s);let c=this.getMessagesForFolder(e.email||"",s)||[],u=o.toUpperCase().split(/\s+/),g=[];for(let m of u)switch(m){case"MESSAGES":g.push(`MESSAGES ${c.length}`);break;case"RECENT":g.push(`RECENT ${c.filter((d)=>d.flags.includes("\\Recent")).length}`);break;case"UIDNEXT":g.push(`UIDNEXT ${this.getUidCounterForFolder(e.email||"",s)+1}`);break;case"UIDVALIDITY":g.push(`UIDVALIDITY ${this.getUidValidity(e.email||"")}`);break;case"UNSEEN":g.push(`UNSEEN ${c.filter((d)=>!d.flags.includes("\\Seen")).length}`);break}this.send(e,`* STATUS "${s}" (${g.join(" ")})`),this.send(e,`${t} OK STATUS completed`)}async handleFetch(e,t,r){if(e.state!=="selected"){this.send(e,`${t} NO Must select mailbox first`);return}let i=r.match(/^(\S+)\s+(.+)$/i);if(!i){this.send(e,`${t} BAD Invalid FETCH syntax`);return}let[,s,o]=i,c=e.selectedMailbox||"INBOX",u=this.getMessagesForFolder(e.email||"",c),g=this.parseSequenceSet(s,u.length);for(let m of g){let d=u[m-1];if(!d)continue;let l=await this.buildFetchResponse(e,d,m,o);this.send(e,`* ${m} FETCH ${l}`)}this.send(e,`${t} OK FETCH completed`)}async handleUid(e,t,r){if(e.state!=="selected"){this.send(e,`${t} NO Must select mailbox first`);return}let i=r.match(/^(\S+)\s+(.+)$/i);if(!i){this.send(e,`${t} BAD Invalid UID syntax`);return}let[,s,o]=i;switch(s.toUpperCase()){case"FETCH":await this.handleUidFetch(e,t,o);break;case"SEARCH":await this.handleUidSearch(e,t,o);break;case"STORE":await this.handleUidStore(e,t,o);break;case"COPY":await this.handleUidCopy(e,t,o);break;case"MOVE":await this.handleUidMove(e,t,o);break;case"EXPUNGE":await this.handleUidExpunge(e,t,o);break;default:this.send(e,`${t} BAD Unknown UID command`)}}async handleUidFetch(e,t,r){let i=r.match(/^(\S+)\s+(.+)$/i);if(!i){this.send(e,`${t} BAD Invalid UID FETCH syntax`);return}let[,s,o]=i,c=e.selectedMailbox||"INBOX",u=this.getMessagesForFolder(e.email||"",c),g=u.length>0?Math.max(...u.map((d)=>d.uid)):0,m=this.parseSequenceSet(s,g);for(let d of m){let l=u.findIndex((y)=>y.uid===d);if(l===-1)continue;let p=u[l],h=await this.buildFetchResponse(e,p,l+1,o,!0);this.send(e,`* ${l+1} FETCH ${h}`)}this.send(e,`${t} OK UID FETCH completed`)}async handleSearch(e,t,r){if(e.state!=="selected"){this.send(e,`${t} NO Must select mailbox first`);return}let i=e.selectedMailbox||"INBOX",s=this.getMessagesForFolder(e.email||"",i);if(s.length===0)this.send(e,"* SEARCH");else{let o=s.map((c,u)=>u+1);this.send(e,`* SEARCH ${o.join(" ")}`)}this.send(e,`${t} OK SEARCH completed`)}async handleUidSearch(e,t,r){let i=e.selectedMailbox||"INBOX",s=this.getMessagesForFolder(e.email||"",i);if(s.length===0)this.send(e,"* SEARCH");else{let o=s.map((c)=>c.uid);this.send(e,`* SEARCH ${o.join(" ")}`)}this.send(e,`${t} OK UID SEARCH completed`)}async handleStore(e,t,r){if(e.state!=="selected"){this.send(e,`${t} NO Must select mailbox first`);return}let i=r.match(/^(\S+)\s+([+-]?FLAGS(?:\.SILENT)?)\s+\(([^)]*)\)/i);if(!i){this.send(e,`${t} BAD Invalid STORE syntax`);return}let[,s,o,c]=i,u=e.selectedMailbox||"INBOX",g=this.getMessagesForFolder(e.email||"",u),m=this.parseSequenceSet(s,g.length),d=o.toUpperCase().includes(".SILENT"),l=c.split(/\s+/).filter((h)=>h),p=await this.loadFlags(e.email||"");for(let h of m){let y=g[h-1];if(!y)continue;if(o.startsWith("+")){for(let f of l)if(!y.flags.includes(f))y.flags.push(f)}else if(o.startsWith("-"))y.flags=y.flags.filter((f)=>!l.includes(f));else y.flags=[...l];if(p[y.key]=[...y.flags],!d)this.send(e,`* ${h} FETCH (FLAGS (${y.flags.join(" ")}))`)}await this.saveFlags(e.email||""),this.send(e,`${t} OK STORE completed`)}async handleUidStore(e,t,r){if(e.state!=="selected"){this.send(e,`${t} NO Must select mailbox first`);return}let i=r.match(/^(\S+)\s+([+-]?FLAGS(?:\.SILENT)?)\s+\(([^)]*)\)/i);if(!i){this.send(e,`${t} BAD Invalid UID STORE syntax`);return}let[,s,o,c]=i,u=e.selectedMailbox||"INBOX",g=this.getMessagesForFolder(e.email||"",u),m=g.length>0?Math.max(...g.map((y)=>y.uid)):0,d=this.parseSequenceSet(s,m),l=o.toUpperCase().includes(".SILENT"),p=c.split(/\s+/).filter((y)=>y),h=await this.loadFlags(e.email||"");for(let y of d){let f=g.findIndex((b)=>b.uid===y);if(f===-1)continue;let S=g[f];if(o.startsWith("+")){for(let b of p)if(!S.flags.includes(b))S.flags.push(b)}else if(o.startsWith("-"))S.flags=S.flags.filter((b)=>!p.includes(b));else S.flags=[...p];if(h[S.key]=[...S.flags],!l)this.send(e,`* ${f+1} FETCH (UID ${S.uid} FLAGS (${S.flags.join(" ")}))`)}await this.saveFlags(e.email||""),this.send(e,`${t} OK UID STORE completed`)}async handleCopy(e,t,r){if(e.state!=="selected"){this.send(e,`${t} NO Must select mailbox first`);return}let i=r.match(/^(\S+)\s+"?([^"]+)"?$/i);if(!i){this.send(e,`${t} BAD Invalid COPY syntax`);return}let[,s,o]=i,c=e.selectedMailbox||"INBOX",u=this.getMessagesForFolder(e.email||"",c),g=this.parseSequenceSet(s,u.length),m=this.getFolderPrefix(o);for(let d of g){let l=u[d-1];if(!l)continue;try{let p=l.raw||await this.s3.getObject(this.config.bucket,l.key),h=l.key.split("/").pop()||`${Date.now()}`,y=`${m}${h}`;await this.s3.putObject({bucket:this.config.bucket,key:y,body:p,contentType:"message/rfc822"}),console.log(`Copied message from ${l.key} to ${y}`)}catch(p){console.error(`Failed to copy message: ${p}`)}}this.send(e,`${t} OK COPY completed`)}async handleUidCopy(e,t,r){if(e.state!=="selected"){this.send(e,`${t} NO Must select mailbox first`);return}let i=r.match(/^(\S+)\s+"?([^"]+)"?$/i);if(!i){this.send(e,`${t} BAD Invalid UID COPY syntax`);return}let[,s,o]=i,c=e.selectedMailbox||"INBOX",u=this.getMessagesForFolder(e.email||"",c),g=u.length>0?Math.max(...u.map((l)=>l.uid)):0,m=this.parseSequenceSet(s,g),d=this.getFolderPrefix(o);for(let l of m){let p=u.find((h)=>h.uid===l);if(!p)continue;try{let h=p.raw||await this.s3.getObject(this.config.bucket,p.key),y=p.key.split("/").pop()||`${Date.now()}`,f=`${d}${y}`;await this.s3.putObject({bucket:this.config.bucket,key:f,body:h,contentType:"message/rfc822"}),console.log(`UID COPY: Copied message from ${p.key} to ${f}`)}catch(h){console.error(`Failed to copy message: ${h}`)}}this.send(e,`${t} OK UID COPY completed`)}async handleMove(e,t,r){if(e.state!=="selected"){this.send(e,`${t} NO Must select mailbox first`);return}let i=r.match(/^(\S+)\s+"?([^"]+)"?$/i);if(!i){this.send(e,`${t} BAD Invalid MOVE syntax`);return}let[,s,o]=i,c=e.selectedMailbox||"INBOX",u=this.getMessagesForFolder(e.email||"",c),g=this.parseSequenceSet(s,u.length),m=this.getFolderPrefix(o),d=[];for(let h of g){let y=u[h-1];if(!y)continue;try{let f=y.raw||await this.s3.getObject(this.config.bucket,y.key),S=y.key.split("/").pop()||`${Date.now()}`,b=`${m}${S}`;await this.s3.putObject({bucket:this.config.bucket,key:b,body:f,contentType:"message/rfc822"}),await this.s3.deleteObject(this.config.bucket,y.key),console.log(`MOVE: ${y.key} -> ${b}`),d.push(h)}catch(f){console.error(`Failed to move message: ${f}`)}}let l=[...d].sort((h,y)=>y-h);for(let h of l)this.send(e,`* ${h} EXPUNGE`);let p=u.filter((h,y)=>!d.includes(y+1));this.setMessagesForFolder(e.email||"",c,p),this.send(e,`* ${p.length} EXISTS`),this.send(e,`${t} OK MOVE completed`)}async handleUidMove(e,t,r){if(e.state!=="selected"){this.send(e,`${t} NO Must select mailbox first`);return}let i=r.match(/^(\S+)\s+"?([^"]+)"?$/i);if(!i){this.send(e,`${t} BAD Invalid UID MOVE syntax`);return}let[,s,o]=i,c=e.selectedMailbox||"INBOX",u=this.getMessagesForFolder(e.email||"",c),g=u.length>0?Math.max(...u.map((y)=>y.uid)):0,m=this.parseSequenceSet(s,g),d=this.getFolderPrefix(o),l=[];for(let y of m){let f=u.findIndex((b)=>b.uid===y);if(f===-1)continue;let S=u[f];try{let b=S.raw||await this.s3.getObject(this.config.bucket,S.key),I=S.key.split("/").pop()||`${Date.now()}`,A=`${d}${I}`;await this.s3.putObject({bucket:this.config.bucket,key:A,body:b,contentType:"message/rfc822"}),await this.s3.deleteObject(this.config.bucket,S.key),console.log(`UID MOVE: ${S.key} -> ${A}`),l.push(f+1)}catch(b){console.error(`Failed to move message: ${b}`)}}let p=[...l].sort((y,f)=>f-y);for(let y of p)this.send(e,`* ${y} EXPUNGE`);let h=u.filter((y,f)=>!l.includes(f+1));this.setMessagesForFolder(e.email||"",c,h),this.send(e,`* ${h.length} EXISTS`),this.send(e,`${t} OK UID MOVE completed`)}async handleUidExpunge(e,t,r){if(e.state!=="selected"){this.send(e,`${t} NO Must select mailbox first`);return}let i=e.selectedMailbox||"INBOX",s=this.getMessagesForFolder(e.email||"",i),o=r.trim(),c=s.length>0?Math.max(...s.map((l)=>l.uid)):0,u=this.parseSequenceSet(o,c),g=[],m=[];for(let l=s.length-1;l>=0;l--){let p=s[l];if(u.includes(p.uid)&&p.flags.includes("\\Deleted"))g.push(l+1),m.push(p.key)}for(let l of m)try{await this.s3.deleteObject(this.config.bucket,l),console.log(`Deleted from S3: ${l}`)}catch(p){console.error(`Failed to delete from S3: ${l}`,p)}for(let l of g)this.send(e,`* ${l} EXPUNGE`);let d=s.filter((l,p)=>!g.includes(p+1));if(this.setMessagesForFolder(e.email||"",i,d),g.length>0)this.send(e,`* ${d.length} EXISTS`);this.send(e,`${t} OK UID EXPUNGE completed`)}async handleClose(e,t){e.state="authenticated",e.selectedMailbox=void 0,this.send(e,`${t} OK CLOSE completed`)}async handleExpunge(e,t){if(e.state!=="selected"){this.send(e,`${t} NO Must select mailbox first`);return}let r=e.selectedMailbox||"INBOX",i=this.getMessagesForFolder(e.email||"",r),s=[],o=[];for(let u=i.length-1;u>=0;u--)if(i[u].flags.includes("\\Deleted"))s.push(u+1),o.push(i[u].key);for(let u of o)try{await this.s3.deleteObject(this.config.bucket,u),console.log(`EXPUNGE: Deleted from S3: ${u}`)}catch(g){console.error(`Failed to delete from S3: ${u}`,g)}for(let u of s)this.send(e,`* ${u} EXPUNGE`);let c=i.filter((u)=>!u.flags.includes("\\Deleted"));if(this.setMessagesForFolder(e.email||"",r,c),s.length>0)this.send(e,`* ${c.length} EXISTS`);this.send(e,`${t} OK EXPUNGE completed`)}async handleIdle(e,t){e.idling=!0,e.idleTag=t,this.send(e,"+ idling")}async handleStartTls(e,t){if(!this.config.tls?.key||!this.config.tls?.cert){this.send(e,`${t} NO TLS not configured`);return}this.send(e,`${t} OK Begin TLS negotiation`);let r={key:P(this.config.tls.key),cert:P(this.config.tls.cert),isServer:!0},i=new D.TLSSocket(e.socket,r);e.socket=i}async handleNamespace(e,t){this.send(e,'* NAMESPACE (("" "/")) NIL NIL'),this.send(e,`${t} OK NAMESPACE completed`)}async loadMessages(e,t=!1){let r=e.email,i=e.selectedMailbox||"INBOX";if(!r)return;let s=`${r}:${i}`,o=this.cacheTimestamp.get(s)||0,u=Date.now()-o;if(!t&&u<this.CACHE_TTL_MS){if(this.getMessagesForFolder(r,i).length>0)return}let g=await this.loadFlags(r);await this.loadUidMapping(r);try{if(this.isAllMailFolder(i)){await this.loadAllMailFolder(r,g);return}let m=this.getFolderPrefix(i),d=await this.s3.list({bucket:this.config.bucket,prefix:m,maxKeys:1000}),l=[],p=!1;for(let y of d){if(!y.Key)continue;let f="";try{f=await this.s3.getObject(this.config.bucket,y.Key)}catch{continue}let S=this.parseHeaders(f);if(i==="INBOX"){if(!(S.to||"").toLowerCase().includes(r.toLowerCase()))continue}let b=this.uidMappingCache.get(r)?.[y.Key],I=this.getOrAssignUid(r,y.Key);if(!b)p=!0;let A=g[y.Key]||[];l.push({uid:I,key:y.Key,size:y.Size||f.length,date:new Date(y.LastModified||Date.now()),flags:[...A],from:S.from,to:S.to,subject:S.subject,raw:f})}if(l.sort((y,f)=>y.uid-f.uid),p)await this.saveUidMapping(r);let h=l.length>0?Math.max(...l.map((y)=>y.uid)):0;this.setUidCounterForFolder(r,i,h),this.setMessagesForFolder(r,i,l),this.cacheTimestamp.set(s,Date.now()),console.log(`Loaded ${l.length} messages for ${r} in ${i} from S3 (hasNewMessages=${p})`)}catch(m){console.error(`Error loading messages from S3: ${m}`)}}async loadAllMailFolder(e,t){let i=`${e}:ALL MAIL`;await this.loadUidMapping(e);let s=[this.config.prefix||"incoming/","sent/","trash/","drafts/","junk/","archive/"],o=[],c=new Set,u=!1;for(let m of s)try{let d=await this.s3.list({bucket:this.config.bucket,prefix:m,maxKeys:1000});for(let l of d){if(!l.Key||c.has(l.Key))continue;c.add(l.Key);let p="";try{p=await this.s3.getObject(this.config.bucket,l.Key)}catch{continue}let h=this.parseHeaders(p);if(m===(this.config.prefix||"incoming/")){if(!(h.to||"").toLowerCase().includes(e.toLowerCase()))continue}let y=this.uidMappingCache.get(e)?.[l.Key],f=this.getOrAssignUid(e,l.Key);if(!y)u=!0;let S=t[l.Key]||[];o.push({uid:f,key:l.Key,size:l.Size||p.length,date:new Date(l.LastModified||Date.now()),flags:[...S],from:h.from,to:h.to,subject:h.subject,raw:p})}}catch(d){console.error(`Error loading messages from prefix ${m}: ${d}`)}if(o.sort((m,d)=>m.uid-d.uid),u)await this.saveUidMapping(e);let g=o.length>0?Math.max(...o.map((m)=>m.uid)):0;this.setUidCounterForFolder(e,"ALL MAIL",g),this.setMessagesForFolder(e,"ALL MAIL",o),this.cacheTimestamp.set(i,Date.now()),console.log(`Loaded ${o.length} total messages for ${e} in All Mail from S3 (hasNewMessages=${u})`)}async loadMessagesForFolder(e,t){let r=e.email;if(!r)return;let i=`${r}:${t}`,s=this.cacheTimestamp.get(i)||0;if(Date.now()-s<this.CACHE_TTL_MS){if(this.getMessagesForFolder(r,t).length>0)return}let u=await this.loadFlags(r);if(await this.loadUidMapping(r),this.isAllMailFolder(t)){await this.loadAllMailFolder(r,u);return}try{let g=this.getFolderPrefix(t),m=await this.s3.list({bucket:this.config.bucket,prefix:g,maxKeys:1000}),d=[],l=!1;for(let h of m){if(!h.Key)continue;let y="";try{y=await this.s3.getObject(this.config.bucket,h.Key)}catch{continue}let f=this.parseHeaders(y);if(t.toUpperCase()==="INBOX"){if(!(f.to||"").toLowerCase().includes(r.toLowerCase()))continue}let S=this.uidMappingCache.get(r)?.[h.Key],b=this.getOrAssignUid(r,h.Key);if(!S)l=!0;let I=u[h.Key]||[];d.push({uid:b,key:h.Key,size:h.Size||y.length,date:new Date(h.LastModified||Date.now()),flags:[...I],from:f.from,to:f.to,subject:f.subject,raw:y})}if(d.sort((h,y)=>h.uid-y.uid),l)await this.saveUidMapping(r);let p=d.length>0?Math.max(...d.map((h)=>h.uid)):0;this.setUidCounterForFolder(r,t,p),this.setMessagesForFolder(r,t,d),this.cacheTimestamp.set(i,Date.now())}catch(g){console.error(`Error loading messages for folder ${t}: ${g}`),this.setMessagesForFolder(r,t,[])}}parseHeaders(e){let t={},i=(e.split(`\r
|
|
8
8
|
\r
|
|
@@ -111,4 +111,4 @@ I would like to request an increase to our Amazon Connect phone number limit.
|
|
|
111
111
|
**Use Case**:
|
|
112
112
|
${e.useCase}
|
|
113
113
|
|
|
114
|
-
Thank you for reviewing this request.`})};async function La(e){let t=e.region||"us-east-1",r={success:!0,errors:[],warnings:[]},i=new Ye(t),s=new a(t),o=new gn(t),c=new n;console.log("Setting up SMS infrastructure..."),console.log(" Checking SMS account status...");try{let u=await K(i);if(r.sandboxStatus=u.inSandbox?"IN_SANDBOX":"OUT_OF_SANDBOX",u.inSandbox){if(console.log(" Account is in SMS sandbox"),e.sandbox?.autoRequestExit&&e.sandbox.companyName){console.log(" Requesting SMS sandbox exit via AWS Support...");try{let g=Oa.smsSandboxExit({companyName:e.sandbox.companyName,useCase:e.sandbox.useCase||"Transactional notifications and verification codes",expectedMonthlyVolume:e.sandbox.expectedMonthlyVolume||1000,websiteUrl:e.sandbox.websiteUrl}),m=await o.createCase(g);r.supportCaseId=m.caseId,r.sandboxStatus="EXIT_REQUESTED",console.log(` Support case created: ${m.caseId}`)}catch(g){r.warnings.push(`Failed to create sandbox exit support case: ${g.message}`),console.log(` Warning: Could not create support case: ${g.message}`)}}}if(r.spendingLimit=u.spendingLimit,console.log(` Current spending limit: $${u.spendingLimit}/month`),e.spending?.autoRequestIncrease&&e.spending.monthlyLimit&&u.spendingLimit<e.spending.monthlyLimit){console.log(` Requesting spending limit increase to $${e.spending.monthlyLimit}/month...`);try{await Pe(c,t,e.spending.monthlyLimit),r.spendingLimit=e.spending.monthlyLimit,console.log(" Spending limit updated successfully")}catch(g){if(e.sandbox?.companyName)try{let m=Oa.smsSpendLimitIncrease({companyName:e.sandbox.companyName,currentLimit:u.spendingLimit,requestedLimit:e.spending.monthlyLimit,useCase:e.sandbox.useCase||"Production SMS messaging"}),d=await o.createCase(m);r.supportCaseId=d.caseId,r.warnings.push(`Spending limit increase requested via support case: ${d.caseId}`),console.log(` Support case created for limit increase: ${d.caseId}`)}catch(m){r.warnings.push(`Failed to request spending limit increase: ${m.message}`)}else r.warnings.push("Spending limit increase requires AWS Support ticket. Provide companyName in config.")}}}catch(u){r.errors.push(`Failed to check SMS account status: ${u.message}`),console.log(` Error checking status: ${u.message}`)}if(e.inbox?.enabled&&e.inbox.bucket){console.log(" Setting up S3 inbox...");try{await De(s,{bucket:e.inbox.bucket,prefix:e.inbox.prefix||"sms/inbox/",retentionDays:e.inbox.retentionDays}),r.inboxBucket=e.inbox.bucket,r.inboxPrefix=e.inbox.prefix||"sms/inbox/",console.log(` Inbox configured: s3://${e.inbox.bucket}/${r.inboxPrefix}`)}catch(u){r.errors.push(`Failed to set up S3 inbox: ${u.message}`),console.log(` Error setting up inbox: ${u.message}`)}}if(e.twoWay?.enabled){console.log(" Setting up two-way SMS...");try{let u=e.twoWay.topicName||`${e.accountName||"stacks"}-sms-inbox`,g=await z(i,c,t,u,e.accountId);r.twoWayTopicArn=g,console.log(` Two-way topic: ${g}`)}catch(u){r.errors.push(`Failed to set up two-way SMS topic: ${u.message}`),console.log(` Error setting up two-way: ${u.message}`)}}if(e.deliveryReceipts?.enabled){console.log(" Setting up delivery receipts...");try{let u=e.deliveryReceipts.topicName||`${e.accountName||"stacks"}-sms-delivery-receipts`,g=await Re(i,c,t,u,e.accountId);r.deliveryReceiptTopicArn=g,console.log(` Delivery receipts topic: ${g}`)}catch(u){r.errors.push(`Failed to set up delivery receipts: ${u.message}`),console.log(` Error setting up delivery receipts: ${u.message}`)}}if(r.success=r.errors.length===0,console.log(r.success?" SMS setup completed successfully!":" SMS setup completed with errors"),r.success)r.warnings.push("For dedicated phone numbers, use AWS End User Messaging console. SNS uses shared pool by default.");return r}async function K(e){let t=!0,r=1,i=0;try{t=(await e.getSMSSandboxAccountStatus()).IsInSandbox}catch{t=!0}try{let s=await e.getSMSAttributes();if(s.MonthlySpendLimit)r=parseFloat(s.MonthlySpendLimit)}catch{}return{inSandbox:t,spendingLimit:r,usedThisMonth:i}}async function Pe(e,t,r){let i=new URLSearchParams({Action:"SetSMSAttributes",Version:"2010-03-31","attributes.entry.1.key":"MonthlySpendLimit","attributes.entry.1.value":r.toString()});await e.request({service:"sns",region:t,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:i.toString()})}async function De(e,t){try{if(!(await e.listBuckets()).Buckets?.some((o)=>o.Name===t.bucket))await e.createBucket(t.bucket);let s=[`${t.prefix}.keep`,"sms/sent/.keep","sms/conversations/.keep","sms/templates/.keep","sms/scheduled/.keep","sms/receipts/.keep"];for(let o of s)try{await e.putObject({bucket:t.bucket,key:o,body:`SMS folder created ${new Date().toISOString()}`,contentType:"text/plain"})}catch{}if(t.retentionDays)try{await e.putBucketLifecycleConfiguration(t.bucket,[{ID:"SmsInboxRetention",Status:"Enabled",Filter:{Prefix:t.prefix},Expiration:{Days:t.retentionDays}},{ID:"SmsReceiptsRetention",Status:"Enabled",Filter:{Prefix:"sms/receipts/"},Expiration:{Days:t.retentionDays}}])}catch(o){console.log(` Note: Could not set lifecycle rules: ${o.message}`)}}catch(r){throw Error(`Failed to set up S3 inbox: ${r.message}`)}}async function z(e,t,r,i,s){let c=(await e.listTopics()).Topics?.find((l)=>l.TopicArn?.endsWith(`:${i}`));if(c)return c.TopicArn;let u=new URLSearchParams({Action:"CreateTopic",Version:"2010-03-31",Name:i}),m=(await t.request({service:"sns",region:r,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:u.toString()}))?.CreateTopicResponse?.CreateTopicResult?.TopicArn;if(!m)throw Error("Failed to create SNS topic");let d=new URLSearchParams({Action:"SetTopicAttributes",Version:"2010-03-31",TopicArn:m,AttributeName:"Policy",AttributeValue:JSON.stringify({Version:"2012-10-17",Statement:[{Sid:"AllowSMSVoicePublish",Effect:"Allow",Principal:{Service:"sms-voice.amazonaws.com"},Action:"sns:Publish",Resource:m}]})});return await t.request({service:"sns",region:r,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:d.toString()}),m}async function Re(e,t,r,i,s){return z(e,t,r,i,s)}async function nu(e){let t=e.region||"us-east-1",r=new Ye(t),i=await K(r),o=((await r.listTopics()).Topics||[]).filter((c)=>c.TopicArn?.includes("sms")).map((c)=>({name:c.TopicArn?.split(":").pop()||"",arn:c.TopicArn||""}));return{sandboxStatus:i.inSandbox?"IN_SANDBOX":"OUT_OF_SANDBOX",spendingLimit:i.spendingLimit,topics:o}}async function iu(e){if(!e.enabled)return{success:!0,errors:[],warnings:["SMS is disabled in config"]};let t={region:"us-east-1",accountName:"stacks",inbox:e.inbox?{enabled:e.inbox.enabled,bucket:e.inbox.bucket,prefix:e.inbox.prefix,retentionDays:e.inbox.retentionDays}:void 0,twoWay:e.twoWay?{enabled:e.twoWay.enabled}:void 0,spending:{monthlyLimit:e.maxSpendPerMonth,autoRequestIncrease:!0},sandbox:{autoRequestExit:!0,companyName:"Stacks",useCase:"Transactional notifications, verification codes, and account alerts for web applications built with Stacks framework.",expectedMonthlyVolume:5000,websiteUrl:"https://stacksjs.com"},deliveryReceipts:{enabled:!0}};return La(t)}class $a{client;region;constructor(e="us-east-1"){this.client=new n,this.region=e}async describePhoneNumbers(e={}){let t=await this.client.request({service:"sms-voice",region:this.region,method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.0","x-amz-target":"PinpointSMSVoiceV2.DescribePhoneNumbers"},body:JSON.stringify(e)});return{PhoneNumbers:t?.PhoneNumbers??[],NextToken:t?.NextToken}}async addSandboxPhone(e){let t=await this.client.request({service:"sms-voice",region:this.region,method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.0","x-amz-target":"PinpointSMSVoiceV2.CreateVerifiedDestinationNumber"},body:JSON.stringify({DestinationPhoneNumber:e})});return{verifiedDestinationNumberId:t?.VerifiedDestinationNumberId??"",phoneNumber:t?.DestinationPhoneNumber??e,status:t?.Status==="VERIFIED"?"VERIFIED":"PENDING"}}async verifySandboxPhone(e,t){let r=await this.client.request({service:"sms-voice",region:this.region,method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.0","x-amz-target":"PinpointSMSVoiceV2.VerifyDestinationNumber"},body:JSON.stringify({VerifiedDestinationNumberId:e,VerificationCode:t})});return{success:r?.Status==="VERIFIED",verifiedDestinationNumberId:r?.VerifiedDestinationNumberId,phoneNumber:r?.DestinationPhoneNumber,status:r?.Status==="VERIFIED"?"VERIFIED":"PENDING"}}async listSandboxPhones(){return((await this.client.request({service:"sms-voice",region:this.region,method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.0","x-amz-target":"PinpointSMSVoiceV2.DescribeVerifiedDestinationNumbers"},body:JSON.stringify({})}))?.VerifiedDestinationNumbers??[]).map((t)=>({id:t.VerifiedDestinationNumberId??"",phoneNumber:t.DestinationPhoneNumber??"",status:t.Status==="VERIFIED"?"VERIFIED":"PENDING",createdAt:t.CreatedTimestamp}))}}class rr{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async describeFileSystems(e){let t=[];if(e?.FileSystemId)t.push(`FileSystemId=${encodeURIComponent(e.FileSystemId)}`);if(e?.CreationToken)t.push(`CreationToken=${encodeURIComponent(e.CreationToken)}`);let r=`/2015-02-01/file-systems${t.length>0?`?${t.join("&")}`:""}`;return{FileSystems:((await this.client.request({service:"elasticfilesystem",region:this.region,method:"GET",path:r,headers:{"Content-Type":"application/json"}})).FileSystems||[]).map((s)=>({FileSystemId:s.FileSystemId,Name:s.Name,CreationTime:s.CreationTime,LifeCycleState:s.LifeCycleState,NumberOfMountTargets:s.NumberOfMountTargets,SizeInBytes:s.SizeInBytes?{Value:s.SizeInBytes.Value,Timestamp:s.SizeInBytes.Timestamp}:void 0,PerformanceMode:s.PerformanceMode,Encrypted:s.Encrypted,ThroughputMode:s.ThroughputMode,Tags:s.Tags}))}}}export{ge,Xt,Yi,Zi,Zl,Ra,Da,es,ts,Pa,Xe,V,Ye,ne,C,me,an,Na,ke,ka,cn,dn,ln,Mm,Fm,QA,HA,GA,qA,Ct,VA,jA,zA,KA,bt,Um,Qm,Hm,Et,Gm,qm,Vm,un,WA,JA,XA,Yt,YA,ZA,ey,Ba,xa,eu,ty,ry,ny,Zt,jm,zm,er,Ze,pn,_a,tu,iy,ru,sy,vt,oy,ay,cy,dy,ie,ly,uy,py,gy,tr,my,hy,fy,gn,Oa,La,nu,iu,$a,rr};
|
|
114
|
+
Thank you for reviewing this request.`})};async function La(e){let t=e.region||"us-east-1",r={success:!0,errors:[],warnings:[]},i=new Ye(t),s=new a(t),o=new gn(t),c=new n;console.log("Setting up SMS infrastructure..."),console.log(" Checking SMS account status...");try{let u=await K(i);if(r.sandboxStatus=u.inSandbox?"IN_SANDBOX":"OUT_OF_SANDBOX",u.inSandbox){if(console.log(" Account is in SMS sandbox"),e.sandbox?.autoRequestExit&&e.sandbox.companyName){console.log(" Requesting SMS sandbox exit via AWS Support...");try{let g=Oa.smsSandboxExit({companyName:e.sandbox.companyName,useCase:e.sandbox.useCase||"Transactional notifications and verification codes",expectedMonthlyVolume:e.sandbox.expectedMonthlyVolume||1000,websiteUrl:e.sandbox.websiteUrl}),m=await o.createCase(g);r.supportCaseId=m.caseId,r.sandboxStatus="EXIT_REQUESTED",console.log(` Support case created: ${m.caseId}`)}catch(g){r.warnings.push(`Failed to create sandbox exit support case: ${g.message}`),console.log(` Warning: Could not create support case: ${g.message}`)}}}if(r.spendingLimit=u.spendingLimit,console.log(` Current spending limit: $${u.spendingLimit}/month`),e.spending?.autoRequestIncrease&&e.spending.monthlyLimit&&u.spendingLimit<e.spending.monthlyLimit){console.log(` Requesting spending limit increase to $${e.spending.monthlyLimit}/month...`);try{await Pe(c,t,e.spending.monthlyLimit),r.spendingLimit=e.spending.monthlyLimit,console.log(" Spending limit updated successfully")}catch(g){if(e.sandbox?.companyName)try{let m=Oa.smsSpendLimitIncrease({companyName:e.sandbox.companyName,currentLimit:u.spendingLimit,requestedLimit:e.spending.monthlyLimit,useCase:e.sandbox.useCase||"Production SMS messaging"}),d=await o.createCase(m);r.supportCaseId=d.caseId,r.warnings.push(`Spending limit increase requested via support case: ${d.caseId}`),console.log(` Support case created for limit increase: ${d.caseId}`)}catch(m){r.warnings.push(`Failed to request spending limit increase: ${m.message}`)}else r.warnings.push("Spending limit increase requires AWS Support ticket. Provide companyName in config.")}}}catch(u){r.errors.push(`Failed to check SMS account status: ${u.message}`),console.log(` Error checking status: ${u.message}`)}if(e.inbox?.enabled&&e.inbox.bucket){console.log(" Setting up S3 inbox...");try{await De(s,{bucket:e.inbox.bucket,prefix:e.inbox.prefix||"sms/inbox/",retentionDays:e.inbox.retentionDays}),r.inboxBucket=e.inbox.bucket,r.inboxPrefix=e.inbox.prefix||"sms/inbox/",console.log(` Inbox configured: s3://${e.inbox.bucket}/${r.inboxPrefix}`)}catch(u){r.errors.push(`Failed to set up S3 inbox: ${u.message}`),console.log(` Error setting up inbox: ${u.message}`)}}if(e.twoWay?.enabled){console.log(" Setting up two-way SMS...");try{let u=e.twoWay.topicName||`${e.accountName||"stacks"}-sms-inbox`,g=await z(i,c,t,u,e.accountId);r.twoWayTopicArn=g,console.log(` Two-way topic: ${g}`)}catch(u){r.errors.push(`Failed to set up two-way SMS topic: ${u.message}`),console.log(` Error setting up two-way: ${u.message}`)}}if(e.deliveryReceipts?.enabled){console.log(" Setting up delivery receipts...");try{let u=e.deliveryReceipts.topicName||`${e.accountName||"stacks"}-sms-delivery-receipts`,g=await Re(i,c,t,u,e.accountId);r.deliveryReceiptTopicArn=g,console.log(` Delivery receipts topic: ${g}`)}catch(u){r.errors.push(`Failed to set up delivery receipts: ${u.message}`),console.log(` Error setting up delivery receipts: ${u.message}`)}}if(r.success=r.errors.length===0,console.log(r.success?" SMS setup completed successfully!":" SMS setup completed with errors"),r.success)r.warnings.push("For dedicated phone numbers, use AWS End User Messaging console. SNS uses shared pool by default.");return r}async function K(e){let t=!0,r=1,i=0;try{t=(await e.getSMSSandboxAccountStatus()).IsInSandbox}catch{t=!0}try{let s=await e.getSMSAttributes();if(s.MonthlySpendLimit)r=parseFloat(s.MonthlySpendLimit)}catch{}return{inSandbox:t,spendingLimit:r,usedThisMonth:i}}async function Pe(e,t,r){let i=new URLSearchParams({Action:"SetSMSAttributes",Version:"2010-03-31","attributes.entry.1.key":"MonthlySpendLimit","attributes.entry.1.value":r.toString()});await e.request({service:"sns",region:t,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:i.toString()})}async function De(e,t){try{if(!(await e.listBuckets()).Buckets?.some((o)=>o.Name===t.bucket))await e.createBucket(t.bucket);let s=[`${t.prefix}.keep`,"sms/sent/.keep","sms/conversations/.keep","sms/templates/.keep","sms/scheduled/.keep","sms/receipts/.keep"];for(let o of s)try{await e.putObject({bucket:t.bucket,key:o,body:`SMS folder created ${new Date().toISOString()}`,contentType:"text/plain"})}catch{}if(t.retentionDays)try{await e.putBucketLifecycleConfiguration(t.bucket,[{ID:"SmsInboxRetention",Status:"Enabled",Filter:{Prefix:t.prefix},Expiration:{Days:t.retentionDays}},{ID:"SmsReceiptsRetention",Status:"Enabled",Filter:{Prefix:"sms/receipts/"},Expiration:{Days:t.retentionDays}}])}catch(o){console.log(` Note: Could not set lifecycle rules: ${o.message}`)}}catch(r){throw Error(`Failed to set up S3 inbox: ${r.message}`)}}async function z(e,t,r,i,s){let c=(await e.listTopics()).Topics?.find((l)=>l.TopicArn?.endsWith(`:${i}`));if(c)return c.TopicArn;let u=new URLSearchParams({Action:"CreateTopic",Version:"2010-03-31",Name:i}),m=(await t.request({service:"sns",region:r,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:u.toString()}))?.CreateTopicResponse?.CreateTopicResult?.TopicArn;if(!m)throw Error("Failed to create SNS topic");let d=new URLSearchParams({Action:"SetTopicAttributes",Version:"2010-03-31",TopicArn:m,AttributeName:"Policy",AttributeValue:JSON.stringify({Version:"2012-10-17",Statement:[{Sid:"AllowSMSVoicePublish",Effect:"Allow",Principal:{Service:"sms-voice.amazonaws.com"},Action:"sns:Publish",Resource:m}]})});return await t.request({service:"sns",region:r,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:d.toString()}),m}async function Re(e,t,r,i,s){return z(e,t,r,i,s)}async function nu(e){let t=e.region||"us-east-1",r=new Ye(t),i=await K(r),o=((await r.listTopics()).Topics||[]).filter((c)=>c.TopicArn?.includes("sms")).map((c)=>({name:c.TopicArn?.split(":").pop()||"",arn:c.TopicArn||""}));return{sandboxStatus:i.inSandbox?"IN_SANDBOX":"OUT_OF_SANDBOX",spendingLimit:i.spendingLimit,topics:o}}async function iu(e){if(!e.enabled)return{success:!0,errors:[],warnings:["SMS is disabled in config"]};let t={region:"us-east-1",accountName:"stacks",inbox:e.inbox?{enabled:e.inbox.enabled,bucket:e.inbox.bucket,prefix:e.inbox.prefix,retentionDays:e.inbox.retentionDays}:void 0,twoWay:e.twoWay?{enabled:e.twoWay.enabled}:void 0,spending:{monthlyLimit:e.maxSpendPerMonth,autoRequestIncrease:!0},sandbox:{autoRequestExit:!0,companyName:"Stacks",useCase:"Transactional notifications, verification codes, and account alerts for web applications built with Stacks framework.",expectedMonthlyVolume:5000,websiteUrl:"https://stacksjs.com"},deliveryReceipts:{enabled:!0}};return La(t)}class $a{client;region;constructor(e="us-east-1"){this.client=new n,this.region=e}async describePhoneNumbers(e={}){let t=await this.client.request({service:"sms-voice",region:this.region,method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.0","x-amz-target":"PinpointSMSVoiceV2.DescribePhoneNumbers"},body:JSON.stringify(e)});return{PhoneNumbers:t?.PhoneNumbers??[],NextToken:t?.NextToken}}async addSandboxPhone(e){let t=await this.client.request({service:"sms-voice",region:this.region,method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.0","x-amz-target":"PinpointSMSVoiceV2.CreateVerifiedDestinationNumber"},body:JSON.stringify({DestinationPhoneNumber:e})});return{verifiedDestinationNumberId:t?.VerifiedDestinationNumberId??"",phoneNumber:t?.DestinationPhoneNumber??e,status:t?.Status==="VERIFIED"?"VERIFIED":"PENDING"}}async verifySandboxPhone(e,t){let r=await this.client.request({service:"sms-voice",region:this.region,method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.0","x-amz-target":"PinpointSMSVoiceV2.VerifyDestinationNumber"},body:JSON.stringify({VerifiedDestinationNumberId:e,VerificationCode:t})});return{success:r?.Status==="VERIFIED",verifiedDestinationNumberId:r?.VerifiedDestinationNumberId,phoneNumber:r?.DestinationPhoneNumber,status:r?.Status==="VERIFIED"?"VERIFIED":"PENDING"}}async listSandboxPhones(){return((await this.client.request({service:"sms-voice",region:this.region,method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.0","x-amz-target":"PinpointSMSVoiceV2.DescribeVerifiedDestinationNumbers"},body:JSON.stringify({})}))?.VerifiedDestinationNumbers??[]).map((t)=>({id:t.VerifiedDestinationNumberId??"",phoneNumber:t.DestinationPhoneNumber??"",status:t.Status==="VERIFIED"?"VERIFIED":"PENDING",createdAt:t.CreatedTimestamp}))}}class rr{client;region;constructor(e="us-east-1"){this.region=e,this.client=new n}async describeFileSystems(e){let t=[];if(e?.FileSystemId)t.push(`FileSystemId=${encodeURIComponent(e.FileSystemId)}`);if(e?.CreationToken)t.push(`CreationToken=${encodeURIComponent(e.CreationToken)}`);let r=`/2015-02-01/file-systems${t.length>0?`?${t.join("&")}`:""}`;return{FileSystems:((await this.client.request({service:"elasticfilesystem",region:this.region,method:"GET",path:r,headers:{"Content-Type":"application/json"}})).FileSystems||[]).map((s)=>({FileSystemId:s.FileSystemId,Name:s.Name,CreationTime:s.CreationTime,LifeCycleState:s.LifeCycleState,NumberOfMountTargets:s.NumberOfMountTargets,SizeInBytes:s.SizeInBytes?{Value:s.SizeInBytes.Value,Timestamp:s.SizeInBytes.Timestamp}:void 0,PerformanceMode:s.PerformanceMode,Encrypted:s.Encrypted,ThroughputMode:s.ThroughputMode,Tags:s.Tags}))}}}export{ge,Xt,Yi,Zi,Zl,Ra,Da,es,ts,Pa,Xe,V,Ye,ne,C,me,an,Na,ke,ka,cn,dn,ln,Mm,Fm,QA,HA,GA,qA,Ct,VA,jA,zA,KA,Et,Um,Qm,Hm,bt,Gm,qm,Vm,un,WA,JA,XA,Yt,YA,ZA,ey,Ba,_a,eu,ty,ry,ny,Zt,jm,zm,er,Ze,pn,xa,tu,iy,ru,sy,vt,oy,ay,cy,dy,ie,ly,uy,py,gy,tr,my,hy,fy,gn,Oa,La,nu,iu,$a,rr};
|