n8n-nodes-vntana 0.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.
@@ -0,0 +1,436 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Vntana = void 0;
4
+ const GenericFunctions_1 = require("./GenericFunctions");
5
+ const VntanaDescription_1 = require("./VntanaDescription");
6
+ class Vntana {
7
+ constructor() {
8
+ this.description = {
9
+ displayName: 'VNTANA',
10
+ name: 'vntana',
11
+ icon: 'file:vntana.svg',
12
+ group: ['transform'],
13
+ version: 1,
14
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
15
+ description: 'Interact with VNTANA 3D content management platform',
16
+ defaults: {
17
+ name: 'VNTANA',
18
+ },
19
+ inputs: ['main'],
20
+ outputs: ['main'],
21
+ credentials: [
22
+ {
23
+ name: 'vntanaApi',
24
+ required: true,
25
+ testedBy: 'testVntanaCredentials',
26
+ },
27
+ ],
28
+ properties: [
29
+ VntanaDescription_1.resourceProperty,
30
+ VntanaDescription_1.productOperations,
31
+ VntanaDescription_1.renderOperations,
32
+ VntanaDescription_1.attachmentOperations,
33
+ ...VntanaDescription_1.productSearchFields,
34
+ ...VntanaDescription_1.productDownloadModelFields,
35
+ ...VntanaDescription_1.renderDownloadFields,
36
+ ...VntanaDescription_1.renderUploadFields,
37
+ ...VntanaDescription_1.attachmentUploadFields,
38
+ ],
39
+ };
40
+ this.methods = {
41
+ credentialTest: {
42
+ async testVntanaCredentials(credential) {
43
+ var _a, _b, _c, _d;
44
+ const credentials = credential.data;
45
+ if (!credentials) {
46
+ return {
47
+ status: 'Error',
48
+ message: 'No credentials provided',
49
+ };
50
+ }
51
+ const email = credentials.email;
52
+ const password = credentials.password;
53
+ const organizationUuid = credentials.organizationUuid;
54
+ if (!email || !password || !organizationUuid) {
55
+ return {
56
+ status: 'Error',
57
+ message: 'Email, password, and organization UUID are required',
58
+ };
59
+ }
60
+ const BASE_URL = 'https://api-platform.vntana.com';
61
+ try {
62
+ // Step 1: Login to get initial token
63
+ const loginResponse = await this.helpers.request({
64
+ method: 'POST',
65
+ url: `${BASE_URL}/v1/auth/login`,
66
+ headers: {
67
+ 'Content-Type': 'application/json',
68
+ },
69
+ body: JSON.stringify({ email, password }),
70
+ resolveWithFullResponse: true,
71
+ });
72
+ const loginToken = (_a = loginResponse.headers) === null || _a === void 0 ? void 0 : _a['x-auth-token'];
73
+ if (!loginToken) {
74
+ return {
75
+ status: 'Error',
76
+ message: 'Login failed: No authentication token received. Check your email and password.',
77
+ };
78
+ }
79
+ // Step 2: Refresh token with organization UUID
80
+ const refreshResponse = await this.helpers.request({
81
+ method: 'POST',
82
+ url: `${BASE_URL}/v1/auth/refresh-token`,
83
+ headers: {
84
+ 'X-AUTH-TOKEN': `Bearer ${loginToken}`,
85
+ 'organizationUuid': organizationUuid,
86
+ },
87
+ resolveWithFullResponse: true,
88
+ });
89
+ const refreshToken = (_b = refreshResponse.headers) === null || _b === void 0 ? void 0 : _b['x-auth-token'];
90
+ if (!refreshToken) {
91
+ return {
92
+ status: 'Error',
93
+ message: 'Token refresh failed: Could not get organization token. Check your organization UUID.',
94
+ };
95
+ }
96
+ // Step 3: Verify the token works by fetching organizations
97
+ const verifyResponse = await this.helpers.request({
98
+ method: 'GET',
99
+ url: `${BASE_URL}/v1/organizations`,
100
+ headers: {
101
+ 'X-AUTH-TOKEN': `Bearer ${refreshToken}`,
102
+ 'Accept': 'application/json',
103
+ },
104
+ json: true,
105
+ });
106
+ if (verifyResponse.success === true) {
107
+ // Organizations endpoint returns { response: { grid: [...] } }
108
+ const orgs = (_c = verifyResponse.response) === null || _c === void 0 ? void 0 : _c.grid;
109
+ const orgName = ((_d = orgs === null || orgs === void 0 ? void 0 : orgs[0]) === null || _d === void 0 ? void 0 : _d.name) || 'Unknown';
110
+ return {
111
+ status: 'OK',
112
+ message: `Successfully connected to VNTANA organization: ${orgName}`,
113
+ };
114
+ }
115
+ return {
116
+ status: 'Error',
117
+ message: 'Authentication succeeded but API verification failed',
118
+ };
119
+ }
120
+ catch (error) {
121
+ const errorMessage = error.message || 'Unknown error';
122
+ if (errorMessage.includes('401') || errorMessage.includes('Unauthorized')) {
123
+ return {
124
+ status: 'Error',
125
+ message: 'Invalid email or password',
126
+ };
127
+ }
128
+ if (errorMessage.includes('403') || errorMessage.includes('Forbidden')) {
129
+ return {
130
+ status: 'Error',
131
+ message: 'Access denied. Check your organization UUID and permissions.',
132
+ };
133
+ }
134
+ return {
135
+ status: 'Error',
136
+ message: `Connection failed: ${errorMessage}`,
137
+ };
138
+ }
139
+ },
140
+ },
141
+ };
142
+ }
143
+ async execute() {
144
+ const items = this.getInputData();
145
+ const returnData = [];
146
+ const resource = this.getNodeParameter('resource', 0);
147
+ const operation = this.getNodeParameter('operation', 0);
148
+ for (let i = 0; i < items.length; i++) {
149
+ try {
150
+ // =================================================================
151
+ // PRODUCT RESOURCE
152
+ // =================================================================
153
+ if (resource === 'product') {
154
+ // -------------------------------------------------------------
155
+ // Product: Search
156
+ // -------------------------------------------------------------
157
+ if (operation === 'search') {
158
+ const clientUuid = await GenericFunctions_1.getClientUuid.call(this, i);
159
+ const returnAll = this.getNodeParameter('returnAll', i);
160
+ const limit = this.getNodeParameter('limit', i, 10);
161
+ const filters = this.getNodeParameter('filters', i, {});
162
+ const credentials = await this.getCredentials('vntanaApi');
163
+ const organizationUuid = credentials.organizationUuid;
164
+ // Query params for endpoint URL
165
+ const qs = {
166
+ clientUuid,
167
+ };
168
+ // Build request body (VNTANA search uses POST with body params)
169
+ const body = {
170
+ organizationUuid,
171
+ sorts: { UPDATED: 'DESC' },
172
+ };
173
+ // Add filters to body
174
+ if (filters.searchTerm) {
175
+ body.searchTerm = filters.searchTerm;
176
+ }
177
+ if (filters.status && filters.status.length > 0) {
178
+ body.status = filters.status;
179
+ }
180
+ if (filters.conversionStatuses && filters.conversionStatuses.length > 0) {
181
+ body.conversionStatuses = filters.conversionStatuses;
182
+ }
183
+ if (filters.name) {
184
+ body.name = filters.name;
185
+ }
186
+ if (filters.tagsUuids) {
187
+ body.tagsUuids = filters.tagsUuids.split(',').map(s => s.trim());
188
+ }
189
+ let products;
190
+ if (returnAll) {
191
+ products = await GenericFunctions_1.vntanaApiRequestAllItems.call(this, 'POST', '/v1/products/clients/search', body, qs);
192
+ }
193
+ else {
194
+ // VNTANA uses 1-based pagination
195
+ body.page = 1;
196
+ body.size = limit;
197
+ const response = await GenericFunctions_1.vntanaApiRequest.call(this, 'POST', '/v1/products/clients/search', body, qs);
198
+ const searchResponse = response.response;
199
+ products = searchResponse.grid || [];
200
+ }
201
+ for (const product of products) {
202
+ returnData.push({ json: product });
203
+ }
204
+ }
205
+ // -------------------------------------------------------------
206
+ // Product: Download Model
207
+ // -------------------------------------------------------------
208
+ if (operation === 'downloadModel') {
209
+ const productUuid = this.getNodeParameter('productUuid', i);
210
+ const clientUuid = await GenericFunctions_1.getClientUuid.call(this, i);
211
+ const conversionFormat = this.getNodeParameter('conversionFormat', i);
212
+ const binaryPropertyName = this.getNodeParameter('binaryPropertyName', i, 'data');
213
+ const qs = {
214
+ clientUuid,
215
+ conversionFormat,
216
+ };
217
+ const binaryData = await GenericFunctions_1.vntanaApiRequestBinary.call(this, 'GET', `/v1/products/${productUuid}/download/model`, qs);
218
+ const fileName = `${productUuid}.${conversionFormat.toLowerCase()}`;
219
+ const mimeType = getMimeType(conversionFormat);
220
+ const binary = await this.helpers.prepareBinaryData(binaryData, fileName, mimeType);
221
+ returnData.push({
222
+ json: {
223
+ productUuid,
224
+ format: conversionFormat,
225
+ fileName,
226
+ fileSize: binaryData.length,
227
+ },
228
+ binary: {
229
+ [binaryPropertyName]: binary,
230
+ },
231
+ });
232
+ }
233
+ }
234
+ // =================================================================
235
+ // RENDER RESOURCE
236
+ // =================================================================
237
+ if (resource === 'render') {
238
+ // -------------------------------------------------------------
239
+ // Render: Download
240
+ // -------------------------------------------------------------
241
+ if (operation === 'download') {
242
+ const productUuid = this.getNodeParameter('productUuid', i);
243
+ const clientUuid = await GenericFunctions_1.getClientUuid.call(this, i);
244
+ const entityType = this.getNodeParameter('entityType', i);
245
+ const downloadAll = this.getNodeParameter('downloadAll', i);
246
+ const binaryPropertyName = this.getNodeParameter('binaryPropertyName', i, 'data');
247
+ // Step 1: Search for attachments (VNTANA uses 1-based pagination)
248
+ const searchBody = {
249
+ page: 1,
250
+ size: downloadAll ? 100 : 1,
251
+ productUuid,
252
+ sortDirection: 'ASC',
253
+ };
254
+ const searchResponse = await GenericFunctions_1.vntanaApiRequest.call(this, 'POST', '/v1/attachments/search', searchBody);
255
+ const attachmentsResponse = searchResponse.response;
256
+ const attachments = (attachmentsResponse.grid || []).filter((att) => att.entityType === entityType);
257
+ if (attachments.length === 0) {
258
+ returnData.push({
259
+ json: {
260
+ success: false,
261
+ message: `No ${entityType.toLowerCase()} found for product ${productUuid}`,
262
+ },
263
+ });
264
+ continue;
265
+ }
266
+ // Step 2: Download each attachment
267
+ const attachmentsToDownload = downloadAll ? attachments : [attachments[0]];
268
+ for (let j = 0; j < attachmentsToDownload.length; j++) {
269
+ const attachment = attachmentsToDownload[j];
270
+ const blobId = attachment.blobId;
271
+ const binaryData = await GenericFunctions_1.vntanaApiRequestBinary.call(this, 'GET', `/v1/comments/images/${blobId}`, { clientUuid });
272
+ const fileName = attachment.name || blobId;
273
+ const mimeType = getMimeTypeFromFileName(fileName);
274
+ const binary = await this.helpers.prepareBinaryData(binaryData, fileName, mimeType);
275
+ const binaryKey = downloadAll ? `${binaryPropertyName}_${j}` : binaryPropertyName;
276
+ returnData.push({
277
+ json: {
278
+ attachmentUuid: attachment.uuid,
279
+ blobId,
280
+ name: fileName,
281
+ entityType: attachment.entityType,
282
+ productUuid,
283
+ fileSize: binaryData.length,
284
+ },
285
+ binary: {
286
+ [binaryKey]: binary,
287
+ },
288
+ });
289
+ }
290
+ }
291
+ // -------------------------------------------------------------
292
+ // Render: Upload
293
+ // -------------------------------------------------------------
294
+ if (operation === 'upload') {
295
+ const productUuid = this.getNodeParameter('productUuid', i);
296
+ const clientUuid = await GenericFunctions_1.getClientUuid.call(this, i);
297
+ const binaryPropertyName = this.getNodeParameter('binaryPropertyName', i);
298
+ const options = this.getNodeParameter('options', i, {});
299
+ // Get binary data from input
300
+ const binaryData = this.helpers.assertBinaryData(i, binaryPropertyName);
301
+ const buffer = await this.helpers.getBinaryDataBuffer(i, binaryPropertyName);
302
+ const fileName = options.fileName || binaryData.fileName || 'upload';
303
+ const contentType = options.contentType || binaryData.mimeType || 'application/octet-stream';
304
+ // Step 1: Get signed URL
305
+ const signUrlBody = {
306
+ clientUuid,
307
+ parentEntityUuid: productUuid,
308
+ parentEntityType: 'PRODUCT',
309
+ storeType: 'RENDER',
310
+ resourceSettings: {
311
+ contentType,
312
+ originalName: fileName,
313
+ originalSize: buffer.length,
314
+ },
315
+ };
316
+ const signUrlResponse = await GenericFunctions_1.vntanaApiRequest.call(this, 'POST', '/v1/storage/upload/clients/resource/sign-url', signUrlBody);
317
+ const signedUrlData = signUrlResponse.response;
318
+ const signedUrl = signedUrlData.location;
319
+ // Step 2: Upload to signed URL
320
+ await GenericFunctions_1.uploadToSignedUrl.call(this, signedUrl, buffer, contentType);
321
+ returnData.push({
322
+ json: {
323
+ success: true,
324
+ productUuid,
325
+ fileName,
326
+ contentType,
327
+ fileSize: buffer.length,
328
+ blobId: signedUrlData.blobId,
329
+ requestUuid: signedUrlData.requestUuid,
330
+ },
331
+ });
332
+ }
333
+ }
334
+ // =================================================================
335
+ // ATTACHMENT RESOURCE
336
+ // =================================================================
337
+ if (resource === 'attachment') {
338
+ // -------------------------------------------------------------
339
+ // Attachment: Upload
340
+ // -------------------------------------------------------------
341
+ if (operation === 'upload') {
342
+ const productUuid = this.getNodeParameter('productUuid', i);
343
+ const clientUuid = await GenericFunctions_1.getClientUuid.call(this, i);
344
+ const binaryPropertyName = this.getNodeParameter('binaryPropertyName', i);
345
+ const options = this.getNodeParameter('options', i, {});
346
+ // Get binary data from input
347
+ const binaryData = this.helpers.assertBinaryData(i, binaryPropertyName);
348
+ const buffer = await this.helpers.getBinaryDataBuffer(i, binaryPropertyName);
349
+ const fileName = options.fileName || binaryData.fileName || 'upload';
350
+ const contentType = options.contentType || binaryData.mimeType || 'application/octet-stream';
351
+ // Step 1: Get signed URL
352
+ const signUrlBody = {
353
+ clientUuid,
354
+ parentEntityUuid: productUuid,
355
+ parentEntityType: 'PRODUCT',
356
+ storeType: 'ATTACHMENT',
357
+ resourceSettings: {
358
+ contentType,
359
+ originalName: fileName,
360
+ originalSize: buffer.length,
361
+ },
362
+ };
363
+ const signUrlResponse = await GenericFunctions_1.vntanaApiRequest.call(this, 'POST', '/v1/storage/upload/clients/resource/sign-url', signUrlBody);
364
+ const signedUrlData = signUrlResponse.response;
365
+ const signedUrl = signedUrlData.location;
366
+ // Step 2: Upload to signed URL
367
+ await GenericFunctions_1.uploadToSignedUrl.call(this, signedUrl, buffer, contentType);
368
+ returnData.push({
369
+ json: {
370
+ success: true,
371
+ productUuid,
372
+ fileName,
373
+ contentType,
374
+ fileSize: buffer.length,
375
+ blobId: signedUrlData.blobId,
376
+ requestUuid: signedUrlData.requestUuid,
377
+ },
378
+ });
379
+ }
380
+ }
381
+ }
382
+ catch (error) {
383
+ if (this.continueOnFail()) {
384
+ returnData.push({
385
+ json: {
386
+ error: error.message,
387
+ },
388
+ pairedItem: { item: i },
389
+ });
390
+ continue;
391
+ }
392
+ throw error;
393
+ }
394
+ }
395
+ return [returnData];
396
+ }
397
+ }
398
+ exports.Vntana = Vntana;
399
+ /**
400
+ * Get MIME type for 3D model formats
401
+ */
402
+ function getMimeType(format) {
403
+ const mimeTypes = {
404
+ GLB: 'model/gltf-binary',
405
+ GLTF: 'model/gltf+json',
406
+ USDZ: 'model/vnd.usdz+zip',
407
+ FBX: 'application/octet-stream',
408
+ OBJ: 'text/plain',
409
+ STEP: 'application/step',
410
+ };
411
+ return mimeTypes[format.toUpperCase()] || 'application/octet-stream';
412
+ }
413
+ /**
414
+ * Get MIME type from file extension
415
+ */
416
+ function getMimeTypeFromFileName(fileName) {
417
+ var _a;
418
+ const ext = ((_a = fileName.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || '';
419
+ const mimeTypes = {
420
+ png: 'image/png',
421
+ jpg: 'image/jpeg',
422
+ jpeg: 'image/jpeg',
423
+ gif: 'image/gif',
424
+ webp: 'image/webp',
425
+ svg: 'image/svg+xml',
426
+ mp4: 'video/mp4',
427
+ mov: 'video/quicktime',
428
+ avi: 'video/x-msvideo',
429
+ pdf: 'application/pdf',
430
+ glb: 'model/gltf-binary',
431
+ gltf: 'model/gltf+json',
432
+ usdz: 'model/vnd.usdz+zip',
433
+ };
434
+ return mimeTypes[ext] || 'application/octet-stream';
435
+ }
436
+ //# sourceMappingURL=Vntana.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Vntana.node.js","sourceRoot":"","sources":["../../../nodes/Vntana/Vntana.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const resourceProperty: INodeProperties;
3
+ export declare const productOperations: INodeProperties;
4
+ export declare const renderOperations: INodeProperties;
5
+ export declare const attachmentOperations: INodeProperties;
6
+ export declare const productSearchFields: INodeProperties[];
7
+ export declare const productDownloadModelFields: INodeProperties[];
8
+ export declare const renderDownloadFields: INodeProperties[];
9
+ export declare const renderUploadFields: INodeProperties[];
10
+ export declare const attachmentUploadFields: INodeProperties[];