@blackswampai/n8n-nodes-openmart 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.
Files changed (30) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +84 -0
  3. package/dist/credentials/OpenmartApi.credentials.d.ts +10 -0
  4. package/dist/credentials/OpenmartApi.credentials.js +41 -0
  5. package/dist/credentials/OpenmartApi.credentials.js.map +1 -0
  6. package/dist/nodes/Openmart/Openmart.node.d.ts +4 -0
  7. package/dist/nodes/Openmart/Openmart.node.js +673 -0
  8. package/dist/nodes/Openmart/Openmart.node.js.map +1 -0
  9. package/dist/nodes/Openmart/Openmart.node.json +18 -0
  10. package/dist/nodes/Openmart/actions/routing.d.ts +22 -0
  11. package/dist/nodes/Openmart/actions/routing.js +300 -0
  12. package/dist/nodes/Openmart/actions/routing.js.map +1 -0
  13. package/dist/nodes/Openmart/openmart.dark.png +0 -0
  14. package/dist/nodes/Openmart/openmart.png +0 -0
  15. package/dist/nodes/Openmart/shared/creation.d.ts +24 -0
  16. package/dist/nodes/Openmart/shared/creation.js +150 -0
  17. package/dist/nodes/Openmart/shared/creation.js.map +1 -0
  18. package/dist/nodes/Openmart/shared/prospecting.d.ts +5 -0
  19. package/dist/nodes/Openmart/shared/prospecting.js +137 -0
  20. package/dist/nodes/Openmart/shared/prospecting.js.map +1 -0
  21. package/dist/nodes/Openmart/shared/request.d.ts +15 -0
  22. package/dist/nodes/Openmart/shared/request.js +89 -0
  23. package/dist/nodes/Openmart/shared/request.js.map +1 -0
  24. package/dist/nodes/Openmart/shared/search.d.ts +13 -0
  25. package/dist/nodes/Openmart/shared/search.js +69 -0
  26. package/dist/nodes/Openmart/shared/search.js.map +1 -0
  27. package/dist/nodes/Openmart/shared/tasks.d.ts +7 -0
  28. package/dist/nodes/Openmart/shared/tasks.js +63 -0
  29. package/dist/nodes/Openmart/shared/tasks.js.map +1 -0
  30. package/package.json +73 -0
