diff --git a/components/_302_ai/_302_ai.app.mjs b/components/_302_ai/_302_ai.app.mjs index c50b2337222fc..87984c7465730 100644 --- a/components/_302_ai/_302_ai.app.mjs +++ b/components/_302_ai/_302_ai.app.mjs @@ -1,11 +1,121 @@ +import { axios } from "@pipedream/platform"; + export default { type: "app", app: "_302_ai", - propDefinitions: {}, + propDefinitions: { + modelId: { + type: "string", + label: "Model", + description: "The ID of the model to use", + async options() { + const models = await this.listModels(); + return models.map((model) => ({ + label: model.id, + value: model.id, + })); + }, + }, + chatCompletionModelId: { + type: "string", + label: "Model", + description: "The ID of the model to use for chat completions", + async options() { + const models = await this.listModels(); + // Filter for chat models (similar to OpenAI) + return models + .filter((model) => model.id.match(/gpt|claude|gemini|llama|mistral|deepseek/gi)) + .map((model) => ({ + label: model.id, + value: model.id, + })); + }, + }, + embeddingsModelId: { + type: "string", + label: "Model", + description: "The ID of the embeddings model to use", + async options() { + const models = await this.listModels(); + // Filter for embedding models + return models + .filter((model) => model.id.match(/embedding/gi)) + .map((model) => ({ + label: model.id, + value: model.id, + })); + }, + }, + }, methods: { - // this.$auth contains connected account data - authKeys() { - console.log(Object.keys(this.$auth)); + _apiKey() { + return this.$auth.api_key; + }, + _baseApiUrl() { + return "https://api.302.ai/v1"; + }, + _makeRequest({ + $ = this, + path, + ...args + } = {}) { + return axios($, { + ...args, + url: `${this._baseApiUrl()}${path}`, + headers: { + ...args.headers, + "Authorization": `Bearer ${this._apiKey()}`, + "Content-Type": "application/json", + }, + }); + }, + async listModels({ $ } = {}) { + const { data: models } = await this._makeRequest({ + $, + path: "/models", + }); + return models || []; + }, + async _makeCompletion({ + path, ...args + }) { + const data = await this._makeRequest({ + path, + method: "POST", + ...args, + }); + + // For completions, return the text of the first choice at the top-level + let generated_text; + if (path === "/completions") { + const { choices } = data; + generated_text = choices?.[0]?.text; + } + // For chat completions, return the assistant message at the top-level + let generated_message; + if (path === "/chat/completions") { + const { choices } = data; + generated_message = choices?.[0]?.message; + } + + return { + generated_text, + generated_message, + ...data, + }; + }, + createChatCompletion(args = {}) { + return this._makeCompletion({ + path: "/chat/completions", + ...args, + }); + }, + createEmbeddings(args = {}) { + return this._makeRequest({ + path: "/embeddings", + method: "POST", + ...args, + }); }, }, -}; \ No newline at end of file +}; diff --git a/components/_302_ai/actions/chat-using-functions/chat-using-functions.mjs b/components/_302_ai/actions/chat-using-functions/chat-using-functions.mjs new file mode 100644 index 0000000000000..3276b90e5efcb --- /dev/null +++ b/components/_302_ai/actions/chat-using-functions/chat-using-functions.mjs @@ -0,0 +1,211 @@ +import _302_ai from "../../_302_ai.app.mjs"; +import constants from "../common/constants.mjs"; + +export default { + name: "Chat using Functions", + version: "0.0.1", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: false, + }, + key: "_302_ai-chat-using-functions", + description: "Enable your 302.AI model to invoke user-defined functions. Useful for conditional logic, workflow orchestration, and tool invocation within conversations. [See documentation](https://doc.302.ai/211560247e0)", + type: "action", + props: { + _302_ai, + modelId: { + propDefinition: [ + _302_ai, + "chatCompletionModelId", + ], + }, + input: { + type: "string", + label: "Chat Input", + description: "Text input to the model used to generate a response", + }, + functions: { + type: "string", + label: "Functions", + description: "A valid JSON array of tools/functions using the OpenAI function schema definition. Each tool must have a `type` property set to \"function\" and a `function` object with `name`, `description`, and `parameters`.", + default: +`[ + { + "type": "function", + "function": { + "name": "get_current_weather", + "description": "Get the current weather in a given location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city and state, e.g. San Francisco, CA" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"] + } + }, + "required": ["location"] + } + } + } +]`, + }, + instructions: { + type: "string", + label: "Instructions", + description: "System instructions for the model", + optional: true, + }, + toolChoice: { + type: "string", + label: "Tool Choice", + description: "- **auto**: The model decides whether and how many functions to call.\n- **required**: The model must call one or more functions.\n- **function_name**: Enter a custom function name to force the model to call this specific function.", + optional: true, + default: "auto", + options: [ + "auto", + "required", + ], + }, + parallelToolCalls: { + type: "string", + label: "Parallel Function Calling", + description: "Allow or prevent the model to call multiple functions in a single turn", + optional: true, + default: "1", + options: [ + { + label: "Enabled", + value: "1", + }, + { + label: "Disabled", + value: "0", + }, + ], + }, + maxTokens: { + label: "Max Tokens", + description: "The maximum number of tokens to generate in the completion.", + type: "string", + optional: true, + }, + temperature: { + label: "Temperature", + description: "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.", + type: "string", + optional: true, + }, + responseFormat: { + type: "string", + label: "Response Format", + description: "- **Text**: Returns unstructured text output.\n- **JSON Schema**: Enables you to define a specific structure for the model's output using a JSON schema.", + options: [ + constants.CHAT_RESPONSE_FORMAT.TEXT.value, + constants.CHAT_RESPONSE_FORMAT.JSON_SCHEMA.value, + ], + default: constants.CHAT_RESPONSE_FORMAT.TEXT.value, + optional: true, + reloadProps: true, + }, + }, + additionalProps() { + const props = {}; + + if (this.responseFormat === constants.CHAT_RESPONSE_FORMAT.JSON_SCHEMA.value) { + props.jsonSchema = { + type: "string", + label: "JSON Schema", + description: "Define the schema that the model's output must adhere to.", + }; + } + + return props; + }, + async run({ $ }) { + const messages = []; + + if (this.instructions) { + messages.push({ + role: "system", + content: this.instructions, + }); + } + + messages.push({ + role: "user", + content: this.input, + }); + + const data = { + model: this.modelId, + messages, + parallel_tool_calls: parseInt(this.parallelToolCalls) === 1, + tools: [], + }; + + if (this.maxTokens) { + data.max_tokens = parseInt(this.maxTokens); + } + + if (this.temperature) { + data.temperature = parseFloat(this.temperature); + } + + let functions = this.functions; + if (typeof functions === "string") { + try { + functions = JSON.parse(functions); + } catch (error) { + throw new Error("Invalid JSON format in the provided Functions Schema"); + } + } + + if (Array.isArray(functions)) { + data.tools.push(...functions); + } else { + data.tools.push(functions); + } + + if (this.toolChoice) { + if (this.toolChoice === "auto" || this.toolChoice === "required") { + data.tool_choice = this.toolChoice; + } else { + data.tool_choice = { + type: "function", + name: this.toolChoice, + }; + } + } + + if (this.responseFormat === constants.CHAT_RESPONSE_FORMAT.JSON_SCHEMA.value + && this.jsonSchema) { + try { + data.response_format = { + type: this.responseFormat, + json_schema: typeof this.jsonSchema === "string" + ? JSON.parse(this.jsonSchema) + : this.jsonSchema, + }; + } catch (error) { + throw new Error("Invalid JSON format in the provided JSON Schema"); + } + } + + const response = await this._302_ai.createChatCompletion({ + $, + data, + }); + + if (response) { + $.export("$summary", `Successfully sent chat with id ${response.id}`); + } + + return response; + }, +}; + diff --git a/components/_302_ai/actions/chat-with-302-ai/chat-with-302-ai.mjs b/components/_302_ai/actions/chat-with-302-ai/chat-with-302-ai.mjs new file mode 100644 index 0000000000000..fc69bcde78b29 --- /dev/null +++ b/components/_302_ai/actions/chat-with-302-ai/chat-with-302-ai.mjs @@ -0,0 +1,171 @@ +import _302_ai from "../../_302_ai.app.mjs"; +import common from "../common/common.mjs"; +import constants from "../common/constants.mjs"; + +export default { + ...common, + name: "Chat with 302.AI", + version: "0.0.1", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: false, + }, + key: "_302_ai-chat-with-302-ai", + description: "Send a message to the 302.AI Chat API. Ideal for dynamic conversations, contextual assistance, and creative generation. [See documentation](https://doc.302.ai/147522039e0)", + type: "action", + props: { + _302_ai, + modelId: { + propDefinition: [ + _302_ai, + "chatCompletionModelId", + ], + }, + userMessage: { + label: "User Message", + type: "string", + description: "The user message to send to the model", + }, + ...common.props, + systemInstructions: { + label: "System Instructions", + type: "string", + description: "The system message helps set the behavior of the assistant. For example: \"You are a helpful assistant.\"", + optional: true, + }, + messages: { + label: "Prior Message History", + type: "string[]", + description: "Because the models have no memory of past chat requests, all relevant information must be supplied via the conversation. You can provide an array of messages from prior conversations here. **Formats supported:** 1) Plain strings with role prefix (e.g., `User: Hello` or `Assistant: Hi there`), 2) JSON strings (e.g., `{\"role\": \"user\", \"content\": \"Hello\"}`), 3) Plain strings without prefix (defaults to user role).", + optional: true, + }, + responseFormat: { + type: "string", + label: "Response Format", + description: "- **Text**: Returns unstructured text output.\n- **JSON Object**: Returns a JSON object.\n- **JSON Schema**: Enables you to define a specific structure for the model's output using a JSON schema.", + options: Object.values(constants.CHAT_RESPONSE_FORMAT).map((format) => format.value), + default: constants.CHAT_RESPONSE_FORMAT.TEXT.value, + optional: true, + reloadProps: true, + }, + }, + additionalProps() { + const props = {}; + if (this.responseFormat === constants.CHAT_RESPONSE_FORMAT.JSON_SCHEMA.value) { + props.jsonSchema = { + type: "string", + label: "JSON Schema", + description: "Define the schema that the model's output must adhere to. Must be a valid JSON schema object.", + }; + } + return props; + }, + async run({ $ }) { + let messages = []; + + if (this.messages && this.messages.length) { + for (const message of this.messages) { + let parsed; + + if (typeof message === "string") { + // Try to parse as JSON first + try { + parsed = JSON.parse(message); + } catch { + // If not JSON, treat as a plain string and infer role from content + // Check if message starts with "User:" or "Assistant:" or "System:" + if (message.toLowerCase().startsWith("user:")) { + parsed = { + role: "user", + content: message.replace(/^user:\s*/i, "").trim(), + }; + } else if (message.toLowerCase().startsWith("assistant:")) { + parsed = { + role: "assistant", + content: message.replace(/^assistant:\s*/i, "").trim(), + }; + } else if (message.toLowerCase().startsWith("system:")) { + parsed = { + role: "system", + content: message.replace(/^system:\s*/i, "").trim(), + }; + } else { + // Default to user role if no prefix + parsed = { + role: "user", + content: message, + }; + } + } + } else { + parsed = message; + } + + messages.push(parsed); + } + } else { + if (this.systemInstructions) { + messages.push({ + "role": "system", + "content": this.systemInstructions, + }); + } + } + + messages.push({ + "role": "user", + "content": this.userMessage, + }); + + const responseFormat = this.responseFormat === + constants.CHAT_RESPONSE_FORMAT.JSON_SCHEMA.value && this.jsonSchema + ? { + response_format: { + type: this.responseFormat, + json_schema: typeof this.jsonSchema === "string" + ? JSON.parse(this.jsonSchema) + : this.jsonSchema, + }, + } + : this.responseFormat && this.responseFormat !== constants.CHAT_RESPONSE_FORMAT.TEXT.value + ? { + response_format: { + type: this.responseFormat, + }, + } + : {}; + + const data = { + ...this._getCommonArgs(), + ...responseFormat, + messages, + }; + + const response = await this._302_ai.createChatCompletion({ + $, + data, + }); + + if (this.responseFormat === constants.CHAT_RESPONSE_FORMAT.JSON_SCHEMA.value) { + for (const choice of response.choices) { + try { + choice.message.content = JSON.parse(choice.message.content); + } catch { + console.log(`Unable to parse JSON: ${choice.message.content}`); + } + } + } + + if (response) { + $.export("$summary", `Successfully sent chat with id ${response.id}`); + } + + return { + original_messages: messages, + original_messages_with_assistant_response: messages.concat(response.choices[0]?.message), + ...response, + }; + }, +}; + diff --git a/components/_302_ai/actions/classify-items/classify-items.mjs b/components/_302_ai/actions/classify-items/classify-items.mjs new file mode 100644 index 0000000000000..2c35e54534a8e --- /dev/null +++ b/components/_302_ai/actions/classify-items/classify-items.mjs @@ -0,0 +1,82 @@ +import common from "../common/common-helper.mjs"; + +export default { + ...common, + name: "Classify Items", + version: "0.0.1", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: true, + }, + key: "_302_ai-classify-items", + description: "Classify input items into predefined categories using 302.AI models. Perfect for tagging, segmentation, and automated organization. [See documentation](https://doc.302.ai/147522039e0)", + type: "action", + props: { + ...common.props, + info: { + type: "alert", + alertType: "info", + content: `Provide a list of **items** and a list of **categories**. The output will contain an array of objects, each with properties \`item\` and \`category\` + \nExample: + \nIf **Categories** is \`["people", "pets"]\`, and **Items** is \`["dog", "George Washington"]\` + \n The output will contain the following categorizations: + \n \`[{"item":"dog","category":"pets"},{"item":"George Washington","category":"people"}]\` + `, + }, + items: { + label: "Items", + description: "Items to categorize", + type: "string[]", + }, + categories: { + label: "Categories", + description: "Categories to classify items into", + type: "string[]", + }, + }, + methods: { + ...common.methods, + systemInstructions() { + return "Your goal is to categorize items into specific categories and produce ONLY JSON. The user will provide both the items and categories. Please only categorize items into the specific categories, and no others, and output ONLY JSON."; + }, + outputFormat() { + return "Please only categorize items into the specific categories, and no others. Output a valid JSON string — an array of objects, where each object has the following properties: item, category. Do not return any English text other than the JSON, either before or after the JSON. I need to parse the response as JSON, and parsing will fail if you return any English before or after the JSON"; + }, + userMessage() { + return `Categorize each of the following items:\n\n${this.items.join("\n")}\n\ninto one of the following categories:\n\n${this.categories.join("\n")}\n\n${this.outputFormat()}`; + }, + summary() { + return `Categorized ${this.items.length} items into ${this.categories.length} categories`; + }, + formatOutput({ + messages, response, + }) { + if (!messages || !response) { + throw new Error("Invalid API output, please reach out to https://pipedream.com/support"); + } + const responses = response.choices?.map(({ message }) => message.content); + const categorizations = []; + for (const response of responses) { + try { + categorizations.push(JSON.parse(response)); + } catch (err) { + console.log("Failed to parse output, assistant returned malformed JSON"); + } + } + const output = { + messages, + }; + const n = this.n + ? parseInt(this.n) + : 1; + if (n > 1) { + output.categorizations = categorizations; + } else { + output.categorizations = categorizations[0]; + } + return output; + }, + }, +}; + diff --git a/components/_302_ai/actions/common/common-helper.mjs b/components/_302_ai/actions/common/common-helper.mjs new file mode 100644 index 0000000000000..24332aed6344b --- /dev/null +++ b/components/_302_ai/actions/common/common-helper.mjs @@ -0,0 +1,63 @@ +import _302_ai from "../../_302_ai.app.mjs"; +import common from "./common.mjs"; + +export default { + ...common, + props: { + _302_ai, + modelId: { + propDefinition: [ + _302_ai, + "chatCompletionModelId", + ], + description: "The ID of the model to use for chat completions", + }, + ...common.props, + }, + methods: { + ...common.methods, + systemInstructions() { + throw new Error("systemInstructions() must be implemented by the component"); + }, + userMessage() { + throw new Error("userMessage() must be implemented by the component"); + }, + summary() { + return; + }, + formatOutput() { + throw new Error("formatOutput() must be implemented by the component"); + }, + }, + async run({ $ }) { + const messages = [ + { + role: "system", + content: this.systemInstructions(), + }, + { + role: "user", + content: this.userMessage(), + }, + ]; + const data = { + ...this._getCommonArgs(), + model: this.modelId, + messages, + }; + const response = await this._302_ai.createChatCompletion({ + $, + data, + }); + + if (this.summary() && response) { + $.export("$summary", this.summary()); + } + + return this.formatOutput({ + response, + messages, + }); + }, +}; + diff --git a/components/_302_ai/actions/common/common.mjs b/components/_302_ai/actions/common/common.mjs new file mode 100644 index 0000000000000..3d3484b4aaf5f --- /dev/null +++ b/components/_302_ai/actions/common/common.mjs @@ -0,0 +1,122 @@ +import constants from "./constants.mjs"; + +export default { + props: { + maxTokens: { + label: "Max Tokens", + description: "The maximum number of tokens to generate in the completion.", + type: "string", + optional: true, + }, + temperature: { + label: "Temperature", + description: "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.", + type: "string", + optional: true, + }, + topP: { + label: "Top P", + description: "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.", + type: "string", + optional: true, + }, + n: { + label: "N", + description: "How many completions to generate for each prompt", + type: "string", + optional: true, + }, + stop: { + label: "Stop", + description: "Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.", + type: "string[]", + optional: true, + }, + presencePenalty: { + label: "Presence Penalty", + description: "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.", + type: "string", + optional: true, + }, + frequencyPenalty: { + label: "Frequency Penalty", + description: "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.", + type: "string", + optional: true, + }, + user: { + label: "User", + description: "A unique identifier representing your end-user, which can help monitor and detect abuse.", + type: "string", + optional: true, + }, + }, + methods: { + _getCommonArgs() { + const args = { + model: this.modelId, + temperature: this.temperature + ? parseFloat(this.temperature) + : undefined, + top_p: this.topP + ? parseFloat(this.topP) + : undefined, + n: this.n + ? parseInt(this.n) + : undefined, + stop: this.stop, + presence_penalty: this.presencePenalty + ? parseFloat(this.presencePenalty) + : undefined, + frequency_penalty: this.frequencyPenalty + ? parseFloat(this.frequencyPenalty) + : undefined, + max_tokens: this.maxTokens + ? parseInt(this.maxTokens) + : undefined, + user: this.user, + }; + return args; + }, + async _getChatArgs() { + const messages = []; + + if (this.systemInstructions) { + messages.push({ + "role": "system", + "content": this.systemInstructions, + }); + } + + messages.push({ + "role": "user", + "content": this.userMessage, + }); + + const responseFormat = this.responseFormat + === constants.CHAT_RESPONSE_FORMAT.JSON_SCHEMA.value && this.jsonSchema + ? { + response_format: { + type: this.responseFormat, + json_schema: typeof this.jsonSchema === "string" + ? JSON.parse(this.jsonSchema) + : this.jsonSchema, + }, + } + : this.responseFormat + ? { + response_format: { + type: this.responseFormat, + }, + } + : {}; + + return { + ...this._getCommonArgs(), + ...responseFormat, + messages, + }; + }, + }, +}; + diff --git a/components/_302_ai/actions/common/constants.mjs b/components/_302_ai/actions/common/constants.mjs new file mode 100644 index 0000000000000..9fb6275a21fdc --- /dev/null +++ b/components/_302_ai/actions/common/constants.mjs @@ -0,0 +1,27 @@ +const CHAT_RESPONSE_FORMAT = { + TEXT: { + label: "Text", + value: "text", + }, + JSON_OBJECT: { + label: "JSON Object", + value: "json_object", + }, + JSON_SCHEMA: { + label: "JSON Schema", + value: "json_schema", + }, +}; + +const SUMMARIZE_LENGTH = [ + "word", + "sentence", + "paragraph", + "page", +]; + +export default { + CHAT_RESPONSE_FORMAT, + SUMMARIZE_LENGTH, +}; + diff --git a/components/_302_ai/actions/create-embeddings/create-embeddings.mjs b/components/_302_ai/actions/create-embeddings/create-embeddings.mjs new file mode 100644 index 0000000000000..c6eb54cb9b8a6 --- /dev/null +++ b/components/_302_ai/actions/create-embeddings/create-embeddings.mjs @@ -0,0 +1,92 @@ +import { ConfigurationError } from "@pipedream/platform"; +import _302_ai from "../../_302_ai.app.mjs"; + +export default { + name: "Create Embeddings", + version: "0.0.1", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: true, + }, + key: "_302_ai-create-embeddings", + description: "Generate vector embeddings from text using the 302.AI Embeddings API. Useful for semantic search, clustering, and vector store indexing. [See documentation](https://doc.302.ai/147522048e0)", + type: "action", + props: { + _302_ai, + modelId: { + propDefinition: [ + _302_ai, + "embeddingsModelId", + ], + }, + input: { + label: "Input", + description: "Input text to get embeddings for, encoded as a string or array of tokens. To get embeddings for multiple inputs in a single request, pass an array of strings or array of token arrays. Each input must not exceed 8192 tokens in length.", + type: "string[]", + }, + user: { + label: "User", + description: "A unique identifier representing your end-user, which can help monitor and detect abuse.", + type: "string", + optional: true, + }, + encodingFormat: { + label: "Encoding Format", + description: "The format to return the embeddings in. Can be either `float` or `base64`.", + type: "string", + optional: true, + options: [ + "float", + "base64", + ], + default: "float", + }, + dimensions: { + label: "Dimensions", + description: "The number of dimensions the resulting output embeddings should have. Only supported in some models.", + type: "string", + optional: true, + }, + }, + async run({ $ }) { + // Confirm no element is more than 8192 tokens in length + for (const [ + i, + element, + ] of this.input.entries()) { + if (element.length > 8192) { + throw new ConfigurationError(`Element #${i} is more than 8192 tokens in length. Each input must not exceed 8192 tokens in length.`); + } + } + + const data = { + model: this.modelId, + input: this.input, + }; + + if (this.user) { + data.user = this.user; + } + + if (this.encodingFormat) { + data.encoding_format = this.encodingFormat; + } + + if (this.dimensions) { + data.dimensions = parseInt(this.dimensions); + } + + const response = await this._302_ai.createEmbeddings({ + $, + data, + }); + + if (response) { + $.export("$summary", "Successfully created embeddings"); + } + + return response; + }, +}; + diff --git a/components/_302_ai/actions/summarize-text/summarize-text.mjs b/components/_302_ai/actions/summarize-text/summarize-text.mjs new file mode 100644 index 0000000000000..14d6a54f5554c --- /dev/null +++ b/components/_302_ai/actions/summarize-text/summarize-text.mjs @@ -0,0 +1,65 @@ +import common from "../common/common-helper.mjs"; +import constants from "../common/constants.mjs"; + +export default { + ...common, + name: "Summarize Text", + version: "0.0.1", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: true, + }, + key: "_302_ai-summarize-text", + description: "Summarize long-form text into concise, readable output using the 302.AI Chat API. Great for reports, content digestion, and executive briefs. [See documentation](https://doc.302.ai/147522039e0)", + type: "action", + props: { + ...common.props, + text: { + label: "Text", + description: "The text to summarize", + type: "string", + }, + length: { + label: "Summary Length", + description: "The length of the summary", + type: "string", + optional: true, + options: constants.SUMMARIZE_LENGTH, + }, + }, + methods: { + ...common.methods, + systemInstructions() { + return "Your goal is to summarize the text the user provides. Please follow the length guidelines presented in the prompt."; + }, + maxLength() { + return this.length + ? ` in one ${this.length}` + : ""; + }, + userMessage() { + return `Summarize the following text${this.maxLength()}: ${this.text}`; + }, + formatOutput({ + messages, response, + }) { + if (!messages || !response) { + throw new Error("Invalid API output, please reach out to https://pipedream.com/support"); + } + const output = { + messages, + }; + const n = this.n + ? parseInt(this.n) + : 1; + if (n > 1) { + output.summaries = response.choices?.map(({ message }) => message.content); + } else { + output.summary = response.choices?.[0]?.message?.content; + } + return output; + }, + }, +}; + diff --git a/components/_302_ai/package.json b/components/_302_ai/package.json index 62b5914423c5c..f4bcd9bfc7d91 100644 --- a/components/_302_ai/package.json +++ b/components/_302_ai/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/_302_ai", - "version": "0.0.1", + "version": "0.1.0", "description": "Pipedream 302.ai Components", "main": "_302_ai.app.mjs", "keywords": [ @@ -11,5 +11,8 @@ "author": "Pipedream (https://pipedream.com/)", "publishConfig": { "access": "public" + }, + "dependencies": { + "@pipedream/platform": "^3.1.0" } -} \ No newline at end of file +} diff --git a/components/ashby/ashby.app.mjs b/components/ashby/ashby.app.mjs index 1e4d025f0096d..8548986d11480 100644 --- a/components/ashby/ashby.app.mjs +++ b/components/ashby/ashby.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/configcat/configcat.app.mjs b/components/configcat/configcat.app.mjs index ddfa3c08253b0..c2bdde50cc859 100644 --- a/components/configcat/configcat.app.mjs +++ b/components/configcat/configcat.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/dasha_ai/dasha_ai.app.mjs b/components/dasha_ai/dasha_ai.app.mjs index 2d6a152644e40..1f74705530330 100644 --- a/components/dasha_ai/dasha_ai.app.mjs +++ b/components/dasha_ai/dasha_ai.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/devolens/devolens.app.mjs b/components/devolens/devolens.app.mjs index 06d997933da22..3b855be31adec 100644 --- a/components/devolens/devolens.app.mjs +++ b/components/devolens/devolens.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/exa/exa.app.mjs b/components/exa/exa.app.mjs index ca0058999ed42..602bab1293f4d 100644 --- a/components/exa/exa.app.mjs +++ b/components/exa/exa.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca38016a18052..cd763d88a4859 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -104,7 +104,7 @@ importers: version: 4.0.0 ts-jest: specifier: ^29.1.1 - version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.6)(typescript@5.6.3)))(typescript@5.6.3) + version: 29.2.5(@babel/core@8.0.0-alpha.13)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@8.0.0-alpha.13))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.6)(typescript@5.6.3)))(typescript@5.6.3) tsc-esm-fix: specifier: ^2.18.0 version: 2.20.27 @@ -157,7 +157,11 @@ importers: specifier: ^4.0.1 version: 4.0.1 - components/_302_ai: {} + components/_302_ai: + dependencies: + '@pipedream/platform': + specifier: ^3.1.0 + version: 3.1.0 components/_360nrs: dependencies: @@ -1112,8 +1116,7 @@ importers: components/ascora: {} - components/ashby: - specifiers: {} + components/ashby: {} components/ashby_job_postings_api: {} @@ -2873,8 +2876,7 @@ importers: specifier: ^3.0.3 version: 3.0.3 - components/cloud_66: - specifiers: {} + components/cloud_66: {} components/cloud_convert: dependencies: @@ -3183,8 +3185,7 @@ importers: specifier: ^1.4.0 version: 1.6.6 - components/configcat: - specifiers: {} + components/configcat: {} components/confluence: dependencies: @@ -3403,8 +3404,7 @@ importers: components/cronly: {} - components/crossmint: - specifiers: {} + components/crossmint: {} components/crove_app: dependencies: @@ -3595,8 +3595,7 @@ importers: components/darwinbox: {} - components/dasha_ai: - specifiers: {} + components/dasha_ai: {} components/data247: {} @@ -3830,8 +3829,7 @@ importers: specifier: ^4.0.4 version: 4.0.4 - components/devolens: - specifiers: {} + components/devolens: {} components/devrev: dependencies: @@ -4780,8 +4778,7 @@ importers: specifier: ^1.5.1 version: 1.6.6 - components/exa: - specifiers: {} + components/exa: {} components/exact: dependencies: @@ -17017,7 +17014,7 @@ importers: version: 3.1.7 ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2)))(typescript@5.7.2) + version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2)))(typescript@5.7.2) tsup: specifier: ^8.3.6 version: 8.3.6(@microsoft/api-extractor@7.47.12(@types/node@20.17.30))(jiti@2.4.2)(postcss@8.5.6)(tsx@4.19.4)(typescript@5.7.2)(yaml@2.8.0) @@ -28390,6 +28387,7 @@ packages: mailsplit@5.4.0: resolution: {integrity: sha512-wnYxX5D5qymGIPYLwnp6h8n1+6P6vz/MJn5AzGjZ8pwICWssL+CCQjWBIToOVHASmATot4ktvlLo6CyLfOXWYA==} + deprecated: This package has been renamed to @zone-eu/mailsplit. Please update your dependencies. make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} @@ -31431,22 +31429,22 @@ packages: superagent@3.8.1: resolution: {integrity: sha512-VMBFLYgFuRdfeNQSMLbxGSLfmXL/xc+OO+BZp41Za/NRDBet/BNbkRJrYzCUu0u4GU0i/ml2dtT8b9qgkw9z6Q==} engines: {node: '>= 4.0'} - deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net + deprecated: Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net superagent@4.1.0: resolution: {integrity: sha512-FT3QLMasz0YyCd4uIi5HNe+3t/onxMyEho7C3PSqmti3Twgy2rXT4fmkTz6wRL6bTF4uzPcfkUCa8u4JWHw8Ag==} engines: {node: '>= 6.0'} - deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net + deprecated: Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net superagent@5.3.1: resolution: {integrity: sha512-wjJ/MoTid2/RuGCOFtlacyGNxN9QLMgcpYLDQlWFIhhdJ93kNscFonGvrpAHSCVjRVj++DGCglocF7Aej1KHvQ==} engines: {node: '>= 7.0.0'} - deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net + deprecated: Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net superagent@7.1.6: resolution: {integrity: sha512-gZkVCQR1gy/oUXr+kxJMLDjla434KmSOKbx5iGD30Ql+AkJQ/YlPKECJy2nhqOsHLjGHzoDTXNSjhnvWhzKk7g==} engines: {node: '>=6.4.0 <13 || >=14'} - deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net + deprecated: Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net supports-color@10.0.0: resolution: {integrity: sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==} @@ -35857,7 +35855,7 @@ snapshots: '@babel/traverse': 7.25.9 '@babel/types': 7.26.0 convert-source-map: 2.0.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -36128,21 +36126,45 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -36153,16 +36175,34 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -36173,41 +36213,89 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -37270,7 +37358,7 @@ snapshots: '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 @@ -39776,6 +39864,8 @@ snapshots: '@putout/operator-filesystem': 5.0.0(putout@36.13.1(eslint@8.57.1)(typescript@5.6.3)) '@putout/operator-json': 2.2.0 putout: 36.13.1(eslint@8.57.1)(typescript@5.6.3) + transitivePeerDependencies: + - supports-color '@putout/operator-regexp@1.0.0(putout@36.13.1(eslint@8.57.1)(typescript@5.6.3))': dependencies: @@ -42336,7 +42426,7 @@ snapshots: '@typescript-eslint/types': 8.15.0 '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.15.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) eslint: 8.57.1 optionalDependencies: typescript: 5.6.3 @@ -43230,6 +43320,20 @@ snapshots: transitivePeerDependencies: - supports-color + babel-jest@29.7.0(@babel/core@8.0.0-alpha.13): + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@8.0.0-alpha.13) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + optional: true + babel-plugin-istanbul@6.1.1: dependencies: '@babel/helper-plugin-utils': 7.25.9 @@ -43296,12 +43400,39 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0) + babel-preset-current-node-syntax@1.1.0(@babel/core@8.0.0-alpha.13): + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@8.0.0-alpha.13) + optional: true + babel-preset-jest@29.6.3(@babel/core@7.26.0): dependencies: '@babel/core': 7.26.0 babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0) + babel-preset-jest@29.6.3(@babel/core@8.0.0-alpha.13): + dependencies: + '@babel/core': 8.0.0-alpha.13 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.1.0(@babel/core@8.0.0-alpha.13) + optional: true + backoff@2.5.0: dependencies: precond: 0.2.3 @@ -45510,7 +45641,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -47371,7 +47502,7 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -48411,7 +48542,7 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -49952,7 +50083,7 @@ snapshots: dependencies: '@tediousjs/connection-string': 0.5.0 commander: 11.1.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) rfdc: 1.4.1 tarn: 3.0.2 tedious: 16.7.1 @@ -51703,7 +51834,7 @@ snapshots: ajv: 8.17.1 chalk: 5.3.0 ci-info: 4.1.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) deepmerge: 4.3.1 escalade: 3.2.0 fast-glob: 3.3.2 @@ -53839,7 +53970,7 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2)))(typescript@5.7.2): + ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2)))(typescript@5.7.2): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 @@ -53857,9 +53988,8 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.0) - esbuild: 0.24.2 - ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.6)(typescript@5.6.3)))(typescript@5.6.3): + ts-jest@29.2.5(@babel/core@8.0.0-alpha.13)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@8.0.0-alpha.13))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.6)(typescript@5.6.3)))(typescript@5.6.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 @@ -53873,10 +54003,10 @@ snapshots: typescript: 5.6.3 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.26.0 + '@babel/core': 8.0.0-alpha.13 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.26.0) + babel-jest: 29.7.0(@babel/core@8.0.0-alpha.13) ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2): dependencies: @@ -54048,7 +54178,7 @@ snapshots: cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) esbuild: 0.24.2 joycon: 3.1.1 picocolors: 1.1.1 @@ -54076,7 +54206,7 @@ snapshots: cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) esbuild: 0.24.2 joycon: 3.1.1 picocolors: 1.1.1 @@ -54700,7 +54830,7 @@ snapshots: '@volar/typescript': 2.4.10 '@vue/language-core': 2.1.6(typescript@5.9.2) compare-versions: 6.1.1 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) kolorist: 1.8.0 local-pkg: 0.5.1 magic-string: 0.30.13