@lbono/n8n-nodes-npaw 2.0.0 → 2.0.2

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.
@@ -80,8 +80,32 @@ class Npaw {
80
80
  resource: ['data', 'events', 'rawData', 'alerts'],
81
81
  },
82
82
  },
83
- default: 'last24hours',
84
- description: 'Date range (e.g., last24hours, last7days)',
83
+ default: 'last6hours',
84
+ options: [
85
+ { name: 'Last 6 Hours', value: 'last6hours' },
86
+ { name: 'Last 24 Hours', value: 'last24hours' },
87
+ { name: 'Today', value: 'today' },
88
+ { name: 'Yesterday', value: 'yesterday' },
89
+ { name: 'This Week', value: 'thisweek' },
90
+ { name: 'Last Week', value: 'lastweek' },
91
+ { name: 'This Month', value: 'thismonth' },
92
+ { name: 'Last Month', value: 'lastmonth' },
93
+ { name: 'Last 7 Days', value: 'last7days' },
94
+ { name: 'Last 30 Days', value: 'last30days' },
95
+ { name: 'Last 90 Days', value: 'last90days' },
96
+ { name: 'Last 3 Months', value: 'last3months' },
97
+ { name: 'Last 6 Months', value: 'last6months' },
98
+ { name: 'Last 12 Months', value: 'last12months' },
99
+ { name: 'Last Minute', value: 'lastminute' },
100
+ { name: 'Last 5 Minutes', value: 'last5minutes' },
101
+ { name: 'Last 10 Minutes', value: 'last10minutes' },
102
+ { name: 'Last 30 Minutes', value: 'last30minutes' },
103
+ { name: 'Last Hour', value: 'lasthour' },
104
+ { name: 'Last 2 Hours', value: 'last2hours' },
105
+ { name: 'Last 3 Hours', value: 'last3hours' },
106
+ ],
107
+ placeholder: 'YYYY-MM-DD or YYYY-MM-DD HH:mm:ss',
108
+ description: 'Select a preset or enter a custom date (YYYY-MM-DD, YYYY-MM-DD HH:mm:ss, or timestamp)',
85
109
  },
86
110
  {
87
111
  displayName: 'Metrics',
@@ -93,7 +117,44 @@ class Npaw {
93
117
  },
94
118
  },
95
119
  default: 'views,hours,uniques',
96
- description: 'Comma-separated metrics',
120
+ options: [
121
+ { name: 'Views', value: 'views' },
122
+ { name: 'Hours', value: 'hours' },
123
+ { name: 'Errors', value: 'errors' },
124
+ { name: 'Join Time', value: 'joinTime' },
125
+ { name: 'Uniques', value: 'uniques' },
126
+ { name: 'Concurrent', value: 'concurrent' },
127
+ { name: 'Bitrate', value: 'bitrate' },
128
+ { name: 'Startup Error', value: 'startupError' },
129
+ { name: 'Startup Error Count', value: 'startupErrorCount' },
130
+ { name: 'Startup Error Crash', value: 'startupErrorCrash' },
131
+ { name: 'Startup Error Crash Count', value: 'startupErrorCrashCount' },
132
+ { name: 'In Stream Error', value: 'inStreamError' },
133
+ { name: 'In Stream Error Count', value: 'inStreamErrorCount' },
134
+ { name: 'In Stream Error Crash', value: 'inStreamErrorCrash' },
135
+ { name: 'In Stream Error Crash Count', value: 'inStreamErrorCrashCount' },
136
+ { name: 'Abandon Users', value: 'abandonUsers' },
137
+ { name: 'Avg Happiness', value: 'avgHappiness' },
138
+ { name: 'Buffer Events', value: 'bufferEvents' },
139
+ { name: 'Buffer Ratio', value: 'bufferRatio' },
140
+ { name: 'Effective Hours', value: 'effectiveHours' },
141
+ { name: 'Effective Time', value: 'effectiveTime' },
142
+ { name: 'Exits', value: 'exits' },
143
+ { name: 'Exits Count', value: 'exitsCount' },
144
+ { name: 'Interruptions Ratio', value: 'interruptionsRatio' },
145
+ { name: 'Peak Concurrent', value: 'peakConcurrent' },
146
+ { name: 'Plays Vs Errors', value: 'playsVsErrors' },
147
+ { name: 'Playtime', value: 'playtime' },
148
+ { name: 'Rebuffered Plays', value: 'rebufferedPlays' },
149
+ { name: 'Stops', value: 'stops' },
150
+ { name: 'Subscribers', value: 'subscribers' },
151
+ { name: 'Successful Plays', value: 'successfulPlays' },
152
+ { name: 'Throughput', value: 'throughput' },
153
+ { name: 'Traffic', value: 'traffic' },
154
+ { name: 'Uniques Play Failure', value: 'uniquesPlayFailure' },
155
+ ],
156
+ placeholder: 'views,hours,uniques',
157
+ description: 'Select metrics or enter comma-separated values',
97
158
  },
98
159
  {
99
160
  displayName: 'Granularity',
@@ -105,12 +166,24 @@ class Npaw {
105
166
  },
106
167
  },
107
168
  options: [
169
+ { name: 'None', value: 'none' },
170
+ { name: 'Second', value: 'second' },
171
+ { name: '5 Seconds', value: '5second' },
172
+ { name: '10 Seconds', value: '10second' },
173
+ { name: '20 Seconds', value: '20second' },
174
+ { name: '30 Seconds', value: '30second' },
175
+ { name: 'Minute', value: 'minute' },
176
+ { name: '5 Minutes', value: '5minute' },
177
+ { name: '10 Minutes', value: '10minute' },
178
+ { name: '20 Minutes', value: '20minute' },
179
+ { name: '30 Minutes', value: '30minute' },
108
180
  { name: 'Hour', value: 'hour' },
109
181
  { name: 'Day', value: 'day' },
110
182
  { name: 'Week', value: 'week' },
111
183
  { name: 'Month', value: 'month' },
112
184
  ],
113
185
  default: 'hour',
186
+ description: 'Time granularity for data aggregation',
114
187
  },
115
188
  {
116
189
  displayName: 'Limit',
@@ -121,8 +194,8 @@ class Npaw {
121
194
  resource: ['events', 'rawData'],
122
195
  },
123
196
  },
