@acrewity/n8n-nodes-acrewity 0.1.6 → 0.1.7

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.
@@ -38,7 +38,7 @@ class Acrewity {
38
38
  { name: 'HTML to PDF', value: 'html_to_pdf', description: 'Convert HTML to PDF documents' },
39
39
  { name: 'Image Converter', value: 'image_converter', description: 'Convert images between formats' },
40
40
  { name: 'JSON Schema Validator', value: 'json_schema_validator', description: 'Validate JSON against schemas' },
41
- { name: 'JSON to Excel', value: 'excel_editor', description: 'Convert JSON to Excel files' },
41
+ { name: 'JSON to Excel', value: 'json_to_excel', description: 'Convert JSON to Excel files' },
42
42
  { name: 'Markdown Table', value: 'markdown_table_generator', description: 'Generate Markdown tables' },
43
43
  { name: 'Markdown to HTML', value: 'markdown_to_html', description: 'Convert Markdown to HTML' },
44
44
  { name: 'PDF Extract Page', value: 'pdf_extract_page', description: 'Extract pages from PDFs' },
@@ -257,9 +257,9 @@ class Acrewity {
257
257
  noDataExpression: true,
258
258
  displayOptions: { show: { resource: ['qr_code_generator'] } },
259
259
  options: [
260
- { name: 'Generate QR Code', value: 'generate_qr', action: 'Generate a QR code' },
260
+ { name: 'Generate QR Code', value: 'generate', action: 'Generate a QR code' },
261
261
  ],
262
- default: 'generate_qr',
262
+ default: 'generate',
263
263
  },
264
264
  {
265
265
  displayName: 'Text/URL',
@@ -383,9 +383,9 @@ class Acrewity {
383
383
  noDataExpression: true,
384
384
  displayOptions: { show: { resource: ['html_to_pdf'] } },
385
385
  options: [
386
- { name: 'Convert to PDF', value: 'convert_pdf', action: 'Convert HTML to PDF' },
386
+ { name: 'Convert to PDF', value: 'convert', action: 'Convert HTML to PDF' },
387
387
  ],
388
- default: 'convert_pdf',
388
+ default: 'convert',
389
389
  },
390
390
  {
391
391
  displayName: 'HTML Content',
@@ -474,9 +474,9 @@ class Acrewity {
474
474
  noDataExpression: true,
475
475
  displayOptions: { show: { resource: ['image_converter'] } },
476
476
  options: [
477
- { name: 'Convert Image', value: 'convert_image', action: 'Convert image format' },
477
+ { name: 'Convert Image', value: 'convert', action: 'Convert image format' },
478
478
  ],
479
- default: 'convert_image',
479
+ default: 'convert',
480
480
  },
481
481
  {
482
482
  displayName: 'Image URL',
@@ -516,9 +516,12 @@ class Acrewity {
516
516
  noDataExpression: true,
517
517
  displayOptions: { show: { resource: ['excel_to_json'] } },
518
518
  options: [
519
- { name: 'Convert to JSON', value: 'convert', action: 'Convert excel to json' },
519
+ { name: 'List Sheets', value: 'list_sheets', action: 'List all sheet names in excel file' },
520
+ { name: 'Read Excel', value: 'read_excel', action: 'Read entire excel file' },
521
+ { name: 'Read Sheet', value: 'read_sheet', action: 'Read specific sheet from excel file' },
522
+ { name: 'Get Range', value: 'get_range', action: 'Get specific cell range from excel sheet' },
520
523
  ],
521
- default: 'convert',
524
+ default: 'read_excel',
522
525
  },
523
526
  {
524
527
  displayName: 'Excel File (Base64)',
@@ -534,9 +537,26 @@ class Acrewity {
534
537
  displayName: 'Sheet Name',
535
538
  name: 'sheetName',
536
539
  type: 'string',
537
- displayOptions: { show: { resource: ['excel_to_json'] } },
540
+ displayOptions: { show: { resource: ['excel_to_json'], operation: ['read_sheet', 'get_range'] } },
538
541
  default: 'Sheet1',
539
- description: 'Name of the sheet to convert',
542
+ description: 'Name of the sheet to read',
543
+ },
544
+ {
545
+ displayName: 'Cell Range',
546
+ name: 'range',
547
+ type: 'string',
548
+ displayOptions: { show: { resource: ['excel_to_json'], operation: ['get_range'] } },
549
+ default: 'A1:C10',
550
+ required: true,
551
+ description: 'Cell range in A1 notation (e.g., "A1:C10", "B2", "A:A" for entire column)',
552
+ },
553
+ {
554
+ displayName: 'Include Detected Tables',
555
+ name: 'includeDetectedTables',
556
+ type: 'boolean',
557
+ displayOptions: { show: { resource: ['excel_to_json'], operation: ['read_excel', 'read_sheet'] } },
558
+ default: true,
559
+ description: 'Whether to include intelligently detected tables in output',
540
560
  },
541
561
  // ============ JSON to Excel ============
542
562
  {
@@ -544,7 +564,7 @@ class Acrewity {
544
564
  name: 'operation',
545
565
  type: 'options',
546
566
  noDataExpression: true,
547
- displayOptions: { show: { resource: ['excel_editor'] } },
567
+ displayOptions: { show: { resource: ['json_to_excel'] } },
548
568
  options: [
549
569
  { name: 'Create Excel', value: 'create_excel', action: 'Create excel from json' },
550
570
  ],
@@ -555,7 +575,7 @@ class Acrewity {
555
575
  name: 'data',
556
576
  type: 'string',
557
577
  typeOptions: { rows: 6 },
558
- displayOptions: { show: { resource: ['excel_editor'] } },
578
+ displayOptions: { show: { resource: ['json_to_excel'] } },
559
579
  default: '[{"Name": "John", "Email": "john@example.com"}]',
560
580
  required: true,
561
581
  description: 'JSON array of objects to convert to Excel',
@@ -564,7 +584,7 @@ class Acrewity {
564
584
  displayName: 'Sheet Name',
565
585
  name: 'sheetName',
566
586
  type: 'string',
567
- displayOptions: { show: { resource: ['excel_editor'] } },
587
+ displayOptions: { show: { resource: ['json_to_excel'] } },
568
588
  default: 'Sheet1',
569
589
  description: 'Name of the Excel sheet',
570
590
  },
@@ -576,29 +596,19 @@ class Acrewity {
576
596
  noDataExpression: true,
577
597
  displayOptions: { show: { resource: ['pdf_merge'] } },
578
598
  options: [
579
- { name: 'Merge PDFs', value: 'merge', action: 'Merge two PDF files' },
599
+ { name: 'Merge PDFs', value: 'merge', action: 'Merge multiple PDF files' },
580
600
  ],
581
601
  default: 'merge',
582
602
  },
583
603
  {
584
- displayName: 'Source PDF (Base64)',
585
- name: 'source_pdf',
604
+ displayName: 'PDF Files (JSON Array)',
605
+ name: 'files',
586
606
  type: 'string',
587
- typeOptions: { rows: 4 },
588
- displayOptions: { show: { resource: ['pdf_merge'] } },
589
- default: '',
590
- required: true,
591
- description: 'First PDF file (Base64 encoded)',
592
- },
593
- {
594
- displayName: 'Target PDF (Base64)',
595
- name: 'target_pdf',
596
- type: 'string',
597
- typeOptions: { rows: 4 },
607
+ typeOptions: { rows: 6 },
598
608
  displayOptions: { show: { resource: ['pdf_merge'] } },
599
- default: '',
609
+ default: '[]',
600
610
  required: true,
601
- description: 'Second PDF file to append (Base64 encoded)',
611
+ description: 'JSON array of Base64-encoded PDF files to merge (e.g., ["base64data1", "base64data2"])',
602
612
  },
603
613
  // ============ PDF Extract Page ============
604
614
  {
@@ -692,15 +702,19 @@ class Acrewity {
692
702
  noDataExpression: true,
693
703
  displayOptions: { show: { resource: ['email_access'] } },
694
704
  options: [
695
- { name: 'Send Email', value: 'send_email', action: 'Send an email' },
705
+ { name: 'Send Email', value: 'send_email', action: 'Send an email via SMTP' },
706
+ { name: 'Fetch Emails (IMAP)', value: 'fetch_emails', action: 'Fetch emails from IMAP server' },
707
+ { name: 'Fetch Emails (POP3)', value: 'fetch_emails_pop3', action: 'Fetch emails from POP3 server' },
708
+ { name: 'Mark as Read', value: 'mark_as_read', action: 'Mark email as read via IMAP' },
696
709
  ],
697
710
  default: 'send_email',
698
711
  },
712
+ // Send Email fields
699
713
  {
700
714
  displayName: 'To',
701
715
  name: 'to',
702
716
  type: 'string',
703
- displayOptions: { show: { resource: ['email_access'] } },
717
+ displayOptions: { show: { resource: ['email_access'], operation: ['send_email'] } },
704
718
  default: '',
705
719
  required: true,
706
720
  description: 'Recipient email address',
@@ -709,7 +723,7 @@ class Acrewity {
709
723
  displayName: 'Subject',
710
724
  name: 'subject',
711
725
  type: 'string',
712
- displayOptions: { show: { resource: ['email_access'] } },
726
+ displayOptions: { show: { resource: ['email_access'], operation: ['send_email'] } },
713
727
  default: '',
714
728
  required: true,
715
729
  description: 'Email subject',
@@ -719,7 +733,7 @@ class Acrewity {
719
733
  name: 'text',
720
734
  type: 'string',
721
735
  typeOptions: { rows: 4 },
722
- displayOptions: { show: { resource: ['email_access'] } },
736
+ displayOptions: { show: { resource: ['email_access'], operation: ['send_email'] } },
723
737
  default: '',
724
738
  description: 'Plain text email body',
725
739
  },
@@ -727,7 +741,7 @@ class Acrewity {
727
741
  displayName: 'SMTP Host',
728
742
  name: 'smtp_host',
729
743
  type: 'string',
730
- displayOptions: { show: { resource: ['email_access'] } },
744
+ displayOptions: { show: { resource: ['email_access'], operation: ['send_email'] } },
731
745
  default: '',
732
746
  required: true,
733
747
  placeholder: 'smtp.example.com',
@@ -737,7 +751,7 @@ class Acrewity {
737
751
  displayName: 'SMTP Port',
738
752
  name: 'smtp_port',
739
753
  type: 'number',
740
- displayOptions: { show: { resource: ['email_access'] } },
754
+ displayOptions: { show: { resource: ['email_access'], operation: ['send_email'] } },
741
755
  default: 587,
742
756
  description: 'SMTP server port',
743
757
  },
@@ -745,7 +759,7 @@ class Acrewity {
745
759
  displayName: 'SMTP User',
746
760
  name: 'smtp_user',
747
761
  type: 'string',
748
- displayOptions: { show: { resource: ['email_access'] } },
762
+ displayOptions: { show: { resource: ['email_access'], operation: ['send_email'] } },
749
763
  default: '',
750
764
  required: true,
751
765
  description: 'SMTP username/email',
@@ -755,7 +769,7 @@ class Acrewity {
755
769
  name: 'smtp_pass',
756
770
  type: 'string',
757
771
  typeOptions: { password: true },
758
- displayOptions: { show: { resource: ['email_access'] } },
772
+ displayOptions: { show: { resource: ['email_access'], operation: ['send_email'] } },
759
773
  default: '',
760
774
  required: true,
761
775
  },
@@ -763,11 +777,111 @@ class Acrewity {
763
777
  displayName: 'From Email',
764
778
  name: 'from',
765
779
  type: 'string',
766
- displayOptions: { show: { resource: ['email_access'] } },
780
+ displayOptions: { show: { resource: ['email_access'], operation: ['send_email'] } },
767
781
  default: '',
768
782
  required: true,
769
783
  description: 'Sender email address',
770
784
  },
785
+ // IMAP fields (fetch_emails, mark_as_read)
786
+ {
787
+ displayName: 'IMAP Host',
788
+ name: 'imap_host',
789
+ type: 'string',
790
+ displayOptions: { show: { resource: ['email_access'], operation: ['fetch_emails', 'mark_as_read'] } },
791
+ default: '',
792
+ required: true,
793
+ placeholder: 'imap.example.com',
794
+ description: 'IMAP server hostname',
795
+ },
796
+ {
797
+ displayName: 'IMAP Port',
798
+ name: 'imap_port',
799
+ type: 'number',
800
+ displayOptions: { show: { resource: ['email_access'], operation: ['fetch_emails', 'mark_as_read'] } },
801
+ default: 993,
802
+ description: 'IMAP server port',
803
+ },
804
+ {
805
+ displayName: 'IMAP User',
806
+ name: 'imap_user',
807
+ type: 'string',
808
+ displayOptions: { show: { resource: ['email_access'], operation: ['fetch_emails', 'mark_as_read'] } },
809
+ default: '',
810
+ required: true,
811
+ description: 'IMAP username/email',
812
+ },
813
+ {
814
+ displayName: 'IMAP Password',
815
+ name: 'imap_pass',
816
+ type: 'string',
817
+ typeOptions: { password: true },
818
+ displayOptions: { show: { resource: ['email_access'], operation: ['fetch_emails', 'mark_as_read'] } },
819
+ default: '',
820
+ required: true,
821
+ },
822
+ {
823
+ displayName: 'Folder',
824
+ name: 'folder',
825
+ type: 'string',
826
+ displayOptions: { show: { resource: ['email_access'], operation: ['fetch_emails'] } },
827
+ default: 'INBOX',
828
+ description: 'IMAP folder to read from',
829
+ },
830
+ {
831
+ displayName: 'Limit',
832
+ name: 'limit',
833
+ type: 'number',
834
+ displayOptions: { show: { resource: ['email_access'], operation: ['fetch_emails', 'fetch_emails_pop3'] } },
835
+ default: 50,
836
+ typeOptions: { minValue: 1, maxValue: 100 },
837
+ description: 'Max number of results to return',
838
+ },
839
+ {
840
+ displayName: 'Email UID',
841
+ name: 'email_uid',
842
+ type: 'string',
843
+ displayOptions: { show: { resource: ['email_access'], operation: ['mark_as_read'] } },
844
+ default: '',
845
+ required: true,
846
+ description: 'UID of the email to mark as read',
847
+ },
848
+ // POP3 fields
849
+ {
850
+ displayName: 'POP3 Host',
851
+ name: 'pop3_host',
852
+ type: 'string',
853
+ displayOptions: { show: { resource: ['email_access'], operation: ['fetch_emails_pop3'] } },
854
+ default: '',
855
+ required: true,
856
+ placeholder: 'pop.example.com',
857
+ description: 'POP3 server hostname',
858
+ },
859
+ {
860
+ displayName: 'POP3 Port',
861
+ name: 'pop3_port',
862
+ type: 'number',
863
+ displayOptions: { show: { resource: ['email_access'], operation: ['fetch_emails_pop3'] } },
864
+ default: 995,
865
+ description: 'POP3 server port',
866
+ },
867
+ {
868
+ displayName: 'POP3 User',
869
+ name: 'pop3_user',
870
+ type: 'string',
871
+ displayOptions: { show: { resource: ['email_access'], operation: ['fetch_emails_pop3'] } },
872
+ default: '',
873
+ required: true,
874
+ description: 'POP3 username/email',
875
+ },
876
+ {
877
+ displayName: 'POP3 Password',
878
+ name: 'pop3_pass',
879
+ type: 'string',
880
+ typeOptions: { password: true },
881
+ displayOptions: { show: { resource: ['email_access'], operation: ['fetch_emails_pop3'] } },
882
+ default: '',
883
+ required: true,
884
+ },
771
885
  ],
772
886
  };
773
887
  }
@@ -854,17 +968,24 @@ class Acrewity {
854
968
  // Excel to JSON
855
969
  if (resource === 'excel_to_json') {
856
970
  parameters.file = this.getNodeParameter('file', i);
857
- parameters.sheetName = this.getNodeParameter('sheetName', i);
971
+ if (operation === 'read_sheet' || operation === 'get_range') {
972
+ parameters.sheetName = this.getNodeParameter('sheetName', i);
973
+ }
974
+ if (operation === 'get_range') {
975
+ parameters.range = this.getNodeParameter('range', i);
976
+ }
977
+ if (operation === 'read_excel' || operation === 'read_sheet') {
978
+ parameters.includeDetectedTables = this.getNodeParameter('includeDetectedTables', i);
979
+ }
858
980
  }
859
981
  // JSON to Excel
860
- if (resource === 'excel_editor') {
982
+ if (resource === 'json_to_excel') {
861
983
  parameters.data = JSON.parse(this.getNodeParameter('data', i));
862
984
  parameters.sheetName = this.getNodeParameter('sheetName', i);
863
985
  }
864
986
  // PDF Merge
865
987
  if (resource === 'pdf_merge') {
866
- parameters.source_pdf = this.getNodeParameter('source_pdf', i);
867
- parameters.target_pdf = this.getNodeParameter('target_pdf', i);
988
+ parameters.files = JSON.parse(this.getNodeParameter('files', i));
868
989
  }
869
990
  // PDF Extract Page
870
991
  if (resource === 'pdf_extract_page') {
@@ -884,14 +1005,38 @@ class Acrewity {
884
1005
  }
885
1006
  // Email Access
886
1007
  if (resource === 'email_access') {
887
- parameters.to = this.getNodeParameter('to', i);
888
- parameters.subject = this.getNodeParameter('subject', i);
889
- parameters.text = this.getNodeParameter('text', i);
890
- parameters.smtp_host = this.getNodeParameter('smtp_host', i);
891
- parameters.smtp_port = this.getNodeParameter('smtp_port', i);
892
- parameters.smtp_user = this.getNodeParameter('smtp_user', i);
893
- parameters.smtp_pass = this.getNodeParameter('smtp_pass', i);
894
- parameters.from = this.getNodeParameter('from', i);
1008
+ if (operation === 'send_email') {
1009
+ parameters.to = this.getNodeParameter('to', i);
1010
+ parameters.subject = this.getNodeParameter('subject', i);
1011
+ parameters.text = this.getNodeParameter('text', i);
1012
+ parameters.smtp_host = this.getNodeParameter('smtp_host', i);
1013
+ parameters.smtp_port = this.getNodeParameter('smtp_port', i);
1014
+ parameters.smtp_user = this.getNodeParameter('smtp_user', i);
1015
+ parameters.smtp_pass = this.getNodeParameter('smtp_pass', i);
1016
+ parameters.from = this.getNodeParameter('from', i);
1017
+ }
1018
+ if (operation === 'fetch_emails') {
1019
+ parameters.imap_host = this.getNodeParameter('imap_host', i);
1020
+ parameters.imap_port = this.getNodeParameter('imap_port', i);
1021
+ parameters.imap_user = this.getNodeParameter('imap_user', i);
1022
+ parameters.imap_pass = this.getNodeParameter('imap_pass', i);
1023
+ parameters.folder = this.getNodeParameter('folder', i);
1024
+ parameters.limit = this.getNodeParameter('limit', i);
1025
+ }
1026
+ if (operation === 'mark_as_read') {
1027
+ parameters.imap_host = this.getNodeParameter('imap_host', i);
1028
+ parameters.imap_port = this.getNodeParameter('imap_port', i);
1029
+ parameters.imap_user = this.getNodeParameter('imap_user', i);
1030
+ parameters.imap_pass = this.getNodeParameter('imap_pass', i);
1031
+ parameters.email_uid = this.getNodeParameter('email_uid', i);
1032
+ }
1033
+ if (operation === 'fetch_emails_pop3') {
1034
+ parameters.pop3_host = this.getNodeParameter('pop3_host', i);
1035
+ parameters.pop3_port = this.getNodeParameter('pop3_port', i);
1036
+ parameters.pop3_user = this.getNodeParameter('pop3_user', i);
1037
+ parameters.pop3_pass = this.getNodeParameter('pop3_pass', i);
1038
+ parameters.limit = this.getNodeParameter('limit', i);
1039
+ }
895
1040
  }
896
1041
  // Make API request
897
1042
  const response = await this.helpers.httpRequest({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acrewity/n8n-nodes-acrewity",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "n8n community node for Acrewity API - A unified API platform with 20+ utility services including PDF processing, data conversion, QR codes, and more",
5
5
  "license": "MIT",
6
6
  "homepage": "https://acrewity.com",