@xlr-lib/xlr-converters 0.1.1--canary.9.190

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 (38) hide show
  1. package/bin/run +8 -0
  2. package/dist/cjs/index.cjs +1736 -0
  3. package/dist/cjs/index.cjs.map +1 -0
  4. package/dist/index.legacy-esm.js +1703 -0
  5. package/dist/index.mjs +1703 -0
  6. package/dist/index.mjs.map +1 -0
  7. package/package.json +35 -0
  8. package/src/__tests__/__snapshots__/annotations.test.ts.snap +22 -0
  9. package/src/__tests__/__snapshots__/common-to-ts.test.ts.snap +50 -0
  10. package/src/__tests__/__snapshots__/export-to-ts.test.ts.snap +30 -0
  11. package/src/__tests__/__snapshots__/player.test.ts.snap +8024 -0
  12. package/src/__tests__/__snapshots__/ts-to-common.test.ts.snap +1657 -0
  13. package/src/__tests__/annotations.test.ts +40 -0
  14. package/src/__tests__/common-to-ts.test.ts +356 -0
  15. package/src/__tests__/documentation.test.ts +116 -0
  16. package/src/__tests__/export-to-ts.test.ts +68 -0
  17. package/src/__tests__/heritage-additional-properties.test.ts +119 -0
  18. package/src/__tests__/player.test.ts +866 -0
  19. package/src/__tests__/ts-to-common.test.ts +776 -0
  20. package/src/__tests__/ts-utils.test.ts +383 -0
  21. package/src/helpers/converter.ts +44 -0
  22. package/src/helpers/writeManifest.ts +45 -0
  23. package/src/index.ts +7 -0
  24. package/src/ts/annotations.ts +237 -0
  25. package/src/ts/documentation.ts +243 -0
  26. package/src/ts/ts-to-xlr.ts +1245 -0
  27. package/src/ts/ts-utils.ts +247 -0
  28. package/src/ts/xlr-to-ts.ts +636 -0
  29. package/src/types.ts +15 -0
  30. package/types/helpers/converter.d.ts +5 -0
  31. package/types/helpers/writeManifest.d.ts +3 -0
  32. package/types/index.d.ts +8 -0
  33. package/types/ts/annotations.d.ts +7 -0
  34. package/types/ts/documentation.d.ts +14 -0
  35. package/types/ts/ts-to-xlr.d.ts +56 -0
  36. package/types/ts/ts-utils.d.ts +68 -0
  37. package/types/ts/xlr-to-ts.d.ts +45 -0
  38. package/types/types.d.ts +8 -0
