@shawnstack/quickforge 1.3.20 → 1.3.22

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 (188) hide show
  1. package/README.md +348 -348
  2. package/dist/assets/{anthropic-Bj3HAZgj.js → anthropic-CDKnv1FQ.js} +1 -1
  3. package/dist/assets/{azure-openai-responses-IdZZrSrI.js → azure-openai-responses-BnUwVl-8.js} +1 -1
  4. package/dist/assets/{google-Brt_lS1J.js → google-DOEyCDZy.js} +1 -1
  5. package/dist/assets/{google-vertex-B6HsoZ34.js → google-vertex-BPPf3car.js} +1 -1
  6. package/dist/assets/{icons-BHkxP7oT.js → icons-WD3UkVNM.js} +1 -1
  7. package/dist/assets/{index-D0CVLdX_.js → index-CjTN0qaQ.js} +586 -554
  8. package/dist/assets/index-eeLjaV06.css +3 -0
  9. package/dist/assets/{mistral-CenXqwPz.js → mistral-Ber29mja.js} +1 -1
  10. package/dist/assets/{openai-codex-responses-D9ffGwbj.js → openai-codex-responses-D8gq8a3l.js} +1 -1
  11. package/dist/assets/{openai-completions-eWdeSGBG.js → openai-completions-CATWPFBp.js} +1 -1
  12. package/dist/assets/{openai-responses-Cavpmjeu.js → openai-responses-DxcB6Ksu.js} +1 -1
  13. package/dist/assets/{openai-responses-shared-DF3ZGaUx.js → openai-responses-shared-a_PAPxTO.js} +1 -1
  14. package/dist/assets/{react-vendor-CmyL2roG.js → react-vendor-BcQaTQ90.js} +1 -1
  15. package/dist/index.html +4 -4
  16. package/node_modules/@aws-sdk/client-bedrock-runtime/dist-cjs/index.js +1 -0
  17. package/node_modules/@aws-sdk/client-bedrock-runtime/dist-es/models/enums.js +1 -0
  18. package/node_modules/@aws-sdk/client-bedrock-runtime/package.json +11 -11
  19. package/node_modules/@aws-sdk/core/package.json +3 -3
  20. package/node_modules/@aws-sdk/credential-provider-env/package.json +3 -3
  21. package/node_modules/@aws-sdk/credential-provider-http/package.json +5 -5
  22. package/node_modules/@aws-sdk/credential-provider-ini/package.json +11 -11
  23. package/node_modules/@aws-sdk/credential-provider-login/package.json +4 -4
  24. package/node_modules/@aws-sdk/credential-provider-node/package.json +9 -9
  25. package/node_modules/@aws-sdk/credential-provider-process/package.json +3 -3
  26. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/LICENSE +201 -0
  27. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/README.md +62 -0
  28. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +156 -0
  29. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/constants.js +2 -0
  30. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromEnvSigningName.js +16 -0
  31. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +80 -0
  32. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromStatic.js +8 -0
  33. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js +11 -0
  34. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js +10 -0
  35. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/index.js +4 -0
  36. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/nodeProvider.js +5 -0
  37. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/validateTokenExpiry.js +7 -0
  38. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/validateTokenKey.js +7 -0
  39. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/writeSSOTokenToFile.js +8 -0
  40. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +69 -0
  41. package/node_modules/@aws-sdk/credential-provider-sso/package.json +5 -5
  42. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +4 -4
  43. package/node_modules/@aws-sdk/eventstream-handler-node/package.json +2 -2
  44. package/node_modules/@aws-sdk/middleware-eventstream/package.json +2 -2
  45. package/node_modules/@aws-sdk/middleware-websocket/package.json +5 -5
  46. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
  47. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
  48. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
  49. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
  50. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
  51. package/node_modules/@aws-sdk/nested-clients/package.json +6 -6
  52. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +2 -2
  53. package/node_modules/@aws-sdk/token-providers/package.json +4 -4
  54. package/node_modules/@nodable/entities/package.json +1 -1
  55. package/node_modules/@nodable/entities/src/EntityDecoder.js +1 -1
  56. package/node_modules/@nodable/entities/src/entities.js +0 -18
  57. package/node_modules/@smithy/core/dist-cjs/index.js +3 -4
  58. package/node_modules/@smithy/core/dist-cjs/submodules/client/index.js +3 -11
  59. package/node_modules/@smithy/core/dist-cjs/submodules/config/index.browser.js +2 -2
  60. package/node_modules/@smithy/core/dist-cjs/submodules/config/index.js +2 -2
  61. package/node_modules/@smithy/core/dist-cjs/submodules/config/index.native.js +2 -2
  62. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.browser.js +9 -40
  63. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js +9 -40
  64. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +12 -142
  65. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +7 -9
  66. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.browser.js +2 -2
  67. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +2 -2
  68. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.native.js +2 -2
  69. package/node_modules/@smithy/core/dist-cjs/submodules/transport/index.js +184 -0
  70. package/node_modules/@smithy/core/dist-es/index.js +6 -6
  71. package/node_modules/@smithy/core/dist-es/submodules/client/index.js +2 -2
  72. package/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/checkRegion.js +1 -1
  73. package/node_modules/@smithy/core/dist-es/submodules/endpoints/index.browser.js +2 -2
  74. package/node_modules/@smithy/core/dist-es/submodules/endpoints/index.js +2 -2
  75. package/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/toEndpointV1.js +1 -1
  76. package/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/resolveEndpointConfig.js +1 -1
  77. package/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/index.js +1 -1
  78. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +1 -1
  79. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +1 -2
  80. package/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +1 -1
  81. package/node_modules/@smithy/core/dist-es/submodules/protocols/index.js +5 -5
  82. package/node_modules/@smithy/core/dist-es/submodules/protocols/middleware-content-length/contentLengthMiddleware.js +1 -1
  83. package/node_modules/@smithy/core/dist-es/submodules/protocols/requestBuilder.js +1 -1
  84. package/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaDeserializationMiddleware.js +3 -4
  85. package/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaSerializationMiddleware.js +1 -2
  86. package/node_modules/@smithy/core/dist-es/submodules/serde/middleware-serde/deserializerMiddleware.js +1 -1
  87. package/node_modules/@smithy/core/dist-es/submodules/transport/index.js +9 -0
  88. package/node_modules/@smithy/core/dist-es/submodules/{protocols/url-parser → transport}/parseUrl.js +1 -1
  89. package/node_modules/@smithy/core/dist-es/submodules/{endpoints → transport}/toEndpointV1.js +1 -1
  90. package/node_modules/@smithy/core/package.json +19 -10
  91. package/node_modules/@smithy/core/transport.js +5 -0
  92. package/node_modules/@smithy/credential-provider-imds/dist-cjs/index.js +14 -13
  93. package/node_modules/@smithy/credential-provider-imds/dist-es/fromContainerMetadata.js +14 -13
  94. package/node_modules/@smithy/credential-provider-imds/package.json +2 -2
  95. package/node_modules/@smithy/fetch-http-handler/package.json +2 -2
  96. package/node_modules/@smithy/node-http-handler/package.json +2 -2
  97. package/node_modules/@smithy/signature-v4/package.json +2 -2
  98. package/node_modules/eventsource-parser/README.md +31 -0
  99. package/node_modules/eventsource-parser/dist/index.cjs +21 -10
  100. package/node_modules/eventsource-parser/dist/index.js +21 -10
  101. package/node_modules/eventsource-parser/dist/stream.cjs +4 -3
  102. package/node_modules/eventsource-parser/dist/stream.js +4 -3
  103. package/node_modules/eventsource-parser/package.json +8 -8
  104. package/node_modules/hasown/CHANGELOG.md +7 -0
  105. package/node_modules/hasown/package.json +4 -5
  106. package/node_modules/protobufjs/dist/light/protobuf.js +7 -5
  107. package/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
  108. package/node_modules/protobufjs/dist/minimal/protobuf.js +3 -3
  109. package/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
  110. package/node_modules/protobufjs/dist/protobuf.js +7 -5
  111. package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  112. package/node_modules/protobufjs/package.json +1 -1
  113. package/node_modules/protobufjs/src/converter.js +4 -2
  114. package/node_modules/protobufjs/src/roots.js +1 -1
  115. package/node_modules/typebox/build/type/script/mapping.mjs +15 -8
  116. package/node_modules/typebox/build/type/script/parser.mjs +2 -1
  117. package/node_modules/typebox/package.json +29 -29
  118. package/package.json +1 -1
  119. package/server/agent-manager.mjs +63 -25
  120. package/server/agent-profiles.mjs +191 -0
  121. package/server/auto-compaction.mjs +20 -0
  122. package/server/index.mjs +32 -8
  123. package/server/mcp/registry.mjs +13 -2
  124. package/server/routes/agent-profiles.mjs +172 -0
  125. package/server/routes/lan-access.mjs +20 -0
  126. package/server/routes/scheduled-tasks.mjs +161 -47
  127. package/server/routes/shared-conversation.mjs +14 -0
  128. package/server/routes/storage.mjs +10 -0
  129. package/server/routes/terminal.mjs +13 -3
  130. package/server/session-utils.mjs +2 -2
  131. package/server/storage.mjs +3 -4
  132. package/server/system-prompt.mjs +10 -5
  133. package/server/terminal/terminal-manager.mjs +9 -1
  134. package/server/tools/definitions.mjs +2 -7
  135. package/server/utils/response.mjs +4 -0
  136. package/dist/assets/index-D0W9hAl_.css +0 -3
  137. package/node_modules/@smithy/core/dist-cjs/getSmithyContext.js +0 -6
  138. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js +0 -21
  139. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js +0 -21
  140. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js +0 -46
  141. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/index.js +0 -6
  142. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/resolveAuthOptions.js +0 -24
  143. package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/getHttpSigningMiddleware.js +0 -19
  144. package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/httpSigningMiddleware.js +0 -27
  145. package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/index.js +0 -5
  146. package/node_modules/@smithy/core/dist-cjs/normalizeProvider.js +0 -10
  147. package/node_modules/@smithy/core/dist-cjs/pagination/createPaginator.js +0 -44
  148. package/node_modules/@smithy/core/dist-cjs/request-builder/requestBuilder.js +0 -5
  149. package/node_modules/@smithy/core/dist-cjs/setFeature.js +0 -14
  150. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/DefaultIdentityProviderConfig.js +0 -18
  151. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.js +0 -38
  152. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.js +0 -15
  153. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/index.js +0 -6
  154. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/noAuth.js +0 -9
  155. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/index.js +0 -6
  156. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/memoizeIdentityProvider.js +0 -61
  157. package/node_modules/@smithy/core/dist-es/request-builder/requestBuilder.js +0 -1
  158. package/node_modules/@smithy/core/dist-es/submodules/client/util-middleware/getSmithyContext.js +0 -2
  159. package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/TestVectors.fixture.js +0 -146
  160. package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/vectorTypes.fixture.js +0 -1
  161. package/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/index.js +0 -2
  162. package/node_modules/@smithy/node-http-handler/dist-es/readable.mock.js +0 -21
  163. package/node_modules/@smithy/node-http-handler/dist-es/server.mock.js +0 -88
  164. package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/readable.mock.js +0 -21
  165. package/node_modules/@smithy/signature-v4/dist-es/suite.fixture.js +0 -399
  166. /package/node_modules/@smithy/core/dist-es/{middleware-http-auth-scheme → legacy-root-exports/middleware-http-auth-scheme}/getHttpAuthSchemeEndpointRuleSetPlugin.js +0 -0
  167. /package/node_modules/@smithy/core/dist-es/{middleware-http-auth-scheme → legacy-root-exports/middleware-http-auth-scheme}/getHttpAuthSchemePlugin.js +0 -0
  168. /package/node_modules/@smithy/core/dist-es/{middleware-http-auth-scheme → legacy-root-exports/middleware-http-auth-scheme}/httpAuthSchemeMiddleware.js +0 -0
  169. /package/node_modules/@smithy/core/dist-es/{middleware-http-auth-scheme → legacy-root-exports/middleware-http-auth-scheme}/index.js +0 -0
  170. /package/node_modules/@smithy/core/dist-es/{middleware-http-auth-scheme → legacy-root-exports/middleware-http-auth-scheme}/resolveAuthOptions.js +0 -0
  171. /package/node_modules/@smithy/core/dist-es/{middleware-http-signing → legacy-root-exports/middleware-http-signing}/getHttpSigningMiddleware.js +0 -0
  172. /package/node_modules/@smithy/core/dist-es/{middleware-http-signing → legacy-root-exports/middleware-http-signing}/httpSigningMiddleware.js +0 -0
  173. /package/node_modules/@smithy/core/dist-es/{middleware-http-signing → legacy-root-exports/middleware-http-signing}/index.js +0 -0
  174. /package/node_modules/@smithy/core/dist-es/{pagination → legacy-root-exports/pagination}/createPaginator.js +0 -0
  175. /package/node_modules/@smithy/core/dist-es/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/DefaultIdentityProviderConfig.js +0 -0
  176. /package/node_modules/@smithy/core/dist-es/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/httpAuthSchemes/httpApiKeyAuth.js +0 -0
  177. /package/node_modules/@smithy/core/dist-es/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/httpAuthSchemes/httpBearerAuth.js +0 -0
  178. /package/node_modules/@smithy/core/dist-es/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/httpAuthSchemes/index.js +0 -0
  179. /package/node_modules/@smithy/core/dist-es/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/httpAuthSchemes/noAuth.js +0 -0
  180. /package/node_modules/@smithy/core/dist-es/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/index.js +0 -0
  181. /package/node_modules/@smithy/core/dist-es/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/memoizeIdentityProvider.js +0 -0
  182. /package/node_modules/@smithy/core/dist-es/{getSmithyContext.js → submodules/transport/getSmithyContext.js} +0 -0
  183. /package/node_modules/@smithy/core/dist-es/submodules/{protocols/protocol-http → transport}/httpRequest.js +0 -0
  184. /package/node_modules/@smithy/core/dist-es/submodules/{protocols/protocol-http → transport}/httpResponse.js +0 -0
  185. /package/node_modules/@smithy/core/dist-es/submodules/{endpoints/util-endpoints/lib → transport}/isValidHostLabel.js +0 -0
  186. /package/node_modules/@smithy/core/dist-es/submodules/{protocols/protocol-http → transport}/isValidHostname.js +0 -0
  187. /package/node_modules/@smithy/core/dist-es/submodules/{client/util-middleware → transport}/normalizeProvider.js +0 -0
  188. /package/node_modules/@smithy/core/dist-es/submodules/{protocols/querystring-parser → transport}/parseQueryString.js +0 -0
