@softactivate/adk 1.1.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.
- package/LICENSE +202 -0
- package/README.md +3 -0
- package/dist/cjs/a2a/a2a_event.js +317 -0
- package/dist/cjs/a2a/a2a_remote_agent.js +179 -0
- package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +205 -0
- package/dist/cjs/a2a/a2a_remote_agent_utils.js +165 -0
- package/dist/cjs/a2a/agent_card.js +380 -0
- package/dist/cjs/a2a/agent_executor.js +221 -0
- package/dist/cjs/a2a/agent_to_a2a.js +115 -0
- package/dist/cjs/a2a/event_converter_utils.js +201 -0
- package/dist/cjs/a2a/event_processor_utils.js +180 -0
- package/dist/cjs/a2a/executor_context.js +53 -0
- package/dist/cjs/a2a/metadata_converter_utils.js +126 -0
- package/dist/cjs/a2a/part_converter_utils.js +223 -0
- package/dist/cjs/agents/active_streaming_tool.js +44 -0
- package/dist/cjs/agents/base_agent.js +294 -0
- package/dist/cjs/agents/context.js +180 -0
- package/dist/cjs/agents/functions.js +525 -0
- package/dist/cjs/agents/instructions.js +110 -0
- package/dist/cjs/agents/invocation_context.js +110 -0
- package/dist/cjs/agents/live_request_queue.js +136 -0
- package/dist/cjs/agents/llm_agent.js +722 -0
- package/dist/cjs/agents/loop_agent.js +84 -0
- package/dist/cjs/agents/parallel_agent.js +95 -0
- package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +132 -0
- package/dist/cjs/agents/processors/base_llm_processor.js +44 -0
- package/dist/cjs/agents/processors/basic_llm_request_processor.js +68 -0
- package/dist/cjs/agents/processors/code_execution_request_processor.js +391 -0
- package/dist/cjs/agents/processors/content_processor_utils.js +338 -0
- package/dist/cjs/agents/processors/content_request_processor.js +87 -0
- package/dist/cjs/agents/processors/context_compactor_request_processor.js +70 -0
- package/dist/cjs/agents/processors/identity_llm_request_processor.js +54 -0
- package/dist/cjs/agents/processors/instructions_llm_request_processor.js +85 -0
- package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +165 -0
- package/dist/cjs/agents/processors/tool_filter_request_processor.js +73 -0
- package/dist/cjs/agents/readonly_context.js +83 -0
- package/dist/cjs/agents/routed_agent.js +97 -0
- package/dist/cjs/agents/run_config.js +71 -0
- package/dist/cjs/agents/sequential_agent.js +106 -0
- package/dist/cjs/agents/transcription_entry.js +27 -0
- package/dist/cjs/artifacts/base_artifact_service.js +27 -0
- package/dist/cjs/artifacts/file_artifact_service.js +522 -0
- package/dist/cjs/artifacts/gcs_artifact_service.js +227 -0
- package/dist/cjs/artifacts/in_memory_artifact_service.js +181 -0
- package/dist/cjs/artifacts/registry.js +55 -0
- package/dist/cjs/auth/auth_credential.js +46 -0
- package/dist/cjs/auth/auth_handler.js +159 -0
- package/dist/cjs/auth/auth_preprocessor.js +178 -0
- package/dist/cjs/auth/auth_provider_registry.js +61 -0
- package/dist/cjs/auth/auth_schemes.js +62 -0
- package/dist/cjs/auth/auth_tool.js +27 -0
- package/dist/cjs/auth/base_auth_provider.js +27 -0
- package/dist/cjs/auth/credential_service/base_credential_service.js +27 -0
- package/dist/cjs/auth/credential_service/in_memory_credential_service.js +63 -0
- package/dist/cjs/auth/credential_service/session_state_credential_service.js +51 -0
- package/dist/cjs/auth/exchanger/base_credential_exchanger.js +40 -0
- package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +59 -0
- package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +198 -0
- package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +109 -0
- package/dist/cjs/auth/oauth2/oauth2_discovery.js +186 -0
- package/dist/cjs/auth/oauth2/oauth2_utils.js +119 -0
- package/dist/cjs/auth/refresher/base_credential_refresher.js +44 -0
- package/dist/cjs/auth/refresher/credential_refresher_registry.js +68 -0
- package/dist/cjs/code_executors/base_code_executor.js +92 -0
- package/dist/cjs/code_executors/built_in_code_executor.js +74 -0
- package/dist/cjs/code_executors/code_execution_utils.js +161 -0
- package/dist/cjs/code_executors/code_executor_context.js +198 -0
- package/dist/cjs/code_executors/unsafe_local_code_executor.js +241 -0
- package/dist/cjs/common.js +362 -0
- package/dist/cjs/context/base_context_compactor.js +27 -0
- package/dist/cjs/context/summarizers/base_summarizer.js +27 -0
- package/dist/cjs/context/summarizers/llm_summarizer.js +93 -0
- package/dist/cjs/context/token_based_context_compactor.js +135 -0
- package/dist/cjs/context/truncating_context_compactor.js +58 -0
- package/dist/cjs/events/compacted_event.js +53 -0
- package/dist/cjs/events/event.js +146 -0
- package/dist/cjs/events/event_actions.js +83 -0
- package/dist/cjs/events/structured_events.js +105 -0
- package/dist/cjs/examples/base_example_provider.js +56 -0
- package/dist/cjs/examples/example.js +27 -0
- package/dist/cjs/examples/example_util.js +107 -0
- package/dist/cjs/features/feature_registry.js +141 -0
- package/dist/cjs/index.js +94 -0
- package/dist/cjs/index_web.js +33 -0
- package/dist/cjs/memory/base_memory_service.js +27 -0
- package/dist/cjs/memory/in_memory_memory_service.js +99 -0
- package/dist/cjs/memory/memory_entry.js +27 -0
- package/dist/cjs/models/apigee_llm.js +182 -0
- package/dist/cjs/models/base_llm.js +102 -0
- package/dist/cjs/models/base_llm_connection.js +27 -0
- package/dist/cjs/models/gemini_llm_connection.js +133 -0
- package/dist/cjs/models/google_llm.js +291 -0
- package/dist/cjs/models/llm_request.js +82 -0
- package/dist/cjs/models/llm_response.js +73 -0
- package/dist/cjs/models/registry.js +123 -0
- package/dist/cjs/models/routed_llm.js +99 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/plugins/base_plugin.js +295 -0
- package/dist/cjs/plugins/logging_plugin.js +259 -0
- package/dist/cjs/plugins/plugin_manager.js +310 -0
- package/dist/cjs/plugins/security_plugin.js +156 -0
- package/dist/cjs/runner/in_memory_runner.js +58 -0
- package/dist/cjs/runner/runner.js +380 -0
- package/dist/cjs/sessions/base_session_service.js +121 -0
- package/dist/cjs/sessions/database_session_service.js +367 -0
- package/dist/cjs/sessions/db/operations.js +109 -0
- package/dist/cjs/sessions/db/schema.js +204 -0
- package/dist/cjs/sessions/in_memory_session_service.js +210 -0
- package/dist/cjs/sessions/registry.js +49 -0
- package/dist/cjs/sessions/session.js +48 -0
- package/dist/cjs/sessions/state.js +101 -0
- package/dist/cjs/skills/loader.js +283 -0
- package/dist/cjs/skills/prompt.js +58 -0
- package/dist/cjs/skills/skill.js +78 -0
- package/dist/cjs/telemetry/google_cloud.js +83 -0
- package/dist/cjs/telemetry/setup.js +105 -0
- package/dist/cjs/telemetry/tracing.js +253 -0
- package/dist/cjs/tools/agent_tool.js +219 -0
- package/dist/cjs/tools/base_tool.js +122 -0
- package/dist/cjs/tools/base_toolset.js +86 -0
- package/dist/cjs/tools/exit_loop_tool.js +63 -0
- package/dist/cjs/tools/forwarding_artifact_service.js +87 -0
- package/dist/cjs/tools/function_tool.js +109 -0
- package/dist/cjs/tools/google_maps_grounding_tool.js +80 -0
- package/dist/cjs/tools/google_search_tool.js +80 -0
- package/dist/cjs/tools/load_artifacts_tool.js +188 -0
- package/dist/cjs/tools/load_memory_tool.js +107 -0
- package/dist/cjs/tools/long_running_tool.js +63 -0
- package/dist/cjs/tools/mcp/mcp_session_manager.js +77 -0
- package/dist/cjs/tools/mcp/mcp_tool.js +68 -0
- package/dist/cjs/tools/mcp/mcp_toolset.js +80 -0
- package/dist/cjs/tools/preload_memory_tool.js +109 -0
- package/dist/cjs/tools/skill/list_skills_tool.js +76 -0
- package/dist/cjs/tools/skill/load_skill_resource_tool.js +225 -0
- package/dist/cjs/tools/skill/load_skill_tool.js +108 -0
- package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +146 -0
- package/dist/cjs/tools/skill/run_skill_script_tool.js +224 -0
- package/dist/cjs/tools/skill/skill_toolset.js +163 -0
- package/dist/cjs/tools/tool_confirmation.js +49 -0
- package/dist/cjs/tools/url_context_tool.js +73 -0
- package/dist/cjs/tools/vertex_ai_search_tool.js +127 -0
- package/dist/cjs/tools/vertex_rag_retrieval_tool.js +64 -0
- package/dist/cjs/utils/client_labels.js +56 -0
- package/dist/cjs/utils/env_aware_utils.js +92 -0
- package/dist/cjs/utils/experimental.js +74 -0
- package/dist/cjs/utils/failover_utils.js +93 -0
- package/dist/cjs/utils/file_extension_utils.js +77 -0
- package/dist/cjs/utils/file_utils.js +94 -0
- package/dist/cjs/utils/gemini_schema_util.js +152 -0
- package/dist/cjs/utils/logger.js +173 -0
- package/dist/cjs/utils/model_name.js +90 -0
- package/dist/cjs/utils/object_notation_utils.js +78 -0
- package/dist/cjs/utils/simple_zod_to_json.js +150 -0
- package/dist/cjs/utils/streaming_utils.js +330 -0
- package/dist/cjs/utils/variant_utils.js +49 -0
- package/dist/cjs/version.js +39 -0
- package/dist/esm/a2a/a2a_event.js +271 -0
- package/dist/esm/a2a/a2a_remote_agent.js +155 -0
- package/dist/esm/a2a/a2a_remote_agent_run_processor.js +184 -0
- package/dist/esm/a2a/a2a_remote_agent_utils.js +133 -0
- package/dist/esm/a2a/agent_card.js +342 -0
- package/dist/esm/a2a/agent_executor.js +204 -0
- package/dist/esm/a2a/agent_to_a2a.js +82 -0
- package/dist/esm/a2a/event_converter_utils.js +189 -0
- package/dist/esm/a2a/event_processor_utils.js +161 -0
- package/dist/esm/a2a/executor_context.js +25 -0
- package/dist/esm/a2a/metadata_converter_utils.js +93 -0
- package/dist/esm/a2a/part_converter_utils.js +188 -0
- package/dist/esm/agents/active_streaming_tool.js +16 -0
- package/dist/esm/agents/base_agent.js +268 -0
- package/dist/esm/agents/context.js +152 -0
- package/dist/esm/agents/functions.js +489 -0
- package/dist/esm/agents/instructions.js +82 -0
- package/dist/esm/agents/invocation_context.js +81 -0
- package/dist/esm/agents/live_request_queue.js +108 -0
- package/dist/esm/agents/llm_agent.js +708 -0
- package/dist/esm/agents/loop_agent.js +55 -0
- package/dist/esm/agents/parallel_agent.js +66 -0
- package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +103 -0
- package/dist/esm/agents/processors/base_llm_processor.js +15 -0
- package/dist/esm/agents/processors/basic_llm_request_processor.js +39 -0
- package/dist/esm/agents/processors/code_execution_request_processor.js +368 -0
- package/dist/esm/agents/processors/content_processor_utils.js +319 -0
- package/dist/esm/agents/processors/content_request_processor.js +61 -0
- package/dist/esm/agents/processors/context_compactor_request_processor.js +42 -0
- package/dist/esm/agents/processors/identity_llm_request_processor.js +25 -0
- package/dist/esm/agents/processors/instructions_llm_request_processor.js +56 -0
- package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +142 -0
- package/dist/esm/agents/processors/tool_filter_request_processor.js +44 -0
- package/dist/esm/agents/readonly_context.js +55 -0
- package/dist/esm/agents/routed_agent.js +70 -0
- package/dist/esm/agents/run_config.js +42 -0
- package/dist/esm/agents/sequential_agent.js +77 -0
- package/dist/esm/agents/transcription_entry.js +7 -0
- package/dist/esm/artifacts/base_artifact_service.js +7 -0
- package/dist/esm/artifacts/file_artifact_service.js +480 -0
- package/dist/esm/artifacts/gcs_artifact_service.js +199 -0
- package/dist/esm/artifacts/in_memory_artifact_service.js +152 -0
- package/dist/esm/artifacts/registry.js +30 -0
- package/dist/esm/auth/auth_credential.js +18 -0
- package/dist/esm/auth/auth_handler.js +131 -0
- package/dist/esm/auth/auth_preprocessor.js +155 -0
- package/dist/esm/auth/auth_provider_registry.js +33 -0
- package/dist/esm/auth/auth_schemes.js +33 -0
- package/dist/esm/auth/auth_tool.js +7 -0
- package/dist/esm/auth/base_auth_provider.js +7 -0
- package/dist/esm/auth/credential_service/base_credential_service.js +7 -0
- package/dist/esm/auth/credential_service/in_memory_credential_service.js +35 -0
- package/dist/esm/auth/credential_service/session_state_credential_service.js +23 -0
- package/dist/esm/auth/exchanger/base_credential_exchanger.js +12 -0
- package/dist/esm/auth/exchanger/credential_exchanger_registry.js +31 -0
- package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +177 -0
- package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +85 -0
- package/dist/esm/auth/oauth2/oauth2_discovery.js +156 -0
- package/dist/esm/auth/oauth2/oauth2_utils.js +87 -0
- package/dist/esm/auth/refresher/base_credential_refresher.js +16 -0
- package/dist/esm/auth/refresher/credential_refresher_registry.js +40 -0
- package/dist/esm/code_executors/base_code_executor.js +63 -0
- package/dist/esm/code_executors/built_in_code_executor.js +45 -0
- package/dist/esm/code_executors/code_execution_utils.js +127 -0
- package/dist/esm/code_executors/code_executor_context.js +170 -0
- package/dist/esm/code_executors/unsafe_local_code_executor.js +205 -0
- package/dist/esm/common.js +245 -0
- package/dist/esm/context/base_context_compactor.js +7 -0
- package/dist/esm/context/summarizers/base_summarizer.js +7 -0
- package/dist/esm/context/summarizers/llm_summarizer.js +67 -0
- package/dist/esm/context/token_based_context_compactor.js +107 -0
- package/dist/esm/context/truncating_context_compactor.js +30 -0
- package/dist/esm/events/compacted_event.js +24 -0
- package/dist/esm/events/event.js +110 -0
- package/dist/esm/events/event_actions.js +54 -0
- package/dist/esm/events/structured_events.js +76 -0
- package/dist/esm/examples/base_example_provider.js +27 -0
- package/dist/esm/examples/example.js +7 -0
- package/dist/esm/examples/example_util.js +80 -0
- package/dist/esm/features/feature_registry.js +107 -0
- package/dist/esm/index.js +50 -0
- package/dist/esm/index_web.js +8 -0
- package/dist/esm/memory/base_memory_service.js +7 -0
- package/dist/esm/memory/in_memory_memory_service.js +71 -0
- package/dist/esm/memory/memory_entry.js +7 -0
- package/dist/esm/models/apigee_llm.js +154 -0
- package/dist/esm/models/base_llm.js +73 -0
- package/dist/esm/models/base_llm_connection.js +7 -0
- package/dist/esm/models/gemini_llm_connection.js +105 -0
- package/dist/esm/models/google_llm.js +265 -0
- package/dist/esm/models/llm_request.js +52 -0
- package/dist/esm/models/llm_response.js +45 -0
- package/dist/esm/models/registry.js +95 -0
- package/dist/esm/models/routed_llm.js +73 -0
- package/dist/esm/plugins/base_plugin.js +268 -0
- package/dist/esm/plugins/logging_plugin.js +235 -0
- package/dist/esm/plugins/plugin_manager.js +282 -0
- package/dist/esm/plugins/security_plugin.js +124 -0
- package/dist/esm/runner/in_memory_runner.js +30 -0
- package/dist/esm/runner/runner.js +360 -0
- package/dist/esm/sessions/base_session_service.js +91 -0
- package/dist/esm/sessions/database_session_service.js +355 -0
- package/dist/esm/sessions/db/operations.js +96 -0
- package/dist/esm/sessions/db/schema.js +174 -0
- package/dist/esm/sessions/in_memory_session_service.js +184 -0
- package/dist/esm/sessions/registry.js +27 -0
- package/dist/esm/sessions/session.js +20 -0
- package/dist/esm/sessions/state.js +73 -0
- package/dist/esm/skills/loader.js +244 -0
- package/dist/esm/skills/prompt.js +30 -0
- package/dist/esm/skills/skill.js +49 -0
- package/dist/esm/telemetry/google_cloud.js +54 -0
- package/dist/esm/telemetry/setup.js +83 -0
- package/dist/esm/telemetry/tracing.js +219 -0
- package/dist/esm/tools/agent_tool.js +190 -0
- package/dist/esm/tools/base_tool.js +93 -0
- package/dist/esm/tools/base_toolset.js +57 -0
- package/dist/esm/tools/exit_loop_tool.js +34 -0
- package/dist/esm/tools/forwarding_artifact_service.js +59 -0
- package/dist/esm/tools/function_tool.js +80 -0
- package/dist/esm/tools/google_maps_grounding_tool.js +54 -0
- package/dist/esm/tools/google_search_tool.js +51 -0
- package/dist/esm/tools/load_artifacts_tool.js +161 -0
- package/dist/esm/tools/load_memory_tool.js +80 -0
- package/dist/esm/tools/long_running_tool.js +37 -0
- package/dist/esm/tools/mcp/mcp_session_manager.js +53 -0
- package/dist/esm/tools/mcp/mcp_tool.js +40 -0
- package/dist/esm/tools/mcp/mcp_toolset.js +52 -0
- package/dist/esm/tools/preload_memory_tool.js +82 -0
- package/dist/esm/tools/skill/list_skills_tool.js +50 -0
- package/dist/esm/tools/skill/load_skill_resource_tool.js +191 -0
- package/dist/esm/tools/skill/load_skill_tool.js +82 -0
- package/dist/esm/tools/skill/run_skill_inline_script_tool.js +120 -0
- package/dist/esm/tools/skill/run_skill_script_tool.js +192 -0
- package/dist/esm/tools/skill/skill_toolset.js +137 -0
- package/dist/esm/tools/tool_confirmation.js +21 -0
- package/dist/esm/tools/url_context_tool.js +44 -0
- package/dist/esm/tools/vertex_ai_search_tool.js +103 -0
- package/dist/esm/tools/vertex_rag_retrieval_tool.js +36 -0
- package/dist/esm/utils/client_labels.js +28 -0
- package/dist/esm/utils/env_aware_utils.js +59 -0
- package/dist/esm/utils/experimental.js +46 -0
- package/dist/esm/utils/failover_utils.js +65 -0
- package/dist/esm/utils/file_extension_utils.js +51 -0
- package/dist/esm/utils/file_utils.js +56 -0
- package/dist/esm/utils/gemini_schema_util.js +124 -0
- package/dist/esm/utils/logger.js +130 -0
- package/dist/esm/utils/model_name.js +58 -0
- package/dist/esm/utils/object_notation_utils.js +49 -0
- package/dist/esm/utils/simple_zod_to_json.js +123 -0
- package/dist/esm/utils/streaming_utils.js +304 -0
- package/dist/esm/utils/variant_utils.js +20 -0
- package/dist/esm/version.js +11 -0
- package/dist/types/a2a/a2a_event.d.ts +139 -0
- package/dist/types/a2a/a2a_remote_agent.d.ts +67 -0
- package/dist/types/a2a/a2a_remote_agent_run_processor.d.ts +31 -0
- package/dist/types/a2a/a2a_remote_agent_utils.d.ts +38 -0
- package/dist/types/a2a/agent_card.d.ts +23 -0
- package/dist/types/a2a/agent_executor.d.ts +52 -0
- package/dist/types/a2a/agent_to_a2a.d.ts +45 -0
- package/dist/types/a2a/event_converter_utils.d.ts +20 -0
- package/dist/types/a2a/event_processor_utils.d.ts +24 -0
- package/dist/types/a2a/executor_context.d.ts +33 -0
- package/dist/types/a2a/metadata_converter_utils.d.ts +63 -0
- package/dist/types/a2a/part_converter_utils.d.ts +48 -0
- package/dist/types/agents/active_streaming_tool.d.ts +29 -0
- package/dist/types/agents/base_agent.d.ts +194 -0
- package/dist/types/agents/context.d.ts +99 -0
- package/dist/types/agents/functions.d.ts +112 -0
- package/dist/types/agents/instructions.d.ts +32 -0
- package/dist/types/agents/invocation_context.d.ts +162 -0
- package/dist/types/agents/live_request_queue.d.ts +67 -0
- package/dist/types/agents/llm_agent.d.ts +351 -0
- package/dist/types/agents/loop_agent.d.ts +47 -0
- package/dist/types/agents/parallel_agent.d.ts +37 -0
- package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +18 -0
- package/dist/types/agents/processors/base_llm_processor.d.ts +27 -0
- package/dist/types/agents/processors/basic_llm_request_processor.d.ts +13 -0
- package/dist/types/agents/processors/code_execution_request_processor.d.ts +34 -0
- package/dist/types/agents/processors/content_processor_utils.d.ts +36 -0
- package/dist/types/agents/processors/content_request_processor.d.ts +13 -0
- package/dist/types/agents/processors/context_compactor_request_processor.d.ts +22 -0
- package/dist/types/agents/processors/identity_llm_request_processor.d.ts +13 -0
- package/dist/types/agents/processors/instructions_llm_request_processor.d.ts +16 -0
- package/dist/types/agents/processors/request_confirmation_llm_request_processor.d.ts +13 -0
- package/dist/types/agents/processors/tool_filter_request_processor.d.ts +14 -0
- package/dist/types/agents/readonly_context.d.ts +39 -0
- package/dist/types/agents/routed_agent.d.ts +59 -0
- package/dist/types/agents/run_config.d.ts +94 -0
- package/dist/types/agents/sequential_agent.d.ts +42 -0
- package/dist/types/agents/transcription_entry.d.ts +17 -0
- package/dist/types/artifacts/base_artifact_service.d.ts +158 -0
- package/dist/types/artifacts/file_artifact_service.d.ts +47 -0
- package/dist/types/artifacts/gcs_artifact_service.d.ts +18 -0
- package/dist/types/artifacts/in_memory_artifact_service.d.ts +21 -0
- package/dist/types/artifacts/registry.d.ts +7 -0
- package/dist/types/auth/auth_credential.d.ts +244 -0
- package/dist/types/auth/auth_handler.d.ts +28 -0
- package/dist/types/auth/auth_preprocessor.d.ts +12 -0
- package/dist/types/auth/auth_provider_registry.d.ts +27 -0
- package/dist/types/auth/auth_schemes.d.ts +39 -0
- package/dist/types/auth/auth_tool.d.ts +51 -0
- package/dist/types/auth/base_auth_provider.d.ts +20 -0
- package/dist/types/auth/credential_service/base_credential_service.d.ts +27 -0
- package/dist/types/auth/credential_service/in_memory_credential_service.d.ts +19 -0
- package/dist/types/auth/credential_service/session_state_credential_service.d.ts +20 -0
- package/dist/types/auth/exchanger/base_credential_exchanger.d.ts +39 -0
- package/dist/types/auth/exchanger/credential_exchanger_registry.d.ts +28 -0
- package/dist/types/auth/oauth2/oauth2_credential_exchanger.d.ts +26 -0
- package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +29 -0
- package/dist/types/auth/oauth2/oauth2_discovery.d.ts +38 -0
- package/dist/types/auth/oauth2/oauth2_utils.d.ts +56 -0
- package/dist/types/auth/refresher/base_credential_refresher.d.ts +38 -0
- package/dist/types/auth/refresher/credential_refresher_registry.d.ts +27 -0
- package/dist/types/code_executors/base_code_executor.d.ts +74 -0
- package/dist/types/code_executors/built_in_code_executor.d.ts +32 -0
- package/dist/types/code_executors/code_execution_utils.d.ts +127 -0
- package/dist/types/code_executors/code_executor_context.d.ts +85 -0
- package/dist/types/code_executors/unsafe_local_code_executor.d.ts +48 -0
- package/dist/types/common.d.ts +137 -0
- package/dist/types/context/base_context_compactor.d.ts +24 -0
- package/dist/types/context/summarizers/base_summarizer.d.ts +19 -0
- package/dist/types/context/summarizers/llm_summarizer.d.ts +23 -0
- package/dist/types/context/token_based_context_compactor.d.ts +33 -0
- package/dist/types/context/truncating_context_compactor.d.ts +24 -0
- package/dist/types/events/compacted_event.d.ts +33 -0
- package/dist/types/events/event.d.ts +102 -0
- package/dist/types/events/event_actions.d.ts +74 -0
- package/dist/types/events/structured_events.d.ts +106 -0
- package/dist/types/examples/base_example_provider.d.ts +36 -0
- package/dist/types/examples/example.d.ts +19 -0
- package/dist/types/examples/example_util.d.ts +13 -0
- package/dist/types/features/feature_registry.d.ts +66 -0
- package/dist/types/index.d.ts +28 -0
- package/dist/types/index_web.d.ts +6 -0
- package/dist/types/memory/base_memory_service.d.ts +53 -0
- package/dist/types/memory/in_memory_memory_service.d.ts +18 -0
- package/dist/types/memory/memory_entry.d.ts +30 -0
- package/dist/types/models/apigee_llm.d.ts +59 -0
- package/dist/types/models/base_llm.d.ts +66 -0
- package/dist/types/models/base_llm_connection.d.ts +51 -0
- package/dist/types/models/gemini_llm_connection.d.ts +54 -0
- package/dist/types/models/google_llm.d.ts +90 -0
- package/dist/types/models/llm_request.d.ts +53 -0
- package/dist/types/models/llm_response.d.ts +83 -0
- package/dist/types/models/registry.d.ts +49 -0
- package/dist/types/models/routed_llm.d.ts +38 -0
- package/dist/types/plugins/base_plugin.d.ts +368 -0
- package/dist/types/plugins/logging_plugin.d.ts +103 -0
- package/dist/types/plugins/plugin_manager.d.ts +175 -0
- package/dist/types/plugins/security_plugin.d.ts +60 -0
- package/dist/types/runner/in_memory_runner.d.ts +15 -0
- package/dist/types/runner/runner.d.ts +117 -0
- package/dist/types/sessions/base_session_service.d.ts +149 -0
- package/dist/types/sessions/database_session_service.d.ts +32 -0
- package/dist/types/sessions/db/operations.d.ts +28 -0
- package/dist/types/sessions/db/schema.d.ts +45 -0
- package/dist/types/sessions/in_memory_session_service.d.ts +30 -0
- package/dist/types/sessions/registry.d.ts +7 -0
- package/dist/types/sessions/session.d.ts +46 -0
- package/dist/types/sessions/state.d.ts +57 -0
- package/dist/types/skills/loader.d.ts +38 -0
- package/dist/types/skills/prompt.d.ts +13 -0
- package/dist/types/skills/skill.d.ts +48 -0
- package/dist/types/telemetry/google_cloud.d.ts +9 -0
- package/dist/types/telemetry/setup.d.ts +48 -0
- package/dist/types/telemetry/tracing.d.ts +112 -0
- package/dist/types/tools/agent_tool.d.ts +73 -0
- package/dist/types/tools/base_tool.d.ts +98 -0
- package/dist/types/tools/base_toolset.d.ts +74 -0
- package/dist/types/tools/exit_loop_tool.d.ts +24 -0
- package/dist/types/tools/forwarding_artifact_service.d.ts +23 -0
- package/dist/types/tools/function_tool.d.ts +62 -0
- package/dist/types/tools/google_maps_grounding_tool.d.ts +22 -0
- package/dist/types/tools/google_search_tool.d.ts +17 -0
- package/dist/types/tools/load_artifacts_tool.d.ts +21 -0
- package/dist/types/tools/load_memory_tool.d.ts +22 -0
- package/dist/types/tools/long_running_tool.d.ts +18 -0
- package/dist/types/tools/mcp/mcp_session_manager.d.ts +64 -0
- package/dist/types/tools/mcp/mcp_tool.d.ts +36 -0
- package/dist/types/tools/mcp/mcp_toolset.d.ts +44 -0
- package/dist/types/tools/preload_memory_tool.d.ts +23 -0
- package/dist/types/tools/skill/list_skills_tool.d.ts +14 -0
- package/dist/types/tools/skill/load_skill_resource_tool.d.ts +15 -0
- package/dist/types/tools/skill/load_skill_tool.d.ts +14 -0
- package/dist/types/tools/skill/run_skill_inline_script_tool.d.ts +14 -0
- package/dist/types/tools/skill/run_skill_script_tool.d.ts +17 -0
- package/dist/types/tools/skill/skill_toolset.d.ts +28 -0
- package/dist/types/tools/tool_confirmation.d.ts +25 -0
- package/dist/types/tools/url_context_tool.d.ts +17 -0
- package/dist/types/tools/vertex_ai_search_tool.d.ts +55 -0
- package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +42 -0
- package/dist/types/utils/client_labels.d.ts +9 -0
- package/dist/types/utils/env_aware_utils.d.ts +38 -0
- package/dist/types/utils/experimental.d.ts +11 -0
- package/dist/types/utils/failover_utils.d.ts +17 -0
- package/dist/types/utils/file_extension_utils.d.ts +21 -0
- package/dist/types/utils/file_utils.d.ts +11 -0
- package/dist/types/utils/gemini_schema_util.d.ts +15 -0
- package/dist/types/utils/logger.d.ts +38 -0
- package/dist/types/utils/model_name.d.ts +38 -0
- package/dist/types/utils/object_notation_utils.d.ts +21 -0
- package/dist/types/utils/simple_zod_to_json.d.ts +13 -0
- package/dist/types/utils/streaming_utils.d.ts +40 -0
- package/dist/types/utils/variant_utils.d.ts +24 -0
- package/dist/types/version.d.ts +6 -0
- package/dist/web/a2a/a2a_event.js +271 -0
- package/dist/web/a2a/a2a_remote_agent.js +186 -0
- package/dist/web/a2a/a2a_remote_agent_run_processor.js +184 -0
- package/dist/web/a2a/a2a_remote_agent_utils.js +133 -0
- package/dist/web/a2a/agent_card.js +342 -0
- package/dist/web/a2a/agent_executor.js +218 -0
- package/dist/web/a2a/agent_to_a2a.js +82 -0
- package/dist/web/a2a/event_converter_utils.js +203 -0
- package/dist/web/a2a/event_processor_utils.js +170 -0
- package/dist/web/a2a/executor_context.js +25 -0
- package/dist/web/a2a/metadata_converter_utils.js +110 -0
- package/dist/web/a2a/part_converter_utils.js +188 -0
- package/dist/web/agents/active_streaming_tool.js +16 -0
- package/dist/web/agents/base_agent.js +354 -0
- package/dist/web/agents/context.js +152 -0
- package/dist/web/agents/functions.js +520 -0
- package/dist/web/agents/instructions.js +82 -0
- package/dist/web/agents/invocation_context.js +81 -0
- package/dist/web/agents/live_request_queue.js +126 -0
- package/dist/web/agents/llm_agent.js +907 -0
- package/dist/web/agents/loop_agent.js +88 -0
- package/dist/web/agents/parallel_agent.js +101 -0
- package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +102 -0
- package/dist/web/agents/processors/base_llm_processor.js +15 -0
- package/dist/web/agents/processors/basic_llm_request_processor.js +73 -0
- package/dist/web/agents/processors/code_execution_request_processor.js +370 -0
- package/dist/web/agents/processors/content_processor_utils.js +318 -0
- package/dist/web/agents/processors/content_request_processor.js +79 -0
- package/dist/web/agents/processors/context_compactor_request_processor.js +60 -0
- package/dist/web/agents/processors/identity_llm_request_processor.js +43 -0
- package/dist/web/agents/processors/instructions_llm_request_processor.js +74 -0
- package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +160 -0
- package/dist/web/agents/processors/tool_filter_request_processor.js +62 -0
- package/dist/web/agents/readonly_context.js +55 -0
- package/dist/web/agents/routed_agent.js +138 -0
- package/dist/web/agents/run_config.js +57 -0
- package/dist/web/agents/sequential_agent.js +122 -0
- package/dist/web/agents/transcription_entry.js +7 -0
- package/dist/web/artifacts/base_artifact_service.js +7 -0
- package/dist/web/artifacts/file_artifact_service.js +535 -0
- package/dist/web/artifacts/gcs_artifact_service.js +213 -0
- package/dist/web/artifacts/in_memory_artifact_service.js +152 -0
- package/dist/web/artifacts/registry.js +30 -0
- package/dist/web/auth/auth_credential.js +18 -0
- package/dist/web/auth/auth_handler.js +148 -0
- package/dist/web/auth/auth_preprocessor.js +173 -0
- package/dist/web/auth/auth_provider_registry.js +33 -0
- package/dist/web/auth/auth_schemes.js +33 -0
- package/dist/web/auth/auth_tool.js +7 -0
- package/dist/web/auth/base_auth_provider.js +7 -0
- package/dist/web/auth/credential_service/base_credential_service.js +7 -0
- package/dist/web/auth/credential_service/in_memory_credential_service.js +35 -0
- package/dist/web/auth/credential_service/session_state_credential_service.js +23 -0
- package/dist/web/auth/exchanger/base_credential_exchanger.js +12 -0
- package/dist/web/auth/exchanger/credential_exchanger_registry.js +31 -0
- package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +188 -0
- package/dist/web/auth/oauth2/oauth2_credential_refresher.js +102 -0
- package/dist/web/auth/oauth2/oauth2_discovery.js +156 -0
- package/dist/web/auth/oauth2/oauth2_utils.js +87 -0
- package/dist/web/auth/refresher/base_credential_refresher.js +16 -0
- package/dist/web/auth/refresher/credential_refresher_registry.js +40 -0
- package/dist/web/code_executors/base_code_executor.js +63 -0
- package/dist/web/code_executors/built_in_code_executor.js +45 -0
- package/dist/web/code_executors/code_execution_utils.js +124 -0
- package/dist/web/code_executors/code_executor_context.js +170 -0
- package/dist/web/code_executors/unsafe_local_code_executor.js +203 -0
- package/dist/web/common.js +245 -0
- package/dist/web/context/base_context_compactor.js +7 -0
- package/dist/web/context/summarizers/base_summarizer.js +7 -0
- package/dist/web/context/summarizers/llm_summarizer.js +76 -0
- package/dist/web/context/token_based_context_compactor.js +107 -0
- package/dist/web/context/truncating_context_compactor.js +30 -0
- package/dist/web/events/compacted_event.js +42 -0
- package/dist/web/events/event.js +128 -0
- package/dist/web/events/event_actions.js +69 -0
- package/dist/web/events/structured_events.js +76 -0
- package/dist/web/examples/base_example_provider.js +27 -0
- package/dist/web/examples/example.js +7 -0
- package/dist/web/examples/example_util.js +79 -0
- package/dist/web/features/feature_registry.js +107 -0
- package/dist/web/index.js +50 -0
- package/dist/web/index_web.js +8 -0
- package/dist/web/memory/base_memory_service.js +7 -0
- package/dist/web/memory/in_memory_memory_service.js +71 -0
- package/dist/web/memory/memory_entry.js +7 -0
- package/dist/web/models/apigee_llm.js +221 -0
- package/dist/web/models/base_llm.js +73 -0
- package/dist/web/models/base_llm_connection.js +7 -0
- package/dist/web/models/gemini_llm_connection.js +123 -0
- package/dist/web/models/google_llm.js +321 -0
- package/dist/web/models/llm_request.js +52 -0
- package/dist/web/models/llm_response.js +45 -0
- package/dist/web/models/registry.js +95 -0
- package/dist/web/models/routed_llm.js +122 -0
- package/dist/web/plugins/base_plugin.js +268 -0
- package/dist/web/plugins/logging_plugin.js +235 -0
- package/dist/web/plugins/plugin_manager.js +282 -0
- package/dist/web/plugins/security_plugin.js +124 -0
- package/dist/web/runner/in_memory_runner.js +30 -0
- package/dist/web/runner/runner.js +426 -0
- package/dist/web/sessions/base_session_service.js +91 -0
- package/dist/web/sessions/database_session_service.js +373 -0
- package/dist/web/sessions/db/operations.js +96 -0
- package/dist/web/sessions/db/schema.js +174 -0
- package/dist/web/sessions/in_memory_session_service.js +184 -0
- package/dist/web/sessions/registry.js +27 -0
- package/dist/web/sessions/session.js +20 -0
- package/dist/web/sessions/state.js +89 -0
- package/dist/web/skills/loader.js +262 -0
- package/dist/web/skills/prompt.js +30 -0
- package/dist/web/skills/skill.js +67 -0
- package/dist/web/telemetry/google_cloud.js +54 -0
- package/dist/web/telemetry/setup.js +83 -0
- package/dist/web/telemetry/tracing.js +234 -0
- package/dist/web/tools/agent_tool.js +233 -0
- package/dist/web/tools/base_tool.js +93 -0
- package/dist/web/tools/base_toolset.js +57 -0
- package/dist/web/tools/exit_loop_tool.js +34 -0
- package/dist/web/tools/forwarding_artifact_service.js +59 -0
- package/dist/web/tools/function_tool.js +80 -0
- package/dist/web/tools/google_maps_grounding_tool.js +54 -0
- package/dist/web/tools/google_search_tool.js +51 -0
- package/dist/web/tools/load_artifacts_tool.js +152 -0
- package/dist/web/tools/load_memory_tool.js +79 -0
- package/dist/web/tools/long_running_tool.js +54 -0
- package/dist/web/tools/mcp/mcp_session_manager.js +53 -0
- package/dist/web/tools/mcp/mcp_tool.js +40 -0
- package/dist/web/tools/mcp/mcp_toolset.js +70 -0
- package/dist/web/tools/preload_memory_tool.js +77 -0
- package/dist/web/tools/skill/list_skills_tool.js +50 -0
- package/dist/web/tools/skill/load_skill_resource_tool.js +191 -0
- package/dist/web/tools/skill/load_skill_tool.js +82 -0
- package/dist/web/tools/skill/run_skill_inline_script_tool.js +120 -0
- package/dist/web/tools/skill/run_skill_script_tool.js +190 -0
- package/dist/web/tools/skill/skill_toolset.js +123 -0
- package/dist/web/tools/tool_confirmation.js +21 -0
- package/dist/web/tools/url_context_tool.js +44 -0
- package/dist/web/tools/vertex_ai_search_tool.js +103 -0
- package/dist/web/tools/vertex_rag_retrieval_tool.js +36 -0
- package/dist/web/utils/client_labels.js +28 -0
- package/dist/web/utils/env_aware_utils.js +59 -0
- package/dist/web/utils/experimental.js +46 -0
- package/dist/web/utils/failover_utils.js +96 -0
- package/dist/web/utils/file_extension_utils.js +51 -0
- package/dist/web/utils/file_utils.js +74 -0
- package/dist/web/utils/gemini_schema_util.js +155 -0
- package/dist/web/utils/logger.js +130 -0
- package/dist/web/utils/model_name.js +58 -0
- package/dist/web/utils/object_notation_utils.js +49 -0
- package/dist/web/utils/simple_zod_to_json.js +123 -0
- package/dist/web/utils/streaming_utils.js +322 -0
- package/dist/web/utils/variant_utils.js +20 -0
- package/dist/web/version.js +11 -0
- package/package.json +84 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var oauth2_credential_exchanger_exports = {};
|
|
26
|
+
__export(oauth2_credential_exchanger_exports, {
|
|
27
|
+
OAuth2CredentialExchanger: () => OAuth2CredentialExchanger,
|
|
28
|
+
determineGrantType: () => determineGrantType,
|
|
29
|
+
exchangeAuthorizationCode: () => exchangeAuthorizationCode,
|
|
30
|
+
exchangeClientCredentials: () => exchangeClientCredentials
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(oauth2_credential_exchanger_exports);
|
|
33
|
+
var import_logger = require("../../utils/logger.js");
|
|
34
|
+
var import_auth_schemes = require("../auth_schemes.js");
|
|
35
|
+
var import_base_credential_exchanger = require("../exchanger/base_credential_exchanger.js");
|
|
36
|
+
var import_oauth2_utils = require("./oauth2_utils.js");
|
|
37
|
+
/**
|
|
38
|
+
* @license
|
|
39
|
+
* Copyright 2026 Google LLC
|
|
40
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
41
|
+
*/
|
|
42
|
+
class OAuth2CredentialExchanger {
|
|
43
|
+
async exchange({
|
|
44
|
+
authCredential,
|
|
45
|
+
authScheme
|
|
46
|
+
}) {
|
|
47
|
+
var _a;
|
|
48
|
+
if (!authScheme) {
|
|
49
|
+
throw new import_base_credential_exchanger.CredentialExchangeError(
|
|
50
|
+
"authScheme is required for OAuth2 credential exchange"
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
if ((_a = authCredential.oauth2) == null ? void 0 : _a.accessToken) {
|
|
54
|
+
return {
|
|
55
|
+
credential: authCredential,
|
|
56
|
+
wasExchanged: false
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const grantType = determineGrantType(authScheme);
|
|
60
|
+
if (grantType === import_auth_schemes.OAuthGrantType.CLIENT_CREDENTIALS) {
|
|
61
|
+
return exchangeClientCredentials({ authCredential, authScheme });
|
|
62
|
+
}
|
|
63
|
+
if (grantType === import_auth_schemes.OAuthGrantType.AUTHORIZATION_CODE) {
|
|
64
|
+
return exchangeAuthorizationCode({ authCredential, authScheme });
|
|
65
|
+
}
|
|
66
|
+
import_logger.logger.warn(`Unsupported OAuth2 grant type: ${grantType}`);
|
|
67
|
+
return {
|
|
68
|
+
credential: authCredential,
|
|
69
|
+
wasExchanged: false
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function determineGrantType(authScheme) {
|
|
74
|
+
var _a;
|
|
75
|
+
if ("flows" in authScheme && authScheme.flows) {
|
|
76
|
+
return (0, import_auth_schemes.getOAuthGrantTypeFromFlow)(authScheme.flows);
|
|
77
|
+
}
|
|
78
|
+
if (authScheme.grantTypesSupported) {
|
|
79
|
+
const oidcScheme = authScheme;
|
|
80
|
+
if ((_a = oidcScheme.grantTypesSupported) == null ? void 0 : _a.includes("client_credentials")) {
|
|
81
|
+
return import_auth_schemes.OAuthGrantType.CLIENT_CREDENTIALS;
|
|
82
|
+
}
|
|
83
|
+
return import_auth_schemes.OAuthGrantType.AUTHORIZATION_CODE;
|
|
84
|
+
}
|
|
85
|
+
return void 0;
|
|
86
|
+
}
|
|
87
|
+
async function exchangeClientCredentials({
|
|
88
|
+
authCredential,
|
|
89
|
+
authScheme
|
|
90
|
+
}) {
|
|
91
|
+
var _a, _b;
|
|
92
|
+
const tokenEndpoint = (0, import_oauth2_utils.getTokenEndpoint)(authScheme);
|
|
93
|
+
if (!tokenEndpoint) {
|
|
94
|
+
throw new import_base_credential_exchanger.CredentialExchangeError(
|
|
95
|
+
"Token endpoint not found in auth scheme."
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
if (!((_a = authCredential.oauth2) == null ? void 0 : _a.clientId) || !((_b = authCredential.oauth2) == null ? void 0 : _b.clientSecret)) {
|
|
99
|
+
throw new import_base_credential_exchanger.CredentialExchangeError(
|
|
100
|
+
"clientId and clientSecret are required for client credentials exchange."
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
const body = (0, import_oauth2_utils.createOAuth2TokenRequestBody)({
|
|
104
|
+
grantType: "client_credentials",
|
|
105
|
+
clientId: authCredential.oauth2.clientId,
|
|
106
|
+
clientSecret: authCredential.oauth2.clientSecret
|
|
107
|
+
});
|
|
108
|
+
try {
|
|
109
|
+
const oauth2Auth = await (0, import_oauth2_utils.fetchOAuth2Tokens)(tokenEndpoint, body);
|
|
110
|
+
return {
|
|
111
|
+
credential: {
|
|
112
|
+
...authCredential,
|
|
113
|
+
oauth2: {
|
|
114
|
+
...authCredential.oauth2,
|
|
115
|
+
...oauth2Auth
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
wasExchanged: true
|
|
119
|
+
};
|
|
120
|
+
} catch (error) {
|
|
121
|
+
throw new import_base_credential_exchanger.CredentialExchangeError(
|
|
122
|
+
`Failed to exchange tokens: ${error instanceof Error ? error.message : String(error)}`
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
async function exchangeAuthorizationCode({
|
|
127
|
+
authCredential,
|
|
128
|
+
authScheme
|
|
129
|
+
}) {
|
|
130
|
+
var _a, _b, _c, _d;
|
|
131
|
+
const tokenEndpoint = (0, import_oauth2_utils.getTokenEndpoint)(authScheme);
|
|
132
|
+
if (!tokenEndpoint) {
|
|
133
|
+
throw new import_base_credential_exchanger.CredentialExchangeError(
|
|
134
|
+
"Token endpoint not found in auth scheme."
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
if (!((_a = authCredential.oauth2) == null ? void 0 : _a.clientId) || !((_b = authCredential.oauth2) == null ? void 0 : _b.clientSecret) || !((_c = authCredential.oauth2) == null ? void 0 : _c.authCode) && !((_d = authCredential.oauth2) == null ? void 0 : _d.authResponseUri)) {
|
|
138
|
+
throw new import_base_credential_exchanger.CredentialExchangeError(
|
|
139
|
+
"clientId, clientSecret, and either authCode or authResponseUri are required for authorization code exchange."
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
let code = authCredential.oauth2.authCode;
|
|
143
|
+
if (!code && authCredential.oauth2.authResponseUri) {
|
|
144
|
+
code = (0, import_oauth2_utils.parseAuthorizationCode)(authCredential.oauth2.authResponseUri);
|
|
145
|
+
}
|
|
146
|
+
if (authCredential.oauth2.authResponseUri && authCredential.oauth2.state) {
|
|
147
|
+
try {
|
|
148
|
+
const url = new URL(authCredential.oauth2.authResponseUri);
|
|
149
|
+
const receivedState = url.searchParams.get("state") || void 0;
|
|
150
|
+
if (authCredential.oauth2.state !== receivedState) {
|
|
151
|
+
throw new import_base_credential_exchanger.CredentialExchangeError(
|
|
152
|
+
"State mismatch detected. Potential CSRF attack."
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
} catch (e) {
|
|
156
|
+
throw new import_base_credential_exchanger.CredentialExchangeError(
|
|
157
|
+
`Failed to parse authResponseUri for state validation: ${e instanceof Error ? e.message : String(e)}`
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (!code) {
|
|
162
|
+
throw new import_base_credential_exchanger.CredentialExchangeError(
|
|
163
|
+
"Authorization code not found in auth response."
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
const body = (0, import_oauth2_utils.createOAuth2TokenRequestBody)({
|
|
167
|
+
grantType: "authorization_code",
|
|
168
|
+
clientId: authCredential.oauth2.clientId,
|
|
169
|
+
clientSecret: authCredential.oauth2.clientSecret,
|
|
170
|
+
code,
|
|
171
|
+
redirectUri: authCredential.oauth2.redirectUri,
|
|
172
|
+
codeVerifier: authCredential.oauth2.codeVerifier
|
|
173
|
+
});
|
|
174
|
+
try {
|
|
175
|
+
const oauth2Auth = await (0, import_oauth2_utils.fetchOAuth2Tokens)(tokenEndpoint, body);
|
|
176
|
+
return {
|
|
177
|
+
credential: {
|
|
178
|
+
...authCredential,
|
|
179
|
+
oauth2: {
|
|
180
|
+
...authCredential.oauth2,
|
|
181
|
+
...oauth2Auth
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
wasExchanged: true
|
|
185
|
+
};
|
|
186
|
+
} catch (error) {
|
|
187
|
+
throw new import_base_credential_exchanger.CredentialExchangeError(
|
|
188
|
+
`Failed to exchange tokens: ${error instanceof Error ? error.message : String(error)}`
|
|
189
|
+
);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
193
|
+
0 && (module.exports = {
|
|
194
|
+
OAuth2CredentialExchanger,
|
|
195
|
+
determineGrantType,
|
|
196
|
+
exchangeAuthorizationCode,
|
|
197
|
+
exchangeClientCredentials
|
|
198
|
+
});
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var oauth2_credential_refresher_exports = {};
|
|
26
|
+
__export(oauth2_credential_refresher_exports, {
|
|
27
|
+
OAuth2CredentialRefresher: () => OAuth2CredentialRefresher
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(oauth2_credential_refresher_exports);
|
|
30
|
+
var import_logger = require("../../utils/logger.js");
|
|
31
|
+
var import_oauth2_utils = require("./oauth2_utils.js");
|
|
32
|
+
/**
|
|
33
|
+
* @license
|
|
34
|
+
* Copyright 2026 Google LLC
|
|
35
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
36
|
+
*/
|
|
37
|
+
class OAuth2CredentialRefresher {
|
|
38
|
+
/**
|
|
39
|
+
* Check if the OAuth2 credential needs to be refreshed.
|
|
40
|
+
*
|
|
41
|
+
* @param authCredential The OAuth2 credential to check.
|
|
42
|
+
* @param authScheme The OAuth2 authentication scheme (optional).
|
|
43
|
+
* @returns True if the credential needs to be refreshed, False otherwise.
|
|
44
|
+
*/
|
|
45
|
+
async isRefreshNeeded(authCredential) {
|
|
46
|
+
if (!authCredential.oauth2) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
if (authCredential.oauth2 && authCredential.oauth2.expiresAt) {
|
|
50
|
+
return (0, import_oauth2_utils.isTokenExpired)(authCredential.oauth2);
|
|
51
|
+
}
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Refresh the OAuth2 credential.
|
|
56
|
+
*
|
|
57
|
+
* @param authCredential The OAuth2 credential to refresh.
|
|
58
|
+
* @param authScheme The OAuth2 authentication scheme.
|
|
59
|
+
* @returns The refreshed credential.
|
|
60
|
+
*/
|
|
61
|
+
async refresh(authCredential, authScheme) {
|
|
62
|
+
if (!authCredential.oauth2 || !authScheme) {
|
|
63
|
+
return authCredential;
|
|
64
|
+
}
|
|
65
|
+
if (!authCredential.oauth2.refreshToken) {
|
|
66
|
+
import_logger.logger.warn("No refresh token available to refresh credential");
|
|
67
|
+
return authCredential;
|
|
68
|
+
}
|
|
69
|
+
const isNeeded = await this.isRefreshNeeded(authCredential);
|
|
70
|
+
if (!isNeeded) {
|
|
71
|
+
return authCredential;
|
|
72
|
+
}
|
|
73
|
+
const tokenEndpoint = (0, import_oauth2_utils.getTokenEndpoint)(authScheme);
|
|
74
|
+
if (!tokenEndpoint) {
|
|
75
|
+
import_logger.logger.warn("Token endpoint not found in auth scheme.");
|
|
76
|
+
return authCredential;
|
|
77
|
+
}
|
|
78
|
+
if (!authCredential.oauth2.clientId || !authCredential.oauth2.clientSecret) {
|
|
79
|
+
import_logger.logger.warn("clientId and clientSecret are required for token refresh.");
|
|
80
|
+
return authCredential;
|
|
81
|
+
}
|
|
82
|
+
const body = new URLSearchParams();
|
|
83
|
+
body.set("grant_type", "refresh_token");
|
|
84
|
+
body.set("refresh_token", authCredential.oauth2.refreshToken);
|
|
85
|
+
body.set("client_id", authCredential.oauth2.clientId);
|
|
86
|
+
body.set("client_secret", authCredential.oauth2.clientSecret);
|
|
87
|
+
try {
|
|
88
|
+
const data = await (0, import_oauth2_utils.fetchOAuth2Tokens)(tokenEndpoint, body);
|
|
89
|
+
const updatedOAuth2 = {
|
|
90
|
+
...authCredential.oauth2,
|
|
91
|
+
accessToken: data.accessToken || authCredential.oauth2.accessToken,
|
|
92
|
+
refreshToken: data.refreshToken || authCredential.oauth2.refreshToken,
|
|
93
|
+
expiresIn: data.expiresIn,
|
|
94
|
+
expiresAt: data.expiresAt || authCredential.oauth2.expiresAt
|
|
95
|
+
};
|
|
96
|
+
return {
|
|
97
|
+
...authCredential,
|
|
98
|
+
oauth2: updatedOAuth2
|
|
99
|
+
};
|
|
100
|
+
} catch (error) {
|
|
101
|
+
import_logger.logger.error("Failed to refresh tokens:", error);
|
|
102
|
+
return authCredential;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
107
|
+
0 && (module.exports = {
|
|
108
|
+
OAuth2CredentialRefresher
|
|
109
|
+
});
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var oauth2_discovery_exports = {};
|
|
26
|
+
__export(oauth2_discovery_exports, {
|
|
27
|
+
AuthorizationServerMetadataSchema: () => AuthorizationServerMetadataSchema,
|
|
28
|
+
OAuth2DiscoveryManager: () => OAuth2DiscoveryManager,
|
|
29
|
+
ProtectedResourceMetadataSchema: () => ProtectedResourceMetadataSchema
|
|
30
|
+
});
|
|
31
|
+
module.exports = __toCommonJS(oauth2_discovery_exports);
|
|
32
|
+
var import_zod = require("zod");
|
|
33
|
+
var import_logger = require("../../utils/logger.js");
|
|
34
|
+
/**
|
|
35
|
+
* @license
|
|
36
|
+
* Copyright 2026 Google LLC
|
|
37
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
38
|
+
*/
|
|
39
|
+
const AuthorizationServerMetadataSchema = import_zod.z.object({
|
|
40
|
+
issuer: import_zod.z.string(),
|
|
41
|
+
authorization_endpoint: import_zod.z.string(),
|
|
42
|
+
token_endpoint: import_zod.z.string(),
|
|
43
|
+
scopes_supported: import_zod.z.array(import_zod.z.string()).optional(),
|
|
44
|
+
registration_endpoint: import_zod.z.string().optional()
|
|
45
|
+
});
|
|
46
|
+
const ProtectedResourceMetadataSchema = import_zod.z.object({
|
|
47
|
+
resource: import_zod.z.string(),
|
|
48
|
+
authorization_servers: import_zod.z.array(import_zod.z.string()).default([])
|
|
49
|
+
});
|
|
50
|
+
class OAuth2DiscoveryManager {
|
|
51
|
+
/**
|
|
52
|
+
* Discovers the OAuth2 authorization server metadata.
|
|
53
|
+
*/
|
|
54
|
+
async discoverAuthServerMetadata(issuerUrl) {
|
|
55
|
+
if (!validateDiscoveryUrl(issuerUrl)) {
|
|
56
|
+
return void 0;
|
|
57
|
+
}
|
|
58
|
+
let baseUrl;
|
|
59
|
+
let path;
|
|
60
|
+
try {
|
|
61
|
+
const url = new URL(issuerUrl);
|
|
62
|
+
baseUrl = `${url.protocol}//${url.host}`;
|
|
63
|
+
path = url.pathname;
|
|
64
|
+
} catch (e) {
|
|
65
|
+
import_logger.logger.warn(`Failed to parse issuerUrl ${issuerUrl}: ${e}`);
|
|
66
|
+
return void 0;
|
|
67
|
+
}
|
|
68
|
+
const endpointsToTry = [];
|
|
69
|
+
if (path && path !== "/") {
|
|
70
|
+
endpointsToTry.push(
|
|
71
|
+
`${baseUrl}/.well-known/oauth-authorization-server${path}`,
|
|
72
|
+
`${baseUrl}/.well-known/openid-configuration${path}`,
|
|
73
|
+
`${baseUrl}${path}/.well-known/openid-configuration`
|
|
74
|
+
);
|
|
75
|
+
} else {
|
|
76
|
+
endpointsToTry.push(
|
|
77
|
+
`${baseUrl}/.well-known/oauth-authorization-server`,
|
|
78
|
+
`${baseUrl}/.well-known/openid-configuration`
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
for (const endpoint of endpointsToTry) {
|
|
82
|
+
try {
|
|
83
|
+
const response = await fetch(endpoint, {
|
|
84
|
+
method: "GET",
|
|
85
|
+
headers: {
|
|
86
|
+
Accept: "application/json"
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
if (!response.ok) {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
const data = await response.json();
|
|
93
|
+
const metadata = AuthorizationServerMetadataSchema.parse(data);
|
|
94
|
+
if (metadata.issuer.replace(/\/$/, "") === issuerUrl.replace(/\/$/, "")) {
|
|
95
|
+
return metadata;
|
|
96
|
+
} else {
|
|
97
|
+
import_logger.logger.warn(
|
|
98
|
+
`Issuer in metadata ${metadata.issuer} does not match issuerUrl ${issuerUrl}`
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
} catch (e) {
|
|
102
|
+
import_logger.logger.debug(`Failed to fetch metadata from ${endpoint}: ${e}`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return void 0;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Discovers the OAuth2 protected resource metadata.
|
|
109
|
+
*/
|
|
110
|
+
async discoverResourceMetadata(resourceUrl) {
|
|
111
|
+
if (!validateDiscoveryUrl(resourceUrl)) {
|
|
112
|
+
return void 0;
|
|
113
|
+
}
|
|
114
|
+
let baseUrl;
|
|
115
|
+
let path;
|
|
116
|
+
try {
|
|
117
|
+
const url = new URL(resourceUrl);
|
|
118
|
+
baseUrl = `${url.protocol}//${url.host}`;
|
|
119
|
+
path = url.pathname;
|
|
120
|
+
} catch (e) {
|
|
121
|
+
import_logger.logger.warn(`Failed to parse resourceUrl ${resourceUrl}: ${e}`);
|
|
122
|
+
return void 0;
|
|
123
|
+
}
|
|
124
|
+
let wellKnownEndpoint;
|
|
125
|
+
if (path && path !== "/") {
|
|
126
|
+
wellKnownEndpoint = `${baseUrl}/.well-known/oauth-protected-resource${path}`;
|
|
127
|
+
} else {
|
|
128
|
+
wellKnownEndpoint = `${baseUrl}/.well-known/oauth-protected-resource`;
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
const response = await fetch(wellKnownEndpoint, {
|
|
132
|
+
method: "GET",
|
|
133
|
+
headers: {
|
|
134
|
+
Accept: "application/json"
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
if (!response.ok) {
|
|
138
|
+
return void 0;
|
|
139
|
+
}
|
|
140
|
+
const data = await response.json();
|
|
141
|
+
const metadata = ProtectedResourceMetadataSchema.parse(data);
|
|
142
|
+
if (metadata.resource.replace(/\/$/, "") === resourceUrl.replace(/\/$/, "")) {
|
|
143
|
+
return metadata;
|
|
144
|
+
} else {
|
|
145
|
+
import_logger.logger.warn(
|
|
146
|
+
`Resource in metadata ${metadata.resource} does not match resourceUrl ${resourceUrl}`
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
} catch (e) {
|
|
150
|
+
import_logger.logger.debug(`Failed to fetch metadata from ${wellKnownEndpoint}: ${e}`);
|
|
151
|
+
}
|
|
152
|
+
return void 0;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function validateDiscoveryUrl(urlStr) {
|
|
156
|
+
try {
|
|
157
|
+
const url = new URL(urlStr);
|
|
158
|
+
if (url.protocol !== "https:") {
|
|
159
|
+
import_logger.logger.warn(`Unsafe protocol for discovery URL: ${url.protocol}`);
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
const host = url.hostname.toLowerCase();
|
|
163
|
+
if (host === "localhost" || host === "127.0.0.1" || host === "[::1]" || host.startsWith("10.") || host.startsWith("192.168.") || host.startsWith("169.254.")) {
|
|
164
|
+
import_logger.logger.warn(`Unsafe host for discovery URL: ${host}`);
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
const match = host.match(/^172\.(\d+)\./);
|
|
168
|
+
if (match) {
|
|
169
|
+
const secondOctet = parseInt(match[1], 10);
|
|
170
|
+
if (secondOctet >= 16 && secondOctet <= 31) {
|
|
171
|
+
import_logger.logger.warn(`Unsafe host for discovery URL: ${host}`);
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return true;
|
|
176
|
+
} catch (e) {
|
|
177
|
+
import_logger.logger.warn(`Failed to parse URL for validation ${urlStr}: ${e}`);
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
182
|
+
0 && (module.exports = {
|
|
183
|
+
AuthorizationServerMetadataSchema,
|
|
184
|
+
OAuth2DiscoveryManager,
|
|
185
|
+
ProtectedResourceMetadataSchema
|
|
186
|
+
});
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var oauth2_utils_exports = {};
|
|
26
|
+
__export(oauth2_utils_exports, {
|
|
27
|
+
createOAuth2TokenRequestBody: () => createOAuth2TokenRequestBody,
|
|
28
|
+
fetchOAuth2Tokens: () => fetchOAuth2Tokens,
|
|
29
|
+
getTokenEndpoint: () => getTokenEndpoint,
|
|
30
|
+
isTokenExpired: () => isTokenExpired,
|
|
31
|
+
parseAuthorizationCode: () => parseAuthorizationCode
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(oauth2_utils_exports);
|
|
34
|
+
var import_logger = require("../../utils/logger.js");
|
|
35
|
+
/**
|
|
36
|
+
* @license
|
|
37
|
+
* Copyright 2026 Google LLC
|
|
38
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
39
|
+
*/
|
|
40
|
+
function getTokenEndpoint(authScheme) {
|
|
41
|
+
if (authScheme.type === "openIdConnect" && authScheme.tokenEndpoint) {
|
|
42
|
+
return authScheme.tokenEndpoint;
|
|
43
|
+
}
|
|
44
|
+
if (authScheme.type === "oauth2" && authScheme.flows) {
|
|
45
|
+
const flows = authScheme.flows;
|
|
46
|
+
const flow = flows.authorizationCode || flows.clientCredentials || flows.password || flows.implicit;
|
|
47
|
+
if (flow && "tokenUrl" in flow) {
|
|
48
|
+
return flow.tokenUrl;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return void 0;
|
|
52
|
+
}
|
|
53
|
+
async function fetchOAuth2Tokens(endpoint, body) {
|
|
54
|
+
try {
|
|
55
|
+
const response = await fetch(endpoint, {
|
|
56
|
+
method: "POST",
|
|
57
|
+
headers: {
|
|
58
|
+
"Content-Type": "application/x-www-form-urlencoded"
|
|
59
|
+
},
|
|
60
|
+
body: body.toString()
|
|
61
|
+
});
|
|
62
|
+
if (!response.ok) {
|
|
63
|
+
throw new Error(`Token request failed with status ${response.status}`);
|
|
64
|
+
}
|
|
65
|
+
const data = await response.json();
|
|
66
|
+
return {
|
|
67
|
+
accessToken: data.access_token,
|
|
68
|
+
refreshToken: data.refresh_token,
|
|
69
|
+
idToken: data.id_token,
|
|
70
|
+
expiresIn: data.expires_in,
|
|
71
|
+
expiresAt: data.expires_in ? Date.now() + data.expires_in * 1e3 : void 0
|
|
72
|
+
};
|
|
73
|
+
} catch (e) {
|
|
74
|
+
import_logger.logger.error(`Failed to fetch OAuth2 tokens: ${e}`);
|
|
75
|
+
throw e;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function parseAuthorizationCode(uri) {
|
|
79
|
+
try {
|
|
80
|
+
const url = new URL(uri);
|
|
81
|
+
return url.searchParams.get("code") || void 0;
|
|
82
|
+
} catch (e) {
|
|
83
|
+
import_logger.logger.warn(`Failed to parse authorization URI ${uri}: ${e}`);
|
|
84
|
+
return void 0;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function createOAuth2TokenRequestBody(params) {
|
|
88
|
+
const body = new URLSearchParams();
|
|
89
|
+
body.set("grant_type", params.grantType);
|
|
90
|
+
body.set("client_id", params.clientId);
|
|
91
|
+
body.set("client_secret", params.clientSecret);
|
|
92
|
+
if (params.grantType === "authorization_code") {
|
|
93
|
+
body.set("code", params.code);
|
|
94
|
+
if (params.redirectUri) {
|
|
95
|
+
body.set("redirect_uri", params.redirectUri);
|
|
96
|
+
}
|
|
97
|
+
if (params.codeVerifier) {
|
|
98
|
+
body.set("code_verifier", params.codeVerifier);
|
|
99
|
+
}
|
|
100
|
+
} else if (params.grantType === "refresh_token") {
|
|
101
|
+
body.set("refresh_token", params.refreshToken);
|
|
102
|
+
}
|
|
103
|
+
return body;
|
|
104
|
+
}
|
|
105
|
+
function isTokenExpired(token, leeway = 60) {
|
|
106
|
+
if (typeof token.expiresAt !== "number") {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
const expirationThreshold = token.expiresAt - leeway * 1e3;
|
|
110
|
+
return expirationThreshold < Date.now();
|
|
111
|
+
}
|
|
112
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
113
|
+
0 && (module.exports = {
|
|
114
|
+
createOAuth2TokenRequestBody,
|
|
115
|
+
fetchOAuth2Tokens,
|
|
116
|
+
getTokenEndpoint,
|
|
117
|
+
isTokenExpired,
|
|
118
|
+
parseAuthorizationCode
|
|
119
|
+
});
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var base_credential_refresher_exports = {};
|
|
26
|
+
__export(base_credential_refresher_exports, {
|
|
27
|
+
CredentialRefresherError: () => CredentialRefresherError
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(base_credential_refresher_exports);
|
|
30
|
+
/**
|
|
31
|
+
* @license
|
|
32
|
+
* Copyright 2026 Google LLC
|
|
33
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
34
|
+
*/
|
|
35
|
+
class CredentialRefresherError extends Error {
|
|
36
|
+
constructor(message) {
|
|
37
|
+
super(message);
|
|
38
|
+
this.name = "CredentialRefresherError";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
42
|
+
0 && (module.exports = {
|
|
43
|
+
CredentialRefresherError
|
|
44
|
+
});
|