thinkwork-cli 0.13.1 → 1.0.0

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 (262) hide show
  1. package/README.md +3 -14
  2. package/dist/{api-client-4DZ266J5.js → api-client-4P4JZOBX.js} +3 -1
  3. package/dist/bowser-6Z6JFAIR.js +2822 -0
  4. package/dist/{chunk-Y2WHJECR.js → chunk-4OMDWYZQ.js} +5 -44
  5. package/dist/chunk-AD2NIWB5.js +6516 -0
  6. package/dist/chunk-DV3MRBR5.js +43 -0
  7. package/dist/chunk-EI5ZX7CN.js +522 -0
  8. package/dist/chunk-EUJ7X6YD.js +126 -0
  9. package/dist/chunk-GG5WKBOX.js +436 -0
  10. package/dist/chunk-I64EZSU5.js +358 -0
  11. package/dist/chunk-KMIJ5KGT.js +128 -0
  12. package/dist/chunk-MWQ7RO76.js +137 -0
  13. package/dist/chunk-OCPHU34C.js +996 -0
  14. package/dist/chunk-OLUQ4U2Z.js +1728 -0
  15. package/dist/chunk-XYM7PE2A.js +2264 -0
  16. package/dist/chunk-YQCYD6NE.js +3299 -0
  17. package/dist/cli.js +49156 -31257
  18. package/dist/commands/enterprise/templates/deploy-repo/scripts/apply-release.mjs +0 -1
  19. package/dist/commands/enterprise/templates/deploy-repo/scripts/smoke.mjs +0 -1
  20. package/dist/commands/enterprise/templates/deploy-repo/terraform/main.tf +0 -14
  21. package/dist/dist-es-2OTNTL4N.js +315 -0
  22. package/dist/dist-es-2XVAH4BQ.js +14726 -0
  23. package/dist/dist-es-3DPDUJAH.js +2000 -0
  24. package/dist/dist-es-BNZTBBVC.js +176 -0
  25. package/dist/dist-es-CD2RBDAC.js +88 -0
  26. package/dist/dist-es-I4FW57PS.js +88 -0
  27. package/dist/dist-es-KL7Y5NB2.js +377 -0
  28. package/dist/dist-es-KVFWJNDY.js +318 -0
  29. package/dist/dist-es-PS73DWNL.js +70 -0
  30. package/dist/dist-es-S3NZQFGT.js +170 -0
  31. package/dist/dist-es-SGCA4P32.js +48 -0
  32. package/dist/dist-es-WBM6J4RA.js +70 -0
  33. package/dist/dist-es-ZGVADYIF.js +485 -0
  34. package/dist/dist-es-ZKC2QKD2.js +377 -0
  35. package/dist/drizzle/0076_scheduled_jobs_marco_backfill.sql +2 -1
  36. package/dist/drizzle/0079_seed_tenant_customize_catalog.sql +1 -0
  37. package/dist/drizzle/0090_brain_schema_extraction.sql +10 -0
  38. package/dist/drizzle/0132_drop_computer_tables.sql +3 -0
  39. package/dist/drizzle/0160_compliance_event_types_plugins.sql +2 -0
  40. package/dist/drizzle/0214_think137_drop_judge_evidence_roi.sql +1 -0
  41. package/dist/drizzle/0216_drop_agent_loop_versions_goal_worker_policy.sql +1 -0
  42. package/dist/drizzle/0227_analyst_reader_role.sql +17 -20
  43. package/dist/drizzle/0230_analyst_rls.sql +28 -36
  44. package/dist/drizzle/0250_kg_schema_extraction.sql +27 -0
  45. package/dist/drizzle/0251_brain_stragglers.sql +21 -0
  46. package/dist/drizzle/0253_drop_brain_substrate.sql +2 -0
  47. package/dist/drizzle/0257_agents_runtime_allow_harness.sql +24 -0
  48. package/dist/drizzle/0261_native_auth_control_plane.sql +332 -0
  49. package/dist/drizzle/0262_auth_subscription_tickets.sql +59 -0
  50. package/dist/drizzle/0263_agentcore_runtime_identifier.sql +69 -0
  51. package/dist/drizzle/0263_drop_workos_auth_runtime.sql +236 -0
  52. package/dist/drizzle/0264_auth_enrollment_attempt_limits.sql +15 -0
  53. package/dist/drizzle/0265_eval_runs_requester_identity.sql +28 -0
  54. package/dist/drizzle/0265_require_fully_valid_auth_publication.sql +27 -0
  55. package/dist/drizzle/0266_auth_identity_recovery_grants.sql +9 -0
  56. package/dist/drizzle/0266_eval_profiles_runtime_type.sql +12 -0
  57. package/dist/drizzle/0267_ontology_candidate_rejections.sql +53 -0
  58. package/dist/drizzle/0268_identity_crosswalk_routing.sql +182 -0
  59. package/dist/drizzle/0269_ontology_system_map.sql +31 -0
  60. package/dist/drizzle/0270_tool_execution_ledger.sql +115 -0
  61. package/dist/drizzle/0271_ontology_twin_declarations.sql +47 -0
  62. package/dist/drizzle/0272_identity_graph_projection_cursor.sql +23 -0
  63. package/dist/drizzle/0273_twin_materialization_suggestions.sql +29 -0
  64. package/dist/drizzle/0274_tenant_mcp_twin_keys.sql +59 -0
  65. package/dist/drizzle/0275_identity_bulk_rebuild_fence.sql +30 -0
  66. package/dist/drizzle/0276_tool_execution_ledger_allow_cascade_delete.sql +18 -0
  67. package/dist/drizzle/0277_knowledge_base_sources.sql +107 -0
  68. package/dist/drizzle/0278_kb_page_transcription.sql +55 -0
  69. package/dist/drizzle/0279_mcp_servers_off_plugin_provenance.sql +93 -0
  70. package/dist/drizzle/0280_work_item_external_refs_drop_plane_provider.sql +46 -0
  71. package/dist/drizzle/0281_tenant_mcp_twin_keys_expiry_suffix.sql +9 -0
  72. package/dist/drizzle/0282_tenant_mcp_twin_keys_grants.sql +24 -0
  73. package/dist/drizzle/0283_agents_agentcore_runtime_dispatch.sql +13 -0
  74. package/dist/drizzle/0284_user_brain_claims.sql +69 -0
  75. package/dist/drizzle/0285_tenant_mcp_twin_keys_trusted_subsystem.sql +30 -0
  76. package/dist/drizzle/0286_brain_analytics_key.sql +26 -0
  77. package/dist/drizzle/0287_brain_subject.sql +25 -0
  78. package/dist/drizzle/0288_multi_lane_identities.sql +25 -0
  79. package/dist/event-streams-7JNLJEEL.js +894 -0
  80. package/dist/event-streams-KDF5RWR6.js +1515 -0
  81. package/dist/loadSso-ETCXTR4I.js +576 -0
  82. package/dist/loadSso-UBD7KUHE.js +583 -0
  83. package/dist/plugins/README.md +2 -2
  84. package/dist/plugins/catalog/package.json +1 -5
  85. package/dist/plugins/catalog/src/__tests__/build-catalog.test.ts +6 -4
  86. package/dist/plugins/catalog/src/__tests__/catalog.test.ts +21 -21
  87. package/dist/plugins/catalog/src/__tests__/contracts.test.ts +102 -94
  88. package/dist/plugins/catalog/src/__tests__/plugin-package.test.ts +7 -8
  89. package/dist/plugins/catalog/src/__tests__/plugin-registry.test.ts +0 -20
  90. package/dist/plugins/catalog/src/contracts.ts +17 -179
  91. package/dist/plugins/catalog/src/registry/generated-first-party.ts +0 -24
  92. package/dist/plugins/n8n/test/integrated-app-contract.test.ts +1 -1
  93. package/dist/plugins/twenty/package.json +2 -1
  94. package/dist/plugins/twenty/scripts/LAMBDA_DEPLOY.md +114 -0
  95. package/dist/plugins/twenty/scripts/build-lambda.sh +29 -0
  96. package/dist/plugins/twenty/scripts/configure-product-views.ts +195 -0
  97. package/dist/plugins/twenty/scripts/lambda-handler.ts +49 -0
  98. package/dist/plugins/twenty/scripts/lib/__tests__/load-attachments.test.ts +38 -0
  99. package/dist/plugins/twenty/scripts/lib/__tests__/load-records.test.ts +145 -2
  100. package/dist/plugins/twenty/scripts/lib/__tests__/mappers.test.ts +397 -151
  101. package/dist/plugins/twenty/scripts/lib/__tests__/members-ensure.test.ts +28 -129
  102. package/dist/plugins/twenty/scripts/lib/__tests__/provision-members-db.test.ts +10 -0
  103. package/dist/plugins/twenty/scripts/lib/__tests__/schema-ensure.test.ts +13 -8
  104. package/dist/plugins/twenty/scripts/lib/lastmile-reader.ts +222 -2
  105. package/dist/plugins/twenty/scripts/lib/load-attachments.ts +29 -0
  106. package/dist/plugins/twenty/scripts/lib/load-records.ts +160 -43
  107. package/dist/plugins/twenty/scripts/lib/mappers.ts +368 -152
  108. package/dist/plugins/twenty/scripts/lib/members-ensure.ts +43 -268
  109. package/dist/plugins/twenty/scripts/lib/provision-members-db.ts +57 -0
  110. package/dist/plugins/twenty/scripts/lib/schema-ensure.ts +136 -31
  111. package/dist/plugins/twenty/scripts/migrate-lastmile.ts +254 -152
  112. package/dist/plugins/twenty/scripts/provision-twenty-members.ts +44 -1
  113. package/dist/plugins/twenty/scripts/purge-lastmile-import.ts +178 -0
  114. package/dist/plugins/twenty/scripts/restructure-products.ts +312 -0
  115. package/dist/plugins/twenty/scripts/retag-stage-values.ts +362 -0
  116. package/dist/plugins/twenty/test/manifest.test.ts +2 -4
  117. package/dist/scripts/post-deploy.sh +79 -1
  118. package/dist/signin-5QZNRSOO.js +821 -0
  119. package/dist/sso-oidc-XK673P54.js +837 -0
  120. package/dist/sts-OXI2UALF.js +1113 -0
  121. package/dist/sts-SQW4NBK3.js +1117 -0
  122. package/dist/terraform/examples/greenfield/main.tf +391 -176
  123. package/dist/terraform/examples/greenfield/terraform.tfvars.example +26 -8
  124. package/dist/terraform/modules/app/agentcore-admin/main.tf +47 -0
  125. package/dist/terraform/modules/app/agentcore-code-interpreter/README.md +39 -47
  126. package/dist/terraform/modules/app/agentcore-code-interpreter/main.tf +13 -66
  127. package/dist/terraform/modules/app/agentcore-identity/main.tf +253 -0
  128. package/dist/terraform/modules/app/agentcore-identity/outputs.tf +51 -0
  129. package/dist/terraform/modules/app/agentcore-identity/scripts/bootstrap_twenty_oauth_client.sh +239 -0
  130. package/dist/terraform/modules/app/agentcore-identity/scripts/delete_identity.sh +22 -0
  131. package/dist/terraform/modules/app/agentcore-identity/scripts/delete_twenty_identity.sh +16 -0
  132. package/dist/terraform/modules/app/agentcore-identity/scripts/delete_workload_identity.sh +19 -0
  133. package/dist/terraform/modules/app/agentcore-identity/scripts/ensure_workload_identity.sh +29 -0
  134. package/dist/terraform/modules/app/agentcore-identity/scripts/read_identity.sh +55 -0
  135. package/dist/terraform/modules/app/agentcore-identity/scripts/reconcile_identity.sh +73 -0
  136. package/dist/terraform/modules/app/agentcore-identity/scripts/reconcile_twenty_identity.sh +45 -0
  137. package/dist/terraform/modules/app/agentcore-identity/scripts/reconcile_twenty_provider.mjs +123 -0
  138. package/dist/terraform/modules/app/agentcore-identity/tests/tainted-marker/after.tf +15 -0
  139. package/dist/terraform/modules/app/agentcore-identity/tests/tainted-marker/before.tf +7 -0
  140. package/dist/terraform/modules/app/agentcore-identity/tests/tainted-marker/identity-after.tf +8 -0
  141. package/dist/terraform/modules/app/agentcore-identity/tests/tainted-marker/identity-before.tf +9 -0
  142. package/dist/terraform/modules/app/agentcore-identity/tests/tainted-marker/thinkwork-after.tf +3 -0
  143. package/dist/terraform/modules/app/agentcore-identity/tests/tainted-marker/thinkwork-before.tf +3 -0
  144. package/dist/terraform/modules/app/agentcore-identity/variables.tf +60 -0
  145. package/dist/terraform/modules/app/agentcore-memory/README.md +46 -9
  146. package/dist/terraform/modules/app/agentcore-memory/main.tf +27 -10
  147. package/dist/terraform/modules/app/agentcore-memory/scripts/create_or_find_memory.sh +156 -24
  148. package/dist/terraform/modules/app/agentcore-pi/README.md +1 -3
  149. package/dist/terraform/modules/app/agentcore-pi/main.tf +42 -52
  150. package/dist/terraform/modules/app/agentcore-pi/outputs.tf +3 -3
  151. package/dist/terraform/modules/app/agentcore-pi/scripts/reconcile_pi_runtime.mjs +175 -0
  152. package/dist/terraform/modules/app/agentcore-pi/variables.tf +35 -28
  153. package/dist/terraform/modules/app/agentcore-platform/main.tf +68 -0
  154. package/dist/terraform/modules/app/agentcore-runtime/main.tf +4 -20
  155. package/dist/terraform/modules/app/appsync-subscriptions/main.tf +127 -21
  156. package/dist/terraform/modules/app/appsync-subscriptions/outputs.tf +0 -6
  157. package/dist/terraform/modules/app/appsync-subscriptions/variables.tf +5 -0
  158. package/dist/terraform/modules/app/capability-broker/main.tf +2 -2
  159. package/dist/terraform/modules/app/capability-broker/variables.tf +11 -0
  160. package/dist/terraform/modules/app/deployment-control-plane/README.md +264 -0
  161. package/dist/terraform/modules/app/deployment-control-plane/buildspec.yml +4 -1
  162. package/dist/terraform/modules/app/deployment-control-plane/main.tf +94 -0
  163. package/dist/terraform/modules/app/deployment-control-plane/outputs.tf +5 -0
  164. package/dist/terraform/modules/app/deployment-control-plane/runner.py +3689 -233
  165. package/dist/terraform/modules/app/deployment-control-plane/test_runner_bundle.py +2579 -140
  166. package/dist/terraform/modules/app/deployment-control-plane/variables.tf +33 -0
  167. package/dist/terraform/modules/app/lambda-api/auth-state.tf +72 -0
  168. package/dist/terraform/modules/app/lambda-api/chat-latency-observability.tf +466 -0
  169. package/dist/terraform/modules/app/lambda-api/dispatch-dlq.tf +55 -0
  170. package/dist/terraform/modules/app/lambda-api/handlers.tf +531 -619
  171. package/dist/terraform/modules/app/lambda-api/iam-grouped.tf +350 -241
  172. package/dist/terraform/modules/app/lambda-api/main.tf +75 -13
  173. package/dist/terraform/modules/app/lambda-api/memory-alarms.tf +3 -28
  174. package/dist/terraform/modules/app/lambda-api/oauth-secrets.tf +1 -2
  175. package/dist/terraform/modules/app/lambda-api/outputs.tf +17 -10
  176. package/dist/terraform/modules/app/lambda-api/runtime-config.tf +3 -21
  177. package/dist/terraform/modules/app/lambda-api/turn-assertion.tf +45 -0
  178. package/dist/terraform/modules/app/lambda-api/variables.tf +307 -121
  179. package/dist/{plugins/n8n/terraform → terraform/modules/app}/n8n/README.md +1 -1
  180. package/dist/{plugins/n8n/terraform → terraform/modules/app}/n8n/main.tf +18 -18
  181. package/dist/terraform/modules/app/sandbox-log-scrubber/README.md +11 -10
  182. package/dist/terraform/modules/app/sandbox-log-scrubber/main.tf +5 -5
  183. package/dist/terraform/modules/app/static-site/main.tf +1 -1
  184. package/dist/terraform/modules/app/www-dns/main.tf +9 -27
  185. package/dist/terraform/modules/app/www-dns/variables.tf +4 -10
  186. package/dist/terraform/modules/data/aurora-postgres/README.md +34 -0
  187. package/dist/terraform/modules/data/aurora-postgres/alarms.tf +82 -0
  188. package/dist/terraform/modules/data/aurora-postgres/main.tf +27 -57
  189. package/dist/terraform/modules/data/aurora-postgres/outputs.tf +0 -9
  190. package/dist/terraform/modules/data/aurora-postgres/variables.tf +41 -0
  191. package/dist/terraform/modules/data/s3-buckets/main.tf +5 -6
  192. package/dist/terraform/modules/foundation/cognito/main.tf +367 -72
  193. package/dist/terraform/modules/foundation/cognito/outputs.tf +47 -0
  194. package/dist/terraform/modules/foundation/cognito/variables.tf +131 -9
  195. package/dist/terraform/modules/thinkwork/README.md +5 -1
  196. package/dist/terraform/modules/thinkwork/main.tf +459 -234
  197. package/dist/terraform/modules/thinkwork/outputs.tf +44 -62
  198. package/dist/terraform/modules/thinkwork/variables.tf +353 -89
  199. package/dist/terraform/schema.graphql +69 -36
  200. package/dist/workspace-defaults/files/INSTRUCTIONS.md +9 -11
  201. package/dist/workspace-defaults/files/MEMORY_GUIDE.md +38 -35
  202. package/dist/workspace-defaults/files/ROUTER.md +1 -1
  203. package/dist/workspace-defaults/files/TOOLS.md +9 -39
  204. package/dist/workspace-defaults/files/USER.md +1 -0
  205. package/dist/workspace-defaults/files/agents/analyst/INSTRUCTIONS.md +6 -3
  206. package/dist/workspace-defaults/files/catalog-skills/brain-brief-builder/SKILL.md +165 -0
  207. package/dist/workspace-defaults/files/catalog-skills/n8n-workflow-operator/SKILL.md +75 -0
  208. package/dist/workspace-defaults/files/catalog-skills/n8n-workflow-operator/references/mcp-tooling.md +40 -0
  209. package/dist/workspace-defaults/files/catalog-skills/n8n-workflow-operator/references/validation-and-handoff.md +40 -0
  210. package/dist/workspace-defaults/files/catalog-skills/n8n-workflow-operator/references/workflow-authoring.md +46 -0
  211. package/dist/workspace-defaults/files/skills/artifact-builder/references/crm-dashboard.md +1 -1
  212. package/dist/workspace-defaults/files/skills/document-composer/SKILL.md +22 -3
  213. package/package.json +3 -2
  214. package/dist/drizzle/0261_thread_turns_origin_turn_index.sql +0 -11
  215. package/dist/plugins/company-data/README.md +0 -49
  216. package/dist/plugins/company-data/package.json +0 -21
  217. package/dist/plugins/company-data/src/index.ts +0 -30
  218. package/dist/plugins/company-data/src/manifest.ts +0 -26
  219. package/dist/plugins/company-data/test/manifest.test.ts +0 -116
  220. package/dist/plugins/company-data/tsconfig.json +0 -8
  221. package/dist/plugins/company-etl/README.md +0 -46
  222. package/dist/plugins/company-etl/package.json +0 -21
  223. package/dist/plugins/company-etl/src/index.ts +0 -29
  224. package/dist/plugins/company-etl/src/manifest.ts +0 -26
  225. package/dist/plugins/company-etl/test/manifest.test.ts +0 -108
  226. package/dist/plugins/company-etl/tsconfig.json +0 -8
  227. package/dist/plugins/lastmile/README.md +0 -50
  228. package/dist/plugins/lastmile/package.json +0 -23
  229. package/dist/plugins/lastmile/smoke/lastmile-plugin-smoke.mjs +0 -661
  230. package/dist/plugins/lastmile/src/api/tasks-adapter.ts +0 -572
  231. package/dist/plugins/lastmile/src/discovery.fixture.ts +0 -64
  232. package/dist/plugins/lastmile/src/index.ts +0 -46
  233. package/dist/plugins/lastmile/src/manifest.ts +0 -139
  234. package/dist/plugins/lastmile/test/api/tasks-adapter.test.ts +0 -266
  235. package/dist/plugins/lastmile/test/discovery.test.ts +0 -88
  236. package/dist/plugins/lastmile/tsconfig.json +0 -8
  237. package/dist/plugins/n8n/smoke/n8n-managed-app-smoke.mjs +0 -409
  238. package/dist/plugins/twenty/smoke/twenty-managed-app-smoke.mjs +0 -359
  239. package/dist/plugins/workos-auth/package.json +0 -22
  240. package/dist/plugins/workos-auth/src/index.ts +0 -30
  241. package/dist/plugins/workos-auth/src/manifest.ts +0 -40
  242. package/dist/plugins/workos-auth/src/provider-contract.ts +0 -39
  243. package/dist/plugins/workos-auth/test/manifest.test.ts +0 -94
  244. package/dist/plugins/workos-auth/tsconfig.json +0 -8
  245. package/dist/terraform/modules/app/agentcore-code-interpreter/Dockerfile.sandbox-base +0 -61
  246. package/dist/terraform/modules/app/agentcore-code-interpreter/sandbox/sitecustomize.py +0 -227
  247. package/dist/terraform/modules/app/agentcore-code-interpreter/sandbox/test_sitecustomize.py +0 -277
  248. package/dist/terraform/modules/app/agentcore-code-interpreter/scripts/build_and_push_sandbox_base.sh +0 -70
  249. package/dist/terraform/modules/app/agentcore-harness/main.tf +0 -101
  250. package/dist/terraform/modules/app/agentcore-harness/outputs.tf +0 -9
  251. package/dist/terraform/modules/app/agentcore-harness/variables.tf +0 -25
  252. package/dist/terraform/modules/app/hindsight-memory/README.md +0 -89
  253. package/dist/terraform/modules/app/hindsight-memory/main.tf +0 -411
  254. package/dist/terraform/modules/data/bedrock-knowledge-base/main.tf +0 -102
  255. /package/dist/{plugins/n8n/terraform → terraform/modules/app}/n8n/outputs.tf +0 -0
  256. /package/dist/{plugins/n8n/terraform → terraform/modules/app}/n8n/scripts/sync-database.py +0 -0
  257. /package/dist/{plugins/n8n/terraform → terraform/modules/app}/n8n/scripts/test_sync_database.py +0 -0
  258. /package/dist/{plugins/n8n/terraform → terraform/modules/app}/n8n/variables.tf +0 -0
  259. /package/dist/{plugins/twenty/terraform → terraform/modules/app}/twenty/README.md +0 -0
  260. /package/dist/{plugins/twenty/terraform → terraform/modules/app}/twenty/main.tf +0 -0
  261. /package/dist/{plugins/twenty/terraform → terraform/modules/app}/twenty/outputs.tf +0 -0
  262. /package/dist/{plugins/twenty/terraform → terraform/modules/app}/twenty/variables.tf +0 -0