124
- default: 10,
125
- description: 'Max number of results',
197
+ default: 40,
198
+ description: 'Max number of results (events/rawData: max 500, data: max 2000)',
126
199
  },
127
200
  {
128
201
  displayName: 'Additional Fields',
@@ -136,17 +209,54 @@ class Npaw {
136
209
  },
137
210
  },
138
211
  options: [
212
+ {
213
+ displayName: 'To Date',
214
+ name: 'toDate',
215
+ type: 'string',
216
+ default: '',
217
+ placeholder: 'YYYY-MM-DD or YYYY-MM-DD HH:mm:ss',
218
+ description: 'Final date limit (exclusive). Accepts YYYY-MM-DD, YYYY-MM-DD HH:mm:ss, or timestamp',
219
+ },
139
220
  {
140
221
  displayName: 'Group By',
141
222
  name: 'groupBy',
142
223
  type: 'string',
143
224
  default: '',
225
+ description: 'Dimensions to group by (comma-separated)',
144
226
  },
145
227
  {
146
228
  displayName: 'Order By',
147
229
  name: 'orderBy',
148
230
  type: 'string',
149
231
  default: '',
232
+ options: [
233
+ { name: 'Views', value: 'views' },
234
+ { name: 'Uniques', value: 'uniques' },
235
+ { name: 'Playtime', value: 'playtime' },
236
+ { name: 'Hours', value: 'hours' },
237
+ { name: 'Join Time', value: 'joinTime' },
238
+ { name: 'Bitrate', value: 'bitrate' },
239
+ { name: 'Buffer Ratio', value: 'bufferRatio' },
240
+ { name: 'Buffer Events', value: 'bufferEvents' },
241
+ { name: 'Startup Error', value: 'startupError' },
242
+ { name: 'Exits', value: 'exits' },
243
+ { name: 'Completion Rate', value: 'completionRate' },
244
+ { name: 'Seeks', value: 'seeks' },
245
+ { name: 'Pauses', value: 'pauses' },
246
+ { name: 'Stops', value: 'stops' },
247
+ { name: 'User', value: 'user' },
248
+ { name: 'Device', value: 'device' },
249
+ { name: 'Title', value: 'title' },
250
+ { name: 'Country', value: 'country' },
251
+ { name: 'City', value: 'city' },
252
+ { name: 'Device Type', value: 'device_type' },
253
+ { name: 'OS', value: 'os' },
254
+ { name: 'Browser', value: 'browser' },
255
+ { name: 'CDN', value: 'cdn' },
256
+ { name: 'ISP', value: 'isp' },
257
+ ],
258
+ placeholder: 'views,user',
259
+ description: 'Metric or dimension to sort by (comma-separated)',
150
260
  },
151
261
  {
152
262
  displayName: 'Order Direction',
@@ -155,16 +265,123 @@ class Npaw {
155
265
  options: [
156
266
  { name: 'Ascending', value: 'asc' },
157
267
  { name: 'Descending', value: 'desc' },
268
+ { name: 'Best', value: 'best' },
269
+ { name: 'Worst', value: 'worst' },
158
270
  ],
159
271
  default: 'desc',
272
+ description: 'Sort order for results',
273
+ },
274
+ {
275
+ displayName: 'Limit',
276
+ name: 'limit',
277
+ type: 'number',
278
+ default: 100,
279
+ description: 'Max number of results (max 2000)',
280
+ },
281
+ {
282
+ displayName: 'Offset',
283
+ name: 'offset',
284
+ type: 'number',
285
+ default: 0,
286
+ description: 'Number of results to skip for pagination',
160
287
  },
161
288
  {
162
289
  displayName: 'Filter (JSON)',
163
290
  name: 'filter',
164
291
  type: 'string',
165
292
  default: '',
293
+ placeholder: '[{"name":"Filter Name","rules":{"country":["Spain"]}}]',
166
294
  description: 'JSON filter string',
167
295
  },
296
+ {
297
+ displayName: 'Type',
298
+ name: 'type',
299
+ type: 'options',
300
+ options: [
301
+ { name: 'All', value: 'ALL' },
302
+ { name: 'VOD', value: 'VOD' },
303
+ { name: 'Live', value: 'LIVE' },
304
+ { name: 'All + Live', value: 'ALL,LIVE' },
305
+ { name: 'All + VOD', value: 'ALL,VOD' },
306
+ { name: 'Live + VOD', value: 'LIVE,VOD' },
307
+ ],
308
+ default: 'ALL',
309
+ description: 'Type of data to filter',
310
+ },
311
+ {
312
+ displayName: 'Timezone',
313
+ name: 'timezone',
314
+ type: 'string',
315
+ default: '',
316
+ placeholder: 'Europe/Madrid',
317
+ description: 'Timezone for date queries',
318
+ },
319
+ {
320
+ displayName: 'Unix Time Format',
321
+ name: 'unixtimeFormat',
322
+ type: 'options',
323
+ options: [
324
+ { name: 'False', value: 'false' },
325
+ { name: 'True', value: 'true' },
326
+ ],
327
+ default: 'false',
328
+ description: 'Return timestamps in unix format',
329
+ },
330
+ {
331
+ displayName: 'CSV Format',
332
+ name: 'csvFormat',
333
+ type: 'options',
334
+ options: [
335
+ { name: 'False', value: 'false' },
336
+ { name: 'True', value: 'true' },
337
+ ],
338
+ default: 'false',
339
+ description: 'Export data in CSV format',
340
+ },
341
+ {
342
+ displayName: 'Compare Dates',
343
+ name: 'compareDates',
344
+ type: 'string',
345
+ default: '',
346
+ options: [
347
+ { name: 'Today', value: 'today' },
348
+ { name: 'Yesterday', value: 'yesterday' },
349
+ { name: 'This Week', value: 'thisweek' },
350
+ { name: 'This Month', value: 'thismonth' },
351
+ { name: 'This Year', value: 'thisyear' },
352
+ { name: 'This Quarter', value: 'thisquarter' },
353
+ { name: 'Minute Before', value: 'minutebefore' },
354
+ { name: '5 Minutes Before', value: '5minutesBefore' },
355
+ { name: '10 Minutes Before', value: '10minutesBefore' },
356
+ { name: '20 Minutes Before', value: '20minutesBefore' },
357
+ { name: '30 Minutes Before', value: '30minutesBefore' },
358
+ { name: 'Hour Before', value: 'hourbefore' },
359
+ { name: '2 Hours Before', value: '2hoursBefore' },
360
+ { name: '3 Hours Before', value: '3hoursBefore' },
361
+ { name: '6 Hours Before', value: '6hoursBefore' },
362
+ { name: '24 Hours Before', value: '24hoursBefore' },
363
+ { name: 'Day Before', value: 'daybefore' },
364
+ { name: '7 Days Before', value: '7daysBefore' },
365
+ { name: '15 Days Before', value: '15daysBefore' },
366
+ { name: '30 Days Before', value: '30daysBefore' },
367
+ { name: '60 Days Before', value: '60daysBefore' },
368
+ { name: '90 Days Before', value: '90daysBefore' },
369
+ { name: 'Week Before', value: 'weekbefore' },
370
+ { name: '2 Weeks Before', value: '2weeksBefore' },
371
+ { name: '3 Weeks Before', value: '3weeksBefore' },
372
+ { name: '4 Weeks Before', value: '4weeksBefore' },
373
+ { name: 'Month Before', value: 'monthbefore' },
374
+ { name: '2 Months Before', value: '2monthsBefore' },
375
+ { name: '3 Months Before', value: '3monthsBefore' },
376
+ { name: '4 Months Before', value: '4monthsBefore' },
377
+ { name: '6 Months Before', value: '6monthsBefore' },
378
+ { name: '12 Months Before', value: '12monthsBefore' },
379
+ { name: 'Quarter Before', value: 'quarterbefore' },
380
+ { name: 'Year Before', value: 'yearbefore' },
381
+ { name: 'Last 12 Months', value: 'last12months' },
382
+ ],
383
+ description: 'Date range for comparison with main data',
384
+ },
168
385
  ],
169
386
  },
