beeai-framework 0.1.28 → 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 +3 -3
- package/dist/adapters/anthropic/backend/chat.d.ts +3 -3
- 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-BAVf6-xf.d.ts → agent-s3uhvAba.d.ts} +5 -5
- package/dist/{agent-DHO-oJQf.d.cts → agent-zfT__iq9.d.cts} +5 -5
- 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.d.cts +1 -1
- package/dist/agents/react/prompts.d.ts +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.d.cts +1 -1
- package/dist/agents/react/runners/deep-think/prompts.d.ts +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 +5 -5
- package/dist/agents/react/runners/deep-think/runner.d.ts +5 -5
- 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 +5 -5
- package/dist/agents/react/runners/default/runner.d.ts +5 -5
- 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.d.cts +1 -1
- package/dist/agents/react/runners/granite/prompts.d.ts +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 +5 -5
- package/dist/agents/react/runners/granite/runner.d.ts +5 -5
- 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 +2 -2
- package/dist/agents/requirement/prompts.d.ts +2 -2
- 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-BfhNzUYf.d.ts → base-BjzyQ8k6.d.ts} +2 -2
- package/dist/{base-BqzN2QwB.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-DaqV3woF.d.cts → chat-C20nYj46.d.cts} +3 -3
- package/dist/{chat-DTxmaKP0.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-UkIkNrek.d.cts → emitter-D4OcelZ9.d.cts} +2 -2
- package/dist/{emitter-CL56qab4.d.ts → emitter-kHxkUxco.d.ts} +2 -2
- 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 +3 -3
- package/dist/tools/database/milvus.d.ts +3 -3
- 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-YoNQSxQH.d.cts → types-BNsa3W7Z.d.cts} +4 -4
- package/dist/{types-YT-WdK3m.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 +38 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/serializer/utils.ts"],"names":["SerializerSelfRefIdentifier","SerializerRefIdentifier","ClassConstructorPlaceholder","RefPlaceholder","EmptyPlaceholder","Symbol","partialResult","node","factory","value","createEmpty","updateInstance","SerializerError","rawValue","__value","final","finalInstance","fromPlain","ref","isSerializerNode","data","R","isPlainObject","hasProp","isRootNode","extractClassName","registry","Map","register","name","has","set","target","get","index","indexOf","push","filter","Boolean","join","isObjectType","isFunction","Function","primitiveToSerializableClass","ClassByValueType","string","String","number","Number","bigint","BigInt","boolean","symbol","undefined","Undefined","null","Null","object","Object","function","type","traverseObject","obj","handler","stopFn","seen","SafeWeakSet","traverse","_obj","path","add","key","entries","concat","isSerializationRequired","primitive","includes","traverseWithUpdate","Array","isArray","idx","update","newValue","Set","values","delete","shallowCopy","assign","slice","isDirectInstanceOf","Date","deepCopy","source","clone","copy","result","setProp","toBoundedFunction","fn","binds","getFunctionBinds","getProp"],"mappings":"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","file":"utils.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport * as R from \"remeda\";\nimport { SafeWeakSet } from \"@/internals/helpers/weakRef.js\";\nimport { AnyConstructable, AnyFn, ClassConstructor, NamedFunction } from \"@/internals/types.js\";\nimport { SerializeFactory } from \"@/serializer/serializer.js\";\nimport { getProp, hasProp, setProp } from \"@/internals/helpers/object.js\";\nimport { isDirectInstanceOf } from \"@/internals/helpers/prototype.js\";\nimport { SerializerError } from \"@/serializer/error.js\";\nimport { isFunction, isObjectType } from \"remeda\";\n\nexport const SerializerSelfRefIdentifier = \"__self_ref\";\nexport const SerializerRefIdentifier = \"__ref\";\nexport class ClassConstructorPlaceholder {}\nexport class RefPlaceholder<T = unknown> {\n private static EmptyPlaceholder = Symbol();\n private partialResult: T = RefPlaceholder.EmptyPlaceholder as T;\n\n constructor(\n protected readonly node: SerializerNode,\n protected readonly factory: SerializeFactory<T>,\n ) {}\n\n get value() {\n if (this.partialResult !== RefPlaceholder.EmptyPlaceholder) {\n return this.partialResult;\n }\n\n const { createEmpty, updateInstance } = this.factory;\n if (!createEmpty || !updateInstance) {\n throw new SerializerError(\"Circular dependency has been detected!\");\n }\n\n this.partialResult = createEmpty();\n return this.partialResult;\n }\n\n get rawValue() {\n return this.node.__value;\n }\n\n async final() {\n const finalInstance = await this.factory.fromPlain(this.node.__value, this.factory.ref);\n if (this.partialResult === RefPlaceholder.EmptyPlaceholder) {\n return finalInstance;\n }\n\n await this.factory.updateInstance!(this.partialResult, finalInstance);\n return this.partialResult;\n }\n}\n\nexport interface SerializerNode {\n __class: string;\n __ref: string;\n __value: unknown;\n __serializer: true;\n}\nexport function isSerializerNode(data: unknown): data is SerializerNode {\n return R.isPlainObject(data) && hasProp(data as unknown as SerializerNode, \"__serializer\");\n}\n\nexport interface RootNode<T = any> {\n __version: string;\n __root: T;\n}\n\nexport function isRootNode<T>(data: unknown): data is RootNode<T> {\n return (\n R.isPlainObject(data) &&\n hasProp(data as unknown as RootNode<T>, \"__root\") &&\n hasProp(data as unknown as RootNode<T>, \"__version\")\n );\n}\n\nexport const extractClassName = (() => {\n const registry = new Map<string, unknown[]>();\n const register = (name: string, factory: any) => {\n if (!registry.has(name)) {\n registry.set(name, []);\n }\n const target = registry.get(name)!;\n let index = target.indexOf(factory);\n if (index === -1) {\n index = target.push(factory) - 1;\n }\n return [name, index].filter(Boolean).join(\"\");\n };\n\n return (value: unknown): string => {\n if (R.isObjectType(value) && \"constructor\" in value) {\n const name = value.constructor.name;\n return register(name, value.constructor);\n }\n if (R.isFunction(value)) {\n const name = value.name || value.constructor?.name || Function.name;\n return register(name, value);\n }\n return extractClassName(primitiveToSerializableClass(value));\n };\n})();\n\nconst ClassByValueType = {\n string: String,\n number: Number,\n bigint: BigInt,\n boolean: Boolean,\n symbol: Symbol,\n undefined: class Undefined {},\n null: class Null {},\n object: Object,\n function: Function,\n} as const;\n\nexport function primitiveToSerializableClass(value: unknown) {\n const type = value === null ? \"null\" : typeof value;\n return ClassByValueType[type];\n}\n\ntype TraverseObjectFn = (el: { key: string; path: readonly string[]; value: any }) => Promise<void>;\nexport async function traverseObject(\n obj: unknown,\n handler: TraverseObjectFn,\n stopFn?: (_obj: unknown) => boolean,\n) {\n const seen = new SafeWeakSet();\n\n const traverse = async (_obj: unknown, path: readonly string[] = []) => {\n if (!R.isPlainObject(_obj) || seen.has(_obj)) {\n return;\n }\n seen.add(_obj);\n\n if (stopFn?.(_obj)) {\n return;\n }\n\n for (const [key, value] of Object.entries(_obj)) {\n await traverse(value, path.concat(key));\n await handler({\n key,\n value,\n path: path.concat(key),\n });\n }\n };\n\n return await traverse(obj, []);\n}\n\nexport function isSerializationRequired(factory: ClassConstructor | NamedFunction) {\n const primitive: unknown[] = [ClassByValueType.string, ClassByValueType.boolean];\n return !primitive.includes(factory);\n}\n\nexport function* traverseWithUpdate<T = unknown>(\n _obj: unknown,\n): Generator<{ value: T; update: (value: T) => void }> {\n if (Array.isArray(_obj)) {\n for (const [idx, value] of _obj.entries()) {\n yield {\n value,\n update: (newValue) => {\n _obj[idx] = newValue;\n },\n };\n }\n } else if (R.isPlainObject(_obj)) {\n for (const [key, value] of R.entries(_obj)) {\n yield {\n value: value as T,\n update: (newValue) => {\n _obj[key] = newValue;\n },\n };\n }\n } else if (_obj instanceof Map) {\n for (const [key, value] of _obj.entries()) {\n yield {\n value,\n update: (newValue) => {\n _obj.set(key, newValue);\n },\n };\n }\n } else if (_obj instanceof Set) {\n for (const value of _obj.values()) {\n yield {\n value,\n update: (newValue) => {\n _obj.delete(value);\n _obj.add(newValue);\n },\n };\n }\n }\n}\n\nexport function shallowCopy<T>(value: T): T {\n if (R.isPlainObject(value)) {\n return Object.assign({}, value);\n } else if (R.isArray(value)) {\n return value.slice() as T;\n } else if (isDirectInstanceOf(value, Map)) {\n return new Map(value.entries()) as T;\n } else if (isDirectInstanceOf(value, Set)) {\n return new Set(value.values()) as T;\n } else if (isDirectInstanceOf(value, Date)) {\n return new Date(value) as T;\n }\n return value;\n}\n\nexport async function deepCopy<T>(source: T): Promise<T> {\n if (isObjectType(source) && \"clone\" in source && isFunction(source.clone)) {\n return await (source as any).clone();\n }\n const copy = shallowCopy(source);\n await traverseObject(source, async ({ value, path }) => {\n const result = await deepCopy(value);\n setProp(copy, path, result);\n });\n return copy;\n}\n\ntype Bounded =\n | {\n name: string;\n value: any;\n }\n | AnyConstructable;\n\nexport function toBoundedFunction<T extends AnyFn>(fn: T, binds: [Bounded, ...Bounded[]]) {\n Object.assign(fn, { [toBoundedFunction.symbol]: binds });\n return fn;\n}\ntoBoundedFunction.symbol = Symbol(\"bounded\");\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport function getFunctionBinds<T extends Function>(fn: T) {\n const target = getProp(fn, [toBoundedFunction.symbol], []);\n return target as Bounded[];\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/serializer/utils.ts"],"names":["SerializerSelfRefIdentifier","SerializerRefIdentifier","ClassConstructorPlaceholder","RefPlaceholder","EmptyPlaceholder","Symbol","partialResult","node","factory","value","createEmpty","updateInstance","SerializerError","rawValue","__value","final","finalInstance","fromPlain","ref","isSerializerNode","data","R","isPlainObject","hasProp","isRootNode","extractClassName","registry","Map","register","name","has","set","target","get","index","indexOf","push","filter","Boolean","join","isObjectType","isFunction","Function","primitiveToSerializableClass","ClassByValueType","string","String","number","Number","bigint","BigInt","boolean","symbol","undefined","Undefined","null","Null","object","Object","function","type","traverseObject","obj","handler","stopFn","seen","SafeWeakSet","traverse","_obj","path","add","key","entries","concat","isSerializationRequired","primitive","includes","traverseWithUpdate","Array","isArray","idx","update","newValue","Set","values","delete","shallowCopy","assign","slice","isDirectInstanceOf","Date","deepCopy","source","clone","copy","result","setProp","toBoundedFunction","fn","binds","getFunctionBinds","getProp"],"mappings":"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","file":"utils.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport * as R from \"remeda\";\nimport { SafeWeakSet } from \"@/internals/helpers/weakRef.js\";\nimport { AnyConstructable, AnyFn, ClassConstructor, NamedFunction } from \"@/internals/types.js\";\nimport { SerializeFactory } from \"@/serializer/serializer.js\";\nimport { getProp, hasProp, setProp } from \"@/internals/helpers/object.js\";\nimport { isDirectInstanceOf } from \"@/internals/helpers/prototype.js\";\nimport { SerializerError } from \"@/serializer/error.js\";\nimport { isFunction, isObjectType } from \"remeda\";\n\nexport const SerializerSelfRefIdentifier = \"__self_ref\";\nexport const SerializerRefIdentifier = \"__ref\";\nexport class ClassConstructorPlaceholder {}\nexport class RefPlaceholder<T = unknown> {\n private static EmptyPlaceholder = Symbol();\n private partialResult: T = RefPlaceholder.EmptyPlaceholder as T;\n\n constructor(\n protected readonly node: SerializerNode,\n protected readonly factory: SerializeFactory<T>,\n ) {}\n\n get value() {\n if (this.partialResult !== RefPlaceholder.EmptyPlaceholder) {\n return this.partialResult;\n }\n\n const { createEmpty, updateInstance } = this.factory;\n if (!createEmpty || !updateInstance) {\n throw new SerializerError(\"Circular dependency has been detected!\");\n }\n\n this.partialResult = createEmpty();\n return this.partialResult;\n }\n\n get rawValue() {\n return this.node.__value;\n }\n\n async final() {\n const finalInstance = await this.factory.fromPlain(this.node.__value, this.factory.ref);\n if (this.partialResult === RefPlaceholder.EmptyPlaceholder) {\n return finalInstance;\n }\n\n await this.factory.updateInstance!(this.partialResult, finalInstance);\n return this.partialResult;\n }\n}\n\nexport interface SerializerNode {\n __class: string;\n __ref: string;\n __value: unknown;\n __serializer: true;\n}\nexport function isSerializerNode(data: unknown): data is SerializerNode {\n return R.isPlainObject(data) && hasProp(data as unknown as SerializerNode, \"__serializer\");\n}\n\nexport interface RootNode<T = any> {\n __version: string;\n __root: T;\n}\n\nexport function isRootNode<T>(data: unknown): data is RootNode<T> {\n return (\n R.isPlainObject(data) &&\n hasProp(data as unknown as RootNode<T>, \"__root\") &&\n hasProp(data as unknown as RootNode<T>, \"__version\")\n );\n}\n\nexport const extractClassName = (() => {\n const registry = new Map<string, unknown[]>();\n const register = (name: string, factory: any) => {\n if (!registry.has(name)) {\n registry.set(name, []);\n }\n const target = registry.get(name)!;\n let index = target.indexOf(factory);\n if (index === -1) {\n index = target.push(factory) - 1;\n }\n return [name, index].filter(Boolean).join(\"\");\n };\n\n return (value: unknown): string => {\n if (R.isObjectType(value) && \"constructor\" in value) {\n const name = value.constructor.name;\n return register(name, value.constructor);\n }\n if (R.isFunction(value)) {\n const name = value.name || value.constructor?.name || Function.name;\n return register(name, value);\n }\n return extractClassName(primitiveToSerializableClass(value));\n };\n})();\n\nconst ClassByValueType = {\n string: String,\n number: Number,\n bigint: BigInt,\n boolean: Boolean,\n symbol: Symbol,\n undefined: class Undefined {},\n null: class Null {},\n object: Object,\n function: Function,\n} as const;\n\nexport function primitiveToSerializableClass(value: unknown) {\n const type = value === null ? \"null\" : typeof value;\n return ClassByValueType[type];\n}\n\ntype TraverseObjectFn = (el: { key: string; path: readonly string[]; value: any }) => Promise<void>;\nexport async function traverseObject(\n obj: unknown,\n handler: TraverseObjectFn,\n stopFn?: (_obj: unknown) => boolean,\n) {\n const seen = new SafeWeakSet();\n\n const traverse = async (_obj: unknown, path: readonly string[] = []) => {\n if (!R.isPlainObject(_obj) || seen.has(_obj)) {\n return;\n }\n seen.add(_obj);\n\n if (stopFn?.(_obj)) {\n return;\n }\n\n for (const [key, value] of Object.entries(_obj)) {\n await traverse(value, path.concat(key));\n await handler({\n key,\n value,\n path: path.concat(key),\n });\n }\n };\n\n return await traverse(obj, []);\n}\n\nexport function isSerializationRequired(factory: ClassConstructor | NamedFunction) {\n const primitive: unknown[] = [ClassByValueType.string, ClassByValueType.boolean];\n return !primitive.includes(factory);\n}\n\nexport function* traverseWithUpdate<T = unknown>(\n _obj: unknown,\n): Generator<{ value: T; update: (value: T) => void }> {\n if (Array.isArray(_obj)) {\n for (const [idx, value] of _obj.entries()) {\n yield {\n value,\n update: (newValue) => {\n _obj[idx] = newValue;\n },\n };\n }\n } else if (R.isPlainObject(_obj)) {\n for (const [key, value] of R.entries(_obj)) {\n yield {\n value: value as T,\n update: (newValue) => {\n _obj[key] = newValue;\n },\n };\n }\n } else if (_obj instanceof Map) {\n for (const [key, value] of _obj.entries()) {\n yield {\n value,\n update: (newValue) => {\n _obj.set(key, newValue);\n },\n };\n }\n } else if (_obj instanceof Set) {\n for (const value of _obj.values()) {\n yield {\n value,\n update: (newValue) => {\n _obj.delete(value);\n _obj.add(newValue);\n },\n };\n }\n }\n}\n\nexport function shallowCopy<T>(value: T): T {\n if (R.isPlainObject(value)) {\n return Object.assign({}, value);\n } else if (R.isArray(value)) {\n return value.slice() as T;\n } else if (isDirectInstanceOf(value, Map)) {\n return new Map(value.entries()) as T;\n } else if (isDirectInstanceOf(value, Set)) {\n return new Set(value.values()) as T;\n } else if (isDirectInstanceOf(value, Date)) {\n return new Date(value) as T;\n }\n return value;\n}\n\nexport async function deepCopy<T>(source: T): Promise<T> {\n if (isObjectType(source) && \"clone\" in source && isFunction(source.clone)) {\n return await (source as any).clone();\n }\n const copy = shallowCopy(source);\n await traverseObject(source, async ({ value, path }) => {\n const result = await deepCopy(value);\n setProp(copy, path, result);\n });\n return copy;\n}\n\ntype Bounded =\n | {\n name: string;\n value: any;\n }\n | AnyConstructable;\n\nexport function toBoundedFunction<T extends AnyFn>(fn: T, binds: [Bounded, ...Bounded[]]) {\n Object.assign(fn, { [toBoundedFunction.symbol]: binds });\n return fn;\n}\ntoBoundedFunction.symbol = Symbol(\"bounded\");\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport function getFunctionBinds<T extends Function>(fn: T) {\n const target = getProp(fn, [toBoundedFunction.symbol], []);\n return target as Bounded[];\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import '../internals/types.cjs';
|
|
2
|
-
export { C as ClassConstructorPlaceholder, R as RefPlaceholder,
|
|
2
|
+
export { C as ClassConstructorPlaceholder, R as RefPlaceholder, b as RootNode, c as SerializerNode, d as SerializerRefIdentifier, e as SerializerSelfRefIdentifier, f as deepCopy, g as extractClassName, h as getFunctionBinds, j as isRootNode, k as isSerializationRequired, l as isSerializerNode, p as primitiveToSerializableClass, s as shallowCopy, t as toBoundedFunction, m as traverseObject, n as traverseWithUpdate } from '../serializer-CFDWYUco.cjs';
|
|
3
3
|
import '../internals/helpers/guards.cjs';
|
|
4
4
|
import '../internals/serializable.cjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import '../internals/types.js';
|
|
2
|
-
export { C as ClassConstructorPlaceholder, R as RefPlaceholder,
|
|
2
|
+
export { C as ClassConstructorPlaceholder, R as RefPlaceholder, b as RootNode, c as SerializerNode, d as SerializerRefIdentifier, e as SerializerSelfRefIdentifier, f as deepCopy, g as extractClassName, h as getFunctionBinds, j as isRootNode, k as isSerializationRequired, l as isSerializerNode, p as primitiveToSerializableClass, s as shallowCopy, t as toBoundedFunction, m as traverseObject, n as traverseWithUpdate } from '../serializer-BafOT48s.js';
|
|
3
3
|
import '../internals/helpers/guards.js';
|
|
4
4
|
import '../internals/serializable.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/serializer/utils.ts"],"names":["SerializerSelfRefIdentifier","SerializerRefIdentifier","ClassConstructorPlaceholder","RefPlaceholder","EmptyPlaceholder","Symbol","partialResult","node","factory","value","createEmpty","updateInstance","SerializerError","rawValue","__value","final","finalInstance","fromPlain","ref","isSerializerNode","data","R","isPlainObject","hasProp","isRootNode","extractClassName","registry","Map","register","name","has","set","target","get","index","indexOf","push","filter","Boolean","join","isObjectType","isFunction","Function","primitiveToSerializableClass","ClassByValueType","string","String","number","Number","bigint","BigInt","boolean","symbol","undefined","Undefined","null","Null","object","Object","function","type","traverseObject","obj","handler","stopFn","seen","SafeWeakSet","traverse","_obj","path","add","key","entries","concat","isSerializationRequired","primitive","includes","traverseWithUpdate","Array","isArray","idx","update","newValue","Set","values","delete","shallowCopy","assign","slice","isDirectInstanceOf","Date","deepCopy","source","clone","copy","result","setProp","toBoundedFunction","fn","binds","getFunctionBinds","getProp"],"mappings":"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","file":"utils.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport * as R from \"remeda\";\nimport { SafeWeakSet } from \"@/internals/helpers/weakRef.js\";\nimport { AnyConstructable, AnyFn, ClassConstructor, NamedFunction } from \"@/internals/types.js\";\nimport { SerializeFactory } from \"@/serializer/serializer.js\";\nimport { getProp, hasProp, setProp } from \"@/internals/helpers/object.js\";\nimport { isDirectInstanceOf } from \"@/internals/helpers/prototype.js\";\nimport { SerializerError } from \"@/serializer/error.js\";\nimport { isFunction, isObjectType } from \"remeda\";\n\nexport const SerializerSelfRefIdentifier = \"__self_ref\";\nexport const SerializerRefIdentifier = \"__ref\";\nexport class ClassConstructorPlaceholder {}\nexport class RefPlaceholder<T = unknown> {\n private static EmptyPlaceholder = Symbol();\n private partialResult: T = RefPlaceholder.EmptyPlaceholder as T;\n\n constructor(\n protected readonly node: SerializerNode,\n protected readonly factory: SerializeFactory<T>,\n ) {}\n\n get value() {\n if (this.partialResult !== RefPlaceholder.EmptyPlaceholder) {\n return this.partialResult;\n }\n\n const { createEmpty, updateInstance } = this.factory;\n if (!createEmpty || !updateInstance) {\n throw new SerializerError(\"Circular dependency has been detected!\");\n }\n\n this.partialResult = createEmpty();\n return this.partialResult;\n }\n\n get rawValue() {\n return this.node.__value;\n }\n\n async final() {\n const finalInstance = await this.factory.fromPlain(this.node.__value, this.factory.ref);\n if (this.partialResult === RefPlaceholder.EmptyPlaceholder) {\n return finalInstance;\n }\n\n await this.factory.updateInstance!(this.partialResult, finalInstance);\n return this.partialResult;\n }\n}\n\nexport interface SerializerNode {\n __class: string;\n __ref: string;\n __value: unknown;\n __serializer: true;\n}\nexport function isSerializerNode(data: unknown): data is SerializerNode {\n return R.isPlainObject(data) && hasProp(data as unknown as SerializerNode, \"__serializer\");\n}\n\nexport interface RootNode<T = any> {\n __version: string;\n __root: T;\n}\n\nexport function isRootNode<T>(data: unknown): data is RootNode<T> {\n return (\n R.isPlainObject(data) &&\n hasProp(data as unknown as RootNode<T>, \"__root\") &&\n hasProp(data as unknown as RootNode<T>, \"__version\")\n );\n}\n\nexport const extractClassName = (() => {\n const registry = new Map<string, unknown[]>();\n const register = (name: string, factory: any) => {\n if (!registry.has(name)) {\n registry.set(name, []);\n }\n const target = registry.get(name)!;\n let index = target.indexOf(factory);\n if (index === -1) {\n index = target.push(factory) - 1;\n }\n return [name, index].filter(Boolean).join(\"\");\n };\n\n return (value: unknown): string => {\n if (R.isObjectType(value) && \"constructor\" in value) {\n const name = value.constructor.name;\n return register(name, value.constructor);\n }\n if (R.isFunction(value)) {\n const name = value.name || value.constructor?.name || Function.name;\n return register(name, value);\n }\n return extractClassName(primitiveToSerializableClass(value));\n };\n})();\n\nconst ClassByValueType = {\n string: String,\n number: Number,\n bigint: BigInt,\n boolean: Boolean,\n symbol: Symbol,\n undefined: class Undefined {},\n null: class Null {},\n object: Object,\n function: Function,\n} as const;\n\nexport function primitiveToSerializableClass(value: unknown) {\n const type = value === null ? \"null\" : typeof value;\n return ClassByValueType[type];\n}\n\ntype TraverseObjectFn = (el: { key: string; path: readonly string[]; value: any }) => Promise<void>;\nexport async function traverseObject(\n obj: unknown,\n handler: TraverseObjectFn,\n stopFn?: (_obj: unknown) => boolean,\n) {\n const seen = new SafeWeakSet();\n\n const traverse = async (_obj: unknown, path: readonly string[] = []) => {\n if (!R.isPlainObject(_obj) || seen.has(_obj)) {\n return;\n }\n seen.add(_obj);\n\n if (stopFn?.(_obj)) {\n return;\n }\n\n for (const [key, value] of Object.entries(_obj)) {\n await traverse(value, path.concat(key));\n await handler({\n key,\n value,\n path: path.concat(key),\n });\n }\n };\n\n return await traverse(obj, []);\n}\n\nexport function isSerializationRequired(factory: ClassConstructor | NamedFunction) {\n const primitive: unknown[] = [ClassByValueType.string, ClassByValueType.boolean];\n return !primitive.includes(factory);\n}\n\nexport function* traverseWithUpdate<T = unknown>(\n _obj: unknown,\n): Generator<{ value: T; update: (value: T) => void }> {\n if (Array.isArray(_obj)) {\n for (const [idx, value] of _obj.entries()) {\n yield {\n value,\n update: (newValue) => {\n _obj[idx] = newValue;\n },\n };\n }\n } else if (R.isPlainObject(_obj)) {\n for (const [key, value] of R.entries(_obj)) {\n yield {\n value: value as T,\n update: (newValue) => {\n _obj[key] = newValue;\n },\n };\n }\n } else if (_obj instanceof Map) {\n for (const [key, value] of _obj.entries()) {\n yield {\n value,\n update: (newValue) => {\n _obj.set(key, newValue);\n },\n };\n }\n } else if (_obj instanceof Set) {\n for (const value of _obj.values()) {\n yield {\n value,\n update: (newValue) => {\n _obj.delete(value);\n _obj.add(newValue);\n },\n };\n }\n }\n}\n\nexport function shallowCopy<T>(value: T): T {\n if (R.isPlainObject(value)) {\n return Object.assign({}, value);\n } else if (R.isArray(value)) {\n return value.slice() as T;\n } else if (isDirectInstanceOf(value, Map)) {\n return new Map(value.entries()) as T;\n } else if (isDirectInstanceOf(value, Set)) {\n return new Set(value.values()) as T;\n } else if (isDirectInstanceOf(value, Date)) {\n return new Date(value) as T;\n }\n return value;\n}\n\nexport async function deepCopy<T>(source: T): Promise<T> {\n if (isObjectType(source) && \"clone\" in source && isFunction(source.clone)) {\n return await (source as any).clone();\n }\n const copy = shallowCopy(source);\n await traverseObject(source, async ({ value, path }) => {\n const result = await deepCopy(value);\n setProp(copy, path, result);\n });\n return copy;\n}\n\ntype Bounded =\n | {\n name: string;\n value: any;\n }\n | AnyConstructable;\n\nexport function toBoundedFunction<T extends AnyFn>(fn: T, binds: [Bounded, ...Bounded[]]) {\n Object.assign(fn, { [toBoundedFunction.symbol]: binds });\n return fn;\n}\ntoBoundedFunction.symbol = Symbol(\"bounded\");\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport function getFunctionBinds<T extends Function>(fn: T) {\n const target = getProp(fn, [toBoundedFunction.symbol], []);\n return target as Bounded[];\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/serializer/utils.ts"],"names":["SerializerSelfRefIdentifier","SerializerRefIdentifier","ClassConstructorPlaceholder","RefPlaceholder","EmptyPlaceholder","Symbol","partialResult","node","factory","value","createEmpty","updateInstance","SerializerError","rawValue","__value","final","finalInstance","fromPlain","ref","isSerializerNode","data","R","isPlainObject","hasProp","isRootNode","extractClassName","registry","Map","register","name","has","set","target","get","index","indexOf","push","filter","Boolean","join","isObjectType","isFunction","Function","primitiveToSerializableClass","ClassByValueType","string","String","number","Number","bigint","BigInt","boolean","symbol","undefined","Undefined","null","Null","object","Object","function","type","traverseObject","obj","handler","stopFn","seen","SafeWeakSet","traverse","_obj","path","add","key","entries","concat","isSerializationRequired","primitive","includes","traverseWithUpdate","Array","isArray","idx","update","newValue","Set","values","delete","shallowCopy","assign","slice","isDirectInstanceOf","Date","deepCopy","source","clone","copy","result","setProp","toBoundedFunction","fn","binds","getFunctionBinds","getProp"],"mappings":";;;;;;;;;AAcO,MAAMA,2BAAAA,GAA8B;AACpC,MAAMC,uBAAAA,GAA0B;AAChC,MAAMC,2BAAAA,CAAAA;EAhBb;;;AAgB0C;AACnC,MAAMC,cAAAA,CAAAA;EAjBb;;;;;AAkBE,EAAA,OAAeC,mBAAmBC,MAAAA,EAAAA;AAC1BC,EAAAA,aAAAA,GAAmBH,cAAAA,CAAeC,gBAAAA;AAE1C,EAAA,WAAA,CACqBG,MACAC,OAAAA,EACnB;SAFmBD,IAAAA,GAAAA,IAAAA;SACAC,OAAAA,GAAAA,OAAAA;AAClB,EAAA;AAEH,EAAA,IAAIC,KAAAA,GAAQ;AACV,IAAA,IAAI,IAAA,CAAKH,aAAAA,KAAkBH,cAAAA,CAAeC,gBAAAA,EAAkB;AAC1D,MAAA,OAAO,IAAA,CAAKE,aAAAA;AACd,IAAA;AAEA,IAAA,MAAM,EAAEI,WAAAA,EAAaC,cAAAA,EAAc,GAAK,IAAA,CAAKH,OAAAA;AAC7C,IAAA,IAAI,CAACE,WAAAA,IAAe,CAACC,cAAAA,EAAgB;AACnC,MAAA,MAAM,IAAIC,gBAAgB,wCAAA,CAAA;AAC5B,IAAA;AAEA,IAAA,IAAA,CAAKN,gBAAgBI,WAAAA,EAAAA;AACrB,IAAA,OAAO,IAAA,CAAKJ,aAAAA;AACd,EAAA;AAEA,EAAA,IAAIO,QAAAA,GAAW;AACb,IAAA,OAAO,KAAKN,IAAAA,CAAKO,OAAAA;AACnB,EAAA;AAEA,EAAA,MAAMC,KAAAA,GAAQ;AACZ,IAAA,MAAMC,aAAAA,GAAgB,MAAM,IAAA,CAAKR,OAAAA,CAAQS,SAAAA,CAAU,KAAKV,IAAAA,CAAKO,OAAAA,EAAS,IAAA,CAAKN,OAAAA,CAAQU,GAAG,CAAA;AACtF,IAAA,IAAI,IAAA,CAAKZ,aAAAA,KAAkBH,cAAAA,CAAeC,gBAAAA,EAAkB;AAC1D,MAAA,OAAOY,aAAAA;AACT,IAAA;AAEA,IAAA,MAAM,IAAA,CAAKR,OAAAA,CAAQG,cAAAA,CAAgB,IAAA,CAAKL,eAAeU,aAAAA,CAAAA;AACvD,IAAA,OAAO,IAAA,CAAKV,aAAAA;AACd,EAAA;AACF;AAQO,SAASa,iBAAiBC,IAAAA,EAAa;AAC5C,EAAA,OAAOC,EAAEC,aAAAA,CAAcF,IAAAA,CAAAA,IAASG,OAAAA,CAAQH,MAAmC,cAAA,CAAA;AAC7E;AAFgBD,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA;AAST,SAASK,WAAcJ,IAAAA,EAAa;AACzC,EAAA,OACEC,CAAAA,CAAEC,aAAAA,CAAcF,IAAAA,CAAAA,IAChBG,OAAAA,CAAQH,MAAgC,QAAA,CAAA,IACxCG,OAAAA,CAAQH,IAAAA,EAAgC,WAAA,CAAA;AAE5C;AANgBI,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAQT,MAAMC,mCAAoB,CAAA,MAAA;AAC/B,EAAA,MAAMC,QAAAA,uBAAeC,GAAAA,EAAAA;AACrB,EAAA,MAAMC,QAAAA,mBAAW,MAAA,CAAA,CAACC,IAAAA,EAAcrB,OAAAA,KAAAA;AAC9B,IAAA,IAAI,CAACkB,QAAAA,CAASI,GAAAA,CAAID,IAAAA,CAAAA,EAAO;AACvBH,MAAAA,QAAAA,CAASK,GAAAA,CAAIF,IAAAA,EAAM,EAAE,CAAA;AACvB,IAAA;AACA,IAAA,MAAMG,MAAAA,GAASN,QAAAA,CAASO,GAAAA,CAAIJ,IAAAA,CAAAA;AAC5B,IAAA,IAAIK,KAAAA,GAAQF,MAAAA,CAAOG,OAAAA,CAAQ3B,OAAAA,CAAAA;AAC3B,IAAA,IAAI0B,UAAU,EAAA,EAAI;AAChBA,MAAAA,KAAAA,GAAQF,MAAAA,CAAOI,IAAAA,CAAK5B,OAAAA,CAAAA,GAAW,CAAA;AACjC,IAAA;AACA,IAAA,OAAO;AAACqB,MAAAA,IAAAA;AAAMK,MAAAA;MAAOG,MAAAA,CAAOC,OAAAA,CAAAA,CAASC,IAAAA,CAAK,EAAA,CAAA;EAC5C,CAAA,EAViB,UAAA,CAAA;AAYjB,EAAA,OAAO,CAAC9B,KAAAA,KAAAA;AACN,IAAA,IAAIY,CAAAA,CAAEmB,YAAAA,CAAa/B,KAAAA,CAAAA,IAAU,iBAAiBA,KAAAA,EAAO;AACnD,MAAA,MAAMoB,IAAAA,GAAOpB,MAAM,WAAA,CAAYoB,IAAAA;AAC/B,MAAA,OAAOD,QAAAA,CAASC,IAAAA,EAAMpB,KAAAA,CAAM,WAAW,CAAA;AACzC,IAAA;AACA,IAAA,IAAIY,CAAAA,CAAEoB,UAAAA,CAAWhC,KAAAA,CAAAA,EAAQ;AACvB,MAAA,MAAMoB,OAAOpB,KAAAA,CAAMoB,IAAAA,IAAQpB,KAAAA,CAAM,WAAA,EAAaoB,QAAQa,QAAAA,CAASb,IAAAA;AAC/D,MAAA,OAAOD,QAAAA,CAASC,MAAMpB,KAAAA,CAAAA;AACxB,IAAA;AACA,IAAA,OAAOgB,gBAAAA,CAAiBkB,4BAAAA,CAA6BlC,KAAAA,CAAAA,CAAAA;AACvD,EAAA,CAAA;AACF,CAAA;AAEA,MAAMmC,gBAAAA,GAAmB;EACvBC,MAAAA,EAAQC,MAAAA;EACRC,MAAAA,EAAQC,MAAAA;EACRC,MAAAA,EAAQC,MAAAA;EACRC,OAAAA,EAASb,OAAAA;EACTc,MAAAA,EAAQ/C,MAAAA;AACRgD,EAAAA,SAAAA,EAAW,MAAMC,SAAAA,CAAAA;IA/GnB;;;AA+G8B,GAAA;AAC5BC,EAAAA,IAAAA,EAAM,MAAMC,IAAAA,CAAAA;IAhHd;;;AAgHoB,GAAA;EAClBC,MAAAA,EAAQC,MAAAA;EACRC,QAAAA,EAAUjB;AACZ,CAAA;AAEO,SAASC,6BAA6BlC,KAAAA,EAAc;AACzD,EAAA,MAAMmD,IAAAA,GAAOnD,KAAAA,KAAU,IAAA,GAAO,MAAA,GAAS,OAAOA,KAAAA;AAC9C,EAAA,OAAOmC,iBAAiBgB,IAAAA,CAAAA;AAC1B;AAHgBjB,MAAAA,CAAAA,4BAAAA,EAAAA,8BAAAA,CAAAA;AAMhB,eAAsBkB,cAAAA,CACpBC,GAAAA,EACAC,OAAAA,EACAC,MAAAA,EAAmC;AAEnC,EAAA,MAAMC,IAAAA,GAAO,IAAIC,WAAAA,EAAAA;AAEjB,EAAA,MAAMC,QAAAA,mBAAW,MAAA,CAAA,OAAOC,IAAAA,EAAeC,IAAAA,GAA0B,EAAA,KAAE;AACjE,IAAA,IAAI,CAAChD,EAAEC,aAAAA,CAAc8C,IAAAA,KAASH,IAAAA,CAAKnC,GAAAA,CAAIsC,IAAAA,CAAAA,EAAO;AAC5C,MAAA;AACF,IAAA;AACAH,IAAAA,IAAAA,CAAKK,IAAIF,IAAAA,CAAAA;AAET,IAAA,IAAIJ,MAAAA,GAASI,IAAAA,CAAAA,EAAO;AAClB,MAAA;AACF,IAAA;AAEA,IAAA,KAAA,MAAW,CAACG,GAAAA,EAAK9D,KAAAA,KAAUiD,MAAAA,CAAOc,OAAAA,CAAQJ,IAAAA,CAAAA,EAAO;AAC/C,MAAA,MAAMD,QAAAA,CAAS1D,KAAAA,EAAO4D,IAAAA,CAAKI,MAAAA,CAAOF,GAAAA,CAAAA,CAAAA;AAClC,MAAA,MAAMR,OAAAA,CAAQ;AACZQ,QAAAA,GAAAA;AACA9D,QAAAA,KAAAA;QACA4D,IAAAA,EAAMA,IAAAA,CAAKI,OAAOF,GAAAA;OACpB,CAAA;AACF,IAAA;EACF,CAAA,EAlBiB,UAAA,CAAA;AAoBjB,EAAA,OAAO,MAAMJ,QAAAA,CAASL,GAAAA,EAAK,EAAE,CAAA;AAC/B;AA5BsBD,MAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AA8Bf,SAASa,wBAAwBlE,OAAAA,EAAyC;AAC/E,EAAA,MAAMmE,SAAAA,GAAuB;IAAC/B,gBAAAA,CAAiBC,MAAAA;IAAQD,gBAAAA,CAAiBO;;AACxE,EAAA,OAAO,CAACwB,SAAAA,CAAUC,QAAAA,CAASpE,OAAAA,CAAAA;AAC7B;AAHgBkE,MAAAA,CAAAA,uBAAAA,EAAAA,yBAAAA,CAAAA;AAKT,UAAUG,mBACfT,IAAAA,EAAa;AAEb,EAAA,IAAIU,KAAAA,CAAMC,OAAAA,CAAQX,IAAAA,CAAAA,EAAO;AACvB,IAAA,KAAA,MAAW,CAACY,GAAAA,EAAKvE,KAAAA,CAAAA,IAAU2D,IAAAA,CAAKI,SAAO,EAAI;AACzC,MAAA,MAAM;AACJ/D,QAAAA,KAAAA;AACAwE,QAAAA,MAAAA,0BAASC,QAAAA,KAAAA;AACPd,UAAAA,IAAAA,CAAKY,GAAAA,CAAAA,GAAOE,QAAAA;QACd,CAAA,EAFQ,QAAA;AAGV,OAAA;AACF,IAAA;EACF,CAAA,MAAA,IAAW7D,CAAAA,CAAEC,aAAAA,CAAc8C,IAAAA,CAAAA,EAAO;AAChC,IAAA,KAAA,MAAW,CAACG,GAAAA,EAAK9D,KAAAA,KAAUY,CAAAA,CAAEmD,OAAAA,CAAQJ,IAAAA,CAAAA,EAAO;AAC1C,MAAA,MAAM;AACJ3D,QAAAA,KAAAA;AACAwE,QAAAA,MAAAA,0BAASC,QAAAA,KAAAA;AACPd,UAAAA,IAAAA,CAAKG,GAAAA,CAAAA,GAAOW,QAAAA;QACd,CAAA,EAFQ,QAAA;AAGV,OAAA;AACF,IAAA;AACF,EAAA,CAAA,MAAA,IAAWd,gBAAgBzC,GAAAA,EAAK;AAC9B,IAAA,KAAA,MAAW,CAAC4C,GAAAA,EAAK9D,KAAAA,CAAAA,IAAU2D,IAAAA,CAAKI,SAAO,EAAI;AACzC,MAAA,MAAM;AACJ/D,QAAAA,KAAAA;AACAwE,QAAAA,MAAAA,0BAASC,QAAAA,KAAAA;AACPd,UAAAA,IAAAA,CAAKrC,GAAAA,CAAIwC,KAAKW,QAAAA,CAAAA;QAChB,CAAA,EAFQ,QAAA;AAGV,OAAA;AACF,IAAA;AACF,EAAA,CAAA,MAAA,IAAWd,gBAAgBe,GAAAA,EAAK;AAC9B,IAAA,KAAA,MAAW1E,KAAAA,IAAS2D,IAAAA,CAAKgB,MAAAA,EAAM,EAAI;AACjC,MAAA,MAAM;AACJ3E,QAAAA,KAAAA;AACAwE,QAAAA,MAAAA,0BAASC,QAAAA,KAAAA;AACPd,UAAAA,IAAAA,CAAKiB,OAAO5E,KAAAA,CAAAA;AACZ2D,UAAAA,IAAAA,CAAKE,IAAIY,QAAAA,CAAAA;QACX,CAAA,EAHQ,QAAA;AAIV,OAAA;AACF,IAAA;AACF,EAAA;AACF;AAzCiBL,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AA2CV,SAASS,YAAe7E,KAAAA,EAAQ;AACrC,EAAA,IAAIY,CAAAA,CAAEC,aAAAA,CAAcb,KAAAA,CAAAA,EAAQ;AAC1B,IAAA,OAAOiD,MAAAA,CAAO6B,MAAAA,CAAO,EAAC,EAAG9E,KAAAA,CAAAA;EAC3B,CAAA,MAAA,IAAWY,CAAAA,CAAE0D,OAAAA,CAAQtE,KAAAA,CAAAA,EAAQ;AAC3B,IAAA,OAAOA,MAAM+E,KAAAA,EAAK;EACpB,CAAA,MAAA,IAAWC,kBAAAA,CAAmBhF,KAAAA,EAAOkB,GAAAA,CAAAA,EAAM;AACzC,IAAA,OAAO,IAAIA,GAAAA,CAAIlB,KAAAA,CAAM+D,OAAAA,EAAO,CAAA;EAC9B,CAAA,MAAA,IAAWiB,kBAAAA,CAAmBhF,KAAAA,EAAO0E,GAAAA,CAAAA,EAAM;AACzC,IAAA,OAAO,IAAIA,GAAAA,CAAI1E,KAAAA,CAAM2E,MAAAA,EAAM,CAAA;EAC7B,CAAA,MAAA,IAAWK,kBAAAA,CAAmBhF,KAAAA,EAAOiF,IAAAA,CAAAA,EAAO;AAC1C,IAAA,OAAO,IAAIA,KAAKjF,KAAAA,CAAAA;AAClB,EAAA;AACA,EAAA,OAAOA,KAAAA;AACT;AAbgB6E,MAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA;AAehB,eAAsBK,SAAYC,MAAAA,EAAS;AACzC,EAAA,IAAIpD,YAAAA,CAAaoD,MAAAA,CAAAA,IAAW,OAAA,IAAWA,UAAUnD,UAAAA,CAAWmD,MAAAA,CAAOC,KAAK,CAAA,EAAG;AACzE,IAAA,OAAO,MAAOD,OAAeC,KAAAA,EAAK;AACpC,EAAA;AACA,EAAA,MAAMC,IAAAA,GAAOR,YAAYM,MAAAA,CAAAA;AACzB,EAAA,MAAM/B,eAAe+B,MAAAA,EAAQ,OAAO,EAAEnF,KAAAA,EAAO4D,MAAI,KAAE;AACjD,IAAA,MAAM0B,MAAAA,GAAS,MAAMJ,QAAAA,CAASlF,KAAAA,CAAAA;AAC9BuF,IAAAA,OAAAA,CAAQF,IAAAA,EAAMzB,MAAM0B,MAAAA,CAAAA;EACtB,CAAA,CAAA;AACA,EAAA,OAAOD,IAAAA;AACT;AAVsBH,MAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA;AAmBf,SAASM,iBAAAA,CAAmCC,IAAOC,KAAAA,EAA8B;AACtFzC,EAAAA,MAAAA,CAAO6B,OAAOW,EAAAA,EAAI;IAAE,CAACD,iBAAAA,CAAkB7C,MAAM,GAAG+C;GAAM,CAAA;AACtD,EAAA,OAAOD,EAAAA;AACT;AAHgBD,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAIhBA,iBAAAA,CAAkB7C,MAAAA,GAAS/C,OAAO,SAAA,CAAA;AAG3B,SAAS+F,iBAAqCF,EAAAA,EAAK;AACxD,EAAA,MAAMlE,MAAAA,GAASqE,QAAQH,EAAAA,EAAI;IAACD,iBAAAA,CAAkB7C;AAAS,GAAA,EAAA,EAAE,CAAA;AACzD,EAAA,OAAOpB,MAAAA;AACT;AAHgBoE,MAAAA,CAAAA,gBAAAA,EAAAA,kBAAAA,CAAAA","file":"utils.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport * as R from \"remeda\";\nimport { SafeWeakSet } from \"@/internals/helpers/weakRef.js\";\nimport { AnyConstructable, AnyFn, ClassConstructor, NamedFunction } from \"@/internals/types.js\";\nimport { SerializeFactory } from \"@/serializer/serializer.js\";\nimport { getProp, hasProp, setProp } from \"@/internals/helpers/object.js\";\nimport { isDirectInstanceOf } from \"@/internals/helpers/prototype.js\";\nimport { SerializerError } from \"@/serializer/error.js\";\nimport { isFunction, isObjectType } from \"remeda\";\n\nexport const SerializerSelfRefIdentifier = \"__self_ref\";\nexport const SerializerRefIdentifier = \"__ref\";\nexport class ClassConstructorPlaceholder {}\nexport class RefPlaceholder<T = unknown> {\n private static EmptyPlaceholder = Symbol();\n private partialResult: T = RefPlaceholder.EmptyPlaceholder as T;\n\n constructor(\n protected readonly node: SerializerNode,\n protected readonly factory: SerializeFactory<T>,\n ) {}\n\n get value() {\n if (this.partialResult !== RefPlaceholder.EmptyPlaceholder) {\n return this.partialResult;\n }\n\n const { createEmpty, updateInstance } = this.factory;\n if (!createEmpty || !updateInstance) {\n throw new SerializerError(\"Circular dependency has been detected!\");\n }\n\n this.partialResult = createEmpty();\n return this.partialResult;\n }\n\n get rawValue() {\n return this.node.__value;\n }\n\n async final() {\n const finalInstance = await this.factory.fromPlain(this.node.__value, this.factory.ref);\n if (this.partialResult === RefPlaceholder.EmptyPlaceholder) {\n return finalInstance;\n }\n\n await this.factory.updateInstance!(this.partialResult, finalInstance);\n return this.partialResult;\n }\n}\n\nexport interface SerializerNode {\n __class: string;\n __ref: string;\n __value: unknown;\n __serializer: true;\n}\nexport function isSerializerNode(data: unknown): data is SerializerNode {\n return R.isPlainObject(data) && hasProp(data as unknown as SerializerNode, \"__serializer\");\n}\n\nexport interface RootNode<T = any> {\n __version: string;\n __root: T;\n}\n\nexport function isRootNode<T>(data: unknown): data is RootNode<T> {\n return (\n R.isPlainObject(data) &&\n hasProp(data as unknown as RootNode<T>, \"__root\") &&\n hasProp(data as unknown as RootNode<T>, \"__version\")\n );\n}\n\nexport const extractClassName = (() => {\n const registry = new Map<string, unknown[]>();\n const register = (name: string, factory: any) => {\n if (!registry.has(name)) {\n registry.set(name, []);\n }\n const target = registry.get(name)!;\n let index = target.indexOf(factory);\n if (index === -1) {\n index = target.push(factory) - 1;\n }\n return [name, index].filter(Boolean).join(\"\");\n };\n\n return (value: unknown): string => {\n if (R.isObjectType(value) && \"constructor\" in value) {\n const name = value.constructor.name;\n return register(name, value.constructor);\n }\n if (R.isFunction(value)) {\n const name = value.name || value.constructor?.name || Function.name;\n return register(name, value);\n }\n return extractClassName(primitiveToSerializableClass(value));\n };\n})();\n\nconst ClassByValueType = {\n string: String,\n number: Number,\n bigint: BigInt,\n boolean: Boolean,\n symbol: Symbol,\n undefined: class Undefined {},\n null: class Null {},\n object: Object,\n function: Function,\n} as const;\n\nexport function primitiveToSerializableClass(value: unknown) {\n const type = value === null ? \"null\" : typeof value;\n return ClassByValueType[type];\n}\n\ntype TraverseObjectFn = (el: { key: string; path: readonly string[]; value: any }) => Promise<void>;\nexport async function traverseObject(\n obj: unknown,\n handler: TraverseObjectFn,\n stopFn?: (_obj: unknown) => boolean,\n) {\n const seen = new SafeWeakSet();\n\n const traverse = async (_obj: unknown, path: readonly string[] = []) => {\n if (!R.isPlainObject(_obj) || seen.has(_obj)) {\n return;\n }\n seen.add(_obj);\n\n if (stopFn?.(_obj)) {\n return;\n }\n\n for (const [key, value] of Object.entries(_obj)) {\n await traverse(value, path.concat(key));\n await handler({\n key,\n value,\n path: path.concat(key),\n });\n }\n };\n\n return await traverse(obj, []);\n}\n\nexport function isSerializationRequired(factory: ClassConstructor | NamedFunction) {\n const primitive: unknown[] = [ClassByValueType.string, ClassByValueType.boolean];\n return !primitive.includes(factory);\n}\n\nexport function* traverseWithUpdate<T = unknown>(\n _obj: unknown,\n): Generator<{ value: T; update: (value: T) => void }> {\n if (Array.isArray(_obj)) {\n for (const [idx, value] of _obj.entries()) {\n yield {\n value,\n update: (newValue) => {\n _obj[idx] = newValue;\n },\n };\n }\n } else if (R.isPlainObject(_obj)) {\n for (const [key, value] of R.entries(_obj)) {\n yield {\n value: value as T,\n update: (newValue) => {\n _obj[key] = newValue;\n },\n };\n }\n } else if (_obj instanceof Map) {\n for (const [key, value] of _obj.entries()) {\n yield {\n value,\n update: (newValue) => {\n _obj.set(key, newValue);\n },\n };\n }\n } else if (_obj instanceof Set) {\n for (const value of _obj.values()) {\n yield {\n value,\n update: (newValue) => {\n _obj.delete(value);\n _obj.add(newValue);\n },\n };\n }\n }\n}\n\nexport function shallowCopy<T>(value: T): T {\n if (R.isPlainObject(value)) {\n return Object.assign({}, value);\n } else if (R.isArray(value)) {\n return value.slice() as T;\n } else if (isDirectInstanceOf(value, Map)) {\n return new Map(value.entries()) as T;\n } else if (isDirectInstanceOf(value, Set)) {\n return new Set(value.values()) as T;\n } else if (isDirectInstanceOf(value, Date)) {\n return new Date(value) as T;\n }\n return value;\n}\n\nexport async function deepCopy<T>(source: T): Promise<T> {\n if (isObjectType(source) && \"clone\" in source && isFunction(source.clone)) {\n return await (source as any).clone();\n }\n const copy = shallowCopy(source);\n await traverseObject(source, async ({ value, path }) => {\n const result = await deepCopy(value);\n setProp(copy, path, result);\n });\n return copy;\n}\n\ntype Bounded =\n | {\n name: string;\n value: any;\n }\n | AnyConstructable;\n\nexport function toBoundedFunction<T extends AnyFn>(fn: T, binds: [Bounded, ...Bounded[]]) {\n Object.assign(fn, { [toBoundedFunction.symbol]: binds });\n return fn;\n}\ntoBoundedFunction.symbol = Symbol(\"bounded\");\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport function getFunctionBinds<T extends Function>(fn: T) {\n const target = getProp(fn, [toBoundedFunction.symbol], []);\n return target as Bounded[];\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SerializableClass, Serializable } from './internals/serializable.js';
|
|
2
|
-
import { ClassConstructor, NamedFunction, AnyFn
|
|
2
|
+
import { AnyConstructable, ClassConstructor, NamedFunction, AnyFn } from './internals/types.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
@@ -66,6 +66,7 @@ declare function getFunctionBinds<T extends Function>(fn: T): Bounded[];
|
|
|
66
66
|
* SPDX-License-Identifier: Apache-2.0
|
|
67
67
|
*/
|
|
68
68
|
|
|
69
|
+
declare function isFunctionDeserializationAllowed(): boolean;
|
|
69
70
|
interface SerializeFactory<A = unknown, B = unknown> {
|
|
70
71
|
ref: ClassConstructor<A> | NamedFunction<A>;
|
|
71
72
|
createEmpty?: () => A;
|
|
@@ -91,8 +92,13 @@ declare class Serializer {
|
|
|
91
92
|
static hasFactory(clsName: string): boolean;
|
|
92
93
|
static serialize<T>(rawData: T): Promise<string>;
|
|
93
94
|
/** @internal */
|
|
94
|
-
static deserializeWithMeta<T = any>(raw: string, extraClasses?: SerializableClass<unknown>[], keepPlain?: boolean
|
|
95
|
-
|
|
95
|
+
static deserializeWithMeta<T = any>(raw: string, extraClasses?: SerializableClass<unknown>[], keepPlain?: boolean, options?: {
|
|
96
|
+
allowFunctionDeserialization?: boolean;
|
|
97
|
+
}): Promise<RootNode<T>>;
|
|
98
|
+
private static _deserializeWithMetaInner;
|
|
99
|
+
static deserialize<T = any>(raw: string, extraClasses?: SerializableClass<unknown>[], keepPlain?: boolean, options?: {
|
|
100
|
+
allowFunctionDeserialization?: boolean;
|
|
101
|
+
}): Promise<T>;
|
|
96
102
|
protected static _createOutputBuilder<T>(): {
|
|
97
103
|
_container: T;
|
|
98
104
|
get(): T;
|
|
@@ -101,4 +107,4 @@ declare class Serializer {
|
|
|
101
107
|
};
|
|
102
108
|
}
|
|
103
109
|
|
|
104
|
-
export { ClassConstructorPlaceholder as C, RefPlaceholder as R, type SerializeFactory as S, Serializer as a,
|
|
110
|
+
export { ClassConstructorPlaceholder as C, RefPlaceholder as R, type SerializeFactory as S, Serializer as a, type RootNode as b, type SerializerNode as c, SerializerRefIdentifier as d, SerializerSelfRefIdentifier as e, deepCopy as f, extractClassName as g, getFunctionBinds as h, isFunctionDeserializationAllowed as i, isRootNode as j, isSerializationRequired as k, isSerializerNode as l, traverseObject as m, traverseWithUpdate as n, primitiveToSerializableClass as p, shallowCopy as s, toBoundedFunction as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SerializableClass, Serializable } from './internals/serializable.cjs';
|
|
2
|
-
import { ClassConstructor, NamedFunction, AnyFn
|
|
2
|
+
import { AnyConstructable, ClassConstructor, NamedFunction, AnyFn } from './internals/types.cjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
@@ -66,6 +66,7 @@ declare function getFunctionBinds<T extends Function>(fn: T): Bounded[];
|
|
|
66
66
|
* SPDX-License-Identifier: Apache-2.0
|
|
67
67
|
*/
|
|
68
68
|
|
|
69
|
+
declare function isFunctionDeserializationAllowed(): boolean;
|
|
69
70
|
interface SerializeFactory<A = unknown, B = unknown> {
|
|
70
71
|
ref: ClassConstructor<A> | NamedFunction<A>;
|
|
71
72
|
createEmpty?: () => A;
|
|
@@ -91,8 +92,13 @@ declare class Serializer {
|
|
|
91
92
|
static hasFactory(clsName: string): boolean;
|
|
92
93
|
static serialize<T>(rawData: T): Promise<string>;
|
|
93
94
|
/** @internal */
|
|
94
|
-
static deserializeWithMeta<T = any>(raw: string, extraClasses?: SerializableClass<unknown>[], keepPlain?: boolean
|
|
95
|
-
|
|
95
|
+
static deserializeWithMeta<T = any>(raw: string, extraClasses?: SerializableClass<unknown>[], keepPlain?: boolean, options?: {
|
|
96
|
+
allowFunctionDeserialization?: boolean;
|
|
97
|
+
}): Promise<RootNode<T>>;
|
|
98
|
+
private static _deserializeWithMetaInner;
|
|
99
|
+
static deserialize<T = any>(raw: string, extraClasses?: SerializableClass<unknown>[], keepPlain?: boolean, options?: {
|
|
100
|
+
allowFunctionDeserialization?: boolean;
|
|
101
|
+
}): Promise<T>;
|
|
96
102
|
protected static _createOutputBuilder<T>(): {
|
|
97
103
|
_container: T;
|
|
98
104
|
get(): T;
|
|
@@ -101,4 +107,4 @@ declare class Serializer {
|
|
|
101
107
|
};
|
|
102
108
|
}
|
|
103
109
|
|
|
104
|
-
export { ClassConstructorPlaceholder as C, RefPlaceholder as R, type SerializeFactory as S, Serializer as a,
|
|
110
|
+
export { ClassConstructorPlaceholder as C, RefPlaceholder as R, type SerializeFactory as S, Serializer as a, type RootNode as b, type SerializerNode as c, SerializerRefIdentifier as d, SerializerSelfRefIdentifier as e, deepCopy as f, extractClassName as g, getFunctionBinds as h, isFunctionDeserializationAllowed as i, isRootNode as j, isSerializationRequired as k, isSerializerNode as l, traverseObject as m, traverseWithUpdate as n, primitiveToSerializableClass as p, shallowCopy as s, toBoundedFunction as t };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/serve/server.ts"],"names":["Server","factories","Map","members","metadataByInput","config","registerFactory","ref","factory","override","get","set","Error","register","input","metadata","getFactory","includes","push","registerMany","forEach","item","deregister","removeFromArray","obj","traversePrototypeChain","name"],"mappings":";;;;;;;AAgBO,MAAeA,MAAAA,CAAAA;EAhBtB;;;;;EAuBE,OAAuBC,SAAAA,uBAAgBC,GAAAA,EAAAA;AAEvBC,EAAAA,OAAAA,GAAoB,EAAA;AACjBC,EAAAA,eAAAA,uBAAsBF,GAAAA,EAAAA;AAEzC,EAAA,WAAA,CAAsBG,MAAAA,EAAiB;SAAjBA,MAAAA,GAAAA,MAAAA;AAAkB;AAExC,EAAA,OAAcC,eAAAA,CAEZC,GAAAA,EACAC,OAAAA,EACAC,QAAAA,GAAW,KAAA,EACL;AACN,IAAA,IAAI,CAAC,IAAA,CAAKR,SAAAA,CAAUS,GAAAA,CAAIH,GAAAA,KAAQE,QAAAA,EAAU;AACxC,MAAA,IAAA,CAAKR,SAAAA,CAAUU,GAAAA,CAAIJ,GAAAA,EAAKC,OAAAA,CAAAA;AAC1B,
|
|
1
|
+
{"version":3,"sources":["../../src/serve/server.ts"],"names":["Server","factories","Map","members","metadataByInput","config","registerFactory","ref","factory","override","get","set","Error","register","input","metadata","getFactory","includes","push","registerMany","forEach","item","deregister","removeFromArray","obj","traversePrototypeChain","name"],"mappings":";;;;;;;AAgBO,MAAeA,MAAAA,CAAAA;EAhBtB;;;;;EAuBE,OAAuBC,SAAAA,uBAAgBC,GAAAA,EAAAA;AAEvBC,EAAAA,OAAAA,GAAoB,EAAA;AACjBC,EAAAA,eAAAA,uBAAsBF,GAAAA,EAAAA;AAEzC,EAAA,WAAA,CAAsBG,MAAAA,EAAiB;SAAjBA,MAAAA,GAAAA,MAAAA;AAAkB,EAAA;AAExC,EAAA,OAAcC,eAAAA,CAEZC,GAAAA,EACAC,OAAAA,EACAC,QAAAA,GAAW,KAAA,EACL;AACN,IAAA,IAAI,CAAC,IAAA,CAAKR,SAAAA,CAAUS,GAAAA,CAAIH,GAAAA,KAAQE,QAAAA,EAAU;AACxC,MAAA,IAAA,CAAKR,SAAAA,CAAUU,GAAAA,CAAIJ,GAAAA,EAAKC,OAAAA,CAAAA;AAC1B,IAAA,CAAA,MAAA,IAAW,IAAA,CAAKP,SAAAA,CAAUS,GAAAA,CAAIH,GAAAA,MAASC,OAAAA,EAAS;AAC9C,MAAA,MAAM,IAAII,MAAM,CAAA,8BAAA,CAAgC,CAAA;AAClD,IAAA;AACF,EAAA;AAEOC,EAAAA,QAAAA,CAASC,OAAeC,QAAAA,EAA4B;AAEzD,IAAA,IAAA,CAAKC,WAAWF,KAAAA,CAAAA;AAChB,IAAA,IAAI,CAAC,IAAA,CAAKX,OAAAA,CAAQc,QAAAA,CAASH,KAAAA,CAAAA,EAAQ;AACjC,MAAA,IAAA,CAAKX,OAAAA,CAAQe,KAAKJ,KAAAA,CAAAA;AAClB,MAAA,IAAIC,QAAAA,EAAU;AACZ,QAAA,IAAA,CAAKX,eAAAA,CAAgBO,GAAAA,CAAIG,KAAAA,EAAOC,QAAAA,CAAAA;AAClC,MAAA;AACF,IAAA;AACA,IAAA,OAAO,IAAA;AACT,EAAA;AAEOI,EAAAA,YAAAA,CAAaL,KAAAA,EAAuB;AACzCA,IAAAA,KAAAA,CAAMM,QAAQ,CAACC,IAAAA,KAAS,IAAA,CAAKR,QAAAA,CAASQ,IAAAA,CAAAA,CAAAA;AACtC,IAAA,OAAO,IAAA;AACT,EAAA;AAEOC,EAAAA,UAAAA,CAAWR,KAAAA,EAAqB;AACrCS,IAAAA,yBAAAA,CAAgB,IAAA,CAAKpB,SAASW,KAAAA,CAAAA;AAC9B,IAAA,OAAO,IAAA;AACT,EAAA;AAEUE,EAAAA,UAAAA,CAAWF,KAAAA,EAAiD;AACpE,IAAA,KAAA,MAAWU,GAAAA,IAAOC,oCAAAA,CAAuBX,KAAAA,CAAAA,EAAQ;AAC/C,MAAA,MAAMN,UAAW,IAAA,CAAK,WAAA,CAA8BP,SAAAA,CAAUS,GAAAA,CAC3Dc,IAA8B,WAAW,CAAA;AAE5C,MAAA,IAAIhB,OAAAA,EAAS;AACX,QAAA,OAAOA,OAAAA;AACT,MAAA;AACF,IAAA;AACA,IAAA,MAAM,IAAII,KAAAA,CAAM,CAAA,0BAAA,EAA6BE,KAAAA,CAAM,WAAA,CAAYY,IAAI,CAAA,CAAA,CAAG,CAAA;AACxE,EAAA;AAGF","file":"server.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { removeFromArray } from \"@/internals/helpers/array.js\";\nimport { traversePrototypeChain } from \"@/internals/helpers/prototype.js\";\n\ntype ServerFactory<TInput, TInternal> = (\n input: TInput,\n config?: Record<string, any>,\n) => Promise<TInternal>;\nexport type FactoryMember<TInput> = abstract new (\n ...args: any[]\n) => TInput | (new (...args: any[]) => TInput) | ((...args: any[]) => TInput);\n\nexport abstract class Server<\n TInput extends object = object,\n TInternal extends object = object,\n TConfig extends object = object,\n TMetadata extends object = object,\n> {\n // @ts-expect-error\n public static readonly factories = new Map<object, ServerFactory<TInput, TInternal>>();\n\n public readonly members: TInput[] = [];\n protected readonly metadataByInput = new Map<TInput, TMetadata>();\n\n constructor(protected config: TConfig) {}\n\n public static registerFactory<TInput2 extends object, TInternal2 extends object>(\n this: typeof Server<TInput2, TInternal2, any>,\n ref: FactoryMember<TInput2>,\n factory: ServerFactory<TInput2, TInternal2>,\n override = false,\n ): void {\n if (!this.factories.get(ref) || override) {\n this.factories.set(ref, factory);\n } else if (this.factories.get(ref) !== factory) {\n throw new Error(`Factory is already registered.`);\n }\n }\n\n public register(input: TInput, metadata?: TMetadata): this {\n // check if the type has a factory registered\n this.getFactory(input);\n if (!this.members.includes(input)) {\n this.members.push(input);\n if (metadata) {\n this.metadataByInput.set(input, metadata);\n }\n }\n return this;\n }\n\n public registerMany(input: TInput[]): this {\n input.forEach((item) => this.register(item));\n return this;\n }\n\n public deregister(input: TInput): this {\n removeFromArray(this.members, input);\n return this;\n }\n\n protected getFactory(input: TInput): ServerFactory<TInput, TInternal> {\n for (const obj of traversePrototypeChain(input)) {\n const factory = (this.constructor as typeof Server).factories.get(\n (obj as FactoryMember<TInput>).constructor,\n );\n if (factory) {\n return factory;\n }\n }\n throw new Error(`No factory registered for ${input.constructor.name}.`);\n }\n\n public abstract serve(): void;\n}\n"]}
|
package/dist/serve/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/serve/server.ts"],"names":["Server","factories","Map","members","metadataByInput","config","registerFactory","ref","factory","override","get","set","Error","register","input","metadata","getFactory","includes","push","registerMany","forEach","item","deregister","removeFromArray","obj","traversePrototypeChain","name"],"mappings":";;;;;AAgBO,MAAeA,MAAAA,CAAAA;EAhBtB;;;;;EAuBE,OAAuBC,SAAAA,uBAAgBC,GAAAA,EAAAA;AAEvBC,EAAAA,OAAAA,GAAoB,EAAA;AACjBC,EAAAA,eAAAA,uBAAsBF,GAAAA,EAAAA;AAEzC,EAAA,WAAA,CAAsBG,MAAAA,EAAiB;SAAjBA,MAAAA,GAAAA,MAAAA;AAAkB;AAExC,EAAA,OAAcC,eAAAA,CAEZC,GAAAA,EACAC,OAAAA,EACAC,QAAAA,GAAW,KAAA,EACL;AACN,IAAA,IAAI,CAAC,IAAA,CAAKR,SAAAA,CAAUS,GAAAA,CAAIH,GAAAA,KAAQE,QAAAA,EAAU;AACxC,MAAA,IAAA,CAAKR,SAAAA,CAAUU,GAAAA,CAAIJ,GAAAA,EAAKC,OAAAA,CAAAA;AAC1B,
|
|
1
|
+
{"version":3,"sources":["../../src/serve/server.ts"],"names":["Server","factories","Map","members","metadataByInput","config","registerFactory","ref","factory","override","get","set","Error","register","input","metadata","getFactory","includes","push","registerMany","forEach","item","deregister","removeFromArray","obj","traversePrototypeChain","name"],"mappings":";;;;;AAgBO,MAAeA,MAAAA,CAAAA;EAhBtB;;;;;EAuBE,OAAuBC,SAAAA,uBAAgBC,GAAAA,EAAAA;AAEvBC,EAAAA,OAAAA,GAAoB,EAAA;AACjBC,EAAAA,eAAAA,uBAAsBF,GAAAA,EAAAA;AAEzC,EAAA,WAAA,CAAsBG,MAAAA,EAAiB;SAAjBA,MAAAA,GAAAA,MAAAA;AAAkB,EAAA;AAExC,EAAA,OAAcC,eAAAA,CAEZC,GAAAA,EACAC,OAAAA,EACAC,QAAAA,GAAW,KAAA,EACL;AACN,IAAA,IAAI,CAAC,IAAA,CAAKR,SAAAA,CAAUS,GAAAA,CAAIH,GAAAA,KAAQE,QAAAA,EAAU;AACxC,MAAA,IAAA,CAAKR,SAAAA,CAAUU,GAAAA,CAAIJ,GAAAA,EAAKC,OAAAA,CAAAA;AAC1B,IAAA,CAAA,MAAA,IAAW,IAAA,CAAKP,SAAAA,CAAUS,GAAAA,CAAIH,GAAAA,MAASC,OAAAA,EAAS;AAC9C,MAAA,MAAM,IAAII,MAAM,CAAA,8BAAA,CAAgC,CAAA;AAClD,IAAA;AACF,EAAA;AAEOC,EAAAA,QAAAA,CAASC,OAAeC,QAAAA,EAA4B;AAEzD,IAAA,IAAA,CAAKC,WAAWF,KAAAA,CAAAA;AAChB,IAAA,IAAI,CAAC,IAAA,CAAKX,OAAAA,CAAQc,QAAAA,CAASH,KAAAA,CAAAA,EAAQ;AACjC,MAAA,IAAA,CAAKX,OAAAA,CAAQe,KAAKJ,KAAAA,CAAAA;AAClB,MAAA,IAAIC,QAAAA,EAAU;AACZ,QAAA,IAAA,CAAKX,eAAAA,CAAgBO,GAAAA,CAAIG,KAAAA,EAAOC,QAAAA,CAAAA;AAClC,MAAA;AACF,IAAA;AACA,IAAA,OAAO,IAAA;AACT,EAAA;AAEOI,EAAAA,YAAAA,CAAaL,KAAAA,EAAuB;AACzCA,IAAAA,KAAAA,CAAMM,QAAQ,CAACC,IAAAA,KAAS,IAAA,CAAKR,QAAAA,CAASQ,IAAAA,CAAAA,CAAAA;AACtC,IAAA,OAAO,IAAA;AACT,EAAA;AAEOC,EAAAA,UAAAA,CAAWR,KAAAA,EAAqB;AACrCS,IAAAA,eAAAA,CAAgB,IAAA,CAAKpB,SAASW,KAAAA,CAAAA;AAC9B,IAAA,OAAO,IAAA;AACT,EAAA;AAEUE,EAAAA,UAAAA,CAAWF,KAAAA,EAAiD;AACpE,IAAA,KAAA,MAAWU,GAAAA,IAAOC,sBAAAA,CAAuBX,KAAAA,CAAAA,EAAQ;AAC/C,MAAA,MAAMN,UAAW,IAAA,CAAK,WAAA,CAA8BP,SAAAA,CAAUS,GAAAA,CAC3Dc,IAA8B,WAAW,CAAA;AAE5C,MAAA,IAAIhB,OAAAA,EAAS;AACX,QAAA,OAAOA,OAAAA;AACT,MAAA;AACF,IAAA;AACA,IAAA,MAAM,IAAII,KAAAA,CAAM,CAAA,0BAAA,EAA6BE,KAAAA,CAAM,WAAA,CAAYY,IAAI,CAAA,CAAA,CAAG,CAAA;AACxE,EAAA;AAGF","file":"server.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { removeFromArray } from \"@/internals/helpers/array.js\";\nimport { traversePrototypeChain } from \"@/internals/helpers/prototype.js\";\n\ntype ServerFactory<TInput, TInternal> = (\n input: TInput,\n config?: Record<string, any>,\n) => Promise<TInternal>;\nexport type FactoryMember<TInput> = abstract new (\n ...args: any[]\n) => TInput | (new (...args: any[]) => TInput) | ((...args: any[]) => TInput);\n\nexport abstract class Server<\n TInput extends object = object,\n TInternal extends object = object,\n TConfig extends object = object,\n TMetadata extends object = object,\n> {\n // @ts-expect-error\n public static readonly factories = new Map<object, ServerFactory<TInput, TInternal>>();\n\n public readonly members: TInput[] = [];\n protected readonly metadataByInput = new Map<TInput, TMetadata>();\n\n constructor(protected config: TConfig) {}\n\n public static registerFactory<TInput2 extends object, TInternal2 extends object>(\n this: typeof Server<TInput2, TInternal2, any>,\n ref: FactoryMember<TInput2>,\n factory: ServerFactory<TInput2, TInternal2>,\n override = false,\n ): void {\n if (!this.factories.get(ref) || override) {\n this.factories.set(ref, factory);\n } else if (this.factories.get(ref) !== factory) {\n throw new Error(`Factory is already registered.`);\n }\n }\n\n public register(input: TInput, metadata?: TMetadata): this {\n // check if the type has a factory registered\n this.getFactory(input);\n if (!this.members.includes(input)) {\n this.members.push(input);\n if (metadata) {\n this.metadataByInput.set(input, metadata);\n }\n }\n return this;\n }\n\n public registerMany(input: TInput[]): this {\n input.forEach((item) => this.register(item));\n return this;\n }\n\n public deregister(input: TInput): this {\n removeFromArray(this.members, input);\n return this;\n }\n\n protected getFactory(input: TInput): ServerFactory<TInput, TInternal> {\n for (const obj of traversePrototypeChain(input)) {\n const factory = (this.constructor as typeof Server).factories.get(\n (obj as FactoryMember<TInput>).constructor,\n );\n if (factory) {\n return factory;\n }\n }\n throw new Error(`No factory registered for ${input.constructor.name}.`);\n }\n\n public abstract serve(): void;\n}\n"]}
|
package/dist/template.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/template.ts"],"names":["PromptTemplateError","FrameworkError","template","message","context","ValidationPromptTemplateError","PromptTemplate","Serializable","config","functions","trim","text","render","replace","defaults","schema","toJsonSchema","escape","Boolean","customTags","register","validateInput","input","validator","createSchemaValidator","coerceTypes","success","errors","fork","customizer","clone","newConfig","isPlainObject","ValueError","update","undefined","Object","assign","updatedInput","pickBy","_","k","getProp","view","output","Mustache","tags","identity","match","loadSnapshot","data","createSnapshot"],"mappings":"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","file":"template.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { FrameworkError, ValueError } from \"@/errors.js\";\nimport { ObjectLike, PlainObject } from \"@/internals/types.js\";\nimport { clone, identity, isPlainObject, pickBy } from \"remeda\";\nimport Mustache from \"mustache\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { z, ZodType } from \"zod\";\nimport { createSchemaValidator, toJsonSchema } from \"@/internals/helpers/schema.js\";\nimport type { SchemaObject, ValidateFunction } from \"ajv\";\nimport { getProp } from \"@/internals/helpers/object.js\";\n\ntype PostInfer<T> = T extends PlainObject\n ? {\n [K in keyof T]: T[K] extends Date ? string : T[K];\n }\n : T;\ntype InferValue<T> = T extends ZodType<infer A> ? PostInfer<A> : never;\nexport type PromptTemplateRenderFn<K extends ZodType> = (this: InferValue<K>) => any;\n\nexport type PromptTemplateRenderInput<T extends ZodType, T2 extends z.input<T> = z.input<T>> = {\n [K in Extract<keyof T2, string>]: T2[K] | PromptTemplateRenderFn<T> | undefined;\n};\n\nexport interface PromptTemplateInput<T extends ZodType> {\n template: string;\n customTags?: [string, string];\n escape?: boolean;\n schema: SchemaObject;\n defaults?: Partial<InferValue<T>>;\n functions?: Record<string, PromptTemplateRenderFn<T>>;\n}\n\ntype PromptTemplateConstructor<T extends ZodType, N> = N extends ZodType\n ? Omit<PromptTemplateInput<N>, \"schema\" | \"functions\" | \"defaults\"> & {\n schema: N;\n functions?: Record<string, PromptTemplateRenderFn<N | T>>;\n defaults?: Partial<InferValue<N | T>>;\n }\n : Omit<PromptTemplateInput<T>, \"schema\"> & { schema: T | SchemaObject };\n\ntype Customizer<T extends ZodType, N> =\n | ((config: Required<PromptTemplateInput<T>>) => PromptTemplateConstructor<T, N>)\n | ((config: Required<PromptTemplateInput<T>>) => void);\n\nexport class PromptTemplateError<T extends ZodType> extends FrameworkError {\n template: PromptTemplate<T>;\n\n constructor(message: string, template: PromptTemplate<T>, context?: ObjectLike) {\n super(message, [], {\n context,\n });\n this.template = template;\n }\n}\n\nexport class ValidationPromptTemplateError<T extends ZodType> extends PromptTemplateError<T> {}\n\nexport class PromptTemplate<T extends ZodType> extends Serializable {\n protected config: Required<PromptTemplateInput<T>>;\n\n public static functions = {\n trim: () => (text: string, render: (value: string) => string) => {\n return render(text).replace(/(,\\s*$)/g, \"\");\n },\n };\n\n constructor(config: Omit<PromptTemplateInput<T>, \"schema\"> & { schema: T | SchemaObject }) {\n super();\n this.config = {\n ...config,\n defaults: (config.defaults ?? {}) as Partial<InferValue<T>>,\n schema: toJsonSchema(config.schema),\n escape: Boolean(config.escape),\n customTags: config.customTags ?? [\"{{\", \"}}\"],\n functions: {\n ...PromptTemplate.functions,\n ...config.functions,\n },\n };\n }\n\n static {\n this.register();\n }\n\n validateInput(input: unknown): asserts input is T {\n const validator = createSchemaValidator(this.config.schema, {\n coerceTypes: false,\n }) as ValidateFunction<T>;\n\n const success = validator(input);\n if (!success) {\n throw new ValidationPromptTemplateError(\n `Template cannot be rendered because input does not adhere to the template schema.`,\n this,\n {\n errors: validator.errors,\n },\n );\n }\n }\n\n fork(customizer: Customizer<T, SchemaObject>): PromptTemplate<T>;\n fork<R extends ZodType>(customizer: Customizer<T, R>): PromptTemplate<R>;\n fork<R extends ZodType>(\n customizer: Customizer<T, SchemaObject> | Customizer<T, R>,\n ): PromptTemplate<T | R> {\n const config = clone(this.config);\n const newConfig = customizer?.(config) ?? config;\n if (!isPlainObject(newConfig)) {\n throw new ValueError(\"Return type from customizer must be a config or nothing.\");\n }\n return new PromptTemplate(newConfig);\n }\n\n update(input: Partial<PromptTemplateInput<T>>) {\n if (input.schema) {\n this.config.schema = input.schema;\n }\n if (input.template !== undefined) {\n this.config.template = input.template;\n }\n if (input.functions) {\n Object.assign(this.config.functions, input.functions);\n }\n if (input.defaults) {\n Object.assign(this.config.defaults, input.defaults);\n }\n if (input.escape !== undefined) {\n this.config.escape = input.escape;\n }\n if (input.customTags) {\n this.config.customTags = input.customTags;\n }\n }\n\n render(input: PromptTemplateRenderInput<T>): string {\n const updatedInput: typeof input = { ...input };\n Object.assign(\n updatedInput,\n pickBy(this.config.defaults, (_, k) => getProp(updatedInput, [k]) === undefined),\n );\n\n this.validateInput(updatedInput);\n const view: Record<string, any> = {\n ...this.config.functions,\n ...updatedInput,\n };\n\n const output = Mustache.render(\n this.config.template,\n view,\n {},\n {\n tags: this.config.customTags,\n ...(!this.config.escape && {\n escape: identity(),\n }),\n },\n );\n\n if (output.match(/\\[object (.+)]/)) {\n throw new ValidationPromptTemplateError(\n \"Rendered template contains incorrectly serialized value!\",\n this,\n {\n output,\n },\n );\n }\n\n return output;\n }\n\n loadSnapshot(data: ReturnType<typeof this.createSnapshot>) {\n this.config = data.config;\n }\n\n createSnapshot() {\n return {\n config: this.config,\n };\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace PromptTemplate {\n export type infer<T> = PromptTemplate<ZodType<T>>;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/template.ts"],"names":["PromptTemplateError","FrameworkError","template","message","context","ValidationPromptTemplateError","PromptTemplate","Serializable","config","functions","trim","text","render","replace","defaults","schema","toJsonSchema","escape","Boolean","customTags","register","validateInput","input","validator","createSchemaValidator","coerceTypes","success","errors","fork","customizer","clone","newConfig","isPlainObject","ValueError","update","undefined","Object","assign","updatedInput","pickBy","_","k","getProp","view","output","Mustache","tags","identity","match","loadSnapshot","data","createSnapshot"],"mappings":"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","file":"template.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { FrameworkError, ValueError } from \"@/errors.js\";\nimport { ObjectLike, PlainObject } from \"@/internals/types.js\";\nimport { clone, identity, isPlainObject, pickBy } from \"remeda\";\nimport Mustache from \"mustache\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { z, ZodType } from \"zod\";\nimport { createSchemaValidator, toJsonSchema } from \"@/internals/helpers/schema.js\";\nimport type { SchemaObject, ValidateFunction } from \"ajv\";\nimport { getProp } from \"@/internals/helpers/object.js\";\n\ntype PostInfer<T> = T extends PlainObject\n ? {\n [K in keyof T]: T[K] extends Date ? string : T[K];\n }\n : T;\ntype InferValue<T> = T extends ZodType<infer A> ? PostInfer<A> : never;\nexport type PromptTemplateRenderFn<K extends ZodType> = (this: InferValue<K>) => any;\n\nexport type PromptTemplateRenderInput<T extends ZodType, T2 extends z.input<T> = z.input<T>> = {\n [K in Extract<keyof T2, string>]: T2[K] | PromptTemplateRenderFn<T> | undefined;\n};\n\nexport interface PromptTemplateInput<T extends ZodType> {\n template: string;\n customTags?: [string, string];\n escape?: boolean;\n schema: SchemaObject;\n defaults?: Partial<InferValue<T>>;\n functions?: Record<string, PromptTemplateRenderFn<T>>;\n}\n\ntype PromptTemplateConstructor<T extends ZodType, N> = N extends ZodType\n ? Omit<PromptTemplateInput<N>, \"schema\" | \"functions\" | \"defaults\"> & {\n schema: N;\n functions?: Record<string, PromptTemplateRenderFn<N | T>>;\n defaults?: Partial<InferValue<N | T>>;\n }\n : Omit<PromptTemplateInput<T>, \"schema\"> & { schema: T | SchemaObject };\n\ntype Customizer<T extends ZodType, N> =\n | ((config: Required<PromptTemplateInput<T>>) => PromptTemplateConstructor<T, N>)\n | ((config: Required<PromptTemplateInput<T>>) => void);\n\nexport class PromptTemplateError<T extends ZodType> extends FrameworkError {\n template: PromptTemplate<T>;\n\n constructor(message: string, template: PromptTemplate<T>, context?: ObjectLike) {\n super(message, [], {\n context,\n });\n this.template = template;\n }\n}\n\nexport class ValidationPromptTemplateError<T extends ZodType> extends PromptTemplateError<T> {}\n\nexport class PromptTemplate<T extends ZodType> extends Serializable {\n protected config: Required<PromptTemplateInput<T>>;\n\n public static functions = {\n trim: () => (text: string, render: (value: string) => string) => {\n return render(text).replace(/(,\\s*$)/g, \"\");\n },\n };\n\n constructor(config: Omit<PromptTemplateInput<T>, \"schema\"> & { schema: T | SchemaObject }) {\n super();\n this.config = {\n ...config,\n defaults: (config.defaults ?? {}) as Partial<InferValue<T>>,\n schema: toJsonSchema(config.schema),\n escape: Boolean(config.escape),\n customTags: config.customTags ?? [\"{{\", \"}}\"],\n functions: {\n ...PromptTemplate.functions,\n ...config.functions,\n },\n };\n }\n\n static {\n this.register();\n }\n\n validateInput(input: unknown): asserts input is T {\n const validator = createSchemaValidator(this.config.schema, {\n coerceTypes: false,\n }) as ValidateFunction<T>;\n\n const success = validator(input);\n if (!success) {\n throw new ValidationPromptTemplateError(\n `Template cannot be rendered because input does not adhere to the template schema.`,\n this,\n {\n errors: validator.errors,\n },\n );\n }\n }\n\n fork(customizer: Customizer<T, SchemaObject>): PromptTemplate<T>;\n fork<R extends ZodType>(customizer: Customizer<T, R>): PromptTemplate<R>;\n fork<R extends ZodType>(\n customizer: Customizer<T, SchemaObject> | Customizer<T, R>,\n ): PromptTemplate<T | R> {\n const config = clone(this.config);\n const newConfig = customizer?.(config) ?? config;\n if (!isPlainObject(newConfig)) {\n throw new ValueError(\"Return type from customizer must be a config or nothing.\");\n }\n return new PromptTemplate(newConfig);\n }\n\n update(input: Partial<PromptTemplateInput<T>>) {\n if (input.schema) {\n this.config.schema = input.schema;\n }\n if (input.template !== undefined) {\n this.config.template = input.template;\n }\n if (input.functions) {\n Object.assign(this.config.functions, input.functions);\n }\n if (input.defaults) {\n Object.assign(this.config.defaults, input.defaults);\n }\n if (input.escape !== undefined) {\n this.config.escape = input.escape;\n }\n if (input.customTags) {\n this.config.customTags = input.customTags;\n }\n }\n\n render(input: PromptTemplateRenderInput<T>): string {\n const updatedInput: typeof input = { ...input };\n Object.assign(\n updatedInput,\n pickBy(this.config.defaults, (_, k) => getProp(updatedInput, [k]) === undefined),\n );\n\n this.validateInput(updatedInput);\n const view: Record<string, any> = {\n ...this.config.functions,\n ...updatedInput,\n };\n\n const output = Mustache.render(\n this.config.template,\n view,\n {},\n {\n tags: this.config.customTags,\n ...(!this.config.escape && {\n escape: identity(),\n }),\n },\n );\n\n if (output.match(/\\[object (.+)]/)) {\n throw new ValidationPromptTemplateError(\n \"Rendered template contains incorrectly serialized value!\",\n this,\n {\n output,\n },\n );\n }\n\n return output;\n }\n\n loadSnapshot(data: ReturnType<typeof this.createSnapshot>) {\n this.config = data.config;\n }\n\n createSnapshot() {\n return {\n config: this.config,\n };\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace PromptTemplate {\n export type infer<T> = PromptTemplate<ZodType<T>>;\n}\n"]}
|
package/dist/template.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/template.ts"],"names":["PromptTemplateError","FrameworkError","template","message","context","ValidationPromptTemplateError","PromptTemplate","Serializable","config","functions","trim","text","render","replace","defaults","schema","toJsonSchema","escape","Boolean","customTags","register","validateInput","input","validator","createSchemaValidator","coerceTypes","success","errors","fork","customizer","clone","newConfig","isPlainObject","ValueError","update","undefined","Object","assign","updatedInput","pickBy","_","k","getProp","view","output","Mustache","tags","identity","match","loadSnapshot","data","createSnapshot"],"mappings":"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","file":"template.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { FrameworkError, ValueError } from \"@/errors.js\";\nimport { ObjectLike, PlainObject } from \"@/internals/types.js\";\nimport { clone, identity, isPlainObject, pickBy } from \"remeda\";\nimport Mustache from \"mustache\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { z, ZodType } from \"zod\";\nimport { createSchemaValidator, toJsonSchema } from \"@/internals/helpers/schema.js\";\nimport type { SchemaObject, ValidateFunction } from \"ajv\";\nimport { getProp } from \"@/internals/helpers/object.js\";\n\ntype PostInfer<T> = T extends PlainObject\n ? {\n [K in keyof T]: T[K] extends Date ? string : T[K];\n }\n : T;\ntype InferValue<T> = T extends ZodType<infer A> ? PostInfer<A> : never;\nexport type PromptTemplateRenderFn<K extends ZodType> = (this: InferValue<K>) => any;\n\nexport type PromptTemplateRenderInput<T extends ZodType, T2 extends z.input<T> = z.input<T>> = {\n [K in Extract<keyof T2, string>]: T2[K] | PromptTemplateRenderFn<T> | undefined;\n};\n\nexport interface PromptTemplateInput<T extends ZodType> {\n template: string;\n customTags?: [string, string];\n escape?: boolean;\n schema: SchemaObject;\n defaults?: Partial<InferValue<T>>;\n functions?: Record<string, PromptTemplateRenderFn<T>>;\n}\n\ntype PromptTemplateConstructor<T extends ZodType, N> = N extends ZodType\n ? Omit<PromptTemplateInput<N>, \"schema\" | \"functions\" | \"defaults\"> & {\n schema: N;\n functions?: Record<string, PromptTemplateRenderFn<N | T>>;\n defaults?: Partial<InferValue<N | T>>;\n }\n : Omit<PromptTemplateInput<T>, \"schema\"> & { schema: T | SchemaObject };\n\ntype Customizer<T extends ZodType, N> =\n | ((config: Required<PromptTemplateInput<T>>) => PromptTemplateConstructor<T, N>)\n | ((config: Required<PromptTemplateInput<T>>) => void);\n\nexport class PromptTemplateError<T extends ZodType> extends FrameworkError {\n template: PromptTemplate<T>;\n\n constructor(message: string, template: PromptTemplate<T>, context?: ObjectLike) {\n super(message, [], {\n context,\n });\n this.template = template;\n }\n}\n\nexport class ValidationPromptTemplateError<T extends ZodType> extends PromptTemplateError<T> {}\n\nexport class PromptTemplate<T extends ZodType> extends Serializable {\n protected config: Required<PromptTemplateInput<T>>;\n\n public static functions = {\n trim: () => (text: string, render: (value: string) => string) => {\n return render(text).replace(/(,\\s*$)/g, \"\");\n },\n };\n\n constructor(config: Omit<PromptTemplateInput<T>, \"schema\"> & { schema: T | SchemaObject }) {\n super();\n this.config = {\n ...config,\n defaults: (config.defaults ?? {}) as Partial<InferValue<T>>,\n schema: toJsonSchema(config.schema),\n escape: Boolean(config.escape),\n customTags: config.customTags ?? [\"{{\", \"}}\"],\n functions: {\n ...PromptTemplate.functions,\n ...config.functions,\n },\n };\n }\n\n static {\n this.register();\n }\n\n validateInput(input: unknown): asserts input is T {\n const validator = createSchemaValidator(this.config.schema, {\n coerceTypes: false,\n }) as ValidateFunction<T>;\n\n const success = validator(input);\n if (!success) {\n throw new ValidationPromptTemplateError(\n `Template cannot be rendered because input does not adhere to the template schema.`,\n this,\n {\n errors: validator.errors,\n },\n );\n }\n }\n\n fork(customizer: Customizer<T, SchemaObject>): PromptTemplate<T>;\n fork<R extends ZodType>(customizer: Customizer<T, R>): PromptTemplate<R>;\n fork<R extends ZodType>(\n customizer: Customizer<T, SchemaObject> | Customizer<T, R>,\n ): PromptTemplate<T | R> {\n const config = clone(this.config);\n const newConfig = customizer?.(config) ?? config;\n if (!isPlainObject(newConfig)) {\n throw new ValueError(\"Return type from customizer must be a config or nothing.\");\n }\n return new PromptTemplate(newConfig);\n }\n\n update(input: Partial<PromptTemplateInput<T>>) {\n if (input.schema) {\n this.config.schema = input.schema;\n }\n if (input.template !== undefined) {\n this.config.template = input.template;\n }\n if (input.functions) {\n Object.assign(this.config.functions, input.functions);\n }\n if (input.defaults) {\n Object.assign(this.config.defaults, input.defaults);\n }\n if (input.escape !== undefined) {\n this.config.escape = input.escape;\n }\n if (input.customTags) {\n this.config.customTags = input.customTags;\n }\n }\n\n render(input: PromptTemplateRenderInput<T>): string {\n const updatedInput: typeof input = { ...input };\n Object.assign(\n updatedInput,\n pickBy(this.config.defaults, (_, k) => getProp(updatedInput, [k]) === undefined),\n );\n\n this.validateInput(updatedInput);\n const view: Record<string, any> = {\n ...this.config.functions,\n ...updatedInput,\n };\n\n const output = Mustache.render(\n this.config.template,\n view,\n {},\n {\n tags: this.config.customTags,\n ...(!this.config.escape && {\n escape: identity(),\n }),\n },\n );\n\n if (output.match(/\\[object (.+)]/)) {\n throw new ValidationPromptTemplateError(\n \"Rendered template contains incorrectly serialized value!\",\n this,\n {\n output,\n },\n );\n }\n\n return output;\n }\n\n loadSnapshot(data: ReturnType<typeof this.createSnapshot>) {\n this.config = data.config;\n }\n\n createSnapshot() {\n return {\n config: this.config,\n };\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace PromptTemplate {\n export type infer<T> = PromptTemplate<ZodType<T>>;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/template.ts"],"names":["PromptTemplateError","FrameworkError","template","message","context","ValidationPromptTemplateError","PromptTemplate","Serializable","config","functions","trim","text","render","replace","defaults","schema","toJsonSchema","escape","Boolean","customTags","register","validateInput","input","validator","createSchemaValidator","coerceTypes","success","errors","fork","customizer","clone","newConfig","isPlainObject","ValueError","update","undefined","Object","assign","updatedInput","pickBy","_","k","getProp","view","output","Mustache","tags","identity","match","loadSnapshot","data","createSnapshot"],"mappings":"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","file":"template.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { FrameworkError, ValueError } from \"@/errors.js\";\nimport { ObjectLike, PlainObject } from \"@/internals/types.js\";\nimport { clone, identity, isPlainObject, pickBy } from \"remeda\";\nimport Mustache from \"mustache\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { z, ZodType } from \"zod\";\nimport { createSchemaValidator, toJsonSchema } from \"@/internals/helpers/schema.js\";\nimport type { SchemaObject, ValidateFunction } from \"ajv\";\nimport { getProp } from \"@/internals/helpers/object.js\";\n\ntype PostInfer<T> = T extends PlainObject\n ? {\n [K in keyof T]: T[K] extends Date ? string : T[K];\n }\n : T;\ntype InferValue<T> = T extends ZodType<infer A> ? PostInfer<A> : never;\nexport type PromptTemplateRenderFn<K extends ZodType> = (this: InferValue<K>) => any;\n\nexport type PromptTemplateRenderInput<T extends ZodType, T2 extends z.input<T> = z.input<T>> = {\n [K in Extract<keyof T2, string>]: T2[K] | PromptTemplateRenderFn<T> | undefined;\n};\n\nexport interface PromptTemplateInput<T extends ZodType> {\n template: string;\n customTags?: [string, string];\n escape?: boolean;\n schema: SchemaObject;\n defaults?: Partial<InferValue<T>>;\n functions?: Record<string, PromptTemplateRenderFn<T>>;\n}\n\ntype PromptTemplateConstructor<T extends ZodType, N> = N extends ZodType\n ? Omit<PromptTemplateInput<N>, \"schema\" | \"functions\" | \"defaults\"> & {\n schema: N;\n functions?: Record<string, PromptTemplateRenderFn<N | T>>;\n defaults?: Partial<InferValue<N | T>>;\n }\n : Omit<PromptTemplateInput<T>, \"schema\"> & { schema: T | SchemaObject };\n\ntype Customizer<T extends ZodType, N> =\n | ((config: Required<PromptTemplateInput<T>>) => PromptTemplateConstructor<T, N>)\n | ((config: Required<PromptTemplateInput<T>>) => void);\n\nexport class PromptTemplateError<T extends ZodType> extends FrameworkError {\n template: PromptTemplate<T>;\n\n constructor(message: string, template: PromptTemplate<T>, context?: ObjectLike) {\n super(message, [], {\n context,\n });\n this.template = template;\n }\n}\n\nexport class ValidationPromptTemplateError<T extends ZodType> extends PromptTemplateError<T> {}\n\nexport class PromptTemplate<T extends ZodType> extends Serializable {\n protected config: Required<PromptTemplateInput<T>>;\n\n public static functions = {\n trim: () => (text: string, render: (value: string) => string) => {\n return render(text).replace(/(,\\s*$)/g, \"\");\n },\n };\n\n constructor(config: Omit<PromptTemplateInput<T>, \"schema\"> & { schema: T | SchemaObject }) {\n super();\n this.config = {\n ...config,\n defaults: (config.defaults ?? {}) as Partial<InferValue<T>>,\n schema: toJsonSchema(config.schema),\n escape: Boolean(config.escape),\n customTags: config.customTags ?? [\"{{\", \"}}\"],\n functions: {\n ...PromptTemplate.functions,\n ...config.functions,\n },\n };\n }\n\n static {\n this.register();\n }\n\n validateInput(input: unknown): asserts input is T {\n const validator = createSchemaValidator(this.config.schema, {\n coerceTypes: false,\n }) as ValidateFunction<T>;\n\n const success = validator(input);\n if (!success) {\n throw new ValidationPromptTemplateError(\n `Template cannot be rendered because input does not adhere to the template schema.`,\n this,\n {\n errors: validator.errors,\n },\n );\n }\n }\n\n fork(customizer: Customizer<T, SchemaObject>): PromptTemplate<T>;\n fork<R extends ZodType>(customizer: Customizer<T, R>): PromptTemplate<R>;\n fork<R extends ZodType>(\n customizer: Customizer<T, SchemaObject> | Customizer<T, R>,\n ): PromptTemplate<T | R> {\n const config = clone(this.config);\n const newConfig = customizer?.(config) ?? config;\n if (!isPlainObject(newConfig)) {\n throw new ValueError(\"Return type from customizer must be a config or nothing.\");\n }\n return new PromptTemplate(newConfig);\n }\n\n update(input: Partial<PromptTemplateInput<T>>) {\n if (input.schema) {\n this.config.schema = input.schema;\n }\n if (input.template !== undefined) {\n this.config.template = input.template;\n }\n if (input.functions) {\n Object.assign(this.config.functions, input.functions);\n }\n if (input.defaults) {\n Object.assign(this.config.defaults, input.defaults);\n }\n if (input.escape !== undefined) {\n this.config.escape = input.escape;\n }\n if (input.customTags) {\n this.config.customTags = input.customTags;\n }\n }\n\n render(input: PromptTemplateRenderInput<T>): string {\n const updatedInput: typeof input = { ...input };\n Object.assign(\n updatedInput,\n pickBy(this.config.defaults, (_, k) => getProp(updatedInput, [k]) === undefined),\n );\n\n this.validateInput(updatedInput);\n const view: Record<string, any> = {\n ...this.config.functions,\n ...updatedInput,\n };\n\n const output = Mustache.render(\n this.config.template,\n view,\n {},\n {\n tags: this.config.customTags,\n ...(!this.config.escape && {\n escape: identity(),\n }),\n },\n );\n\n if (output.match(/\\[object (.+)]/)) {\n throw new ValidationPromptTemplateError(\n \"Rendered template contains incorrectly serialized value!\",\n this,\n {\n output,\n },\n );\n }\n\n return output;\n }\n\n loadSnapshot(data: ReturnType<typeof this.createSnapshot>) {\n this.config = data.config;\n }\n\n createSnapshot() {\n return {\n config: this.config,\n };\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace PromptTemplate {\n export type infer<T> = PromptTemplate<ZodType<T>>;\n}\n"]}
|
package/dist/tools/arxiv.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tools/arxiv.ts"],"names":["SortType","RELEVANCE","LAST_UPDATED_DATE","SUBMITTED_DATE","SortOrder","ASCENDING","DESCENDING","FilterType","ALL","TITLE","AUTHOR","ABSTRACT","COMMENT","JOURNAL_REFERENCE","SUBJECT_CATEGORY","REPORT_NUMBER","FilterTypeMapping","all","title","author","abstract","comment","journal_reference","subject_category","report_number","Separators","AND","OR","ANDNOT","ArXivToolOutput","JSONToolOutput","isEmpty","result","totalResults","entries","length","extractId","value","replace","ArXivTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","entrySchema","z","object","field","nativeEnum","default","string","min","ids","array","optional","search_query","include","nonempty","describe","exclude","start","number","int","maxResults","max","register","validateInput","schema","rawInput","ToolInputValidationError","_prepareParams","input","createURLParams","max_results","id_list","undefined","map","tag","join","filter","Boolean","sortBy","sortOrder","_run","_options","run","params","url","decodeURIComponent","toString","response","fetch","signal","data","_parseResponse","parser","XMLParser","allowBooleanAttributes","alwaysCreateTextNode","attributeNamePrefix","attributesGroupName","cdataPropName","ignoreAttributes","numberParseOptions","hex","leadingZeros","parseAttributeValue","parseTagValue","preserveOrder","removeNSPrefix","textNodeName","trimValues","ignoreDeclaration","text","parsedData","parse","ok","ToolError","Error","JSON","stringify","getProp","castArray","Math","startIndex","itemsPerPage","entry","pickBy","id","summary","published","updated","authors","affiliation","doi","journalReference","journal_ref","primaryCategory","primary_category","categories","category","links","link","isDefined"],"mappings":"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","file":"arxiv.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolError,\n ToolInput,\n ToolInputValidationError,\n} from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { createURLParams } from \"@/internals/fetcher.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { XMLParser } from \"fast-xml-parser\";\nimport { getProp } from \"@/internals/helpers/object.js\";\nimport { isDefined, isEmpty, pickBy } from \"remeda\";\nimport { castArray } from \"@/internals/helpers/array.js\";\nimport { ValueOf } from \"@/internals/types.js\";\nimport { AnyToolSchemaLike } from \"@/internals/helpers/schema.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\ntype ToolOptions = BaseToolOptions;\ntype ToolRunOptions = BaseToolRunOptions;\n\nexport const SortType = {\n RELEVANCE: \"relevance\",\n LAST_UPDATED_DATE: \"lastUpdatedDate\",\n SUBMITTED_DATE: \"submittedDate\",\n} as const;\n\nexport const SortOrder = {\n ASCENDING: \"ascending\",\n DESCENDING: \"descending\",\n} as const;\n\nexport const FilterType = {\n ALL: \"all\",\n TITLE: \"title\",\n AUTHOR: \"author\",\n ABSTRACT: \"abstract\",\n COMMENT: \"comment\",\n JOURNAL_REFERENCE: \"journal_reference\",\n SUBJECT_CATEGORY: \"subject_category\",\n REPORT_NUMBER: \"report_number\",\n} as const;\n\nconst FilterTypeMapping: Record<ValueOf<typeof FilterType>, string> = {\n all: \"all\",\n title: \"ti\",\n author: \"au\",\n abstract: \"abs\",\n comment: \"co\",\n journal_reference: \"jr\",\n subject_category: \"cat\",\n report_number: \"rn\",\n};\n\nexport const Separators = {\n AND: \"+AND+\",\n OR: \"+OR+\",\n ANDNOT: \"+ANDNOT+\",\n} as const;\n\nexport interface ArXivResponse {\n totalResults: number;\n startIndex: number;\n itemsPerPage: number;\n entries: {\n id: string;\n title: string;\n summary: string;\n published: string;\n updated: string;\n authors: { name: string; affiliation: string[] }[];\n doi: string;\n comment: string;\n journalReference: string;\n primaryCategory: string;\n categories: string[];\n links: string[];\n }[];\n}\n\nexport class ArXivToolOutput extends JSONToolOutput<ArXivResponse> {\n isEmpty(): boolean {\n return !this.result || this.result.totalResults === 0 || this.result.entries.length === 0;\n }\n}\n\nconst extractId = (value: string) =>\n value\n .replace(\"https://arxiv.org/abs/\", \"\")\n .replace(\"https://arxiv.org/pdf/\", \"\")\n .replace(/v\\d$/, \"\");\n\nexport class ArXivTool extends Tool<ArXivToolOutput, ToolOptions, ToolRunOptions> {\n name = \"ArXiv\";\n description = `Retrieves research articles published on arXiv including related metadata.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, ArXivToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"search\", \"arxiv\"],\n creator: this,\n });\n\n @Cache()\n inputSchema() {\n const entrySchema = z.object({\n field: z.nativeEnum(FilterType).default(FilterType.ALL),\n value: z.string().min(1),\n });\n\n return z\n .object({\n ids: z.array(z.string().min(1)).optional(),\n search_query: z\n .object({\n include: z.array(entrySchema).nonempty().describe(\"Filters to include results.\"),\n exclude: z.array(entrySchema).optional().describe(\"Filters to exclude results.\"),\n })\n .optional(),\n start: z.number().int().min(0).default(0),\n maxResults: z.number().int().min(1).max(100).default(5),\n })\n .describe(\"Sorting by date is not supported.\");\n }\n\n static {\n this.register();\n }\n\n protected validateInput(\n schema: AnyToolSchemaLike,\n rawInput: unknown,\n ): asserts rawInput is ToolInput<this> {\n super.validateInput(schema, rawInput);\n if (isEmpty(rawInput.ids ?? []) && !rawInput.search_query) {\n throw new ToolInputValidationError(\n `The 'search_query' property must be non-empty if the 'ids' property is not provided!`,\n );\n }\n }\n\n protected _prepareParams(input: ToolInput<typeof this>) {\n return createURLParams({\n start: input.start,\n max_results: input.maxResults,\n id_list: isEmpty(input.ids ?? []) ? undefined : input.ids?.map(extractId),\n search_query:\n input.search_query &&\n [\n input.search_query.include\n .map((tag) => `${FilterTypeMapping[tag.field]}:${tag.value}`)\n .join(Separators.AND),\n (input.search_query.exclude ?? [])\n .map((tag) => `${FilterTypeMapping[tag.field]}:${tag.value}`)\n .join(Separators.ANDNOT),\n ]\n .filter(Boolean)\n .join(Separators.ANDNOT),\n sortBy: SortType.RELEVANCE,\n sortOrder: SortOrder.DESCENDING,\n });\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ) {\n const params = this._prepareParams(input);\n const url = `https://export.arxiv.org/api/query?${decodeURIComponent(params.toString())}`;\n const response = await fetch(url, {\n signal: run.signal,\n });\n const data = await this._parseResponse(response);\n return new ArXivToolOutput(data);\n }\n\n protected async _parseResponse(response: Response): Promise<ArXivResponse> {\n const parser = new XMLParser({\n allowBooleanAttributes: true,\n alwaysCreateTextNode: false,\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n cdataPropName: \"#cdata\",\n ignoreAttributes: true,\n numberParseOptions: { hex: false, leadingZeros: true },\n parseAttributeValue: false,\n parseTagValue: true,\n preserveOrder: false,\n removeNSPrefix: true,\n textNodeName: \"#text\",\n trimValues: true,\n ignoreDeclaration: true,\n });\n\n const text = await response.text();\n const parsedData = parser.parse(text);\n\n if (!response.ok) {\n throw new ToolError(\"Request to ArXiv API has failed!\", [\n new Error(JSON.stringify(getProp(parsedData, [\"feed\", \"entry\"], parsedData), null, 2)),\n ]);\n }\n\n let entries: Record<string, any>[] = getProp(parsedData, [\"feed\", \"entry\"], []);\n entries = castArray(entries);\n\n return {\n totalResults: Math.max(getProp(parsedData, [\"feed\", \"totalResults\"], 0), entries.length),\n startIndex: getProp(parsedData, [\"feed\", \"startIndex\"], 0),\n itemsPerPage: getProp(parsedData, [\"feed\", \"itemsPerPage\"], 0),\n entries: entries.map((entry) =>\n pickBy(\n {\n id: extractId(entry.id),\n url: entry.id,\n title: entry.title,\n summary: entry.summary,\n published: entry.published,\n updated: entry.updated,\n authors: castArray(entry.author)\n .filter(Boolean)\n .map((author: any) => ({\n name: author.name,\n affiliation: castArray(author.affiliation ?? []),\n })),\n doi: entry.doi,\n comment: entry.comment,\n journalReference: entry.journal_ref,\n primaryCategory: entry.primary_category,\n categories: castArray(entry.category).filter(Boolean),\n links: castArray(entry.link).filter(Boolean),\n },\n isDefined,\n ),\n ),\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/tools/arxiv.ts"],"names":["SortType","RELEVANCE","LAST_UPDATED_DATE","SUBMITTED_DATE","SortOrder","ASCENDING","DESCENDING","FilterType","ALL","TITLE","AUTHOR","ABSTRACT","COMMENT","JOURNAL_REFERENCE","SUBJECT_CATEGORY","REPORT_NUMBER","FilterTypeMapping","all","title","author","abstract","comment","journal_reference","subject_category","report_number","Separators","AND","OR","ANDNOT","ArXivToolOutput","JSONToolOutput","isEmpty","result","totalResults","entries","length","extractId","value","replace","ArXivTool","Tool","name","description","emitter","Emitter","root","child","namespace","creator","inputSchema","entrySchema","z","object","field","nativeEnum","default","string","min","ids","array","optional","search_query","include","nonempty","describe","exclude","start","number","int","maxResults","max","register","validateInput","schema","rawInput","ToolInputValidationError","_prepareParams","input","createURLParams","max_results","id_list","undefined","map","tag","join","filter","Boolean","sortBy","sortOrder","_run","_options","run","params","url","decodeURIComponent","toString","response","fetch","signal","data","_parseResponse","parser","XMLParser","allowBooleanAttributes","alwaysCreateTextNode","attributeNamePrefix","attributesGroupName","cdataPropName","ignoreAttributes","numberParseOptions","hex","leadingZeros","parseAttributeValue","parseTagValue","preserveOrder","removeNSPrefix","textNodeName","trimValues","ignoreDeclaration","text","parsedData","parse","ok","ToolError","Error","JSON","stringify","getProp","castArray","Math","startIndex","itemsPerPage","entry","pickBy","id","summary","published","updated","authors","affiliation","doi","journalReference","journal_ref","primaryCategory","primary_category","categories","category","links","link","isDefined"],"mappings":"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","file":"arxiv.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolError,\n ToolInput,\n ToolInputValidationError,\n} from \"@/tools/base.js\";\nimport { z } from \"zod\";\nimport { createURLParams } from \"@/internals/fetcher.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { XMLParser } from \"fast-xml-parser\";\nimport { getProp } from \"@/internals/helpers/object.js\";\nimport { isDefined, isEmpty, pickBy } from \"remeda\";\nimport { castArray } from \"@/internals/helpers/array.js\";\nimport { ValueOf } from \"@/internals/types.js\";\nimport { AnyToolSchemaLike } from \"@/internals/helpers/schema.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\ntype ToolOptions = BaseToolOptions;\ntype ToolRunOptions = BaseToolRunOptions;\n\nexport const SortType = {\n RELEVANCE: \"relevance\",\n LAST_UPDATED_DATE: \"lastUpdatedDate\",\n SUBMITTED_DATE: \"submittedDate\",\n} as const;\n\nexport const SortOrder = {\n ASCENDING: \"ascending\",\n DESCENDING: \"descending\",\n} as const;\n\nexport const FilterType = {\n ALL: \"all\",\n TITLE: \"title\",\n AUTHOR: \"author\",\n ABSTRACT: \"abstract\",\n COMMENT: \"comment\",\n JOURNAL_REFERENCE: \"journal_reference\",\n SUBJECT_CATEGORY: \"subject_category\",\n REPORT_NUMBER: \"report_number\",\n} as const;\n\nconst FilterTypeMapping: Record<ValueOf<typeof FilterType>, string> = {\n all: \"all\",\n title: \"ti\",\n author: \"au\",\n abstract: \"abs\",\n comment: \"co\",\n journal_reference: \"jr\",\n subject_category: \"cat\",\n report_number: \"rn\",\n};\n\nexport const Separators = {\n AND: \"+AND+\",\n OR: \"+OR+\",\n ANDNOT: \"+ANDNOT+\",\n} as const;\n\nexport interface ArXivResponse {\n totalResults: number;\n startIndex: number;\n itemsPerPage: number;\n entries: {\n id: string;\n title: string;\n summary: string;\n published: string;\n updated: string;\n authors: { name: string; affiliation: string[] }[];\n doi: string;\n comment: string;\n journalReference: string;\n primaryCategory: string;\n categories: string[];\n links: string[];\n }[];\n}\n\nexport class ArXivToolOutput extends JSONToolOutput<ArXivResponse> {\n isEmpty(): boolean {\n return !this.result || this.result.totalResults === 0 || this.result.entries.length === 0;\n }\n}\n\nconst extractId = (value: string) =>\n value\n .replace(\"https://arxiv.org/abs/\", \"\")\n .replace(\"https://arxiv.org/pdf/\", \"\")\n .replace(/v\\d$/, \"\");\n\nexport class ArXivTool extends Tool<ArXivToolOutput, ToolOptions, ToolRunOptions> {\n name = \"ArXiv\";\n description = `Retrieves research articles published on arXiv including related metadata.`;\n\n public readonly emitter: ToolEmitter<ToolInput<this>, ArXivToolOutput> = Emitter.root.child({\n namespace: [\"tool\", \"search\", \"arxiv\"],\n creator: this,\n });\n\n @Cache()\n inputSchema() {\n const entrySchema = z.object({\n field: z.nativeEnum(FilterType).default(FilterType.ALL),\n value: z.string().min(1),\n });\n\n return z\n .object({\n ids: z.array(z.string().min(1)).optional(),\n search_query: z\n .object({\n include: z.array(entrySchema).nonempty().describe(\"Filters to include results.\"),\n exclude: z.array(entrySchema).optional().describe(\"Filters to exclude results.\"),\n })\n .optional(),\n start: z.number().int().min(0).default(0),\n maxResults: z.number().int().min(1).max(100).default(5),\n })\n .describe(\"Sorting by date is not supported.\");\n }\n\n static {\n this.register();\n }\n\n protected validateInput(\n schema: AnyToolSchemaLike,\n rawInput: unknown,\n ): asserts rawInput is ToolInput<this> {\n super.validateInput(schema, rawInput);\n if (isEmpty(rawInput.ids ?? []) && !rawInput.search_query) {\n throw new ToolInputValidationError(\n `The 'search_query' property must be non-empty if the 'ids' property is not provided!`,\n );\n }\n }\n\n protected _prepareParams(input: ToolInput<typeof this>) {\n return createURLParams({\n start: input.start,\n max_results: input.maxResults,\n id_list: isEmpty(input.ids ?? []) ? undefined : input.ids?.map(extractId),\n search_query:\n input.search_query &&\n [\n input.search_query.include\n .map((tag) => `${FilterTypeMapping[tag.field]}:${tag.value}`)\n .join(Separators.AND),\n (input.search_query.exclude ?? [])\n .map((tag) => `${FilterTypeMapping[tag.field]}:${tag.value}`)\n .join(Separators.ANDNOT),\n ]\n .filter(Boolean)\n .join(Separators.ANDNOT),\n sortBy: SortType.RELEVANCE,\n sortOrder: SortOrder.DESCENDING,\n });\n }\n\n protected async _run(\n input: ToolInput<this>,\n _options: Partial<BaseToolRunOptions>,\n run: RunContext<this>,\n ) {\n const params = this._prepareParams(input);\n const url = `https://export.arxiv.org/api/query?${decodeURIComponent(params.toString())}`;\n const response = await fetch(url, {\n signal: run.signal,\n });\n const data = await this._parseResponse(response);\n return new ArXivToolOutput(data);\n }\n\n protected async _parseResponse(response: Response): Promise<ArXivResponse> {\n const parser = new XMLParser({\n allowBooleanAttributes: true,\n alwaysCreateTextNode: false,\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n cdataPropName: \"#cdata\",\n ignoreAttributes: true,\n numberParseOptions: { hex: false, leadingZeros: true },\n parseAttributeValue: false,\n parseTagValue: true,\n preserveOrder: false,\n removeNSPrefix: true,\n textNodeName: \"#text\",\n trimValues: true,\n ignoreDeclaration: true,\n });\n\n const text = await response.text();\n const parsedData = parser.parse(text);\n\n if (!response.ok) {\n throw new ToolError(\"Request to ArXiv API has failed!\", [\n new Error(JSON.stringify(getProp(parsedData, [\"feed\", \"entry\"], parsedData), null, 2)),\n ]);\n }\n\n let entries: Record<string, any>[] = getProp(parsedData, [\"feed\", \"entry\"], []);\n entries = castArray(entries);\n\n return {\n totalResults: Math.max(getProp(parsedData, [\"feed\", \"totalResults\"], 0), entries.length),\n startIndex: getProp(parsedData, [\"feed\", \"startIndex\"], 0),\n itemsPerPage: getProp(parsedData, [\"feed\", \"itemsPerPage\"], 0),\n entries: entries.map((entry) =>\n pickBy(\n {\n id: extractId(entry.id),\n url: entry.id,\n title: entry.title,\n summary: entry.summary,\n published: entry.published,\n updated: entry.updated,\n authors: castArray(entry.author)\n .filter(Boolean)\n .map((author: any) => ({\n name: author.name,\n affiliation: castArray(author.affiliation ?? []),\n })),\n doi: entry.doi,\n comment: entry.comment,\n journalReference: entry.journal_ref,\n primaryCategory: entry.primary_category,\n categories: castArray(entry.category).filter(Boolean),\n links: castArray(entry.link).filter(Boolean),\n },\n isDefined,\n ),\n ),\n };\n }\n}\n"]}
|
package/dist/tools/arxiv.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Tool, JSONToolOutput, BaseToolOptions, BaseToolRunOptions, ToolEmitter, ToolInput } from './base.cjs';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { AnyToolSchemaLike } from '../internals/helpers/schema.cjs';
|
|
4
4
|
import { RunContext } from '../context.cjs';
|
|
@@ -9,7 +9,7 @@ import '../internals/helpers/guards.cjs';
|
|
|
9
9
|
import '../internals/serializable.cjs';
|
|
10
10
|
import 'promise-based-task';
|
|
11
11
|
import '../cache/base.cjs';
|
|
12
|
-
import '../emitter-
|
|
12
|
+
import '../emitter-D4OcelZ9.cjs';
|
|
13
13
|
import '../internals/helpers/promise.cjs';
|
|
14
14
|
import 'zod-to-json-schema';
|
|
15
15
|
|
package/dist/tools/arxiv.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Tool, JSONToolOutput, BaseToolOptions, BaseToolRunOptions, ToolEmitter, ToolInput } from './base.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { AnyToolSchemaLike } from '../internals/helpers/schema.js';
|
|
4
4
|
import { RunContext } from '../context.js';
|
|
@@ -9,7 +9,7 @@ import '../internals/helpers/guards.js';
|
|
|
9
9
|
import '../internals/serializable.js';
|
|
10
10
|
import 'promise-based-task';
|
|
11
11
|
import '../cache/base.js';
|
|
12
|
-
import '../emitter-
|
|
12
|
+
import '../emitter-kHxkUxco.js';
|
|
13
13
|
import '../internals/helpers/promise.js';
|
|
14
14
|
import 'zod-to-json-schema';
|
|
15
15
|
|