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.
- package/README.md +18 -53
- package/dist/credentials/HuduApi.credentials.js +45 -45
- package/dist/index.js +13 -13
- package/dist/nodes/Hudu/Hudu.node.js +338 -325
- package/dist/nodes/Hudu/Hudu.node.js.map +1 -1
- package/dist/nodes/Hudu/Hudu.node.json +1 -1
- package/dist/nodes/Hudu/Hudu.node.ts +448 -442
- package/dist/nodes/Hudu/descriptions/activity_logs.description.js +170 -170
- package/dist/nodes/Hudu/descriptions/api_info.description.js +26 -26
- package/dist/nodes/Hudu/descriptions/articles.description.js +701 -675
- package/dist/nodes/Hudu/descriptions/articles.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/articles.description.ts +45 -15
- package/dist/nodes/Hudu/descriptions/asset_layout_fields.description.js +442 -442
- package/dist/nodes/Hudu/descriptions/asset_layout_fields.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/asset_layout_fields.description.ts +2 -2
- package/dist/nodes/Hudu/descriptions/asset_layouts.description.js +589 -596
- package/dist/nodes/Hudu/descriptions/asset_layouts.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/asset_layouts.description.ts +1 -7
- package/dist/nodes/Hudu/descriptions/asset_passwords.description.js +589 -589
- package/dist/nodes/Hudu/descriptions/asset_passwords.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/asset_passwords.description.ts +2 -2
- package/dist/nodes/Hudu/descriptions/assets.description.js +565 -565
- package/dist/nodes/Hudu/descriptions/cards.description.js +181 -181
- package/dist/nodes/Hudu/descriptions/companies.description.js +667 -667
- package/dist/nodes/Hudu/descriptions/companies.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/companies.description.ts +2 -2
- package/dist/nodes/Hudu/descriptions/expirations.description.js +137 -137
- package/dist/nodes/Hudu/descriptions/folders.description.js +305 -305
- package/dist/nodes/Hudu/descriptions/folders.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/folders.description.ts +2 -2
- package/dist/nodes/Hudu/descriptions/groups.description.js +114 -0
- package/dist/nodes/Hudu/descriptions/groups.description.js.map +1 -0
- package/dist/nodes/Hudu/descriptions/groups.description.ts +115 -0
- package/dist/nodes/Hudu/descriptions/index.js +46 -45
- package/dist/nodes/Hudu/descriptions/index.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/index.ts +1 -0
- package/dist/nodes/Hudu/descriptions/ip_addresses.description.js +743 -743
- package/dist/nodes/Hudu/descriptions/ip_addresses.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/ip_addresses.description.ts +20 -19
- package/dist/nodes/Hudu/descriptions/list_options.description.js +90 -90
- package/dist/nodes/Hudu/descriptions/lists.description.js +156 -156
- package/dist/nodes/Hudu/descriptions/magic_dash.description.js +252 -252
- package/dist/nodes/Hudu/descriptions/magic_dash.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/magic_dash.description.ts +270 -270
- package/dist/nodes/Hudu/descriptions/matchers.description.js +202 -202
- package/dist/nodes/Hudu/descriptions/matchers.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/matchers.description.ts +2 -2
- package/dist/nodes/Hudu/descriptions/networks.description.js +759 -759
- package/dist/nodes/Hudu/descriptions/networks.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/networks.description.ts +17 -17
- package/dist/nodes/Hudu/descriptions/passwordFolders.descriptions.js +297 -119
- package/dist/nodes/Hudu/descriptions/passwordFolders.descriptions.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/passwordFolders.descriptions.ts +183 -2
- package/dist/nodes/Hudu/descriptions/procedure_tasks.description.js +378 -378
- package/dist/nodes/Hudu/descriptions/procedure_tasks.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/procedure_tasks.description.ts +2 -2
- package/dist/nodes/Hudu/descriptions/procedures.description.js +471 -471
- package/dist/nodes/Hudu/descriptions/procedures.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/procedures.description.ts +2 -2
- package/dist/nodes/Hudu/descriptions/public_photos.description.js +214 -214
- package/dist/nodes/Hudu/descriptions/rack_storage_items.description.js +334 -334
- package/dist/nodes/Hudu/descriptions/rack_storage_items.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/rack_storage_items.description.ts +2 -2
- package/dist/nodes/Hudu/descriptions/rack_storages.description.js +609 -609
- package/dist/nodes/Hudu/descriptions/rack_storages.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/rack_storages.description.ts +2 -2
- package/dist/nodes/Hudu/descriptions/relations.description.js +226 -226
- package/dist/nodes/Hudu/descriptions/resources.js +133 -129
- package/dist/nodes/Hudu/descriptions/resources.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/resources.ts +8 -4
- package/dist/nodes/Hudu/descriptions/uploads.description.js +84 -84
- package/dist/nodes/Hudu/descriptions/users.description.js +179 -179
- package/dist/nodes/Hudu/descriptions/vlan_zones.description.js +278 -278
- package/dist/nodes/Hudu/descriptions/vlan_zones.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/vlan_zones.description.ts +2 -2
- package/dist/nodes/Hudu/descriptions/vlans.description.js +348 -324
- package/dist/nodes/Hudu/descriptions/vlans.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/vlans.description.ts +50 -26
- package/dist/nodes/Hudu/descriptions/websites.description.js +865 -865
- package/dist/nodes/Hudu/descriptions/websites.description.js.map +1 -1
- package/dist/nodes/Hudu/descriptions/websites.description.ts +10 -10
- package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayoutFieldValues.js +65 -66
- package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayoutFieldValues.js.map +1 -1
- package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayoutFieldValues.ts +1 -1
- package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayoutFields.js +229 -227
- package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayoutFields.js.map +1 -1
- package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayoutFields.ts +3 -0
- package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayouts.js +40 -41
- package/dist/nodes/Hudu/optionLoaders/asset_layouts/getAssetLayouts.js.map +1 -1
- package/dist/nodes/Hudu/optionLoaders/asset_layouts/getCustomFieldsLayoutFields.js +54 -55
- package/dist/nodes/Hudu/optionLoaders/asset_layouts/getCustomFieldsLayoutFields.js.map +1 -1
- package/dist/nodes/Hudu/optionLoaders/asset_layouts/getCustomFieldsLayoutFields.ts +1 -1
- package/dist/nodes/Hudu/optionLoaders/asset_layouts/index.js +20 -20
- package/dist/nodes/Hudu/optionLoaders/assets/index.js +1 -18
- package/dist/nodes/Hudu/optionLoaders/assets/index.js.map +1 -1
- package/dist/nodes/Hudu/optionLoaders/assets/index.ts +1 -2
- package/dist/nodes/Hudu/optionLoaders/companies/getCompanies.js +32 -33
- package/dist/nodes/Hudu/optionLoaders/companies/getCompanies.js.map +1 -1
- package/dist/nodes/Hudu/optionLoaders/companies/index.js +17 -17
- package/dist/nodes/Hudu/optionLoaders/groups/index.js +18 -0
- package/dist/nodes/Hudu/optionLoaders/groups/index.js.map +1 -0
- package/dist/nodes/Hudu/optionLoaders/groups/index.ts +3 -0
- package/dist/nodes/Hudu/optionLoaders/groups/loadGroups.js +24 -0
- package/dist/nodes/Hudu/optionLoaders/groups/loadGroups.js.map +1 -0
- package/dist/nodes/Hudu/optionLoaders/groups/loadGroups.ts +43 -0
- package/dist/nodes/Hudu/optionLoaders/index.js +22 -20
- package/dist/nodes/Hudu/optionLoaders/index.js.map +1 -1
- package/dist/nodes/Hudu/optionLoaders/index.ts +3 -0
- package/dist/nodes/Hudu/optionLoaders/lists/getLists.js +29 -30
- package/dist/nodes/Hudu/optionLoaders/lists/getLists.js.map +1 -1
- package/dist/nodes/Hudu/optionLoaders/lists/index.js +17 -17
- package/dist/nodes/Hudu/optionLoaders/users/getUsers.js +38 -39
- package/dist/nodes/Hudu/optionLoaders/users/getUsers.js.map +1 -1
- package/dist/nodes/Hudu/optionLoaders/users/index.js +17 -17
- package/dist/nodes/Hudu/optionLoaders/vlan_zones/index.js +18 -0
- package/dist/nodes/Hudu/optionLoaders/vlan_zones/index.js.map +1 -0
- package/dist/nodes/Hudu/optionLoaders/vlan_zones/index.ts +3 -0
- package/dist/nodes/Hudu/optionLoaders/vlan_zones/loadVlanZones.js +18 -0
- package/dist/nodes/Hudu/optionLoaders/vlan_zones/loadVlanZones.js.map +1 -0
- package/dist/nodes/Hudu/optionLoaders/vlan_zones/loadVlanZones.ts +30 -0
- package/dist/nodes/Hudu/resources/activity_logs/activity_logs.handler.js +17 -18
- package/dist/nodes/Hudu/resources/activity_logs/activity_logs.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/activity_logs/activity_logs.types.js +2 -2
- package/dist/nodes/Hudu/resources/api_info/api_info.handler.js +14 -15
- package/dist/nodes/Hudu/resources/api_info/api_info.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/api_info/api_info.types.js +2 -2
- package/dist/nodes/Hudu/resources/articles/articles.handler.js +214 -206
- package/dist/nodes/Hudu/resources/articles/articles.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/articles/articles.handler.ts +18 -1
- package/dist/nodes/Hudu/resources/articles/articles.types.js +8 -8
- package/dist/nodes/Hudu/resources/asset_layout_fields/asset_layout_fields.handler.js +100 -101
- package/dist/nodes/Hudu/resources/asset_layout_fields/asset_layout_fields.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/asset_layout_fields/asset_layout_fields.handler.ts +2 -2
- package/dist/nodes/Hudu/resources/asset_layout_fields/asset_layout_fields.types.js +2 -2
- package/dist/nodes/Hudu/resources/asset_layouts/asset_layouts.handler.js +92 -93
- package/dist/nodes/Hudu/resources/asset_layouts/asset_layouts.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/asset_layouts/asset_layouts.handler.ts +1 -1
- package/dist/nodes/Hudu/resources/asset_layouts/asset_layouts.types.js +2 -2
- package/dist/nodes/Hudu/resources/asset_passwords/asset_passwords.handler.js +106 -107
- package/dist/nodes/Hudu/resources/asset_passwords/asset_passwords.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/asset_passwords/asset_passwords.handler.ts +2 -2
- package/dist/nodes/Hudu/resources/asset_passwords/asset_passwords.types.js +2 -2
- package/dist/nodes/Hudu/resources/assets/assets.handler.js +227 -227
- package/dist/nodes/Hudu/resources/assets/assets.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/assets/assets.handler.ts +6 -5
- package/dist/nodes/Hudu/resources/assets/assets.types.js +2 -2
- package/dist/nodes/Hudu/resources/cards/cards.handler.js +21 -22
- package/dist/nodes/Hudu/resources/cards/cards.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/cards/cards.types.js +2 -2
- package/dist/nodes/Hudu/resources/companies/companies.handler.js +94 -95
- package/dist/nodes/Hudu/resources/companies/companies.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/companies/companies.handler.ts +2 -2
- package/dist/nodes/Hudu/resources/companies/companies.types.js +2 -2
- package/dist/nodes/Hudu/resources/expirations/expirations.handler.js +19 -20
- package/dist/nodes/Hudu/resources/expirations/expirations.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/expirations/expirations.types.js +2 -2
- package/dist/nodes/Hudu/resources/folders/folders.handler.js +91 -92
- package/dist/nodes/Hudu/resources/folders/folders.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/folders/folders.handler.ts +3 -3
- package/dist/nodes/Hudu/resources/folders/folders.types.js +13 -13
- package/dist/nodes/Hudu/resources/groups/groups.handler.js +26 -0
- package/dist/nodes/Hudu/resources/groups/groups.handler.js.map +1 -0
- package/dist/nodes/Hudu/resources/groups/groups.handler.ts +44 -0
- package/dist/nodes/Hudu/resources/groups/groups.types.js +3 -0
- package/dist/nodes/Hudu/resources/groups/groups.types.js.map +1 -0
- package/dist/nodes/Hudu/resources/groups/groups.types.ts +18 -0
- package/dist/nodes/Hudu/resources/index.js +76 -74
- package/dist/nodes/Hudu/resources/index.js.map +1 -1
- package/dist/nodes/Hudu/resources/index.ts +2 -0
- package/dist/nodes/Hudu/resources/ip_addresses/ip_addresses.handler.js +131 -100
- package/dist/nodes/Hudu/resources/ip_addresses/ip_addresses.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/ip_addresses/ip_addresses.handler.ts +41 -4
- package/dist/nodes/Hudu/resources/ip_addresses/ip_addresses.types.js +2 -2
- package/dist/nodes/Hudu/resources/list_options/list_options.handler.js +218 -219
- package/dist/nodes/Hudu/resources/list_options/list_options.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/list_options/list_options.handler.ts +1 -0
- package/dist/nodes/Hudu/resources/list_options/list_options.types.js +2 -2
- package/dist/nodes/Hudu/resources/lists/lists.handler.js +65 -66
- package/dist/nodes/Hudu/resources/lists/lists.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/lists/lists.handler.ts +1 -0
- package/dist/nodes/Hudu/resources/lists/lists.types.js +2 -2
- package/dist/nodes/Hudu/resources/magic_dash/magic_dash.handler.js +56 -57
- package/dist/nodes/Hudu/resources/magic_dash/magic_dash.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/magic_dash/magic_dash.handler.ts +85 -85
- package/dist/nodes/Hudu/resources/magic_dash/magic_dash.types.js +2 -2
- package/dist/nodes/Hudu/resources/matchers/matchers.handler.js +45 -46
- package/dist/nodes/Hudu/resources/matchers/matchers.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/matchers/matchers.handler.ts +1 -1
- package/dist/nodes/Hudu/resources/matchers/matchers.types.js +2 -2
- package/dist/nodes/Hudu/resources/networks/networks.handler.js +117 -106
- package/dist/nodes/Hudu/resources/networks/networks.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/networks/networks.handler.ts +12 -4
- package/dist/nodes/Hudu/resources/networks/networks.types.js +2 -2
- package/dist/nodes/Hudu/resources/password_folders/password_folders.handler.js +100 -28
- package/dist/nodes/Hudu/resources/password_folders/password_folders.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/password_folders/password_folders.handler.ts +90 -2
- package/dist/nodes/Hudu/resources/password_folders/password_folders.types.js +2 -2
- package/dist/nodes/Hudu/resources/password_folders/password_folders.types.ts +3 -1
- package/dist/nodes/Hudu/resources/procedure_tasks/procedure_tasks.handler.js +52 -53
- package/dist/nodes/Hudu/resources/procedure_tasks/procedure_tasks.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/procedure_tasks/procedure_tasks.handler.ts +2 -2
- package/dist/nodes/Hudu/resources/procedure_tasks/procedure_tasks.types.js +2 -2
- package/dist/nodes/Hudu/resources/procedures/procedures.handler.js +116 -117
- package/dist/nodes/Hudu/resources/procedures/procedures.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/procedures/procedures.handler.ts +2 -2
- package/dist/nodes/Hudu/resources/procedures/procedures.types.js +2 -2
- package/dist/nodes/Hudu/resources/public_photos/public_photos.handler.js +93 -94
- package/dist/nodes/Hudu/resources/public_photos/public_photos.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/public_photos/public_photos.types.js +2 -2
- package/dist/nodes/Hudu/resources/rack_storage_items/rack_storage_items.handler.js +48 -49
- package/dist/nodes/Hudu/resources/rack_storage_items/rack_storage_items.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/rack_storage_items/rack_storage_items.handler.ts +2 -2
- package/dist/nodes/Hudu/resources/rack_storage_items/rack_storage_items.types.js +2 -2
- package/dist/nodes/Hudu/resources/rack_storages/rack_storages.handler.js +91 -92
- package/dist/nodes/Hudu/resources/rack_storages/rack_storages.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/rack_storages/rack_storages.handler.ts +2 -2
- package/dist/nodes/Hudu/resources/rack_storages/rack_storages.types.js +2 -2
- package/dist/nodes/Hudu/resources/relations/relations.handler.js +35 -36
- package/dist/nodes/Hudu/resources/relations/relations.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/relations/relations.types.js +24 -24
- package/dist/nodes/Hudu/resources/uploads/uploads.handler.js +31 -32
- package/dist/nodes/Hudu/resources/uploads/uploads.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/uploads/uploads.types.js +2 -2
- package/dist/nodes/Hudu/resources/users/users.handler.js +21 -22
- package/dist/nodes/Hudu/resources/users/users.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/users/users.handler.ts +1 -1
- package/dist/nodes/Hudu/resources/users/users.types.js +2 -2
- package/dist/nodes/Hudu/resources/vlan_zones/vlan_zones.handler.js +152 -153
- package/dist/nodes/Hudu/resources/vlan_zones/vlan_zones.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/vlan_zones/vlan_zones.handler.ts +2 -2
- package/dist/nodes/Hudu/resources/vlan_zones/vlan_zones.types.js +2 -2
- package/dist/nodes/Hudu/resources/vlans/vlans.handler.js +152 -153
- package/dist/nodes/Hudu/resources/vlans/vlans.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/vlans/vlans.handler.ts +2 -2
- package/dist/nodes/Hudu/resources/vlans/vlans.types.js +2 -2
- package/dist/nodes/Hudu/resources/websites/websites.handler.js +119 -120
- package/dist/nodes/Hudu/resources/websites/websites.handler.js.map +1 -1
- package/dist/nodes/Hudu/resources/websites/websites.handler.ts +2 -2
- package/dist/nodes/Hudu/resources/websites/websites.types.js +2 -2
- package/dist/nodes/Hudu/utils/assetFieldUtils.js +328 -272
- package/dist/nodes/Hudu/utils/assetFieldUtils.js.map +1 -1
- package/dist/nodes/Hudu/utils/assetFieldUtils.ts +94 -30
- package/dist/nodes/Hudu/utils/constants.js +186 -185
- package/dist/nodes/Hudu/utils/constants.js.map +1 -1
- package/dist/nodes/Hudu/utils/constants.ts +1 -0
- package/dist/nodes/Hudu/utils/dateUtils.js +137 -138
- package/dist/nodes/Hudu/utils/dateUtils.js.map +1 -1
- package/dist/nodes/Hudu/utils/debugConfig.js +170 -170
- package/dist/nodes/Hudu/utils/debugConfig.js.map +1 -1
- package/dist/nodes/Hudu/utils/debugConfig.ts +3 -3
- package/dist/nodes/Hudu/utils/errorParser.js +55 -56
- package/dist/nodes/Hudu/utils/errorParser.js.map +1 -1
- package/dist/nodes/Hudu/utils/fieldErrorUtils.js +15 -16
- package/dist/nodes/Hudu/utils/fieldErrorUtils.js.map +1 -1
- package/dist/nodes/Hudu/utils/fieldTypeUtils.js +143 -144
- package/dist/nodes/Hudu/utils/fieldTypeUtils.js.map +1 -1
- package/dist/nodes/Hudu/utils/filterUtils.js +52 -53
- package/dist/nodes/Hudu/utils/filterUtils.js.map +1 -1
- package/dist/nodes/Hudu/utils/formatters.js +37 -38
- package/dist/nodes/Hudu/utils/formatters.js.map +1 -1
- package/dist/nodes/Hudu/utils/index.js +24 -24
- package/dist/nodes/Hudu/utils/markdownUtils.js +81 -0
- package/dist/nodes/Hudu/utils/markdownUtils.js.map +1 -0
- package/dist/nodes/Hudu/utils/markdownUtils.ts +119 -0
- package/dist/nodes/Hudu/utils/operations/archive.js +23 -24
- package/dist/nodes/Hudu/utils/operations/archive.js.map +1 -1
- package/dist/nodes/Hudu/utils/operations/cards.js +21 -22
- package/dist/nodes/Hudu/utils/operations/cards.js.map +1 -1
- package/dist/nodes/Hudu/utils/operations/companies.js +16 -17
- package/dist/nodes/Hudu/utils/operations/companies.js.map +1 -1
- package/dist/nodes/Hudu/utils/operations/create.js +18 -19
- package/dist/nodes/Hudu/utils/operations/create.js.map +1 -1
- package/dist/nodes/Hudu/utils/operations/delete.js +22 -23
- package/dist/nodes/Hudu/utils/operations/delete.js.map +1 -1
- package/dist/nodes/Hudu/utils/operations/get.js +21 -19
- package/dist/nodes/Hudu/utils/operations/get.js.map +1 -1
- package/dist/nodes/Hudu/utils/operations/get.ts +9 -0
- package/dist/nodes/Hudu/utils/operations/getAll.js +26 -27
- package/dist/nodes/Hudu/utils/operations/getAll.js.map +1 -1
- package/dist/nodes/Hudu/utils/operations/getCompanyIdForAsset.js +21 -22
- package/dist/nodes/Hudu/utils/operations/getCompanyIdForAsset.js.map +1 -1
- package/dist/nodes/Hudu/utils/operations/index.js +23 -23
- package/dist/nodes/Hudu/utils/operations/magic_dash.js +45 -46
- package/dist/nodes/Hudu/utils/operations/magic_dash.js.map +1 -1
- package/dist/nodes/Hudu/utils/operations/magic_dash.ts +68 -68
- package/dist/nodes/Hudu/utils/operations/matchers.js +22 -23
- package/dist/nodes/Hudu/utils/operations/matchers.js.map +1 -1
- package/dist/nodes/Hudu/utils/operations/procedures.js +26 -27
- package/dist/nodes/Hudu/utils/operations/procedures.js.map +1 -1
- package/dist/nodes/Hudu/utils/operations/systemInfo.js +7 -8
- package/dist/nodes/Hudu/utils/operations/systemInfo.js.map +1 -1
- package/dist/nodes/Hudu/utils/operations/update.js +19 -20
- package/dist/nodes/Hudu/utils/operations/update.js.map +1 -1
- package/dist/nodes/Hudu/utils/requestUtils.js +328 -308
- package/dist/nodes/Hudu/utils/requestUtils.js.map +1 -1
- package/dist/nodes/Hudu/utils/requestUtils.ts +518 -491
- package/dist/nodes/Hudu/utils/types.js +2 -2
- package/dist/nodes/Hudu/utils/validation.js +22 -23
- package/dist/nodes/Hudu/utils/validation.js.map +1 -1
- package/package.json +4 -4
- package/dist/nodes/Hudu/optionLoaders/assets/getAssets.js +0 -84
- package/dist/nodes/Hudu/optionLoaders/assets/getAssets.js.map +0 -1
- package/dist/nodes/Hudu/optionLoaders/assets/getAssets.ts +0 -136
- package/dist/nodes/Hudu/optionLoaders/assets/getAssetsForCompany.js +0 -45
- package/dist/nodes/Hudu/optionLoaders/assets/getAssetsForCompany.js.map +0 -1
- package/dist/nodes/Hudu/optionLoaders/assets/getAssetsForCompany.ts +0 -59
|
@@ -1,273 +1,329 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
:
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
throw new Error(`Invalid value for
|
|
140
|
-
case constants_1.ASSET_LAYOUT_FIELD_TYPES.
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
(
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
case constants_1.ASSET_LAYOUT_FIELD_TYPES.
|
|
186
|
-
if (Array.isArray(value)) {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
if (typeof value === '
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
case constants_1.ASSET_LAYOUT_FIELD_TYPES.
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAssetWithMetadata = getAssetWithMetadata;
|
|
4
|
+
exports.validateFieldForMapping = validateFieldForMapping;
|
|
5
|
+
exports.validateFieldForMappingLegacy = validateFieldForMappingLegacy;
|
|
6
|
+
exports.transformFieldValueForUpdate = transformFieldValueForUpdate;
|
|
7
|
+
exports.updateAssetWithMappedFields = updateAssetWithMappedFields;
|
|
8
|
+
const luxon_1 = require("luxon");
|
|
9
|
+
const getCompanyIdForAsset_1 = require("./operations/getCompanyIdForAsset");
|
|
10
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
11
|
+
const debugConfig_1 = require("./debugConfig");
|
|
12
|
+
const requestUtils_1 = require("./requestUtils");
|
|
13
|
+
const fieldTypeUtils_1 = require("./fieldTypeUtils");
|
|
14
|
+
const constants_1 = require("./constants");
|
|
15
|
+
async function getAssetWithMetadata(context, assetId, itemIndex) {
|
|
16
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_PROCESSING] Fetching asset metadata', { assetId });
|
|
17
|
+
const { companyId, assetObject } = await (0, getCompanyIdForAsset_1.getCompanyIdForAsset)(context, assetId, itemIndex);
|
|
18
|
+
if (!assetObject) {
|
|
19
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_PROCESSING] Asset object not found', { assetId });
|
|
20
|
+
throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Asset with ID '${assetId}' not found.`, { itemIndex });
|
|
21
|
+
}
|
|
22
|
+
const assetLayoutIdRaw = assetObject.asset_layout_id;
|
|
23
|
+
let assetLayoutId;
|
|
24
|
+
if (typeof assetLayoutIdRaw === 'number') {
|
|
25
|
+
assetLayoutId = assetLayoutIdRaw;
|
|
26
|
+
}
|
|
27
|
+
else if (typeof assetLayoutIdRaw === 'string' && !isNaN(Number(assetLayoutIdRaw))) {
|
|
28
|
+
assetLayoutId = Number(assetLayoutIdRaw);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_PROCESSING] Invalid asset layout ID type', { assetId, assetLayoutIdRaw });
|
|
32
|
+
throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Asset with ID '${assetId}' has an invalid asset_layout_id.`, { itemIndex });
|
|
33
|
+
}
|
|
34
|
+
const name = assetObject.name;
|
|
35
|
+
const fields = Array.isArray(assetObject.fields) ? assetObject.fields : [];
|
|
36
|
+
if (!assetLayoutId) {
|
|
37
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_PROCESSING] Asset layout ID not found', { assetId });
|
|
38
|
+
throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Asset with ID '${assetId}' does not have an asset_layout_id.`, { itemIndex });
|
|
39
|
+
}
|
|
40
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_PROCESSING] Asset metadata retrieved', { assetId, companyId, assetLayoutId, name, fieldsCount: fields.length });
|
|
41
|
+
return {
|
|
42
|
+
assetId: Number(assetId),
|
|
43
|
+
companyId: typeof companyId === 'string' ? Number(companyId) : companyId,
|
|
44
|
+
assetLayoutId,
|
|
45
|
+
name: name,
|
|
46
|
+
fields,
|
|
47
|
+
assetObject,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function validateFieldForMapping(context, layoutFields, fieldIdentifier, expectedJsType, itemIndex) {
|
|
51
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_VALIDATION] Validating field for mapping', { fieldIdentifier, expectedJsType, fieldsCount: layoutFields.length });
|
|
52
|
+
if (!Array.isArray(layoutFields) || layoutFields.length === 0) {
|
|
53
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_VALIDATION] No layout fields provided', { fieldIdentifier });
|
|
54
|
+
throw new n8n_workflow_1.NodeOperationError(context.getNode(), `No layout fields available for validation of field '${fieldIdentifier}'.`, { itemIndex });
|
|
55
|
+
}
|
|
56
|
+
const field = layoutFields.find((f) => f.label === fieldIdentifier || String(f.id) === String(fieldIdentifier));
|
|
57
|
+
if (!field) {
|
|
58
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_VALIDATION] Field not found in layout', { fieldIdentifier, availableFields: layoutFields.map(f => f.label) });
|
|
59
|
+
throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Field '${fieldIdentifier}' not found in asset layout. Available fields: ${layoutFields.map(f => f.label).join(', ')}.`, { itemIndex });
|
|
60
|
+
}
|
|
61
|
+
const normalisedFieldType = (0, fieldTypeUtils_1.normaliseFieldType)(field.field_type);
|
|
62
|
+
const expectedFieldJsType = (0, fieldTypeUtils_1.getExpectedJavaScriptType)(normalisedFieldType);
|
|
63
|
+
const inputIsCompatible = () => {
|
|
64
|
+
switch (normalisedFieldType) {
|
|
65
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.CHECKBOX:
|
|
66
|
+
return expectedJsType === 'boolean' || expectedJsType === 'string';
|
|
67
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.NUMBER:
|
|
68
|
+
return expectedJsType === 'number' || expectedJsType === 'string';
|
|
69
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.DATE:
|
|
70
|
+
return expectedJsType === 'string';
|
|
71
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.ADDRESS_DATA:
|
|
72
|
+
return expectedJsType === 'object' || expectedJsType === 'string';
|
|
73
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.LIST_SELECT:
|
|
74
|
+
return expectedJsType === 'object' || expectedJsType === 'string';
|
|
75
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.RELATION:
|
|
76
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.ASSET_TAG:
|
|
77
|
+
return expectedJsType === 'number' || expectedJsType === 'string' || expectedJsType === 'object';
|
|
78
|
+
default:
|
|
79
|
+
return expectedFieldJsType === expectedJsType;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
if (!inputIsCompatible()) {
|
|
83
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_VALIDATION] Field type mismatch', {
|
|
84
|
+
fieldIdentifier,
|
|
85
|
+
expected: expectedJsType,
|
|
86
|
+
actual: expectedFieldJsType,
|
|
87
|
+
huduFieldType: normalisedFieldType
|
|
88
|
+
});
|
|
89
|
+
throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Field '${fieldIdentifier}' type mismatch: received '${expectedJsType}', but field type '${normalisedFieldType}' expects '${expectedFieldJsType}'.`, { itemIndex });
|
|
90
|
+
}
|
|
91
|
+
if (!(0, fieldTypeUtils_1.isFieldTypeUpdatable)(normalisedFieldType)) {
|
|
92
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_VALIDATION] Field type not updatable', { fieldIdentifier, fieldType: normalisedFieldType });
|
|
93
|
+
throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Field '${fieldIdentifier}' of type '${normalisedFieldType}' cannot be updated via the API. Please use a different field type or update manually in Hudu.`, { itemIndex });
|
|
94
|
+
}
|
|
95
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_VALIDATION] Field validated successfully', {
|
|
96
|
+
fieldIdentifier,
|
|
97
|
+
fieldType: normalisedFieldType,
|
|
98
|
+
detectedType: (0, fieldTypeUtils_1.detectFieldType)(field),
|
|
99
|
+
jsType: expectedFieldJsType
|
|
100
|
+
});
|
|
101
|
+
return {
|
|
102
|
+
id: String(field.id),
|
|
103
|
+
label: field.label,
|
|
104
|
+
fieldType: normalisedFieldType,
|
|
105
|
+
required: !!field.required,
|
|
106
|
+
linkableId: field.linkable_id,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
async function validateFieldForMappingLegacy(context, assetLayoutId, fieldIdentifier, fieldType, itemIndex) {
|
|
110
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_VALIDATION] Using legacy field validation (consider upgrading)', { assetLayoutId, fieldIdentifier, fieldType });
|
|
111
|
+
const layoutResponseRaw = await requestUtils_1.huduApiRequest.call(context, 'GET', '/asset_layouts', {}, { id: assetLayoutId });
|
|
112
|
+
const layoutResponse = Array.isArray(layoutResponseRaw) ? layoutResponseRaw[0] : layoutResponseRaw;
|
|
113
|
+
const layout = (layoutResponse && typeof layoutResponse === 'object' && 'asset_layout' in layoutResponse)
|
|
114
|
+
? layoutResponse.asset_layout
|
|
115
|
+
: undefined;
|
|
116
|
+
if (!layout || !Array.isArray(layout.fields)) {
|
|
117
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_VALIDATION] Asset layout not found or has no fields', { assetLayoutId });
|
|
118
|
+
throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Asset layout with ID '${assetLayoutId}' not found or has no fields.`, { itemIndex });
|
|
119
|
+
}
|
|
120
|
+
const expectedJsType = (0, fieldTypeUtils_1.getExpectedJavaScriptType)((0, fieldTypeUtils_1.normaliseFieldType)(fieldType));
|
|
121
|
+
return validateFieldForMapping(context, layout.fields, fieldIdentifier, expectedJsType, itemIndex);
|
|
122
|
+
}
|
|
123
|
+
function transformFieldValueForUpdate(value, fieldType) {
|
|
124
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Transforming field value', { value, fieldType, valueType: typeof value });
|
|
125
|
+
const normalisedFieldType = (0, fieldTypeUtils_1.normaliseFieldType)(fieldType);
|
|
126
|
+
if (value === null || value === undefined) {
|
|
127
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Null/undefined value, returning empty string', { fieldType: normalisedFieldType });
|
|
128
|
+
return '';
|
|
129
|
+
}
|
|
130
|
+
switch (normalisedFieldType) {
|
|
131
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.NUMBER:
|
|
132
|
+
if (typeof value === 'number')
|
|
133
|
+
return value;
|
|
134
|
+
if (typeof value === 'string' && value.trim() !== '' && !isNaN(Number(value))) {
|
|
135
|
+
const numValue = Number(value);
|
|
136
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Converted string to number', { original: value, converted: numValue });
|
|
137
|
+
return numValue;
|
|
138
|
+
}
|
|
139
|
+
throw new Error(`Invalid value for Number field: ${value}. Expected a numeric value.`);
|
|
140
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.CHECKBOX:
|
|
141
|
+
if (typeof value === 'boolean')
|
|
142
|
+
return value;
|
|
143
|
+
if (typeof value === 'string') {
|
|
144
|
+
const lower = value.trim().toLowerCase();
|
|
145
|
+
if (lower === 'true' || lower === 'yes' || lower === '1') {
|
|
146
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Converted string to true', { original: value });
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
if (lower === 'false' || lower === 'no' || lower === '0' || lower === '') {
|
|
150
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Converted string to false', { original: value });
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
throw new Error(`Invalid value for CheckBox field: ${value}. Expected true/false, yes/no, or 1/0.`);
|
|
155
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.DATE:
|
|
156
|
+
try {
|
|
157
|
+
const dt = luxon_1.DateTime.fromISO(value);
|
|
158
|
+
if (dt.isValid) {
|
|
159
|
+
const dateString = dt.toFormat('yyyy-MM-dd');
|
|
160
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Converted ISO string to yyyy-MM-dd', { original: value, converted: dateString });
|
|
161
|
+
return dateString;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch (e) {
|
|
165
|
+
}
|
|
166
|
+
try {
|
|
167
|
+
const dt = luxon_1.DateTime.fromFormat(value, 'yyyy-MM-dd');
|
|
168
|
+
if (dt.isValid) {
|
|
169
|
+
return value;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
catch (e) {
|
|
173
|
+
}
|
|
174
|
+
try {
|
|
175
|
+
const dt = luxon_1.DateTime.fromJSDate(new Date(value));
|
|
176
|
+
if (dt.isValid) {
|
|
177
|
+
const dateString = dt.toFormat('yyyy-MM-dd');
|
|
178
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Converted JS Date to yyyy-MM-dd (fallback)', { original: value, converted: dateString });
|
|
179
|
+
return dateString;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
catch (e) {
|
|
183
|
+
}
|
|
184
|
+
throw new Error(`Invalid value for Date field: '${value}'. Expected a valid date string (e.g., YYYY-MM-DD or a full ISO timestamp).`);
|
|
185
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.LIST_SELECT:
|
|
186
|
+
if (Array.isArray(value)) {
|
|
187
|
+
const arr = value.map(v => String(v));
|
|
188
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Using array for List field', { original: value, converted: arr });
|
|
189
|
+
return arr;
|
|
190
|
+
}
|
|
191
|
+
if (typeof value === 'string') {
|
|
192
|
+
const trimmed = value.trim();
|
|
193
|
+
if (trimmed === '')
|
|
194
|
+
return [];
|
|
195
|
+
const arr = trimmed.includes(',') ? trimmed.split(',').map(v => v.trim()).filter(v => v !== '') : [trimmed];
|
|
196
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Normalised string to array for List field', { original: value, converted: arr });
|
|
197
|
+
return arr;
|
|
198
|
+
}
|
|
199
|
+
const single = String(value);
|
|
200
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Coerced value to single-item array for List field', { original: value, converted: [single] });
|
|
201
|
+
return [single];
|
|
202
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.RELATION:
|
|
203
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.ASSET_TAG:
|
|
204
|
+
if (Array.isArray(value)) {
|
|
205
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Value is already an array for AssetTag/Relation', { value });
|
|
206
|
+
return value.map(Number);
|
|
207
|
+
}
|
|
208
|
+
if (typeof value === 'number') {
|
|
209
|
+
const result = [value];
|
|
210
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Converted single number to array for AssetTag/Relation', { result });
|
|
211
|
+
return result;
|
|
212
|
+
}
|
|
213
|
+
if (typeof value === 'string' && value.trim() !== '') {
|
|
214
|
+
const ids = value.split(',').map(id => {
|
|
215
|
+
const num = Number(id.trim());
|
|
216
|
+
if (isNaN(num)) {
|
|
217
|
+
throw new Error(`Invalid non-numeric ID '${id.trim()}' found in list for AssetTag/Relation field.`);
|
|
218
|
+
}
|
|
219
|
+
return num;
|
|
220
|
+
});
|
|
221
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Parsed comma-separated string to ID array for AssetTag/Relation', { original: value, converted: ids });
|
|
222
|
+
return ids;
|
|
223
|
+
}
|
|
224
|
+
return [];
|
|
225
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.ADDRESS_DATA:
|
|
226
|
+
if (typeof value === 'object' && value !== null) {
|
|
227
|
+
const input = value;
|
|
228
|
+
const out = {};
|
|
229
|
+
const getStr = (v) => (v === undefined || v === null ? '' : String(v));
|
|
230
|
+
const candidateMap = {
|
|
231
|
+
address_line_1: 'address_line_1',
|
|
232
|
+
addressLine1: 'address_line_1',
|
|
233
|
+
line1: 'address_line_1',
|
|
234
|
+
address_line_2: 'address_line_2',
|
|
235
|
+
addressLine2: 'address_line_2',
|
|
236
|
+
line2: 'address_line_2',
|
|
237
|
+
city: 'city',
|
|
238
|
+
town: 'city',
|
|
239
|
+
state: 'state',
|
|
240
|
+
province: 'state',
|
|
241
|
+
region: 'state',
|
|
242
|
+
zip: 'zip',
|
|
243
|
+
zip_code: 'zip',
|
|
244
|
+
postcode: 'zip',
|
|
245
|
+
postal_code: 'zip',
|
|
246
|
+
country_name: 'country_name',
|
|
247
|
+
country: 'country_name',
|
|
248
|
+
};
|
|
249
|
+
for (const [key, val] of Object.entries(input)) {
|
|
250
|
+
const normalisedKey = candidateMap[key] || key;
|
|
251
|
+
let strVal = getStr(val).trim();
|
|
252
|
+
if (strVal === '')
|
|
253
|
+
continue;
|
|
254
|
+
if (normalisedKey === 'country_name') {
|
|
255
|
+
if (/^[a-z]{2,3}$/i.test(strVal)) {
|
|
256
|
+
strVal = strVal.toUpperCase();
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
else if (normalisedKey === 'state') {
|
|
260
|
+
if (/^[a-z\-]{2,10}$/i.test(strVal)) {
|
|
261
|
+
strVal = strVal.toUpperCase();
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
out[normalisedKey] = strVal;
|
|
265
|
+
}
|
|
266
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Normalised object for Address field', { original: value, normalised: out });
|
|
267
|
+
return out;
|
|
268
|
+
}
|
|
269
|
+
if (typeof value === 'string') {
|
|
270
|
+
try {
|
|
271
|
+
const parsed = JSON.parse(value);
|
|
272
|
+
if (typeof parsed === 'object' && parsed !== null) {
|
|
273
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Parsed JSON string for Address field', { original: value, parsed });
|
|
274
|
+
return transformFieldValueForUpdate(parsed, constants_1.ASSET_LAYOUT_FIELD_TYPES.ADDRESS_DATA);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
throw new Error(`Invalid JSON for Address field: ${value}. Please provide a valid JSON object string. Error: ${error.message}`);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
throw new Error(`Invalid value for Address field: ${value}. Expected an address object or JSON string.`);
|
|
282
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.EMAIL:
|
|
283
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.PHONE:
|
|
284
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.WEBSITE:
|
|
285
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.PASSWORD:
|
|
286
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.TEXT:
|
|
287
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.RICH_TEXT:
|
|
288
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.EMBED:
|
|
289
|
+
const stringResult = String(value);
|
|
290
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Converted to string for text-based field', {
|
|
291
|
+
fieldType: normalisedFieldType,
|
|
292
|
+
original: value,
|
|
293
|
+
converted: stringResult
|
|
294
|
+
});
|
|
295
|
+
return stringResult;
|
|
296
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.HEADING:
|
|
297
|
+
throw new Error(`Heading fields cannot be updated. Field type '${normalisedFieldType}' is for display purposes only.`);
|
|
298
|
+
case constants_1.ASSET_LAYOUT_FIELD_TYPES.DROPDOWN:
|
|
299
|
+
throw new Error(`Dropdown fields cannot be updated via the API. Please convert the field to a List type in Hudu to enable API updates.`);
|
|
300
|
+
default:
|
|
301
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_TRANSFORM] Unknown field type, defaulting to string conversion', {
|
|
302
|
+
fieldType: normalisedFieldType,
|
|
303
|
+
originalFieldType: fieldType,
|
|
304
|
+
value
|
|
305
|
+
});
|
|
306
|
+
return String(value);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
async function updateAssetWithMappedFields(context, assetId, companyId, mappedFields, itemIndex) {
|
|
310
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_PROCESSING] Preparing to update asset with mapped fields', { assetId, companyId, mappedFields });
|
|
311
|
+
const assetPayload = {};
|
|
312
|
+
for (const [key, value] of Object.entries(mappedFields)) {
|
|
313
|
+
assetPayload[key] = value;
|
|
314
|
+
}
|
|
315
|
+
const payload = { asset: assetPayload };
|
|
316
|
+
(0, debugConfig_1.debugLog)('[RESOURCE_PROCESSING] Final update payload', payload);
|
|
317
|
+
const endpoint = `/companies/${companyId}/assets/${assetId}`;
|
|
318
|
+
try {
|
|
319
|
+
(0, debugConfig_1.debugLog)('[API_REQUEST] Sending asset update request', { endpoint, payload });
|
|
320
|
+
const response = await requestUtils_1.huduApiRequest.call(context, 'PUT', endpoint, payload);
|
|
321
|
+
(0, debugConfig_1.debugLog)('[API_RESPONSE] Asset update response received', response);
|
|
322
|
+
return response;
|
|
323
|
+
}
|
|
324
|
+
catch (error) {
|
|
325
|
+
(0, debugConfig_1.debugLog)('[API_RESPONSE] Asset update failed', { error });
|
|
326
|
+
throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Failed to update asset with ID '${assetId}': ${error.message}`, { itemIndex });
|
|
327
|
+
}
|
|
328
|
+
}
|
|
273
329
|
//# sourceMappingURL=assetFieldUtils.js.map
|