n8n-nodes-hudu 1.6.3 → 1.6.4

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.
@@ -79,20 +79,31 @@ exports.activityLogsFields = [
79
79
  {
80
80
  displayName: 'Action Message',
81
81
  name: 'action_message',
82
- type: 'options',
82
+ type: 'multiOptions',
83
83
  options: constants_1.ACTIVITY_LOG_ACTIONS.map((action) => ({
84
84
  name: (0, formatters_1.formatTitleCase)(action),
85
85
  value: action,
86
86
  })),
87
- default: '',
88
- description: 'Filter by exact action message match',
87
+ default: [],
88
+ description: 'Filter by action message(s). When multiple actions are selected, separate queries are made for each action and the results are merged client-side.',
89
+ },
90
+ {
91
+ displayName: 'Fields to Return',
92
+ name: 'fields',
93
+ type: 'multiOptions',
94
+ options: constants_1.ACTIVITY_LOG_FIELDS.map((field) => ({
95
+ name: field.name,
96
+ value: field.value,
97
+ })),
98
+ default: [],
99
+ description: 'Select which fields to return. If none selected, all fields are returned.',
89
100
  },
90
101
  {
91
102
  displayName: 'Resource ID',
92
103
  name: 'resource_id',
93
104
  type: 'number',
94
105
  default: undefined,
95
- description: 'Filter by resource ID (must be used together with Resource Type)',
106
+ description: 'Filter by resource ID. When used with Resource Type, enables efficient API-level filtering.',
96
107
  },
97
108
  {
98
109
  displayName: 'Resource Type',
@@ -103,7 +114,7 @@ exports.activityLogsFields = [
103
114
  value: type,
104
115
  })),
105
116
  default: '',
106
- description: 'Filter by resource type (must be used together with Resource ID)',
117
+ description: 'Filter by resource type. When used alone, pages are fetched incrementally and filtered client-side. For efficient API-level filtering, also provide Resource ID.',
107
118
  },
