n8n-nodes-hudu 1.4.3 → 1.4.5

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 (306) hide show
  1. package/README.md +18 -53
  2. package/dist/credentials/HuduApi.credentials.js +45 -45
  3. package/dist/index.js +13 -13
  4. package/dist/nodes/Hudu/Hudu.node.js +338 -325
  5. package/dist/nodes/Hudu/Hudu.node.js.map +1 -1
  6. package/dist/nodes/Hudu/Hudu.node.json +1 -1
  7. package/dist/nodes/Hudu/Hudu.node.ts +448 -442
  8. package/dist/nodes/Hudu/descriptions/activity_logs.description.js +170 -170
  9. package/dist/nodes/Hudu/descriptions/api_info.description.js +26 -26
  10. package/dist/nodes/Hudu/descriptions/articles.description.js +701 -675
  11. package/dist/nodes/Hudu/descriptions/articles.description.js.map +1 -1
  12. package/dist/nodes/Hudu/descriptions/articles.description.ts +45 -15
  13. package/dist/nodes/Hudu/descriptions/asset_layout_fields.description.js +442 -442
  14. package/dist/nodes/Hudu/descriptions/asset_layout_fields.description.js.map +1 -1
  15. package/dist/nodes/Hudu/descriptions/asset_layout_fields.description.ts +2 -2
  16. package/dist/nodes/Hudu/descriptions/asset_layouts.description.js +589 -596
  17. package/dist/nodes/Hudu/descriptions/asset_layouts.description.js.map +1 -1
  18. package/dist/nodes/Hudu/descriptions/asset_layouts.description.ts +1 -7
  19. package/dist/nodes/Hudu/descriptions/asset_passwords.description.js +589 -589
  20. package/dist/nodes/Hudu/descriptions/asset_passwords.description.js.map +1 -1
  21. package/dist/nodes/Hudu/descriptions/asset_passwords.description.ts +2 -2
  22. package/dist/nodes/Hudu/descriptions/assets.description.js +565 -565
  23. package/dist/nodes/Hudu/descriptions/cards.description.js +181 -181
  24. package/dist/nodes/Hudu/descriptions/companies.description.js +667 -667
  25. package/dist/nodes/Hudu/descriptions/companies.description.js.map +1 -1
  26. package/dist/nodes/Hudu/descriptions/companies.description.ts +2 -2
  27. package/dist/nodes/Hudu/descriptions/expirations.description.js +137 -137
  28. package/dist/nodes/Hudu/descriptions/folders.description.js +305 -305
  29. package/dist/nodes/Hudu/descriptions/folders.description.js.map +1 -1
  30. package/dist/nodes/Hudu/descriptions/folders.description.ts +2 -2
  31. package/dist/nodes/Hudu/descriptions/groups.description.js +114 -0
  32. package/dist/nodes/Hudu/descriptions/groups.description.js.map +1 -0
  33. package/dist/nodes/Hudu/descriptions/groups.description.ts +115 -0
  34. package/dist/nodes/Hudu/descriptions/index.js +46 -45
  35. package/dist/nodes/Hudu/descriptions/index.js.map +1 -1
  36. package/dist/nodes/Hudu/descriptions/index.ts +1 -0
  37. package/dist/nodes/Hudu/descriptions/ip_addresses.description.js +743 -743
  38. package/dist/nodes/Hudu/descriptions/ip_addresses.description.js.map +1 -1
  39. package/dist/nodes/Hudu/descriptions/ip_addresses.description.ts +20 -19
  40. package/dist/nodes/Hudu/descriptions/list_options.description.js +90 -90
  41. package/dist/nodes/Hudu/descriptions/lists.description.js +156 -156
  42. package/dist/nodes/Hudu/descriptions/magic_dash.description.js +252 -252
  43. package/dist/nodes/Hudu/descriptions/magic_dash.description.js.map +1 -1
  44. package/dist/nodes/Hudu/descriptions/magic_dash.description.ts +270 -270
  45. package/dist/nodes/Hudu/descriptions/matchers.description.js +202 -202
  46. package/dist/nodes/Hudu/descriptions/matchers.description.js.map +1 -1
  47. package/dist/nodes/Hudu/descriptions/matchers.description.ts +2 -2
  48. package/dist/nodes/Hudu/descriptions/networks.description.js +759 -759
  49. package/dist/nodes/Hudu/descriptions/networks.description.js.map +1 -1
  50. package/dist/nodes/Hudu/descriptions/networks.description.ts +17 -17
  51. package/dist/nodes/Hudu/descriptions/passwordFolders.descriptions.js +297 -119
  52. package/dist/nodes/Hudu/descriptions/passwordFolders.descriptions.js.map +1 -1
  53. package/dist/nodes/Hudu/descriptions/passwordFolders.descriptions.ts +183 -2
  54. package/dist/nodes/Hudu/descriptions/procedure_tasks.description.js +378 -378
  55. package/dist/nodes/Hudu/descriptions/procedure_tasks.description.js.map +1 -1
  56. package/dist/nodes/Hudu/descriptions/procedure_tasks.description.ts +2 -2
  57. package/dist/nodes/Hudu/descriptions/procedures.description.js +471 -471
  58. package/dist/nodes/Hudu/descriptions/procedures.description.js.map +1 -1
  59. package/dist/nodes/Hudu/descriptions/procedures.description.ts +2 -2
  60. package/dist/nodes/Hudu/descriptions/public_photos.description.js +214 -214
  61. package/dist/nodes/Hudu/descriptions/rack_storage_items.description.js +334 -334
  62. package/dist/nodes/Hudu/descriptions/rack_storage_items.description.js.map +1 -1
  63. package/dist/nodes/Hudu/descriptions/rack_storage_items.description.ts +2 -2
  64. package/dist/nodes/Hudu/descriptions/rack_storages.description.js +609 -609
  65. package/dist/nodes/Hudu/descriptions/rack_storages.description.js.map +1 -1
  66. package/dist/nodes/Hudu/descriptions/rack_storages.description.ts +2 -2
  67. package/dist/nodes/Hudu/descriptions/relations.description.js +226 -226
  68. package/dist/nodes/Hudu/descriptions/resources.js +133 -129
  69. package/dist/nodes/Hudu/descriptions/resources.js.map +1 -1
  70. package/dist/nodes/Hudu/descriptions/resources.ts +8 -4
  71. package/dist/nodes/Hudu/descriptions/uploads.description.js +84 -84
  72. package/dist/nodes/Hudu/descriptions/users.description.js +179 -179
  73. package/dist/nodes/Hudu/descriptions/vlan_zones.description.js +278 -278
  74. package/dist/nodes/Hudu/descriptions/vlan_zones.description.js.map +1 -1
  75. package/dist/nodes/Hudu/descriptions/vlan_zones.description.ts +2 -2
  76. package/dist/nodes/Hudu/descriptions/vlans.description.js +348 -324
  77. package/dist/nodes/Hudu/descriptions/vlans.description.js.map +1 -1
  78. package/dist/nodes/Hudu/descriptions/vlans.description.ts +50 -26
  79. package/dist/nodes/Hudu/descriptions/websites.description.js +865 -865
  80. package/dist/nodes/Hudu/descriptions/websites.description.js.map +1 -1
  81. package/dist/nodes/Hudu/descriptions/websites.description.ts +10 -10
  82. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayoutFieldValues.js +65 -66
  83. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayoutFieldValues.js.map +1 -1
  84. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayoutFieldValues.ts +1 -1
  85. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayoutFields.js +229 -227
  86. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayoutFields.js.map +1 -1
  87. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayoutFields.ts +3 -0
  88. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayouts.js +40 -41
  89. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayouts.js.map +1 -1
  90. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getCustomFieldsLayoutFields.js +54 -55
  91. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getCustomFieldsLayoutFields.js.map +1 -1
  92. package/dist/nodes/Hudu/optionLoaders/asset_layouts/getCustomFieldsLayoutFields.ts +1 -1
  93. package/dist/nodes/Hudu/optionLoaders/asset_layouts/index.js +20 -20
  94. package/dist/nodes/Hudu/optionLoaders/assets/index.js +1 -18
  95. package/dist/nodes/Hudu/optionLoaders/assets/index.js.map +1 -1
  96. package/dist/nodes/Hudu/optionLoaders/assets/index.ts +1 -2
  97. package/dist/nodes/Hudu/optionLoaders/companies/getCompanies.js +32 -33
  98. package/dist/nodes/Hudu/optionLoaders/companies/getCompanies.js.map +1 -1
  99. package/dist/nodes/Hudu/optionLoaders/companies/index.js +17 -17
  100. package/dist/nodes/Hudu/optionLoaders/groups/index.js +18 -0
  101. package/dist/nodes/Hudu/optionLoaders/groups/index.js.map +1 -0
  102. package/dist/nodes/Hudu/optionLoaders/groups/index.ts +3 -0
  103. package/dist/nodes/Hudu/optionLoaders/groups/loadGroups.js +24 -0
  104. package/dist/nodes/Hudu/optionLoaders/groups/loadGroups.js.map +1 -0
  105. package/dist/nodes/Hudu/optionLoaders/groups/loadGroups.ts +43 -0
  106. package/dist/nodes/Hudu/optionLoaders/index.js +22 -20
  107. package/dist/nodes/Hudu/optionLoaders/index.js.map +1 -1
  108. package/dist/nodes/Hudu/optionLoaders/index.ts +3 -0
  109. package/dist/nodes/Hudu/optionLoaders/lists/getLists.js +29 -30
  110. package/dist/nodes/Hudu/optionLoaders/lists/getLists.js.map +1 -1
  111. package/dist/nodes/Hudu/optionLoaders/lists/index.js +17 -17
  112. package/dist/nodes/Hudu/optionLoaders/users/getUsers.js +38 -39
  113. package/dist/nodes/Hudu/optionLoaders/users/getUsers.js.map +1 -1
  114. package/dist/nodes/Hudu/optionLoaders/users/index.js +17 -17
  115. package/dist/nodes/Hudu/optionLoaders/vlan_zones/index.js +18 -0
  116. package/dist/nodes/Hudu/optionLoaders/vlan_zones/index.js.map +1 -0
  117. package/dist/nodes/Hudu/optionLoaders/vlan_zones/index.ts +3 -0
  118. package/dist/nodes/Hudu/optionLoaders/vlan_zones/loadVlanZones.js +18 -0
  119. package/dist/nodes/Hudu/optionLoaders/vlan_zones/loadVlanZones.js.map +1 -0
  120. package/dist/nodes/Hudu/optionLoaders/vlan_zones/loadVlanZones.ts +30 -0
  121. package/dist/nodes/Hudu/resources/activity_logs/activity_logs.handler.js +17 -18
  122. package/dist/nodes/Hudu/resources/activity_logs/activity_logs.handler.js.map +1 -1
  123. package/dist/nodes/Hudu/resources/activity_logs/activity_logs.types.js +2 -2
  124. package/dist/nodes/Hudu/resources/api_info/api_info.handler.js +14 -15
  125. package/dist/nodes/Hudu/resources/api_info/api_info.handler.js.map +1 -1
  126. package/dist/nodes/Hudu/resources/api_info/api_info.types.js +2 -2
  127. package/dist/nodes/Hudu/resources/articles/articles.handler.js +214 -206
  128. package/dist/nodes/Hudu/resources/articles/articles.handler.js.map +1 -1
  129. package/dist/nodes/Hudu/resources/articles/articles.handler.ts +18 -1
  130. package/dist/nodes/Hudu/resources/articles/articles.types.js +8 -8
  131. package/dist/nodes/Hudu/resources/asset_layout_fields/asset_layout_fields.handler.js +100 -101
  132. package/dist/nodes/Hudu/resources/asset_layout_fields/asset_layout_fields.handler.js.map +1 -1
  133. package/dist/nodes/Hudu/resources/asset_layout_fields/asset_layout_fields.handler.ts +2 -2
  134. package/dist/nodes/Hudu/resources/asset_layout_fields/asset_layout_fields.types.js +2 -2
  135. package/dist/nodes/Hudu/resources/asset_layouts/asset_layouts.handler.js +92 -93
  136. package/dist/nodes/Hudu/resources/asset_layouts/asset_layouts.handler.js.map +1 -1
  137. package/dist/nodes/Hudu/resources/asset_layouts/asset_layouts.handler.ts +1 -1
  138. package/dist/nodes/Hudu/resources/asset_layouts/asset_layouts.types.js +2 -2
  139. package/dist/nodes/Hudu/resources/asset_passwords/asset_passwords.handler.js +106 -107
  140. package/dist/nodes/Hudu/resources/asset_passwords/asset_passwords.handler.js.map +1 -1
  141. package/dist/nodes/Hudu/resources/asset_passwords/asset_passwords.handler.ts +2 -2
  142. package/dist/nodes/Hudu/resources/asset_passwords/asset_passwords.types.js +2 -2
  143. package/dist/nodes/Hudu/resources/assets/assets.handler.js +227 -227
  144. package/dist/nodes/Hudu/resources/assets/assets.handler.js.map +1 -1
  145. package/dist/nodes/Hudu/resources/assets/assets.handler.ts +6 -5
  146. package/dist/nodes/Hudu/resources/assets/assets.types.js +2 -2
  147. package/dist/nodes/Hudu/resources/cards/cards.handler.js +21 -22
  148. package/dist/nodes/Hudu/resources/cards/cards.handler.js.map +1 -1
  149. package/dist/nodes/Hudu/resources/cards/cards.types.js +2 -2
  150. package/dist/nodes/Hudu/resources/companies/companies.handler.js +94 -95
  151. package/dist/nodes/Hudu/resources/companies/companies.handler.js.map +1 -1
  152. package/dist/nodes/Hudu/resources/companies/companies.handler.ts +2 -2
  153. package/dist/nodes/Hudu/resources/companies/companies.types.js +2 -2
  154. package/dist/nodes/Hudu/resources/expirations/expirations.handler.js +19 -20
  155. package/dist/nodes/Hudu/resources/expirations/expirations.handler.js.map +1 -1
  156. package/dist/nodes/Hudu/resources/expirations/expirations.types.js +2 -2
  157. package/dist/nodes/Hudu/resources/folders/folders.handler.js +91 -92
  158. package/dist/nodes/Hudu/resources/folders/folders.handler.js.map +1 -1
  159. package/dist/nodes/Hudu/resources/folders/folders.handler.ts +3 -3
  160. package/dist/nodes/Hudu/resources/folders/folders.types.js +13 -13
  161. package/dist/nodes/Hudu/resources/groups/groups.handler.js +26 -0
  162. package/dist/nodes/Hudu/resources/groups/groups.handler.js.map +1 -0
  163. package/dist/nodes/Hudu/resources/groups/groups.handler.ts +44 -0
  164. package/dist/nodes/Hudu/resources/groups/groups.types.js +3 -0
  165. package/dist/nodes/Hudu/resources/groups/groups.types.js.map +1 -0
  166. package/dist/nodes/Hudu/resources/groups/groups.types.ts +18 -0
  167. package/dist/nodes/Hudu/resources/index.js +76 -74
  168. package/dist/nodes/Hudu/resources/index.js.map +1 -1
  169. package/dist/nodes/Hudu/resources/index.ts +2 -0
  170. package/dist/nodes/Hudu/resources/ip_addresses/ip_addresses.handler.js +131 -100
  171. package/dist/nodes/Hudu/resources/ip_addresses/ip_addresses.handler.js.map +1 -1
  172. package/dist/nodes/Hudu/resources/ip_addresses/ip_addresses.handler.ts +41 -4
  173. package/dist/nodes/Hudu/resources/ip_addresses/ip_addresses.types.js +2 -2
  174. package/dist/nodes/Hudu/resources/list_options/list_options.handler.js +218 -219
  175. package/dist/nodes/Hudu/resources/list_options/list_options.handler.js.map +1 -1
  176. package/dist/nodes/Hudu/resources/list_options/list_options.handler.ts +1 -0
  177. package/dist/nodes/Hudu/resources/list_options/list_options.types.js +2 -2
  178. package/dist/nodes/Hudu/resources/lists/lists.handler.js +65 -66
  179. package/dist/nodes/Hudu/resources/lists/lists.handler.js.map +1 -1
  180. package/dist/nodes/Hudu/resources/lists/lists.handler.ts +1 -0
  181. package/dist/nodes/Hudu/resources/lists/lists.types.js +2 -2
  182. package/dist/nodes/Hudu/resources/magic_dash/magic_dash.handler.js +56 -57
  183. package/dist/nodes/Hudu/resources/magic_dash/magic_dash.handler.js.map +1 -1
  184. package/dist/nodes/Hudu/resources/magic_dash/magic_dash.handler.ts +85 -85
  185. package/dist/nodes/Hudu/resources/magic_dash/magic_dash.types.js +2 -2
  186. package/dist/nodes/Hudu/resources/matchers/matchers.handler.js +45 -46
  187. package/dist/nodes/Hudu/resources/matchers/matchers.handler.js.map +1 -1
  188. package/dist/nodes/Hudu/resources/matchers/matchers.handler.ts +1 -1
  189. package/dist/nodes/Hudu/resources/matchers/matchers.types.js +2 -2
  190. package/dist/nodes/Hudu/resources/networks/networks.handler.js +117 -106
  191. package/dist/nodes/Hudu/resources/networks/networks.handler.js.map +1 -1
  192. package/dist/nodes/Hudu/resources/networks/networks.handler.ts +12 -4
  193. package/dist/nodes/Hudu/resources/networks/networks.types.js +2 -2
  194. package/dist/nodes/Hudu/resources/password_folders/password_folders.handler.js +100 -28
  195. package/dist/nodes/Hudu/resources/password_folders/password_folders.handler.js.map +1 -1
  196. package/dist/nodes/Hudu/resources/password_folders/password_folders.handler.ts +90 -2
  197. package/dist/nodes/Hudu/resources/password_folders/password_folders.types.js +2 -2
  198. package/dist/nodes/Hudu/resources/password_folders/password_folders.types.ts +3 -1
  199. package/dist/nodes/Hudu/resources/procedure_tasks/procedure_tasks.handler.js +52 -53
  200. package/dist/nodes/Hudu/resources/procedure_tasks/procedure_tasks.handler.js.map +1 -1
  201. package/dist/nodes/Hudu/resources/procedure_tasks/procedure_tasks.handler.ts +2 -2
  202. package/dist/nodes/Hudu/resources/procedure_tasks/procedure_tasks.types.js +2 -2
  203. package/dist/nodes/Hudu/resources/procedures/procedures.handler.js +116 -117
  204. package/dist/nodes/Hudu/resources/procedures/procedures.handler.js.map +1 -1
  205. package/dist/nodes/Hudu/resources/procedures/procedures.handler.ts +2 -2
  206. package/dist/nodes/Hudu/resources/procedures/procedures.types.js +2 -2
  207. package/dist/nodes/Hudu/resources/public_photos/public_photos.handler.js +93 -94
  208. package/dist/nodes/Hudu/resources/public_photos/public_photos.handler.js.map +1 -1
  209. package/dist/nodes/Hudu/resources/public_photos/public_photos.types.js +2 -2
  210. package/dist/nodes/Hudu/resources/rack_storage_items/rack_storage_items.handler.js +48 -49
  211. package/dist/nodes/Hudu/resources/rack_storage_items/rack_storage_items.handler.js.map +1 -1
  212. package/dist/nodes/Hudu/resources/rack_storage_items/rack_storage_items.handler.ts +2 -2
  213. package/dist/nodes/Hudu/resources/rack_storage_items/rack_storage_items.types.js +2 -2
  214. package/dist/nodes/Hudu/resources/rack_storages/rack_storages.handler.js +91 -92
  215. package/dist/nodes/Hudu/resources/rack_storages/rack_storages.handler.js.map +1 -1
  216. package/dist/nodes/Hudu/resources/rack_storages/rack_storages.handler.ts +2 -2
  217. package/dist/nodes/Hudu/resources/rack_storages/rack_storages.types.js +2 -2
  218. package/dist/nodes/Hudu/resources/relations/relations.handler.js +35 -36
  219. package/dist/nodes/Hudu/resources/relations/relations.handler.js.map +1 -1
  220. package/dist/nodes/Hudu/resources/relations/relations.types.js +24 -24
  221. package/dist/nodes/Hudu/resources/uploads/uploads.handler.js +31 -32
  222. package/dist/nodes/Hudu/resources/uploads/uploads.handler.js.map +1 -1
  223. package/dist/nodes/Hudu/resources/uploads/uploads.types.js +2 -2
  224. package/dist/nodes/Hudu/resources/users/users.handler.js +21 -22
  225. package/dist/nodes/Hudu/resources/users/users.handler.js.map +1 -1
  226. package/dist/nodes/Hudu/resources/users/users.handler.ts +1 -1
  227. package/dist/nodes/Hudu/resources/users/users.types.js +2 -2
  228. package/dist/nodes/Hudu/resources/vlan_zones/vlan_zones.handler.js +152 -153
  229. package/dist/nodes/Hudu/resources/vlan_zones/vlan_zones.handler.js.map +1 -1
  230. package/dist/nodes/Hudu/resources/vlan_zones/vlan_zones.handler.ts +2 -2
  231. package/dist/nodes/Hudu/resources/vlan_zones/vlan_zones.types.js +2 -2
  232. package/dist/nodes/Hudu/resources/vlans/vlans.handler.js +152 -153
  233. package/dist/nodes/Hudu/resources/vlans/vlans.handler.js.map +1 -1
  234. package/dist/nodes/Hudu/resources/vlans/vlans.handler.ts +2 -2
  235. package/dist/nodes/Hudu/resources/vlans/vlans.types.js +2 -2
  236. package/dist/nodes/Hudu/resources/websites/websites.handler.js +119 -120
  237. package/dist/nodes/Hudu/resources/websites/websites.handler.js.map +1 -1
  238. package/dist/nodes/Hudu/resources/websites/websites.handler.ts +2 -2
  239. package/dist/nodes/Hudu/resources/websites/websites.types.js +2 -2
  240. package/dist/nodes/Hudu/utils/assetFieldUtils.js +328 -272
  241. package/dist/nodes/Hudu/utils/assetFieldUtils.js.map +1 -1
  242. package/dist/nodes/Hudu/utils/assetFieldUtils.ts +94 -30
  243. package/dist/nodes/Hudu/utils/constants.js +186 -185
  244. package/dist/nodes/Hudu/utils/constants.js.map +1 -1
  245. package/dist/nodes/Hudu/utils/constants.ts +1 -0
  246. package/dist/nodes/Hudu/utils/dateUtils.js +137 -138
  247. package/dist/nodes/Hudu/utils/dateUtils.js.map +1 -1
  248. package/dist/nodes/Hudu/utils/debugConfig.js +170 -170
  249. package/dist/nodes/Hudu/utils/debugConfig.js.map +1 -1
  250. package/dist/nodes/Hudu/utils/debugConfig.ts +3 -3
  251. package/dist/nodes/Hudu/utils/errorParser.js +55 -56
  252. package/dist/nodes/Hudu/utils/errorParser.js.map +1 -1
  253. package/dist/nodes/Hudu/utils/fieldErrorUtils.js +15 -16
  254. package/dist/nodes/Hudu/utils/fieldErrorUtils.js.map +1 -1
  255. package/dist/nodes/Hudu/utils/fieldTypeUtils.js +143 -144
  256. package/dist/nodes/Hudu/utils/fieldTypeUtils.js.map +1 -1
  257. package/dist/nodes/Hudu/utils/filterUtils.js +52 -53
  258. package/dist/nodes/Hudu/utils/filterUtils.js.map +1 -1
  259. package/dist/nodes/Hudu/utils/formatters.js +37 -38
  260. package/dist/nodes/Hudu/utils/formatters.js.map +1 -1
  261. package/dist/nodes/Hudu/utils/index.js +24 -24
  262. package/dist/nodes/Hudu/utils/markdownUtils.js +81 -0
  263. package/dist/nodes/Hudu/utils/markdownUtils.js.map +1 -0
  264. package/dist/nodes/Hudu/utils/markdownUtils.ts +119 -0
  265. package/dist/nodes/Hudu/utils/operations/archive.js +23 -24
  266. package/dist/nodes/Hudu/utils/operations/archive.js.map +1 -1
  267. package/dist/nodes/Hudu/utils/operations/cards.js +21 -22
  268. package/dist/nodes/Hudu/utils/operations/cards.js.map +1 -1
  269. package/dist/nodes/Hudu/utils/operations/companies.js +16 -17
  270. package/dist/nodes/Hudu/utils/operations/companies.js.map +1 -1
  271. package/dist/nodes/Hudu/utils/operations/create.js +18 -19
  272. package/dist/nodes/Hudu/utils/operations/create.js.map +1 -1
  273. package/dist/nodes/Hudu/utils/operations/delete.js +22 -23
  274. package/dist/nodes/Hudu/utils/operations/delete.js.map +1 -1
  275. package/dist/nodes/Hudu/utils/operations/get.js +21 -19
  276. package/dist/nodes/Hudu/utils/operations/get.js.map +1 -1
  277. package/dist/nodes/Hudu/utils/operations/get.ts +9 -0
  278. package/dist/nodes/Hudu/utils/operations/getAll.js +26 -27
  279. package/dist/nodes/Hudu/utils/operations/getAll.js.map +1 -1
  280. package/dist/nodes/Hudu/utils/operations/getCompanyIdForAsset.js +21 -22
  281. package/dist/nodes/Hudu/utils/operations/getCompanyIdForAsset.js.map +1 -1
  282. package/dist/nodes/Hudu/utils/operations/index.js +23 -23
  283. package/dist/nodes/Hudu/utils/operations/magic_dash.js +45 -46
  284. package/dist/nodes/Hudu/utils/operations/magic_dash.js.map +1 -1
  285. package/dist/nodes/Hudu/utils/operations/magic_dash.ts +68 -68
  286. package/dist/nodes/Hudu/utils/operations/matchers.js +22 -23
  287. package/dist/nodes/Hudu/utils/operations/matchers.js.map +1 -1
  288. package/dist/nodes/Hudu/utils/operations/procedures.js +26 -27
  289. package/dist/nodes/Hudu/utils/operations/procedures.js.map +1 -1
  290. package/dist/nodes/Hudu/utils/operations/systemInfo.js +7 -8
  291. package/dist/nodes/Hudu/utils/operations/systemInfo.js.map +1 -1
  292. package/dist/nodes/Hudu/utils/operations/update.js +19 -20
  293. package/dist/nodes/Hudu/utils/operations/update.js.map +1 -1
  294. package/dist/nodes/Hudu/utils/requestUtils.js +328 -308
  295. package/dist/nodes/Hudu/utils/requestUtils.js.map +1 -1
  296. package/dist/nodes/Hudu/utils/requestUtils.ts +518 -491
  297. package/dist/nodes/Hudu/utils/types.js +2 -2
  298. package/dist/nodes/Hudu/utils/validation.js +22 -23
  299. package/dist/nodes/Hudu/utils/validation.js.map +1 -1
  300. package/package.json +4 -4
  301. package/dist/nodes/Hudu/optionLoaders/assets/getAssets.js +0 -84
  302. package/dist/nodes/Hudu/optionLoaders/assets/getAssets.js.map +0 -1
  303. package/dist/nodes/Hudu/optionLoaders/assets/getAssets.ts +0 -136
  304. package/dist/nodes/Hudu/optionLoaders/assets/getAssetsForCompany.js +0 -45
  305. package/dist/nodes/Hudu/optionLoaders/assets/getAssetsForCompany.js.map +0 -1
  306. package/dist/nodes/Hudu/optionLoaders/assets/getAssetsForCompany.ts +0 -59
