beeai-framework 0.1.29 → 0.1.30
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/dist/adapters/a2a/agents/agent.cjs.map +1 -1
- package/dist/adapters/a2a/agents/agent.d.cts +2 -2
- package/dist/adapters/a2a/agents/agent.d.ts +2 -2
- package/dist/adapters/a2a/agents/agent.js.map +1 -1
- package/dist/adapters/a2a/agents/events.d.cts +1 -1
- package/dist/adapters/a2a/agents/events.d.ts +1 -1
- package/dist/adapters/a2a/agents/types.d.cts +2 -2
- package/dist/adapters/a2a/agents/types.d.ts +2 -2
- package/dist/adapters/a2a/agents/utils.cjs +52 -11
- package/dist/adapters/a2a/agents/utils.cjs.map +1 -1
- package/dist/adapters/a2a/agents/utils.js +52 -11
- package/dist/adapters/a2a/agents/utils.js.map +1 -1
- package/dist/adapters/a2a/serve/agent_executor.cjs.map +1 -1
- package/dist/adapters/a2a/serve/agent_executor.d.cts +3 -3
- package/dist/adapters/a2a/serve/agent_executor.d.ts +3 -3
- package/dist/adapters/a2a/serve/agent_executor.js.map +1 -1
- package/dist/adapters/a2a/serve/server.cjs.map +1 -1
- package/dist/adapters/a2a/serve/server.d.cts +2 -2
- package/dist/adapters/a2a/serve/server.d.ts +2 -2
- package/dist/adapters/a2a/serve/server.js.map +1 -1
- package/dist/adapters/acp/agents/agent.cjs.map +1 -1
- package/dist/adapters/acp/agents/agent.d.cts +2 -2
- package/dist/adapters/acp/agents/agent.d.ts +2 -2
- package/dist/adapters/acp/agents/agent.js.map +1 -1
- package/dist/adapters/acp/agents/events.d.cts +1 -1
- package/dist/adapters/acp/agents/events.d.ts +1 -1
- package/dist/adapters/agentstack/agents/agent.cjs.map +1 -1
- package/dist/adapters/agentstack/agents/agent.d.cts +2 -2
- package/dist/adapters/agentstack/agents/agent.d.ts +2 -2
- package/dist/adapters/agentstack/agents/agent.js.map +1 -1
- package/dist/adapters/agentstack/agents/events.d.cts +1 -1
- package/dist/adapters/agentstack/agents/events.d.ts +1 -1
- package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/chat.d.cts +2 -2
- package/dist/adapters/amazon-bedrock/backend/chat.d.ts +2 -2
- package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
- package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +2 -2
- package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +2 -2
- package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
- package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
- package/dist/adapters/anthropic/backend/chat.d.cts +2 -2
- package/dist/adapters/anthropic/backend/chat.d.ts +2 -2
- package/dist/adapters/anthropic/backend/chat.js.map +1 -1
- package/dist/adapters/anthropic/backend/client.cjs.map +1 -1
- package/dist/adapters/anthropic/backend/client.js.map +1 -1
- package/dist/adapters/anthropic/backend/embedding.cjs.map +1 -1
- package/dist/adapters/anthropic/backend/embedding.d.cts +2 -2
- package/dist/adapters/anthropic/backend/embedding.d.ts +2 -2
- package/dist/adapters/anthropic/backend/embedding.js.map +1 -1
- package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
- package/dist/adapters/azure-openai/backend/chat.d.cts +3 -3
- package/dist/adapters/azure-openai/backend/chat.d.ts +3 -3
- package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
- package/dist/adapters/azure-openai/backend/client.cjs.map +1 -1
- package/dist/adapters/azure-openai/backend/client.js.map +1 -1
- package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
- package/dist/adapters/azure-openai/backend/embedding.d.cts +2 -2
- package/dist/adapters/azure-openai/backend/embedding.d.ts +2 -2
- package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
- package/dist/adapters/dummy/backend/chat.cjs.map +1 -1
- package/dist/adapters/dummy/backend/chat.d.cts +2 -2
- package/dist/adapters/dummy/backend/chat.d.ts +2 -2
- package/dist/adapters/dummy/backend/chat.js.map +1 -1
- package/dist/adapters/dummy/backend/embedding.cjs.map +1 -1
- package/dist/adapters/dummy/backend/embedding.d.cts +2 -2
- package/dist/adapters/dummy/backend/embedding.d.ts +2 -2
- package/dist/adapters/dummy/backend/embedding.js.map +1 -1
- package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
- package/dist/adapters/google-vertex/backend/chat.d.cts +3 -3
- package/dist/adapters/google-vertex/backend/chat.d.ts +3 -3
- package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
- package/dist/adapters/google-vertex/backend/client.cjs.map +1 -1
- package/dist/adapters/google-vertex/backend/client.js.map +1 -1
- package/dist/adapters/google-vertex/backend/embedding.cjs.map +1 -1
- package/dist/adapters/google-vertex/backend/embedding.d.cts +2 -2
- package/dist/adapters/google-vertex/backend/embedding.d.ts +2 -2
- package/dist/adapters/google-vertex/backend/embedding.js.map +1 -1
- package/dist/adapters/groq/backend/chat.cjs.map +1 -1
- package/dist/adapters/groq/backend/chat.d.cts +3 -3
- package/dist/adapters/groq/backend/chat.d.ts +3 -3
- package/dist/adapters/groq/backend/chat.js.map +1 -1
- package/dist/adapters/groq/backend/client.cjs.map +1 -1
- package/dist/adapters/groq/backend/client.js.map +1 -1
- package/dist/adapters/groq/backend/embedding.cjs.map +1 -1
- package/dist/adapters/groq/backend/embedding.d.cts +2 -2
- package/dist/adapters/groq/backend/embedding.d.ts +2 -2
- package/dist/adapters/groq/backend/embedding.js.map +1 -1
- package/dist/adapters/langchain/backend/chat.cjs +6 -28
- package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
- package/dist/adapters/langchain/backend/chat.d.cts +6 -5
- package/dist/adapters/langchain/backend/chat.d.ts +6 -5
- package/dist/adapters/langchain/backend/chat.js +6 -28
- package/dist/adapters/langchain/backend/chat.js.map +1 -1
- package/dist/adapters/langchain/backend/embedding.cjs +3 -2
- package/dist/adapters/langchain/backend/embedding.cjs.map +1 -1
- package/dist/adapters/langchain/backend/embedding.d.cts +3 -3
- package/dist/adapters/langchain/backend/embedding.d.ts +3 -3
- package/dist/adapters/langchain/backend/embedding.js +3 -2
- package/dist/adapters/langchain/backend/embedding.js.map +1 -1
- package/dist/adapters/langchain/backend/utils.cjs +328 -0
- package/dist/adapters/langchain/backend/utils.cjs.map +1 -0
- package/dist/adapters/langchain/backend/utils.d.cts +39 -0
- package/dist/adapters/langchain/backend/utils.d.ts +39 -0
- package/dist/adapters/langchain/backend/utils.js +324 -0
- package/dist/adapters/langchain/backend/utils.js.map +1 -0
- package/dist/adapters/langchain/tools.cjs.map +1 -1
- package/dist/adapters/langchain/tools.d.cts +2 -2
- package/dist/adapters/langchain/tools.d.ts +2 -2
- package/dist/adapters/langchain/tools.js.map +1 -1
- package/dist/adapters/mcp/serve/http_server.cjs.map +1 -1
- package/dist/adapters/mcp/serve/http_server.js.map +1 -1
- package/dist/adapters/mcp/serve/in_memory_store.cjs.map +1 -1
- package/dist/adapters/mcp/serve/in_memory_store.js.map +1 -1
- package/dist/adapters/mcp/serve/server.cjs.map +1 -1
- package/dist/adapters/mcp/serve/server.js.map +1 -1
- package/dist/adapters/minimax/backend/chat.cjs +25 -0
- package/dist/adapters/minimax/backend/chat.cjs.map +1 -0
- package/dist/adapters/minimax/backend/chat.d.cts +38 -0
- package/dist/adapters/minimax/backend/chat.d.ts +38 -0
- package/dist/adapters/minimax/backend/chat.js +23 -0
- package/dist/adapters/minimax/backend/chat.js.map +1 -0
- package/dist/adapters/minimax/backend/client.cjs +31 -0
- package/dist/adapters/minimax/backend/client.cjs.map +1 -0
- package/dist/adapters/minimax/backend/client.d.cts +17 -0
- package/dist/adapters/minimax/backend/client.d.ts +17 -0
- package/dist/adapters/minimax/backend/client.js +29 -0
- package/dist/adapters/minimax/backend/client.js.map +1 -0
- package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
- package/dist/adapters/ollama/backend/chat.d.cts +2 -2
- package/dist/adapters/ollama/backend/chat.d.ts +2 -2
- package/dist/adapters/ollama/backend/chat.js.map +1 -1
- package/dist/adapters/ollama/backend/client.cjs.map +1 -1
- package/dist/adapters/ollama/backend/client.js.map +1 -1
- package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
- package/dist/adapters/ollama/backend/embedding.d.cts +2 -2
- package/dist/adapters/ollama/backend/embedding.d.ts +2 -2
- package/dist/adapters/ollama/backend/embedding.js.map +1 -1
- package/dist/adapters/openai/backend/chat.cjs.map +1 -1
- package/dist/adapters/openai/backend/chat.d.cts +2 -2
- package/dist/adapters/openai/backend/chat.d.ts +2 -2
- package/dist/adapters/openai/backend/chat.js.map +1 -1
- package/dist/adapters/openai/backend/client.cjs.map +1 -1
- package/dist/adapters/openai/backend/client.js.map +1 -1
- package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
- package/dist/adapters/openai/backend/embedding.d.cts +2 -2
- package/dist/adapters/openai/backend/embedding.d.ts +2 -2
- package/dist/adapters/openai/backend/embedding.js.map +1 -1
- package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
- package/dist/adapters/vercel/backend/chat.d.cts +2 -2
- package/dist/adapters/vercel/backend/chat.d.ts +2 -2
- package/dist/adapters/vercel/backend/chat.js.map +1 -1
- package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
- package/dist/adapters/vercel/backend/embedding.d.cts +2 -2
- package/dist/adapters/vercel/backend/embedding.d.ts +2 -2
- package/dist/adapters/vercel/backend/embedding.js.map +1 -1
- package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
- package/dist/adapters/vercel/backend/utils.d.cts +2 -2
- package/dist/adapters/vercel/backend/utils.d.ts +2 -2
- package/dist/adapters/vercel/backend/utils.js.map +1 -1
- package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
- package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
- package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
- package/dist/adapters/watsonx/backend/chat.js +1 -1
- package/dist/adapters/watsonx/backend/chat.js.map +1 -1
- package/dist/adapters/watsonx/backend/client.cjs.map +1 -1
- package/dist/adapters/watsonx/backend/client.js.map +1 -1
- package/dist/adapters/watsonx/backend/embedding.cjs.map +1 -1
- package/dist/adapters/watsonx/backend/embedding.d.cts +2 -2
- package/dist/adapters/watsonx/backend/embedding.d.ts +2 -2
- package/dist/adapters/watsonx/backend/embedding.js.map +1 -1
- package/dist/adapters/xai/backend/chat.cjs.map +1 -1
- package/dist/adapters/xai/backend/chat.d.cts +2 -2
- package/dist/adapters/xai/backend/chat.d.ts +2 -2
- package/dist/adapters/xai/backend/chat.js.map +1 -1
- package/dist/adapters/xai/backend/client.cjs.map +1 -1
- package/dist/adapters/xai/backend/client.js.map +1 -1
- package/dist/{agent-CZGWXO-X.d.ts → agent-s3uhvAba.d.ts} +4 -4
- package/dist/{agent-PRlGoawI.d.cts → agent-zfT__iq9.d.cts} +4 -4
- package/dist/agents/base.cjs.map +1 -1
- package/dist/agents/base.d.cts +2 -2
- package/dist/agents/base.d.ts +2 -2
- package/dist/agents/base.js.map +1 -1
- package/dist/agents/experimental/replan/agent.cjs.map +1 -1
- package/dist/agents/experimental/replan/agent.d.cts +3 -3
- package/dist/agents/experimental/replan/agent.d.ts +3 -3
- package/dist/agents/experimental/replan/agent.js.map +1 -1
- package/dist/agents/experimental/replan/prompts.cjs.map +1 -1
- package/dist/agents/experimental/replan/prompts.d.cts +1 -1
- package/dist/agents/experimental/replan/prompts.d.ts +1 -1
- package/dist/agents/experimental/replan/prompts.js.map +1 -1
- package/dist/agents/experimental/streamlit/agent.cjs.map +1 -1
- package/dist/agents/experimental/streamlit/agent.d.cts +3 -3
- package/dist/agents/experimental/streamlit/agent.d.ts +3 -3
- package/dist/agents/experimental/streamlit/agent.js.map +1 -1
- package/dist/agents/experimental/streamlit/prompts.cjs +2 -2
- package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -1
- package/dist/agents/experimental/streamlit/prompts.js +2 -2
- package/dist/agents/experimental/streamlit/prompts.js.map +1 -1
- package/dist/agents/react/agent.cjs +6 -6
- package/dist/agents/react/agent.cjs.map +1 -1
- package/dist/agents/react/agent.d.cts +4 -4
- package/dist/agents/react/agent.d.ts +4 -4
- package/dist/agents/react/agent.js.map +1 -1
- package/dist/agents/react/prompts.cjs.map +1 -1
- package/dist/agents/react/prompts.js.map +1 -1
- package/dist/agents/react/runners/base.cjs.map +1 -1
- package/dist/agents/react/runners/base.d.cts +4 -4
- package/dist/agents/react/runners/base.d.ts +4 -4
- package/dist/agents/react/runners/base.js.map +1 -1
- package/dist/agents/react/runners/deep-think/prompts.cjs.map +1 -1
- package/dist/agents/react/runners/deep-think/prompts.js.map +1 -1
- package/dist/agents/react/runners/deep-think/runner.cjs.map +1 -1
- package/dist/agents/react/runners/deep-think/runner.d.cts +4 -4
- package/dist/agents/react/runners/deep-think/runner.d.ts +4 -4
- package/dist/agents/react/runners/deep-think/runner.js.map +1 -1
- package/dist/agents/react/runners/default/runner.cjs.map +1 -1
- package/dist/agents/react/runners/default/runner.d.cts +4 -4
- package/dist/agents/react/runners/default/runner.d.ts +4 -4
- package/dist/agents/react/runners/default/runner.js.map +1 -1
- package/dist/agents/react/runners/default/runner.spec.cjs.map +1 -1
- package/dist/agents/react/runners/default/runner.spec.js.map +1 -1
- package/dist/agents/react/runners/granite/prompts.cjs.map +1 -1
- package/dist/agents/react/runners/granite/prompts.js.map +1 -1
- package/dist/agents/react/runners/granite/runner.cjs.map +1 -1
- package/dist/agents/react/runners/granite/runner.d.cts +4 -4
- package/dist/agents/react/runners/granite/runner.d.ts +4 -4
- package/dist/agents/react/runners/granite/runner.js.map +1 -1
- package/dist/agents/react/types.d.cts +2 -2
- package/dist/agents/react/types.d.ts +2 -2
- package/dist/agents/requirement/agent.cjs.map +1 -1
- package/dist/agents/requirement/agent.d.cts +5 -5
- package/dist/agents/requirement/agent.d.ts +5 -5
- package/dist/agents/requirement/agent.js.map +1 -1
- package/dist/agents/requirement/prompts.d.cts +8 -8
- package/dist/agents/requirement/prompts.d.ts +8 -8
- package/dist/agents/requirement/requirements/conditional.cjs.map +1 -1
- package/dist/agents/requirement/requirements/conditional.d.cts +5 -5
- package/dist/agents/requirement/requirements/conditional.d.ts +5 -5
- package/dist/agents/requirement/requirements/conditional.js.map +1 -1
- package/dist/agents/requirement/requirements/requirement.cjs.map +1 -1
- package/dist/agents/requirement/requirements/requirement.d.cts +4 -4
- package/dist/agents/requirement/requirements/requirement.d.ts +4 -4
- package/dist/agents/requirement/requirements/requirement.js.map +1 -1
- package/dist/agents/requirement/requirements/utils.cjs.map +1 -1
- package/dist/agents/requirement/requirements/utils.d.cts +1 -1
- package/dist/agents/requirement/requirements/utils.d.ts +1 -1
- package/dist/agents/requirement/requirements/utils.js.map +1 -1
- package/dist/agents/requirement/runner.cjs.map +1 -1
- package/dist/agents/requirement/runner.d.cts +5 -5
- package/dist/agents/requirement/runner.d.ts +5 -5
- package/dist/agents/requirement/runner.js.map +1 -1
- package/dist/agents/requirement/types.d.cts +4 -4
- package/dist/agents/requirement/types.d.ts +4 -4
- package/dist/agents/requirement/utils/llm.cjs.map +1 -1
- package/dist/agents/requirement/utils/llm.d.cts +4 -4
- package/dist/agents/requirement/utils/llm.d.ts +4 -4
- package/dist/agents/requirement/utils/llm.js.map +1 -1
- package/dist/agents/requirement/utils/tool.cjs.map +1 -1
- package/dist/agents/requirement/utils/tool.d.cts +4 -4
- package/dist/agents/requirement/utils/tool.d.ts +4 -4
- package/dist/agents/requirement/utils/tool.js.map +1 -1
- package/dist/agents/requirement/utils/toolCallChecker.cjs.map +1 -1
- package/dist/agents/requirement/utils/toolCallChecker.js.map +1 -1
- package/dist/agents/toolCalling/agent.cjs.map +1 -1
- package/dist/agents/toolCalling/agent.d.cts +4 -4
- package/dist/agents/toolCalling/agent.d.ts +4 -4
- package/dist/agents/toolCalling/agent.js.map +1 -1
- package/dist/agents/toolCalling/prompts.cjs.map +1 -1
- package/dist/agents/toolCalling/prompts.js.map +1 -1
- package/dist/agents/toolCalling/types.d.cts +1 -1
- package/dist/agents/toolCalling/types.d.ts +1 -1
- package/dist/agents/types.d.cts +2 -2
- package/dist/agents/types.d.ts +2 -2
- package/dist/backend/backend.cjs.map +1 -1
- package/dist/backend/backend.d.cts +3 -3
- package/dist/backend/backend.d.ts +3 -3
- package/dist/backend/backend.js.map +1 -1
- package/dist/backend/chat.cjs.map +1 -1
- package/dist/backend/chat.d.cts +2 -2
- package/dist/backend/chat.d.ts +2 -2
- package/dist/backend/chat.js.map +1 -1
- package/dist/backend/client.cjs.map +1 -1
- package/dist/backend/client.js.map +1 -1
- package/dist/backend/constants.cjs +7 -0
- package/dist/backend/constants.cjs.map +1 -1
- package/dist/backend/constants.d.cts +5 -0
- package/dist/backend/constants.d.ts +5 -0
- package/dist/backend/constants.js +7 -0
- package/dist/backend/constants.js.map +1 -1
- package/dist/backend/core.d.cts +2 -2
- package/dist/backend/core.d.ts +2 -2
- package/dist/backend/embedding.cjs.map +1 -1
- package/dist/backend/embedding.d.cts +2 -2
- package/dist/backend/embedding.d.ts +2 -2
- package/dist/backend/embedding.js.map +1 -1
- package/dist/backend/errors.cjs.map +1 -1
- package/dist/backend/errors.d.cts +2 -2
- package/dist/backend/errors.d.ts +2 -2
- package/dist/backend/errors.js.map +1 -1
- package/dist/backend/message.cjs.map +1 -1
- package/dist/backend/message.js.map +1 -1
- package/dist/backend/utils.cjs.map +1 -1
- package/dist/backend/utils.d.cts +2 -2
- package/dist/backend/utils.d.ts +2 -2
- package/dist/backend/utils.js.map +1 -1
- package/dist/{base-CyFx7BRL.d.ts → base-BjzyQ8k6.d.ts} +2 -2
- package/dist/{base-XfWeXQ-S.d.cts → base-s3ioVIE9.d.cts} +2 -2
- package/dist/cache/decoratorCache.cjs.map +1 -1
- package/dist/cache/decoratorCache.js.map +1 -1
- package/dist/cache/fileCache.cjs.map +1 -1
- package/dist/cache/fileCache.js.map +1 -1
- package/dist/cache/nullCache.cjs.map +1 -1
- package/dist/cache/nullCache.js.map +1 -1
- package/dist/cache/slidingCache.cjs.map +1 -1
- package/dist/cache/slidingCache.js.map +1 -1
- package/dist/cache/unconstrainedCache.cjs.map +1 -1
- package/dist/cache/unconstrainedCache.js.map +1 -1
- package/dist/{chat-BFl85cqt.d.cts → chat-C20nYj46.d.cts} +3 -3
- package/dist/{chat-BRuyDeKR.d.ts → chat-CfTNfR60.d.ts} +3 -3
- package/dist/context.cjs.map +1 -1
- package/dist/context.d.cts +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/context.js.map +1 -1
- package/dist/emitter/emitter.cjs.map +1 -1
- package/dist/emitter/emitter.d.cts +1 -1
- package/dist/emitter/emitter.d.ts +1 -1
- package/dist/emitter/emitter.js.map +1 -1
- package/dist/emitter/types.d.cts +1 -1
- package/dist/emitter/types.d.ts +1 -1
- package/dist/emitter/utils.cjs.map +1 -1
- package/dist/emitter/utils.js.map +1 -1
- package/dist/{emitter-jN55XZZq.d.cts → emitter-D4OcelZ9.d.cts} +1 -1
- package/dist/{emitter-36-9MnvA.d.ts → emitter-kHxkUxco.d.ts} +1 -1
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/internals/env.cjs.map +1 -1
- package/dist/internals/env.js.map +1 -1
- package/dist/internals/fetcher.cjs.map +1 -1
- package/dist/internals/fetcher.d.cts +1 -1
- package/dist/internals/fetcher.d.ts +1 -1
- package/dist/internals/fetcher.js.map +1 -1
- package/dist/internals/helpers/array.cjs.map +1 -1
- package/dist/internals/helpers/array.js.map +1 -1
- package/dist/internals/helpers/cancellation.cjs.map +1 -1
- package/dist/internals/helpers/cancellation.js.map +1 -1
- package/dist/internals/helpers/counter.cjs.map +1 -1
- package/dist/internals/helpers/counter.js.map +1 -1
- package/dist/internals/helpers/general.cjs.map +1 -1
- package/dist/internals/helpers/general.js.map +1 -1
- package/dist/internals/helpers/hash.cjs.map +1 -1
- package/dist/internals/helpers/hash.js.map +1 -1
- package/dist/internals/helpers/map.cjs.map +1 -1
- package/dist/internals/helpers/map.js.map +1 -1
- package/dist/internals/helpers/math.cjs.map +1 -1
- package/dist/internals/helpers/math.js.map +1 -1
- package/dist/internals/helpers/object.cjs +7 -1
- package/dist/internals/helpers/object.cjs.map +1 -1
- package/dist/internals/helpers/object.js +7 -1
- package/dist/internals/helpers/object.js.map +1 -1
- package/dist/internals/helpers/paginate.cjs.map +1 -1
- package/dist/internals/helpers/paginate.js.map +1 -1
- package/dist/internals/helpers/promise.cjs.map +1 -1
- package/dist/internals/helpers/promise.js.map +1 -1
- package/dist/internals/helpers/prototype.cjs.map +1 -1
- package/dist/internals/helpers/prototype.js.map +1 -1
- package/dist/internals/helpers/retry.cjs.map +1 -1
- package/dist/internals/helpers/retry.js.map +1 -1
- package/dist/internals/helpers/retryable.cjs.map +1 -1
- package/dist/internals/helpers/retryable.js.map +1 -1
- package/dist/internals/helpers/schema.cjs.map +1 -1
- package/dist/internals/helpers/schema.d.cts +4 -4
- package/dist/internals/helpers/schema.d.ts +4 -4
- package/dist/internals/helpers/schema.js.map +1 -1
- package/dist/internals/helpers/stream.cjs.map +1 -1
- package/dist/internals/helpers/stream.js.map +1 -1
- package/dist/internals/helpers/string.cjs.map +1 -1
- package/dist/internals/helpers/string.js.map +1 -1
- package/dist/internals/helpers/weakRef.cjs.map +1 -1
- package/dist/internals/helpers/weakRef.js.map +1 -1
- package/dist/internals/serializable.cjs +3 -1
- package/dist/internals/serializable.cjs.map +1 -1
- package/dist/internals/serializable.d.cts +6 -0
- package/dist/internals/serializable.d.ts +6 -0
- package/dist/internals/serializable.js +3 -1
- package/dist/internals/serializable.js.map +1 -1
- package/dist/internals/types.cjs.map +1 -1
- package/dist/internals/types.js.map +1 -1
- package/dist/logger/logger.cjs.map +1 -1
- package/dist/logger/logger.d.cts +2 -2
- package/dist/logger/logger.d.ts +2 -2
- package/dist/logger/logger.js +2 -2
- package/dist/logger/logger.js.map +1 -1
- package/dist/logger/pretty.cjs.map +1 -1
- package/dist/logger/pretty.js.map +1 -1
- package/dist/memory/base.cjs.map +1 -1
- package/dist/memory/base.js.map +1 -1
- package/dist/memory/slidingMemory.cjs.map +1 -1
- package/dist/memory/slidingMemory.js.map +1 -1
- package/dist/memory/summarizeMemory.cjs.map +1 -1
- package/dist/memory/summarizeMemory.d.cts +2 -2
- package/dist/memory/summarizeMemory.d.ts +2 -2
- package/dist/memory/summarizeMemory.js.map +1 -1
- package/dist/memory/tokenMemory.cjs.map +1 -1
- package/dist/memory/tokenMemory.js.map +1 -1
- package/dist/memory/unconstrainedMemory.cjs.map +1 -1
- package/dist/memory/unconstrainedMemory.js.map +1 -1
- package/dist/middleware/streamToolCall.cjs.map +1 -1
- package/dist/middleware/streamToolCall.d.cts +2 -2
- package/dist/middleware/streamToolCall.d.ts +2 -2
- package/dist/middleware/streamToolCall.js.map +1 -1
- package/dist/middleware/trajectory.cjs.map +1 -1
- package/dist/middleware/trajectory.d.cts +2 -2
- package/dist/middleware/trajectory.d.ts +2 -2
- package/dist/middleware/trajectory.js.map +1 -1
- package/dist/parsers/errors.cjs.map +1 -1
- package/dist/parsers/errors.js.map +1 -1
- package/dist/parsers/field.cjs.map +1 -1
- package/dist/parsers/field.js.map +1 -1
- package/dist/parsers/linePrefix.cjs.map +1 -1
- package/dist/parsers/linePrefix.d.cts +1 -1
- package/dist/parsers/linePrefix.d.ts +1 -1
- package/dist/parsers/linePrefix.js.map +1 -1
- package/dist/serializer/error.cjs.map +1 -1
- package/dist/serializer/error.js.map +1 -1
- package/dist/serializer/serializer.cjs +16 -3
- package/dist/serializer/serializer.cjs.map +1 -1
- package/dist/serializer/serializer.d.cts +1 -1
- package/dist/serializer/serializer.d.ts +1 -1
- package/dist/serializer/serializer.js +16 -4
- package/dist/serializer/serializer.js.map +1 -1
- package/dist/serializer/utils.cjs.map +1 -1
- package/dist/serializer/utils.d.cts +1 -1
- package/dist/serializer/utils.d.ts +1 -1
- package/dist/serializer/utils.js.map +1 -1
- package/dist/{serializer-53t8gGQa.d.ts → serializer-BafOT48s.d.ts} +10 -4
- package/dist/{serializer-c51B2z6d.d.cts → serializer-CFDWYUco.d.cts} +10 -4
- package/dist/serve/server.cjs.map +1 -1
- package/dist/serve/server.js.map +1 -1
- package/dist/template.cjs.map +1 -1
- package/dist/template.js.map +1 -1
- package/dist/tools/arxiv.cjs.map +1 -1
- package/dist/tools/arxiv.d.cts +2 -2
- package/dist/tools/arxiv.d.ts +2 -2
- package/dist/tools/arxiv.js.map +1 -1
- package/dist/tools/base.cjs.map +1 -1
- package/dist/tools/base.d.cts +1 -1
- package/dist/tools/base.d.ts +1 -1
- package/dist/tools/base.js.map +1 -1
- package/dist/tools/calculator.cjs.map +1 -1
- package/dist/tools/calculator.d.cts +3 -3
- package/dist/tools/calculator.d.ts +3 -3
- package/dist/tools/calculator.js.map +1 -1
- package/dist/tools/custom.cjs.map +1 -1
- package/dist/tools/custom.d.cts +3 -3
- package/dist/tools/custom.d.ts +3 -3
- package/dist/tools/custom.js.map +1 -1
- package/dist/tools/database/elasticsearch.cjs.map +1 -1
- package/dist/tools/database/elasticsearch.d.cts +3 -3
- package/dist/tools/database/elasticsearch.d.ts +3 -3
- package/dist/tools/database/elasticsearch.js.map +1 -1
- package/dist/tools/database/metadata.cjs.map +1 -1
- package/dist/tools/database/metadata.js.map +1 -1
- package/dist/tools/database/milvus.cjs.map +1 -1
- package/dist/tools/database/milvus.d.cts +5 -5
- package/dist/tools/database/milvus.d.ts +5 -5
- package/dist/tools/database/milvus.js.map +1 -1
- package/dist/tools/database/qdrant.cjs.map +1 -1
- package/dist/tools/database/qdrant.d.cts +2 -2
- package/dist/tools/database/qdrant.d.ts +2 -2
- package/dist/tools/database/qdrant.js.map +1 -1
- package/dist/tools/database/sql.cjs.map +1 -1
- package/dist/tools/database/sql.d.cts +2 -2
- package/dist/tools/database/sql.d.ts +2 -2
- package/dist/tools/database/sql.js.map +1 -1
- package/dist/tools/handoff.cjs.map +1 -1
- package/dist/tools/handoff.d.cts +2 -2
- package/dist/tools/handoff.d.ts +2 -2
- package/dist/tools/handoff.js.map +1 -1
- package/dist/tools/llm.cjs +1 -1
- package/dist/tools/llm.cjs.map +1 -1
- package/dist/tools/llm.d.cts +3 -3
- package/dist/tools/llm.d.ts +3 -3
- package/dist/tools/llm.js +1 -1
- package/dist/tools/llm.js.map +1 -1
- package/dist/tools/mcp.cjs.map +1 -1
- package/dist/tools/mcp.d.cts +2 -2
- package/dist/tools/mcp.d.ts +2 -2
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tools/openapi.cjs.map +1 -1
- package/dist/tools/openapi.d.cts +2 -2
- package/dist/tools/openapi.d.ts +2 -2
- package/dist/tools/openapi.js.map +1 -1
- package/dist/tools/python/output.cjs.map +1 -1
- package/dist/tools/python/output.d.cts +1 -1
- package/dist/tools/python/output.d.ts +1 -1
- package/dist/tools/python/output.js.map +1 -1
- package/dist/tools/python/python.cjs +5 -2
- package/dist/tools/python/python.cjs.map +1 -1
- package/dist/tools/python/python.d.cts +3 -3
- package/dist/tools/python/python.d.ts +3 -3
- package/dist/tools/python/python.js +5 -2
- package/dist/tools/python/python.js.map +1 -1
- package/dist/tools/python/storage.cjs.map +1 -1
- package/dist/tools/python/storage.js.map +1 -1
- package/dist/tools/search/base.cjs.map +1 -1
- package/dist/tools/search/base.d.cts +2 -2
- package/dist/tools/search/base.d.ts +2 -2
- package/dist/tools/search/base.js.map +1 -1
- package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
- package/dist/tools/search/duckDuckGoSearch.d.cts +2 -2
- package/dist/tools/search/duckDuckGoSearch.d.ts +2 -2
- package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
- package/dist/tools/search/googleSearch.cjs.map +1 -1
- package/dist/tools/search/googleSearch.d.cts +2 -2
- package/dist/tools/search/googleSearch.d.ts +2 -2
- package/dist/tools/search/googleSearch.js.map +1 -1
- package/dist/tools/search/searXNGSearch.cjs.map +1 -1
- package/dist/tools/search/searXNGSearch.d.cts +2 -2
- package/dist/tools/search/searXNGSearch.d.ts +2 -2
- package/dist/tools/search/searXNGSearch.js.map +1 -1
- package/dist/tools/search/wikipedia.cjs.map +1 -1
- package/dist/tools/search/wikipedia.d.cts +3 -3
- package/dist/tools/search/wikipedia.d.ts +3 -3
- package/dist/tools/search/wikipedia.js.map +1 -1
- package/dist/tools/similarity.cjs.map +1 -1
- package/dist/tools/similarity.d.cts +2 -2
- package/dist/tools/similarity.d.ts +2 -2
- package/dist/tools/similarity.js.map +1 -1
- package/dist/tools/think.cjs.map +1 -1
- package/dist/tools/think.d.cts +2 -2
- package/dist/tools/think.d.ts +2 -2
- package/dist/tools/think.js.map +1 -1
- package/dist/tools/weather/openMeteo.cjs.map +1 -1
- package/dist/tools/weather/openMeteo.d.cts +2 -2
- package/dist/tools/weather/openMeteo.d.ts +2 -2
- package/dist/tools/weather/openMeteo.js.map +1 -1
- package/dist/tools/web/webCrawler.cjs.map +1 -1
- package/dist/tools/web/webCrawler.d.cts +2 -2
- package/dist/tools/web/webCrawler.d.ts +2 -2
- package/dist/tools/web/webCrawler.js.map +1 -1
- package/dist/{types-CkEtV8R9.d.cts → types-BNsa3W7Z.d.cts} +4 -4
- package/dist/{types-BQ-3LdkE.d.ts → types-DYtzF6ya.d.ts} +4 -4
- package/dist/version.cjs +1 -1
- package/dist/version.js +1 -1
- package/dist/workflows/agent.cjs.map +1 -1
- package/dist/workflows/agent.d.cts +40 -40
- package/dist/workflows/agent.d.ts +40 -40
- package/dist/workflows/agent.js.map +1 -1
- package/dist/workflows/workflow.cjs.map +1 -1
- package/dist/workflows/workflow.d.cts +1 -1
- package/dist/workflows/workflow.d.ts +1 -1
- package/dist/workflows/workflow.js.map +1 -1
- package/package.json +33 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cache/decoratorCache.ts"],"names":["state","container","WeakMap","extractDescriptor","descriptor","value","update","get","Error","Cache","name","getInstanceContext","target","ctx","instances","has","set","cache","Map","options","initQueue","_options","baseOptions","enabled","cacheKey","ObjectHashKeyFn","ttl","Infinity","enumerable","R","pickBy","isDefined","handler","obj","key","Object","hasOwn","constructor","Boolean","push","SingletonCacheKeyFn","groupContext","fn","wrapper","args","invokeOriginal","apply","inputHash","expiresAt","Date","now","result","data","defineProperty","init","self","task","getOwnPropertyDescriptor","prototype","assign","delete","getInstance","property","findDescriptor","TypeError","String","ctxByInstance","clear","keys","forEach","oldTTL","newTTL","undefined","values","diff","isEnabled","enable","disable","WeakRefKeyFn","_lookup","chunks","map","isObjectType","isFunction","createRandomHash","createHash","JSON","stringify","from","cb","join","hash","encoding","replacer","AbortSignal","unorderedArrays","unorderedObjects","unorderedSets","JSONCacheKeyFn","CacheFn","Function","create","instance","Proxy","_","prop","receiver","updateTTL","createSnapshot"],"mappings":"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","file":"decoratorCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyFn, TypedFn } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\nimport hash from \"object-hash\";\nimport { createHash, createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { findDescriptor } from \"@/internals/helpers/prototype.js\";\n\ntype InputFn = AnyFn;\ntype TargetFn = AnyFn;\ntype Instance = NonNullable<any>;\n\ntype CacheKeyFn = (this: Instance, ...args: any[]) => string;\n\nexport interface CacheDecoratorOptions {\n enabled: boolean;\n ttl?: number;\n cacheKey: CacheKeyFn;\n enumerable?: boolean;\n}\n\ninterface CacheEntry {\n expiresAt: number;\n data: any;\n}\n\ninterface FnContext {\n options: CacheDecoratorOptions;\n cache: Map<string, CacheEntry>;\n}\n\ninterface GroupContext {\n options: CacheDecoratorOptions;\n instances: WeakMap<Instance, FnContext>;\n}\n\nexport interface CacheDecoratorInstance {\n get(key?: string): CacheEntry | undefined;\n\n clear(keys?: string[]): void;\n\n isEnabled(): boolean;\n\n enable(): void;\n\n disable(): void;\n\n update(data: Partial<CacheDecoratorOptions>): void;\n}\n\nconst state = {\n container: new WeakMap<InputFn, GroupContext>(),\n extractDescriptor(descriptor: PropertyDescriptor) {\n // Method approach\n if (descriptor.value != null) {\n return {\n value: descriptor.value as AnyFn,\n update: (value: TargetFn) => {\n descriptor.value = value;\n },\n };\n }\n // Accessor approach\n if (descriptor.get != null) {\n return {\n value: descriptor.get as AnyFn,\n update: (value: TargetFn) => {\n descriptor.get = value;\n },\n };\n }\n throw new Error(`@${Cache.name} decorator must be either on a method or get accessor.`);\n },\n getInstanceContext<T extends NonNullable<unknown>>(target: T, ctx: GroupContext) {\n if (!ctx.instances.has(target)) {\n ctx.instances.set(target, {\n cache: new Map(),\n options: ctx.options,\n });\n }\n return ctx.instances.get(target)!;\n },\n} as const;\n\nconst initQueue = new WeakMap<Instance, { key: PropertyKey; enumerable: boolean }[]>();\n\nexport function Cache(_options?: Partial<CacheDecoratorOptions>) {\n const baseOptions: Required<CacheDecoratorOptions> = {\n enabled: true,\n cacheKey: ObjectHashKeyFn,\n ttl: Infinity,\n enumerable: false,\n ...R.pickBy(_options ?? {}, R.isDefined),\n };\n\n return function handler(\n obj: NonNullable<object>,\n key: string | symbol,\n descriptor: PropertyDescriptor,\n ) {\n if (Object.hasOwn(obj, \"constructor\")) {\n const constructor = obj.constructor;\n if (!initQueue.has(constructor)) {\n initQueue.set(constructor, []);\n }\n\n baseOptions.enumerable = Boolean(descriptor.get);\n initQueue\n .get(constructor)!\n .push({ key, enumerable: _options?.enumerable ?? baseOptions.enumerable });\n }\n\n const target = state.extractDescriptor(descriptor);\n if (descriptor.get && !_options?.cacheKey) {\n baseOptions.cacheKey = SingletonCacheKeyFn;\n }\n\n const groupContext: GroupContext = { instances: new WeakMap(), options: baseOptions };\n\n const fn = function wrapper(this: any, ...args: any[]) {\n const invokeOriginal = () => target.value.apply(this, args);\n const ctx = state.getInstanceContext(this, groupContext);\n if (!ctx.options.enabled) {\n return invokeOriginal();\n }\n\n const inputHash = ctx.options.cacheKey.apply(this, args);\n if (\n !ctx.cache.has(inputHash) ||\n (ctx.cache.get(inputHash)?.expiresAt ?? Infinity) < Date.now() // is expired check\n ) {\n const result = invokeOriginal();\n ctx.cache.set(inputHash, {\n expiresAt: Date.now() + (ctx.options.ttl ?? Infinity),\n data: result,\n });\n }\n return ctx.cache.get(inputHash)!.data;\n };\n Object.defineProperty(fn, \"name\", {\n get: () => target.value.name ?? \"anonymous\",\n });\n\n target.update(fn);\n state.container.set(fn, groupContext);\n };\n}\n\nCache.init = function init<T extends NonNullable<unknown>>(self: T) {\n const task = initQueue.get(self.constructor) ?? [];\n for (const { key, enumerable } of task) {\n const descriptor = Object.getOwnPropertyDescriptor(self.constructor.prototype, key);\n if (descriptor) {\n Object.defineProperty(self, key, Object.assign(descriptor, { enumerable }));\n }\n }\n initQueue.delete(self);\n};\n\nCache.getInstance = function getInstance<T extends NonNullable<unknown>>(\n target: T,\n property: keyof T,\n): CacheDecoratorInstance {\n const descriptor = findDescriptor(target, property);\n if (!descriptor) {\n throw new TypeError(`No descriptor has been found for '${String(property)}'`);\n }\n const value = state.extractDescriptor(descriptor);\n const ctxByInstance = state.container.get(value.value);\n if (!ctxByInstance) {\n throw new TypeError(`No cache instance is bounded to '${String(property)}'!`);\n }\n\n const ctx = state.getInstanceContext(target, ctxByInstance);\n return {\n get(key = \"\") {\n return ctx.cache.get(key);\n },\n clear(keys?: string[]) {\n if (keys) {\n keys.forEach((key) => ctx.cache.delete(key));\n } else {\n ctx.cache.clear();\n }\n },\n update(data: CacheDecoratorOptions) {\n const oldTTL = ctx.options.ttl;\n const newTTL = data.ttl;\n if (oldTTL !== newTTL && newTTL !== undefined) {\n for (const value of ctx.cache.values()) {\n if (value.expiresAt === Infinity) {\n value.expiresAt = Date.now() + newTTL;\n } else {\n const diff = newTTL - (oldTTL ?? 0);\n value.expiresAt += diff;\n }\n }\n }\n Object.assign(ctx.options, data);\n },\n isEnabled() {\n return ctx.options.enabled;\n },\n enable() {\n ctx.options.enabled = true;\n },\n disable() {\n ctx.options.enabled = false;\n },\n };\n};\n\nexport const WeakRefKeyFn = (() => {\n const _lookup = new WeakMap();\n\n const fn = (...args: any[]) => {\n const chunks = args.map((value) => {\n if (R.isObjectType(value) || R.isFunction(value)) {\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n });\n return createHash(JSON.stringify(chunks));\n };\n fn.from = <T>(cb: (self: T) => any[]) => {\n return function (this: T) {\n return cb(this).map(fn).join(\"#\");\n };\n };\n return fn;\n})() satisfies CacheKeyFn;\n\nexport const ObjectHashKeyFn: CacheKeyFn = (...args: any[]) =>\n hash(args, {\n encoding: \"base64\",\n replacer: (() => {\n const _lookup = new WeakMap();\n return (value: unknown) => {\n if (value && value instanceof AbortSignal) {\n // not supported by \"hash\" function\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n };\n })(),\n unorderedArrays: false,\n unorderedObjects: false,\n unorderedSets: false,\n });\nexport const JSONCacheKeyFn: CacheKeyFn = (...args: any[]) => JSON.stringify(args);\n// eslint-disable-next-line unused-imports/no-unused-vars\nexport const SingletonCacheKeyFn: CacheKeyFn = (...args: any[]) => \"\";\n\nexport class CacheFn<P extends any[], R> extends Function {\n readonly name = CacheFn.name;\n\n static create<A extends any[], B>(\n fn: (...args: A) => B,\n options?: Partial<CacheDecoratorOptions>,\n ) {\n const instance = new CacheFn(fn, options);\n return instance as TypedFn<A, B> & CacheFn<A, B>;\n }\n\n constructor(\n protected readonly fn: (...args: P) => R,\n protected readonly options?: Partial<CacheDecoratorOptions>,\n ) {\n super();\n\n Cache.getInstance(this, \"get\").update(options ?? {});\n return new Proxy<typeof this>(this, {\n apply(this: CacheFn<P, R>, target, _, args: any[]) {\n return target.get(...(args as unknown as P));\n },\n get(target, prop: string | symbol, receiver: any) {\n const value = target[prop as keyof typeof target];\n if (value instanceof Function) {\n return function (this: CacheFn<P, R>, ...args: P) {\n return value.apply(this === receiver ? target : this, args);\n };\n }\n return value;\n },\n }) as unknown as CacheFn<P, R> & typeof fn;\n }\n\n updateTTL(ttl: number) {\n Cache.getInstance(this, \"get\").update({ ttl });\n }\n\n createSnapshot() {\n return {\n fn: this.fn,\n options: this.options,\n };\n }\n\n @Cache()\n get(...args: P) {\n return this.fn(...args);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/cache/decoratorCache.ts"],"names":["state","container","WeakMap","extractDescriptor","descriptor","value","update","get","Error","Cache","name","getInstanceContext","target","ctx","instances","has","set","cache","Map","options","initQueue","_options","baseOptions","enabled","cacheKey","ObjectHashKeyFn","ttl","Infinity","enumerable","R","pickBy","isDefined","handler","obj","key","Object","hasOwn","constructor","Boolean","push","SingletonCacheKeyFn","groupContext","fn","wrapper","args","invokeOriginal","apply","inputHash","expiresAt","Date","now","result","data","defineProperty","init","self","task","getOwnPropertyDescriptor","prototype","assign","delete","getInstance","property","findDescriptor","TypeError","String","ctxByInstance","clear","keys","forEach","oldTTL","newTTL","undefined","values","diff","isEnabled","enable","disable","WeakRefKeyFn","_lookup","chunks","map","isObjectType","isFunction","createRandomHash","createHash","JSON","stringify","from","cb","join","hash","encoding","replacer","AbortSignal","unorderedArrays","unorderedObjects","unorderedSets","JSONCacheKeyFn","CacheFn","Function","create","instance","Proxy","_","prop","receiver","updateTTL","createSnapshot"],"mappings":"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","file":"decoratorCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyFn, TypedFn } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\nimport hash from \"object-hash\";\nimport { createHash, createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { findDescriptor } from \"@/internals/helpers/prototype.js\";\n\ntype InputFn = AnyFn;\ntype TargetFn = AnyFn;\ntype Instance = NonNullable<any>;\n\ntype CacheKeyFn = (this: Instance, ...args: any[]) => string;\n\nexport interface CacheDecoratorOptions {\n enabled: boolean;\n ttl?: number;\n cacheKey: CacheKeyFn;\n enumerable?: boolean;\n}\n\ninterface CacheEntry {\n expiresAt: number;\n data: any;\n}\n\ninterface FnContext {\n options: CacheDecoratorOptions;\n cache: Map<string, CacheEntry>;\n}\n\ninterface GroupContext {\n options: CacheDecoratorOptions;\n instances: WeakMap<Instance, FnContext>;\n}\n\nexport interface CacheDecoratorInstance {\n get(key?: string): CacheEntry | undefined;\n\n clear(keys?: string[]): void;\n\n isEnabled(): boolean;\n\n enable(): void;\n\n disable(): void;\n\n update(data: Partial<CacheDecoratorOptions>): void;\n}\n\nconst state = {\n container: new WeakMap<InputFn, GroupContext>(),\n extractDescriptor(descriptor: PropertyDescriptor) {\n // Method approach\n if (descriptor.value != null) {\n return {\n value: descriptor.value as AnyFn,\n update: (value: TargetFn) => {\n descriptor.value = value;\n },\n };\n }\n // Accessor approach\n if (descriptor.get != null) {\n return {\n value: descriptor.get as AnyFn,\n update: (value: TargetFn) => {\n descriptor.get = value;\n },\n };\n }\n throw new Error(`@${Cache.name} decorator must be either on a method or get accessor.`);\n },\n getInstanceContext<T extends NonNullable<unknown>>(target: T, ctx: GroupContext) {\n if (!ctx.instances.has(target)) {\n ctx.instances.set(target, {\n cache: new Map(),\n options: ctx.options,\n });\n }\n return ctx.instances.get(target)!;\n },\n} as const;\n\nconst initQueue = new WeakMap<Instance, { key: PropertyKey; enumerable: boolean }[]>();\n\nexport function Cache(_options?: Partial<CacheDecoratorOptions>) {\n const baseOptions: Required<CacheDecoratorOptions> = {\n enabled: true,\n cacheKey: ObjectHashKeyFn,\n ttl: Infinity,\n enumerable: false,\n ...R.pickBy(_options ?? {}, R.isDefined),\n };\n\n return function handler(\n obj: NonNullable<object>,\n key: string | symbol,\n descriptor: PropertyDescriptor,\n ) {\n if (Object.hasOwn(obj, \"constructor\")) {\n const constructor = obj.constructor;\n if (!initQueue.has(constructor)) {\n initQueue.set(constructor, []);\n }\n\n baseOptions.enumerable = Boolean(descriptor.get);\n initQueue\n .get(constructor)!\n .push({ key, enumerable: _options?.enumerable ?? baseOptions.enumerable });\n }\n\n const target = state.extractDescriptor(descriptor);\n if (descriptor.get && !_options?.cacheKey) {\n baseOptions.cacheKey = SingletonCacheKeyFn;\n }\n\n const groupContext: GroupContext = { instances: new WeakMap(), options: baseOptions };\n\n const fn = function wrapper(this: any, ...args: any[]) {\n const invokeOriginal = () => target.value.apply(this, args);\n const ctx = state.getInstanceContext(this, groupContext);\n if (!ctx.options.enabled) {\n return invokeOriginal();\n }\n\n const inputHash = ctx.options.cacheKey.apply(this, args);\n if (\n !ctx.cache.has(inputHash) ||\n (ctx.cache.get(inputHash)?.expiresAt ?? Infinity) < Date.now() // is expired check\n ) {\n const result = invokeOriginal();\n ctx.cache.set(inputHash, {\n expiresAt: Date.now() + (ctx.options.ttl ?? Infinity),\n data: result,\n });\n }\n return ctx.cache.get(inputHash)!.data;\n };\n Object.defineProperty(fn, \"name\", {\n get: () => target.value.name ?? \"anonymous\",\n });\n\n target.update(fn);\n state.container.set(fn, groupContext);\n };\n}\n\nCache.init = function init<T extends NonNullable<unknown>>(self: T) {\n const task = initQueue.get(self.constructor) ?? [];\n for (const { key, enumerable } of task) {\n const descriptor = Object.getOwnPropertyDescriptor(self.constructor.prototype, key);\n if (descriptor) {\n Object.defineProperty(self, key, Object.assign(descriptor, { enumerable }));\n }\n }\n initQueue.delete(self);\n};\n\nCache.getInstance = function getInstance<T extends NonNullable<unknown>>(\n target: T,\n property: keyof T,\n): CacheDecoratorInstance {\n const descriptor = findDescriptor(target, property);\n if (!descriptor) {\n throw new TypeError(`No descriptor has been found for '${String(property)}'`);\n }\n const value = state.extractDescriptor(descriptor);\n const ctxByInstance = state.container.get(value.value);\n if (!ctxByInstance) {\n throw new TypeError(`No cache instance is bounded to '${String(property)}'!`);\n }\n\n const ctx = state.getInstanceContext(target, ctxByInstance);\n return {\n get(key = \"\") {\n return ctx.cache.get(key);\n },\n clear(keys?: string[]) {\n if (keys) {\n keys.forEach((key) => ctx.cache.delete(key));\n } else {\n ctx.cache.clear();\n }\n },\n update(data: CacheDecoratorOptions) {\n const oldTTL = ctx.options.ttl;\n const newTTL = data.ttl;\n if (oldTTL !== newTTL && newTTL !== undefined) {\n for (const value of ctx.cache.values()) {\n if (value.expiresAt === Infinity) {\n value.expiresAt = Date.now() + newTTL;\n } else {\n const diff = newTTL - (oldTTL ?? 0);\n value.expiresAt += diff;\n }\n }\n }\n Object.assign(ctx.options, data);\n },\n isEnabled() {\n return ctx.options.enabled;\n },\n enable() {\n ctx.options.enabled = true;\n },\n disable() {\n ctx.options.enabled = false;\n },\n };\n};\n\nexport const WeakRefKeyFn = (() => {\n const _lookup = new WeakMap();\n\n const fn = (...args: any[]) => {\n const chunks = args.map((value) => {\n if (R.isObjectType(value) || R.isFunction(value)) {\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n });\n return createHash(JSON.stringify(chunks));\n };\n fn.from = <T>(cb: (self: T) => any[]) => {\n return function (this: T) {\n return cb(this).map(fn).join(\"#\");\n };\n };\n return fn;\n})() satisfies CacheKeyFn;\n\nexport const ObjectHashKeyFn: CacheKeyFn = (...args: any[]) =>\n hash(args, {\n encoding: \"base64\",\n replacer: (() => {\n const _lookup = new WeakMap();\n return (value: unknown) => {\n if (value && value instanceof AbortSignal) {\n // not supported by \"hash\" function\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n };\n })(),\n unorderedArrays: false,\n unorderedObjects: false,\n unorderedSets: false,\n });\nexport const JSONCacheKeyFn: CacheKeyFn = (...args: any[]) => JSON.stringify(args);\n// eslint-disable-next-line unused-imports/no-unused-vars\nexport const SingletonCacheKeyFn: CacheKeyFn = (...args: any[]) => \"\";\n\nexport class CacheFn<P extends any[], R> extends Function {\n readonly name = CacheFn.name;\n\n static create<A extends any[], B>(\n fn: (...args: A) => B,\n options?: Partial<CacheDecoratorOptions>,\n ) {\n const instance = new CacheFn(fn, options);\n return instance as TypedFn<A, B> & CacheFn<A, B>;\n }\n\n constructor(\n protected readonly fn: (...args: P) => R,\n protected readonly options?: Partial<CacheDecoratorOptions>,\n ) {\n super();\n\n Cache.getInstance(this, \"get\").update(options ?? {});\n return new Proxy<typeof this>(this, {\n apply(this: CacheFn<P, R>, target, _, args: any[]) {\n return target.get(...(args as unknown as P));\n },\n get(target, prop: string | symbol, receiver: any) {\n const value = target[prop as keyof typeof target];\n if (value instanceof Function) {\n return function (this: CacheFn<P, R>, ...args: P) {\n return value.apply(this === receiver ? target : this, args);\n };\n }\n return value;\n },\n }) as unknown as CacheFn<P, R> & typeof fn;\n }\n\n updateTTL(ttl: number) {\n Cache.getInstance(this, \"get\").update({ ttl });\n }\n\n createSnapshot() {\n return {\n fn: this.fn,\n options: this.options,\n };\n }\n\n @Cache()\n get(...args: P) {\n return this.fn(...args);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cache/decoratorCache.ts"],"names":["state","container","WeakMap","extractDescriptor","descriptor","value","update","get","Error","Cache","name","getInstanceContext","target","ctx","instances","has","set","cache","Map","options","initQueue","_options","baseOptions","enabled","cacheKey","ObjectHashKeyFn","ttl","Infinity","enumerable","R","pickBy","isDefined","handler","obj","key","Object","hasOwn","constructor","Boolean","push","SingletonCacheKeyFn","groupContext","fn","wrapper","args","invokeOriginal","apply","inputHash","expiresAt","Date","now","result","data","defineProperty","init","self","task","getOwnPropertyDescriptor","prototype","assign","delete","getInstance","property","findDescriptor","TypeError","String","ctxByInstance","clear","keys","forEach","oldTTL","newTTL","undefined","values","diff","isEnabled","enable","disable","WeakRefKeyFn","_lookup","chunks","map","isObjectType","isFunction","createRandomHash","createHash","JSON","stringify","from","cb","join","hash","encoding","replacer","AbortSignal","unorderedArrays","unorderedObjects","unorderedSets","JSONCacheKeyFn","CacheFn","Function","create","instance","Proxy","_","prop","receiver","updateTTL","createSnapshot"],"mappings":"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","file":"decoratorCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyFn, TypedFn } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\nimport hash from \"object-hash\";\nimport { createHash, createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { findDescriptor } from \"@/internals/helpers/prototype.js\";\n\ntype InputFn = AnyFn;\ntype TargetFn = AnyFn;\ntype Instance = NonNullable<any>;\n\ntype CacheKeyFn = (this: Instance, ...args: any[]) => string;\n\nexport interface CacheDecoratorOptions {\n enabled: boolean;\n ttl?: number;\n cacheKey: CacheKeyFn;\n enumerable?: boolean;\n}\n\ninterface CacheEntry {\n expiresAt: number;\n data: any;\n}\n\ninterface FnContext {\n options: CacheDecoratorOptions;\n cache: Map<string, CacheEntry>;\n}\n\ninterface GroupContext {\n options: CacheDecoratorOptions;\n instances: WeakMap<Instance, FnContext>;\n}\n\nexport interface CacheDecoratorInstance {\n get(key?: string): CacheEntry | undefined;\n\n clear(keys?: string[]): void;\n\n isEnabled(): boolean;\n\n enable(): void;\n\n disable(): void;\n\n update(data: Partial<CacheDecoratorOptions>): void;\n}\n\nconst state = {\n container: new WeakMap<InputFn, GroupContext>(),\n extractDescriptor(descriptor: PropertyDescriptor) {\n // Method approach\n if (descriptor.value != null) {\n return {\n value: descriptor.value as AnyFn,\n update: (value: TargetFn) => {\n descriptor.value = value;\n },\n };\n }\n // Accessor approach\n if (descriptor.get != null) {\n return {\n value: descriptor.get as AnyFn,\n update: (value: TargetFn) => {\n descriptor.get = value;\n },\n };\n }\n throw new Error(`@${Cache.name} decorator must be either on a method or get accessor.`);\n },\n getInstanceContext<T extends NonNullable<unknown>>(target: T, ctx: GroupContext) {\n if (!ctx.instances.has(target)) {\n ctx.instances.set(target, {\n cache: new Map(),\n options: ctx.options,\n });\n }\n return ctx.instances.get(target)!;\n },\n} as const;\n\nconst initQueue = new WeakMap<Instance, { key: PropertyKey; enumerable: boolean }[]>();\n\nexport function Cache(_options?: Partial<CacheDecoratorOptions>) {\n const baseOptions: Required<CacheDecoratorOptions> = {\n enabled: true,\n cacheKey: ObjectHashKeyFn,\n ttl: Infinity,\n enumerable: false,\n ...R.pickBy(_options ?? {}, R.isDefined),\n };\n\n return function handler(\n obj: NonNullable<object>,\n key: string | symbol,\n descriptor: PropertyDescriptor,\n ) {\n if (Object.hasOwn(obj, \"constructor\")) {\n const constructor = obj.constructor;\n if (!initQueue.has(constructor)) {\n initQueue.set(constructor, []);\n }\n\n baseOptions.enumerable = Boolean(descriptor.get);\n initQueue\n .get(constructor)!\n .push({ key, enumerable: _options?.enumerable ?? baseOptions.enumerable });\n }\n\n const target = state.extractDescriptor(descriptor);\n if (descriptor.get && !_options?.cacheKey) {\n baseOptions.cacheKey = SingletonCacheKeyFn;\n }\n\n const groupContext: GroupContext = { instances: new WeakMap(), options: baseOptions };\n\n const fn = function wrapper(this: any, ...args: any[]) {\n const invokeOriginal = () => target.value.apply(this, args);\n const ctx = state.getInstanceContext(this, groupContext);\n if (!ctx.options.enabled) {\n return invokeOriginal();\n }\n\n const inputHash = ctx.options.cacheKey.apply(this, args);\n if (\n !ctx.cache.has(inputHash) ||\n (ctx.cache.get(inputHash)?.expiresAt ?? Infinity) < Date.now() // is expired check\n ) {\n const result = invokeOriginal();\n ctx.cache.set(inputHash, {\n expiresAt: Date.now() + (ctx.options.ttl ?? Infinity),\n data: result,\n });\n }\n return ctx.cache.get(inputHash)!.data;\n };\n Object.defineProperty(fn, \"name\", {\n get: () => target.value.name ?? \"anonymous\",\n });\n\n target.update(fn);\n state.container.set(fn, groupContext);\n };\n}\n\nCache.init = function init<T extends NonNullable<unknown>>(self: T) {\n const task = initQueue.get(self.constructor) ?? [];\n for (const { key, enumerable } of task) {\n const descriptor = Object.getOwnPropertyDescriptor(self.constructor.prototype, key);\n if (descriptor) {\n Object.defineProperty(self, key, Object.assign(descriptor, { enumerable }));\n }\n }\n initQueue.delete(self);\n};\n\nCache.getInstance = function getInstance<T extends NonNullable<unknown>>(\n target: T,\n property: keyof T,\n): CacheDecoratorInstance {\n const descriptor = findDescriptor(target, property);\n if (!descriptor) {\n throw new TypeError(`No descriptor has been found for '${String(property)}'`);\n }\n const value = state.extractDescriptor(descriptor);\n const ctxByInstance = state.container.get(value.value);\n if (!ctxByInstance) {\n throw new TypeError(`No cache instance is bounded to '${String(property)}'!`);\n }\n\n const ctx = state.getInstanceContext(target, ctxByInstance);\n return {\n get(key = \"\") {\n return ctx.cache.get(key);\n },\n clear(keys?: string[]) {\n if (keys) {\n keys.forEach((key) => ctx.cache.delete(key));\n } else {\n ctx.cache.clear();\n }\n },\n update(data: CacheDecoratorOptions) {\n const oldTTL = ctx.options.ttl;\n const newTTL = data.ttl;\n if (oldTTL !== newTTL && newTTL !== undefined) {\n for (const value of ctx.cache.values()) {\n if (value.expiresAt === Infinity) {\n value.expiresAt = Date.now() + newTTL;\n } else {\n const diff = newTTL - (oldTTL ?? 0);\n value.expiresAt += diff;\n }\n }\n }\n Object.assign(ctx.options, data);\n },\n isEnabled() {\n return ctx.options.enabled;\n },\n enable() {\n ctx.options.enabled = true;\n },\n disable() {\n ctx.options.enabled = false;\n },\n };\n};\n\nexport const WeakRefKeyFn = (() => {\n const _lookup = new WeakMap();\n\n const fn = (...args: any[]) => {\n const chunks = args.map((value) => {\n if (R.isObjectType(value) || R.isFunction(value)) {\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n });\n return createHash(JSON.stringify(chunks));\n };\n fn.from = <T>(cb: (self: T) => any[]) => {\n return function (this: T) {\n return cb(this).map(fn).join(\"#\");\n };\n };\n return fn;\n})() satisfies CacheKeyFn;\n\nexport const ObjectHashKeyFn: CacheKeyFn = (...args: any[]) =>\n hash(args, {\n encoding: \"base64\",\n replacer: (() => {\n const _lookup = new WeakMap();\n return (value: unknown) => {\n if (value && value instanceof AbortSignal) {\n // not supported by \"hash\" function\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n };\n })(),\n unorderedArrays: false,\n unorderedObjects: false,\n unorderedSets: false,\n });\nexport const JSONCacheKeyFn: CacheKeyFn = (...args: any[]) => JSON.stringify(args);\n// eslint-disable-next-line unused-imports/no-unused-vars\nexport const SingletonCacheKeyFn: CacheKeyFn = (...args: any[]) => \"\";\n\nexport class CacheFn<P extends any[], R> extends Function {\n readonly name = CacheFn.name;\n\n static create<A extends any[], B>(\n fn: (...args: A) => B,\n options?: Partial<CacheDecoratorOptions>,\n ) {\n const instance = new CacheFn(fn, options);\n return instance as TypedFn<A, B> & CacheFn<A, B>;\n }\n\n constructor(\n protected readonly fn: (...args: P) => R,\n protected readonly options?: Partial<CacheDecoratorOptions>,\n ) {\n super();\n\n Cache.getInstance(this, \"get\").update(options ?? {});\n return new Proxy<typeof this>(this, {\n apply(this: CacheFn<P, R>, target, _, args: any[]) {\n return target.get(...(args as unknown as P));\n },\n get(target, prop: string | symbol, receiver: any) {\n const value = target[prop as keyof typeof target];\n if (value instanceof Function) {\n return function (this: CacheFn<P, R>, ...args: P) {\n return value.apply(this === receiver ? target : this, args);\n };\n }\n return value;\n },\n }) as unknown as CacheFn<P, R> & typeof fn;\n }\n\n updateTTL(ttl: number) {\n Cache.getInstance(this, \"get\").update({ ttl });\n }\n\n createSnapshot() {\n return {\n fn: this.fn,\n options: this.options,\n };\n }\n\n @Cache()\n get(...args: P) {\n return this.fn(...args);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/cache/decoratorCache.ts"],"names":["state","container","WeakMap","extractDescriptor","descriptor","value","update","get","Error","Cache","name","getInstanceContext","target","ctx","instances","has","set","cache","Map","options","initQueue","_options","baseOptions","enabled","cacheKey","ObjectHashKeyFn","ttl","Infinity","enumerable","R","pickBy","isDefined","handler","obj","key","Object","hasOwn","constructor","Boolean","push","SingletonCacheKeyFn","groupContext","fn","wrapper","args","invokeOriginal","apply","inputHash","expiresAt","Date","now","result","data","defineProperty","init","self","task","getOwnPropertyDescriptor","prototype","assign","delete","getInstance","property","findDescriptor","TypeError","String","ctxByInstance","clear","keys","forEach","oldTTL","newTTL","undefined","values","diff","isEnabled","enable","disable","WeakRefKeyFn","_lookup","chunks","map","isObjectType","isFunction","createRandomHash","createHash","JSON","stringify","from","cb","join","hash","encoding","replacer","AbortSignal","unorderedArrays","unorderedObjects","unorderedSets","JSONCacheKeyFn","CacheFn","Function","create","instance","Proxy","_","prop","receiver","updateTTL","createSnapshot"],"mappings":"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","file":"decoratorCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyFn, TypedFn } from \"@/internals/types.js\";\nimport * as R from \"remeda\";\nimport hash from \"object-hash\";\nimport { createHash, createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { findDescriptor } from \"@/internals/helpers/prototype.js\";\n\ntype InputFn = AnyFn;\ntype TargetFn = AnyFn;\ntype Instance = NonNullable<any>;\n\ntype CacheKeyFn = (this: Instance, ...args: any[]) => string;\n\nexport interface CacheDecoratorOptions {\n enabled: boolean;\n ttl?: number;\n cacheKey: CacheKeyFn;\n enumerable?: boolean;\n}\n\ninterface CacheEntry {\n expiresAt: number;\n data: any;\n}\n\ninterface FnContext {\n options: CacheDecoratorOptions;\n cache: Map<string, CacheEntry>;\n}\n\ninterface GroupContext {\n options: CacheDecoratorOptions;\n instances: WeakMap<Instance, FnContext>;\n}\n\nexport interface CacheDecoratorInstance {\n get(key?: string): CacheEntry | undefined;\n\n clear(keys?: string[]): void;\n\n isEnabled(): boolean;\n\n enable(): void;\n\n disable(): void;\n\n update(data: Partial<CacheDecoratorOptions>): void;\n}\n\nconst state = {\n container: new WeakMap<InputFn, GroupContext>(),\n extractDescriptor(descriptor: PropertyDescriptor) {\n // Method approach\n if (descriptor.value != null) {\n return {\n value: descriptor.value as AnyFn,\n update: (value: TargetFn) => {\n descriptor.value = value;\n },\n };\n }\n // Accessor approach\n if (descriptor.get != null) {\n return {\n value: descriptor.get as AnyFn,\n update: (value: TargetFn) => {\n descriptor.get = value;\n },\n };\n }\n throw new Error(`@${Cache.name} decorator must be either on a method or get accessor.`);\n },\n getInstanceContext<T extends NonNullable<unknown>>(target: T, ctx: GroupContext) {\n if (!ctx.instances.has(target)) {\n ctx.instances.set(target, {\n cache: new Map(),\n options: ctx.options,\n });\n }\n return ctx.instances.get(target)!;\n },\n} as const;\n\nconst initQueue = new WeakMap<Instance, { key: PropertyKey; enumerable: boolean }[]>();\n\nexport function Cache(_options?: Partial<CacheDecoratorOptions>) {\n const baseOptions: Required<CacheDecoratorOptions> = {\n enabled: true,\n cacheKey: ObjectHashKeyFn,\n ttl: Infinity,\n enumerable: false,\n ...R.pickBy(_options ?? {}, R.isDefined),\n };\n\n return function handler(\n obj: NonNullable<object>,\n key: string | symbol,\n descriptor: PropertyDescriptor,\n ) {\n if (Object.hasOwn(obj, \"constructor\")) {\n const constructor = obj.constructor;\n if (!initQueue.has(constructor)) {\n initQueue.set(constructor, []);\n }\n\n baseOptions.enumerable = Boolean(descriptor.get);\n initQueue\n .get(constructor)!\n .push({ key, enumerable: _options?.enumerable ?? baseOptions.enumerable });\n }\n\n const target = state.extractDescriptor(descriptor);\n if (descriptor.get && !_options?.cacheKey) {\n baseOptions.cacheKey = SingletonCacheKeyFn;\n }\n\n const groupContext: GroupContext = { instances: new WeakMap(), options: baseOptions };\n\n const fn = function wrapper(this: any, ...args: any[]) {\n const invokeOriginal = () => target.value.apply(this, args);\n const ctx = state.getInstanceContext(this, groupContext);\n if (!ctx.options.enabled) {\n return invokeOriginal();\n }\n\n const inputHash = ctx.options.cacheKey.apply(this, args);\n if (\n !ctx.cache.has(inputHash) ||\n (ctx.cache.get(inputHash)?.expiresAt ?? Infinity) < Date.now() // is expired check\n ) {\n const result = invokeOriginal();\n ctx.cache.set(inputHash, {\n expiresAt: Date.now() + (ctx.options.ttl ?? Infinity),\n data: result,\n });\n }\n return ctx.cache.get(inputHash)!.data;\n };\n Object.defineProperty(fn, \"name\", {\n get: () => target.value.name ?? \"anonymous\",\n });\n\n target.update(fn);\n state.container.set(fn, groupContext);\n };\n}\n\nCache.init = function init<T extends NonNullable<unknown>>(self: T) {\n const task = initQueue.get(self.constructor) ?? [];\n for (const { key, enumerable } of task) {\n const descriptor = Object.getOwnPropertyDescriptor(self.constructor.prototype, key);\n if (descriptor) {\n Object.defineProperty(self, key, Object.assign(descriptor, { enumerable }));\n }\n }\n initQueue.delete(self);\n};\n\nCache.getInstance = function getInstance<T extends NonNullable<unknown>>(\n target: T,\n property: keyof T,\n): CacheDecoratorInstance {\n const descriptor = findDescriptor(target, property);\n if (!descriptor) {\n throw new TypeError(`No descriptor has been found for '${String(property)}'`);\n }\n const value = state.extractDescriptor(descriptor);\n const ctxByInstance = state.container.get(value.value);\n if (!ctxByInstance) {\n throw new TypeError(`No cache instance is bounded to '${String(property)}'!`);\n }\n\n const ctx = state.getInstanceContext(target, ctxByInstance);\n return {\n get(key = \"\") {\n return ctx.cache.get(key);\n },\n clear(keys?: string[]) {\n if (keys) {\n keys.forEach((key) => ctx.cache.delete(key));\n } else {\n ctx.cache.clear();\n }\n },\n update(data: CacheDecoratorOptions) {\n const oldTTL = ctx.options.ttl;\n const newTTL = data.ttl;\n if (oldTTL !== newTTL && newTTL !== undefined) {\n for (const value of ctx.cache.values()) {\n if (value.expiresAt === Infinity) {\n value.expiresAt = Date.now() + newTTL;\n } else {\n const diff = newTTL - (oldTTL ?? 0);\n value.expiresAt += diff;\n }\n }\n }\n Object.assign(ctx.options, data);\n },\n isEnabled() {\n return ctx.options.enabled;\n },\n enable() {\n ctx.options.enabled = true;\n },\n disable() {\n ctx.options.enabled = false;\n },\n };\n};\n\nexport const WeakRefKeyFn = (() => {\n const _lookup = new WeakMap();\n\n const fn = (...args: any[]) => {\n const chunks = args.map((value) => {\n if (R.isObjectType(value) || R.isFunction(value)) {\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n });\n return createHash(JSON.stringify(chunks));\n };\n fn.from = <T>(cb: (self: T) => any[]) => {\n return function (this: T) {\n return cb(this).map(fn).join(\"#\");\n };\n };\n return fn;\n})() satisfies CacheKeyFn;\n\nexport const ObjectHashKeyFn: CacheKeyFn = (...args: any[]) =>\n hash(args, {\n encoding: \"base64\",\n replacer: (() => {\n const _lookup = new WeakMap();\n return (value: unknown) => {\n if (value && value instanceof AbortSignal) {\n // not supported by \"hash\" function\n if (!_lookup.has(value)) {\n _lookup.set(value, createRandomHash(6));\n }\n return _lookup.get(value)!;\n }\n return value;\n };\n })(),\n unorderedArrays: false,\n unorderedObjects: false,\n unorderedSets: false,\n });\nexport const JSONCacheKeyFn: CacheKeyFn = (...args: any[]) => JSON.stringify(args);\n// eslint-disable-next-line unused-imports/no-unused-vars\nexport const SingletonCacheKeyFn: CacheKeyFn = (...args: any[]) => \"\";\n\nexport class CacheFn<P extends any[], R> extends Function {\n readonly name = CacheFn.name;\n\n static create<A extends any[], B>(\n fn: (...args: A) => B,\n options?: Partial<CacheDecoratorOptions>,\n ) {\n const instance = new CacheFn(fn, options);\n return instance as TypedFn<A, B> & CacheFn<A, B>;\n }\n\n constructor(\n protected readonly fn: (...args: P) => R,\n protected readonly options?: Partial<CacheDecoratorOptions>,\n ) {\n super();\n\n Cache.getInstance(this, \"get\").update(options ?? {});\n return new Proxy<typeof this>(this, {\n apply(this: CacheFn<P, R>, target, _, args: any[]) {\n return target.get(...(args as unknown as P));\n },\n get(target, prop: string | symbol, receiver: any) {\n const value = target[prop as keyof typeof target];\n if (value instanceof Function) {\n return function (this: CacheFn<P, R>, ...args: P) {\n return value.apply(this === receiver ? target : this, args);\n };\n }\n return value;\n },\n }) as unknown as CacheFn<P, R> & typeof fn;\n }\n\n updateTTL(ttl: number) {\n Cache.getInstance(this, \"get\").update({ ttl });\n }\n\n createSnapshot() {\n return {\n fn: this.fn,\n options: this.options,\n };\n }\n\n @Cache()\n get(...args: P) {\n return this.fn(...args);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cache/fileCache.ts"],"names":["FileCache","BaseCache","input","register","source","fullPath","fromProvider","provider","fs","promises","writeFile","serialize","getProvider","exists","stat","then","r","isFile","catch","serialized","readFile","target","snapshot","Serializer","deserialize","Target","getFactory","ref","instance","fromSnapshot","TypeError","SlidingCache","size","Infinity","ttl","reload","Cache","getInstance","clear","save","set","key","value","get","finally","has","delete","result","createSnapshot","loadSnapshot","Object","assign"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,MAAMA,kBAAqBC,kBAAAA,CAAAA;AAAAA,EAAAA;;;;AAChC,EAAA,WAAA,CAA+BC,KAAAA,EAAc;AAC3C,IAAA,KAAA,EAAK,EAAA,KADwBA,KAAAA,GAAAA,KAAAA;AAE/B;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;AAEA,EAAA,IAAIC,MAAAA,GAAS;AACX,IAAA,OAAO,KAAKF,KAAAA,CAAMG,QAAAA;AACpB;EAEA,aAAaC,YAAAA,CAAgBC,UAAwBL,KAAAA,EAAc;AACjE,IAAA,MAAMM,mBAAAA,CAAGC,SAASC,SAAAA,CAAUR,KAAAA,CAAMG,UAAU,MAAME,QAAAA,CAASI,WAAS,CAAA;AACpE,IAAA,OAAO,IAAIX,UAAaE,KAAAA,CAAAA;AAC1B;AAEA,EAAA,MACgBU,WAAAA,GAAqC;AACnD,IAAA,MAAMC,SAAS,MAAML,mBAAAA,CAAGC,SACrBK,IAAAA,CAAK,IAAA,CAAKZ,MAAMG,QAAQ,CAAA,CACxBU,IAAAA,CAAK,CAACC,MAAMA,CAAAA,CAAEC,MAAAA,EAAM,CAAA,CACpBC,KAAAA,CAAM,MAAM,KAAA,CAAA;AAEf,IAAA,IAAIL,MAAAA,EAAQ;AACV,MAAA,MAAMM,UAAAA,GAAa,MAAMX,mBAAAA,CAAGC,QAAAA,CAASW,SAAS,IAAA,CAAKlB,KAAAA,CAAMG,UAAU,MAAA,CAAA;AACnE,MAAA,MAAM,EAAEgB,MAAAA,EAAQC,QAAAA,KAAa,MAAMC,yBAAAA,CAAWC,YAAiBL,UAAAA,CAAAA;AAC/D,MAAA,MAAMM,MAAAA,GAASF,yBAAAA,CAAWG,UAAAA,CAAWL,MAAAA,CAAAA,CAAQM,GAAAA;AAC7C,MAAA,MAAMC,QAAAA,GAAW,MAAMH,MAAAA,CAAOI,YAAAA,CAAaP,QAAAA,CAAAA;AAC3C,MAAA,IAAI,EAAEM,oBAAoB3B,kBAAAA,CAAAA,EAAY;AACpC,QAAA,MAAM,IAAI6B,UAAU,mEAAA,CAAA;AACtB;AACA,MAAA,OAAOF,QAAAA;
|
|
1
|
+
{"version":3,"sources":["../../src/cache/fileCache.ts"],"names":["FileCache","BaseCache","input","register","source","fullPath","fromProvider","provider","fs","promises","writeFile","serialize","getProvider","exists","stat","then","r","isFile","catch","serialized","readFile","target","snapshot","Serializer","deserialize","Target","getFactory","ref","instance","fromSnapshot","TypeError","SlidingCache","size","Infinity","ttl","reload","Cache","getInstance","clear","save","set","key","value","get","finally","has","delete","result","createSnapshot","loadSnapshot","Object","assign"],"mappings":"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","file":"fileCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\nimport fs from \"node:fs\";\nimport { SlidingCache } from \"@/cache/slidingCache.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { Serializer } from \"@/serializer/serializer.js\";\nimport { SerializableClass } from \"@/internals/serializable.js\";\n\ninterface Input {\n fullPath: string;\n}\n\nexport class FileCache<T> extends BaseCache<T> {\n constructor(protected readonly input: Input) {\n super();\n }\n\n static {\n this.register();\n }\n\n get source() {\n return this.input.fullPath;\n }\n\n static async fromProvider<A>(provider: BaseCache<A>, input: Input) {\n await fs.promises.writeFile(input.fullPath, await provider.serialize());\n return new FileCache<A>(input);\n }\n\n @Cache()\n protected async getProvider(): Promise<BaseCache<T>> {\n const exists = await fs.promises\n .stat(this.input.fullPath)\n .then((r) => r.isFile())\n .catch(() => false);\n\n if (exists) {\n const serialized = await fs.promises.readFile(this.input.fullPath, \"utf8\");\n const { target, snapshot } = await Serializer.deserialize<any>(serialized);\n const Target = Serializer.getFactory(target).ref as SerializableClass<BaseCache<T>>;\n const instance = await Target.fromSnapshot(snapshot);\n if (!(instance instanceof BaseCache)) {\n throw new TypeError(\"Provided file does not serialize any instance of BaseCache class.\");\n }\n return instance;\n } else {\n return new SlidingCache({\n size: Infinity,\n ttl: Infinity,\n });\n }\n }\n\n async reload() {\n // @ts-expect-error protected property\n Cache.getInstance(this, \"getProvider\").clear();\n void (await this.getProvider());\n }\n\n protected async save() {\n const provider = await this.getProvider();\n return await fs.promises.writeFile(this.input.fullPath, await provider.serialize());\n }\n\n async size() {\n const provider = await this.getProvider();\n return provider.size();\n }\n\n async set(key: string, value: T) {\n const provider = await this.getProvider();\n await provider.set(key, value);\n void provider.get(key).finally(() => {\n void this.save();\n });\n }\n\n async get(key: string) {\n const provider = await this.getProvider();\n return await provider.get(key);\n }\n\n async has(key: string) {\n const provider = await this.getProvider();\n return await provider.has(key);\n }\n\n async delete(key: string) {\n const provider = await this.getProvider();\n const result = await provider.delete(key);\n await this.save();\n return result;\n }\n\n async clear() {\n const provider = await this.getProvider();\n await provider.clear();\n await this.save();\n }\n\n async createSnapshot() {\n return {\n input: { fullPath: this.input.fullPath },\n provider: await this.getProvider(),\n };\n }\n\n loadSnapshot(snapshot: Awaited<ReturnType<typeof this.createSnapshot>>): void {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cache/fileCache.ts"],"names":["FileCache","BaseCache","input","register","source","fullPath","fromProvider","provider","fs","promises","writeFile","serialize","getProvider","exists","stat","then","r","isFile","catch","serialized","readFile","target","snapshot","Serializer","deserialize","Target","getFactory","ref","instance","fromSnapshot","TypeError","SlidingCache","size","Infinity","ttl","reload","Cache","getInstance","clear","save","set","key","value","get","finally","has","delete","result","createSnapshot","loadSnapshot","Object","assign"],"mappings":";;;;;;;;;;;;;;;;;;;AAgBO,MAAMA,kBAAqBC,SAAAA,CAAAA;AAAAA,EAAAA;;;;AAChC,EAAA,WAAA,CAA+BC,KAAAA,EAAc;AAC3C,IAAA,KAAA,EAAK,EAAA,KADwBA,KAAAA,GAAAA,KAAAA;AAE/B;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;AAEA,EAAA,IAAIC,MAAAA,GAAS;AACX,IAAA,OAAO,KAAKF,KAAAA,CAAMG,QAAAA;AACpB;EAEA,aAAaC,YAAAA,CAAgBC,UAAwBL,KAAAA,EAAc;AACjE,IAAA,MAAMM,EAAAA,CAAGC,SAASC,SAAAA,CAAUR,KAAAA,CAAMG,UAAU,MAAME,QAAAA,CAASI,WAAS,CAAA;AACpE,IAAA,OAAO,IAAIX,UAAaE,KAAAA,CAAAA;AAC1B;AAEA,EAAA,MACgBU,WAAAA,GAAqC;AACnD,IAAA,MAAMC,SAAS,MAAML,EAAAA,CAAGC,SACrBK,IAAAA,CAAK,IAAA,CAAKZ,MAAMG,QAAQ,CAAA,CACxBU,IAAAA,CAAK,CAACC,MAAMA,CAAAA,CAAEC,MAAAA,EAAM,CAAA,CACpBC,KAAAA,CAAM,MAAM,KAAA,CAAA;AAEf,IAAA,IAAIL,MAAAA,EAAQ;AACV,MAAA,MAAMM,UAAAA,GAAa,MAAMX,EAAAA,CAAGC,QAAAA,CAASW,SAAS,IAAA,CAAKlB,KAAAA,CAAMG,UAAU,MAAA,CAAA;AACnE,MAAA,MAAM,EAAEgB,MAAAA,EAAQC,QAAAA,KAAa,MAAMC,UAAAA,CAAWC,YAAiBL,UAAAA,CAAAA;AAC/D,MAAA,MAAMM,MAAAA,GAASF,UAAAA,CAAWG,UAAAA,CAAWL,MAAAA,CAAAA,CAAQM,GAAAA;AAC7C,MAAA,MAAMC,QAAAA,GAAW,MAAMH,MAAAA,CAAOI,YAAAA,CAAaP,QAAAA,CAAAA;AAC3C,MAAA,IAAI,EAAEM,oBAAoB3B,SAAAA,CAAAA,EAAY;AACpC,QAAA,MAAM,IAAI6B,UAAU,mEAAA,CAAA;AACtB;AACA,MAAA,OAAOF,QAAAA;
|
|
1
|
+
{"version":3,"sources":["../../src/cache/fileCache.ts"],"names":["FileCache","BaseCache","input","register","source","fullPath","fromProvider","provider","fs","promises","writeFile","serialize","getProvider","exists","stat","then","r","isFile","catch","serialized","readFile","target","snapshot","Serializer","deserialize","Target","getFactory","ref","instance","fromSnapshot","TypeError","SlidingCache","size","Infinity","ttl","reload","Cache","getInstance","clear","save","set","key","value","get","finally","has","delete","result","createSnapshot","loadSnapshot","Object","assign"],"mappings":"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","file":"fileCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\nimport fs from \"node:fs\";\nimport { SlidingCache } from \"@/cache/slidingCache.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { Serializer } from \"@/serializer/serializer.js\";\nimport { SerializableClass } from \"@/internals/serializable.js\";\n\ninterface Input {\n fullPath: string;\n}\n\nexport class FileCache<T> extends BaseCache<T> {\n constructor(protected readonly input: Input) {\n super();\n }\n\n static {\n this.register();\n }\n\n get source() {\n return this.input.fullPath;\n }\n\n static async fromProvider<A>(provider: BaseCache<A>, input: Input) {\n await fs.promises.writeFile(input.fullPath, await provider.serialize());\n return new FileCache<A>(input);\n }\n\n @Cache()\n protected async getProvider(): Promise<BaseCache<T>> {\n const exists = await fs.promises\n .stat(this.input.fullPath)\n .then((r) => r.isFile())\n .catch(() => false);\n\n if (exists) {\n const serialized = await fs.promises.readFile(this.input.fullPath, \"utf8\");\n const { target, snapshot } = await Serializer.deserialize<any>(serialized);\n const Target = Serializer.getFactory(target).ref as SerializableClass<BaseCache<T>>;\n const instance = await Target.fromSnapshot(snapshot);\n if (!(instance instanceof BaseCache)) {\n throw new TypeError(\"Provided file does not serialize any instance of BaseCache class.\");\n }\n return instance;\n } else {\n return new SlidingCache({\n size: Infinity,\n ttl: Infinity,\n });\n }\n }\n\n async reload() {\n // @ts-expect-error protected property\n Cache.getInstance(this, \"getProvider\").clear();\n void (await this.getProvider());\n }\n\n protected async save() {\n const provider = await this.getProvider();\n return await fs.promises.writeFile(this.input.fullPath, await provider.serialize());\n }\n\n async size() {\n const provider = await this.getProvider();\n return provider.size();\n }\n\n async set(key: string, value: T) {\n const provider = await this.getProvider();\n await provider.set(key, value);\n void provider.get(key).finally(() => {\n void this.save();\n });\n }\n\n async get(key: string) {\n const provider = await this.getProvider();\n return await provider.get(key);\n }\n\n async has(key: string) {\n const provider = await this.getProvider();\n return await provider.has(key);\n }\n\n async delete(key: string) {\n const provider = await this.getProvider();\n const result = await provider.delete(key);\n await this.save();\n return result;\n }\n\n async clear() {\n const provider = await this.getProvider();\n await provider.clear();\n await this.save();\n }\n\n async createSnapshot() {\n return {\n input: { fullPath: this.input.fullPath },\n provider: await this.getProvider(),\n };\n }\n\n loadSnapshot(snapshot: Awaited<ReturnType<typeof this.createSnapshot>>): void {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cache/nullCache.ts"],"names":["NullCache","BaseCache","enabled","set","_key","_value","get","undefined","has","delete","clear","size","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;AAOO,MAAMA,kBAAqBC,kBAAAA,CAAAA;EAPlC;;;EAQEC,OAAAA,GAAU,KAAA;EAEV,MAAMC,GAAAA,CAAIC,MAAcC,MAAAA,EAAW;AAAC;AAEpC,EAAA,MAAMC,IAAIF,IAAAA,EAAc;AACtB,IAAA,OAAOG,MAAAA;AACT;AAEA,EAAA,MAAMC,IAAIJ,IAAAA,EAAc;AACtB,IAAA,OAAO,KAAA;AACT;AAEA,EAAA,MAAMK,OAAOL,IAAAA,EAAc;AACzB,IAAA,OAAO,IAAA;AACT;AAEA,EAAA,MAAMM,KAAAA,GAAQ;AAAC;AAEf,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,CAAA;AACT;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLV,MAAAA,OAAAA,EAAS,IAAA,CAAKA;AAChB,KAAA;AACF;AAEAW,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"nullCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class NullCache<T> extends BaseCache<T> {\n enabled = false;\n\n async set(_key: string, _value: T) {}\n\n async get(_key: string) {\n return undefined;\n }\n\n async has(_key: string) {\n return false;\n }\n\n async delete(_key: string) {\n return true;\n }\n\n async clear() {}\n\n async size() {\n return 0;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/cache/nullCache.ts"],"names":["NullCache","BaseCache","enabled","set","_key","_value","get","undefined","has","delete","clear","size","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;AAOO,MAAMA,kBAAqBC,kBAAAA,CAAAA;EAPlC;;;EAQEC,OAAAA,GAAU,KAAA;EAEV,MAAMC,GAAAA,CAAIC,MAAcC,MAAAA,EAAW;AAAC,EAAA;AAEpC,EAAA,MAAMC,IAAIF,IAAAA,EAAc;AACtB,IAAA,OAAOG,MAAAA;AACT,EAAA;AAEA,EAAA,MAAMC,IAAIJ,IAAAA,EAAc;AACtB,IAAA,OAAO,KAAA;AACT,EAAA;AAEA,EAAA,MAAMK,OAAOL,IAAAA,EAAc;AACzB,IAAA,OAAO,IAAA;AACT,EAAA;AAEA,EAAA,MAAMM,KAAAA,GAAQ;AAAC,EAAA;AAEf,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,CAAA;AACT,EAAA;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLV,MAAAA,OAAAA,EAAS,IAAA,CAAKA;AAChB,KAAA;AACF,EAAA;AAEAW,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"nullCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class NullCache<T> extends BaseCache<T> {\n enabled = false;\n\n async set(_key: string, _value: T) {}\n\n async get(_key: string) {\n return undefined;\n }\n\n async has(_key: string) {\n return false;\n }\n\n async delete(_key: string) {\n return true;\n }\n\n async clear() {}\n\n async size() {\n return 0;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cache/nullCache.ts"],"names":["NullCache","BaseCache","enabled","set","_key","_value","get","undefined","has","delete","clear","size","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;AAOO,MAAMA,kBAAqBC,SAAAA,CAAAA;EAPlC;;;EAQEC,OAAAA,GAAU,KAAA;EAEV,MAAMC,GAAAA,CAAIC,MAAcC,MAAAA,EAAW;AAAC;AAEpC,EAAA,MAAMC,IAAIF,IAAAA,EAAc;AACtB,IAAA,OAAOG,MAAAA;AACT;AAEA,EAAA,MAAMC,IAAIJ,IAAAA,EAAc;AACtB,IAAA,OAAO,KAAA;AACT;AAEA,EAAA,MAAMK,OAAOL,IAAAA,EAAc;AACzB,IAAA,OAAO,IAAA;AACT;AAEA,EAAA,MAAMM,KAAAA,GAAQ;AAAC;AAEf,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,CAAA;AACT;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLV,MAAAA,OAAAA,EAAS,IAAA,CAAKA;AAChB,KAAA;AACF;AAEAW,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"nullCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class NullCache<T> extends BaseCache<T> {\n enabled = false;\n\n async set(_key: string, _value: T) {}\n\n async get(_key: string) {\n return undefined;\n }\n\n async has(_key: string) {\n return false;\n }\n\n async delete(_key: string) {\n return true;\n }\n\n async clear() {}\n\n async size() {\n return 0;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/cache/nullCache.ts"],"names":["NullCache","BaseCache","enabled","set","_key","_value","get","undefined","has","delete","clear","size","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;AAOO,MAAMA,kBAAqBC,SAAAA,CAAAA;EAPlC;;;EAQEC,OAAAA,GAAU,KAAA;EAEV,MAAMC,GAAAA,CAAIC,MAAcC,MAAAA,EAAW;AAAC,EAAA;AAEpC,EAAA,MAAMC,IAAIF,IAAAA,EAAc;AACtB,IAAA,OAAOG,MAAAA;AACT,EAAA;AAEA,EAAA,MAAMC,IAAIJ,IAAAA,EAAc;AACtB,IAAA,OAAO,KAAA;AACT,EAAA;AAEA,EAAA,MAAMK,OAAOL,IAAAA,EAAc;AACzB,IAAA,OAAO,IAAA;AACT,EAAA;AAEA,EAAA,MAAMM,KAAAA,GAAQ;AAAC,EAAA;AAEf,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,CAAA;AACT,EAAA;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLV,MAAAA,OAAAA,EAAS,IAAA,CAAKA;AAChB,KAAA;AACF,EAAA;AAEAW,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"nullCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class NullCache<T> extends BaseCache<T> {\n enabled = false;\n\n async set(_key: string, _value: T) {}\n\n async get(_key: string) {\n return undefined;\n }\n\n async has(_key: string) {\n return false;\n }\n\n async delete(_key: string) {\n return true;\n }\n\n async clear() {}\n\n async size() {\n return 0;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cache/slidingCache.ts"],"names":["SlidingCacheEntry","Serializable","value","register","destructor","Task","unwrap","createSnapshot","loadSnapshot","snapshot","Object","assign","SlidingCache","BaseCache","provider","input","SlidingTaskMap","size","ttl","get","key","has","clear","delete","set","enabled"],"mappings":";;;;;;;;AAcA,IAAMA,iBAAAA,GAAN,MAAMA,kBAAAA,SAA6BC,6BAAAA,CAAAA;EAdnC;;;;AAeE,EAAA,WAAA,CAA+BC,KAAAA,EAAU;AACvC,IAAA,KAAA,EAAK,EAAA,KADwBA,KAAAA,GAAAA,KAAAA;AAE/B;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEAC,UAAAA,GAAa;AACX,IAAA,IAAI,IAAA,CAAKF,iBAAiBG,qBAAAA,EAAM;AAC9B,MAAA,IAAA,CAAKH,MAAME,UAAAA,EAAU;AACvB;AACF;EAEAE,MAAAA,GAAY;AACV,IAAA,OAAO,IAAA,CAAKJ,KAAAA;AACd;EAEAK,cAAAA,GAAiB;AACf,IAAA,OAAO;AAAEL,MAAAA,KAAAA,EAAO,IAAA,CAAKA;AAAM,KAAA;AAC7B;AAEAM,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF,CAAA;AAEO,MAAMG,qBAAwBC,kBAAAA,CAAAA;EA1CrC;;;AA2CqBC,EAAAA,QAAAA;AAEnB,EAAA,WAAA,CAAYC,KAAAA,EAA0B;AACpC,IAAA,KAAA,EAAK;AACL,IAAA,IAAA,CAAKD,WAAW,IAAIE,+BAAAA,CAA6CD,KAAAA,CAAME,IAAAA,EAAMF,MAAMG,GAAG,CAAA;AACxF;EAEA;AACE,IAAA,IAAA,CAAKf,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMgB,IAAIC,GAAAA,EAAa;AACrB,IAAA,MAAMlB,KAAAA,GAAQ,IAAA,CAAKY,QAAAA,CAASK,GAAAA,CAAIC,GAAAA,CAAAA;AAChC,IAAA,OAAOlB,OAAOI,MAAAA,IAAAA;AAChB;AAEA,EAAA,MAAMe,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASO,GAAAA,CAAID,GAAAA,CAAAA;AAC3B;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKR,SAASQ,KAAAA,EAAK;AACrB;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASS,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B;EAEA,MAAMI,GAAAA,CAAIJ,KAAalB,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKY,SAASU,GAAAA,CAAIJ,GAAAA,EAAK,IAAIpB,iBAAAA,CAAkBE,KAAAA,CAAAA,CAAAA;AAC/C;AAEA,EAAA,MAAMe,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKH,QAAAA,CAASG,IAAAA;AACvB;EAEAV,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLkB,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdX,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF;AAEAN,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"slidingCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { SlidingTaskMap, Task } from \"promise-based-task\";\nimport { BaseCache } from \"@/cache/base.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\n\nexport interface SlidingCacheInput {\n size: number;\n ttl?: number;\n}\n\nclass SlidingCacheEntry<T> extends Serializable {\n constructor(protected readonly value: T) {\n super();\n }\n\n static {\n this.register();\n }\n\n destructor() {\n if (this.value instanceof Task) {\n this.value.destructor();\n }\n }\n\n unwrap(): T {\n return this.value;\n }\n\n createSnapshot() {\n return { value: this.value };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class SlidingCache<T> extends BaseCache<T> {\n protected readonly provider;\n\n constructor(input: SlidingCacheInput) {\n super();\n this.provider = new SlidingTaskMap<string, SlidingCacheEntry<T>>(input.size, input.ttl);\n }\n\n static {\n this.register();\n }\n\n async get(key: string) {\n const value = this.provider.get(key);\n return value?.unwrap?.();\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, new SlidingCacheEntry(value));\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/cache/slidingCache.ts"],"names":["SlidingCacheEntry","Serializable","value","register","destructor","Task","unwrap","createSnapshot","loadSnapshot","snapshot","Object","assign","SlidingCache","BaseCache","provider","input","SlidingTaskMap","size","ttl","get","key","has","clear","delete","set","enabled"],"mappings":";;;;;;;;AAcA,IAAMA,iBAAAA,GAAN,MAAMA,kBAAAA,SAA6BC,6BAAAA,CAAAA;EAdnC;;;;AAeE,EAAA,WAAA,CAA+BC,KAAAA,EAAU;AACvC,IAAA,KAAA,EAAK,EAAA,KADwBA,KAAAA,GAAAA,KAAAA;AAE/B,EAAA;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEAC,UAAAA,GAAa;AACX,IAAA,IAAI,IAAA,CAAKF,iBAAiBG,qBAAAA,EAAM;AAC9B,MAAA,IAAA,CAAKH,MAAME,UAAAA,EAAU;AACvB,IAAA;AACF,EAAA;EAEAE,MAAAA,GAAY;AACV,IAAA,OAAO,IAAA,CAAKJ,KAAAA;AACd,EAAA;EAEAK,cAAAA,GAAiB;AACf,IAAA,OAAO;AAAEL,MAAAA,KAAAA,EAAO,IAAA,CAAKA;AAAM,KAAA;AAC7B,EAAA;AAEAM,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF,CAAA;AAEO,MAAMG,qBAAwBC,kBAAAA,CAAAA;EA1CrC;;;AA2CqBC,EAAAA,QAAAA;AAEnB,EAAA,WAAA,CAAYC,KAAAA,EAA0B;AACpC,IAAA,KAAA,EAAK;AACL,IAAA,IAAA,CAAKD,WAAW,IAAIE,+BAAAA,CAA6CD,KAAAA,CAAME,IAAAA,EAAMF,MAAMG,GAAG,CAAA;AACxF,EAAA;EAEA;AACE,IAAA,IAAA,CAAKf,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMgB,IAAIC,GAAAA,EAAa;AACrB,IAAA,MAAMlB,KAAAA,GAAQ,IAAA,CAAKY,QAAAA,CAASK,GAAAA,CAAIC,GAAAA,CAAAA;AAChC,IAAA,OAAOlB,OAAOI,MAAAA,IAAAA;AAChB,EAAA;AAEA,EAAA,MAAMe,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASO,GAAAA,CAAID,GAAAA,CAAAA;AAC3B,EAAA;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKR,SAASQ,KAAAA,EAAK;AACrB,EAAA;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASS,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B,EAAA;EAEA,MAAMI,GAAAA,CAAIJ,KAAalB,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKY,SAASU,GAAAA,CAAIJ,GAAAA,EAAK,IAAIpB,iBAAAA,CAAkBE,KAAAA,CAAAA,CAAAA;AAC/C,EAAA;AAEA,EAAA,MAAMe,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKH,QAAAA,CAASG,IAAAA;AACvB,EAAA;EAEAV,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLkB,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdX,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF,EAAA;AAEAN,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"slidingCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { SlidingTaskMap, Task } from \"promise-based-task\";\nimport { BaseCache } from \"@/cache/base.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\n\nexport interface SlidingCacheInput {\n size: number;\n ttl?: number;\n}\n\nclass SlidingCacheEntry<T> extends Serializable {\n constructor(protected readonly value: T) {\n super();\n }\n\n static {\n this.register();\n }\n\n destructor() {\n if (this.value instanceof Task) {\n this.value.destructor();\n }\n }\n\n unwrap(): T {\n return this.value;\n }\n\n createSnapshot() {\n return { value: this.value };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class SlidingCache<T> extends BaseCache<T> {\n protected readonly provider;\n\n constructor(input: SlidingCacheInput) {\n super();\n this.provider = new SlidingTaskMap<string, SlidingCacheEntry<T>>(input.size, input.ttl);\n }\n\n static {\n this.register();\n }\n\n async get(key: string) {\n const value = this.provider.get(key);\n return value?.unwrap?.();\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, new SlidingCacheEntry(value));\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cache/slidingCache.ts"],"names":["SlidingCacheEntry","Serializable","value","register","destructor","Task","unwrap","createSnapshot","loadSnapshot","snapshot","Object","assign","SlidingCache","BaseCache","provider","input","SlidingTaskMap","size","ttl","get","key","has","clear","delete","set","enabled"],"mappings":";;;;;;AAcA,IAAMA,iBAAAA,GAAN,MAAMA,kBAAAA,SAA6BC,YAAAA,CAAAA;EAdnC;;;;AAeE,EAAA,WAAA,CAA+BC,KAAAA,EAAU;AACvC,IAAA,KAAA,EAAK,EAAA,KADwBA,KAAAA,GAAAA,KAAAA;AAE/B;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEAC,UAAAA,GAAa;AACX,IAAA,IAAI,IAAA,CAAKF,iBAAiBG,IAAAA,EAAM;AAC9B,MAAA,IAAA,CAAKH,MAAME,UAAAA,EAAU;AACvB;AACF;EAEAE,MAAAA,GAAY;AACV,IAAA,OAAO,IAAA,CAAKJ,KAAAA;AACd;EAEAK,cAAAA,GAAiB;AACf,IAAA,OAAO;AAAEL,MAAAA,KAAAA,EAAO,IAAA,CAAKA;AAAM,KAAA;AAC7B;AAEAM,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF,CAAA;AAEO,MAAMG,qBAAwBC,SAAAA,CAAAA;EA1CrC;;;AA2CqBC,EAAAA,QAAAA;AAEnB,EAAA,WAAA,CAAYC,KAAAA,EAA0B;AACpC,IAAA,KAAA,EAAK;AACL,IAAA,IAAA,CAAKD,WAAW,IAAIE,cAAAA,CAA6CD,KAAAA,CAAME,IAAAA,EAAMF,MAAMG,GAAG,CAAA;AACxF;EAEA;AACE,IAAA,IAAA,CAAKf,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMgB,IAAIC,GAAAA,EAAa;AACrB,IAAA,MAAMlB,KAAAA,GAAQ,IAAA,CAAKY,QAAAA,CAASK,GAAAA,CAAIC,GAAAA,CAAAA;AAChC,IAAA,OAAOlB,OAAOI,MAAAA,IAAAA;AAChB;AAEA,EAAA,MAAMe,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASO,GAAAA,CAAID,GAAAA,CAAAA;AAC3B;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKR,SAASQ,KAAAA,EAAK;AACrB;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASS,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B;EAEA,MAAMI,GAAAA,CAAIJ,KAAalB,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKY,SAASU,GAAAA,CAAIJ,GAAAA,EAAK,IAAIpB,iBAAAA,CAAkBE,KAAAA,CAAAA,CAAAA;AAC/C;AAEA,EAAA,MAAMe,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKH,QAAAA,CAASG,IAAAA;AACvB;EAEAV,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLkB,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdX,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF;AAEAN,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"slidingCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { SlidingTaskMap, Task } from \"promise-based-task\";\nimport { BaseCache } from \"@/cache/base.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\n\nexport interface SlidingCacheInput {\n size: number;\n ttl?: number;\n}\n\nclass SlidingCacheEntry<T> extends Serializable {\n constructor(protected readonly value: T) {\n super();\n }\n\n static {\n this.register();\n }\n\n destructor() {\n if (this.value instanceof Task) {\n this.value.destructor();\n }\n }\n\n unwrap(): T {\n return this.value;\n }\n\n createSnapshot() {\n return { value: this.value };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class SlidingCache<T> extends BaseCache<T> {\n protected readonly provider;\n\n constructor(input: SlidingCacheInput) {\n super();\n this.provider = new SlidingTaskMap<string, SlidingCacheEntry<T>>(input.size, input.ttl);\n }\n\n static {\n this.register();\n }\n\n async get(key: string) {\n const value = this.provider.get(key);\n return value?.unwrap?.();\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, new SlidingCacheEntry(value));\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/cache/slidingCache.ts"],"names":["SlidingCacheEntry","Serializable","value","register","destructor","Task","unwrap","createSnapshot","loadSnapshot","snapshot","Object","assign","SlidingCache","BaseCache","provider","input","SlidingTaskMap","size","ttl","get","key","has","clear","delete","set","enabled"],"mappings":";;;;;;AAcA,IAAMA,iBAAAA,GAAN,MAAMA,kBAAAA,SAA6BC,YAAAA,CAAAA;EAdnC;;;;AAeE,EAAA,WAAA,CAA+BC,KAAAA,EAAU;AACvC,IAAA,KAAA,EAAK,EAAA,KADwBA,KAAAA,GAAAA,KAAAA;AAE/B,EAAA;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEAC,UAAAA,GAAa;AACX,IAAA,IAAI,IAAA,CAAKF,iBAAiBG,IAAAA,EAAM;AAC9B,MAAA,IAAA,CAAKH,MAAME,UAAAA,EAAU;AACvB,IAAA;AACF,EAAA;EAEAE,MAAAA,GAAY;AACV,IAAA,OAAO,IAAA,CAAKJ,KAAAA;AACd,EAAA;EAEAK,cAAAA,GAAiB;AACf,IAAA,OAAO;AAAEL,MAAAA,KAAAA,EAAO,IAAA,CAAKA;AAAM,KAAA;AAC7B,EAAA;AAEAM,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF,CAAA;AAEO,MAAMG,qBAAwBC,SAAAA,CAAAA;EA1CrC;;;AA2CqBC,EAAAA,QAAAA;AAEnB,EAAA,WAAA,CAAYC,KAAAA,EAA0B;AACpC,IAAA,KAAA,EAAK;AACL,IAAA,IAAA,CAAKD,WAAW,IAAIE,cAAAA,CAA6CD,KAAAA,CAAME,IAAAA,EAAMF,MAAMG,GAAG,CAAA;AACxF,EAAA;EAEA;AACE,IAAA,IAAA,CAAKf,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMgB,IAAIC,GAAAA,EAAa;AACrB,IAAA,MAAMlB,KAAAA,GAAQ,IAAA,CAAKY,QAAAA,CAASK,GAAAA,CAAIC,GAAAA,CAAAA;AAChC,IAAA,OAAOlB,OAAOI,MAAAA,IAAAA;AAChB,EAAA;AAEA,EAAA,MAAMe,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASO,GAAAA,CAAID,GAAAA,CAAAA;AAC3B,EAAA;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKR,SAASQ,KAAAA,EAAK;AACrB,EAAA;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKN,QAAAA,CAASS,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B,EAAA;EAEA,MAAMI,GAAAA,CAAIJ,KAAalB,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKY,SAASU,GAAAA,CAAIJ,GAAAA,EAAK,IAAIpB,iBAAAA,CAAkBE,KAAAA,CAAAA,CAAAA;AAC/C,EAAA;AAEA,EAAA,MAAMe,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKH,QAAAA,CAASG,IAAAA;AACvB,EAAA;EAEAV,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLkB,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdX,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF,EAAA;AAEAN,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"slidingCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { SlidingTaskMap, Task } from \"promise-based-task\";\nimport { BaseCache } from \"@/cache/base.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\n\nexport interface SlidingCacheInput {\n size: number;\n ttl?: number;\n}\n\nclass SlidingCacheEntry<T> extends Serializable {\n constructor(protected readonly value: T) {\n super();\n }\n\n static {\n this.register();\n }\n\n destructor() {\n if (this.value instanceof Task) {\n this.value.destructor();\n }\n }\n\n unwrap(): T {\n return this.value;\n }\n\n createSnapshot() {\n return { value: this.value };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n\nexport class SlidingCache<T> extends BaseCache<T> {\n protected readonly provider;\n\n constructor(input: SlidingCacheInput) {\n super();\n this.provider = new SlidingTaskMap<string, SlidingCacheEntry<T>>(input.size, input.ttl);\n }\n\n static {\n this.register();\n }\n\n async get(key: string) {\n const value = this.provider.get(key);\n return value?.unwrap?.();\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, new SlidingCacheEntry(value));\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cache/unconstrainedCache.ts"],"names":["UnconstrainedCache","BaseCache","provider","Map","register","get","key","has","clear","delete","set","value","size","createSnapshot","enabled","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;AAOO,MAAMA,2BAA8BC,kBAAAA,CAAAA;EAP3C;;;AAQqBC,EAAAA,QAAAA,uBAAeC,GAAAA,EAAAA;EAElC;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMC,IAAIC,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASG,GAAAA,CAAIC,GAAAA,CAAAA;AAC3B;AAEA,EAAA,MAAMC,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASK,GAAAA,CAAID,GAAAA,CAAAA;AAC3B;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKN,SAASM,KAAAA,EAAK;AACrB;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASO,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B;EAEA,MAAMI,GAAAA,CAAIJ,KAAaK,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKT,QAAAA,CAASQ,GAAAA,CAAIJ,GAAAA,EAAKK,KAAAA,CAAAA;AACzB;AAEA,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKV,QAAAA,CAASU,IAAAA;AACvB;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLC,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdZ,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF;AAEAa,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"unconstrainedCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class UnconstrainedCache<T> extends BaseCache<T> {\n protected readonly provider = new Map<string, T>();\n\n static {\n this.register();\n }\n\n async get(key: string) {\n return this.provider.get(key);\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, value);\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/cache/unconstrainedCache.ts"],"names":["UnconstrainedCache","BaseCache","provider","Map","register","get","key","has","clear","delete","set","value","size","createSnapshot","enabled","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;AAOO,MAAMA,2BAA8BC,kBAAAA,CAAAA;EAP3C;;;AAQqBC,EAAAA,QAAAA,uBAAeC,GAAAA,EAAAA;EAElC;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMC,IAAIC,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASG,GAAAA,CAAIC,GAAAA,CAAAA;AAC3B,EAAA;AAEA,EAAA,MAAMC,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASK,GAAAA,CAAID,GAAAA,CAAAA;AAC3B,EAAA;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKN,SAASM,KAAAA,EAAK;AACrB,EAAA;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASO,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B,EAAA;EAEA,MAAMI,GAAAA,CAAIJ,KAAaK,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKT,QAAAA,CAASQ,GAAAA,CAAIJ,GAAAA,EAAKK,KAAAA,CAAAA;AACzB,EAAA;AAEA,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKV,QAAAA,CAASU,IAAAA;AACvB,EAAA;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLC,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdZ,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF,EAAA;AAEAa,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"unconstrainedCache.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class UnconstrainedCache<T> extends BaseCache<T> {\n protected readonly provider = new Map<string, T>();\n\n static {\n this.register();\n }\n\n async get(key: string) {\n return this.provider.get(key);\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, value);\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cache/unconstrainedCache.ts"],"names":["UnconstrainedCache","BaseCache","provider","Map","register","get","key","has","clear","delete","set","value","size","createSnapshot","enabled","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;AAOO,MAAMA,2BAA8BC,SAAAA,CAAAA;EAP3C;;;AAQqBC,EAAAA,QAAAA,uBAAeC,GAAAA,EAAAA;EAElC;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMC,IAAIC,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASG,GAAAA,CAAIC,GAAAA,CAAAA;AAC3B;AAEA,EAAA,MAAMC,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASK,GAAAA,CAAID,GAAAA,CAAAA;AAC3B;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKN,SAASM,KAAAA,EAAK;AACrB;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASO,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B;EAEA,MAAMI,GAAAA,CAAIJ,KAAaK,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKT,QAAAA,CAASQ,GAAAA,CAAIJ,GAAAA,EAAKK,KAAAA,CAAAA;AACzB;AAEA,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKV,QAAAA,CAASU,IAAAA;AACvB;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLC,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdZ,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF;AAEAa,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"unconstrainedCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class UnconstrainedCache<T> extends BaseCache<T> {\n protected readonly provider = new Map<string, T>();\n\n static {\n this.register();\n }\n\n async get(key: string) {\n return this.provider.get(key);\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, value);\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/cache/unconstrainedCache.ts"],"names":["UnconstrainedCache","BaseCache","provider","Map","register","get","key","has","clear","delete","set","value","size","createSnapshot","enabled","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;AAOO,MAAMA,2BAA8BC,SAAAA,CAAAA;EAP3C;;;AAQqBC,EAAAA,QAAAA,uBAAeC,GAAAA,EAAAA;EAElC;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAMC,IAAIC,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASG,GAAAA,CAAIC,GAAAA,CAAAA;AAC3B,EAAA;AAEA,EAAA,MAAMC,IAAID,GAAAA,EAAa;AACrB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASK,GAAAA,CAAID,GAAAA,CAAAA;AAC3B,EAAA;AAEA,EAAA,MAAME,KAAAA,GAAQ;AACZ,IAAA,IAAA,CAAKN,SAASM,KAAAA,EAAK;AACrB,EAAA;AAEA,EAAA,MAAMC,OAAOH,GAAAA,EAAa;AACxB,IAAA,OAAO,IAAA,CAAKJ,QAAAA,CAASO,MAAAA,CAAOH,GAAAA,CAAAA;AAC9B,EAAA;EAEA,MAAMI,GAAAA,CAAIJ,KAAaK,KAAAA,EAAU;AAC/B,IAAA,IAAA,CAAKT,QAAAA,CAASQ,GAAAA,CAAIJ,GAAAA,EAAKK,KAAAA,CAAAA;AACzB,EAAA;AAEA,EAAA,MAAMC,IAAAA,GAAO;AACX,IAAA,OAAO,KAAKV,QAAAA,CAASU,IAAAA;AACvB,EAAA;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLC,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdZ,MAAAA,QAAAA,EAAU,IAAA,CAAKA;AACjB,KAAA;AACF,EAAA;AAEAa,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"unconstrainedCache.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseCache } from \"@/cache/base.js\";\n\nexport class UnconstrainedCache<T> extends BaseCache<T> {\n protected readonly provider = new Map<string, T>();\n\n static {\n this.register();\n }\n\n async get(key: string) {\n return this.provider.get(key);\n }\n\n async has(key: string) {\n return this.provider.has(key);\n }\n\n async clear() {\n this.provider.clear();\n }\n\n async delete(key: string) {\n return this.provider.delete(key);\n }\n\n async set(key: string, value: T) {\n this.provider.set(key, value);\n }\n\n async size() {\n return this.provider.size;\n }\n\n createSnapshot() {\n return {\n enabled: this.enabled,\n provider: this.provider,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Message, AssistantMessage, MessageContentPart } from './backend/message.cjs';
|
|
2
2
|
import { MiddlewareType, Run, GetRunContext } from './context.cjs';
|
|
3
3
|
import { Serializable } from './internals/serializable.cjs';
|
|
4
|
-
import {
|
|
4
|
+
import { E as Emitter, C as Callback } from './emitter-D4OcelZ9.cjs';
|
|
5
5
|
import { FrameworkError } from './errors.cjs';
|
|
6
6
|
import { Task } from 'promise-based-task';
|
|
7
7
|
import { BaseCache } from './cache/base.cjs';
|
|
@@ -21,7 +21,7 @@ import { ToolCallPart } from 'ai';
|
|
|
21
21
|
|
|
22
22
|
type FullModelName = `${ProviderName}:${string}`;
|
|
23
23
|
declare function parseModel(name: string): {
|
|
24
|
-
providerId: "openai" | "azure" | "watsonx" | "ollama" | "google-vertex" | "amazon-bedrock" | "groq" | "xai" | "dummy" | "anthropic";
|
|
24
|
+
providerId: "openai" | "azure" | "watsonx" | "ollama" | "google-vertex" | "amazon-bedrock" | "groq" | "xai" | "dummy" | "anthropic" | "minimax";
|
|
25
25
|
modelId: string;
|
|
26
26
|
providerDef: ProviderDef;
|
|
27
27
|
};
|
|
@@ -169,4 +169,4 @@ declare class ChatModelOutput extends Serializable {
|
|
|
169
169
|
loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void;
|
|
170
170
|
}
|
|
171
171
|
|
|
172
|
-
export { type
|
|
172
|
+
export { type ChatConfig as C, type FullModelName as F, ChatModel as a, type ChatModelCache as b, type ChatModelEmitter as c, type ChatModelEvents as d, type ChatModelFinishReason as e, type ChatModelInput as f, type ChatModelObjectInput as g, type ChatModelObjectOutput as h, ChatModelOutput as i, type ChatModelParameters as j, type ChatModelToolChoice as k, type ChatModelToolChoiceSupport as l, type ChatModelUsage as m, type ConfigFn as n, filterToolsByToolChoice as o, generateToolUnionSchema as p, loadModel as q, parseModel as r };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Message, AssistantMessage, MessageContentPart } from './backend/message.js';
|
|
2
2
|
import { MiddlewareType, Run, GetRunContext } from './context.js';
|
|
3
3
|
import { Serializable } from './internals/serializable.js';
|
|
4
|
-
import {
|
|
4
|
+
import { E as Emitter, C as Callback } from './emitter-kHxkUxco.js';
|
|
5
5
|
import { FrameworkError } from './errors.js';
|
|
6
6
|
import { Task } from 'promise-based-task';
|
|
7
7
|
import { BaseCache } from './cache/base.js';
|
|
@@ -21,7 +21,7 @@ import { ToolCallPart } from 'ai';
|
|
|
21
21
|
|
|
22
22
|
type FullModelName = `${ProviderName}:${string}`;
|
|
23
23
|
declare function parseModel(name: string): {
|
|
24
|
-
providerId: "openai" | "azure" | "watsonx" | "ollama" | "google-vertex" | "amazon-bedrock" | "groq" | "xai" | "dummy" | "anthropic";
|
|
24
|
+
providerId: "openai" | "azure" | "watsonx" | "ollama" | "google-vertex" | "amazon-bedrock" | "groq" | "xai" | "dummy" | "anthropic" | "minimax";
|
|
25
25
|
modelId: string;
|
|
26
26
|
providerDef: ProviderDef;
|
|
27
27
|
};
|
|
@@ -169,4 +169,4 @@ declare class ChatModelOutput extends Serializable {
|
|
|
169
169
|
loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void;
|
|
170
170
|
}
|
|
171
171
|
|
|
172
|
-
export { type
|
|
172
|
+
export { type ChatConfig as C, type FullModelName as F, ChatModel as a, type ChatModelCache as b, type ChatModelEmitter as c, type ChatModelEvents as d, type ChatModelFinishReason as e, type ChatModelInput as f, type ChatModelObjectInput as g, type ChatModelObjectOutput as h, ChatModelOutput as i, type ChatModelParameters as j, type ChatModelToolChoice as k, type ChatModelToolChoiceSupport as l, type ChatModelUsage as m, type ConfigFn as n, filterToolsByToolChoice as o, generateToolUnionSchema as p, loadModel as q, parseModel as r };
|
package/dist/context.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/context.ts"],"names":["Middleware","Run","LazyPromise","tasks","handler","runContext","Symbol","toStringTag","observe","fn","push","emitter","context","value","Object","assign","middleware","fns","isFunction","bind","before","executeSequentially","splice","Infinity","asyncIterator","response","then","isAsyncIterable","Error","RunContext","Serializable","AsyncLocalStorage","controller","runId","groupId","parentId","runParams","createdAt","signal","abort","reason","instance","input","parent","Date","params","createRandomHash","omit","AbortController","registerSignals","child","trace","id","parentRunId","pipe","destroy","FrameworkError","enter","getStore","namespace","creator","internal","finishEvent","startEvent","output","undefined","emit","result","Promise","race","run","_","reject","addEventListener","setTimeout","_e","e","ensure","register","createSnapshot","shallowCopy","loadSnapshot","snapshot"],"mappings":"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","file":"context.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { isFunction, omit } from \"remeda\";\nimport { Callback, InferCallbackValue } from \"@/emitter/types.js\";\nimport { registerSignals } from \"@/internals/helpers/cancellation.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { executeSequentially, LazyPromise } from \"@/internals/helpers/promise.js\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { isAsyncIterable } from \"@/internals/helpers/stream.js\";\n\nexport interface RunInstance<T = any> {\n emitter: Emitter<T>;\n}\n\nexport interface RunContextCallbacks {\n start: Callback<{ input: any; output: any }>;\n success: Callback<unknown>; // TODO: should be updated to Callback<{ input: any; output: any }>\n error: Callback<Error>;\n finish: Callback<{ input: any; output?: any; error?: FrameworkError }>;\n}\n\nexport abstract class Middleware<T extends RunInstance = any> {\n abstract bind(ctx: RunContext<T>): void;\n}\n\nexport type GetRunContext<T, P = any> = T extends RunInstance ? RunContext<T, P> : never;\nexport type GetRunInstance<T> = T extends RunInstance<infer P> ? P : never;\nexport type MiddlewareFn<T> = (context: GetRunContext<T>) => void;\nexport type MiddlewareType<T extends RunInstance> = Middleware<T> | MiddlewareFn<T>;\n\nexport class Run<R, I extends RunInstance, P = any> extends LazyPromise<R> {\n protected readonly tasks: (() => Promise<void>)[] = [];\n\n constructor(\n handler: () => Promise<R>,\n protected readonly runContext: GetRunContext<I, P>,\n ) {\n super(handler);\n }\n\n readonly [Symbol.toStringTag] = \"Promise\";\n\n observe(fn: (emitter: Emitter<GetRunInstance<I>>) => void) {\n this.tasks.push(async () => fn(this.runContext.emitter));\n return this;\n }\n\n context(value: object) {\n this.tasks.push(async () => {\n Object.assign(this.runContext.context, value);\n Object.assign(this.runContext.emitter.context, value);\n });\n return this;\n }\n\n middleware(...fns: MiddlewareType<I>[]) {\n for (const fn of fns) {\n this.tasks.push(async () =>\n isFunction(fn) ? fn(this.runContext) : fn.bind(this.runContext),\n );\n }\n return this;\n }\n\n protected async before(): Promise<void> {\n await super.before();\n await executeSequentially(this.tasks.splice(0, Infinity));\n }\n\n // @ts-expect-error too complex\n async *[Symbol.asyncIterator](): R extends AsyncIterable<infer X> ? AsyncIterator<X> : never {\n const response = await this.then();\n if (isAsyncIterable(response)) {\n yield* response;\n } else {\n throw new Error(\"Result is not iterable!\");\n }\n }\n}\n\nexport interface RunContextInput<P> {\n params: P;\n signal?: AbortSignal;\n}\n\nexport class RunContext<T extends RunInstance, P = any> extends Serializable {\n static #storage = new AsyncLocalStorage<RunContext<any>>();\n\n protected readonly controller: AbortController;\n public readonly runId: string;\n public readonly groupId: string;\n public readonly parentId?: string;\n public readonly emitter;\n public readonly context: object;\n public runParams: P;\n public readonly createdAt: Date;\n\n get signal() {\n return this.controller.signal;\n }\n\n abort(reason?: Error) {\n this.controller.abort(reason);\n }\n\n constructor(\n public readonly instance: T,\n protected readonly input: RunContextInput<P>,\n parent?: RunContext<any>,\n ) {\n super();\n this.createdAt = new Date();\n this.runParams = input.params;\n this.runId = createRandomHash(5);\n this.parentId = parent?.runId;\n this.groupId = parent?.groupId ?? createRandomHash();\n this.context = omit((parent?.context ?? {}) as any, [\"id\", \"parentId\"]);\n\n this.controller = new AbortController();\n registerSignals(this.controller, [input.signal, parent?.signal]);\n\n this.emitter = instance.emitter.child<GetRunInstance<T>>({\n context: this.context,\n trace: {\n id: this.groupId,\n runId: this.runId,\n parentRunId: parent?.runId,\n },\n });\n if (parent) {\n this.emitter.pipe(parent.emitter);\n }\n }\n\n destroy() {\n this.emitter.destroy();\n this.controller.abort(new FrameworkError(\"Context destroyed.\"));\n }\n\n static enter<C2 extends RunInstance, R2, P2>(\n instance: C2,\n input: RunContextInput<P2>,\n fn: (context: GetRunContext<C2, P2>) => Promise<R2>,\n ) {\n const parent = RunContext.#storage.getStore();\n const runContext = new RunContext(instance, input, parent) as GetRunContext<C2, P2>;\n\n return new Run(async () => {\n const emitter = runContext.emitter.child<RunContextCallbacks>({\n namespace: [\"run\"],\n creator: runContext,\n context: { internal: true },\n });\n\n const finishEvent = {} as InferCallbackValue<RunContextCallbacks[\"finish\"]>;\n try {\n const startEvent: InferCallbackValue<RunContextCallbacks[\"start\"]> = {\n input: runContext.runParams,\n output: undefined,\n };\n await emitter.emit(\"start\", startEvent);\n\n // Copy back any modifications made by middleware to run_params\n runContext.runParams = startEvent.input;\n finishEvent.input = startEvent.input;\n\n const result: R2 = await Promise.race([\n RunContext.#storage.run(\n runContext,\n startEvent.output === undefined ? fn : async () => startEvent.output,\n runContext,\n ),\n new Promise<never>((_, reject) =>\n runContext.signal.addEventListener(\"abort\", () =>\n setTimeout(() => reject(runContext.signal.reason), 0),\n ),\n ),\n ]);\n finishEvent.output = result;\n await emitter.emit(\"success\", result);\n return result;\n } catch (_e) {\n const e = FrameworkError.ensure(_e);\n finishEvent.output = e;\n await emitter.emit(\"error\", e);\n throw e;\n } finally {\n await emitter.emit(\"finish\", finishEvent);\n runContext.destroy();\n }\n }, runContext);\n }\n\n static {\n this.register();\n }\n\n createSnapshot() {\n return {\n controller: this.controller,\n runId: this.runId,\n groupId: this.groupId,\n parentId: this.parentId,\n emitter: this.emitter,\n context: shallowCopy(this.context),\n runParams: shallowCopy(this.runParams),\n createdAt: new Date(this.createdAt),\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/context.ts"],"names":["Middleware","Run","LazyPromise","tasks","handler","runContext","Symbol","toStringTag","observe","fn","push","emitter","context","value","Object","assign","middleware","fns","isFunction","bind","before","executeSequentially","splice","Infinity","asyncIterator","response","then","isAsyncIterable","Error","RunContext","Serializable","AsyncLocalStorage","controller","runId","groupId","parentId","runParams","createdAt","signal","abort","reason","instance","input","parent","Date","params","createRandomHash","omit","AbortController","registerSignals","child","trace","id","parentRunId","pipe","destroy","FrameworkError","enter","getStore","namespace","creator","internal","finishEvent","startEvent","output","undefined","emit","result","Promise","race","run","_","reject","addEventListener","setTimeout","_e","e","ensure","register","createSnapshot","shallowCopy","loadSnapshot","snapshot"],"mappings":";;;;;;;;;;;;;;AA4BO,MAAeA,UAAAA,CAAAA;EA5BtB;;;AA8BA;AAOO,MAAMC,YAA+CC,uBAAAA,CAAAA;EArC5D;;;;AAsCqBC,EAAAA,KAAAA,GAAiC,EAAA;AAEpD,EAAA,WAAA,CACEC,SACmBC,UAAAA,EACnB;AACA,IAAA,KAAA,CAAMD,OAAAA,CAAAA,EAAAA,IAAAA,CAFaC,UAAAA,GAAAA,UAAAA;AAGrB,EAAA;EAES,CAACC,MAAAA,CAAOC,WAAW,IAAI,SAAA;AAEhCC,EAAAA,OAAAA,CAAQC,EAAAA,EAAmD;AACzD,IAAA,IAAA,CAAKN,MAAMO,IAAAA,CAAK,YAAYD,GAAG,IAAA,CAAKJ,UAAAA,CAAWM,OAAO,CAAA,CAAA;AACtD,IAAA,OAAO,IAAA;AACT,EAAA;AAEAC,EAAAA,OAAAA,CAAQC,KAAAA,EAAe;AACrB,IAAA,IAAA,CAAKV,KAAAA,CAAMO,KAAK,YAAA;AACdI,MAAAA,MAAAA,CAAOC,MAAAA,CAAO,IAAA,CAAKV,UAAAA,CAAWO,OAAAA,EAASC,KAAAA,CAAAA;AACvCC,MAAAA,MAAAA,CAAOC,MAAAA,CAAO,IAAA,CAAKV,UAAAA,CAAWM,OAAAA,CAAQC,SAASC,KAAAA,CAAAA;IACjD,CAAA,CAAA;AACA,IAAA,OAAO,IAAA;AACT,EAAA;AAEAG,EAAAA,UAAAA,CAAAA,GAAcC,GAAAA,EAA0B;AACtC,IAAA,KAAA,MAAWR,MAAMQ,GAAAA,EAAK;AACpB,MAAA,IAAA,CAAKd,KAAAA,CAAMO,IAAAA,CAAK,YACdQ,iBAAAA,CAAWT,EAAAA,CAAAA,GAAMA,EAAAA,CAAG,IAAA,CAAKJ,UAAU,CAAA,GAAII,EAAAA,CAAGU,IAAAA,CAAK,IAAA,CAAKd,UAAU,CAAA,CAAA;AAElE,IAAA;AACA,IAAA,OAAO,IAAA;AACT,EAAA;AAEA,EAAA,MAAgBe,MAAAA,GAAwB;AACtC,IAAA,MAAM,MAAMA,MAAAA,EAAAA;AACZ,IAAA,MAAMC,gCAAoB,IAAA,CAAKlB,KAAAA,CAAMmB,MAAAA,CAAO,CAAA,EAAGC,QAAAA,CAAAA,CAAAA;AACjD,EAAA;;EAGA,QAAQjB,MAAAA,CAAOkB,aAAa,CAAA,GAAiE;AAC3F,IAAA,MAAMC,QAAAA,GAAW,MAAM,IAAA,CAAKC,IAAAA,EAAI;AAChC,IAAA,IAAIC,0BAAAA,CAAgBF,QAAAA,CAAAA,EAAW;AAC7B,MAAA,OAAOA,QAAAA;IACT,CAAA,MAAO;AACL,MAAA,MAAM,IAAIG,MAAM,yBAAA,CAAA;AAClB,IAAA;AACF,EAAA;AACF;AAOO,MAAMC,mBAAmDC,6BAAAA,CAAAA;EA5FhE;;;;;EA6FE,OAAO,QAAA,GAAW,IAAIC,kCAAAA,EAAAA;AAEHC,EAAAA,UAAAA;AACHC,EAAAA,KAAAA;AACAC,EAAAA,OAAAA;AACAC,EAAAA,QAAAA;AACAxB,EAAAA,OAAAA;AACAC,EAAAA,OAAAA;AACTwB,EAAAA,SAAAA;AACSC,EAAAA,SAAAA;AAEhB,EAAA,IAAIC,MAAAA,GAAS;AACX,IAAA,OAAO,KAAKN,UAAAA,CAAWM,MAAAA;AACzB,EAAA;AAEAC,EAAAA,KAAAA,CAAMC,MAAAA,EAAgB;AACpB,IAAA,IAAA,CAAKR,UAAAA,CAAWO,MAAMC,MAAAA,CAAAA;AACxB,EAAA;EAEA,WAAA,CACkBC,QAAAA,EACGC,OACnBC,MAAAA,EACA;AACA,IAAA,KAAA,EAAK,EAAA,IAAA,CAJWF,QAAAA,GAAAA,QAAAA,EAAAA,KACGC,KAAAA,GAAAA,KAAAA;AAInB,IAAA,IAAA,CAAKL,SAAAA,uBAAgBO,IAAAA,EAAAA;AACrB,IAAA,IAAA,CAAKR,YAAYM,KAAAA,CAAMG,MAAAA;AACvB,IAAA,IAAA,CAAKZ,KAAAA,GAAQa,0BAAiB,CAAA,CAAA;AAC9B,IAAA,IAAA,CAAKX,WAAWQ,MAAAA,EAAQV,KAAAA;AACxB,IAAA,IAAA,CAAKC,OAAAA,GAAUS,MAAAA,EAAQT,OAAAA,IAAWY,yBAAAA,EAAAA;AAClC,IAAA,IAAA,CAAKlC,OAAAA,GAAUmC,WAAAA,CAAMJ,MAAAA,EAAQ/B,OAAAA,IAAW,EAAC,EAAW;AAAC,MAAA,IAAA;AAAM,MAAA;AAAW,KAAA,CAAA;AAEtE,IAAA,IAAA,CAAKoB,UAAAA,GAAa,IAAIgB,eAAAA,EAAAA;AACtBC,IAAAA,gCAAAA,CAAgB,KAAKjB,UAAAA,EAAY;MAACU,KAAAA,CAAMJ,MAAAA;MAAQK,MAAAA,EAAQL;AAAO,KAAA,CAAA;AAE/D,IAAA,IAAA,CAAK3B,OAAAA,GAAU8B,QAAAA,CAAS9B,OAAAA,CAAQuC,KAAAA,CAAyB;AACvDtC,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;MACduC,KAAAA,EAAO;AACLC,QAAAA,EAAAA,EAAI,IAAA,CAAKlB,OAAAA;AACTD,QAAAA,KAAAA,EAAO,IAAA,CAAKA,KAAAA;AACZoB,QAAAA,WAAAA,EAAaV,MAAAA,EAAQV;AACvB;KACF,CAAA;AACA,IAAA,IAAIU,MAAAA,EAAQ;AACV,MAAA,IAAA,CAAKhC,OAAAA,CAAQ2C,IAAAA,CAAKX,MAAAA,CAAOhC,OAAO,CAAA;AAClC,IAAA;AACF,EAAA;EAEA4C,OAAAA,GAAU;AACR,IAAA,IAAA,CAAK5C,QAAQ4C,OAAAA,EAAO;AACpB,IAAA,IAAA,CAAKvB,UAAAA,CAAWO,KAAAA,CAAM,IAAIiB,yBAAAA,CAAe,oBAAA,CAAA,CAAA;AAC3C,EAAA;EAEA,OAAOC,KAAAA,CACLhB,QAAAA,EACAC,KAAAA,EACAjC,EAAAA,EACA;AACA,IAAA,MAAMkC,MAAAA,GAASd,UAAAA,CAAW,QAAA,CAAS6B,QAAAA,EAAQ;AAC3C,IAAA,MAAMrD,UAAAA,GAAa,IAAIwB,UAAAA,CAAWY,QAAAA,EAAUC,OAAOC,MAAAA,CAAAA;AAEnD,IAAA,OAAO,IAAI1C,IAAI,YAAA;AACb,MAAA,MAAMU,OAAAA,GAAUN,UAAAA,CAAWM,OAAAA,CAAQuC,KAAAA,CAA2B;QAC5DS,SAAAA,EAAW;AAAC,UAAA;;QACZC,OAAAA,EAASvD,UAAAA;QACTO,OAAAA,EAAS;UAAEiD,QAAAA,EAAU;AAAK;OAC5B,CAAA;AAEA,MAAA,MAAMC,cAAc,EAAC;AACrB,MAAA,IAAI;AACF,QAAA,MAAMC,UAAAA,GAA+D;AACnErB,UAAAA,KAAAA,EAAOrC,UAAAA,CAAW+B,SAAAA;UAClB4B,MAAAA,EAAQC,KAAAA;AACV,SAAA;AACA,QAAA,MAAMtD,OAAAA,CAAQuD,IAAAA,CAAK,OAAA,EAASH,UAAAA,CAAAA;AAG5B1D,QAAAA,UAAAA,CAAW+B,YAAY2B,UAAAA,CAAWrB,KAAAA;AAClCoB,QAAAA,WAAAA,CAAYpB,QAAQqB,UAAAA,CAAWrB,KAAAA;AAE/B,QAAA,MAAMyB,MAAAA,GAAa,MAAMC,OAAAA,CAAQC,IAAAA,CAAK;UACpCxC,UAAAA,CAAW,QAAA,CAASyC,GAAAA,CAClBjE,UAAAA,EACA0D,UAAAA,CAAWC,MAAAA,KAAWC,SAAYxD,EAAAA,GAAK,YAAYsD,UAAAA,CAAWC,MAAAA,EAC9D3D,UAAAA,CAAAA;AAEF,UAAA,IAAI+D,QAAe,CAACG,CAAAA,EAAGC,WACrBnE,UAAAA,CAAWiC,MAAAA,CAAOmC,iBAAiB,OAAA,EAAS,MAC1CC,UAAAA,CAAW,MAAMF,OAAOnE,UAAAA,CAAWiC,MAAAA,CAAOE,MAAM,CAAA,EAAG,CAAA,CAAA,CAAA;AAGxD,SAAA,CAAA;AACDsB,QAAAA,WAAAA,CAAYE,MAAAA,GAASG,MAAAA;AACrB,QAAA,MAAMxD,OAAAA,CAAQuD,IAAAA,CAAK,SAAA,EAAWC,MAAAA,CAAAA;AAC9B,QAAA,OAAOA,MAAAA;AACT,MAAA,CAAA,CAAA,OAASQ,EAAAA,EAAI;AACX,QAAA,MAAMC,CAAAA,GAAIpB,yBAAAA,CAAeqB,MAAAA,CAAOF,EAAAA,CAAAA;AAChCb,QAAAA,WAAAA,CAAYE,MAAAA,GAASY,CAAAA;AACrB,QAAA,MAAMjE,OAAAA,CAAQuD,IAAAA,CAAK,OAAA,EAASU,CAAAA,CAAAA;AAC5B,QAAA,MAAMA,CAAAA;MACR,CAAA,SAAA;AACE,QAAA,MAAMjE,OAAAA,CAAQuD,IAAAA,CAAK,QAAA,EAAUJ,WAAAA,CAAAA;AAC7BzD,QAAAA,UAAAA,CAAWkD,OAAAA,EAAO;AACpB,MAAA;AACF,IAAA,CAAA,EAAGlD,UAAAA,CAAAA;AACL,EAAA;EAEA;AACE,IAAA,IAAA,CAAKyE,QAAAA,EAAQ;AACf;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACL/C,MAAAA,UAAAA,EAAY,IAAA,CAAKA,UAAAA;AACjBC,MAAAA,KAAAA,EAAO,IAAA,CAAKA,KAAAA;AACZC,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdC,MAAAA,QAAAA,EAAU,IAAA,CAAKA,QAAAA;AACfxB,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;MACdC,OAAAA,EAASoE,qBAAAA,CAAY,KAAKpE,OAAO,CAAA;MACjCwB,SAAAA,EAAW4C,qBAAAA,CAAY,KAAK5C,SAAS,CAAA;MACrCC,SAAAA,EAAW,IAAIO,IAAAA,CAAK,IAAA,CAAKP,SAAS;AACpC,KAAA;AACF,EAAA;AAEA4C,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DpE,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMmE,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"context.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { createRandomHash } from \"@/internals/helpers/hash.js\";\nimport { isFunction, omit } from \"remeda\";\nimport { Callback, InferCallbackValue } from \"@/emitter/types.js\";\nimport { registerSignals } from \"@/internals/helpers/cancellation.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { executeSequentially, LazyPromise } from \"@/internals/helpers/promise.js\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { isAsyncIterable } from \"@/internals/helpers/stream.js\";\n\nexport interface RunInstance<T = any> {\n emitter: Emitter<T>;\n}\n\nexport interface RunContextCallbacks {\n start: Callback<{ input: any; output: any }>;\n success: Callback<unknown>; // TODO: should be updated to Callback<{ input: any; output: any }>\n error: Callback<Error>;\n finish: Callback<{ input: any; output?: any; error?: FrameworkError }>;\n}\n\nexport abstract class Middleware<T extends RunInstance = any> {\n abstract bind(ctx: RunContext<T>): void;\n}\n\nexport type GetRunContext<T, P = any> = T extends RunInstance ? RunContext<T, P> : never;\nexport type GetRunInstance<T> = T extends RunInstance<infer P> ? P : never;\nexport type MiddlewareFn<T> = (context: GetRunContext<T>) => void;\nexport type MiddlewareType<T extends RunInstance> = Middleware<T> | MiddlewareFn<T>;\n\nexport class Run<R, I extends RunInstance, P = any> extends LazyPromise<R> {\n protected readonly tasks: (() => Promise<void>)[] = [];\n\n constructor(\n handler: () => Promise<R>,\n protected readonly runContext: GetRunContext<I, P>,\n ) {\n super(handler);\n }\n\n readonly [Symbol.toStringTag] = \"Promise\";\n\n observe(fn: (emitter: Emitter<GetRunInstance<I>>) => void) {\n this.tasks.push(async () => fn(this.runContext.emitter));\n return this;\n }\n\n context(value: object) {\n this.tasks.push(async () => {\n Object.assign(this.runContext.context, value);\n Object.assign(this.runContext.emitter.context, value);\n });\n return this;\n }\n\n middleware(...fns: MiddlewareType<I>[]) {\n for (const fn of fns) {\n this.tasks.push(async () =>\n isFunction(fn) ? fn(this.runContext) : fn.bind(this.runContext),\n );\n }\n return this;\n }\n\n protected async before(): Promise<void> {\n await super.before();\n await executeSequentially(this.tasks.splice(0, Infinity));\n }\n\n // @ts-expect-error too complex\n async *[Symbol.asyncIterator](): R extends AsyncIterable<infer X> ? AsyncIterator<X> : never {\n const response = await this.then();\n if (isAsyncIterable(response)) {\n yield* response;\n } else {\n throw new Error(\"Result is not iterable!\");\n }\n }\n}\n\nexport interface RunContextInput<P> {\n params: P;\n signal?: AbortSignal;\n}\n\nexport class RunContext<T extends RunInstance, P = any> extends Serializable {\n static #storage = new AsyncLocalStorage<RunContext<any>>();\n\n protected readonly controller: AbortController;\n public readonly runId: string;\n public readonly groupId: string;\n public readonly parentId?: string;\n public readonly emitter;\n public readonly context: object;\n public runParams: P;\n public readonly createdAt: Date;\n\n get signal() {\n return this.controller.signal;\n }\n\n abort(reason?: Error) {\n this.controller.abort(reason);\n }\n\n constructor(\n public readonly instance: T,\n protected readonly input: RunContextInput<P>,\n parent?: RunContext<any>,\n ) {\n super();\n this.createdAt = new Date();\n this.runParams = input.params;\n this.runId = createRandomHash(5);\n this.parentId = parent?.runId;\n this.groupId = parent?.groupId ?? createRandomHash();\n this.context = omit((parent?.context ?? {}) as any, [\"id\", \"parentId\"]);\n\n this.controller = new AbortController();\n registerSignals(this.controller, [input.signal, parent?.signal]);\n\n this.emitter = instance.emitter.child<GetRunInstance<T>>({\n context: this.context,\n trace: {\n id: this.groupId,\n runId: this.runId,\n parentRunId: parent?.runId,\n },\n });\n if (parent) {\n this.emitter.pipe(parent.emitter);\n }\n }\n\n destroy() {\n this.emitter.destroy();\n this.controller.abort(new FrameworkError(\"Context destroyed.\"));\n }\n\n static enter<C2 extends RunInstance, R2, P2>(\n instance: C2,\n input: RunContextInput<P2>,\n fn: (context: GetRunContext<C2, P2>) => Promise<R2>,\n ) {\n const parent = RunContext.#storage.getStore();\n const runContext = new RunContext(instance, input, parent) as GetRunContext<C2, P2>;\n\n return new Run(async () => {\n const emitter = runContext.emitter.child<RunContextCallbacks>({\n namespace: [\"run\"],\n creator: runContext,\n context: { internal: true },\n });\n\n const finishEvent = {} as InferCallbackValue<RunContextCallbacks[\"finish\"]>;\n try {\n const startEvent: InferCallbackValue<RunContextCallbacks[\"start\"]> = {\n input: runContext.runParams,\n output: undefined,\n };\n await emitter.emit(\"start\", startEvent);\n\n // Copy back any modifications made by middleware to run_params\n runContext.runParams = startEvent.input;\n finishEvent.input = startEvent.input;\n\n const result: R2 = await Promise.race([\n RunContext.#storage.run(\n runContext,\n startEvent.output === undefined ? fn : async () => startEvent.output,\n runContext,\n ),\n new Promise<never>((_, reject) =>\n runContext.signal.addEventListener(\"abort\", () =>\n setTimeout(() => reject(runContext.signal.reason), 0),\n ),\n ),\n ]);\n finishEvent.output = result;\n await emitter.emit(\"success\", result);\n return result;\n } catch (_e) {\n const e = FrameworkError.ensure(_e);\n finishEvent.output = e;\n await emitter.emit(\"error\", e);\n throw e;\n } finally {\n await emitter.emit(\"finish\", finishEvent);\n runContext.destroy();\n }\n }, runContext);\n }\n\n static {\n this.register();\n }\n\n createSnapshot() {\n return {\n controller: this.controller,\n runId: this.runId,\n groupId: this.groupId,\n parentId: this.parentId,\n emitter: this.emitter,\n context: shallowCopy(this.context),\n runParams: shallowCopy(this.runParams),\n createdAt: new Date(this.createdAt),\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
|
package/dist/context.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as Emitter, C as Callback } from './emitter-
|
|
1
|
+
import { E as Emitter, C as Callback } from './emitter-D4OcelZ9.cjs';
|
|
2
2
|
import { Serializable } from './internals/serializable.cjs';
|
|
3
3
|
import { LazyPromise } from './internals/helpers/promise.cjs';
|
|
4
4
|
import { FrameworkError } from './errors.cjs';
|
package/dist/context.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as Emitter, C as Callback } from './emitter-
|
|
1
|
+
import { E as Emitter, C as Callback } from './emitter-kHxkUxco.js';
|
|
2
2
|
import { Serializable } from './internals/serializable.js';
|
|
3
3
|
import { LazyPromise } from './internals/helpers/promise.js';
|
|
4
4
|
import { FrameworkError } from './errors.js';
|