JsModule {
bom_token: missing (optional),
interpreter_token: missing (optional),
directives: JsDirectiveList [],
items: JsModuleItemList [
JsImport {
import_token: IMPORT_KW@0..7 "import" [] [Whitespace(" ")],
import_clause: JsImportBareClause {
source: JsModuleSource {
value_token: JS_STRING_LITERAL@7..13 "\"foo\"" [] [Whitespace(" ")],
},
assertion: JsImportAssertion {
assertion_kind: ASSERT_KW@13..20 "assert" [] [Whitespace(" ")],
l_curly_token: L_CURLY@20..22 "{" [] [Whitespace(" ")],
assertions: JsImportAssertionEntryList [
JsImportAssertionEntry {
key: IDENT@22..26 "type" [] [],
colon_token: missing (required),
value_token: missing (required),
},
COMMA@26..28 "," [] [Whitespace(" ")],
JsImportAssertionEntry {
key: JS_STRING_LITERAL@28..35 "\"json\"" [] [Whitespace(" ")],
colon_token: missing (required),
value_token: missing (required),
},
],
r_curly_token: R_CURLY@35..36 "}" [] [],
},
},
semicolon_token: SEMICOLON@36..37 ";" [] [],
},
JsBogusStatement {
items: [
IMPORT_KW@37..45 "import" [Newline("\n")] [Whitespace(" ")],
JsBogus {
items: [
JsModuleSource {
value_token: JS_STRING_LITERAL@45..51 "\"bar\"" [] [Whitespace(" ")],
},
JsBogus {
items: [
ERROR_TOKEN@51..63 "\\u{61}ssert" [] [Whitespace(" ")],
L_CURLY@63..65 "{" [] [Whitespace(" ")],
JsImportAssertionEntryList [
JsImportAssertionEntry {
key: IDENT@65..69 "type" [] [],
colon_token: COLON@69..71 ":" [] [Whitespace(" ")],
value_token: JS_STRING_LITERAL@71..78 "\"json\"" [] [Whitespace(" ")],
},
],
R_CURLY@78..79 "}" [] [],
],
},
],
},
SEMICOLON@79..80 ";" [] [],
],
},
JsImport {
import_token: IMPORT_KW@80..88 "import" [Newline("\n")] [Whitespace(" ")],
import_clause: JsImportNamedClause {
type_token: missing (optional),
named_specifiers: JsNamedImportSpecifiers {
l_curly_token: L_CURLY@88..90 "{" [] [Whitespace(" ")],
specifiers: JsNamedImportSpecifierList [
JsShorthandNamedImportSpecifier {
type_token: missing (optional),
local_name: JsIdentifierBinding {
name_token: IDENT@90..94 "foo" [] [Whitespace(" ")],
},
},
],
r_curly_token: R_CURLY@94..96 "}" [] [Whitespace(" ")],
},
from_token: missing (required),
source: missing (required),
assertion: JsImportAssertion {
assertion_kind: ASSERT_KW@96..103 "assert" [] [Whitespace(" ")],
l_curly_token: L_CURLY@103..105 "{" [] [Whitespace(" ")],
assertions: JsImportAssertionEntryList [
JsImportAssertionEntry {
key: IDENT@105..109 "type" [] [],
colon_token: COLON@109..111 ":" [] [Whitespace(" ")],
value_token: JS_STRING_LITERAL@111..118 "\"json\"" [] [Whitespace(" ")],
},
],
r_curly_token: R_CURLY@118..119 "}" [] [],
},
},
semicolon_token: SEMICOLON@119..120 ";" [] [],
},
JsImport {
import_token: IMPORT_KW@120..128 "import" [Newline("\n")] [Whitespace(" ")],
import_clause: JsImportBareClause {
source: JsModuleSource {
value_token: JS_STRING_LITERAL@128..135 "\"lorem\"" [] [],
},
assertion: missing (optional),
},
semicolon_token: missing (optional),
},
JsExpressionStatement {
expression: JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@135..143 "assert" [Newline("\n")] [Whitespace(" ")],
},
},
semicolon_token: missing (optional),
},
JsBlockStatement {
l_curly_token: L_CURLY@143..145 "{" [] [Whitespace(" ")],
statements: JsStatementList [
JsLabeledStatement {
label: JsLabel {
value_token: IDENT@145..149 "type" [] [],
},
colon_token: COLON@149..151 ":" [] [Whitespace(" ")],
body: JsExpressionStatement {
expression: JsStringLiteralExpression {
value_token: JS_STRING_LITERAL@151..158 "\"json\"" [] [Whitespace(" ")],
},
semicolon_token: missing (optional),
},
},
],
r_curly_token: R_CURLY@158..159 "}" [] [],
},
JsImport {
import_token: IMPORT_KW@159..167 "import" [Newline("\n")] [Whitespace(" ")],
import_clause: JsImportDefaultClause {
type_token: missing (optional),
default_specifier: JsDefaultImportSpecifier {
local_name: JsIdentifierBinding {
name_token: IDENT@167..172 "foo2" [] [Whitespace(" ")],
},
},
from_token: FROM_KW@172..177 "from" [] [Whitespace(" ")],
source: JsModuleSource {
value_token: JS_STRING_LITERAL@177..188 "\"foo.json\"" [] [Whitespace(" ")],
},
assertion: JsImportAssertion {
assertion_kind: ASSERT_KW@188..195 "assert" [] [Whitespace(" ")],
l_curly_token: L_CURLY@195..197 "{" [] [Whitespace(" ")],
assertions: JsImportAssertionEntryList [
JsImportAssertionEntry {
key: JS_STRING_LITERAL@197..203 "\"type\"" [] [],
colon_token: COLON@203..205 ":" [] [Whitespace(" ")],
value_token: JS_STRING_LITERAL@205..211 "\"json\"" [] [],
},
COMMA@211..213 "," [] [Whitespace(" ")],
JsBogusImportAssertionEntry {
items: [
IDENT@213..217 "type" [] [],
COLON@217..219 ":" [] [Whitespace(" ")],
JS_STRING_LITERAL@219..225 "\"html\"" [] [],
],
},
COMMA@225..227 "," [] [Whitespace(" ")],
JsBogusImportAssertionEntry {
items: [
JS_STRING_LITERAL@227..233 "\"type\"" [] [],
COLON@233..235 ":" [] [Whitespace(" ")],
JS_STRING_LITERAL@235..240 "\"js\"" [] [Whitespace(" ")],
],
},
],
r_curly_token: R_CURLY@240..241 "}" [] [],
},
},
semicolon_token: SEMICOLON@241..242 ";" [] [],
},
JsImport {
import_token: IMPORT_KW@242..250 "import" [Newline("\n")] [Whitespace(" ")],
import_clause: JsImportBareClause {
source: JsModuleSource {
value_token: JS_STRING_LITERAL@250..254 "\"x\"" [] [Whitespace(" ")],
},
assertion: JsImportAssertion {
assertion_kind: ASSERT_KW@254..260 "assert" [] [],
l_curly_token: missing (required),
assertions: JsImportAssertionEntryList [],
r_curly_token: missing (required),
},
},
semicolon_token: SEMICOLON@260..261 ";" [] [],
},
JsImport {
import_token: IMPORT_KW@261..269 "import" [Newline("\n")] [Whitespace(" ")],
import_clause: JsImportDefaultClause {
type_token: missing (optional),
default_specifier: JsDefaultImportSpecifier {
local_name: JsIdentifierBinding {
name_token: IDENT@269..275 "ipsum" [] [Whitespace(" ")],
},
},
from_token: FROM_KW@275..280 "from" [] [Whitespace(" ")],
source: JsModuleSource {
value_token: JS_STRING_LITERAL@280..293 "\"ipsum.json\"" [] [Whitespace(" ")],
},
assertion: JsImportAssertion {
assertion_kind: ASSERT_KW@293..300 "assert" [] [Whitespace(" ")],
l_curly_token: L_CURLY@300..302 "{" [] [Whitespace(" ")],
assertions: JsImportAssertionEntryList [
JsImportAssertionEntry {
key: IDENT@302..306 "type" [] [],
colon_token: COLON@306..308 ":" [] [Whitespace(" ")],
value_token: JS_STRING_LITERAL@308..314 "\"json\"" [] [],
},
COMMA@314..316 "," [] [Whitespace(" ")],
JsImportAssertionEntry {
key: IDENT@316..320 "lazy" [] [],
colon_token: COLON@320..322 ":" [] [Whitespace(" ")],
value_token: missing (required),
},
missing separator,
JsImportAssertionEntry {
key: IDENT@322..326 "true" [] [],
colon_token: missing (required),
value_token: missing (required),
},
COMMA@326..328 "," [] [Whitespace(" ")],
JsImportAssertionEntry {
key: IDENT@328..339 "startAtLine" [] [],
colon_token: COLON@339..341 ":" [] [Whitespace(" ")],
value_token: missing (required),
},
missing separator,
JsBogusImportAssertionEntry {
items: [
JS_NUMBER_LITERAL@341..343 "1" [] [Whitespace(" ")],
],
},
],
r_curly_token: R_CURLY@343..344 "}" [] [],
},
},
semicolon_token: SEMICOLON@344..345 ";" [] [],
},
JsImport {
import_token: IMPORT_KW@345..353 "import" [Newline("\n")] [Whitespace(" ")],
import_clause: JsImportNamedClause {
type_token: missing (optional),
named_specifiers: JsNamedImportSpecifiers {
l_curly_token: L_CURLY@353..355 "{" [] [Whitespace(" ")],
specifiers: JsNamedImportSpecifierList [
JsShorthandNamedImportSpecifier {
type_token: missing (optional),
local_name: JsIdentifierBinding {
name_token: IDENT@355..357 "a" [] [Whitespace(" ")],
},
},
],
r_curly_token: R_CURLY@357..359 "}" [] [Whitespace(" ")],
},
from_token: FROM_KW@359..364 "from" [] [Whitespace(" ")],
source: JsModuleSource {
value_token: JS_STRING_LITERAL@364..373 "\"a.json\"" [] [Whitespace(" ")],
},
assertion: JsImportAssertion {
assertion_kind: ASSERT_KW@373..379 "assert" [] [],
l_curly_token: missing (required),
assertions: JsImportAssertionEntryList [],
r_curly_token: missing (required),
},
},
semicolon_token: missing (optional),
},
],
eof_token: EOF@379..380 "" [Newline("\n")] [],
}
0: JS_MODULE@0..380
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..379
0: JS_IMPORT@0..37
0: IMPORT_KW@0..7 "import" [] [Whitespace(" ")]
1: JS_IMPORT_BARE_CLAUSE@7..36
0: JS_MODULE_SOURCE@7..13
0: JS_STRING_LITERAL@7..13 "\"foo\"" [] [Whitespace(" ")]
1: JS_IMPORT_ASSERTION@13..36
0: ASSERT_KW@13..20 "assert" [] [Whitespace(" ")]
1: L_CURLY@20..22 "{" [] [Whitespace(" ")]
2: JS_IMPORT_ASSERTION_ENTRY_LIST@22..35
0: JS_IMPORT_ASSERTION_ENTRY@22..26
0: IDENT@22..26 "type" [] []
1: (empty)
2: (empty)
1: COMMA@26..28 "," [] [Whitespace(" ")]
2: JS_IMPORT_ASSERTION_ENTRY@28..35
0: JS_STRING_LITERAL@28..35 "\"json\"" [] [Whitespace(" ")]
1: (empty)
2: (empty)
3: R_CURLY@35..36 "}" [] []
2: SEMICOLON@36..37 ";" [] []
1: JS_BOGUS_STATEMENT@37..80
0: IMPORT_KW@37..45 "import" [Newline("\n")] [Whitespace(" ")]
1: JS_BOGUS@45..79
0: JS_MODULE_SOURCE@45..51
0: JS_STRING_LITERAL@45..51 "\"bar\"" [] [Whitespace(" ")]
1: JS_BOGUS@51..79
0: ERROR_TOKEN@51..63 "\\u{61}ssert" [] [Whitespace(" ")]
1: L_CURLY@63..65 "{" [] [Whitespace(" ")]
2: JS_IMPORT_ASSERTION_ENTRY_LIST@65..78
0: JS_IMPORT_ASSERTION_ENTRY@65..78
0: IDENT@65..69 "type" [] []
1: COLON@69..71 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL@71..78 "\"json\"" [] [Whitespace(" ")]
3: R_CURLY@78..79 "}" [] []
2: SEMICOLON@79..80 ";" [] []
2: JS_IMPORT@80..120
0: IMPORT_KW@80..88 "import" [Newline("\n")] [Whitespace(" ")]
1: JS_IMPORT_NAMED_CLAUSE@88..119
0: (empty)
1: JS_NAMED_IMPORT_SPECIFIERS@88..96
0: L_CURLY@88..90 "{" [] [Whitespace(" ")]
1: JS_NAMED_IMPORT_SPECIFIER_LIST@90..94
0: JS_SHORTHAND_NAMED_IMPORT_SPECIFIER@90..94
0: (empty)
1: JS_IDENTIFIER_BINDING@90..94
0: IDENT@90..94 "foo" [] [Whitespace(" ")]
2: R_CURLY@94..96 "}" [] [Whitespace(" ")]
2: (empty)
3: (empty)
4: JS_IMPORT_ASSERTION@96..119
0: ASSERT_KW@96..103 "assert" [] [Whitespace(" ")]
1: L_CURLY@103..105 "{" [] [Whitespace(" ")]
2: JS_IMPORT_ASSERTION_ENTRY_LIST@105..118
0: JS_IMPORT_ASSERTION_ENTRY@105..118
0: IDENT@105..109 "type" [] []
1: COLON@109..111 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL@111..118 "\"json\"" [] [Whitespace(" ")]
3: R_CURLY@118..119 "}" [] []
2: SEMICOLON@119..120 ";" [] []
3: JS_IMPORT@120..135
0: IMPORT_KW@120..128 "import" [Newline("\n")] [Whitespace(" ")]
1: JS_IMPORT_BARE_CLAUSE@128..135
0: JS_MODULE_SOURCE@128..135
0: JS_STRING_LITERAL@128..135 "\"lorem\"" [] []
1: (empty)
2: (empty)
4: JS_EXPRESSION_STATEMENT@135..143
0: JS_IDENTIFIER_EXPRESSION@135..143
0: JS_REFERENCE_IDENTIFIER@135..143
0: IDENT@135..143 "assert" [Newline("\n")] [Whitespace(" ")]
1: (empty)
5: JS_BLOCK_STATEMENT@143..159
0: L_CURLY@143..145 "{" [] [Whitespace(" ")]
1: JS_STATEMENT_LIST@145..158
0: JS_LABELED_STATEMENT@145..158
0: JS_LABEL@145..149
0: IDENT@145..149 "type" [] []
1: COLON@149..151 ":" [] [Whitespace(" ")]
2: JS_EXPRESSION_STATEMENT@151..158
0: JS_STRING_LITERAL_EXPRESSION@151..158
0: JS_STRING_LITERAL@151..158 "\"json\"" [] [Whitespace(" ")]
1: (empty)
2: R_CURLY@158..159 "}" [] []
6: JS_IMPORT@159..242
0: IMPORT_KW@159..167 "import" [Newline("\n")] [Whitespace(" ")]
1: JS_IMPORT_DEFAULT_CLAUSE@167..241
0: (empty)
1: JS_DEFAULT_IMPORT_SPECIFIER@167..172
0: JS_IDENTIFIER_BINDING@167..172
0: IDENT@167..172 "foo2" [] [Whitespace(" ")]
2: FROM_KW@172..177 "from" [] [Whitespace(" ")]
3: JS_MODULE_SOURCE@177..188
0: JS_STRING_LITERAL@177..188 "\"foo.json\"" [] [Whitespace(" ")]
4: JS_IMPORT_ASSERTION@188..241
0: ASSERT_KW@188..195 "assert" [] [Whitespace(" ")]
1: L_CURLY@195..197 "{" [] [Whitespace(" ")]
2: JS_IMPORT_ASSERTION_ENTRY_LIST@197..240
0: JS_IMPORT_ASSERTION_ENTRY@197..211
0: JS_STRING_LITERAL@197..203 "\"type\"" [] []
1: COLON@203..205 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL@205..211 "\"json\"" [] []
1: COMMA@211..213 "," [] [Whitespace(" ")]
2: JS_BOGUS_IMPORT_ASSERTION_ENTRY@213..225
0: IDENT@213..217 "type" [] []
1: COLON@217..219 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL@219..225 "\"html\"" [] []
3: COMMA@225..227 "," [] [Whitespace(" ")]
4: JS_BOGUS_IMPORT_ASSERTION_ENTRY@227..240
0: JS_STRING_LITERAL@227..233 "\"type\"" [] []
1: COLON@233..235 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL@235..240 "\"js\"" [] [Whitespace(" ")]
3: R_CURLY@240..241 "}" [] []
2: SEMICOLON@241..242 ";" [] []
7: JS_IMPORT@242..261
0: IMPORT_KW@242..250 "import" [Newline("\n")] [Whitespace(" ")]
1: JS_IMPORT_BARE_CLAUSE@250..260
0: JS_MODULE_SOURCE@250..254
0: JS_STRING_LITERAL@250..254 "\"x\"" [] [Whitespace(" ")]
1: JS_IMPORT_ASSERTION@254..260
0: ASSERT_KW@254..260 "assert" [] []
1: (empty)
2: JS_IMPORT_ASSERTION_ENTRY_LIST@260..260
3: (empty)
2: SEMICOLON@260..261 ";" [] []
8: JS_IMPORT@261..345
0: IMPORT_KW@261..269 "import" [Newline("\n")] [Whitespace(" ")]
1: JS_IMPORT_DEFAULT_CLAUSE@269..344
0: (empty)
1: JS_DEFAULT_IMPORT_SPECIFIER@269..275
0: JS_IDENTIFIER_BINDING@269..275
0: IDENT@269..275 "ipsum" [] [Whitespace(" ")]
2: FROM_KW@275..280 "from" [] [Whitespace(" ")]
3: JS_MODULE_SOURCE@280..293
0: JS_STRING_LITERAL@280..293 "\"ipsum.json\"" [] [Whitespace(" ")]
4: JS_IMPORT_ASSERTION@293..344
0: ASSERT_KW@293..300 "assert" [] [Whitespace(" ")]
1: L_CURLY@300..302 "{" [] [Whitespace(" ")]
2: JS_IMPORT_ASSERTION_ENTRY_LIST@302..343
0: JS_IMPORT_ASSERTION_ENTRY@302..314
0: IDENT@302..306 "type" [] []
1: COLON@306..308 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL@308..314 "\"json\"" [] []
1: COMMA@314..316 "," [] [Whitespace(" ")]
2: JS_IMPORT_ASSERTION_ENTRY@316..322
0: IDENT@316..320 "lazy" [] []
1: COLON@320..322 ":" [] [Whitespace(" ")]
2: (empty)
3: (empty)
4: JS_IMPORT_ASSERTION_ENTRY@322..326
0: IDENT@322..326 "true" [] []
1: (empty)
2: (empty)
5: COMMA@326..328 "," [] [Whitespace(" ")]
6: JS_IMPORT_ASSERTION_ENTRY@328..341
0: IDENT@328..339 "startAtLine" [] []
1: COLON@339..341 ":" [] [Whitespace(" ")]
2: (empty)
7: (empty)
8: JS_BOGUS_IMPORT_ASSERTION_ENTRY@341..343
0: JS_NUMBER_LITERAL@341..343 "1" [] [Whitespace(" ")]
3: R_CURLY@343..344 "}" [] []
2: SEMICOLON@344..345 ";" [] []
9: JS_IMPORT@345..379
0: IMPORT_KW@345..353 "import" [Newline("\n")] [Whitespace(" ")]
1: JS_IMPORT_NAMED_CLAUSE@353..379
0: (empty)
1: JS_NAMED_IMPORT_SPECIFIERS@353..359
0: L_CURLY@353..355 "{" [] [Whitespace(" ")]
1: JS_NAMED_IMPORT_SPECIFIER_LIST@355..357
0: JS_SHORTHAND_NAMED_IMPORT_SPECIFIER@355..357
0: (empty)
1: JS_IDENTIFIER_BINDING@355..357
0: IDENT@355..357 "a" [] [Whitespace(" ")]
2: R_CURLY@357..359 "}" [] [Whitespace(" ")]
2: FROM_KW@359..364 "from" [] [Whitespace(" ")]
3: JS_MODULE_SOURCE@364..373
0: JS_STRING_LITERAL@364..373 "\"a.json\"" [] [Whitespace(" ")]
4: JS_IMPORT_ASSERTION@373..379
0: ASSERT_KW@373..379 "assert" [] []
1: (empty)
2: JS_IMPORT_ASSERTION_ENTRY_LIST@379..379
3: (empty)
2: (empty)
4: EOF@379..380 "" [Newline("\n")] []
--
import_assertion_err.js:1:27 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× expected `:` but instead found `,`
> 1 │ import "foo" assert { type, "json" };
│ ^
2 │ import "bar" \u{61}ssert { type: "json" };
3 │ import { foo } assert { type: "json" };
i Remove ,
--
import_assertion_err.js:1:36 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× expected `:` but instead found `}`
> 1 │ import "foo" assert { type, "json" };
│ ^
2 │ import "bar" \u{61}ssert { type: "json" };
3 │ import { foo } assert { type: "json" };
i Remove }
--
import_assertion_err.js:2:14 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× 'assert' keyword cannot contain escape character.
1 │ import "foo" assert { type, "json" };
> 2 │ import "bar" \u{61}ssert { type: "json" };
│ ^^^^^^^^^^^
3 │ import { foo } assert { type: "json" };
4 │ import "lorem"
--
import_assertion_err.js:3:16 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× expected `from` but instead found `assert`
1 │ import "foo" assert { type, "json" };
2 │ import "bar" \u{61}ssert { type: "json" };
> 3 │ import { foo } assert { type: "json" };
│ ^^^^^^
4 │ import "lorem"
5 │ assert { type: "json" }
i Remove assert
--
import_assertion_err.js:5:8 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Expected a semicolon or an implicit semicolon after a statement, but found none
3 │ import { foo } assert { type: "json" };
4 │ import "lorem"
> 5 │ assert { type: "json" }
│ ^
6 │ import foo2 from "foo.json" assert { "type": "json", type: "html", "type": "js" };
7 │ import "x" assert;
i An explicit or implicit semicolon is expected here...
3 │ import { foo } assert { type: "json" };
4 │ import "lorem"
> 5 │ assert { type: "json" }
│ ^
6 │ import foo2 from "foo.json" assert { "type": "json", type: "html", "type": "js" };
7 │ import "x" assert;
i ...Which is required to end this statement
3 │ import { foo } assert { type: "json" };
4 │ import "lorem"
> 5 │ assert { type: "json" }
│ ^^^^^^^^
6 │ import foo2 from "foo.json" assert { "type": "json", type: "html", "type": "js" };
7 │ import "x" assert;
--
import_assertion_err.js:6:38 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Duplicate assertion keys are not allowed
4 │ import "lorem"
5 │ assert { type: "json" }
> 6 │ import foo2 from "foo.json" assert { "type": "json", type: "html", "type": "js" };
│ ^^^^^^
7 │ import "x" assert;
8 │ import ipsum from "ipsum.json" assert { type: "json", lazy: true, startAtLine: 1 };
i First use of the key `type`
4 │ import "lorem"
5 │ assert { type: "json" }
> 6 │ import foo2 from "foo.json" assert { "type": "json", type: "html", "type": "js" };
│ ^^^^^^
7 │ import "x" assert;
8 │ import ipsum from "ipsum.json" assert { type: "json", lazy: true, startAtLine: 1 };
i second use here
4 │ import "lorem"
5 │ assert { type: "json" }
> 6 │ import foo2 from "foo.json" assert { "type": "json", type: "html", "type": "js" };
│ ^^^^
7 │ import "x" assert;
8 │ import ipsum from "ipsum.json" assert { type: "json", lazy: true, startAtLine: 1 };
--
import_assertion_err.js:7:18 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× expected `{` but instead found `;`
5 │ assert { type: "json" }
6 │ import foo2 from "foo.json" assert { "type": "json", type: "html", "type": "js" };
> 7 │ import "x" assert;
│ ^
8 │ import ipsum from "ipsum.json" assert { type: "json", lazy: true, startAtLine: 1 };
9 │ import { a } from "a.json" assert
i Remove ;
--
import_assertion_err.js:8:61 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× expected `string literal` but instead found `true`
6 │ import foo2 from "foo.json" assert { "type": "json", type: "html", "type": "js" };
7 │ import "x" assert;
> 8 │ import ipsum from "ipsum.json" assert { type: "json", lazy: true, startAtLine: 1 };
│ ^^^^
9 │ import { a } from "a.json" assert
10 │
i Remove true
--
import_assertion_err.js:8:65 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× expected `:` but instead found `,`
6 │ import foo2 from "foo.json" assert { "type": "json", type: "html", "type": "js" };
7 │ import "x" assert;
> 8 │ import ipsum from "ipsum.json" assert { type: "json", lazy: true, startAtLine: 1 };
│ ^
9 │ import { a } from "a.json" assert
10 │
i Remove ,
--
import_assertion_err.js:8:80 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× expected `string literal` but instead found `1`
6 │ import foo2 from "foo.json" assert { "type": "json", type: "html", "type": "js" };
7 │ import "x" assert;
> 8 │ import ipsum from "ipsum.json" assert { type: "json", lazy: true, startAtLine: 1 };
│ ^
9 │ import { a } from "a.json" assert
10 │
i Remove 1
--
import_assertion_err.js:10:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× expected `{` but instead the file ends
8 │ import ipsum from "ipsum.json" assert { type: "json", lazy: true, startAtLine: 1 };
9 │ import { a } from "a.json" assert
> 10 │
│
i the file ends here
8 │ import ipsum from "ipsum.json" assert { type: "json", lazy: true, startAtLine: 1 };
9 │ import { a } from "a.json" assert
> 10 │
│
--
import "foo" assert { type, "json" };
import "bar" \u{61}ssert { type: "json" };
import { foo } assert { type: "json" };
import "lorem"
assert { type: "json" }
import foo2 from "foo.json" assert { "type": "json", type: "html", "type": "js" };
import "x" assert;
import ipsum from "ipsum.json" assert { type: "json", lazy: true, startAtLine: 1 };
import { a } from "a.json" assert