@@ -1,309 +1,329 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleListing = exports.huduApiRequest = exports.parseHuduResponse = exports.executeHuduRequest = exports.createHuduRequest = exports.toJsonObject = void 0;
4
- const n8n_workflow_1 = require("n8n-workflow");
5
- const constants_1 = require("./constants");
6
- const filterUtils_1 = require("./filterUtils");
7
- const debugConfig_1 = require("./debugConfig");
8
- const RATE_LIMIT_CONFIG = {
9
- MAX_RETRIES: 3,
10
- BASE_DELAY_MS: 1000,
11
- MAX_DELAY_MS: 10000,
12
- JITTER_MS: 500,
13
- };
14
- const HTTP_STATUS_MESSAGES = {
15
- 400: 'Bad Request - The request was malformed or contains invalid parameters',
16
- 401: 'Unauthorized - Invalid or missing API credentials',
17
- 403: 'Forbidden - You do not have permission to access this resource',
18
- 404: 'Not Found - The requested resource does not exist',
19
- 422: 'Unprocessable Entity - The request was well-formed but contains semantic errors',
20
- 429: 'Rate Limited - Too many requests, please try again later',
21
- 500: 'Internal Server Error - An unexpected error occurred on the Hudu server',
22
- 502: 'Bad Gateway - Unable to reach the Hudu server',
23
- 503: 'Service Unavailable - The Hudu service is temporarily unavailable',
24
- 504: 'Gateway Timeout - The request timed out while waiting for Hudu server',
25
- };
26
- function calculateBackoffDelay(retryCount, retryAfter) {
27
- const baseDelay = retryAfter ? retryAfter * 1000 : RATE_LIMIT_CONFIG.BASE_DELAY_MS;
28
- const exponentialDelay = baseDelay * (2 ** retryCount);
29
- const jitter = Math.random() * RATE_LIMIT_CONFIG.JITTER_MS;
30
- return Math.min(exponentialDelay + jitter, RATE_LIMIT_CONFIG.MAX_DELAY_MS);
31
- }
32
- function sleep(ms) {
33
- return new Promise(resolve => setTimeout(resolve, ms));
34
- }
35
- function toJsonObject(obj) {
36
- const result = {};
37
- for (const [key, value] of Object.entries(obj)) {
38
- if (value !== undefined) {
39
- result[key] = value;
40
- }
41
- }
42
- return result;
43
- }
44
- exports.toJsonObject = toJsonObject;
45
- function createHuduRequest(credentials, options) {
46
- const { method, endpoint, body = {}, qs = {} } = options;
47
- let contentType = method === 'GET' ? 'application/x-www-form-urlencoded' : 'application/json';
48
- if (!(credentials === null || credentials === void 0 ? void 0 : credentials.apiKey) || !(credentials === null || credentials === void 0 ? void 0 : credentials.baseUrl)) {
49
- throw new Error('Missing API credentials. Please provide both the API key and base URL.');
50
- }
51
- const requestOptions = {
52
- method,
53
- url: `${credentials.baseUrl}${constants_1.HUDU_API_CONSTANTS.BASE_API_PATH}${endpoint}`,
54
- qs: toJsonObject(qs),
55
- headers: {
56
- 'x-api-key': credentials.apiKey,
57
- },
58
- };
59
- if (body._isMultipart) {
60
- contentType = 'multipart/form-data';
61
- requestOptions.formData = { ...body };
62
- delete requestOptions.formData._isMultipart;
63
- }
64
- else if (Object.keys(body).length > 0) {
65
- if (contentType === 'application/json') {
66
- requestOptions.json = true;
67
- }
68
- requestOptions.body = toJsonObject(body);
69
- }
70
- if (requestOptions.headers) {
71
- requestOptions.headers['Content-Type'] = contentType;
72
- }
73
- return requestOptions;
74
- }
75
- exports.createHuduRequest = createHuduRequest;
76
- function getErrorMessage(statusCode, defaultMessage) {
77
- return HTTP_STATUS_MESSAGES[statusCode] || defaultMessage;
78
- }
79
- async function executeHuduRequest(requestOptions) {
80
- var _a, _b, _c, _d, _e, _f, _g, _h;
81
- const helpers = this.helpers;
82
- if (!(helpers === null || helpers === void 0 ? void 0 : helpers.request)) {
83
- throw new Error('Request helper not available');
84
- }
85
- let retryCount = 0;
86
- while (true) {
87
- try {
88
- if (debugConfig_1.DEBUG_CONFIG.API_REQUEST) {
89
- (0, debugConfig_1.debugLog)('[API_REQUEST] Hudu API Request:', {
90
- method: requestOptions.method,
91
- url: requestOptions.url,
92
- headers: requestOptions.headers,
93
- qs: requestOptions.qs,
94
- body: requestOptions.body,
95
- formData: requestOptions.formData,
96
- });
97
- }
98
- const rawResponse = await helpers.request(requestOptions);
99
- if (debugConfig_1.DEBUG_CONFIG.API_RESPONSE) {
100
- (0, debugConfig_1.debugLog)('[API_RESPONSE] Hudu API Response:', {
101
- statusCode: rawResponse === null || rawResponse === void 0 ? void 0 : rawResponse.statusCode,
102
- headers: rawResponse === null || rawResponse === void 0 ? void 0 : rawResponse.headers,
103
- body: rawResponse,
104
- });
105
- }
106
- const response = typeof rawResponse === 'string' ? JSON.parse(rawResponse) : rawResponse;
107
- if (response === null || response === undefined) {
108
- return [];
109
- }
110
- return response;
111
- }
112
- catch (error) {
113
- const err = error;
114
- const context = err.context;
115
- const responseContext = context === null || context === void 0 ? void 0 : context.response;
116
- const statusCode = (_a = err.statusCode) !== null && _a !== void 0 ? _a : responseContext === null || responseContext === void 0 ? void 0 : responseContext.statusCode;
117
- if (requestOptions.method === 'DELETE' && statusCode === 204) {
118
- (0, debugConfig_1.debugLog)('[API_RESPONSE] Handled 204 No Content for DELETE request', {
119
- url: requestOptions.url,
120
- });
121
- return { success: true };
122
- }
123
- if (debugConfig_1.DEBUG_CONFIG.API_REQUEST) {
124
- (0, debugConfig_1.debugLog)('Hudu API Error', {
125
- error,
126
- message: error instanceof Error ? error.message : String(error),
127
- stack: error instanceof Error ? error.stack : undefined,
128
- retryCount,
129
- statusCode: error.statusCode,
130
- level: 'error',
131
- });
132
- }
133
- if (error.statusCode === 429 && retryCount < RATE_LIMIT_CONFIG.MAX_RETRIES) {
134
- const retryAfter = (_c = (_b = error.response) === null || _b === void 0 ? void 0 : _b.headers) === null || _c === void 0 ? void 0 : _c['retry-after'];
135
- const retryAfterMs = retryAfter ? Number.parseInt(retryAfter, 10) : undefined;
136
- const delayMs = calculateBackoffDelay(retryCount, retryAfterMs);
137
- if (debugConfig_1.DEBUG_CONFIG.API_REQUEST) {
138
- (0, debugConfig_1.debugLog)('Rate Limited - Retrying', {
139
- retryCount,
140
- retryAfter: retryAfterMs,
141
- delayMs,
142
- });
143
- }
144
- await sleep(delayMs);
145
- retryCount++;
146
- continue;
147
- }
148
- const jsonError = {};
149
- const axiosError = error;
150
- const originalMessage = error.message || 'Unknown error';
151
- const fallbackMessage = axiosError.statusCode ?
152
- getErrorMessage(axiosError.statusCode, originalMessage) :
153
- originalMessage;
154
- let errorDetails = '';
155
- if ((_d = axiosError.response) === null || _d === void 0 ? void 0 : _d.body) {
156
- try {
157
- const body = typeof axiosError.response.body === 'string' ? JSON.parse(axiosError.response.body) : axiosError.response.body;
158
- if (body.error) {
159
- errorDetails = body.error;
160
- if (body.details && Array.isArray(body.details)) {
161
- errorDetails += `: ${body.details.join(', ')}`;
162
- }
163
- }
164
- }
165
- catch (e) {
166
- }
167
- }
168
- if (debugConfig_1.DEBUG_CONFIG.API_RESPONSE) {
169
- (0, debugConfig_1.debugLog)('[API_RESPONSE] Hudu API Error Response:', {
170
- statusCode: axiosError.statusCode,
171
- headers: (_e = axiosError.response) === null || _e === void 0 ? void 0 : _e.headers,
172
- body: (_f = axiosError.response) === null || _f === void 0 ? void 0 : _f.body,
173
- });
174
- }
175
- if (error instanceof Error) {
176
- if (originalMessage.includes('{') && originalMessage.includes('}')) {
177
- jsonError.message = originalMessage;
178
- }
179
- else {
180
- jsonError.message = errorDetails ? `${fallbackMessage} - ${errorDetails}` : fallbackMessage;
181
- }
182
- jsonError.name = error.name;
183
- if (error.stack) {
184
- jsonError.stack = error.stack;
185
- }
186
- if ((_g = axiosError.response) === null || _g === void 0 ? void 0 : _g.body) {
187
- try {
188
- const errorBody = typeof axiosError.response.body === 'string' ?
189
- JSON.parse(axiosError.response.body) :
190
- axiosError.response.body;
191
- jsonError.details = errorBody;
192
- }
193
- catch {
194
- jsonError.details = axiosError.response.body;
195
- }
196
- }
197
- }
198
- else if (typeof error === 'object' && error !== null) {
199
- const errorObj = toJsonObject(error);
200
- jsonError.message = errorDetails ? `${fallbackMessage} - ${errorDetails}` : fallbackMessage;
201
- if ((_h = axiosError.response) === null || _h === void 0 ? void 0 : _h.body) {
202
- try {
203
- const errorBody = typeof axiosError.response.body === 'string' ?
204
- JSON.parse(axiosError.response.body) :
205
- axiosError.response.body;
206
- jsonError.details = errorBody;
207
- }
208
- catch {
209
- jsonError.details = axiosError.response.body;
210
- }
211
- }
212
- Object.assign(jsonError, errorObj);
213
- }
214
- else {
215
- jsonError.message = errorDetails ? `${fallbackMessage} - ${errorDetails}` : fallbackMessage;
216
- jsonError.error = String(error);
217
- }
218
- if (axiosError.statusCode) {
219
- jsonError.statusCode = axiosError.statusCode;
220
- }
221
- throw new n8n_workflow_1.NodeApiError(this.getNode(), jsonError);
222
- }
223
- }
224
- }
225
- exports.executeHuduRequest = executeHuduRequest;
226
- function parseHuduResponse(response, resourceName) {
227
- if (!response || (typeof response === 'object' && Object.keys(response).length === 0)) {
228
- return [];
229
- }
230
- if (Array.isArray(response)) {
231
- return response.filter(item => item && Object.keys(item).length > 0);
232
- }
233
- if (resourceName) {
234
- const data = response;
235
- if (data[resourceName] !== undefined) {
236
- const resourceData = data[resourceName];
237
- if (Array.isArray(resourceData)) {
238
- return resourceData.filter(item => item && Object.keys(item).length > 0);
239
- }
240
- if (resourceData !== null && typeof resourceData === 'object' && Object.keys(resourceData).length > 0) {
241
- return [resourceData];
242
- }
243
- }
244
- return [];
245
- }
246
- return Object.keys(response).length > 0 ? [response] : [];
247
- }
248
- exports.parseHuduResponse = parseHuduResponse;
249
- async function huduApiRequest(method, endpoint, body = {}, qs = {}, resourceName) {
250
- const credentials = await this.getCredentials('huduApi');
251
- const requestOptions = createHuduRequest(credentials, { method, endpoint, body, qs });
252
- const response = await executeHuduRequest.call(this, requestOptions);
253
- return resourceName ? parseHuduResponse(response, resourceName) : response;
254
- }
255
- exports.huduApiRequest = huduApiRequest;
256
- async function handleListing(method, endpoint, resourceName, body = {}, query = {}, returnAll = false, limit = 0, postProcessFilters, filterMapping) {
257
- const results = [];
258
- let filteredResults = [];
259
- let hasMore = true;
260
- let page = 1;
261
- const pageSize = !returnAll && limit > 0 && limit < constants_1.HUDU_API_CONSTANTS.PAGE_SIZE
262
- ? limit
263
- : constants_1.HUDU_API_CONSTANTS.PAGE_SIZE;
264
- const resourcePath = endpoint.startsWith('/') ? endpoint.substring(1) : endpoint;
265
- const supportsPagination = constants_1.RESOURCES_WITH_PAGE_SIZE.includes(resourcePath);
266
- while (hasMore) {
267
- const queryParams = { ...query };
268
- if (supportsPagination) {
269
- queryParams.page = page;
270
- queryParams.page_size = pageSize;
271
- }
272
- const response = await huduApiRequest.call(this, method, endpoint, body, queryParams, resourceName);
273
- const batchResults = parseHuduResponse(response, resourceName);
274
- if (batchResults.length === 0) {
275
- hasMore = false;
276
- continue;
277
- }
278
- results.push(...batchResults);
279
- if (postProcessFilters && filterMapping) {
280
- filteredResults = (0, filterUtils_1.applyPostFilters)(results, postProcessFilters, filterMapping);
281
- }
282
- else {
283
- filteredResults = results;
284
- }
285
- if (!supportsPagination) {
286
- hasMore = false;
287
- }
288
- else {
289
- if (!returnAll) {
290
- if (filteredResults.length >= limit) {
291
- hasMore = false;
292
- }
293
- else {
294
- hasMore = batchResults.length === pageSize;
295
- }
296
- }
297
- else {
298
- hasMore = batchResults.length === pageSize;
299
- }
300
- page++;
301
- }
302
- }
303
- if (!returnAll && limit && filteredResults.length > limit) {
304
- filteredResults = filteredResults.slice(0, limit);
305
- }
306
- return filteredResults;
307
- }
308
- exports.handleListing = handleListing;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sanitizeQueryParams = sanitizeQueryParams;
4
+ exports.sanitizeRequestPayload = sanitizeRequestPayload;
5
+ exports.toJsonObject = toJsonObject;
6
+ exports.createHuduRequest = createHuduRequest;
7
+ exports.executeHuduRequest = executeHuduRequest;
8
+ exports.parseHuduResponse = parseHuduResponse;
9
+ exports.huduApiRequest = huduApiRequest;
10
+ exports.handleListing = handleListing;
11
+ const n8n_workflow_1 = require("n8n-workflow");
12
+ const constants_1 = require("./constants");
13
+ const filterUtils_1 = require("./filterUtils");
14
+ const debugConfig_1 = require("./debugConfig");
15
+ function sanitizeQueryParams(qs) {
16
+ const cleaned = {};
17
+ for (const [key, value] of Object.entries(qs || {})) {
18
+ if (value === '' || value === undefined || value === null)
19
+ continue;
20
+ cleaned[key] = value;
21
+ }
22
+ return cleaned;
23
+ }
24
+ function sanitizeRequestPayload(body) {
25
+ const cleaned = {};
26
+ for (const [key, value] of Object.entries(body || {})) {
27
+ if (value === '' || value === undefined || value === null)
28
+ continue;
29
+ cleaned[key] = value;
30
+ }
31
+ return cleaned;
32
+ }
33
+ const RATE_LIMIT_CONFIG = {
34
+ MAX_RETRIES: 3,
35
+ BASE_DELAY_MS: 1000,
36
+ MAX_DELAY_MS: 10000,
37
+ JITTER_MS: 500,
38
+ };
39
+ const HTTP_STATUS_MESSAGES = {
40
+ 400: 'Bad Request - The request was malformed or contains invalid parameters',
41
+ 401: 'Unauthorized - Invalid or missing API credentials',
42
+ 403: 'Forbidden - You do not have permission to access this resource',
43
+ 404: 'Not Found - The requested resource does not exist',
44
+ 422: 'Unprocessable Entity - The request was well-formed but contains semantic errors',
45
+ 429: 'Rate Limited - Too many requests, please try again later',
46
+ 500: 'Internal Server Error - An unexpected error occurred on the Hudu server',
47
+ 502: 'Bad Gateway - Unable to reach the Hudu server',
48
+ 503: 'Service Unavailable - The Hudu service is temporarily unavailable',
49
+ 504: 'Gateway Timeout - The request timed out while waiting for Hudu server',
50
+ };
51
+ function calculateBackoffDelay(retryCount, retryAfter) {
52
+ const baseDelay = retryAfter ? retryAfter * 1000 : RATE_LIMIT_CONFIG.BASE_DELAY_MS;
53
+ const exponentialDelay = baseDelay * (2 ** retryCount);
54
+ const jitter = Math.random() * RATE_LIMIT_CONFIG.JITTER_MS;
55
+ return Math.min(exponentialDelay + jitter, RATE_LIMIT_CONFIG.MAX_DELAY_MS);
56
+ }
57
+ function sleep(ms) {
58
+ return new Promise(resolve => setTimeout(resolve, ms));
59
+ }
60
+ function toJsonObject(obj) {
61
+ const result = {};
62
+ for (const [key, value] of Object.entries(obj)) {
63
+ if (value !== undefined) {
64
+ result[key] = value;
65
+ }
66
+ }
67
+ return result;
68
+ }
69
+ function createHuduRequest(credentials, options) {
70
+ const { method, endpoint, body = {}, qs = {} } = options;
71
+ let contentType = method === 'GET' ? 'application/x-www-form-urlencoded' : 'application/json';
72
+ if (!(credentials === null || credentials === void 0 ? void 0 : credentials.apiKey) || !(credentials === null || credentials === void 0 ? void 0 : credentials.baseUrl)) {
73
+ throw new Error('Missing API credentials. Please provide both the API key and base URL.');
74
+ }
75
+ const requestOptions = {
76
+ method,
77
+ url: `${credentials.baseUrl}${constants_1.HUDU_API_CONSTANTS.BASE_API_PATH}${endpoint}`,
78
+ qs: toJsonObject(sanitizeQueryParams(qs)),
79
+ headers: {
80
+ 'x-api-key': credentials.apiKey,
81
+ },
82
+ };
83
+ if (body._isMultipart) {
84
+ contentType = 'multipart/form-data';
85
+ requestOptions.formData = { ...body };
86
+ delete requestOptions.formData._isMultipart;
87
+ }
88
+ else if (Object.keys(body).length > 0) {
89
+ if (contentType === 'application/json') {
90
+ requestOptions.json = true;
91
+ }
92
+ requestOptions.body = toJsonObject(sanitizeRequestPayload(body));
93
+ }
94
+ if (requestOptions.headers) {
95
+ requestOptions.headers['Content-Type'] = contentType;
96
+ }
97
+ return requestOptions;
98
+ }
99
+ function getErrorMessage(statusCode, defaultMessage) {
100
+ return HTTP_STATUS_MESSAGES[statusCode] || defaultMessage;
101
+ }
102
+ async function executeHuduRequest(requestOptions) {
103
+ var _a, _b, _c, _d, _e, _f, _g, _h;
104
+ const helpers = this.helpers;
105
+ if (!(helpers === null || helpers === void 0 ? void 0 : helpers.request)) {
106
+ throw new Error('Request helper not available');
107
+ }
108
+ let retryCount = 0;
109
+ while (true) {
110
+ try {
111
+ if (debugConfig_1.DEBUG_CONFIG.API_REQUEST) {
112
+ (0, debugConfig_1.debugLog)('[API_REQUEST] Hudu API Request:', {
113
+ method: requestOptions.method,
114
+ url: requestOptions.url,
115
+ headers: requestOptions.headers,
116
+ qs: requestOptions.qs,
117
+ body: requestOptions.body,
118
+ formData: requestOptions.formData,
119
+ });
120
+ }
121
+ const rawResponse = await helpers.request(requestOptions);
122
+ if (debugConfig_1.DEBUG_CONFIG.API_RESPONSE) {
123
+ (0, debugConfig_1.debugLog)('[API_RESPONSE] Hudu API Response:', {
124
+ statusCode: rawResponse === null || rawResponse === void 0 ? void 0 : rawResponse.statusCode,
125
+ headers: rawResponse === null || rawResponse === void 0 ? void 0 : rawResponse.headers,
126
+ body: rawResponse,
127
+ });
128
+ }
129
+ const response = typeof rawResponse === 'string' ? JSON.parse(rawResponse) : rawResponse;
130
+ if (response === null || response === undefined) {
131
+ return [];
132
+ }
133
+ return response;
134
+ }
135
+ catch (error) {
136
+ const err = error;
137
+ const context = err.context;
138
+ const responseContext = context === null || context === void 0 ? void 0 : context.response;
139
+ const statusCode = (_a = err.statusCode) !== null && _a !== void 0 ? _a : responseContext === null || responseContext === void 0 ? void 0 : responseContext.statusCode;
140
+ if (requestOptions.method === 'DELETE' && statusCode === 204) {
141
+ (0, debugConfig_1.debugLog)('[API_RESPONSE] Handled 204 No Content for DELETE request', {
142
+ url: requestOptions.url,
143
+ });
144
+ return { success: true };
145
+ }
146
+ if (debugConfig_1.DEBUG_CONFIG.API_REQUEST) {
147
+ (0, debugConfig_1.debugLog)('Hudu API Error', {
148
+ error,
149
+ message: error instanceof Error ? error.message : String(error),
150
+ stack: error instanceof Error ? error.stack : undefined,
151
+ retryCount,
152
+ statusCode: error.statusCode,
153
+ level: 'error',
154
+ });
155
+ }
156
+ if (error.statusCode === 429 && retryCount < RATE_LIMIT_CONFIG.MAX_RETRIES) {
157
+ const retryAfter = (_c = (_b = error.response) === null || _b === void 0 ? void 0 : _b.headers) === null || _c === void 0 ? void 0 : _c['retry-after'];
158
+ const retryAfterMs = retryAfter ? Number.parseInt(retryAfter, 10) : undefined;
159
+ const delayMs = calculateBackoffDelay(retryCount, retryAfterMs);
160
+ if (debugConfig_1.DEBUG_CONFIG.API_REQUEST) {
161
+ (0, debugConfig_1.debugLog)('Rate Limited - Retrying', {
162
+ retryCount,
163
+ retryAfter: retryAfterMs,
164
+ delayMs,
165
+ });
166
+ }
167
+ await sleep(delayMs);
168
+ retryCount++;
169
+ continue;
170
+ }
171
+ const jsonError = {};
172
+ const axiosError = error;
173
+ const originalMessage = error.message || 'Unknown error';
174
+ const fallbackMessage = axiosError.statusCode ?
175
+ getErrorMessage(axiosError.statusCode, originalMessage) :
176
+ originalMessage;
177
+ let errorDetails = '';
178
+ if ((_d = axiosError.response) === null || _d === void 0 ? void 0 : _d.body) {
179
+ try {
180
+ const body = typeof axiosError.response.body === 'string' ? JSON.parse(axiosError.response.body) : axiosError.response.body;
181
+ if (body.error) {
182
+ errorDetails = body.error;
183
+ if (body.details && Array.isArray(body.details)) {
184
+ errorDetails += `: ${body.details.join(', ')}`;
185
+ }
186
+ }
187
+ }
188
+ catch (e) {
189
+ }
190
+ }
191
+ if (debugConfig_1.DEBUG_CONFIG.API_RESPONSE) {
192
+ (0, debugConfig_1.debugLog)('[API_RESPONSE] Hudu API Error Response:', {
193
+ statusCode: axiosError.statusCode,
194
+ headers: (_e = axiosError.response) === null || _e === void 0 ? void 0 : _e.headers,
195
+ body: (_f = axiosError.response) === null || _f === void 0 ? void 0 : _f.body,
196
+ });
197
+ }
198
+ if (error instanceof Error) {
199
+ if (originalMessage.includes('{') && originalMessage.includes('}')) {
200
+ jsonError.message = originalMessage;
201
+ }
202
+ else {
203
+ jsonError.message = errorDetails ? `${fallbackMessage} - ${errorDetails}` : fallbackMessage;
204
+ }
205
+ jsonError.name = error.name;
206
+ if (error.stack) {
207
+ jsonError.stack = error.stack;
208
+ }
209
+ if ((_g = axiosError.response) === null || _g === void 0 ? void 0 : _g.body) {
210
+ try {
211
+ const errorBody = typeof axiosError.response.body === 'string' ?
212
+ JSON.parse(axiosError.response.body) :
213
+ axiosError.response.body;
214
+ jsonError.details = errorBody;
215
+ }
216
+ catch {
217
+ jsonError.details = axiosError.response.body;
218
+ }
219
+ }
220
+ }
221
+ else if (typeof error === 'object' && error !== null) {
222
+ const errorObj = toJsonObject(error);
223
+ jsonError.message = errorDetails ? `${fallbackMessage} - ${errorDetails}` : fallbackMessage;
224
+ if ((_h = axiosError.response) === null || _h === void 0 ? void 0 : _h.body) {
225
+ try {
226
+ const errorBody = typeof axiosError.response.body === 'string' ?
227
+ JSON.parse(axiosError.response.body) :
228
+ axiosError.response.body;
229
+ jsonError.details = errorBody;
230
+ }
231
+ catch {
232
+ jsonError.details = axiosError.response.body;
233
+ }
234
+ }
235
+ Object.assign(jsonError, errorObj);
236
+ }
237
+ else {
238
+ jsonError.message = errorDetails ? `${fallbackMessage} - ${errorDetails}` : fallbackMessage;
239
+ jsonError.error = String(error);
240
+ }
241
+ if (axiosError.statusCode) {
242
+ jsonError.statusCode = axiosError.statusCode;
243
+ }
244
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), jsonError);
245
+ }
246
+ }
247
+ }
248
+ function parseHuduResponse(response, resourceName) {
249
+ if (!response || (typeof response === 'object' && Object.keys(response).length === 0)) {
250
+ return [];
251
+ }
252
+ if (Array.isArray(response)) {
253
+ return response.filter(item => item && Object.keys(item).length > 0);
254
+ }
255
+ if (resourceName) {
256
+ const data = response;
257
+ if (data[resourceName] !== undefined) {
258
+ const resourceData = data[resourceName];
259
+ if (Array.isArray(resourceData)) {
260
+ return resourceData.filter(item => item && Object.keys(item).length > 0);
261
+ }
262
+ if (resourceData !== null && typeof resourceData === 'object' && Object.keys(resourceData).length > 0) {
263
+ return [resourceData];
264
+ }
265
+ }
266
+ return [];
267
+ }
268
+ return Object.keys(response).length > 0 ? [response] : [];
269
+ }
270
+ async function huduApiRequest(method, endpoint, body = {}, qs = {}, resourceName) {
271
+ const credentials = await this.getCredentials('huduApi');
272
+ const requestOptions = createHuduRequest(credentials, { method, endpoint, body, qs });
273
+ const response = await executeHuduRequest.call(this, requestOptions);
274
+ return resourceName ? parseHuduResponse(response, resourceName) : response;
275
+ }
276
+ async function handleListing(method, endpoint, resourceName, body = {}, query = {}, returnAll = false, limit = 0, postProcessFilters, filterMapping) {
277
+ const results = [];
278
+ let filteredResults = [];
279
+ let hasMore = true;
280
+ let page = 1;
281
+ const pageSize = !returnAll && limit > 0 && limit < constants_1.HUDU_API_CONSTANTS.PAGE_SIZE
282
+ ? limit
283
+ : constants_1.HUDU_API_CONSTANTS.PAGE_SIZE;
284
+ const resourcePath = endpoint.startsWith('/') ? endpoint.substring(1) : endpoint;
285
+ const supportsPagination = constants_1.RESOURCES_WITH_PAGE_SIZE.includes(resourcePath) ||
286
+ (resourcePath.startsWith('companies/') && resourcePath.endsWith('/assets'));
287
+ while (hasMore) {
288
+ const queryParams = { ...query };
289
+ if (supportsPagination) {
290
+ queryParams.page = page;
291
+ queryParams.page_size = pageSize;
292
+ }
293
+ const response = await huduApiRequest.call(this, method, endpoint, body, queryParams, resourceName);
294
+ const batchResults = parseHuduResponse(response, resourceName);
295
+ if (batchResults.length === 0) {
296
+ hasMore = false;
297
+ continue;
298
+ }
299
+ results.push(...batchResults);
300
+ if (postProcessFilters && filterMapping) {
301
+ filteredResults = (0, filterUtils_1.applyPostFilters)(results, postProcessFilters, filterMapping);
302
+ }
303
+ else {
304
+ filteredResults = results;
305
+ }
306
+ if (!supportsPagination) {
307
+ hasMore = false;
308
+ }
309
+ else {
310
+ if (!returnAll) {
311
+ if (filteredResults.length >= limit) {
312
+ hasMore = false;
313
+ }
314
+ else {
315
+ hasMore = batchResults.length === pageSize;
316
+ }
317
+ }
318
+ else {
319
+ hasMore = batchResults.length === pageSize;
320
+ }
321
+ page++;
322
+ }
323
+ }
324
+ if (!returnAll && limit && filteredResults.length > limit) {
325
+ filteredResults = filteredResults.slice(0, limit);
326
+ }
327
+ return filteredResults;
328
+ }
309
329
  //# sourceMappingURL=requestUtils.js.map