@n8n/n8n-nodes-langchain 2.16.0 → 2.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/credentials/MoonshotApi.credentials.d.ts +9 -0
- package/dist/credentials/MoonshotApi.credentials.js +60 -0
- package/dist/credentials/MoonshotApi.credentials.js.map +1 -0
- package/dist/known/credentials.json +9 -0
- package/dist/known/nodes.json +12 -0
- package/dist/node-definitions/.nodes-hash +1 -1
- package/dist/node-definitions/index.ts +12 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/index.ts +12 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/index.schema.js +24 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/index.ts +18 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_image/index.schema.js +22 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_image/index.ts +15 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_image/operation_analyze.schema.js +34 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_image/operation_analyze.ts +71 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_image/operation_generate.schema.js +31 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_image/operation_generate.ts +60 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_text/index.schema.js +18 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_text/index.ts +10 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_text/operation_message.schema.js +31 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_text/operation_message.ts +97 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_video/index.schema.js +22 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_video/index.ts +15 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_video/operation_image_to_video.schema.js +38 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_video/operation_image_to_video.ts +105 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_video/operation_text_to_video.schema.js +35 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_video/operation_text_to_video.ts +88 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatMoonshot/index.ts +12 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatMoonshot/v1.schema.js +25 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatMoonshot/v1.ts +68 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/moonshot/index.ts +12 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/moonshot/v1/index.schema.js +22 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/moonshot/v1/index.ts +15 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/moonshot/v1/resource_image/index.schema.js +18 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/moonshot/v1/resource_image/index.ts +10 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/moonshot/v1/resource_image/operation_analyze.schema.js +32 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/moonshot/v1/resource_image/operation_analyze.ts +58 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/moonshot/v1/resource_text/index.schema.js +18 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/moonshot/v1/resource_text/index.ts +10 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/moonshot/v1/resource_text/operation_message.schema.js +33 -0
- package/dist/node-definitions/nodes/n8n-nodes-langchain/moonshot/v1/resource_text/operation_message.ts +114 -0
- package/dist/nodes/Guardrails/Guardrails.node.js +2 -1
- package/dist/nodes/Guardrails/Guardrails.node.js.map +1 -1
- package/dist/nodes/ModelSelector/ModelSelector.node.js +2 -2
- package/dist/nodes/ModelSelector/ModelSelector.node.js.map +1 -1
- package/dist/nodes/agents/Agent/Agent.node.js +1 -1
- package/dist/nodes/agents/Agent/Agent.node.js.map +1 -1
- package/dist/nodes/agents/Agent/V1/AgentV1.node.js +2 -0
- package/dist/nodes/agents/Agent/V1/AgentV1.node.js.map +1 -1
- package/dist/nodes/agents/Agent/agents/ToolsAgent/V3/helpers/runAgent.js +1 -1
- package/dist/nodes/agents/Agent/agents/ToolsAgent/V3/helpers/runAgent.js.map +1 -1
- package/dist/nodes/chains/ChainLLM/ChainLlm.node.js +1 -2
- package/dist/nodes/chains/ChainLLM/ChainLlm.node.js.map +1 -1
- package/dist/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.js +1 -2
- package/dist/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.js.map +1 -1
- package/dist/nodes/chains/ChainSummarization/ChainSummarization.node.js +1 -1
- package/dist/nodes/chains/ChainSummarization/ChainSummarization.node.js.map +1 -1
- package/dist/nodes/chains/InformationExtractor/InformationExtractor.node.js +1 -1
- package/dist/nodes/chains/InformationExtractor/InformationExtractor.node.js.map +1 -1
- package/dist/nodes/chains/SentimentAnalysis/SentimentAnalysis.node.js +1 -1
- package/dist/nodes/chains/SentimentAnalysis/SentimentAnalysis.node.js.map +1 -1
- package/dist/nodes/chains/TextClassifier/TextClassifier.node.js +1 -1
- package/dist/nodes/chains/TextClassifier/TextClassifier.node.js.map +1 -1
- package/dist/nodes/document_loaders/DocumentDefaultDataLoader/DocumentDefaultDataLoader.node.js +2 -1
- package/dist/nodes/document_loaders/DocumentDefaultDataLoader/DocumentDefaultDataLoader.node.js.map +1 -1
- package/dist/nodes/llms/LmChatAlibabaCloud/alibaba-cloud-base-url.d.ts +1 -0
- package/dist/nodes/llms/LmChatAlibabaCloud/alibaba-cloud-base-url.js +22 -10
- package/dist/nodes/llms/LmChatAlibabaCloud/alibaba-cloud-base-url.js.map +1 -1
- package/dist/nodes/llms/LmChatMoonshot/LmChatMoonshot.node.d.ts +5 -0
- package/dist/nodes/llms/LmChatMoonshot/LmChatMoonshot.node.js +226 -0
- package/dist/nodes/llms/LmChatMoonshot/LmChatMoonshot.node.js.map +1 -0
- package/dist/nodes/llms/LmChatMoonshot/moonshot.dark.svg +4 -0
- package/dist/nodes/llms/LmChatMoonshot/moonshot.svg +4 -0
- package/dist/nodes/mcp/McpClient/McpClient.node.js +64 -59
- package/dist/nodes/mcp/McpClient/McpClient.node.js.map +1 -1
- package/dist/nodes/mcp/McpClient/listSearch.js +18 -13
- package/dist/nodes/mcp/McpClient/listSearch.js.map +1 -1
- package/dist/nodes/mcp/McpClient/resourceMapping.js +13 -8
- package/dist/nodes/mcp/McpClient/resourceMapping.js.map +1 -1
- package/dist/nodes/mcp/McpClientTool/McpClientTool.node.js +74 -41
- package/dist/nodes/mcp/McpClientTool/McpClientTool.node.js.map +1 -1
- package/dist/nodes/mcp/McpClientTool/loadOptions.js +12 -7
- package/dist/nodes/mcp/McpClientTool/loadOptions.js.map +1 -1
- package/dist/nodes/mcp/McpClientTool/utils.d.ts +2 -1
- package/dist/nodes/mcp/McpClientTool/utils.js +20 -1
- package/dist/nodes/mcp/McpClientTool/utils.js.map +1 -1
- package/dist/nodes/memory/MemoryBufferWindow/MemoryBufferWindow.node.js +1 -1
- package/dist/nodes/memory/MemoryBufferWindow/MemoryBufferWindow.node.js.map +1 -1
- package/dist/nodes/memory/MemoryManager/MemoryManager.node.js +1 -1
- package/dist/nodes/memory/MemoryManager/MemoryManager.node.js.map +1 -1
- package/dist/nodes/output_parser/OutputParserItemList/OutputParserItemList.node.js +1 -1
- package/dist/nodes/output_parser/OutputParserItemList/OutputParserItemList.node.js.map +1 -1
- package/dist/nodes/output_parser/OutputParserStructured/OutputParserStructured.node.js +1 -1
- package/dist/nodes/output_parser/OutputParserStructured/OutputParserStructured.node.js.map +1 -1
- package/dist/nodes/retrievers/RetrieverContextualCompression/RetrieverContextualCompression.node.js +1 -1
- package/dist/nodes/retrievers/RetrieverContextualCompression/RetrieverContextualCompression.node.js.map +1 -1
- package/dist/nodes/retrievers/RetrieverMultiQuery/RetrieverMultiQuery.node.js +1 -1
- package/dist/nodes/retrievers/RetrieverMultiQuery/RetrieverMultiQuery.node.js.map +1 -1
- package/dist/nodes/retrievers/RetrieverVectorStore/RetrieverVectorStore.node.js +1 -1
- package/dist/nodes/retrievers/RetrieverVectorStore/RetrieverVectorStore.node.js.map +1 -1
- package/dist/nodes/retrievers/RetrieverWorkflow/RetrieverWorkflow.node.js +1 -1
- package/dist/nodes/retrievers/RetrieverWorkflow/RetrieverWorkflow.node.js.map +1 -1
- package/dist/nodes/text_splitters/TextSplitterCharacterTextSplitter/TextSplitterCharacterTextSplitter.node.js +1 -1
- package/dist/nodes/text_splitters/TextSplitterCharacterTextSplitter/TextSplitterCharacterTextSplitter.node.js.map +1 -1
- package/dist/nodes/text_splitters/TextSplitterRecursiveCharacterTextSplitter/TextSplitterRecursiveCharacterTextSplitter.node.js +1 -1
- package/dist/nodes/text_splitters/TextSplitterRecursiveCharacterTextSplitter/TextSplitterRecursiveCharacterTextSplitter.node.js.map +1 -1
- package/dist/nodes/text_splitters/TextSplitterTokenSplitter/TextSplitterTokenSplitter.node.js +1 -1
- package/dist/nodes/text_splitters/TextSplitterTokenSplitter/TextSplitterTokenSplitter.node.js.map +1 -1
- package/dist/nodes/tools/ToolCalculator/ToolCalculator.node.js +1 -1
- package/dist/nodes/tools/ToolCalculator/ToolCalculator.node.js.map +1 -1
- package/dist/nodes/tools/ToolThink/ToolThink.node.js +1 -1
- package/dist/nodes/tools/ToolThink/ToolThink.node.js.map +1 -1
- package/dist/nodes/tools/ToolVectorStore/ToolVectorStore.node.js +1 -1
- package/dist/nodes/tools/ToolVectorStore/ToolVectorStore.node.js.map +1 -1
- package/dist/nodes/tools/ToolWorkflow/ToolWorkflow.node.js +1 -1
- package/dist/nodes/tools/ToolWorkflow/ToolWorkflow.node.js.map +1 -1
- package/dist/nodes/trigger/ChatTrigger/Chat.node.js +1 -1
- package/dist/nodes/trigger/ChatTrigger/Chat.node.js.map +1 -1
- package/dist/nodes/trigger/ChatTrigger/ChatTrigger.node.js +5 -2
- package/dist/nodes/trigger/ChatTrigger/ChatTrigger.node.js.map +1 -1
- package/dist/nodes/vector_store/VectorStoreInMemory/VectorStoreInMemory.node.js +1 -1
- package/dist/nodes/vector_store/VectorStoreInMemory/VectorStoreInMemory.node.js.map +1 -1
- package/dist/nodes/vendors/AlibabaCloud/AlibabaCloud.node.d.ts +5 -0
- package/dist/nodes/vendors/AlibabaCloud/AlibabaCloud.node.js +15 -0
- package/dist/nodes/vendors/AlibabaCloud/AlibabaCloud.node.js.map +1 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/image/analyze.operation.d.ts +29 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/image/analyze.operation.js +188 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/image/analyze.operation.js.map +1 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/image/generate.operation.d.ts +29 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/image/generate.operation.js +204 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/image/generate.operation.js.map +1 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/image/index.d.ts +5 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/image/index.js +71 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/image/index.js.map +1 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/router.d.ts +2 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/router.js +106 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/router.js.map +1 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/text/index.d.ts +4 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/text/index.js +62 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/text/index.js.map +1 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/text/message.operation.d.ts +29 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/text/message.operation.js +403 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/text/message.operation.js.map +1 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/versionDescription.d.ts +2 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/versionDescription.js +112 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/versionDescription.js.map +1 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/video/generate.i2v.operation.d.ts +30 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/video/generate.i2v.operation.js +312 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/video/generate.i2v.operation.js.map +1 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/video/generate.t2v.operation.d.ts +30 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/video/generate.t2v.operation.js +251 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/video/generate.t2v.operation.js.map +1 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/video/index.d.ts +5 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/video/index.js +71 -0
- package/dist/nodes/vendors/AlibabaCloud/actions/video/index.js.map +1 -0
- package/dist/nodes/vendors/AlibabaCloud/alibaba.svg +1 -0
- package/dist/nodes/vendors/AlibabaCloud/helpers/interfaces.d.ts +53 -0
- package/dist/nodes/vendors/AlibabaCloud/helpers/interfaces.js +3 -0
- package/dist/nodes/vendors/AlibabaCloud/helpers/interfaces.js.map +1 -0
- package/dist/nodes/vendors/AlibabaCloud/transport/index.d.ts +11 -0
- package/dist/nodes/vendors/AlibabaCloud/transport/index.js +60 -0
- package/dist/nodes/vendors/AlibabaCloud/transport/index.js.map +1 -0
- package/dist/nodes/vendors/Microsoft/microsoft-utils.d.ts +2 -1
- package/dist/nodes/vendors/Microsoft/microsoft-utils.js +3 -13
- package/dist/nodes/vendors/Microsoft/microsoft-utils.js.map +1 -1
- package/dist/nodes/vendors/Moonshot/Moonshot.node.d.ts +9 -0
- package/dist/nodes/vendors/Moonshot/Moonshot.node.js +19 -0
- package/dist/nodes/vendors/Moonshot/Moonshot.node.js.map +1 -0
- package/dist/nodes/vendors/Moonshot/actions/descriptions.d.ts +2 -0
- package/dist/nodes/vendors/Moonshot/actions/descriptions.js +28 -0
- package/dist/nodes/vendors/Moonshot/actions/descriptions.js.map +1 -0
- package/dist/nodes/vendors/Moonshot/actions/image/analyze.operation.d.ts +29 -0
- package/dist/nodes/vendors/Moonshot/actions/image/analyze.operation.js +114 -0
- package/dist/nodes/vendors/Moonshot/actions/image/analyze.operation.js.map +1 -0
- package/dist/nodes/vendors/Moonshot/actions/image/index.d.ts +4 -0
- package/dist/nodes/vendors/Moonshot/actions/image/index.js +62 -0
- package/dist/nodes/vendors/Moonshot/actions/image/index.js.map +1 -0
- package/dist/nodes/vendors/Moonshot/actions/node.type.d.ts +7 -0
- package/dist/nodes/vendors/Moonshot/actions/node.type.js +3 -0
- package/dist/nodes/vendors/Moonshot/actions/node.type.js.map +1 -0
- package/dist/nodes/vendors/Moonshot/actions/router.d.ts +2 -0
- package/dist/nodes/vendors/Moonshot/actions/router.js +78 -0
- package/dist/nodes/vendors/Moonshot/actions/router.js.map +1 -0
- package/dist/nodes/vendors/Moonshot/actions/text/index.d.ts +4 -0
- package/dist/nodes/vendors/Moonshot/actions/text/index.js +62 -0
- package/dist/nodes/vendors/Moonshot/actions/text/index.js.map +1 -0
- package/dist/nodes/vendors/Moonshot/actions/text/message.operation.d.ts +29 -0
- package/dist/nodes/vendors/Moonshot/actions/text/message.operation.js +390 -0
- package/dist/nodes/vendors/Moonshot/actions/text/message.operation.js.map +1 -0
- package/dist/nodes/vendors/Moonshot/actions/versionDescription.d.ts +2 -0
- package/dist/nodes/vendors/Moonshot/actions/versionDescription.js +106 -0
- package/dist/nodes/vendors/Moonshot/actions/versionDescription.js.map +1 -0
- package/dist/nodes/vendors/Moonshot/helpers/interfaces.d.ts +60 -0
- package/dist/nodes/vendors/Moonshot/helpers/interfaces.js +3 -0
- package/dist/nodes/vendors/Moonshot/helpers/interfaces.js.map +1 -0
- package/dist/nodes/vendors/Moonshot/helpers/utils.d.ts +2 -0
- package/dist/nodes/vendors/Moonshot/helpers/utils.js +14 -0
- package/dist/nodes/vendors/Moonshot/helpers/utils.js.map +1 -0
- package/dist/nodes/vendors/Moonshot/methods/index.d.ts +1 -0
- package/dist/nodes/vendors/Moonshot/methods/index.js +38 -0
- package/dist/nodes/vendors/Moonshot/methods/index.js.map +1 -0
- package/dist/nodes/vendors/Moonshot/methods/listSearch.d.ts +2 -0
- package/dist/nodes/vendors/Moonshot/methods/listSearch.js +18 -0
- package/dist/nodes/vendors/Moonshot/methods/listSearch.js.map +1 -0
- package/dist/nodes/vendors/Moonshot/moonshot.dark.svg +4 -0
- package/dist/nodes/vendors/Moonshot/moonshot.svg +4 -0
- package/dist/nodes/vendors/Moonshot/transport/index.d.ts +9 -0
- package/dist/nodes/vendors/Moonshot/transport/index.js +22 -0
- package/dist/nodes/vendors/Moonshot/transport/index.js.map +1 -0
- package/dist/typecheck.tsbuildinfo +1 -1
- package/dist/types/credentials.json +2 -1
- package/dist/types/nodes.json +37 -34
- package/package.json +14 -10
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.description = void 0;
|
|
4
|
+
exports.execute = execute;
|
|
5
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
6
|
+
const transport_1 = require("../../transport");
|
|
7
|
+
const properties = [
|
|
8
|
+
{
|
|
9
|
+
displayName: 'Model',
|
|
10
|
+
name: 'modelId',
|
|
11
|
+
type: 'options',
|
|
12
|
+
options: [
|
|
13
|
+
{
|
|
14
|
+
name: 'Qwen-VL Flash',
|
|
15
|
+
value: 'qwen3-vl-flash',
|
|
16
|
+
description: 'Fast vision-language model',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'Qwen-VL Plus',
|
|
20
|
+
value: 'qwen3-vl-plus',
|
|
21
|
+
description: 'Enhanced vision-language model',
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
default: 'qwen3-vl-flash',
|
|
25
|
+
description: 'The model to use for image analysis',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
displayName: 'Input Type',
|
|
29
|
+
name: 'inputType',
|
|
30
|
+
type: 'options',
|
|
31
|
+
options: [
|
|
32
|
+
{
|
|
33
|
+
name: 'URL',
|
|
34
|
+
value: 'url',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'Binary Data',
|
|
38
|
+
value: 'binary',
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
default: 'url',
|
|
42
|
+
description: 'How to provide the image for analysis',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
displayName: 'Image URL',
|
|
46
|
+
name: 'imageUrl',
|
|
47
|
+
type: 'string',
|
|
48
|
+
default: '',
|
|
49
|
+
description: 'The URL of the image to analyze',
|
|
50
|
+
required: true,
|
|
51
|
+
placeholder: 'https://example.com/image.jpg',
|
|
52
|
+
displayOptions: {
|
|
53
|
+
show: {
|
|
54
|
+
inputType: ['url'],
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
displayName: 'Input Data Field Name',
|
|
60
|
+
name: 'binaryPropertyName',
|
|
61
|
+
type: 'string',
|
|
62
|
+
default: 'data',
|
|
63
|
+
required: true,
|
|
64
|
+
placeholder: 'e.g. data',
|
|
65
|
+
hint: 'The name of the input field containing the binary file data to be processed',
|
|
66
|
+
displayOptions: {
|
|
67
|
+
show: {
|
|
68
|
+
inputType: ['binary'],
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
displayName: 'Question',
|
|
74
|
+
name: 'question',
|
|
75
|
+
type: 'string',
|
|
76
|
+
typeOptions: {
|
|
77
|
+
rows: 4,
|
|
78
|
+
},
|
|
79
|
+
default: '',
|
|
80
|
+
description: 'The question or instruction about the image',
|
|
81
|
+
required: true,
|
|
82
|
+
placeholder: 'What is in this image?',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
displayName: 'Simplify Output',
|
|
86
|
+
name: 'simplify',
|
|
87
|
+
type: 'boolean',
|
|
88
|
+
default: true,
|
|
89
|
+
description: 'Whether to return a simplified version of the response instead of the raw data',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
displayName: 'Options',
|
|
93
|
+
name: 'visionOptions',
|
|
94
|
+
type: 'collection',
|
|
95
|
+
placeholder: 'Add Option',
|
|
96
|
+
default: {},
|
|
97
|
+
options: [
|
|
98
|
+
{
|
|
99
|
+
displayName: 'Temperature',
|
|
100
|
+
name: 'temperature',
|
|
101
|
+
type: 'number',
|
|
102
|
+
typeOptions: {
|
|
103
|
+
minValue: 0,
|
|
104
|
+
maxValue: 2,
|
|
105
|
+
numberPrecision: 2,
|
|
106
|
+
},
|
|
107
|
+
default: 1,
|
|
108
|
+
description: 'Controls randomness in the output. Lower values make output more focused and deterministic.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
displayName: 'Max Tokens',
|
|
112
|
+
name: 'maxTokens',
|
|
113
|
+
type: 'number',
|
|
114
|
+
typeOptions: {
|
|
115
|
+
minValue: 1,
|
|
116
|
+
},
|
|
117
|
+
default: 2000,
|
|
118
|
+
description: 'Maximum number of tokens to generate',
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
];
|
|
123
|
+
const displayOptions = {
|
|
124
|
+
show: {
|
|
125
|
+
operation: ['analyze'],
|
|
126
|
+
resource: ['image'],
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
exports.description = (0, n8n_workflow_1.updateDisplayOptions)(displayOptions, properties);
|
|
130
|
+
async function execute(itemIndex) {
|
|
131
|
+
const model = this.getNodeParameter('modelId', itemIndex);
|
|
132
|
+
const inputType = this.getNodeParameter('inputType', itemIndex);
|
|
133
|
+
const question = this.getNodeParameter('question', itemIndex);
|
|
134
|
+
const visionOptions = this.getNodeParameter('visionOptions', itemIndex, {});
|
|
135
|
+
const simplify = this.getNodeParameter('simplify', itemIndex, true);
|
|
136
|
+
let imageContent;
|
|
137
|
+
if (inputType === 'binary') {
|
|
138
|
+
const binaryPropertyName = this.getNodeParameter('binaryPropertyName', itemIndex);
|
|
139
|
+
const binaryData = this.helpers.assertBinaryData(itemIndex, binaryPropertyName);
|
|
140
|
+
const buffer = await this.helpers.getBinaryDataBuffer(itemIndex, binaryPropertyName);
|
|
141
|
+
const mimeType = binaryData.mimeType || 'image/png';
|
|
142
|
+
imageContent = `data:${mimeType};base64,${buffer.toString('base64')}`;
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
imageContent = this.getNodeParameter('imageUrl', itemIndex);
|
|
146
|
+
}
|
|
147
|
+
const body = {
|
|
148
|
+
model,
|
|
149
|
+
input: {
|
|
150
|
+
messages: [
|
|
151
|
+
{
|
|
152
|
+
role: 'user',
|
|
153
|
+
content: [
|
|
154
|
+
{
|
|
155
|
+
image: imageContent,
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
text: question,
|
|
159
|
+
},
|
|
160
|
+
],
|
|
161
|
+
},
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
parameters: {},
|
|
165
|
+
};
|
|
166
|
+
if (visionOptions.temperature !== undefined) {
|
|
167
|
+
body.parameters.temperature = visionOptions.temperature;
|
|
168
|
+
}
|
|
169
|
+
if (visionOptions.maxTokens !== undefined) {
|
|
170
|
+
body.parameters.max_tokens = visionOptions.maxTokens;
|
|
171
|
+
}
|
|
172
|
+
const response = await transport_1.apiRequest.call(this, 'POST', '/api/v1/services/aigc/multimodal-generation/generation', {
|
|
173
|
+
body,
|
|
174
|
+
});
|
|
175
|
+
const output = response.output?.choices?.[0]?.message?.content?.[0]?.text || '';
|
|
176
|
+
return {
|
|
177
|
+
json: simplify
|
|
178
|
+
? { content: output }
|
|
179
|
+
: {
|
|
180
|
+
content: output,
|
|
181
|
+
model,
|
|
182
|
+
usage: response.usage,
|
|
183
|
+
fullResponse: response,
|
|
184
|
+
},
|
|
185
|
+
pairedItem: itemIndex,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=analyze.operation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze.operation.js","sourceRoot":"","sources":["../../../../../../nodes/vendors/AlibabaCloud/actions/image/analyze.operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { INodeProperties, IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
2
|
+
export declare const description: {
|
|
3
|
+
displayOptions: import("n8n-workflow").IDisplayOptions;
|
|
4
|
+
displayName: string;
|
|
5
|
+
name: string;
|
|
6
|
+
type: import("n8n-workflow").NodePropertyTypes;
|
|
7
|
+
typeOptions?: import("n8n-workflow").INodePropertyTypeOptions;
|
|
8
|
+
default: import("n8n-workflow").NodeParameterValueType;
|
|
9
|
+
description?: string;
|
|
10
|
+
hint?: string;
|
|
11
|
+
builderHint?: import("n8n-workflow").IParameterBuilderHint;
|
|
12
|
+
disabledOptions?: import("n8n-workflow").IDisplayOptions;
|
|
13
|
+
options?: Array<import("n8n-workflow").INodePropertyOptions | INodeProperties | import("n8n-workflow").INodePropertyCollection>;
|
|
14
|
+
placeholder?: string;
|
|
15
|
+
isNodeSetting?: boolean;
|
|
16
|
+
noDataExpression?: boolean;
|
|
17
|
+
required?: boolean;
|
|
18
|
+
routing?: import("n8n-workflow").INodePropertyRouting;
|
|
19
|
+
credentialTypes?: Array<"extends:oAuth2Api" | "extends:oAuth1Api" | "has:authenticate" | "has:genericAuth">;
|
|
20
|
+
extractValue?: import("n8n-workflow").INodePropertyValueExtractor;
|
|
21
|
+
modes?: import("n8n-workflow").INodePropertyMode[];
|
|
22
|
+
requiresDataPath?: "single" | "multiple";
|
|
23
|
+
doNotInherit?: boolean;
|
|
24
|
+
validateType?: import("n8n-workflow").FieldType;
|
|
25
|
+
ignoreValidationDuringExecution?: boolean;
|
|
26
|
+
allowArbitraryValues?: boolean;
|
|
27
|
+
resolvableField?: boolean;
|
|
28
|
+
}[];
|
|
29
|
+
export declare function execute(this: IExecuteFunctions, itemIndex: number): Promise<INodeExecutionData>;
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.description = void 0;
|
|
4
|
+
exports.execute = execute;
|
|
5
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
6
|
+
const transport_1 = require("../../transport");
|
|
7
|
+
const properties = [
|
|
8
|
+
{
|
|
9
|
+
displayName: 'Model',
|
|
10
|
+
name: 'modelId',
|
|
11
|
+
type: 'options',
|
|
12
|
+
options: [
|
|
13
|
+
{
|
|
14
|
+
name: 'Qwen Image',
|
|
15
|
+
value: 'qwen-image',
|
|
16
|
+
description: 'Qwen image generation model',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'Qwen Image Max',
|
|
20
|
+
value: 'qwen-image-max',
|
|
21
|
+
description: 'Most capable Qwen image generation model',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'Qwen Image Plus',
|
|
25
|
+
value: 'qwen-image-plus',
|
|
26
|
+
description: 'Enhanced Qwen image generation model',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'Wan 2.6 T2I',
|
|
30
|
+
value: 'wan2.6-t2i',
|
|
31
|
+
description: 'Wanx image generation model',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Z-Image Turbo',
|
|
35
|
+
value: 'z-image-turbo',
|
|
36
|
+
description: 'Fast image generation model',
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
default: 'z-image-turbo',
|
|
40
|
+
description: 'The model to use for image generation',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
displayName: 'Prompt',
|
|
44
|
+
name: 'prompt',
|
|
45
|
+
type: 'string',
|
|
46
|
+
typeOptions: {
|
|
47
|
+
rows: 4,
|
|
48
|
+
},
|
|
49
|
+
default: '',
|
|
50
|
+
description: 'The text prompt describing the image to generate',
|
|
51
|
+
required: true,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
displayName: 'Download Image',
|
|
55
|
+
name: 'downloadImage',
|
|
56
|
+
type: 'boolean',
|
|
57
|
+
default: true,
|
|
58
|
+
description: 'Whether to download the generated image as binary data. When disabled, only the image URL is returned.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
displayName: 'Options',
|
|
62
|
+
name: 'imageOptions',
|
|
63
|
+
type: 'collection',
|
|
64
|
+
placeholder: 'Add Option',
|
|
65
|
+
default: {},
|
|
66
|
+
options: [
|
|
67
|
+
{
|
|
68
|
+
displayName: 'Size',
|
|
69
|
+
name: 'size',
|
|
70
|
+
type: 'options',
|
|
71
|
+
displayOptions: {
|
|
72
|
+
show: {
|
|
73
|
+
'/modelId': ['z-image-turbo', 'wan2.6-t2i'],
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
options: [
|
|
77
|
+
{
|
|
78
|
+
name: '1024x1024',
|
|
79
|
+
value: '1024*1024',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: '720x1280',
|
|
83
|
+
value: '720*1280',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: '1280x720',
|
|
87
|
+
value: '1280*720',
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
default: '1024*1024',
|
|
91
|
+
description: 'The size of the generated image',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
displayName: 'Size',
|
|
95
|
+
name: 'size',
|
|
96
|
+
type: 'options',
|
|
97
|
+
displayOptions: {
|
|
98
|
+
show: {
|
|
99
|
+
'/modelId': ['qwen-image', 'qwen-image-plus', 'qwen-image-max'],
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
options: [
|
|
103
|
+
{
|
|
104
|
+
name: '1104x1472 (3:4)',
|
|
105
|
+
value: '1104*1472',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: '1328x1328 (1:1)',
|
|
109
|
+
value: '1328*1328',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: '1472x1104 (4:3)',
|
|
113
|
+
value: '1472*1104',
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
name: '1664x928 (16:9)',
|
|
117
|
+
value: '1664*928',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
name: '928x1664 (9:16)',
|
|
121
|
+
value: '928*1664',
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
default: '1664*928',
|
|
125
|
+
description: 'The size of the generated image',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
displayName: 'Prompt Extend',
|
|
129
|
+
name: 'promptExtend',
|
|
130
|
+
type: 'boolean',
|
|
131
|
+
default: false,
|
|
132
|
+
description: 'Whether to automatically extend and enhance the prompt',
|
|
133
|
+
},
|
|
134
|
+
],
|
|
135
|
+
},
|
|
136
|
+
];
|
|
137
|
+
const displayOptions = {
|
|
138
|
+
show: {
|
|
139
|
+
operation: ['generate'],
|
|
140
|
+
resource: ['image'],
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
exports.description = (0, n8n_workflow_1.updateDisplayOptions)(displayOptions, properties);
|
|
144
|
+
async function execute(itemIndex) {
|
|
145
|
+
const model = this.getNodeParameter('modelId', itemIndex);
|
|
146
|
+
const prompt = this.getNodeParameter('prompt', itemIndex);
|
|
147
|
+
const imageOptions = this.getNodeParameter('imageOptions', itemIndex, {});
|
|
148
|
+
const downloadImage = this.getNodeParameter('downloadImage', itemIndex, true);
|
|
149
|
+
const body = {
|
|
150
|
+
model,
|
|
151
|
+
input: {
|
|
152
|
+
messages: [
|
|
153
|
+
{
|
|
154
|
+
role: 'user',
|
|
155
|
+
content: [
|
|
156
|
+
{
|
|
157
|
+
text: prompt,
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
},
|
|
163
|
+
parameters: {
|
|
164
|
+
prompt_extend: imageOptions.promptExtend ?? false,
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
if (imageOptions.size) {
|
|
168
|
+
body.parameters.size = imageOptions.size;
|
|
169
|
+
}
|
|
170
|
+
const response = await transport_1.apiRequest.call(this, 'POST', '/api/v1/services/aigc/multimodal-generation/generation', {
|
|
171
|
+
body,
|
|
172
|
+
});
|
|
173
|
+
const imageUrl = response.output?.choices?.[0]?.message?.content?.[0]?.image || '';
|
|
174
|
+
if (downloadImage && imageUrl) {
|
|
175
|
+
const imageResponse = await this.helpers.httpRequest({
|
|
176
|
+
method: 'GET',
|
|
177
|
+
url: imageUrl,
|
|
178
|
+
encoding: 'arraybuffer',
|
|
179
|
+
returnFullResponse: true,
|
|
180
|
+
});
|
|
181
|
+
const contentType = imageResponse.headers?.['content-type'] || 'image/png';
|
|
182
|
+
const fileContent = Buffer.from(imageResponse.body);
|
|
183
|
+
const ext = contentType.includes('jpeg') || contentType.includes('jpg') ? 'jpg' : 'png';
|
|
184
|
+
const binaryData = await this.helpers.prepareBinaryData(fileContent, `image.${ext}`, contentType);
|
|
185
|
+
return {
|
|
186
|
+
binary: { data: binaryData },
|
|
187
|
+
json: {
|
|
188
|
+
model,
|
|
189
|
+
imageUrl,
|
|
190
|
+
usage: response.usage,
|
|
191
|
+
},
|
|
192
|
+
pairedItem: itemIndex,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
return {
|
|
196
|
+
json: {
|
|
197
|
+
model,
|
|
198
|
+
imageUrl,
|
|
199
|
+
usage: response.usage,
|
|
200
|
+
},
|
|
201
|
+
pairedItem: itemIndex,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=generate.operation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.operation.js","sourceRoot":"","sources":["../../../../../../nodes/vendors/AlibabaCloud/actions/image/generate.operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.description = exports.generate = exports.analyze = void 0;
|
|
37
|
+
const analyze = __importStar(require("./analyze.operation"));
|
|
38
|
+
exports.analyze = analyze;
|
|
39
|
+
const generate = __importStar(require("./generate.operation"));
|
|
40
|
+
exports.generate = generate;
|
|
41
|
+
exports.description = [
|
|
42
|
+
{
|
|
43
|
+
displayName: 'Operation',
|
|
44
|
+
name: 'operation',
|
|
45
|
+
type: 'options',
|
|
46
|
+
noDataExpression: true,
|
|
47
|
+
displayOptions: {
|
|
48
|
+
show: {
|
|
49
|
+
resource: ['image'],
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
options: [
|
|
53
|
+
{
|
|
54
|
+
name: 'Analyze Image',
|
|
55
|
+
value: 'analyze',
|
|
56
|
+
action: 'Analyze image',
|
|
57
|
+
description: 'Take in images and answer questions about them',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Generate an Image',
|
|
61
|
+
value: 'generate',
|
|
62
|
+
action: 'Generate an image',
|
|
63
|
+
description: 'Creates an image from a text prompt',
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
default: 'generate',
|
|
67
|
+
},
|
|
68
|
+
...analyze.description,
|
|
69
|
+
...generate.description,
|
|
70
|
+
];
|
|
71
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../nodes/vendors/AlibabaCloud/actions/image/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,6DAA+C;AAGtC,0BAAO;AAFhB,+DAAiD;AAE/B,4BAAQ;AAEb,QAAA,WAAW,GAAsB;IAC7C;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,OAAO,CAAC;aACnB;SACD;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,eAAe;gBACvB,WAAW,EAAE,gDAAgD;aAC7D;YACD;gBACC,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,mBAAmB;gBAC3B,WAAW,EAAE,qCAAqC;aAClD;SACD;QACD,OAAO,EAAE,UAAU;KACnB;IACD,GAAG,OAAO,CAAC,WAAW;IACtB,GAAG,QAAQ,CAAC,WAAW;CACvB,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.router = router;
|
|
37
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
38
|
+
const text = __importStar(require("./text"));
|
|
39
|
+
const image = __importStar(require("./image"));
|
|
40
|
+
const video = __importStar(require("./video"));
|
|
41
|
+
async function router() {
|
|
42
|
+
const items = this.getInputData();
|
|
43
|
+
const returnData = [];
|
|
44
|
+
const resource = this.getNodeParameter('resource', 0);
|
|
45
|
+
const operation = this.getNodeParameter('operation', 0);
|
|
46
|
+
let execute;
|
|
47
|
+
switch (resource) {
|
|
48
|
+
case 'text':
|
|
49
|
+
switch (operation) {
|
|
50
|
+
case 'message':
|
|
51
|
+
execute = text.message.execute;
|
|
52
|
+
break;
|
|
53
|
+
default:
|
|
54
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation "${operation}" is not supported for resource "${resource}"`);
|
|
55
|
+
}
|
|
56
|
+
break;
|
|
57
|
+
case 'image':
|
|
58
|
+
switch (operation) {
|
|
59
|
+
case 'analyze':
|
|
60
|
+
execute = image.analyze.execute;
|
|
61
|
+
break;
|
|
62
|
+
case 'generate':
|
|
63
|
+
execute = image.generate.execute;
|
|
64
|
+
break;
|
|
65
|
+
default:
|
|
66
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation "${operation}" is not supported for resource "${resource}"`);
|
|
67
|
+
}
|
|
68
|
+
break;
|
|
69
|
+
case 'video':
|
|
70
|
+
switch (operation) {
|
|
71
|
+
case 'textToVideo':
|
|
72
|
+
execute = video.textToVideo.execute;
|
|
73
|
+
break;
|
|
74
|
+
case 'imageToVideo':
|
|
75
|
+
execute = video.imageToVideo.execute;
|
|
76
|
+
break;
|
|
77
|
+
default:
|
|
78
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation "${operation}" is not supported for resource "${resource}"`);
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
default:
|
|
82
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The resource "${resource}" is not supported`);
|
|
83
|
+
}
|
|
84
|
+
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
|
85
|
+
try {
|
|
86
|
+
const executionData = await execute.call(this, itemIndex);
|
|
87
|
+
returnData.push(executionData);
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
if (this.continueOnFail()) {
|
|
91
|
+
returnData.push({
|
|
92
|
+
json: {
|
|
93
|
+
error: error instanceof Error ? error.message : String(error),
|
|
94
|
+
},
|
|
95
|
+
pairedItem: { item: itemIndex },
|
|
96
|
+
});
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, {
|
|
100
|
+
itemIndex,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return [returnData];
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../../nodes/vendors/AlibabaCloud/actions/router.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,wBA4EC;AAlFD,+CAAkD;AAElD,6CAA+B;AAC/B,+CAAiC;AACjC,+CAAiC;AAE1B,KAAK,UAAU,MAAM;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAClC,MAAM,UAAU,GAAyB,EAAE,CAAC;IAE5C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAW,CAAC;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAW,CAAC;IAElE,IAAI,OAAO,CAAC;IACZ,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM;YACV,QAAQ,SAAS,EAAE,CAAC;gBACnB,KAAK,SAAS;oBACb,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;oBAC/B,MAAM;gBACP;oBACC,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,kBAAkB,SAAS,oCAAoC,QAAQ,GAAG,CAC1E,CAAC;YACJ,CAAC;YACD,MAAM;QACP,KAAK,OAAO;YACX,QAAQ,SAAS,EAAE,CAAC;gBACnB,KAAK,SAAS;oBACb,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;oBAChC,MAAM;gBACP,KAAK,UAAU;oBACd,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;oBACjC,MAAM;gBACP;oBACC,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,kBAAkB,SAAS,oCAAoC,QAAQ,GAAG,CAC1E,CAAC;YACJ,CAAC;YACD,MAAM;QACP,KAAK,OAAO;YACX,QAAQ,SAAS,EAAE,CAAC;gBACnB,KAAK,aAAa;oBACjB,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;oBACpC,MAAM;gBACP,KAAK,cAAc;oBAClB,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;oBACrC,MAAM;gBACP;oBACC,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,kBAAkB,SAAS,oCAAoC,QAAQ,GAAG,CAC1E,CAAC;YACJ,CAAC;YACD,MAAM;QACP;YACC,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,iBAAiB,QAAQ,oBAAoB,CAAC,CAAC;IAC9F,CAAC;IAED,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QAC/D,IAAI,CAAC;YACJ,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC1D,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3B,UAAU,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE;wBACL,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC7D;oBACD,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;iBAC/B,CAAC,CAAC;gBACH,SAAS;YACV,CAAC;YACD,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE;gBACnD,SAAS;aACT,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,CAAC,UAAU,CAAC,CAAC;AACrB,CAAC"}
|