(program [0, 0] - [102, 0] (import_statement [0, 0] - [0, 54] (import_clause [0, 12] - [0, 29] (named_imports [0, 12] - [0, 29] (import_specifier [0, 14] - [0, 21] name: (identifier [0, 14] - [0, 21])) (import_specifier [0, 23] - [0, 27] name: (identifier [0, 23] - [0, 27])))) source: (string [0, 35] - [0, 53] (string_fragment [0, 36] - [0, 52]))) (import_statement [1, 0] - [1, 64] (import_clause [1, 7] - [1, 24] (named_imports [1, 7] - [1, 24] (import_specifier [1, 9] - [1, 22] name: (identifier [1, 9] - [1, 22])))) source: (string [1, 30] - [1, 63] (string_fragment [1, 31] - [1, 62]))) (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]))) (lexical_declaration [4, 0] - [4, 32] (variable_declarator [4, 6] - [4, 31] name: (identifier [4, 6] - [4, 19]) value: (binary_expression [4, 22] - [4, 31] left: (number [4, 22] - [4, 24]) right: (number [4, 27] - [4, 31])))) (comment [4, 33] - [4, 40]) (export_statement [6, 0] - [16, 1] declaration: (function_declaration [6, 7] - [16, 1] name: (identifier [6, 22] - [6, 37]) parameters: (formal_parameters [6, 37] - [6, 61] (required_parameter [6, 38] - [6, 48] pattern: (identifier [6, 38] - [6, 39]) type: (type_annotation [6, 39] - [6, 48] (type_identifier [6, 41] - [6, 48]))) (required_parameter [6, 50] - [6, 60] pattern: (identifier [6, 50] - [6, 54]) type: (type_annotation [6, 54] - [6, 60] (type_identifier [6, 56] - [6, 60])))) body: (statement_block [6, 62] - [16, 1] (lexical_declaration [7, 2] - [7, 55] (variable_declarator [7, 8] - [7, 54] name: (identifier [7, 8] - [7, 21]) value: (call_expression [7, 24] - [7, 54] function: (member_expression [7, 24] - [7, 36] object: (member_expression [7, 24] - [7, 29] object: (identifier [7, 24] - [7, 25]) property: (property_identifier [7, 26] - [7, 29])) property: (property_identifier [7, 30] - [7, 36])) arguments: (arguments [7, 36] - [7, 54] (string [7, 37] - [7, 53] (string_fragment [7, 38] - [7, 52])))))) (if_statement [8, 2] - [12, 3] condition: (parenthesized_expression [8, 5] - [8, 67] (binary_expression [8, 6] - [8, 66] left: (identifier [8, 6] - [8, 19]) right: (binary_expression [8, 23] - [8, 66] left: (call_expression [8, 23] - [8, 50] function: (identifier [8, 23] - [8, 31]) arguments: (arguments [8, 31] - [8, 50] (identifier [8, 32] - [8, 45]) (number [8, 47] - [8, 49]))) right: (identifier [8, 53] - [8, 66])))) consequence: (statement_block [8, 68] - [12, 3] (throw_statement [9, 4] - [11, 7] (new_expression [9, 10] - [11, 6] constructor: (identifier [9, 14] - [9, 27]) arguments: (arguments [9, 27] - [11, 6] (number [9, 28] - [9, 31]) (object [9, 33] - [11, 5] (pair [10, 6] - [10, 53] key: (property_identifier [10, 6] - [10, 13]) value: (string [10, 15] - [10, 53] (string_fragment [10, 16] - [10, 52]))))))))) (comment [14, 2] - [14, 136]) (expression_statement [15, 2] - [15, 15] (await_expression [15, 2] - [15, 14] (call_expression [15, 8] - [15, 14] function: (identifier [15, 8] - [15, 12]) arguments: (arguments [15, 12] - [15, 14]))))))) (export_statement [18, 0] - [72, 1] declaration: (function_declaration [18, 7] - [72, 1] name: (identifier [18, 16] - [18, 31]) parameters: (formal_parameters [18, 31] - [18, 57] (required_parameter [18, 32] - [18, 56] pattern: (identifier [18, 32] - [18, 46]) type: (type_annotation [18, 46] - [18, 56] (array_type [18, 48] - [18, 56] (predefined_type [18, 48] - [18, 54]))))) body: (statement_block [18, 58] - [72, 1] (return_statement [19, 2] - [71, 4] (arrow_function [19, 9] - [71, 3] parameters: (formal_parameters [19, 15] - [19, 39] (required_parameter [19, 16] - [19, 26] pattern: (identifier [19, 16] - [19, 17]) type: (type_annotation [19, 17] - [19, 26] (type_identifier [19, 19] - [19, 26]))) (required_parameter [19, 28] - [19, 38] pattern: (identifier [19, 28] - [19, 32]) type: (type_annotation [19, 32] - [19, 38] (type_identifier [19, 34] - [19, 38])))) body: (statement_block [19, 43] - [71, 3] (comment [20, 4] - [20, 34]) (if_statement [21, 4] - [69, 5] condition: (parenthesized_expression [21, 7] - [21, 66] (call_expression [21, 8] - [21, 65] function: (member_expression [21, 8] - [21, 51] object: (array [21, 8] - [21, 42] (string [21, 9] - [21, 15] (string_fragment [21, 10] - [21, 14])) (string [21, 17] - [21, 22] (string_fragment [21, 18] - [21, 21])) (string [21, 24] - [21, 31] (string_fragment [21, 25] - [21, 30])) (string [21, 33] - [21, 41] (string_fragment [21, 34] - [21, 40]))) property: (property_identifier [21, 43] - [21, 51])) arguments: (arguments [21, 51] - [21, 65] (member_expression [21, 52] - [21, 64] object: (member_expression [21, 52] - [21, 57] object: (identifier [21, 52] - [21, 53]) property: (property_identifier [21, 54] - [21, 57])) property: (property_identifier [21, 58] - [21, 64]))))) consequence: (statement_block [21, 67] - [69, 5] (lexical_declaration [22, 6] - [22, 44] (variable_declarator [22, 12] - [22, 43] name: (identifier [22, 12] - [22, 18]) value: (call_expression [22, 21] - [22, 43] function: (member_expression [22, 21] - [22, 33] object: (member_expression [22, 21] - [22, 26] object: (identifier [22, 21] - [22, 22]) property: (property_identifier [22, 23] - [22, 26])) property: (property_identifier [22, 27] - [22, 33])) arguments: (arguments [22, 33] - [22, 43] (string [22, 34] - [22, 42] (string_fragment [22, 35] - [22, 41])))))) (lexical_declaration [23, 6] - [23, 46] (variable_declarator [23, 12] - [23, 45] name: (identifier [23, 12] - [23, 19]) value: (call_expression [23, 22] - [23, 45] function: (member_expression [23, 22] - [23, 34] object: (member_expression [23, 22] - [23, 27] object: (identifier [23, 22] - [23, 23]) property: (property_identifier [23, 24] - [23, 27])) property: (property_identifier [23, 28] - [23, 34])) arguments: (arguments [23, 34] - [23, 45] (string [23, 35] - [23, 44] (string_fragment [23, 36] - [23, 43])))))) (lexical_declaration [24, 6] - [24, 40] (variable_declarator [24, 12] - [24, 39] name: (identifier [24, 12] - [24, 16]) value: (call_expression [24, 19] - [24, 39] function: (member_expression [24, 19] - [24, 31] object: (member_expression [24, 19] - [24, 24] object: (identifier [24, 19] - [24, 20]) property: (property_identifier [24, 21] - [24, 24])) property: (property_identifier [24, 25] - [24, 31])) arguments: (arguments [24, 31] - [24, 39] (string [24, 32] - [24, 38] (string_fragment [24, 33] - [24, 37])))))) (comment [26, 6] - [26, 89]) (if_statement [27, 6] - [68, 7] condition: (parenthesized_expression [27, 9] - [27, 17] (identifier [27, 10] - [27, 16])) consequence: (statement_block [27, 18] - [44, 7] (lexical_declaration [28, 8] - [28, 30] (variable_declarator [28, 12] - [28, 29] name: (identifier [28, 12] - [28, 21]) value: (false [28, 24] - [28, 29]))) (try_statement [29, 8] - [38, 9] body: (statement_block [29, 12] - [36, 9] (lexical_declaration [30, 10] - [30, 44] (variable_declarator [30, 16] - [30, 43] name: (identifier [30, 16] - [30, 25]) value: (new_expression [30, 28] - [30, 43] constructor: (identifier [30, 32] - [30, 35]) arguments: (arguments [30, 35] - [30, 43] (identifier [30, 36] - [30, 42]))))) (if_statement [31, 10] - [35, 11] condition: (parenthesized_expression [31, 13] - [33, 11] (binary_expression [32, 12] - [32, 80] left: (call_expression [32, 12] - [32, 53] function: (member_expression [32, 12] - [32, 35] object: (identifier [32, 12] - [32, 26]) property: (property_identifier [32, 27] - [32, 35])) arguments: (arguments [32, 35] - [32, 53] (member_expression [32, 36] - [32, 52] object: (identifier [32, 36] - [32, 45]) property: (property_identifier [32, 46] - [32, 52])))) right: (binary_expression [32, 57] - [32, 80] left: (member_expression [32, 57] - [32, 71] object: (identifier [32, 57] - [32, 66]) property: (property_identifier [32, 67] - [32, 71])) right: (identifier [32, 76] - [32, 80])))) consequence: (statement_block [33, 12] - [35, 11] (expression_statement [34, 12] - [34, 29] (assignment_expression [34, 12] - [34, 28] left: (identifier [34, 12] - [34, 21]) right: (true [34, 24] - [34, 28])))))) handler: (catch_clause [36, 10] - [38, 9] parameter: (identifier [36, 17] - [36, 19]) body: (statement_block [36, 21] - [38, 9] (comment [37, 10] - [37, 24])))) (if_statement [39, 8] - [43, 9] condition: (parenthesized_expression [39, 11] - [39, 23] (unary_expression [39, 12] - [39, 22] argument: (identifier [39, 13] - [39, 22]))) consequence: (statement_block [39, 24] - [43, 9] (throw_statement [40, 10] - [42, 13] (new_expression [40, 16] - [42, 12] constructor: (identifier [40, 20] - [40, 33]) arguments: (arguments [40, 33] - [42, 12] (number [40, 34] - [40, 37]) (object [40, 39] - [42, 11] (pair [41, 12] - [41, 69] key: (property_identifier [41, 12] - [41, 19]) value: (string [41, 21] - [41, 69] (string_fragment [41, 22] - [41, 68])))))))))) alternative: (else_clause [44, 8] - [68, 7] (if_statement [44, 13] - [68, 7] condition: (parenthesized_expression [44, 16] - [44, 25] (identifier [44, 17] - [44, 24])) consequence: (statement_block [44, 26] - [62, 7] (try_statement [45, 8] - [61, 9] body: (statement_block [45, 12] - [57, 9] (lexical_declaration [46, 10] - [46, 46] (variable_declarator [46, 16] - [46, 45] name: (identifier [46, 16] - [46, 26]) value: (new_expression [46, 29] - [46, 45] constructor: (identifier [46, 33] - [46, 36]) arguments: (arguments [46, 36] - [46, 45] (identifier [46, 37] - [46, 44]))))) (if_statement [47, 10] - [56, 11] condition: (parenthesized_expression [47, 13] - [50, 11] (binary_expression [48, 12] - [49, 36] left: (call_expression [48, 12] - [48, 54] function: (member_expression [48, 12] - [48, 35] object: (identifier [48, 12] - [48, 26]) property: (property_identifier [48, 27] - [48, 35])) arguments: (arguments [48, 35] - [48, 54] (member_expression [48, 36] - [48, 53] object: (identifier [48, 36] - [48, 46]) property: (property_identifier [48, 47] - [48, 53])))) right: (binary_expression [49, 12] - [49, 36] left: (member_expression [49, 12] - [49, 27] object: (identifier [49, 12] - [49, 22]) property: (property_identifier [49, 23] - [49, 27])) right: (identifier [49, 32] - [49, 36])))) consequence: (statement_block [50, 12] - [52, 11] (comment [51, 12] - [51, 22])) alternative: (else_clause [52, 12] - [56, 11] (statement_block [52, 17] - [56, 11] (throw_statement [53, 12] - [55, 15] (new_expression [53, 18] - [55, 14] constructor: (identifier [53, 22] - [53, 35]) arguments: (arguments [53, 35] - [55, 14] (number [53, 36] - [53, 39]) (object [53, 41] - [55, 13] (pair [54, 14] - [54, 72] key: (property_identifier [54, 14] - [54, 21]) value: (string [54, 23] - [54, 72] (string_fragment [54, 24] - [54, 71]))))))))))) handler: (catch_clause [57, 10] - [61, 9] parameter: (identifier [57, 17] - [57, 19]) body: (statement_block [57, 21] - [61, 9] (throw_statement [58, 10] - [60, 13] (new_expression [58, 16] - [60, 12] constructor: (identifier [58, 20] - [58, 33]) arguments: (arguments [58, 33] - [60, 12] (number [58, 34] - [58, 37]) (object [58, 39] - [60, 11] (pair [59, 12] - [59, 70] key: (property_identifier [59, 12] - [59, 19]) value: (string [59, 21] - [59, 70] (string_fragment [59, 22] - [59, 69]))))))))))) alternative: (else_clause [62, 8] - [68, 7] (statement_block [62, 13] - [68, 7] (comment [63, 8] - [63, 94]) (throw_statement [64, 8] - [67, 11] (new_expression [64, 14] - [67, 10] constructor: (identifier [64, 18] - [64, 31]) arguments: (arguments [64, 31] - [67, 10] (number [64, 32] - [64, 35]) (object [64, 37] - [67, 9] (pair [65, 10] - [66, 79] key: (property_identifier [65, 10] - [65, 17]) value: (string [66, 12] - [66, 79] (string_fragment [66, 13] - [66, 78])))))))))))))) (expression_statement [70, 4] - [70, 17] (await_expression [70, 4] - [70, 16] (call_expression [70, 10] - [70, 16] function: (identifier [70, 10] - [70, 14]) arguments: (arguments [70, 14] - [70, 16])))))))))) (export_statement [74, 0] - [101, 1] declaration: (function_declaration [74, 7] - [101, 1] name: (identifier [74, 16] - [74, 30]) parameters: (formal_parameters [74, 30] - [78, 1] (required_parameter [75, 2] - [75, 15] pattern: (identifier [75, 2] - [75, 7]) type: (type_annotation [75, 7] - [75, 15] (predefined_type [75, 9] - [75, 15]))) (required_parameter [76, 2] - [76, 20] pattern: (identifier [76, 2] - [76, 12]) type: (type_annotation [76, 12] - [76, 20] (predefined_type [76, 14] - [76, 20]))) (required_parameter [77, 2] - [77, 19] pattern: (identifier [77, 2] - [77, 11]) type: (type_annotation [77, 11] - [77, 19] (predefined_type [77, 13] - [77, 19])))) body: (statement_block [78, 2] - [101, 1] (return_statement [79, 2] - [100, 4] (arrow_function [79, 9] - [100, 3] parameters: (formal_parameters [79, 15] - [79, 39] (required_parameter [79, 16] - [79, 26] pattern: (identifier [79, 16] - [79, 17]) type: (type_annotation [79, 17] - [79, 26] (type_identifier [79, 19] - [79, 26]))) (required_parameter [79, 28] - [79, 38] pattern: (identifier [79, 28] - [79, 32]) type: (type_annotation [79, 32] - [79, 38] (type_identifier [79, 34] - [79, 38])))) body: (statement_block [79, 43] - [100, 3] (comment [80, 4] - [80, 73]) (lexical_declaration [81, 4] - [81, 78] (variable_declarator [81, 10] - [81, 77] name: (identifier [81, 10] - [81, 12]) value: (binary_expression [81, 15] - [81, 77] left: (subscript_expression [81, 15] - [81, 61] object: (call_expression [81, 15] - [81, 58] function: (member_expression [81, 15] - [81, 53] object: (call_expression [81, 15] - [81, 46] function: (member_expression [81, 15] - [81, 27] object: (member_expression [81, 15] - [81, 20] object: (identifier [81, 15] - [81, 16]) property: (property_identifier [81, 17] - [81, 20])) property: (property_identifier [81, 21] - [81, 27])) arguments: (arguments [81, 27] - [81, 46] (string [81, 28] - [81, 45] (string_fragment [81, 29] - [81, 44])))) optional_chain: (optional_chain [81, 46] - [81, 48]) property: (property_identifier [81, 48] - [81, 53])) arguments: (arguments [81, 53] - [81, 58] (string [81, 54] - [81, 57] (string_fragment [81, 55] - [81, 56])))) index: (number [81, 59] - [81, 60])) right: (string [81, 65] - [81, 77] (string_fragment [81, 66] - [81, 76]))))) (lexical_declaration [82, 4] - [82, 47] (variable_declarator [82, 10] - [82, 46] name: (identifier [82, 10] - [82, 13]) value: (template_string [82, 16] - [82, 46] (string_fragment [82, 17] - [82, 27]) (template_substitution [82, 27] - [82, 39] (identifier [82, 29] - [82, 38])) (string_fragment [82, 39] - [82, 40]) (template_substitution [82, 40] - [82, 45] (identifier [82, 42] - [82, 44]))))) (try_statement [84, 4] - [97, 5] body: (statement_block [84, 8] - [93, 5] (lexical_declaration [85, 6] - [85, 45] (variable_declarator [85, 12] - [85, 44] name: (identifier [85, 12] - [85, 19]) value: (await_expression [85, 22] - [85, 44] (call_expression [85, 28] - [85, 44] function: (member_expression [85, 28] - [85, 39] object: (identifier [85, 28] - [85, 34]) property: (property_identifier [85, 35] - [85, 39])) arguments: (arguments [85, 39] - [85, 44] (identifier [85, 40] - [85, 43])))))) (if_statement [86, 6] - [88, 7] condition: (parenthesized_expression [86, 9] - [86, 24] (binary_expression [86, 10] - [86, 23] left: (identifier [86, 10] - [86, 17]) right: (number [86, 22] - [86, 23]))) consequence: (statement_block [86, 25] - [88, 7] (expression_statement [87, 8] - [87, 45] (await_expression [87, 8] - [87, 44] (call_expression [87, 14] - [87, 44] function: (member_expression [87, 14] - [87, 27] object: (identifier [87, 14] - [87, 20]) property: (property_identifier [87, 21] - [87, 27])) arguments: (arguments [87, 27] - [87, 44] (identifier [87, 28] - [87, 31]) (identifier [87, 33] - [87, 43]))))))) (if_statement [90, 6] - [92, 7] condition: (parenthesized_expression [90, 9] - [90, 26] (binary_expression [90, 10] - [90, 25] left: (identifier [90, 10] - [90, 17]) right: (identifier [90, 20] - [90, 25]))) consequence: (statement_block [90, 27] - [92, 7] (throw_statement [91, 8] - [91, 71] (new_expression [91, 14] - [91, 70] constructor: (identifier [91, 18] - [91, 31]) arguments: (arguments [91, 31] - [91, 70] (number [91, 32] - [91, 35]) (object [91, 37] - [91, 69] (pair [91, 39] - [91, 67] key: (property_identifier [91, 39] - [91, 46]) value: (string [91, 48] - [91, 67] (string_fragment [91, 49] - [91, 66])))))))))) handler: (catch_clause [93, 6] - [97, 5] parameter: (identifier [93, 13] - [93, 16]) body: (statement_block [93, 18] - [97, 5] (if_statement [94, 6] - [94, 50] condition: (parenthesized_expression [94, 9] - [94, 39] (binary_expression [94, 10] - [94, 38] left: (identifier [94, 10] - [94, 13]) right: (identifier [94, 25] - [94, 38]))) consequence: (throw_statement [94, 40] - [94, 50] (identifier [94, 46] - [94, 49]))) (comment [95, 6] - [95, 75]) (expression_statement [96, 6] - [96, 53] (call_expression [96, 6] - [96, 52] function: (member_expression [96, 6] - [96, 18] object: (identifier [96, 6] - [96, 13]) property: (property_identifier [96, 14] - [96, 18])) arguments: (arguments [96, 18] - [96, 52] (string [96, 19] - [96, 46] (string_fragment [96, 20] - [96, 45])) (identifier [96, 48] - [96, 51]))))))) (expression_statement [99, 4] - [99, 17] (await_expression [99, 4] - [99, 16] (call_expression [99, 10] - [99, 16] function: (identifier [99, 10] - [99, 14]) arguments: (arguments [99, 14] - [99, 16])))))))))))