n8n-nodes-base 0.224.1 → 0.226.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 (378) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/credentials/AirtableApi.credentials.js +6 -0
  3. package/dist/credentials/AirtableApi.credentials.js.map +1 -1
  4. package/dist/credentials/AirtableTokenApi.credentials.d.ts +9 -0
  5. package/dist/credentials/AirtableTokenApi.credentials.js +34 -0
  6. package/dist/credentials/AirtableTokenApi.credentials.js.map +1 -0
  7. package/dist/credentials/Aws.credentials.js +2 -1
  8. package/dist/credentials/Aws.credentials.js.map +1 -1
  9. package/dist/credentials/JotFormApi.credentials.js +4 -0
  10. package/dist/credentials/JotFormApi.credentials.js.map +1 -1
  11. package/dist/credentials/NpmApi.credentials.d.ts +9 -0
  12. package/dist/credentials/NpmApi.credentials.js +41 -0
  13. package/dist/credentials/NpmApi.credentials.js.map +1 -0
  14. package/dist/credentials/SshPrivateKey.credentials.js +1 -1
  15. package/dist/credentials/SshPrivateKey.credentials.js.map +1 -1
  16. package/dist/known/credentials.json +22 -3
  17. package/dist/known/nodes.json +4 -0
  18. package/dist/methods/defined.json +8 -2
  19. package/dist/methods/referenced.json +8 -2
  20. package/dist/nodes/Airtable/Airtable.node.js +36 -3
  21. package/dist/nodes/Airtable/Airtable.node.js.map +1 -1
  22. package/dist/nodes/Airtable/AirtableTrigger.node.js +31 -1
  23. package/dist/nodes/Airtable/AirtableTrigger.node.js.map +1 -1
  24. package/dist/nodes/Airtable/GenericFunctions.js +2 -1
  25. package/dist/nodes/Airtable/GenericFunctions.js.map +1 -1
  26. package/dist/nodes/Aws/Rekognition/AwsRekognition.node.js +35 -35
  27. package/dist/nodes/Aws/Rekognition/AwsRekognition.node.js.map +1 -1
  28. package/dist/nodes/Aws/Rekognition/test/AwsRekognitionTestWorkflow.json +344 -0
  29. package/dist/nodes/Aws/S3/test/AwsS3.file.upload.workflow.json +97 -0
  30. package/dist/nodes/Code/Code.node.js +59 -35
  31. package/dist/nodes/Code/Code.node.js.map +1 -1
  32. package/dist/nodes/Code/Code.node.json +1 -1
  33. package/dist/nodes/Code/JavaScriptSandbox.d.ts +11 -0
  34. package/dist/nodes/Code/JavaScriptSandbox.js +81 -0
  35. package/dist/nodes/Code/JavaScriptSandbox.js.map +1 -0
  36. package/dist/nodes/Code/Pyodide.d.ts +2 -0
  37. package/dist/nodes/Code/Pyodide.js +47 -0
  38. package/dist/nodes/Code/Pyodide.js.map +1 -0
  39. package/dist/nodes/Code/PythonSandbox.d.ts +13 -0
  40. package/dist/nodes/Code/PythonSandbox.js +86 -0
  41. package/dist/nodes/Code/PythonSandbox.js.map +1 -0
  42. package/dist/nodes/Code/Sandbox.d.ts +20 -11
  43. package/dist/nodes/Code/Sandbox.js +61 -103
  44. package/dist/nodes/Code/Sandbox.js.map +1 -1
  45. package/dist/nodes/Code/descriptions/JavascriptCodeDescription.d.ts +2 -0
  46. package/dist/nodes/Code/descriptions/JavascriptCodeDescription.js +73 -0
  47. package/dist/nodes/Code/descriptions/JavascriptCodeDescription.js.map +1 -0
  48. package/dist/nodes/Code/descriptions/PythonCodeDescription.d.ts +2 -0
  49. package/dist/nodes/Code/descriptions/PythonCodeDescription.js +61 -0
  50. package/dist/nodes/Code/descriptions/PythonCodeDescription.js.map +1 -0
  51. package/dist/nodes/Code/utils.d.ts +0 -2
  52. package/dist/nodes/Code/utils.js +1 -2
  53. package/dist/nodes/Code/utils.js.map +1 -1
  54. package/dist/nodes/DateTime/DateTime.node.d.ts +3 -9
  55. package/dist/nodes/DateTime/DateTime.node.js +9 -502
  56. package/dist/nodes/DateTime/DateTime.node.js.map +1 -1
  57. package/dist/nodes/DateTime/V1/DateTimeV1.node.d.ts +11 -0
  58. package/dist/nodes/DateTime/V1/DateTimeV1.node.js +523 -0
  59. package/dist/nodes/DateTime/V1/DateTimeV1.node.js.map +1 -0
  60. package/dist/nodes/DateTime/V2/AddToDateDescription.d.ts +2 -0
  61. package/dist/nodes/DateTime/V2/AddToDateDescription.js +105 -0
  62. package/dist/nodes/DateTime/V2/AddToDateDescription.js.map +1 -0
  63. package/dist/nodes/DateTime/V2/CurrentDateDescription.d.ts +2 -0
  64. package/dist/nodes/DateTime/V2/CurrentDateDescription.js +63 -0
  65. package/dist/nodes/DateTime/V2/CurrentDateDescription.js.map +1 -0
  66. package/dist/nodes/DateTime/V2/DateTimeV2.node.d.ts +6 -0
  67. package/dist/nodes/DateTime/V2/DateTimeV2.node.js +187 -0
  68. package/dist/nodes/DateTime/V2/DateTimeV2.node.js.map +1 -0
  69. package/dist/nodes/DateTime/V2/ExtractDateDescription.d.ts +2 -0
  70. package/dist/nodes/DateTime/V2/ExtractDateDescription.js +82 -0
  71. package/dist/nodes/DateTime/V2/ExtractDateDescription.js.map +1 -0
  72. package/dist/nodes/DateTime/V2/FormatDateDescription.d.ts +2 -0
  73. package/dist/nodes/DateTime/V2/FormatDateDescription.js +129 -0
  74. package/dist/nodes/DateTime/V2/FormatDateDescription.js.map +1 -0
  75. package/dist/nodes/DateTime/V2/GenericFunctions.d.ts +3 -0
  76. package/dist/nodes/DateTime/V2/GenericFunctions.js +46 -0
  77. package/dist/nodes/DateTime/V2/GenericFunctions.js.map +1 -0
  78. package/dist/nodes/DateTime/V2/GetTimeBetweenDates.d.ts +2 -0
  79. package/dist/nodes/DateTime/V2/GetTimeBetweenDates.js +106 -0
  80. package/dist/nodes/DateTime/V2/GetTimeBetweenDates.js.map +1 -0
  81. package/dist/nodes/DateTime/V2/RoundDateDescription.d.ts +2 -0
  82. package/dist/nodes/DateTime/V2/RoundDateDescription.js +122 -0
  83. package/dist/nodes/DateTime/V2/RoundDateDescription.js.map +1 -0
  84. package/dist/nodes/DateTime/V2/SubtractFromDateDescription.d.ts +2 -0
  85. package/dist/nodes/DateTime/V2/SubtractFromDateDescription.js +105 -0
  86. package/dist/nodes/DateTime/V2/SubtractFromDateDescription.js.map +1 -0
  87. package/dist/nodes/DateTime/test/node/DateTimeWorkflowV2.json +260 -0
  88. package/dist/nodes/DateTime/test/node/workflow.timestamp_v2.json +352 -0
  89. package/dist/nodes/Ftp/Ftp.node.js +4 -4
  90. package/dist/nodes/Ftp/Ftp.node.js.map +1 -1
  91. package/dist/nodes/Google/Analytics/v1/GoogleAnalyticsV1.node.js +2 -0
  92. package/dist/nodes/Google/Analytics/v1/GoogleAnalyticsV1.node.js.map +1 -1
  93. package/dist/nodes/Google/BigQuery/v1/GoogleBigQueryV1.node.js +2 -0
  94. package/dist/nodes/Google/BigQuery/v1/GoogleBigQueryV1.node.js.map +1 -1
  95. package/dist/nodes/Google/Gmail/v1/GmailV1.node.js +2 -0
  96. package/dist/nodes/Google/Gmail/v1/GmailV1.node.js.map +1 -1
  97. package/dist/nodes/Google/Sheet/v1/versionDescription.js +2 -0
  98. package/dist/nodes/Google/Sheet/v1/versionDescription.js.map +1 -1
  99. package/dist/nodes/Google/Sheet/v2/actions/sheet/Sheet.resource.js +3 -0
  100. package/dist/nodes/Google/Sheet/v2/actions/sheet/Sheet.resource.js.map +1 -1
  101. package/dist/nodes/HttpRequest/HttpRequest.node.js +2 -1
  102. package/dist/nodes/HttpRequest/HttpRequest.node.js.map +1 -1
  103. package/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js +4 -1
  104. package/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js.map +1 -1
  105. package/dist/nodes/Hubspot/Hubspot.node.d.ts +3 -45
  106. package/dist/nodes/Hubspot/Hubspot.node.js +9 -2321
  107. package/dist/nodes/Hubspot/Hubspot.node.js.map +1 -1
  108. package/dist/nodes/Hubspot/HubspotTrigger.node.js +1 -1
  109. package/dist/nodes/Hubspot/HubspotTrigger.node.js.map +1 -1
  110. package/dist/nodes/Hubspot/{CompanyDescription.js → V1/CompanyDescription.js} +1 -0
  111. package/dist/nodes/Hubspot/V1/CompanyDescription.js.map +1 -0
  112. package/dist/nodes/Hubspot/V1/ContactDescription.js.map +1 -0
  113. package/dist/nodes/Hubspot/V1/ContactListDescription.js.map +1 -0
  114. package/dist/nodes/Hubspot/V1/DealDescription.js.map +1 -0
  115. package/dist/nodes/Hubspot/V1/DealInterface.js.map +1 -0
  116. package/dist/nodes/Hubspot/V1/EngagementDescription.js.map +1 -0
  117. package/dist/nodes/Hubspot/V1/FormDescription.js.map +1 -0
  118. package/dist/nodes/Hubspot/V1/FormInterface.js.map +1 -0
  119. package/dist/nodes/Hubspot/V1/GenericFunctions.d.ts +70 -0
  120. package/dist/nodes/Hubspot/V1/GenericFunctions.js +1964 -0
  121. package/dist/nodes/Hubspot/V1/GenericFunctions.js.map +1 -0
  122. package/dist/nodes/Hubspot/V1/HubspotV1.node.d.ts +48 -0
  123. package/dist/nodes/Hubspot/V1/HubspotV1.node.js +2334 -0
  124. package/dist/nodes/Hubspot/V1/HubspotV1.node.js.map +1 -0
  125. package/dist/nodes/Hubspot/V1/TicketDescription.js.map +1 -0
  126. package/dist/nodes/Hubspot/V2/CompanyDescription.d.ts +3 -0
  127. package/dist/nodes/Hubspot/V2/CompanyDescription.js +1134 -0
  128. package/dist/nodes/Hubspot/V2/CompanyDescription.js.map +1 -0
  129. package/dist/nodes/Hubspot/V2/ContactDescription.d.ts +3 -0
  130. package/dist/nodes/Hubspot/V2/ContactDescription.js +1158 -0
  131. package/dist/nodes/Hubspot/V2/ContactDescription.js.map +1 -0
  132. package/dist/nodes/Hubspot/V2/ContactListDescription.d.ts +3 -0
  133. package/dist/nodes/Hubspot/V2/ContactListDescription.js +125 -0
  134. package/dist/nodes/Hubspot/V2/ContactListDescription.js.map +1 -0
  135. package/dist/nodes/Hubspot/V2/DealDescription.d.ts +3 -0
  136. package/dist/nodes/Hubspot/V2/DealDescription.js +949 -0
  137. package/dist/nodes/Hubspot/V2/DealDescription.js.map +1 -0
  138. package/dist/nodes/Hubspot/V2/DealInterface.d.ts +9 -0
  139. package/dist/nodes/Hubspot/V2/DealInterface.js +3 -0
  140. package/dist/nodes/Hubspot/V2/DealInterface.js.map +1 -0
  141. package/dist/nodes/Hubspot/V2/EngagementDescription.d.ts +3 -0
  142. package/dist/nodes/Hubspot/V2/EngagementDescription.js +530 -0
  143. package/dist/nodes/Hubspot/V2/EngagementDescription.js.map +1 -0
  144. package/dist/nodes/Hubspot/V2/FormDescription.d.ts +3 -0
  145. package/dist/nodes/Hubspot/V2/FormDescription.js +297 -0
  146. package/dist/nodes/Hubspot/V2/FormDescription.js.map +1 -0
  147. package/dist/nodes/Hubspot/V2/FormInterface.d.ts +19 -0
  148. package/dist/nodes/Hubspot/V2/FormInterface.js +3 -0
  149. package/dist/nodes/Hubspot/V2/FormInterface.js.map +1 -0
  150. package/dist/nodes/Hubspot/V2/GenericFunctions.js.map +1 -0
  151. package/dist/nodes/Hubspot/V2/HubspotV2.node.d.ts +59 -0
  152. package/dist/nodes/Hubspot/V2/HubspotV2.node.js +2554 -0
  153. package/dist/nodes/Hubspot/V2/HubspotV2.node.js.map +1 -0
  154. package/dist/nodes/Hubspot/V2/TicketDescription.d.ts +3 -0
  155. package/dist/nodes/Hubspot/V2/TicketDescription.js +563 -0
  156. package/dist/nodes/Hubspot/V2/TicketDescription.js.map +1 -0
  157. package/dist/nodes/ItemLists/V2/ItemListsV2.node.js +62 -61
  158. package/dist/nodes/ItemLists/V2/ItemListsV2.node.js.map +1 -1
  159. package/dist/nodes/ItemLists/test/node/workflow.splitOutItems.split_object.json +391 -0
  160. package/dist/nodes/Kafka/KafkaTrigger.node.js +28 -4
  161. package/dist/nodes/Kafka/KafkaTrigger.node.js.map +1 -1
  162. package/dist/nodes/Merge/v1/MergeV1.node.js +2 -0
  163. package/dist/nodes/Merge/v1/MergeV1.node.js.map +1 -1
  164. package/dist/nodes/Microsoft/Excel/MicrosoftExcel.node.d.ts +3 -11
  165. package/dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js +10 -422
  166. package/dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js.map +1 -1
  167. package/dist/nodes/Microsoft/Excel/test/v2/node/table/addTable.workflow.json +78 -0
  168. package/dist/nodes/Microsoft/Excel/test/v2/node/table/append.workflow.json +104 -0
  169. package/dist/nodes/Microsoft/Excel/test/v2/node/table/convertToRange.workflow.json +79 -0
  170. package/dist/nodes/Microsoft/Excel/test/v2/node/table/deleteTable.workflow.json +72 -0
  171. package/dist/nodes/Microsoft/Excel/test/v2/node/table/getColumns.workflow.json +88 -0
  172. package/dist/nodes/Microsoft/Excel/test/v2/node/table/getRows.workflow.json +85 -0
  173. package/dist/nodes/Microsoft/Excel/test/v2/node/table/lookup.workflow.json +88 -0
  174. package/dist/nodes/Microsoft/Excel/test/v2/node/workbook/addWorksheet.workflow.json +65 -0
  175. package/dist/nodes/Microsoft/Excel/test/v2/node/workbook/deleteWorkbook.workflow.json +59 -0
  176. package/dist/nodes/Microsoft/Excel/test/v2/node/workbook/getAll.workflow.json +63 -0
  177. package/dist/nodes/Microsoft/Excel/test/v2/node/worksheet/append.workflow.json +166 -0
  178. package/dist/nodes/Microsoft/Excel/test/v2/node/worksheet/clear.workflow.json +66 -0
  179. package/dist/nodes/Microsoft/Excel/test/v2/node/worksheet/deleteWorksheet.workflow.json +66 -0
  180. package/dist/nodes/Microsoft/Excel/test/v2/node/worksheet/getAll.workflow.json +76 -0
  181. package/dist/nodes/Microsoft/Excel/test/v2/node/worksheet/readRows.workflow.json +137 -0
  182. package/dist/nodes/Microsoft/Excel/test/v2/node/worksheet/update.workflow.json +154 -0
  183. package/dist/nodes/Microsoft/Excel/test/v2/node/worksheet/upsert.workflow.json +162 -0
  184. package/dist/nodes/Microsoft/Excel/v1/GenericFunctions.js.map +1 -0
  185. package/dist/nodes/Microsoft/Excel/v1/MicrosoftExcelV1.node.d.ts +14 -0
  186. package/dist/nodes/Microsoft/Excel/v1/MicrosoftExcelV1.node.js +444 -0
  187. package/dist/nodes/Microsoft/Excel/v1/MicrosoftExcelV1.node.js.map +1 -0
  188. package/dist/nodes/Microsoft/Excel/v1/TableDescription.js.map +1 -0
  189. package/dist/nodes/Microsoft/Excel/v1/WorkbookDescription.js.map +1 -0
  190. package/dist/nodes/Microsoft/Excel/v1/WorksheetDescription.js.map +1 -0
  191. package/dist/nodes/Microsoft/Excel/v2/MicrosoftExcelV2.node.d.ts +12 -0
  192. package/dist/nodes/Microsoft/Excel/v2/MicrosoftExcelV2.node.js +20 -0
  193. package/dist/nodes/Microsoft/Excel/v2/MicrosoftExcelV2.node.js.map +1 -0
  194. package/dist/nodes/Microsoft/Excel/v2/actions/common.descriptions.d.ts +5 -0
  195. package/dist/nodes/Microsoft/Excel/v2/actions/common.descriptions.js +137 -0
  196. package/dist/nodes/Microsoft/Excel/v2/actions/common.descriptions.js.map +1 -0
  197. package/dist/nodes/Microsoft/Excel/v2/actions/node.type.d.ts +11 -0
  198. package/dist/nodes/Microsoft/Excel/v2/actions/node.type.js +3 -0
  199. package/dist/nodes/Microsoft/Excel/v2/actions/node.type.js.map +1 -0
  200. package/dist/nodes/Microsoft/Excel/v2/actions/router.d.ts +3 -0
  201. package/dist/nodes/Microsoft/Excel/v2/actions/router.js +56 -0
  202. package/dist/nodes/Microsoft/Excel/v2/actions/router.js.map +1 -0
  203. package/dist/nodes/Microsoft/Excel/v2/actions/table/Table.resource.d.ts +10 -0
  204. package/dist/nodes/Microsoft/Excel/v2/actions/table/Table.resource.js +106 -0
  205. package/dist/nodes/Microsoft/Excel/v2/actions/table/Table.resource.js.map +1 -0
  206. package/dist/nodes/Microsoft/Excel/v2/actions/table/addTable.operation.d.ts +23 -0
  207. package/dist/nodes/Microsoft/Excel/v2/actions/table/addTable.operation.js +97 -0
  208. package/dist/nodes/Microsoft/Excel/v2/actions/table/addTable.operation.js.map +1 -0
  209. package/dist/nodes/Microsoft/Excel/v2/actions/table/append.operation.d.ts +23 -0
  210. package/dist/nodes/Microsoft/Excel/v2/actions/table/append.operation.js +214 -0
  211. package/dist/nodes/Microsoft/Excel/v2/actions/table/append.operation.js.map +1 -0
  212. package/dist/nodes/Microsoft/Excel/v2/actions/table/convertToRange.operation.d.ts +23 -0
  213. package/dist/nodes/Microsoft/Excel/v2/actions/table/convertToRange.operation.js +44 -0
  214. package/dist/nodes/Microsoft/Excel/v2/actions/table/convertToRange.operation.js.map +1 -0
  215. package/dist/nodes/Microsoft/Excel/v2/actions/table/deleteTable.operation.d.ts +23 -0
  216. package/dist/nodes/Microsoft/Excel/v2/actions/table/deleteTable.operation.js +44 -0
  217. package/dist/nodes/Microsoft/Excel/v2/actions/table/deleteTable.operation.js.map +1 -0
  218. package/dist/nodes/Microsoft/Excel/v2/actions/table/getColumns.operation.d.ts +23 -0
  219. package/dist/nodes/Microsoft/Excel/v2/actions/table/getColumns.operation.js +135 -0
  220. package/dist/nodes/Microsoft/Excel/v2/actions/table/getColumns.operation.js.map +1 -0
  221. package/dist/nodes/Microsoft/Excel/v2/actions/table/getRows.operation.d.ts +23 -0
  222. package/dist/nodes/Microsoft/Excel/v2/actions/table/getRows.operation.js +176 -0
  223. package/dist/nodes/Microsoft/Excel/v2/actions/table/getRows.operation.js.map +1 -0
  224. package/dist/nodes/Microsoft/Excel/v2/actions/table/lookup.operation.d.ts +23 -0
  225. package/dist/nodes/Microsoft/Excel/v2/actions/table/lookup.operation.js +117 -0
  226. package/dist/nodes/Microsoft/Excel/v2/actions/table/lookup.operation.js.map +1 -0
  227. package/dist/nodes/Microsoft/Excel/v2/actions/versionDescription.d.ts +2 -0
  228. package/dist/nodes/Microsoft/Excel/v2/actions/versionDescription.js +85 -0
  229. package/dist/nodes/Microsoft/Excel/v2/actions/versionDescription.js.map +1 -0
  230. package/dist/nodes/Microsoft/Excel/v2/actions/workbook/Workbook.resource.d.ts +6 -0
  231. package/dist/nodes/Microsoft/Excel/v2/actions/workbook/Workbook.resource.js +70 -0
  232. package/dist/nodes/Microsoft/Excel/v2/actions/workbook/Workbook.resource.js.map +1 -0
  233. package/dist/nodes/Microsoft/Excel/v2/actions/workbook/addWorksheet.operation.d.ts +23 -0
  234. package/dist/nodes/Microsoft/Excel/v2/actions/workbook/addWorksheet.operation.js +69 -0
  235. package/dist/nodes/Microsoft/Excel/v2/actions/workbook/addWorksheet.operation.js.map +1 -0
  236. package/dist/nodes/Microsoft/Excel/v2/actions/workbook/deleteWorkbook.operation.d.ts +23 -0
  237. package/dist/nodes/Microsoft/Excel/v2/actions/workbook/deleteWorkbook.operation.js +60 -0
  238. package/dist/nodes/Microsoft/Excel/v2/actions/workbook/deleteWorkbook.operation.js.map +1 -0
  239. package/dist/nodes/Microsoft/Excel/v2/actions/workbook/getAll.operation.d.ts +23 -0
  240. package/dist/nodes/Microsoft/Excel/v2/actions/workbook/getAll.operation.js +94 -0
  241. package/dist/nodes/Microsoft/Excel/v2/actions/workbook/getAll.operation.js.map +1 -0
  242. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/Worksheet.resource.d.ts +10 -0
  243. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/Worksheet.resource.js +106 -0
  244. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/Worksheet.resource.js.map +1 -0
  245. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/append.operation.d.ts +23 -0
  246. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/append.operation.js +183 -0
  247. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/append.operation.js.map +1 -0
  248. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/clear.operation.d.ts +23 -0
  249. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/clear.operation.js +95 -0
  250. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/clear.operation.js.map +1 -0
  251. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/deleteWorksheet.operation.d.ts +23 -0
  252. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/deleteWorksheet.operation.js +41 -0
  253. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/deleteWorksheet.operation.js.map +1 -0
  254. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/getAll.operation.d.ts +23 -0
  255. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/getAll.operation.js +93 -0
  256. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/getAll.operation.js.map +1 -0
  257. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/readRows.operation.d.ts +23 -0
  258. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/readRows.operation.js +165 -0
  259. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/readRows.operation.js.map +1 -0
  260. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/update.operation.d.ts +23 -0
  261. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/update.operation.js +295 -0
  262. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/update.operation.js.map +1 -0
  263. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/upsert.operation.d.ts +23 -0
  264. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/upsert.operation.js +250 -0
  265. package/dist/nodes/Microsoft/Excel/v2/actions/worksheet/upsert.operation.js.map +1 -0
  266. package/dist/nodes/Microsoft/Excel/v2/helpers/interfaces.d.ts +11 -0
  267. package/dist/nodes/Microsoft/Excel/v2/helpers/interfaces.js +3 -0
  268. package/dist/nodes/Microsoft/Excel/v2/helpers/interfaces.js.map +1 -0
  269. package/dist/nodes/Microsoft/Excel/v2/helpers/utils.d.ts +15 -0
  270. package/dist/nodes/Microsoft/Excel/v2/helpers/utils.js +146 -0
  271. package/dist/nodes/Microsoft/Excel/v2/helpers/utils.js.map +1 -0
  272. package/dist/nodes/Microsoft/Excel/v2/methods/index.d.ts +2 -0
  273. package/dist/nodes/Microsoft/Excel/v2/methods/index.js +29 -0
  274. package/dist/nodes/Microsoft/Excel/v2/methods/index.js.map +1 -0
  275. package/dist/nodes/Microsoft/Excel/v2/methods/listSearch.d.ts +4 -0
  276. package/dist/nodes/Microsoft/Excel/v2/methods/listSearch.js +75 -0
  277. package/dist/nodes/Microsoft/Excel/v2/methods/listSearch.js.map +1 -0
  278. package/dist/nodes/Microsoft/Excel/v2/methods/loadOptions.d.ts +4 -0
  279. package/dist/nodes/Microsoft/Excel/v2/methods/loadOptions.js +59 -0
  280. package/dist/nodes/Microsoft/Excel/v2/methods/loadOptions.js.map +1 -0
  281. package/dist/nodes/Microsoft/Excel/v2/transport/index.d.ts +5 -0
  282. package/dist/nodes/Microsoft/Excel/v2/transport/index.js +56 -0
  283. package/dist/nodes/Microsoft/Excel/v2/transport/index.js.map +1 -0
  284. package/dist/nodes/MySql/MySql.node.js +2 -1
  285. package/dist/nodes/MySql/MySql.node.js.map +1 -1
  286. package/dist/nodes/MySql/v1/MySqlV1.node.js +2 -0
  287. package/dist/nodes/MySql/v1/MySqlV1.node.js.map +1 -1
  288. package/dist/nodes/MySql/v2/actions/router.js +1 -0
  289. package/dist/nodes/MySql/v2/actions/router.js.map +1 -1
  290. package/dist/nodes/MySql/v2/actions/versionDescription.js +1 -1
  291. package/dist/nodes/MySql/v2/actions/versionDescription.js.map +1 -1
  292. package/dist/nodes/MySql/v2/transport/index.js +3 -0
  293. package/dist/nodes/MySql/v2/transport/index.js.map +1 -1
  294. package/dist/nodes/Npm/DistTagDescription.d.ts +3 -0
  295. package/dist/nodes/Npm/DistTagDescription.js +94 -0
  296. package/dist/nodes/Npm/DistTagDescription.js.map +1 -0
  297. package/dist/nodes/Npm/Npm.node.d.ts +4 -0
  298. package/dist/nodes/Npm/Npm.node.js +57 -0
  299. package/dist/nodes/Npm/Npm.node.js.map +1 -0
  300. package/dist/nodes/Npm/Npm.node.json +19 -0
  301. package/dist/nodes/Npm/PackageDescription.d.ts +3 -0
  302. package/dist/nodes/Npm/PackageDescription.js +168 -0
  303. package/dist/nodes/Npm/PackageDescription.js.map +1 -0
  304. package/dist/nodes/Npm/npm.svg +4 -0
  305. package/dist/nodes/Npm/test/Npm.workflow.test.json +117 -0
  306. package/dist/nodes/Postgres/Postgres.node.js +2 -1
  307. package/dist/nodes/Postgres/Postgres.node.js.map +1 -1
  308. package/dist/nodes/Postgres/v1/PostgresV1.node.js +2 -0
  309. package/dist/nodes/Postgres/v1/PostgresV1.node.js.map +1 -1
  310. package/dist/nodes/Postgres/v2/actions/router.js +1 -0
  311. package/dist/nodes/Postgres/v2/actions/router.js.map +1 -1
  312. package/dist/nodes/Postgres/v2/actions/versionDescription.js +1 -1
  313. package/dist/nodes/Postgres/v2/actions/versionDescription.js.map +1 -1
  314. package/dist/nodes/Postgres/v2/methods/listSearch.js +4 -2
  315. package/dist/nodes/Postgres/v2/methods/listSearch.js.map +1 -1
  316. package/dist/nodes/Postgres/v2/methods/loadOptions.js +2 -1
  317. package/dist/nodes/Postgres/v2/methods/loadOptions.js.map +1 -1
  318. package/dist/nodes/Postgres/v2/transport/index.js +7 -0
  319. package/dist/nodes/Postgres/v2/transport/index.js.map +1 -1
  320. package/dist/nodes/ReadBinaryFiles/test/ReadBinaryFiles.workflow.json +45 -0
  321. package/dist/nodes/ReadBinaryFiles/test/data/sample.json +3 -0
  322. package/dist/nodes/ReadBinaryFiles/test/data/sample2.json +3 -0
  323. package/dist/nodes/Slack/V1/SlackV1.node.js +2 -0
  324. package/dist/nodes/Slack/V1/SlackV1.node.js.map +1 -1
  325. package/dist/package.json +912 -0
  326. package/dist/types/credentials.json +5 -3
  327. package/dist/types/nodes.json +33 -26
  328. package/dist/utils/constants.d.ts +1 -0
  329. package/dist/utils/constants.js +7 -0
  330. package/dist/utils/constants.js.map +1 -0
  331. package/dist/utils/descriptions.d.ts +2 -0
  332. package/dist/utils/descriptions.js +10 -0
  333. package/dist/utils/descriptions.js.map +1 -0
  334. package/dist/utils/utilities.d.ts +3 -1
  335. package/dist/utils/utilities.js +30 -1
  336. package/dist/utils/utilities.js.map +1 -1
  337. package/package.json +11 -6
  338. package/dist/nodes/Hubspot/CompanyDescription.js.map +0 -1
  339. package/dist/nodes/Hubspot/ContactDescription.js.map +0 -1
  340. package/dist/nodes/Hubspot/ContactListDescription.js.map +0 -1
  341. package/dist/nodes/Hubspot/DealDescription.js.map +0 -1
  342. package/dist/nodes/Hubspot/DealInterface.js.map +0 -1
  343. package/dist/nodes/Hubspot/EngagementDescription.js.map +0 -1
  344. package/dist/nodes/Hubspot/FormDescription.js.map +0 -1
  345. package/dist/nodes/Hubspot/FormInterface.js.map +0 -1
  346. package/dist/nodes/Hubspot/GenericFunctions.js.map +0 -1
  347. package/dist/nodes/Hubspot/TicketDescription.js.map +0 -1
  348. package/dist/nodes/Microsoft/Excel/GenericFunctions.js.map +0 -1
  349. package/dist/nodes/Microsoft/Excel/TableDescription.js.map +0 -1
  350. package/dist/nodes/Microsoft/Excel/WorkbookDescription.js.map +0 -1
  351. package/dist/nodes/Microsoft/Excel/WorksheetDescription.js.map +0 -1
  352. /package/dist/nodes/Hubspot/{CompanyDescription.d.ts → V1/CompanyDescription.d.ts} +0 -0
  353. /package/dist/nodes/Hubspot/{ContactDescription.d.ts → V1/ContactDescription.d.ts} +0 -0
  354. /package/dist/nodes/Hubspot/{ContactDescription.js → V1/ContactDescription.js} +0 -0
  355. /package/dist/nodes/Hubspot/{ContactListDescription.d.ts → V1/ContactListDescription.d.ts} +0 -0
  356. /package/dist/nodes/Hubspot/{ContactListDescription.js → V1/ContactListDescription.js} +0 -0
  357. /package/dist/nodes/Hubspot/{DealDescription.d.ts → V1/DealDescription.d.ts} +0 -0
  358. /package/dist/nodes/Hubspot/{DealDescription.js → V1/DealDescription.js} +0 -0
  359. /package/dist/nodes/Hubspot/{DealInterface.d.ts → V1/DealInterface.d.ts} +0 -0
  360. /package/dist/nodes/Hubspot/{DealInterface.js → V1/DealInterface.js} +0 -0
  361. /package/dist/nodes/Hubspot/{EngagementDescription.d.ts → V1/EngagementDescription.d.ts} +0 -0
  362. /package/dist/nodes/Hubspot/{EngagementDescription.js → V1/EngagementDescription.js} +0 -0
  363. /package/dist/nodes/Hubspot/{FormDescription.d.ts → V1/FormDescription.d.ts} +0 -0
  364. /package/dist/nodes/Hubspot/{FormDescription.js → V1/FormDescription.js} +0 -0
  365. /package/dist/nodes/Hubspot/{FormInterface.d.ts → V1/FormInterface.d.ts} +0 -0
  366. /package/dist/nodes/Hubspot/{FormInterface.js → V1/FormInterface.js} +0 -0
  367. /package/dist/nodes/Hubspot/{TicketDescription.d.ts → V1/TicketDescription.d.ts} +0 -0
  368. /package/dist/nodes/Hubspot/{TicketDescription.js → V1/TicketDescription.js} +0 -0
  369. /package/dist/nodes/Hubspot/{GenericFunctions.d.ts → V2/GenericFunctions.d.ts} +0 -0
  370. /package/dist/nodes/Hubspot/{GenericFunctions.js → V2/GenericFunctions.js} +0 -0
  371. /package/dist/nodes/Microsoft/Excel/{GenericFunctions.d.ts → v1/GenericFunctions.d.ts} +0 -0
  372. /package/dist/nodes/Microsoft/Excel/{GenericFunctions.js → v1/GenericFunctions.js} +0 -0
  373. /package/dist/nodes/Microsoft/Excel/{TableDescription.d.ts → v1/TableDescription.d.ts} +0 -0
  374. /package/dist/nodes/Microsoft/Excel/{TableDescription.js → v1/TableDescription.js} +0 -0
  375. /package/dist/nodes/Microsoft/Excel/{WorkbookDescription.d.ts → v1/WorkbookDescription.d.ts} +0 -0
  376. /package/dist/nodes/Microsoft/Excel/{WorkbookDescription.js → v1/WorkbookDescription.js} +0 -0
  377. /package/dist/nodes/Microsoft/Excel/{WorksheetDescription.d.ts → v1/WorksheetDescription.d.ts} +0 -0
  378. /package/dist/nodes/Microsoft/Excel/{WorksheetDescription.js → v1/WorksheetDescription.js} +0 -0
