@launify/n8n-nodes-launify 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # n8n-nodes-launify
2
+
3
+ This is an n8n community node for [Launify.com](https://launify.com).
4
+
5
+ Launify provides autocomplete and validation services for addresses, phone numbers, emails, and companies.
6
+
7
+ ## Prerequisites
8
+
9
+ You need to have n8n installed.
10
+
11
+ ## Installation
12
+
13
+ ### Community Nodes (Recommended)
14
+
15
+ You can install this node directly from the n8n community nodes panel (once published).
16
+
17
+ ### Manual Installation
18
+
19
+ To install this node manually:
20
+
21
+ 1. Go to your n8n root directory (usually `~/.n8n`).
22
+ 2. Create a directory `custom` if it doesn't exist.
23
+ 3. Run `npm link n8n-nodes-launify` inside the `custom` directory (assuming you have built and linked this package locally).
24
+
25
+ ## Usage
26
+
27
+ 1. **Authentication**: You need a Launify API Key. You can get one at [Launify.com](https://launify.com).
28
+ - Note: You must also specify the **Referer Domain** that is whitelisted for your API Key in the credentials setup.
29
+ 2. **Resources**:
30
+ - **Address**: Autocomplete and Geocode addresses.
31
+ - **Phone**: Validate phone numbers.
32
+ - **Email**: Validate email addresses.
33
+ - **Company**: Search for companies (CZ only).
34
+
35
+ ## Support
36
+
37
+ For issues with the API, contact Launify support.
38
+ For issues with this node, please open an issue on the GitHub repository.
@@ -0,0 +1,7 @@
1
+ import { ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class LaunifyApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ documentationUrl: string;
6
+ properties: INodeProperties[];
7
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LaunifyApi = void 0;
4
+ class LaunifyApi {
5
+ constructor() {
6
+ this.name = 'launifyApi';
7
+ this.displayName = 'Launify API';
8
+ this.documentationUrl = 'https://launify.docs.apiary.io/';
9
+ this.properties = [
10
+ {
11
+ displayName: 'API Key',
12
+ name: 'apiKey',
13
+ type: 'string',
14
+ default: '',
15
+ description: 'Your Launify API Key',
16
+ required: true,
17
+ },
18
+ {
19
+ displayName: 'Referer Domain',
20
+ name: 'referer',
21
+ type: 'string',
22
+ default: '',
23
+ description: 'The domain whitelisted for your API Key (e.g., https://your-domain.com)',
24
+ required: true,
25
+ },
26
+ ];
27
+ }
28
+ }
29
+ exports.LaunifyApi = LaunifyApi;
@@ -0,0 +1,4 @@
1
+ import { INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class Launify implements INodeType {
3
+ description: INodeTypeDescription;
4
+ }
@@ -0,0 +1,538 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Launify = void 0;
4
+ class Launify {
5
+ constructor() {
6
+ this.description = {
7
+ displayName: 'Launify',
8
+ name: 'launify',
9
+ icon: 'file:launify.svg',
10
+ group: ['transform'],
11
+ version: 1,
12
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
13
+ description: 'Consume Launify API services',
14
+ defaults: {
15
+ name: 'Launify',
16
+ },
17
+ inputs: ['main'],
18
+ outputs: ['main'],
19
+ credentials: [
20
+ {
21
+ name: 'launifyApi',
22
+ required: true,
23
+ },
24
+ ],
25
+ requestDefaults: {
26
+ // Base URL will be overridden per operation
27
+ baseURL: 'https://launify.com',
28
+ headers: {
29
+ Accept: 'application/json',
30
+ 'Content-Type': 'application/json',
31
+ 'Referer': '={{$credentials.referer}}',
32
+ },
33
+ },
34
+ properties: [
35
+ // ----------------------------------
36
+ // Resource
37
+ // ----------------------------------
38
+ {
39
+ displayName: 'Resource',
40
+ name: 'resource',
41
+ type: 'options',
42
+ noDataExpression: true,
43
+ options: [
44
+ {
45
+ name: 'Address',
46
+ value: 'address',
47
+ },
48
+ {
49
+ name: 'Company',
50
+ value: 'company',
51
+ },
52
+ {
53
+ name: 'Email',
54
+ value: 'email',
55
+ },
56
+ {
57
+ name: 'Phone',
58
+ value: 'phone',
59
+ },
60
+ ],
61
+ default: 'address',
62
+ },
63
+ // ----------------------------------
64
+ // Operations: Address
65
+ // ----------------------------------
66
+ {
67
+ displayName: 'Operation',
68
+ name: 'operation',
69
+ type: 'options',
70
+ noDataExpression: true,
71
+ displayOptions: {
72
+ show: {
73
+ resource: [
74
+ 'address',
75
+ ],
76
+ },
77
+ },
78
+ options: [
79
+ {
80
+ name: 'Autocomplete',
81
+ value: 'autocomplete',
82
+ action: 'Autocomplete address',
83
+ description: 'Get address suggestions',
84
+ routing: {
85
+ request: {
86
+ method: 'GET',
87
+ baseURL: 'https://addresses.service.launify.com',
88
+ url: '/address_whisper',
89
+ qs: {
90
+ apiKey: '={{$credentials.apiKey}}',
91
+ },
92
+ },
93
+ },
94
+ },
95
+ {
96
+ name: 'Geocode',
97
+ value: 'geocode',
98
+ action: 'Geocode coordinates',
99
+ description: 'Get address from coordinates',
100
+ routing: {
101
+ request: {
102
+ method: 'GET',
103
+ baseURL: 'https://addresses.service.launify.com',
104
+ url: '/geocode',
105
+ qs: {
106
+ apiKey: '={{$credentials.apiKey}}',
107
+ },
108
+ },
109
+ },
110
+ },
111
+ ],
112
+ default: 'autocomplete',
113
+ },
114
+ // ----------------------------------
115
+ // Operations: Phone
116
+ // ----------------------------------
117
+ {
118
+ displayName: 'Operation',
119
+ name: 'operation',
120
+ type: 'options',
121
+ noDataExpression: true,
122
+ displayOptions: {
123
+ show: {
124
+ resource: [
125
+ 'phone',
126
+ ],
127
+ },
128
+ },
129
+ options: [
130
+ {
131
+ name: 'Validate',
132
+ value: 'validate',
133
+ action: 'Validate phone number',
134
+ description: 'Validate and format a phone number',
135
+ routing: {
136
+ request: {
137
+ method: 'GET',
138
+ baseURL: 'https://telephones.service.launify.com',
139
+ url: '/api/validate/phone',
140
+ qs: {
141
+ api_key: '={{$credentials.apiKey}}',
142
+ },
143
+ },
144
+ },
145
+ },
146
+ ],
147
+ default: 'validate',
148
+ },
149
+ // ----------------------------------
150
+ // Operations: Email
151
+ // ----------------------------------
152
+ {
153
+ displayName: 'Operation',
154
+ name: 'operation',
155
+ type: 'options',
156
+ noDataExpression: true,
157
+ displayOptions: {
158
+ show: {
159
+ resource: [
160
+ 'email',
161
+ ],
162
+ },
163
+ },
164
+ options: [
165
+ {
166
+ name: 'Validate',
167
+ value: 'validate',
168
+ action: 'Validate email',
169
+ description: 'Validate an email address',
170
+ routing: {
171
+ request: {
172
+ method: 'GET',
173
+ baseURL: 'https://emails.service.launify.com',
174
+ url: '/api/validate/email',
175
+ qs: {
176
+ api_key: '={{$credentials.apiKey}}',
177
+ },
178
+ },
179
+ },
180
+ },
181
+ ],
182
+ default: 'validate',
183
+ },
184
+ // ----------------------------------
185
+ // Operations: Company
186
+ // ----------------------------------
187
+ {
188
+ displayName: 'Operation',
189
+ name: 'operation',
190
+ type: 'options',
191
+ noDataExpression: true,
192
+ displayOptions: {
193
+ show: {
194
+ resource: [
195
+ 'company',
196
+ ],
197
+ },
198
+ },
199
+ options: [
200
+ {
201
+ name: 'Search',
202
+ value: 'search',
203
+ action: 'Search company',
204
+ description: 'Search for companies by Name, ICO, or DIC',
205
+ routing: {
206
+ request: {
207
+ method: 'GET',
208
+ baseURL: 'https://companies-os.launify.com',
209
+ url: '/autocomplete',
210
+ qs: {
211
+ apiKey: '={{$credentials.apiKey}}',
212
+ },
213
+ },
214
+ },
215
+ },
216
+ ],
217
+ default: 'search',
218
+ },
219
+ // ----------------------------------
220
+ // Fields: Address > Autocomplete
221
+ // ----------------------------------
222
+ {
223
+ displayName: 'Search String',
224
+ name: 's',
225
+ type: 'string',
226
+ default: '',
227
+ required: true,
228
+ displayOptions: {
229
+ show: {
230
+ resource: ['address'],
231
+ operation: ['autocomplete'],
232
+ },
233
+ },
234
+ description: 'Partial address to search for',
235
+ routing: {
236
+ request: {
237
+ qs: {
238
+ s: '={{$value}}',
239
+ },
240
+ },
241
+ },
242
+ },
243
+ {
244
+ displayName: 'Country',
245
+ name: 'country',
246
+ type: 'string',
247
+ default: 'cz',
248
+ displayOptions: {
249
+ show: {
250
+ resource: ['address'],
251
+ operation: ['autocomplete'],
252
+ },
253
+ },
254
+ description: 'ISO 3166-1 alpha-2 country code (e.g. cz)',
255
+ routing: {
256
+ request: {
257
+ qs: {
258
+ country: '={{$value}}',
259
+ },
260
+ },
261
+ },
262
+ },
263
+ {
264
+ displayName: 'Timezone',
265
+ name: 'tz',
266
+ type: 'string',
267
+ default: '',
268
+ displayOptions: {
269
+ show: {
270
+ resource: ['address'],
271
+ operation: ['autocomplete'],
272
+ },
273
+ },
274
+ description: 'Timezone for location biasing',
275
+ routing: {
276
+ request: {
277
+ qs: {
278
+ tz: '={{$value}}',
279
+ },
280
+ },
281
+ },
282
+ },
283
+ // ----------------------------------
284
+ // Fields: Address > Geocode
285
+ // ----------------------------------
286
+ {
287
+ displayName: 'Latitude',
288
+ name: 'lat',
289
+ type: 'number',
290
+ default: 0,
291
+ required: true,
292
+ displayOptions: {
293
+ show: {
294
+ resource: ['address'],
295
+ operation: ['geocode'],
296
+ },
297
+ },
298
+ routing: {
299
+ request: {
300
+ qs: {
301
+ lat: '={{$value}}',
302
+ },
303
+ },
304
+ },
305
+ },
306
+ {
307
+ displayName: 'Longitude',
308
+ name: 'lon',
309
+ type: 'number',
310
+ default: 0,
311
+ required: true,
312
+ displayOptions: {
313
+ show: {
314
+ resource: ['address'],
315
+ operation: ['geocode'],
316
+ },
317
+ },
318
+ routing: {
319
+ request: {
320
+ qs: {
321
+ lon: '={{$value}}',
322
+ },
323
+ },
324
+ },
325
+ },
326
+ {
327
+ displayName: 'Country',
328
+ name: 'country',
329
+ type: 'string',
330
+ default: 'cz',
331
+ required: true,
332
+ displayOptions: {
333
+ show: {
334
+ resource: ['address'],
335
+ operation: ['geocode'],
336
+ },
337
+ },
338
+ routing: {
339
+ request: {
340
+ qs: {
341
+ country: '={{$value}}',
342
+ },
343
+ },
344
+ },
345
+ },
346
+ // ----------------------------------
347
+ // Fields: Phone > Validate
348
+ // ----------------------------------
349
+ {
350
+ displayName: 'Phone Number',
351
+ name: 'phone',
352
+ type: 'string',
353
+ default: '',
354
+ required: true,
355
+ displayOptions: {
356
+ show: {
357
+ resource: ['phone'],
358
+ operation: ['validate'],
359
+ },
360
+ },
361
+ description: 'The phone number to validate',
362
+ routing: {
363
+ request: {
364
+ qs: {
365
+ phone: '={{$value}}',
366
+ },
367
+ },
368
+ },
369
+ },
370
+ {
371
+ displayName: 'Country',
372
+ name: 'country',
373
+ type: 'string',
374
+ default: '',
375
+ displayOptions: {
376
+ show: {
377
+ resource: ['phone'],
378
+ operation: ['validate'],
379
+ },
380
+ },
381
+ description: 'ISO 3166-1 alpha-2 country code',
382
+ routing: {
383
+ request: {
384
+ qs: {
385
+ country: '={{$value}}',
386
+ },
387
+ },
388
+ },
389
+ },
390
+ // ----------------------------------
391
+ // Fields: Email > Validate
392
+ // ----------------------------------
393
+ {
394
+ displayName: 'Email',
395
+ name: 'email',
396
+ type: 'string',
397
+ default: '',
398
+ required: true,
399
+ displayOptions: {
400
+ show: {
401
+ resource: ['email'],
402
+ operation: ['validate'],
403
+ },
404
+ },
405
+ description: 'The email address to validate',
406
+ routing: {
407
+ request: {
408
+ qs: {
409
+ email: '={{$value}}',
410
+ },
411
+ },
412
+ },
413
+ },
414
+ {
415
+ displayName: 'Country',
416
+ name: 'country',
417
+ type: 'string',
418
+ default: '',
419
+ displayOptions: {
420
+ show: {
421
+ resource: ['email'],
422
+ operation: ['validate'],
423
+ },
424
+ },
425
+ description: 'ISO 3166-1 alpha-2 country code',
426
+ routing: {
427
+ request: {
428
+ qs: {
429
+ country: '={{$value}}',
430
+ },
431
+ },
432
+ },
433
+ },
434
+ // ----------------------------------
435
+ // Fields: Company > Search
436
+ // ----------------------------------
437
+ {
438
+ displayName: 'Search By',
439
+ name: 'searchBy',
440
+ type: 'options',
441
+ options: [
442
+ { name: 'Name', value: 'companyName' },
443
+ { name: 'ICO', value: 'identificationNumber' },
444
+ { name: 'DIC', value: 'vatNumber' },
445
+ ],
446
+ default: 'companyName',
447
+ displayOptions: {
448
+ show: {
449
+ resource: ['company'],
450
+ operation: ['search'],
451
+ },
452
+ },
453
+ },
454
+ {
455
+ displayName: 'Company Name',
456
+ name: 'companyName',
457
+ type: 'string',
458
+ default: '',
459
+ displayOptions: {
460
+ show: {
461
+ resource: ['company'],
462
+ operation: ['search'],
463
+ searchBy: ['companyName'],
464
+ },
465
+ },
466
+ routing: {
467
+ request: {
468
+ qs: {
469
+ companyName: '={{$value}}',
470
+ },
471
+ },
472
+ },
473
+ },
474
+ {
475
+ displayName: 'Identification Number (ICO)',
476
+ name: 'identificationNumber',
477
+ type: 'string',
478
+ default: '',
479
+ displayOptions: {
480
+ show: {
481
+ resource: ['company'],
482
+ operation: ['search'],
483
+ searchBy: ['identificationNumber'],
484
+ },
485
+ },
486
+ routing: {
487
+ request: {
488
+ qs: {
489
+ identificationNumber: '={{$value}}',
490
+ },
491
+ },
492
+ },
493
+ },
494
+ {
495
+ displayName: 'VAT Number (DIC)',
496
+ name: 'vatNumber',
497
+ type: 'string',
498
+ default: '',
499
+ displayOptions: {
500
+ show: {
501
+ resource: ['company'],
502
+ operation: ['search'],
503
+ searchBy: ['vatNumber'],
504
+ },
505
+ },
506
+ routing: {
507
+ request: {
508
+ qs: {
509
+ vatNumber: '={{$value}}',
510
+ },
511
+ },
512
+ },
513
+ },
514
+ {
515
+ displayName: 'Country',
516
+ name: 'country',
517
+ type: 'string',
518
+ default: 'cz',
519
+ displayOptions: {
520
+ show: {
521
+ resource: ['company'],
522
+ operation: ['search'],
523
+ },
524
+ },
525
+ description: 'ISO 3166-1 alpha-2 country code',
526
+ routing: {
527
+ request: {
528
+ qs: {
529
+ country: '={{$value}}',
530
+ },
531
+ },
532
+ },
533
+ },
534
+ ],
535
+ };
536
+ }
537
+ }
538
+ exports.Launify = Launify;
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 265.5 265.5"><defs><style>.cls-1{fill:none;}.cls-2{fill:#cb0c9f;}</style></defs><title>Datový zdroj 1</title><g id="Vrstva_2" data-name="Vrstva 2"><g id="Vrstva_1-2" data-name="Vrstva 1"><rect class="cls-1" width="265.5" height="265.5"/><polygon class="cls-2" points="125.3 55.9 144.2 89.9 92.8 177.6 160.9 177.6 141.7 209.5 41.4 209.5 125.3 55.9"/><polygon class="cls-2" points="160.7 119.5 108 209.5 141.7 209.5 160.9 177.6 175.5 209.5 210.8 209.5 224.1 187.4 206.8 156 193.5 178.6 160.7 119.5"/></g></g></svg>
package/package.json ADDED
@@ -0,0 +1,368 @@
1
+ {
2
+ "name": "@launify/n8n-nodes-launify",
3
+ "version": "0.1.0",
4
+ "description": "N8N node for Launify.com API",
5
+ "keywords": [
6
+ "n8n-community-node-package"
7
+ ],
8
+ "license": "MIT",
9
+ "homepage": "https://launify.com",
10
+ "author": "Launify User <info@launify.com>",
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/launify/n8n-nodes-launify.git"
14
+ },
15
+ "main": "index.js",
16
+ "scripts": {
17
+ "build": "tsc && gulp copy:icons",
18
+ "dev": "tsc --watch",
19
+ "lint": "tslint -p tsconfig.json -c tslint.json",
20
+ "lintfix": "tslint --fix -p tsconfig.json -c tslint.json"
21
+ },
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "n8n": {
26
+ "n8nNodesApiVersion": 1,
27
+ "credentials": [
28
+ "dist/credentials/LaunifyApi.credentials.js"
29
+ ],
30
+ "nodes": [
31
+ "dist/nodes/Launify/Launify.node.js"
32
+ ]
33
+ },
34
+ "devDependencies": {
35
+ "@types/express": "^5.0.6",
36
+ "@types/form-data": "^2.2.1",
37
+ "@types/node": "^14.14.41",
38
+ "gulp": "^4.0.2",
39
+ "n8n-workflow": "^0.117.0",
40
+ "tslint": "^6.1.3",
41
+ "typescript": "^4.2.4"
42
+ },
43
+ "peerDependencies": {
44
+ "n8n-workflow": "*"
45
+ },
46
+ "dependencies": {
47
+ "ansi-colors": "^1.1.0",
48
+ "ansi-gray": "^0.1.1",
49
+ "ansi-regex": "^2.1.1",
50
+ "ansi-styles": "^3.2.1",
51
+ "ansi-wrap": "^0.1.0",
52
+ "anymatch": "^2.0.0",
53
+ "append-buffer": "^1.0.2",
54
+ "archy": "^1.0.0",
55
+ "argparse": "^1.0.10",
56
+ "arr-diff": "^4.0.0",
57
+ "arr-filter": "^1.1.2",
58
+ "arr-flatten": "^1.1.0",
59
+ "arr-map": "^2.0.2",
60
+ "arr-union": "^3.1.0",
61
+ "array-each": "^1.0.1",
62
+ "array-initial": "^1.1.0",
63
+ "array-last": "^1.3.0",
64
+ "array-slice": "^1.1.0",
65
+ "array-sort": "^1.0.0",
66
+ "array-unique": "^0.3.2",
67
+ "assign-symbols": "^1.0.0",
68
+ "async-done": "^1.3.2",
69
+ "async-each": "^1.0.6",
70
+ "async-settle": "^1.0.0",
71
+ "atob": "^2.1.2",
72
+ "bach": "^1.2.0",
73
+ "balanced-match": "^1.0.2",
74
+ "base": "^0.11.2",
75
+ "binary-extensions": "^1.13.1",
76
+ "brace-expansion": "^1.1.12",
77
+ "braces": "^2.3.2",
78
+ "buffer-equal": "^1.0.1",
79
+ "buffer-from": "^1.1.2",
80
+ "builtin-modules": "^1.1.1",
81
+ "cache-base": "^1.0.1",
82
+ "call-bind": "^1.0.8",
83
+ "call-bind-apply-helpers": "^1.0.2",
84
+ "call-bound": "^1.0.4",
85
+ "camelcase": "^3.0.0",
86
+ "chalk": "^2.4.2",
87
+ "chokidar": "^2.1.8",
88
+ "class-utils": "^0.3.6",
89
+ "cliui": "^3.2.0",
90
+ "clone": "^2.1.2",
91
+ "clone-buffer": "^1.0.0",
92
+ "clone-stats": "^1.0.0",
93
+ "cloneable-readable": "^1.1.3",
94
+ "code-point-at": "^1.1.0",
95
+ "collection-map": "^1.0.0",
96
+ "collection-visit": "^1.0.0",
97
+ "color-convert": "^1.9.3",
98
+ "color-name": "^1.1.3",
99
+ "color-support": "^1.1.3",
100
+ "commander": "^2.20.3",
101
+ "component-emitter": "^1.3.1",
102
+ "concat-map": "^0.0.1",
103
+ "concat-stream": "^1.6.2",
104
+ "convert-source-map": "^1.9.0",
105
+ "copy-descriptor": "^0.1.1",
106
+ "copy-props": "^2.0.5",
107
+ "core-util-is": "^1.0.3",
108
+ "d": "^1.0.2",
109
+ "debug": "^2.6.9",
110
+ "decamelize": "^1.2.0",
111
+ "decode-uri-component": "^0.2.2",
112
+ "default-compare": "^1.0.0",
113
+ "default-resolution": "^2.0.0",
114
+ "define-data-property": "^1.1.4",
115
+ "define-properties": "^1.2.1",
116
+ "define-property": "^2.0.2",
117
+ "detect-file": "^1.0.0",
118
+ "diff": "^4.0.4",
119
+ "dunder-proto": "^1.0.1",
120
+ "duplexify": "^3.7.1",
121
+ "each-props": "^1.3.2",
122
+ "end-of-stream": "^1.4.5",
123
+ "error-ex": "^1.3.4",
124
+ "es-define-property": "^1.0.1",
125
+ "es-errors": "^1.3.0",
126
+ "es-object-atoms": "^1.1.1",
127
+ "es5-ext": "^0.10.64",
128
+ "es6-iterator": "^2.0.3",
129
+ "es6-symbol": "^3.1.4",
130
+ "es6-weak-map": "^2.0.3",
131
+ "escape-string-regexp": "^1.0.5",
132
+ "eslint-config-riot": "^1.0.0",
133
+ "esniff": "^2.0.1",
134
+ "esprima": "^4.0.1",
135
+ "event-emitter": "^0.3.5",
136
+ "expand-brackets": "^2.1.4",
137
+ "expand-tilde": "^2.0.2",
138
+ "ext": "^1.7.0",
139
+ "extend": "^3.0.2",
140
+ "extend-shallow": "^2.0.1",
141
+ "extglob": "^2.0.4",
142
+ "fancy-log": "^1.3.3",
143
+ "fast-levenshtein": "^1.1.4",
144
+ "fill-range": "^4.0.0",
145
+ "find-up": "^1.1.2",
146
+ "findup-sync": "^3.0.0",
147
+ "fined": "^1.2.0",
148
+ "flagged-respawn": "^1.0.1",
149
+ "flush-write-stream": "^1.1.1",
150
+ "for-in": "^1.0.2",
151
+ "for-own": "^1.0.0",
152
+ "fragment-cache": "^0.2.1",
153
+ "fs-mkdirp-stream": "^1.0.0",
154
+ "fs.realpath": "^1.0.0",
155
+ "function-bind": "^1.1.2",
156
+ "get-caller-file": "^1.0.3",
157
+ "get-intrinsic": "^1.3.0",
158
+ "get-proto": "^1.0.1",
159
+ "get-value": "^2.0.6",
160
+ "glob": "^7.2.3",
161
+ "glob-parent": "^3.1.0",
162
+ "glob-stream": "^6.1.0",
163
+ "glob-watcher": "^5.0.5",
164
+ "global-modules": "^1.0.0",
165
+ "global-prefix": "^1.0.2",
166
+ "glogg": "^1.0.2",
167
+ "gopd": "^1.2.0",
168
+ "graceful-fs": "^4.2.11",
169
+ "gulp-cli": "^2.3.0",
170
+ "gulplog": "^1.0.0",
171
+ "has-flag": "^3.0.0",
172
+ "has-property-descriptors": "^1.0.2",
173
+ "has-symbols": "^1.1.0",
174
+ "has-value": "^1.0.0",
175
+ "has-values": "^1.0.0",
176
+ "hasown": "^2.0.2",
177
+ "homedir-polyfill": "^1.0.3",
178
+ "hosted-git-info": "^2.8.9",
179
+ "inflight": "^1.0.6",
180
+ "inherits": "^2.0.4",
181
+ "ini": "^1.3.8",
182
+ "interpret": "^1.4.0",
183
+ "invert-kv": "^1.0.0",
184
+ "is-absolute": "^1.0.0",
185
+ "is-accessor-descriptor": "^1.0.1",
186
+ "is-arrayish": "^0.2.1",
187
+ "is-binary-path": "^1.0.1",
188
+ "is-buffer": "^1.1.6",
189
+ "is-core-module": "^2.16.1",
190
+ "is-data-descriptor": "^1.0.1",
191
+ "is-descriptor": "^1.0.3",
192
+ "is-extendable": "^0.1.1",
193
+ "is-extglob": "^2.1.1",
194
+ "is-fullwidth-code-point": "^1.0.0",
195
+ "is-glob": "^4.0.3",
196
+ "is-negated-glob": "^1.0.0",
197
+ "is-number": "^3.0.0",
198
+ "is-plain-object": "^5.0.0",
199
+ "is-relative": "^1.0.0",
200
+ "is-unc-path": "^1.0.0",
201
+ "is-utf8": "^0.2.1",
202
+ "is-valid-glob": "^1.0.0",
203
+ "is-windows": "^1.0.2",
204
+ "isarray": "^1.0.0",
205
+ "isexe": "^2.0.0",
206
+ "isobject": "^3.0.1",
207
+ "jmespath": "^0.16.0",
208
+ "js-tokens": "^4.0.0",
209
+ "js-yaml": "^3.14.2",
210
+ "json-stable-stringify-without-jsonify": "^1.0.1",
211
+ "just-debounce": "^1.1.0",
212
+ "kind-of": "^5.1.0",
213
+ "last-run": "^1.1.1",
214
+ "lazystream": "^1.0.1",
215
+ "lcid": "^1.0.0",
216
+ "lead": "^1.0.0",
217
+ "liftoff": "^3.1.0",
218
+ "load-json-file": "^1.1.0",
219
+ "lodash.get": "^4.4.2",
220
+ "lodash.isequal": "^4.5.0",
221
+ "lodash.merge": "^4.6.2",
222
+ "lodash.set": "^4.3.2",
223
+ "luxon": "^2.5.2",
224
+ "make-iterator": "^1.0.1",
225
+ "map-cache": "^0.2.2",
226
+ "map-visit": "^1.0.0",
227
+ "matchdep": "^2.0.0",
228
+ "math-intrinsics": "^1.1.0",
229
+ "micromatch": "^3.1.10",
230
+ "minimatch": "^3.1.2",
231
+ "minimist": "^1.2.8",
232
+ "mixin-deep": "^1.3.2",
233
+ "mkdirp": "^0.5.6",
234
+ "ms": "^2.0.0",
235
+ "mute-stdout": "^1.0.1",
236
+ "nanomatch": "^1.2.13",
237
+ "next-tick": "^1.1.0",
238
+ "normalize-package-data": "^2.5.0",
239
+ "normalize-path": "^3.0.0",
240
+ "now-and-later": "^2.0.1",
241
+ "number-is-nan": "^1.0.1",
242
+ "object-copy": "^0.1.0",
243
+ "object-keys": "^1.1.1",
244
+ "object-visit": "^1.0.1",
245
+ "object.assign": "^4.1.7",
246
+ "object.defaults": "^1.1.0",
247
+ "object.map": "^1.0.1",
248
+ "object.pick": "^1.3.0",
249
+ "object.reduce": "^1.0.1",
250
+ "once": "^1.4.0",
251
+ "ordered-read-streams": "^1.0.1",
252
+ "os-locale": "^1.4.0",
253
+ "parse-filepath": "^1.0.2",
254
+ "parse-json": "^2.2.0",
255
+ "parse-node-version": "^1.0.1",
256
+ "parse-passwd": "^1.0.0",
257
+ "pascalcase": "^0.1.1",
258
+ "path-dirname": "^1.0.2",
259
+ "path-exists": "^2.1.0",
260
+ "path-is-absolute": "^1.0.1",
261
+ "path-parse": "^1.0.7",
262
+ "path-root": "^0.1.1",
263
+ "path-root-regex": "^0.1.2",
264
+ "path-type": "^1.1.0",
265
+ "picocolors": "^1.1.1",
266
+ "pify": "^2.3.0",
267
+ "pinkie": "^2.0.4",
268
+ "pinkie-promise": "^2.0.1",
269
+ "posix-character-classes": "^0.1.1",
270
+ "pretty-hrtime": "^1.0.3",
271
+ "process-nextick-args": "^2.0.1",
272
+ "pump": "^2.0.1",
273
+ "pumpify": "^1.5.1",
274
+ "read-pkg": "^1.1.0",
275
+ "read-pkg-up": "^1.0.1",
276
+ "readable-stream": "^2.3.8",
277
+ "readdirp": "^2.2.1",
278
+ "rechoir": "^0.6.2",
279
+ "regex-not": "^1.0.2",
280
+ "remove-bom-buffer": "^3.0.0",
281
+ "remove-bom-stream": "^1.2.0",
282
+ "remove-trailing-separator": "^1.1.0",
283
+ "repeat-element": "^1.1.4",
284
+ "repeat-string": "^1.6.1",
285
+ "replace-ext": "^1.0.1",
286
+ "replace-homedir": "^1.0.0",
287
+ "require-directory": "^2.1.1",
288
+ "require-main-filename": "^1.0.1",
289
+ "resolve": "^1.22.11",
290
+ "resolve-dir": "^1.0.1",
291
+ "resolve-options": "^1.1.0",
292
+ "resolve-url": "^0.2.1",
293
+ "ret": "^0.1.15",
294
+ "safe-buffer": "^5.1.2",
295
+ "safe-regex": "^1.1.0",
296
+ "sax": "^1.4.4",
297
+ "semver": "^5.7.2",
298
+ "semver-greatest-satisfied-range": "^1.1.0",
299
+ "set-blocking": "^2.0.0",
300
+ "set-function-length": "^1.2.2",
301
+ "set-value": "^2.0.1",
302
+ "snapdragon": "^0.8.2",
303
+ "snapdragon-node": "^2.1.1",
304
+ "snapdragon-util": "^3.0.1",
305
+ "source-map": "^0.5.7",
306
+ "source-map-resolve": "^0.5.3",
307
+ "source-map-url": "^0.4.1",
308
+ "sparkles": "^1.0.1",
309
+ "spdx-correct": "^3.2.0",
310
+ "spdx-exceptions": "^2.5.0",
311
+ "spdx-expression-parse": "^3.0.1",
312
+ "spdx-license-ids": "^3.0.22",
313
+ "split-string": "^3.1.0",
314
+ "sprintf-js": "^1.0.3",
315
+ "stack-trace": "^0.0.10",
316
+ "static-extend": "^0.1.2",
317
+ "stream-exhaust": "^1.0.2",
318
+ "stream-shift": "^1.0.3",
319
+ "string-width": "^1.0.2",
320
+ "string_decoder": "^1.1.1",
321
+ "strip-ansi": "^3.0.1",
322
+ "strip-bom": "^2.0.0",
323
+ "supports-color": "^5.5.0",
324
+ "supports-preserve-symlinks-flag": "^1.0.0",
325
+ "sver-compat": "^1.5.0",
326
+ "through2": "^2.0.5",
327
+ "through2-filter": "^3.0.0",
328
+ "time-stamp": "^1.1.0",
329
+ "to-absolute-glob": "^2.0.2",
330
+ "to-object-path": "^0.3.0",
331
+ "to-regex": "^3.0.2",
332
+ "to-regex-range": "^2.1.1",
333
+ "to-through": "^2.0.0",
334
+ "tslib": "^1.14.1",
335
+ "tsutils": "^2.29.0",
336
+ "type": "^2.7.3",
337
+ "typedarray": "^0.0.6",
338
+ "unc-path-regex": "^0.1.2",
339
+ "undertaker": "^1.3.0",
340
+ "undertaker-registry": "^1.0.1",
341
+ "union-value": "^1.0.1",
342
+ "unique-stream": "^2.4.0",
343
+ "unset-value": "^1.0.0",
344
+ "upath": "^1.2.0",
345
+ "urix": "^0.1.0",
346
+ "use": "^3.1.1",
347
+ "util-deprecate": "^1.0.2",
348
+ "v8flags": "^3.2.0",
349
+ "validate-npm-package-license": "^3.0.4",
350
+ "value-or-function": "^3.0.0",
351
+ "vinyl": "^2.2.1",
352
+ "vinyl-fs": "^3.0.3",
353
+ "vinyl-sourcemap": "^1.1.0",
354
+ "which": "^1.3.1",
355
+ "which-module": "^1.0.0",
356
+ "wrap-ansi": "^2.1.0",
357
+ "wrappy": "^1.0.2",
358
+ "xml2js": "^0.4.23",
359
+ "xmlbuilder": "^11.0.1",
360
+ "xtend": "^4.0.2",
361
+ "y18n": "^3.2.2",
362
+ "yargs": "^7.1.2",
363
+ "yargs-parser": "^5.0.1"
364
+ },
365
+ "bugs": {
366
+ "url": "https://github.com/launify/n8n-nodes-launify/issues"
367
+ }
368
+ }