@@ -0,0 +1,673 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Openmart = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const routing_1 = require("./actions/routing");
6
+ const request_1 = require("./shared/request");
7
+ class Openmart {
8
+ constructor() {
9
+ this.description = {
10
+ displayName: 'Openmart',
11
+ name: 'openmart',
12
+ icon: { light: 'file:openmart.png', dark: 'file:openmart.dark.png' },
13
+ group: ['input'],
14
+ version: 1,
15
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
16
+ description: 'Use the Openmart API',
17
+ defaults: { name: 'Openmart' },
18
+ usableAsTool: true,
19
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
20
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
21
+ credentials: [{ name: 'openmartApi', required: true }],
22
+ requestDefaults: {
23
+ baseURL: request_1.OPENMART_API_ORIGIN,
24
+ json: true,
25
+ returnFullResponse: true,
26
+ ignoreHttpStatusErrors: true,
27
+ },
28
+ properties: [
29
+ {
30
+ displayName: 'Resource',
31
+ name: 'resource',
32
+ type: 'options',
33
+ noDataExpression: true,
34
+ options: [
35
+ { name: 'Account', value: 'account' },
36
+ { name: 'Batch', value: 'batch' },
37
+ { name: 'Business', value: 'business' },
38
+ { name: 'Company', value: 'company' },
39
+ { name: 'Person', value: 'person' },
40
+ { name: 'Task', value: 'task' },
41
+ ],
42
+ default: 'account',
43
+ },
44
+ {
45
+ displayName: 'Operation',
46
+ name: 'operation',
47
+ type: 'options',
48
+ noDataExpression: true,
49
+ displayOptions: { show: { resource: ['batch'] } },
50
+ options: [
51
+ {
52
+ name: 'Get Status',
53
+ value: 'getStatus',
54
+ description: 'Get progress counts and readiness for an existing batch',
55
+ action: 'Get batch status',
56
+ routing: {
57
+ request: { method: 'GET', url: '/api/v1/task/batch' },
58
+ send: { preSend: [routing_1.prepareBatchStatus] },
59
+ output: { postReceive: [routing_1.receiveBatchStatus] },
60
+ },
61
+ },
62
+ {
63
+ name: 'Get Task IDs',
64
+ value: 'getTaskIds',
65
+ description: 'Get task IDs from an existing batch',
66
+ action: 'Get tasks from a batch',
67
+ routing: {
68
+ request: { method: 'GET', url: '/api/v1/task/batch' },
69
+ send: { preSend: [routing_1.prepareTaskIds] },
70
+ output: { postReceive: [routing_1.receiveTaskIds] },
71
+ },
72
+ },
73
+ ],
74
+ default: 'getStatus',
75
+ },
76
+ {
77
+ displayName: 'Batch ID',
78
+ name: 'batchId',
79
+ type: 'string',
80
+ default: '',
81
+ required: true,
82
+ description: 'ID of the existing Openmart batch',
83
+ displayOptions: {
84
+ show: { resource: ['batch'], operation: ['getStatus', 'getTaskIds'] },
85
+ },
86
+ },
87
+ {
88
+ displayName: 'Status',
89
+ name: 'status',
90
+ type: 'string',
91
+ default: '',
92
+ description: 'Optional task status filter, for example COMPLETED',
93
+ displayOptions: { show: { resource: ['batch'], operation: ['getTaskIds'] } },
94
+ },
95
+ {
96
+ displayName: 'Operation',
97
+ name: 'operation',
98
+ type: 'options',
99
+ noDataExpression: true,
100
+ displayOptions: { show: { resource: ['account'] } },
101
+ options: [
102
+ {
103
+ name: 'Get Credit Balance',
104
+ value: 'getCreditBalance',
105
+ description: 'Get the current credit balance and billing period',
106
+ action: 'Get credit balance',
107
+ routing: {
108
+ request: { method: 'GET', url: '/api/v2/credit-balance' },
109
+ output: { postReceive: [routing_1.receiveCreditBalance] },
110
+ },
111
+ },
112
+ ],
113
+ default: 'getCreditBalance',
114
+ },
115
+ {
116
+ displayName: 'Operation',
117
+ name: 'operation',
118
+ type: 'options',
119
+ noDataExpression: true,
120
+ displayOptions: { show: { resource: ['business'] } },
121
+ options: [
122
+ {
123
+ name: 'Search',
124
+ value: 'search',
125
+ description: 'Find businesses matching a query',
126
+ action: 'Search businesses',
127
+ routing: {
128
+ request: { method: 'POST', url: '/api/v1/search' },
129
+ send: { preSend: [routing_1.prepareSearch], paginate: true },
130
+ output: { postReceive: [routing_1.receiveSearch] },
131
+ operations: { pagination: routing_1.paginateSearch },
132
+ },
133
+ },
134
+ ],
135
+ default: 'search',
136
+ },
137
+ {
138
+ displayName: 'Operation',
139
+ name: 'operation',
140
+ type: 'options',
141
+ noDataExpression: true,
142
+ displayOptions: { show: { resource: ['task'] } },
143
+ options: [
144
+ {
145
+ name: 'Get',
146
+ value: 'get',
147
+ description: 'Get an existing task and its result data',
148
+ action: 'Get a task',
149
+ routing: {
150
+ request: { method: 'GET', url: '/api/v1/task' },
151
+ send: { preSend: [routing_1.prepareTask] },
152
+ output: { postReceive: [routing_1.receiveTask] },
153
+ },
154
+ },
155
+ ],
156
+ default: 'get',
157
+ },
158
+ {
159
+ displayName: 'Operation',
160
+ name: 'operation',
161
+ type: 'options',
162
+ noDataExpression: true,
163
+ displayOptions: { show: { resource: ['company'] } },
164
+ options: [
165
+ {
166
+ name: 'Find Emails',
167
+ value: 'findEmails',
168
+ description: 'Create paid background work to find generic shared inbox addresses',
169
+ action: 'Find company emails',
170
+ routing: {
171
+ request: {
172
+ method: 'POST',
173
+ url: '/api/v1/task/batch/lookup_business_email',
174
+ timeout: 90000,
175
+ },
176
+ send: { preSend: [routing_1.prepareCompanyEmail] },
177
+ output: { postReceive: [routing_1.receiveCompanyEmail] },
178
+ },
179
+ },
180
+ {
181
+ name: 'Search',
182
+ value: 'search',
183
+ description: 'Return one row per brand; use Business Search for local or store-level leads',
184
+ action: 'Search companies',
185
+ routing: {
186
+ request: { method: 'POST', url: '/api/v2/brands/search' },
187
+ send: { preSend: [routing_1.prepareCompanySearch], paginate: true },
188
+ output: { postReceive: [routing_1.receiveCompanySearch] },
189
+ operations: { pagination: routing_1.paginateCompanySearch },
190
+ },
191
+ },
192
+ {
193
+ name: 'Enrich',
194
+ value: 'enrich',
195
+ description: 'Match existing Openmart records from a website or social media link; does not crawl arbitrary sites',
196
+ action: 'Enrich a company',
197
+ routing: {
198
+ request: { method: 'POST', url: '/api/v1/enrich_company' },
199
+ send: { preSend: [routing_1.prepareCompanyEnrich] },
200
+ output: { postReceive: [routing_1.receiveCompanyEnrich] },
201
+ },
202
+ },
203
+ ],
204
+ default: 'search',
205
+ },
206
+ {
207
+ displayName: 'Operation',
208
+ name: 'operation',
209
+ type: 'options',
210
+ noDataExpression: true,
211
+ displayOptions: { show: { resource: ['person'] } },
212
+ options: [
213
+ {
214
+ name: 'Find Decision Makers',
215
+ value: 'findDecisionMakers',
216
+ description: 'Create paid background work to find decision makers',
217
+ action: 'Find decision makers',
218
+ routing: {
219
+ request: {
220
+ method: 'POST',
221
+ url: '/api/v1/task/batch/find_people',
222
+ timeout: 90000,
223
+ },
224
+ send: { preSend: [routing_1.preparePeopleSearch] },
225
+ output: { postReceive: [routing_1.receivePeopleSearch] },
226
+ },
227
+ },
228
+ {
229
+ name: 'Enrich Known Person',
230
+ value: 'enrich',
231
+ description: 'Create paid background work to enrich known people',
232
+ action: 'Enrich known people',
233
+ routing: {
234
+ request: { method: 'POST', url: '/api/v1/task/batch/lookup_people', timeout: 90000 },
235
+ send: { preSend: [routing_1.prepareKnownPeople] },
236
+ output: { postReceive: [routing_1.receiveKnownPeople] },
237
+ },
238
+ },
239
+ ],
240
+ default: 'findDecisionMakers',
241
+ },
242
+ {
243
+ displayName: 'Each input item creates one potentially charged background task. Retries or manual reruns can duplicate charged work. Retrieve results with Batch Get Status → Batch Get Task IDs → Task Get.',
244
+ name: 'paidCreationNotice',
245
+ type: 'notice',
246
+ default: '',
247
+ displayOptions: {
248
+ show: { resource: ['company'], operation: ['findEmails'] },
249
+ },
250
+ },
251
+ {
252
+ displayName: 'Each input item creates one potentially charged background task. Retries or manual reruns can duplicate charged work. Retrieve results with Batch Get Status → Batch Get Task IDs → Task Get.',
253
+ name: 'paidPersonNotice',
254
+ type: 'notice',
255
+ default: '',
256
+ displayOptions: {
257
+ show: { resource: ['person'], operation: ['findDecisionMakers', 'enrich'] },
258
+ },
259
+ },
260
+ {
261
+ displayName: 'Domain',
262
+ name: 'domain',
263
+ type: 'string',
264
+ default: '',
265
+ required: true,
266
+ description: 'Company hostname or HTTP/HTTPS URL; normalized to a hostname',
267
+ displayOptions: {
268
+ show: { resource: ['company'], operation: ['findEmails'] },
269
+ },
270
+ },
271
+ {
272
+ displayName: 'Domain',
273
+ name: 'domain',
274
+ type: 'string',
275
+ default: '',
276
+ required: true,
277
+ description: 'Company hostname or HTTP/HTTPS URL; normalized to a hostname',
278
+ displayOptions: {
279
+ show: { resource: ['person'], operation: ['findDecisionMakers', 'enrich'] },
280
+ },
281
+ },
282
+ {
283
+ displayName: 'Company Name',
284
+ name: 'companyName',
285
+ type: 'string',
286
+ default: '',
287
+ required: true,
288
+ displayOptions: { show: { resource: ['company'], operation: ['findEmails'] } },
289
+ },
290
+ {
291
+ displayName: 'Company Name',
292
+ name: 'companyName',
293
+ type: 'string',
294
+ default: '',
295
+ description: 'Optional company name to help narrow the people search',
296
+ displayOptions: {
297
+ show: { resource: ['person'], operation: ['findDecisionMakers', 'enrich'] },
298
+ },
299
+ },
300
+ {
301
+ displayName: 'Title',
302
+ name: 'title',
303
+ type: 'string',
304
+ default: 'Owner or decision maker',
305
+ required: true,
306
+ displayOptions: { show: { resource: ['person'], operation: ['findDecisionMakers'] } },
307
+ },
308
+ {
309
+ displayName: 'Max Contacts',
310
+ name: 'maxK',
311
+ type: 'number',
312
+ default: 1,
313
+ required: true,
314
+ typeOptions: { minValue: 1, maxValue: 8 },
315
+ displayOptions: { show: { resource: ['person'], operation: ['findDecisionMakers'] } },
316
+ },
317
+ {
318
+ displayName: 'Contact Information',
319
+ name: 'infoAccess',
320
+ type: 'multiOptions',
321
+ default: ['EMAIL'],
322
+ required: true,
323
+ options: [
324
+ { name: 'Email', value: 'EMAIL' },
325
+ { name: 'Phone', value: 'PHONE' },
326
+ ],
327
+ description: 'Contact information types to request',
328
+ displayOptions: {
329
+ show: { resource: ['person'], operation: ['findDecisionMakers', 'enrich'] },
330
+ },
331
+ },
332
+ {
333
+ displayName: 'City',
334
+ name: 'city',
335
+ type: 'string',
336
+ default: '',
337
+ displayOptions: {
338
+ show: { resource: ['company'], operation: ['findEmails'] },
339
+ },
340
+ },
341
+ {
342
+ displayName: 'State',
343
+ name: 'state',
344
+ type: 'string',
345
+ default: '',
346
+ placeholder: 'e.g. CA',
347
+ description: 'For US locations, use the two-letter state code (for example, CA)',
348
+ displayOptions: {
349
+ show: { resource: ['company'], operation: ['findEmails'] },
350
+ },
351
+ },
352
+ {
353
+ displayName: 'Country',
354
+ name: 'country',
355
+ type: 'string',
356
+ default: '',
357
+ displayOptions: {
358
+ show: { resource: ['company'], operation: ['findEmails'] },
359
+ },
360
+ },
361
+ {
362
+ displayName: 'Tracking ID',
363
+ name: 'trackingId',
364
+ type: 'string',
365
+ default: '',
366
+ description: 'Optional caller-defined correlation ID',
367
+ displayOptions: {
368
+ show: { resource: ['company'], operation: ['findEmails'] },
369
+ },
370
+ },
371
+ ...['city', 'state', 'country', 'trackingId'].map((name) => ({
372
+ displayName: { city: 'City', state: 'State', country: 'Country', trackingId: 'Tracking ID' }[name],
373
+ name,
374
+ type: 'string',
375
+ default: '',
376
+ ...(name === 'state'
377
+ ? {
378
+ placeholder: 'e.g. CA',
379
+ description: 'For US locations, use the two-letter state code (for example, CA)',
380
+ }
381
+ : {}),
382
+ displayOptions: {
383
+ show: { resource: ['person'], operation: ['findDecisionMakers', 'enrich'] },
384
+ },
385
+ })),
386
+ {
387
+ displayName: 'People',
388
+ name: 'people',
389
+ type: 'fixedCollection',
390
+ default: {},
391
+ required: true,
392
+ placeholder: 'Add Person',
393
+ typeOptions: { multipleValues: true },
394
+ displayOptions: { show: { resource: ['person'], operation: ['enrich'] } },
395
+ options: [
396
+ {
397
+ displayName: 'Person',
398
+ name: 'person',
399
+ values: [
400
+ {
401
+ displayName: 'First Name',
402
+ name: 'firstName',
403
+ type: 'string',
404
+ default: '',
405
+ required: true,
406
+ },
407
+ {
408
+ displayName: 'Last Name',
409
+ name: 'lastName',
410
+ type: 'string',
411
+ default: '',
412
+ required: true,
413
+ },
414
+ { displayName: 'LinkedIn URL', name: 'linkedinUrl', type: 'string', default: '' },
415
+ ],
416
+ },
417
+ ],
418
+ },
419
+ {
420
+ displayName: 'Search Term',
421
+ name: 'companySearchTerm',
422
+ type: 'string',
423
+ default: '',
424
+ description: 'Brand-level relevance term',
425
+ displayOptions: { show: { resource: ['company'], operation: ['search'] } },
426
+ },
427
+ {
428
+ displayName: 'Location',
429
+ name: 'companySearchLocation',
430
+ type: 'fixedCollection',
431
+ default: {},
432
+ placeholder: 'Add Location',
433
+ typeOptions: { multipleValues: false },
434
+ displayOptions: { show: { resource: ['company'], operation: ['search'] } },
435
+ options: [
436
+ {
437
+ displayName: 'Location',
438
+ name: 'locationValues',
439
+ values: [
440
+ { displayName: 'Country', name: 'country', type: 'string', default: 'US' },
441
+ {
442
+ displayName: 'State',
443
+ name: 'state',
444
+ type: 'string',
445
+ default: '',
446
+ placeholder: 'e.g. CA',
447
+ description: 'For US locations, use the two-letter state code (for example, CA)',
448
+ },
449
+ { displayName: 'City', name: 'city', type: 'string', default: '' },
450
+ ],
451
+ },
452
+ ],
453
+ },
454
+ {
455
+ displayName: 'Ownership Type',
456
+ name: 'ownershipType',
457
+ type: 'multiOptions',
458
+ default: [],
459
+ options: [
460
+ { name: 'Chain', value: 'CHAIN' },
461
+ { name: 'Family', value: 'FAMILY' },
462
+ { name: 'Franchise', value: 'FRANCHISE' },
463
+ { name: 'Independent', value: 'INDEPENDENT' },
464
+ ],
465
+ displayOptions: { show: { resource: ['company'], operation: ['search'] } },
466
+ },
467
+ {
468
+ displayName: 'Store Count',
469
+ name: 'storeCount',
470
+ type: 'collection',
471
+ default: {},
472
+ placeholder: 'Add Store Count Filter',
473
+ options: [
474
+ {
475
+ displayName: 'Maximum Store Count',
476
+ name: 'maximumStores',
477
+ type: 'number',
478
+ default: 0,
479
+ typeOptions: { minValue: 0 },
480
+ },
481
+ {
482
+ displayName: 'Minimum Store Count',
483
+ name: 'minimumStores',
484
+ type: 'number',
485
+ default: 0,
486
+ typeOptions: { minValue: 0 },
487
+ },
488
+ ],
489
+ displayOptions: { show: { resource: ['company'], operation: ['search'] } },
490
+ },
491
+ ...['hasStaffInfo', 'hasBusinessEmail', 'hasBusinessPhone'].map((name, index) => ({
492
+ displayName: ['Has Staff Info', 'Has Business Email', 'Has Business Phone'][index],
493
+ name,
494
+ type: 'options',
495
+ default: '',
496
+ options: [
497
+ { name: 'Any', value: '' },
498
+ { name: 'Yes', value: true },
499
+ { name: 'No', value: false },
500
+ ],
501
+ displayOptions: { show: { resource: ['company'], operation: ['search'] } },
502
+ })),
503
+ {
504
+ displayName: 'Return All',
505
+ name: 'returnAll',
506
+ type: 'boolean',
507
+ default: false,
508
+ description: 'Whether to return all results or only up to a given limit',
509
+ hint: 'Openmart preview API keys do not support Company cursor pagination.',
510
+ displayOptions: { show: { resource: ['company'], operation: ['search'] } },
511
+ },
512
+ {
513
+ displayName: 'Limit',
514
+ name: 'companySearchLimit',
515
+ type: 'number',
516
+ default: 10,
517
+ typeOptions: { minValue: 1, maxValue: 1000 },
518
+ description: 'Maximum total number of brand-level companies to return across pages',
519
+ displayOptions: {
520
+ show: { resource: ['company'], operation: ['search'], returnAll: [false] },
521
+ },
522
+ routing: { output: { maxResults: '={{ $value }}' } },
523
+ },
524
+ {
525
+ displayName: 'Website',
526
+ name: 'website',
527
+ type: 'string',
528
+ default: '',
529
+ displayOptions: { show: { resource: ['company'], operation: ['enrich'] } },
530
+ },
531
+ {
532
+ displayName: 'Social Media Link',
533
+ name: 'socialMediaLink',
534
+ type: 'string',
535
+ default: '',
536
+ displayOptions: { show: { resource: ['company'], operation: ['enrich'] } },
537
+ },
538
+ {
539
+ displayName: 'Location',
540
+ name: 'companyEnrichLocation',
541
+ type: 'fixedCollection',
542
+ default: {},
543
+ placeholder: 'Add Location',
544
+ typeOptions: { multipleValues: false },
545
+ displayOptions: { show: { resource: ['company'], operation: ['enrich'] } },
546
+ options: [
547
+ {
548
+ displayName: 'Location',
549
+ name: 'locationValues',
550
+ values: [
551
+ { displayName: 'Country', name: 'country', type: 'string', default: '' },
552
+ {
553
+ displayName: 'State',
554
+ name: 'state',
555
+ type: 'string',
556
+ default: '',
557
+ placeholder: 'e.g. CA',
558
+ description: 'For US locations, use the two-letter state code (for example, CA)',
559
+ },
560
+ { displayName: 'City', name: 'city', type: 'string', default: '' },
561
+ ],
562
+ },
563
+ ],
564
+ },
565
+ {
566
+ displayName: 'Limit',
567
+ name: 'companyEnrichLimit',
568
+ type: 'number',
569
+ default: 10,
570
+ typeOptions: { minValue: 1, maxValue: 50 },
571
+ displayOptions: { show: { resource: ['company'], operation: ['enrich'] } },
572
+ },
573
+ {
574
+ displayName: 'Task ID',
575
+ name: 'taskId',
576
+ type: 'string',
577
+ default: '',
578
+ required: true,
579
+ description: 'ID of the existing Openmart task',
580
+ displayOptions: { show: { resource: ['task'], operation: ['get'] } },
581
+ },
582
+ {
583
+ displayName: 'Query',
584
+ name: 'query',
585
+ type: 'string',
586
+ default: '',
587
+ required: true,
588
+ description: 'Natural-language description of businesses to find',
589
+ displayOptions: { show: { resource: ['business'], operation: ['search'] } },
590
+ },
591
+ {
592
+ displayName: 'Return All',
593
+ name: 'returnAll',
594
+ type: 'boolean',
595
+ default: false,
596
+ description: 'Whether to return all results or only up to a given limit',
597
+ displayOptions: { show: { resource: ['business'], operation: ['search'] } },
598
+ },
599
+ {
600
+ displayName: 'Limit',
601
+ name: 'resultLimit',
602
+ type: 'number',
603
+ default: 10,
604
+ typeOptions: { minValue: 1, maxValue: 1000 },
605
+ description: 'Maximum number of businesses to return for this input item',
606
+ displayOptions: {
607
+ show: { resource: ['business'], operation: ['search'], returnAll: [false] },
608
+ },
609
+ routing: { output: { maxResults: '={{ $value }}' } },
610
+ },
611
+ {
612
+ displayName: 'Location',
613
+ name: 'location',
614
+ type: 'fixedCollection',
615
+ default: {},
616
+ placeholder: 'Add Location',
617
+ typeOptions: { multipleValues: false },
618
+ displayOptions: { show: { resource: ['business'], operation: ['search'] } },
619
+ options: [
620
+ {
621
+ displayName: 'Location',
622
+ name: 'locationValues',
623
+ values: [
624
+ { displayName: 'Country', name: 'country', type: 'string', default: '' },
625
+ {
626
+ displayName: 'State',
627
+ name: 'state',
628
+ type: 'string',
629
+ default: '',
630
+ placeholder: 'e.g. CA',
631
+ description: 'For US locations, use the two-letter state code (for example, CA)',
632
+ },
633
+ { displayName: 'City', name: 'city', type: 'string', default: '' },
634
+ ],
635
+ },
636
+ ],
637
+ },
638
+ {
639
+ displayName: 'Filters',
640
+ name: 'filters',
641
+ type: 'collection',
642
+ default: {},
643
+ placeholder: 'Add Filter',
644
+ displayOptions: { show: { resource: ['business'], operation: ['search'] } },
645
+ options: [
646
+ {
647
+ displayName: 'Has Contact Info',
648
+ name: 'has_contact_info',
649
+ type: 'boolean',
650
+ default: true,
651
+ },
652
+ {
653
+ displayName: 'Has Valid Website',
654
+ name: 'has_valid_website',
655
+ type: 'boolean',
656
+ default: true,
657
+ },
658
+ { displayName: 'Has Website', name: 'has_website', type: 'boolean', default: true },
659
+ {
660
+ displayName: 'Minimum Locations',
661
+ name: 'min_locations',
662
+ type: 'number',
663
+ default: 1,
664
+ typeOptions: { minValue: 1 },
665
+ },
666
+ ],
667
+ },
668
+ ],
669
+ };
670
+ }
671
+ }
672
+ exports.Openmart = Openmart;
673
+ //# sourceMappingURL=Openmart.node.js.map