n8n-nodes-vercel-ai-sdk-universal-temp 0.1.71 → 0.2.28
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/nodes/UniversalAI/UniversalAI.node.js +5 -13
- package/dist/nodes/UniversalAI/UniversalAI.node.js.map +1 -1
- package/dist/nodes/UniversalEmbedding/UniversalEmbedding.node.js +1 -1
- package/dist/nodes/UniversalEmbedding/UniversalEmbedding.node.js.map +1 -1
- package/dist/nodes/UniversalImageGen/UniversalImageGen.node.js +1 -1
- package/dist/nodes/UniversalImageGen/UniversalImageGen.node.js.map +1 -1
- package/dist/nodes/UniversalSpeechGen/UniversalSpeechGen.node.js +1 -1
- package/dist/nodes/UniversalSpeechGen/UniversalSpeechGen.node.js.map +1 -1
- package/dist/nodes/UniversalTranscription/UniversalTranscription.node.js +1 -1
- package/dist/nodes/UniversalTranscription/UniversalTranscription.node.js.map +1 -1
- package/dist/nodes/shared/builders/descriptions.d.ts +103 -0
- package/dist/nodes/shared/builders/descriptions.js +713 -0
- package/dist/nodes/shared/builders/descriptions.js.map +1 -0
- package/dist/nodes/shared/builders/index.d.ts +2 -0
- package/dist/nodes/shared/builders/index.js +19 -0
- package/dist/nodes/shared/builders/index.js.map +1 -0
- package/dist/nodes/shared/builders/options.d.ts +22 -0
- package/dist/nodes/shared/builders/options.js +86 -0
- package/dist/nodes/shared/builders/options.js.map +1 -0
- package/dist/nodes/shared/cache/cache.d.ts +27 -0
- package/dist/nodes/shared/cache/cache.js +129 -0
- package/dist/nodes/shared/cache/cache.js.map +1 -0
- package/dist/nodes/shared/cache/index.d.ts +1 -0
- package/dist/nodes/shared/cache/index.js +6 -0
- package/dist/nodes/shared/cache/index.js.map +1 -0
- package/dist/nodes/shared/constants.d.ts +1 -4
- package/dist/nodes/shared/constants.js +3 -6
- package/dist/nodes/shared/constants.js.map +1 -1
- package/dist/nodes/shared/descriptions.js +262 -1519
- package/dist/nodes/shared/descriptions.js.map +1 -1
- package/dist/nodes/shared/google/index.d.ts +14 -0
- package/dist/nodes/shared/google/index.js +165 -0
- package/dist/nodes/shared/google/index.js.map +1 -0
- package/dist/nodes/shared/helpers.d.ts +9 -53
- package/dist/nodes/shared/helpers.js +25 -494
- package/dist/nodes/shared/helpers.js.map +1 -1
- package/dist/nodes/shared/providers/factory.d.ts +11 -0
- package/dist/nodes/shared/providers/factory.js +106 -0
- package/dist/nodes/shared/providers/factory.js.map +1 -0
- package/dist/nodes/shared/providers/index.d.ts +2 -0
- package/dist/nodes/shared/providers/index.js +19 -0
- package/dist/nodes/shared/providers/index.js.map +1 -0
- package/dist/nodes/shared/providers/registry.d.ts +41 -0
- package/dist/nodes/shared/providers/registry.js +135 -0
- package/dist/nodes/shared/providers/registry.js.map +1 -0
- package/dist/nodes/shared/validation/index.d.ts +1 -0
- package/dist/nodes/shared/validation/index.js +18 -0
- package/dist/nodes/shared/validation/index.js.map +1 -0
- package/dist/nodes/shared/validation/options.d.ts +18 -0
- package/dist/nodes/shared/validation/options.js +50 -0
- package/dist/nodes/shared/validation/options.js.map +1 -0
- package/dist/package.json +9 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -3
|
@@ -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.ProviderFactory = void 0;
|
|
37
|
+
exports.createProvider = createProvider;
|
|
38
|
+
const registry_1 = require("./registry");
|
|
39
|
+
class ProviderFactory {
|
|
40
|
+
static async createProvider(providerId, apiKey, baseURL, customHeaders) {
|
|
41
|
+
const config = registry_1.PROVIDER_REGISTRY[providerId];
|
|
42
|
+
if (!config) {
|
|
43
|
+
throw new Error(`Unsupported provider: "${providerId}". ` +
|
|
44
|
+
`Supported providers: ${Object.keys(registry_1.PROVIDER_REGISTRY).join(', ')}`);
|
|
45
|
+
}
|
|
46
|
+
const factory = this.getFactoryForProvider(providerId);
|
|
47
|
+
return await factory(apiKey, baseURL, customHeaders);
|
|
48
|
+
}
|
|
49
|
+
static getFactoryForProvider(providerId) {
|
|
50
|
+
switch (providerId) {
|
|
51
|
+
case 'google':
|
|
52
|
+
return this.createGoogleProvider;
|
|
53
|
+
case 'openai':
|
|
54
|
+
return this.createOpenAIProvider;
|
|
55
|
+
case 'deepseek':
|
|
56
|
+
return this.createDeepSeekProvider;
|
|
57
|
+
case 'groq':
|
|
58
|
+
return this.createGroqProvider;
|
|
59
|
+
case 'openrouter':
|
|
60
|
+
return this.createOpenRouterProvider;
|
|
61
|
+
default:
|
|
62
|
+
throw new Error(`No factory available for provider: ${providerId}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
static async createGoogleProvider(apiKey, baseURL, customHeaders) {
|
|
66
|
+
const { createGoogleGenerativeAI } = await Promise.resolve().then(() => __importStar(require('@ai-sdk/google')));
|
|
67
|
+
return createGoogleGenerativeAI({
|
|
68
|
+
apiKey,
|
|
69
|
+
...(baseURL && { baseURL }),
|
|
70
|
+
...(customHeaders && Object.keys(customHeaders).length > 0 && { headers: customHeaders }),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
static async createOpenAIProvider(apiKey, baseURL) {
|
|
74
|
+
const { createOpenAI } = await Promise.resolve().then(() => __importStar(require('@ai-sdk/openai')));
|
|
75
|
+
return createOpenAI({
|
|
76
|
+
apiKey,
|
|
77
|
+
...(baseURL && { baseURL }),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
static async createDeepSeekProvider(apiKey, baseURL) {
|
|
81
|
+
const { createDeepSeek } = await Promise.resolve().then(() => __importStar(require('@ai-sdk/deepseek')));
|
|
82
|
+
return createDeepSeek({
|
|
83
|
+
apiKey,
|
|
84
|
+
...(baseURL && { baseURL }),
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
static async createGroqProvider(apiKey, baseURL) {
|
|
88
|
+
const { createGroq } = await Promise.resolve().then(() => __importStar(require('@ai-sdk/groq')));
|
|
89
|
+
return createGroq({
|
|
90
|
+
apiKey,
|
|
91
|
+
...(baseURL && { baseURL }),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
static async createOpenRouterProvider(apiKey, baseURL) {
|
|
95
|
+
const { createOpenRouter } = await Promise.resolve().then(() => __importStar(require('@openrouter/ai-sdk-provider')));
|
|
96
|
+
return createOpenRouter({
|
|
97
|
+
apiKey,
|
|
98
|
+
...(baseURL && { baseURL }),
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.ProviderFactory = ProviderFactory;
|
|
103
|
+
async function createProvider(providerId, apiKey, baseURL, customHeaders) {
|
|
104
|
+
return ProviderFactory.createProvider(providerId, apiKey, baseURL, customHeaders);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../nodes/shared/providers/factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./registry"), exports);
|
|
18
|
+
__exportStar(require("./factory"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/shared/providers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,4CAA0B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { INodePropertyOptions } from 'n8n-workflow';
|
|
2
|
+
import { ProviderInstance } from '../types';
|
|
3
|
+
export interface ProviderCapabilities {
|
|
4
|
+
text?: boolean;
|
|
5
|
+
image?: boolean;
|
|
6
|
+
speech?: boolean;
|
|
7
|
+
transcription?: boolean;
|
|
8
|
+
embeddings?: boolean;
|
|
9
|
+
multimodal?: boolean;
|
|
10
|
+
streaming?: boolean;
|
|
11
|
+
tools?: boolean;
|
|
12
|
+
caching?: boolean;
|
|
13
|
+
structuredOutput?: boolean;
|
|
14
|
+
thinking?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface ProviderConfig {
|
|
17
|
+
id: string;
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
credentialType: string;
|
|
21
|
+
models: {
|
|
22
|
+
text?: INodePropertyOptions[];
|
|
23
|
+
image?: INodePropertyOptions[];
|
|
24
|
+
speech?: INodePropertyOptions[];
|
|
25
|
+
transcription?: INodePropertyOptions[];
|
|
26
|
+
embedding?: INodePropertyOptions[];
|
|
27
|
+
};
|
|
28
|
+
capabilities: ProviderCapabilities;
|
|
29
|
+
baseURL?: {
|
|
30
|
+
required: boolean;
|
|
31
|
+
default?: string;
|
|
32
|
+
};
|
|
33
|
+
customHeaders?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export type ProviderFactoryType = (apiKey: string, baseURL?: string, customHeaders?: Record<string, string>) => Promise<ProviderInstance>;
|
|
36
|
+
export declare const PROVIDER_REGISTRY: Record<string, ProviderConfig>;
|
|
37
|
+
export declare function getProviderConfig(providerId: string): ProviderConfig | null;
|
|
38
|
+
export declare function getAllProviders(): ProviderConfig[];
|
|
39
|
+
export declare function providerSupportsCapability(providerId: string, capability: keyof ProviderCapabilities): boolean;
|
|
40
|
+
export declare function getProviderModels(providerId: string, capability: 'text' | 'image' | 'speech' | 'transcription' | 'embedding'): INodePropertyOptions[];
|
|
41
|
+
export declare function getProvidersForCapability(capability: keyof ProviderCapabilities): ProviderConfig[];
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PROVIDER_REGISTRY = void 0;
|
|
4
|
+
exports.getProviderConfig = getProviderConfig;
|
|
5
|
+
exports.getAllProviders = getAllProviders;
|
|
6
|
+
exports.providerSupportsCapability = providerSupportsCapability;
|
|
7
|
+
exports.getProviderModels = getProviderModels;
|
|
8
|
+
exports.getProvidersForCapability = getProvidersForCapability;
|
|
9
|
+
const model_lists_1 = require("../model-lists");
|
|
10
|
+
exports.PROVIDER_REGISTRY = {
|
|
11
|
+
google: {
|
|
12
|
+
id: 'google',
|
|
13
|
+
name: 'Google Generative AI',
|
|
14
|
+
description: 'Google Gemini models with multimodal support, thinking capabilities, and advanced caching',
|
|
15
|
+
credentialType: 'googleGenerativeAIApi',
|
|
16
|
+
models: {
|
|
17
|
+
text: model_lists_1.GOOGLE_GEMINI_MODELS,
|
|
18
|
+
image: model_lists_1.GOOGLE_IMAGE_MODELS,
|
|
19
|
+
speech: model_lists_1.GOOGLE_VOICE_MODELS,
|
|
20
|
+
embedding: model_lists_1.GOOGLE_EMBEDDING_MODELS,
|
|
21
|
+
transcription: [],
|
|
22
|
+
},
|
|
23
|
+
capabilities: {
|
|
24
|
+
text: true,
|
|
25
|
+
image: true,
|
|
26
|
+
speech: true,
|
|
27
|
+
embeddings: true,
|
|
28
|
+
multimodal: true,
|
|
29
|
+
streaming: true,
|
|
30
|
+
tools: true,
|
|
31
|
+
caching: true,
|
|
32
|
+
structuredOutput: true,
|
|
33
|
+
thinking: true,
|
|
34
|
+
},
|
|
35
|
+
customHeaders: true,
|
|
36
|
+
},
|
|
37
|
+
openai: {
|
|
38
|
+
id: 'openai',
|
|
39
|
+
name: 'OpenAI',
|
|
40
|
+
description: 'OpenAI GPT models with advanced reasoning and multimodal capabilities',
|
|
41
|
+
credentialType: 'openAiApi',
|
|
42
|
+
models: {
|
|
43
|
+
text: model_lists_1.OPENAI_CHAT_MODELS,
|
|
44
|
+
image: model_lists_1.OPENAI_IMAGE_MODELS,
|
|
45
|
+
speech: model_lists_1.OPENAI_VOICE_MODELS,
|
|
46
|
+
embedding: model_lists_1.OPENAI_EMBEDDING_MODELS,
|
|
47
|
+
transcription: model_lists_1.OPENAI_TRANSCRIPTION_MODELS,
|
|
48
|
+
},
|
|
49
|
+
capabilities: {
|
|
50
|
+
text: true,
|
|
51
|
+
image: true,
|
|
52
|
+
speech: true,
|
|
53
|
+
transcription: true,
|
|
54
|
+
embeddings: true,
|
|
55
|
+
multimodal: true,
|
|
56
|
+
streaming: true,
|
|
57
|
+
tools: true,
|
|
58
|
+
structuredOutput: true,
|
|
59
|
+
},
|
|
60
|
+
baseURL: {
|
|
61
|
+
required: false,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
deepseek: {
|
|
65
|
+
id: 'deepseek',
|
|
66
|
+
name: 'DeepSeek',
|
|
67
|
+
description: 'DeepSeek models with strong reasoning capabilities and cost-effective pricing',
|
|
68
|
+
credentialType: 'deepseekApi',
|
|
69
|
+
models: {
|
|
70
|
+
text: model_lists_1.DEEPSEEK_MODELS,
|
|
71
|
+
},
|
|
72
|
+
capabilities: {
|
|
73
|
+
text: true,
|
|
74
|
+
streaming: true,
|
|
75
|
+
structuredOutput: true,
|
|
76
|
+
},
|
|
77
|
+
baseURL: {
|
|
78
|
+
required: false,
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
groq: {
|
|
82
|
+
id: 'groq',
|
|
83
|
+
name: 'Groq',
|
|
84
|
+
description: 'High-performance models via Groq LPU with ultra-fast inference',
|
|
85
|
+
credentialType: 'groqApi',
|
|
86
|
+
models: {
|
|
87
|
+
text: model_lists_1.GROQ_MODELS,
|
|
88
|
+
},
|
|
89
|
+
capabilities: {
|
|
90
|
+
text: true,
|
|
91
|
+
streaming: true,
|
|
92
|
+
tools: true,
|
|
93
|
+
structuredOutput: true,
|
|
94
|
+
},
|
|
95
|
+
baseURL: {
|
|
96
|
+
required: false,
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
openrouter: {
|
|
100
|
+
id: 'openrouter',
|
|
101
|
+
name: 'OpenRouter',
|
|
102
|
+
description: 'Access multiple models through OpenRouter unified API',
|
|
103
|
+
credentialType: 'openrouterApi',
|
|
104
|
+
models: {
|
|
105
|
+
text: model_lists_1.OPENROUTER_MODELS,
|
|
106
|
+
},
|
|
107
|
+
capabilities: {
|
|
108
|
+
text: true,
|
|
109
|
+
streaming: true,
|
|
110
|
+
tools: true,
|
|
111
|
+
structuredOutput: true,
|
|
112
|
+
},
|
|
113
|
+
baseURL: {
|
|
114
|
+
required: false,
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
function getProviderConfig(providerId) {
|
|
119
|
+
return exports.PROVIDER_REGISTRY[providerId] || null;
|
|
120
|
+
}
|
|
121
|
+
function getAllProviders() {
|
|
122
|
+
return Object.values(exports.PROVIDER_REGISTRY);
|
|
123
|
+
}
|
|
124
|
+
function providerSupportsCapability(providerId, capability) {
|
|
125
|
+
const config = getProviderConfig(providerId);
|
|
126
|
+
return (config === null || config === void 0 ? void 0 : config.capabilities[capability]) || false;
|
|
127
|
+
}
|
|
128
|
+
function getProviderModels(providerId, capability) {
|
|
129
|
+
const config = getProviderConfig(providerId);
|
|
130
|
+
return (config === null || config === void 0 ? void 0 : config.models[capability]) || [];
|
|
131
|
+
}
|
|
132
|
+
function getProvidersForCapability(capability) {
|
|
133
|
+
return getAllProviders().filter(provider => provider.capabilities[capability]);
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../nodes/shared/providers/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './options';
|
|
@@ -0,0 +1,18 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./options"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/shared/validation/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare function validateRange(value: number | undefined, min: number, max: number, fieldName: string): void;
|
|
2
|
+
export declare function validateEmbeddingOptions(options: {
|
|
3
|
+
outputDimensionality?: number;
|
|
4
|
+
dimensions?: number;
|
|
5
|
+
maxParallelCalls?: number;
|
|
6
|
+
maxRetries?: number;
|
|
7
|
+
}): void;
|
|
8
|
+
export declare function validateImageOptions(options: {
|
|
9
|
+
n?: number;
|
|
10
|
+
}): void;
|
|
11
|
+
export declare function validateTextOptions(options: {
|
|
12
|
+
maxTokens?: number;
|
|
13
|
+
temperature?: number;
|
|
14
|
+
topP?: number;
|
|
15
|
+
topK?: number;
|
|
16
|
+
frequencyPenalty?: number;
|
|
17
|
+
presencePenalty?: number;
|
|
18
|
+
}): void;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateRange = validateRange;
|
|
4
|
+
exports.validateEmbeddingOptions = validateEmbeddingOptions;
|
|
5
|
+
exports.validateImageOptions = validateImageOptions;
|
|
6
|
+
exports.validateTextOptions = validateTextOptions;
|
|
7
|
+
const constants_1 = require("../constants");
|
|
8
|
+
function validateRange(value, min, max, fieldName) {
|
|
9
|
+
if (value === undefined)
|
|
10
|
+
return;
|
|
11
|
+
if (value < min || value > max) {
|
|
12
|
+
throw new Error(`${fieldName} must be between ${min} and ${max}, got ${value}`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function validateEmbeddingOptions(options) {
|
|
16
|
+
validateRange(options.dimensions, constants_1.AI_VALIDATION.MIN_DIMENSIONS, constants_1.AI_VALIDATION.MAX_DIMENSIONS, 'Dimensions');
|
|
17
|
+
validateRange(options.outputDimensionality, constants_1.AI_VALIDATION.MIN_OUTPUT_DIMENSIONALITY, constants_1.AI_VALIDATION.MAX_OUTPUT_DIMENSIONALITY, 'Output dimensionality');
|
|
18
|
+
if (options.maxParallelCalls !== undefined && options.maxParallelCalls < 1) {
|
|
19
|
+
throw new Error('maxParallelCalls must be greater than 0');
|
|
20
|
+
}
|
|
21
|
+
if (options.maxRetries !== undefined && options.maxRetries < 0) {
|
|
22
|
+
throw new Error('maxRetries must be greater than or equal to 0');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function validateImageOptions(options) {
|
|
26
|
+
if (options.n !== undefined) {
|
|
27
|
+
validateRange(options.n, 1, constants_1.AI_VALIDATION.MAX_IMAGE_COUNT, 'Image count');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function validateTextOptions(options) {
|
|
31
|
+
if (options.maxTokens !== undefined && options.maxTokens < 1) {
|
|
32
|
+
throw new Error('maxTokens must be greater than 0');
|
|
33
|
+
}
|
|
34
|
+
if (options.temperature !== undefined) {
|
|
35
|
+
validateRange(options.temperature, 0, 2, 'Temperature');
|
|
36
|
+
}
|
|
37
|
+
if (options.topP !== undefined) {
|
|
38
|
+
validateRange(options.topP, 0, 1, 'Top P');
|
|
39
|
+
}
|
|
40
|
+
if (options.topK !== undefined && options.topK < 1) {
|
|
41
|
+
throw new Error('topK must be greater than 0');
|
|
42
|
+
}
|
|
43
|
+
if (options.frequencyPenalty !== undefined) {
|
|
44
|
+
validateRange(options.frequencyPenalty, -2, 2, 'Frequency penalty');
|
|
45
|
+
}
|
|
46
|
+
if (options.presencePenalty !== undefined) {
|
|
47
|
+
validateRange(options.presencePenalty, -2, 2, 'Presence penalty');
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../nodes/shared/validation/options.ts"],"names":[],"mappings":";;AAKA,sCAaC;AAKD,4DAgBC;AAKD,oDAMC;AAKD,kDA+BC;AAtFD,4CAA6C;AAK7C,SAAgB,aAAa,CAC5B,KAAyB,EACzB,GAAW,EACX,GAAW,EACX,SAAiB;IAEjB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAEhC,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACd,GAAG,SAAS,oBAAoB,GAAG,QAAQ,GAAG,SAAS,KAAK,EAAE,CAC9D,CAAC;IACH,CAAC;AACF,CAAC;AAKD,SAAgB,wBAAwB,CAAC,OAKxC;IACA,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,yBAAa,CAAC,cAAc,EAAE,yBAAa,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAC5G,aAAa,CAAC,OAAO,CAAC,oBAAoB,EAAE,yBAAa,CAAC,yBAAyB,EAAE,yBAAa,CAAC,yBAAyB,EAAE,uBAAuB,CAAC,CAAC;IAEvJ,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,IAAI,OAAO,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAClE,CAAC;AACF,CAAC;AAKD,SAAgB,oBAAoB,CAAC,OAEpC;IACA,IAAI,OAAO,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC7B,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,yBAAa,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAC3E,CAAC;AACF,CAAC;AAKD,SAAgB,mBAAmB,CAAC,OAOnC;IACA,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACvC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC5C,aAAa,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC3C,aAAa,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACnE,CAAC;AACF,CAAC"}
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-vercel-ai-sdk-universal-temp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.28",
|
|
4
4
|
"description": "Universal AI SDK n8n nodes integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package"
|
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
"format": "prettier nodes credentials --write",
|
|
17
17
|
"lint": "eslint nodes credentials package.json",
|
|
18
18
|
"lintfix": "eslint nodes credentials package.json --fix",
|
|
19
|
+
"test": "jest",
|
|
20
|
+
"test:watch": "jest --watch",
|
|
21
|
+
"test:coverage": "jest --coverage",
|
|
19
22
|
"prepublishOnly": "bun run build"
|
|
20
23
|
},
|
|
21
24
|
"files": [
|
|
@@ -40,14 +43,17 @@
|
|
|
40
43
|
},
|
|
41
44
|
"devDependencies": {
|
|
42
45
|
"@types/express": "^5.0.3",
|
|
46
|
+
"@types/jest": "^30.0.0",
|
|
43
47
|
"@types/luxon": "^3.7.1",
|
|
44
48
|
"@types/node": "^22.18.10",
|
|
45
49
|
"@typescript-eslint/parser": "^8.46.1",
|
|
46
50
|
"eslint": "^8.57.1",
|
|
47
51
|
"eslint-plugin-n8n-nodes-base": "^1.16.4",
|
|
48
52
|
"gulp": "^4.0.2",
|
|
53
|
+
"jest": "^30.2.0",
|
|
49
54
|
"n8n-workflow": "^1.113.0",
|
|
50
55
|
"prettier": "^3.6.2",
|
|
56
|
+
"ts-jest": "^29.4.5",
|
|
51
57
|
"typescript": "^5.9.3"
|
|
52
58
|
},
|
|
53
59
|
"peerDependencies": {
|
|
@@ -55,13 +61,13 @@
|
|
|
55
61
|
},
|
|
56
62
|
"dependencies": {
|
|
57
63
|
"@google/genai": "^1.25.0",
|
|
58
|
-
"@ai-sdk/anthropic": "^2.0.
|
|
64
|
+
"@ai-sdk/anthropic": "^2.0.31",
|
|
59
65
|
"@ai-sdk/deepseek": "^1.0.23",
|
|
60
66
|
"@ai-sdk/google": "^2.0.23",
|
|
61
67
|
"@ai-sdk/groq": "^2.0.24",
|
|
62
68
|
"@ai-sdk/openai": "^2.0.52",
|
|
63
69
|
"@openrouter/ai-sdk-provider": "^1.2.0",
|
|
64
|
-
"ai": "^5.0.
|
|
70
|
+
"ai": "^5.0.74",
|
|
65
71
|
"zod": "^4.1.12",
|
|
66
72
|
"ajv": "^8.17.1"
|
|
67
73
|
}
|