@verbatra/sdk 0.11.1 → 0.12.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.
@@ -0,0 +1,921 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://verbatra.kreitz-webdev.de/schema/v1/config.json",
4
+ "title": "verbatra config",
5
+ "type": "object",
6
+ "properties": {
7
+ "$schema": {
8
+ "type": "string"
9
+ },
10
+ "sourceLocale": {
11
+ "type": "string",
12
+ "minLength": 1,
13
+ "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z]{4})?(?:-(?:[A-Za-z]{2}|[0-9]{3}))?(?:-(?:[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(?:-[0-9A-WYZa-wyz](?:-[A-Za-z0-9]{2,8})+)*(?:-[Xx](?:-[A-Za-z0-9]{1,8})+)?$"
14
+ },
15
+ "targetLocales": {
16
+ "minItems": 1,
17
+ "type": "array",
18
+ "items": {
19
+ "type": "string",
20
+ "minLength": 1,
21
+ "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z]{4})?(?:-(?:[A-Za-z]{2}|[0-9]{3}))?(?:-(?:[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(?:-[0-9A-WYZa-wyz](?:-[A-Za-z0-9]{2,8})+)*(?:-[Xx](?:-[A-Za-z0-9]{1,8})+)?$"
22
+ }
23
+ },
24
+ "format": {
25
+ "anyOf": [
26
+ {
27
+ "type": "string",
28
+ "enum": [
29
+ "i18next-json",
30
+ "vue-i18n-json",
31
+ "next-intl-json",
32
+ "ngx-translate-json",
33
+ "xliff",
34
+ "yaml",
35
+ "arb",
36
+ "properties",
37
+ "apple-strings",
38
+ "apple-xcstrings",
39
+ "android-xml",
40
+ "gettext-po",
41
+ "ini",
42
+ "resx"
43
+ ]
44
+ },
45
+ {
46
+ "type": "string",
47
+ "pattern": "^custom:[a-z0-9]+(?:-[a-z0-9]+)*$"
48
+ }
49
+ ]
50
+ },
51
+ "files": {
52
+ "type": "object",
53
+ "properties": {
54
+ "pattern": {
55
+ "type": "string",
56
+ "minLength": 1,
57
+ "pattern": "\\{locale\\}"
58
+ },
59
+ "localeStyle": {
60
+ "type": "string",
61
+ "enum": [
62
+ "literal",
63
+ "posix",
64
+ "android"
65
+ ]
66
+ }
67
+ },
68
+ "required": [
69
+ "pattern"
70
+ ],
71
+ "additionalProperties": false
72
+ },
73
+ "provider": {
74
+ "oneOf": [
75
+ {
76
+ "type": "object",
77
+ "properties": {
78
+ "id": {
79
+ "type": "string",
80
+ "const": "anthropic"
81
+ },
82
+ "options": {
83
+ "type": "object",
84
+ "properties": {
85
+ "model": {
86
+ "type": "string",
87
+ "minLength": 1
88
+ },
89
+ "maxTokens": {
90
+ "type": "integer",
91
+ "exclusiveMinimum": 0,
92
+ "maximum": 9007199254740991
93
+ },
94
+ "requestTimeoutMs": {
95
+ "type": "integer",
96
+ "exclusiveMinimum": 0,
97
+ "maximum": 9007199254740991
98
+ },
99
+ "localeMap": {
100
+ "type": "object",
101
+ "propertyNames": {
102
+ "type": "string",
103
+ "minLength": 1
104
+ },
105
+ "additionalProperties": {
106
+ "type": "string",
107
+ "minLength": 1,
108
+ "maxLength": 64
109
+ }
110
+ }
111
+ },
112
+ "required": [
113
+ "model",
114
+ "maxTokens"
115
+ ],
116
+ "additionalProperties": false
117
+ }
118
+ },
119
+ "required": [
120
+ "id",
121
+ "options"
122
+ ],
123
+ "additionalProperties": false
124
+ },
125
+ {
126
+ "type": "object",
127
+ "properties": {
128
+ "id": {
129
+ "type": "string",
130
+ "const": "openai"
131
+ },
132
+ "options": {
133
+ "type": "object",
134
+ "properties": {
135
+ "model": {
136
+ "type": "string",
137
+ "minLength": 1
138
+ },
139
+ "maxOutputTokens": {
140
+ "type": "integer",
141
+ "exclusiveMinimum": 0,
142
+ "maximum": 9007199254740991
143
+ },
144
+ "requestTimeoutMs": {
145
+ "type": "integer",
146
+ "exclusiveMinimum": 0,
147
+ "maximum": 9007199254740991
148
+ },
149
+ "localeMap": {
150
+ "type": "object",
151
+ "propertyNames": {
152
+ "type": "string",
153
+ "minLength": 1
154
+ },
155
+ "additionalProperties": {
156
+ "type": "string",
157
+ "minLength": 1,
158
+ "maxLength": 64
159
+ }
160
+ }
161
+ },
162
+ "required": [
163
+ "model",
164
+ "maxOutputTokens"
165
+ ],
166
+ "additionalProperties": false
167
+ }
168
+ },
169
+ "required": [
170
+ "id",
171
+ "options"
172
+ ],
173
+ "additionalProperties": false
174
+ },
175
+ {
176
+ "type": "object",
177
+ "properties": {
178
+ "id": {
179
+ "type": "string",
180
+ "const": "gemini"
181
+ },
182
+ "options": {
183
+ "type": "object",
184
+ "properties": {
185
+ "model": {
186
+ "type": "string",
187
+ "minLength": 1
188
+ },
189
+ "maxOutputTokens": {
190
+ "type": "integer",
191
+ "exclusiveMinimum": 0,
192
+ "maximum": 9007199254740991
193
+ },
194
+ "requestTimeoutMs": {
195
+ "type": "integer",
196
+ "exclusiveMinimum": 0,
197
+ "maximum": 9007199254740991
198
+ },
199
+ "localeMap": {
200
+ "type": "object",
201
+ "propertyNames": {
202
+ "type": "string",
203
+ "minLength": 1
204
+ },
205
+ "additionalProperties": {
206
+ "type": "string",
207
+ "minLength": 1,
208
+ "maxLength": 64
209
+ }
210
+ }
211
+ },
212
+ "required": [
213
+ "model",
214
+ "maxOutputTokens"
215
+ ],
216
+ "additionalProperties": false
217
+ }
218
+ },
219
+ "required": [
220
+ "id",
221
+ "options"
222
+ ],
223
+ "additionalProperties": false
224
+ },
225
+ {
226
+ "type": "object",
227
+ "properties": {
228
+ "id": {
229
+ "type": "string",
230
+ "const": "deepl"
231
+ },
232
+ "options": {
233
+ "type": "object",
234
+ "properties": {
235
+ "glossaryId": {
236
+ "type": "string",
237
+ "minLength": 1
238
+ },
239
+ "requestTimeoutMs": {
240
+ "type": "integer",
241
+ "exclusiveMinimum": 0,
242
+ "maximum": 9007199254740991
243
+ },
244
+ "localeMap": {
245
+ "type": "object",
246
+ "propertyNames": {
247
+ "type": "string",
248
+ "minLength": 1
249
+ },
250
+ "additionalProperties": {
251
+ "type": "string",
252
+ "minLength": 1,
253
+ "maxLength": 64
254
+ }
255
+ }
256
+ },
257
+ "additionalProperties": false
258
+ }
259
+ },
260
+ "required": [
261
+ "id",
262
+ "options"
263
+ ],
264
+ "additionalProperties": false
265
+ },
266
+ {
267
+ "type": "object",
268
+ "properties": {
269
+ "id": {
270
+ "type": "string",
271
+ "const": "google-translate"
272
+ },
273
+ "options": {
274
+ "type": "object",
275
+ "properties": {
276
+ "requestTimeoutMs": {
277
+ "type": "integer",
278
+ "exclusiveMinimum": 0,
279
+ "maximum": 9007199254740991
280
+ },
281
+ "localeMap": {
282
+ "type": "object",
283
+ "propertyNames": {
284
+ "type": "string",
285
+ "minLength": 1
286
+ },
287
+ "additionalProperties": {
288
+ "type": "string",
289
+ "minLength": 1,
290
+ "maxLength": 64
291
+ }
292
+ }
293
+ },
294
+ "additionalProperties": false
295
+ }
296
+ },
297
+ "required": [
298
+ "id",
299
+ "options"
300
+ ],
301
+ "additionalProperties": false
302
+ },
303
+ {
304
+ "type": "object",
305
+ "properties": {
306
+ "id": {
307
+ "type": "string",
308
+ "const": "opencode"
309
+ },
310
+ "options": {
311
+ "type": "object",
312
+ "properties": {
313
+ "model": {
314
+ "type": "string",
315
+ "minLength": 1
316
+ },
317
+ "maxOutputTokens": {
318
+ "type": "integer",
319
+ "exclusiveMinimum": 0,
320
+ "maximum": 9007199254740991
321
+ },
322
+ "requestTimeoutMs": {
323
+ "type": "integer",
324
+ "exclusiveMinimum": 0,
325
+ "maximum": 9007199254740991
326
+ },
327
+ "localeMap": {
328
+ "type": "object",
329
+ "propertyNames": {
330
+ "type": "string",
331
+ "minLength": 1
332
+ },
333
+ "additionalProperties": {
334
+ "type": "string",
335
+ "minLength": 1,
336
+ "maxLength": 64
337
+ }
338
+ }
339
+ },
340
+ "required": [
341
+ "model",
342
+ "maxOutputTokens"
343
+ ],
344
+ "additionalProperties": false
345
+ }
346
+ },
347
+ "required": [
348
+ "id",
349
+ "options"
350
+ ],
351
+ "additionalProperties": false
352
+ },
353
+ {
354
+ "type": "object",
355
+ "properties": {
356
+ "id": {
357
+ "type": "string",
358
+ "const": "openai-compatible"
359
+ },
360
+ "options": {
361
+ "type": "object",
362
+ "properties": {
363
+ "baseUrl": {
364
+ "type": "string",
365
+ "pattern": "^https?:\\/\\/"
366
+ },
367
+ "model": {
368
+ "type": "string",
369
+ "minLength": 1
370
+ },
371
+ "maxOutputTokens": {
372
+ "type": "integer",
373
+ "exclusiveMinimum": 0,
374
+ "maximum": 9007199254740991
375
+ },
376
+ "apiKeyEnvVar": {
377
+ "type": "string",
378
+ "minLength": 1
379
+ },
380
+ "requestTimeoutMs": {
381
+ "type": "integer",
382
+ "exclusiveMinimum": 0,
383
+ "maximum": 9007199254740991
384
+ },
385
+ "localeMap": {
386
+ "type": "object",
387
+ "propertyNames": {
388
+ "type": "string",
389
+ "minLength": 1
390
+ },
391
+ "additionalProperties": {
392
+ "type": "string",
393
+ "minLength": 1,
394
+ "maxLength": 64
395
+ }
396
+ }
397
+ },
398
+ "required": [
399
+ "baseUrl",
400
+ "model",
401
+ "maxOutputTokens"
402
+ ],
403
+ "additionalProperties": false
404
+ }
405
+ },
406
+ "required": [
407
+ "id",
408
+ "options"
409
+ ],
410
+ "additionalProperties": false
411
+ },
412
+ {
413
+ "type": "object",
414
+ "properties": {
415
+ "id": {
416
+ "type": "string",
417
+ "const": "libretranslate"
418
+ },
419
+ "options": {
420
+ "type": "object",
421
+ "properties": {
422
+ "baseUrl": {
423
+ "type": "string",
424
+ "pattern": "^https?:\\/\\/"
425
+ },
426
+ "requestTimeoutMs": {
427
+ "type": "integer",
428
+ "exclusiveMinimum": 0,
429
+ "maximum": 9007199254740991
430
+ },
431
+ "localeMap": {
432
+ "type": "object",
433
+ "propertyNames": {
434
+ "type": "string",
435
+ "minLength": 1
436
+ },
437
+ "additionalProperties": {
438
+ "type": "string",
439
+ "minLength": 1,
440
+ "maxLength": 64
441
+ }
442
+ }
443
+ },
444
+ "required": [
445
+ "baseUrl"
446
+ ],
447
+ "additionalProperties": false
448
+ }
449
+ },
450
+ "required": [
451
+ "id",
452
+ "options"
453
+ ],
454
+ "additionalProperties": false
455
+ },
456
+ {
457
+ "type": "object",
458
+ "properties": {
459
+ "id": {
460
+ "type": "string",
461
+ "const": "none"
462
+ },
463
+ "options": {
464
+ "default": {},
465
+ "type": "object",
466
+ "properties": {},
467
+ "additionalProperties": false
468
+ }
469
+ },
470
+ "required": [
471
+ "id"
472
+ ],
473
+ "additionalProperties": false
474
+ }
475
+ ]
476
+ },
477
+ "glossary": {
478
+ "anyOf": [
479
+ {
480
+ "type": "string",
481
+ "minLength": 1
482
+ },
483
+ {
484
+ "type": "object",
485
+ "properties": {
486
+ "version": {
487
+ "type": "number",
488
+ "const": 2
489
+ },
490
+ "terms": {
491
+ "type": "array",
492
+ "items": {
493
+ "type": "object",
494
+ "properties": {
495
+ "source": {
496
+ "type": "string",
497
+ "maxLength": 200,
498
+ "pattern": "\\S"
499
+ },
500
+ "target": {
501
+ "type": "string",
502
+ "maxLength": 2000,
503
+ "pattern": "\\S"
504
+ },
505
+ "targets": {
506
+ "type": "object",
507
+ "propertyNames": {
508
+ "type": "string",
509
+ "minLength": 1,
510
+ "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z]{4})?(?:-(?:[A-Za-z]{2}|[0-9]{3}))?(?:-(?:[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(?:-[0-9A-WYZa-wyz](?:-[A-Za-z0-9]{2,8})+)*(?:-[Xx](?:-[A-Za-z0-9]{1,8})+)?$"
511
+ },
512
+ "additionalProperties": {
513
+ "type": "string",
514
+ "maxLength": 2000,
515
+ "pattern": "\\S"
516
+ }
517
+ },
518
+ "forbidden": {
519
+ "type": "object",
520
+ "propertyNames": {
521
+ "type": "string",
522
+ "minLength": 1,
523
+ "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z]{4})?(?:-(?:[A-Za-z]{2}|[0-9]{3}))?(?:-(?:[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(?:-[0-9A-WYZa-wyz](?:-[A-Za-z0-9]{2,8})+)*(?:-[Xx](?:-[A-Za-z0-9]{1,8})+)?$"
524
+ },
525
+ "additionalProperties": {
526
+ "minItems": 1,
527
+ "type": "array",
528
+ "items": {
529
+ "type": "string",
530
+ "maxLength": 2000,
531
+ "pattern": "\\S"
532
+ }
533
+ }
534
+ },
535
+ "caseSensitive": {
536
+ "type": "boolean"
537
+ },
538
+ "note": {
539
+ "type": "string",
540
+ "maxLength": 500,
541
+ "pattern": "\\S"
542
+ },
543
+ "partOfSpeech": {
544
+ "type": "string",
545
+ "maxLength": 50,
546
+ "pattern": "\\S"
547
+ }
548
+ },
549
+ "required": [
550
+ "source"
551
+ ],
552
+ "additionalProperties": false
553
+ }
554
+ },
555
+ "doNotTranslate": {
556
+ "type": "array",
557
+ "items": {
558
+ "anyOf": [
559
+ {
560
+ "type": "string",
561
+ "maxLength": 200,
562
+ "pattern": "\\S"
563
+ },
564
+ {
565
+ "type": "object",
566
+ "properties": {
567
+ "term": {
568
+ "type": "string",
569
+ "maxLength": 200,
570
+ "pattern": "\\S"
571
+ },
572
+ "caseSensitive": {
573
+ "type": "boolean"
574
+ }
575
+ },
576
+ "required": [
577
+ "term"
578
+ ],
579
+ "additionalProperties": false
580
+ }
581
+ ]
582
+ }
583
+ }
584
+ },
585
+ "required": [
586
+ "version",
587
+ "terms"
588
+ ],
589
+ "additionalProperties": false
590
+ },
591
+ {
592
+ "type": "object",
593
+ "propertyNames": {
594
+ "type": "string"
595
+ },
596
+ "additionalProperties": {
597
+ "type": "string"
598
+ }
599
+ }
600
+ ]
601
+ },
602
+ "tone": {
603
+ "type": "string",
604
+ "enum": [
605
+ "formal",
606
+ "informal",
607
+ "neutral"
608
+ ]
609
+ },
610
+ "prune": {
611
+ "type": "boolean"
612
+ },
613
+ "generatePlurals": {
614
+ "type": "boolean"
615
+ },
616
+ "fuzzyCache": {
617
+ "type": "object",
618
+ "properties": {
619
+ "enabled": {
620
+ "type": "boolean"
621
+ },
622
+ "threshold": {
623
+ "type": "number",
624
+ "minimum": 0.5,
625
+ "maximum": 1
626
+ }
627
+ },
628
+ "required": [
629
+ "enabled"
630
+ ],
631
+ "additionalProperties": false
632
+ },
633
+ "maxBatchSize": {
634
+ "type": "integer",
635
+ "exclusiveMinimum": 0,
636
+ "maximum": 9007199254740991
637
+ },
638
+ "maxLength": {
639
+ "type": "object",
640
+ "propertyNames": {
641
+ "type": "string",
642
+ "minLength": 1
643
+ },
644
+ "additionalProperties": {
645
+ "type": "integer",
646
+ "exclusiveMinimum": 0,
647
+ "maximum": 9007199254740991
648
+ }
649
+ },
650
+ "maxTokens": {
651
+ "type": "integer",
652
+ "exclusiveMinimum": 0,
653
+ "maximum": 9007199254740991
654
+ },
655
+ "budgetBehavior": {
656
+ "type": "string",
657
+ "enum": [
658
+ "warn",
659
+ "stop"
660
+ ]
661
+ },
662
+ "rates": {
663
+ "type": "object",
664
+ "properties": {
665
+ "asOf": {
666
+ "type": "string",
667
+ "format": "date",
668
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
669
+ },
670
+ "currency": {
671
+ "type": "string",
672
+ "pattern": "^[A-Z]{3}$"
673
+ },
674
+ "table": {
675
+ "type": "object",
676
+ "propertyNames": {
677
+ "type": "string",
678
+ "minLength": 1
679
+ },
680
+ "additionalProperties": {
681
+ "anyOf": [
682
+ {
683
+ "type": "object",
684
+ "properties": {
685
+ "inputPerMillionTokens": {
686
+ "type": "number",
687
+ "minimum": 0,
688
+ "maximum": 1000000000
689
+ },
690
+ "outputPerMillionTokens": {
691
+ "type": "number",
692
+ "minimum": 0,
693
+ "maximum": 1000000000
694
+ }
695
+ },
696
+ "required": [
697
+ "inputPerMillionTokens",
698
+ "outputPerMillionTokens"
699
+ ],
700
+ "additionalProperties": false
701
+ },
702
+ {
703
+ "type": "object",
704
+ "properties": {
705
+ "perMillionCharacters": {
706
+ "type": "number",
707
+ "minimum": 0,
708
+ "maximum": 1000000000
709
+ }
710
+ },
711
+ "required": [
712
+ "perMillionCharacters"
713
+ ],
714
+ "additionalProperties": false
715
+ }
716
+ ]
717
+ }
718
+ }
719
+ },
720
+ "required": [
721
+ "asOf",
722
+ "currency",
723
+ "table"
724
+ ],
725
+ "additionalProperties": false
726
+ },
727
+ "extract": {
728
+ "type": "object",
729
+ "properties": {
730
+ "framework": {
731
+ "type": "string",
732
+ "enum": [
733
+ "i18next"
734
+ ]
735
+ },
736
+ "roots": {
737
+ "minItems": 1,
738
+ "type": "array",
739
+ "items": {
740
+ "type": "string",
741
+ "minLength": 1
742
+ }
743
+ },
744
+ "exclude": {
745
+ "type": "array",
746
+ "items": {
747
+ "type": "string",
748
+ "minLength": 1
749
+ }
750
+ },
751
+ "literals": {
752
+ "type": "object",
753
+ "properties": {
754
+ "ignore": {
755
+ "type": "array",
756
+ "items": {
757
+ "type": "string",
758
+ "minLength": 1
759
+ }
760
+ }
761
+ },
762
+ "additionalProperties": false
763
+ },
764
+ "unused": {
765
+ "type": "object",
766
+ "properties": {
767
+ "ignore": {
768
+ "type": "array",
769
+ "items": {
770
+ "type": "string",
771
+ "minLength": 1
772
+ }
773
+ }
774
+ },
775
+ "additionalProperties": false
776
+ }
777
+ },
778
+ "required": [
779
+ "framework",
780
+ "roots"
781
+ ],
782
+ "additionalProperties": false
783
+ },
784
+ "humanEdits": {
785
+ "type": "string",
786
+ "enum": [
787
+ "protect",
788
+ "suggest",
789
+ "overwrite"
790
+ ]
791
+ },
792
+ "pinnedKeys": {
793
+ "type": "array",
794
+ "items": {
795
+ "type": "string",
796
+ "minLength": 1
797
+ }
798
+ },
799
+ "network": {
800
+ "oneOf": [
801
+ {
802
+ "type": "object",
803
+ "properties": {
804
+ "policy": {
805
+ "type": "string",
806
+ "const": "any"
807
+ },
808
+ "allowedHosts": {
809
+ "type": "array",
810
+ "items": {
811
+ "type": "string",
812
+ "pattern": "^(?:(?:\\*\\.[a-zA-Z0-9_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?(?:\\.[a-zA-Z0-9_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?)+|[a-zA-Z0-9_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?(?:\\.[a-zA-Z0-9_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?)*)\\.?|[0-9a-fA-F.]*:[0-9a-fA-F:.]*(?:\\/\\d{1,3})?|\\d{1,3}(?:\\.\\d{1,3}){3}(?:\\/\\d{1,2})?)$"
813
+ }
814
+ }
815
+ },
816
+ "required": [
817
+ "policy"
818
+ ],
819
+ "additionalProperties": false
820
+ },
821
+ {
822
+ "type": "object",
823
+ "properties": {
824
+ "policy": {
825
+ "type": "string",
826
+ "const": "local-only"
827
+ },
828
+ "allowedHosts": {
829
+ "type": "array",
830
+ "items": {
831
+ "type": "string",
832
+ "pattern": "^(?:(?:\\*\\.[a-zA-Z0-9_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?(?:\\.[a-zA-Z0-9_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?)+|[a-zA-Z0-9_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?(?:\\.[a-zA-Z0-9_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?)*)\\.?|[0-9a-fA-F.]*:[0-9a-fA-F:.]*(?:\\/\\d{1,3})?|\\d{1,3}(?:\\.\\d{1,3}){3}(?:\\/\\d{1,2})?)$"
833
+ }
834
+ }
835
+ },
836
+ "required": [
837
+ "policy"
838
+ ],
839
+ "additionalProperties": false
840
+ },
841
+ {
842
+ "type": "object",
843
+ "properties": {
844
+ "policy": {
845
+ "type": "string",
846
+ "const": "allowlist"
847
+ },
848
+ "allowedHosts": {
849
+ "minItems": 1,
850
+ "type": "array",
851
+ "items": {
852
+ "type": "string",
853
+ "pattern": "^(?:(?:\\*\\.[a-zA-Z0-9_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?(?:\\.[a-zA-Z0-9_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?)+|[a-zA-Z0-9_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?(?:\\.[a-zA-Z0-9_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])?)*)\\.?|[0-9a-fA-F.]*:[0-9a-fA-F:.]*(?:\\/\\d{1,3})?|\\d{1,3}(?:\\.\\d{1,3}){3}(?:\\/\\d{1,2})?)$"
854
+ }
855
+ }
856
+ },
857
+ "required": [
858
+ "policy",
859
+ "allowedHosts"
860
+ ],
861
+ "additionalProperties": false
862
+ }
863
+ ]
864
+ },
865
+ "sensitiveData": {
866
+ "type": "object",
867
+ "properties": {
868
+ "mode": {
869
+ "type": "string",
870
+ "enum": [
871
+ "off",
872
+ "warn",
873
+ "block",
874
+ "redact"
875
+ ]
876
+ },
877
+ "detectors": {
878
+ "type": "array",
879
+ "items": {
880
+ "type": "string",
881
+ "enum": [
882
+ "secret",
883
+ "email",
884
+ "iban",
885
+ "credit-card",
886
+ "phone",
887
+ "ip",
888
+ "private-host"
889
+ ]
890
+ }
891
+ },
892
+ "patterns": {
893
+ "type": "array",
894
+ "items": {
895
+ "type": "string",
896
+ "minLength": 1
897
+ }
898
+ },
899
+ "allow": {
900
+ "type": "array",
901
+ "items": {
902
+ "type": "string",
903
+ "minLength": 1
904
+ }
905
+ }
906
+ },
907
+ "required": [
908
+ "mode"
909
+ ],
910
+ "additionalProperties": false
911
+ }
912
+ },
913
+ "required": [
914
+ "sourceLocale",
915
+ "targetLocales",
916
+ "format",
917
+ "files",
918
+ "provider"
919
+ ],
920
+ "additionalProperties": false
921
+ }