170
387
  ],
@@ -193,14 +410,30 @@ class Npaw {
193
410
  params.granularity = this.getNodeParameter('granularity', i);
194
411
  params.version = '2';
195
412
  const additionalFields = this.getNodeParameter('additionalFields', i);
413
+ if (additionalFields.toDate)
414
+ params.toDate = additionalFields.toDate;
196
415
  if (additionalFields.groupBy)
197
416
  params.groupBy = additionalFields.groupBy;
198
417
  if (additionalFields.orderBy)
199
418
  params.orderBy = additionalFields.orderBy;
200
419
  if (additionalFields.orderDirection)
201
420
  params.orderDirection = additionalFields.orderDirection;
421
+ if (additionalFields.limit)
422
+ params.limit = additionalFields.limit;
423
+ if (additionalFields.offset)
424
+ params.offset = additionalFields.offset;
202
425
  if (additionalFields.filter)
203
426
  params.filter = additionalFields.filter;
427
+ if (additionalFields.type)
428
+ params.type = additionalFields.type;
429
+ if (additionalFields.timezone)
430
+ params.timezone = additionalFields.timezone;
431
+ if (additionalFields.unixtimeFormat)
432
+ params.unixtimeFormat = additionalFields.unixtimeFormat;
433
+ if (additionalFields.csvFormat)
434
+ params.csvFormat = additionalFields.csvFormat;
435
+ if (additionalFields.compareDates)
436
+ params.compareDates = additionalFields.compareDates;
204
437
  }
