@@ -68,6 +68,9 @@ async function generateNestedClients() {
6868
6969 replacePackageJsonImport ( join ( destinationFolder , "runtimeConfig.browser.ts" ) ) ;
7070 replacePackageJsonImport ( join ( destinationFolder , "runtimeConfig.ts" ) ) ;
71+
72+ replaceCredentialDefaultProvider ( join ( destinationFolder , "runtimeConfig.browser.ts" ) ) ;
73+ replaceCredentialDefaultProvider ( join ( destinationFolder , "runtimeConfig.ts" ) ) ;
7174 }
7275}
7376
@@ -113,6 +116,9 @@ async function generateNestedClient(clientName, operations) {
113116 rmSync ( join ( __dirname , ".." , ".." , ".." , "codegen" , "sdk-codegen" , `smithy-build-${ clientName } .json` ) ) ;
114117}
115118
119+ /**
120+ * Fix package json import filesystem level.
121+ */
116122function replacePackageJsonImport ( file ) {
117123 writeFileSync (
118124 file ,
@@ -123,6 +129,21 @@ function replacePackageJsonImport(file) {
123129 ) ;
124130}
125131
132+ /**
133+ * Breaks the circular dependency of STS and the default credential chain.
134+ * STS has an auth operation but the portion of it used for credential resolution does
135+ * not need the default chain.
136+ */
137+ function replaceCredentialDefaultProvider ( file ) {
138+ writeFileSync (
139+ file ,
140+ readFileSync ( file , "utf-8" )
141+ . replace ( `import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node";` , `` )
142+ . replace ( `credentialDefaultProvider: config?.credentialDefaultProvider ?? credentialDefaultProvider,` , `` )
143+ . replace ( `await credentialDefaultProvider(` , `await config!.credentialDefaultProvider!(` )
144+ ) ;
145+ }
146+
126147if ( process . argv . includes ( "--exec" ) ) {
127148 generateNestedClients ( ) . catch ( console . error ) ;
128149}
0 commit comments