@n8n/ai-utilities 0.16.1 → 0.18.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/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +5 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/node-catalog/discriminator-utils.d.ts +22 -0
- package/dist/cjs/node-catalog/discriminator-utils.js +95 -0
- package/dist/cjs/node-catalog/discriminator-utils.js.map +1 -0
- package/dist/cjs/node-catalog/get.d.ts +18 -0
- package/dist/cjs/node-catalog/get.js +368 -0
- package/dist/cjs/node-catalog/get.js.map +1 -0
- package/dist/cjs/node-catalog/index.d.ts +14 -0
- package/dist/cjs/node-catalog/index.js +40 -0
- package/dist/cjs/node-catalog/index.js.map +1 -0
- package/dist/cjs/node-catalog/lean-node-type.d.ts +27 -0
- package/dist/cjs/node-catalog/lean-node-type.js +60 -0
- package/dist/cjs/node-catalog/lean-node-type.js.map +1 -0
- package/dist/cjs/node-catalog/node-type-parser.d.ts +20 -0
- package/dist/cjs/node-catalog/node-type-parser.js +79 -0
- package/dist/cjs/node-catalog/node-type-parser.js.map +1 -0
- package/dist/cjs/node-catalog/resource-operation-extractor.d.ts +26 -0
- package/dist/cjs/node-catalog/resource-operation-extractor.js +166 -0
- package/dist/cjs/node-catalog/resource-operation-extractor.js.map +1 -0
- package/dist/cjs/node-catalog/search-engine.d.ts +20 -0
- package/dist/cjs/node-catalog/search-engine.js +257 -0
- package/dist/cjs/node-catalog/search-engine.js.map +1 -0
- package/dist/cjs/node-catalog/search.d.ts +10 -0
- package/dist/cjs/node-catalog/search.js +331 -0
- package/dist/cjs/node-catalog/search.js.map +1 -0
- package/dist/cjs/node-catalog/suggested-nodes-data.d.ts +11 -0
- package/dist/cjs/node-catalog/suggested-nodes-data.js +246 -0
- package/dist/cjs/node-catalog/suggested-nodes-data.js.map +1 -0
- package/dist/cjs/node-catalog/suggested.d.ts +3 -0
- package/dist/cjs/node-catalog/suggested.js +86 -0
- package/dist/cjs/node-catalog/suggested.js.map +1 -0
- package/dist/cjs/node-catalog/types.d.ts +17 -0
- package/dist/cjs/node-catalog/types.js +13 -0
- package/dist/cjs/node-catalog/types.js.map +1 -0
- package/dist/cjs/typecheck.tsbuildinfo +1 -1
- package/dist/cjs/utils/fromai-helpers.d.ts +4 -0
- package/dist/cjs/utils/fromai-helpers.js +33 -0
- package/dist/cjs/utils/fromai-helpers.js.map +1 -0
- package/dist/cjs/utils/fromai-tool-factory.d.ts +2 -4
- package/dist/cjs/utils/fromai-tool-factory.js +8 -23
- package/dist/cjs/utils/fromai-tool-factory.js.map +1 -1
- package/dist/cjs/utils/loaders/n8n-pdf-loader.d.ts +10 -0
- package/dist/cjs/utils/loaders/n8n-pdf-loader.js +100 -0
- package/dist/cjs/utils/loaders/n8n-pdf-loader.js.map +1 -0
- package/dist/cjs/utils/n8n-binary-loader.js +3 -3
- package/dist/cjs/utils/n8n-binary-loader.js.map +1 -1
- package/dist/cjs/web-search/brave-search.d.ts +8 -0
- package/dist/cjs/web-search/brave-search.js +52 -0
- package/dist/cjs/web-search/brave-search.js.map +1 -0
- package/dist/cjs/web-search/index.d.ts +3 -0
- package/dist/cjs/web-search/index.js +18 -0
- package/dist/cjs/web-search/index.js.map +1 -0
- package/dist/cjs/web-search/searxng-search.d.ts +2 -0
- package/dist/cjs/web-search/searxng-search.js +49 -0
- package/dist/cjs/web-search/searxng-search.js.map +1 -0
- package/dist/cjs/web-search/types.d.ts +15 -0
- package/dist/cjs/web-search/types.js +13 -0
- package/dist/cjs/web-search/types.js.map +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +5 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/node-catalog/discriminator-utils.d.ts +22 -0
- package/dist/esm/node-catalog/discriminator-utils.js +85 -0
- package/dist/esm/node-catalog/discriminator-utils.js.map +1 -0
- package/dist/esm/node-catalog/get.d.ts +18 -0
- package/dist/esm/node-catalog/get.js +358 -0
- package/dist/esm/node-catalog/get.js.map +1 -0
- package/dist/esm/node-catalog/index.d.ts +14 -0
- package/dist/esm/node-catalog/index.js +30 -0
- package/dist/esm/node-catalog/index.js.map +1 -0
- package/dist/esm/node-catalog/lean-node-type.d.ts +27 -0
- package/dist/esm/node-catalog/lean-node-type.js +50 -0
- package/dist/esm/node-catalog/lean-node-type.js.map +1 -0
- package/dist/esm/node-catalog/node-type-parser.d.ts +20 -0
- package/dist/esm/node-catalog/node-type-parser.js +69 -0
- package/dist/esm/node-catalog/node-type-parser.js.map +1 -0
- package/dist/esm/node-catalog/resource-operation-extractor.d.ts +26 -0
- package/dist/esm/node-catalog/resource-operation-extractor.js +156 -0
- package/dist/esm/node-catalog/resource-operation-extractor.js.map +1 -0
- package/dist/esm/node-catalog/search-engine.d.ts +20 -0
- package/dist/esm/node-catalog/search-engine.js +247 -0
- package/dist/esm/node-catalog/search-engine.js.map +1 -0
- package/dist/esm/node-catalog/search.d.ts +10 -0
- package/dist/esm/node-catalog/search.js +321 -0
- package/dist/esm/node-catalog/search.js.map +1 -0
- package/dist/esm/node-catalog/suggested-nodes-data.d.ts +11 -0
- package/dist/esm/node-catalog/suggested-nodes-data.js +236 -0
- package/dist/esm/node-catalog/suggested-nodes-data.js.map +1 -0
- package/dist/esm/node-catalog/suggested.d.ts +3 -0
- package/dist/esm/node-catalog/suggested.js +76 -0
- package/dist/esm/node-catalog/suggested.js.map +1 -0
- package/dist/esm/node-catalog/types.d.ts +17 -0
- package/dist/esm/node-catalog/types.js +3 -0
- package/dist/esm/node-catalog/types.js.map +1 -0
- package/dist/esm/typecheck.tsbuildinfo +1 -1
- package/dist/esm/utils/fromai-helpers.d.ts +4 -0
- package/dist/esm/utils/fromai-helpers.js +23 -0
- package/dist/esm/utils/fromai-helpers.js.map +1 -0
- package/dist/esm/utils/fromai-tool-factory.d.ts +2 -4
- package/dist/esm/utils/fromai-tool-factory.js +7 -22
- package/dist/esm/utils/fromai-tool-factory.js.map +1 -1
- package/dist/esm/utils/loaders/n8n-pdf-loader.d.ts +10 -0
- package/dist/esm/utils/loaders/n8n-pdf-loader.js +89 -0
- package/dist/esm/utils/loaders/n8n-pdf-loader.js.map +1 -0
- package/dist/esm/utils/n8n-binary-loader.js +2 -2
- package/dist/esm/utils/n8n-binary-loader.js.map +1 -1
- package/dist/esm/web-search/brave-search.d.ts +8 -0
- package/dist/esm/web-search/brave-search.js +42 -0
- package/dist/esm/web-search/brave-search.js.map +1 -0
- package/dist/esm/web-search/index.d.ts +3 -0
- package/dist/esm/web-search/index.js +8 -0
- package/dist/esm/web-search/index.js.map +1 -0
- package/dist/esm/web-search/searxng-search.d.ts +2 -0
- package/dist/esm/web-search/searxng-search.js +39 -0
- package/dist/esm/web-search/searxng-search.js.map +1 -0
- package/dist/esm/web-search/types.d.ts +15 -0
- package/dist/esm/web-search/types.js +3 -0
- package/dist/esm/web-search/types.js.map +1 -0
- package/package.json +39 -5
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractModeDiscriminator = extractModeDiscriminator;
|
|
4
|
+
exports.extractOperationOnlyDiscriminator = extractOperationOnlyDiscriminator;
|
|
5
|
+
function extractModeDiscriminator(nodeType, nodeVersion) {
|
|
6
|
+
const properties = nodeType.properties;
|
|
7
|
+
if (!properties || properties.length === 0) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
const modeProperty = properties.find((prop) => prop.name === 'mode' &&
|
|
11
|
+
prop.type === 'options' &&
|
|
12
|
+
isPropertyVisibleForVersion(prop, nodeVersion) &&
|
|
13
|
+
!prop.displayOptions?.show?.operation &&
|
|
14
|
+
!prop.displayOptions?.show?.resource);
|
|
15
|
+
if (!modeProperty?.options) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const modes = modeProperty.options
|
|
19
|
+
.filter((opt) => typeof opt === 'object' && opt !== null && 'value' in opt && typeof opt.value === 'string')
|
|
20
|
+
.map((opt) => ({
|
|
21
|
+
value: opt.value,
|
|
22
|
+
displayName: opt.name,
|
|
23
|
+
outputConnectionType: opt.outputConnectionType,
|
|
24
|
+
description: opt.description,
|
|
25
|
+
builderHint: opt.builderHint,
|
|
26
|
+
}));
|
|
27
|
+
if (modes.length === 0) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
return { modes };
|
|
31
|
+
}
|
|
32
|
+
function extractOperationOnlyDiscriminator(nodeType, nodeVersion) {
|
|
33
|
+
const properties = nodeType.properties;
|
|
34
|
+
if (!properties || properties.length === 0) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
const hasResource = properties.some((prop) => prop.name === 'resource' &&
|
|
38
|
+
prop.type === 'options' &&
|
|
39
|
+
isPropertyVisibleForVersion(prop, nodeVersion));
|
|
40
|
+
if (hasResource) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
const operationProperty = properties.find((prop) => prop.name === 'operation' &&
|
|
44
|
+
prop.type === 'options' &&
|
|
45
|
+
isPropertyVisibleForVersion(prop, nodeVersion));
|
|
46
|
+
if (!operationProperty?.options) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const operations = operationProperty.options
|
|
50
|
+
.filter((opt) => typeof opt === 'object' && opt !== null && 'value' in opt && typeof opt.value === 'string')
|
|
51
|
+
.map((opt) => ({
|
|
52
|
+
value: opt.value,
|
|
53
|
+
displayName: opt.name,
|
|
54
|
+
description: opt.description,
|
|
55
|
+
builderHint: opt.builderHint,
|
|
56
|
+
}));
|
|
57
|
+
if (operations.length === 0) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
return { operations };
|
|
61
|
+
}
|
|
62
|
+
function isPropertyVisibleForVersion(property, nodeVersion) {
|
|
63
|
+
const displayOptions = property.displayOptions;
|
|
64
|
+
if (!displayOptions) {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
const showVersion = displayOptions.show?.['@version'];
|
|
68
|
+
if (showVersion) {
|
|
69
|
+
if (Array.isArray(showVersion)) {
|
|
70
|
+
if (!showVersion.includes(nodeVersion)) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const hideVersion = displayOptions.hide?.['@version'];
|
|
76
|
+
if (hideVersion) {
|
|
77
|
+
if (Array.isArray(hideVersion)) {
|
|
78
|
+
if (hideVersion.includes(nodeVersion)) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=discriminator-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discriminator-utils.js","sourceRoot":"","sources":["../../../src/node-catalog/discriminator-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare function isValidPathComponent(component: string): boolean;
|
|
2
|
+
export declare function validatePathWithinBase(filePath: string, baseDir: string): boolean;
|
|
3
|
+
export declare function toSnakeCase(str: string): string;
|
|
4
|
+
export declare function parseNodeId(nodeId: string): {
|
|
5
|
+
packageName: string;
|
|
6
|
+
nodeName: string;
|
|
7
|
+
} | null;
|
|
8
|
+
export type NodeRequest = string | {
|
|
9
|
+
nodeId: string;
|
|
10
|
+
version?: string;
|
|
11
|
+
resource?: string;
|
|
12
|
+
operation?: string;
|
|
13
|
+
mode?: string;
|
|
14
|
+
};
|
|
15
|
+
export interface CodeBuilderGetToolOptions {
|
|
16
|
+
nodeDefinitionDirs?: string[];
|
|
17
|
+
}
|
|
18
|
+
export declare function getNodeTypes(nodeIds: NodeRequest[], options?: CodeBuilderGetToolOptions): string;
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isValidPathComponent = isValidPathComponent;
|
|
4
|
+
exports.validatePathWithinBase = validatePathWithinBase;
|
|
5
|
+
exports.toSnakeCase = toSnakeCase;
|
|
6
|
+
exports.parseNodeId = parseNodeId;
|
|
7
|
+
exports.getNodeTypes = getNodeTypes;
|
|
8
|
+
const node_fs_1 = require("node:fs");
|
|
9
|
+
const node_path_1 = require("node:path");
|
|
10
|
+
function isValidPathComponent(component) {
|
|
11
|
+
if (!component || component.trim() === '') {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
if (component.includes('\0')) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
if (component.includes('/') || component.includes('\\')) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
if (component === '..' || component.startsWith('..')) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
function validatePathWithinBase(filePath, baseDir) {
|
|
26
|
+
const resolvedPath = (0, node_path_1.resolve)(filePath);
|
|
27
|
+
const resolvedBase = (0, node_path_1.resolve)(baseDir);
|
|
28
|
+
const separator = process.platform === 'win32' ? '\\' : '/';
|
|
29
|
+
return resolvedPath.startsWith(resolvedBase + separator) || resolvedPath === resolvedBase;
|
|
30
|
+
}
|
|
31
|
+
function getGeneratedNodesPaths(nodeDefinitionDirs) {
|
|
32
|
+
if (nodeDefinitionDirs && nodeDefinitionDirs.length > 0) {
|
|
33
|
+
return nodeDefinitionDirs.map((dir) => (0, node_path_1.join)(dir, 'nodes'));
|
|
34
|
+
}
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
function findNodeDir(parsed, nodesPaths) {
|
|
38
|
+
const candidates = [parsed.nodeName];
|
|
39
|
+
const baseName = parsed.nodeName.replace(/(?:HitlTool|Tool)$/, '');
|
|
40
|
+
if (baseName !== parsed.nodeName)
|
|
41
|
+
candidates.push(baseName);
|
|
42
|
+
for (const candidate of candidates) {
|
|
43
|
+
for (const nodesPath of nodesPaths) {
|
|
44
|
+
const nodeDir = (0, node_path_1.join)(nodesPath, parsed.packageName, candidate);
|
|
45
|
+
if ((0, node_fs_1.existsSync)(nodeDir)) {
|
|
46
|
+
return { nodesPath, nodeDir };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
function toSnakeCase(str) {
|
|
53
|
+
return str
|
|
54
|
+
.replace(/([A-Z])/g, '_$1')
|
|
55
|
+
.toLowerCase()
|
|
56
|
+
.replace(/^_/, '')
|
|
57
|
+
.replace(/[-\s]+/g, '_');
|
|
58
|
+
}
|
|
59
|
+
function isSplitVersionStructure(nodeDir, versionStr) {
|
|
60
|
+
const versionDir = (0, node_path_1.join)(nodeDir, versionStr);
|
|
61
|
+
return (0, node_fs_1.existsSync)(versionDir) && (0, node_fs_1.statSync)(versionDir).isDirectory();
|
|
62
|
+
}
|
|
63
|
+
function getAvailableDiscriminators(nodeDir, versionStr) {
|
|
64
|
+
const versionDir = (0, node_path_1.join)(nodeDir, versionStr);
|
|
65
|
+
if (!(0, node_fs_1.existsSync)(versionDir)) {
|
|
66
|
+
return {};
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
const entries = (0, node_fs_1.readdirSync)(versionDir, { withFileTypes: true });
|
|
70
|
+
const resources = [];
|
|
71
|
+
const modes = [];
|
|
72
|
+
for (const entry of entries) {
|
|
73
|
+
if (entry.isDirectory() && entry.name.startsWith('resource_')) {
|
|
74
|
+
resources.push(entry.name.replace('resource_', ''));
|
|
75
|
+
}
|
|
76
|
+
else if (entry.isFile() && entry.name.startsWith('mode_') && entry.name.endsWith('.ts')) {
|
|
77
|
+
modes.push(entry.name.replace('mode_', '').replace('.ts', ''));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
resources: resources.length > 0 ? resources : undefined,
|
|
82
|
+
modes: modes.length > 0 ? modes : undefined,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return {};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function parseNodeId(nodeId) {
|
|
90
|
+
if (nodeId.startsWith('@n8n/')) {
|
|
91
|
+
const withoutPrefix = nodeId.slice(5);
|
|
92
|
+
const dotIndex = withoutPrefix.indexOf('.');
|
|
93
|
+
if (dotIndex === -1) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
packageName: withoutPrefix.slice(0, dotIndex),
|
|
98
|
+
nodeName: withoutPrefix.slice(dotIndex + 1),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
const dotIndex = nodeId.indexOf('.');
|
|
102
|
+
if (dotIndex === -1) {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
packageName: nodeId.slice(0, dotIndex),
|
|
107
|
+
nodeName: nodeId.slice(dotIndex + 1),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
function getNodeVersions(nodeId, nodeDefinitionDirs) {
|
|
111
|
+
const parsed = parseNodeId(nodeId);
|
|
112
|
+
if (!parsed) {
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
const nodesPaths = getGeneratedNodesPaths(nodeDefinitionDirs);
|
|
116
|
+
const found = findNodeDir(parsed, nodesPaths);
|
|
117
|
+
if (!found) {
|
|
118
|
+
return [];
|
|
119
|
+
}
|
|
120
|
+
const { nodeDir } = found;
|
|
121
|
+
try {
|
|
122
|
+
const entries = (0, node_fs_1.readdirSync)(nodeDir, { withFileTypes: true });
|
|
123
|
+
const versions = [];
|
|
124
|
+
for (const entry of entries) {
|
|
125
|
+
if (entry.isFile() &&
|
|
126
|
+
entry.name.startsWith('v') &&
|
|
127
|
+
entry.name.endsWith('.ts') &&
|
|
128
|
+
entry.name !== 'index.ts' &&
|
|
129
|
+
!entry.name.endsWith('.schema.js')) {
|
|
130
|
+
versions.push(entry.name.replace('.ts', ''));
|
|
131
|
+
}
|
|
132
|
+
else if (entry.isDirectory() && /^v\d+$/.test(entry.name)) {
|
|
133
|
+
versions.push(entry.name);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
versions.sort((a, b) => {
|
|
137
|
+
const aNum = parseInt(a.slice(1), 10);
|
|
138
|
+
const bNum = parseInt(b.slice(1), 10);
|
|
139
|
+
return bNum - aNum;
|
|
140
|
+
});
|
|
141
|
+
return versions;
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
return [];
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
function resolveResourceOperationPath(nodeDir, targetVersion, nodeId, available, discriminators) {
|
|
148
|
+
if (!discriminators?.resource || !discriminators?.operation) {
|
|
149
|
+
return {
|
|
150
|
+
error: `Error: Node '${nodeId}' requires resource and operation discriminators. Available resources: ${available.resources?.join(', ')}. Use search_nodes to see all options.`,
|
|
151
|
+
requiresDiscriminators: true,
|
|
152
|
+
availableDiscriminators: available,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
if (!isValidPathComponent(discriminators.resource)) {
|
|
156
|
+
return {
|
|
157
|
+
error: `Error: Invalid resource value '${discriminators.resource}' - contains invalid characters`,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
if (!isValidPathComponent(discriminators.operation)) {
|
|
161
|
+
return {
|
|
162
|
+
error: `Error: Invalid operation value '${discriminators.operation}' - contains invalid characters`,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
const resourcePath = `resource_${toSnakeCase(discriminators.resource)}`;
|
|
166
|
+
const resourceDir = (0, node_path_1.join)(nodeDir, targetVersion, resourcePath);
|
|
167
|
+
if (!(0, node_fs_1.existsSync)(resourceDir)) {
|
|
168
|
+
return {
|
|
169
|
+
error: `Error: Invalid resource '${discriminators.resource}' for node '${nodeId}'. Available: ${available.resources?.join(', ')}`,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
const operationFile = `operation_${toSnakeCase(discriminators.operation)}.ts`;
|
|
173
|
+
const filePath = (0, node_path_1.join)(resourceDir, operationFile);
|
|
174
|
+
if (!validatePathWithinBase(filePath, nodeDir)) {
|
|
175
|
+
return {
|
|
176
|
+
error: 'Error: Invalid path - path traversal detected',
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
if (!(0, node_fs_1.existsSync)(filePath)) {
|
|
180
|
+
try {
|
|
181
|
+
const ops = (0, node_fs_1.readdirSync)(resourceDir)
|
|
182
|
+
.filter((f) => f.startsWith('operation_') && f.endsWith('.ts'))
|
|
183
|
+
.map((f) => f.replace('operation_', '').replace('.ts', ''));
|
|
184
|
+
return {
|
|
185
|
+
error: `Error: Invalid operation '${discriminators.operation}' for resource '${discriminators.resource}'. Available: ${ops.join(', ')}`,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
return {
|
|
190
|
+
error: `Error: Could not read operations for resource '${discriminators.resource}'`,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return { filePath };
|
|
195
|
+
}
|
|
196
|
+
function resolveModePath(nodeDir, targetVersion, nodeId, available, mode) {
|
|
197
|
+
if (!mode) {
|
|
198
|
+
return {
|
|
199
|
+
error: `Error: Node '${nodeId}' requires mode discriminator. Available modes: ${available.modes?.join(', ')}. Use search_nodes to see all options.`,
|
|
200
|
+
requiresDiscriminators: true,
|
|
201
|
+
availableDiscriminators: available,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
if (!isValidPathComponent(mode)) {
|
|
205
|
+
return {
|
|
206
|
+
error: `Error: Invalid mode value '${mode}' - contains invalid characters`,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
const modeFile = `mode_${toSnakeCase(mode)}.ts`;
|
|
210
|
+
const filePath = (0, node_path_1.join)(nodeDir, targetVersion, modeFile);
|
|
211
|
+
if (!validatePathWithinBase(filePath, nodeDir)) {
|
|
212
|
+
return {
|
|
213
|
+
error: 'Error: Invalid path - path traversal detected',
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
if (!(0, node_fs_1.existsSync)(filePath)) {
|
|
217
|
+
return {
|
|
218
|
+
error: `Error: Invalid mode '${mode}' for node '${nodeId}'. Available: ${available.modes?.join(', ')}`,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
return { filePath };
|
|
222
|
+
}
|
|
223
|
+
function getNodeFilePath(nodeId, version, nodeDefinitionDirs, discriminators) {
|
|
224
|
+
const parsed = parseNodeId(nodeId);
|
|
225
|
+
if (!parsed) {
|
|
226
|
+
return { error: `Invalid node ID format: '${nodeId}'` };
|
|
227
|
+
}
|
|
228
|
+
if (!isValidPathComponent(parsed.packageName)) {
|
|
229
|
+
return {
|
|
230
|
+
error: `Error: Invalid package name in node ID '${nodeId}' - contains invalid characters`,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
if (!isValidPathComponent(parsed.nodeName)) {
|
|
234
|
+
return {
|
|
235
|
+
error: `Error: Invalid node name in node ID '${nodeId}' - contains invalid characters`,
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
const nodesPaths = getGeneratedNodesPaths(nodeDefinitionDirs);
|
|
239
|
+
const found = findNodeDir(parsed, nodesPaths);
|
|
240
|
+
if (!found) {
|
|
241
|
+
return {
|
|
242
|
+
error: `Node type '${nodeId}' not found. Use search_node to find the correct node ID.`,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
const { nodesPath, nodeDir } = found;
|
|
246
|
+
if (!validatePathWithinBase(nodeDir, nodesPath)) {
|
|
247
|
+
return { error: 'Error: Invalid path - path traversal detected' };
|
|
248
|
+
}
|
|
249
|
+
let targetVersion = version;
|
|
250
|
+
if (!targetVersion) {
|
|
251
|
+
const versions = getNodeVersions(nodeId, nodeDefinitionDirs);
|
|
252
|
+
if (versions.length === 0) {
|
|
253
|
+
return { error: `No versions found for node '${nodeId}'` };
|
|
254
|
+
}
|
|
255
|
+
targetVersion = versions[0];
|
|
256
|
+
}
|
|
257
|
+
if (!targetVersion.startsWith('v')) {
|
|
258
|
+
targetVersion = `v${targetVersion.replace('.', '')}`;
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
targetVersion = `v${targetVersion.slice(1).replace('.', '')}`;
|
|
262
|
+
}
|
|
263
|
+
if (isSplitVersionStructure(nodeDir, targetVersion)) {
|
|
264
|
+
const available = getAvailableDiscriminators(nodeDir, targetVersion);
|
|
265
|
+
if (available.resources && available.resources.length > 0) {
|
|
266
|
+
return resolveResourceOperationPath(nodeDir, targetVersion, nodeId, available, discriminators);
|
|
267
|
+
}
|
|
268
|
+
if (available.modes && available.modes.length > 0) {
|
|
269
|
+
return resolveModePath(nodeDir, targetVersion, nodeId, available, discriminators?.mode);
|
|
270
|
+
}
|
|
271
|
+
return {
|
|
272
|
+
error: `Error: Node '${nodeId}' has split structure but no recognized discriminators found`,
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
const filePath = (0, node_path_1.join)(nodeDir, `${targetVersion}.ts`);
|
|
276
|
+
if (!(0, node_fs_1.existsSync)(filePath)) {
|
|
277
|
+
return { error: `Version '${version}' not found for node '${nodeId}'` };
|
|
278
|
+
}
|
|
279
|
+
return { filePath };
|
|
280
|
+
}
|
|
281
|
+
function getNodeTypeDefinition(nodeId, version, nodeDefinitionDirs, discriminators) {
|
|
282
|
+
const nodesPaths = getGeneratedNodesPaths(nodeDefinitionDirs);
|
|
283
|
+
const anyDirExists = nodesPaths.some((p) => (0, node_fs_1.existsSync)(p));
|
|
284
|
+
if (!anyDirExists) {
|
|
285
|
+
const errorMsg = nodeDefinitionDirs
|
|
286
|
+
? 'Node types directory not found in any of the configured dirs. Types may not have been generated yet.'
|
|
287
|
+
: 'Node types not found. The generated types directory does not exist. Ensure the application has started properly and types have been generated.';
|
|
288
|
+
return {
|
|
289
|
+
nodeId,
|
|
290
|
+
content: '',
|
|
291
|
+
error: errorMsg,
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
const pathResult = getNodeFilePath(nodeId, version, nodeDefinitionDirs, discriminators);
|
|
295
|
+
if (pathResult.error) {
|
|
296
|
+
const availableVersions = getNodeVersions(nodeId, nodeDefinitionDirs);
|
|
297
|
+
return {
|
|
298
|
+
nodeId,
|
|
299
|
+
version,
|
|
300
|
+
content: '',
|
|
301
|
+
availableVersions: availableVersions.length > 0 ? availableVersions : undefined,
|
|
302
|
+
error: pathResult.error,
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
if (!pathResult.filePath) {
|
|
306
|
+
return {
|
|
307
|
+
nodeId,
|
|
308
|
+
content: '',
|
|
309
|
+
error: `Node type '${nodeId}' not found. Use search_node to find the correct node ID.`,
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
try {
|
|
313
|
+
const content = (0, node_fs_1.readFileSync)(pathResult.filePath, 'utf-8');
|
|
314
|
+
const actualVersion = pathResult.filePath.match(/\/(v\d+)(?:\/|\.ts)/)?.[1];
|
|
315
|
+
return { nodeId, version: actualVersion, content };
|
|
316
|
+
}
|
|
317
|
+
catch (error) {
|
|
318
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
319
|
+
return {
|
|
320
|
+
nodeId,
|
|
321
|
+
content: '',
|
|
322
|
+
error: `Error reading node definition for '${nodeId}': ${errorMessage}`,
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
function getNodeTypes(nodeIds, options = {}) {
|
|
327
|
+
const { nodeDefinitionDirs } = options;
|
|
328
|
+
const results = [];
|
|
329
|
+
const errors = [];
|
|
330
|
+
for (const nodeRequest of nodeIds) {
|
|
331
|
+
const nodeId = typeof nodeRequest === 'string' ? nodeRequest : nodeRequest.nodeId;
|
|
332
|
+
const version = typeof nodeRequest === 'string' ? undefined : nodeRequest.version;
|
|
333
|
+
const discriminators = typeof nodeRequest === 'string'
|
|
334
|
+
? undefined
|
|
335
|
+
: {
|
|
336
|
+
resource: nodeRequest.resource,
|
|
337
|
+
operation: nodeRequest.operation,
|
|
338
|
+
mode: nodeRequest.mode,
|
|
339
|
+
};
|
|
340
|
+
const result = getNodeTypeDefinition(nodeId, version, nodeDefinitionDirs, discriminators);
|
|
341
|
+
if (result.error) {
|
|
342
|
+
errors.push(result.error);
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
const versionLabel = result.version ? ` (${result.version})` : '';
|
|
346
|
+
results.push(`## ${nodeId}${versionLabel}\n\n\`\`\`typescript\n${result.content}\n\`\`\``);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
let response = '';
|
|
350
|
+
if (results.length > 0) {
|
|
351
|
+
response += `# TypeScript Type Definitions\n\n${results.join('\n\n---\n\n')}`;
|
|
352
|
+
}
|
|
353
|
+
if (errors.length > 0) {
|
|
354
|
+
response += `\n\n# Errors\n\n${errors.join('\n')}`;
|
|
355
|
+
}
|
|
356
|
+
return response;
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/node-catalog/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { NodeTypeParser } from './node-type-parser';
|
|
2
|
+
export type { ParsedNodeType } from './node-type-parser';
|
|
3
|
+
export { CodeBuilderNodeSearchEngine, SCORE_WEIGHTS } from './search-engine';
|
|
4
|
+
export { searchCodeBuilderNodes, formatNodeResult } from './search';
|
|
5
|
+
export type { CodeBuilderSearchResult, CodeBuilderSearchToolOptions, } from './search';
|
|
6
|
+
export { getNodeTypes, isValidPathComponent, validatePathWithinBase, parseNodeId, toSnakeCase, } from './get';
|
|
7
|
+
export type { NodeRequest, CodeBuilderGetToolOptions } from './get';
|
|
8
|
+
export { getSuggestedNodes, categoryList } from './suggested';
|
|
9
|
+
export { suggestedNodesData, type CategoryData, type CategorySuggestedNode, } from './suggested-nodes-data';
|
|
10
|
+
export { extractModeDiscriminator, extractOperationOnlyDiscriminator, } from './discriminator-utils';
|
|
11
|
+
export type { ModeInfo, ModeDiscriminatorInfo, OperationOnlyInfo, OperationOnlyDiscriminatorInfo, } from './discriminator-utils';
|
|
12
|
+
export { extractResourceOperations, createResourceCacheKey, formatResourceOperationsForPrompt, } from './resource-operation-extractor';
|
|
13
|
+
export type { OperationInfo, ResourceInfo, ResourceOperationInfo, ExtractOptions, } from './resource-operation-extractor';
|
|
14
|
+
export type { SubnodeRequirement, CodeBuilderNodeSearchResult } from './types';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatResourceOperationsForPrompt = exports.createResourceCacheKey = exports.extractResourceOperations = exports.extractOperationOnlyDiscriminator = exports.extractModeDiscriminator = exports.suggestedNodesData = exports.categoryList = exports.getSuggestedNodes = exports.toSnakeCase = exports.parseNodeId = exports.validatePathWithinBase = exports.isValidPathComponent = exports.getNodeTypes = exports.formatNodeResult = exports.searchCodeBuilderNodes = exports.SCORE_WEIGHTS = exports.CodeBuilderNodeSearchEngine = exports.NodeTypeParser = void 0;
|
|
4
|
+
var node_type_parser_1 = require("./node-type-parser");
|
|
5
|
+
Object.defineProperty(exports, "NodeTypeParser", { enumerable: true, get: function () { return node_type_parser_1.NodeTypeParser; } });
|
|
6
|
+
var search_engine_1 = require("./search-engine");
|
|
7
|
+
Object.defineProperty(exports, "CodeBuilderNodeSearchEngine", { enumerable: true, get: function () { return search_engine_1.CodeBuilderNodeSearchEngine; } });
|
|
8
|
+
Object.defineProperty(exports, "SCORE_WEIGHTS", { enumerable: true, get: function () { return search_engine_1.SCORE_WEIGHTS; } });
|
|
9
|
+
var search_1 = require("./search");
|
|
10
|
+
Object.defineProperty(exports, "searchCodeBuilderNodes", { enumerable: true, get: function () { return search_1.searchCodeBuilderNodes; } });
|
|
11
|
+
Object.defineProperty(exports, "formatNodeResult", { enumerable: true, get: function () { return search_1.formatNodeResult; } });
|
|
12
|
+
var get_1 = require("./get");
|
|
13
|
+
Object.defineProperty(exports, "getNodeTypes", { enumerable: true, get: function () { return get_1.getNodeTypes; } });
|
|
14
|
+
Object.defineProperty(exports, "isValidPathComponent", { enumerable: true, get: function () { return get_1.isValidPathComponent; } });
|
|
15
|
+
Object.defineProperty(exports, "validatePathWithinBase", { enumerable: true, get: function () { return get_1.validatePathWithinBase; } });
|
|
16
|
+
Object.defineProperty(exports, "parseNodeId", { enumerable: true, get: function () { return get_1.parseNodeId; } });
|
|
17
|
+
Object.defineProperty(exports, "toSnakeCase", { enumerable: true, get: function () { return get_1.toSnakeCase; } });
|
|
18
|
+
var suggested_1 = require("./suggested");
|
|
19
|
+
Object.defineProperty(exports, "getSuggestedNodes", { enumerable: true, get: function () { return suggested_1.getSuggestedNodes; } });
|
|
20
|
+
Object.defineProperty(exports, "categoryList", { enumerable: true, get: function () { return suggested_1.categoryList; } });
|
|
21
|
+
var suggested_nodes_data_1 = require("./suggested-nodes-data");
|
|
22
|
+
Object.defineProperty(exports, "suggestedNodesData", { enumerable: true, get: function () { return suggested_nodes_data_1.suggestedNodesData; } });
|
|
23
|
+
var discriminator_utils_1 = require("./discriminator-utils");
|
|
24
|
+
Object.defineProperty(exports, "extractModeDiscriminator", { enumerable: true, get: function () { return discriminator_utils_1.extractModeDiscriminator; } });
|
|
25
|
+
Object.defineProperty(exports, "extractOperationOnlyDiscriminator", { enumerable: true, get: function () { return discriminator_utils_1.extractOperationOnlyDiscriminator; } });
|
|
26
|
+
var resource_operation_extractor_1 = require("./resource-operation-extractor");
|
|
27
|
+
Object.defineProperty(exports, "extractResourceOperations", { enumerable: true, get: function () { return resource_operation_extractor_1.extractResourceOperations; } });
|
|
28
|
+
Object.defineProperty(exports, "createResourceCacheKey", { enumerable: true, get: function () { return resource_operation_extractor_1.createResourceCacheKey; } });
|
|
29
|
+
Object.defineProperty(exports, "formatResourceOperationsForPrompt", { enumerable: true, get: function () { return resource_operation_extractor_1.formatResourceOperationsForPrompt; } });
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/node-catalog/index.ts"],"names":[],"mappings":";;;AAUA,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AAGvB,iDAA6E;AAApE,4HAAA,2BAA2B,OAAA;AAAE,8GAAA,aAAa,OAAA;AAEnD,mCAAoE;AAA3D,gHAAA,sBAAsB,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AAMjD,6BAMe;AALd,mGAAA,YAAY,OAAA;AACZ,2GAAA,oBAAoB,OAAA;AACpB,6GAAA,sBAAsB,OAAA;AACtB,kGAAA,WAAW,OAAA;AACX,kGAAA,WAAW,OAAA;AAIZ,yCAA8D;AAArD,8GAAA,iBAAiB,OAAA;AAAE,yGAAA,YAAY,OAAA;AAExC,+DAIgC;AAH/B,0HAAA,kBAAkB,OAAA;AAKnB,6DAG+B;AAF9B,+HAAA,wBAAwB,OAAA;AACxB,wIAAA,iCAAiC,OAAA;AASlC,+EAIwC;AAHvC,yIAAA,yBAAyB,OAAA;AACzB,sIAAA,sBAAsB,OAAA;AACtB,iJAAA,iCAAiC,OAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { INodeTypeDescription, IRelatedNode } from 'n8n-workflow';
|
|
2
|
+
import { type ModeDiscriminatorInfo, type OperationOnlyDiscriminatorInfo } from './discriminator-utils';
|
|
3
|
+
import { type ResourceOperationInfo } from './resource-operation-extractor';
|
|
4
|
+
export interface VersionDiscriminators {
|
|
5
|
+
resourceOperations: ResourceOperationInfo | null;
|
|
6
|
+
modeDiscriminator: ModeDiscriminatorInfo | null;
|
|
7
|
+
operationDiscriminator: OperationOnlyDiscriminatorInfo | null;
|
|
8
|
+
}
|
|
9
|
+
export interface LeanNodeTypeDescription {
|
|
10
|
+
name: string;
|
|
11
|
+
displayName: string;
|
|
12
|
+
description: string;
|
|
13
|
+
version: number | number[];
|
|
14
|
+
group: INodeTypeDescription['group'];
|
|
15
|
+
inputs: INodeTypeDescription['inputs'];
|
|
16
|
+
outputs: INodeTypeDescription['outputs'];
|
|
17
|
+
codex?: {
|
|
18
|
+
alias?: string[];
|
|
19
|
+
};
|
|
20
|
+
builderHint?: {
|
|
21
|
+
searchHint?: string;
|
|
22
|
+
relatedNodes?: IRelatedNode[];
|
|
23
|
+
inputs?: NonNullable<INodeTypeDescription['builderHint']>['inputs'];
|
|
24
|
+
};
|
|
25
|
+
discriminatorsByVersion: Map<number, VersionDiscriminators>;
|
|
26
|
+
}
|
|
27
|
+
export declare function toLeanNodeType(node: INodeTypeDescription): LeanNodeTypeDescription;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toLeanNodeType = toLeanNodeType;
|
|
4
|
+
const discriminator_utils_1 = require("./discriminator-utils");
|
|
5
|
+
const resource_operation_extractor_1 = require("./resource-operation-extractor");
|
|
6
|
+
function getVersions(node) {
|
|
7
|
+
return Array.isArray(node.version) ? node.version : [node.version];
|
|
8
|
+
}
|
|
9
|
+
function buildVersionDiscriminators(node) {
|
|
10
|
+
const out = new Map();
|
|
11
|
+
for (const version of getVersions(node)) {
|
|
12
|
+
out.set(version, {
|
|
13
|
+
resourceOperations: (0, resource_operation_extractor_1.extractResourceOperations)(node, version, undefined, {
|
|
14
|
+
fields: { description: true, builderHint: true },
|
|
15
|
+
}),
|
|
16
|
+
modeDiscriminator: (0, discriminator_utils_1.extractModeDiscriminator)(node, version),
|
|
17
|
+
operationDiscriminator: (0, discriminator_utils_1.extractOperationOnlyDiscriminator)(node, version),
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return out;
|
|
21
|
+
}
|
|
22
|
+
function toLeanNodeType(node) {
|
|
23
|
+
const lean = {
|
|
24
|
+
name: node.name,
|
|
25
|
+
displayName: node.displayName,
|
|
26
|
+
description: node.description,
|
|
27
|
+
version: node.version,
|
|
28
|
+
group: node.group,
|
|
29
|
+
inputs: node.inputs,
|
|
30
|
+
outputs: node.outputs,
|
|
31
|
+
discriminatorsByVersion: buildVersionDiscriminators(node),
|
|
32
|
+
};
|
|
33
|
+
if (node.codex?.alias) {
|
|
34
|
+
lean.codex = { alias: node.codex.alias };
|
|
35
|
+
}
|
|
36
|
+
if (node.builderHint) {
|
|
37
|
+
const { searchHint, relatedNodes, inputs } = node.builderHint;
|
|
38
|
+
const hint = {};
|
|
39
|
+
if (searchHint !== undefined)
|
|
40
|
+
hint.searchHint = searchHint;
|
|
41
|
+
if (relatedNodes !== undefined)
|
|
42
|
+
hint.relatedNodes = relatedNodes;
|
|
43
|
+
if (inputs !== undefined)
|
|
44
|
+
hint.inputs = inputs;
|
|
45
|
+
if (Object.keys(hint).length > 0)
|
|
46
|
+
lean.builderHint = hint;
|
|
47
|
+
}
|
|
48
|
+
return lean;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=lean-node-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lean-node-type.js","sourceRoot":"","sources":["../../../src/node-catalog/lean-node-type.ts"],"names":[],"mappings":";;AAuFA,wCA0BC;AAhGD,+DAK+B;AAC/B,iFAGwC;AAmCxC,SAAS,WAAW,CAAC,IAA0B;IAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,0BAA0B,CAClC,IAA0B;IAE1B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAiC,CAAC;IACrD,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE;YAChB,kBAAkB,EAAE,IAAA,wDAAyB,EAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE;gBACvE,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;aAChD,CAAC;YACF,iBAAiB,EAAE,IAAA,8CAAwB,EAAC,IAAI,EAAE,OAAO,CAAC;YAC1D,sBAAsB,EAAE,IAAA,uDAAiC,EAAC,IAAI,EAAE,OAAO,CAAC;SACxE,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAQD,SAAgB,cAAc,CAAC,IAA0B;IACxD,MAAM,IAAI,GAA4B;QACrC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,uBAAuB,EAAE,0BAA0B,CAAC,IAAI,CAAC;KACzD,CAAC;IAEF,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9D,MAAM,IAAI,GAA2C,EAAE,CAAC;QACxD,IAAI,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC3D,IAAI,YAAY,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjE,IAAI,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC3D,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
import { type LeanNodeTypeDescription, type VersionDiscriminators } from './lean-node-type';
|
|
3
|
+
export interface ParsedNodeType {
|
|
4
|
+
id: string;
|
|
5
|
+
displayName: string;
|
|
6
|
+
description: string;
|
|
7
|
+
version: number;
|
|
8
|
+
isTrigger: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare class NodeTypeParser {
|
|
11
|
+
private nodeTypes;
|
|
12
|
+
private nodeTypeIndex;
|
|
13
|
+
private searchEngine;
|
|
14
|
+
constructor(nodeTypes: INodeTypeDescription[]);
|
|
15
|
+
private buildIndex;
|
|
16
|
+
private isTriggerNode;
|
|
17
|
+
searchNodeTypes(query: string, limit?: number, nodeFilter?: (nodeId: string) => boolean): ParsedNodeType[];
|
|
18
|
+
getLeanNodeType(nodeId: string, version?: number): LeanNodeTypeDescription | null;
|
|
19
|
+
getVersionDiscriminators(nodeId: string, version: number): VersionDiscriminators | null;
|
|
20
|
+
}
|