@@ -0,0 +1,318 @@
1
+ import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
+ import {
3
+ setCredentialFeature
4
+ } from "./chunk-YQCYD6NE.js";
5
+ import {
6
+ CredentialsProviderError,
7
+ TokenProviderError,
8
+ getProfileName,
9
+ getSSOTokenFilepath,
10
+ getSSOTokenFromFile,
11
+ loadSsoSessionData,
12
+ parseKnownFiles
13
+ } from "./chunk-XYM7PE2A.js";
14
+ import "./chunk-OCPHU34C.js";
15
+ import "./chunk-DV3MRBR5.js";
16
+
17
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.973.3/node_modules/@aws-sdk/credential-provider-sso/dist-es/isSsoProfile.js
18
+ var isSsoProfile = (arg) => arg && (typeof arg.sso_start_url === "string" || typeof arg.sso_account_id === "string" || typeof arg.sso_session === "string" || typeof arg.sso_region === "string" || typeof arg.sso_role_name === "string");
19
+
20
+ // ../../node_modules/.pnpm/@aws-sdk+token-providers@3.1088.0/node_modules/@aws-sdk/token-providers/dist-es/constants.js
21
+ var EXPIRE_WINDOW_MS = 5 * 60 * 1e3;
22
+ var REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;
23
+
24
+ // ../../node_modules/.pnpm/@aws-sdk+token-providers@3.1088.0/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js
25
+ var getSsoOidcClient = async (ssoRegion, init = {}, callerClientConfig) => {
26
+ const { SSOOIDCClient } = await import("./sso-oidc-XK673P54.js");
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
+ // ../../node_modules/.pnpm/@aws-sdk+token-providers@3.1088.0/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js
37
+ var getNewSsoOidcToken = async (ssoToken, ssoRegion, init = {}, callerClientConfig) => {
38
+ const { CreateTokenCommand } = await import("./sso-oidc-XK673P54.js");
39
+ const ssoOidcClient = await getSsoOidcClient(ssoRegion, init, callerClientConfig);
40
+ return ssoOidcClient.send(new CreateTokenCommand({
41
+ clientId: ssoToken.clientId,
42
+ clientSecret: ssoToken.clientSecret,
43
+ refreshToken: ssoToken.refreshToken,
44
+ grantType: "refresh_token"
45
+ }));
46
+ };
47
+
48
+ // ../../node_modules/.pnpm/@aws-sdk+token-providers@3.1088.0/node_modules/@aws-sdk/token-providers/dist-es/validateTokenExpiry.js
49
+ var validateTokenExpiry = (token) => {
50
+ if (token.expiration && token.expiration.getTime() < Date.now()) {
51
+ throw new TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);
52
+ }
53
+ };
54
+
55
+ // ../../node_modules/.pnpm/@aws-sdk+token-providers@3.1088.0/node_modules/@aws-sdk/token-providers/dist-es/validateTokenKey.js
56
+ var validateTokenKey = (key, value, forRefresh = false) => {
57
+ if (typeof value === "undefined") {
58
+ throw new TokenProviderError(`Value not present for '${key}' in SSO Token${forRefresh ? ". Cannot refresh" : ""}. ${REFRESH_MESSAGE}`, false);
59
+ }
60
+ };
61
+
62
+ // ../../node_modules/.pnpm/@aws-sdk+token-providers@3.1088.0/node_modules/@aws-sdk/token-providers/dist-es/writeSSOTokenToFile.js
63
+ import { promises as fsPromises } from "fs";
64
+ var { writeFile } = fsPromises;
65
+ var writeSSOTokenToFile = (id, ssoToken) => {
66
+ const tokenFilepath = getSSOTokenFilepath(id);
67
+ const tokenString = JSON.stringify(ssoToken, null, 2);
68
+ return writeFile(tokenFilepath, tokenString);
69
+ };
70
+
71
+ // ../../node_modules/.pnpm/@aws-sdk+token-providers@3.1088.0/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js
72
+ var lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);
73
+ var fromSso = (init = {}) => async ({ callerClientConfig } = {}) => {
74
+ init.logger?.debug("@aws-sdk/token-providers - fromSso");
75
+ const profiles = await parseKnownFiles(init);
76
+ const profileName = getProfileName({
77
+ profile: init.profile ?? callerClientConfig?.profile
78
+ });
79
+ const profile = profiles[profileName];
80
+ if (!profile) {
81
+ throw new TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);
82
+ } else if (!profile["sso_session"]) {
83
+ throw new TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);
84
+ }
85
+ const ssoSessionName = profile["sso_session"];
86
+ const ssoSessions = await loadSsoSessionData(init);
87
+ const ssoSession = ssoSessions[ssoSessionName];
88
+ if (!ssoSession) {
89
+ throw new TokenProviderError(`Sso session '${ssoSessionName}' could not be found in shared credentials file.`, false);
90
+ }
91
+ for (const ssoSessionRequiredKey of ["sso_start_url", "sso_region"]) {
92
+ if (!ssoSession[ssoSessionRequiredKey]) {
93
+ throw new TokenProviderError(`Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, false);
94
+ }
95
+ }
96
+ const ssoStartUrl = ssoSession["sso_start_url"];
97
+ const ssoRegion = ssoSession["sso_region"];
98
+ let ssoToken;
99
+ try {
100
+ ssoToken = await getSSOTokenFromFile(ssoSessionName);
101
+ } catch (e) {
102
+ throw new TokenProviderError(`The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`, false);
103
+ }
104
+ validateTokenKey("accessToken", ssoToken.accessToken);
105
+ validateTokenKey("expiresAt", ssoToken.expiresAt);
106
+ const { accessToken, expiresAt } = ssoToken;
107
+ const existingToken = { token: accessToken, expiration: new Date(expiresAt) };
108
+ if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {
109
+ return existingToken;
110
+ }
111
+ if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) {
112
+ validateTokenExpiry(existingToken);
113
+ return existingToken;
114
+ }
115
+ validateTokenKey("clientId", ssoToken.clientId, true);
116
+ validateTokenKey("clientSecret", ssoToken.clientSecret, true);
117
+ validateTokenKey("refreshToken", ssoToken.refreshToken, true);
118
+ try {
119
+ lastRefreshAttemptTime.setTime(Date.now());
120
+ const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init, callerClientConfig);
121
+ validateTokenKey("accessToken", newSsoOidcToken.accessToken);
122
+ validateTokenKey("expiresIn", newSsoOidcToken.expiresIn);
123
+ const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3);
124
+ try {
125
+ await writeSSOTokenToFile(ssoSessionName, {
126
+ ...ssoToken,
127
+ accessToken: newSsoOidcToken.accessToken,
128
+ expiresAt: newTokenExpiration.toISOString(),
129
+ refreshToken: newSsoOidcToken.refreshToken
130
+ });
131
+ } catch (error) {
132
+ }
133
+ return {
134
+ token: newSsoOidcToken.accessToken,
135
+ expiration: newTokenExpiration
136
+ };
137
+ } catch (error) {
138
+ validateTokenExpiry(existingToken);
139
+ return existingToken;
140
+ }
141
+ };
142
+
143
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.973.3/node_modules/@aws-sdk/credential-provider-sso/dist-es/resolveSSOCredentials.js
144
+ var SHOULD_FAIL_CREDENTIAL_CHAIN = false;
145
+ var resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, clientConfig, parentClientConfig, callerClientConfig, profile, filepath, configFilepath, ignoreCache, logger }) => {
146
+ let token;
147
+ const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;
148
+ if (ssoSession) {
149
+ try {
150
+ const _token = await fromSso({
151
+ profile,
152
+ filepath,
153
+ configFilepath,
154
+ ignoreCache,
155
+ clientConfig,
156
+ parentClientConfig,
157
+ logger
158
+ })({ callerClientConfig });
159
+ token = {
160
+ accessToken: _token.token,
161
+ expiresAt: new Date(_token.expiration).toISOString()
162
+ };
163
+ } catch (e) {
164
+ throw new CredentialsProviderError(e.message, {
165
+ tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
166
+ logger
167
+ });
168
+ }
169
+ } else {
170
+ try {
171
+ token = await getSSOTokenFromFile(ssoStartUrl);
172
+ } catch (e) {
173
+ throw new CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {
174
+ tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
175
+ logger
176
+ });
177
+ }
178
+ }
179
+ if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {
180
+ throw new CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {
181
+ tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
182
+ logger
183
+ });
184
+ }
185
+ const { accessToken } = token;
186
+ const { SSOClient, GetRoleCredentialsCommand } = await import("./loadSso-UBD7KUHE.js");
187
+ const sso = ssoClient || new SSOClient(Object.assign({}, clientConfig ?? {}, {
188
+ logger: clientConfig?.logger ?? callerClientConfig?.logger ?? parentClientConfig?.logger,
189
+ region: clientConfig?.region ?? ssoRegion,
190
+ userAgentAppId: clientConfig?.userAgentAppId ?? callerClientConfig?.userAgentAppId ?? parentClientConfig?.userAgentAppId
191
+ }));
192
+ let ssoResp;
193
+ try {
194
+ ssoResp = await sso.send(new GetRoleCredentialsCommand({
195
+ accountId: ssoAccountId,
196
+ roleName: ssoRoleName,
197
+ accessToken
198
+ }));
199
+ } catch (e) {
200
+ throw new CredentialsProviderError(e, {
201
+ tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
202
+ logger
203
+ });
204
+ }
205
+ const { roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {} } = ssoResp;
206
+ if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {
207
+ throw new CredentialsProviderError("SSO returns an invalid temporary credential.", {
208
+ tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
209
+ logger
210
+ });
211
+ }
212
+ const credentials = {
213
+ accessKeyId,
214
+ secretAccessKey,
215
+ sessionToken,
216
+ expiration: new Date(expiration),
217
+ ...credentialScope && { credentialScope },
218
+ ...accountId && { accountId }
219
+ };
220
+ if (ssoSession) {
221
+ setCredentialFeature(credentials, "CREDENTIALS_SSO", "s");
222
+ } else {
223
+ setCredentialFeature(credentials, "CREDENTIALS_SSO_LEGACY", "u");
224
+ }
225
+ return credentials;
226
+ };
227
+
228
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.973.3/node_modules/@aws-sdk/credential-provider-sso/dist-es/validateSsoProfile.js
229
+ var validateSsoProfile = (profile, logger) => {
230
+ const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;
231
+ if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {
232
+ throw new CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(profile).join(", ")}
233
+ Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, { tryNextLink: false, logger });
234
+ }
235
+ return profile;
236
+ };
237
+
238
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.973.3/node_modules/@aws-sdk/credential-provider-sso/dist-es/fromSSO.js
239
+ var fromSSO = (init = {}) => async ({ callerClientConfig } = {}) => {
240
+ init.logger?.debug("@aws-sdk/credential-provider-sso - fromSSO");
241
+ const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;
242
+ const { ssoClient } = init;
243
+ const profileName = getProfileName({
244
+ profile: init.profile ?? callerClientConfig?.profile
245
+ });
246
+ if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {
247
+ const profiles = await parseKnownFiles(init);
248
+ const profile = profiles[profileName];
249
+ if (!profile) {
250
+ throw new CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });
251
+ }
252
+ if (!isSsoProfile(profile)) {
253
+ throw new CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {
254
+ logger: init.logger
255
+ });
256
+ }
257
+ if (profile?.sso_session) {
258
+ const ssoSessions = await loadSsoSessionData(init);
259
+ const session = ssoSessions[profile.sso_session];
260
+ const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;
261
+ if (ssoRegion && ssoRegion !== session.sso_region) {
262
+ throw new CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {
263
+ tryNextLink: false,
264
+ logger: init.logger
265
+ });
266
+ }
267
+ if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {
268
+ throw new CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {
269
+ tryNextLink: false,
270
+ logger: init.logger
271
+ });
272
+ }
273
+ profile.sso_region = session.sso_region;
274
+ profile.sso_start_url = session.sso_start_url;
275
+ }
276
+ const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(profile, init.logger);
277
+ return resolveSSOCredentials({
278
+ ssoStartUrl: sso_start_url,
279
+ ssoSession: sso_session,
280
+ ssoAccountId: sso_account_id,
281
+ ssoRegion: sso_region,
282
+ ssoRoleName: sso_role_name,
283
+ ssoClient,
284
+ clientConfig: init.clientConfig,
285
+ parentClientConfig: init.parentClientConfig,
286
+ callerClientConfig: init.callerClientConfig,
287
+ profile: profileName,
288
+ filepath: init.filepath,
289
+ configFilepath: init.configFilepath,
290
+ ignoreCache: init.ignoreCache,
291
+ logger: init.logger
292
+ });
293
+ } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {
294
+ throw new CredentialsProviderError('Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"', { tryNextLink: false, logger: init.logger });
295
+ } else {
296
+ return resolveSSOCredentials({
297
+ ssoStartUrl,
298
+ ssoSession,
299
+ ssoAccountId,
300
+ ssoRegion,
301
+ ssoRoleName,
302
+ ssoClient,
303
+ clientConfig: init.clientConfig,
304
+ parentClientConfig: init.parentClientConfig,
305
+ callerClientConfig: init.callerClientConfig,
306
+ profile: profileName,
307
+ filepath: init.filepath,
308
+ configFilepath: init.configFilepath,
309
+ ignoreCache: init.ignoreCache,
310
+ logger: init.logger
311
+ });
312
+ }
313
+ };
314
+ export {
315
+ fromSSO,
316
+ isSsoProfile,
317
+ validateSsoProfile
318
+ };
@@ -0,0 +1,70 @@
1
+ import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
+ import {
3
+ setCredentialFeature
4
+ } from "./chunk-YQCYD6NE.js";
5
+ import {
6
+ CredentialsProviderError,
7
+ externalDataInterceptor
8
+ } from "./chunk-XYM7PE2A.js";
9
+ import "./chunk-OCPHU34C.js";
10
+ import "./chunk-DV3MRBR5.js";
11
+
12
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.972.50/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromTokenFile.js
13
+ import { readFileSync } from "fs";
14
+
15
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.972.50/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromWebToken.js
16
+ var fromWebToken = (init) => async (awsIdentityProperties) => {
17
+ init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");
18
+ const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;
19
+ let { roleAssumerWithWebIdentity } = init;
20
+ if (!roleAssumerWithWebIdentity) {
21
+ const { getDefaultRoleAssumerWithWebIdentity } = await import("./sts-OXI2UALF.js");
22
+ roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({
23
+ ...init.clientConfig,
24
+ credentialProviderLogger: init.logger,
25
+ parentClientConfig: {
26
+ ...awsIdentityProperties?.callerClientConfig,
27
+ ...init.parentClientConfig
28
+ }
29
+ }, init.clientPlugins);
30
+ }
31
+ return roleAssumerWithWebIdentity({
32
+ RoleArn: roleArn,
33
+ RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,
34
+ WebIdentityToken: webIdentityToken,
35
+ ProviderId: providerId,
36
+ PolicyArns: policyArns,
37
+ Policy: policy,
38
+ DurationSeconds: durationSeconds
39
+ });
40
+ };
41
+
42
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.972.50/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromTokenFile.js
43
+ var ENV_TOKEN_FILE = "AWS_WEB_IDENTITY_TOKEN_FILE";
44
+ var ENV_ROLE_ARN = "AWS_ROLE_ARN";
45
+ var ENV_ROLE_SESSION_NAME = "AWS_ROLE_SESSION_NAME";
46
+ var fromTokenFile = (init = {}) => async (awsIdentityProperties) => {
47
+ init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile");
48
+ const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];
49
+ const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];
50
+ const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];
51
+ if (!webIdentityTokenFile || !roleArn) {
52
+ throw new CredentialsProviderError("Web identity configuration not specified", {
53
+ logger: init.logger
54
+ });
55
+ }
56
+ const credentials = await fromWebToken({
57
+ ...init,
58
+ webIdentityToken: externalDataInterceptor?.getTokenRecord?.()[webIdentityTokenFile] ?? readFileSync(webIdentityTokenFile, { encoding: "ascii" }),
59
+ roleArn,
60
+ roleSessionName
61
+ })(awsIdentityProperties);
62
+ if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {
63
+ setCredentialFeature(credentials, "CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN", "h");
64
+ }
65
+ return credentials;
66
+ };
67
+ export {
68
+ fromTokenFile,
69
+ fromWebToken
70
+ };
@@ -0,0 +1,170 @@
1
+ import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
+ import {
3
+ NodeHttpHandler
4
+ } from "./chunk-GG5WKBOX.js";
5
+ import {
6
+ setCredentialFeature
7
+ } from "./chunk-YQCYD6NE.js";
8
+ import {
9
+ CredentialsProviderError,
10
+ HttpRequest
11
+ } from "./chunk-XYM7PE2A.js";
12
+ import {
13
+ parseRfc3339DateTime,
14
+ sdkStreamMixin
15
+ } from "./chunk-OCPHU34C.js";
16
+ import "./chunk-DV3MRBR5.js";
17
+
18
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.972.47/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/fromHttp.js
19
+ import fs from "fs/promises";
20
+
21
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.972.47/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/checkUrl.js
22
+ var ECS_CONTAINER_HOST = "169.254.170.2";
23
+ var EKS_CONTAINER_HOST_IPv4 = "169.254.170.23";
24
+ var EKS_CONTAINER_HOST_IPv6 = "[fd00:ec2::23]";
25
+ var checkUrl = (url, logger) => {
26
+ if (url.protocol === "https:") {
27
+ return;
28
+ }
29
+ if (url.hostname === ECS_CONTAINER_HOST || url.hostname === EKS_CONTAINER_HOST_IPv4 || url.hostname === EKS_CONTAINER_HOST_IPv6) {
30
+ return;
31
+ }
32
+ if (url.hostname.includes("[")) {
33
+ if (url.hostname === "[::1]" || url.hostname === "[0000:0000:0000:0000:0000:0000:0000:0001]") {
34
+ return;
35
+ }
36
+ } else {
37
+ if (url.hostname === "localhost") {
38
+ return;
39
+ }
40
+ const ipComponents = url.hostname.split(".");
41
+ const inRange = (component) => {
42
+ const num = parseInt(component, 10);
43
+ return 0 <= num && num <= 255;
44
+ };
45
+ if (ipComponents[0] === "127" && inRange(ipComponents[1]) && inRange(ipComponents[2]) && inRange(ipComponents[3]) && ipComponents.length === 4) {
46
+ return;
47
+ }
48
+ }
49
+ throw new CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:
50
+ - loopback CIDR 127.0.0.0/8 or [::1/128]
51
+ - ECS container host 169.254.170.2
52
+ - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });
53
+ };
54
+
55
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.972.47/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/requestHelpers.js
56
+ function createGetRequest(url) {
57
+ return new HttpRequest({
58
+ protocol: url.protocol,
59
+ hostname: url.hostname,
60
+ port: Number(url.port),
61
+ path: url.pathname,
62
+ query: Array.from(url.searchParams.entries()).reduce((acc, [k, v]) => {
63
+ acc[k] = v;
64
+ return acc;
65
+ }, {}),
66
+ fragment: url.hash
67
+ });
68
+ }
69
+ async function getCredentials(response, logger) {
70
+ const stream = sdkStreamMixin(response.body);
71
+ const str = await stream.transformToString();
72
+ if (response.statusCode === 200) {
73
+ const parsed = JSON.parse(str);
74
+ if (typeof parsed.AccessKeyId !== "string" || typeof parsed.SecretAccessKey !== "string" || typeof parsed.Token !== "string" || typeof parsed.Expiration !== "string") {
75
+ throw new CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: { AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }", { logger });
76
+ }
77
+ return {
78
+ accessKeyId: parsed.AccessKeyId,
79
+ secretAccessKey: parsed.SecretAccessKey,
80
+ sessionToken: parsed.Token,
81
+ expiration: parseRfc3339DateTime(parsed.Expiration)
82
+ };
83
+ }
84
+ if (response.statusCode >= 400 && response.statusCode < 500) {
85
+ let parsedBody = {};
86
+ try {
87
+ parsedBody = JSON.parse(str);
88
+ } catch (e) {
89
+ }
90
+ throw Object.assign(new CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {
91
+ Code: parsedBody.Code,
92
+ Message: parsedBody.Message
93
+ });
94
+ }
95
+ throw new CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });
96
+ }
97
+
98
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.972.47/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/retry-wrapper.js
99
+ var retryWrapper = (toRetry, maxRetries, delayMs) => {
100
+ return async () => {
101
+ for (let i = 0; i < maxRetries; ++i) {
102
+ try {
103
+ return await toRetry();
104
+ } catch (e) {
105
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
106
+ }
107
+ }
108
+ return await toRetry();
109
+ };
110
+ };
111
+
112
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.972.47/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/fromHttp.js
113
+ var AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI";
114
+ var DEFAULT_LINK_LOCAL_HOST = "http://169.254.170.2";
115
+ var AWS_CONTAINER_CREDENTIALS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI";
116
+ var AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = "AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE";
117
+ var AWS_CONTAINER_AUTHORIZATION_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN";
118
+ var fromHttp = (options = {}) => {
119
+ options.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");
120
+ let host;
121
+ const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];
122
+ const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];
123
+ const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];
124
+ const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];
125
+ const warn = options.logger?.constructor?.name === "NoOpLogger" || !options.logger?.warn ? console.warn : options.logger.warn.bind(options.logger);
126
+ if (relative && full) {
127
+ warn("@aws-sdk/credential-provider-http: you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.");
128
+ warn("awsContainerCredentialsFullUri will take precedence.");
129
+ }
130
+ if (token && tokenFile) {
131
+ warn("@aws-sdk/credential-provider-http: you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.");
132
+ warn("awsContainerAuthorizationToken will take precedence.");
133
+ }
134
+ if (full) {
135
+ host = full;
136
+ } else if (relative) {
137
+ host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`;
138
+ } else {
139
+ throw new CredentialsProviderError(`No HTTP credential provider host provided.
140
+ Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });
141
+ }
142
+ const url = new URL(host);
143
+ checkUrl(url, options.logger);
144
+ const requestHandler = NodeHttpHandler.create({ connectionTimeout: options.timeout ?? 1e3 });
145
+ const requestTimeout = options.timeout ?? 1e3;
146
+ const provider = retryWrapper(async () => {
147
+ const request = createGetRequest(url);
148
+ if (token) {
149
+ request.headers.Authorization = token;
150
+ } else if (tokenFile) {
151
+ request.headers.Authorization = (await fs.readFile(tokenFile)).toString();
152
+ }
153
+ try {
154
+ const result = await requestHandler.handle(request, { requestTimeout });
155
+ return getCredentials(result.response).then((creds) => setCredentialFeature(creds, "CREDENTIALS_HTTP", "z"));
156
+ } catch (e) {
157
+ throw new CredentialsProviderError(String(e), { logger: options.logger });
158
+ }
159
+ }, options.maxRetries ?? 3, options.timeout ?? 1e3);
160
+ return async () => {
161
+ try {
162
+ return await provider();
163
+ } finally {
164
+ requestHandler.destroy?.();
165
+ }
166
+ };
167
+ };
168
+ export {
169
+ fromHttp
170
+ };
@@ -0,0 +1,48 @@
1
+ import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
+ import {
3
+ setCredentialFeature
4
+ } from "./chunk-YQCYD6NE.js";
5
+ import {
6
+ CredentialsProviderError
7
+ } from "./chunk-XYM7PE2A.js";
8
+ import "./chunk-OCPHU34C.js";
9
+ import "./chunk-DV3MRBR5.js";
10
+
11
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-env@3.972.59/node_modules/@aws-sdk/credential-provider-env/dist-es/fromEnv.js
12
+ var ENV_KEY = "AWS_ACCESS_KEY_ID";
13
+ var ENV_SECRET = "AWS_SECRET_ACCESS_KEY";
14
+ var ENV_SESSION = "AWS_SESSION_TOKEN";
15
+ var ENV_EXPIRATION = "AWS_CREDENTIAL_EXPIRATION";
16
+ var ENV_CREDENTIAL_SCOPE = "AWS_CREDENTIAL_SCOPE";
17
+ var ENV_ACCOUNT_ID = "AWS_ACCOUNT_ID";
18
+ var fromEnv = (init) => async () => {
19
+ init?.logger?.debug("@aws-sdk/credential-provider-env - fromEnv");
20
+ const accessKeyId = process.env[ENV_KEY];
21
+ const secretAccessKey = process.env[ENV_SECRET];
22
+ const sessionToken = process.env[ENV_SESSION];
23
+ const expiry = process.env[ENV_EXPIRATION];
24
+ const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];
25
+ const accountId = process.env[ENV_ACCOUNT_ID];
26
+ if (accessKeyId && secretAccessKey) {
27
+ const credentials = {
28
+ accessKeyId,
29
+ secretAccessKey,
30
+ ...sessionToken && { sessionToken },
31
+ ...expiry && { expiration: new Date(expiry) },
32
+ ...credentialScope && { credentialScope },
33
+ ...accountId && { accountId }
34
+ };
35
+ setCredentialFeature(credentials, "CREDENTIALS_ENV_VARS", "g");
36
+ return credentials;
37
+ }
38
+ throw new CredentialsProviderError("Unable to find environment variable credentials.", { logger: init?.logger });
39
+ };
40
+ export {
41
+ ENV_ACCOUNT_ID,
42
+ ENV_CREDENTIAL_SCOPE,
43
+ ENV_EXPIRATION,
44
+ ENV_KEY,
45
+ ENV_SECRET,
46
+ ENV_SESSION,
47
+ fromEnv
48
+ };
@@ -0,0 +1,70 @@
1
+ import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
2
+ import {
3
+ setCredentialFeature
4
+ } from "./chunk-YQCYD6NE.js";
5
+ import {
6
+ CredentialsProviderError,
7
+ externalDataInterceptor
8
+ } from "./chunk-XYM7PE2A.js";
9
+ import "./chunk-OCPHU34C.js";
10
+ import "./chunk-DV3MRBR5.js";
11
+
12
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.972.65/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromTokenFile.js
13
+ import { readFileSync } from "fs";
14
+
15
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.972.65/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromWebToken.js
16
+ var fromWebToken = (init) => async (awsIdentityProperties) => {
17
+ init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");
18
+ const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;
19
+ let { roleAssumerWithWebIdentity } = init;
20
+ if (!roleAssumerWithWebIdentity) {
21
+ const { getDefaultRoleAssumerWithWebIdentity } = await import("./sts-SQW4NBK3.js");
22
+ roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({
23
+ ...init.clientConfig,
24
+ credentialProviderLogger: init.logger,
25
+ parentClientConfig: {
26
+ ...awsIdentityProperties?.callerClientConfig,
27
+ ...init.parentClientConfig
28
+ }
29
+ }, init.clientPlugins);
30
+ }
31
+ return roleAssumerWithWebIdentity({
32
+ RoleArn: roleArn,
33
+ RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,
34
+ WebIdentityToken: webIdentityToken,
35
+ ProviderId: providerId,
36
+ PolicyArns: policyArns,
37
+ Policy: policy,
38
+ DurationSeconds: durationSeconds
39
+ });
40
+ };
41
+
42
+ // ../../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.972.65/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromTokenFile.js
43
+ var ENV_TOKEN_FILE = "AWS_WEB_IDENTITY_TOKEN_FILE";
44
+ var ENV_ROLE_ARN = "AWS_ROLE_ARN";
45
+ var ENV_ROLE_SESSION_NAME = "AWS_ROLE_SESSION_NAME";
46
+ var fromTokenFile = (init = {}) => async (awsIdentityProperties) => {
47
+ init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile");
48
+ const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];
49
+ const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];
50
+ const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];
51
+ if (!webIdentityTokenFile || !roleArn) {
52
+ throw new CredentialsProviderError("Web identity configuration not specified", {
53
+ logger: init.logger
54
+ });
55
+ }
56
+ const credentials = await fromWebToken({
57
+ ...init,
58
+ webIdentityToken: externalDataInterceptor?.getTokenRecord?.()[webIdentityTokenFile] ?? readFileSync(webIdentityTokenFile, { encoding: "ascii" }),
59
+ roleArn,
60
+ roleSessionName
61
+ })(awsIdentityProperties);
62
+ if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) {
63
+ setCredentialFeature(credentials, "CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN", "h");
64
+ }
65
+ return credentials;
66
+ };
67
+ export {
68
+ fromTokenFile,
69
+ fromWebToken
70
+ };