205
438
  else if (resource === 'events') {
206
439
  endpoint = `/${credentials.accountCode}/rawdata/events`;
@@ -1 +1 @@
1
- {"version":3,"file":"Npaw.node.js","sourceRoot":"","sources":["../../../nodes/Npaw/Npaw.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Npaw.node.js","sourceRoot":"","sources":["../../../nodes/Npaw/Npaw.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class NpawTool implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NpawTool = void 0;
4
+ const GenericFunctions_1 = require("./GenericFunctions");
5
+ class NpawTool {
6
+ constructor() {
7
+ this.description = {
8
+ displayName: 'NPAW Analytics Tool',
9
+ name: 'npawTool',
10
+ icon: 'file:npaw.svg',
11
+ group: ['transform'],
12
+ version: 1,
13
+ description: 'Query NPAW/Youbora analytics data - optimized for AI agents to retrieve video analytics metrics, events, and alerts',
14
+ defaults: {
15
+ name: 'NPAW Analytics',
16
+ },
17
+ codex: {
18
+ categories: ['AI'],
19
+ subcategories: {
20
+ AI: ['Tools'],
21
+ },
22
+ resources: {
23
+ primaryDocumentation: [
24
+ {
25
+ url: 'https://documentation.npaw.com/',
26
+ },
27
+ ],
28
+ },
29
+ },
30
+ inputs: ['main'],
31
+ outputs: ['main'],
32
+ credentials: [
33
+ {
34
+ name: 'npawApi',
35
+ required: true,
36
+ },
37
+ ],
38
+ properties: [
39
+ {
40
+ displayName: 'Query Type',
41
+ name: 'queryType',
42
+ type: 'options',
43
+ noDataExpression: true,
44
+ options: [
45
+ {
46
+ name: 'Get Analytics Data',
47
+ value: 'data',
48
+ description: 'Retrieve aggregated analytics metrics (views, hours, users, buffer ratio, etc.)',
49
+ },
50
+ {
51
+ name: 'Get Raw Events',
52
+ value: 'events',
53
+ description: 'Retrieve raw event data for detailed session analysis',
54
+ },
55
+ {
56
+ name: 'Get Alerts',
57
+ value: 'alerts',
58
+ description: 'Retrieve system alerts and notifications',
59
+ },
60
+ ],
61
+ default: 'data',
62
+ description: 'Type of data to retrieve from NPAW/Youbora platform',
63
+ },
64
+ {
65
+ displayName: 'Time Period',
66
+ name: 'fromDate',
67
+ type: 'string',
68
+ default: 'last24hours',
69
+ options: [
70
+ { name: 'Last Hour', value: 'lasthour' },
71
+ { name: 'Last 6 Hours', value: 'last6hours' },
72
+ { name: 'Last 24 Hours', value: 'last24hours' },
73
+ { name: 'Last 7 Days', value: 'last7days' },
74
+ { name: 'Last 30 Days', value: 'last30days' },
75
+ { name: 'Today', value: 'today' },
76
+ { name: 'Yesterday', value: 'yesterday' },
77
+ { name: 'This Week', value: 'thisweek' },
78
+ { name: 'This Month', value: 'thismonth' },
79
+ ],
80
+ placeholder: 'YYYY-MM-DD or YYYY-MM-DD HH:mm:ss',
81
+ description: 'Time period for data retrieval. Use presets or enter custom date',
82
+ },
83
+ {
84
+ displayName: 'Metrics',
85
+ name: 'metrics',
86
+ type: 'string',
87
+ displayOptions: {
88
+ show: {
89
+ queryType: ['data'],
90
+ },
91
+ },
92
+ default: 'views,hours,uniques',
93
+ placeholder: 'views,hours,uniques,bufferRatio',
94
+ description: 'Comma-separated metrics to retrieve. Common: views, hours, uniques, joinTime, bufferRatio, throughput, errors',
95
+ },
96
+ {
97
+ displayName: 'Granularity',
98
+ name: 'granularity',
99
+ type: 'options',
100
+ displayOptions: {
101
+ show: {
102
+ queryType: ['data'],
103
+ },
104
+ },
105
+ options: [
106
+ { name: 'Minute', value: 'minute' },
107
+ { name: 'Hour', value: 'hour' },
108
+ { name: 'Day', value: 'day' },
109
+ { name: 'Week', value: 'week' },
110
+ { name: 'Month', value: 'month' },
111
+ ],
112
+ default: 'hour',
113
+ description: 'Time granularity for data aggregation',
114
+ },
115
+ {
116
+ displayName: 'Group By',
117
+ name: 'groupBy',
118
+ type: 'string',
119
+ displayOptions: {
120
+ show: {
121
+ queryType: ['data'],
122
+ },
123
+ },
124
+ default: '',
125
+ placeholder: 'country,device_type,browser',
126
+ description: 'Dimensions to group by. Common: country, device_type, browser, cdn, os, title',
127
+ },
128
+ {
129
+ displayName: 'Filter (JSON)',
130
+ name: 'filter',
131
+ type: 'string',
132
+ default: '',
133
+ placeholder: '[{"name":"Spain Users","rules":{"country":["Spain"]}}]',
134
+ description: 'JSON filter to narrow results. Example: [{"name":"Filter Name","rules":{"country":["Spain"],"device_type":["PC"]}}]',
135
+ },
136
+ {
137
+ displayName: 'Limit',
138
+ name: 'limit',
139
+ type: 'number',
140
+ displayOptions: {
141
+ show: {
142
+ queryType: ['events', 'alerts'],
143
+ },
144
+ },
145
+ default: 10,
146
+ description: 'Maximum number of results to return (max 500 for events/alerts)',
147
+ },
148
+ ],
149
+ };
150
+ }
151
+ async execute() {
152
+ const items = this.getInputData();
153
+ const returnData = [];
154
+ const credentials = await this.getCredentials('npawApi');
155
+ for (let i = 0; i < items.length; i++) {
156
+ const queryType = this.getNodeParameter('queryType', i);
157
+ const fromDate = this.getNodeParameter('fromDate', i);
158
+ const filter = this.getNodeParameter('filter', i);
159
+ const params = {
160
+ fromDate,
161
+ version: '2',
162
+ };
163
+ if (filter)
164
+ params.filter = filter;
165
+ let endpoint = '';
166
+ if (queryType === 'data') {
167
+ endpoint = `/${credentials.accountCode}/data`;
168
+ params.metrics = this.getNodeParameter('metrics', i);
169
+ params.granularity = this.getNodeParameter('granularity', i);
170
+ const groupBy = this.getNodeParameter('groupBy', i);
171
+ if (groupBy)
172
+ params.groupBy = groupBy;
173
+ }
174
+ else if (queryType === 'events') {
175
+ endpoint = `/${credentials.accountCode}/rawdata/events`;
176
+ params.limit = this.getNodeParameter('limit', i);
177
+ }
178
+ else if (queryType === 'alerts') {
179
+ endpoint = `/${credentials.accountCode}/rawdata/genericalerts`;
180
+ params.limit = this.getNodeParameter('limit', i, 10);
181
+ }
182
+ const response = await GenericFunctions_1.npawApiRequest.call(this, 'GET', endpoint, params);
183
+ returnData.push(response);
184
+ }
185
+ return [this.helpers.returnJsonArray(returnData)];
186
+ }
187
+ }
188
+ exports.NpawTool = NpawTool;
189
+ //# sourceMappingURL=NpawTool.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NpawTool.tool.js","sourceRoot":"","sources":["../../../nodes/Npaw/NpawTool.tool.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
2
- <rect width="100" height="100" fill="#00A0DC"/>
3
- <text x="50" y="60" font-family="Arial" font-size="40" font-weight="bold" fill="white" text-anchor="middle">N</text>
4
- </svg>
1
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 174 174"><defs><style>.cls-1{fill:url(#Degradado_sin_nombre_6);}.cls-2{fill:url(#Degradado_sin_nombre_6-2);}</style><linearGradient id="Degradado_sin_nombre_6" x1="31.91711" y1="31.91711" x2="142.08288" y2="142.08288" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#058ac0"/><stop offset="0.99691" stop-color="#2bc9c6"/></linearGradient><linearGradient id="Degradado_sin_nombre_6-2" x1="51.04899" y1="62.04896" x2="100.94999" y2="111.94997" xlink:href="#Degradado_sin_nombre_6"/></defs><path class="cls-1" d="M123,150H51a27.03078,27.03078,0,0,1-27-27V51A27.03077,27.03077,0,0,1,51,24h72a27.03078,27.03078,0,0,1,27,27V87a7,7,0,0,1-14,0V51a13.01505,13.01505,0,0,0-13-13H51A13.01505,13.01505,0,0,0,38,51v72a13.01505,13.01505,0,0,0,13,13h72a13.01505,13.01505,0,0,0,13-13,7,7,0,0,1,14,0A27.03079,27.03079,0,0,1,123,150Z"/><path class="cls-2" d="M66,124a6.99862,6.99862,0,0,1-7-7V87a7,7,0,0,1,14,0v17.63672L102.39453,87,62.39844,63.00293a7.00046,7.00046,0,1,1,7.20312-12.00586l50,30a7.00094,7.00094,0,0,1,0,12.00586l-50,30A7.0001,7.0001,0,0,1,66,124Z"/></svg>
@@ -85,8 +85,32 @@ export class Npaw implements INodeType {
85
85
  resource: ['data', 'events', 'rawData', 'alerts'],
86
86
  },
87
87
  },
88
- default: 'last24hours',
89
- description: 'Date range (e.g., last24hours, last7days)',
88
+ default: 'last6hours',
89
+ options: [
90
+ { name: 'Last 6 Hours', value: 'last6hours' },
91
+ { name: 'Last 24 Hours', value: 'last24hours' },
92
+ { name: 'Today', value: 'today' },
93
+ { name: 'Yesterday', value: 'yesterday' },
94
+ { name: 'This Week', value: 'thisweek' },
95
+ { name: 'Last Week', value: 'lastweek' },
96
+ { name: 'This Month', value: 'thismonth' },
97
+ { name: 'Last Month', value: 'lastmonth' },
98
+ { name: 'Last 7 Days', value: 'last7days' },
99
+ { name: 'Last 30 Days', value: 'last30days' },
100
+ { name: 'Last 90 Days', value: 'last90days' },
101
+ { name: 'Last 3 Months', value: 'last3months' },
102
+ { name: 'Last 6 Months', value: 'last6months' },
103
+ { name: 'Last 12 Months', value: 'last12months' },
104
+ { name: 'Last Minute', value: 'lastminute' },
105
+ { name: 'Last 5 Minutes', value: 'last5minutes' },
106
+ { name: 'Last 10 Minutes', value: 'last10minutes' },
107
+ { name: 'Last 30 Minutes', value: 'last30minutes' },
108
+ { name: 'Last Hour', value: 'lasthour' },
109
+ { name: 'Last 2 Hours', value: 'last2hours' },
110
+ { name: 'Last 3 Hours', value: 'last3hours' },
111
+ ],
112
+ placeholder: 'YYYY-MM-DD or YYYY-MM-DD HH:mm:ss',
113
+ description: 'Select a preset or enter a custom date (YYYY-MM-DD, YYYY-MM-DD HH:mm:ss, or timestamp)',
90
114
  },
91
115
  {
92
116
  displayName: 'Metrics',
@@ -98,7 +122,44 @@ export class Npaw implements INodeType {
98
122
  },
99
123
  },
100
124
  default: 'views,hours,uniques',
101
- description: 'Comma-separated metrics',
125
+ options: [
126
+ { name: 'Views', value: 'views' },
127
+ { name: 'Hours', value: 'hours' },
128
+ { name: 'Errors', value: 'errors' },
129
+ { name: 'Join Time', value: 'joinTime' },
130
+ { name: 'Uniques', value: 'uniques' },
131
+ { name: 'Concurrent', value: 'concurrent' },
132
+ { name: 'Bitrate', value: 'bitrate' },
133
+ { name: 'Startup Error', value: 'startupError' },
134
+ { name: 'Startup Error Count', value: 'startupErrorCount' },
135
+ { name: 'Startup Error Crash', value: 'startupErrorCrash' },
136
+ { name: 'Startup Error Crash Count', value: 'startupErrorCrashCount' },
137
+ { name: 'In Stream Error', value: 'inStreamError' },
138
+ { name: 'In Stream Error Count', value: 'inStreamErrorCount' },
139
+ { name: 'In Stream Error Crash', value: 'inStreamErrorCrash' },
140
+ { name: 'In Stream Error Crash Count', value: 'inStreamErrorCrashCount' },
141
+ { name: 'Abandon Users', value: 'abandonUsers' },
142
+ { name: 'Avg Happiness', value: 'avgHappiness' },
143
+ { name: 'Buffer Events', value: 'bufferEvents' },
144
+ { name: 'Buffer Ratio', value: 'bufferRatio' },
145
+ { name: 'Effective Hours', value: 'effectiveHours' },
146
+ { name: 'Effective Time', value: 'effectiveTime' },
147
+ { name: 'Exits', value: 'exits' },
148
+ { name: 'Exits Count', value: 'exitsCount' },
149
+ { name: 'Interruptions Ratio', value: 'interruptionsRatio' },
150
+ { name: 'Peak Concurrent', value: 'peakConcurrent' },
151
+ { name: 'Plays Vs Errors', value: 'playsVsErrors' },
152
+ { name: 'Playtime', value: 'playtime' },
153
+ { name: 'Rebuffered Plays', value: 'rebufferedPlays' },
154
+ { name: 'Stops', value: 'stops' },
155
+ { name: 'Subscribers', value: 'subscribers' },
156
+ { name: 'Successful Plays', value: 'successfulPlays' },
157
+ { name: 'Throughput', value: 'throughput' },
158
+ { name: 'Traffic', value: 'traffic' },
159
+ { name: 'Uniques Play Failure', value: 'uniquesPlayFailure' },
160
+ ],
161
+ placeholder: 'views,hours,uniques',
162
+ description: 'Select metrics or enter comma-separated values',
102
163
  },
103
164
  {
104
165
  displayName: 'Granularity',
@@ -110,12 +171,24 @@ export class Npaw implements INodeType {
110
171
  },
111
172
  },
112
173
  options: [
174
+ { name: 'None', value: 'none' },
175
+ { name: 'Second', value: 'second' },
176
+ { name: '5 Seconds', value: '5second' },
177
+ { name: '10 Seconds', value: '10second' },
178
+ { name: '20 Seconds', value: '20second' },
179
+ { name: '30 Seconds', value: '30second' },
180
+ { name: 'Minute', value: 'minute' },
181
+ { name: '5 Minutes', value: '5minute' },
182
+ { name: '10 Minutes', value: '10minute' },
183
+ { name: '20 Minutes', value: '20minute' },
184
+ { name: '30 Minutes', value: '30minute' },
113
185
  { name: 'Hour', value: 'hour' },
114
186
  { name: 'Day', value: 'day' },
115
187
  { name: 'Week', value: 'week' },
116
188
  { name: 'Month', value: 'month' },
117
189
  ],
118
190
  default: 'hour',
191
+ description: 'Time granularity for data aggregation',
119
192
  },
