@crowdin/n8n-nodes-crowdin 0.9.1 → 0.11.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 (67) hide show
  1. package/dist/nodes/Crowdin/properties/crowdin/fileBased/ai.js +7 -281
  2. package/dist/nodes/Crowdin/properties/crowdin/fileBased/ai.js.map +1 -1
  3. package/dist/nodes/Crowdin/properties/crowdin/fileBased/glossaries.js +116 -65
  4. package/dist/nodes/Crowdin/properties/crowdin/fileBased/glossaries.js.map +1 -1
  5. package/dist/nodes/Crowdin/properties/crowdin/fileBased/index.js +35 -41
  6. package/dist/nodes/Crowdin/properties/crowdin/fileBased/index.js.map +1 -1
  7. package/dist/nodes/Crowdin/properties/crowdin/fileBased/reports.js +26 -58
  8. package/dist/nodes/Crowdin/properties/crowdin/fileBased/reports.js.map +1 -1
  9. package/dist/nodes/Crowdin/properties/crowdin/fileBased/sourceFiles.js +79 -1
  10. package/dist/nodes/Crowdin/properties/crowdin/fileBased/sourceFiles.js.map +1 -1
  11. package/dist/nodes/Crowdin/properties/crowdin/fileBased/tasks.js +272 -1819
  12. package/dist/nodes/Crowdin/properties/crowdin/fileBased/tasks.js.map +1 -1
  13. package/dist/nodes/Crowdin/properties/crowdin/fileBased/translations.js +1719 -49
  14. package/dist/nodes/Crowdin/properties/crowdin/fileBased/translations.js.map +1 -1
  15. package/dist/nodes/Crowdin/properties/crowdin/stringBased/ai.js +7 -281
  16. package/dist/nodes/Crowdin/properties/crowdin/stringBased/ai.js.map +1 -1
  17. package/dist/nodes/Crowdin/properties/crowdin/stringBased/glossaries.js +116 -65
  18. package/dist/nodes/Crowdin/properties/crowdin/stringBased/glossaries.js.map +1 -1
  19. package/dist/nodes/Crowdin/properties/crowdin/stringBased/index.js +35 -41
  20. package/dist/nodes/Crowdin/properties/crowdin/stringBased/index.js.map +1 -1
  21. package/dist/nodes/Crowdin/properties/crowdin/stringBased/reports.js +26 -58
  22. package/dist/nodes/Crowdin/properties/crowdin/stringBased/reports.js.map +1 -1
  23. package/dist/nodes/Crowdin/properties/crowdin/stringBased/tasks.js +273 -1820
  24. package/dist/nodes/Crowdin/properties/crowdin/stringBased/tasks.js.map +1 -1
  25. package/dist/nodes/Crowdin/properties/crowdin/stringBased/translations.js +1677 -32
  26. package/dist/nodes/Crowdin/properties/crowdin/stringBased/translations.js.map +1 -1
  27. package/dist/nodes/Crowdin/properties/enterprise/fileBased/ai.js +7 -281
  28. package/dist/nodes/Crowdin/properties/enterprise/fileBased/ai.js.map +1 -1
  29. package/dist/nodes/Crowdin/properties/enterprise/fileBased/glossaries.js +116 -65
  30. package/dist/nodes/Crowdin/properties/enterprise/fileBased/glossaries.js.map +1 -1
  31. package/dist/nodes/Crowdin/properties/enterprise/fileBased/index.js +19 -25
  32. package/dist/nodes/Crowdin/properties/enterprise/fileBased/index.js.map +1 -1
  33. package/dist/nodes/Crowdin/properties/enterprise/fileBased/reports.js +80 -148
  34. package/dist/nodes/Crowdin/properties/enterprise/fileBased/reports.js.map +1 -1
  35. package/dist/nodes/Crowdin/properties/enterprise/fileBased/sourceFiles.js +79 -1
  36. package/dist/nodes/Crowdin/properties/enterprise/fileBased/sourceFiles.js.map +1 -1
  37. package/dist/nodes/Crowdin/properties/enterprise/fileBased/tasks.js +64 -11
  38. package/dist/nodes/Crowdin/properties/enterprise/fileBased/tasks.js.map +1 -1
  39. package/dist/nodes/Crowdin/properties/enterprise/fileBased/translations.js +1745 -49
  40. package/dist/nodes/Crowdin/properties/enterprise/fileBased/translations.js.map +1 -1
  41. package/dist/nodes/Crowdin/properties/enterprise/stringBased/ai.js +7 -281
  42. package/dist/nodes/Crowdin/properties/enterprise/stringBased/ai.js.map +1 -1
  43. package/dist/nodes/Crowdin/properties/enterprise/stringBased/glossaries.js +116 -65
  44. package/dist/nodes/Crowdin/properties/enterprise/stringBased/glossaries.js.map +1 -1
  45. package/dist/nodes/Crowdin/properties/enterprise/stringBased/index.js +0 -6
  46. package/dist/nodes/Crowdin/properties/enterprise/stringBased/index.js.map +1 -1
  47. package/dist/nodes/Crowdin/properties/enterprise/stringBased/reports.js +80 -148
  48. package/dist/nodes/Crowdin/properties/enterprise/stringBased/reports.js.map +1 -1
  49. package/dist/nodes/Crowdin/properties/enterprise/stringBased/tasks.js +64 -11
  50. package/dist/nodes/Crowdin/properties/enterprise/stringBased/tasks.js.map +1 -1
  51. package/dist/nodes/Crowdin/properties/enterprise/stringBased/translations.js +1703 -32
  52. package/dist/nodes/Crowdin/properties/enterprise/stringBased/translations.js.map +1 -1
  53. package/dist/package.json +1 -1
  54. package/dist/tsconfig.tsbuildinfo +1 -1
  55. package/package.json +1 -1
  56. package/dist/nodes/Crowdin/properties/crowdin/fileBased/bundles.d.ts +0 -2
  57. package/dist/nodes/Crowdin/properties/crowdin/fileBased/bundles.js +0 -1453
  58. package/dist/nodes/Crowdin/properties/crowdin/fileBased/bundles.js.map +0 -1
  59. package/dist/nodes/Crowdin/properties/crowdin/stringBased/bundles.d.ts +0 -2
  60. package/dist/nodes/Crowdin/properties/crowdin/stringBased/bundles.js +0 -1453
  61. package/dist/nodes/Crowdin/properties/crowdin/stringBased/bundles.js.map +0 -1
  62. package/dist/nodes/Crowdin/properties/enterprise/fileBased/bundles.d.ts +0 -2
  63. package/dist/nodes/Crowdin/properties/enterprise/fileBased/bundles.js +0 -1453
  64. package/dist/nodes/Crowdin/properties/enterprise/fileBased/bundles.js.map +0 -1
  65. package/dist/nodes/Crowdin/properties/enterprise/stringBased/bundles.d.ts +0 -2
  66. package/dist/nodes/Crowdin/properties/enterprise/stringBased/bundles.js +0 -1453
  67. package/dist/nodes/Crowdin/properties/enterprise/stringBased/bundles.js.map +0 -1
@@ -16,6 +16,157 @@ exports.translationsProperties = [
16
16
  }
17
17
  },