@@ -0,0 +1,156 @@
1
+ 'use strict';
2
+
3
+ var client = require('@aws-sdk/core/client');
4
+ var httpAuthSchemes = require('@aws-sdk/core/httpAuthSchemes');
5
+ var config = require('@smithy/core/config');
6
+ var node_fs = require('node:fs');
7
+
8
+ const fromEnvSigningName = ({ logger, signingName } = {}) => async () => {
9
+ logger?.debug?.("@aws-sdk/token-providers - fromEnvSigningName");
10
+ if (!signingName) {
11
+ throw new config.TokenProviderError("Please pass 'signingName' to compute environment variable key", { logger });
12
+ }
13
+ const bearerTokenKey = httpAuthSchemes.getBearerTokenEnvKey(signingName);
14
+ if (!(bearerTokenKey in process.env)) {
15
+ throw new config.TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger });
16
+ }
17
+ const token = { token: process.env[bearerTokenKey] };
18
+ client.setTokenFeature(token, "BEARER_SERVICE_ENV_VARS", "3");
19
+ return token;
20
+ };
21
+
22
+ const EXPIRE_WINDOW_MS = 5 * 60 * 1000;
23
+ const REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;
24
+
25
+ const getSsoOidcClient = async (ssoRegion, init = {}, callerClientConfig) => {
26
+ const { SSOOIDCClient } = await import('@aws-sdk/nested-clients/sso-oidc');
27
+ const coalesce = (prop) => init.clientConfig?.[prop] ?? init.parentClientConfig?.[prop] ?? callerClientConfig?.[prop];
28
+ const ssoOidcClient = new SSOOIDCClient(Object.assign({}, init.clientConfig ?? {}, {
29
+ region: ssoRegion ?? init.clientConfig?.region,
30
+ logger: coalesce("logger"),
31
+ userAgentAppId: coalesce("userAgentAppId"),
32
+ }));
33
+ return ssoOidcClient;
34
+ };
35
+
36
+ const getNewSsoOidcToken = async (ssoToken, ssoRegion, init = {}, callerClientConfig) => {
37
+ const { CreateTokenCommand } = await import('@aws-sdk/nested-clients/sso-oidc');
38
+ const ssoOidcClient = await getSsoOidcClient(ssoRegion, init, callerClientConfig);
39
+ return ssoOidcClient.send(new CreateTokenCommand({
40
+ clientId: ssoToken.clientId,
41
+ clientSecret: ssoToken.clientSecret,
42
+ refreshToken: ssoToken.refreshToken,
43
+ grantType: "refresh_token",
44
+ }));
45
+ };
46
+
47
+ const validateTokenExpiry = (token) => {
48
+ if (token.expiration && token.expiration.getTime() < Date.now()) {
49
+ throw new config.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);
50
+ }
51
+ };
52
+
53
+ const validateTokenKey = (key, value, forRefresh = false) => {
54
+ if (typeof value === "undefined") {
55
+ throw new config.TokenProviderError(`Value not present for '${key}' in SSO Token${forRefresh ? ". Cannot refresh" : ""}. ${REFRESH_MESSAGE}`, false);
56
+ }
57
+ };
58
+
59
+ const { writeFile } = node_fs.promises;
60
+ const writeSSOTokenToFile = (id, ssoToken) => {
61
+ const tokenFilepath = config.getSSOTokenFilepath(id);
62
+ const tokenString = JSON.stringify(ssoToken, null, 2);
63
+ return writeFile(tokenFilepath, tokenString);
64
+ };
65
+
66
+ const lastRefreshAttemptTime = new Date(0);
67
+ const fromSso = (init = {}) => async ({ callerClientConfig } = {}) => {
68
+ init.logger?.debug("@aws-sdk/token-providers - fromSso");
69
+ const profiles = await config.parseKnownFiles(init);
70
+ const profileName = config.getProfileName({
71
+ profile: init.profile ?? callerClientConfig?.profile,
72
+ });
73
+ const profile = profiles[profileName];
74
+ if (!profile) {
75
+ throw new config.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);
76
+ }
77
+ else if (!profile["sso_session"]) {
78
+ throw new config.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);
79
+ }
80
+ const ssoSessionName = profile["sso_session"];
81
+ const ssoSessions = await config.loadSsoSessionData(init);
82
+ const ssoSession = ssoSessions[ssoSessionName];
83
+ if (!ssoSession) {
84
+ throw new config.TokenProviderError(`Sso session '${ssoSessionName}' could not be found in shared credentials file.`, false);
85
+ }
86
+ for (const ssoSessionRequiredKey of ["sso_start_url", "sso_region"]) {
87
+ if (!ssoSession[ssoSessionRequiredKey]) {
88
+ throw new config.TokenProviderError(`Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, false);
89
+ }
90
+ }
91
+ ssoSession["sso_start_url"];
92
+ const ssoRegion = ssoSession["sso_region"];
93
+ let ssoToken;
94
+ try {
95
+ ssoToken = await config.getSSOTokenFromFile(ssoSessionName);
96
+ }
97
+ catch (e) {
98
+ throw new config.TokenProviderError(`The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`, false);
99
+ }
100
+ validateTokenKey("accessToken", ssoToken.accessToken);
101
+ validateTokenKey("expiresAt", ssoToken.expiresAt);
102
+ const { accessToken, expiresAt } = ssoToken;
103
+ const existingToken = { token: accessToken, expiration: new Date(expiresAt) };
104
+ if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {
105
+ return existingToken;
106
+ }
107
+ if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1000) {
108
+ validateTokenExpiry(existingToken);
109
+ return existingToken;
110
+ }
111
+ validateTokenKey("clientId", ssoToken.clientId, true);
112
+ validateTokenKey("clientSecret", ssoToken.clientSecret, true);
113
+ validateTokenKey("refreshToken", ssoToken.refreshToken, true);
114
+ try {
115
+ lastRefreshAttemptTime.setTime(Date.now());
116
+ const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init, callerClientConfig);
117
+ validateTokenKey("accessToken", newSsoOidcToken.accessToken);
118
+ validateTokenKey("expiresIn", newSsoOidcToken.expiresIn);
119
+ const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1000);
120
+ try {
121
+ await writeSSOTokenToFile(ssoSessionName, {
122
+ ...ssoToken,
123
+ accessToken: newSsoOidcToken.accessToken,
124
+ expiresAt: newTokenExpiration.toISOString(),
125
+ refreshToken: newSsoOidcToken.refreshToken,
126
+ });
127
+ }
128
+ catch (error) {
129
+ }
130
+ return {
131
+ token: newSsoOidcToken.accessToken,
132
+ expiration: newTokenExpiration,
133
+ };
134
+ }
135
+ catch (error) {
136
+ validateTokenExpiry(existingToken);
137
+ return existingToken;
138
+ }
139
+ };
140
+
141
+ const fromStatic = ({ token, logger }) => async () => {
142
+ logger?.debug("@aws-sdk/token-providers - fromStatic");
143
+ if (!token || !token.token) {
144
+ throw new config.TokenProviderError(`Please pass a valid token to fromStatic`, false);
145
+ }
146
+ return token;
147
+ };
148
+
149
+ const nodeProvider = (init = {}) => config.memoize(config.chain(fromSso(init), async () => {
150
+ throw new config.TokenProviderError("Could not load token from any providers", false);
151
+ }), (token) => token.expiration !== undefined && token.expiration.getTime() - Date.now() < 300000, (token) => token.expiration !== undefined);
152
+
153
+ exports.fromEnvSigningName = fromEnvSigningName;
154
+ exports.fromSso = fromSso;
155
+ exports.fromStatic = fromStatic;
156
+ exports.nodeProvider = nodeProvider;
@@ -0,0 +1,2 @@
1
+ export const EXPIRE_WINDOW_MS = 5 * 60 * 1000;
2
+ export const REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;
@@ -0,0 +1,16 @@
1
+ import { setTokenFeature } from "@aws-sdk/core/client";
2
+ import { getBearerTokenEnvKey } from "@aws-sdk/core/httpAuthSchemes";
3
+ import { TokenProviderError } from "@smithy/core/config";
4
+ export const fromEnvSigningName = ({ logger, signingName } = {}) => async () => {
5
+ logger?.debug?.("@aws-sdk/token-providers - fromEnvSigningName");
6
+ if (!signingName) {
7
+ throw new TokenProviderError("Please pass 'signingName' to compute environment variable key", { logger });
8
+ }
9
+ const bearerTokenKey = getBearerTokenEnvKey(signingName);
10
+ if (!(bearerTokenKey in process.env)) {
11
+ throw new TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger });
12
+ }
13
+ const token = { token: process.env[bearerTokenKey] };
14
+ setTokenFeature(token, "BEARER_SERVICE_ENV_VARS", "3");
15
+ return token;
16
+ };
@@ -0,0 +1,80 @@
1
+ import { getProfileName, getSSOTokenFromFile, loadSsoSessionData, parseKnownFiles, TokenProviderError, } from "@smithy/core/config";
2
+ import { EXPIRE_WINDOW_MS, REFRESH_MESSAGE } from "./constants";
3
+ import { getNewSsoOidcToken } from "./getNewSsoOidcToken";
4
+ import { validateTokenExpiry } from "./validateTokenExpiry";
5
+ import { validateTokenKey } from "./validateTokenKey";
6
+ import { writeSSOTokenToFile } from "./writeSSOTokenToFile";
7
+ const lastRefreshAttemptTime = new Date(0);
8
+ export const fromSso = (init = {}) => async ({ callerClientConfig } = {}) => {
9
+ init.logger?.debug("@aws-sdk/token-providers - fromSso");
10
+ const profiles = await parseKnownFiles(init);
11
+ const profileName = getProfileName({
12
+ profile: init.profile ?? callerClientConfig?.profile,
13
+ });
14
+ const profile = profiles[profileName];
15
+ if (!profile) {
16
+ throw new TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);
17
+ }
18
+ else if (!profile["sso_session"]) {
19
+ throw new TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);
20
+ }
21
+ const ssoSessionName = profile["sso_session"];
22
+ const ssoSessions = await loadSsoSessionData(init);
23
+ const ssoSession = ssoSessions[ssoSessionName];
24
+ if (!ssoSession) {
25
+ throw new TokenProviderError(`Sso session '${ssoSessionName}' could not be found in shared credentials file.`, false);
26
+ }
27
+ for (const ssoSessionRequiredKey of ["sso_start_url", "sso_region"]) {
28
+ if (!ssoSession[ssoSessionRequiredKey]) {
29
+ throw new TokenProviderError(`Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, false);
30
+ }
31
+ }
32
+ const ssoStartUrl = ssoSession["sso_start_url"];
33
+ const ssoRegion = ssoSession["sso_region"];
34
+ let ssoToken;
35
+ try {
36
+ ssoToken = await getSSOTokenFromFile(ssoSessionName);
37
+ }
38
+ catch (e) {
39
+ throw new TokenProviderError(`The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`, false);
40
+ }
41
+ validateTokenKey("accessToken", ssoToken.accessToken);
42
+ validateTokenKey("expiresAt", ssoToken.expiresAt);
43
+ const { accessToken, expiresAt } = ssoToken;
44
+ const existingToken = { token: accessToken, expiration: new Date(expiresAt) };
45
+ if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {
46
+ return existingToken;
47
+ }
48
+ if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1000) {
49
+ validateTokenExpiry(existingToken);
50
+ return existingToken;
51
+ }
52
+ validateTokenKey("clientId", ssoToken.clientId, true);
53
+ validateTokenKey("clientSecret", ssoToken.clientSecret, true);
54
+ validateTokenKey("refreshToken", ssoToken.refreshToken, true);
55
+ try {
56
+ lastRefreshAttemptTime.setTime(Date.now());
57
+ const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init, callerClientConfig);
58
+ validateTokenKey("accessToken", newSsoOidcToken.accessToken);
59
+ validateTokenKey("expiresIn", newSsoOidcToken.expiresIn);
60
+ const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1000);
61
+ try {
62
+ await writeSSOTokenToFile(ssoSessionName, {
63
+ ...ssoToken,
64
+ accessToken: newSsoOidcToken.accessToken,
65
+ expiresAt: newTokenExpiration.toISOString(),
66
+ refreshToken: newSsoOidcToken.refreshToken,
67
+ });
68
+ }
69
+ catch (error) {
70
+ }
71
+ return {
72
+ token: newSsoOidcToken.accessToken,
73
+ expiration: newTokenExpiration,
74
+ };
75
+ }
76
+ catch (error) {
77
+ validateTokenExpiry(existingToken);
78
+ return existingToken;
79
+ }
80
+ };
@@ -0,0 +1,8 @@
1
+ import { TokenProviderError } from "@smithy/core/config";
2
+ export const fromStatic = ({ token, logger }) => async () => {
3
+ logger?.debug("@aws-sdk/token-providers - fromStatic");
4
+ if (!token || !token.token) {
5
+ throw new TokenProviderError(`Please pass a valid token to fromStatic`, false);
6
+ }
7
+ return token;
8
+ };
@@ -0,0 +1,11 @@
1
+ import { getSsoOidcClient } from "./getSsoOidcClient";
2
+ export const getNewSsoOidcToken = async (ssoToken, ssoRegion, init = {}, callerClientConfig) => {
3
+ const { CreateTokenCommand } = await import("@aws-sdk/nested-clients/sso-oidc");
4
+ const ssoOidcClient = await getSsoOidcClient(ssoRegion, init, callerClientConfig);
5
+ return ssoOidcClient.send(new CreateTokenCommand({
6
+ clientId: ssoToken.clientId,
7
+ clientSecret: ssoToken.clientSecret,
8
+ refreshToken: ssoToken.refreshToken,
9
+ grantType: "refresh_token",
10
+ }));
11
+ };
@@ -0,0 +1,10 @@
1
+ export const getSsoOidcClient = async (ssoRegion, init = {}, callerClientConfig) => {
2
+ const { SSOOIDCClient } = await import("@aws-sdk/nested-clients/sso-oidc");
3
+ const coalesce = (prop) => init.clientConfig?.[prop] ?? init.parentClientConfig?.[prop] ?? callerClientConfig?.[prop];
4
+ const ssoOidcClient = new SSOOIDCClient(Object.assign({}, init.clientConfig ?? {}, {
5
+ region: ssoRegion ?? init.clientConfig?.region,
6
+ logger: coalesce("logger"),
7
+ userAgentAppId: coalesce("userAgentAppId"),
8
+ }));
9
+ return ssoOidcClient;
10
+ };
@@ -0,0 +1,4 @@
1
+ export * from "./fromEnvSigningName";
2
+ export * from "./fromSso";
3
+ export * from "./fromStatic";
4
+ export * from "./nodeProvider";
@@ -0,0 +1,5 @@
1
+ import { chain, memoize, TokenProviderError } from "@smithy/core/config";
2
+ import { fromSso } from "./fromSso";
3
+ export const nodeProvider = (init = {}) => memoize(chain(fromSso(init), async () => {
4
+ throw new TokenProviderError("Could not load token from any providers", false);
5
+ }), (token) => token.expiration !== undefined && token.expiration.getTime() - Date.now() < 300000, (token) => token.expiration !== undefined);
@@ -0,0 +1,7 @@
1
+ import { TokenProviderError } from "@smithy/core/config";
2
+ import { REFRESH_MESSAGE } from "./constants";
3
+ export const validateTokenExpiry = (token) => {
4
+ if (token.expiration && token.expiration.getTime() < Date.now()) {
5
+ throw new TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);
6
+ }
7
+ };
@@ -0,0 +1,7 @@
1
+ import { TokenProviderError } from "@smithy/core/config";
2
+ import { REFRESH_MESSAGE } from "./constants";
3
+ export const validateTokenKey = (key, value, forRefresh = false) => {
4
+ if (typeof value === "undefined") {
5
+ throw new TokenProviderError(`Value not present for '${key}' in SSO Token${forRefresh ? ". Cannot refresh" : ""}. ${REFRESH_MESSAGE}`, false);
6
+ }
7
+ };
@@ -0,0 +1,8 @@
1
+ import { getSSOTokenFilepath } from "@smithy/core/config";
2
+ import { promises as fsPromises } from "node:fs";
3
+ const { writeFile } = fsPromises;
4
+ export const writeSSOTokenToFile = (id, ssoToken) => {
5
+ const tokenFilepath = getSSOTokenFilepath(id);
6
+ const tokenString = JSON.stringify(ssoToken, null, 2);
7
+ return writeFile(tokenFilepath, tokenString);
8
+ };
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "@aws-sdk/token-providers",
3
+ "version": "3.1056.0",
4
+ "description": "A collection of token providers",
5
+ "main": "./dist-cjs/index.js",
6
+ "module": "./dist-es/index.js",
7
+ "scripts": {
8
+ "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
9
+ "build:cjs": "node ../../scripts/compilation/inline token-providers",
10
+ "build:es": "tsc -p tsconfig.es.json",
11
+ "build:include:deps": "yarn g:turbo run build -F=\"$npm_package_name\"",
12
+ "build:types": "tsc -p tsconfig.types.json",
13
+ "build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4",
14
+ "clean": "premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo",
15
+ "extract:docs": "api-extractor run --local",
16
+ "test": "yarn g:vitest run",
17
+ "test:watch": "yarn g:vitest watch",
18
+ "test:integration": "yarn g:vitest run -c vitest.config.integ.mts",
19
+ "test:integration:watch": "yarn g:vitest watch -c vitest.config.integ.mts"
20
+ },
21
+ "keywords": [
22
+ "aws",
23
+ "token"
24
+ ],
25
+ "sideEffects": false,
26
+ "author": {
27
+ "name": "AWS SDK for JavaScript Team",
28
+ "url": "https://aws.amazon.com/javascript/"
29
+ },
30
+ "license": "Apache-2.0",
31
+ "dependencies": {
32
+ "@aws-sdk/core": "^3.974.15",
33
+ "@aws-sdk/nested-clients": "^3.997.13",
34
+ "@aws-sdk/types": "^3.973.9",
35
+ "@smithy/core": "^3.24.5",
36
+ "@smithy/types": "^4.14.2",
37
+ "tslib": "^2.6.2"
38
+ },
39
+ "devDependencies": {
40
+ "@tsconfig/recommended": "1.0.1",
41
+ "@types/node": "^20.14.8",
42
+ "concurrently": "7.0.0",
43
+ "downlevel-dts": "0.10.1",
44
+ "premove": "4.0.0",
45
+ "typescript": "~5.8.3"
46
+ },
47
+ "types": "./dist-types/index.d.ts",
48
+ "engines": {
49
+ "node": ">=20.0.0"
50
+ },
51
+ "typesVersions": {
52
+ "<4.5": {
53
+ "dist-types/*": [
54
+ "dist-types/ts3.4/*"
55
+ ]
56
+ }
57
+ },
58
+ "files": [
59
+ "dist-*/**"
60
+ ],
61
+ "browser": {},
62
+ "react-native": {},
63
+ "homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/packages/token-providers",
64
+ "repository": {
65
+ "type": "git",
66
+ "url": "https://github.com/aws/aws-sdk-js-v3.git",
67
+ "directory": "packages/token-providers"
68
+ }
69
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/credential-provider-sso",
3
- "version": "3.972.44",
3
+ "version": "3.972.45",
4
4
  "description": "AWS credential provider that exchanges a resolved SSO login token file for temporary AWS credentials",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -26,11 +26,11 @@