120
193
  {
121
194
  displayName: 'Limit',
@@ -126,8 +199,8 @@ export class Npaw implements INodeType {
126
199
  resource: ['events', 'rawData'],
127
200
  },
128
201
  },
129
- default: 10,
130
- description: 'Max number of results',
202
+ default: 40,
203
+ description: 'Max number of results (events/rawData: max 500, data: max 2000)',
131
204
  },
132
205
  {
133
206
  displayName: 'Additional Fields',
@@ -141,17 +214,54 @@ export class Npaw implements INodeType {
141
214
  },
142
215
  },
143
216
  options: [
217
+ {
218
+ displayName: 'To Date',
219
+ name: 'toDate',
220
+ type: 'string',
221
+ default: '',
222
+ placeholder: 'YYYY-MM-DD or YYYY-MM-DD HH:mm:ss',
223
+ description: 'Final date limit (exclusive). Accepts YYYY-MM-DD, YYYY-MM-DD HH:mm:ss, or timestamp',
224
+ },
144
225
  {
145
226
  displayName: 'Group By',
146
227
  name: 'groupBy',
147
228
  type: 'string',
148
229
  default: '',
230
+ description: 'Dimensions to group by (comma-separated)',
149
231
  },
150
232
  {
151
233
  displayName: 'Order By',
152
234
  name: 'orderBy',
153
235
  type: 'string',
154
236
  default: '',
237
+ options: [
238
+ { name: 'Views', value: 'views' },
239
+ { name: 'Uniques', value: 'uniques' },
240
+ { name: 'Playtime', value: 'playtime' },
241
+ { name: 'Hours', value: 'hours' },
242
+ { name: 'Join Time', value: 'joinTime' },
243
+ { name: 'Bitrate', value: 'bitrate' },
244
+ { name: 'Buffer Ratio', value: 'bufferRatio' },
245
+ { name: 'Buffer Events', value: 'bufferEvents' },
246
+ { name: 'Startup Error', value: 'startupError' },
247
+ { name: 'Exits', value: 'exits' },
248
+ { name: 'Completion Rate', value: 'completionRate' },
249
+ { name: 'Seeks', value: 'seeks' },
250
+ { name: 'Pauses', value: 'pauses' },
251
+ { name: 'Stops', value: 'stops' },
252
+ { name: 'User', value: 'user' },
253
+ { name: 'Device', value: 'device' },
254
+ { name: 'Title', value: 'title' },
255
+ { name: 'Country', value: 'country' },
256
+ { name: 'City', value: 'city' },
257
+ { name: 'Device Type', value: 'device_type' },
258
+ { name: 'OS', value: 'os' },
259
+ { name: 'Browser', value: 'browser' },
260
+ { name: 'CDN', value: 'cdn' },
261
+ { name: 'ISP', value: 'isp' },
262
+ ],
263
+ placeholder: 'views,user',
264
+ description: 'Metric or dimension to sort by (comma-separated)',
155
265
  },
156
266
  {
157
267
  displayName: 'Order Direction',
@@ -160,16 +270,123 @@ export class Npaw implements INodeType {
160
270
  options: [
161
271
  { name: 'Ascending', value: 'asc' },
162
272
  { name: 'Descending', value: 'desc' },
273
+ { name: 'Best', value: 'best' },
274
+ { name: 'Worst', value: 'worst' },
163
275
  ],
164
276
  default: 'desc',
277
+ description: 'Sort order for results',
278
+ },
279
+ {
280
+ displayName: 'Limit',
281
+ name: 'limit',
282
+ type: 'number',
283
+ default: 100,
284
+ description: 'Max number of results (max 2000)',
285
+ },
286
+ {
287
+ displayName: 'Offset',
288
+ name: 'offset',
289
+ type: 'number',
290
+ default: 0,
291
+ description: 'Number of results to skip for pagination',
165
292
  },
166
293
  {
167
294
  displayName: 'Filter (JSON)',
168
295
  name: 'filter',
169
296
  type: 'string',
170
297
  default: '',
298
+ placeholder: '[{"name":"Filter Name","rules":{"country":["Spain"]}}]',
171
299
  description: 'JSON filter string',
172
300
  },
301
+ {
302
+ displayName: 'Type',
303
+ name: 'type',
304
+ type: 'options',
305
+ options: [
306
+ { name: 'All', value: 'ALL' },
307
+ { name: 'VOD', value: 'VOD' },
308
+ { name: 'Live', value: 'LIVE' },
309
+ { name: 'All + Live', value: 'ALL,LIVE' },
310
+ { name: 'All + VOD', value: 'ALL,VOD' },
311
+ { name: 'Live + VOD', value: 'LIVE,VOD' },
312
+ ],
313
+ default: 'ALL',
314
+ description: 'Type of data to filter',
315
+ },
316
+ {
317
+ displayName: 'Timezone',
318
+ name: 'timezone',
319
+ type: 'string',
320
+ default: '',
321
+ placeholder: 'Europe/Madrid',
322
+ description: 'Timezone for date queries',
323
+ },
324
+ {
325
+ displayName: 'Unix Time Format',
326
+ name: 'unixtimeFormat',
327
+ type: 'options',
328
+ options: [
329
+ { name: 'False', value: 'false' },
330
+ { name: 'True', value: 'true' },
331
+ ],
332
+ default: 'false',
333
+ description: 'Return timestamps in unix format',
334
+ },
335
+ {
336
+ displayName: 'CSV Format',
337
+ name: 'csvFormat',
338
+ type: 'options',
339
+ options: [
340
+ { name: 'False', value: 'false' },
341
+ { name: 'True', value: 'true' },
342
+ ],
343
+ default: 'false',
344
+ description: 'Export data in CSV format',
345
+ },
346
+ {
347
+ displayName: 'Compare Dates',
348
+ name: 'compareDates',
349
+ type: 'string',
350
+ default: '',
351
+ options: [
352
+ { name: 'Today', value: 'today' },
353
+ { name: 'Yesterday', value: 'yesterday' },
354
+ { name: 'This Week', value: 'thisweek' },
355
+ { name: 'This Month', value: 'thismonth' },
356
+ { name: 'This Year', value: 'thisyear' },
357
+ { name: 'This Quarter', value: 'thisquarter' },
358
+ { name: 'Minute Before', value: 'minutebefore' },
359
+ { name: '5 Minutes Before', value: '5minutesBefore' },
360
+ { name: '10 Minutes Before', value: '10minutesBefore' },
361
+ { name: '20 Minutes Before', value: '20minutesBefore' },
362
+ { name: '30 Minutes Before', value: '30minutesBefore' },
363
+ { name: 'Hour Before', value: 'hourbefore' },
364
+ { name: '2 Hours Before', value: '2hoursBefore' },
365
+ { name: '3 Hours Before', value: '3hoursBefore' },
366
+ { name: '6 Hours Before', value: '6hoursBefore' },
367
+ { name: '24 Hours Before', value: '24hoursBefore' },
368
+ { name: 'Day Before', value: 'daybefore' },
369
+ { name: '7 Days Before', value: '7daysBefore' },
370
+ { name: '15 Days Before', value: '15daysBefore' },
371
+ { name: '30 Days Before', value: '30daysBefore' },
372
+ { name: '60 Days Before', value: '60daysBefore' },
373
+ { name: '90 Days Before', value: '90daysBefore' },
374
+ { name: 'Week Before', value: 'weekbefore' },
375
+ { name: '2 Weeks Before', value: '2weeksBefore' },
376
+ { name: '3 Weeks Before', value: '3weeksBefore' },
377
+ { name: '4 Weeks Before', value: '4weeksBefore' },
378
+ { name: 'Month Before', value: 'monthbefore' },
379
+ { name: '2 Months Before', value: '2monthsBefore' },
380
+ { name: '3 Months Before', value: '3monthsBefore' },
381
+ { name: '4 Months Before', value: '4monthsBefore' },
382
+ { name: '6 Months Before', value: '6monthsBefore' },
383
+ { name: '12 Months Before', value: '12monthsBefore' },
384
+ { name: 'Quarter Before', value: 'quarterbefore' },
385
+ { name: 'Year Before', value: 'yearbefore' },
386
+ { name: 'Last 12 Months', value: 'last12months' },
387
+ ],
388
+ description: 'Date range for comparison with main data',
389
+ },
173
390
  ],
174
391
  },