18
18
  options: [
19
+ {
20
+ name: 'Bundle List Branches',
21
+ value: 'api.projects.bundles.branches.getMany',
22
+ action: 'Bundle List Branches',
23
+ description: '**Required scopes:** `project.source.file` (Read only).',
24
+ routing: {
25
+ request: {
26
+ method: 'GET',
27
+ url: '=/projects/{{$parameter["projectId"]}}/bundles/{{$parameter["bundleId"]}}/branches'
28
+ },
29
+ send: {
30
+ paginate: '={{$parameter["returnAll"]}}'
31
+ },
32
+ output: {
33
+ postReceive: [
34
+ {
35
+ type: 'rootProperty',
36
+ enabled: '={{!$parameter["returnAll"]}}',
37
+ properties: {
38
+ property: 'data'
39
+ }
40
+ }
41
+ ]
42
+ }
43
+ }
44
+ },
45
+ {
46
+ name: 'List Bundles',
47
+ value: 'api.projects.bundles.getMany',
48
+ action: 'List Bundles',
49
+ description: '**Required scopes:** `project.translation` (Read only).',
50
+ routing: {
51
+ request: {
52
+ method: 'GET',
53
+ url: '=/projects/{{$parameter["projectId"]}}/bundles'
54
+ },
55
+ send: {
56
+ paginate: '={{$parameter["returnAll"]}}'
57
+ },
58
+ output: {
59
+ postReceive: [
60
+ {
61
+ type: 'rootProperty',
62
+ enabled: '={{!$parameter["returnAll"]}}',
63
+ properties: {
64
+ property: 'data'
65
+ }
66
+ }
67
+ ]
68
+ }
69
+ }
70
+ },
71
+ {
72
+ name: 'Add Bundle',
73
+ value: 'api.projects.bundles.post',
74
+ action: 'Add Bundle',
75
+ description: '**Required scopes:** `project.source.file` (Read and Write).',
76
+ routing: {
77
+ request: {
78
+ method: 'POST',
79
+ url: '=/projects/{{$parameter["projectId"]}}/bundles'
80
+ }
81
+ }
82
+ },
83
+ {
84
+ name: 'Get Bundle',
85
+ value: 'api.projects.bundles.get',
86
+ action: 'Get Bundle',
87
+ description: '**Required scopes:** `project.source.file` (Read only).',
88
+ routing: {
89
+ request: {
90
+ method: 'GET',
91
+ url: '=/projects/{{$parameter["projectId"]}}/bundles/{{$parameter["bundleId"]}}'
92
+ }
93
+ }
94
+ },
95
+ {
96
+ name: 'Delete Bundle',
97
+ value: 'api.projects.bundles.delete',
98
+ action: 'Delete Bundle',
99
+ description: '**Required scopes:** `project.source.file` (Read and Write).',
100
+ routing: {
101
+ request: {
102
+ method: 'DELETE',
103
+ url: '=/projects/{{$parameter["projectId"]}}/bundles/{{$parameter["bundleId"]}}'
104
+ },
105
+ output: {
106
+ postReceive: [
107
+ {
108
+ type: 'set',
109
+ properties: {
110
+ value: '={{ { "success": true } }}'
111
+ }
112
+ }
113
+ ]
114
+ }
115
+ }
116
+ },
117
+ {
118
+ name: 'Edit Bundle',
119
+ value: 'api.projects.bundles.patch',
120
+ action: 'Edit Bundle',
121
+ description: '**Required scopes:** `project.source.file` (Read and Write).',
122
+ routing: {
123
+ request: {
124
+ method: 'PATCH',
125
+ url: '=/projects/{{$parameter["projectId"]}}/bundles/{{$parameter["bundleId"]}}'
126
+ },
127
+ send: {
128
+ preSend: [
129
+ preSend_1.transformToJsonPatch
130
+ ]
131
+ }
132
+ }
133
+ },
134
+ {
135
+ name: 'Download Bundle',
136
+ value: 'api.projects.bundles.exports.download.get',
137
+ action: 'Download Bundle',
138
+ description: '**Required scopes:** `project.translation` (Read only).',
139
+ routing: {
140
+ request: {
141
+ method: 'GET',
142
+ url: '=/projects/{{$parameter["projectId"]}}/bundles/{{$parameter["bundleId"]}}/exports/{{$parameter["exportId"]}}/download'
143
+ }
144
+ }
145
+ },
146
+ {
147
+ name: 'Export Bundle',
148
+ value: 'api.projects.bundles.exports.post',
149
+ action: 'Export Bundle',
150
+ description: '**Required scopes:** `project.translation` (Read only).',
151
+ routing: {
152
+ request: {
153
+ method: 'POST',
154
+ url: '=/projects/{{$parameter["projectId"]}}/bundles/{{$parameter["bundleId"]}}/exports'
155
+ }
156
+ }
157
+ },
158
+ {
159
+ name: 'Check Bundle Export Status',
160
+ value: 'api.projects.bundles.exports.get',
161
+ action: 'Check Bundle Export Status',
162
+ description: '**Required scopes:** `project.translation` (Read only).',
163
+ routing: {
164
+ request: {
165
+ method: 'GET',
166
+ url: '=/projects/{{$parameter["projectId"]}}/bundles/{{$parameter["bundleId"]}}/exports/{{$parameter["exportId"]}}'
167
+ }
168
+ }
169
+ },
19
170
  {
20
171
  name: 'List Pre-Translations',
21
172
  value: 'api.projects.pre-translations.getMany',
@@ -155,10 +306,10 @@ exports.translationsProperties = [
155
306
  }
156
307
  }
157
308
  ],
158
- default: 'api.projects.pre-translations.getMany'
309
+ default: 'api.projects.bundles.branches.getMany'
159
310
  },
160
311
  {
161
- displayName: 'GET /projects/{projectId}/pre-translations',
312
+ displayName: 'GET /projects/{projectId}/bundles/{bundleId}/branches',
162
313
  name: 'operation',
163
314
  type: 'notice',
164
315
  typeOptions: {
@@ -171,13 +322,13 @@ exports.translationsProperties = [
171
322
  'translations'
172
323
  ],
173
324
  operation: [
174
- 'api.projects.pre-translations.getMany'
325
+ 'api.projects.bundles.branches.getMany'
175
326
  ]
176
327
  }
177
328
  }
178
329
  },
179
330
  {
180
- displayName: 'POST /projects/{projectId}/pre-translations',
331
+ displayName: 'GET /projects/{projectId}/bundles',
181
332
  name: 'operation',
182
333
  type: 'notice',
183
334
  typeOptions: {
@@ -190,13 +341,13 @@ exports.translationsProperties = [
190
341
  'translations'
191
342
  ],
192
343
  operation: [
193
- 'api.projects.pre-translations.post'
344
+ 'api.projects.bundles.getMany'
194
345
  ]
195
346
  }
196
347
  }
197
348
  },
198
349
  {
199
- displayName: 'GET /projects/{projectId}/pre-translations/{preTranslationId}',
350
+ displayName: 'POST /projects/{projectId}/bundles',
200
351
  name: 'operation',
201
352
  type: 'notice',
202
353
  typeOptions: {
@@ -209,13 +360,13 @@ exports.translationsProperties = [
209
360
  'translations'
210
361
  ],
211
362
  operation: [
212
- 'api.projects.pre-translations.get'
363
+ 'api.projects.bundles.post'
213
364
  ]
214
365
  }
215
366
  }
216
367
  },
217
368
  {
218
- displayName: 'PATCH /projects/{projectId}/pre-translations/{preTranslationId}',
369
+ displayName: 'GET /projects/{projectId}/bundles/{bundleId}',
219
370
  name: 'operation',
220
371
  type: 'notice',
221
372
  typeOptions: {
@@ -228,13 +379,13 @@ exports.translationsProperties = [
228
379
  'translations'
229
380
  ],
230
381
  operation: [
231
- 'api.projects.pre-translations.patch'
382
+ 'api.projects.bundles.get'
232
383
  ]
233
384
  }
234
385
  }
235
386
  },
236
387
  {
237
- displayName: 'GET /projects/{projectId}/pre-translations/{preTranslationId}/report',
388
+ displayName: 'DELETE /projects/{projectId}/bundles/{bundleId}',
238
389
  name: 'operation',
239
390
  type: 'notice',
240
391
  typeOptions: {
@@ -247,13 +398,13 @@ exports.translationsProperties = [
247
398
  'translations'
248
399
  ],
249
400
  operation: [
250
- 'api.projects.pre-translations.report.getReport'
401
+ 'api.projects.bundles.delete'
251
402
  ]
252
403
  }
253
404
  }
254
405
  },
255
406
  {
256
- displayName: 'POST /projects/{projectId}/translations/validate-qa-checks',
407
+ displayName: 'PATCH /projects/{projectId}/bundles/{bundleId}',
257
408
  name: 'operation',
258
409
  type: 'notice',
259
410
  typeOptions: {
@@ -266,13 +417,13 @@ exports.translationsProperties = [
266
417
  'translations'
267
418
  ],
268
419
  operation: [
269
- 'api.projects.translations.validate-qa-checks.post'
420
+ 'api.projects.bundles.patch'
270
421
  ]
271
422
  }
272
423
  }
273
424
  },
274
425
  {
275
- displayName: 'POST /projects/{projectId}/translations/exports',
426
+ displayName: 'GET /projects/{projectId}/bundles/{bundleId}/exports/{exportId}/download',
276
427
  name: 'operation',
277
428
  type: 'notice',
278
429
  typeOptions: {
@@ -285,13 +436,13 @@ exports.translationsProperties = [
285
436
  'translations'
286
437
  ],
287
438
  operation: [
288
- 'api.projects.translations.exports.post'
439
+ 'api.projects.bundles.exports.download.get'
289
440
  ]
290
441
  }
291
442
  }
292
443
  },