@@ -0,0 +1,1657 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`Complex Types > Exclude with objects 1`] = `
4
+ [
5
+ {
6
+ "genericTokens": undefined,
7
+ "name": "foo",
8
+ "or": [
9
+ {
10
+ "additionalProperties": false,
11
+ "properties": {
12
+ "type": {
13
+ "node": {
14
+ "const": "b",
15
+ "title": "foo.type",
16
+ "type": "string",
17
+ },
18
+ "required": true,
19
+ },
20
+ "value": {
21
+ "node": {
22
+ "title": "foo.value",
23
+ "type": "number",
24
+ },
25
+ "required": true,
26
+ },
27
+ },
28
+ "title": "foo",
29
+ "type": "object",
30
+ },
31
+ {
32
+ "additionalProperties": false,
33
+ "properties": {
34
+ "type": {
35
+ "node": {
36
+ "const": "c",
37
+ "title": "foo.type",
38
+ "type": "string",
39
+ },
40
+ "required": true,
41
+ },
42
+ "value": {
43
+ "node": {
44
+ "title": "foo.value",
45
+ "type": "boolean",
46
+ },
47
+ "required": true,
48
+ },
49
+ },
50
+ "title": "foo",
51
+ "type": "object",
52
+ },
53
+ ],
54
+ "source": "filename.ts",
55
+ "title": "bar",
56
+ "type": "or",
57
+ },
58
+ ]
59
+ `;
60
+
61
+ exports[`Complex Types > Exclude with objects collapses single remaining element 1`] = `
62
+ [
63
+ {
64
+ "additionalProperties": false,
65
+ "genericTokens": undefined,
66
+ "name": "bar",
67
+ "properties": {
68
+ "type": {
69
+ "node": {
70
+ "const": "b",
71
+ "title": "foo.type",
72
+ "type": "string",
73
+ },
74
+ "required": true,
75
+ },
76
+ "value": {
77
+ "node": {
78
+ "title": "foo.value",
79
+ "type": "number",
80
+ },
81
+ "required": true,
82
+ },
83
+ },
84
+ "source": "filename.ts",
85
+ "title": "bar",
86
+ "type": "object",
87
+ },
88
+ ]
89
+ `;
90
+
91
+ exports[`Complex Types > Exclude with primitives 1`] = `
92
+ [
93
+ {
94
+ "genericTokens": undefined,
95
+ "name": "fooType",
96
+ "or": [
97
+ {
98
+ "const": "b",
99
+ "type": "string",
100
+ },
101
+ {
102
+ "const": "c",
103
+ "type": "string",
104
+ },
105
+ ],
106
+ "source": "filename.ts",
107
+ "title": "bar",
108
+ "type": "or",
109
+ },
110
+ ]
111
+ `;
112
+
113
+ exports[`Complex Types > Omit 1`] = `
114
+ [
115
+ {
116
+ "additionalProperties": false,
117
+ "genericTokens": undefined,
118
+ "name": "foo",
119
+ "properties": {
120
+ "bax": {
121
+ "node": {
122
+ "title": "foo.bax",
123
+ "type": "number",
124
+ },
125
+ "required": true,
126
+ },
127
+ },
128
+ "source": "filename.ts",
129
+ "title": "Bar",
130
+ "type": "object",
131
+ },
132
+ ]
133
+ `;
134
+
135
+ exports[`Complex Types > Omit with type intersection 1`] = `
136
+ [
137
+ {
138
+ "and": [
139
+ {
140
+ "additionalProperties": false,
141
+ "genericTokens": undefined,
142
+ "name": "foo",
143
+ "properties": {
144
+ "fax": {
145
+ "node": {
146
+ "title": "foo.fax",
147
+ "type": "number",
148
+ },
149
+ "required": true,
150
+ },
151
+ },
152
+ "source": "filename.ts",
153
+ "title": "foo",
154
+ "type": "object",
155
+ },
156
+ {
157
+ "additionalProperties": false,
158
+ "genericTokens": undefined,
159
+ "name": "boo",
160
+ "properties": {
161
+ "bax": {
162
+ "node": {
163
+ "title": "boo.bax",
164
+ "type": "boolean",
165
+ },
166
+ "required": true,
167
+ },
168
+ },
169
+ "source": "filename.ts",
170
+ "title": "boo",
171
+ "type": "object",
172
+ },
173
+ ],
174
+ "genericTokens": undefined,
175
+ "name": "test",
176
+ "source": "filename.ts",
177
+ "title": "Bar",
178
+ "type": "and",
179
+ },
180
+ ]
181
+ `;
182
+
183
+ exports[`Complex Types > Omit with type union 1`] = `
184
+ [
185
+ {
186
+ "genericTokens": undefined,
187
+ "name": "test",
188
+ "or": [
189
+ {
190
+ "additionalProperties": false,
191
+ "genericTokens": undefined,
192
+ "name": "foo",
193
+ "properties": {
194
+ "far": {
195
+ "node": {
196
+ "title": "foo.far",
197
+ "type": "string",
198
+ },
199
+ "required": true,
200
+ },
201
+ "fax": {
202
+ "node": {
203
+ "title": "foo.fax",
204
+ "type": "number",
205
+ },
206
+ "required": true,
207
+ },
208
+ },
209
+ "source": "filename.ts",
210
+ "title": "foo",
211
+ "type": "object",
212
+ },
213
+ {
214
+ "additionalProperties": false,
215
+ "genericTokens": undefined,
216
+ "name": "boo",
217
+ "properties": {
218
+ "far": {
219
+ "node": {
220
+ "title": "boo.far",
221
+ "type": "string",
222
+ },
223
+ "required": true,
224
+ },
225
+ },
226
+ "source": "filename.ts",
227
+ "title": "boo",
228
+ "type": "object",
229
+ },
230
+ ],
231
+ "source": "filename.ts",
232
+ "title": "Bar",
233
+ "type": "or",
234
+ },
235
+ ]
236
+ `;
237
+
238
+ exports[`Complex Types > Pick 1`] = `
239
+ [
240
+ {
241
+ "additionalProperties": false,
242
+ "genericTokens": undefined,
243
+ "name": "foo",
244
+ "properties": {
245
+ "bar": {
246
+ "node": {
247
+ "title": "foo.bar",
248
+ "type": "string",
249
+ },
250
+ "required": true,
251
+ },
252
+ },
253
+ "source": "filename.ts",
254
+ "title": "Bar",
255
+ "type": "object",
256
+ },
257
+ ]
258
+ `;
259
+
260
+ exports[`Complex Types > Pick with interface intersection 1`] = `
261
+ [
262
+ {
263
+ "genericTokens": undefined,
264
+ "name": "test",
265
+ "or": [
266
+ {
267
+ "additionalProperties": false,
268
+ "genericTokens": undefined,
269
+ "name": "foo",
270
+ "properties": {
271
+ "far": {
272
+ "node": {
273
+ "title": "foo.far",
274
+ "type": "string",
275
+ },
276
+ "required": true,
277
+ },
278
+ },
279
+ "source": "filename.ts",
280
+ "title": "foo",
281
+ "type": "object",
282
+ },
283
+ {
284
+ "additionalProperties": false,
285
+ "genericTokens": undefined,
286
+ "name": "boo",
287
+ "properties": {
288
+ "far": {
289
+ "node": {
290
+ "title": "boo.far",
291
+ "type": "string",
292
+ },
293
+ "required": true,
294
+ },
295
+ },
296
+ "source": "filename.ts",
297
+ "title": "boo",
298
+ "type": "object",
299
+ },
300
+ ],
301
+ "source": "filename.ts",
302
+ "title": "Bar",
303
+ "type": "or",
304
+ },
305
+ ]
306
+ `;
307
+
308
+ exports[`Complex Types > Pick with interface union 1`] = `
309
+ [
310
+ {
311
+ "genericTokens": undefined,
312
+ "name": "test",
313
+ "or": [
314
+ {
315
+ "additionalProperties": false,
316
+ "genericTokens": undefined,
317
+ "name": "foo",
318
+ "properties": {
319
+ "far": {
320
+ "node": {
321
+ "title": "foo.far",
322
+ "type": "string",
323
+ },
324
+ "required": true,
325
+ },
326
+ },
327
+ "source": "filename.ts",
328
+ "title": "foo",
329
+ "type": "object",
330
+ },
331
+ {
332
+ "additionalProperties": false,
333
+ "genericTokens": undefined,
334
+ "name": "boo",
335
+ "properties": {
336
+ "far": {
337
+ "node": {
338
+ "title": "boo.far",
339
+ "type": "number",
340
+ },
341
+ "required": true,
342
+ },
343
+ },
344
+ "source": "filename.ts",
345
+ "title": "boo",
346
+ "type": "object",
347
+ },
348
+ ],
349
+ "source": "filename.ts",
350
+ "title": "Bar",
351
+ "type": "or",
352
+ },
353
+ ]
354
+ `;
355
+
356
+ exports[`Edge Cases > Modifying Cache References 1`] = `
357
+ [
358
+ {
359
+ "and": [
360
+ {
361
+ "and": [
362
+ {
363
+ "genericTokens": undefined,
364
+ "name": "types",
365
+ "or": [
366
+ {
367
+ "additionalProperties": false,
368
+ "genericTokens": undefined,
369
+ "name": "foo",
370
+ "properties": {
371
+ "foo": {
372
+ "node": {
373
+ "title": "foo.foo",
374
+ "type": "string",
375
+ },
376
+ "required": true,
377
+ },
378
+ },
379
+ "source": "filename.ts",
380
+ "title": "foo",
381
+ "type": "object",
382
+ },
383
+ {
384
+ "additionalProperties": false,
385
+ "genericTokens": undefined,
386
+ "name": "bar",
387
+ "properties": {
388
+ "bar": {
389
+ "node": {
390
+ "title": "bar.bar",
391
+ "type": "number",
392
+ },
393
+ "required": true,
394
+ },
395
+ },
396
+ "source": "filename.ts",
397
+ "title": "bar",
398
+ "type": "object",
399
+ },
400
+ ],
401
+ "source": "filename.ts",
402
+ "title": "types",
403
+ "type": "or",
404
+ },
405
+ {
406
+ "additionalProperties": false,
407
+ "properties": {
408
+ "baz": {
409
+ "node": {
410
+ "title": "baz",
411
+ "type": "number",
412
+ },
413
+ "required": true,
414
+ },
415
+ },
416
+ "type": "object",
417
+ },
418
+ ],
419
+ "genericTokens": undefined,
420
+ "name": "requiredTypes",
421
+ "source": "filename.ts",
422
+ "title": "requiredTypes",
423
+ "type": "and",
424
+ },
425
+ {
426
+ "additionalProperties": false,
427
+ "properties": {
428
+ "baz": {
429
+ "node": {
430
+ "title": "baz",
431
+ "type": "number",
432
+ },
433
+ "required": false,
434
+ },
435
+ },
436
+ "type": "object",
437
+ },
438
+ ],
439
+ "genericTokens": undefined,
440
+ "name": "test",
441
+ "source": "filename.ts",
442
+ "title": "test",
443
+ "type": "and",
444
+ },
445
+ ]
446
+ `;
447
+
448
+ exports[`Generic Declarations > Basic Generic Type 1`] = `
449
+ [
450
+ {
451
+ "genericTokens": [
452
+ {
453
+ "constraints": {
454
+ "type": "any",
455
+ },
456
+ "default": {
457
+ "type": "any",
458
+ },
459
+ "symbol": "T",
460
+ },
461
+ ],
462
+ "name": "Foo",
463
+ "or": [
464
+ {
465
+ "title": "Foo",
466
+ "type": "string",
467
+ },
468
+ {
469
+ "ref": "T",
470
+ "title": "Foo",
471
+ "type": "ref",
472
+ },
473
+ ],
474
+ "source": "filename.ts",
475
+ "title": "Foo",
476
+ "type": "or",
477
+ },
478
+ ]
479
+ `;
480
+
481
+ exports[`Generic Declarations > Generic with Constraints 1`] = `
482
+ [
483
+ {
484
+ "genericTokens": [
485
+ {
486
+ "constraints": {
487
+ "type": "string",
488
+ },
489
+ "default": {
490
+ "type": "string",
491
+ },
492
+ "symbol": "T",
493
+ },
494
+ ],
495
+ "name": "Foo",
496
+ "or": [
497
+ {
498
+ "title": "Foo",
499
+ "type": "number",
500
+ },
501
+ {
502
+ "ref": "T",
503
+ "title": "Foo",
504
+ "type": "ref",
505
+ },
506
+ ],
507
+ "source": "filename.ts",
508
+ "title": "Foo",
509
+ "type": "or",
510
+ },
511
+ ]
512
+ `;
513
+
514
+ exports[`Generic Declarations > Implementing Generic Type 1`] = `
515
+ [
516
+ {
517
+ "genericTokens": undefined,
518
+ "name": "Bar",
519
+ "or": [
520
+ {
521
+ "title": "Bar",
522
+ "type": "boolean",
523
+ },
524
+ {
525
+ "genericTokens": [
526
+ {
527
+ "constraints": {
528
+ "type": "any",
529
+ },
530
+ "default": {
531
+ "type": "any",
532
+ },
533
+ "symbol": "T",
534
+ },
535
+ ],
536
+ "name": "Foo<number>",
537
+ "or": [
538
+ {
539
+ "title": "Foo",
540
+ "type": "string",
541
+ },
542
+ {
543
+ "title": "Foo",
544
+ "type": "number",
545
+ },
546
+ ],
547
+ "source": "filename.ts",
548
+ "title": "Foo",
549
+ "type": "or",
550
+ },
551
+ ],
552
+ "source": "filename.ts",
553
+ "title": "Bar",
554
+ "type": "or",
555
+ },
556
+ ]
557
+ `;
558
+
559
+ exports[`Generic Declarations > Implementing Interface with Generics 1`] = `[]`;
560
+
561
+ exports[`Generic Declarations > Implementing an generic wrapped interface 1`] = `
562
+ [
563
+ {
564
+ "additionalProperties": false,
565
+ "genericTokens": undefined,
566
+ "name": "Test",
567
+ "properties": {
568
+ "bar": {
569
+ "node": {
570
+ "title": "base.bar",
571
+ "type": "string",
572
+ },
573
+ "required": true,
574
+ },
575
+ "test": {
576
+ "node": {
577
+ "title": "Test.test",
578
+ "type": "any",
579
+ },
580
+ "required": true,
581
+ },
582
+ },
583
+ "source": "filename.ts",
584
+ "title": "Test",
585
+ "type": "object",
586
+ },
587
+ ]
588
+ `;
589
+
590
+ exports[`Generic Declarations > Interface with Generics 1`] = `
591
+ [
592
+ {
593
+ "additionalProperties": false,
594
+ "genericTokens": [
595
+ {
596
+ "constraints": {
597
+ "type": "any",
598
+ },
599
+ "default": {
600
+ "type": "any",
601
+ },
602
+ "symbol": "T",
603
+ },
604
+ ],
605
+ "name": "Foo",
606
+ "properties": {
607
+ "bar": {
608
+ "node": {
609
+ "ref": "T",
610
+ "title": "Foo.bar",
611
+ "type": "ref",
612
+ },
613
+ "required": true,
614
+ },
615
+ },
616
+ "source": "filename.ts",
617
+ "title": "Foo",
618
+ "type": "object",
619
+ },
620
+ ]
621
+ `;
622
+
623
+ exports[`Generic Declarations > Interface with Generics and Constraints 1`] = `
624
+ [
625
+ {
626
+ "additionalProperties": false,
627
+ "genericTokens": [
628
+ {
629
+ "constraints": {
630
+ "type": "string",
631
+ },
632
+ "default": {
633
+ "type": "string",
634
+ },
635
+ "symbol": "T",
636
+ },
637
+ ],
638
+ "name": "Foo",
639
+ "properties": {
640
+ "bar": {
641
+ "node": {
642
+ "ref": "T",
643
+ "title": "Foo.bar",
644
+ "type": "ref",
645
+ },
646
+ "required": true,
647
+ },
648
+ },
649
+ "source": "filename.ts",
650
+ "title": "Foo",
651
+ "type": "object",
652
+ },
653
+ ]
654
+ `;
655
+
656
+ exports[`Index Types > Basic 1`] = `
657
+ [
658
+ {
659
+ "additionalProperties": false,
660
+ "genericTokens": undefined,
661
+ "name": "test",
662
+ "properties": {
663
+ "key": {
664
+ "node": {
665
+ "title": "test.key",
666
+ "type": "string",
667
+ },
668
+ "required": true,
669
+ },
670
+ "key2": {
671
+ "node": {
672
+ "title": "test.key2",
673
+ "type": "number",
674
+ },
675
+ "required": true,
676
+ },
677
+ },
678
+ "source": "filename.ts",
679
+ "title": "test",
680
+ "type": "object",
681
+ },
682
+ ]
683
+ `;
684
+
685
+ exports[`Index Types > Complex Types 1`] = `
686
+ [
687
+ {
688
+ "additionalProperties": false,
689
+ "genericTokens": undefined,
690
+ "name": "test",
691
+ "properties": {
692
+ "key": {
693
+ "node": {
694
+ "additionalProperties": false,
695
+ "genericTokens": undefined,
696
+ "name": "something",
697
+ "properties": {
698
+ "prop1": {
699
+ "node": {
700
+ "title": "something.prop1",
701
+ "type": "string",
702
+ },
703
+ "required": true,
704
+ },
705
+ "prop2": {
706
+ "node": {
707
+ "title": "something.prop2",
708
+ "type": "number",
709
+ },
710
+ "required": true,
711
+ },
712
+ },
713
+ "source": "filename.ts",
714
+ "title": "test.key",
715
+ "type": "object",
716
+ },
717
+ "required": true,
718
+ },
719
+ },
720
+ "source": "filename.ts",
721
+ "title": "test",
722
+ "type": "object",
723
+ },
724
+ ]
725
+ `;
726
+
727
+ exports[`Interface Exports > Basic Interface Type 1`] = `
728
+ [
729
+ {
730
+ "additionalProperties": false,
731
+ "genericTokens": undefined,
732
+ "name": "Foo",
733
+ "properties": {
734
+ "bar": {
735
+ "node": {
736
+ "title": "Foo.bar",
737
+ "type": "string",
738
+ },
739
+ "required": true,
740
+ },
741
+ "bax": {
742
+ "node": {
743
+ "title": "Foo.bax",
744
+ "type": "number",
745
+ },
746
+ "required": true,
747
+ },
748
+ },
749
+ "source": "filename.ts",
750
+ "title": "Foo",
751
+ "type": "object",
752
+ },
753
+ ]
754
+ `;
755
+
756
+ exports[`Interface Exports > Implementing more than one Interfaces 1`] = `
757
+ [
758
+ {
759
+ "additionalProperties": false,
760
+ "genericTokens": undefined,
761
+ "name": "Test",
762
+ "properties": {
763
+ "bar": {
764
+ "node": {
765
+ "title": "Bar.bar",
766
+ "type": "string",
767
+ },
768
+ "required": true,
769
+ },
770
+ "foo": {
771
+ "node": {
772
+ "title": "Foo.foo",
773
+ "type": "number",
774
+ },
775
+ "required": true,
776
+ },
777
+ "test": {
778
+ "node": {
779
+ "title": "Test.test",
780
+ "type": "any",
781
+ },
782
+ "required": true,
783
+ },
784
+ },
785
+ "source": "filename.ts",
786
+ "title": "Test",
787
+ "type": "object",
788
+ },
789
+ ]
790
+ `;
791
+
792
+ exports[`Interface Exports > Interface with Inheritance 1`] = `
793
+ [
794
+ {
795
+ "additionalProperties": false,
796
+ "genericTokens": undefined,
797
+ "name": "Foo",
798
+ "properties": {
799
+ "bar": {
800
+ "node": {
801
+ "title": "Foo.bar",
802
+ "type": "string",
803
+ },
804
+ "required": true,
805
+ },
806
+ "baw": {
807
+ "node": {
808
+ "title": "Base.baw",
809
+ "type": "any",
810
+ },
811
+ "required": true,
812
+ },
813
+ "bax": {
814
+ "node": {
815
+ "title": "Foo.bax",
816
+ "type": "number",
817
+ },
818
+ "required": false,
819
+ },
820
+ },
821
+ "source": "filename.ts",
822
+ "title": "Foo",
823
+ "type": "object",
824
+ },
825
+ ]
826
+ `;
827
+
828
+ exports[`Interface Exports > Interface with Optional parameters 1`] = `
829
+ [
830
+ {
831
+ "additionalProperties": false,
832
+ "genericTokens": undefined,
833
+ "name": "Foo",
834
+ "properties": {
835
+ "bar": {
836
+ "node": {
837
+ "title": "Foo.bar",
838
+ "type": "string",
839
+ },
840
+ "required": true,
841
+ },
842
+ "bax": {
843
+ "node": {
844
+ "title": "Foo.bax",
845
+ "type": "number",
846
+ },
847
+ "required": false,
848
+ },
849
+ },
850
+ "source": "filename.ts",
851
+ "title": "Foo",
852
+ "type": "object",
853
+ },
854
+ ]
855
+ `;
856
+
857
+ exports[`String Templates > Basic 1`] = `
858
+ [
859
+ {
860
+ "format": "String is a .*, number is a [0-9]* and boolean is a true|false",
861
+ "genericTokens": undefined,
862
+ "name": "Bar",
863
+ "source": "filename.ts",
864
+ "title": "Bar",
865
+ "type": "template",
866
+ },
867
+ ]
868
+ `;
869
+
870
+ exports[`String Templates > Type References 1`] = `
871
+ [
872
+ {
873
+ "format": "String is a .*, number is a [0-9]* and boolean is a true|false",
874
+ "genericTokens": undefined,
875
+ "name": "Bar",
876
+ "source": "filename.ts",
877
+ "title": "Bar",
878
+ "type": "template",
879
+ },
880
+ ]
881
+ `;
882
+
883
+ exports[`Type Exports > Basic Array Type 1`] = `
884
+ [
885
+ {
886
+ "elementType": {
887
+ "type": "string",
888
+ },
889
+ "genericTokens": undefined,
890
+ "name": "Foo",
891
+ "source": "filename.ts",
892
+ "title": "Foo",
893
+ "type": "array",
894
+ },
895
+ ]
896
+ `;
897
+
898
+ exports[`Type Exports > Basic Union Type 1`] = `
899
+ [
900
+ {
901
+ "genericTokens": undefined,
902
+ "name": "Foo",
903
+ "or": [
904
+ {
905
+ "title": "Foo",
906
+ "type": "number",
907
+ },
908
+ {
909
+ "title": "Foo",
910
+ "type": "string",
911
+ },
912
+ ],
913
+ "source": "filename.ts",
914
+ "title": "Foo",
915
+ "type": "or",
916
+ },
917
+ ]
918
+ `;
919
+
920
+ exports[`Type with typeof > Indexing (long) 1`] = `
921
+ [
922
+ {
923
+ "genericTokens": undefined,
924
+ "name": "options",
925
+ "or": [
926
+ {
927
+ "const": 1,
928
+ "type": "number",
929
+ },
930
+ {
931
+ "const": 2,
932
+ "type": "number",
933
+ },
934
+ {
935
+ "const": 3,
936
+ "type": "number",
937
+ },
938
+ {
939
+ "const": 4,
940
+ "type": "number",
941
+ },
942
+ {
943
+ "const": 5,
944
+ "type": "number",
945
+ },
946
+ {
947
+ "const": 6,
948
+ "type": "number",
949
+ },
950
+ {
951
+ "const": 7,
952
+ "type": "number",
953
+ },
954
+ {
955
+ "const": 8,
956
+ "type": "number",
957
+ },
958
+ {
959
+ "const": 9,
960
+ "type": "number",
961
+ },
962
+ {
963
+ "const": 10,
964
+ "type": "number",
965
+ },
966
+ {
967
+ "const": 11,
968
+ "type": "number",
969
+ },
970
+ {
971
+ "const": 12,
972
+ "type": "number",
973
+ },
974
+ {
975
+ "const": 13,
976
+ "type": "number",
977
+ },
978
+ {
979
+ "const": 14,
980
+ "type": "number",
981
+ },
982
+ {
983
+ "const": 15,
984
+ "type": "number",
985
+ },
986
+ {
987
+ "const": 16,
988
+ "type": "number",
989
+ },
990
+ {
991
+ "const": 17,
992
+ "type": "number",
993
+ },
994
+ {
995
+ "const": 18,
996
+ "type": "number",
997
+ },
998
+ {
999
+ "const": 19,
1000
+ "type": "number",
1001
+ },
1002
+ {
1003
+ "const": 20,
1004
+ "type": "number",
1005
+ },
1006
+ {
1007
+ "const": 21,
1008
+ "type": "number",
1009
+ },
1010
+ {
1011
+ "const": 22,
1012
+ "type": "number",
1013
+ },
1014
+ {
1015
+ "const": 23,
1016
+ "type": "number",
1017
+ },
1018
+ {
1019
+ "const": 24,
1020
+ "type": "number",
1021
+ },
1022
+ {
1023
+ "const": 25,
1024
+ "type": "number",
1025
+ },
1026
+ {
1027
+ "const": 26,
1028
+ "type": "number",
1029
+ },
1030
+ {
1031
+ "const": 27,
1032
+ "type": "number",
1033
+ },
1034
+ {
1035
+ "const": 28,
1036
+ "type": "number",
1037
+ },
1038
+ {
1039
+ "const": 29,
1040
+ "type": "number",
1041
+ },
1042
+ {
1043
+ "const": 30,
1044
+ "type": "number",
1045
+ },
1046
+ {
1047
+ "const": 31,
1048
+ "type": "number",
1049
+ },
1050
+ {
1051
+ "const": 32,
1052
+ "type": "number",
1053
+ },
1054
+ {
1055
+ "const": 33,
1056
+ "type": "number",
1057
+ },
1058
+ {
1059
+ "const": 34,
1060
+ "type": "number",
1061
+ },
1062
+ {
1063
+ "const": 35,
1064
+ "type": "number",
1065
+ },
1066
+ {
1067
+ "const": 36,
1068
+ "type": "number",
1069
+ },
1070
+ {
1071
+ "const": 37,
1072
+ "type": "number",
1073
+ },
1074
+ {
1075
+ "const": 38,
1076
+ "type": "number",
1077
+ },
1078
+ {
1079
+ "const": 39,
1080
+ "type": "number",
1081
+ },
1082
+ {
1083
+ "const": 40,
1084
+ "type": "number",
1085
+ },
1086
+ {
1087
+ "const": 41,
1088
+ "type": "number",
1089
+ },
1090
+ {
1091
+ "const": 42,
1092
+ "type": "number",
1093
+ },
1094
+ {
1095
+ "const": 43,
1096
+ "type": "number",
1097
+ },
1098
+ {
1099
+ "const": 44,
1100
+ "type": "number",
1101
+ },
1102
+ {
1103
+ "const": 45,
1104
+ "type": "number",
1105
+ },
1106
+ {
1107
+ "const": 46,
1108
+ "type": "number",
1109
+ },
1110
+ {
1111
+ "const": 47,
1112
+ "type": "number",
1113
+ },
1114
+ {
1115
+ "const": 48,
1116
+ "type": "number",
1117
+ },
1118
+ {
1119
+ "const": 49,
1120
+ "type": "number",
1121
+ },
1122
+ {
1123
+ "const": 50,
1124
+ "type": "number",
1125
+ },
1126
+ {
1127
+ "const": 51,
1128
+ "type": "number",
1129
+ },
1130
+ {
1131
+ "const": 52,
1132
+ "type": "number",
1133
+ },
1134
+ {
1135
+ "const": 53,
1136
+ "type": "number",
1137
+ },
1138
+ {
1139
+ "const": 54,
1140
+ "type": "number",
1141
+ },
1142
+ {
1143
+ "const": 55,
1144
+ "type": "number",
1145
+ },
1146
+ {
1147
+ "const": 56,
1148
+ "type": "number",
1149
+ },
1150
+ {
1151
+ "const": 57,
1152
+ "type": "number",
1153
+ },
1154
+ {
1155
+ "const": 58,
1156
+ "type": "number",
1157
+ },
1158
+ ],
1159
+ "source": "filename.ts",
1160
+ "title": "options",
1161
+ "type": "or",
1162
+ },
1163
+ ]
1164
+ `;
1165
+
1166
+ exports[`Type with typeof > Indexing 1`] = `
1167
+ [
1168
+ {
1169
+ "genericTokens": undefined,
1170
+ "name": "options",
1171
+ "or": [
1172
+ {
1173
+ "const": "one",
1174
+ "type": "string",
1175
+ },
1176
+ {
1177
+ "const": "two",
1178
+ "type": "string",
1179
+ },
1180
+ {
1181
+ "const": "three",
1182
+ "type": "string",
1183
+ },
1184
+ ],
1185
+ "source": "filename.ts",
1186
+ "title": "options",
1187
+ "type": "or",
1188
+ },
1189
+ {
1190
+ "genericTokens": undefined,
1191
+ "name": "options2",
1192
+ "or": [
1193
+ {
1194
+ "const": "one",
1195
+ "type": "string",
1196
+ },
1197
+ {
1198
+ "const": "two",
1199
+ "type": "string",
1200
+ },
1201
+ {
1202
+ "const": "three",
1203
+ "type": "string",
1204
+ },
1205
+ ],
1206
+ "source": "filename.ts",
1207
+ "title": "options2",
1208
+ "type": "or",
1209
+ },
1210
+ ]
1211
+ `;
1212
+
1213
+ exports[`Variable Exports > Aliased Arrow function exports its own name 1`] = `
1214
+ [
1215
+ {
1216
+ "name": "foo",
1217
+ "parameters": [
1218
+ {
1219
+ "default": undefined,
1220
+ "name": "input",
1221
+ "optional": undefined,
1222
+ "type": {
1223
+ "type": "number",
1224
+ },
1225
+ },
1226
+ ],
1227
+ "returnType": {
1228
+ "additionalProperties": false,
1229
+ "genericTokens": undefined,
1230
+ "name": "Bar",
1231
+ "properties": {
1232
+ "foo": {
1233
+ "node": {
1234
+ "title": "Bar.foo",
1235
+ "type": "string",
1236
+ },
1237
+ "required": true,
1238
+ },
1239
+ "fuz": {
1240
+ "node": {
1241
+ "title": "Bar.fuz",
1242
+ "type": "number",
1243
+ },
1244
+ "required": true,
1245
+ },
1246
+ },
1247
+ "source": "filename.ts",
1248
+ "title": "Bar",
1249
+ "type": "object",
1250
+ },
1251
+ "source": "filename.ts",
1252
+ "type": "function",
1253
+ },
1254
+ {
1255
+ "name": "baz",
1256
+ "parameters": [
1257
+ {
1258
+ "default": undefined,
1259
+ "name": "input",
1260
+ "optional": undefined,
1261
+ "type": {
1262
+ "type": "number",
1263
+ },
1264
+ },
1265
+ ],
1266
+ "returnType": {
1267
+ "additionalProperties": false,
1268
+ "genericTokens": undefined,
1269
+ "name": "Bar",
1270
+ "properties": {
1271
+ "foo": {
1272
+ "node": {
1273
+ "title": "Bar.foo",
1274
+ "type": "string",
1275
+ },
1276
+ "required": true,
1277
+ },
1278
+ "fuz": {
1279
+ "node": {
1280
+ "title": "Bar.fuz",
1281
+ "type": "number",
1282
+ },
1283
+ "required": true,
1284
+ },
1285
+ },
1286
+ "source": "filename.ts",
1287
+ "title": "Bar",
1288
+ "type": "object",
1289
+ },
1290
+ "source": "filename.ts",
1291
+ "type": "function",
1292
+ },
1293
+ ]
1294
+ `;
1295
+
1296
+ exports[`Variable Exports > Aliased variable 1`] = `
1297
+ [
1298
+ {
1299
+ "additionalProperties": false,
1300
+ "genericTokens": undefined,
1301
+ "name": "Bar",
1302
+ "properties": {
1303
+ "foo": {
1304
+ "node": {
1305
+ "title": "Bar.foo",
1306
+ "type": "string",
1307
+ },
1308
+ "required": true,
1309
+ },
1310
+ "fuz": {
1311
+ "node": {
1312
+ "title": "Bar.fuz",
1313
+ "type": "number",
1314
+ },
1315
+ "required": true,
1316
+ },
1317
+ },
1318
+ "source": "filename.ts",
1319
+ "title": "Bar",
1320
+ "type": "object",
1321
+ },
1322
+ ]
1323
+ `;
1324
+
1325
+ exports[`Variable Exports > Array const exports 1`] = `
1326
+ [
1327
+ {
1328
+ "const": [
1329
+ {
1330
+ "const": 1,
1331
+ "type": "number",
1332
+ },
1333
+ {
1334
+ "const": 2,
1335
+ "type": "number",
1336
+ },
1337
+ {
1338
+ "const": 3,
1339
+ "type": "number",
1340
+ },
1341
+ ],
1342
+ "elementType": {
1343
+ "type": "any",
1344
+ },
1345
+ "name": "foo",
1346
+ "source": "filename.ts",
1347
+ "type": "array",
1348
+ },
1349
+ ]
1350
+ `;
1351
+
1352
+ exports[`Variable Exports > Array const exports with spread 1`] = `
1353
+ [
1354
+ {
1355
+ "const": [
1356
+ {
1357
+ "const": 1,
1358
+ "type": "number",
1359
+ },
1360
+ {
1361
+ "const": 2,
1362
+ "type": "number",
1363
+ },
1364
+ {
1365
+ "const": 3,
1366
+ "type": "number",
1367
+ },
1368
+ {
1369
+ "const": 4,
1370
+ "type": "number",
1371
+ },
1372
+ ],
1373
+ "elementType": {
1374
+ "type": "any",
1375
+ },
1376
+ "name": "bar",
1377
+ "source": "filename.ts",
1378
+ "type": "array",
1379
+ },
1380
+ ]
1381
+ `;
1382
+
1383
+ exports[`Variable Exports > Arrow function with object return type 1`] = `
1384
+ [
1385
+ {
1386
+ "name": "foo",
1387
+ "parameters": [],
1388
+ "returnType": {
1389
+ "additionalProperties": false,
1390
+ "genericTokens": undefined,
1391
+ "name": "Bar",
1392
+ "properties": {
1393
+ "foo": {
1394
+ "node": {
1395
+ "title": "Bar.foo",
1396
+ "type": "string",
1397
+ },
1398
+ "required": true,
1399
+ },
1400
+ "fuz": {
1401
+ "node": {
1402
+ "title": "Bar.fuz",
1403
+ "type": "number",
1404
+ },
1405
+ "required": true,
1406
+ },
1407
+ },
1408
+ "source": "filename.ts",
1409
+ "title": "Bar",
1410
+ "type": "object",
1411
+ },
1412
+ "source": "filename.ts",
1413
+ "type": "function",
1414
+ },
1415
+ ]
1416
+ `;
1417
+
1418
+ exports[`Variable Exports > Arrow function with parameters 1`] = `
1419
+ [
1420
+ {
1421
+ "name": "foo",
1422
+ "parameters": [
1423
+ {
1424
+ "default": undefined,
1425
+ "name": "input",
1426
+ "optional": undefined,
1427
+ "type": {
1428
+ "type": "number",
1429
+ },
1430
+ },
1431
+ ],
1432
+ "returnType": {
1433
+ "additionalProperties": false,
1434
+ "genericTokens": undefined,
1435
+ "name": "Bar",
1436
+ "properties": {
1437
+ "foo": {
1438
+ "node": {
1439
+ "title": "Bar.foo",
1440
+ "type": "string",
1441
+ },
1442
+ "required": true,
1443
+ },
1444
+ "fuz": {
1445
+ "node": {
1446
+ "title": "Bar.fuz",
1447
+ "type": "number",
1448
+ },
1449
+ "required": true,
1450
+ },
1451
+ },
1452
+ "source": "filename.ts",
1453
+ "title": "Bar",
1454
+ "type": "object",
1455
+ },
1456
+ "source": "filename.ts",
1457
+ "type": "function",
1458
+ },
1459
+ ]
1460
+ `;
1461
+
1462
+ exports[`Variable Exports > Function with object return type 1`] = `
1463
+ [
1464
+ {
1465
+ "additionalProperties": false,
1466
+ "genericTokens": undefined,
1467
+ "name": "Bar",
1468
+ "properties": {
1469
+ "foo": {
1470
+ "node": {
1471
+ "title": "Bar.foo",
1472
+ "type": "string",
1473
+ },
1474
+ "required": true,
1475
+ },
1476
+ "fuz": {
1477
+ "node": {
1478
+ "title": "Bar.fuz",
1479
+ "type": "number",
1480
+ },
1481
+ "required": true,
1482
+ },
1483
+ },
1484
+ "source": "filename.ts",
1485
+ "title": "Bar",
1486
+ "type": "object",
1487
+ },
1488
+ ]
1489
+ `;
1490
+
1491
+ exports[`Variable Exports > Function with primitive return type 1`] = `
1492
+ [
1493
+ {
1494
+ "name": "foo",
1495
+ "source": "filename.ts",
1496
+ "type": "string",
1497
+ },
1498
+ ]
1499
+ `;
1500
+
1501
+ exports[`Variable Exports > Object const exports 1`] = `
1502
+ [
1503
+ {
1504
+ "additionalProperties": false,
1505
+ "name": "foo",
1506
+ "properties": {
1507
+ "bar": {
1508
+ "node": {
1509
+ "const": "test",
1510
+ "type": "string",
1511
+ },
1512
+ "required": true,
1513
+ },
1514
+ "far": {
1515
+ "node": {
1516
+ "const": false,
1517
+ "type": "boolean",
1518
+ },
1519
+ "required": true,
1520
+ },
1521
+ "foo": {
1522
+ "node": {
1523
+ "const": 1,
1524
+ "type": "number",
1525
+ },
1526
+ "required": true,
1527
+ },
1528
+ },
1529
+ "source": "filename.ts",
1530
+ "type": "object",
1531
+ },
1532
+ ]
1533
+ `;
1534
+
1535
+ exports[`Variable Exports > Object const exports with spread 1`] = `
1536
+ [
1537
+ {
1538
+ "additionalProperties": false,
1539
+ "name": "far",
1540
+ "properties": {
1541
+ "bar": {
1542
+ "node": {
1543
+ "const": "test",
1544
+ "type": "string",
1545
+ },
1546
+ "required": true,
1547
+ },
1548
+ "far": {
1549
+ "node": {
1550
+ "const": false,
1551
+ "type": "boolean",
1552
+ },
1553
+ "required": true,
1554
+ },
1555
+ "foo": {
1556
+ "node": {
1557
+ "const": 1,
1558
+ "type": "number",
1559
+ },
1560
+ "required": true,
1561
+ },
1562
+ "mar": {
1563
+ "node": {
1564
+ "const": 2,
1565
+ "type": "number",
1566
+ },
1567
+ "required": true,
1568
+ },
1569
+ },
1570
+ "source": "filename.ts",
1571
+ "type": "object",
1572
+ },
1573
+ ]
1574
+ `;
1575
+
1576
+ exports[`Variable Exports > Primitive const exports 1`] = `
1577
+ [
1578
+ {
1579
+ "const": 1,
1580
+ "name": "foo",
1581
+ "source": "filename.ts",
1582
+ "type": "number",
1583
+ },
1584
+ {
1585
+ "const": "test",
1586
+ "name": "bar",
1587
+ "source": "filename.ts",
1588
+ "type": "string",
1589
+ },
1590
+ {
1591
+ "const": true,
1592
+ "name": "far",
1593
+ "source": "filename.ts",
1594
+ "type": "boolean",
1595
+ },
1596
+ ]
1597
+ `;
1598
+
1599
+ exports[`Variable Exports > gets named tuple members 1`] = `
1600
+ [
1601
+ {
1602
+ "additionalItems": false,
1603
+ "elementTypes": [
1604
+ {
1605
+ "name": "argName",
1606
+ "optional": undefined,
1607
+ "type": {
1608
+ "type": "string",
1609
+ },
1610
+ },
1611
+ {
1612
+ "name": "argValue",
1613
+ "optional": undefined,
1614
+ "type": {
1615
+ "type": "string",
1616
+ },
1617
+ },
1618
+ ],
1619
+ "genericTokens": undefined,
1620
+ "minItems": 2,
1621
+ "name": "Foo",
1622
+ "source": "filename.ts",
1623
+ "title": "Foo",
1624
+ "type": "tuple",
1625
+ },
1626
+ ]
1627
+ `;
1628
+
1629
+ exports[`Variable Exports > named tuples in generics 1`] = `
1630
+ [
1631
+ {
1632
+ "additionalItems": false,
1633
+ "elementTypes": [
1634
+ {
1635
+ "name": "argName",
1636
+ "optional": undefined,
1637
+ "type": {
1638
+ "type": "string",
1639
+ },
1640
+ },
1641
+ {
1642
+ "name": "argValue",
1643
+ "optional": undefined,
1644
+ "type": {
1645
+ "type": "string",
1646
+ },
1647
+ },
1648
+ ],
1649
+ "genericTokens": undefined,
1650
+ "minItems": 2,
1651
+ "name": "Foo<[argName: string, argValue: string]>",
1652
+ "source": "filename.ts",
1653
+ "title": "Bar",
1654
+ "type": "tuple",
1655
+ },
1656
+ ]
1657
+ `;