gemi 0.4.71 → 0.4.73

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/chunk-027f8856aa132d85.js +6 -0
  2. package/dist/{chunk-d03b02d5f8128f13.js → chunk-035e233acf299392.js} +2 -2
  3. package/dist/{chunk-d7c78cd1ab7dc7ed.js → chunk-0c3a31bca25291a6.js} +1 -1
  4. package/dist/{chunk-de75d134f236f4bb.js → chunk-2c49184ec3c45a26.js} +1 -1
  5. package/dist/chunk-3e2f1f65cba86ad5.js +2 -0
  6. package/dist/{chunk-11cd81b560d496a3.js → chunk-474c8dc0ac6b3cdf.js} +1 -1
  7. package/dist/chunk-6a30174fcc338251.js +2 -0
  8. package/dist/chunk-6def55ea02e050ec.js +2 -0
  9. package/dist/chunk-722959aee5ef3fae.js +2 -0
  10. package/dist/chunk-89067bce11a12276.js +2 -0
  11. package/dist/{chunk-f25e3644c98f64a7.js → chunk-89c603058a8ca2e0.js} +1 -1
  12. package/dist/chunk-9c10a08ee4b4d468.js +9 -0
  13. package/dist/chunk-9e6c223585edf12e.js +2 -0
  14. package/dist/chunk-a2fa7b0b7cb9d696.js +2 -0
  15. package/dist/chunk-a75cb687951e66a0.js +2 -0
  16. package/dist/chunk-b240c1abcf310471.js +2 -0
  17. package/dist/chunk-b3d1c993471a0dbe.js +2 -0
  18. package/dist/{chunk-65cd4d128b79bd93.js → chunk-b9d952fe3db3df1c.js} +1 -1
  19. package/dist/{chunk-e565da7343a33b65.js → chunk-c4424c04ab2ac6d1.js} +2 -2
  20. package/dist/chunk-db704ae1cdab22a5.js +18 -0
  21. package/dist/chunk-e1c93f98afc62202.js +2 -0
  22. package/dist/chunk-e4119fe2a26e4a22.js +2 -0
  23. package/dist/chunk-e4fa4d02a212da4f.js +2 -0
  24. package/dist/client/Link.d.ts +4 -2
  25. package/dist/client/Link.d.ts.map +1 -1
  26. package/dist/client/auth/useUser.d.ts +1 -11
  27. package/dist/client/auth/useUser.d.ts.map +1 -1
  28. package/dist/client/useNavigate.d.ts +2 -2
  29. package/dist/client/useNavigate.d.ts.map +1 -1
  30. package/dist/client/useQuery.d.ts +2 -2
  31. package/dist/client/useQuery.d.ts.map +1 -1
  32. package/dist/email/index.js +1 -1
  33. package/dist/facades/FileStorage.d.ts +12 -0
  34. package/dist/facades/FileStorage.d.ts.map +1 -0
  35. package/dist/facades/index.d.ts +1 -0
  36. package/dist/facades/index.d.ts.map +1 -1
  37. package/dist/facades/index.js +1 -1
  38. package/dist/http/index.js +1 -1
  39. package/dist/kernel/Kernel.d.ts +5 -0
  40. package/dist/kernel/Kernel.d.ts.map +1 -1
  41. package/dist/kernel/context.d.ts +2 -0
  42. package/dist/kernel/context.d.ts.map +1 -1
  43. package/dist/kernel/index.js +2 -2
  44. package/dist/server/index.js +1 -1
  45. package/dist/services/file-storage/FileStorageServiceContainer.d.ts +6 -0
  46. package/dist/services/file-storage/FileStorageServiceContainer.d.ts.map +1 -0
  47. package/dist/services/file-storage/FileStorageServiceProvider.d.ts +5 -0
  48. package/dist/services/file-storage/FileStorageServiceProvider.d.ts.map +1 -0
  49. package/dist/services/file-storage/drivers/FileStorageDriver.d.ts +6 -0
  50. package/dist/services/file-storage/drivers/FileStorageDriver.d.ts.map +1 -0
  51. package/dist/services/file-storage/drivers/FileSystemDriver.d.ts +9 -0
  52. package/dist/services/file-storage/drivers/FileSystemDriver.d.ts.map +1 -0
  53. package/dist/services/file-storage/drivers/S3Driver.d.ts +10 -0
  54. package/dist/services/file-storage/drivers/S3Driver.d.ts.map +1 -0
  55. package/dist/services/file-storage/drivers/types.d.ts +19 -0
  56. package/dist/services/file-storage/drivers/types.d.ts.map +1 -0
  57. package/dist/services/index.d.ts +6 -0
  58. package/dist/services/index.d.ts.map +1 -0
  59. package/dist/services/index.js +2 -0
  60. package/dist/vite/{index-BbySvAwL.mjs → index-BfdM1qcG.mjs} +2 -2
  61. package/dist/vite/index.mjs +1 -1
  62. package/dist/vite/{typescript-CeZcXBr-.mjs → typescript-DU6uj0V1.mjs} +1 -1
  63. package/package.json +2 -2
  64. package/dist/chunk-2895a97b65e7107b.js +0 -2
  65. package/dist/chunk-2dd61d279d9f0b13.js +0 -2
  66. package/dist/chunk-448c9eceacddef90.js +0 -1
  67. package/dist/chunk-466213c5585251ad.js +0 -2
  68. package/dist/chunk-4b8da0fabb3539db.js +0 -18
  69. package/dist/chunk-4bc3b71775040cb9.js +0 -6
  70. package/dist/chunk-af7d1951242b1c6e.js +0 -2
  71. package/dist/chunk-b6a64bf9af2e91be.js +0 -9
  72. package/dist/chunk-b8176bf532f59485.js +0 -2
  73. package/dist/chunk-cca33e85bf87b3b3.js +0 -2
  74. package/dist/chunk-e344c95f8ae7a124.js +0 -2
  75. package/dist/chunk-e912bf7c7a0e988a.js +0 -2
  76. package/dist/chunk-f22ac1ec6c3f782b.js +0 -2
  77. package/dist/chunk-fe65548818651cb5.js +0 -2
  78. package/dist/storage/File.d.ts +0 -26
  79. package/dist/storage/File.d.ts.map +0 -1
  80. package/dist/storage/index.d.ts +0 -2
  81. package/dist/storage/index.d.ts.map +0 -1
  82. package/dist/storage/index.js +0 -2
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{w as T,x as C} from"../chunk-e9695f3cdafee20b.js";import{y as E} from"../chunk-7ce930fe69575c87.js";import{Ba as L} from"../chunk-11cd81b560d496a3.js";import S from"path";function g(r){return r.map((t,c)=>{if(t.isDev)return x("style",{type:"text/css","data-vite-dev-id":t.id,children:t.content},t.id,!1,void 0,this);else return x("style",{type:"text/css",children:t.content},c,!1,void 0,this)})}import{jsxDEV as x} from"react/jsx-dev-runtime";var P=E(L(),1);async function w(r){const t=new URL(r.url),c=t.searchParams.get("url"),u=Number(t.searchParams.get("w")),s=Number(t.searchParams.get("h")),i=t.searchParams.get("fit")??"cover",o=Number(t.searchParams.get("q"));if(!c)return new Response(JSON.stringify({error:"url query parameter is required"}),{headers:{"Content-Type":"application/json"},status:404});const p=`${c.startsWith("http")?"":`http://localhost:${process.env.PORT||5173}`}${c}`,e=await fetch(p);if(!e.ok)return new Response(JSON.stringify({error:"Image not found",info:p}),{headers:{"Content-Type":"application/json"},status:404});const n=Buffer.from(await e.arrayBuffer()),f=await P.default(n).resize(u>0?u:void 0,s>0?s:void 0,{fit:i}).webp({quality:o>0?o:80,force:!0}).toBuffer();return e.headers.delete("Content-Type"),e.headers.delete("Content-Length"),new Response(f,{headers:{"Content-Type":"image/webp","Content-Length":`${f.byteLength}`,...e.headers.toJSON()}})}function R(r){return`
2
+ import{w as T,x as C} from"../chunk-e9695f3cdafee20b.js";import{y as E} from"../chunk-7ce930fe69575c87.js";import{A as L} from"../chunk-474c8dc0ac6b3cdf.js";import S from"path";function g(r){return r.map((t,c)=>{if(t.isDev)return x("style",{type:"text/css","data-vite-dev-id":t.id,children:t.content},t.id,!1,void 0,this);else return x("style",{type:"text/css",children:t.content},c,!1,void 0,this)})}import{jsxDEV as x} from"react/jsx-dev-runtime";var P=E(L(),1);async function w(r){const t=new URL(r.url),c=t.searchParams.get("url"),u=Number(t.searchParams.get("w")),s=Number(t.searchParams.get("h")),i=t.searchParams.get("fit")??"cover",o=Number(t.searchParams.get("q"));if(!c)return new Response(JSON.stringify({error:"url query parameter is required"}),{headers:{"Content-Type":"application/json"},status:404});const p=`${c.startsWith("http")?"":`http://localhost:${process.env.PORT||5173}`}${c}`,e=await fetch(p);if(!e.ok)return new Response(JSON.stringify({error:"Image not found",info:p}),{headers:{"Content-Type":"application/json"},status:404});const n=Buffer.from(await e.arrayBuffer()),f=await P.default(n).resize(u>0?u:void 0,s>0?s:void 0,{fit:i}).webp({quality:o>0?o:80,force:!0}).toBuffer();return e.headers.delete("Content-Type"),e.headers.delete("Content-Length"),new Response(f,{headers:{"Content-Type":"image/webp","Content-Length":`${f.byteLength}`,...e.headers.toJSON()}})}function R(r){return`
3
3
  <!DOCTYPE html>
4
4
  <html lang="en">
5
5
  <head>
@@ -0,0 +1,6 @@
1
+ import { FileStorageServiceProvider } from "./FileStorageServiceProvider";
2
+ export declare class FileStorageServiceContainer {
3
+ service: FileStorageServiceProvider;
4
+ constructor(service: FileStorageServiceProvider);
5
+ }
6
+ //# sourceMappingURL=FileStorageServiceContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileStorageServiceContainer.d.ts","sourceRoot":"","sources":["../../../services/file-storage/FileStorageServiceContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,qBAAa,2BAA2B;IACnB,OAAO,EAAE,0BAA0B;gBAAnC,OAAO,EAAE,0BAA0B;CACvD"}
@@ -0,0 +1,5 @@
1
+ import { FileStorageDriver } from "./drivers/FileStorageDriver";
2
+ export declare class FileStorageServiceProvider {
3
+ driver: FileStorageDriver;
4
+ }
5
+ //# sourceMappingURL=FileStorageServiceProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileStorageServiceProvider.d.ts","sourceRoot":"","sources":["../../../services/file-storage/FileStorageServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,qBAAa,0BAA0B;IACrC,MAAM,EAAE,iBAAiB,CAA0B;CACpD"}
@@ -0,0 +1,6 @@
1
+ import type { IFileStorageDriver, ReadFileParams, PutFileParams } from "./types";
2
+ export declare abstract class FileStorageDriver implements IFileStorageDriver {
3
+ abstract fetch(params: ReadFileParams | string): Promise<Response>;
4
+ abstract put(params: PutFileParams | Blob): Promise<string>;
5
+ }
6
+ //# sourceMappingURL=FileStorageDriver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileStorageDriver.d.ts","sourceRoot":"","sources":["../../../../services/file-storage/drivers/FileStorageDriver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB,8BAAsB,iBAAkB,YAAW,kBAAkB;IACnE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CAC5D"}
@@ -0,0 +1,9 @@
1
+ import type { PutFileParams, ReadFileParams } from "./types";
2
+ import { FileStorageDriver } from "./FileStorageDriver";
3
+ export declare class FileSystemDriver extends FileStorageDriver {
4
+ private folderPath;
5
+ constructor(folderPath?: string);
6
+ put(params: PutFileParams | Blob): Promise<string>;
7
+ fetch(params: ReadFileParams | string): Promise<Response>;
8
+ }
9
+ //# sourceMappingURL=FileSystemDriver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileSystemDriver.d.ts","sourceRoot":"","sources":["../../../../services/file-storage/drivers/FileSystemDriver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,qBAAa,gBAAiB,SAAQ,iBAAiB;IACzC,OAAO,CAAC,UAAU;gBAAV,UAAU,GAAE,MAA0C;IAIpE,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAsBhC,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;CAyC5C"}
@@ -0,0 +1,10 @@
1
+ import type { PutFileParams, ReadFileParams } from "./types";
2
+ import { S3Client } from "@aws-sdk/client-s3";
3
+ import { FileStorageDriver } from "./FileStorageDriver";
4
+ export declare class S3Driver extends FileStorageDriver {
5
+ private client;
6
+ constructor(...config: ConstructorParameters<typeof S3Client>);
7
+ put(params: PutFileParams | Blob): Promise<string>;
8
+ fetch(params: ReadFileParams | string): Promise<Response>;
9
+ }
10
+ //# sourceMappingURL=S3Driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3Driver.d.ts","sourceRoot":"","sources":["../../../../services/file-storage/drivers/S3Driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE7D,OAAO,EAGL,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,qBAAa,QAAS,SAAQ,iBAAiB;IAC7C,OAAO,CAAC,MAAM,CAAW;gBAEb,GAAG,MAAM,EAAE,qBAAqB,CAAC,OAAO,QAAQ,CAAC;IAKvD,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAkChC,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;CAgC5C"}
@@ -0,0 +1,19 @@
1
+ export interface PutFileParams {
2
+ name: string;
3
+ bucket?: string;
4
+ body: Blob | File | Buffer;
5
+ contentType?: string;
6
+ }
7
+ export interface ReadFileParams {
8
+ name: string;
9
+ bucket?: string;
10
+ }
11
+ export interface FileMetadata {
12
+ width: number;
13
+ height: number;
14
+ }
15
+ export interface IFileStorageDriver {
16
+ fetch(input: ReadFileParams | string): Promise<Response>;
17
+ put(params: PutFileParams | Blob): Promise<string>;
18
+ }
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../services/file-storage/drivers/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzD,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACpD"}
@@ -0,0 +1,6 @@
1
+ export { FileStorageServiceProvider } from "./file-storage/FileStorageServiceProvider";
2
+ export { FileSystemDriver } from "./file-storage/drivers/FileSystemDriver";
3
+ export { S3Driver } from "./file-storage/drivers/S3Driver";
4
+ export type { FileMetadata, PutFileParams, ReadFileParams, } from "./file-storage/drivers/types";
5
+ export { FileStorageDriver } from "./file-storage/drivers/FileStorageDriver";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../services/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,YAAY,EACV,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC"}
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import"../chunk-6def55ea02e050ec.js";import{y as Q} from"../chunk-7ce930fe69575c87.js";import{C as pl,D as va,E as Oa} from"../chunk-e1c93f98afc62202.js";import{J as $a} from"../chunk-0c3a31bca25291a6.js";import{L as hw} from"../chunk-e4fa4d02a212da4f.js";import{Aa as Sg,Ba as Gg,Ca as Fg,Ea as z,Ga as nh,M as Cg,N as zg,O as X,P as Hr,Q as Jr,R as Hg,S as og,V as um,W as tm,X as Ps,Y as rg,Z as sg,_ as lg,aa as gg,ba as wg,ca as Om,da as fg,ea as Pf,fa as Nf,ga as bh,ha as Ar,ia as v,ka as ms,na as ar,oa as ih,pa as Sr,qa as xh,ra as hs,sa as Cr,ua as Ul,va as Mr,wa as Lh,xa as O,ya as oh,za as ag} from"../chunk-c4424c04ab2ac6d1.js";import{$a as Yg,Ia as Zg,Ja as Lg,Ka as Xg,La as Jg,Ma as $w,Na as n,Oa as p,Pa as Vs,Qa as Dr,Ra as Ch,Sa as Qg,Ta as Dh,Ua as eh,Va as Th,Wa as yg,Xa as Rg,Ya as Ag,Za as kg,_a as Ig,ab as Bg,bb as zh,cb as kr,db as Ir,eb as vg,fb as Eg,gb as dg,hb as Og,ib as Pg,jb as qg,kb as ir,lb as Ng,mb as Ms,nb as $g,ob as Mg,pb as Kg,qb as Wg} from"../chunk-db704ae1cdab22a5.js";import{rb as Mw} from"../chunk-b9d952fe3db3df1c.js";import{sb as c,tb as hg} from"../chunk-a75cb687951e66a0.js";import"../chunk-89067bce11a12276.js";import{vb as Ug} from"../chunk-9c10a08ee4b4d468.js";import"../chunk-2c49184ec3c45a26.js";function ww(r){return(s)=>async(l)=>{const{request:f}=l;if(X.isInstance(f)&&f.body&&r.runtime==="node"){if(r.requestHandler?.constructor?.name!=="FetchHttpHandler")f.headers={...f.headers,Expect:"100-continue"}}return s({...l,request:f})}}var aw={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:!0},ul=(r)=>({applyToStack:(s)=>{s.add(ww(r),aw)}});function Rw(){return(r,s)=>async(l)=>{const{request:f}=l;if(X.isInstance(f)){if(!(Sw in f.headers))if(typeof s?.logger?.warn==="function"&&!(s.logger instanceof Jr))s.logger.warn("Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.");else console.warn("Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.")}return r({...l})}}var Sw="content-length",Aw={step:"finalizeRequest",tags:["CHECK_CONTENT_LENGTH_HEADER"],name:"getCheckContentLengthHeaderPlugin",override:!0},tl=(r)=>({applyToStack:(s)=>{s.add(Rw(),Aw)}});var rf=(r)=>{return(s,l)=>async(f)=>{const h=await r.region(),m=r.region;let g=()=>{};if(l.__s3RegionRedirect)Object.defineProperty(r,"region",{writable:!1,value:async()=>{return l.__s3RegionRedirect}}),g=()=>Object.defineProperty(r,"region",{writable:!0,value:m});try{const w=await s(f);if(l.__s3RegionRedirect){g();const a=await r.region();if(h!==a)throw new Error("Region was not restored following S3 region redirect.")}return w}catch(w){throw g(),w}}},sf={tags:["REGION_REDIRECT","S3"],name:"regionRedirectEndpointMiddleware",override:!0,relation:"before",toMiddleware:"endpointV2Middleware"};function kw(r){return(s,l)=>async(f)=>{try{return await s(f)}catch(h){if(r.followRegionRedirects&&h?.$metadata?.httpStatusCode===301){try{const m=h.$response.headers["x-amz-bucket-region"];l.logger?.debug(`Redirecting from ${await r.region()} to ${m}`),l.__s3RegionRedirect=m}catch(m){throw new Error("Region redirect failed: "+m)}return s(f)}else throw h}}}var Iw={step:"initialize",tags:["REGION_REDIRECT","S3"],name:"regionRedirectMiddleware",override:!0},lf=(r)=>({applyToStack:(s)=>{s.add(kw(r),Iw),s.addRelativeTo(rf(r),sf)}});var Ew=(r)=>{return(s,l)=>async(f)=>{const h=await s(f),{response:m}=h;if(Hr.isInstance(m)){if(m.headers.expires){m.headers.expiresstring=m.headers.expires;try{Mr(m.headers.expires)}catch(g){l.logger?.warn(`AWS SDK Warning for ${l.clientName}::${l.commandName} response parsing (${m.headers.expires}): ${g}`),delete m.headers.expires}}}return h}},dw={tags:["S3"],name:"s3ExpiresMiddleware",override:!0,relation:"after",toMiddleware:"deserializerMiddleware"},ff=(r)=>({applyToStack:(s)=>{s.addRelativeTo(Ew(r),dw)}});class sr{constructor(r={}){this.data=r,this.lastPurgeTime=Date.now()}get(r){const s=this.data[r];if(!s)return;return s}set(r,s){return this.data[r]=s,s}delete(r){delete this.data[r]}async purgeExpired(){const r=Date.now();if(this.lastPurgeTime+sr.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS>r)return;for(let s in this.data){const l=this.data[s];if(!l.isRefreshing){const f=await l.identity;if(f.expiration){if(f.expiration.getTime()<r)delete this.data[s]}}}}}sr.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS=30000;class lr{constructor(r,s=!1,l=Date.now()){this._identity=r,this.isRefreshing=s,this.accessed=l}get identity(){return this.accessed=Date.now(),this._identity}}class fr{constructor(r,s=new sr){this.createSessionFn=r,this.cache=s}async getS3ExpressIdentity(r,s){const l=s.Bucket,{cache:f}=this,h=f.get(l);if(h)return h.identity.then((m)=>{if((m.expiration?.getTime()??0)<Date.now())return f.set(l,new lr(this.getIdentity(l))).identity;if((m.expiration?.getTime()??0)<Date.now()+fr.REFRESH_WINDOW_MS&&!h.isRefreshing)h.isRefreshing=!0,this.getIdentity(l).then((a)=>{f.set(l,new lr(Promise.resolve(a)))});return m});return f.set(l,new lr(this.getIdentity(l))).identity}async getIdentity(r){await this.cache.purgeExpired().catch((f)=>{console.warn("Error while clearing expired entries in S3ExpressIdentityCache: \n"+f)});const s=await this.createSessionFn(r);if(!s.Credentials?.AccessKeyId||!s.Credentials?.SecretAccessKey)throw new Error("s3#createSession response credential missing AccessKeyId or SecretAccessKey.");return{accessKeyId:s.Credentials.AccessKeyId,secretAccessKey:s.Credentials.SecretAccessKey,sessionToken:s.Credentials.SessionToken,expiration:s.Credentials.Expiration?new Date(s.Credentials.Expiration):void 0}}}fr.REFRESH_WINDOW_MS=60000;var Sf=Q($w(),1);var hf="Directory",mf="S3Express",gf="sigv4-s3express",Qr="X-Amz-S3session-Token",Ur=Qr.toLowerCase(),Pw="AWS_S3_DISABLE_EXPRESS_SESSION_AUTH",Nw="s3_disable_express_session_auth",Ks={environmentVariableSelector:(r)=>n(r,Pw,p.ENV),configFileSelector:(r)=>n(r,Nw,p.CONFIG),default:!1};var wf=function(r){return{accessKeyId:r.accessKeyId,secretAccessKey:r.secretAccessKey,expiration:r.expiration}},af=function(r,s){const l=setTimeout(()=>{throw new Error("SignatureV4S3Express credential override was created but not called.")},10),f=r.credentialProvider,h=()=>{return clearTimeout(l),r.credentialProvider=f,Promise.resolve(s)};r.credentialProvider=h};class yr extends Sf.SignatureV4{async signWithCredentials(r,s,l){const f=wf(s);r.headers[Ur]=s.sessionToken;const h=this;return af(h,f),h.signRequest(r,l??{})}async presignWithCredentials(r,s,l){const f=wf(s);return delete r.headers[Ur],r.headers[Qr]=s.sessionToken,r.query=r.query??{},r.query[Qr]=s.sessionToken,af(this,f),this.presign(r,l)}}var Rf=(r)=>{return(s,l)=>async(f)=>{if(l.endpointV2){const h=l.endpointV2,m=h.properties?.authSchemes?.[0]?.name===gf;if(h.properties?.backend===mf||h.properties?.bucketType===hf)l.isS3ExpressBucket=!0;if(m){const w=f.input.Bucket;if(w){const a=await r.s3ExpressIdentityProvider.getS3ExpressIdentity(await r.credentials(),{Bucket:w});if(l.s3ExpressIdentity=a,X.isInstance(f.request)&&a.sessionToken)f.request.headers[Ur]=a.sessionToken}}}return s(f)}},Af={name:"s3ExpressMiddleware",step:"build",tags:["S3","S3_EXPRESS"],override:!0},Ws=(r)=>({applyToStack:(s)=>{s.add(Rf(r),Af)}});var If=Q(Vs(),1);var Uw=Q(Mw(),1);var kf=async(r,s,l,f)=>{const h=await f.signWithCredentials(l,r,{});if(h.headers["X-Amz-Security-Token"]||h.headers["x-amz-security-token"])throw new Error("X-Amz-Security-Token must not be set for s3-express requests.");return h};var Dw=(r)=>(s)=>{throw s},ew=(r,s)=>{};var Ef=(r)=>(s,l)=>async(f)=>{if(!X.isInstance(f.request))return s(f);const m=Dr(l).selectedHttpAuthScheme;if(!m)throw new Error("No HttpAuthScheme was selected: unable to sign request");const{httpAuthOption:{signingProperties:g={}},identity:w,signer:a}=m;let P;if(l.s3ExpressIdentity)P=await kf(l.s3ExpressIdentity,g,f.request,await r.signer());else P=await a.sign(f.request,w,g);const N=await s({...f,request:P}).catch((a.errorHandler||Dw)(g));return(a.successHandler||ew)(N.response,g),N},Zs=(r)=>({applyToStack:(s)=>{s.addRelativeTo(Ef(r),If.httpSigningMiddlewareOptions)}});var df=(r,{session:s})=>{const[l,f]=s;return{...r,forcePathStyle:r.forcePathStyle??!1,useAccelerateEndpoint:r.useAccelerateEndpoint??!1,disableMultiregionAccessPoints:r.disableMultiregionAccessPoints??!1,followRegionRedirects:r.followRegionRedirects??!1,s3ExpressIdentityProvider:r.s3ExpressIdentityProvider??new fr(async(h)=>l().send(new f({Bucket:h,SessionMode:"ReadWrite"}))),bucketEndpoint:r.bucketEndpoint??!1}};var Tw={CopyObjectCommand:!0,UploadPartCopyCommand:!0,CompleteMultipartUploadCommand:!0},Cw=3000,zw=(r)=>(s,l)=>async(f)=>{const h=await s(f),{response:m}=h;if(!Hr.isInstance(m))return h;const{statusCode:g,body:w}=m;if(g<200||g>=300)return h;let a=w,P=w;if(w&&typeof w==="object"&&!(w instanceof Uint8Array))[a,P]=await Pf(w);m.body=P;const N=await Gw(a,{streamCollector:async($)=>{return Nf($,Cw)}});if(typeof a?.destroy==="function")a.destroy();const M=r.utf8Encoder(N.subarray(N.length-16));if(N.length===0&&Tw[l.commandName]){const $=new Error("S3 aborted request");throw $.name="InternalError",$}if(M&&M.endsWith("</Error>"))m.statusCode=400;return h},Gw=(r=new Uint8Array,s)=>{if(r instanceof Uint8Array)return Promise.resolve(r);return s.streamCollector(r)||Promise.resolve(new Uint8Array)},Fw={relation:"after",toMiddleware:"deserializerMiddleware",tags:["THROW_200_EXCEPTIONS","S3"],name:"throw200ExceptionsMiddleware",override:!0},Yr=(r)=>({applyToStack:(s)=>{s.addRelativeTo(zw(r),Fw)}});var Ls=(r)=>typeof r==="string"&&r.indexOf("arn:")===0&&r.split(":").length>=6;function $f(r){return(s,l)=>async(f)=>{if(r.bucketEndpoint){const h=l.endpointV2;if(h){const m=f.input.Bucket;if(typeof m==="string")try{const g=new URL(m);h.url=g}catch(g){const w=`@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${m} could not be parsed as URL.`;if(l.logger?.constructor?.name==="NoOpLogger")console.warn(w);else l.logger?.warn?.(w);throw g}}}return s(f)}}var Mf={name:"bucketEndpointMiddleware",override:!0,relation:"after",toMiddleware:"endpointV2Middleware"};function Kw({bucketEndpoint:r}){return(s)=>async(l)=>{const{input:{Bucket:f}}=l;if(!r&&typeof f==="string"&&!Ls(f)&&f.indexOf("/")>=0){const h=new Error(`Bucket name shouldn't contain '/', received '${f}'`);throw h.name="InvalidBucketName",h}return s({...l})}}var Ww={step:"initialize",tags:["VALIDATE_BUCKET_NAME"],name:"validateBucketNameMiddleware",override:!0},Uf=(r)=>({applyToStack:(s)=>{s.add(Kw(r),Ww),s.addRelativeTo($f(r),Mf)}});var dr=Q(Vs(),1);var Df=(r)=>({...r,eventStreamMarshaller:r.eventStreamSerdeProvider(r)});var xr=Q(ir(),1);var Br={CrtSignerV4:null};class Xs{constructor(r){this.sigv4Signer=new yr(r),this.signerOptions=r}async sign(r,s={}){if(s.signingRegion==="*"){if(this.signerOptions.runtime!=="node")throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");return this.getSigv4aSigner().sign(r,s)}return this.sigv4Signer.sign(r,s)}async signWithCredentials(r,s,l={}){if(l.signingRegion==="*"){if(this.signerOptions.runtime!=="node")throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");return this.getSigv4aSigner().signWithCredentials(r,s,l)}return this.sigv4Signer.signWithCredentials(r,s,l)}async presign(r,s={}){if(s.signingRegion==="*"){if(this.signerOptions.runtime!=="node")throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");return this.getSigv4aSigner().presign(r,s)}return this.sigv4Signer.presign(r,s)}async presignWithCredentials(r,s,l={}){if(l.signingRegion==="*")throw new Error("Method presignWithCredentials is not supported for [signingRegion=*].");return this.sigv4Signer.presignWithCredentials(r,s,l)}getSigv4aSigner(){if(!this.sigv4aSigner){let r=null;try{if(r=Br.CrtSignerV4,typeof r!=="function")throw new Error}catch(s){throw s.message=`${s.message}\n`+'Please check whether you have installed the "@aws-sdk/signature-v4-crt" package explicitly. \nYou must also register the package by calling [require("@aws-sdk/signature-v4-crt");] or an ESM equivalent such as [import "@aws-sdk/signature-v4-crt";]. \nFor more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt',s}this.sigv4aSigner=new r({...this.signerOptions,signingAlgorithm:1})}return this.sigv4aSigner}}var hr={["required"]:!1,["type"]:"String"},mr={["required"]:!0,default:!1,["type"]:"Boolean"},er={["required"]:!1,["type"]:"Boolean"},B={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"Accelerate"},!0]},d={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseFIPS"},!0]},E={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseDualStack"},!0]},e={["fn"]:"isSet",["argv"]:[{["ref"]:"Endpoint"}]},Ih={["fn"]:"aws.partition",["argv"]:[{["ref"]:"Region"}],["assign"]:"partitionResult"},ef={["fn"]:"stringEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[{["ref"]:"partitionResult"},"name"]},"aws-cn"]},jr={["fn"]:"isSet",["argv"]:[{["ref"]:"Bucket"}]},V={["ref"]:"Bucket"},W={["fn"]:"parseURL",["argv"]:[{["ref"]:"Endpoint"}],["assign"]:"url"},_r={["fn"]:"booleanEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[{["ref"]:"url"},"isIp"]},!0]},Eh={["ref"]:"url"},dh={["fn"]:"uriEncode",["argv"]:[V],["assign"]:"uri_encoded_bucket"},_={["backend"]:"S3Express",["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3express",["signingRegion"]:"{Region}"}]},S={},Ph={["fn"]:"aws.isVirtualHostableS3Bucket",["argv"]:[V,!1]},Js={["error"]:"S3Express bucket name is not a valid virtual hostable name.",["type"]:"error"},cr={["backend"]:"S3Express",["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4-s3express",["signingName"]:"s3express",["signingRegion"]:"{Region}"}]},Tf={["fn"]:"isSet",["argv"]:[{["ref"]:"UseS3ExpressControlEndpoint"}]},Cf={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseS3ExpressControlEndpoint"},!0]},R={["fn"]:"not",["argv"]:[e]},zf={["error"]:"Unrecognized S3Express bucket name format.",["type"]:"error"},Gf={["fn"]:"not",["argv"]:[jr]},Ff={["ref"]:"hardwareType"},Kf={["conditions"]:[R],["error"]:"Expected a endpoint to be specified but no endpoint was found",["type"]:"error"},vr={["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4a",["signingName"]:"s3-outposts",["signingRegionSet"]:["*"]},{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3-outposts",["signingRegion"]:"{Region}"}]},Hs={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"ForcePathStyle"},!1]},Vw={["ref"]:"ForcePathStyle"},D={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"Accelerate"},!1]},C={["fn"]:"stringEquals",["argv"]:[{["ref"]:"Region"},"aws-global"]},G={["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3",["signingRegion"]:"us-east-1"}]},I={["fn"]:"not",["argv"]:[C]},F={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseGlobalEndpoint"},!0]},Wf={["url"]:"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",["properties"]:{["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3",["signingRegion"]:"{Region}"}]},["headers"]:{}},T={["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3",["signingRegion"]:"{Region}"}]},K={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseGlobalEndpoint"},!1]},k={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseDualStack"},!1]},Vf={["url"]:"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}",["properties"]:T,["headers"]:{}},A={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseFIPS"},!1]},Zf={["url"]:"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}",["properties"]:T,["headers"]:{}},Lf={["url"]:"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}",["properties"]:T,["headers"]:{}},Qs={["fn"]:"booleanEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[Eh,"isIp"]},!1]},ys={["url"]:"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}",["properties"]:T,["headers"]:{}},fl={["url"]:"{url#scheme}://{Bucket}.{url#authority}{url#path}",["properties"]:T,["headers"]:{}},Xf={["endpoint"]:fl,["type"]:"endpoint"},Ys={["url"]:"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}",["properties"]:T,["headers"]:{}},Jf={["url"]:"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}",["properties"]:T,["headers"]:{}},Or={["error"]:"Invalid region: region was not a valid DNS name.",["type"]:"error"},L={["ref"]:"bucketArn"},Nh={["ref"]:"arnType"},Bs={["fn"]:"getAttr",["argv"]:[L,"service"]},hl={["ref"]:"accessPointName"},Hf={["conditions"]:[E],["error"]:"S3 Object Lambda does not support Dual-stack",["type"]:"error"},Qf={["conditions"]:[B],["error"]:"S3 Object Lambda does not support S3 Accelerate",["type"]:"error"},yf={["conditions"]:[{["fn"]:"isSet",["argv"]:[{["ref"]:"DisableAccessPoints"}]},{["fn"]:"booleanEquals",["argv"]:[{["ref"]:"DisableAccessPoints"},!0]}],["error"]:"Access points are not supported for this operation",["type"]:"error"},vs={["conditions"]:[{["fn"]:"isSet",["argv"]:[{["ref"]:"UseArnRegion"}]},{["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseArnRegion"},!1]},{["fn"]:"not",["argv"]:[{["fn"]:"stringEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[L,"region"]},"{Region}"]}]}],["error"]:"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",["type"]:"error"},$h={["fn"]:"getAttr",["argv"]:[{["ref"]:"bucketPartition"},"name"]},Mh={["fn"]:"getAttr",["argv"]:[L,"accountId"]},Os={["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3-object-lambda",["signingRegion"]:"{bucketArn#region}"}]},Yf={["error"]:"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`",["type"]:"error"},qs={["error"]:"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`",["type"]:"error"},_s={["error"]:"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)",["type"]:"error"},js={["error"]:"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`",["type"]:"error"},Bf={["error"]:"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.",["type"]:"error"},vf={["error"]:"Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided",["type"]:"error"},Tr={["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3",["signingRegion"]:"{bucketArn#region}"}]},Of={["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4a",["signingName"]:"s3-outposts",["signingRegionSet"]:["*"]},{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3-outposts",["signingRegion"]:"{bucketArn#region}"}]},qf={["fn"]:"aws.parseArn",["argv"]:[V]},_f={["url"]:"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:T,["headers"]:{}},jf={["url"]:"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:T,["headers"]:{}},cf={["url"]:"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:T,["headers"]:{}},cs={["url"]:"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",["properties"]:T,["headers"]:{}},bf={["url"]:"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:T,["headers"]:{}},xf={["ref"]:"UseObjectLambdaEndpoint"},bs={["authSchemes"]:[{["disableDoubleEncoding"]:!0,["name"]:"sigv4",["signingName"]:"s3-object-lambda",["signingRegion"]:"{Region}"}]},of={["url"]:"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",["properties"]:T,["headers"]:{}},nf={["url"]:"https://s3-fips.{Region}.{partitionResult#dnsSuffix}",["properties"]:T,["headers"]:{}},pf={["url"]:"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}",["properties"]:T,["headers"]:{}},is={["url"]:"{url#scheme}://{url#authority}{url#path}",["properties"]:T,["headers"]:{}},uf={["url"]:"https://s3.{Region}.{partitionResult#dnsSuffix}",["properties"]:T,["headers"]:{}},xs=[{["ref"]:"Region"}],Zw=[{["ref"]:"Endpoint"}],Lw=[V],os=[E],qr=[B],u=[e,W],tf=[{["fn"]:"isSet",["argv"]:[{["ref"]:"DisableS3ExpressSessionAuth"}]},{["fn"]:"booleanEquals",["argv"]:[{["ref"]:"DisableS3ExpressSessionAuth"},!0]}],rh=[_r],ns=[dh],ps=[Ph],gr=[d],sh=[{["fn"]:"substring",["argv"]:[V,6,14,!0],["assign"]:"s3expressAvailabilityZoneId"},{["fn"]:"substring",["argv"]:[V,14,16,!0],["assign"]:"s3expressAvailabilityZoneDelim"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"s3expressAvailabilityZoneDelim"},"--"]}],lh=[{["conditions"]:[d],["endpoint"]:{["url"]:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com",["properties"]:_,["headers"]:{}},["type"]:"endpoint"},{["endpoint"]:{["url"]:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com",["properties"]:_,["headers"]:{}},["type"]:"endpoint"}],fh=[{["fn"]:"substring",["argv"]:[V,6,15,!0],["assign"]:"s3expressAvailabilityZoneId"},{["fn"]:"substring",["argv"]:[V,15,17,!0],["assign"]:"s3expressAvailabilityZoneDelim"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"s3expressAvailabilityZoneDelim"},"--"]}],hh=[{["conditions"]:[d],["endpoint"]:{["url"]:"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com",["properties"]:cr,["headers"]:{}},["type"]:"endpoint"},{["endpoint"]:{["url"]:"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com",["properties"]:cr,["headers"]:{}},["type"]:"endpoint"}],Xw=[jr],mh=[{["fn"]:"isValidHostLabel",["argv"]:[{["ref"]:"outpostId"},!1]}],gh=[{["fn"]:"stringEquals",["argv"]:[{["ref"]:"regionPrefix"},"beta"]}],Jw=["*"],b=[Ih],wh=[{["fn"]:"isValidHostLabel",["argv"]:[{["ref"]:"Region"},!1]}],i=[{["fn"]:"stringEquals",["argv"]:[{["ref"]:"Region"},"us-east-1"]}],us=[{["fn"]:"stringEquals",["argv"]:[Nh,"accesspoint"]}],ah=[{["fn"]:"getAttr",["argv"]:[L,"resourceId[1]"],["assign"]:"accessPointName"},{["fn"]:"not",["argv"]:[{["fn"]:"stringEquals",["argv"]:[hl,""]}]}],Hw=[L,"resourceId[1]"],ts=[{["fn"]:"not",["argv"]:[{["fn"]:"stringEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[L,"region"]},""]}]}],Sh=[{["fn"]:"not",["argv"]:[{["fn"]:"isSet",["argv"]:[{["fn"]:"getAttr",["argv"]:[L,"resourceId[2]"]}]}]}],Qw=[L,"resourceId[2]"],rl=[{["fn"]:"aws.partition",["argv"]:[{["fn"]:"getAttr",["argv"]:[L,"region"]}],["assign"]:"bucketPartition"}],Rh=[{["fn"]:"stringEquals",["argv"]:[$h,{["fn"]:"getAttr",["argv"]:[{["ref"]:"partitionResult"},"name"]}]}],sl=[{["fn"]:"isValidHostLabel",["argv"]:[{["fn"]:"getAttr",["argv"]:[L,"region"]},!0]}],ll=[{["fn"]:"isValidHostLabel",["argv"]:[Mh,!1]}],Ah=[{["fn"]:"isValidHostLabel",["argv"]:[hl,!1]}],kh=[{["fn"]:"isValidHostLabel",["argv"]:[{["ref"]:"Region"},!0]}],yw={version:"1.0",parameters:{Bucket:hr,Region:hr,UseFIPS:mr,UseDualStack:mr,Endpoint:hr,ForcePathStyle:mr,Accelerate:mr,UseGlobalEndpoint:mr,UseObjectLambdaEndpoint:er,Key:hr,Prefix:hr,CopySource:hr,DisableAccessPoints:er,DisableMultiRegionAccessPoints:mr,UseArnRegion:er,UseS3ExpressControlEndpoint:er,DisableS3ExpressSessionAuth:er},rules:[{["conditions"]:[{["fn"]:"isSet",["argv"]:xs}],rules:[{["conditions"]:[B,d],error:"Accelerate cannot be used with FIPS",["type"]:"error"},{["conditions"]:[E,e],error:"Cannot set dual-stack in combination with a custom endpoint.",["type"]:"error"},{["conditions"]:[e,d],error:"A custom endpoint cannot be combined with FIPS",["type"]:"error"},{["conditions"]:[e,B],error:"A custom endpoint cannot be combined with S3 Accelerate",["type"]:"error"},{["conditions"]:[d,Ih,ef],error:"Partition does not support FIPS",["type"]:"error"},{["conditions"]:[jr,{["fn"]:"substring",["argv"]:[V,0,6,!0],["assign"]:"bucketSuffix"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"bucketSuffix"},"--x-s3"]}],rules:[{["conditions"]:os,error:"S3Express does not support Dual-stack.",["type"]:"error"},{["conditions"]:qr,error:"S3Express does not support S3 Accelerate.",["type"]:"error"},{["conditions"]:u,rules:[{["conditions"]:tf,rules:[{["conditions"]:rh,rules:[{["conditions"]:ns,rules:[{endpoint:{["url"]:"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}",["properties"]:_,["headers"]:S},["type"]:"endpoint"}],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:ps,rules:[{endpoint:{["url"]:"{url#scheme}://{Bucket}.{url#authority}{url#path}",["properties"]:_,["headers"]:S},["type"]:"endpoint"}],["type"]:"tree"},Js],["type"]:"tree"},{["conditions"]:rh,rules:[{["conditions"]:ns,rules:[{endpoint:{["url"]:"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}",["properties"]:cr,["headers"]:S},["type"]:"endpoint"}],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:ps,rules:[{endpoint:{["url"]:"{url#scheme}://{Bucket}.{url#authority}{url#path}",["properties"]:cr,["headers"]:S},["type"]:"endpoint"}],["type"]:"tree"},Js],["type"]:"tree"},{["conditions"]:[Tf,Cf],rules:[{["conditions"]:[dh,R],rules:[{["conditions"]:gr,endpoint:{["url"]:"https://s3express-control-fips.{Region}.amazonaws.com/{uri_encoded_bucket}",["properties"]:_,["headers"]:S},["type"]:"endpoint"},{endpoint:{["url"]:"https://s3express-control.{Region}.amazonaws.com/{uri_encoded_bucket}",["properties"]:_,["headers"]:S},["type"]:"endpoint"}],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:ps,rules:[{["conditions"]:tf,rules:[{["conditions"]:sh,rules:lh,["type"]:"tree"},{["conditions"]:fh,rules:lh,["type"]:"tree"},zf],["type"]:"tree"},{["conditions"]:sh,rules:hh,["type"]:"tree"},{["conditions"]:fh,rules:hh,["type"]:"tree"},zf],["type"]:"tree"},Js],["type"]:"tree"},{["conditions"]:[Gf,Tf,Cf],rules:[{["conditions"]:u,endpoint:{["url"]:"{url#scheme}://{url#authority}{url#path}",["properties"]:_,["headers"]:S},["type"]:"endpoint"},{["conditions"]:gr,endpoint:{["url"]:"https://s3express-control-fips.{Region}.amazonaws.com",["properties"]:_,["headers"]:S},["type"]:"endpoint"},{endpoint:{["url"]:"https://s3express-control.{Region}.amazonaws.com",["properties"]:_,["headers"]:S},["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[jr,{["fn"]:"substring",["argv"]:[V,49,50,!0],["assign"]:"hardwareType"},{["fn"]:"substring",["argv"]:[V,8,12,!0],["assign"]:"regionPrefix"},{["fn"]:"substring",["argv"]:[V,0,7,!0],["assign"]:"bucketAliasSuffix"},{["fn"]:"substring",["argv"]:[V,32,49,!0],["assign"]:"outpostId"},{["fn"]:"aws.partition",["argv"]:xs,["assign"]:"regionPartition"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"bucketAliasSuffix"},"--op-s3"]}],rules:[{["conditions"]:mh,rules:[{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[Ff,"e"]}],rules:[{["conditions"]:gh,rules:[Kf,{["conditions"]:u,endpoint:{["url"]:"https://{Bucket}.ec2.{url#authority}",["properties"]:vr,["headers"]:S},["type"]:"endpoint"}],["type"]:"tree"},{endpoint:{["url"]:"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}",["properties"]:vr,["headers"]:S},["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[Ff,"o"]}],rules:[{["conditions"]:gh,rules:[Kf,{["conditions"]:u,endpoint:{["url"]:"https://{Bucket}.op-{outpostId}.{url#authority}",["properties"]:vr,["headers"]:S},["type"]:"endpoint"}],["type"]:"tree"},{endpoint:{["url"]:"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}",["properties"]:vr,["headers"]:S},["type"]:"endpoint"}],["type"]:"tree"},{error:"Unrecognized hardware type: \"Expected hardware type o or e but got {hardwareType}\"",["type"]:"error"}],["type"]:"tree"},{error:"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.",["type"]:"error"}],["type"]:"tree"},{["conditions"]:Xw,rules:[{["conditions"]:[e,{["fn"]:"not",["argv"]:[{["fn"]:"isSet",["argv"]:[{["fn"]:"parseURL",["argv"]:Zw}]}]}],error:"Custom endpoint `{Endpoint}` was not a valid URI",["type"]:"error"},{["conditions"]:[Hs,Ph],rules:[{["conditions"]:b,rules:[{["conditions"]:wh,rules:[{["conditions"]:[B,ef],error:"S3 Accelerate cannot be used in this region",["type"]:"error"},{["conditions"]:[E,d,D,R,C],endpoint:{["url"]:"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[E,d,D,R,I,F],rules:[{endpoint:Wf,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[E,d,D,R,I,K],endpoint:Wf,["type"]:"endpoint"},{["conditions"]:[k,d,D,R,C],endpoint:{["url"]:"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[k,d,D,R,I,F],rules:[{endpoint:Vf,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[k,d,D,R,I,K],endpoint:Vf,["type"]:"endpoint"},{["conditions"]:[E,A,B,R,C],endpoint:{["url"]:"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[E,A,B,R,I,F],rules:[{endpoint:Zf,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[E,A,B,R,I,K],endpoint:Zf,["type"]:"endpoint"},{["conditions"]:[E,A,D,R,C],endpoint:{["url"]:"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[E,A,D,R,I,F],rules:[{endpoint:Lf,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[E,A,D,R,I,K],endpoint:Lf,["type"]:"endpoint"},{["conditions"]:[k,A,D,e,W,_r,C],endpoint:{["url"]:"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[k,A,D,e,W,Qs,C],endpoint:{["url"]:"{url#scheme}://{Bucket}.{url#authority}{url#path}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[k,A,D,e,W,_r,I,F],rules:[{["conditions"]:i,endpoint:ys,["type"]:"endpoint"},{endpoint:ys,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[k,A,D,e,W,Qs,I,F],rules:[{["conditions"]:i,endpoint:fl,["type"]:"endpoint"},Xf],["type"]:"tree"},{["conditions"]:[k,A,D,e,W,_r,I,K],endpoint:ys,["type"]:"endpoint"},{["conditions"]:[k,A,D,e,W,Qs,I,K],endpoint:fl,["type"]:"endpoint"},{["conditions"]:[k,A,B,R,C],endpoint:{["url"]:"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[k,A,B,R,I,F],rules:[{["conditions"]:i,endpoint:Ys,["type"]:"endpoint"},{endpoint:Ys,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[k,A,B,R,I,K],endpoint:Ys,["type"]:"endpoint"},{["conditions"]:[k,A,D,R,C],endpoint:{["url"]:"https://{Bucket}.s3.{partitionResult#dnsSuffix}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[k,A,D,R,I,F],rules:[{["conditions"]:i,endpoint:{["url"]:"https://{Bucket}.s3.{partitionResult#dnsSuffix}",["properties"]:T,["headers"]:S},["type"]:"endpoint"},{endpoint:Jf,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[k,A,D,R,I,K],endpoint:Jf,["type"]:"endpoint"}],["type"]:"tree"},Or],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:[e,W,{["fn"]:"stringEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[Eh,"scheme"]},"http"]},{["fn"]:"aws.isVirtualHostableS3Bucket",["argv"]:[V,!0]},Hs,A,k,D],rules:[{["conditions"]:b,rules:[{["conditions"]:wh,rules:[Xf],["type"]:"tree"},Or],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:[Hs,{["fn"]:"aws.parseArn",["argv"]:Lw,["assign"]:"bucketArn"}],rules:[{["conditions"]:[{["fn"]:"getAttr",["argv"]:[L,"resourceId[0]"],["assign"]:"arnType"},{["fn"]:"not",["argv"]:[{["fn"]:"stringEquals",["argv"]:[Nh,""]}]}],rules:[{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[Bs,"s3-object-lambda"]}],rules:[{["conditions"]:us,rules:[{["conditions"]:ah,rules:[Hf,Qf,{["conditions"]:ts,rules:[yf,{["conditions"]:Sh,rules:[vs,{["conditions"]:rl,rules:[{["conditions"]:b,rules:[{["conditions"]:Rh,rules:[{["conditions"]:sl,rules:[{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[Mh,""]}],error:"Invalid ARN: Missing account id",["type"]:"error"},{["conditions"]:ll,rules:[{["conditions"]:Ah,rules:[{["conditions"]:u,endpoint:{["url"]:"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}",["properties"]:Os,["headers"]:S},["type"]:"endpoint"},{["conditions"]:gr,endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",["properties"]:Os,["headers"]:S},["type"]:"endpoint"},{endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}",["properties"]:Os,["headers"]:S},["type"]:"endpoint"}],["type"]:"tree"},Yf],["type"]:"tree"},qs],["type"]:"tree"},_s],["type"]:"tree"},js],["type"]:"tree"}],["type"]:"tree"}],["type"]:"tree"},Bf],["type"]:"tree"},{error:"Invalid ARN: bucket ARN is missing a region",["type"]:"error"}],["type"]:"tree"},vf],["type"]:"tree"},{error:"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`",["type"]:"error"}],["type"]:"tree"},{["conditions"]:us,rules:[{["conditions"]:ah,rules:[{["conditions"]:ts,rules:[{["conditions"]:us,rules:[{["conditions"]:ts,rules:[yf,{["conditions"]:Sh,rules:[vs,{["conditions"]:rl,rules:[{["conditions"]:b,rules:[{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[$h,"{partitionResult#name}"]}],rules:[{["conditions"]:sl,rules:[{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[Bs,"s3"]}],rules:[{["conditions"]:ll,rules:[{["conditions"]:Ah,rules:[{["conditions"]:qr,error:"Access Points do not support S3 Accelerate",["type"]:"error"},{["conditions"]:[d,E],endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",["properties"]:Tr,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[d,k],endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",["properties"]:Tr,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[A,E],endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",["properties"]:Tr,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[A,k,e,W],endpoint:{["url"]:"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}",["properties"]:Tr,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[A,k],endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}",["properties"]:Tr,["headers"]:S},["type"]:"endpoint"}],["type"]:"tree"},Yf],["type"]:"tree"},qs],["type"]:"tree"},{error:"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}",["type"]:"error"}],["type"]:"tree"},_s],["type"]:"tree"},js],["type"]:"tree"}],["type"]:"tree"}],["type"]:"tree"},Bf],["type"]:"tree"}],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:[{["fn"]:"isValidHostLabel",["argv"]:[hl,!0]}],rules:[{["conditions"]:os,error:"S3 MRAP does not support dual-stack",["type"]:"error"},{["conditions"]:gr,error:"S3 MRAP does not support FIPS",["type"]:"error"},{["conditions"]:qr,error:"S3 MRAP does not support S3 Accelerate",["type"]:"error"},{["conditions"]:[{["fn"]:"booleanEquals",["argv"]:[{["ref"]:"DisableMultiRegionAccessPoints"},!0]}],error:"Invalid configuration: Multi-Region Access Point ARNs are disabled.",["type"]:"error"},{["conditions"]:[{["fn"]:"aws.partition",["argv"]:xs,["assign"]:"mrapPartition"}],rules:[{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[{["ref"]:"mrapPartition"},"name"]},{["fn"]:"getAttr",["argv"]:[L,"partition"]}]}],rules:[{endpoint:{["url"]:"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}",["properties"]:{["authSchemes"]:[{["disableDoubleEncoding"]:!0,name:"sigv4a",["signingName"]:"s3",["signingRegionSet"]:Jw}]},["headers"]:S},["type"]:"endpoint"}],["type"]:"tree"},{error:"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`",["type"]:"error"}],["type"]:"tree"}],["type"]:"tree"},{error:"Invalid Access Point Name",["type"]:"error"}],["type"]:"tree"},vf],["type"]:"tree"},{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[Bs,"s3-outposts"]}],rules:[{["conditions"]:os,error:"S3 Outposts does not support Dual-stack",["type"]:"error"},{["conditions"]:gr,error:"S3 Outposts does not support FIPS",["type"]:"error"},{["conditions"]:qr,error:"S3 Outposts does not support S3 Accelerate",["type"]:"error"},{["conditions"]:[{["fn"]:"isSet",["argv"]:[{["fn"]:"getAttr",["argv"]:[L,"resourceId[4]"]}]}],error:"Invalid Arn: Outpost Access Point ARN contains sub resources",["type"]:"error"},{["conditions"]:[{["fn"]:"getAttr",["argv"]:Hw,["assign"]:"outpostId"}],rules:[{["conditions"]:mh,rules:[vs,{["conditions"]:rl,rules:[{["conditions"]:b,rules:[{["conditions"]:Rh,rules:[{["conditions"]:sl,rules:[{["conditions"]:ll,rules:[{["conditions"]:[{["fn"]:"getAttr",["argv"]:Qw,["assign"]:"outpostType"}],rules:[{["conditions"]:[{["fn"]:"getAttr",["argv"]:[L,"resourceId[3]"],["assign"]:"accessPointName"}],rules:[{["conditions"]:[{["fn"]:"stringEquals",["argv"]:[{["ref"]:"outpostType"},"accesspoint"]}],rules:[{["conditions"]:u,endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}",["properties"]:Of,["headers"]:S},["type"]:"endpoint"},{endpoint:{["url"]:"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}",["properties"]:Of,["headers"]:S},["type"]:"endpoint"}],["type"]:"tree"},{error:"Expected an outpost type `accesspoint`, found {outpostType}",["type"]:"error"}],["type"]:"tree"},{error:"Invalid ARN: expected an access point name",["type"]:"error"}],["type"]:"tree"},{error:"Invalid ARN: Expected a 4-component resource",["type"]:"error"}],["type"]:"tree"},qs],["type"]:"tree"},_s],["type"]:"tree"},js],["type"]:"tree"}],["type"]:"tree"}],["type"]:"tree"},{error:"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`",["type"]:"error"}],["type"]:"tree"},{error:"Invalid ARN: The Outpost Id was not set",["type"]:"error"}],["type"]:"tree"},{error:"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})",["type"]:"error"}],["type"]:"tree"},{error:"Invalid ARN: No ARN type specified",["type"]:"error"}],["type"]:"tree"},{["conditions"]:[{["fn"]:"substring",["argv"]:[V,0,4,!1],["assign"]:"arnPrefix"},{["fn"]:"stringEquals",["argv"]:[{["ref"]:"arnPrefix"},"arn:"]},{["fn"]:"not",["argv"]:[{["fn"]:"isSet",["argv"]:[qf]}]}],error:"Invalid ARN: `{Bucket}` was not a valid ARN",["type"]:"error"},{["conditions"]:[{["fn"]:"booleanEquals",["argv"]:[Vw,!0]},qf],error:"Path-style addressing cannot be used with ARN buckets",["type"]:"error"},{["conditions"]:ns,rules:[{["conditions"]:b,rules:[{["conditions"]:[D],rules:[{["conditions"]:[E,R,d,C],endpoint:{["url"]:"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[E,R,d,I,F],rules:[{endpoint:_f,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[E,R,d,I,K],endpoint:_f,["type"]:"endpoint"},{["conditions"]:[k,R,d,C],endpoint:{["url"]:"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[k,R,d,I,F],rules:[{endpoint:jf,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[k,R,d,I,K],endpoint:jf,["type"]:"endpoint"},{["conditions"]:[E,R,A,C],endpoint:{["url"]:"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[E,R,A,I,F],rules:[{endpoint:cf,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[E,R,A,I,K],endpoint:cf,["type"]:"endpoint"},{["conditions"]:[k,e,W,A,C],endpoint:{["url"]:"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[k,e,W,A,I,F],rules:[{["conditions"]:i,endpoint:cs,["type"]:"endpoint"},{endpoint:cs,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[k,e,W,A,I,K],endpoint:cs,["type"]:"endpoint"},{["conditions"]:[k,R,A,C],endpoint:{["url"]:"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[k,R,A,I,F],rules:[{["conditions"]:i,endpoint:{["url"]:"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",["properties"]:T,["headers"]:S},["type"]:"endpoint"},{endpoint:bf,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[k,R,A,I,K],endpoint:bf,["type"]:"endpoint"}],["type"]:"tree"},{error:"Path-style addressing cannot be used with S3 Accelerate",["type"]:"error"}],["type"]:"tree"}],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:[{["fn"]:"isSet",["argv"]:[xf]},{["fn"]:"booleanEquals",["argv"]:[xf,!0]}],rules:[{["conditions"]:b,rules:[{["conditions"]:kh,rules:[Hf,Qf,{["conditions"]:u,endpoint:{["url"]:"{url#scheme}://{url#authority}{url#path}",["properties"]:bs,["headers"]:S},["type"]:"endpoint"},{["conditions"]:gr,endpoint:{["url"]:"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}",["properties"]:bs,["headers"]:S},["type"]:"endpoint"},{endpoint:{["url"]:"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}",["properties"]:bs,["headers"]:S},["type"]:"endpoint"}],["type"]:"tree"},Or],["type"]:"tree"}],["type"]:"tree"},{["conditions"]:[Gf],rules:[{["conditions"]:b,rules:[{["conditions"]:kh,rules:[{["conditions"]:[d,E,R,C],endpoint:{["url"]:"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[d,E,R,I,F],rules:[{endpoint:of,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[d,E,R,I,K],endpoint:of,["type"]:"endpoint"},{["conditions"]:[d,k,R,C],endpoint:{["url"]:"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[d,k,R,I,F],rules:[{endpoint:nf,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[d,k,R,I,K],endpoint:nf,["type"]:"endpoint"},{["conditions"]:[A,E,R,C],endpoint:{["url"]:"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[A,E,R,I,F],rules:[{endpoint:pf,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[A,E,R,I,K],endpoint:pf,["type"]:"endpoint"},{["conditions"]:[A,k,e,W,C],endpoint:{["url"]:"{url#scheme}://{url#authority}{url#path}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[A,k,e,W,I,F],rules:[{["conditions"]:i,endpoint:is,["type"]:"endpoint"},{endpoint:is,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[A,k,e,W,I,K],endpoint:is,["type"]:"endpoint"},{["conditions"]:[A,k,R,C],endpoint:{["url"]:"https://s3.{partitionResult#dnsSuffix}",["properties"]:G,["headers"]:S},["type"]:"endpoint"},{["conditions"]:[A,k,R,I,F],rules:[{["conditions"]:i,endpoint:{["url"]:"https://s3.{partitionResult#dnsSuffix}",["properties"]:T,["headers"]:S},["type"]:"endpoint"},{endpoint:uf,["type"]:"endpoint"}],["type"]:"tree"},{["conditions"]:[A,k,R,I,K],endpoint:uf,["type"]:"endpoint"}],["type"]:"tree"},Or],["type"]:"tree"}],["type"]:"tree"}],["type"]:"tree"},{error:"A region must be set when sending requests to S3.",["type"]:"error"}]},Uh=yw;var br=(r,s={})=>{return eh(Uh,{endpointParams:r,logger:s.logger})};Dh.aws=Th;var Fh=function(r){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"s3",region:r.region},propertiesExtractor:(s,l)=>({signingProperties:{config:s,context:l}})}},Kh=function(r){return{schemeId:"aws.auth#sigv4a",signingProperties:{name:"s3",region:r.region},propertiesExtractor:(s,l)=>({signingProperties:{config:s,context:l}})}},Yw=(r)=>async(s,l,f)=>{if(!f)throw new Error("Could not find \`input\` for \`defaultEndpointRuleSetHttpAuthSchemeParametersProvider\`");const h=await r(s,l,f),m=Dr(l)?.commandInstance?.constructor?.getEndpointParameterInstructions;if(!m)throw new Error(`getEndpointParameterInstructions() is not defined on \`${l.commandName}\``);const g=await zh(f,{getEndpointParameterInstructions:m},s);return Object.assign(h,g)},Bw=async(r,s,l)=>{return{operation:Dr(s).operation,region:await Ch(r.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()}},Gh=Yw(Bw),vw=(r,s,l)=>{return(h)=>{const g=r(h).properties?.authSchemes;if(!g)return s(h);const w=[];for(let a of g){const{name:P,properties:N={},...M}=a,$=P.toLowerCase();if(P!==$)console.warn(`HttpAuthScheme has been normalized with lowercasing: \`${P}\` to \`${$}\``);let J;if($==="sigv4a"){J="aws.auth#sigv4a";const Xr=g.find((q)=>{const $r=q.name.toLowerCase();return $r!=="sigv4a"&&$r.startsWith("sigv4")});if(!Br.CrtSignerV4&&Xr)continue}else if($.startsWith("sigv4"))J="aws.auth#sigv4";else throw new Error(`Unknown HttpAuthScheme found in \`@smithy.rules#endpointRuleSet\`: \`${$}\``);const H=l[J];if(!H)throw new Error(`Could not find HttpAuthOption create function for \`${J}\``);const Y=H(h);Y.schemeId=J,Y.signingProperties={...Y.signingProperties||{},...M,...N},w.push(Y)}return w}},Ow=(r)=>{const s=[];switch(r.operation){default:s.push(Fh(r)),s.push(Kh(r))}return s},Wh=vw(br,Ow,{"aws.auth#sigv4":Fh,"aws.auth#sigv4a":Kh}),Vh=(r)=>{const s=xr.resolveAwsSdkSigV4Config(r);return{...xr.resolveAwsSdkSigV4AConfig(s)}};var Zh=(r)=>{return{...r,useFipsEndpoint:r.useFipsEndpoint??!1,useDualstackEndpoint:r.useDualstackEndpoint??!1,forcePathStyle:r.forcePathStyle??!1,useAccelerateEndpoint:r.useAccelerateEndpoint??!1,useGlobalEndpoint:r.useGlobalEndpoint??!1,disableMultiregionAccessPoints:r.disableMultiregionAccessPoints??!1,defaultSigningName:"s3"}},wr={ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},DisableS3ExpressSessionAuth:{type:"clientContextParams",name:"disableS3ExpressSessionAuth"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}};class Z extends Lh{constructor(r){super(r);Object.setPrototypeOf(this,Z.prototype)}}class or extends Z{constructor(r){super({name:"NoSuchUpload",$fault:"client",...r});this.name="NoSuchUpload",this.$fault="client",Object.setPrototypeOf(this,or.prototype)}}class nr extends Z{constructor(r){super({name:"ObjectNotInActiveTierError",$fault:"client",...r});this.name="ObjectNotInActiveTierError",this.$fault="client",Object.setPrototypeOf(this,nr.prototype)}}class pr extends Z{constructor(r){super({name:"BucketAlreadyExists",$fault:"client",...r});this.name="BucketAlreadyExists",this.$fault="client",Object.setPrototypeOf(this,pr.prototype)}}class ur extends Z{constructor(r){super({name:"BucketAlreadyOwnedByYou",$fault:"client",...r});this.name="BucketAlreadyOwnedByYou",this.$fault="client",Object.setPrototypeOf(this,ur.prototype)}}class tr extends Z{constructor(r){super({name:"NoSuchBucket",$fault:"client",...r});this.name="NoSuchBucket",this.$fault="client",Object.setPrototypeOf(this,tr.prototype)}}var ml;(function(r){r.visit=(s,l)=>{if(s.Prefix!==void 0)return l.Prefix(s.Prefix);if(s.Tag!==void 0)return l.Tag(s.Tag);if(s.And!==void 0)return l.And(s.And);return l._(s.$unknown[0],s.$unknown[1])}})(ml||(ml={}));var gl;(function(r){r.visit=(s,l)=>{if(s.Prefix!==void 0)return l.Prefix(s.Prefix);if(s.Tag!==void 0)return l.Tag(s.Tag);if(s.ObjectSizeGreaterThan!==void 0)return l.ObjectSizeGreaterThan(s.ObjectSizeGreaterThan);if(s.ObjectSizeLessThan!==void 0)return l.ObjectSizeLessThan(s.ObjectSizeLessThan);if(s.And!==void 0)return l.And(s.And);return l._(s.$unknown[0],s.$unknown[1])}})(gl||(gl={}));var wl;(function(r){r.visit=(s,l)=>{if(s.Prefix!==void 0)return l.Prefix(s.Prefix);if(s.Tag!==void 0)return l.Tag(s.Tag);if(s.AccessPointArn!==void 0)return l.AccessPointArn(s.AccessPointArn);if(s.And!==void 0)return l.And(s.And);return l._(s.$unknown[0],s.$unknown[1])}})(wl||(wl={}));var al;(function(r){r.visit=(s,l)=>{if(s.Prefix!==void 0)return l.Prefix(s.Prefix);if(s.Tag!==void 0)return l.Tag(s.Tag);if(s.And!==void 0)return l.And(s.And);return l._(s.$unknown[0],s.$unknown[1])}})(al||(al={}));class rs extends Z{constructor(r){super({name:"InvalidObjectState",$fault:"client",...r});this.name="InvalidObjectState",this.$fault="client",Object.setPrototypeOf(this,rs.prototype),this.StorageClass=r.StorageClass,this.AccessTier=r.AccessTier}}class ss extends Z{constructor(r){super({name:"NoSuchKey",$fault:"client",...r});this.name="NoSuchKey",this.$fault="client",Object.setPrototypeOf(this,ss.prototype)}}class ls extends Z{constructor(r){super({name:"NotFound",$fault:"client",...r});this.name="NotFound",this.$fault="client",Object.setPrototypeOf(this,ls.prototype)}}var qw=(r)=>({...r,...r.SecretAccessKey&&{SecretAccessKey:v},...r.SessionToken&&{SessionToken:v}}),Xh=(r)=>({...r,...r.Credentials&&{Credentials:qw(r.Credentials)}});var Jh=(r)=>({...r,...r.SSEKMSKeyId&&{SSEKMSKeyId:v}}),Hh=(r)=>({...r,...r.SSECustomerKey&&{SSECustomerKey:v}});var Rr=Q(ir(),1);var ws=Q(Vs(),1);class fs extends Z{constructor(r){super({name:"ObjectAlreadyInActiveTierError",$fault:"client",...r});this.name="ObjectAlreadyInActiveTierError",this.$fault="client",Object.setPrototypeOf(this,fs.prototype)}}var Qh;(function(r){r.visit=(s,l)=>{if(s.Records!==void 0)return l.Records(s.Records);if(s.Stats!==void 0)return l.Stats(s.Stats);if(s.Progress!==void 0)return l.Progress(s.Progress);if(s.Cont!==void 0)return l.Cont(s.Cont);if(s.End!==void 0)return l.End(s.End);return l._(s.$unknown[0],s.$unknown[1])}})(Qh||(Qh={}));var yh=(r)=>({...r,...r.SSEKMSKeyId&&{SSEKMSKeyId:v},...r.SSEKMSEncryptionContext&&{SSEKMSEncryptionContext:v}}),Yh=(r)=>({...r,...r.SSECustomerKey&&{SSECustomerKey:v},...r.SSEKMSKeyId&&{SSEKMSKeyId:v},...r.SSEKMSEncryptionContext&&{SSEKMSEncryptionContext:v}});var ph=async(r,s)=>{const l=ws.requestBuilder(r,s),f=z({},j,{[p3]:r[K3]});l.bp("/"),l.p("Bucket",()=>r.Bucket,"{Bucket}",!1);const h=z({[i3]:[,""]});let m;return l.m("GET").h(f).q(h).b(m),l.build()};var uh=async(r,s)=>{const l=ws.requestBuilder(r,s),f=z({},j,{[H3]:r[I3],[Q3]:[()=>j(r[Bh]),()=>Cr(r[Bh]).toString()],[y3]:r[E3],[Y3]:[()=>j(r[vh]),()=>Cr(r[vh]).toString()],[v3]:r[M3],[Rs]:r[as],[Zm]:r[Em],[As]:r[Ss],[Km]:r[Im],[Cm]:r[am],[n3]:r[h3]});l.bp("/{Key+}"),l.p("Bucket",()=>r.Bucket,"{Bucket}",!1),l.p("Key",()=>r.Key,"{Key+}",!0);const h=z({[Jm]:[,"GetObject"],[O3]:[,r[U3]],[q3]:[,r[D3]],[_3]:[,r[e3]],[j3]:[,r[T3]],[c3]:[,r[C3]],[b3]:[()=>r.ResponseExpires!==void 0,()=>Cr(r[z3]).toString()],[x3]:[,r[Kl]],[B3]:[()=>r.PartNumber!==void 0,()=>r[$3].toString()]});let m;return l.m("GET").h(f).q(h).b(m),l.build()};var th=async(r,s)=>{const l=ws.requestBuilder(r,s),f=z({},j,{[Dm]:r[wm]||"application/octet-stream",[o3]:r[s3],[Nm]:r[fm],[$m]:r[hm],[Mm]:r[mm],[Um]:r[gm],[Nl]:[()=>j(r[El]),()=>r[El].toString()],[L3]:r[m3],[ha]:r[f3],[Wl]:r[el],[Vl]:r[Tl],[Zl]:r[Cl],[Ll]:r[zl],[$l]:[()=>j(r[dl]),()=>Cr(r[dl]).toString()],[u3]:r[S3],[t3]:r[R3],[ra]:r[A3],[sa]:r[k3],[Xl]:r[Gl],[Wm]:r[Gr],[Xm]:r[Pm],[Rs]:r[as],[Zm]:r[Em],[As]:r[Ss],[Jl]:r[Fl],[Vm]:r[dm],[Fr]:[()=>j(r[gs]),()=>r[gs].toString()],[Km]:r[Im],[ma]:r[W3],[Gm]:r[Am],[Ml]:[()=>j(r[Pl]),()=>nh(r[Pl]).toString()],[zm]:r[Rm],[Cm]:r[am],...r.Metadata!==void 0&&Object.keys(r.Metadata).reduce((w,a)=>{return w[`x-amz-meta-${a.toLowerCase()}`]=r.Metadata[a],w},{})});l.bp("/{Key+}"),l.p("Bucket",()=>r.Bucket,"{Bucket}",!1),l.p("Key",()=>r.Key,"{Key+}",!0);const h=z({[Jm]:[,"PutObject"]});let m,g;if(r.Body!==void 0)g=r.Body,m=g;return l.m("PUT").h(f).q(h).b(m),l.build()};var rm=async(r,s)=>{if(r.statusCode!==200&&r.statusCode>=300)return Dl(r,s);const l=z({$metadata:y(r)}),f=ar(ih(await Rr.parseXmlBody(r.body,s)),"body");if(f[Al]!=null)l[Al]=r3(f[Al],s);return l};var sm=async(r,s)=>{if(r.statusCode!==200&&r.statusCode>=300)return Dl(r,s);const l=z({$metadata:y(r),[w3]:[()=>r.headers[qh]!==void 0,()=>ms(r.headers[qh])],[l3]:[,r.headers[Z3]],[zr]:[,r.headers[Tm]],[F3]:[,r.headers[la]],[d3]:[()=>r.headers[Oh]!==void 0,()=>ar(Mr(r.headers[Oh]))],[El]:[()=>r.headers[Nl]!==void 0,()=>xh(r.headers[Nl])],[Sm]:[,r.headers[em]],[el]:[,r.headers[Wl]],[Tl]:[,r.headers[Vl]],[Cl]:[,r.headers[Zl]],[zl]:[,r.headers[Ll]],[P3]:[()=>r.headers[_h]!==void 0,()=>hs(r.headers[_h])],[Kl]:[,r.headers[Lm]],[fm]:[,r.headers[Nm]],[hm]:[,r.headers[$m]],[mm]:[,r.headers[Mm]],[gm]:[,r.headers[Um]],[g3]:[,r.headers[X3]],[wm]:[,r.headers[Dm]],[dl]:[()=>r.headers[$l]!==void 0,()=>ar(Mr(r.headers[$l]))],[a3]:[,r.headers[J3]],[Pm]:[,r.headers[Xm]],[Gl]:[,r.headers[Xl]],[as]:[,r.headers[Rs]],[Ss]:[,r.headers[As]],[Fl]:[,r.headers[Jl]],[gs]:[()=>r.headers[Fr]!==void 0,()=>ms(r.headers[Fr])],[Gr]:[,r.headers[Wm]],[km]:[,r.headers[Fm]],[G3]:[,r.headers[fa]],[N3]:[()=>r.headers[jh]!==void 0,()=>hs(r.headers[jh])],[V3]:[()=>r.headers[ch]!==void 0,()=>hs(r.headers[ch])],[Am]:[,r.headers[Gm]],[Pl]:[()=>r.headers[Ml]!==void 0,()=>ar(Ul(r.headers[Ml]))],[Rm]:[,r.headers[zm]],Metadata:[,Object.keys(r.headers).filter((h)=>h.startsWith("x-amz-meta-")).reduce((h,m)=>{return h[m.substring(11)]=r.headers[m],h},{})]}),f=r.body;return s.sdkStreamMixin(f),l.Body=f,l};var lm=async(r,s)=>{if(r.statusCode!==200&&r.statusCode>=300)return Dl(r,s);const l=z({$metadata:y(r),[zr]:[,r.headers[Tm]],[Sm]:[,r.headers[em]],[el]:[,r.headers[Wl]],[Tl]:[,r.headers[Vl]],[Cl]:[,r.headers[Zl]],[zl]:[,r.headers[Ll]],[Gl]:[,r.headers[Xl]],[Kl]:[,r.headers[Lm]],[as]:[,r.headers[Rs]],[Ss]:[,r.headers[As]],[Fl]:[,r.headers[Jl]],[dm]:[,r.headers[Vm]],[gs]:[()=>r.headers[Fr]!==void 0,()=>ms(r.headers[Fr])],[km]:[,r.headers[Fm]]});return await bh(r.body,s),l};var Dl=async(r,s)=>{const l={...r,body:await Rr.parseXmlErrorBody(r.body,s)},f=Rr.loadRestXmlErrorCode(r,l.body);switch(f){case"NoSuchUpload":case"com.amazonaws.s3#NoSuchUpload":throw await nw(l,s);case"ObjectNotInActiveTierError":case"com.amazonaws.s3#ObjectNotInActiveTierError":throw await tw(l,s);case"BucketAlreadyExists":case"com.amazonaws.s3#BucketAlreadyExists":throw await cw(l,s);case"BucketAlreadyOwnedByYou":case"com.amazonaws.s3#BucketAlreadyOwnedByYou":throw await bw(l,s);case"NoSuchBucket":case"com.amazonaws.s3#NoSuchBucket":throw await xw(l,s);case"InvalidObjectState":case"com.amazonaws.s3#InvalidObjectState":throw await iw(l,s);case"NoSuchKey":case"com.amazonaws.s3#NoSuchKey":throw await ow(l,s);case"NotFound":case"com.amazonaws.s3#NotFound":throw await pw(l,s);case"ObjectAlreadyInActiveTierError":case"com.amazonaws.s3#ObjectAlreadyInActiveTierError":throw await uw(l,s);default:const h=l.body;return jw({output:r,parsedBody:h,errorCode:f})}},jw=oh(Z),cw=async(r,s)=>{const l=z({}),f=r.body,h=new pr({$metadata:y(r),...l});return O(h,r.body)},bw=async(r,s)=>{const l=z({}),f=r.body,h=new ur({$metadata:y(r),...l});return O(h,r.body)},iw=async(r,s)=>{const l=z({}),f=r.body;if(f[Rl]!=null)l[Rl]=Sr(f[Rl]);if(f[Gr]!=null)l[Gr]=Sr(f[Gr]);const h=new rs({$metadata:y(r),...l});return O(h,r.body)},xw=async(r,s)=>{const l=z({}),f=r.body,h=new tr({$metadata:y(r),...l});return O(h,r.body)},ow=async(r,s)=>{const l=z({}),f=r.body,h=new ss({$metadata:y(r),...l});return O(h,r.body)},nw=async(r,s)=>{const l=z({}),f=r.body,h=new or({$metadata:y(r),...l});return O(h,r.body)},pw=async(r,s)=>{const l=z({}),f=r.body,h=new ls({$metadata:y(r),...l});return O(h,r.body)},uw=async(r,s)=>{const l=z({}),f=r.body,h=new fs({$metadata:y(r),...l});return O(h,r.body)},tw=async(r,s)=>{const l=z({}),f=r.body,h=new nr({$metadata:y(r),...l});return O(h,r.body)};var r3=(r,s)=>{const l={};if(r[Sl]!=null)l[Sl]=Sr(r[Sl]);if(r[kl]!=null)l[kl]=Sr(r[kl]);if(r[Il]!=null)l[Il]=Sr(r[Il]);if(r[zr]!=null)l[zr]=ar(Ul(r[zr]));return l};var y=(r)=>({httpStatusCode:r.statusCode,requestId:r.headers["x-amzn-requestid"]??r.headers["x-amzn-request-id"]??r.headers["x-amz-request-id"],extendedRequestId:r.headers["x-amz-id-2"],cfId:r.headers["x-amz-cf-id"]});var j=(r)=>r!==void 0&&r!==null&&r!==""&&(!Object.getOwnPropertyNames(r).includes("length")||r.length!=0)&&(!Object.getOwnPropertyNames(r).includes("size")||r.size!=0);var s3="ACL";var Sl="AccessKeyId";var l3="AcceptRanges";var Rl="AccessTier";var gs="BucketKeyEnabled";var Al="Credentials",f3="ChecksumAlgorithm";var fm="CacheControl",el="ChecksumCRC32",Tl="ChecksumCRC32C",hm="ContentDisposition";var mm="ContentEncoding";var gm="ContentLanguage",El="ContentLength",h3="ChecksumMode",m3="ContentMD5";var g3="ContentRange";var Cl="ChecksumSHA1",zl="ChecksumSHA256";var wm="ContentType";var w3="DeleteMarker";var dl="Expires";var am="ExpectedBucketOwner";var a3="ExpiresString";var Sm="ETag";var zr="Expiration";var S3="GrantFullControl";var R3="GrantRead",A3="GrantReadACP";var k3="GrantWriteACP";var I3="IfMatch",Bh="IfModifiedSince",E3="IfNoneMatch";var vh="IfUnmodifiedSince";var d3="LastModified";var P3="MissingMeta";var Rm="ObjectLockLegalHoldStatus",Am="ObjectLockMode";var Pl="ObjectLockRetainUntilDate";var N3="PartsCount";var $3="PartNumber";var M3="Range";var km="RequestCharged",U3="ResponseCacheControl",D3="ResponseContentDisposition",e3="ResponseContentEncoding",T3="ResponseContentLanguage",C3="ResponseContentType";var z3="ResponseExpires";var Im="RequestPayer";var G3="ReplicationStatus";var F3="Restore";var kl="SecretAccessKey";var Gr="StorageClass";var K3="SessionMode";var Gl="ServerSideEncryption";var as="SSECustomerAlgorithm",Em="SSECustomerKey",Ss="SSECustomerKeyMD5";var dm="SSEKMSEncryptionContext",Fl="SSEKMSKeyId";var Il="SessionToken";var W3="Tagging";var V3="TagCount";var Kl="VersionId";var Pm="WebsiteRedirectLocation";var Z3="accept-ranges";var Nm="cache-control",$m="content-disposition",Mm="content-encoding",Um="content-language",Nl="content-length",L3="content-md5",X3="content-range",Dm="content-type";var $l="expires";var em="etag",J3="expiresstring";var H3="if-match",Q3="if-modified-since";var y3="if-none-match";var Y3="if-unmodified-since";var Oh="last-modified";var B3="partNumber";var v3="range",O3="response-cache-control",q3="response-content-disposition",_3="response-content-encoding",j3="response-content-language",c3="response-content-type",b3="response-expires";var i3="session";var x3="versionId";var o3="x-amz-acl";var Wl="x-amz-checksum-crc32",Vl="x-amz-checksum-crc32c",n3="x-amz-checksum-mode";var Zl="x-amz-checksum-sha1",Ll="x-amz-checksum-sha256";var p3="x-amz-create-session-mode";var qh="x-amz-delete-marker",Tm="x-amz-expiration",Cm="x-amz-expected-bucket-owner";var u3="x-amz-grant-full-control",t3="x-amz-grant-read",ra="x-amz-grant-read-acp";var sa="x-amz-grant-write-acp";var _h="x-amz-missing-meta";var jh="x-amz-mp-parts-count";var zm="x-amz-object-lock-legal-hold",Gm="x-amz-object-lock-mode",Ml="x-amz-object-lock-retain-until-date";var la="x-amz-restore",Fm="x-amz-request-charged";var Km="x-amz-request-payer";var fa="x-amz-replication-status";var Wm="x-amz-storage-class",ha="x-amz-sdk-checksum-algorithm";var Xl="x-amz-server-side-encryption",Jl="x-amz-server-side-encryption-aws-kms-key-id",Fr="x-amz-server-side-encryption-bucket-key-enabled",Vm="x-amz-server-side-encryption-context",Rs="x-amz-server-side-encryption-customer-algorithm",Zm="x-amz-server-side-encryption-customer-key",As="x-amz-server-side-encryption-customer-key-md5",ma="x-amz-tagging",ch="x-amz-tagging-count";var Lm="x-amz-version-id",Xm="x-amz-website-redirect-location",Jm="x-id";class Hl extends Ar.classBuilder().ep({...wr,DisableS3ExpressSessionAuth:{type:"staticContextParams",value:!0},Bucket:{type:"contextParams",name:"Bucket"}}).m(function(r,s,l,f){return[kr(l,this.serialize,this.deserialize),Ir(l,r.getEndpointParameterInstructions()),Yr(l)]}).s("AmazonS3","CreateSession",{}).n("S3Client","CreateSessionCommand").f(void 0,Xh).ser(ph).de(rm).build(){}var Hm={name:"@aws-sdk/client-s3",description:"AWS SDK for JavaScript S3 Client for Node.js, Browser and React Native",version:"3.629.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline client-s3","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo s3",test:"yarn test:unit","test:e2e":"yarn test:e2e:node && yarn test:e2e:browser","test:e2e:browser":"ts-mocha test/**/*.browser.ispec.ts && karma start karma.conf.js","test:e2e:node":"jest --c jest.config.e2e.js","test:unit":"ts-mocha test/unit/**/*.spec.ts"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha1-browser":"5.2.0","@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/client-sso-oidc":"3.629.0","@aws-sdk/client-sts":"3.629.0","@aws-sdk/core":"3.629.0","@aws-sdk/credential-provider-node":"3.629.0","@aws-sdk/middleware-bucket-endpoint":"3.620.0","@aws-sdk/middleware-expect-continue":"3.620.0","@aws-sdk/middleware-flexible-checksums":"3.620.0","@aws-sdk/middleware-host-header":"3.620.0","@aws-sdk/middleware-location-constraint":"3.609.0","@aws-sdk/middleware-logger":"3.609.0","@aws-sdk/middleware-recursion-detection":"3.620.0","@aws-sdk/middleware-sdk-s3":"3.629.0","@aws-sdk/middleware-ssec":"3.609.0","@aws-sdk/middleware-user-agent":"3.620.0","@aws-sdk/region-config-resolver":"3.614.0","@aws-sdk/signature-v4-multi-region":"3.629.0","@aws-sdk/types":"3.609.0","@aws-sdk/util-endpoints":"3.614.0","@aws-sdk/util-user-agent-browser":"3.609.0","@aws-sdk/util-user-agent-node":"3.614.0","@aws-sdk/xml-builder":"3.609.0","@smithy/config-resolver":"^3.0.5","@smithy/core":"^2.3.2","@smithy/eventstream-serde-browser":"^3.0.6","@smithy/eventstream-serde-config-resolver":"^3.0.3","@smithy/eventstream-serde-node":"^3.0.5","@smithy/fetch-http-handler":"^3.2.4","@smithy/hash-blob-browser":"^3.1.2","@smithy/hash-node":"^3.0.3","@smithy/hash-stream-node":"^3.1.2","@smithy/invalid-dependency":"^3.0.3","@smithy/md5-js":"^3.0.3","@smithy/middleware-content-length":"^3.0.5","@smithy/middleware-endpoint":"^3.1.0","@smithy/middleware-retry":"^3.0.14","@smithy/middleware-serde":"^3.0.3","@smithy/middleware-stack":"^3.0.3","@smithy/node-config-provider":"^3.1.4","@smithy/node-http-handler":"^3.1.4","@smithy/protocol-http":"^4.1.0","@smithy/smithy-client":"^3.1.12","@smithy/types":"^3.3.0","@smithy/url-parser":"^3.0.3","@smithy/util-base64":"^3.0.0","@smithy/util-body-length-browser":"^3.0.0","@smithy/util-body-length-node":"^3.0.0","@smithy/util-defaults-mode-browser":"^3.0.14","@smithy/util-defaults-mode-node":"^3.0.14","@smithy/util-endpoints":"^2.0.5","@smithy/util-middleware":"^3.0.3","@smithy/util-retry":"^3.0.3","@smithy/util-stream":"^3.1.3","@smithy/util-utf8":"^3.0.0","@smithy/util-waiter":"^3.1.2",tslib:"^2.6.2"},devDependencies:{"@aws-sdk/signature-v4-crt":"3.629.0","@tsconfig/node16":"16.1.3","@types/chai":"^4.2.11","@types/mocha":"^8.0.4","@types/node":"^16.18.96",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~4.9.5"},engines:{node:">=16.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-s3"}};var Us=Q(ir(),1);var wa="AWS_S3_USE_ARN_REGION",aa="s3_use_arn_region",Qm={environmentVariableSelector:(r)=>n(r,wa,p.ENV),configFileSelector:(r)=>n(r,aa,p.CONFIG),default:!1};var ym=Q($a(),1),{__extends:KA,__assign:WA,__rest:VA,__decorate:ZA,__param:LA,__esDecorate:XA,__runInitializers:JA,__propKey:HA,__setFunctionName:QA,__metadata:yA,__awaiter:ks,__generator:Is,__exportStar:YA,__createBinding:BA,__values:Es,__read:vA,__spread:OA,__spreadArrays:qA,__spreadArray:_A,__await:jA,__asyncGenerator:cA,__asyncDelegator:bA,__asyncValues:iA,__makeTemplateObject:xA,__importStar:oA,__importDefault:nA,__classPrivateFieldGet:pA,__classPrivateFieldSet:uA,__classPrivateFieldIn:tA,__addDisposableResource:rk,__disposeResources:sk}=ym.default;import{Buffer as Ym} from"buffer";var Bm=(r,s)=>{if(typeof r!=="string")throw new TypeError(`The "input" argument must be of type string. Received type ${typeof r} (${r})`);return s?Ym.from(r,s):Ym.from(r)};var Ql=(r)=>{const s=Bm(r,"utf8");return new Uint8Array(s.buffer,s.byteOffset,s.byteLength/Uint8Array.BYTES_PER_ELEMENT)};function Kr(r){if(r instanceof Uint8Array)return r;if(typeof r==="string")return Ma(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength/Uint8Array.BYTES_PER_ELEMENT);return new Uint8Array(r)}var Ma=typeof Buffer!=="undefined"&&Buffer.from?function(r){return Buffer.from(r,"utf8")}:Ql;function Wr(r){if(typeof r==="string")return r.length===0;return r.byteLength===0}function Vr(r){return new Uint8Array([(r&4278190080)>>24,(r&16711680)>>16,(r&65280)>>8,r&255])}function Zr(r){if(!Uint32Array.from){var s=new Uint32Array(r.length),l=0;while(l<r.length)s[l]=r[l],l+=1;return s}return Uint32Array.from(r)}var yl=function(){function r(){this.crc32=new t}return r.prototype.update=function(s){if(Wr(s))return;this.crc32.update(Kr(s))},r.prototype.digest=function(){return ks(this,void 0,void 0,function(){return Is(this,function(s){return[2,Vr(this.crc32.digest())]})})},r.prototype.reset=function(){this.crc32=new t},r}();var t=function(){function r(){this.checksum=4294967295}return r.prototype.update=function(s){var l,f;try{for(var h=Es(s),m=h.next();!m.done;m=h.next()){var g=m.value;this.checksum=this.checksum>>>8^Da[(this.checksum^g)&255]}}catch(w){l={error:w}}finally{try{if(m&&!m.done&&(f=h.return))f.call(h)}finally{if(l)throw l.error}}return this},r.prototype.digest=function(){return(this.checksum^4294967295)>>>0},r}();var Ua=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918000,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],Da=Zr(Ua);var x=Q(Om(),1);var qm=Q(Om(),1),vm=function(r){for(let s=0;s<8;s++)r[s]^=255;for(let s=7;s>-1;s--)if(r[s]++,r[s]!==0)break};class Er{constructor(r){if(this.bytes=r,r.byteLength!==8)throw new Error("Int64 buffers must be exactly 8 bytes")}static fromNumber(r){if(r>9223372036854776000||r<-9223372036854776000)throw new Error(`${r} is too large (or, if negative, too small) to represent as an Int64`);const s=new Uint8Array(8);for(let l=7,f=Math.abs(Math.round(r));l>-1&&f>0;l--,f/=256)s[l]=f;if(r<0)vm(s);return new Er(s)}valueOf(){const r=this.bytes.slice(0),s=r[0]&128;if(s)vm(r);return parseInt(qm.toHex(r),16)*(s?-1:1)}toString(){return String(this.valueOf())}}class Yl{constructor(r,s){this.toUtf8=r,this.fromUtf8=s}format(r){const s=[];for(let h of Object.keys(r)){const m=this.fromUtf8(h);s.push(Uint8Array.from([m.byteLength]),m,this.formatHeaderValue(r[h]))}const l=new Uint8Array(s.reduce((h,m)=>h+m.byteLength,0));let f=0;for(let h of s)l.set(h,f),f+=h.byteLength;return l}formatHeaderValue(r){switch(r.type){case"boolean":return Uint8Array.from([r.value?0:1]);case"byte":return Uint8Array.from([2,r.value]);case"short":const s=new DataView(new ArrayBuffer(3));return s.setUint8(0,3),s.setInt16(1,r.value,!1),new Uint8Array(s.buffer);case"integer":const l=new DataView(new ArrayBuffer(5));return l.setUint8(0,4),l.setInt32(1,r.value,!1),new Uint8Array(l.buffer);case"long":const f=new Uint8Array(9);return f[0]=5,f.set(r.value.bytes,1),f;case"binary":const h=new DataView(new ArrayBuffer(3+r.value.byteLength));h.setUint8(0,6),h.setUint16(1,r.value.byteLength,!1);const m=new Uint8Array(h.buffer);return m.set(r.value,3),m;case"string":const g=this.fromUtf8(r.value),w=new DataView(new ArrayBuffer(3+g.byteLength));w.setUint8(0,7),w.setUint16(1,g.byteLength,!1);const a=new Uint8Array(w.buffer);return a.set(g,3),a;case"timestamp":const P=new Uint8Array(9);return P[0]=8,P.set(Er.fromNumber(r.value.valueOf()).bytes,1),P;case"uuid":if(!Va.test(r.value))throw new Error(`Invalid UUID received: ${r.value}`);const N=new Uint8Array(17);return N[0]=9,N.set(x.fromHex(r.value.replace(/\-/g,"")),1),N}}parse(r){const s={};let l=0;while(l<r.byteLength){const f=r.getUint8(l++),h=this.toUtf8(new Uint8Array(r.buffer,r.byteOffset+l,f));switch(l+=f,r.getUint8(l++)){case 0:s[h]={type:jm,value:!0};break;case 1:s[h]={type:jm,value:!1};break;case 2:s[h]={type:ea,value:r.getInt8(l++)};break;case 3:s[h]={type:Ta,value:r.getInt16(l,!1)},l+=2;break;case 4:s[h]={type:Ca,value:r.getInt32(l,!1)},l+=4;break;case 5:s[h]={type:za,value:new Er(new Uint8Array(r.buffer,r.byteOffset+l,8))},l+=8;break;case 6:const m=r.getUint16(l,!1);l+=2,s[h]={type:Ga,value:new Uint8Array(r.buffer,r.byteOffset+l,m)},l+=m;break;case 7:const g=r.getUint16(l,!1);l+=2,s[h]={type:Fa,value:this.toUtf8(new Uint8Array(r.buffer,r.byteOffset+l,g))},l+=g;break;case 8:s[h]={type:Ka,value:new Date(new Er(new Uint8Array(r.buffer,r.byteOffset+l,8)).valueOf())},l+=8;break;case 9:const w=new Uint8Array(r.buffer,r.byteOffset+l,16);l+=16,s[h]={type:Wa,value:`${x.toHex(w.subarray(0,4))}-${x.toHex(w.subarray(4,6))}-${x.toHex(w.subarray(6,8))}-${x.toHex(w.subarray(8,10))}-${x.toHex(w.subarray(10))}`};break;default:throw new Error("Unrecognized header type tag")}}return s}}var _m;(function(r){r[r.boolTrue=0]="boolTrue",r[r.boolFalse=1]="boolFalse",r[r.byte=2]="byte",r[r.short=3]="short",r[r.integer=4]="integer",r[r.long=5]="long",r[r.byteArray=6]="byteArray",r[r.string=7]="string",r[r.timestamp=8]="timestamp",r[r.uuid=9]="uuid"})(_m||(_m={}));var jm="boolean",ea="byte",Ta="short",Ca="integer",za="long",Ga="binary",Fa="string",Ka="timestamp",Wa="uuid",Va=/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;function bm({byteLength:r,byteOffset:s,buffer:l}){if(r<Za)throw new Error("Provided message too short to accommodate event stream message overhead");const f=new DataView(l,s,r),h=f.getUint32(0,!1);if(r!==h)throw new Error("Reported message length does not match received message length");const m=f.getUint32(cm,!1),g=f.getUint32(o,!1),w=f.getUint32(r-rr,!1),a=new t().update(new Uint8Array(l,s,o));if(g!==a.digest())throw new Error(`The prelude checksum specified in the message (${g}) does not match the calculated CRC32 checksum (${a.digest()})`);if(a.update(new Uint8Array(l,s+o,r-(o+rr))),w!==a.digest())throw new Error(`The message checksum (${a.digest()}) did not match the expected value of ${w}`);return{headers:new DataView(l,s+o+rr,m),body:new Uint8Array(l,s+o+rr+m,h-m-(o+rr+rr))}}var cm=4,o=cm*2,rr=4,Za=o+rr*2;class Bl{constructor(r,s){this.headerMarshaller=new Yl(r,s),this.messageBuffer=[],this.isEndOfStream=!1}feed(r){this.messageBuffer.push(this.decode(r))}endOfStream(){this.isEndOfStream=!0}getMessage(){const r=this.messageBuffer.pop(),s=this.isEndOfStream;return{getMessage(){return r},isEndOfStream(){return s}}}getAvailableMessages(){const r=this.messageBuffer;this.messageBuffer=[];const s=this.isEndOfStream;return{getMessages(){return r},isEndOfStream(){return s}}}encode({headers:r,body:s}){const l=this.headerMarshaller.format(r),f=l.byteLength+s.byteLength+16,h=new Uint8Array(f),m=new DataView(h.buffer,h.byteOffset,h.byteLength),g=new t;return m.setUint32(0,f,!1),m.setUint32(4,l.byteLength,!1),m.setUint32(8,g.update(h.subarray(0,8)).digest(),!1),h.set(l,12),h.set(s,l.byteLength+12),m.setUint32(f-4,g.update(h.subarray(8,f-4)).digest(),!1),h}decode(r){const{headers:s,body:l}=bm(r);return{headers:this.headerMarshaller.parse(s),body:l}}formatHeaders(r){return this.headerMarshaller.format(r)}}class vl{constructor(r){this.options=r}[Symbol.asyncIterator](){return this.asyncIterator()}async*asyncIterator(){for await(let r of this.options.inputStream)yield this.options.decoder.decode(r)}}class Ol{constructor(r){this.options=r}[Symbol.asyncIterator](){return this.asyncIterator()}async*asyncIterator(){for await(let r of this.options.messageStream)yield this.options.encoder.encode(r);if(this.options.includeEndFrame)yield new Uint8Array(0)}}class ql{constructor(r){this.options=r}[Symbol.asyncIterator](){return this.asyncIterator()}async*asyncIterator(){for await(let r of this.options.messageStream){const s=await this.options.deserializer(r);if(s===void 0)continue;yield s}}}class _l{constructor(r){this.options=r}[Symbol.asyncIterator](){return this.asyncIterator()}async*asyncIterator(){for await(let r of this.options.inputStream)yield this.options.serializer(r)}}function im(r){let s=0,l=0,f=null,h=null;const m=(w)=>{if(typeof w!=="number")throw new Error("Attempted to allocate an event message where size was not a number: "+w);s=w,l=4,f=new Uint8Array(w),new DataView(f.buffer).setUint32(0,w,!1)},g=async function*(){const w=r[Symbol.asyncIterator]();while(!0){const{value:a,done:P}=await w.next();if(P){if(!s)return;else if(s===l)yield f;else throw new Error("Truncated event message received.");return}const N=a.length;let M=0;while(M<N){if(!f){const J=N-M;if(!h)h=new Uint8Array(4);const H=Math.min(4-l,J);if(h.set(a.slice(M,M+H),l),l+=H,M+=H,l<4)break;m(new DataView(h.buffer).getUint32(0,!1)),h=null}const $=Math.min(s-l,N-M);if(f.set(a.slice(M,M+$),l),l+=$,M+=$,s&&s===l)yield f,f=null,s=0,l=0}}};return{[Symbol.asyncIterator]:g}}function xm(r,s){return async function(l){const{value:f}=l.headers[":message-type"];if(f==="error"){const h=new Error(l.headers[":error-message"].value||"UnknownError");throw h.name=l.headers[":error-code"].value,h}else if(f==="exception"){const h=l.headers[":exception-type"].value,m={[h]:l},g=await r(m);if(g.$unknown){const w=new Error(s(l.body));throw w.name=h,w}throw g[h]}else if(f==="event"){const h={[l.headers[":event-type"].value]:l},m=await r(h);if(m.$unknown)return;return m}else throw Error(`Unrecognizable event type: ${l.headers[":event-type"].value}`)}}class ds{constructor({utf8Encoder:r,utf8Decoder:s}){this.eventStreamCodec=new Bl(r,s),this.utfEncoder=r}deserialize(r,s){const l=im(r);return new ql({messageStream:new vl({inputStream:l,decoder:this.eventStreamCodec}),deserializer:xm(s,this.utfEncoder)})}serialize(r,s){return new Ol({messageStream:new _l({inputStream:r,serializer:s}),encoder:this.eventStreamCodec,includeEndFrame:!0})}}import{Readable as La} from"stream";async function*om(r){let s=!1,l=!1;const f=new Array;r.on("error",(h)=>{if(!s)s=!0;if(h)throw h}),r.on("data",(h)=>{f.push(h)}),r.on("end",()=>{s=!0});while(!l){const h=await new Promise((m)=>setTimeout(()=>m(f.shift()),0));if(h)yield h;l=s&&f.length===0}}class jl{constructor({utf8Encoder:r,utf8Decoder:s}){this.universalMarshaller=new ds({utf8Decoder:s,utf8Encoder:r})}deserialize(r,s){const l=typeof r[Symbol.asyncIterator]==="function"?r:om(r);return this.universalMarshaller.deserialize(l,s)}serialize(r,s){return La.from(this.universalMarshaller.serialize(r,s))}}var nm=(r)=>new jl(r);import{Writable as Xa} from"stream";class Ns extends Xa{constructor(r,s){super(s);this.hash=r}_write(r,s,l){try{this.hash.update(Ps(r))}catch(f){return l(f)}l()}}var pm=(r,s)=>{if(s.readableFlowing!==null)throw new Error("Unable to calculate hash for flowing readable stream");const l=new r,f=new Ns(l);return s.pipe(f),new Promise((h,m)=>{s.on("error",(g)=>{f.end(),m(g)}),f.on("error",m),f.on("finish",()=>{l.digest().then(h).catch(m)})})};var $s=Q(ir(),1);var mg=(r)=>{return{apiVersion:"2006-03-01",base64Decoder:r?.base64Decoder??um,base64Encoder:r?.base64Encoder??sg,disableHostPrefix:r?.disableHostPrefix??!1,endpointProvider:r?.endpointProvider??br,extensions:r?.extensions??[],getAwsChunkedEncodingStream:r?.getAwsChunkedEncodingStream??lg,httpAuthSchemeProvider:r?.httpAuthSchemeProvider??Wh,httpAuthSchemes:r?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:(s)=>s.getIdentityProvider("aws.auth#sigv4"),signer:new $s.AwsSdkSigV4Signer},{schemeId:"aws.auth#sigv4a",identityProvider:(s)=>s.getIdentityProvider("aws.auth#sigv4a"),signer:new $s.AwsSdkSigV4ASigner}],logger:r?.logger??new Jr,sdkStreamMixin:r?.sdkStreamMixin??fg,serviceId:r?.serviceId??"S3",signerConstructor:r?.signerConstructor??Xs,signingEscapePath:r?.signingEscapePath??!1,urlParser:r?.urlParser??hg,useArnRegion:r?.useArnRegion??!1,utf8Decoder:r?.utf8Decoder??tm,utf8Encoder:r?.utf8Encoder??rg}};var Dg=(r)=>{Sg(process.version);const s=Mg(r),l=()=>s().then(ag),f=mg(r);return Us.emitWarningIfUnsupportedVersion(process.version),{...f,...r,runtime:"node",defaultsMode:s,bodyLengthChecker:r?.bodyLengthChecker??$g,credentialDefaultProvider:r?.credentialDefaultProvider??Ug,defaultUserAgentProvider:r?.defaultUserAgentProvider??Ng({serviceId:f.serviceId,clientVersion:Hm.version}),disableS3ExpressSessionAuth:r?.disableS3ExpressSessionAuth??c(Ks),eventStreamSerdeProvider:r?.eventStreamSerdeProvider??nm,maxAttempts:r?.maxAttempts??c(dg),md5:r?.md5??Ms.bind(null,"md5"),region:r?.region??c(kg,Ig),requestHandler:gg.create(r?.requestHandler??l),retryMode:r?.retryMode??c({...Pg,default:async()=>(await l()).retryMode||Eg}),sha1:r?.sha1??Ms.bind(null,"sha1"),sha256:r?.sha256??Ms.bind(null,"sha256"),sigv4aSigningRegionSet:r?.sigv4aSigningRegionSet??c(Us.NODE_SIGV4A_CONFIG_OPTIONS),streamCollector:r?.streamCollector??wg,streamHasher:r?.streamHasher??pm,useArnRegion:r?.useArnRegion??c(Qm),useDualstackEndpoint:r?.useDualstackEndpoint??c(Rg),useFipsEndpoint:r?.useFipsEndpoint??c(Ag)}};var eg=(r)=>{const s=r.httpAuthSchemes;let{httpAuthSchemeProvider:l,credentials:f}=r;return{setHttpAuthScheme(h){const m=s.findIndex((g)=>g.schemeId===h.schemeId);if(m===-1)s.push(h);else s.splice(m,1,h)},httpAuthSchemes(){return s},setHttpAuthSchemeProvider(h){l=h},httpAuthSchemeProvider(){return l},setCredentials(h){f=h},credentials(){return f}}},Tg=(r)=>{return{httpAuthSchemes:r.httpAuthSchemes(),httpAuthSchemeProvider:r.httpAuthSchemeProvider(),credentials:r.credentials()}};var Ds=(r)=>r,Vg=(r,s)=>{const l={...Ds(Kg(r)),...Ds(Gg(r)),...Ds(Cg(r)),...Ds(eg(r))};return s.forEach((f)=>f.configure(l)),{...r,...Wg(l),...Fg(l),...zg(l),...Tg(l)}};class cl extends Hg{constructor(...[r]){const s=Dg(r||{}),l=Zh(s),f=Qg(l),h=Og(f),m=Yg(h),g=Zg(m),w=vg(g),a=Df(w),P=Vh(a),N=df(P,{session:[()=>this,Hl]}),M=Vg(N,r?.extensions||[]);super(M);this.config=M,this.middlewareStack.use(yg(this.config)),this.middlewareStack.use(qg(this.config)),this.middlewareStack.use(Bg(this.config)),this.middlewareStack.use(Lg(this.config)),this.middlewareStack.use(Xg(this.config)),this.middlewareStack.use(Jg(this.config)),this.middlewareStack.use(dr.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:Gh,identityProviderConfigProvider:async($)=>new dr.DefaultIdentityProviderConfig({"aws.auth#sigv4":$.credentials,"aws.auth#sigv4a":$.credentials})})),this.middlewareStack.use(dr.getHttpSigningPlugin(this.config)),this.middlewareStack.use(Uf(this.config)),this.middlewareStack.use(ul(this.config)),this.middlewareStack.use(lf(this.config)),this.middlewareStack.use(Ws(this.config)),this.middlewareStack.use(Zs(this.config))}destroy(){super.destroy()}}function Ja(r){return(s)=>async(l)=>{const f={...l.input},h=[{target:"SSECustomerKey",hash:"SSECustomerKeyMD5"},{target:"CopySourceSSECustomerKey",hash:"CopySourceSSECustomerKeyMD5"}];for(let m of h){const g=f[m.target];if(g){let w;if(typeof g==="string")if(Qa(g,r))w=r.base64Decoder(g);else w=r.utf8Decoder(g),f[m.target]=r.base64Encoder(w);else w=ArrayBuffer.isView(g)?new Uint8Array(g.buffer,g.byteOffset,g.byteLength):new Uint8Array(g),f[m.target]=r.base64Encoder(w);const a=new r.md5;a.update(w),f[m.hash]=r.base64Encoder(await a.digest())}}return s({...l,input:f})}}function Qa(r,s){if(!/^(?:[A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(r))return!1;try{return s.base64Decoder(r).length===32}catch{return!1}}var Ha={name:"ssecMiddleware",step:"initialize",tags:["SSE"],override:!0},es=(r)=>({applyToStack:(s)=>{s.add(Ja(r),Ha)}});var U;(function(r){r.MD5="MD5",r.CRC32="CRC32",r.CRC32C="CRC32C",r.SHA1="SHA1",r.SHA256="SHA256"})(U||(U={}));var _g;(function(r){r.HEADER="header",r.TRAILER="trailer"})(_g||(_g={}));var{MD5:jg,CRC32:cg}=U;var Lr=[U.CRC32,U.CRC32C,U.SHA1,U.SHA256],bg=[U.CRC32,U.CRC32C,U.SHA1,U.SHA256];var ig=(r,{requestChecksumRequired:s,requestAlgorithmMember:l},f)=>{const h=f?cg:jg;if(!l||!r[l])return s?h:void 0;const m=r[l];if(!Lr.includes(m))throw new Error(`The checksum algorithm "${m}" is not supported by the client.`+` Select one of ${Lr}.`);return m};var Pr=(r)=>r===U.MD5?"content-md5":`x-amz-checksum-${r.toLowerCase()}`;var xg=(r,s)=>{const l=r.toLowerCase();for(let f of Object.keys(s))if(l===f.toLowerCase())return!0;return!1};var Nr=(r)=>r!==void 0&&typeof r!=="string"&&!ArrayBuffer.isView(r)&&!og(r);var il=function(){function r(){this.crc32c=new bl}return r.prototype.update=function(s){if(Wr(s))return;this.crc32c.update(Kr(s))},r.prototype.digest=function(){return ks(this,void 0,void 0,function(){return Is(this,function(s){return[2,Vr(this.crc32c.digest())]})})},r.prototype.reset=function(){this.crc32c=new bl},r}();var bl=function(){function r(){this.checksum=4294967295}return r.prototype.update=function(s){var l,f;try{for(var h=Es(s),m=h.next();!m.done;m=h.next()){var g=m.value;this.checksum=this.checksum>>>8^Ya[(this.checksum^g)&255]}}catch(w){l={error:w}}finally{try{if(m&&!m.done&&(f=h.return))f.call(h)}finally{if(l)throw l.error}}return this},r.prototype.digest=function(){return(this.checksum^4294967295)>>>0},r}();var ya=[0,4067132163,3778769143,324072436,3348797215,904991772,648144872,3570033899,2329499855,2024987596,1809983544,2575936315,1296289744,3207089363,2893594407,1578318884,274646895,3795141740,4049975192,51262619,3619967088,632279923,922689671,3298075524,2592579488,1760304291,2075979607,2312596564,1562183871,2943781820,3156637768,1313733451,549293790,3537243613,3246849577,871202090,3878099393,357341890,102525238,4101499445,2858735121,1477399826,1264559846,3107202533,1845379342,2677391885,2361733625,2125378298,820201905,3263744690,3520608582,598981189,4151959214,85089709,373468761,3827903834,3124367742,1213305469,1526817161,2842354314,2107672161,2412447074,2627466902,1861252501,1098587580,3004210879,2688576843,1378610760,2262928035,1955203488,1742404180,2511436119,3416409459,969524848,714683780,3639785095,205050476,4266873199,3976438427,526918040,1361435347,2739821008,2954799652,1114974503,2529119692,1691668175,2005155131,2247081528,3690758684,697762079,986182379,3366744552,476452099,3993867776,4250756596,255256311,1640403810,2477592673,2164122517,1922457750,2791048317,1412925310,1197962378,3037525897,3944729517,427051182,170179418,4165941337,746937522,3740196785,3451792453,1070968646,1905808397,2213795598,2426610938,1657317369,3053634322,1147748369,1463399397,2773627110,4215344322,153784257,444234805,3893493558,1021025245,3467647198,3722505002,797665321,2197175160,1889384571,1674398607,2443626636,1164749927,3070701412,2757221520,1446797203,137323447,4198817972,3910406976,461344835,3484808360,1037989803,781091935,3705997148,2460548119,1623424788,1939049696,2180517859,1429367560,2807687179,3020495871,1180866812,410100952,3927582683,4182430767,186734380,3756733383,763408580,1053836080,3434856499,2722870694,1344288421,1131464017,2971354706,1708204729,2545590714,2229949006,1988219213,680717673,3673779818,3383336350,1002577565,4010310262,493091189,238226049,4233660802,2987750089,1082061258,1395524158,2705686845,1972364758,2279892693,2494862625,1725896226,952904198,3399985413,3656866545,731699698,4283874585,222117402,510512622,3959836397,3280807620,837199303,582374963,3504198960,68661723,4135334616,3844915500,390545967,1230274059,3141532936,2825850620,1510247935,2395924756,2091215383,1878366691,2644384480,3553878443,565732008,854102364,3229815391,340358836,3861050807,4117890627,119113024,1493875044,2875275879,3090270611,1247431312,2660249211,1828433272,2141937292,2378227087,3811616794,291187481,34330861,4032846830,615137029,3603020806,3314634738,939183345,1776939221,2609017814,2295496738,2058945313,2926798794,1545135305,1330124605,3173225534,4084100981,17165430,307568514,3762199681,888469610,3332340585,3587147933,665062302,2042050490,2346497209,2559330125,1793573966,3190661285,1279665062,1595330642,2910671697],Ya=Zr(ya);var Ts=(r,s)=>({[U.MD5]:s.md5,[U.CRC32]:yl,[U.CRC32C]:il,[U.SHA1]:s.sha1,[U.SHA256]:s.sha256})[r];var Cs=(r,s)=>{const l=new r;return l.update(Ps(s||"")),l.digest()};var ng={name:"flexibleChecksumsMiddleware",step:"build",tags:["BODY_CHECKSUM"],override:!0},pg=(r,s)=>(l,f)=>async(h)=>{if(!X.isInstance(h.request))return l(h);const{request:m}=h,{body:g,headers:w}=m,{base64Encoder:a,streamHasher:P}=r,{input:N,requestChecksumRequired:M,requestAlgorithmMember:$}=s,J=ig(N,{requestChecksumRequired:M,requestAlgorithmMember:$},!!f.isS3ExpressBucket);let H=g,Y=w;if(J){const q=Pr(J),$r=Ts(J,r);if(Nr(g)){const{getAwsChunkedEncodingStream:Fs,bodyLengthChecker:gw}=r;H=Fs(g,{base64Encoder:a,bodyLengthChecker:gw,checksumLocationName:q,checksumAlgorithmFn:$r,streamHasher:P}),Y={...w,"content-encoding":w["content-encoding"]?`${w["content-encoding"]},aws-chunked`:"aws-chunked","transfer-encoding":"chunked","x-amz-decoded-content-length":w["content-length"],"x-amz-content-sha256":"STREAMING-UNSIGNED-PAYLOAD-TRAILER","x-amz-trailer":q},delete Y["content-length"]}else if(!xg(q,w)){const Fs=await Cs($r,g);Y={...w,[q]:a(Fs)}}}return await l({...h,request:{...m,headers:Y,body:H}})};var zs=(r=[])=>{const s=[];for(let l of bg){if(!r.includes(l)||!Lr.includes(l))continue;s.push(l)}return s};var ug=(r)=>{const s=r.lastIndexOf("-");if(s!==-1){const l=r.slice(s+1);if(!l.startsWith("0")){const f=parseInt(l,10);if(!isNaN(f)&&f>=1&&f<=1e4)return!0}}return!1};import{Transform as Ba} from"stream";function xl(r){const s=new Ba;return s.push(r),s.push(null),s}var tg=async(r,{streamHasher:s,checksumAlgorithmFn:l,base64Encoder:f})=>{const h=Nr(r)?s(l,r):Cs(l,r);return f(await h)};var rw=async(r,{config:s,responseAlgorithms:l})=>{const f=zs(l),{body:h,headers:m}=r;for(let g of f){const w=Pr(g),a=m[w];if(a){const P=Ts(g,s),{streamHasher:N,base64Encoder:M}=s,$=await tg(h,{streamHasher:N,checksumAlgorithmFn:P,base64Encoder:M});if($===a)break;throw new Error(`Checksum mismatch: expected "${$}" but received "${a}"`+` in response header "${w}".`)}}};var sw={name:"flexibleChecksumsResponseMiddleware",toMiddleware:"deserializerMiddleware",relation:"after",tags:["BODY_CHECKSUM"],override:!0},lw=(r,s)=>(l,f)=>async(h)=>{if(!X.isInstance(h.request))return l(h);const m=h.input,g=await l(h),w=g.response;let a=void 0;const{requestValidationModeMember:P,responseAlgorithms:N}=s;if(P&&m[P]==="ENABLED"){const{clientName:M,commandName:$}=f;if(M==="S3Client"&&$==="GetObjectCommand"&&zs(N).every((Y)=>{const Xr=Pr(Y),q=w.headers[Xr];return!q||ug(q)}))return g;const H=Nr(w.body);if(H)a=await r.streamCollector(w.body),w.body=xl(a);if(await rw(g.response,{config:r,responseAlgorithms:N}),H&&a)w.body=xl(a)}return g};var Gs=(r,s)=>({applyToStack:(l)=>{l.add(pg(r,s),ng),l.addRelativeTo(lw(r,s),sw)}});class ol extends Ar.classBuilder().ep({...wr,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(r,s,l,f){return[kr(l,this.serialize,this.deserialize),Ir(l,r.getEndpointParameterInstructions()),Gs(l,{input:this.input,requestChecksumRequired:!1,requestValidationModeMember:"ChecksumMode",responseAlgorithms:["CRC32","CRC32C","SHA256","SHA1"]}),es(l),ff(l)]}).s("AmazonS3","GetObject",{}).n("S3Client","GetObjectCommand").f(Hh,Jh).ser(uh).de(sm).build(){}class nl extends Ar.classBuilder().ep({...wr,Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}}).m(function(r,s,l,f){return[kr(l,this.serialize,this.deserialize),Ir(l,r.getEndpointParameterInstructions()),Gs(l,{input:this.input,requestAlgorithmMember:"ChecksumAlgorithm",requestChecksumRequired:!1}),tl(l),Yr(l),es(l)]}).s("AmazonS3","PutObject",{}).n("S3Client","PutObjectCommand").f(Yh,yh).ser(th).de(lm).build(){}import{Buffer as fw} from"buffer";class mw extends pl{client;constructor(...r){super();this.client=new cl(...r)}async put(r){let s,l,f,h=process.env.BUCKET_NAME;if(r instanceof Blob)s=r,f=`${hw()}.${r.type.split("/")[1].split(";")[0]}`,l=r.type;else s=r.body,f=r.name,l=r.contentType;l=s instanceof Blob||s instanceof File?s.type:void 0;const m=s instanceof fw?s:fw.from(await s.arrayBuffer());return await this.client.send(new nl({Bucket:h,Key:f,Body:m,ContentType:l})),f}async fetch(r){let s=process.env.BUCKET_NAME,l;if(typeof r==="string")l=r;else s=r.bucket??s,l=r.name;if(!l)throw new Error("Object name has to be specified");const f=await this.client.send(new ol({Bucket:s,Key:l}));return new Response(f.Body.transformToWebStream(),{headers:{"Content-Type":f.ContentType,"Content-Length":f.ContentLength.toString(),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":f.LastModified?.toUTCString()||"",ETag:f.ETag||""}})}}export{mw as S3Driver,va as FileSystemDriver,Oa as FileStorageServiceProvider,pl as FileStorageDriver};
@@ -19874,7 +19874,7 @@ function requireNamedTypes() {
19874
19874
  })(main);
19875
19875
  async function customRequestParser(original) {
19876
19876
  function isExportedControllerClassDeclaration(body) {
19877
- return (body.type === "ExportNamedDeclaration" || body.type === "ExportDefaultDeclaration") && body.declaration.type === "ClassDeclaration" && (body.superClass.name === "Controller" || body.superClass.name === "ResourceController");
19877
+ return (body.type === "ExportNamedDeclaration" || body.type === "ExportDefaultDeclaration") && body.declaration.type === "ClassDeclaration" && (body.declaration.superClass.name === "Controller" || body.declaration.superClass.name === "ResourceController");
19878
19878
  }
19879
19879
  function isController(body) {
19880
19880
  return body.type === "ClassDeclaration" && (body.superClass.name === "Controller" || body.superClass.name === "ResourceController");
@@ -19948,7 +19948,7 @@ async function customRequestParser(original) {
19948
19948
  }
19949
19949
  }
19950
19950
  const orgFile = await main$2.parse(original, {
19951
- parser: await import("./typescript-CeZcXBr-.mjs").then((n) => n.t)
19951
+ parser: await import("./typescript-DU6uj0V1.mjs").then((n) => n.t)
19952
19952
  });
19953
19953
  for (const body of orgFile.program.body) {
19954
19954
  if (!body || (body == null ? void 0 : body.type) === "ImportDeclaration") {
@@ -1,4 +1,4 @@
1
- import { g } from "./index-BbySvAwL.mjs";
1
+ import { g } from "./index-BfdM1qcG.mjs";
2
2
  export {
3
3
  g as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { r as requireUtil, a as require$$0 } from "./index-BbySvAwL.mjs";
1
+ import { r as requireUtil, a as require$$0 } from "./index-BfdM1qcG.mjs";
2
2
  function _mergeNamespaces(n, m) {
3
3
  for (var i = 0; i < m.length; i++) {
4
4
  const e = m[i];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gemi",
3
- "version": "0.4.71",
3
+ "version": "0.4.73",
4
4
  "devDependencies": {
5
5
  "@babel/parser": "^7.25.4",
6
6
  "@repo/eslint-config": "*",
@@ -27,7 +27,7 @@
27
27
  "./runtime": "./dist/runtime/index.js",
28
28
  "./server": "./dist/server/index.js",
29
29
  "./kernel": "./dist/kernel/index.js",
30
- "./storage": "./dist/storage/index.js"
30
+ "./services": "./dist/services/index.js"
31
31
  },
32
32
  "files": [
33
33
  "dist/**/*"
@@ -1,2 +0,0 @@
1
- // @bun
2
- import"./chunk-7ce930fe69575c87.js";import"./chunk-65cd4d128b79bd93.js";import{nb as v,ob as B} from"./chunk-e344c95f8ae7a124.js";import{pb as z,qb as y} from"./chunk-448c9eceacddef90.js";import"./chunk-de75d134f236f4bb.js";import{parse as p} from"url";import{Buffer as M} from"buffer";import{request as k} from"http";function u(c){return new Promise((I,x)=>{const T=k({method:"GET",...c,hostname:c.hostname?.replace(/^\[(.+)\]$/,"$1")});T.on("error",(N)=>{x(Object.assign(new z("Unable to connect to instance metadata service"),N)),T.destroy()}),T.on("timeout",()=>{x(new z("TimeoutError from instance metadata service")),T.destroy()}),T.on("response",(N)=>{const{statusCode:O=400}=N;if(O<200||300<=O)x(Object.assign(new z("Error response received from instance metadata service"),{statusCode:O})),T.destroy();const E=[];N.on("data",(w)=>{E.push(w)}),N.on("end",()=>{I(M.concat(E)),T.destroy()})}),T.end()})}var K=(c)=>Boolean(c)&&typeof c==="object"&&typeof c.AccessKeyId==="string"&&typeof c.SecretAccessKey==="string"&&typeof c.Token==="string"&&typeof c.Expiration==="string",_=(c)=>({accessKeyId:c.AccessKeyId,secretAccessKey:c.SecretAccessKey,sessionToken:c.Token,expiration:new Date(c.Expiration),...c.AccountId&&{accountId:c.AccountId}});var hc=1000,Yc=0,D=({maxRetries:c=0,timeout:I=1000})=>({maxRetries:c,timeout:I});var m=(c,I)=>{let x=c();for(let T=0;T<I;T++)x=x.catch(c);return x};var Q="AWS_CONTAINER_CREDENTIALS_FULL_URI",X="AWS_CONTAINER_CREDENTIALS_RELATIVE_URI",b="AWS_CONTAINER_AUTHORIZATION_TOKEN",mc=(c={})=>{const{timeout:I,maxRetries:x}=D(c);return()=>m(async()=>{const T=await s({logger:c.logger}),N=JSON.parse(await C(I,T));if(!K(N))throw new y("Invalid response received from instance metadata service.",{logger:c.logger});return _(N)},x)},C=async(c,I)=>{if(process.env[b])I.headers={...I.headers,Authorization:process.env[b]};return(await u({...I,timeout:c})).toString()},a="169.254.170.2",n={localhost:!0,"127.0.0.1":!0},o={"http:":!0,"https:":!0},s=async({logger:c})=>{if(process.env[X])return{hostname:a,path:process.env[X]};if(process.env[Q]){const I=p(process.env[Q]);if(!I.hostname||!(I.hostname in n))throw new y(`${I.hostname} is not a valid container metadata service hostname`,{tryNextLink:!1,logger:c});if(!I.protocol||!(I.protocol in o))throw new y(`${I.protocol} is not a valid container metadata service protocol`,{tryNextLink:!1,logger:c});return{...I,port:I.port?parseInt(I.port,10):void 0}}throw new y("The container metadata credential provider cannot be used unless"+` the ${X} or ${Q} environment`+" variable is set",{tryNextLink:!1,logger:c})};class G extends y{constructor(c,I=!0){super(c,I);this.tryNextLink=I,this.name="InstanceMetadataV1FallbackError",Object.setPrototypeOf(this,G.prototype)}}var A;(function(c){c.IPv4="http://169.254.169.254",c.IPv6="http://[fd00:ec2::254]"})(A||(A={}));var H={environmentVariableSelector:(c)=>c["AWS_EC2_METADATA_SERVICE_ENDPOINT"],configFileSelector:(c)=>c["ec2_metadata_service_endpoint"],default:void 0};var f;(function(c){c.IPv4="IPv4",c.IPv6="IPv6"})(f||(f={}));var g="AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE",l="ec2_metadata_service_endpoint_mode",q={environmentVariableSelector:(c)=>c[g],configFileSelector:(c)=>c[l],default:f.IPv4};var Z=async()=>B(await r()||await d()),r=async()=>v(H)(),d=async()=>{const c=await v(q)();switch(c){case f.IPv4:return A.IPv4;case f.IPv6:return A.IPv6;default:throw new Error(`Unsupported endpoint mode: ${c}.`+` Select from ${Object.values(f)}`)}};var L=(c,I)=>{const x=300+Math.floor(Math.random()*300),T=new Date(Date.now()+x*1000);I.warn("Attempting credential expiration extension due to a credential service availability issue. A refresh of these "+`credentials will be attempted after ${new Date(T)}.\nFor more information, please visit: `+"https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html");const N=c.originalExpiration??c.expiration;return{...c,...N?{originalExpiration:N}:{},expiration:T}};var U=(c,I={})=>{const x=I?.logger||console;let T;return async()=>{let N;try{if(N=await c(),N.expiration&&N.expiration.getTime()<Date.now())N=L(N,x)}catch(O){if(T)x.warn("Credential renew failed: ",O),N=L(T,x);else throw O}return T=N,N}};var P="/latest/meta-data/iam/security-credentials/",e="/latest/api/token",W="AWS_EC2_METADATA_V1_DISABLED",t="ec2_metadata_v1_disabled",F="x-aws-ec2-metadata-token",oc=(c={})=>U(i(c),{logger:c.logger}),i=(c={})=>{let I=!1;const{logger:x,profile:T}=c,{timeout:N,maxRetries:O}=D(c),E=async(w,$)=>{if(I||$.headers?.[F]==null){let h=!1,Y=!1;const R=await v({environmentVariableSelector:(S)=>{const j=S[W];if(Y=!!j&&j!=="false",j===void 0)throw new y(`${W} not set in env, checking config file next.`,{logger:c.logger});return Y},configFileSelector:(S)=>{const j=S[t];return h=!!j&&j!=="false",h},default:!1},{profile:T})();if(c.ec2MetadataV1Disabled||R){const S=[];if(c.ec2MetadataV1Disabled)S.push("credential provider initialization (runtime option ec2MetadataV1Disabled)");if(h)S.push(`config file profile (${t})`);if(Y)S.push(`process environment variable (${W})`);throw new G(`AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${S.join(", ")}].`)}}const V=(await m(async()=>{let h;try{h=await Ic($)}catch(Y){if(Y.statusCode===401)I=!1;throw Y}return h},w)).trim();return m(async()=>{let h;try{h=await Tc(V,$,c)}catch(Y){if(Y.statusCode===401)I=!1;throw Y}return h},w)};return async()=>{const w=await Z();if(I)return x?.debug("AWS SDK Instance Metadata","using v1 fallback (no token fetch)"),E(O,{...w,timeout:N});else{let $;try{$=(await cc({...w,timeout:N})).toString()}catch(J){if(J?.statusCode===400)throw Object.assign(J,{message:"EC2 Metadata token request returned error"});else if(J.message==="TimeoutError"||[403,404,405].includes(J.statusCode))I=!0;return x?.debug("AWS SDK Instance Metadata","using v1 fallback (initial)"),E(O,{...w,timeout:N})}return E(O,{...w,headers:{[F]:$},timeout:N})}}},cc=async(c)=>u({...c,path:e,method:"PUT",headers:{"x-aws-ec2-metadata-token-ttl-seconds":"21600"}}),Ic=async(c)=>(await u({...c,path:P})).toString(),Tc=async(c,I,x)=>{const T=JSON.parse((await u({...I,path:P+c})).toString());if(!K(T))throw new y("Invalid response received from instance metadata service.",{logger:x.logger});return _(T)};export{D as providerConfigFromInit,u as httpRequest,Z as getInstanceMetadataEndpoint,oc as fromInstanceMetadata,mc as fromContainerMetadata,A as Endpoint,X as ENV_CMDS_RELATIVE_URI,Q as ENV_CMDS_FULL_URI,b as ENV_CMDS_AUTH_TOKEN,hc as DEFAULT_TIMEOUT,Yc as DEFAULT_MAX_RETRIES};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import"./chunk-7ce930fe69575c87.js";import"./chunk-65cd4d128b79bd93.js";import{qb as i,rb as f} from"./chunk-448c9eceacddef90.js";import{Cb as C,Db as N,xb as y,yb as K,zb as E} from"./chunk-de75d134f236f4bb.js";var F=(e)=>e&&(typeof e.sso_start_url==="string"||typeof e.sso_account_id==="string"||typeof e.sso_session==="string"||typeof e.sso_region==="string"||typeof e.sso_role_name==="string");var L=300000,_="To refresh this SSO session run 'aws sso login' with the corresponding profile.";var I={},M=async(e)=>{const{SSOOIDCClient:r}=await import("./chunk-e912bf7c7a0e988a.js");if(I[e])return I[e];const s=new r({region:e});return I[e]=s,s};var H=async(e,r)=>{const{CreateTokenCommand:s}=await import("./chunk-e912bf7c7a0e988a.js");return(await M(r)).send(new s({clientId:e.clientId,clientSecret:e.clientSecret,refreshToken:e.refreshToken,grantType:"refresh_token"}))};var v=(e)=>{if(e.expiration&&e.expiration.getTime()<Date.now())throw new f(`Token is expired. ${_}`,!1)};var m=(e,r,s=!1)=>{if(typeof r==="undefined")throw new f(`Value not present for '${e}' in SSO Token${s?". Cannot refresh":""}. ${_}`,!1)};import{promises as W} from"fs";var{writeFile:j}=W,b=(e,r)=>{const s=K(e),t=JSON.stringify(r,null,2);return j(s,t)};var G=new Date(0),U=(e={})=>async()=>{e.logger?.debug("@aws-sdk/token-providers - fromSso");const r=await N(e),s=y(e),t=r[s];if(!t)throw new f(`Profile '${s}' could not be found in shared credentials file.`,!1);else if(!t.sso_session)throw new f(`Profile '${s}' is missing required property 'sso_session'.`);const a=t.sso_session,c=(await C(e))[a];if(!c)throw new f(`Sso session '${a}' could not be found in shared credentials file.`,!1);for(let n of["sso_start_url","sso_region"])if(!c[n])throw new f(`Sso session '${a}' is missing required property '${n}'.`,!1);const{sso_start_url:p,sso_region:S}=c;let o;try{o=await E(a)}catch(n){throw new f(`The SSO session token associated with profile=${s} was not found or is invalid. ${_}`,!1)}m("accessToken",o.accessToken),m("expiresAt",o.expiresAt);const{accessToken:x,expiresAt:u}=o,l={token:x,expiration:new Date(u)};if(l.expiration.getTime()-Date.now()>L)return l;if(Date.now()-G.getTime()<30000)return v(l),l;m("clientId",o.clientId,!0),m("clientSecret",o.clientSecret,!0),m("refreshToken",o.refreshToken,!0);try{G.setTime(Date.now());const n=await H(o,S);m("accessToken",n.accessToken),m("expiresIn",n.expiresIn);const h=new Date(Date.now()+n.expiresIn*1000);try{await b(a,{...o,accessToken:n.accessToken,expiresAt:h.toISOString(),refreshToken:n.refreshToken})}catch(O){}return{token:n.accessToken,expiration:h}}catch(n){return v(l),l}};var T=!1,P=async({ssoStartUrl:e,ssoSession:r,ssoAccountId:s,ssoRegion:t,ssoRoleName:a,ssoClient:d,clientConfig:c,profile:p,logger:S})=>{let o;const x="To refresh this SSO session run aws sso login with the corresponding profile.";if(r)try{const g=await U({profile:p})();o={accessToken:g.token,expiresAt:new Date(g.expiration).toISOString()}}catch(g){throw new i(g.message,{tryNextLink:T,logger:S})}else try{o=await E(e)}catch(g){throw new i("The SSO session associated with this profile is invalid. To refresh this SSO session run aws sso login with the corresponding profile.",{tryNextLink:T,logger:S})}if(new Date(o.expiresAt).getTime()-Date.now()<=0)throw new i("The SSO session associated with this profile has expired. To refresh this SSO session run aws sso login with the corresponding profile.",{tryNextLink:T,logger:S});const{accessToken:u}=o,{SSOClient:l,GetRoleCredentialsCommand:n}=await import("./chunk-466213c5585251ad.js"),h=d||new l(Object.assign({},c??{},{region:c?.region??t}));let O;try{O=await h.send(new n({accountId:s,roleName:a,accessToken:u}))}catch(g){throw new i(g,{tryNextLink:T,logger:S})}const{roleCredentials:{accessKeyId:w,secretAccessKey:k,sessionToken:R,expiration:D,credentialScope:A,accountId:$}={}}=O;if(!w||!k||!R||!D)throw new i("SSO returns an invalid temporary credential.",{tryNextLink:T,logger:S});return{accessKeyId:w,secretAccessKey:k,sessionToken:R,expiration:new Date(D),...A&&{credentialScope:A},...$&&{accountId:$}}};var q=(e,r)=>{const{sso_start_url:s,sso_account_id:t,sso_region:a,sso_role_name:d}=e;if(!s||!t||!a||!d)throw new i('Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", '+`"sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(e).join(", ")}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,{tryNextLink:!1,logger:r});return e};var Ee=(e={})=>async()=>{e.logger?.debug("@aws-sdk/credential-provider-sso - fromSSO");const{ssoStartUrl:r,ssoAccountId:s,ssoRegion:t,ssoRoleName:a,ssoSession:d}=e,{ssoClient:c}=e,p=y(e);if(!r&&!s&&!t&&!a&&!d){const o=(await N(e))[p];if(!o)throw new i(`Profile ${p} was not found.`,{logger:e.logger});if(!F(o))throw new i(`Profile ${p} is not configured with SSO credentials.`,{logger:e.logger});if(o?.sso_session){const w=(await C(e))[o.sso_session],k=` configurations in profile ${p} and sso-session ${o.sso_session}`;if(t&&t!==w.sso_region)throw new i("Conflicting SSO region"+k,{tryNextLink:!1,logger:e.logger});if(r&&r!==w.sso_start_url)throw new i("Conflicting SSO start_url"+k,{tryNextLink:!1,logger:e.logger});o.sso_region=w.sso_region,o.sso_start_url=w.sso_start_url}const{sso_start_url:x,sso_account_id:u,sso_region:l,sso_role_name:n,sso_session:h}=q(o,e.logger);return P({ssoStartUrl:x,ssoSession:h,ssoAccountId:u,ssoRegion:l,ssoRoleName:n,ssoClient:c,clientConfig:e.clientConfig,profile:p})}else if(!r||!s||!t||!a)throw new i('Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"',{tryNextLink:!1,logger:e.logger});else return P({ssoStartUrl:r,ssoSession:d,ssoAccountId:s,ssoRegion:t,ssoRoleName:a,ssoClient:c,clientConfig:e.clientConfig,profile:p})};export{q as validateSsoProfile,F as isSsoProfile,Ee as fromSSO};
@@ -1 +0,0 @@
1
- class n extends Error{constructor(t,e=!0){let o,r=!0;if(typeof e==="boolean")o=void 0,r=e;else if(e!=null&&typeof e==="object")o=e.logger,r=e.tryNextLink??!0;super(t);this.name="ProviderError",this.tryNextLink=r,Object.setPrototypeOf(this,n.prototype),o?.debug?.(`@smithy/property-provider ${r?"->":"(!)"} ${t}`)}static from(t,e=!0){return Object.assign(new this(t.message,e),t)}}class u extends n{constructor(t,e=!0){super(t,e);this.name="CredentialsProviderError",Object.setPrototypeOf(this,u.prototype)}}class l extends n{constructor(t,e=!0){super(t,e);this.name="TokenProviderError",Object.setPrototypeOf(this,l.prototype)}}var v=(...t)=>async()=>{if(t.length===0)throw new n("No providers in chain");let e;for(let o of t)try{return await o()}catch(r){if(e=r,r?.tryNextLink)continue;throw r}throw e};var w=(t)=>()=>Promise.resolve(t);var b=(t,e,o)=>{let r,i,s,f=!1;const a=async()=>{if(!i)i=t();try{r=await i,s=!0,f=!1}finally{i=void 0}return r};if(e===void 0)return async(c)=>{if(!s||c?.forceRefresh)r=await a();return r};return async(c)=>{if(!s||c?.forceRefresh)r=await a();if(f)return r;if(o&&!o(r))return f=!0,r;if(e(r))return await a(),r;return r}};export{n as pb,u as qb,l as rb,v as sb,w as tb,b as ub};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{y as i} from"./chunk-7ce930fe69575c87.js";import"./chunk-d7c78cd1ab7dc7ed.js";import{Aa as fe,F as Fe,G as _e,J as ee,K as Ae,O as se,P as te,R as re,S as ae,V as ie,W as le,aa as ts,ba as k,ga as z,ha as Ve,ia as h,pa as He,qa as u,ra as Ne,sa as pe,ta as ye,ua as $e,va as Pe,xa as c,ya as y} from"./chunk-e565da7343a33b65.js";import{$a as be,Ca as Le,Da as Ce,Ea as Me,Fa as We,Ja as B,Ka as _,La as $,Ma as Ke,Na as V,Oa as N,Pa as f,Qa as Qe,Ra as me,Sa as he,Ta as ue,Ua as we,Va as Xe,Wa as Ye,Ya as rs,Za as as,_a as Ze,bb as xe,cb as je,db as ve,eb as Te,fb as x,gb as ke,hb as Re,ib as qe,jb as Ee,kb as Je,lb as Ue} from"./chunk-4b8da0fabb3539db.js";import"./chunk-65cd4d128b79bd93.js";import{nb as l,ob as ne} from"./chunk-e344c95f8ae7a124.js";import"./chunk-448c9eceacddef90.js";import"./chunk-de75d134f236f4bb.js";var p=i(B(),1);var P=i(x(),1);var cs=function(e){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"awsssoportal",region:e.region},propertiesExtractor:(s,t)=>({signingProperties:{config:s,context:t}})}},b=function(e){return{schemeId:"smithy.api#noAuth"}},J=async(e,s,t)=>{return{operation:_(s).operation,region:await $(e.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()}},U=(e)=>{const s=[];switch(e.operation){case"GetRoleCredentials":{s.push(b(e));break}case"ListAccountRoles":{s.push(b(e));break}case"ListAccounts":{s.push(b(e));break}case"Logout":{s.push(b(e));break}default:s.push(cs(e))}return s},I=(e)=>{return{...P.resolveAwsSdkSigV4Config(e)}};var L=(e)=>{return{...e,useDualstackEndpoint:e.useDualstackEndpoint??!1,useFipsEndpoint:e.useFipsEndpoint??!1,defaultSigningName:"awsssoportal"}},C={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}};var M={name:"@aws-sdk/client-sso",description:"AWS SDK for JavaScript Sso Client for Node.js, Browser and React Native",version:"3.629.0",scripts:{build:"concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'","build:cjs":"node ../../scripts/compilation/inline client-sso","build:es":"tsc -p tsconfig.es.json","build:include:deps":"lerna run --scope $npm_package_name --include-dependencies build","build:types":"tsc -p tsconfig.types.json","build:types:downlevel":"downlevel-dts dist-types dist-types/ts3.4",clean:"rimraf ./dist-* && rimraf *.tsbuildinfo","extract:docs":"api-extractor run --local","generate:client":"node ../../scripts/generate-clients/single-service --solo sso"},main:"./dist-cjs/index.js",types:"./dist-types/index.d.ts",module:"./dist-es/index.js",sideEffects:!1,dependencies:{"@aws-crypto/sha256-browser":"5.2.0","@aws-crypto/sha256-js":"5.2.0","@aws-sdk/core":"3.629.0","@aws-sdk/middleware-host-header":"3.620.0","@aws-sdk/middleware-logger":"3.609.0","@aws-sdk/middleware-recursion-detection":"3.620.0","@aws-sdk/middleware-user-agent":"3.620.0","@aws-sdk/region-config-resolver":"3.614.0","@aws-sdk/types":"3.609.0","@aws-sdk/util-endpoints":"3.614.0","@aws-sdk/util-user-agent-browser":"3.609.0","@aws-sdk/util-user-agent-node":"3.614.0","@smithy/config-resolver":"^3.0.5","@smithy/core":"^2.3.2","@smithy/fetch-http-handler":"^3.2.4","@smithy/hash-node":"^3.0.3","@smithy/invalid-dependency":"^3.0.3","@smithy/middleware-content-length":"^3.0.5","@smithy/middleware-endpoint":"^3.1.0","@smithy/middleware-retry":"^3.0.14","@smithy/middleware-serde":"^3.0.3","@smithy/middleware-stack":"^3.0.3","@smithy/node-config-provider":"^3.1.4","@smithy/node-http-handler":"^3.1.4","@smithy/protocol-http":"^4.1.0","@smithy/smithy-client":"^3.1.12","@smithy/types":"^3.3.0","@smithy/url-parser":"^3.0.3","@smithy/util-base64":"^3.0.0","@smithy/util-body-length-browser":"^3.0.0","@smithy/util-body-length-node":"^3.0.0","@smithy/util-defaults-mode-browser":"^3.0.14","@smithy/util-defaults-mode-node":"^3.0.14","@smithy/util-endpoints":"^2.0.5","@smithy/util-middleware":"^3.0.3","@smithy/util-retry":"^3.0.3","@smithy/util-utf8":"^3.0.0",tslib:"^2.6.2"},devDependencies:{"@tsconfig/node16":"16.1.3","@types/node":"^16.18.96",concurrently:"7.0.0","downlevel-dts":"0.10.1",rimraf:"3.0.2",typescript:"~4.9.5"},engines:{node:">=16.0.0"},typesVersions:{"<4.0":{"dist-types/*":["dist-types/ts3.4/*"]}},files:["dist-*/**"],author:{name:"AWS SDK for JavaScript Team",url:"https://aws.amazon.com/javascript/"},license:"Apache-2.0",browser:{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.browser"},"react-native":{"./dist-es/runtimeConfig":"./dist-es/runtimeConfig.native"},homepage:"https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sso",repository:{type:"git",url:"https://github.com/aws/aws-sdk-js-v3.git",directory:"clients/client-sso"}};var Se=i(x(),1);var de=i(x(),1),oe=i(B(),1);var W={["required"]:!1,type:"String"},A={["required"]:!0,default:!1,type:"Boolean"},K={["ref"]:"Endpoint"},T={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseFIPS"},!0]},H={["fn"]:"booleanEquals",["argv"]:[{["ref"]:"UseDualStack"},!0]},d={},Q={["fn"]:"getAttr",["argv"]:[{["ref"]:"PartitionResult"},"supportsFIPS"]},O={["ref"]:"PartitionResult"},X={["fn"]:"booleanEquals",["argv"]:[!0,{["fn"]:"getAttr",["argv"]:[O,"supportsDualStack"]}]},Y=[T],Z=[H],j=[{["ref"]:"Region"}],ls={version:"1.0",parameters:{Region:W,UseDualStack:A,UseFIPS:A,Endpoint:W},rules:[{conditions:[{["fn"]:"isSet",["argv"]:[K]}],rules:[{conditions:Y,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:"error"},{conditions:Z,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:"error"},{endpoint:{url:K,properties:d,headers:d},type:"endpoint"}],type:"tree"},{conditions:[{["fn"]:"isSet",["argv"]:j}],rules:[{conditions:[{["fn"]:"aws.partition",["argv"]:j,assign:"PartitionResult"}],rules:[{conditions:[T,H],rules:[{conditions:[{["fn"]:"booleanEquals",["argv"]:[!0,Q]},X],rules:[{endpoint:{url:"https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:d,headers:d},type:"endpoint"}],type:"tree"},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:"error"}],type:"tree"},{conditions:Y,rules:[{conditions:[{["fn"]:"booleanEquals",["argv"]:[Q,!0]}],rules:[{conditions:[{["fn"]:"stringEquals",["argv"]:[{["fn"]:"getAttr",["argv"]:[O,"name"]},"aws-us-gov"]}],endpoint:{url:"https://portal.sso.{Region}.amazonaws.com",properties:d,headers:d},type:"endpoint"},{endpoint:{url:"https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}",properties:d,headers:d},type:"endpoint"}],type:"tree"},{error:"FIPS is enabled but this partition does not support FIPS",type:"error"}],type:"tree"},{conditions:Z,rules:[{conditions:[X],rules:[{endpoint:{url:"https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:d,headers:d},type:"endpoint"}],type:"tree"},{error:"DualStack is enabled but this partition does not support DualStack",type:"error"}],type:"tree"},{endpoint:{url:"https://portal.sso.{Region}.{PartitionResult#dnsSuffix}",properties:d,headers:d},type:"endpoint"}],type:"tree"}],type:"tree"},{error:"Invalid Configuration: Missing Region",type:"error"}]},G=ls;var g=(e,s={})=>{return N(G,{endpointParams:e,logger:s.logger})};V.aws=f;var ce=(e)=>{return{apiVersion:"2019-06-10",base64Decoder:e?.base64Decoder??se,base64Encoder:e?.base64Encoder??ae,disableHostPrefix:e?.disableHostPrefix??!1,endpointProvider:e?.endpointProvider??g,extensions:e?.extensions??[],httpAuthSchemeProvider:e?.httpAuthSchemeProvider??U,httpAuthSchemes:e?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:(s)=>s.getIdentityProvider("aws.auth#sigv4"),signer:new de.AwsSdkSigV4Signer},{schemeId:"smithy.api#noAuth",identityProvider:(s)=>s.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new oe.NoAuthSigner}],logger:e?.logger??new ee,serviceId:e?.serviceId??"SSO",urlParser:e?.urlParser??ne,utf8Decoder:e?.utf8Decoder??te,utf8Encoder:e?.utf8Encoder??re}};var ze=(e)=>{ye(process.version);const s=Ee(e),t=()=>s().then(pe),r=ce(e);return Se.emitWarningIfUnsupportedVersion(process.version),{...r,...e,runtime:"node",defaultsMode:s,bodyLengthChecker:e?.bodyLengthChecker??qe,defaultUserAgentProvider:e?.defaultUserAgentProvider??ke({serviceId:r.serviceId,clientVersion:M.version}),maxAttempts:e?.maxAttempts??l(xe),region:e?.region??l(ue,we),requestHandler:ie.create(e?.requestHandler??t),retryMode:e?.retryMode??l({...ve,default:async()=>(await t()).retryMode||be}),sha256:e?.sha256??Re.bind(null,"sha256"),streamCollector:e?.streamCollector??le,useDualstackEndpoint:e?.useDualstackEndpoint??l(me),useFipsEndpoint:e?.useFipsEndpoint??l(he)}};var De=(e)=>{const s=e.httpAuthSchemes;let{httpAuthSchemeProvider:t,credentials:r}=e;return{setHttpAuthScheme(a){const n=s.findIndex((D)=>D.schemeId===a.schemeId);if(n===-1)s.push(a);else s.splice(n,1,a)},httpAuthSchemes(){return s},setHttpAuthSchemeProvider(a){t=a},httpAuthSchemeProvider(){return t},setCredentials(a){r=a},credentials(){return r}}},Be=(e)=>{return{httpAuthSchemes:e.httpAuthSchemes(),httpAuthSchemeProvider:e.httpAuthSchemeProvider(),credentials:e.credentials()}};var v=(e)=>e,Ie=(e,s)=>{const t={...v(Je(e)),...v($e(e)),...v(Fe(e)),...v(De(e))};return s.forEach((r)=>r.configure(t)),{...e,...Ue(t),...Pe(t),..._e(t),...Be(t)}};class ps extends Ae{constructor(...[e]){const s=ze(e||{}),t=L(s),r=Ke(t),a=je(r),n=Xe(a),D=Le(n),ns=Ze(D),ds=I(ns),F=Ie(ds,e?.extensions||[]);super(F);this.config=F,this.middlewareStack.use(Qe(this.config)),this.middlewareStack.use(Te(this.config)),this.middlewareStack.use(Ye(this.config)),this.middlewareStack.use(Ce(this.config)),this.middlewareStack.use(Me(this.config)),this.middlewareStack.use(We(this.config)),this.middlewareStack.use(p.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:J,identityProviderConfigProvider:async(os)=>new p.DefaultIdentityProviderConfig({"aws.auth#sigv4":os.credentials})})),this.middlewareStack.use(p.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}}class o extends He{constructor(e){super(e);Object.setPrototypeOf(this,o.prototype)}}class R extends o{constructor(e){super({name:"InvalidRequestException",$fault:"client",...e});this.name="InvalidRequestException",this.$fault="client",Object.setPrototypeOf(this,R.prototype)}}class q extends o{constructor(e){super({name:"ResourceNotFoundException",$fault:"client",...e});this.name="ResourceNotFoundException",this.$fault="client",Object.setPrototypeOf(this,q.prototype)}}class E extends o{constructor(e){super({name:"TooManyRequestsException",$fault:"client",...e});this.name="TooManyRequestsException",this.$fault="client",Object.setPrototypeOf(this,E.prototype)}}class S extends o{constructor(e){super({name:"UnauthorizedException",$fault:"client",...e});this.name="UnauthorizedException",this.$fault="client",Object.setPrototypeOf(this,S.prototype)}}var Oe=(e)=>({...e,...e.accessToken&&{accessToken:k}}),ys=(e)=>({...e,...e.secretAccessKey&&{secretAccessKey:k},...e.sessionToken&&{sessionToken:k}}),Ge=(e)=>({...e,...e.roleCredentials&&{roleCredentials:ys(e.roleCredentials)}});var m=i(x(),1),ge=i(B(),1);var es=async(e,s)=>{const t=ge.requestBuilder(e,s),r=c({},vs,{[zs]:e[Rs]});t.bp("/federation/credentials");const a=c({[Ss]:[,z(e[Es],"roleName")],[qs]:[,z(e[ks],"accountId")]});let n;return t.m("GET").h(r).q(a).b(n),t.build()};var ss=async(e,s)=>{if(e.statusCode!==200&&e.statusCode>=300)return ms(e,s);const t=c({$metadata:w(e)}),r=z(Ve(await m.parseJsonBody(e.body,s)),"body"),a=y(r,{roleCredentials:fe});return Object.assign(t,a),t};var ms=async(e,s)=>{const t={...e,body:await m.parseJsonErrorBody(e.body,s)},r=m.loadRestJsonErrorCode(e,t.body);switch(r){case"InvalidRequestException":case"com.amazonaws.sso#InvalidRequestException":throw await us(t,s);case"ResourceNotFoundException":case"com.amazonaws.sso#ResourceNotFoundException":throw await ws(t,s);case"TooManyRequestsException":case"com.amazonaws.sso#TooManyRequestsException":throw await bs(t,s);case"UnauthorizedException":case"com.amazonaws.sso#UnauthorizedException":throw await xs(t,s);default:const a=t.body;return hs({output:e,parsedBody:a,errorCode:r})}},hs=Ne(o),us=async(e,s)=>{const t=c({}),r=e.body,a=y(r,{message:h});Object.assign(t,a);const n=new R({$metadata:w(e),...t});return u(n,e.body)},ws=async(e,s)=>{const t=c({}),r=e.body,a=y(r,{message:h});Object.assign(t,a);const n=new q({$metadata:w(e),...t});return u(n,e.body)},bs=async(e,s)=>{const t=c({}),r=e.body,a=y(r,{message:h});Object.assign(t,a);const n=new E({$metadata:w(e),...t});return u(n,e.body)},xs=async(e,s)=>{const t=c({}),r=e.body,a=y(r,{message:h});Object.assign(t,a);const n=new S({$metadata:w(e),...t});return u(n,e.body)},w=(e)=>({httpStatusCode:e.statusCode,requestId:e.headers["x-amzn-requestid"]??e.headers["x-amzn-request-id"]??e.headers["x-amz-request-id"],extendedRequestId:e.headers["x-amz-id-2"],cfId:e.headers["x-amz-cf-id"]});var vs=(e)=>e!==void 0&&e!==null&&e!==""&&(!Object.getOwnPropertyNames(e).includes("length")||e.length!=0)&&(!Object.getOwnPropertyNames(e).includes("size")||e.size!=0),ks="accountId",Rs="accessToken",qs="account_id";var Es="roleName",Ss="role_name",zs="x-amz-sso_bearer_token";class Ds extends ts.classBuilder().ep({...C}).m(function(e,s,t,r){return[rs(t,this.serialize,this.deserialize),as(t,e.getEndpointParameterInstructions())]}).s("SWBPortalService","GetRoleCredentials",{}).n("SSOClient","GetRoleCredentialsCommand").f(Oe,Ge).ser(es).de(ss).build(){}export{ps as SSOClient,Ds as GetRoleCredentialsCommand};