1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "TSTypeAliasDeclaration", 6 "id": { 7 "type": "Identifier", 8 "name": "Facts", 9 "loc": { 10 "start": { 11 "line": 17, 12 "column": 6 13 }, 14 "end": { 15 "line": 17, 16 "column": 11 17 } 18 } 19 }, 20 "typeAnnotation": { 21 "type": "TSTypeLiteral", 22 "members": [ 23 { 24 "type": "TSIndexSignature", 25 "parameters": { 26 "type": "Identifier", 27 "name": "key", 28 "typeAnnotation": { 29 "type": "TSStringKeyword", 30 "loc": { 31 "start": { 32 "line": 17, 33 "column": 22 34 }, 35 "end": { 36 "line": 17, 37 "column": 28 38 } 39 } 40 }, 41 "loc": { 42 "start": { 43 "line": 17, 44 "column": 17 45 }, 46 "end": { 47 "line": 17, 48 "column": 20 49 } 50 } 51 }, 52 "typeAnnotation": { 53 "type": "TSBooleanKeyword", 54 "loc": { 55 "start": { 56 "line": 17, 57 "column": 31 58 }, 59 "end": { 60 "line": 17, 61 "column": 38 62 } 63 } 64 }, 65 "readonly": false, 66 "static": false, 67 "loc": { 68 "start": { 69 "line": 17, 70 "column": 16 71 }, 72 "end": { 73 "line": 17, 74 "column": 40 75 } 76 } 77 } 78 ], 79 "loc": { 80 "start": { 81 "line": 17, 82 "column": 14 83 }, 84 "end": { 85 "line": 17, 86 "column": 40 87 } 88 } 89 }, 90 "loc": { 91 "start": { 92 "line": 17, 93 "column": 1 94 }, 95 "end": { 96 "line": 17, 97 "column": 41 98 } 99 } 100 }, 101 { 102 "type": "TSDeclareFunction", 103 "function": { 104 "type": "ScriptFunction", 105 "id": { 106 "type": "Identifier", 107 "name": "checkTruths", 108 "loc": { 109 "start": { 110 "line": 18, 111 "column": 18 112 }, 113 "end": { 114 "line": 18, 115 "column": 29 116 } 117 } 118 }, 119 "generator": false, 120 "async": false, 121 "expression": false, 122 "params": [ 123 { 124 "type": "Identifier", 125 "name": "x", 126 "typeAnnotation": { 127 "type": "TSTypeReference", 128 "typeName": { 129 "type": "Identifier", 130 "name": "Facts", 131 "loc": { 132 "start": { 133 "line": 18, 134 "column": 33 135 }, 136 "end": { 137 "line": 18, 138 "column": 38 139 } 140 } 141 }, 142 "loc": { 143 "start": { 144 "line": 18, 145 "column": 33 146 }, 147 "end": { 148 "line": 18, 149 "column": 38 150 } 151 } 152 }, 153 "loc": { 154 "start": { 155 "line": 18, 156 "column": 30 157 }, 158 "end": { 159 "line": 18, 160 "column": 31 161 } 162 } 163 } 164 ], 165 "returnType": { 166 "type": "TSVoidKeyword", 167 "loc": { 168 "start": { 169 "line": 18, 170 "column": 41 171 }, 172 "end": { 173 "line": 18, 174 "column": 45 175 } 176 } 177 }, 178 "declare": true, 179 "loc": { 180 "start": { 181 "line": 18, 182 "column": 9 183 }, 184 "end": { 185 "line": 18, 186 "column": 46 187 } 188 } 189 }, 190 "loc": { 191 "start": { 192 "line": 18, 193 "column": 9 194 }, 195 "end": { 196 "line": 18, 197 "column": 46 198 } 199 } 200 }, 201 { 202 "type": "TSDeclareFunction", 203 "function": { 204 "type": "ScriptFunction", 205 "id": { 206 "type": "Identifier", 207 "name": "checkM", 208 "loc": { 209 "start": { 210 "line": 19, 211 "column": 18 212 }, 213 "end": { 214 "line": 19, 215 "column": 24 216 } 217 } 218 }, 219 "generator": false, 220 "async": false, 221 "expression": false, 222 "params": [ 223 { 224 "type": "Identifier", 225 "name": "x", 226 "typeAnnotation": { 227 "type": "TSTypeLiteral", 228 "members": [ 229 { 230 "type": "TSPropertySignature", 231 "computed": false, 232 "optional": false, 233 "readonly": false, 234 "key": { 235 "type": "Identifier", 236 "name": "m", 237 "loc": { 238 "start": { 239 "line": 19, 240 "column": 30 241 }, 242 "end": { 243 "line": 19, 244 "column": 31 245 } 246 } 247 }, 248 "typeAnnotation": { 249 "type": "TSBooleanKeyword", 250 "loc": { 251 "start": { 252 "line": 19, 253 "column": 33 254 }, 255 "end": { 256 "line": 19, 257 "column": 40 258 } 259 } 260 }, 261 "loc": { 262 "start": { 263 "line": 19, 264 "column": 30 265 }, 266 "end": { 267 "line": 19, 268 "column": 42 269 } 270 } 271 } 272 ], 273 "loc": { 274 "start": { 275 "line": 19, 276 "column": 28 277 }, 278 "end": { 279 "line": 19, 280 "column": 42 281 } 282 } 283 }, 284 "loc": { 285 "start": { 286 "line": 19, 287 "column": 25 288 }, 289 "end": { 290 "line": 19, 291 "column": 26 292 } 293 } 294 } 295 ], 296 "returnType": { 297 "type": "TSVoidKeyword", 298 "loc": { 299 "start": { 300 "line": 19, 301 "column": 45 302 }, 303 "end": { 304 "line": 19, 305 "column": 49 306 } 307 } 308 }, 309 "declare": true, 310 "loc": { 311 "start": { 312 "line": 19, 313 "column": 9 314 }, 315 "end": { 316 "line": 19, 317 "column": 50 318 } 319 } 320 }, 321 "loc": { 322 "start": { 323 "line": 19, 324 "column": 9 325 }, 326 "end": { 327 "line": 19, 328 "column": 50 329 } 330 } 331 }, 332 { 333 "type": "VariableDeclaration", 334 "declarations": [ 335 { 336 "type": "VariableDeclarator", 337 "id": { 338 "type": "Identifier", 339 "name": "x", 340 "loc": { 341 "start": { 342 "line": 20, 343 "column": 7 344 }, 345 "end": { 346 "line": 20, 347 "column": 8 348 } 349 } 350 }, 351 "init": { 352 "type": "ObjectExpression", 353 "properties": [ 354 { 355 "type": "Property", 356 "method": false, 357 "shorthand": false, 358 "computed": false, 359 "key": { 360 "type": "Identifier", 361 "name": "m", 362 "loc": { 363 "start": { 364 "line": 21, 365 "column": 5 366 }, 367 "end": { 368 "line": 21, 369 "column": 6 370 } 371 } 372 }, 373 "value": { 374 "type": "BooleanLiteral", 375 "value": true, 376 "loc": { 377 "start": { 378 "line": 21, 379 "column": 8 380 }, 381 "end": { 382 "line": 21, 383 "column": 12 384 } 385 } 386 }, 387 "kind": "init", 388 "loc": { 389 "start": { 390 "line": 21, 391 "column": 5 392 }, 393 "end": { 394 "line": 21, 395 "column": 12 396 } 397 } 398 } 399 ], 400 "loc": { 401 "start": { 402 "line": 20, 403 "column": 11 404 }, 405 "end": { 406 "line": 22, 407 "column": 2 408 } 409 } 410 }, 411 "loc": { 412 "start": { 413 "line": 20, 414 "column": 7 415 }, 416 "end": { 417 "line": 22, 418 "column": 2 419 } 420 } 421 } 422 ], 423 "kind": "const", 424 "loc": { 425 "start": { 426 "line": 20, 427 "column": 1 428 }, 429 "end": { 430 "line": 22, 431 "column": 3 432 } 433 } 434 }, 435 { 436 "type": "ExpressionStatement", 437 "expression": { 438 "type": "CallExpression", 439 "callee": { 440 "type": "Identifier", 441 "name": "checkTruths", 442 "loc": { 443 "start": { 444 "line": 24, 445 "column": 1 446 }, 447 "end": { 448 "line": 24, 449 "column": 12 450 } 451 } 452 }, 453 "arguments": [ 454 { 455 "type": "Identifier", 456 "name": "x", 457 "loc": { 458 "start": { 459 "line": 24, 460 "column": 13 461 }, 462 "end": { 463 "line": 24, 464 "column": 14 465 } 466 } 467 } 468 ], 469 "optional": false, 470 "loc": { 471 "start": { 472 "line": 24, 473 "column": 1 474 }, 475 "end": { 476 "line": 24, 477 "column": 15 478 } 479 } 480 }, 481 "loc": { 482 "start": { 483 "line": 24, 484 "column": 1 485 }, 486 "end": { 487 "line": 24, 488 "column": 16 489 } 490 } 491 }, 492 { 493 "type": "ExpressionStatement", 494 "expression": { 495 "type": "CallExpression", 496 "callee": { 497 "type": "Identifier", 498 "name": "checkM", 499 "loc": { 500 "start": { 501 "line": 25, 502 "column": 1 503 }, 504 "end": { 505 "line": 25, 506 "column": 7 507 } 508 } 509 }, 510 "arguments": [ 511 { 512 "type": "Identifier", 513 "name": "x", 514 "loc": { 515 "start": { 516 "line": 25, 517 "column": 8 518 }, 519 "end": { 520 "line": 25, 521 "column": 9 522 } 523 } 524 } 525 ], 526 "optional": false, 527 "loc": { 528 "start": { 529 "line": 25, 530 "column": 1 531 }, 532 "end": { 533 "line": 25, 534 "column": 10 535 } 536 } 537 }, 538 "loc": { 539 "start": { 540 "line": 25, 541 "column": 1 542 }, 543 "end": { 544 "line": 25, 545 "column": 11 546 } 547 } 548 }, 549 { 550 "type": "VariableDeclaration", 551 "declarations": [ 552 { 553 "type": "VariableDeclarator", 554 "id": { 555 "type": "Identifier", 556 "name": "m", 557 "typeAnnotation": { 558 "type": "TSBooleanKeyword", 559 "loc": { 560 "start": { 561 "line": 27, 562 "column": 10 563 }, 564 "end": { 565 "line": 27, 566 "column": 17 567 } 568 } 569 }, 570 "loc": { 571 "start": { 572 "line": 27, 573 "column": 7 574 }, 575 "end": { 576 "line": 27, 577 "column": 8 578 } 579 } 580 }, 581 "init": { 582 "type": "MemberExpression", 583 "object": { 584 "type": "Identifier", 585 "name": "x", 586 "loc": { 587 "start": { 588 "line": 27, 589 "column": 20 590 }, 591 "end": { 592 "line": 27, 593 "column": 21 594 } 595 } 596 }, 597 "property": { 598 "type": "Identifier", 599 "name": "m", 600 "loc": { 601 "start": { 602 "line": 27, 603 "column": 22 604 }, 605 "end": { 606 "line": 27, 607 "column": 23 608 } 609 } 610 }, 611 "computed": false, 612 "optional": false, 613 "loc": { 614 "start": { 615 "line": 27, 616 "column": 20 617 }, 618 "end": { 619 "line": 27, 620 "column": 23 621 } 622 } 623 }, 624 "loc": { 625 "start": { 626 "line": 27, 627 "column": 7 628 }, 629 "end": { 630 "line": 27, 631 "column": 23 632 } 633 } 634 } 635 ], 636 "kind": "const", 637 "loc": { 638 "start": { 639 "line": 27, 640 "column": 1 641 }, 642 "end": { 643 "line": 27, 644 "column": 24 645 } 646 } 647 }, 648 { 649 "type": "TSTypeAliasDeclaration", 650 "id": { 651 "type": "Identifier", 652 "name": "M", 653 "loc": { 654 "start": { 655 "line": 29, 656 "column": 6 657 }, 658 "end": { 659 "line": 29, 660 "column": 7 661 } 662 } 663 }, 664 "typeAnnotation": { 665 "type": "TSTypeOperator", 666 "operator": "keyof", 667 "typeAnnotation": { 668 "type": "TSTypeQuery", 669 "exprName": { 670 "type": "Identifier", 671 "name": "x", 672 "loc": { 673 "start": { 674 "line": 29, 675 "column": 23 676 }, 677 "end": { 678 "line": 29, 679 "column": 24 680 } 681 } 682 }, 683 "loc": { 684 "start": { 685 "line": 29, 686 "column": 16 687 }, 688 "end": { 689 "line": 29, 690 "column": 24 691 } 692 } 693 }, 694 "loc": { 695 "start": { 696 "line": 29, 697 "column": 10 698 }, 699 "end": { 700 "line": 29, 701 "column": 24 702 } 703 } 704 }, 705 "loc": { 706 "start": { 707 "line": 29, 708 "column": 1 709 }, 710 "end": { 711 "line": 29, 712 "column": 25 713 } 714 } 715 }, 716 { 717 "type": "VariableDeclaration", 718 "declarations": [ 719 { 720 "type": "VariableDeclarator", 721 "id": { 722 "type": "Identifier", 723 "name": "x2", 724 "loc": { 725 "start": { 726 "line": 31, 727 "column": 7 728 }, 729 "end": { 730 "line": 31, 731 "column": 9 732 } 733 } 734 }, 735 "init": { 736 "type": "TSSatisfiesExpression", 737 "expression": { 738 "type": "ObjectExpression", 739 "properties": [ 740 { 741 "type": "Property", 742 "method": false, 743 "shorthand": false, 744 "computed": false, 745 "key": { 746 "type": "Identifier", 747 "name": "m", 748 "loc": { 749 "start": { 750 "line": 32, 751 "column": 5 752 }, 753 "end": { 754 "line": 32, 755 "column": 6 756 } 757 } 758 }, 759 "value": { 760 "type": "BooleanLiteral", 761 "value": true, 762 "loc": { 763 "start": { 764 "line": 32, 765 "column": 8 766 }, 767 "end": { 768 "line": 32, 769 "column": 12 770 } 771 } 772 }, 773 "kind": "init", 774 "loc": { 775 "start": { 776 "line": 32, 777 "column": 5 778 }, 779 "end": { 780 "line": 32, 781 "column": 12 782 } 783 } 784 }, 785 { 786 "type": "Property", 787 "method": false, 788 "shorthand": false, 789 "computed": false, 790 "key": { 791 "type": "Identifier", 792 "name": "s", 793 "loc": { 794 "start": { 795 "line": 33, 796 "column": 5 797 }, 798 "end": { 799 "line": 33, 800 "column": 6 801 } 802 } 803 }, 804 "value": { 805 "type": "StringLiteral", 806 "value": "false", 807 "loc": { 808 "start": { 809 "line": 33, 810 "column": 8 811 }, 812 "end": { 813 "line": 33, 814 "column": 15 815 } 816 } 817 }, 818 "kind": "init", 819 "loc": { 820 "start": { 821 "line": 33, 822 "column": 5 823 }, 824 "end": { 825 "line": 33, 826 "column": 15 827 } 828 } 829 } 830 ], 831 "loc": { 832 "start": { 833 "line": 31, 834 "column": 12 835 }, 836 "end": { 837 "line": 34, 838 "column": 2 839 } 840 } 841 }, 842 "typeAnnotation": { 843 "type": "TSTypeReference", 844 "typeName": { 845 "type": "Identifier", 846 "name": "Facts", 847 "loc": { 848 "start": { 849 "line": 34, 850 "column": 13 851 }, 852 "end": { 853 "line": 34, 854 "column": 18 855 } 856 } 857 }, 858 "loc": { 859 "start": { 860 "line": 34, 861 "column": 13 862 }, 863 "end": { 864 "line": 34, 865 "column": 18 866 } 867 } 868 }, 869 "loc": { 870 "start": { 871 "line": 31, 872 "column": 12 873 }, 874 "end": { 875 "line": 34, 876 "column": 19 877 } 878 } 879 }, 880 "loc": { 881 "start": { 882 "line": 31, 883 "column": 7 884 }, 885 "end": { 886 "line": 34, 887 "column": 19 888 } 889 } 890 } 891 ], 892 "kind": "const", 893 "loc": { 894 "start": { 895 "line": 31, 896 "column": 1 897 }, 898 "end": { 899 "line": 34, 900 "column": 19 901 } 902 } 903 } 904 ], 905 "loc": { 906 "start": { 907 "line": 1, 908 "column": 1 909 }, 910 "end": { 911 "line": 34, 912 "column": 19 913 } 914 } 915} 916