n8n-nodes-couchbase 0.1.5 → 1.1.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.
Files changed (89) hide show
  1. package/README.md +26 -52
  2. package/dist/credentials/CouchbaseApi.credentials.d.ts +8 -0
  3. package/dist/credentials/CouchbaseApi.credentials.js +39 -0
  4. package/dist/credentials/CouchbaseApi.credentials.js.map +1 -0
  5. package/dist/nodes/Couchbase/Couchbase.node.d.ts +14 -0
  6. package/dist/nodes/Couchbase/Couchbase.node.js +173 -0
  7. package/dist/nodes/Couchbase/Couchbase.node.js.map +1 -0
  8. package/dist/nodes/Couchbase/Couchbase.node.json +18 -0
  9. package/dist/nodes/Couchbase/CouchbaseProperties.d.ts +16 -0
  10. package/dist/nodes/Couchbase/CouchbaseProperties.js +511 -0
  11. package/dist/nodes/Couchbase/CouchbaseProperties.js.map +1 -0
  12. package/dist/nodes/Couchbase/couchbase.dark.svg +14 -0
  13. package/dist/nodes/Couchbase/couchbase.svg +14 -0
  14. package/dist/nodes/icons/couchbase.dark.svg +14 -0
  15. package/dist/nodes/icons/couchbase.svg +14 -0
  16. package/dist/nodes/vector_store/VectorStoreCouchbaseSearch/VectorStoreCouchbaseSearch.node.d.ts +16 -0
  17. package/dist/nodes/vector_store/VectorStoreCouchbaseSearch/VectorStoreCouchbaseSearch.node.js +335 -0
  18. package/dist/nodes/vector_store/VectorStoreCouchbaseSearch/VectorStoreCouchbaseSearch.node.js.map +1 -0
  19. package/dist/nodes/vector_store/shared/createVectorStoreNode/constants.d.ts +4 -0
  20. package/dist/nodes/vector_store/shared/createVectorStoreNode/constants.js +45 -0
  21. package/dist/nodes/vector_store/shared/createVectorStoreNode/constants.js.map +1 -0
  22. package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.d.ts +15 -0
  23. package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.js +227 -0
  24. package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.js.map +1 -0
  25. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/index.d.ts +5 -0
  26. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/index.js +22 -0
  27. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/index.js.map +1 -0
  28. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.d.ts +5 -0
  29. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.js +36 -0
  30. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.js.map +1 -0
  31. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.d.ts +5 -0
  32. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.js +34 -0
  33. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.js.map +1 -0
  34. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.d.ts +5 -0
  35. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.js +43 -0
  36. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.js.map +1 -0
  37. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.d.ts +5 -0
  38. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.js +17 -0
  39. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.js.map +1 -0
  40. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.d.ts +5 -0
  41. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.js +40 -0
  42. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.js.map +1 -0
  43. package/dist/nodes/vector_store/shared/createVectorStoreNode/types.d.ts +31 -0
  44. package/dist/nodes/vector_store/shared/createVectorStoreNode/types.js +3 -0
  45. package/dist/nodes/vector_store/shared/createVectorStoreNode/types.js.map +1 -0
  46. package/dist/nodes/vector_store/shared/createVectorStoreNode/utils.d.ts +6 -0
  47. package/dist/nodes/vector_store/shared/createVectorStoreNode/utils.js +22 -0
  48. package/dist/nodes/vector_store/shared/createVectorStoreNode/utils.js.map +1 -0
  49. package/dist/nodes/vector_store/shared/processDocuments.d.ts +16 -0
  50. package/dist/nodes/vector_store/shared/processDocuments.js +28 -0
  51. package/dist/nodes/vector_store/shared/processDocuments.js.map +1 -0
  52. package/dist/package.json +37 -19
  53. package/dist/tsconfig.tsbuildinfo +1 -1
  54. package/dist/utils/N8nBinaryLoader.d.ts +18 -0
  55. package/dist/utils/N8nBinaryLoader.js +159 -0
  56. package/dist/utils/N8nBinaryLoader.js.map +1 -0
  57. package/dist/utils/N8nJsonLoader.d.ts +11 -0
  58. package/dist/utils/N8nJsonLoader.js +67 -0
  59. package/dist/utils/N8nJsonLoader.js.map +1 -0
  60. package/dist/utils/couchbase/connectToCouchbase.d.ts +6 -0
  61. package/dist/utils/couchbase/connectToCouchbase.js +88 -0
  62. package/dist/utils/couchbase/connectToCouchbase.js.map +1 -0
  63. package/dist/utils/couchbase/populateCouchbaseRLs.d.ts +25 -0
  64. package/dist/utils/couchbase/populateCouchbaseRLs.js +121 -0
  65. package/dist/utils/couchbase/populateCouchbaseRLs.js.map +1 -0
  66. package/dist/utils/couchbase/validateBucketScopeCollection.d.ts +2 -0
  67. package/dist/utils/couchbase/validateBucketScopeCollection.js +53 -0
  68. package/dist/utils/couchbase/validateBucketScopeCollection.js.map +1 -0
  69. package/dist/utils/helpers.d.ts +10 -0
  70. package/dist/utils/helpers.js +61 -0
  71. package/dist/utils/helpers.js.map +1 -0
  72. package/dist/utils/logWrapper.d.ts +20 -0
  73. package/dist/utils/logWrapper.js +285 -0
  74. package/dist/utils/logWrapper.js.map +1 -0
  75. package/dist/utils/sharedFields.d.ts +6 -0
  76. package/dist/utils/sharedFields.js +122 -0
  77. package/dist/utils/sharedFields.js.map +1 -0
  78. package/package.json +43 -27
  79. package/dist/credentials/CouchbaseCredentialsApi.credentials.d.ts +0 -7
  80. package/dist/credentials/CouchbaseCredentialsApi.credentials.js +0 -50
  81. package/dist/credentials/CouchbaseCredentialsApi.credentials.js.map +0 -1
  82. package/dist/nodes/CouchbaseDB/CBLogomark.svg +0 -350
  83. package/dist/nodes/CouchbaseDB/CouchbaseNode.node.d.ts +0 -6
  84. package/dist/nodes/CouchbaseDB/CouchbaseNode.node.js +0 -206
  85. package/dist/nodes/CouchbaseDB/CouchbaseNode.node.js.map +0 -1
  86. package/dist/nodes/CouchbaseNode/CBLogomark.svg +0 -350
  87. package/dist/nodes/CouchbaseNode/CouchbaseNode.node.d.ts +0 -6
  88. package/dist/nodes/CouchbaseNode/CouchbaseNode.node.js +0 -293
  89. package/dist/nodes/CouchbaseNode/CouchbaseNode.node.js.map +0 -1
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.N8nBinaryLoader = void 0;
4
+ const csv_1 = require("@langchain/community/document_loaders/fs/csv");
5
+ const docx_1 = require("@langchain/community/document_loaders/fs/docx");
6
+ const epub_1 = require("@langchain/community/document_loaders/fs/epub");
7
+ const pdf_1 = require("@langchain/community/document_loaders/fs/pdf");
8
+ const fs_1 = require("fs");
9
+ const json_1 = require("langchain/document_loaders/fs/json");
10
+ const text_1 = require("langchain/document_loaders/fs/text");
11
+ const n8n_workflow_1 = require("n8n-workflow");
12
+ const promises_1 = require("stream/promises");
13
+ const tmp_promise_1 = require("tmp-promise");
14
+ const helpers_1 = require("./helpers");
15
+ const SUPPORTED_MIME_TYPES = {
16
+ auto: ['*/*'],
17
+ pdfLoader: ['application/pdf'],
18
+ csvLoader: ['text/csv'],
19
+ epubLoader: ['application/epub+zip'],
20
+ docxLoader: ['application/vnd.openxmlformats-officedocument.wordprocessingml.document'],
21
+ textLoader: ['text/plain', 'text/mdx', 'text/md'],
22
+ jsonLoader: ['application/json'],
23
+ };
24
+ class N8nBinaryLoader {
25
+ constructor(context, optionsPrefix = '', binaryDataKey = '', textSplitter) {
26
+ this.context = context;
27
+ this.optionsPrefix = optionsPrefix;
28
+ this.binaryDataKey = binaryDataKey;
29
+ this.textSplitter = textSplitter;
30
+ }
31
+ async processAll(items) {
32
+ const docs = [];
33
+ if (!items)
34
+ return [];
35
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
36
+ const processedDocuments = await this.processItem(items[itemIndex], itemIndex);
37
+ docs.push(...processedDocuments);
38
+ }
39
+ return docs;
40
+ }
41
+ async validateMimeType(mimeType, selectedLoader) {
42
+ if (selectedLoader !== 'auto' && !SUPPORTED_MIME_TYPES[selectedLoader].includes(mimeType)) {
43
+ const neededLoader = Object.keys(SUPPORTED_MIME_TYPES).find((loader) => SUPPORTED_MIME_TYPES[loader].includes(mimeType));
44
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `Mime type doesn't match selected loader. Please select under "Loader Type": ${neededLoader}`);
45
+ }
46
+ if (!Object.values(SUPPORTED_MIME_TYPES).flat().includes(mimeType)) {
47
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `Unsupported mime type: ${mimeType}`);
48
+ }
49
+ if (!SUPPORTED_MIME_TYPES[selectedLoader].includes(mimeType) &&
50
+ selectedLoader !== 'textLoader' &&
51
+ selectedLoader !== 'auto') {
52
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `Unsupported mime type: ${mimeType} for selected loader: ${selectedLoader}`);
53
+ }
54
+ }
55
+ async getFilePathOrBlob(binaryData, mimeType) {
56
+ if (binaryData.id) {
57
+ const binaryBuffer = await this.context.helpers.binaryToBuffer(await this.context.helpers.getBinaryStream(binaryData.id));
58
+ return new Blob([binaryBuffer], {
59
+ type: mimeType,
60
+ });
61
+ }
62
+ else {
63
+ return new Blob([Buffer.from(binaryData.data, n8n_workflow_1.BINARY_ENCODING)], {
64
+ type: mimeType,
65
+ });
66
+ }
67
+ }
68
+ async getLoader(mimeType, filePathOrBlob, itemIndex) {
69
+ switch (mimeType) {
70
+ case 'application/pdf':
71
+ const splitPages = this.context.getNodeParameter(`${this.optionsPrefix}splitPages`, itemIndex, false);
72
+ return new pdf_1.PDFLoader(filePathOrBlob, { splitPages });
73
+ case 'text/csv':
74
+ const column = this.context.getNodeParameter(`${this.optionsPrefix}column`, itemIndex, null);
75
+ const separator = this.context.getNodeParameter(`${this.optionsPrefix}separator`, itemIndex, ',');
76
+ return new csv_1.CSVLoader(filePathOrBlob, { column: column !== null && column !== void 0 ? column : undefined, separator });
77
+ case 'application/epub+zip':
78
+ let filePath;
79
+ if (filePathOrBlob instanceof Blob) {
80
+ const tmpFileData = await (0, tmp_promise_1.file)({ prefix: 'epub-loader-' });
81
+ const bufferData = await filePathOrBlob.arrayBuffer();
82
+ await (0, promises_1.pipeline)([new Uint8Array(bufferData)], (0, fs_1.createWriteStream)(tmpFileData.path));
83
+ return new epub_1.EPubLoader(tmpFileData.path);
84
+ }
85
+ else {
86
+ filePath = filePathOrBlob;
87
+ }
88
+ return new epub_1.EPubLoader(filePath);
89
+ case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':
90
+ return new docx_1.DocxLoader(filePathOrBlob);
91
+ case 'text/plain':
92
+ return new text_1.TextLoader(filePathOrBlob);
93
+ case 'application/json':
94
+ const pointers = this.context.getNodeParameter(`${this.optionsPrefix}pointers`, itemIndex, '');
95
+ const pointersArray = pointers.split(',').map((pointer) => pointer.trim());
96
+ return new json_1.JSONLoader(filePathOrBlob, pointersArray);
97
+ default:
98
+ return new text_1.TextLoader(filePathOrBlob);
99
+ }
100
+ }
101
+ async loadDocuments(loader) {
102
+ return this.textSplitter
103
+ ? await this.textSplitter.splitDocuments(await loader.load())
104
+ : await loader.load();
105
+ }
106
+ async cleanupTmpFileIfNeeded(cleanupTmpFile) {
107
+ if (cleanupTmpFile) {
108
+ await cleanupTmpFile();
109
+ }
110
+ }
111
+ async processItem(item, itemIndex) {
112
+ const docs = [];
113
+ const binaryMode = this.context.getNodeParameter('binaryMode', itemIndex, 'allInputData');
114
+ if (binaryMode === 'allInputData') {
115
+ const binaryData = this.context.getInputData();
116
+ for (const data of binaryData) {
117
+ if (data.binary) {
118
+ const binaryDataKeys = Object.keys(data.binary);
119
+ for (const fileKey of binaryDataKeys) {
120
+ const processedDocuments = await this.processItemByKey(item, itemIndex, fileKey);
121
+ docs.push(...processedDocuments);
122
+ }
123
+ }
124
+ }
125
+ }
126
+ else {
127
+ const processedDocuments = await this.processItemByKey(item, itemIndex, this.binaryDataKey);
128
+ docs.push(...processedDocuments);
129
+ }
130
+ return docs;
131
+ }
132
+ async processItemByKey(item, itemIndex, binaryKey) {
133
+ const selectedLoader = this.context.getNodeParameter('loader', itemIndex, 'auto');
134
+ const docs = [];
135
+ const metadata = (0, helpers_1.getMetadataFiltersValues)(this.context, itemIndex);
136
+ if (!item)
137
+ return [];
138
+ const binaryData = this.context.helpers.assertBinaryData(itemIndex, binaryKey);
139
+ const { mimeType } = binaryData;
140
+ await this.validateMimeType(mimeType, selectedLoader);
141
+ const filePathOrBlob = await this.getFilePathOrBlob(binaryData, mimeType);
142
+ const cleanupTmpFile = undefined;
143
+ const loader = await this.getLoader(mimeType, filePathOrBlob, itemIndex);
144
+ const loadedDoc = await this.loadDocuments(loader);
145
+ docs.push(...loadedDoc);
146
+ if (metadata) {
147
+ docs.forEach((document) => {
148
+ document.metadata = {
149
+ ...document.metadata,
150
+ ...metadata,
151
+ };
152
+ });
153
+ }
154
+ await this.cleanupTmpFileIfNeeded(cleanupTmpFile);
155
+ return docs;
156
+ }
157
+ }
158
+ exports.N8nBinaryLoader = N8nBinaryLoader;
159
+ //# sourceMappingURL=N8nBinaryLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"N8nBinaryLoader.js","sourceRoot":"","sources":["../../utils/N8nBinaryLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Document } from '@langchain/core/documents';
2
+ import type { TextSplitter } from '@langchain/textsplitters';
3
+ import { type IExecuteFunctions, type INodeExecutionData, type ISupplyDataFunctions } from 'n8n-workflow';
4
+ export declare class N8nJsonLoader {
5
+ private context;
6
+ private optionsPrefix;
7
+ private textSplitter?;
8
+ constructor(context: IExecuteFunctions | ISupplyDataFunctions, optionsPrefix?: string, textSplitter?: TextSplitter | undefined);
9
+ processAll(items?: INodeExecutionData[]): Promise<Document[]>;
10
+ processItem(item: INodeExecutionData, itemIndex: number): Promise<Document[]>;
11
+ }
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.N8nJsonLoader = void 0;
4
+ const json_1 = require("langchain/document_loaders/fs/json");
5
+ const text_1 = require("langchain/document_loaders/fs/text");
6
+ const n8n_workflow_1 = require("n8n-workflow");
7
+ const helpers_1 = require("./helpers");
8
+ class N8nJsonLoader {
9
+ constructor(context, optionsPrefix = '', textSplitter) {
10
+ this.context = context;
11
+ this.optionsPrefix = optionsPrefix;
12
+ this.textSplitter = textSplitter;
13
+ }
14
+ async processAll(items) {
15
+ const docs = [];
16
+ if (!items)
17
+ return [];
18
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
19
+ const processedDocuments = await this.processItem(items[itemIndex], itemIndex);
20
+ docs.push(...processedDocuments);
21
+ }
22
+ return docs;
23
+ }
24
+ async processItem(item, itemIndex) {
25
+ var _a;
26
+ const mode = this.context.getNodeParameter('jsonMode', itemIndex, 'allInputData');
27
+ const pointers = this.context.getNodeParameter(`${this.optionsPrefix}pointers`, itemIndex, '');
28
+ const pointersArray = pointers.split(',').map((pointer) => pointer.trim());
29
+ const metadata = (_a = (0, helpers_1.getMetadataFiltersValues)(this.context, itemIndex)) !== null && _a !== void 0 ? _a : [];
30
+ if (!item)
31
+ return [];
32
+ let documentLoader = null;
33
+ if (mode === 'allInputData') {
34
+ const itemString = JSON.stringify(item.json);
35
+ const itemBlob = new Blob([itemString], { type: 'application/json' });
36
+ documentLoader = new json_1.JSONLoader(itemBlob, pointersArray);
37
+ }
38
+ if (mode === 'expressionData') {
39
+ const dataString = this.context.getNodeParameter('jsonData', itemIndex);
40
+ if (typeof dataString === 'object') {
41
+ const itemBlob = new Blob([JSON.stringify(dataString)], { type: 'application/json' });
42
+ documentLoader = new json_1.JSONLoader(itemBlob, pointersArray);
43
+ }
44
+ if (typeof dataString === 'string') {
45
+ const itemBlob = new Blob([dataString], { type: 'text/plain' });
46
+ documentLoader = new text_1.TextLoader(itemBlob);
47
+ }
48
+ }
49
+ if (documentLoader === null) {
50
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), 'Document loader is not initialized');
51
+ }
52
+ const docs = this.textSplitter
53
+ ? await this.textSplitter.splitDocuments(await documentLoader.load())
54
+ : await documentLoader.load();
55
+ if (metadata) {
56
+ docs.forEach((doc) => {
57
+ doc.metadata = {
58
+ ...doc.metadata,
59
+ ...metadata,
60
+ };
61
+ });
62
+ }
63
+ return docs;
64
+ }
65
+ }
66
+ exports.N8nJsonLoader = N8nJsonLoader;
67
+ //# sourceMappingURL=N8nJsonLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"N8nJsonLoader.js","sourceRoot":"","sources":["../../utils/N8nJsonLoader.ts"],"names":[],"mappings":";;;AAEA,6DAAgE;AAChE,6DAAgE;AAChE,+CAKsB;AAEtB,uCAAqD;AAErD,MAAa,aAAa;IACzB,YACS,OAAiD,EACjD,gBAAgB,EAAE,EAClB,YAA2B;QAF3B,YAAO,GAAP,OAAO,CAA0C;QACjD,kBAAa,GAAb,aAAa,CAAK;QAClB,iBAAY,GAAZ,YAAY,CAAe;IACjC,CAAC;IAEJ,KAAK,CAAC,UAAU,CAAC,KAA4B;QAC5C,MAAM,IAAI,GAAe,EAAE,CAAC;QAE5B,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAEtB,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;YAC/D,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;YAE/E,IAAI,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAwB,EAAE,SAAiB;;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,CAE7D,CAAC;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAC7C,GAAG,IAAI,CAAC,aAAa,UAAU,EAC/B,SAAS,EACT,EAAE,CACQ,CAAC;QACZ,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,MAAA,IAAA,kCAAwB,EAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,mCAAI,EAAE,CAAC;QAEzE,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,IAAI,cAAc,GAAmC,IAAI,CAAC;QAE1D,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACtE,cAAc,GAAG,IAAI,iBAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAoB,CAAC;YAC3F,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBACtF,cAAc,GAAG,IAAI,iBAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAC1D,CAAC;YAED,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBAChE,cAAc,GAAG,IAAI,iBAAU,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC;QACF,CAAC;QAED,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAE7B,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,oCAAoC,CAAC,CAAC;QAC5F,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY;YAC7B,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;YACrE,CAAC,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QAE/B,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACpB,GAAG,CAAC,QAAQ,GAAG;oBACd,GAAG,GAAG,CAAC,QAAQ;oBACf,GAAG,QAAQ;iBACX,CAAC;YACH,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AA5ED,sCA4EC"}
@@ -0,0 +1,6 @@
1
+ import { IExecuteFunctions, ILoadOptionsFunctions, ISupplyDataFunctions } from 'n8n-workflow';
2
+ import { Cluster, Collection } from 'couchbase';
3
+ export declare function connectToCouchbase(context: IExecuteFunctions | ISupplyDataFunctions | ILoadOptionsFunctions): Promise<{
4
+ cluster: Cluster;
5
+ collection: Collection;
6
+ }>;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.connectToCouchbase = connectToCouchbase;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const couchbase_1 = require("couchbase");
6
+ let clusterInstance;
7
+ let cachedCredentials = {};
8
+ async function connectToCouchbase(context) {
9
+ const credentials = await context.getCredentials('couchbaseApi');
10
+ const connectionString = credentials.couchbaseConnectionString;
11
+ const username = credentials.couchbaseUsername;
12
+ const password = credentials.couchbasePassword;
13
+ const credentialsChanged = !clusterInstance ||
14
+ connectionString !== cachedCredentials.connectionString ||
15
+ username !== cachedCredentials.username ||
16
+ password !== cachedCredentials.password;
17
+ if (credentialsChanged) {
18
+ if (clusterInstance) {
19
+ try {
20
+ context.logger.info('Credentials changed, closing existing Couchbase connection...');
21
+ await clusterInstance.close();
22
+ context.logger.info('Previous Couchbase connection closed.');
23
+ }
24
+ catch (closeError) {
25
+ context.logger.warn(`Error closing previous connection: ${closeError.message}`);
26
+ }
27
+ finally {
28
+ clusterInstance = undefined;
29
+ }
30
+ }
31
+ try {
32
+ context.logger.info('Opening a new Couchbase connection...');
33
+ clusterInstance = await (0, couchbase_1.connect)(connectionString, {
34
+ username: username,
35
+ password: password,
36
+ timeouts: {
37
+ connectTimeout: 10000,
38
+ },
39
+ });
40
+ cachedCredentials = {
41
+ connectionString,
42
+ username,
43
+ password,
44
+ };
45
+ context.logger.info('Couchbase connection established.');
46
+ }
47
+ catch (error) {
48
+ clusterInstance = undefined;
49
+ cachedCredentials = {};
50
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Could not connect to database: ${error.message}.`, {
51
+ description: makeConnectionErrorDescription(error),
52
+ });
53
+ }
54
+ }
55
+ const selectedBucket = context.getNodeParameter('couchbaseBucket', 0, '');
56
+ const selectedScope = context.getNodeParameter('couchbaseScope', 0, '');
57
+ const selectedCollection = context.getNodeParameter('couchbaseCollection', 0, '');
58
+ let collection = {};
59
+ try {
60
+ if (clusterInstance &&
61
+ typeof selectedBucket.value === 'string' &&
62
+ typeof selectedScope.value === 'string' &&
63
+ typeof selectedCollection.value === 'string') {
64
+ const bucket = clusterInstance.bucket(selectedBucket.value);
65
+ collection = bucket.scope(selectedScope.value).collection(selectedCollection.value);
66
+ }
67
+ else if (!clusterInstance) {
68
+ throw new Error('Cluster connection is not available.');
69
+ }
70
+ }
71
+ catch (error) {
72
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Could not access collection: ${error.message}.`, {
73
+ description: 'Please ensure the selected bucket, scope, and collection exist and the credentials have permissions.',
74
+ });
75
+ }
76
+ return { cluster: clusterInstance, collection };
77
+ }
78
+ function makeConnectionErrorDescription(error) {
79
+ switch (true) {
80
+ case error instanceof couchbase_1.UnambiguousTimeoutError:
81
+ return 'Please ensure the database exists, is turned on, and the connection string is correct.';
82
+ case error instanceof couchbase_1.AuthenticationFailureError:
83
+ return 'Please check your username and password.';
84
+ default:
85
+ return '';
86
+ }
87
+ }
88
+ //# sourceMappingURL=connectToCouchbase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectToCouchbase.js","sourceRoot":"","sources":["../../../utils/couchbase/connectToCouchbase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { ILoadOptionsFunctions } from 'n8n-workflow';
2
+ export declare function populateCouchbaseBucketRL(this: ILoadOptionsFunctions): Promise<{
3
+ results: {
4
+ name: string;
5
+ value: string;
6
+ }[];
7
+ }>;
8
+ export declare function populateCouchbaseScopeRL(this: ILoadOptionsFunctions): Promise<{
9
+ results: {
10
+ name: string;
11
+ value: string;
12
+ }[];
13
+ }>;
14
+ export declare function populateCouchbaseCollectionRL(this: ILoadOptionsFunctions): Promise<{
15
+ results: {
16
+ name: string;
17
+ value: string;
18
+ }[];
19
+ }>;
20
+ export declare function populateCouchbaseSearchIndexesRL(this: ILoadOptionsFunctions): Promise<{
21
+ results: {
22
+ name: string;
23
+ value: string;
24
+ }[];
25
+ }>;
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.populateCouchbaseBucketRL = populateCouchbaseBucketRL;
4
+ exports.populateCouchbaseScopeRL = populateCouchbaseScopeRL;
5
+ exports.populateCouchbaseCollectionRL = populateCouchbaseCollectionRL;
6
+ exports.populateCouchbaseSearchIndexesRL = populateCouchbaseSearchIndexesRL;
7
+ const n8n_workflow_1 = require("n8n-workflow");
8
+ const connectToCouchbase_1 = require("./connectToCouchbase");
9
+ const couchbase_1 = require("couchbase");
10
+ async function populateCouchbaseBucketRL() {
11
+ const { cluster } = await (0, connectToCouchbase_1.connectToCouchbase)(this);
12
+ try {
13
+ const buckets = await cluster.buckets().getAllBuckets();
14
+ const allBuckets = [];
15
+ for (const bucket of buckets) {
16
+ allBuckets.push({
17
+ name: `${bucket.name}`,
18
+ value: `${bucket.name}`,
19
+ });
20
+ }
21
+ return { results: allBuckets };
22
+ }
23
+ catch (error) {
24
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Error: ${error.message}`);
25
+ }
26
+ }
27
+ async function populateCouchbaseScopeRL() {
28
+ const selectedBucket = this.getNodeParameter('couchbaseBucket');
29
+ if (!selectedBucket || !selectedBucket.value) {
30
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Please select a bucket.`);
31
+ }
32
+ const { cluster } = await (0, connectToCouchbase_1.connectToCouchbase)(this);
33
+ try {
34
+ const bucket = cluster.bucket(selectedBucket.value);
35
+ const bucketManager = bucket.collections();
36
+ const scopes = await bucketManager.getAllScopes();
37
+ const allScopes = [];
38
+ for (const scope of scopes) {
39
+ allScopes.push({
40
+ name: `${scope.name}`,
41
+ value: `${scope.name}`,
42
+ });
43
+ }
44
+ return { results: allScopes };
45
+ }
46
+ catch (error) {
47
+ if (error instanceof couchbase_1.BucketNotFoundError) {
48
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Please select a bucket.`);
49
+ }
50
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Error: ${error.message}`);
51
+ }
52
+ }
53
+ async function populateCouchbaseCollectionRL() {
54
+ const selectedBucket = this.getNodeParameter('couchbaseBucket');
55
+ const selectedScope = this.getNodeParameter('couchbaseScope');
56
+ if (!selectedBucket || !selectedBucket.value || !selectedScope || !selectedScope.value) {
57
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Please select a bucket and scope.');
58
+ }
59
+ const { cluster } = await (0, connectToCouchbase_1.connectToCouchbase)(this);
60
+ try {
61
+ const bucketName = selectedBucket.value;
62
+ const bucket = cluster.bucket(bucketName);
63
+ const bucketManager = bucket.collections();
64
+ const scopes = await bucketManager.getAllScopes();
65
+ const filteredScopes = scopes.filter((scope) => scope.name === selectedScope.value);
66
+ if (filteredScopes.length === 0) {
67
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Scope "${selectedScope.value}" not found in bucket "${bucketName}".`);
68
+ }
69
+ const allCollections = [];
70
+ for (const scope of filteredScopes) {
71
+ for (const collection of scope.collections) {
72
+ allCollections.push({
73
+ name: `${collection.name}`,
74
+ value: `${collection.name}`,
75
+ });
76
+ }
77
+ }
78
+ return { results: allCollections };
79
+ }
80
+ catch (error) {
81
+ if (error instanceof couchbase_1.BucketNotFoundError) {
82
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Please select a bucket and scope.`);
83
+ }
84
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Error: ${error.message}`);
85
+ }
86
+ }
87
+ async function populateCouchbaseSearchIndexesRL() {
88
+ const { cluster } = await (0, connectToCouchbase_1.connectToCouchbase)(this);
89
+ try {
90
+ const allIndexes = [];
91
+ const useScopedIndex = this.getNodeParameter('useScopedIndex', false);
92
+ if (useScopedIndex) {
93
+ const selectedBucket = this.getNodeParameter('couchbaseBucket');
94
+ const selectedScope = this.getNodeParameter('couchbaseScope');
95
+ const scope = cluster
96
+ .bucket(selectedBucket.value)
97
+ .scope(selectedScope.value);
98
+ const scopedSearchIndexes = await scope.searchIndexes().getAllIndexes();
99
+ for (const idx of scopedSearchIndexes) {
100
+ allIndexes.push({
101
+ name: `${idx.name}`,
102
+ value: `${idx.name}`,
103
+ });
104
+ }
105
+ }
106
+ else {
107
+ const searchIndexes = await cluster.searchIndexes().getAllIndexes();
108
+ for (const idx of searchIndexes) {
109
+ allIndexes.push({
110
+ name: `${idx.name}`,
111
+ value: `${idx.name}`,
112
+ });
113
+ }
114
+ }
115
+ return { results: allIndexes };
116
+ }
117
+ catch (error) {
118
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Error: ${error.message}`);
119
+ }
120
+ }
121
+ //# sourceMappingURL=populateCouchbaseRLs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"populateCouchbaseRLs.js","sourceRoot":"","sources":["../../../utils/couchbase/populateCouchbaseRLs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { IExecuteFunctions, ISupplyDataFunctions } from 'n8n-workflow';
2
+ export declare function validateBucketScopeCollection(context: IExecuteFunctions | ISupplyDataFunctions, bucketName: string, scopeName: string, collectionName: string): Promise<void>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateBucketScopeCollection = validateBucketScopeCollection;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const connectToCouchbase_1 = require("./connectToCouchbase");
6
+ const couchbase_1 = require("couchbase");
7
+ async function validateBucketScopeCollection(context, bucketName, scopeName, collectionName) {
8
+ if (!bucketName) {
9
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Bucket name is required');
10
+ }
11
+ if (!scopeName) {
12
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Scope name is required');
13
+ }
14
+ if (!collectionName) {
15
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Collection name is required');
16
+ }
17
+ const { cluster } = await (0, connectToCouchbase_1.connectToCouchbase)(context);
18
+ try {
19
+ try {
20
+ const bucket = cluster.bucket(bucketName);
21
+ const bucketManager = bucket.collections();
22
+ const scopes = await bucketManager.getAllScopes();
23
+ const targetScope = scopes.find((scope) => scope.name === scopeName);
24
+ if (!targetScope) {
25
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Scope "${scopeName}" not found in bucket "${bucketName}".`, {
26
+ description: `Please ensure the scope exists in the specified bucket.`,
27
+ });
28
+ }
29
+ const targetCollection = targetScope.collections.find((collection) => collection.name === collectionName);
30
+ if (!targetCollection) {
31
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Collection "${collectionName}" not found in scope "${scopeName}" of bucket "${bucketName}".`, {
32
+ description: `Please ensure the collection exists in the specified scope.`,
33
+ });
34
+ }
35
+ return;
36
+ }
37
+ catch (error) {
38
+ if (error instanceof couchbase_1.BucketNotFoundError) {
39
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Bucket "${bucketName}" not found.`, {
40
+ description: 'Please censure the bucket exists in your Couchbase cluster.',
41
+ });
42
+ }
43
+ throw error;
44
+ }
45
+ }
46
+ catch (error) {
47
+ if (!(error instanceof n8n_workflow_1.NodeOperationError)) {
48
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Error: ${error.message}`);
49
+ }
50
+ throw error;
51
+ }
52
+ }
53
+ //# sourceMappingURL=validateBucketScopeCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateBucketScopeCollection.js","sourceRoot":"","sources":["../../../utils/couchbase/validateBucketScopeCollection.ts"],"names":[],"mappings":";;AAIA,sEAwEC;AA5ED,+CAA2F;AAC3F,6DAA0D;AAC1D,yCAAgD;AAEzC,KAAK,UAAU,6BAA6B,CAClD,OAAiD,EACjD,UAAkB,EAClB,SAAiB,EACjB,cAAsB;IAGtB,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,MAAM,IAAI,iCAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,yBAAyB,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,MAAM,IAAI,iCAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,wBAAwB,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,MAAM,IAAI,iCAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,6BAA6B,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,uCAAkB,EAAC,OAAO,CAAC,CAAC;IAEtD,IAAI,CAAC;QAEJ,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAG3C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,CAAC;YAGlD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YACrE,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,MAAM,IAAI,iCAAkB,CAC3B,OAAO,CAAC,OAAO,EAAE,EACjB,UAAU,SAAS,0BAA0B,UAAU,IAAI,EAC3D;oBACC,WAAW,EAAE,yDAAyD;iBACtE,CACD,CAAC;YACH,CAAC;YAGD,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CACpD,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,CAClD,CAAC;YACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACvB,MAAM,IAAI,iCAAkB,CAC3B,OAAO,CAAC,OAAO,EAAE,EACjB,eAAe,cAAc,yBAAyB,SAAS,gBAAgB,UAAU,IAAI,EAC7F;oBACC,WAAW,EAAE,6DAA6D;iBAC1E,CACD,CAAC;YACH,CAAC;YAGD,OAAO;QACR,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,+BAAmB,EAAE,CAAC;gBAC1C,MAAM,IAAI,iCAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,WAAW,UAAU,cAAc,EAAE;oBACpF,WAAW,EAAE,6DAA6D;iBAC1E,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEhB,IAAI,CAAC,CAAC,KAAK,YAAY,iCAAkB,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,iCAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { BaseChatMessageHistory } from '@langchain/core/chat_history';
2
+ import type { Tool } from '@langchain/core/tools';
3
+ import type { BaseChatMemory } from 'langchain/memory';
4
+ import type { AiEvent, IDataObject, IExecuteFunctions, ISupplyDataFunctions } from 'n8n-workflow';
5
+ export declare function getMetadataFiltersValues(ctx: IExecuteFunctions | ISupplyDataFunctions, itemIndex: number): Record<string, never> | undefined;
6
+ export declare function isBaseChatMemory(obj: unknown): obj is BaseChatMemory;
7
+ export declare function isBaseChatMessageHistory(obj: unknown): obj is BaseChatMessageHistory;
8
+ export declare function isToolsInstance(model: unknown): model is Tool;
9
+ export declare function logAiEvent(executeFunctions: IExecuteFunctions | ISupplyDataFunctions, event: AiEvent, data?: IDataObject): void;
10
+ export declare function escapeSingleCurlyBrackets(text?: string): string | undefined;