@formatjs/cli 5.0.7 → 5.0.8

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 (45) hide show
  1. package/BUILD +22 -0
  2. package/CHANGELOG.md +1098 -0
  3. package/LICENSE.md +0 -0
  4. package/README.md +0 -0
  5. package/integration-tests/BUILD +81 -0
  6. package/integration-tests/compile/__snapshots__/integration.test.ts.snap +1056 -0
  7. package/integration-tests/compile/glob/en.json +14 -0
  8. package/integration-tests/compile/glob/en2.json +14 -0
  9. package/integration-tests/compile/glob-conflict/en.json +14 -0
  10. package/integration-tests/compile/glob-conflict/en2.json +14 -0
  11. package/integration-tests/compile/integration.test.ts +213 -0
  12. package/integration-tests/compile/lang/empty.json +1 -0
  13. package/integration-tests/compile/lang/en-crowdin.json +14 -0
  14. package/integration-tests/compile/lang/en-format.json +14 -0
  15. package/integration-tests/compile/lang/en-lokalise.json +14 -0
  16. package/integration-tests/compile/lang/en-simple.json +5 -0
  17. package/integration-tests/compile/lang/en-smartling.json +24 -0
  18. package/integration-tests/compile/lang/en-transifex.json +14 -0
  19. package/integration-tests/compile/lang/en.json +22 -0
  20. package/integration-tests/compile/lang/malformed-messages.json +14 -0
  21. package/integration-tests/compile_folder/__snapshots__/integration.test.ts.snap +44 -0
  22. package/integration-tests/compile_folder/integration.test.ts +33 -0
  23. package/integration-tests/compile_folder/lang/empty.json +1 -0
  24. package/integration-tests/compile_folder/lang/en.json +14 -0
  25. package/integration-tests/compile_folder/lang/en2.json +14 -0
  26. package/integration-tests/extract/__snapshots__/integration.test.ts.snap +932 -0
  27. package/integration-tests/extract/defineMessages/actual.ignore.js +22 -0
  28. package/integration-tests/extract/defineMessages/actual.js +65 -0
  29. package/integration-tests/extract/defineMessages/bad.json +1 -0
  30. package/integration-tests/extract/duplicated/file1.tsx +10 -0
  31. package/integration-tests/extract/duplicated/file2.tsx +10 -0
  32. package/integration-tests/extract/integration.test.ts +240 -0
  33. package/integration-tests/extract/nonDuplicated/file1.tsx +14 -0
  34. package/integration-tests/extract/nonDuplicated/file2.tsx +14 -0
  35. package/integration-tests/extract/typescript/actual.ignore.tsx +21 -0
  36. package/integration-tests/extract/typescript/actual.tsx +104 -0
  37. package/integration-tests/extract/typescript/err.tsx +1 -0
  38. package/integration-tests/extract/typescript/pragma.tsx +77 -0
  39. package/integration-tests/extract-vue/__snapshots__/integration.test.ts.snap +17 -0
  40. package/integration-tests/extract-vue/comp.vue +22 -0
  41. package/integration-tests/extract-vue/integration.test.ts +14 -0
  42. package/integration-tests/formatter.js +18 -0
  43. package/integration-tests/package.json +5 -0
  44. package/package.json +3 -3
  45. package/bin/formatjs +0 -155104