293
444
  {
294
- displayName: 'POST /projects/{projectId}/translations/imports',
445
+ displayName: 'POST /projects/{projectId}/bundles/{bundleId}/exports',
295
446
  name: 'operation',
296
447
  type: 'notice',
297
448
  typeOptions: {
@@ -304,13 +455,146 @@ exports.translationsProperties = [
304
455
  'translations'
305
456
  ],
306
457
  operation: [
307
- 'api.projects.translations.enterprise.imports'
458
+ 'api.projects.bundles.exports.post'
308
459
  ]
309
460
  }
310
461
  }
311
462
  },
312
463
  {
313
- displayName: 'GET /projects/{projectId}/translations/imports/{importTranslationId}',
464
+ displayName: 'GET /projects/{projectId}/bundles/{bundleId}/exports/{exportId}',
465
+ name: 'operation',
466
+ type: 'notice',
467
+ typeOptions: {
468
+ theme: 'info'
469
+ },
470
+ default: '',
471
+ displayOptions: {
472
+ show: {
473
+ resource: [
474
+ 'translations'
475
+ ],
476
+ operation: [
477
+ 'api.projects.bundles.exports.get'
478
+ ]
479
+ }
480
+ }
481
+ },
482
+ {
483
+ displayName: 'GET /projects/{projectId}/pre-translations',
484
+ name: 'operation',
485
+ type: 'notice',
486
+ typeOptions: {
487
+ theme: 'info'
488
+ },
489
+ default: '',
490
+ displayOptions: {
491
+ show: {
492
+ resource: [
493
+ 'translations'
494
+ ],
495
+ operation: [
496
+ 'api.projects.pre-translations.getMany'
497
+ ]
498
+ }
499
+ }
500
+ },
501
+ {
502
+ displayName: 'POST /projects/{projectId}/pre-translations',
503
+ name: 'operation',
504
+ type: 'notice',
505
+ typeOptions: {
506
+ theme: 'info'
507
+ },
508
+ default: '',
509
+ displayOptions: {
510
+ show: {
511
+ resource: [
512
+ 'translations'
513
+ ],
514
+ operation: [
515
+ 'api.projects.pre-translations.post'
516
+ ]
517
+ }
518
+ }
519
+ },
520
+ {
521
+ displayName: 'GET /projects/{projectId}/pre-translations/{preTranslationId}',
522
+ name: 'operation',
523
+ type: 'notice',
524
+ typeOptions: {
525
+ theme: 'info'
526
+ },
527
+ default: '',
528
+ displayOptions: {
529
+ show: {
530
+ resource: [
531
+ 'translations'
532
+ ],
533
+ operation: [
534
+ 'api.projects.pre-translations.get'
535
+ ]
536
+ }
537
+ }
538
+ },
539
+ {
540
+ displayName: 'PATCH /projects/{projectId}/pre-translations/{preTranslationId}',
541
+ name: 'operation',
542
+ type: 'notice',
543
+ typeOptions: {
544
+ theme: 'info'
545
+ },
546
+ default: '',
547
+ displayOptions: {
548
+ show: {
549
+ resource: [
550
+ 'translations'
551
+ ],
552
+ operation: [
553
+ 'api.projects.pre-translations.patch'
554
+ ]
555
+ }
556
+ }
557
+ },
558
+ {
559
+ displayName: 'GET /projects/{projectId}/pre-translations/{preTranslationId}/report',
560
+ name: 'operation',
561
+ type: 'notice',
562
+ typeOptions: {
563
+ theme: 'info'
564
+ },
565
+ default: '',
566
+ displayOptions: {
567
+ show: {
568
+ resource: [
569
+ 'translations'
570
+ ],
571
+ operation: [
572
+ 'api.projects.pre-translations.report.getReport'
573
+ ]
574
+ }
575
+ }
576
+ },
577
+ {
578
+ displayName: 'POST /projects/{projectId}/translations/validate-qa-checks',
579
+ name: 'operation',
580
+ type: 'notice',
581
+ typeOptions: {
582
+ theme: 'info'
583
+ },
584
+ default: '',
585
+ displayOptions: {
586
+ show: {
587
+ resource: [
588
+ 'translations'
589
+ ],
590
+ operation: [
591
+ 'api.projects.translations.validate-qa-checks.post'
592
+ ]
593
+ }
594
+ }
595
+ },
596
+ {
597
+ displayName: 'POST /projects/{projectId}/translations/exports',
314
598
  name: 'operation',
315
599
  type: 'notice',
316
600
  typeOptions: {
@@ -323,26 +607,1056 @@ exports.translationsProperties = [
323
607
  'translations'
324
608
  ],
325
609
  operation: [
326
- 'api.projects.translations.enterprise.imports.get'
610
+ 'api.projects.translations.exports.post'
611
+ ]
612
+ }
613
+ }
614
+ },
615
+ {
616
+ displayName: 'POST /projects/{projectId}/translations/imports',
617
+ name: 'operation',
618
+ type: 'notice',
619
+ typeOptions: {
620
+ theme: 'info'
621
+ },
622
+ default: '',
623
+ displayOptions: {
624
+ show: {
625
+ resource: [
626
+ 'translations'
627
+ ],
628
+ operation: [
629
+ 'api.projects.translations.enterprise.imports'
630
+ ]
631
+ }
632
+ }
633
+ },
634
+ {
635
+ displayName: 'GET /projects/{projectId}/translations/imports/{importTranslationId}',
636
+ name: 'operation',
637
+ type: 'notice',
638
+ typeOptions: {
639
+ theme: 'info'
640
+ },
641
+ default: '',
642
+ displayOptions: {
643
+ show: {
644
+ resource: [
645
+ 'translations'
646
+ ],
647
+ operation: [
648
+ 'api.projects.translations.enterprise.imports.get'
649
+ ]
650
+ }
651
+ }
652
+ },
653
+ {
654
+ displayName: 'GET /projects/{projectId}/translations/imports/{importTranslationId}/report',
655
+ name: 'operation',
656
+ type: 'notice',
657
+ typeOptions: {
658
+ theme: 'info'
659
+ },
660
+ default: '',
661
+ displayOptions: {
662
+ show: {
663
+ resource: [
664
+ 'translations'
665
+ ],
666
+ operation: [
667
+ 'api.projects.translations.imports.report.get'
668
+ ]
669
+ }
670
+ }
671
+ },
672
+ {
673
+ displayName: 'Project Id',
674
+ name: 'projectId',
675
+ required: true,
676
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
677
+ default: '',
678
+ type: 'options',
679
+ displayOptions: {
680
+ show: {
681
+ resource: [
682
+ 'translations'
683
+ ],
684
+ operation: [
685
+ 'api.projects.bundles.branches.getMany'
686
+ ]
687
+ }
688
+ },
689
+ typeOptions: {
690
+ loadOptionsMethod: 'getProjects'
691
+ }
692
+ },
693
+ {
694
+ displayName: 'Bundle Id',
695
+ name: 'bundleId',
696
+ required: true,
697
+ description: 'Bundle Identifier. Get via [List Bundles](#operation/api.projects.bundles.getMany)',
698
+ default: '',
699
+ type: 'options',
700
+ displayOptions: {
701
+ show: {
702
+ resource: [
703
+ 'translations'
704
+ ],
705
+ operation: [
706
+ 'api.projects.bundles.branches.getMany'
707
+ ]
708
+ }
709
+ },
710
+ typeOptions: {
711
+ loadOptionsMethod: 'getProjectBundles',
712
+ loadOptionsDependsOn: [
713
+ 'projectId'
714
+ ]
715
+ }
716
+ },
717
+ {
718
+ displayName: 'Limit',
719
+ name: 'limit',
720
+ description: 'Max number of results to return',
721
+ default: 50,
722
+ type: 'number',
723
+ routing: {
724
+ send: {
725
+ type: 'query',
726
+ property: 'limit',
727
+ value: '={{ typeof $value === \'number\' ? $value : undefined }}',
728
+ propertyInDotNotation: false
729
+ }
730
+ },
731
+ displayOptions: {
732
+ show: {
733
+ resource: [
734
+ 'translations'
735
+ ],
736
+ operation: [
737
+ 'api.projects.bundles.branches.getMany'
738
+ ],
739
+ returnAll: [
740
+ false
741
+ ]
742
+ }
743
+ },
744
+ typeOptions: {
745
+ minValue: 1
746
+ }
747
+ },
748
+ {
749
+ displayName: 'Project Id',
750
+ name: 'projectId',
751
+ required: true,
752
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
753
+ default: '',
754
+ type: 'options',
755
+ displayOptions: {
756
+ show: {
757
+ resource: [
758
+ 'translations'
759
+ ],
760
+ operation: [
761
+ 'api.projects.bundles.getMany'
762
+ ]
763
+ }
764
+ },
765
+ typeOptions: {
766
+ loadOptionsMethod: 'getProjects'
767
+ }
768
+ },
769
+ {
770
+ displayName: 'Limit',
771
+ name: 'limit',
772
+ description: 'Max number of results to return',
773
+ default: 50,
774
+ type: 'number',
775
+ routing: {
776
+ send: {
777
+ type: 'query',
778
+ property: 'limit',
779
+ value: '={{ typeof $value === \'number\' ? $value : undefined }}',
780
+ propertyInDotNotation: false
781
+ }
782
+ },
783
+ displayOptions: {
784
+ show: {
785
+ resource: [
786
+ 'translations'
787
+ ],
788
+ operation: [
789
+ 'api.projects.bundles.getMany'
790
+ ],
791
+ returnAll: [
792
+ false
793
+ ]
794
+ }
795
+ },
796
+ typeOptions: {
797
+ minValue: 1
798
+ }
799
+ },
800
+ {
801
+ displayName: 'Project Id',
802
+ name: 'projectId',
803
+ required: true,
804
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
805
+ default: '',
806
+ type: 'options',
807
+ displayOptions: {
808
+ show: {
809
+ resource: [
810
+ 'translations'
811
+ ],
812
+ operation: [
813
+ 'api.projects.bundles.post'
814
+ ]
815
+ }
816
+ },
817
+ typeOptions: {
818
+ loadOptionsMethod: 'getProjects'
819
+ }
820
+ },
821
+ {
822
+ displayName: 'Name',
823
+ required: true,
824
+ name: 'name',
825
+ type: 'string',
826
+ default: '',
827
+ description: 'Defines name',
828
+ routing: {
829
+ send: {
830
+ property: 'name',
831
+ propertyInDotNotation: false,
832
+ type: 'body',
833
+ value: '={{ $value || undefined }}'
834
+ }
835
+ },
836
+ displayOptions: {
837
+ show: {
838
+ resource: [
839
+ 'translations'
840
+ ],
841
+ operation: [
842
+ 'api.projects.bundles.post'
843
+ ]
844
+ }
845
+ },
846
+ placeholder: 'Resx bundle'
847
+ },
848
+ {
849
+ displayName: 'Format',
850
+ name: 'format',
851
+ type: 'string',
852
+ default: '',
853
+ description: 'Defines export file format. If not provided, files will be exported in their original format.\n\n__Note:__ Required for strings-based projects',
854
+ routing: {
855
+ send: {
856
+ property: 'format',
857
+ propertyInDotNotation: false,
858
+ type: 'body',
859
+ value: '={{ $value || undefined }}'
860
+ }
861
+ },
862
+ displayOptions: {
863
+ show: {
864
+ resource: [
865
+ 'translations'
866
+ ],
867
+ operation: [
868
+ 'api.projects.bundles.post'
869
+ ]
870
+ }
871
+ },
872
+ placeholder: 'crowdin-resx'
873
+ },
874
+ {
875
+ displayName: 'Source Patterns',
876
+ required: true,
877
+ name: 'sourcePatterns',
878
+ type: 'fixedCollection',
879
+ default: {},
880
+ routing: {
881
+ send: {
882
+ property: 'sourcePatterns',
883
+ propertyInDotNotation: false,
884
+ type: 'body',
885
+ value: '={{ $value.items?.map(i => i._value) || undefined }}'
886
+ }
887
+ },
888
+ displayOptions: {
889
+ show: {
890
+ resource: [
891
+ 'translations'
892
+ ],
893
+ operation: [
894
+ 'api.projects.bundles.post'
895
+ ]
896
+ }
897
+ },
898
+ typeOptions: {
899
+ multipleValues: true
900
+ },
901
+ placeholder: 'Add Item',
902
+ options: [
903
+ {
904
+ displayName: 'Items',
905
+ name: 'items',
906
+ values: [
907
+ {
908
+ displayName: 'Value',
909
+ name: '_value',
910
+ type: 'string',
911
+ default: ''
912
+ }
913
+ ]
914
+ }
915
+ ]
916
+ },
917
+ {
918
+ displayName: 'Ignore Patterns',
919
+ name: 'ignorePatterns',
920
+ type: 'fixedCollection',
921
+ default: {},
922
+ routing: {
923
+ send: {
924
+ property: 'ignorePatterns',
925
+ propertyInDotNotation: false,
926
+ type: 'body',
927
+ value: '={{ $value.items?.map(i => i._value) || undefined }}'
928
+ }
929
+ },
930
+ displayOptions: {
931
+ show: {
932
+ resource: [
933
+ 'translations'
934
+ ],
935
+ operation: [
936
+ 'api.projects.bundles.post'
937
+ ]
938
+ }
939
+ },
940
+ typeOptions: {
941
+ multipleValues: true
942
+ },
943
+ placeholder: 'Add Item',
944
+ options: [
945
+ {
946
+ displayName: 'Items',
947
+ name: 'items',
948
+ values: [
949
+ {
950
+ displayName: 'Value',
951
+ name: '_value',
952
+ type: 'string',
953
+ default: ''
954
+ }
955
+ ]
956
+ }
957
+ ]
958
+ },
959
+ {
960
+ displayName: 'Export Pattern',
961
+ name: 'exportPattern',
962
+ type: 'string',
963
+ default: '',
964
+ description: 'Bundle export pattern. Defines bundle name in resulting translations bundle. **Required** if `format` is specified. If `format` is not specified, uses default pattern based on file structure\n\n__Note:__ Can\'t contain `: * ? " < > |` symbols',
965
+ routing: {
966
+ send: {
967
+ property: 'exportPattern',
968
+ propertyInDotNotation: false,
969
+ type: 'body',
970
+ value: '={{ $value || undefined }}'
971
+ }
972
+ },
973
+ displayOptions: {
974
+ show: {
975
+ resource: [
976
+ 'translations'
977
+ ],
978
+ operation: [
979
+ 'api.projects.bundles.post'
980
+ ]
981
+ }
982
+ },
983
+ placeholder: 'strings-%two_letter_code%.resx'
984
+ },
985
+ {
986
+ displayName: 'Is Multilingual',
987
+ name: 'isMultilingual',
988
+ type: 'boolean',
989
+ default: false,
990
+ description: 'Export translations in multilingual file',
991
+ routing: {
992
+ send: {
993
+ property: 'isMultilingual',
994
+ propertyInDotNotation: false,
995
+ type: 'body',
996
+ value: '={{ $value }}'
997
+ }
998
+ },
999
+ displayOptions: {
1000
+ show: {
1001
+ resource: [
1002
+ 'translations'
1003
+ ],
1004
+ operation: [
1005
+ 'api.projects.bundles.post'
1006
+ ]
1007
+ }
1008
+ }
1009
+ },
1010
+ {
1011
+ displayName: 'Include Project Source Language',
1012
+ name: 'includeProjectSourceLanguage',
1013
+ type: 'boolean',
1014
+ default: false,
1015
+ description: 'Add project source language to bundle',
1016
+ routing: {
1017
+ send: {
1018
+ property: 'includeProjectSourceLanguage',
1019
+ propertyInDotNotation: false,
1020
+ type: 'body',
1021
+ value: '={{ $value }}'
1022
+ }
1023
+ },
1024
+ displayOptions: {
1025
+ show: {
1026
+ resource: [
1027
+ 'translations'
1028
+ ],
1029
+ operation: [
1030
+ 'api.projects.bundles.post'
1031
+ ]
1032
+ }
1033
+ }
1034
+ },
1035
+ {
1036
+ displayName: 'Source Language Export Pattern',
1037
+ name: 'sourceLanguageExportPattern',
1038
+ type: 'string',
1039
+ default: '',
1040
+ description: 'Source language export pattern. Works only when `includeProjectSourceLanguage` is enabled.\n\n__Note:__ Can\'t contain `: * ? " < > |` symbols',
1041
+ routing: {
1042
+ send: {
1043
+ property: 'sourceLanguageExportPattern',
1044
+ propertyInDotNotation: false,
1045
+ type: 'body',
1046
+ value: '={{ $value || undefined }}'
1047
+ }
1048
+ },
1049
+ displayOptions: {
1050
+ show: {
1051
+ resource: [
1052
+ 'translations'
1053
+ ],
1054
+ operation: [
1055
+ 'api.projects.bundles.post'
1056
+ ]
1057
+ }
1058
+ },
1059
+ placeholder: 'strings-%two_letter_code%.resx'
1060
+ },
1061
+ {
1062
+ displayName: 'Include In Context Pseudo Language',
1063
+ name: 'includeInContextPseudoLanguage',
1064
+ type: 'boolean',
1065
+ default: true,
1066
+ description: 'Add In-Context pseudo-language to bundle',
1067
+ routing: {
1068
+ send: {
1069
+ property: 'includeInContextPseudoLanguage',
1070
+ propertyInDotNotation: false,
1071
+ type: 'body',
1072
+ value: '={{ $value }}'
1073
+ }
1074
+ },
1075
+ displayOptions: {
1076
+ show: {
1077
+ resource: [
1078
+ 'translations'
1079
+ ],
1080
+ operation: [
1081
+ 'api.projects.bundles.post'
1082
+ ]
1083
+ }
1084
+ }
1085
+ },
1086
+ {
1087
+ displayName: 'Label Ids',
1088
+ name: 'labelIds',
1089
+ type: 'multiOptions',
1090
+ default: [],
1091
+ description: 'Label Identifiers. Get via [List Labels](#operation/api.projects.labels.getMany)\n\n__Note:__ Can\'t be used when `format` is `null`',
1092
+ routing: {
1093
+ send: {
1094
+ property: 'labelIds',
1095
+ propertyInDotNotation: false,
1096
+ type: 'body',
1097
+ value: '={{ $value }}'
1098
+ }
1099
+ },
1100
+ displayOptions: {
1101
+ show: {
1102
+ resource: [
1103
+ 'translations'
1104
+ ],
1105
+ operation: [
1106
+ 'api.projects.bundles.post'
1107
+ ]
1108
+ }
1109
+ },
1110
+ typeOptions: {
1111
+ loadOptionsMethod: 'getProjectLabelsMulti',
1112
+ loadOptionsDependsOn: [
1113
+ 'projectId'
1114
+ ]
1115
+ }
1116
+ },
1117
+ {
1118
+ displayName: 'Exclude Label Ids',
1119
+ name: 'excludeLabelIds',
1120
+ type: 'multiOptions',
1121
+ default: [],
1122
+ description: 'Label Identifiers. Get via [List Labels](#operation/api.projects.labels.getMany)\n\n__Note:__ Can\'t be used when `format` is `null`',
1123
+ routing: {
1124
+ send: {
1125
+ property: 'excludeLabelIds',
1126
+ propertyInDotNotation: false,
1127
+ type: 'body',
1128
+ value: '={{ $value }}'
1129
+ }
1130
+ },
1131
+ displayOptions: {
1132
+ show: {
1133
+ resource: [
1134
+ 'translations'
1135
+ ],
1136
+ operation: [
1137
+ 'api.projects.bundles.post'
1138
+ ]
1139
+ }
1140
+ },
1141
+ typeOptions: {
1142
+ loadOptionsMethod: 'getProjectLabelsMulti',
1143
+ loadOptionsDependsOn: [
1144
+ 'projectId'
1145
+ ]
1146
+ }
1147
+ },
1148
+ {
1149
+ displayName: 'Label Match Rule',
1150
+ name: 'labelMatchRule',
1151
+ type: 'options',
1152
+ default: '',
1153
+ description: 'Match rule for labels:\n- "all" - all labels must be present in string\n- "any" - any of the labels must be present in string\n\n __Note:__ Can only be used when `labelIds` parameter is provided',
1154
+ options: [
1155
+ {
1156
+ name: '-',
1157
+ value: ''
1158
+ },
1159
+ {
1160
+ name: 'all',
1161
+ value: 'all'
1162
+ },
1163
+ {
1164
+ name: 'any',
1165
+ value: 'any'
1166
+ }
1167
+ ],
1168
+ routing: {
1169
+ send: {
1170
+ property: 'labelMatchRule',
1171
+ propertyInDotNotation: false,
1172
+ type: 'body',
1173
+ value: '={{ $value || undefined }}'
1174
+ }
1175
+ },
1176
+ displayOptions: {
1177
+ show: {
1178
+ resource: [
1179
+ 'translations'
1180
+ ],
1181
+ operation: [
1182
+ 'api.projects.bundles.post'
1183
+ ]
1184
+ }
1185
+ }
1186
+ },
1187
+ {
1188
+ displayName: 'Exclude Label Match Rule',
1189
+ name: 'excludeLabelMatchRule',
1190
+ type: 'options',
1191
+ default: '',
1192
+ description: 'Match rule for excluded labels:\n - "all" - all labels must be present in string\n - "any" - any of the labels must be present in string\n\n __Note:__ Can only be used when `excludeLabelIds` parameter is provided',
1193
+ options: [
1194
+ {
1195
+ name: '-',
1196
+ value: ''
1197
+ },
1198
+ {
1199
+ name: 'all',
1200
+ value: 'all'
1201
+ },
1202
+ {
1203
+ name: 'any',
1204
+ value: 'any'
1205
+ }
1206
+ ],
1207
+ routing: {
1208
+ send: {
1209
+ property: 'excludeLabelMatchRule',
1210
+ propertyInDotNotation: false,
1211
+ type: 'body',
1212
+ value: '={{ $value || undefined }}'
1213
+ }
1214
+ },
1215
+ displayOptions: {
1216
+ show: {
1217
+ resource: [
1218
+ 'translations'
1219
+ ],
1220
+ operation: [
1221
+ 'api.projects.bundles.post'
1222
+ ]
1223
+ }
1224
+ }
1225
+ },
1226
+ {
1227
+ displayName: 'Language Ids',
1228
+ name: 'languageIds',
1229
+ type: 'multiOptions',
1230
+ default: [],
1231
+ description: 'Language Identifiers. Get via [List Supported Languages](#operation/api.languages.getMany). If provided, bundle will only export specified languages. If not provided, bundle will export all project target languages.',
1232
+ routing: {
1233
+ send: {
1234
+ property: 'languageIds',
1235
+ propertyInDotNotation: false,
1236
+ type: 'body',
1237
+ value: '={{ $value }}'
1238
+ }
1239
+ },
1240
+ displayOptions: {
1241
+ show: {
1242
+ resource: [
1243
+ 'translations'
1244
+ ],
1245
+ operation: [
1246
+ 'api.projects.bundles.post'
1247
+ ]
1248
+ }
1249
+ },
1250
+ typeOptions: {
1251
+ loadOptionsMethod: 'getLanguagesMulti'
1252
+ }
1253
+ },
1254
+ {
1255
+ displayName: 'Project Id',
1256
+ name: 'projectId',
1257
+ required: true,
1258
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
1259
+ default: '',
1260
+ type: 'options',
1261
+ displayOptions: {
1262
+ show: {
1263
+ resource: [
1264
+ 'translations'
1265
+ ],
1266
+ operation: [
1267
+ 'api.projects.bundles.get'
1268
+ ]
1269
+ }
1270
+ },
1271
+ typeOptions: {
1272
+ loadOptionsMethod: 'getProjects'
1273
+ }
1274
+ },
1275
+ {
1276
+ displayName: 'Bundle Id',
1277
+ name: 'bundleId',
1278
+ required: true,
1279
+ description: 'Bundle Identifier. Get via [List Bundles](#operation/api.projects.bundles.getMany)',
1280
+ default: '',
1281
+ type: 'options',
1282
+ displayOptions: {
1283
+ show: {
1284
+ resource: [
1285
+ 'translations'
1286
+ ],
1287
+ operation: [
1288
+ 'api.projects.bundles.get'
1289
+ ]
1290
+ }
1291
+ },
1292
+ typeOptions: {
1293
+ loadOptionsMethod: 'getProjectBundles',
1294
+ loadOptionsDependsOn: [
1295
+ 'projectId'
1296
+ ]
1297
+ }
1298
+ },
1299
+ {
1300
+ displayName: 'Project Id',
1301
+ name: 'projectId',
1302
+ required: true,
1303
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
1304
+ default: '',
1305
+ type: 'options',
1306
+ displayOptions: {
1307
+ show: {
1308
+ resource: [
1309
+ 'translations'
1310
+ ],
1311
+ operation: [
1312
+ 'api.projects.bundles.delete'
1313
+ ]
1314
+ }
1315
+ },
1316
+ typeOptions: {
1317
+ loadOptionsMethod: 'getProjects'
1318
+ }
1319
+ },
1320
+ {
1321
+ displayName: 'Bundle Id',
1322
+ name: 'bundleId',
1323
+ required: true,
1324
+ description: 'Bundle Identifier. Get via [List Bundles](#operation/api.projects.bundles.getMany)',
1325
+ default: '',
1326
+ type: 'options',
1327
+ displayOptions: {
1328
+ show: {
1329
+ resource: [
1330
+ 'translations'
1331
+ ],
1332
+ operation: [
1333
+ 'api.projects.bundles.delete'
1334
+ ]
1335
+ }
1336
+ },
1337
+ typeOptions: {
1338
+ loadOptionsMethod: 'getProjectBundles',
1339
+ loadOptionsDependsOn: [
1340
+ 'projectId'
1341
+ ]
1342
+ }
1343
+ },
1344
+ {
1345
+ displayName: 'Project Id',
1346
+ name: 'projectId',
1347
+ required: true,
1348
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
1349
+ default: '',
1350
+ type: 'options',
1351
+ displayOptions: {
1352
+ show: {
1353
+ resource: [
1354
+ 'translations'
1355
+ ],
1356
+ operation: [
1357
+ 'api.projects.bundles.patch'
1358
+ ]
1359
+ }
1360
+ },
1361
+ typeOptions: {
1362
+ loadOptionsMethod: 'getProjects'
1363
+ }
1364
+ },
1365
+ {
1366
+ displayName: 'Bundle Id',
1367
+ name: 'bundleId',
1368
+ required: true,
1369
+ description: 'Bundle Identifier. Get via [List Bundles](#operation/api.projects.bundles.getMany)',
1370
+ default: '',
1371
+ type: 'options',
1372
+ displayOptions: {
1373
+ show: {
1374
+ resource: [
1375
+ 'translations'
1376
+ ],
1377
+ operation: [
1378
+ 'api.projects.bundles.patch'
1379
+ ]
1380
+ }
1381
+ },
1382
+ typeOptions: {
1383
+ loadOptionsMethod: 'getProjectBundles',
1384
+ loadOptionsDependsOn: [
1385
+ 'projectId'
1386
+ ]
1387
+ }
1388
+ },
1389
+ {
1390
+ displayName: 'Project Id',
1391
+ name: 'projectId',
1392
+ required: true,
1393
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
1394
+ default: '',
1395
+ type: 'options',
1396
+ displayOptions: {
1397
+ show: {
1398
+ resource: [
1399
+ 'translations'
1400
+ ],
1401
+ operation: [
1402
+ 'api.projects.bundles.exports.download.get'
1403
+ ]
1404
+ }
1405
+ },
1406
+ typeOptions: {
1407
+ loadOptionsMethod: 'getProjects'
1408
+ }
1409
+ },
1410
+ {
1411
+ displayName: 'Bundle Id',
1412
+ name: 'bundleId',
1413
+ required: true,
1414
+ description: 'Bundle Identifier. Get via [List Bundles](#operation/api.projects.bundles.getMany)',
1415
+ default: '',
1416
+ type: 'options',
1417
+ displayOptions: {
1418
+ show: {
1419
+ resource: [
1420
+ 'translations'
1421
+ ],
1422
+ operation: [
1423
+ 'api.projects.bundles.exports.download.get'
1424
+ ]
1425
+ }
1426
+ },
1427
+ typeOptions: {
1428
+ loadOptionsMethod: 'getProjectBundles',
1429
+ loadOptionsDependsOn: [
1430
+ 'projectId'
1431
+ ]
1432
+ }
1433
+ },
1434
+ {
1435
+ displayName: 'Export Id',
1436
+ name: 'exportId',
1437
+ required: true,
1438
+ description: 'Export Identifier, consists of 36 characters. Get via [Export Bundle](#operation/api.projects.bundles.exports.post)',
1439
+ default: '',
1440
+ type: 'string',
1441
+ displayOptions: {
1442
+ show: {
1443
+ resource: [
1444
+ 'translations'
1445
+ ],
1446
+ operation: [
1447
+ 'api.projects.bundles.exports.download.get'
1448
+ ]
1449
+ }
1450
+ }
1451
+ },
1452
+ {
1453
+ displayName: 'Project Id',
1454
+ name: 'projectId',
1455
+ required: true,
1456
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
1457
+ default: '',
1458
+ type: 'options',
1459
+ displayOptions: {
1460
+ show: {
1461
+ resource: [
1462
+ 'translations'
1463
+ ],
1464
+ operation: [
1465
+ 'api.projects.bundles.exports.post'
1466
+ ]
1467
+ }
1468
+ },
1469
+ typeOptions: {
1470
+ loadOptionsMethod: 'getProjects'
1471
+ }
1472
+ },
1473
+ {
1474
+ displayName: 'Bundle Id',
1475
+ name: 'bundleId',
1476
+ required: true,
1477
+ description: 'Bundle Identifier. Get via [List Bundles](#operation/api.projects.bundles.getMany)',
1478
+ default: '',
1479
+ type: 'options',
1480
+ displayOptions: {
1481
+ show: {
1482
+ resource: [
1483
+ 'translations'
1484
+ ],
1485
+ operation: [
1486
+ 'api.projects.bundles.exports.post'
1487
+ ]
1488
+ }
1489
+ },
1490
+ typeOptions: {
1491
+ loadOptionsMethod: 'getProjectBundles',
1492
+ loadOptionsDependsOn: [
1493
+ 'projectId'
1494
+ ]
1495
+ }
1496
+ },
1497
+ {
1498
+ displayName: 'Target Language Ids',
1499
+ name: 'targetLanguageIds',
1500
+ type: 'multiOptions',
1501
+ default: [],
1502
+ description: 'Specify target languages for export. Get via [List Supported Languages](#operation/api.languages.getMany)\n\n * Leave this field empty to export all target languages',
1503
+ routing: {
1504
+ send: {
1505
+ property: 'targetLanguageIds',
1506
+ propertyInDotNotation: false,
1507
+ type: 'body',
1508
+ value: '={{ $value }}'
1509
+ }
1510
+ },
1511
+ displayOptions: {
1512
+ show: {
1513
+ resource: [
1514
+ 'translations'
1515
+ ],
1516
+ operation: [
1517
+ 'api.projects.bundles.exports.post'
1518
+ ]
1519
+ }
1520
+ },
1521
+ typeOptions: {
1522
+ loadOptionsMethod: 'getLanguagesMulti'
1523
+ }
1524
+ },
1525
+ {
1526
+ displayName: 'Skip Untranslated Strings',
1527
+ name: 'skipUntranslatedStrings',
1528
+ type: 'boolean',
1529
+ default: false,
1530
+ description: 'Defines whether to export only translated strings',
1531
+ routing: {
1532
+ send: {
1533
+ property: 'skipUntranslatedStrings',
1534
+ propertyInDotNotation: false,
1535
+ type: 'body',
1536
+ value: '={{ $value }}'
1537
+ }
1538
+ },
1539
+ displayOptions: {
1540
+ show: {
1541
+ resource: [
1542
+ 'translations'
1543
+ ],
1544
+ operation: [
1545
+ 'api.projects.bundles.exports.post'
1546
+ ]
1547
+ }
1548
+ }
1549
+ },
1550
+ {
1551
+ displayName: 'Export With Min Approvals Count',
1552
+ name: 'exportWithMinApprovalsCount',
1553
+ type: 'number',
1554
+ default: 0,
1555
+ description: 'Defines whether to export only strings with a minimum number of approvals\n\n__Note:__ value greater than `0` can\'t be used with `exportStringsThatPassedWorkflow=true` in same request',
1556
+ routing: {
1557
+ send: {
1558
+ property: 'exportWithMinApprovalsCount',
1559
+ propertyInDotNotation: false,
1560
+ type: 'body',
1561
+ value: '={{ $value !== 0 ? $value : undefined }}'
1562
+ }
1563
+ },
1564
+ displayOptions: {
1565
+ show: {
1566
+ resource: [
1567
+ 'translations'
1568
+ ],
1569
+ operation: [
1570
+ 'api.projects.bundles.exports.post'
1571
+ ]
1572
+ }
1573
+ },
1574
+ placeholder: '0'
1575
+ },
1576
+ {
1577
+ displayName: 'Export Strings That Passed Workflow',
1578
+ name: 'exportStringsThatPassedWorkflow',
1579
+ type: 'boolean',
1580
+ default: true,
1581
+ description: 'Defines whether to export only strings that passed workflow\n\n__Note:__ `true` value can\'t be used with `exportWithMinApprovalsCount > 0` in same request or in projects without an assigned workflow',
1582
+ routing: {
1583
+ send: {
1584
+ property: 'exportStringsThatPassedWorkflow',
1585
+ propertyInDotNotation: false,
1586
+ type: 'body',
1587
+ value: '={{ $value }}'
1588
+ }
1589
+ },
1590
+ displayOptions: {
1591
+ show: {
1592
+ resource: [
1593
+ 'translations'
1594
+ ],
1595
+ operation: [
1596
+ 'api.projects.bundles.exports.post'
1597
+ ]
1598
+ }
1599
+ }
1600
+ },
1601
+ {
1602
+ displayName: 'Project Id',
1603
+ name: 'projectId',
1604
+ required: true,
1605
+ description: 'Project Identifier. Get via [List Projects](#operation/api.projects.getMany)',
1606
+ default: '',
1607
+ type: 'options',
1608
+ displayOptions: {
1609
+ show: {
1610
+ resource: [
1611
+ 'translations'
1612
+ ],
1613
+ operation: [
1614
+ 'api.projects.bundles.exports.get'
1615
+ ]
1616
+ }
1617
+ },
1618
+ typeOptions: {
1619
+ loadOptionsMethod: 'getProjects'
1620
+ }
1621
+ },
1622
+ {
1623
+ displayName: 'Bundle Id',
1624
+ name: 'bundleId',
1625
+ required: true,
1626
+ description: 'Bundle Identifier. Get via [List Bundles](#operation/api.projects.bundles.getMany)',
1627
+ default: '',
1628
+ type: 'options',
1629
+ displayOptions: {
1630
+ show: {
1631
+ resource: [
1632
+ 'translations'
1633
+ ],
1634
+ operation: [
1635
+ 'api.projects.bundles.exports.get'
327
1636
  ]
328
1637
  }
1638
+ },
1639
+ typeOptions: {
1640
+ loadOptionsMethod: 'getProjectBundles',
1641
+ loadOptionsDependsOn: [
1642
+ 'projectId'
1643
+ ]
329
1644
  }
330
1645
  },