26
26
  },
27
27
  "license": "Apache-2.0",
28
28
  "dependencies": {
29
- "@aws-sdk/core": "^3.974.14",
30
- "@aws-sdk/nested-clients": "^3.997.12",
31
- "@aws-sdk/token-providers": "3.1054.0",
29
+ "@aws-sdk/core": "^3.974.15",
30
+ "@aws-sdk/nested-clients": "^3.997.13",
31
+ "@aws-sdk/token-providers": "3.1056.0",
32
32
  "@aws-sdk/types": "^3.973.9",
33
- "@smithy/core": "^3.24.3",
33
+ "@smithy/core": "^3.24.5",
34
34
  "@smithy/types": "^4.14.2",
35
35
  "tslib": "^2.6.2"
36
36
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/credential-provider-web-identity",
3
- "version": "3.972.44",
3
+ "version": "3.972.45",
4
4
  "description": "AWS credential provider that calls STS assumeRole for temporary AWS credentials",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -34,10 +34,10 @@
34
34
  },
35
35
  "license": "Apache-2.0",
36
36
  "dependencies": {
37
- "@aws-sdk/core": "^3.974.14",
38
- "@aws-sdk/nested-clients": "^3.997.12",
37
+ "@aws-sdk/core": "^3.974.15",
38
+ "@aws-sdk/nested-clients": "^3.997.13",
39
39
  "@aws-sdk/types": "^3.973.9",
40
- "@smithy/core": "^3.24.3",
40
+ "@smithy/core": "^3.24.5",
41
41
  "@smithy/types": "^4.14.2",
42
42
  "tslib": "^2.6.2"
43
43
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/eventstream-handler-node",
3
- "version": "3.972.17",
3
+ "version": "3.972.18",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
6
6
  "build:cjs": "node ../../scripts/compilation/inline eventstream-handler-node",
@@ -23,7 +23,7 @@
23
23
  "license": "Apache-2.0",
24
24
  "dependencies": {
25
25
  "@aws-sdk/types": "^3.973.9",
26
- "@smithy/core": "^3.24.3",
26
+ "@smithy/core": "^3.24.5",
27
27
  "@smithy/types": "^4.14.2",
28
28
  "tslib": "^2.6.2"
29
29
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/middleware-eventstream",
3
- "version": "3.972.13",
3
+ "version": "3.972.14",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
6
6
  "build:cjs": "node ../../scripts/compilation/inline middleware-eventstream",
@@ -24,7 +24,7 @@
24
24
  "license": "Apache-2.0",
25
25
  "dependencies": {
26
26
  "@aws-sdk/types": "^3.973.9",
27
- "@smithy/core": "^3.24.3",
27
+ "@smithy/core": "^3.24.5",
28
28
  "@smithy/types": "^4.14.2",
29
29
  "tslib": "^2.6.2"
30
30
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/middleware-websocket",
3
- "version": "3.972.22",
3
+ "version": "3.972.23",
4
4
  "main": "./dist-cjs/index.js",
5
5
  "module": "./dist-es/index.js",
6
6
  "types": "./dist-types/index.d.ts",
@@ -24,11 +24,11 @@
24
24
  },
25
25
  "license": "Apache-2.0",
26
26
  "dependencies": {
27
- "@aws-sdk/core": "^3.974.14",
27
+ "@aws-sdk/core": "^3.974.15",
28
28
  "@aws-sdk/types": "^3.973.9",
29
- "@smithy/core": "^3.24.3",
30
- "@smithy/fetch-http-handler": "^5.4.3",
31
- "@smithy/signature-v4": "^5.4.2",
29
+ "@smithy/core": "^3.24.5",
30
+ "@smithy/fetch-http-handler": "^5.4.5",
31
+ "@smithy/signature-v4": "^5.4.5",
32
32
  "@smithy/types": "^4.14.2",
33
33
  "tslib": "^2.6.2"
34
34
  },
@@ -80,7 +80,7 @@ const commonParams = {
80
80
  UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
81
81
  };
82
82
 
83
- var version = "3.997.11";
83
+ var version = "3.997.12";
84
84
  var packageInfo = {
85
85
  version: version};
86
86
 
@@ -76,7 +76,7 @@ const commonParams = {
76
76
  UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
77
77
  };
78
78
 
79
- var version = "3.997.11";
79
+ var version = "3.997.12";
80
80
  var packageInfo = {
81
81
  version: version};
82
82
 
@@ -76,7 +76,7 @@ const commonParams = {
76
76
  UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
77
77
  };
78
78
 
79
- var version = "3.997.11";
79
+ var version = "3.997.12";
80
80
  var packageInfo = {
81
81
  version: version};
82
82
 
@@ -76,7 +76,7 @@ const commonParams = {
76
76
  UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
77
77
  };
78
78
 
79
- var version = "3.997.11";
79
+ var version = "3.997.12";
80
80
  var packageInfo = {
81
81
  version: version};
82
82
 
@@ -319,7 +319,7 @@ const commonParams = {
319
319
  UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
320
320
  };
321
321
 
322
- var version = "3.997.11";
322
+ var version = "3.997.12";
323
323
  var packageInfo = {
324
324
  version: version};
325
325
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/nested-clients",
3
- "version": "3.997.12",
3
+ "version": "3.997.13",
4
4
  "description": "Nested clients for AWS SDK packages.",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -29,12 +29,12 @@
29
29
  "dependencies": {
30
30
  "@aws-crypto/sha256-browser": "5.2.0",
31
31
  "@aws-crypto/sha256-js": "5.2.0",
32
- "@aws-sdk/core": "^3.974.14",
33
- "@aws-sdk/signature-v4-multi-region": "^3.996.29",
32
+ "@aws-sdk/core": "^3.974.15",
33
+ "@aws-sdk/signature-v4-multi-region": "^3.996.30",
34
34
  "@aws-sdk/types": "^3.973.9",
35
- "@smithy/core": "^3.24.3",
36
- "@smithy/fetch-http-handler": "^5.4.3",
37
- "@smithy/node-http-handler": "^4.7.3",
35
+ "@smithy/core": "^3.24.5",
36
+ "@smithy/fetch-http-handler": "^5.4.5",
37
+ "@smithy/node-http-handler": "^4.7.5",
38
38
  "@smithy/types": "^4.14.2",
39
39
  "tslib": "^2.6.2"
40
40
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/signature-v4-multi-region",
3
- "version": "3.996.29",
3
+ "version": "3.996.30",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
6
6
  "build:cjs": "node ../../scripts/compilation/inline signature-v4-multi-region",
@@ -26,7 +26,7 @@
26
26
  "license": "Apache-2.0",
27
27
  "dependencies": {
28
28
  "@aws-sdk/types": "^3.973.9",
29
- "@smithy/signature-v4": "^5.4.2",
29
+ "@smithy/signature-v4": "^5.4.5",
30
30
  "@smithy/types": "^4.14.2",
31
31
  "tslib": "^2.6.2"
32
32
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/token-providers",
3
- "version": "3.1054.0",
3
+ "version": "3.1057.0",
4
4
  "description": "A collection of token providers",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -29,10 +29,10 @@
29
29
  },
30
30
  "license": "Apache-2.0",
31
31
  "dependencies": {
32
- "@aws-sdk/core": "^3.974.14",
33
- "@aws-sdk/nested-clients": "^3.997.12",
32
+ "@aws-sdk/core": "^3.974.15",
33
+ "@aws-sdk/nested-clients": "^3.997.13",
34
34
  "@aws-sdk/types": "^3.973.9",
35
- "@smithy/core": "^3.24.3",
35
+ "@smithy/core": "^3.24.5",
36
36
  "@smithy/types": "^4.14.2",
37
37
  "tslib": "^2.6.2"
38
38
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nodable/entities",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "description": "Entity parser for XML, HTML, External entites with security and NCR control",
5
5
  "main": "./src/index.js",
6
6
  "type": "module",
@@ -293,7 +293,7 @@ export default class EntityDecoder {
293
293
  decode(str) {
294
294
  if (typeof str !== 'string' || str.length === 0) return str;
295
295
  //TODO: check if needed
296
- //if (str.indexOf('&') === -1) return str; // fast path — no entities at all
296
+ if (str.indexOf('&') === -1) return str; // fast path — no entities at all
297
297
 
298
298
  const original = str;
299
299
  const chunks = [];