@@ -1,8 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Code = void 0;
4
+ const JavascriptCodeDescription_1 = require("./descriptions/JavascriptCodeDescription");
5
+ const PythonCodeDescription_1 = require("./descriptions/PythonCodeDescription");
6
+ const JavaScriptSandbox_1 = require("./JavaScriptSandbox");
7
+ const PythonSandbox_1 = require("./PythonSandbox");
4
8
  const Sandbox_1 = require("./Sandbox");
5
9
  const utils_1 = require("./utils");
10
+ const constants_1 = require("../../utils/constants");
6
11
  class Code {
7
12
  constructor() {
8
13
  this.description = {
@@ -10,7 +15,8 @@ class Code {
10
15
  name: 'code',
11
16
  icon: 'fa:code',
12
17
  group: ['transform'],
13
- version: 1,
18
+ version: [1, 2],
19
+ defaultVersion: constants_1.IS_V1_RELEASE ? 2 : 1,
14
20
  description: 'Run custom JavaScript code',
15
21
  defaults: {
16
22
  name: 'Code',
@@ -40,63 +46,81 @@ class Code {
40
46
  default: 'runOnceForAllItems',
41
47
  },
42
48
  {
43
- displayName: 'JavaScript',
44
- name: 'jsCode',
45
- typeOptions: {
46
- editor: 'codeNodeEditor',
47
- },
48
- type: 'string',
49
- default: '',
50
- description: 'JavaScript code to execute.<br><br>Tip: You can use luxon vars like <code>$today</code> for dates and <code>$jmespath</code> for querying JSON structures. <a href="https://docs.n8n.io/nodes/n8n-nodes-base.function">Learn more</a>.',
49
+ displayName: 'Language',
50
+ name: 'language',
51
+ type: 'options',
51
52
  noDataExpression: true,
53
+ displayOptions: {
54
+ show: {
55
+ '@version': [2],
56
+ },
57
+ },
58
+ options: [
59
+ {
60
+ name: 'JavaScript',
61
+ value: 'javaScript',
62
+ },
63
+ {
64
+ name: 'Python (Beta)',
65
+ value: 'python',
66
+ },
67
+ ],
68
+ default: 'javaScript',
52
69
  },
53
- {
54
- displayName: 'Type <code>$</code> for a list of <a target="_blank" href="https://docs.n8n.io/code-examples/methods-variables-reference/">special vars/methods</a>. Debug by using <code>console.log()</code> statements and viewing their output in the browser console.',
55
- name: 'notice',
56
- type: 'notice',
57
- default: '',
58
- },
70
+ ...JavascriptCodeDescription_1.javascriptCodeDescription,
71
+ ...PythonCodeDescription_1.pythonCodeDescription,
59
72
  ],
60
73
  };
61
74
  }
62
75
  async execute() {
76
+ var _a;
63
77
  const nodeMode = this.getNodeParameter('mode', 0);
64
78
  const workflowMode = this.getMode();
65
- if (nodeMode === 'runOnceForAllItems') {
66
- const jsCodeAllItems = this.getNodeParameter('jsCode', 0);
67
- const context = Sandbox_1.getSandboxContext.call(this);
68
- context.items = context.$input.all();
69
- const sandbox = new Sandbox_1.Sandbox(context, jsCodeAllItems, workflowMode, this.helpers);
70
- if (workflowMode === 'manual') {
71
- sandbox.on('console.log', this.sendMessageToUI);
79
+ const language = ((_a = this.getNode()) === null || _a === void 0 ? void 0 : _a.typeVersion) === 2
80
+ ? this.getNodeParameter('language', 0)
81
+ : 'javaScript';
82
+ const codeParameterName = language === 'python' ? 'pythonCode' : 'jsCode';
83
+ const getSandbox = (index = 0) => {
84
+ const code = this.getNodeParameter(codeParameterName, index);
85
+ const context = Sandbox_1.getSandboxContext.call(this, index);
86
+ if (language === 'python') {
87
+ const modules = this.getNodeParameter('modules', index);
88
+ const moduleImports = modules ? modules.split(',').map((m) => m.trim()) : [];
89
+ context.printOverwrite = workflowMode === 'manual' ? this.sendMessageToUI : null;
90
+ return new PythonSandbox_1.PythonSandbox(context, code, moduleImports, index, this.helpers);
72
91
  }
73
- let result;
92
+ else {
93
+ context.items = context.$input.all();
94
+ const sandbox = new JavaScriptSandbox_1.JavaScriptSandbox(context, code, index, workflowMode, this.helpers);
95
+ if (workflowMode === 'manual') {
96
+ sandbox.vm.on('console.log', this.sendMessageToUI);
97
+ }
98
+ return sandbox;
99
+ }
100
+ };
101
+ if (nodeMode === 'runOnceForAllItems') {
102
+ const sandbox = getSandbox();
103
+ let items;
74
104
  try {
75
- result = await sandbox.runCodeAllItems();
105
+ items = await sandbox.runCodeAllItems();
76
106
  }
77
107
  catch (error) {
78
108
  if (!this.continueOnFail())
79
109
  throw error;
80
- result = [{ json: { error: error.message } }];
110
+ items = [{ json: { error: error.message } }];
81
111
  }
82
- for (const item of result) {
112
+ for (const item of items) {
83
113
  (0, utils_1.standardizeOutput)(item.json);
84
114
  }
85
- return this.prepareOutputData(result);
115
+ return this.prepareOutputData(items);
86
116
  }
87
117
  const returnData = [];
88
118
  const items = this.getInputData();
89
119
  for (let index = 0; index < items.length; index++) {
90
- const jsCodeEachItem = this.getNodeParameter('jsCode', index);
91
- const context = Sandbox_1.getSandboxContext.call(this, index);
92
- context.item = context.$input.item;
93
- const sandbox = new Sandbox_1.Sandbox(context, jsCodeEachItem, workflowMode, this.helpers);
94
- if (workflowMode === 'manual') {
95
- sandbox.on('console.log', this.sendMessageToUI);
96
- }
120
+ const sandbox = getSandbox(index);
97
121
  let result;
98
122
  try {
99
- result = await sandbox.runCodeEachItem(index);
123
+ result = await sandbox.runCodeEachItem();
100
124
  }
101
125
  catch (error) {
102
126
  if (!this.continueOnFail())
@@ -1 +1 @@
1
- {"version":3,"file":"Code.node.js","sourceRoot":"","sources":["../../../nodes/Code/Code.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Code.node.js","sourceRoot":"","sources":["../../../nodes/Code/Code.node.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  }
12
12
  ]
13
13
  },
14
- "alias": ["cpde", "Javascript", "JS", "Script", "Custom Code", "Function"],
14
+ "alias": ["cpde", "Javascript", "JS", "Python", "Script", "Custom Code", "Function"],
15
15
  "subcategories": {
16
16
  "Core Nodes": ["Data Transformation"]
17
17
  }
@@ -0,0 +1,11 @@
1
+ import { NodeVM } from 'vm2';
2
+ import type { IExecuteFunctions, INodeExecutionData, WorkflowExecuteMode } from 'n8n-workflow';
3
+ import type { SandboxContext } from './Sandbox';
4
+ import { Sandbox } from './Sandbox';
5
+ export declare class JavaScriptSandbox extends Sandbox {
6
+ private jsCode;
7
+ readonly vm: NodeVM;
8
+ constructor(context: SandboxContext, jsCode: string, itemIndex: number | undefined, workflowMode: WorkflowExecuteMode, helpers: IExecuteFunctions['helpers']);
9
+ runCodeAllItems(): Promise<INodeExecutionData[]>;
10
+ runCodeEachItem(): Promise<INodeExecutionData | undefined>;
11
+ }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JavaScriptSandbox = void 0;
4
+ const vm2_1 = require("vm2");
5
+ const ValidationError_1 = require("./ValidationError");
6
+ const ExecutionError_1 = require("./ExecutionError");
7
+ const Sandbox_1 = require("./Sandbox");
8
+ const { NODE_FUNCTION_ALLOW_BUILTIN: builtIn, NODE_FUNCTION_ALLOW_EXTERNAL: external } = process.env;
9
+ const getSandboxOptions = (context, workflowMode) => ({
10
+ console: workflowMode === 'manual' ? 'redirect' : 'inherit',
11
+ sandbox: context,
12
+ require: {
13
+ builtin: builtIn ? builtIn.split(',') : [],
14
+ external: external ? { modules: external.split(','), transitive: false } : false,
15
+ },
16
+ });
17
+ class JavaScriptSandbox extends Sandbox_1.Sandbox {
18
+ constructor(context, jsCode, itemIndex, workflowMode, helpers) {
19
+ super({
20
+ object: {
21
+ singular: 'object',
22
+ plural: 'objects',
23
+ },
24
+ }, itemIndex, helpers);
25
+ this.jsCode = jsCode;
26
+ this.vm = new vm2_1.NodeVM(getSandboxOptions(context, workflowMode));
27
+ }
28
+ async runCodeAllItems() {
29
+ const script = `module.exports = async function() {${this.jsCode}\n}()`;
30
+ let executionResult;
31
+ try {
32
+ executionResult = await this.vm.run(script, __dirname);
33
+ }
34
+ catch (error) {
35
+ if (error.message === 'items is not defined' && !/(let|const|var) items =/.test(script)) {
36
+ const quoted = error.message.replace('items', '`items`');
37
+ error.message = quoted + '. Did you mean `$input.all()`?';
38
+ }
39
+ throw new ExecutionError_1.ExecutionError(error);
40
+ }
41
+ if (executionResult === null)
42
+ return [];
43
+ return this.validateRunCodeAllItems(executionResult);
44
+ }
45
+ async runCodeEachItem() {
46
+ var _a;
47
+ const script = `module.exports = async function() {${this.jsCode}\n}()`;
48
+ const match = this.jsCode.match(/\$input\.(?<disallowedMethod>first|last|all|itemMatching)/);
49
+ if ((_a = match === null || match === void 0 ? void 0 : match.groups) === null || _a === void 0 ? void 0 : _a.disallowedMethod) {
50
+ const { disallowedMethod } = match.groups;
51
+ const lineNumber = this.jsCode.split('\n').findIndex((line) => {
52
+ return line.includes(disallowedMethod) && !line.startsWith('//') && !line.startsWith('*');
53
+ }) + 1;
54
+ const disallowedMethodFound = lineNumber !== 0;
55
+ if (disallowedMethodFound) {
56
+ throw new ValidationError_1.ValidationError({
57
+ message: `Can't use .${disallowedMethod}() here`,
58
+ description: "This is only available in 'Run Once for All Items' mode",
59
+ itemIndex: this.itemIndex,
60
+ lineNumber,
61
+ });
62
+ }
63
+ }
64
+ let executionResult;
65
+ try {
66
+ executionResult = await this.vm.run(script, __dirname);
67
+ }
68
+ catch (error) {
69
+ if (error.message === 'item is not defined' && !/(let|const|var) item =/.test(script)) {
70
+ const quoted = error.message.replace('item', '`item`');
71
+ error.message = quoted + '. Did you mean `$input.item.json`?';
72
+ }
73
+ throw new ExecutionError_1.ExecutionError(error, this.itemIndex);
74
+ }
75
+ if (executionResult === null)
76
+ return;
77
+ return this.validateRunCodeEachItem(executionResult);
78
+ }
79
+ }
80
+ exports.JavaScriptSandbox = JavaScriptSandbox;
81
+ //# sourceMappingURL=JavaScriptSandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JavaScriptSandbox.js","sourceRoot":"","sources":["../../../nodes/Code/JavaScriptSandbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { PyodideInterface } from 'pyodide';
2
+ export declare function LoadPyodide(): Promise<PyodideInterface>;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.LoadPyodide = void 0;
27
+ let pyodideInstance;
28
+ async function LoadPyodide() {
29
+ if (pyodideInstance === undefined) {
30
+ globalThis.Blob = (await Promise.resolve().then(() => __importStar(require('node:buffer')))).Blob;
31
+ const { emitWarning } = process;
32
+ process.emitWarning = (warning, ...args) => {
33
+ if (args[0] === 'ExperimentalWarning') {
34
+ return;
35
+ }
36
+ if (args[0] && typeof args[0] === 'object' && args[0].type === 'ExperimentalWarning') {
37
+ return;
38
+ }
39
+ return emitWarning(warning, ...args);
40
+ };
41
+ const { loadPyodide } = await Promise.resolve().then(() => __importStar(require('pyodide')));
42
+ pyodideInstance = await loadPyodide();
43
+ }
44
+ return pyodideInstance;
45
+ }
46
+ exports.LoadPyodide = LoadPyodide;
47
+ //# sourceMappingURL=Pyodide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pyodide.js","sourceRoot":"","sources":["../../../nodes/Code/Pyodide.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAI,eAA6C,CAAC;AAE3C,KAAK,UAAU,WAAW;IAChC,IAAI,eAAe,KAAK,SAAS,EAAE;QAGlC,UAAU,CAAC,IAAI,GAAG,CAAC,wDAAa,aAAa,GAAC,CAAC,CAAC,IAAI,CAAC;QAGrD,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAChC,OAAO,CAAC,WAAW,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;YAC1C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,qBAAqB,EAAE;gBACtC,OAAO;aACP;YACD,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,EAAE;gBACrF,OAAO;aACP;YACD,OAAO,WAAW,CAAC,OAAO,EAAE,GAAI,IAAiB,CAAC,CAAC;QACpD,CAAC,CAAC;QAEF,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,SAAS,GAAC,CAAC;QAChD,eAAe,GAAG,MAAM,WAAW,EAAE,CAAC;KACtC;IAED,OAAO,eAAe,CAAC;AACxB,CAAC;AAvBD,kCAuBC"}
@@ -0,0 +1,13 @@
1
+ import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
2
+ import type { SandboxContext } from './Sandbox';
3
+ import { Sandbox } from './Sandbox';
4
+ export declare class PythonSandbox extends Sandbox {
5
+ private pythonCode;
6
+ private moduleImports;
7
+ private readonly context;
8
+ constructor(context: SandboxContext, pythonCode: string, moduleImports: string[], itemIndex: number | undefined, helpers: IExecuteFunctions['helpers']);
9
+ runCodeAllItems(): Promise<INodeExecutionData[]>;
10
+ runCodeEachItem(): Promise<INodeExecutionData>;
11
+ private runCodeInPython;
12
+ private getPrettyError;
13
+ }
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PythonSandbox = void 0;
4
+ const Pyodide_1 = require("./Pyodide");
5
+ const Sandbox_1 = require("./Sandbox");
6
+ const envAccessBlocked = process.env.N8N_BLOCK_ENV_ACCESS_IN_NODE === 'true';
7
+ class PythonSandbox extends Sandbox_1.Sandbox {
8
+ constructor(context, pythonCode, moduleImports, itemIndex, helpers) {
9
+ super({
10
+ object: {
11
+ singular: 'dictionary',
12
+ plural: 'dictionaries',
13
+ },
14
+ }, itemIndex, helpers);
15
+ this.pythonCode = pythonCode;
16
+ this.moduleImports = moduleImports;
17
+ this.context = Object.keys(context).reduce((acc, key) => {
18
+ acc[key.startsWith('$') ? key.replace(/^\$/, '_') : key] = context[key];
19
+ return acc;
20
+ }, {});
21
+ }
22
+ async runCodeAllItems() {
23
+ const executionResult = await this.runCodeInPython();
24
+ return this.validateRunCodeAllItems(executionResult);
25
+ }
26
+ async runCodeEachItem() {
27
+ const executionResult = await this.runCodeInPython();
28
+ return this.validateRunCodeEachItem(executionResult);
29
+ }
30
+ async runCodeInPython() {
31
+ const runCode = `
32
+ from _pyodide_core import jsproxy_typedict
33
+ from js import Object
34
+ jsproxy_typedict[0] = type(Object.new().as_object_map())
35
+
36
+ if printOverwrite:
37
+ print = printOverwrite
38
+
39
+ async def __main():
40
+ ${this.pythonCode
41
+ .split('\n')
42
+ .map((line) => ' ' + line)
43
+ .join('\n')}
44
+ await __main()
45
+ `;
46
+ const pyodide = await (0, Pyodide_1.LoadPyodide)();
47
+ const moduleImportsFiltered = this.moduleImports.filter((importModule) => !['asyncio', 'pyodide', 'math'].includes(importModule));
48
+ if (moduleImportsFiltered.length) {
49
+ await pyodide.loadPackage('micropip');
50
+ const micropip = pyodide.pyimport('micropip');
51
+ await Promise.all(moduleImportsFiltered.map((importModule) => micropip.install(importModule)));
52
+ }
53
+ let executionResult;
54
+ try {
55
+ const dict = pyodide.globals.get('dict');
56
+ const globalsDict = dict();
57
+ for (const key of Object.keys(this.context)) {
58
+ if ((key === '_env' && envAccessBlocked) || key === '_node')
59
+ continue;
60
+ const value = this.context[key];
61
+ globalsDict.set(key, value);
62
+ }
63
+ executionResult = await pyodide.runPythonAsync(runCode, { globals: globalsDict });
64
+ globalsDict.destroy();
65
+ }
66
+ catch (error) {
67
+ throw this.getPrettyError(error);
68
+ }
69
+ if (executionResult === null || executionResult === void 0 ? void 0 : executionResult.toJs) {
70
+ return executionResult.toJs({
71
+ dict_converter: Object.fromEntries,
72
+ create_proxies: false,
73
+ });
74
+ }
75
+ return executionResult;
76
+ }
77
+ getPrettyError(error) {
78
+ const errorTypeIndex = error.message.indexOf(error.type);
79
+ if (errorTypeIndex !== -1) {
80
+ return new Error(error.message.slice(errorTypeIndex));
81
+ }
82
+ return error;
83
+ }
84
+ }
85
+ exports.PythonSandbox = PythonSandbox;
86
+ //# sourceMappingURL=PythonSandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PythonSandbox.js","sourceRoot":"","sources":["../../../nodes/Code/PythonSandbox.ts"],"names":[],"mappings":";;;AAEA,uCAAwC;AAExC,uCAAoC;AAQpC,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,MAAM,CAAC;AAE7E,MAAa,aAAc,SAAQ,iBAAO;IAGzC,YACC,OAAuB,EACf,UAAkB,EAClB,aAAuB,EAC/B,SAA6B,EAC7B,OAAqC;QAErC,KAAK,CACJ;YACC,MAAM,EAAE;gBACP,QAAQ,EAAE,YAAY;gBACtB,MAAM,EAAE,cAAc;aACtB;SACD,EACD,SAAS,EACT,OAAO,CACP,CAAC;QAdM,eAAU,GAAV,UAAU,CAAQ;QAClB,kBAAa,GAAb,aAAa,CAAU;QAgB/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACvD,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YACxE,OAAO,GAAG,CAAC;QACZ,CAAC,EAAE,EAA0B,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,eAAe;QACpB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,eAAe,EAAwB,CAAC;QAC3E,OAAO,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,eAAe;QACpB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,eAAe,EAAsB,CAAC;QACzE,OAAO,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,eAAe;QAG5B,MAAM,OAAO,GAAG;;;;;;;;;EAShB,IAAI,CAAC,UAAU;aACf,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;aAC1B,IAAI,CAAC,IAAI,CAAC;;CAEX,CAAC;QACA,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAW,GAAE,CAAC;QAEpC,MAAM,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CACtD,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CACxE,CAAC;QAEF,IAAI,qBAAqB,CAAC,MAAM,EAAE;YACjC,MAAM,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC9C,MAAM,OAAO,CAAC,GAAG,CAChB,qBAAqB,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAC3E,CAAC;SACF;QAED,IAAI,eAAe,CAAC;QACpB,IAAI;YACH,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,WAAW,GAAgB,IAAI,EAAE,CAAC;YACxC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC5C,IAAI,CAAC,GAAG,KAAK,MAAM,IAAI,gBAAgB,CAAC,IAAI,GAAG,KAAK,OAAO;oBAAE,SAAS;gBACtE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAChC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAC5B;YAED,eAAe,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAClF,WAAW,CAAC,OAAO,EAAE,CAAC;SACtB;QAAC,OAAO,KAAK,EAAE;YACf,MAAM,IAAI,CAAC,cAAc,CAAC,KAAqB,CAAC,CAAC;SACjD;QAED,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,EAAE;YAC1B,OAAO,eAAe,CAAC,IAAI,CAAC;gBAC3B,cAAc,EAAE,MAAM,CAAC,WAAW;gBAClC,cAAc,EAAE,KAAK;aACrB,CAAM,CAAC;SACR;QAED,OAAO,eAAoB,CAAC;IAC7B,CAAC;IAEO,cAAc,CAAC,KAAmB;QACzC,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;YAC1B,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;SACtD;QAED,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AAxGD,sCAwGC"}
@@ -1,19 +1,28 @@
1
- import { NodeVM } from 'vm2';
2
- import type { IExecuteFunctions, INodeExecutionData, IWorkflowDataProxyData, WorkflowExecuteMode } from 'n8n-workflow';
3
- interface SandboxContext extends IWorkflowDataProxyData {
1
+ import type { IExecuteFunctions, INodeExecutionData, IWorkflowDataProxyData } from 'n8n-workflow';
2
+ interface SandboxTextKeys {
3
+ object: {
4
+ singular: string;
5
+ plural: string;
6
+ };
7
+ }
8
+ export interface SandboxContext extends IWorkflowDataProxyData {
4
9
  $getNodeParameter: IExecuteFunctions['getNodeParameter'];
5
10
  $getWorkflowStaticData: IExecuteFunctions['getWorkflowStaticData'];
6
11
  helpers: IExecuteFunctions['helpers'];
7
12
  }
8
- export declare class Sandbox extends NodeVM {
9
- private jsCode;
13
+ export declare const REQUIRED_N8N_ITEM_KEYS: Set<string>;
14
+ export declare function getSandboxContext(this: IExecuteFunctions, index: number): SandboxContext;
15
+ export declare abstract class Sandbox {
16
+ private textKeys;
17
+ protected itemIndex: number | undefined;
10
18
  private helpers;
11
- private itemIndex;
12
- constructor(context: SandboxContext, jsCode: string, workflowMode: WorkflowExecuteMode, helpers: IExecuteFunctions['helpers']);
13
- runCodeAllItems(): Promise<INodeExecutionData[]>;
14
- runCodeEachItem(itemIndex: number): Promise<INodeExecutionData | undefined>;
15
- private validateResult;
19
+ constructor(textKeys: SandboxTextKeys, itemIndex: number | undefined, helpers: IExecuteFunctions['helpers']);
20
+ abstract runCodeAllItems(): Promise<INodeExecutionData[]>;
21
+ abstract runCodeEachItem(): Promise<INodeExecutionData | undefined>;
22
+ validateRunCodeEachItem(executionResult: INodeExecutionData | undefined): INodeExecutionData;
23
+ validateRunCodeAllItems(executionResult: INodeExecutionData | INodeExecutionData[] | undefined, itemIndex?: number): INodeExecutionData[];
24
+ private getTextKey;
25
+ private validateItem;
16
26
  private validateTopLevelKeys;
17
27
  }
18
- export declare function getSandboxContext(this: IExecuteFunctions, index?: number): SandboxContext;
19
28
  export {};