331
1646
  {
332
- displayName: 'GET /projects/{projectId}/translations/imports/{importTranslationId}/report',
333
- name: 'operation',
334
- type: 'notice',
335
- typeOptions: {
336
- theme: 'info'
337
- },
1647
+ displayName: 'Export Id',
1648
+ name: 'exportId',
1649
+ required: true,
1650
+ description: 'Export Identifier, consists of 36 characters. Get via [Export Bundle](#operation/api.projects.bundles.exports.post)',
338
1651
  default: '',
1652
+ type: 'string',
339
1653
  displayOptions: {
340
1654
  show: {
341
1655
  resource: [
342
1656
  'translations'
343
1657
  ],
344
1658
  operation: [
345
- 'api.projects.translations.imports.report.get'
1659
+ 'api.projects.bundles.exports.get'
346
1660
  ]
347
1661
  }
348
1662
  }
@@ -729,7 +2043,7 @@ exports.translationsProperties = [
729
2043
  name: 'skipApprovedTranslations',
730
2044
  type: 'boolean',
731
2045
  default: false,
732
- description: 'Skip approved translations. Default is `false`\n\n__Note:__ Works only with TM pre-translation method',
2046
+ description: 'Skip strings that already have approved translations. Default is `false`',
733
2047
  routing: {
734
2048
  send: {
735
2049
  property: 'skipApprovedTranslations',
@@ -750,14 +2064,126 @@ exports.translationsProperties = [
750
2064
  }
751
2065
  },
752
2066
  {
753
- displayName: 'Translate Untranslated Only',
754
- name: 'translateUntranslatedOnly',
2067
+ displayName: 'Scope',
2068
+ name: 'scope',
2069
+ type: 'options',
2070
+ default: '',
2071
+ description: 'Which strings to apply pre-translation to. Default is `untranslated`. Available values:\n- \'untranslated\' – strings without an existing translation (default)\n- \'translated\' – strings that already have a translation (re-translation)\n- \'all\' – both untranslated and translated strings\n\n__Note:__ Cannot be used together with the deprecated `translateUntranslatedOnly`.',
2072
+ options: [
2073
+ {
2074
+ name: '-',
2075
+ value: ''
2076
+ },
2077
+ {
2078
+ name: 'untranslated',
2079
+ value: 'untranslated'
2080
+ },
2081
+ {
2082
+ name: 'translated',
2083
+ value: 'translated'
2084
+ },
2085
+ {
2086
+ name: 'all',
2087
+ value: 'all'
2088
+ }
2089
+ ],
2090
+ routing: {
2091
+ send: {
2092
+ property: 'scope',
2093
+ propertyInDotNotation: false,
2094
+ type: 'body',
2095
+ value: '={{ $value || undefined }}'
2096
+ }
2097
+ },
2098
+ displayOptions: {
2099
+ show: {
2100
+ resource: [
2101
+ 'translations'
2102
+ ],
2103
+ operation: [
2104
+ 'api.projects.pre-translations.post'
2105
+ ]
2106
+ }
2107
+ }
2108
+ },
2109
+ {
2110
+ displayName: 'Translation Modified Before',
2111
+ name: 'dateTime:translationModifiedBefore',
2112
+ type: 'dateTime',
2113
+ default: '',
2114
+ description: 'Re-translates only if a string\'s current translation was modified prior to this date. Useful after modifying contextual resources like screenshots, style guides, or glossaries.\n\n__Note:__ Has effect when `scope` is `translated` or `all`.',
2115
+ routing: {
2116
+ send: {
2117
+ property: 'translationModifiedBefore',
2118
+ propertyInDotNotation: false,
2119
+ type: 'body',
2120
+ value: '={{ $value || undefined }}'
2121
+ }
2122
+ },
2123
+ displayOptions: {
2124
+ show: {
2125
+ resource: [
2126
+ 'translations'
2127
+ ],
2128
+ operation: [
2129
+ 'api.projects.pre-translations.post'
2130
+ ]
2131
+ }
2132
+ },
2133
+ placeholder: '2026-01-01T00:00:00+00:00'
2134
+ },
2135
+ {
2136
+ displayName: 'Replace Translations Option',
2137
+ name: 'replaceTranslationsOption',
2138
+ type: 'options',
2139
+ default: '',
2140
+ description: 'Defines whether to replace existing translations with new pre-translations. Default is `none`. Available values:\n- \'none\' – add the new translation alongside existing ones (default)\n- \'autoTranslated\' – replace auto-generated translations (TM, MT, AI). Human translations are kept\n- \'all\' – replace all existing translations\n\n__Note:__ Has effect when `scope` is `translated` or `all`.',
2141
+ options: [
2142
+ {
2143
+ name: '-',
2144
+ value: ''
2145
+ },
2146
+ {
2147
+ name: 'none',
2148
+ value: 'none'
2149
+ },
2150
+ {
2151
+ name: 'autoTranslated',
2152
+ value: 'autoTranslated'
2153
+ },
2154
+ {
2155
+ name: 'all',
2156
+ value: 'all'
2157
+ }
2158
+ ],
2159
+ routing: {
2160
+ send: {
2161
+ property: 'replaceTranslationsOption',
2162
+ propertyInDotNotation: false,
2163
+ type: 'body',
2164
+ value: '={{ $value || undefined }}'
2165
+ }
2166
+ },
2167
+ displayOptions: {
2168
+ show: {
2169
+ resource: [
2170
+ 'translations'
2171
+ ],
2172
+ operation: [
2173
+ 'api.projects.pre-translations.post'
2174
+ ]
2175
+ }
2176
+ }
2177
+ },
2178
+ {
2179
+ displayName: 'Reset Approval Status',
2180
+ name: 'resetApprovalStatus',
755
2181
  type: 'boolean',
756
- default: true,
757
- description: 'Applies pre-translation for untranslated strings only. Default is `true`',
2182
+ default: false,
2183
+ description: 'Removes approval on existing translations when applying pre-translations. Default is `false`.\n\n__Note:__ Cannot be used together with `autoApproveOption`. Has effect when `scope` is `translated` or `all`.',
758
2184
  routing: {
759
2185
  send: {
760
- property: 'translateUntranslatedOnly',
2186
+ property: 'resetApprovalStatus',
761
2187
  propertyInDotNotation: false,
762
2188
  type: 'body',
763
2189
  value: '={{ $value }}'
@@ -934,6 +2360,31 @@ exports.translationsProperties = [
934
2360
  ]
935
2361
  }
936
2362
  },
2363
+ {
2364
+ displayName: 'Custom Instruction',
2365
+ name: 'customInstruction',
2366
+ type: 'string',
2367
+ default: '',
2368
+ description: 'Custom instruction for AI pre-translation. This instruction will be appended to the AI prompt text.\n\n__Note:__ Available only for AI pre-translation method',
2369
+ routing: {
2370
+ send: {
2371
+ property: 'customInstruction',
2372
+ propertyInDotNotation: false,
2373
+ type: 'body',
2374
+ value: '={{ $value || undefined }}'
2375
+ }
2376
+ },
2377
+ displayOptions: {
2378
+ show: {
2379
+ resource: [
2380
+ 'translations'
2381
+ ],
2382
+ operation: [
2383
+ 'api.projects.pre-translations.post'
2384
+ ]
2385
+ }
2386
+ }
2387
+ },
937
2388
  {
938
2389
  displayName: 'Project Id',
939
2390
  name: 'projectId',
@@ -1771,6 +3222,192 @@ exports.translationsProperties = [
1771
3222
  }
1772
3223
  }
1773
3224
  },
3225
+ {
3226
+ displayName: 'Update Fields',
3227
+ name: 'updateFields',
3228
+ type: 'collection',
3229
+ placeholder: 'Add Field',
3230
+ default: {},
3231
+ displayOptions: {
3232
+ show: {
3233
+ resource: [
3234
+ 'translations'
3235
+ ],
3236
+ operation: [
3237
+ 'api.projects.bundles.patch'
3238
+ ]
3239
+ }
3240
+ },
3241
+ options: [
3242
+ {
3243
+ displayName: 'Name',
3244
+ name: 'name',
3245
+ type: 'string',
3246
+ default: '',
3247
+ description: 'Defines name',
3248
+ placeholder: 'Resx bundle'
3249
+ },
3250
+ {
3251
+ displayName: 'Format',
3252
+ name: 'format',
3253
+ type: 'string',
3254
+ default: '',
3255
+ description: 'Defines export file format. If not provided, files will be exported in their original format.\n\n__Note:__ Required for strings-based projects',
3256
+ placeholder: 'crowdin-resx'
3257
+ },
3258
+ {
3259
+ displayName: 'Source Patterns',
3260
+ name: 'sourcePatterns',
3261
+ type: 'fixedCollection',
3262
+ default: {},
3263
+ typeOptions: {
3264
+ multipleValues: true
3265
+ },
3266
+ placeholder: 'Add Item',
3267
+ options: [
3268
+ {
3269
+ name: 'items',
3270
+ displayName: 'Items',
3271
+ values: [
3272
+ {
3273
+ displayName: 'Value',
3274
+ name: '_value',
3275
+ type: 'string',
3276
+ default: ''
3277
+ }
3278
+ ]
3279
+ }
3280
+ ]
3281
+ },
3282
+ {
3283
+ displayName: 'Ignore Patterns',
3284
+ name: 'ignorePatterns',
3285
+ type: 'fixedCollection',
3286
+ default: {},
3287
+ typeOptions: {
3288
+ multipleValues: true
3289
+ },
3290
+ placeholder: 'Add Item',
3291
+ options: [
3292
+ {
3293
+ name: 'items',
3294
+ displayName: 'Items',
3295
+ values: [
3296
+ {
3297
+ displayName: 'Value',
3298
+ name: '_value',
3299
+ type: 'string',
3300
+ default: ''
3301
+ }
3302
+ ]
3303
+ }
3304
+ ]
3305
+ },
3306
+ {
3307
+ displayName: 'Export Pattern',
3308
+ name: 'exportPattern',
3309
+ type: 'string',
3310
+ default: '',
3311
+ description: 'Bundle export pattern. Defines bundle name in resulting translations bundle. **Required** if `format` is specified. If `format` is not specified, uses default pattern based on file structure\n\n__Note:__ Can\'t contain `: * ? " < > |` symbols',
3312
+ placeholder: 'strings-%two_letter_code%.resx'
3313
+ },
3314
+ {
3315
+ displayName: 'Is Multilingual',
3316
+ name: 'isMultilingual',
3317
+ type: 'boolean',
3318
+ default: false,
3319
+ description: 'Export translations in multilingual file'
3320
+ },
3321
+ {
3322
+ displayName: 'Include Project Source Language',
3323
+ name: 'includeProjectSourceLanguage',
3324
+ type: 'boolean',
3325
+ default: false,
3326
+ description: 'Add project source language to bundle'
3327
+ },
3328
+ {
3329
+ displayName: 'Include In Context Pseudo Language',
3330
+ name: 'includeInContextPseudoLanguage',
3331
+ type: 'boolean',
3332
+ default: true,
3333
+ description: 'Add In-Context pseudo-language to bundle'
3334
+ },
3335
+ {
3336
+ displayName: 'Label Ids',
3337
+ name: 'labelIds',
3338
+ type: 'multiOptions',
3339
+ default: [],
3340
+ description: 'Label Identifiers. Get via [List Labels](#operation/api.projects.labels.getMany)\n\n__Note:__ Can\'t be used when `format` is `null`',
3341
+ typeOptions: {
3342
+ loadOptionsMethod: 'getProjectLabelsMulti',
3343
+ loadOptionsDependsOn: [
3344
+ 'projectId'
3345
+ ]
3346
+ }
3347
+ },
3348
+ {
3349
+ displayName: 'Exclude Label Ids',
3350
+ name: 'excludeLabelIds',
3351
+ type: 'multiOptions',
3352
+ default: [],
3353
+ description: 'Label Identifiers. Get via [List Labels](#operation/api.projects.labels.getMany)\n\n__Note:__ Can\'t be used when `format` is `null`',
3354
+ typeOptions: {
3355
+ loadOptionsMethod: 'getProjectLabelsMulti',
3356
+ loadOptionsDependsOn: [
3357
+ 'projectId'
3358
+ ]
3359
+ }
3360
+ },
3361
+ {
3362
+ displayName: 'Label Match Rule',
3363
+ name: 'labelMatchRule',
3364
+ type: 'options',
3365
+ default: '',
3366
+ description: 'Match rule for labels:\n- "all" - all labels must be present in string\n- "any" - any of the labels must be present in string\n\n __Note:__ Can only be used when `labelIds` parameter is provided',
3367
+ options: [
3368
+ {
3369
+ name: '-',
3370
+ value: ''
3371
+ },
3372
+ {
3373
+ name: 'all',
3374
+ value: 'all'
3375
+ },
3376
+ {
3377
+ name: 'any',
3378
+ value: 'any'
3379
+ }
3380
+ ]
3381
+ },
3382
+ {
3383
+ displayName: 'Exclude Label Match Rule',
3384
+ name: 'excludeLabelMatchRule',
3385
+ type: 'options',
3386
+ default: '',
3387
+ description: 'Match rule for excluded labels:\n - "all" - all labels must be present in string\n - "any" - any of the labels must be present in string\n\n __Note:__ Can only be used when `excludeLabelIds` parameter is provided',
3388
+ options: [
3389
+ {
3390
+ name: '-',
3391
+ value: ''
3392
+ },
3393
+ {
3394
+ name: 'all',
3395
+ value: 'all'
3396
+ },
3397
+ {
3398
+ name: 'any',
3399
+ value: 'any'
3400
+ }
3401
+ ]
3402
+ }
3403
+ ],
3404
+ routing: {
3405
+ send: {
3406
+ type: 'body',
3407
+ value: '={{ $value }}'
3408
+ }
3409
+ }
3410
+ },
1774
3411
  {
1775
3412
  displayName: 'Update Fields',
1776
3413
  name: 'updateFields',
@@ -1854,6 +3491,40 @@ exports.translationsProperties = [
1854
3491
  }
1855
3492
  }
1856
3493
  },
3494
+ {
3495
+ displayName: 'Return All',
3496
+ name: 'returnAll',
3497
+ type: 'boolean',
3498
+ default: true,
3499
+ description: 'Whether to return all results or only up to a given limit',
3500
+ displayOptions: {
3501
+ show: {
3502
+ resource: [
3503
+ 'translations'
3504
+ ],
3505
+ operation: [
3506
+ 'api.projects.bundles.branches.getMany'
3507
+ ]
3508
+ }
3509
+ }
3510
+ },
3511
+ {
3512
+ displayName: 'Return All',
3513
+ name: 'returnAll',
3514
+ type: 'boolean',
3515
+ default: true,
3516
+ description: 'Whether to return all results or only up to a given limit',
3517
+ displayOptions: {
3518
+ show: {
3519
+ resource: [
3520
+ 'translations'
3521
+ ],
3522
+ operation: [
3523
+ 'api.projects.bundles.getMany'
3524
+ ]
3525
+ }
3526
+ }
3527
+ },
1857
3528
  {
1858
3529
  displayName: 'Return All',
1859
3530
  name: 'returnAll',