@@ -0,0 +1,1056 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`AST 1`] = `
4
+ Object {
5
+ "stderr": "",
6
+ "stdout": "{
7
+ \\"a1d12\\": [
8
+ {
9
+ \\"type\\": 0,
10
+ \\"value\\": \\"I have \\"
11
+ },
12
+ {
13
+ \\"offset\\": 0,
14
+ \\"options\\": {
15
+ \\"one\\": {
16
+ \\"value\\": [
17
+ {
18
+ \\"type\\": 0,
19
+ \\"value\\": \\"a dog\\"
20
+ }
21
+ ]
22
+ },
23
+ \\"other\\": {
24
+ \\"value\\": [
25
+ {
26
+ \\"type\\": 0,
27
+ \\"value\\": \\"many dogs\\"
28
+ }
29
+ ]
30
+ }
31
+ },
32
+ \\"pluralType\\": \\"cardinal\\",
33
+ \\"type\\": 6,
34
+ \\"value\\": \\"count\\"
35
+ }
36
+ ],
37
+ \\"a1d13\\": [
38
+ {
39
+ \\"type\\": 0,
40
+ \\"value\\": \\"I have \\"
41
+ },
42
+ {
43
+ \\"offset\\": 0,
44
+ \\"options\\": {
45
+ \\"one\\": {
46
+ \\"value\\": [
47
+ {
48
+ \\"children\\": [
49
+ {
50
+ \\"type\\": 0,
51
+ \\"value\\": \\"a dog\\"
52
+ }
53
+ ],
54
+ \\"type\\": 8,
55
+ \\"value\\": \\"b\\"
56
+ }
57
+ ]
58
+ },
59
+ \\"other\\": {
60
+ \\"value\\": [
61
+ {
62
+ \\"type\\": 0,
63
+ \\"value\\": \\"many dogs\\"
64
+ }
65
+ ]
66
+ }
67
+ },
68
+ \\"pluralType\\": \\"cardinal\\",
69
+ \\"type\\": 6,
70
+ \\"value\\": \\"count\\"
71
+ }
72
+ ],
73
+ \\"a1d14\\": [
74
+ {
75
+ \\"type\\": 0,
76
+ \\"value\\": \\"I have \\"
77
+ },
78
+ {
79
+ \\"offset\\": 0,
80
+ \\"options\\": {
81
+ \\"one\\": {
82
+ \\"value\\": [
83
+ {
84
+ \\"children\\": [
85
+ {
86
+ \\"type\\": 0,
87
+ \\"value\\": \\"a \\"
88
+ },
89
+ {
90
+ \\"children\\": [
91
+ {
92
+ \\"type\\": 0,
93
+ \\"value\\": \\"dog\\"
94
+ }
95
+ ],
96
+ \\"type\\": 8,
97
+ \\"value\\": \\"i\\"
98
+ }
99
+ ],
100
+ \\"type\\": 8,
101
+ \\"value\\": \\"b\\"
102
+ }
103
+ ]
104
+ },
105
+ \\"other\\": {
106
+ \\"value\\": [
107
+ {
108
+ \\"type\\": 0,
109
+ \\"value\\": \\"many dogs\\"
110
+ }
111
+ ]
112
+ }
113
+ },
114
+ \\"pluralType\\": \\"cardinal\\",
115
+ \\"type\\": 6,
116
+ \\"value\\": \\"count\\"
117
+ }
118
+ ],
119
+ \\"a1dd2\\": [
120
+ {
121
+ \\"type\\": 0,
122
+ \\"value\\": \\"my name is \\"
123
+ },
124
+ {
125
+ \\"type\\": 1,
126
+ \\"value\\": \\"name\\"
127
+ }
128
+ ],
129
+ \\"ashd2\\": [
130
+ {
131
+ \\"type\\": 0,
132
+ \\"value\\": \\"a message\\"
133
+ }
134
+ ]
135
+ }
136
+ ",
137
+ }
138
+ `;
139
+
140
+ exports[`basic case: empty json 1`] = `
141
+ Object {
142
+ "stderr": "",
143
+ "stdout": "{
144
+ }
145
+ ",
146
+ }
147
+ `;
148
+
149
+ exports[`basic case: help 1`] = `
150
+ Object {
151
+ "stderr": "",
152
+ "stdout": "Usage: formatjs compile [options] [translation_files...]
153
+
154
+ Compile extracted translation file into react-intl consumable JSON
155
+ We also verify that the messages are valid ICU and not malformed.
156
+ <translation_files> can be a glob like \\"foo/**/en.json\\"
157
+
158
+ Options:
159
+ --format <path> Path to a formatter file that converts \`<translation_file>\` to \`Record<string, string>\`
160
+ so we can compile. The file must export a function named \`compile\` with the signature:
161
+ \`\`\`
162
+ type CompileFn = <T = Record<string, MessageDescriptor>>(
163
+ msgs: T
164
+ ) => Record<string, string>;
165
+ \`\`\`
166
+ This is especially useful to convert from a TMS-specific format back to react-intl format
167
+
168
+ --out-file <path> Compiled translation output file.
169
+ If this is not provided, result will be
170
+ printed to stdout
171
+ --ast Whether to compile to AST. See
172
+ https://formatjs.io/docs/guides/advanced-usage#pre-parsing-messages
173
+ for more information
174
+ --skip-errors Whether to continue compiling messages after
175
+ encountering an error. Any keys with errors
176
+ will not be included in the output file.
177
+ --pseudo-locale <pseudoLocale> Whether to generate pseudo-locale files. See
178
+ https://formatjs.io/docs/tooling/cli#--pseudo-locale-pseudolocale
179
+ for possible values.
180
+ \\"--ast\\" is required for this to work.
181
+ -h, --help display help for command
182
+ ",
183
+ }
184
+ `;
185
+
186
+ exports[`compile glob 1`] = `
187
+ Object {
188
+ "stderr": "",
189
+ "stdout": "{
190
+ \\"1\\": \\"a message\\",
191
+ \\"2\\": \\"my name is {name}\\",
192
+ \\"3\\": \\"I have {count, plural, one{a dog} other{many dogs}}\\",
193
+ \\"a1d12\\": \\"I have {count, plural, one{a dog} other{many dogs}}\\",
194
+ \\"a1dd2\\": \\"my name is {name}\\",
195
+ \\"ashd2\\": \\"a message\\"
196
+ }
197
+ ",
198
+ }
199
+ `;
200
+
201
+ exports[`en-XA json 1`] = `
202
+ Object {
203
+ "stderr": "",
204
+ "stdout": "{
205
+ \\"a1d12\\": [
206
+ {
207
+ \\"type\\": 0,
208
+ \\"value\\": \\"Ḭ ḫâṿè \\"
209
+ },
210
+ {
211
+ \\"offset\\": 0,
212
+ \\"options\\": {
213
+ \\"one\\": {
214
+ \\"value\\": [
215
+ {
216
+ \\"type\\": 0,
217
+ \\"value\\": \\"â ḋŏĝ\\"
218
+ }
219
+ ]
220
+ },
221
+ \\"other\\": {
222
+ \\"value\\": [
223
+ {
224
+ \\"type\\": 0,
225
+ \\"value\\": \\"ṁâńẏ ḋŏĝś\\"
226
+ }
227
+ ]
228
+ }
229
+ },
230
+ \\"pluralType\\": \\"cardinal\\",
231
+ \\"type\\": 6,
232
+ \\"value\\": \\"count\\"
233
+ }
234
+ ],
235
+ \\"a1d13\\": [
236
+ {
237
+ \\"type\\": 0,
238
+ \\"value\\": \\"Ḭ ḫâṿè \\"
239
+ },
240
+ {
241
+ \\"offset\\": 0,
242
+ \\"options\\": {
243
+ \\"one\\": {
244
+ \\"value\\": [
245
+ {
246
+ \\"children\\": [
247
+ {
248
+ \\"type\\": 0,
249
+ \\"value\\": \\"â ḋŏĝ\\"
250
+ }
251
+ ],
252
+ \\"type\\": 8,
253
+ \\"value\\": \\"b\\"
254
+ }
255
+ ]
256
+ },
257
+ \\"other\\": {
258
+ \\"value\\": [
259
+ {
260
+ \\"type\\": 0,
261
+ \\"value\\": \\"ṁâńẏ ḋŏĝś\\"
262
+ }
263
+ ]
264
+ }
265
+ },
266
+ \\"pluralType\\": \\"cardinal\\",
267
+ \\"type\\": 6,
268
+ \\"value\\": \\"count\\"
269
+ }
270
+ ],
271
+ \\"a1d14\\": [
272
+ {
273
+ \\"type\\": 0,
274
+ \\"value\\": \\"Ḭ ḫâṿè \\"
275
+ },
276
+ {
277
+ \\"offset\\": 0,
278
+ \\"options\\": {
279
+ \\"one\\": {
280
+ \\"value\\": [
281
+ {
282
+ \\"children\\": [
283
+ {
284
+ \\"type\\": 0,
285
+ \\"value\\": \\"â \\"
286
+ },
287
+ {
288
+ \\"children\\": [
289
+ {
290
+ \\"type\\": 0,
291
+ \\"value\\": \\"ḋŏĝ\\"
292
+ }
293
+ ],
294
+ \\"type\\": 8,
295
+ \\"value\\": \\"i\\"
296
+ }
297
+ ],
298
+ \\"type\\": 8,
299
+ \\"value\\": \\"b\\"
300
+ }
301
+ ]
302
+ },
303
+ \\"other\\": {
304
+ \\"value\\": [
305
+ {
306
+ \\"type\\": 0,
307
+ \\"value\\": \\"ṁâńẏ ḋŏĝś\\"
308
+ }
309
+ ]
310
+ }
311
+ },
312
+ \\"pluralType\\": \\"cardinal\\",
313
+ \\"type\\": 6,
314
+ \\"value\\": \\"count\\"
315
+ }
316
+ ],
317
+ \\"a1dd2\\": [
318
+ {
319
+ \\"type\\": 0,
320
+ \\"value\\": \\"ṁẏ ńâṁè íś \\"
321
+ },
322
+ {
323
+ \\"type\\": 1,
324
+ \\"value\\": \\"name\\"
325
+ }
326
+ ],
327
+ \\"ashd2\\": [
328
+ {
329
+ \\"type\\": 0,
330
+ \\"value\\": \\"â ṁèśśâĝè\\"
331
+ }
332
+ ]
333
+ }
334
+ ",
335
+ }
336
+ `;
337
+
338
+ exports[`en-XB json 1`] = `
339
+ Object {
340
+ "stderr": "",
341
+ "stdout": "{
342
+ \\"a1d12\\": [
343
+ {
344
+ \\"type\\": 0,
345
+ \\"value\\": \\"[!! Ḭ ḫḫḫâṿèèè !!]\\"
346
+ },
347
+ {
348
+ \\"offset\\": 0,
349
+ \\"options\\": {
350
+ \\"one\\": {
351
+ \\"value\\": [
352
+ {
353
+ \\"type\\": 0,
354
+ \\"value\\": \\"[!! â ḋḋḋŏĝ !!]\\"
355
+ }
356
+ ]
357
+ },
358
+ \\"other\\": {
359
+ \\"value\\": [
360
+ {
361
+ \\"type\\": 0,
362
+ \\"value\\": \\"[!! ṁâńńńẏ ḋḋḋŏĝśśś !!]\\"
363
+ }
364
+ ]
365
+ }
366
+ },
367
+ \\"pluralType\\": \\"cardinal\\",
368
+ \\"type\\": 6,
369
+ \\"value\\": \\"count\\"
370
+ }
371
+ ],
372
+ \\"a1d13\\": [
373
+ {
374
+ \\"type\\": 0,
375
+ \\"value\\": \\"[!! Ḭ ḫḫḫâṿèèè !!]\\"
376
+ },
377
+ {
378
+ \\"offset\\": 0,
379
+ \\"options\\": {
380
+ \\"one\\": {
381
+ \\"value\\": [
382
+ {
383
+ \\"children\\": [
384
+ {
385
+ \\"type\\": 0,
386
+ \\"value\\": \\"[!! â ḋḋḋŏĝ !!]\\"
387
+ }
388
+ ],
389
+ \\"type\\": 8,
390
+ \\"value\\": \\"b\\"
391
+ }
392
+ ]
393
+ },
394
+ \\"other\\": {
395
+ \\"value\\": [
396
+ {
397
+ \\"type\\": 0,
398
+ \\"value\\": \\"[!! ṁâńńńẏ ḋḋḋŏĝśśś !!]\\"
399
+ }
400
+ ]
401
+ }
402
+ },
403
+ \\"pluralType\\": \\"cardinal\\",
404
+ \\"type\\": 6,
405
+ \\"value\\": \\"count\\"
406
+ }
407
+ ],
408
+ \\"a1d14\\": [
409
+ {
410
+ \\"type\\": 0,
411
+ \\"value\\": \\"[!! Ḭ ḫḫḫâṿèèè !!]\\"
412
+ },
413
+ {
414
+ \\"offset\\": 0,
415
+ \\"options\\": {
416
+ \\"one\\": {
417
+ \\"value\\": [
418
+ {
419
+ \\"children\\": [
420
+ {
421
+ \\"type\\": 0,
422
+ \\"value\\": \\"[!! â !!]\\"
423
+ },
424
+ {
425
+ \\"children\\": [
426
+ {
427
+ \\"type\\": 0,
428
+ \\"value\\": \\"[!! ḋŏĝĝĝ !!]\\"
429
+ }
430
+ ],
431
+ \\"type\\": 8,
432
+ \\"value\\": \\"i\\"
433
+ }
434
+ ],
435
+ \\"type\\": 8,
436
+ \\"value\\": \\"b\\"
437
+ }
438
+ ]
439
+ },
440
+ \\"other\\": {
441
+ \\"value\\": [
442
+ {
443
+ \\"type\\": 0,
444
+ \\"value\\": \\"[!! ṁâńńńẏ ḋḋḋŏĝśśś !!]\\"
445
+ }
446
+ ]
447
+ }
448
+ },
449
+ \\"pluralType\\": \\"cardinal\\",
450
+ \\"type\\": 6,
451
+ \\"value\\": \\"count\\"
452
+ }
453
+ ],
454
+ \\"a1dd2\\": [
455
+ {
456
+ \\"type\\": 0,
457
+ \\"value\\": \\"[!! ṁẏ ńâṁṁṁè íííś !!]\\"
458
+ },
459
+ {
460
+ \\"type\\": 1,
461
+ \\"value\\": \\"name\\"
462
+ }
463
+ ],
464
+ \\"ashd2\\": [
465
+ {
466
+ \\"type\\": 0,
467
+ \\"value\\": \\"[!! â ṁṁṁèśśśśâĝèèè !!]\\"
468
+ }
469
+ ]
470
+ }
471
+ ",
472
+ }
473
+ `;
474
+
475
+ exports[`normal json 1`] = `
476
+ Object {
477
+ "stderr": "",
478
+ "stdout": "{
479
+ \\"a1d12\\": \\"I have {count, plural, one{a dog} other{many dogs}}\\",
480
+ \\"a1d13\\": \\"I have {count, plural, one{<b>a dog</b>} other{many dogs}}\\",
481
+ \\"a1d14\\": \\"I have {count, plural, one{<b>a <i>dog</i></b>} other{many dogs}}\\",
482
+ \\"a1dd2\\": \\"my name is {name}\\",
483
+ \\"ashd2\\": \\"a message\\"
484
+ }
485
+ ",
486
+ }
487
+ `;
488
+
489
+ exports[`normal json with crowdin 1`] = `
490
+ Object {
491
+ "stderr": "",
492
+ "stdout": "{
493
+ \\"a1d12\\": \\"I have {count, plural, one{a dog} other{many dogs}}\\",
494
+ \\"a1dd2\\": \\"my name is {name}\\",
495
+ \\"ashd2\\": \\"a message\\"
496
+ }
497
+ ",
498
+ }
499
+ `;
500
+
501
+ exports[`normal json with formatter 1`] = `
502
+ Object {
503
+ "stderr": "",
504
+ "stdout": "{
505
+ \\"a1d12\\": \\"I have {count, plural, one{a dog} other{many dogs}}\\",
506
+ \\"a1dd2\\": \\"my name is {name}\\",
507
+ \\"ashd2\\": \\"a message\\"
508
+ }
509
+ ",
510
+ }
511
+ `;
512
+
513
+ exports[`normal json with lokalise 1`] = `
514
+ Object {
515
+ "stderr": "",
516
+ "stdout": "{
517
+ \\"a1d12\\": \\"I have {count, plural, one{a dog} other{many dogs}}\\",
518
+ \\"a1dd2\\": \\"my name is {name}\\",
519
+ \\"ashd2\\": \\"a message\\"
520
+ }
521
+ ",
522
+ }
523
+ `;
524
+
525
+ exports[`normal json with simple 1`] = `
526
+ Object {
527
+ "stderr": "",
528
+ "stdout": "{
529
+ \\"a1d12\\": \\"I have {count, plural, one{a dog} other{many dogs}}\\",
530
+ \\"a1dd2\\": \\"my name is {name}\\",
531
+ \\"ashd2\\": \\"a message\\"
532
+ }
533
+ ",
534
+ }
535
+ `;
536
+
537
+ exports[`normal json with smartling 1`] = `
538
+ Object {
539
+ "stderr": "",
540
+ "stdout": "{
541
+ \\"a1d12\\": \\"I have {count, plural, one{a dog} other{many dogs}}\\",
542
+ \\"a1dd2\\": \\"my name is {name}\\",
543
+ \\"ashd2\\": \\"a message\\"
544
+ }
545
+ ",
546
+ }
547
+ `;
548
+
549
+ exports[`normal json with transifex 1`] = `
550
+ Object {
551
+ "stderr": "",
552
+ "stdout": "{
553
+ \\"a1d12\\": \\"I have {count, plural, one{a dog} other{many dogs}}\\",
554
+ \\"a1dd2\\": \\"my name is {name}\\",
555
+ \\"ashd2\\": \\"a message\\"
556
+ }
557
+ ",
558
+ }
559
+ `;
560
+
561
+ exports[`out-file --ast 1`] = `
562
+ Object {
563
+ "stderr": "",
564
+ "stdout": "",
565
+ }
566
+ `;
567
+
568
+ exports[`out-file --ast 2`] = `
569
+ Object {
570
+ "a1d12": Array [
571
+ Object {
572
+ "type": 0,
573
+ "value": "I have ",
574
+ },
575
+ Object {
576
+ "offset": 0,
577
+ "options": Object {
578
+ "one": Object {
579
+ "value": Array [
580
+ Object {
581
+ "type": 0,
582
+ "value": "a dog",
583
+ },
584
+ ],
585
+ },
586
+ "other": Object {
587
+ "value": Array [
588
+ Object {
589
+ "type": 0,
590
+ "value": "many dogs",
591
+ },
592
+ ],
593
+ },
594
+ },
595
+ "pluralType": "cardinal",
596
+ "type": 6,
597
+ "value": "count",
598
+ },
599
+ ],
600
+ "a1d13": Array [
601
+ Object {
602
+ "type": 0,
603
+ "value": "I have ",
604
+ },
605
+ Object {
606
+ "offset": 0,
607
+ "options": Object {
608
+ "one": Object {
609
+ "value": Array [
610
+ Object {
611
+ "children": Array [
612
+ Object {
613
+ "type": 0,
614
+ "value": "a dog",
615
+ },
616
+ ],
617
+ "type": 8,
618
+ "value": "b",
619
+ },
620
+ ],
621
+ },
622
+ "other": Object {
623
+ "value": Array [
624
+ Object {
625
+ "type": 0,
626
+ "value": "many dogs",
627
+ },
628
+ ],
629
+ },
630
+ },
631
+ "pluralType": "cardinal",
632
+ "type": 6,
633
+ "value": "count",
634
+ },
635
+ ],
636
+ "a1d14": Array [
637
+ Object {
638
+ "type": 0,
639
+ "value": "I have ",
640
+ },
641
+ Object {
642
+ "offset": 0,
643
+ "options": Object {
644
+ "one": Object {
645
+ "value": Array [
646
+ Object {
647
+ "children": Array [
648
+ Object {
649
+ "type": 0,
650
+ "value": "a ",
651
+ },
652
+ Object {
653
+ "children": Array [
654
+ Object {
655
+ "type": 0,
656
+ "value": "dog",
657
+ },
658
+ ],
659
+ "type": 8,
660
+ "value": "i",
661
+ },
662
+ ],
663
+ "type": 8,
664
+ "value": "b",
665
+ },
666
+ ],
667
+ },
668
+ "other": Object {
669
+ "value": Array [
670
+ Object {
671
+ "type": 0,
672
+ "value": "many dogs",
673
+ },
674
+ ],
675
+ },
676
+ },
677
+ "pluralType": "cardinal",
678
+ "type": 6,
679
+ "value": "count",
680
+ },
681
+ ],
682
+ "a1dd2": Array [
683
+ Object {
684
+ "type": 0,
685
+ "value": "my name is ",
686
+ },
687
+ Object {
688
+ "type": 1,
689
+ "value": "name",
690
+ },
691
+ ],
692
+ "ashd2": Array [
693
+ Object {
694
+ "type": 0,
695
+ "value": "a message",
696
+ },
697
+ ],
698
+ }
699
+ `;
700
+
701
+ exports[`out-file 1`] = `
702
+ Object {
703
+ "stderr": "",
704
+ "stdout": "",
705
+ }
706
+ `;
707
+
708
+ exports[`out-file 2`] = `
709
+ Object {
710
+ "a1d12": "I have {count, plural, one{a dog} other{many dogs}}",
711
+ "a1d13": "I have {count, plural, one{<b>a dog</b>} other{many dogs}}",
712
+ "a1d14": "I have {count, plural, one{<b>a <i>dog</i></b>} other{many dogs}}",
713
+ "a1dd2": "my name is {name}",
714
+ "ashd2": "a message",
715
+ }
716
+ `;
717
+
718
+ exports[`skipped malformed ICU message json 1`] = `
719
+ Object {
720
+ "stderr": StringMatching /\\^\\\\\\[@formatjs\\\\/cli\\\\\\] \\\\\\[WARN\\\\\\] Error validating message "my name is \\{name" with ID "a1dd2" in file \\.\\*\\\\/packages\\\\/cli\\\\/integration-tests\\\\/compile\\\\/lang\\\\/malformed-messages\\.json/,
721
+ "stdout": "{
722
+ \\"a1d12\\": \\"I have {count, plural, one{a dog} other{many dogs}}\\",
723
+ \\"ashd2\\": \\"a message\\"
724
+ }
725
+ ",
726
+ }
727
+ `;
728
+
729
+ exports[`xx-AC json 1`] = `
730
+ Object {
731
+ "stderr": "",
732
+ "stdout": "{
733
+ \\"a1d12\\": [
734
+ {
735
+ \\"type\\": 0,
736
+ \\"value\\": \\"I HAVE \\"
737
+ },
738
+ {
739
+ \\"offset\\": 0,
740
+ \\"options\\": {
741
+ \\"one\\": {
742
+ \\"value\\": [
743
+ {
744
+ \\"type\\": 0,
745
+ \\"value\\": \\"A DOG\\"
746
+ }
747
+ ]
748
+ },
749
+ \\"other\\": {
750
+ \\"value\\": [
751
+ {
752
+ \\"type\\": 0,
753
+ \\"value\\": \\"MANY DOGS\\"
754
+ }
755
+ ]
756
+ }
757
+ },
758
+ \\"pluralType\\": \\"cardinal\\",
759
+ \\"type\\": 6,
760
+ \\"value\\": \\"count\\"
761
+ }
762
+ ],
763
+ \\"a1d13\\": [
764
+ {
765
+ \\"type\\": 0,
766
+ \\"value\\": \\"I HAVE \\"
767
+ },
768
+ {
769
+ \\"offset\\": 0,
770
+ \\"options\\": {
771
+ \\"one\\": {
772
+ \\"value\\": [
773
+ {
774
+ \\"children\\": [
775
+ {
776
+ \\"type\\": 0,
777
+ \\"value\\": \\"A DOG\\"
778
+ }
779
+ ],
780
+ \\"type\\": 8,
781
+ \\"value\\": \\"b\\"
782
+ }
783
+ ]
784
+ },
785
+ \\"other\\": {
786
+ \\"value\\": [
787
+ {
788
+ \\"type\\": 0,
789
+ \\"value\\": \\"MANY DOGS\\"
790
+ }
791
+ ]
792
+ }
793
+ },
794
+ \\"pluralType\\": \\"cardinal\\",
795
+ \\"type\\": 6,
796
+ \\"value\\": \\"count\\"
797
+ }
798
+ ],
799
+ \\"a1d14\\": [
800
+ {
801
+ \\"type\\": 0,
802
+ \\"value\\": \\"I HAVE \\"
803
+ },
804
+ {
805
+ \\"offset\\": 0,
806
+ \\"options\\": {
807
+ \\"one\\": {
808
+ \\"value\\": [
809
+ {
810
+ \\"children\\": [
811
+ {
812
+ \\"type\\": 0,
813
+ \\"value\\": \\"A \\"
814
+ },
815
+ {
816
+ \\"children\\": [
817
+ {
818
+ \\"type\\": 0,
819
+ \\"value\\": \\"DOG\\"
820
+ }
821
+ ],
822
+ \\"type\\": 8,
823
+ \\"value\\": \\"i\\"
824
+ }
825
+ ],
826
+ \\"type\\": 8,
827
+ \\"value\\": \\"b\\"
828
+ }
829
+ ]
830
+ },
831
+ \\"other\\": {
832
+ \\"value\\": [
833
+ {
834
+ \\"type\\": 0,
835
+ \\"value\\": \\"MANY DOGS\\"
836
+ }
837
+ ]
838
+ }
839
+ },
840
+ \\"pluralType\\": \\"cardinal\\",
841
+ \\"type\\": 6,
842
+ \\"value\\": \\"count\\"
843
+ }
844
+ ],
845
+ \\"a1dd2\\": [
846
+ {
847
+ \\"type\\": 0,
848
+ \\"value\\": \\"MY NAME IS \\"
849
+ },
850
+ {
851
+ \\"type\\": 1,
852
+ \\"value\\": \\"name\\"
853
+ }
854
+ ],
855
+ \\"ashd2\\": [
856
+ {
857
+ \\"type\\": 0,
858
+ \\"value\\": \\"A MESSAGE\\"
859
+ }
860
+ ]
861
+ }
862
+ ",
863
+ }
864
+ `;
865
+
866
+ exports[`xx-HA json 1`] = `
867
+ Object {
868
+ "stderr": "",
869
+ "stdout": "{
870
+ \\"a1d12\\": [
871
+ {
872
+ \\"type\\": 0,
873
+ \\"value\\": \\"[javascript]I have \\"
874
+ },
875
+ {
876
+ \\"offset\\": 0,
877
+ \\"options\\": {
878
+ \\"one\\": {
879
+ \\"value\\": [
880
+ {
881
+ \\"type\\": 0,
882
+ \\"value\\": \\"a dog\\"
883
+ }
884
+ ]
885
+ },
886
+ \\"other\\": {
887
+ \\"value\\": [
888
+ {
889
+ \\"type\\": 0,
890
+ \\"value\\": \\"many dogs\\"
891
+ }
892
+ ]
893
+ }
894
+ },
895
+ \\"pluralType\\": \\"cardinal\\",
896
+ \\"type\\": 6,
897
+ \\"value\\": \\"count\\"
898
+ }
899
+ ],
900
+ \\"a1d13\\": [
901
+ {
902
+ \\"type\\": 0,
903
+ \\"value\\": \\"[javascript]I have \\"
904
+ },
905
+ {
906
+ \\"offset\\": 0,
907
+ \\"options\\": {
908
+ \\"one\\": {
909
+ \\"value\\": [
910
+ {
911
+ \\"children\\": [
912
+ {
913
+ \\"type\\": 0,
914
+ \\"value\\": \\"a dog\\"
915
+ }
916
+ ],
917
+ \\"type\\": 8,
918
+ \\"value\\": \\"b\\"
919
+ }
920
+ ]
921
+ },
922
+ \\"other\\": {
923
+ \\"value\\": [
924
+ {
925
+ \\"type\\": 0,
926
+ \\"value\\": \\"many dogs\\"
927
+ }
928
+ ]
929
+ }
930
+ },
931
+ \\"pluralType\\": \\"cardinal\\",
932
+ \\"type\\": 6,
933
+ \\"value\\": \\"count\\"
934
+ }
935
+ ],
936
+ \\"a1d14\\": [
937
+ {
938
+ \\"type\\": 0,
939
+ \\"value\\": \\"[javascript]I have \\"
940
+ },
941
+ {
942
+ \\"offset\\": 0,
943
+ \\"options\\": {
944
+ \\"one\\": {
945
+ \\"value\\": [
946
+ {
947
+ \\"children\\": [
948
+ {
949
+ \\"type\\": 0,
950
+ \\"value\\": \\"a \\"
951
+ },
952
+ {
953
+ \\"children\\": [
954
+ {
955
+ \\"type\\": 0,
956
+ \\"value\\": \\"dog\\"
957
+ }
958
+ ],
959
+ \\"type\\": 8,
960
+ \\"value\\": \\"i\\"
961
+ }
962
+ ],
963
+ \\"type\\": 8,
964
+ \\"value\\": \\"b\\"
965
+ }
966
+ ]
967
+ },
968
+ \\"other\\": {
969
+ \\"value\\": [
970
+ {
971
+ \\"type\\": 0,
972
+ \\"value\\": \\"many dogs\\"
973
+ }
974
+ ]
975
+ }
976
+ },
977
+ \\"pluralType\\": \\"cardinal\\",
978
+ \\"type\\": 6,
979
+ \\"value\\": \\"count\\"
980
+ }
981
+ ],
982
+ \\"a1dd2\\": [
983
+ {
984
+ \\"type\\": 0,
985
+ \\"value\\": \\"[javascript]my name is \\"
986
+ },
987
+ {
988
+ \\"type\\": 1,
989
+ \\"value\\": \\"name\\"
990
+ }
991
+ ],
992
+ \\"ashd2\\": [
993
+ {
994
+ \\"type\\": 0,
995
+ \\"value\\": \\"[javascript]a message\\"
996
+ }
997
+ ]
998
+ }
999
+ ",
1000
+ }
1001
+ `;
1002
+
1003
+ exports[`xx-LS json 1`] = `
1004
+ Object {
1005
+ "stderr": "",
1006
+ "stdout": "{
1007
+ \\"a1d12\\": [
1008
+ {
1009
+ \\"type\\": 0,
1010
+ \\"value\\": \\"I have \\"
1011
+ },
1012
+ {
1013
+ \\"type\\": 0,
1014
+ \\"value\\": \\"SSSSSSSSSSSSSSSSSSSSSSSSS\\"
1015
+ }
1016
+ ],
1017
+ \\"a1d13\\": [
1018
+ {
1019
+ \\"type\\": 0,
1020
+ \\"value\\": \\"I have \\"
1021
+ },
1022
+ {
1023
+ \\"type\\": 0,
1024
+ \\"value\\": \\"SSSSSSSSSSSSSSSSSSSSSSSSS\\"
1025
+ }
1026
+ ],
1027
+ \\"a1d14\\": [
1028
+ {
1029
+ \\"type\\": 0,
1030
+ \\"value\\": \\"I have \\"
1031
+ },
1032
+ {
1033
+ \\"type\\": 0,
1034
+ \\"value\\": \\"SSSSSSSSSSSSSSSSSSSSSSSSS\\"
1035
+ }
1036
+ ],
1037
+ \\"a1dd2\\": [
1038
+ {
1039
+ \\"type\\": 0,
1040
+ \\"value\\": \\"my name is \\"
1041
+ },
1042
+ {
1043
+ \\"type\\": 0,
1044
+ \\"value\\": \\"SSSSSSSSSSSSSSSSSSSSSSSSS\\"
1045
+ }
1046
+ ],
1047
+ \\"ashd2\\": [
1048
+ {
1049
+ \\"type\\": 0,
1050
+ \\"value\\": \\"a messageSSSSSSSSSSSSSSSSSSSSSSSSS\\"
1051
+ }
1052
+ ]
1053
+ }
1054
+ ",
1055
+ }
1056
+ `;