175
392
  ],
@@ -205,10 +422,18 @@ export class Npaw implements INodeType {
205
422
  params.version = '2';
206
423
 
207
424
  const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
425
+ if (additionalFields.toDate) params.toDate = additionalFields.toDate;
208
426
  if (additionalFields.groupBy) params.groupBy = additionalFields.groupBy;
209
427
  if (additionalFields.orderBy) params.orderBy = additionalFields.orderBy;
210
428
  if (additionalFields.orderDirection) params.orderDirection = additionalFields.orderDirection;
429
+ if (additionalFields.limit) params.limit = additionalFields.limit;
430
+ if (additionalFields.offset) params.offset = additionalFields.offset;
211
431
  if (additionalFields.filter) params.filter = additionalFields.filter;
432
+ if (additionalFields.type) params.type = additionalFields.type;
433
+ if (additionalFields.timezone) params.timezone = additionalFields.timezone;
434
+ if (additionalFields.unixtimeFormat) params.unixtimeFormat = additionalFields.unixtimeFormat;
435
+ if (additionalFields.csvFormat) params.csvFormat = additionalFields.csvFormat;
436
+ if (additionalFields.compareDates) params.compareDates = additionalFields.compareDates;
212
437
  } else if (resource === 'events') {
213
438
  endpoint = `/${credentials.accountCode}/rawdata/events`;
214
439
  params.limit = this.getNodeParameter('limit', i) as number;
@@ -0,0 +1,196 @@
1
+ import {
2
+ IExecuteFunctions,
3
+ INodeExecutionData,
4
+ INodeType,
5
+ INodeTypeDescription,
6
+ IDataObject,
7
+ } from 'n8n-workflow';
8
+
9
+ import { npawApiRequest } from './GenericFunctions';
10
+
11
+ export class NpawTool implements INodeType {
12
+ description: INodeTypeDescription = {
13
+ displayName: 'NPAW Analytics Tool',
14
+ name: 'npawTool',
15
+ icon: 'file:npaw.svg',
16
+ group: ['transform'],
17
+ version: 1,
18
+ description: 'Query NPAW/Youbora analytics data - optimized for AI agents to retrieve video analytics metrics, events, and alerts',
19
+ defaults: {
20
+ name: 'NPAW Analytics',
21
+ },
22
+ codex: {
23
+ categories: ['AI'],
24
+ subcategories: {
25
+ AI: ['Tools'],
26
+ },
27
+ resources: {
28
+ primaryDocumentation: [
29
+ {
30
+ url: 'https://documentation.npaw.com/',
31
+ },
32
+ ],
33
+ },
34
+ },
35
+ inputs: ['main'],
36
+ outputs: ['main'],
37
+ credentials: [
38
+ {
39
+ name: 'npawApi',
40
+ required: true,
41
+ },
42
+ ],
43
+ properties: [
44
+ {
45
+ displayName: 'Query Type',
46
+ name: 'queryType',
47
+ type: 'options',
48
+ noDataExpression: true,
49
+ options: [
50
+ {
51
+ name: 'Get Analytics Data',
52
+ value: 'data',
53
+ description: 'Retrieve aggregated analytics metrics (views, hours, users, buffer ratio, etc.)',
54
+ },
55
+ {
56
+ name: 'Get Raw Events',
57
+ value: 'events',
58
+ description: 'Retrieve raw event data for detailed session analysis',
59
+ },
60
+ {
61
+ name: 'Get Alerts',
62
+ value: 'alerts',
63
+ description: 'Retrieve system alerts and notifications',
64
+ },
65
+ ],
66
+ default: 'data',
67
+ description: 'Type of data to retrieve from NPAW/Youbora platform',
68
+ },
69
+ {
70
+ displayName: 'Time Period',
71
+ name: 'fromDate',
72
+ type: 'string',
73
+ default: 'last24hours',
74
+ options: [
75
+ { name: 'Last Hour', value: 'lasthour' },
76
+ { name: 'Last 6 Hours', value: 'last6hours' },
77
+ { name: 'Last 24 Hours', value: 'last24hours' },
78
+ { name: 'Last 7 Days', value: 'last7days' },
79
+ { name: 'Last 30 Days', value: 'last30days' },
80
+ { name: 'Today', value: 'today' },
81
+ { name: 'Yesterday', value: 'yesterday' },
82
+ { name: 'This Week', value: 'thisweek' },
83
+ { name: 'This Month', value: 'thismonth' },
84
+ ],
85
+ placeholder: 'YYYY-MM-DD or YYYY-MM-DD HH:mm:ss',
86
+ description: 'Time period for data retrieval. Use presets or enter custom date',
87
+ },
88
+ {
89
+ displayName: 'Metrics',
90
+ name: 'metrics',
91
+ type: 'string',
92
+ displayOptions: {
93
+ show: {
94
+ queryType: ['data'],
95
+ },
96
+ },
97
+ default: 'views,hours,uniques',
98
+ placeholder: 'views,hours,uniques,bufferRatio',
99
+ description: 'Comma-separated metrics to retrieve. Common: views, hours, uniques, joinTime, bufferRatio, throughput, errors',
100
+ },
101
+ {
102
+ displayName: 'Granularity',
103
+ name: 'granularity',
104
+ type: 'options',
105
+ displayOptions: {
106
+ show: {
107
+ queryType: ['data'],
108
+ },
109
+ },
110
+ options: [
111
+ { name: 'Minute', value: 'minute' },
112
+ { name: 'Hour', value: 'hour' },
113
+ { name: 'Day', value: 'day' },
114
+ { name: 'Week', value: 'week' },
115
+ { name: 'Month', value: 'month' },
116
+ ],
117
+ default: 'hour',
118
+ description: 'Time granularity for data aggregation',
119
+ },
120
+ {
121
+ displayName: 'Group By',
122
+ name: 'groupBy',
123
+ type: 'string',
124
+ displayOptions: {
125
+ show: {
126
+ queryType: ['data'],
127
+ },
128
+ },
129
+ default: '',
130
+ placeholder: 'country,device_type,browser',
131
+ description: 'Dimensions to group by. Common: country, device_type, browser, cdn, os, title',
132
+ },
133
+ {
134
+ displayName: 'Filter (JSON)',
135
+ name: 'filter',
136
+ type: 'string',
137
+ default: '',
138
+ placeholder: '[{"name":"Spain Users","rules":{"country":["Spain"]}}]',
139
+ description: 'JSON filter to narrow results. Example: [{"name":"Filter Name","rules":{"country":["Spain"],"device_type":["PC"]}}]',
140
+ },
141
+ {
142
+ displayName: 'Limit',
143
+ name: 'limit',
144
+ type: 'number',
145
+ displayOptions: {
146
+ show: {
147
+ queryType: ['events', 'alerts'],
148
+ },
149
+ },
150
+ default: 10,
151
+ description: 'Maximum number of results to return (max 500 for events/alerts)',
152
+ },
153
+ ],
154
+ };
155
+
156
+ async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
157
+ const items = this.getInputData();
158
+ const returnData: IDataObject[] = [];
159
+ const credentials = await this.getCredentials('npawApi');
160
+
161
+ for (let i = 0; i < items.length; i++) {
162
+ const queryType = this.getNodeParameter('queryType', i) as string;
163
+ const fromDate = this.getNodeParameter('fromDate', i) as string;
164
+ const filter = this.getNodeParameter('filter', i) as string;
165
+
166
+ const params: IDataObject = {
167
+ fromDate,
168
+ version: '2',
169
+ };
170
+
171
+ if (filter) params.filter = filter;
172
+
173
+ let endpoint = '';
174
+
175
+ if (queryType === 'data') {
176
+ endpoint = `/${credentials.accountCode}/data`;
177
+ params.metrics = this.getNodeParameter('metrics', i) as string;
178
+ params.granularity = this.getNodeParameter('granularity', i) as string;
179
+
180
+ const groupBy = this.getNodeParameter('groupBy', i) as string;
181
+ if (groupBy) params.groupBy = groupBy;
182
+ } else if (queryType === 'events') {
183
+ endpoint = `/${credentials.accountCode}/rawdata/events`;
184
+ params.limit = this.getNodeParameter('limit', i) as number;
185
+ } else if (queryType === 'alerts') {
186
+ endpoint = `/${credentials.accountCode}/rawdata/genericalerts`;
187
+ params.limit = this.getNodeParameter('limit', i, 10) as number;
188
+ }
189
+
190
+ const response = await npawApiRequest.call(this, 'GET', endpoint, params);
191
+ returnData.push(response);
192
+ }
193
+
194
+ return [this.helpers.returnJsonArray(returnData)];
195
+ }
196
+ }
@@ -1,4 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
2
- <rect width="100" height="100" fill="#00A0DC"/>
3
- <text x="50" y="60" font-family="Arial" font-size="40" font-weight="bold" fill="white" text-anchor="middle">N</text>
4
- </svg>
1
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 174 174"><defs><style>.cls-1{fill:url(#Degradado_sin_nombre_6);}.cls-2{fill:url(#Degradado_sin_nombre_6-2);}</style><linearGradient id="Degradado_sin_nombre_6" x1="31.91711" y1="31.91711" x2="142.08288" y2="142.08288" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#058ac0"/><stop offset="0.99691" stop-color="#2bc9c6"/></linearGradient><linearGradient id="Degradado_sin_nombre_6-2" x1="51.04899" y1="62.04896" x2="100.94999" y2="111.94997" xlink:href="#Degradado_sin_nombre_6"/></defs><path class="cls-1" d="M123,150H51a27.03078,27.03078,0,0,1-27-27V51A27.03077,27.03077,0,0,1,51,24h72a27.03078,27.03078,0,0,1,27,27V87a7,7,0,0,1-14,0V51a13.01505,13.01505,0,0,0-13-13H51A13.01505,13.01505,0,0,0,38,51v72a13.01505,13.01505,0,0,0,13,13h72a13.01505,13.01505,0,0,0,13-13,7,7,0,0,1,14,0A27.03079,27.03079,0,0,1,123,150Z"/><path class="cls-2" d="M66,124a6.99862,6.99862,0,0,1-7-7V87a7,7,0,0,1,14,0v17.63672L102.39453,87,62.39844,63.00293a7.00046,7.00046,0,1,1,7.20312-12.00586l50,30a7.00094,7.00094,0,0,1,0,12.00586l-50,30A7.0001,7.0001,0,0,1,66,124Z"/></svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lbono/n8n-nodes-npaw",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "description": "NPAW/Youbora support for n8n",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -37,7 +37,8 @@
37
37
  "dist/credentials/NpawApi.credentials.js"
38
38
  ],
39
39
  "nodes": [
40
- "dist/nodes/Npaw/Npaw.node.js"
40
+ "dist/nodes/Npaw/Npaw.node.js",
41
+ "dist/nodes/Npaw/NpawTool.tool.js"
41
42
  ]
42
43
  },
43
44
  "devDependencies": {