(program [0, 0] - [84, 0] (import_statement [0, 0] - [0, 48] (import_clause [0, 12] - [0, 23] (named_imports [0, 12] - [0, 23] (import_specifier [0, 14] - [0, 21] name: (identifier [0, 14] - [0, 21])))) source: (string [0, 29] - [0, 47] (string_fragment [0, 30] - [0, 46]))) (import_statement [1, 0] - [1, 52] (import_clause [1, 7] - [1, 31] (named_imports [1, 7] - [1, 31] (import_specifier [1, 9] - [1, 29] name: (identifier [1, 9] - [1, 29])))) source: (string [1, 37] - [1, 51] (string_fragment [1, 38] - [1, 50]))) (import_statement [2, 0] - [2, 37] (import_clause [2, 7] - [2, 17] (named_imports [2, 7] - [2, 17] (import_specifier [2, 9] - [2, 15] name: (identifier [2, 9] - [2, 15])))) source: (string [2, 23] - [2, 36] (string_fragment [2, 24] - [2, 35]))) (comment [4, 0] - [6, 3]) (export_statement [7, 0] - [22, 1] declaration: (function_declaration [7, 7] - [22, 1] name: (identifier [7, 16] - [7, 27]) parameters: (formal_parameters [7, 27] - [7, 39] (required_parameter [7, 28] - [7, 38] pattern: (identifier [7, 28] - [7, 29]) type: (type_annotation [7, 29] - [7, 38] (type_identifier [7, 31] - [7, 38])))) return_type: (type_annotation [7, 39] - [7, 47] (predefined_type [7, 41] - [7, 47])) body: (statement_block [7, 48] - [22, 1] (lexical_declaration [8, 2] - [8, 43] (variable_declarator [8, 8] - [8, 42] name: (identifier [8, 8] - [8, 14]) value: (call_expression [8, 17] - [8, 42] function: (member_expression [8, 17] - [8, 29] object: (member_expression [8, 17] - [8, 22] object: (identifier [8, 17] - [8, 18]) property: (property_identifier [8, 19] - [8, 22])) property: (property_identifier [8, 23] - [8, 29])) arguments: (arguments [8, 29] - [8, 42] (string [8, 30] - [8, 41] (string_fragment [8, 31] - [8, 40])))))) (if_statement [9, 2] - [11, 3] condition: (parenthesized_expression [9, 5] - [9, 13] (identifier [9, 6] - [9, 12])) consequence: (statement_block [9, 14] - [11, 3] (return_statement [10, 4] - [10, 25] (call_expression [10, 11] - [10, 24] function: (member_expression [10, 11] - [10, 22] object: (identifier [10, 11] - [10, 17]) property: (property_identifier [10, 18] - [10, 22])) arguments: (arguments [10, 22] - [10, 24]))))) (lexical_declaration [13, 2] - [13, 53] (variable_declarator [13, 6] - [13, 52] name: (identifier [13, 6] - [13, 18]) value: (call_expression [13, 21] - [13, 52] function: (member_expression [13, 21] - [13, 33] object: (member_expression [13, 21] - [13, 26] object: (identifier [13, 21] - [13, 22]) property: (property_identifier [13, 23] - [13, 26])) property: (property_identifier [13, 27] - [13, 33])) arguments: (arguments [13, 33] - [13, 52] (string [13, 34] - [13, 51] (string_fragment [13, 35] - [13, 50])))))) (if_statement [14, 2] - [20, 3] condition: (parenthesized_expression [14, 5] - [14, 19] (identifier [14, 6] - [14, 18])) consequence: (statement_block [14, 20] - [20, 3] (if_statement [15, 4] - [17, 5] condition: (parenthesized_expression [15, 7] - [15, 34] (binary_expression [15, 8] - [15, 33] left: (member_expression [15, 8] - [15, 27] object: (identifier [15, 8] - [15, 20]) property: (property_identifier [15, 21] - [15, 27])) right: (number [15, 30] - [15, 33]))) consequence: (statement_block [15, 35] - [17, 5] (expression_statement [16, 6] - [16, 52] (assignment_expression [16, 6] - [16, 51] left: (identifier [16, 6] - [16, 18]) right: (call_expression [16, 21] - [16, 51] function: (member_expression [16, 21] - [16, 43] object: (identifier [16, 21] - [16, 33]) property: (property_identifier [16, 34] - [16, 43])) arguments: (arguments [16, 43] - [16, 51] (number [16, 44] - [16, 45]) (number [16, 47] - [16, 50]))))))) (lexical_declaration [18, 4] - [18, 42] (variable_declarator [18, 10] - [18, 41] name: (identifier [18, 10] - [18, 15]) value: (call_expression [18, 18] - [18, 41] function: (member_expression [18, 18] - [18, 36] object: (identifier [18, 18] - [18, 30]) property: (property_identifier [18, 31] - [18, 36])) arguments: (arguments [18, 36] - [18, 41] (string [18, 37] - [18, 40] (string_fragment [18, 38] - [18, 39])))))) (return_statement [19, 4] - [19, 42] (call_expression [19, 11] - [19, 41] function: (member_expression [19, 11] - [19, 39] object: (subscript_expression [19, 11] - [19, 34] object: (identifier [19, 11] - [19, 16]) index: (binary_expression [19, 17] - [19, 33] left: (member_expression [19, 17] - [19, 29] object: (identifier [19, 17] - [19, 22]) property: (property_identifier [19, 23] - [19, 29])) right: (number [19, 32] - [19, 33]))) property: (property_identifier [19, 35] - [19, 39])) arguments: (arguments [19, 39] - [19, 41]))))) (return_statement [21, 2] - [21, 22] (string [21, 9] - [21, 21] (string_fragment [21, 10] - [21, 20])))))) (export_statement [24, 0] - [39, 1] declaration: (function_declaration [24, 7] - [39, 1] name: (identifier [24, 22] - [24, 36]) parameters: (formal_parameters [24, 36] - [28, 1] (required_parameter [25, 2] - [25, 13] pattern: (identifier [25, 2] - [25, 5]) type: (type_annotation [25, 5] - [25, 13] (predefined_type [25, 7] - [25, 13]))) (required_parameter [26, 2] - [26, 15] pattern: (identifier [26, 2] - [26, 7]) type: (type_annotation [26, 7] - [26, 15] (predefined_type [26, 9] - [26, 15]))) (required_parameter [27, 2] - [27, 18] pattern: (identifier [27, 2] - [27, 10]) type: (type_annotation [27, 10] - [27, 18] (predefined_type [27, 12] - [27, 18])))) return_type: (type_annotation [28, 1] - [28, 19] (generic_type [28, 3] - [28, 19] name: (type_identifier [28, 3] - [28, 10]) type_arguments: (type_arguments [28, 10] - [28, 19] (predefined_type [28, 11] - [28, 18])))) body: (statement_block [28, 20] - [39, 1] (try_statement [29, 2] - [38, 3] body: (statement_block [29, 6] - [35, 3] (lexical_declaration [30, 4] - [30, 43] (variable_declarator [30, 10] - [30, 42] name: (identifier [30, 10] - [30, 17]) value: (await_expression [30, 20] - [30, 42] (call_expression [30, 26] - [30, 42] function: (member_expression [30, 26] - [30, 37] object: (identifier [30, 26] - [30, 32]) property: (property_identifier [30, 33] - [30, 37])) arguments: (arguments [30, 37] - [30, 42] (identifier [30, 38] - [30, 41])))))) (if_statement [31, 4] - [33, 5] condition: (parenthesized_expression [31, 7] - [31, 22] (binary_expression [31, 8] - [31, 21] left: (identifier [31, 8] - [31, 15]) right: (number [31, 20] - [31, 21]))) consequence: (statement_block [31, 23] - [33, 5] (expression_statement [32, 6] - [32, 42] (await_expression [32, 6] - [32, 41] (call_expression [32, 12] - [32, 41] function: (member_expression [32, 12] - [32, 26] object: (identifier [32, 12] - [32, 18]) property: (property_identifier [32, 19] - [32, 26])) arguments: (arguments [32, 26] - [32, 41] (identifier [32, 27] - [32, 30]) (identifier [32, 32] - [32, 40]))))))) (return_statement [34, 4] - [34, 28] (binary_expression [34, 11] - [34, 27] left: (identifier [34, 11] - [34, 18]) right: (identifier [34, 22] - [34, 27])))) handler: (catch_clause [35, 4] - [38, 3] parameter: (identifier [35, 11] - [35, 14]) body: (statement_block [35, 16] - [38, 3] (expression_statement [36, 4] - [36, 54] (call_expression [36, 4] - [36, 53] function: (member_expression [36, 4] - [36, 16] object: (identifier [36, 4] - [36, 11]) property: (property_identifier [36, 12] - [36, 16])) arguments: (arguments [36, 16] - [36, 53] (string [36, 17] - [36, 47] (string_fragment [36, 18] - [36, 46])) (identifier [36, 49] - [36, 52])))) (return_statement [37, 4] - [37, 16] (true [37, 11] - [37, 15])) (comment [37, 17] - [37, 44]))))))) (export_statement [41, 0] - [51, 2] declaration: (lexical_declaration [41, 7] - [51, 2] (variable_declarator [41, 13] - [51, 1] name: (identifier [41, 13] - [41, 29]) value: (object [41, 32] - [51, 1] (shorthand_property_identifier [42, 2] - [42, 16]) (method_definition [43, 2] - [50, 3] name: (property_identifier [43, 8] - [43, 21]) parameters: (formal_parameters [43, 21] - [47, 3] (required_parameter [44, 4] - [44, 15] pattern: (identifier [44, 4] - [44, 7]) type: (type_annotation [44, 7] - [44, 15] (predefined_type [44, 9] - [44, 15]))) (required_parameter [45, 4] - [45, 17] pattern: (identifier [45, 4] - [45, 9]) type: (type_annotation [45, 9] - [45, 17] (predefined_type [45, 11] - [45, 17]))) (required_parameter [46, 4] - [46, 20] pattern: (identifier [46, 4] - [46, 12]) type: (type_annotation [46, 12] - [46, 20] (predefined_type [46, 14] - [46, 20])))) return_type: (type_annotation [47, 3] - [47, 21] (generic_type [47, 5] - [47, 21] name: (type_identifier [47, 5] - [47, 12]) type_arguments: (type_arguments [47, 12] - [47, 21] (predefined_type [47, 13] - [47, 20])))) body: (statement_block [47, 22] - [50, 3] (lexical_declaration [48, 4] - [48, 63] (variable_declarator [48, 10] - [48, 62] name: (identifier [48, 10] - [48, 17]) value: (await_expression [48, 20] - [48, 62] (call_expression [48, 26] - [48, 62] function: (identifier [48, 26] - [48, 40]) arguments: (arguments [48, 40] - [48, 62] (identifier [48, 41] - [48, 44]) (identifier [48, 46] - [48, 51]) (identifier [48, 53] - [48, 61])))))) (return_statement [49, 4] - [49, 20] (unary_expression [49, 11] - [49, 19] argument: (identifier [49, 12] - [49, 19]))))))))) (export_statement [53, 0] - [64, 2] declaration: (lexical_declaration [53, 7] - [64, 2] (variable_declarator [53, 13] - [64, 1] name: (identifier [53, 13] - [53, 30]) value: (arrow_function [53, 33] - [64, 1] parameters: (formal_parameters [53, 39] - [56, 1] (required_parameter [54, 2] - [54, 12] pattern: (identifier [54, 2] - [54, 3]) type: (type_annotation [54, 3] - [54, 12] (type_identifier [54, 5] - [54, 12]))) (required_parameter [55, 2] - [55, 27] pattern: (identifier [55, 2] - [55, 6]) type: (type_annotation [55, 6] - [55, 27] (function_type [55, 8] - [55, 27] parameters: (formal_parameters [55, 8] - [55, 10]) return_type: (generic_type [55, 14] - [55, 27] name: (type_identifier [55, 14] - [55, 21]) type_arguments: (type_arguments [55, 21] - [55, 27] (predefined_type [55, 22] - [55, 26]))))))) body: (statement_block [56, 5] - [64, 1] (lexical_declaration [57, 2] - [57, 28] (variable_declarator [57, 8] - [57, 27] name: (identifier [57, 8] - [57, 10]) value: (call_expression [57, 13] - [57, 27] function: (identifier [57, 13] - [57, 24]) arguments: (arguments [57, 24] - [57, 27] (identifier [57, 25] - [57, 26]))))) (lexical_declaration [58, 2] - [58, 39] (variable_declarator [58, 8] - [58, 38] name: (identifier [58, 8] - [58, 11]) value: (template_string [58, 14] - [58, 38] (string_fragment [58, 15] - [58, 32]) (template_substitution [58, 32] - [58, 37] (identifier [58, 34] - [58, 36]))))) (lexical_declaration [59, 2] - [59, 72] (variable_declarator [59, 8] - [59, 71] name: (identifier [59, 8] - [59, 15]) value: (await_expression [59, 18] - [59, 71] (call_expression [59, 24] - [59, 71] function: (member_expression [59, 24] - [59, 55] object: (identifier [59, 24] - [59, 40]) property: (property_identifier [59, 41] - [59, 55])) arguments: (arguments [59, 55] - [59, 71] (identifier [59, 56] - [59, 59]) (number [59, 61] - [59, 63]) (number [59, 65] - [59, 70])))))) (if_statement [60, 2] - [62, 3] condition: (parenthesized_expression [60, 5] - [60, 15] (unary_expression [60, 6] - [60, 14] argument: (identifier [60, 7] - [60, 14]))) consequence: (statement_block [60, 16] - [62, 3] (return_statement [61, 4] - [61, 55] (call_expression [61, 11] - [61, 54] function: (member_expression [61, 11] - [61, 17] object: (identifier [61, 11] - [61, 12]) property: (property_identifier [61, 13] - [61, 17])) arguments: (arguments [61, 17] - [61, 54] (object [61, 18] - [61, 48] (pair [61, 20] - [61, 46] key: (property_identifier [61, 20] - [61, 25]) value: (string [61, 27] - [61, 46] (string_fragment [61, 28] - [61, 45])))) (number [61, 50] - [61, 53])))))) (expression_statement [63, 2] - [63, 15] (await_expression [63, 2] - [63, 14] (call_expression [63, 8] - [63, 14] function: (identifier [63, 8] - [63, 12]) arguments: (arguments [63, 12] - [63, 14]))))))))) (export_statement [66, 0] - [83, 2] declaration: (lexical_declaration [66, 7] - [83, 2] (variable_declarator [66, 13] - [83, 1] name: (identifier [66, 13] - [66, 29]) value: (arrow_function [66, 32] - [83, 1] parameters: (formal_parameters [66, 38] - [69, 1] (required_parameter [67, 2] - [67, 12] pattern: (identifier [67, 2] - [67, 3]) type: (type_annotation [67, 3] - [67, 12] (type_identifier [67, 5] - [67, 12]))) (required_parameter [68, 2] - [68, 27] pattern: (identifier [68, 2] - [68, 6]) type: (type_annotation [68, 6] - [68, 27] (function_type [68, 8] - [68, 27] parameters: (formal_parameters [68, 8] - [68, 10]) return_type: (generic_type [68, 14] - [68, 27] name: (type_identifier [68, 14] - [68, 21]) type_arguments: (type_arguments [68, 21] - [68, 27] (predefined_type [68, 22] - [68, 26]))))))) body: (statement_block [69, 5] - [83, 1] (lexical_declaration [70, 2] - [70, 45] (variable_declarator [70, 8] - [70, 44] name: (identifier [70, 8] - [70, 12]) value: (await_expression [70, 15] - [70, 44] (call_expression [70, 21] - [70, 44] function: (identifier [70, 21] - [70, 41]) arguments: (arguments [70, 41] - [70, 44] (identifier [70, 42] - [70, 43])))))) (if_statement [71, 2] - [73, 3] condition: (parenthesized_expression [71, 5] - [71, 12] (unary_expression [71, 6] - [71, 11] argument: (identifier [71, 7] - [71, 11]))) consequence: (statement_block [71, 13] - [73, 3] (return_statement [72, 4] - [72, 64] (call_expression [72, 11] - [72, 63] function: (member_expression [72, 11] - [72, 17] object: (identifier [72, 11] - [72, 12]) property: (property_identifier [72, 13] - [72, 17])) arguments: (arguments [72, 17] - [72, 63] (object [72, 18] - [72, 57] (pair [72, 20] - [72, 55] key: (property_identifier [72, 20] - [72, 25]) value: (string [72, 27] - [72, 55] (string_fragment [72, 28] - [72, 54])))) (number [72, 59] - [72, 62])))))) (lexical_declaration [75, 2] - [75, 47] (variable_declarator [75, 8] - [75, 46] name: (identifier [75, 8] - [75, 11]) value: (template_string [75, 14] - [75, 46] (string_fragment [75, 15] - [75, 31]) (template_substitution [75, 31] - [75, 45] (member_expression [75, 33] - [75, 44] object: (identifier [75, 33] - [75, 37]) property: (property_identifier [75, 38] - [75, 44])))))) (lexical_declaration [76, 2] - [76, 72] (variable_declarator [76, 8] - [76, 71] name: (identifier [76, 8] - [76, 15]) value: (await_expression [76, 18] - [76, 71] (call_expression [76, 24] - [76, 71] function: (member_expression [76, 24] - [76, 55] object: (identifier [76, 24] - [76, 40]) property: (property_identifier [76, 41] - [76, 55])) arguments: (arguments [76, 55] - [76, 71] (identifier [76, 56] - [76, 59]) (number [76, 61] - [76, 63]) (number [76, 65] - [76, 70])))))) (if_statement [77, 2] - [79, 3] condition: (parenthesized_expression [77, 5] - [77, 15] (unary_expression [77, 6] - [77, 14] argument: (identifier [77, 7] - [77, 14]))) consequence: (statement_block [77, 16] - [79, 3] (return_statement [78, 4] - [78, 55] (call_expression [78, 11] - [78, 54] function: (member_expression [78, 11] - [78, 17] object: (identifier [78, 11] - [78, 12]) property: (property_identifier [78, 13] - [78, 17])) arguments: (arguments [78, 17] - [78, 54] (object [78, 18] - [78, 48] (pair [78, 20] - [78, 46] key: (property_identifier [78, 20] - [78, 25]) value: (string [78, 27] - [78, 46] (string_fragment [78, 28] - [78, 45])))) (number [78, 50] - [78, 53])))))) (expression_statement [81, 2] - [81, 31] (call_expression [81, 2] - [81, 30] function: (member_expression [81, 2] - [81, 7] object: (identifier [81, 2] - [81, 3]) property: (property_identifier [81, 4] - [81, 7])) arguments: (arguments [81, 7] - [81, 30] (string [81, 8] - [81, 16] (string_fragment [81, 9] - [81, 15])) (member_expression [81, 18] - [81, 29] object: (identifier [81, 18] - [81, 22]) property: (property_identifier [81, 23] - [81, 29]))))) (expression_statement [82, 2] - [82, 15] (await_expression [82, 2] - [82, 14] (call_expression [82, 8] - [82, 14] function: (identifier [82, 8] - [82, 12]) arguments: (arguments [82, 12] - [82, 14]))))))))))