n8n-nodes-h2i 1.0.4 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/nodes/DavixH2I/DavixH2I.node.js +563 -290
- package/package.json +1 -1
|
@@ -359,6 +359,7 @@ class DavixH2I {
|
|
|
359
359
|
name: 'pdfPageSize',
|
|
360
360
|
type: 'options',
|
|
361
361
|
default: 'auto',
|
|
362
|
+
description: 'Page size to use when exporting to PDF.',
|
|
362
363
|
options: [
|
|
363
364
|
{ name: 'Auto', value: 'auto' },
|
|
364
365
|
{ name: 'A4', value: 'a4' },
|
|
@@ -371,6 +372,7 @@ class DavixH2I {
|
|
|
371
372
|
name: 'pdfOrientation',
|
|
372
373
|
type: 'options',
|
|
373
374
|
default: 'portrait',
|
|
375
|
+
description: 'Orientation for pages in the exported PDF.',
|
|
374
376
|
options: [
|
|
375
377
|
{ name: 'Portrait', value: 'portrait' },
|
|
376
378
|
{ name: 'Landscape', value: 'landscape' },
|
|
@@ -382,6 +384,7 @@ class DavixH2I {
|
|
|
382
384
|
name: 'pdfMargin',
|
|
383
385
|
type: 'number',
|
|
384
386
|
default: 0,
|
|
387
|
+
description: 'Margin (in pixels) applied to the exported PDF pages.',
|
|
385
388
|
displayOptions: { show: { resource: ['image'], operation: ['pdf'] } },
|
|
386
389
|
},
|
|
387
390
|
{
|
|
@@ -389,6 +392,7 @@ class DavixH2I {
|
|
|
389
392
|
name: 'pdfEmbedFormat',
|
|
390
393
|
type: 'options',
|
|
391
394
|
default: 'png',
|
|
395
|
+
description: 'Image format embedded inside the generated PDF.',
|
|
392
396
|
options: [
|
|
393
397
|
{ name: 'PNG', value: 'png' },
|
|
394
398
|
{ name: 'JPEG', value: 'jpeg' },
|
|
@@ -400,162 +404,217 @@ class DavixH2I {
|
|
|
400
404
|
name: 'pdfJpegQuality',
|
|
401
405
|
type: 'number',
|
|
402
406
|
default: 85,
|
|
407
|
+
description: 'JPEG quality used when embedding images into the PDF.',
|
|
403
408
|
displayOptions: { show: { resource: ['image'], operation: ['pdf'] } },
|
|
404
409
|
},
|
|
405
410
|
{ displayName: 'Include Raw EXIF', name: 'includeRawExif', type: 'boolean', default: false, description: 'Include raw EXIF data when available.', displayOptions: { show: { resource: ['image'], operation: ['metadata'] } } },
|
|
406
411
|
{
|
|
407
|
-
displayName: '
|
|
408
|
-
name: '
|
|
409
|
-
type: '
|
|
412
|
+
displayName: 'Actions',
|
|
413
|
+
name: 'actions',
|
|
414
|
+
type: 'multiOptions',
|
|
415
|
+
default: [],
|
|
416
|
+
description: 'Select one or more actions. Each action reveals its own parameter group below.',
|
|
417
|
+
displayOptions: { show: { resource: ['image'], operation: ['multitask'] } },
|
|
418
|
+
options: [
|
|
419
|
+
{ name: 'Format', value: 'format' },
|
|
420
|
+
{ name: 'Resize', value: 'resize' },
|
|
421
|
+
{ name: 'Crop', value: 'crop' },
|
|
422
|
+
{ name: 'Transform', value: 'transform' },
|
|
423
|
+
{ name: 'Compress', value: 'compress' },
|
|
424
|
+
{ name: 'Enhance', value: 'enhance' },
|
|
425
|
+
{ name: 'Frame', value: 'frame' },
|
|
426
|
+
{ name: 'Background', value: 'background' },
|
|
427
|
+
{ name: 'Watermark', value: 'watermark' },
|
|
428
|
+
],
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
displayName: 'Format',
|
|
432
|
+
name: 'multitaskFormat',
|
|
433
|
+
type: 'options',
|
|
434
|
+
default: 'webp',
|
|
435
|
+
description: 'Output format for the multitask result.',
|
|
436
|
+
options: [
|
|
437
|
+
{ name: 'JPEG', value: 'jpeg' },
|
|
438
|
+
{ name: 'PNG', value: 'png' },
|
|
439
|
+
{ name: 'WebP', value: 'webp' },
|
|
440
|
+
{ name: 'AVIF', value: 'avif' },
|
|
441
|
+
{ name: 'GIF', value: 'gif' },
|
|
442
|
+
{ name: 'SVG', value: 'svg' },
|
|
443
|
+
{ name: 'PDF', value: 'pdf' },
|
|
444
|
+
],
|
|
445
|
+
displayOptions: {
|
|
446
|
+
show: {
|
|
447
|
+
resource: ['image'],
|
|
448
|
+
operation: ['multitask'],
|
|
449
|
+
actions: ['format', 'resize', 'crop', 'transform', 'compress', 'enhance', 'frame', 'background', 'watermark'],
|
|
450
|
+
},
|
|
451
|
+
},
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
displayName: 'Keep Metadata',
|
|
455
|
+
name: 'multitaskKeepMetadata',
|
|
456
|
+
type: 'boolean',
|
|
457
|
+
default: false,
|
|
458
|
+
description: 'Preserve EXIF/metadata for the multitask request when possible.',
|
|
459
|
+
displayOptions: {
|
|
460
|
+
show: {
|
|
461
|
+
resource: ['image'],
|
|
462
|
+
operation: ['multitask'],
|
|
463
|
+
actions: ['format', 'resize', 'crop', 'transform', 'compress', 'enhance', 'frame', 'background', 'watermark'],
|
|
464
|
+
},
|
|
465
|
+
},
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
displayName: 'Action Parameters',
|
|
469
|
+
name: 'imageActionParams',
|
|
470
|
+
type: 'fixedCollection',
|
|
410
471
|
default: {},
|
|
411
|
-
placeholder: 'Add
|
|
412
|
-
description: '
|
|
472
|
+
placeholder: 'Add action parameters',
|
|
473
|
+
description: 'Parameters for each selected action.',
|
|
474
|
+
typeOptions: { multipleValues: false },
|
|
413
475
|
displayOptions: { show: { resource: ['image'], operation: ['multitask'] } },
|
|
414
476
|
options: [
|
|
415
477
|
{
|
|
416
|
-
displayName: 'Format',
|
|
417
478
|
name: 'format',
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
{ name: 'JPEG', value: 'jpeg' },
|
|
423
|
-
{ name: 'PNG', value: 'png' },
|
|
424
|
-
{ name: 'WebP', value: 'webp' },
|
|
425
|
-
{ name: 'AVIF', value: 'avif' },
|
|
426
|
-
{ name: 'GIF', value: 'gif' },
|
|
427
|
-
{ name: 'SVG', value: 'svg' },
|
|
428
|
-
{ name: 'PDF', value: 'pdf' },
|
|
479
|
+
displayName: 'Format',
|
|
480
|
+
values: [
|
|
481
|
+
{ displayName: 'Width', name: 'formatWidthMulti', type: 'number', default: 0, description: 'Resize width in pixels for format.' },
|
|
482
|
+
{ displayName: 'Height', name: 'formatHeightMulti', type: 'number', default: 0, description: 'Resize height in pixels for format.' },
|
|
429
483
|
],
|
|
430
484
|
},
|
|
431
|
-
{ displayName: 'Width', name: 'width', type: 'number', default: 0, description: 'Resize width in pixels.' },
|
|
432
|
-
{ displayName: 'Height', name: 'height', type: 'number', default: 0, description: 'Resize height in pixels.' },
|
|
433
|
-
{ displayName: 'Enlarge', name: 'enlarge', type: 'boolean', default: false, description: 'Allow upscaling when resizing.' },
|
|
434
485
|
{
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
486
|
+
name: 'resize',
|
|
487
|
+
displayName: 'Resize',
|
|
488
|
+
values: [
|
|
489
|
+
{ displayName: 'Width', name: 'resizeWidthMulti', type: 'number', default: 0, description: 'Resize width in pixels.' },
|
|
490
|
+
{ displayName: 'Height', name: 'resizeHeightMulti', type: 'number', default: 0, description: 'Resize height in pixels.' },
|
|
491
|
+
{ displayName: 'Enlarge', name: 'resizeEnlargeMulti', type: 'boolean', default: false, description: 'Allow upscaling when resizing.' },
|
|
492
|
+
{ displayName: 'Normalize Orientation', name: 'resizeNormalizeOrientationMulti', type: 'boolean', default: false, description: 'Auto-rotate based on EXIF orientation.' },
|
|
493
|
+
],
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
name: 'crop',
|
|
497
|
+
displayName: 'Crop',
|
|
498
|
+
values: [
|
|
499
|
+
{ displayName: 'Crop X', name: 'cropXMulti', type: 'number', default: 0, description: 'Left offset for crop.' },
|
|
500
|
+
{ displayName: 'Crop Y', name: 'cropYMulti', type: 'number', default: 0, description: 'Top offset for crop.' },
|
|
501
|
+
{ displayName: 'Crop Width', name: 'cropWidthMulti', type: 'number', default: 0, description: 'Crop width in pixels.' },
|
|
502
|
+
{ displayName: 'Crop Height', name: 'cropHeightMulti', type: 'number', default: 0, description: 'Crop height in pixels.' },
|
|
503
|
+
{ displayName: 'Normalize Orientation', name: 'cropNormalizeOrientationMulti', type: 'boolean', default: false, description: 'Auto-rotate before cropping based on EXIF orientation.' },
|
|
504
|
+
{ displayName: 'Background Color', name: 'cropBackgroundColorMulti', type: 'string', default: '', description: 'Background color used when the crop exceeds bounds.' },
|
|
505
|
+
],
|
|
440
506
|
},
|
|
441
|
-
{ displayName: 'Crop X', name: 'cropX', type: 'number', default: 0, description: 'Left offset for crop.' },
|
|
442
|
-
{ displayName: 'Crop Y', name: 'cropY', type: 'number', default: 0, description: 'Top offset for crop.' },
|
|
443
|
-
{ displayName: 'Crop Width', name: 'cropWidth', type: 'number', default: 0, description: 'Crop width in pixels.' },
|
|
444
|
-
{ displayName: 'Crop Height', name: 'cropHeight', type: 'number', default: 0, description: 'Crop height in pixels.' },
|
|
445
|
-
{ displayName: 'Background Color', name: 'backgroundColor', type: 'string', default: '', description: 'Background color used for fills or padding.' },
|
|
446
|
-
{ displayName: 'Rotate (degrees)', name: 'rotate', type: 'number', default: 0, description: 'Rotate image by degrees.' },
|
|
447
|
-
{ displayName: 'Flip Horizontal', name: 'flipH', type: 'boolean', default: false, description: 'Flip image horizontally.' },
|
|
448
|
-
{ displayName: 'Flip Vertical', name: 'flipV', type: 'boolean', default: false, description: 'Flip image vertically.' },
|
|
449
507
|
{
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
{
|
|
457
|
-
|
|
508
|
+
name: 'transform',
|
|
509
|
+
displayName: 'Transform',
|
|
510
|
+
values: [
|
|
511
|
+
{ displayName: 'Rotate (degrees)', name: 'transformRotateMulti', type: 'number', default: 0, description: 'Rotate image by degrees.' },
|
|
512
|
+
{ displayName: 'Flip Horizontal', name: 'transformFlipHMulti', type: 'boolean', default: false, description: 'Flip image horizontally.' },
|
|
513
|
+
{ displayName: 'Flip Vertical', name: 'transformFlipVMulti', type: 'boolean', default: false, description: 'Flip image vertically.' },
|
|
514
|
+
{
|
|
515
|
+
displayName: 'Color Space',
|
|
516
|
+
name: 'transformColorSpaceMulti',
|
|
517
|
+
type: 'options',
|
|
518
|
+
default: 'srgb',
|
|
519
|
+
description: 'Color space to use for transforms.',
|
|
520
|
+
options: [
|
|
521
|
+
{ name: 'sRGB', value: 'srgb' },
|
|
522
|
+
{ name: 'Display P3', value: 'display-p3' },
|
|
523
|
+
],
|
|
524
|
+
},
|
|
458
525
|
],
|
|
459
526
|
},
|
|
460
|
-
{ displayName: 'Target Size (KB)', name: 'targetSizeKB', type: 'number', default: 0, description: 'Target compressed size in KB.' },
|
|
461
|
-
{ displayName: 'Quality', name: 'quality', type: 'number', default: 82, description: 'Output quality (1-100).' },
|
|
462
|
-
{ displayName: 'Keep Metadata', name: 'keepMetadata', type: 'boolean', default: false, description: 'Keep EXIF/metadata when possible.' },
|
|
463
|
-
{ displayName: 'Blur', name: 'blur', type: 'number', default: 0, description: 'Blur radius.' },
|
|
464
|
-
{ displayName: 'Sharpen', name: 'sharpen', type: 'number', default: 0, description: 'Sharpen amount.' },
|
|
465
|
-
{ displayName: 'Grayscale', name: 'grayscale', type: 'boolean', default: false, description: 'Convert to grayscale.' },
|
|
466
|
-
{ displayName: 'Sepia', name: 'sepia', type: 'boolean', default: false, description: 'Apply sepia tone.' },
|
|
467
|
-
{ displayName: 'Brightness', name: 'brightness', type: 'number', default: 0, description: 'Brightness adjustment (-100 to 100).' },
|
|
468
|
-
{ displayName: 'Contrast', name: 'contrast', type: 'number', default: 0, description: 'Contrast adjustment (-100 to 100).' },
|
|
469
|
-
{ displayName: 'Saturation', name: 'saturation', type: 'number', default: 0, description: 'Saturation adjustment (-100 to 100).' },
|
|
470
|
-
{ displayName: 'Pad', name: 'pad', type: 'number', default: 0, description: 'Uniform padding size.' },
|
|
471
|
-
{ displayName: 'Pad Color', name: 'padColor', type: 'string', default: '', description: 'Padding color (e.g. #ffffff).' },
|
|
472
|
-
{ displayName: 'Pad Top', name: 'padTop', type: 'number', default: 0, description: 'Top padding override.' },
|
|
473
|
-
{ displayName: 'Pad Right', name: 'padRight', type: 'number', default: 0, description: 'Right padding override.' },
|
|
474
|
-
{ displayName: 'Pad Bottom', name: 'padBottom', type: 'number', default: 0, description: 'Bottom padding override.' },
|
|
475
|
-
{ displayName: 'Pad Left', name: 'padLeft', type: 'number', default: 0, description: 'Left padding override.' },
|
|
476
|
-
{ displayName: 'Border Radius', name: 'borderRadius', type: 'number', default: 0, description: 'Rounded corner radius.' },
|
|
477
|
-
{ displayName: 'Border', name: 'border', type: 'number', default: 0, description: 'Border thickness in pixels.' },
|
|
478
|
-
{ displayName: 'Border Color', name: 'borderColor', type: 'string', default: '', description: 'Border color (e.g. #000000).' },
|
|
479
|
-
{ displayName: 'Background Blur', name: 'backgroundBlur', type: 'number', default: 0, description: 'Background blur radius.' },
|
|
480
|
-
{ displayName: 'Watermark Text', name: 'watermarkText', type: 'string', default: '', description: 'Text watermark content.' },
|
|
481
|
-
{ displayName: 'Watermark Font Size', name: 'watermarkFontSize', type: 'number', default: 24, description: 'Font size for text watermark.' },
|
|
482
|
-
{ displayName: 'Watermark Color', name: 'watermarkColor', type: 'string', default: '#000000', description: 'Color for text watermark.' },
|
|
483
|
-
{ displayName: 'Watermark Opacity', name: 'watermarkOpacity', type: 'number', default: 0.35, description: 'Watermark opacity (0-1).' },
|
|
484
527
|
{
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
{
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
528
|
+
name: 'compress',
|
|
529
|
+
displayName: 'Compress',
|
|
530
|
+
values: [
|
|
531
|
+
{ displayName: 'Quality', name: 'compressQualityMulti', type: 'number', default: 82, description: 'Output quality (1-100).' },
|
|
532
|
+
{ displayName: 'Target Size (KB)', name: 'compressTargetSizeKBMulti', type: 'number', default: 0, description: 'Target compressed size in KB.' },
|
|
533
|
+
{ displayName: 'Background Color', name: 'compressBackgroundColorMulti', type: 'string', default: '', description: 'Background color used for compression fills.' },
|
|
534
|
+
{
|
|
535
|
+
displayName: 'Color Space',
|
|
536
|
+
name: 'compressColorSpaceMulti',
|
|
537
|
+
type: 'options',
|
|
538
|
+
default: 'srgb',
|
|
539
|
+
description: 'Color space to use for compression.',
|
|
540
|
+
options: [
|
|
541
|
+
{ name: 'sRGB', value: 'srgb' },
|
|
542
|
+
{ name: 'Display P3', value: 'display-p3' },
|
|
543
|
+
],
|
|
544
|
+
},
|
|
496
545
|
],
|
|
497
546
|
},
|
|
498
|
-
{ displayName: 'Watermark Margin', name: 'watermarkMargin', type: 'number', default: 8, description: 'Margin/padding around watermark.' },
|
|
499
|
-
{ displayName: 'Watermark Scale', name: 'watermarkScale', type: 'number', default: 1, description: 'Scale factor for watermark.' },
|
|
500
547
|
{
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
{ name: '
|
|
508
|
-
{ name: '
|
|
548
|
+
name: 'enhance',
|
|
549
|
+
displayName: 'Enhance',
|
|
550
|
+
values: [
|
|
551
|
+
{ displayName: 'Blur', name: 'enhanceBlurMulti', type: 'number', default: 0, description: 'Blur radius.' },
|
|
552
|
+
{ displayName: 'Sharpen', name: 'enhanceSharpenMulti', type: 'number', default: 0, description: 'Sharpen amount.' },
|
|
553
|
+
{ displayName: 'Grayscale', name: 'enhanceGrayscaleMulti', type: 'boolean', default: false, description: 'Convert to grayscale.' },
|
|
554
|
+
{ displayName: 'Sepia', name: 'enhanceSepiaMulti', type: 'boolean', default: false, description: 'Apply sepia tone.' },
|
|
555
|
+
{ displayName: 'Brightness', name: 'enhanceBrightnessMulti', type: 'number', default: 0, description: 'Brightness adjustment (-100 to 100).' },
|
|
556
|
+
{ displayName: 'Contrast', name: 'enhanceContrastMulti', type: 'number', default: 0, description: 'Contrast adjustment (-100 to 100).' },
|
|
557
|
+
{ displayName: 'Saturation', name: 'enhanceSaturationMulti', type: 'number', default: 0, description: 'Saturation adjustment (-100 to 100).' },
|
|
558
|
+
{ displayName: 'Normalize Orientation', name: 'enhanceNormalizeOrientationMulti', type: 'boolean', default: false, description: 'Auto-rotate based on EXIF orientation before enhancing.' },
|
|
509
559
|
],
|
|
510
560
|
},
|
|
511
561
|
{
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
{ name: '
|
|
519
|
-
{ name: '
|
|
520
|
-
{ name: 'Letter', value: 'letter' },
|
|
562
|
+
name: 'frame',
|
|
563
|
+
displayName: 'Frame',
|
|
564
|
+
values: [
|
|
565
|
+
{ displayName: 'Pad', name: 'framePadMulti', type: 'number', default: 0, description: 'Uniform padding size.' },
|
|
566
|
+
{ displayName: 'Pad Color', name: 'framePadColorMulti', type: 'string', default: '', description: 'Padding color (e.g. #ffffff).' },
|
|
567
|
+
{ displayName: 'Border', name: 'frameBorderMulti', type: 'number', default: 0, description: 'Border thickness in pixels.' },
|
|
568
|
+
{ displayName: 'Border Color', name: 'frameBorderColorMulti', type: 'string', default: '', description: 'Border color (e.g. #000000).' },
|
|
569
|
+
{ displayName: 'Border Radius', name: 'frameBorderRadiusMulti', type: 'number', default: 0, description: 'Rounded corner radius.' },
|
|
521
570
|
],
|
|
522
571
|
},
|
|
523
572
|
{
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
{ name: '
|
|
531
|
-
{ name: 'Landscape', value: 'landscape' },
|
|
573
|
+
name: 'background',
|
|
574
|
+
displayName: 'Background',
|
|
575
|
+
values: [
|
|
576
|
+
{ displayName: 'Background Color', name: 'backgroundColorMulti', type: 'string', default: '', description: 'Background color to apply.' },
|
|
577
|
+
{ displayName: 'Background Blur', name: 'backgroundBlurMulti', type: 'number', default: 0, description: 'Blur background by this radius.' },
|
|
578
|
+
{ displayName: 'Border Radius', name: 'backgroundBorderRadiusMulti', type: 'number', default: 0, description: 'Rounded corner radius.' },
|
|
579
|
+
{ displayName: 'Pad Color', name: 'backgroundPadColorMulti', type: 'string', default: '', description: 'Padding color for background.' },
|
|
532
580
|
],
|
|
533
581
|
},
|
|
534
|
-
{ displayName: 'PDF Margin', name: 'pdfMargin', type: 'number', default: 0, description: 'Page margin for PDF output.' },
|
|
535
582
|
{
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
583
|
+
name: 'watermark',
|
|
584
|
+
displayName: 'Watermark',
|
|
585
|
+
values: [
|
|
586
|
+
{ displayName: 'Watermark Text', name: 'watermarkTextMulti', type: 'string', default: '', description: 'Text watermark content.' },
|
|
587
|
+
{ displayName: 'Watermark Opacity', name: 'watermarkOpacityMulti', type: 'number', default: 0.35, description: 'Watermark opacity (0-1).' },
|
|
588
|
+
{
|
|
589
|
+
displayName: 'Watermark Position',
|
|
590
|
+
name: 'watermarkPositionMulti',
|
|
591
|
+
type: 'options',
|
|
592
|
+
default: 'center',
|
|
593
|
+
description: 'Placement for watermark.',
|
|
594
|
+
options: [
|
|
595
|
+
{ name: 'Center', value: 'center' },
|
|
596
|
+
{ name: 'Top Left', value: 'top-left' },
|
|
597
|
+
{ name: 'Top Right', value: 'top-right' },
|
|
598
|
+
{ name: 'Bottom Left', value: 'bottom-left' },
|
|
599
|
+
{ name: 'Bottom Right', value: 'bottom-right' },
|
|
600
|
+
],
|
|
601
|
+
},
|
|
602
|
+
{ displayName: 'Watermark Margin', name: 'watermarkMarginMulti', type: 'number', default: 8, description: 'Margin/padding around watermark.' },
|
|
603
|
+
{ displayName: 'Watermark Scale', name: 'watermarkScaleMulti', type: 'number', default: 1, description: 'Scale factor for watermark.' },
|
|
604
|
+
{ displayName: 'Watermark Color', name: 'watermarkColorMulti', type: 'string', default: '#000000', description: 'Color for text watermark.' },
|
|
605
|
+
{ displayName: 'Watermark Font Size', name: 'watermarkFontSizeMulti', type: 'number', default: 24, description: 'Font size for text watermark.' },
|
|
606
|
+
{
|
|
607
|
+
displayName: 'Watermark Image Binary Property',
|
|
608
|
+
name: 'watermarkImageBinaryProperty',
|
|
609
|
+
type: 'string',
|
|
610
|
+
default: '',
|
|
611
|
+
placeholder: 'watermarkImage',
|
|
612
|
+
description: 'Binary property containing an image watermark (optional).',
|
|
613
|
+
},
|
|
544
614
|
],
|
|
545
615
|
},
|
|
546
|
-
{ displayName: 'PDF JPEG Quality', name: 'pdfJpegQuality', type: 'number', default: 85, description: 'JPEG quality for PDF embedding.' },
|
|
547
|
-
{ displayName: 'Include Raw EXIF', name: 'includeRawExif', type: 'boolean', default: false, description: 'Include raw EXIF data when available.' },
|
|
548
616
|
],
|
|
549
617
|
},
|
|
550
|
-
{
|
|
551
|
-
displayName: 'Watermark Image Binary Property',
|
|
552
|
-
name: 'watermarkBinaryProperty',
|
|
553
|
-
type: 'string',
|
|
554
|
-
default: '',
|
|
555
|
-
placeholder: 'watermarkImage',
|
|
556
|
-
description: 'Binary property containing an image watermark (used if watermark options are set).',
|
|
557
|
-
displayOptions: { show: { resource: ['image'], operation: ['multitask'] } },
|
|
558
|
-
},
|
|
559
618
|
{
|
|
560
619
|
displayName: 'Download Result(s) as Binary',
|
|
561
620
|
name: 'imageDownloadBinary',
|
|
@@ -773,67 +832,251 @@ class DavixH2I {
|
|
|
773
832
|
displayOptions: { show: { resource: ['tools'], operation: ['multitask'] } },
|
|
774
833
|
},
|
|
775
834
|
{
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
835
|
+
// Single-tool parameters grouped to keep property keys unique
|
|
836
|
+
displayName: 'Tool Parameters (Single)',
|
|
837
|
+
name: 'toolParametersSingle',
|
|
838
|
+
type: 'fixedCollection',
|
|
779
839
|
default: {},
|
|
780
|
-
placeholder: 'Add
|
|
781
|
-
description: '
|
|
840
|
+
placeholder: 'Add tool parameters',
|
|
841
|
+
description: 'Parameters for the selected tool.',
|
|
842
|
+
typeOptions: { multipleValues: false },
|
|
782
843
|
displayOptions: { show: { resource: ['tools'], operation: ['single'] } },
|
|
783
844
|
options: [
|
|
784
|
-
{ displayName: 'Include Raw EXIF', name: 'includeRawExif', type: 'boolean', default: false, description: 'Include raw EXIF data (metadata tool only).' },
|
|
785
|
-
{ displayName: 'Palette Size', name: 'paletteSize', type: 'number', default: 5, description: 'Number of colors to extract (palette tool).' },
|
|
786
845
|
{
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
type: '
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
846
|
+
name: 'metadata',
|
|
847
|
+
displayName: 'Metadata',
|
|
848
|
+
values: [{ displayName: 'Include Raw EXIF', name: 'metadataIncludeRawExifSingle', type: 'boolean', default: false, description: 'Include raw EXIF data when available.' }],
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
name: 'palette',
|
|
852
|
+
displayName: 'Palette',
|
|
853
|
+
values: [{ displayName: 'Palette Size', name: 'paletteSizeSingle', type: 'number', default: 5, description: 'Number of colors to extract.' }],
|
|
854
|
+
},
|
|
855
|
+
{
|
|
856
|
+
name: 'hash',
|
|
857
|
+
displayName: 'Hash',
|
|
858
|
+
values: [
|
|
859
|
+
{
|
|
860
|
+
displayName: 'Hash Type',
|
|
861
|
+
name: 'hashTypeSingle',
|
|
862
|
+
type: 'options',
|
|
863
|
+
default: 'phash',
|
|
864
|
+
description: 'Hash algorithm to compute.',
|
|
865
|
+
options: [
|
|
866
|
+
{ name: 'pHash', value: 'phash' },
|
|
867
|
+
{ name: 'MD5', value: 'md5' },
|
|
868
|
+
{ name: 'SHA1', value: 'sha1' },
|
|
869
|
+
],
|
|
870
|
+
},
|
|
871
|
+
],
|
|
872
|
+
},
|
|
873
|
+
{
|
|
874
|
+
name: 'similarity',
|
|
875
|
+
displayName: 'Similarity',
|
|
876
|
+
values: [
|
|
877
|
+
{ displayName: 'Similarity Mode', name: 'similarityModeSingle', type: 'string', default: '', description: 'Similarity mode.' },
|
|
878
|
+
{ displayName: 'Similarity Threshold', name: 'similarityThresholdSingle', type: 'number', default: 0, description: 'Similarity threshold.' },
|
|
879
|
+
],
|
|
880
|
+
},
|
|
881
|
+
{
|
|
882
|
+
name: 'quality',
|
|
883
|
+
displayName: 'Quality',
|
|
884
|
+
values: [{ displayName: 'Quality Sample', name: 'qualitySampleSingle', type: 'number', default: 0, description: 'Sample size for quality analysis.' }],
|
|
885
|
+
},
|
|
886
|
+
{
|
|
887
|
+
name: 'transparency',
|
|
888
|
+
displayName: 'Transparency',
|
|
889
|
+
values: [{ displayName: 'Transparency Sample', name: 'transparencySampleSingle', type: 'number', default: 0, description: 'Sample size for transparency analysis.' }],
|
|
890
|
+
},
|
|
891
|
+
{
|
|
892
|
+
name: 'efficiency',
|
|
893
|
+
displayName: 'Efficiency',
|
|
894
|
+
values: [
|
|
895
|
+
{ displayName: 'Efficiency Format', name: 'efficiencyFormatSingle', type: 'string', default: '', description: 'Output format for efficiency tool.' },
|
|
896
|
+
{ displayName: 'Efficiency Quality', name: 'efficiencyQualitySingle', type: 'number', default: 0, description: 'Quality setting for efficiency tool.' },
|
|
796
897
|
],
|
|
797
898
|
},
|
|
798
|
-
{ displayName: 'Similarity Mode', name: 'similarityMode', type: 'string', default: '', description: 'Similarity mode (similarity tool).' },
|
|
799
|
-
{ displayName: 'Similarity Threshold', name: 'similarityThreshold', type: 'number', default: 0, description: 'Similarity threshold (similarity tool).' },
|
|
800
|
-
{ displayName: 'Quality Sample', name: 'qualitySample', type: 'number', default: 0, description: 'Sample size for quality analysis (quality tool).' },
|
|
801
|
-
{ displayName: 'Transparency Sample', name: 'transparencySample', type: 'number', default: 0, description: 'Sample size for transparency analysis (transparency tool).' },
|
|
802
|
-
{ displayName: 'Efficiency Format', name: 'efficiencyFormat', type: 'string', default: '', description: 'Output format for efficiency tool.' },
|
|
803
|
-
{ displayName: 'Efficiency Quality', name: 'efficiencyQuality', type: 'number', default: 0, description: 'Quality setting for efficiency tool.' },
|
|
804
899
|
],
|
|
805
900
|
},
|
|
806
901
|
{
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
902
|
+
// Multitask tool parameters grouped to keep property keys unique
|
|
903
|
+
displayName: 'Tool Parameters (Multitask)',
|
|
904
|
+
name: 'toolParametersMulti',
|
|
905
|
+
type: 'fixedCollection',
|
|
810
906
|
default: {},
|
|
811
|
-
placeholder: 'Add
|
|
812
|
-
description: '
|
|
907
|
+
placeholder: 'Add tool parameters',
|
|
908
|
+
description: 'Parameters for selected tools in multitask.',
|
|
909
|
+
typeOptions: { multipleValues: false },
|
|
813
910
|
displayOptions: { show: { resource: ['tools'], operation: ['multitask'] } },
|
|
814
911
|
options: [
|
|
815
|
-
{ displayName: 'Include Raw EXIF', name: 'includeRawExif', type: 'boolean', default: false, description: 'Include raw EXIF data (metadata tool).' },
|
|
816
|
-
{ displayName: 'Palette Size', name: 'paletteSize', type: 'number', default: 5, description: 'Number of colors to extract (palette tool).' },
|
|
817
912
|
{
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
type: '
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
913
|
+
name: 'metadata',
|
|
914
|
+
displayName: 'Metadata',
|
|
915
|
+
values: [{ displayName: 'Include Raw EXIF', name: 'metadataIncludeRawExifMulti', type: 'boolean', default: false, description: 'Include raw EXIF data when available.' }],
|
|
916
|
+
},
|
|
917
|
+
{
|
|
918
|
+
name: 'palette',
|
|
919
|
+
displayName: 'Palette',
|
|
920
|
+
values: [{ displayName: 'Palette Size', name: 'paletteSizeMulti', type: 'number', default: 5, description: 'Number of colors to extract.' }],
|
|
921
|
+
},
|
|
922
|
+
{
|
|
923
|
+
name: 'hash',
|
|
924
|
+
displayName: 'Hash',
|
|
925
|
+
values: [
|
|
926
|
+
{
|
|
927
|
+
displayName: 'Hash Type',
|
|
928
|
+
name: 'hashTypeMulti',
|
|
929
|
+
type: 'options',
|
|
930
|
+
default: 'phash',
|
|
931
|
+
description: 'Hash algorithm to compute.',
|
|
932
|
+
options: [
|
|
933
|
+
{ name: 'pHash', value: 'phash' },
|
|
934
|
+
{ name: 'MD5', value: 'md5' },
|
|
935
|
+
{ name: 'SHA1', value: 'sha1' },
|
|
936
|
+
],
|
|
937
|
+
},
|
|
938
|
+
],
|
|
939
|
+
},
|
|
940
|
+
{
|
|
941
|
+
name: 'similarity',
|
|
942
|
+
displayName: 'Similarity',
|
|
943
|
+
values: [
|
|
944
|
+
{ displayName: 'Similarity Mode', name: 'similarityModeMulti', type: 'string', default: '', description: 'Similarity mode.' },
|
|
945
|
+
{ displayName: 'Similarity Threshold', name: 'similarityThresholdMulti', type: 'number', default: 0, description: 'Similarity threshold.' },
|
|
946
|
+
],
|
|
947
|
+
},
|
|
948
|
+
{
|
|
949
|
+
name: 'quality',
|
|
950
|
+
displayName: 'Quality',
|
|
951
|
+
values: [{ displayName: 'Quality Sample', name: 'qualitySampleMulti', type: 'number', default: 0, description: 'Sample size for quality analysis.' }],
|
|
952
|
+
},
|
|
953
|
+
{
|
|
954
|
+
name: 'transparency',
|
|
955
|
+
displayName: 'Transparency',
|
|
956
|
+
values: [{ displayName: 'Transparency Sample', name: 'transparencySampleMulti', type: 'number', default: 0, description: 'Sample size for transparency analysis.' }],
|
|
957
|
+
},
|
|
958
|
+
{
|
|
959
|
+
name: 'efficiency',
|
|
960
|
+
displayName: 'Efficiency',
|
|
961
|
+
values: [
|
|
962
|
+
{ displayName: 'Efficiency Format', name: 'efficiencyFormatMulti', type: 'string', default: '', description: 'Output format for efficiency tool.' },
|
|
963
|
+
{ displayName: 'Efficiency Quality', name: 'efficiencyQualityMulti', type: 'number', default: 0, description: 'Quality setting for efficiency tool.' },
|
|
964
|
+
],
|
|
965
|
+
},
|
|
966
|
+
],
|
|
967
|
+
},
|
|
968
|
+
{
|
|
969
|
+
displayName: 'Similarity Parameters (Multitask)',
|
|
970
|
+
name: 'similarityParametersMulti',
|
|
971
|
+
type: 'fixedCollection',
|
|
972
|
+
default: {},
|
|
973
|
+
placeholder: 'Add similarity parameters',
|
|
974
|
+
description: 'Similarity tool options for multitask.',
|
|
975
|
+
typeOptions: { multipleValues: false },
|
|
976
|
+
displayOptions: { show: { resource: ['tools'], operation: ['multitask'], tools: ['similarity'] } },
|
|
977
|
+
options: [
|
|
978
|
+
{
|
|
979
|
+
name: 'parameters',
|
|
980
|
+
displayName: 'Parameters',
|
|
981
|
+
values: [
|
|
982
|
+
{ displayName: 'Similarity Mode', name: 'similarityMode', type: 'string', default: '', description: 'Similarity mode.' },
|
|
983
|
+
{ displayName: 'Similarity Threshold', name: 'similarityThreshold', type: 'number', default: 0, description: 'Similarity threshold.' },
|
|
827
984
|
],
|
|
828
985
|
},
|
|
829
|
-
{ displayName: 'Similarity Mode', name: 'similarityMode', type: 'string', default: '', description: 'Similarity mode (similarity tool).' },
|
|
830
|
-
{ displayName: 'Similarity Threshold', name: 'similarityThreshold', type: 'number', default: 0, description: 'Similarity threshold (similarity tool).' },
|
|
831
|
-
{ displayName: 'Quality Sample', name: 'qualitySample', type: 'number', default: 0, description: 'Sample size for quality analysis (quality tool).' },
|
|
832
|
-
{ displayName: 'Transparency Sample', name: 'transparencySample', type: 'number', default: 0, description: 'Sample size for transparency analysis (transparency tool).' },
|
|
833
|
-
{ displayName: 'Efficiency Format', name: 'efficiencyFormat', type: 'string', default: '', description: 'Output format for efficiency tool.' },
|
|
834
|
-
{ displayName: 'Efficiency Quality', name: 'efficiencyQuality', type: 'number', default: 0, description: 'Quality setting for efficiency tool.' },
|
|
835
986
|
],
|
|
836
987
|
},
|
|
988
|
+
{
|
|
989
|
+
displayName: 'Quality Parameters (Multitask)',
|
|
990
|
+
name: 'qualityParametersMulti',
|
|
991
|
+
type: 'fixedCollection',
|
|
992
|
+
default: {},
|
|
993
|
+
placeholder: 'Add quality parameters',
|
|
994
|
+
description: 'Quality tool options for multitask.',
|
|
995
|
+
typeOptions: { multipleValues: false },
|
|
996
|
+
displayOptions: { show: { resource: ['tools'], operation: ['multitask'], tools: ['quality'] } },
|
|
997
|
+
options: [
|
|
998
|
+
{
|
|
999
|
+
name: 'parameters',
|
|
1000
|
+
displayName: 'Parameters',
|
|
1001
|
+
values: [{ displayName: 'Quality Sample', name: 'qualitySample', type: 'number', default: 0, description: 'Sample size for quality analysis.' }],
|
|
1002
|
+
},
|
|
1003
|
+
],
|
|
1004
|
+
},
|
|
1005
|
+
{
|
|
1006
|
+
displayName: 'Transparency Parameters (Multitask)',
|
|
1007
|
+
name: 'transparencyParametersMulti',
|
|
1008
|
+
type: 'fixedCollection',
|
|
1009
|
+
default: {},
|
|
1010
|
+
placeholder: 'Add transparency parameters',
|
|
1011
|
+
description: 'Transparency tool options for multitask.',
|
|
1012
|
+
typeOptions: { multipleValues: false },
|
|
1013
|
+
displayOptions: { show: { resource: ['tools'], operation: ['multitask'], tools: ['transparency'] } },
|
|
1014
|
+
options: [
|
|
1015
|
+
{
|
|
1016
|
+
name: 'parameters',
|
|
1017
|
+
displayName: 'Parameters',
|
|
1018
|
+
values: [{ displayName: 'Transparency Sample', name: 'transparencySample', type: 'number', default: 0, description: 'Sample size for transparency analysis.' }],
|
|
1019
|
+
},
|
|
1020
|
+
],
|
|
1021
|
+
},
|
|
1022
|
+
{
|
|
1023
|
+
displayName: 'Efficiency Parameters (Multitask)',
|
|
1024
|
+
name: 'efficiencyParametersMulti',
|
|
1025
|
+
type: 'fixedCollection',
|
|
1026
|
+
default: {},
|
|
1027
|
+
placeholder: 'Add efficiency parameters',
|
|
1028
|
+
description: 'Efficiency tool options for multitask.',
|
|
1029
|
+
typeOptions: { multipleValues: false },
|
|
1030
|
+
displayOptions: { show: { resource: ['tools'], operation: ['multitask'], tools: ['efficiency'] } },
|
|
1031
|
+
options: [
|
|
1032
|
+
{
|
|
1033
|
+
name: 'parameters',
|
|
1034
|
+
displayName: 'Parameters',
|
|
1035
|
+
values: [
|
|
1036
|
+
{ displayName: 'Efficiency Format', name: 'efficiencyFormat', type: 'string', default: '', description: 'Output format for efficiency tool.' },
|
|
1037
|
+
{ displayName: 'Efficiency Quality', name: 'efficiencyQuality', type: 'number', default: 0, description: 'Quality setting for efficiency tool.' },
|
|
1038
|
+
],
|
|
1039
|
+
},
|
|
1040
|
+
],
|
|
1041
|
+
},
|
|
1042
|
+
{
|
|
1043
|
+
displayName: 'Similarity Tool',
|
|
1044
|
+
name: 'similarityToolNoticeMulti',
|
|
1045
|
+
type: 'notice',
|
|
1046
|
+
default: '────────── Similarity tool ──────────',
|
|
1047
|
+
description: 'Parameters for the Similarity tool.',
|
|
1048
|
+
displayOptions: { show: { resource: ['tools'], operation: ['multitask'], tools: ['similarity'] } },
|
|
1049
|
+
},
|
|
1050
|
+
{ displayName: 'Similarity Mode', name: 'similarityModeMulti', type: 'string', default: '', description: 'Similarity mode (similarity tool).', displayOptions: { show: { resource: ['tools'], operation: ['multitask'], tools: ['similarity'] } } },
|
|
1051
|
+
{ displayName: 'Similarity Threshold', name: 'similarityThresholdMulti', type: 'number', default: 0, description: 'Similarity threshold (similarity tool).', displayOptions: { show: { resource: ['tools'], operation: ['multitask'], tools: ['similarity'] } } },
|
|
1052
|
+
{
|
|
1053
|
+
displayName: 'Quality Tool',
|
|
1054
|
+
name: 'qualityToolNoticeMulti',
|
|
1055
|
+
type: 'notice',
|
|
1056
|
+
default: '────────── Quality tool ──────────',
|
|
1057
|
+
description: 'Parameters for the Quality tool.',
|
|
1058
|
+
displayOptions: { show: { resource: ['tools'], operation: ['multitask'], tools: ['quality'] } },
|
|
1059
|
+
},
|
|
1060
|
+
{ displayName: 'Quality Sample', name: 'qualitySampleMulti', type: 'number', default: 0, description: 'Sample size for quality analysis.', displayOptions: { show: { resource: ['tools'], operation: ['multitask'], tools: ['quality'] } } },
|
|
1061
|
+
{
|
|
1062
|
+
displayName: 'Transparency Tool',
|
|
1063
|
+
name: 'transparencyToolNoticeMulti',
|
|
1064
|
+
type: 'notice',
|
|
1065
|
+
default: '────────── Transparency tool ──────────',
|
|
1066
|
+
description: 'Parameters for the Transparency tool.',
|
|
1067
|
+
displayOptions: { show: { resource: ['tools'], operation: ['multitask'], tools: ['transparency'] } },
|
|
1068
|
+
},
|
|
1069
|
+
{ displayName: 'Transparency Sample', name: 'transparencySampleMulti', type: 'number', default: 0, description: 'Sample size for transparency analysis.', displayOptions: { show: { resource: ['tools'], operation: ['multitask'], tools: ['transparency'] } } },
|
|
1070
|
+
{
|
|
1071
|
+
displayName: 'Efficiency Tool',
|
|
1072
|
+
name: 'efficiencyToolNoticeMulti',
|
|
1073
|
+
type: 'notice',
|
|
1074
|
+
default: '────────── Efficiency tool ──────────',
|
|
1075
|
+
description: 'Parameters for the Efficiency tool.',
|
|
1076
|
+
displayOptions: { show: { resource: ['tools'], operation: ['multitask'], tools: ['efficiency'] } },
|
|
1077
|
+
},
|
|
1078
|
+
{ displayName: 'Efficiency Format', name: 'efficiencyFormatMulti', type: 'string', default: '', description: 'Output format for efficiency tool.', displayOptions: { show: { resource: ['tools'], operation: ['multitask'], tools: ['efficiency'] } } },
|
|
1079
|
+
{ displayName: 'Efficiency Quality', name: 'efficiencyQualityMulti', type: 'number', default: 0, description: 'Quality setting for efficiency tool.', displayOptions: { show: { resource: ['tools'], operation: ['multitask'], tools: ['efficiency'] } } },
|
|
837
1080
|
],
|
|
838
1081
|
};
|
|
839
1082
|
async execute() {
|
|
@@ -1065,108 +1308,117 @@ class DavixH2I {
|
|
|
1065
1308
|
setBool('includeRawExif', this.getNodeParameter('includeRawExif', itemIndex));
|
|
1066
1309
|
break;
|
|
1067
1310
|
case 'multitask': {
|
|
1068
|
-
const
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1311
|
+
const selectedActions = this.getNodeParameter('actions', itemIndex, []) || [];
|
|
1312
|
+
if (selectedActions.length === 0)
|
|
1313
|
+
throw new Error('Select at least one action for multitask.');
|
|
1314
|
+
const setNumberOnce = (name, value) => {
|
|
1315
|
+
if (value !== undefined && value !== null && value !== 0 && formData[name] === undefined)
|
|
1316
|
+
formData[name] = String(value);
|
|
1317
|
+
};
|
|
1318
|
+
const setStringOnce = (name, value) => {
|
|
1319
|
+
if (value && formData[name] === undefined)
|
|
1320
|
+
formData[name] = value;
|
|
1321
|
+
};
|
|
1322
|
+
const setBoolOnce = (name, value) => {
|
|
1323
|
+
if (value !== undefined && value !== null && formData[name] === undefined)
|
|
1324
|
+
formData[name] = toBoolString(value);
|
|
1325
|
+
};
|
|
1326
|
+
setStringOnce('format', this.getNodeParameter('multitaskFormat', itemIndex));
|
|
1327
|
+
setBoolOnce('keepMetadata', this.getNodeParameter('multitaskKeepMetadata', itemIndex));
|
|
1328
|
+
for (const a of selectedActions) {
|
|
1329
|
+
switch (a) {
|
|
1330
|
+
case 'format':
|
|
1331
|
+
{
|
|
1332
|
+
const params = this.getNodeParameter('imageActionParams.format', itemIndex, {}) || {};
|
|
1333
|
+
setNumberOnce('width', Number(params.formatWidthMulti ?? 0));
|
|
1334
|
+
setNumberOnce('height', Number(params.formatHeightMulti ?? 0));
|
|
1335
|
+
}
|
|
1336
|
+
break;
|
|
1337
|
+
case 'resize':
|
|
1338
|
+
{
|
|
1339
|
+
const params = this.getNodeParameter('imageActionParams.resize', itemIndex, {}) || {};
|
|
1340
|
+
setNumberOnce('width', Number(params.resizeWidthMulti ?? 0));
|
|
1341
|
+
setNumberOnce('height', Number(params.resizeHeightMulti ?? 0));
|
|
1342
|
+
setBoolOnce('enlarge', Boolean(params.resizeEnlargeMulti));
|
|
1343
|
+
setBoolOnce('normalizeOrientation', Boolean(params.resizeNormalizeOrientationMulti));
|
|
1344
|
+
}
|
|
1345
|
+
break;
|
|
1346
|
+
case 'crop':
|
|
1347
|
+
{
|
|
1348
|
+
const params = this.getNodeParameter('imageActionParams.crop', itemIndex, {}) || {};
|
|
1349
|
+
setNumberOnce('cropX', Number(params.cropXMulti ?? 0));
|
|
1350
|
+
setNumberOnce('cropY', Number(params.cropYMulti ?? 0));
|
|
1351
|
+
setNumberOnce('cropWidth', Number(params.cropWidthMulti ?? 0));
|
|
1352
|
+
setNumberOnce('cropHeight', Number(params.cropHeightMulti ?? 0));
|
|
1353
|
+
setBoolOnce('normalizeOrientation', Boolean(params.cropNormalizeOrientationMulti));
|
|
1354
|
+
setStringOnce('backgroundColor', String(params.cropBackgroundColorMulti ?? ''));
|
|
1355
|
+
}
|
|
1356
|
+
break;
|
|
1357
|
+
case 'transform':
|
|
1358
|
+
{
|
|
1359
|
+
const params = this.getNodeParameter('imageActionParams.transform', itemIndex, {}) || {};
|
|
1360
|
+
setNumberOnce('rotate', Number(params.transformRotateMulti ?? 0));
|
|
1361
|
+
setBoolOnce('flipH', Boolean(params.transformFlipHMulti));
|
|
1362
|
+
setBoolOnce('flipV', Boolean(params.transformFlipVMulti));
|
|
1363
|
+
setStringOnce('colorSpace', String(params.transformColorSpaceMulti ?? ''));
|
|
1364
|
+
}
|
|
1365
|
+
break;
|
|
1366
|
+
case 'compress':
|
|
1367
|
+
{
|
|
1368
|
+
const params = this.getNodeParameter('imageActionParams.compress', itemIndex, {}) || {};
|
|
1369
|
+
setNumberOnce('quality', Number(params.compressQualityMulti ?? 0));
|
|
1370
|
+
setNumberOnce('targetSizeKB', Number(params.compressTargetSizeKBMulti ?? 0));
|
|
1371
|
+
setStringOnce('backgroundColor', String(params.compressBackgroundColorMulti ?? ''));
|
|
1372
|
+
setStringOnce('colorSpace', String(params.compressColorSpaceMulti ?? ''));
|
|
1373
|
+
}
|
|
1374
|
+
break;
|
|
1375
|
+
case 'enhance':
|
|
1376
|
+
{
|
|
1377
|
+
const params = this.getNodeParameter('imageActionParams.enhance', itemIndex, {}) || {};
|
|
1378
|
+
setNumberOnce('blur', Number(params.enhanceBlurMulti ?? 0));
|
|
1379
|
+
setNumberOnce('sharpen', Number(params.enhanceSharpenMulti ?? 0));
|
|
1380
|
+
setBoolOnce('grayscale', Boolean(params.enhanceGrayscaleMulti));
|
|
1381
|
+
setBoolOnce('sepia', Boolean(params.enhanceSepiaMulti));
|
|
1382
|
+
setNumberOnce('brightness', Number(params.enhanceBrightnessMulti ?? 0));
|
|
1383
|
+
setNumberOnce('contrast', Number(params.enhanceContrastMulti ?? 0));
|
|
1384
|
+
setNumberOnce('saturation', Number(params.enhanceSaturationMulti ?? 0));
|
|
1385
|
+
setBoolOnce('normalizeOrientation', Boolean(params.enhanceNormalizeOrientationMulti));
|
|
1386
|
+
}
|
|
1387
|
+
break;
|
|
1388
|
+
case 'frame':
|
|
1389
|
+
{
|
|
1390
|
+
const params = this.getNodeParameter('imageActionParams.frame', itemIndex, {}) || {};
|
|
1391
|
+
setNumberOnce('pad', Number(params.framePadMulti ?? 0));
|
|
1392
|
+
setStringOnce('padColor', String(params.framePadColorMulti ?? ''));
|
|
1393
|
+
setNumberOnce('border', Number(params.frameBorderMulti ?? 0));
|
|
1394
|
+
setStringOnce('borderColor', String(params.frameBorderColorMulti ?? ''));
|
|
1395
|
+
setNumberOnce('borderRadius', Number(params.frameBorderRadiusMulti ?? 0));
|
|
1396
|
+
}
|
|
1397
|
+
break;
|
|
1398
|
+
case 'background':
|
|
1399
|
+
{
|
|
1400
|
+
const params = this.getNodeParameter('imageActionParams.background', itemIndex, {}) || {};
|
|
1401
|
+
setStringOnce('backgroundColor', String(params.backgroundColorMulti ?? ''));
|
|
1402
|
+
setNumberOnce('backgroundBlur', Number(params.backgroundBlurMulti ?? 0));
|
|
1403
|
+
setNumberOnce('borderRadius', Number(params.backgroundBorderRadiusMulti ?? 0));
|
|
1404
|
+
setStringOnce('padColor', String(params.backgroundPadColorMulti ?? ''));
|
|
1405
|
+
}
|
|
1406
|
+
break;
|
|
1407
|
+
case 'watermark':
|
|
1408
|
+
{
|
|
1409
|
+
const params = this.getNodeParameter('imageActionParams.watermark', itemIndex, {}) || {};
|
|
1410
|
+
setStringOnce('watermarkText', String(params.watermarkTextMulti ?? ''));
|
|
1411
|
+
setNumberOnce('watermarkOpacity', Number(params.watermarkOpacityMulti ?? 0));
|
|
1412
|
+
formData.watermarkPosition = formData.watermarkPosition ?? params.watermarkPositionMulti;
|
|
1413
|
+
setNumberOnce('watermarkMargin', Number(params.watermarkMarginMulti ?? 0));
|
|
1414
|
+
setNumberOnce('watermarkScale', Number(params.watermarkScaleMulti ?? 0));
|
|
1415
|
+
setStringOnce('watermarkColor', String(params.watermarkColorMulti ?? ''));
|
|
1416
|
+
setNumberOnce('watermarkFontSize', Number(params.watermarkFontSizeMulti ?? 0));
|
|
1417
|
+
await includeWatermarkFile(String(params.watermarkImageBinaryProperty ?? ''));
|
|
1418
|
+
}
|
|
1419
|
+
break;
|
|
1420
|
+
}
|
|
1421
|
+
}
|
|
1170
1422
|
break;
|
|
1171
1423
|
}
|
|
1172
1424
|
}
|
|
@@ -1323,41 +1575,62 @@ class DavixH2I {
|
|
|
1323
1575
|
selectedTools = tools;
|
|
1324
1576
|
formData.tools = tools.join(',');
|
|
1325
1577
|
}
|
|
1326
|
-
const toolOptions = this.getNodeParameter('options', itemIndex, {}) || {};
|
|
1327
|
-
const hasOpt = (key) => Object.prototype.hasOwnProperty.call(toolOptions, key);
|
|
1328
|
-
const getOpt = (key) => toolOptions[key];
|
|
1329
1578
|
const hasTool = (toolName) => selectedTools.includes(toolName);
|
|
1579
|
+
const getParams = (path) => this.getNodeParameter(path, itemIndex, {}) || {};
|
|
1330
1580
|
if (hasTool('metadata')) {
|
|
1331
|
-
|
|
1332
|
-
|
|
1581
|
+
const params = action === 'single'
|
|
1582
|
+
? getParams('toolParametersSingle.metadata')
|
|
1583
|
+
: getParams('toolParametersMulti.metadata');
|
|
1584
|
+
if (params.metadataIncludeRawExifSingle ?? params.metadataIncludeRawExifMulti)
|
|
1585
|
+
setBool('includeRawExif', Boolean(params.metadataIncludeRawExifSingle ?? params.metadataIncludeRawExifMulti));
|
|
1333
1586
|
}
|
|
1334
1587
|
if (hasTool('palette')) {
|
|
1335
|
-
|
|
1336
|
-
|
|
1588
|
+
const params = action === 'single' ? getParams('toolParametersSingle.palette') : getParams('toolParametersMulti.palette');
|
|
1589
|
+
const val = params.paletteSizeSingle ?? params.paletteSizeMulti;
|
|
1590
|
+
if (val)
|
|
1591
|
+
setNumber('paletteSize', Number(val));
|
|
1337
1592
|
}
|
|
1338
1593
|
if (hasTool('hash')) {
|
|
1339
|
-
|
|
1340
|
-
|
|
1594
|
+
const params = action === 'single' ? getParams('toolParametersSingle.hash') : getParams('toolParametersMulti.hash');
|
|
1595
|
+
const val = params.hashTypeSingle ?? params.hashTypeMulti;
|
|
1596
|
+
if (val)
|
|
1597
|
+
setString('hashType', String(val));
|
|
1341
1598
|
}
|
|
1342
1599
|
if (hasTool('quality')) {
|
|
1343
|
-
|
|
1344
|
-
|
|
1600
|
+
const params = action === 'single' ? getParams('toolParametersSingle.quality') : getParams('toolParametersMulti.quality');
|
|
1601
|
+
const val = params.qualitySampleSingle ?? params.qualitySampleMulti;
|
|
1602
|
+
if (val)
|
|
1603
|
+
setNumber('qualitySample', Number(val));
|
|
1345
1604
|
}
|
|
1346
1605
|
if (hasTool('transparency')) {
|
|
1347
|
-
|
|
1348
|
-
|
|
1606
|
+
const params = action === 'single'
|
|
1607
|
+
? getParams('toolParametersSingle.transparency')
|
|
1608
|
+
: getParams('toolParametersMulti.transparency');
|
|
1609
|
+
const val = params.transparencySampleSingle ?? params.transparencySampleMulti;
|
|
1610
|
+
if (val)
|
|
1611
|
+
setNumber('transparencySample', Number(val));
|
|
1349
1612
|
}
|
|
1350
1613
|
if (hasTool('similarity')) {
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1614
|
+
const params = action === 'single'
|
|
1615
|
+
? getParams('toolParametersSingle.similarity')
|
|
1616
|
+
: getParams('toolParametersMulti.similarity');
|
|
1617
|
+
const mode = params.similarityModeSingle ?? params.similarityModeMulti;
|
|
1618
|
+
const threshold = params.similarityThresholdSingle ?? params.similarityThresholdMulti;
|
|
1619
|
+
if (mode)
|
|
1620
|
+
setString('similarityMode', String(mode));
|
|
1621
|
+
if (threshold)
|
|
1622
|
+
setNumber('similarityThreshold', Number(threshold));
|
|
1355
1623
|
}
|
|
1356
1624
|
if (hasTool('efficiency')) {
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1625
|
+
const params = action === 'single'
|
|
1626
|
+
? getParams('toolParametersSingle.efficiency')
|
|
1627
|
+
: getParams('toolParametersMulti.efficiency');
|
|
1628
|
+
const formatVal = params.efficiencyFormatSingle ?? params.efficiencyFormatMulti;
|
|
1629
|
+
const qualityVal = params.efficiencyQualitySingle ?? params.efficiencyQualityMulti;
|
|
1630
|
+
if (formatVal)
|
|
1631
|
+
setString('efficiencyFormat', String(formatVal));
|
|
1632
|
+
if (qualityVal)
|
|
1633
|
+
setNumber('efficiencyQuality', Number(qualityVal));
|
|
1361
1634
|
}
|
|
1362
1635
|
const response = await GenericFunctions_1.davixRequest.call(this, {
|
|
1363
1636
|
method: 'POST',
|