108
119
  {
109
120
  displayName: 'Start Date',
@@ -1 +1 @@
1
- {"version":3,"file":"activity_logs.description.js","sourceRoot":"","sources":["../../../../../src/nodes/Hudu/descriptions/activity_logs.description.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity_logs.description.js","sourceRoot":"","sources":["../../../../../src/nodes/Hudu/descriptions/activity_logs.description.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { INodeProperties } from 'n8n-workflow';
2
- import { HUDU_API_CONSTANTS, ACTIVITY_LOG_ACTIONS, RESOURCE_TYPES } from '../utils/constants';
2
+ import { HUDU_API_CONSTANTS, ACTIVITY_LOG_ACTIONS, ACTIVITY_LOG_FIELDS, RESOURCE_TYPES } from '../utils/constants';
3
3
  import { formatTitleCase } from '../utils/formatters';
4
4
 
5
5
  export const activityLogsOperations: INodeProperties[] = [
@@ -81,20 +81,31 @@ export const activityLogsFields: INodeProperties[] = [
81
81
  {
82
82
  displayName: 'Action Message',
83
83
  name: 'action_message',
84
- type: 'options',
84
+ type: 'multiOptions',
85
85
  options: ACTIVITY_LOG_ACTIONS.map((action) => ({
86
86
  name: formatTitleCase(action),
87
87
  value: action,
88
88
  })),
89
- default: '',
90
- description: 'Filter by exact action message match',
89
+ default: [],
90
+ description: 'Filter by action message(s). When multiple actions are selected, separate queries are made for each action and the results are merged client-side.',
91
+ },
92
+ {
93
+ displayName: 'Fields to Return',
94
+ name: 'fields',
95
+ type: 'multiOptions',
96
+ options: ACTIVITY_LOG_FIELDS.map((field) => ({
97
+ name: field.name,
98
+ value: field.value,
99
+ })),
100
+ default: [],
101
+ description: 'Select which fields to return. If none selected, all fields are returned.',
91
102
  },
92
103
  {
93
104
  displayName: 'Resource ID',
94
105
  name: 'resource_id',
95
106
  type: 'number',
96
107
  default: undefined,
97
- description: 'Filter by resource ID (must be used together with Resource Type)',
108
+ description: 'Filter by resource ID. When used with Resource Type, enables efficient API-level filtering.',
98
109
  },
99
110
  {
100
111
  displayName: 'Resource Type',
@@ -105,7 +116,7 @@ export const activityLogsFields: INodeProperties[] = [
105
116
  value: type,
106
117
  })),
107
118
  default: '',
108
- description: 'Filter by resource type (must be used together with Resource ID)',
119
+ description: 'Filter by resource type. When used alone, pages are fetched incrementally and filtered client-side. For efficient API-level filtering, also provide Resource ID.',
109
120
  },
110
121
  {
111
122
  displayName: 'Start Date',
@@ -4,6 +4,47 @@ exports.handleActivityLogsOperation = handleActivityLogsOperation;
4
4
  const operations_1 = require("../../utils/operations");
5
5
  const constants_1 = require("../../utils/constants");
6
6
  const requestUtils_1 = require("../../utils/requestUtils");
7
+ function filterFields(item, fields) {
8
+ if (!fields || fields.length === 0) {
9
+ return item;
10
+ }
11
+ const filtered = {};
12
+ for (const field of fields) {
13
+ if (item.hasOwnProperty(field)) {
14
+ filtered[field] = item[field];
15
+ }
16
+ }
17
+ return filtered;
18
+ }
19
+ function applyFieldFiltering(results, fields) {
20
+ if (!fields || fields.length === 0) {
21
+ return results;
22
+ }
23
+ return results.map((item) => filterFields(item, fields));
24
+ }
25
+ async function fetchWithResourceTypeFilter(context, endpoint, filters, resourceType, returnAll, limit) {
26
+ const matchingResults = [];
27
+ let page = 1;
28
+ let hasMorePages = true;
29
+ while (hasMorePages) {
30
+ const qs = { ...filters, page, page_size: constants_1.HUDU_API_CONSTANTS.PAGE_SIZE };
31
+ const response = await requestUtils_1.huduApiRequest.call(context, 'GET', endpoint, {}, qs);
32
+ const items = Array.isArray(response)
33
+ ? response
34
+ : (response.activity_logs || []);
35
+ const matching = items.filter((item) => item.record_type === resourceType);
36
+ matchingResults.push(...matching);
37
+ hasMorePages = items.length === constants_1.HUDU_API_CONSTANTS.PAGE_SIZE;
38
+ if (!returnAll && matchingResults.length >= limit) {
39
+ break;
40
+ }
41
+ page++;
42
+ }
43
+ if (!returnAll && matchingResults.length > limit) {
44
+ return matchingResults.slice(0, limit);
45
+ }
46
+ return matchingResults;
47
+ }
7
48
  async function handleActivityLogsOperation(operation, i) {
8
49
  const resourceEndpoint = '/activity_logs';
9
50
  switch (operation) {
@@ -11,11 +52,73 @@ async function handleActivityLogsOperation(operation, i) {
11
52
  const returnAll = this.getNodeParameter('returnAll', i);
12
53
  const filters = this.getNodeParameter('additionalFields', i);
13
54
  const limit = this.getNodeParameter('limit', i, constants_1.HUDU_API_CONSTANTS.PAGE_SIZE);
55
+ const fieldsToReturn = filters.fields;
14
56
  const cleanedFilters = { ...filters };
57
+ delete cleanedFilters.fields;
58
+ const resourceType = cleanedFilters.resource_type;
59
+ const resourceId = cleanedFilters.resource_id;
60
+ const hasResourceType = resourceType && resourceType !== '';
61
+ const hasResourceId = resourceId && resourceId !== 0;
62
+ const needsClientSideResourceTypeFilter = hasResourceType && !hasResourceId;
63
+ if (needsClientSideResourceTypeFilter) {
64
+ delete cleanedFilters.resource_type;
65
+ }
66
+ if (!hasResourceType && hasResourceId) {
67
+ delete cleanedFilters.resource_id;
68
+ }
15
69
  if (cleanedFilters.resource_id === 0) {
16
70
  delete cleanedFilters.resource_id;
17
71
  }
18
- return await operations_1.handleGetAllOperation.call(this, resourceEndpoint, 'activity_logs', cleanedFilters, returnAll, limit);
72
+ const actionMessages = cleanedFilters.action_message;
73
+ delete cleanedFilters.action_message;
74
+ let results;
75
+ if (Array.isArray(actionMessages) && actionMessages.length > 1) {
76
+ const allResults = [];
77
+ for (const action of actionMessages) {
78
+ const actionFilters = { ...cleanedFilters, action_message: action };
79
+ if (needsClientSideResourceTypeFilter) {
80
+ const actionResults = await fetchWithResourceTypeFilter(this, resourceEndpoint, actionFilters, resourceType, returnAll, limit);
81
+ allResults.push(...actionResults);
82
+ }
83
+ else {
84
+ const actionResults = await operations_1.handleGetAllOperation.call(this, resourceEndpoint, 'activity_logs', actionFilters, returnAll, limit);
85
+ allResults.push(...(Array.isArray(actionResults) ? actionResults : [actionResults]));
86
+ }
87
+ }
88
+ const uniqueMap = new Map();
89
+ for (const item of allResults) {
90
+ if (item.id !== undefined && item.id !== null) {
91
+ uniqueMap.set(item.id, item);
92
+ }
93
+ }
94
+ let merged = Array.from(uniqueMap.values());
95
+ merged.sort((a, b) => {
96
+ const dateA = a.created_at;
97
+ const dateB = b.created_at;
98
+ if (!dateA || !dateB)
99
+ return 0;
100
+ return new Date(dateB).getTime() - new Date(dateA).getTime();
101
+ });
102
+ if (!returnAll && limit && merged.length > limit) {
103
+ merged = merged.slice(0, limit);
104
+ }
105
+ results = merged;
106
+ }
107
+ else {
108
+ if (Array.isArray(actionMessages) && actionMessages.length === 1) {
109
+ cleanedFilters.action_message = actionMessages[0];
110
+ }
111
+ else if (typeof actionMessages === 'string' && actionMessages !== '') {
112
+ cleanedFilters.action_message = actionMessages;
113
+ }
114
+ if (needsClientSideResourceTypeFilter) {
115
+ results = await fetchWithResourceTypeFilter(this, resourceEndpoint, cleanedFilters, resourceType, returnAll, limit);
116
+ }
117
+ else {
118
+ results = await operations_1.handleGetAllOperation.call(this, resourceEndpoint, 'activity_logs', cleanedFilters, returnAll, limit);
119
+ }
120
+ }
121
+ return applyFieldFiltering(results, fieldsToReturn);
19
122
  }
20
123
  case 'delete': {
21
124
  const datetime = this.getNodeParameter('datetime', i);
@@ -1 +1 @@
1
- {"version":3,"file":"activity_logs.handler.js","sourceRoot":"","sources":["../../../../../../src/nodes/Hudu/resources/activity_logs/activity_logs.handler.ts"],"names":[],"mappings":";;AAMA,kEA8CC;AAnDD,uDAA+D;AAE/D,qDAA2D;AAC3D,2DAA0D;AAEnD,KAAK,UAAU,2BAA2B,CAE/C,SAAgC,EAChC,CAAS;IAET,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;IAE1C,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAY,CAAC;YACnE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,CAAgB,CAAC;YAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,8BAAkB,CAAC,SAAS,CAAW,CAAC;YAGxF,MAAM,cAAc,GAAgB,EAAE,GAAG,OAAO,EAAE,CAAC;YACnD,IAAI,cAAc,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,cAAc,CAAC,WAAW,CAAC;YACpC,CAAC;YAED,OAAO,MAAM,kCAAqB,CAAC,IAAI,CACrC,IAAI,EACJ,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,SAAS,EACT,KAAK,CACN,CAAC;QACJ,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAW,CAAC;YAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,CAAgB,CAAC;YAErF,MAAM,EAAE,GAAgB;gBACtB,QAAQ;aACT,CAAC;YAEF,IAAI,gBAAgB,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;gBAC1D,EAAE,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,sBAAsB,CAAC;YACtE,CAAC;YAED,OAAO,MAAM,6BAAc,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"activity_logs.handler.js","sourceRoot":"","sources":["../../../../../../src/nodes/Hudu/resources/activity_logs/activity_logs.handler.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,80 @@ import type { ActivityLogsOperation } from './activity_logs.types';
4
4
  import { HUDU_API_CONSTANTS } from '../../utils/constants';
5
5
  import { huduApiRequest } from '../../utils/requestUtils';
6
6
 
7
+ /**
8
+ * Filter fields from a result object based on selected fields
9
+ */
10
+ function filterFields(item: IDataObject, fields: string[] | undefined): IDataObject {
11
+ if (!fields || fields.length === 0) {
12
+ return item; // Return all fields if none specified
13
+ }
14
+
15
+ const filtered: IDataObject = {};
16
+ for (const field of fields) {
17
+ if (item.hasOwnProperty(field)) {
18
+ filtered[field] = item[field];
19
+ }
20
+ }
21
+ return filtered;
22
+ }
23
+
24
+ /**
25
+ * Apply field filtering to an array of results
26
+ */
27
+ function applyFieldFiltering(results: IDataObject[], fields: string[] | undefined): IDataObject[] {
28
+ if (!fields || fields.length === 0) {
29
+ return results; // Return all fields if none specified
30
+ }
31
+
32
+ return results.map((item) => filterFields(item, fields));
33
+ }
34
+
35
+ /**
36
+ * Fetch activity logs with client-side resource_type filtering
37
+ * Uses incremental pagination to avoid fetching all logs unnecessarily
38
+ */
39
+ async function fetchWithResourceTypeFilter(
40
+ context: IExecuteFunctions,
41
+ endpoint: string,
42
+ filters: IDataObject,
43
+ resourceType: string,
44
+ returnAll: boolean,
45
+ limit: number,
46
+ ): Promise<IDataObject[]> {
47
+ const matchingResults: IDataObject[] = [];
48
+ let page = 1;
49
+ let hasMorePages = true;
50
+
51
+ while (hasMorePages) {
52
+ const qs = { ...filters, page, page_size: HUDU_API_CONSTANTS.PAGE_SIZE };
53
+ const response = await huduApiRequest.call(context, 'GET', endpoint, {}, qs);
54
+ const items = Array.isArray(response)
55
+ ? response
56
+ : ((response as IDataObject).activity_logs as IDataObject[] || []);
57
+
58
+ // Filter this page by record_type
59
+ const matching = items.filter((item) => item.record_type === resourceType);
60
+ matchingResults.push(...matching);
61
+
62
+ // Check if more pages exist
63
+ hasMorePages = items.length === HUDU_API_CONSTANTS.PAGE_SIZE;
64
+
65
+ // Early exit if we have enough (and not returning all)
66
+ if (!returnAll && matchingResults.length >= limit) {
67
+ break;
68
+ }
69
+
70
+ page++;
71
+ }
72
+
73
+ // Apply limit if not returning all
74
+ if (!returnAll && matchingResults.length > limit) {
75
+ return matchingResults.slice(0, limit);
76
+ }
77
+
78
+ return matchingResults;
79
+ }
80
+
7
81
  export async function handleActivityLogsOperation(
8
82
  this: IExecuteFunctions,
9
83
  operation: ActivityLogsOperation,
@@ -17,20 +91,123 @@ export async function handleActivityLogsOperation(
17
91
  const filters = this.getNodeParameter('additionalFields', i) as IDataObject;
18
92
  const limit = this.getNodeParameter('limit', i, HUDU_API_CONSTANTS.PAGE_SIZE) as number;
19
93
 
20
- // Filter out 0 values for optional numeric filters to avoid sending invalid filter values
94
+ // Extract fields to return (if specified)
95
+ const fieldsToReturn = filters.fields as string[] | undefined;
21
96
  const cleanedFilters: IDataObject = { ...filters };
97
+ delete cleanedFilters.fields; // Remove fields from API filters
98
+
99
+ // Determine filtering mode
100
+ const resourceType = cleanedFilters.resource_type as string | undefined;
101
+ const resourceId = cleanedFilters.resource_id as number | undefined;
102
+ const hasResourceType = resourceType && resourceType !== '';
103
+ const hasResourceId = resourceId && resourceId !== 0;
104
+ const needsClientSideResourceTypeFilter = hasResourceType && !hasResourceId;
105
+
106
+ if (needsClientSideResourceTypeFilter) {
107
+ delete cleanedFilters.resource_type;
108
+ }
109
+ if (!hasResourceType && hasResourceId) {
110
+ delete cleanedFilters.resource_id; // API requires both
111
+ }
22
112
  if (cleanedFilters.resource_id === 0) {
23
113
  delete cleanedFilters.resource_id;
24
114
  }
25
115
 
26
- return await handleGetAllOperation.call(
27
- this,
28
- resourceEndpoint,
29
- 'activity_logs',
30
- cleanedFilters,
31
- returnAll,
32
- limit,
33
- );
116
+ // Extract action_message from filters
117
+ const actionMessages = cleanedFilters.action_message as string[] | string | undefined;
118
+ delete cleanedFilters.action_message;
119
+
120
+ let results: IDataObject[];
121
+
122
+ // Handle multi-action selection: query each action separately and merge results
123
+ if (Array.isArray(actionMessages) && actionMessages.length > 1) {
124
+ const allResults: IDataObject[] = [];
125
+
126
+ // Query each action separately
127
+ for (const action of actionMessages) {
128
+ const actionFilters = { ...cleanedFilters, action_message: action };
129
+
130
+ if (needsClientSideResourceTypeFilter) {
131
+ // Use incremental fetch with filter for each action
132
+ const actionResults = await fetchWithResourceTypeFilter(
133
+ this,
134
+ resourceEndpoint,
135
+ actionFilters,
136
+ resourceType!,
137
+ returnAll,
138
+ limit,
139
+ );
140
+ allResults.push(...actionResults);
141
+ } else {
142
+ // Use existing handleGetAllOperation
143
+ const actionResults = await handleGetAllOperation.call(
144
+ this,
145
+ resourceEndpoint,
146
+ 'activity_logs',
147
+ actionFilters,
148
+ returnAll,
149
+ limit,
150
+ );
151
+ allResults.push(...(Array.isArray(actionResults) ? actionResults : [actionResults]));
152
+ }
153
+ }
154
+
155
+ // Deduplicate by id using Map (last occurrence wins)
156
+ const uniqueMap = new Map<number, IDataObject>();
157
+ for (const item of allResults) {
158
+ if (item.id !== undefined && item.id !== null) {
159
+ uniqueMap.set(item.id as number, item);
160
+ }
161
+ }
162
+
163
+ // Convert to array and sort by created_at descending (most recent first)
164
+ let merged = Array.from(uniqueMap.values());
165
+ merged.sort((a, b) => {
166
+ const dateA = a.created_at as string;
167
+ const dateB = b.created_at as string;
168
+ if (!dateA || !dateB) return 0;
169
+ return new Date(dateB).getTime() - new Date(dateA).getTime();
170
+ });
171
+
172
+ // Apply limit if not returning all
173
+ if (!returnAll && limit && merged.length > limit) {
174
+ merged = merged.slice(0, limit);
175
+ }
176
+
177
+ results = merged;
178
+ } else {
179
+ // Single action or no action
180
+ if (Array.isArray(actionMessages) && actionMessages.length === 1) {
181
+ cleanedFilters.action_message = actionMessages[0];
182
+ } else if (typeof actionMessages === 'string' && actionMessages !== '') {
183
+ cleanedFilters.action_message = actionMessages;
184
+ }
185
+
186
+ if (needsClientSideResourceTypeFilter) {
187
+ // Use incremental fetch with filter
188
+ results = await fetchWithResourceTypeFilter(
189
+ this,
190
+ resourceEndpoint,
191
+ cleanedFilters,
192
+ resourceType!,
193
+ returnAll,
194
+ limit,
195
+ );
196
+ } else {
197
+ // Use existing handleGetAllOperation
198
+ results = await handleGetAllOperation.call(
199
+ this,
200
+ resourceEndpoint,
201
+ 'activity_logs',
202
+ cleanedFilters,
203
+ returnAll,
204
+ limit,
205
+ );
206
+ }
207
+ }
208
+
209
+ // Apply field filtering
210
+ return applyFieldFiltering(results, fieldsToReturn);
34
211
  }
35
212
 
36
213
  case 'delete': {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OPERATION = exports.DATETIME_FORMAT = exports.TIME_FORMAT = exports.DATE_FORMAT = exports.RESOURCE_TYPES = exports.ACTIVITY_LOG_ACTIONS = exports.RESOURCES_WITH_PAGE_SIZE = exports.INTEGRATION_SLUGS = exports.ASSET_LAYOUT_FIELD_LABELS = exports.ASSET_LAYOUT_FIELD_TYPES = exports.HUDU_API_CONSTANTS = void 0;
3
+ exports.OPERATION = exports.DATETIME_FORMAT = exports.TIME_FORMAT = exports.DATE_FORMAT = exports.ACTIVITY_LOG_FIELDS = exports.RESOURCE_TYPES = exports.ACTIVITY_LOG_ACTIONS = exports.RESOURCES_WITH_PAGE_SIZE = exports.INTEGRATION_SLUGS = exports.ASSET_LAYOUT_FIELD_LABELS = exports.ASSET_LAYOUT_FIELD_TYPES = exports.HUDU_API_CONSTANTS = void 0;
4
4
  exports.HUDU_API_CONSTANTS = {
5
5
  PAGE_SIZE: 25,
6
6
  DEFAULT_PAGE: 1,
@@ -166,6 +166,33 @@ exports.RESOURCE_TYPES = [
166
166
  'VaultPassword',
167
167
  'Website',
168
168
  ];
169
+ exports.ACTIVITY_LOG_FIELDS = [
170
+ { name: 'Action', value: 'action' },
171
+ { name: 'Agent String', value: 'agent_string' },
172
+ { name: 'App Type', value: 'app_type' },
173
+ { name: 'Company Name', value: 'company_name' },
174
+ { name: 'Created At', value: 'created_at' },
175
+ { name: 'Details', value: 'details' },
176
+ { name: 'Device', value: 'device' },
177
+ { name: 'Formatted Datetime', value: 'formatted_datetime' },
178
+ { name: 'ID', value: 'id' },
179
+ { name: 'IP Address', value: 'ip_address' },
180
+ { name: 'Original Record Name', value: 'original_record_name' },
181
+ { name: 'OS', value: 'os' },
182
+ { name: 'Record Company URL', value: 'record_company_url' },
183
+ { name: 'Record ID', value: 'record_id' },
184
+ { name: 'Record Name', value: 'record_name' },
185
+ { name: 'Record Type', value: 'record_type' },
186
+ { name: 'Record URL', value: 'record_url' },
187
+ { name: 'Record User URL', value: 'record_user_url' },
188
+ { name: 'Token', value: 'token' },
189
+ { name: 'URL', value: 'url' },
190
+ { name: 'User Email', value: 'user_email' },
191
+ { name: 'User ID', value: 'user_id' },
192
+ { name: 'User Initials', value: 'user_initials' },
193
+ { name: 'User Name', value: 'user_name' },
194
+ { name: 'User Short Name', value: 'user_short_name' },
195
+ ];
169
196
  exports.DATE_FORMAT = 'YYYY-MM-DD';
170
197
  exports.TIME_FORMAT = 'HH:mm:ss';
171
198
  exports.DATETIME_FORMAT = `${exports.DATE_FORMAT} ${exports.TIME_FORMAT}`;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/nodes/Hudu/utils/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/nodes/Hudu/utils/constants.ts"],"names":[],"mappings":"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"}
@@ -194,6 +194,37 @@ export const RESOURCE_TYPES = [
194
194
  'Website',
195
195
  ] as const;
196
196
 
197
+ /**
198
+ * Activity log response fields (alphabetically sorted by display name)
199
+ */
200
+ export const ACTIVITY_LOG_FIELDS = [
201
+ { name: 'Action', value: 'action' },
202
+ { name: 'Agent String', value: 'agent_string' },
203
+ { name: 'App Type', value: 'app_type' },
204
+ { name: 'Company Name', value: 'company_name' },
205
+ { name: 'Created At', value: 'created_at' },
206
+ { name: 'Details', value: 'details' },
207
+ { name: 'Device', value: 'device' },
208
+ { name: 'Formatted Datetime', value: 'formatted_datetime' },
209
+ { name: 'ID', value: 'id' },
210
+ { name: 'IP Address', value: 'ip_address' },
211
+ { name: 'Original Record Name', value: 'original_record_name' },
212
+ { name: 'OS', value: 'os' },
213
+ { name: 'Record Company URL', value: 'record_company_url' },
214
+ { name: 'Record ID', value: 'record_id' },
215
+ { name: 'Record Name', value: 'record_name' },
216
+ { name: 'Record Type', value: 'record_type' },
217
+ { name: 'Record URL', value: 'record_url' },
218
+ { name: 'Record User URL', value: 'record_user_url' },
219
+ { name: 'Token', value: 'token' },
220
+ { name: 'URL', value: 'url' },
221
+ { name: 'User Email', value: 'user_email' },
222
+ { name: 'User ID', value: 'user_id' },
223
+ { name: 'User Initials', value: 'user_initials' },
224
+ { name: 'User Name', value: 'user_name' },
225
+ { name: 'User Short Name', value: 'user_short_name' },
226
+ ] as const;
227
+
197
228
  // General date format constants
198
229
  export const DATE_FORMAT = 'YYYY-MM-DD';
199
230
  export const TIME_FORMAT = 'HH:mm:ss';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-hudu",
3
- "version": "1.6.3",
3
+ "version": "1.6.4",
4
4
  "description": "This n8n custom node facilitates integration with Hudu's API.",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",