diff --git a/.prettierignore b/.prettierignore
index e3259c2c815b..6a9febb413a7 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -4,25 +4,25 @@
**/.nyc_output
**/.vs
CONTRIBUTORS.md
-packages/ast-spec/src/*/*/fixtures/_error_/*/fixture.ts
-packages/eslint-plugin/tests/fixtures/indent/
-# prettier errors on this case because it's semantically valid
-packages/ast-spec/src/element/AccessorProperty/fixtures/modifier-abstract-with-value/fixture.ts
+.yarn/plugins
+.yarn/releases
-# prettier doesn't yet support `using` declaration
-packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/fixture.ts
-packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-with-value/fixture.ts
-packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/fixture.ts
-packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-with-value/fixture.ts
-packages/ast-spec/src/statement/ForOfStatement/fixtures/using-decralation/fixture.ts
+packages/eslint-plugin/tests/fixtures/indent/
-# prettier doesn't yet support `const` modifiers for type parameters
-packages/ast-spec/src/special/TSTypeParameter/fixtures
+# ignore all error fixtures cos they often have intentional syntax errors
+packages/ast-spec/src/*/*/fixtures/_error_/*/fixture.ts
-# prettier doesn't yet support JSX namespaced attributes
-packages/ast-spec/src/jsx/JSXNamespacedName/fixtures/component/fixture.tsx
-packages/scope-manager/tests/fixtures/jsx/namespaced-attribute.tsx
+# TS 5.6 -- string literal import/export specifiers
+# TODO - remove this once prettier supports it
+packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/fixture.ts
+packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/fixture.ts
+packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/fixture.ts
+packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/fixture.ts
+packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/fixture.ts
+packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/fixture.ts
+packages/ast-spec/src/special/ExportSpecifier/fixtures/literal-specifier/fixture.ts
+packages/ast-spec/src/special/ExportSpecifier/fixtures/value-export-specifier/fixture.ts
# Ignore CHANGELOG.md files to avoid issues with automated release job
CHANGELOG.md
@@ -34,4 +34,4 @@ packages/website/build
packages/rule-tester/tests/eslint-base
/.nx/cache
-/.nx/workspace-data
\ No newline at end of file
+/.nx/workspace-data
diff --git a/.yarn/patches/@microsoft-api-extractor-npm-7.38.0-955f1e0725.patch b/.yarn/patches/@microsoft-api-extractor-npm-7.38.0-955f1e0725.patch
deleted file mode 100644
index 4a88d8663c34..000000000000
--- a/.yarn/patches/@microsoft-api-extractor-npm-7.38.0-955f1e0725.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff --git a/lib/analyzer/ExportAnalyzer.js b/lib/analyzer/ExportAnalyzer.js
-index 51f31b4f2f253d82adc9594faa58d8dc031957e0..1fddac54b08665f5a5a717fef740613ae921cb7a 100644
---- a/lib/analyzer/ExportAnalyzer.js
-+++ b/lib/analyzer/ExportAnalyzer.js
-@@ -193,7 +193,7 @@ class ExportAnalyzer {
- const mode = specifier && ts.isStringLiteralLike(specifier)
- ? TypeScriptInternals_1.TypeScriptInternals.getModeForUsageLocation(importOrExportDeclaration.getSourceFile(), specifier)
- : undefined;
-- const resolvedModule = TypeScriptInternals_1.TypeScriptInternals.getResolvedModule(importOrExportDeclaration.getSourceFile(), moduleSpecifier, mode);
-+ const resolvedModule = TypeScriptInternals_1.TypeScriptInternals.getResolvedModule(this._program, importOrExportDeclaration.getSourceFile(), moduleSpecifier, mode);
- if (resolvedModule === undefined) {
- // The TS compiler API `getResolvedModule` cannot resolve ambient modules. Thus, to match API Extractor's
- // previous behavior, simply treat all ambient modules as external. This bug is tracked by
-@@ -666,7 +666,7 @@ class ExportAnalyzer {
- ts.isStringLiteralLike(importOrExportDeclaration.moduleSpecifier)
- ? TypeScriptInternals_1.TypeScriptInternals.getModeForUsageLocation(importOrExportDeclaration.getSourceFile(), importOrExportDeclaration.moduleSpecifier)
- : undefined;
-- const resolvedModule = TypeScriptInternals_1.TypeScriptInternals.getResolvedModule(importOrExportDeclaration.getSourceFile(), moduleSpecifier, mode);
-+ const resolvedModule = TypeScriptInternals_1.TypeScriptInternals.getResolvedModule(this._program, importOrExportDeclaration.getSourceFile(), moduleSpecifier, mode);
- if (resolvedModule === undefined) {
- // Encountered in https://github.com/microsoft/rushstack/issues/1914.
- //
-diff --git a/lib/analyzer/TypeScriptInternals.js b/lib/analyzer/TypeScriptInternals.js
-index ff13db7709ccf502fe202337869d4024431636c9..217c36b0303c3bf9871edabcd48fbf6e09f18561 100644
---- a/lib/analyzer/TypeScriptInternals.js
-+++ b/lib/analyzer/TypeScriptInternals.js
-@@ -84,10 +84,16 @@ class TypeScriptInternals {
- * Retrieves the (cached) module resolution information for a module name that was exported from a SourceFile.
- * The compiler populates this cache as part of analyzing the source file.
- */
-- static getResolvedModule(sourceFile, moduleNameText, mode) {
-+ static getResolvedModule(program, sourceFile, moduleNameText, mode) {
- // Compiler internal:
-- // https://github.com/microsoft/TypeScript/blob/v4.7.2/src/compiler/utilities.ts#L161
-- return ts.getResolvedModule(sourceFile, moduleNameText, mode);
-+ // https://github.com/microsoft/TypeScript/blob/v5.3-beta/src/compiler/types.ts#L4678
-+ const result = program.getResolvedModule(
-+ sourceFile,
-+ moduleNameText,
-+ mode
-+ );
-+ return result?.resolvedModule;
-+
- }
- /**
- * Gets the mode required for module resolution required with the addition of Node16/nodenext
diff --git a/docs/maintenance/pull-requests/Dependency_Version_Upgrades.mdx b/docs/maintenance/pull-requests/Dependency_Version_Upgrades.mdx
index 15ae0340c358..596c7ea0611e 100644
--- a/docs/maintenance/pull-requests/Dependency_Version_Upgrades.mdx
+++ b/docs/maintenance/pull-requests/Dependency_Version_Upgrades.mdx
@@ -137,13 +137,11 @@ We generally start the process of supporting a new TypeScript version just after
- In the parser's `getLib`, update the `switch (target)` and its preceding comment as needed (see [#6782](https://github.com/typescript-eslint/typescript-eslint/pull/6782))
- Change the `SUPPORTED_TYPESCRIPT_VERSIONS` constant's `<` version to the next version of TypeScript
- Change the `SUPPORTED_PRERELEASE_RANGES` constant to equal `['X.Y.1-rc']`
- - Rename and update `patches/typescript*` to the new TypeScript version
- Run `yarn generate-lib` to update `scope-manager`
1. Once all PRs needed for the RC update PR are merged, merge the RC update PR
1. Once TypeScript releases the stable X.Y version, create and merge a PR with a title like `chore: bump TypeScript from X.YRC to X.Y` and the following changes:
- In the root `package.json`, remove `|| X.Y.1-rc2` from the `dependency` on `typescript`, and bump its `<` version to the next version of TypeScript
- In the root `package.json`, change the `resolutions` on `typescript` to `X.Y.3`
- - Rename and update `patches/typescript*` to the new TypeScript version
- Any other changes made necessary due to changes in TypeScript between the RC version and stable version
1. Send a PR that updates this documentation page to point to your newer issues and PRs
- Also update any of these steps if you go with a different process
diff --git a/package.json b/package.json
index eaec4491d431..0b656908bd71 100644
--- a/package.json
+++ b/package.json
@@ -124,7 +124,7 @@
"semver": "7.6.2",
"tmp": "^0.2.1",
"tsx": "*",
- "typescript": ">=4.8.4 <5.6.0",
+ "typescript": ">=4.8.4 <5.7.0",
"typescript-eslint": "workspace:^",
"yargs": "17.7.2"
},
@@ -132,23 +132,23 @@
"@jest/create-cache-key-function": "^29",
"@jest/reporters": "^29",
"@jest/test-result": "^29",
- "@microsoft/api-extractor@^7.38.0": "patch:@microsoft/api-extractor@npm%3A7.38.0#./.yarn/patches/@microsoft-api-extractor-npm-7.38.0-955f1e0725.patch",
"@types/eslint-scope": "link:./tools/dummypkg",
"@types/eslint": "link:./tools/dummypkg",
"@types/estree": "link:./tools/dummypkg",
"@types/node": "^20.0.0",
"@types/react": "^18.2.14",
"eslint": "^9",
+ "eslint-plugin-eslint-plugin@^5.5.0": "patch:eslint-plugin-eslint-plugin@npm%3A5.5.1#./.yarn/patches/eslint-plugin-eslint-plugin-npm-5.5.1-4206c2506d.patch",
"eslint-visitor-keys": "^3.4.1",
"jest-config": "^29",
"jest-resolve": "^29",
"jest-util": "^29",
+ "prettier": "3.3.2",
"pretty-format": "^29",
"react-split-pane@^0.1.92": "patch:react-split-pane@npm%3A0.1.92#./.yarn/patches/react-split-pane-npm-0.1.92-93dbf51dff.patch",
"tmp": "0.2.1",
"tsx": "^4.7.2",
- "typescript": "5.5.2",
- "eslint-plugin-eslint-plugin@^5.5.0": "patch:eslint-plugin-eslint-plugin@npm%3A5.5.1#./.yarn/patches/eslint-plugin-eslint-plugin-npm-5.5.1-4206c2506d.patch"
+ "typescript": "5.6.2"
},
"packageManager": "yarn@3.8.2",
"nx": {
diff --git a/packages/ast-spec/package.json b/packages/ast-spec/package.json
index 1dea62fb271f..691b74f0a14f 100644
--- a/packages/ast-spec/package.json
+++ b/packages/ast-spec/package.json
@@ -48,7 +48,7 @@
"@babel/core": "*",
"@babel/eslint-parser": "*",
"@jest/types": "29.6.3",
- "@microsoft/api-extractor": "^7.43.0",
+ "@microsoft/api-extractor": "^7.47.11",
"glob": "*",
"jest": "29.7.0",
"jest-diff": "^29.7.0",
diff --git a/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/fixture.ts b/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/fixture.ts
deleted file mode 100644
index 8bab23b35992..000000000000
--- a/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/fixture.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * as 'foo' from 'module';
diff --git a/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/snapshots/1-Babel-Error.shot b/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/snapshots/1-Babel-Error.shot
deleted file mode 100644
index 04ccfb73d5bb..000000000000
--- a/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/snapshots/1-Babel-Error.shot
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AST Fixtures declaration ExportAllDeclaration _error_ named-non-identifier Babel - Error 1`] = `"NO ERROR"`;
diff --git a/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/snapshots/1-TSESTree-Error.shot
deleted file mode 100644
index cea1b9f24689..000000000000
--- a/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/snapshots/1-TSESTree-Error.shot
+++ /dev/null
@@ -1,8 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AST Fixtures declaration ExportAllDeclaration _error_ named-non-identifier TSESTree - Error 1`] = `
-"TSError
-> 1 | export * as 'foo' from 'module';
- | ^ Identifier expected.
- 2 |"
-`;
diff --git a/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/snapshots/2-Alignment-Error.shot b/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/snapshots/2-Alignment-Error.shot
deleted file mode 100644
index 3e05e98bfafd..000000000000
--- a/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/snapshots/2-Alignment-Error.shot
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AST Fixtures declaration ExportAllDeclaration _error_ named-non-identifier Error Alignment 1`] = `"TSESTree errored but Babel didn't"`;
diff --git a/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/snapshots/2-Babel-Error.shot
deleted file mode 100644
index 04ccfb73d5bb..000000000000
--- a/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/snapshots/2-Babel-Error.shot
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AST Fixtures declaration ExportAllDeclaration _error_ named-non-identifier Babel - Error 1`] = `"NO ERROR"`;
diff --git a/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/snapshots/3-Alignment-Error.shot
deleted file mode 100644
index 3e05e98bfafd..000000000000
--- a/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/_error_/named-non-identifier/snapshots/3-Alignment-Error.shot
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AST Fixtures declaration ExportAllDeclaration _error_ named-non-identifier Error Alignment 1`] = `"TSESTree errored but Babel didn't"`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/fixture.ts
deleted file mode 100644
index 5faf31b8867a..000000000000
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/fixture.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { a as 'a' };
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-with-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-with-source/fixture.ts
new file mode 100644
index 000000000000..3f4367e53b55
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-with-source/fixture.ts
@@ -0,0 +1 @@
+export { a as 1 } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-with-source/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-with-source/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..24f7b42f0b77
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-with-source/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-identifier-aliased-to-number-literal-with-source TSESTree - Error 1`] = `
+"TSError
+> 1 | export { a as 1 } from 'mod';
+ | ^ Identifier expected.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-with-source/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-with-source/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..b084f34a5da0
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-with-source/snapshots/2-Babel-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-identifier-aliased-to-number-literal-with-source Babel - Error 1`] = `[SyntaxError: Unexpected token (1:14)]`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-with-source/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-with-source/snapshots/3-Alignment-Error.shot
new file mode 100644
index 000000000000..c8ad6c49c869
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-with-source/snapshots/3-Alignment-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-identifier-aliased-to-number-literal-with-source Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-without-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-without-source/fixture.ts
new file mode 100644
index 000000000000..504dbf44ba01
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-without-source/fixture.ts
@@ -0,0 +1 @@
+export { a as 1 };
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-without-source/snapshots/1-TSESTree-Error.shot
similarity index 60%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/snapshots/1-TSESTree-Error.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-without-source/snapshots/1-TSESTree-Error.shot
index 015ff072aa2f..7b7fbf69df5c 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/snapshots/1-TSESTree-Error.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-without-source/snapshots/1-TSESTree-Error.shot
@@ -1,8 +1,8 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration _error_ aliased-literal TSESTree - Error 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-identifier-aliased-to-number-literal-without-source TSESTree - Error 1`] = `
"TSError
-> 1 | export { a as 'a' };
+> 1 | export { a as 1 };
| ^ Identifier expected.
2 |"
`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-without-source/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-without-source/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..fcbf3dc6d452
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-without-source/snapshots/2-Babel-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-identifier-aliased-to-number-literal-without-source Babel - Error 1`] = `[SyntaxError: Unexpected token (1:14)]`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-without-source/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-without-source/snapshots/3-Alignment-Error.shot
new file mode 100644
index 000000000000..922f7f21f6de
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-identifier-aliased-to-number-literal-without-source/snapshots/3-Alignment-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-identifier-aliased-to-number-literal-without-source Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-with-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-with-source/fixture.ts
new file mode 100644
index 000000000000..b74776276410
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-with-source/fixture.ts
@@ -0,0 +1 @@
+export { 1 } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-with-source/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-with-source/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..4236bc62af00
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-with-source/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-number-literal-with-source TSESTree - Error 1`] = `
+"TSError
+> 1 | export { 1 } from 'mod';
+ | ^ Identifier expected.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/snapshots/1-Babel-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-with-source/snapshots/2-Babel-Error.shot
similarity index 52%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/snapshots/1-Babel-Error.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-with-source/snapshots/2-Babel-Error.shot
index dabc7d927d5d..f9d04b880622 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/snapshots/1-Babel-Error.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-with-source/snapshots/2-Babel-Error.shot
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration _error_ aliased-literal Babel - Error 1`] = `"NO ERROR"`;
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-number-literal-with-source Babel - Error 1`] = `[SyntaxError: Unexpected token (1:9)]`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-with-source/snapshots/3-Alignment-Error.shot
similarity index 59%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/snapshots/3-Alignment-Error.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-with-source/snapshots/3-Alignment-Error.shot
index f2d4bb40cc50..7db9712e5305 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/snapshots/3-Alignment-Error.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-with-source/snapshots/3-Alignment-Error.shot
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration _error_ literal-braced Error Alignment 1`] = `"Both errored"`;
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-number-literal-with-source Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-without-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-without-source/fixture.ts
new file mode 100644
index 000000000000..fa1afc8165af
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-without-source/fixture.ts
@@ -0,0 +1 @@
+export { 1 };
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-without-source/snapshots/1-TSESTree-Error.shot
similarity index 66%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/snapshots/1-TSESTree-Error.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-without-source/snapshots/1-TSESTree-Error.shot
index 55c09361565e..b8091168e53b 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/snapshots/1-TSESTree-Error.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-without-source/snapshots/1-TSESTree-Error.shot
@@ -1,8 +1,8 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration _error_ literal-braced TSESTree - Error 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-number-literal-without-source TSESTree - Error 1`] = `
"TSError
-> 1 | export { 'a' };
+> 1 | export { 1 };
| ^ Identifier expected.
2 |"
`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-without-source/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-without-source/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..027935e43e47
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-without-source/snapshots/2-Babel-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-number-literal-without-source Babel - Error 1`] = `[SyntaxError: Unexpected token (1:9)]`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-without-source/snapshots/3-Alignment-Error.shot
similarity index 58%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/snapshots/3-Alignment-Error.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-without-source/snapshots/3-Alignment-Error.shot
index efb973998424..0b69103437fe 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/snapshots/3-Alignment-Error.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-number-literal-without-source/snapshots/3-Alignment-Error.shot
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration _error_ aliased-literal Error Alignment 1`] = `"TSESTree errored but Babel didn't"`;
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-number-literal-without-source Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-identifier-without-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-identifier-without-source/fixture.ts
new file mode 100644
index 000000000000..7bf13642b5a3
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-identifier-without-source/fixture.ts
@@ -0,0 +1 @@
+export { 'a a' as b };
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-identifier-without-source/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-identifier-without-source/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..c0cb744a406c
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-identifier-without-source/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-string-literal-aliased-to-identifier-without-source TSESTree - Error 1`] = `
+"TSError
+> 1 | export { 'a a' as b };
+ | ^^^^^ A string literal cannot be used as a local exported binding without \`from\`.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-identifier-without-source/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-identifier-without-source/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..8a5bd0de2a8c
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-identifier-without-source/snapshots/2-Babel-Error.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-string-literal-aliased-to-identifier-without-source Babel - Error 1`] = `
+[SyntaxError: A string literal cannot be used as an exported binding without \`from\`.
+- Did you mean \`export { 'a a' as 'b' } from 'some-module'\`? (1:9)]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-identifier-without-source/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-identifier-without-source/snapshots/3-Alignment-Error.shot
new file mode 100644
index 000000000000..f36da5abefdc
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-identifier-without-source/snapshots/3-Alignment-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-string-literal-aliased-to-identifier-without-source Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-number-literal-without-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-number-literal-without-source/fixture.ts
new file mode 100644
index 000000000000..f0ce06919277
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-number-literal-without-source/fixture.ts
@@ -0,0 +1 @@
+export { 'a a' as 1 };
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-number-literal-without-source/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-number-literal-without-source/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..8e6e90c6f422
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-number-literal-without-source/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-string-literal-aliased-to-number-literal-without-source TSESTree - Error 1`] = `
+"TSError
+> 1 | export { 'a a' as 1 };
+ | ^ Identifier expected.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-number-literal-without-source/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-number-literal-without-source/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..59e6552db777
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-number-literal-without-source/snapshots/2-Babel-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-string-literal-aliased-to-number-literal-without-source Babel - Error 1`] = `[SyntaxError: Unexpected token (1:18)]`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-number-literal-without-source/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-number-literal-without-source/snapshots/3-Alignment-Error.shot
new file mode 100644
index 000000000000..5d822c09ed07
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-number-literal-without-source/snapshots/3-Alignment-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-string-literal-aliased-to-number-literal-without-source Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-string-literal-without-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-string-literal-without-source/fixture.ts
new file mode 100644
index 000000000000..a54a56ad01ed
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-string-literal-without-source/fixture.ts
@@ -0,0 +1 @@
+export { 'a a' as 'b b' };
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-string-literal-without-source/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-string-literal-without-source/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..abff37aa4a9e
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-string-literal-without-source/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-string-literal-aliased-to-string-literal-without-source TSESTree - Error 1`] = `
+"TSError
+> 1 | export { 'a a' as 'b b' };
+ | ^^^^^ A string literal cannot be used as a local exported binding without \`from\`.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-string-literal-without-source/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-string-literal-without-source/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..383648bd3c68
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-string-literal-without-source/snapshots/2-Babel-Error.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-string-literal-aliased-to-string-literal-without-source Babel - Error 1`] = `
+[SyntaxError: A string literal cannot be used as an exported binding without \`from\`.
+- Did you mean \`export { 'a a' as 'b b' } from 'some-module'\`? (1:9)]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-string-literal-without-source/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-string-literal-without-source/snapshots/3-Alignment-Error.shot
new file mode 100644
index 000000000000..bd27647c8d0e
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-aliased-to-string-literal-without-source/snapshots/3-Alignment-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-string-literal-aliased-to-string-literal-without-source Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-many-without-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-many-without-source/fixture.ts
new file mode 100644
index 000000000000..93341fb488d5
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-many-without-source/fixture.ts
@@ -0,0 +1 @@
+export { 'a a', 'b b' };
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-many-without-source/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-many-without-source/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..3b9ad821bd0c
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-many-without-source/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-string-literal-many-without-source TSESTree - Error 1`] = `
+"TSError
+> 1 | export { 'a a', 'b b' };
+ | ^^^^^ A string literal cannot be used as a local exported binding without \`from\`.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/snapshots/1-Babel-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-many-without-source/snapshots/2-Babel-Error.shot
similarity index 59%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/snapshots/1-Babel-Error.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-many-without-source/snapshots/2-Babel-Error.shot
index 3ba27489473b..2ee71a5daf29 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/snapshots/1-Babel-Error.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-many-without-source/snapshots/2-Babel-Error.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration _error_ literal-braced Babel - Error 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-string-literal-many-without-source Babel - Error 1`] = `
[SyntaxError: A string literal cannot be used as an exported binding without \`from\`.
-- Did you mean \`export { 'a' as 'a' } from 'some-module'\`? (1:9)]
+- Did you mean \`export { 'a a' as 'a a' } from 'some-module'\`? (1:9)]
`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-many-without-source/snapshots/3-Alignment-Error.shot
similarity index 56%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/snapshots/2-Babel-Error.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-many-without-source/snapshots/3-Alignment-Error.shot
index dabc7d927d5d..40240523bf45 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/snapshots/2-Babel-Error.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-many-without-source/snapshots/3-Alignment-Error.shot
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration _error_ aliased-literal Babel - Error 1`] = `"NO ERROR"`;
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-string-literal-many-without-source Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-without-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-without-source/fixture.ts
new file mode 100644
index 000000000000..838871242b23
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-without-source/fixture.ts
@@ -0,0 +1 @@
+export { 'a a' };
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-without-source/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-without-source/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..4aab1a3ea4a8
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-without-source/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-string-literal-without-source TSESTree - Error 1`] = `
+"TSError
+> 1 | export { 'a a' };
+ | ^^^^^ A string literal cannot be used as a local exported binding without \`from\`.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-without-source/snapshots/2-Babel-Error.shot
similarity index 60%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/snapshots/2-Babel-Error.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-without-source/snapshots/2-Babel-Error.shot
index 3ba27489473b..23fb23d4e816 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/snapshots/2-Babel-Error.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-without-source/snapshots/2-Babel-Error.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration _error_ literal-braced Babel - Error 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-string-literal-without-source Babel - Error 1`] = `
[SyntaxError: A string literal cannot be used as an exported binding without \`from\`.
-- Did you mean \`export { 'a' as 'a' } from 'some-module'\`? (1:9)]
+- Did you mean \`export { 'a a' as 'a a' } from 'some-module'\`? (1:9)]
`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/snapshots/2-Alignment-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-without-source/snapshots/3-Alignment-Error.shot
similarity index 58%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/snapshots/2-Alignment-Error.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-without-source/snapshots/3-Alignment-Error.shot
index efb973998424..1ca50acedcb8 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/aliased-literal/snapshots/2-Alignment-Error.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/braced-string-literal-without-source/snapshots/3-Alignment-Error.shot
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration _error_ aliased-literal Error Alignment 1`] = `"TSESTree errored but Babel didn't"`;
+exports[`AST Fixtures declaration ExportNamedDeclaration _error_ braced-string-literal-without-source Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/fixture.ts
deleted file mode 100644
index 7eec000d816d..000000000000
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/fixture.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { 'a' };
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/snapshots/2-Alignment-Error.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/snapshots/2-Alignment-Error.shot
deleted file mode 100644
index f2d4bb40cc50..000000000000
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/_error_/literal-braced/snapshots/2-Alignment-Error.shot
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AST Fixtures declaration ExportNamedDeclaration _error_ literal-braced Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/fixture.ts
new file mode 100644
index 000000000000..7d1a5a7aa3a5
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/fixture.ts
@@ -0,0 +1 @@
+export { a as b } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/1-TSESTree-AST.shot
new file mode 100644
index 000000000000..78f189622475
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/1-TSESTree-AST.shot
@@ -0,0 +1,75 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-identifier-with-source TSESTree - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ attributes: [],
+ declaration: null,
+ exportKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [23, 28],
+ loc: {
+ start: { column: 23, line: 1 },
+ end: { column: 28, line: 1 },
+ },
+ },
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Identifier {
+ type: "Identifier",
+ decorators: [],
+ name: "b",
+ optional: false,
+
+ range: [14, 15],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 15, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ decorators: [],
+ name: "a",
+ optional: false,
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+
+ range: [9, 15],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 15, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 29],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 29, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 30],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/2-TSESTree-Tokens.shot
new file mode 100644
index 000000000000..b975c782fc4a
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/2-TSESTree-Tokens.shot
@@ -0,0 +1,96 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-identifier-with-source TSESTree - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "as",
+
+ range: [11, 13],
+ loc: {
+ start: { column: 11, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "b",
+
+ range: [14, 15],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 15, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [16, 17],
+ loc: {
+ start: { column: 16, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [18, 22],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 22, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [23, 28],
+ loc: {
+ start: { column: 23, line: 1 },
+ end: { column: 28, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [28, 29],
+ loc: {
+ start: { column: 28, line: 1 },
+ end: { column: 29, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/3-Babel-AST.shot
new file mode 100644
index 000000000000..20876dca3105
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/3-Babel-AST.shot
@@ -0,0 +1,71 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-identifier-with-source Babel - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ assertions: [],
+ declaration: null,
+ exportKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [23, 28],
+ loc: {
+ start: { column: 23, line: 1 },
+ end: { column: 28, line: 1 },
+ },
+ },
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Identifier {
+ type: "Identifier",
+ name: "b",
+
+ range: [14, 15],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 15, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+
+ range: [9, 15],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 15, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 29],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 29, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 30],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/4-Babel-Tokens.shot
new file mode 100644
index 000000000000..56aac5f39800
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/4-Babel-Tokens.shot
@@ -0,0 +1,96 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-identifier-with-source Babel - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "as",
+
+ range: [11, 13],
+ loc: {
+ start: { column: 11, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "b",
+
+ range: [14, 15],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 15, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [16, 17],
+ loc: {
+ start: { column: 16, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [18, 22],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 22, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [23, 28],
+ loc: {
+ start: { column: 23, line: 1 },
+ end: { column: 28, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [28, 29],
+ loc: {
+ start: { column: 28, line: 1 },
+ end: { column: 29, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/5-AST-Alignment-AST.shot
new file mode 100644
index 000000000000..91755224f540
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/5-AST-Alignment-AST.shot
@@ -0,0 +1,80 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-identifier-with-source AST Alignment - AST 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Program {
+ type: 'Program',
+ body: Array [
+ ExportNamedDeclaration {
+ type: 'ExportNamedDeclaration',
+- attributes: Array [],
++ assertions: Array [],
+ declaration: null,
+ exportKind: 'value',
+ source: Literal {
+ type: 'Literal',
+ raw: '\\'mod\\'',
+ value: 'mod',
+
+ range: [23, 28],
+ loc: {
+ start: { column: 23, line: 1 },
+ end: { column: 28, line: 1 },
+ },
+ },
+ specifiers: Array [
+ ExportSpecifier {
+ type: 'ExportSpecifier',
+ exported: Identifier {
+ type: 'Identifier',
+- decorators: Array [],
+ name: 'b',
+- optional: false,
+
+ range: [14, 15],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 15, line: 1 },
+ },
+ },
+ exportKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+- decorators: Array [],
+ name: 'a',
+- optional: false,
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+
+ range: [9, 15],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 15, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 29],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 29, line: 1 },
+ },
+ },
+ ],
+ sourceType: 'module',
+
+ range: [0, 30],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+ }"
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..5e0e4b49653a
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-with-source/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-identifier-with-source AST Alignment - Token 1`] = `
+"Snapshot Diff:
+Compared values have no visual difference."
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/fixture.ts
similarity index 100%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/fixture.ts
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/fixture.ts
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/1-TSESTree-AST.shot
similarity index 91%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/snapshots/1-TSESTree-AST.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/1-TSESTree-AST.shot
index 1b2d074fc6ef..f0e126d60d9e 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/snapshots/1-TSESTree-AST.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/1-TSESTree-AST.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration aliased TSESTree - AST 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-identifier-without-source TSESTree - AST 1`] = `
Program {
type: "Program",
body: [
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/2-TSESTree-Tokens.shot
similarity index 90%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/snapshots/2-TSESTree-Tokens.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/2-TSESTree-Tokens.shot
index 8bdbd3c34b8f..1b39423e8fe0 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/snapshots/2-TSESTree-Tokens.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/2-TSESTree-Tokens.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration aliased TSESTree - Tokens 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-identifier-without-source TSESTree - Tokens 1`] = `
[
Keyword {
type: "Keyword",
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/3-Babel-AST.shot
similarity index 90%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/snapshots/3-Babel-AST.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/3-Babel-AST.shot
index 2027ecaf04ea..cb9de6bf21d8 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/snapshots/3-Babel-AST.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/3-Babel-AST.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration aliased Babel - AST 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-identifier-without-source Babel - AST 1`] = `
Program {
type: "Program",
body: [
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/4-Babel-Tokens.shot
similarity index 90%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/snapshots/4-Babel-Tokens.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/4-Babel-Tokens.shot
index 68b9dbc1c3fd..f2cee18f8cc6 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/snapshots/4-Babel-Tokens.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/4-Babel-Tokens.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration aliased Babel - Tokens 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-identifier-without-source Babel - Tokens 1`] = `
[
Keyword {
type: "Keyword",
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/5-AST-Alignment-AST.shot
similarity index 92%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/snapshots/5-AST-Alignment-AST.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/5-AST-Alignment-AST.shot
index 1fd302c11434..71c86d6ccd1a 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/aliased/snapshots/5-AST-Alignment-AST.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/5-AST-Alignment-AST.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration aliased AST Alignment - AST 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-identifier-without-source AST Alignment - AST 1`] = `
"Snapshot Diff:
- TSESTree
+ Babel
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..7a4d0886e2a1
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-identifier-without-source/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-identifier-without-source AST Alignment - Token 1`] = `
+"Snapshot Diff:
+Compared values have no visual difference."
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/fixture.ts
new file mode 100644
index 000000000000..2793b054c40a
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/fixture.ts
@@ -0,0 +1 @@
+export { a as 'b' } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/1-TSESTree-AST.shot
new file mode 100644
index 000000000000..12303ecaa5d2
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/1-TSESTree-AST.shot
@@ -0,0 +1,74 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-string-literal-with-source TSESTree - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ attributes: [],
+ declaration: null,
+ exportKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [25, 30],
+ loc: {
+ start: { column: 25, line: 1 },
+ end: { column: 30, line: 1 },
+ },
+ },
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Literal {
+ type: "Literal",
+ raw: "'b'",
+ value: "b",
+
+ range: [14, 17],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ decorators: [],
+ name: "a",
+ optional: false,
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+
+ range: [9, 17],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 31],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 31, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 32],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/2-TSESTree-Tokens.shot
new file mode 100644
index 000000000000..1fd352d9bea5
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/2-TSESTree-Tokens.shot
@@ -0,0 +1,96 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-string-literal-with-source TSESTree - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "as",
+
+ range: [11, 13],
+ loc: {
+ start: { column: 11, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'b'",
+
+ range: [14, 17],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [18, 19],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [20, 24],
+ loc: {
+ start: { column: 20, line: 1 },
+ end: { column: 24, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [25, 30],
+ loc: {
+ start: { column: 25, line: 1 },
+ end: { column: 30, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [30, 31],
+ loc: {
+ start: { column: 30, line: 1 },
+ end: { column: 31, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/3-Babel-AST.shot
new file mode 100644
index 000000000000..f3e94f39ac59
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/3-Babel-AST.shot
@@ -0,0 +1,72 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-string-literal-with-source Babel - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ assertions: [],
+ declaration: null,
+ exportKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [25, 30],
+ loc: {
+ start: { column: 25, line: 1 },
+ end: { column: 30, line: 1 },
+ },
+ },
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Literal {
+ type: "Literal",
+ raw: "'b'",
+ value: "b",
+
+ range: [14, 17],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+
+ range: [9, 17],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 31],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 31, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 32],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/4-Babel-Tokens.shot
new file mode 100644
index 000000000000..613532e02424
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/4-Babel-Tokens.shot
@@ -0,0 +1,96 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-string-literal-with-source Babel - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "as",
+
+ range: [11, 13],
+ loc: {
+ start: { column: 11, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'b'",
+
+ range: [14, 17],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [18, 19],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [20, 24],
+ loc: {
+ start: { column: 20, line: 1 },
+ end: { column: 24, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [25, 30],
+ loc: {
+ start: { column: 25, line: 1 },
+ end: { column: 30, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [30, 31],
+ loc: {
+ start: { column: 30, line: 1 },
+ end: { column: 31, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/5-AST-Alignment-AST.shot
new file mode 100644
index 000000000000..2ce277fa53a0
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/5-AST-Alignment-AST.shot
@@ -0,0 +1,79 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-string-literal-with-source AST Alignment - AST 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Program {
+ type: 'Program',
+ body: Array [
+ ExportNamedDeclaration {
+ type: 'ExportNamedDeclaration',
+- attributes: Array [],
++ assertions: Array [],
+ declaration: null,
+ exportKind: 'value',
+ source: Literal {
+ type: 'Literal',
+ raw: '\\'mod\\'',
+ value: 'mod',
+
+ range: [25, 30],
+ loc: {
+ start: { column: 25, line: 1 },
+ end: { column: 30, line: 1 },
+ },
+ },
+ specifiers: Array [
+ ExportSpecifier {
+ type: 'ExportSpecifier',
+ exported: Literal {
+ type: 'Literal',
+ raw: '\\'b\\'',
+ value: 'b',
+
+ range: [14, 17],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ exportKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+- decorators: Array [],
+ name: 'a',
+- optional: false,
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+
+ range: [9, 17],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 31],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 31, line: 1 },
+ },
+ },
+ ],
+ sourceType: 'module',
+
+ range: [0, 32],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+ }"
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..bef6c6e24d1f
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-string-literal-with-source AST Alignment - Token 1`] = `
+"Snapshot Diff:
+Compared values have no visual difference."
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/fixture.ts
new file mode 100644
index 000000000000..718bd08c02c3
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/fixture.ts
@@ -0,0 +1 @@
+export { a as 'b' };
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/1-TSESTree-AST.shot
new file mode 100644
index 000000000000..0a001051a27d
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/1-TSESTree-AST.shot
@@ -0,0 +1,64 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-string-literal-without-source TSESTree - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ attributes: [],
+ declaration: null,
+ exportKind: "value",
+ source: null,
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Literal {
+ type: "Literal",
+ raw: "'b'",
+ value: "b",
+
+ range: [14, 17],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ decorators: [],
+ name: "a",
+ optional: false,
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+
+ range: [9, 17],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 20],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 20, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 21],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/2-TSESTree-Tokens.shot
new file mode 100644
index 000000000000..369411ea58fa
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/2-TSESTree-Tokens.shot
@@ -0,0 +1,76 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-string-literal-without-source TSESTree - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "as",
+
+ range: [11, 13],
+ loc: {
+ start: { column: 11, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'b'",
+
+ range: [14, 17],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [18, 19],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [19, 20],
+ loc: {
+ start: { column: 19, line: 1 },
+ end: { column: 20, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/3-Babel-AST.shot
new file mode 100644
index 000000000000..d3e072e4b7ad
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/3-Babel-AST.shot
@@ -0,0 +1,62 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-string-literal-without-source Babel - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ assertions: [],
+ declaration: null,
+ exportKind: "value",
+ source: null,
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Literal {
+ type: "Literal",
+ raw: "'b'",
+ value: "b",
+
+ range: [14, 17],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+
+ range: [9, 17],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 20],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 20, line: 1 },
+ },
+ },
+ ],
+ sourceType: "script",
+
+ range: [0, 21],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/4-Babel-Tokens.shot
new file mode 100644
index 000000000000..f80606bb4cc2
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/4-Babel-Tokens.shot
@@ -0,0 +1,76 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-string-literal-without-source Babel - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "as",
+
+ range: [11, 13],
+ loc: {
+ start: { column: 11, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'b'",
+
+ range: [14, 17],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [18, 19],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [19, 20],
+ loc: {
+ start: { column: 19, line: 1 },
+ end: { column: 20, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/5-AST-Alignment-AST.shot
new file mode 100644
index 000000000000..c8778afd4bdc
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/5-AST-Alignment-AST.shot
@@ -0,0 +1,70 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-string-literal-without-source AST Alignment - AST 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Program {
+ type: 'Program',
+ body: Array [
+ ExportNamedDeclaration {
+ type: 'ExportNamedDeclaration',
+- attributes: Array [],
++ assertions: Array [],
+ declaration: null,
+ exportKind: 'value',
+ source: null,
+ specifiers: Array [
+ ExportSpecifier {
+ type: 'ExportSpecifier',
+ exported: Literal {
+ type: 'Literal',
+ raw: '\\'b\\'',
+ value: 'b',
+
+ range: [14, 17],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ exportKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+- decorators: Array [],
+ name: 'a',
+- optional: false,
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+
+ range: [9, 17],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 20],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 20, line: 1 },
+ },
+ },
+ ],
+- sourceType: 'module',
++ sourceType: 'script',
+
+ range: [0, 21],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+ }"
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..bd2fc2bc854b
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-aliased-to-string-literal-without-source AST Alignment - Token 1`] = `
+"Snapshot Diff:
+Compared values have no visual difference."
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/fixture.ts
new file mode 100644
index 000000000000..7143bbd8b1ad
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/fixture.ts
@@ -0,0 +1 @@
+export { a, b } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/1-TSESTree-AST.shot
new file mode 100644
index 000000000000..ed5078361878
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/1-TSESTree-AST.shot
@@ -0,0 +1,109 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-many-with-source TSESTree - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ attributes: [],
+ declaration: null,
+ exportKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [21, 26],
+ loc: {
+ start: { column: 21, line: 1 },
+ end: { column: 26, line: 1 },
+ },
+ },
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Identifier {
+ type: "Identifier",
+ decorators: [],
+ name: "a",
+ optional: false,
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ decorators: [],
+ name: "a",
+ optional: false,
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Identifier {
+ type: "Identifier",
+ decorators: [],
+ name: "b",
+ optional: false,
+
+ range: [12, 13],
+ loc: {
+ start: { column: 12, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ decorators: [],
+ name: "b",
+ optional: false,
+
+ range: [12, 13],
+ loc: {
+ start: { column: 12, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+
+ range: [12, 13],
+ loc: {
+ start: { column: 12, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 27],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 27, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 28],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/2-TSESTree-Tokens.shot
new file mode 100644
index 000000000000..b8d689aea35c
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/2-TSESTree-Tokens.shot
@@ -0,0 +1,96 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-many-with-source TSESTree - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [10, 11],
+ loc: {
+ start: { column: 10, line: 1 },
+ end: { column: 11, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "b",
+
+ range: [12, 13],
+ loc: {
+ start: { column: 12, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [14, 15],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 15, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [16, 20],
+ loc: {
+ start: { column: 16, line: 1 },
+ end: { column: 20, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [21, 26],
+ loc: {
+ start: { column: 21, line: 1 },
+ end: { column: 26, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [26, 27],
+ loc: {
+ start: { column: 26, line: 1 },
+ end: { column: 27, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/3-Babel-AST.shot
new file mode 100644
index 000000000000..8fcb020372ca
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/3-Babel-AST.shot
@@ -0,0 +1,101 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-many-with-source Babel - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ assertions: [],
+ declaration: null,
+ exportKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [21, 26],
+ loc: {
+ start: { column: 21, line: 1 },
+ end: { column: 26, line: 1 },
+ },
+ },
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Identifier {
+ type: "Identifier",
+ name: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Identifier {
+ type: "Identifier",
+ name: "b",
+
+ range: [12, 13],
+ loc: {
+ start: { column: 12, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "b",
+
+ range: [12, 13],
+ loc: {
+ start: { column: 12, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+
+ range: [12, 13],
+ loc: {
+ start: { column: 12, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 27],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 27, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 28],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/4-Babel-Tokens.shot
new file mode 100644
index 000000000000..e3ead9bca995
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/4-Babel-Tokens.shot
@@ -0,0 +1,96 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-many-with-source Babel - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [10, 11],
+ loc: {
+ start: { column: 10, line: 1 },
+ end: { column: 11, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "b",
+
+ range: [12, 13],
+ loc: {
+ start: { column: 12, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [14, 15],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 15, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [16, 20],
+ loc: {
+ start: { column: 16, line: 1 },
+ end: { column: 20, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [21, 26],
+ loc: {
+ start: { column: 21, line: 1 },
+ end: { column: 26, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [26, 27],
+ loc: {
+ start: { column: 26, line: 1 },
+ end: { column: 27, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/5-AST-Alignment-AST.shot
new file mode 100644
index 000000000000..6113cba0e5c4
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/5-AST-Alignment-AST.shot
@@ -0,0 +1,114 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-many-with-source AST Alignment - AST 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Program {
+ type: 'Program',
+ body: Array [
+ ExportNamedDeclaration {
+ type: 'ExportNamedDeclaration',
+- attributes: Array [],
++ assertions: Array [],
+ declaration: null,
+ exportKind: 'value',
+ source: Literal {
+ type: 'Literal',
+ raw: '\\'mod\\'',
+ value: 'mod',
+
+ range: [21, 26],
+ loc: {
+ start: { column: 21, line: 1 },
+ end: { column: 26, line: 1 },
+ },
+ },
+ specifiers: Array [
+ ExportSpecifier {
+ type: 'ExportSpecifier',
+ exported: Identifier {
+ type: 'Identifier',
+- decorators: Array [],
+ name: 'a',
+- optional: false,
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ exportKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+- decorators: Array [],
+ name: 'a',
+- optional: false,
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ ExportSpecifier {
+ type: 'ExportSpecifier',
+ exported: Identifier {
+ type: 'Identifier',
+- decorators: Array [],
+ name: 'b',
+- optional: false,
+
+ range: [12, 13],
+ loc: {
+ start: { column: 12, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+ exportKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+- decorators: Array [],
+ name: 'b',
+- optional: false,
+
+ range: [12, 13],
+ loc: {
+ start: { column: 12, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+
+ range: [12, 13],
+ loc: {
+ start: { column: 12, line: 1 },
+ end: { column: 13, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 27],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 27, line: 1 },
+ },
+ },
+ ],
+ sourceType: 'module',
+
+ range: [0, 28],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+ }"
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..2f3c7ca6ec43
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-with-source/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-many-with-source AST Alignment - Token 1`] = `
+"Snapshot Diff:
+Compared values have no visual difference."
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/fixture.ts
similarity index 100%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/fixture.ts
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/fixture.ts
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/1-TSESTree-AST.shot
similarity index 95%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/snapshots/1-TSESTree-AST.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/1-TSESTree-AST.shot
index 8892a61581c0..4cb3f5c2798b 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/snapshots/1-TSESTree-AST.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/1-TSESTree-AST.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration identifier-many TSESTree - AST 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-many-without-source TSESTree - AST 1`] = `
Program {
type: "Program",
body: [
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/2-TSESTree-Tokens.shot
similarity index 91%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/snapshots/2-TSESTree-Tokens.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/2-TSESTree-Tokens.shot
index 1a0506845dc5..c337f6f5329f 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/snapshots/2-TSESTree-Tokens.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/2-TSESTree-Tokens.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration identifier-many TSESTree - Tokens 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-many-without-source TSESTree - Tokens 1`] = `
[
Keyword {
type: "Keyword",
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/3-Babel-AST.shot
similarity index 94%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/snapshots/3-Babel-AST.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/3-Babel-AST.shot
index 9b3deae0f972..4af1be81daeb 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/snapshots/3-Babel-AST.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/3-Babel-AST.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration identifier-many Babel - AST 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-many-without-source Babel - AST 1`] = `
Program {
type: "Program",
body: [
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/4-Babel-Tokens.shot
similarity index 91%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/snapshots/4-Babel-Tokens.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/4-Babel-Tokens.shot
index f3da2541784c..9413931d9afc 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/snapshots/4-Babel-Tokens.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/4-Babel-Tokens.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration identifier-many Babel - Tokens 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-many-without-source Babel - Tokens 1`] = `
[
Keyword {
type: "Keyword",
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/5-AST-Alignment-AST.shot
similarity index 95%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/snapshots/5-AST-Alignment-AST.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/5-AST-Alignment-AST.shot
index 00294e85963b..147b250042f7 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-many/snapshots/5-AST-Alignment-AST.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/5-AST-Alignment-AST.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration identifier-many AST Alignment - AST 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-many-without-source AST Alignment - AST 1`] = `
"Snapshot Diff:
- TSESTree
+ Babel
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..c4c3db65b420
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-many-without-source/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-many-without-source AST Alignment - Token 1`] = `
+"Snapshot Diff:
+Compared values have no visual difference."
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/fixture.ts
new file mode 100644
index 000000000000..2987292f975a
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/fixture.ts
@@ -0,0 +1 @@
+export { a } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/1-TSESTree-AST.shot
new file mode 100644
index 000000000000..f219e3cb7a43
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/1-TSESTree-AST.shot
@@ -0,0 +1,75 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-with-source TSESTree - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ attributes: [],
+ declaration: null,
+ exportKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [18, 23],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 23, line: 1 },
+ },
+ },
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Identifier {
+ type: "Identifier",
+ decorators: [],
+ name: "a",
+ optional: false,
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ decorators: [],
+ name: "a",
+ optional: false,
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 24],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 24, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 25],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/2-TSESTree-Tokens.shot
new file mode 100644
index 000000000000..0b2f885efed9
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/2-TSESTree-Tokens.shot
@@ -0,0 +1,76 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-with-source TSESTree - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [11, 12],
+ loc: {
+ start: { column: 11, line: 1 },
+ end: { column: 12, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [13, 17],
+ loc: {
+ start: { column: 13, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [18, 23],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 23, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [23, 24],
+ loc: {
+ start: { column: 23, line: 1 },
+ end: { column: 24, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/3-Babel-AST.shot
new file mode 100644
index 000000000000..05f61dcf26ec
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/3-Babel-AST.shot
@@ -0,0 +1,71 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-with-source Babel - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ assertions: [],
+ declaration: null,
+ exportKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [18, 23],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 23, line: 1 },
+ },
+ },
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Identifier {
+ type: "Identifier",
+ name: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 24],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 24, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 25],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/4-Babel-Tokens.shot
new file mode 100644
index 000000000000..1b0626f17888
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/4-Babel-Tokens.shot
@@ -0,0 +1,76 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-with-source Babel - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "a",
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [11, 12],
+ loc: {
+ start: { column: 11, line: 1 },
+ end: { column: 12, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [13, 17],
+ loc: {
+ start: { column: 13, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [18, 23],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 23, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [23, 24],
+ loc: {
+ start: { column: 23, line: 1 },
+ end: { column: 24, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/5-AST-Alignment-AST.shot
new file mode 100644
index 000000000000..0bd08d542e76
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/5-AST-Alignment-AST.shot
@@ -0,0 +1,80 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-with-source AST Alignment - AST 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Program {
+ type: 'Program',
+ body: Array [
+ ExportNamedDeclaration {
+ type: 'ExportNamedDeclaration',
+- attributes: Array [],
++ assertions: Array [],
+ declaration: null,
+ exportKind: 'value',
+ source: Literal {
+ type: 'Literal',
+ raw: '\\'mod\\'',
+ value: 'mod',
+
+ range: [18, 23],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 23, line: 1 },
+ },
+ },
+ specifiers: Array [
+ ExportSpecifier {
+ type: 'ExportSpecifier',
+ exported: Identifier {
+ type: 'Identifier',
+- decorators: Array [],
+ name: 'a',
+- optional: false,
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ exportKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+- decorators: Array [],
+ name: 'a',
+- optional: false,
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+
+ range: [9, 10],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 10, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 24],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 24, line: 1 },
+ },
+ },
+ ],
+ sourceType: 'module',
+
+ range: [0, 25],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+ }"
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..3aac3b1d21cf
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-with-source/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-with-source AST Alignment - Token 1`] = `
+"Snapshot Diff:
+Compared values have no visual difference."
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/fixture.ts
similarity index 100%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/fixture.ts
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/fixture.ts
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/1-TSESTree-AST.shot
similarity index 92%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/1-TSESTree-AST.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/1-TSESTree-AST.shot
index d9f0a0177742..2f5393b47088 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/1-TSESTree-AST.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/1-TSESTree-AST.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration identifier-braced TSESTree - AST 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-without-source TSESTree - AST 1`] = `
Program {
type: "Program",
body: [
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/2-TSESTree-Tokens.shot
similarity index 88%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/2-TSESTree-Tokens.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/2-TSESTree-Tokens.shot
index 5d19014688b4..957c360c0894 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/2-TSESTree-Tokens.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/2-TSESTree-Tokens.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration identifier-braced TSESTree - Tokens 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-without-source TSESTree - Tokens 1`] = `
[
Keyword {
type: "Keyword",
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/3-Babel-AST.shot
similarity index 92%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/3-Babel-AST.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/3-Babel-AST.shot
index c99b8674c943..b6ee6e695f5f 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/3-Babel-AST.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/3-Babel-AST.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration identifier-braced Babel - AST 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-without-source Babel - AST 1`] = `
Program {
type: "Program",
body: [
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/4-Babel-Tokens.shot
similarity index 88%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/4-Babel-Tokens.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/4-Babel-Tokens.shot
index e31a37ad775b..c6dcc898382b 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/4-Babel-Tokens.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/4-Babel-Tokens.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration identifier-braced Babel - Tokens 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-without-source Babel - Tokens 1`] = `
[
Keyword {
type: "Keyword",
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/5-AST-Alignment-AST.shot
similarity index 93%
rename from packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/5-AST-Alignment-AST.shot
rename to packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/5-AST-Alignment-AST.shot
index 5336bc5c7c63..0e290454dc9c 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/5-AST-Alignment-AST.shot
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/5-AST-Alignment-AST.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ExportNamedDeclaration identifier-braced AST Alignment - AST 1`] = `
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-without-source AST Alignment - AST 1`] = `
"Snapshot Diff:
- TSESTree
+ Babel
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..fa17826e0432
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-without-source/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-identifier-without-source AST Alignment - Token 1`] = `
+"Snapshot Diff:
+Compared values have no visual difference."
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/fixture.ts
new file mode 100644
index 000000000000..cf1bc3a16691
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/fixture.ts
@@ -0,0 +1 @@
+export { 'a a' as b } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/1-TSESTree-AST.shot
new file mode 100644
index 000000000000..ed3db51ae89d
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/1-TSESTree-AST.shot
@@ -0,0 +1,74 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-aliased-to-identifier-with-source TSESTree - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ attributes: [],
+ declaration: null,
+ exportKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [27, 32],
+ loc: {
+ start: { column: 27, line: 1 },
+ end: { column: 32, line: 1 },
+ },
+ },
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Identifier {
+ type: "Identifier",
+ decorators: [],
+ name: "b",
+ optional: false,
+
+ range: [18, 19],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Literal {
+ type: "Literal",
+ raw: "'a a'",
+ value: "a a",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+
+ range: [9, 19],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 33],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 33, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 34],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/2-TSESTree-Tokens.shot
new file mode 100644
index 000000000000..3da9372f680b
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/2-TSESTree-Tokens.shot
@@ -0,0 +1,96 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-aliased-to-identifier-with-source TSESTree - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'a a'",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "as",
+
+ range: [15, 17],
+ loc: {
+ start: { column: 15, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "b",
+
+ range: [18, 19],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [20, 21],
+ loc: {
+ start: { column: 20, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [22, 26],
+ loc: {
+ start: { column: 22, line: 1 },
+ end: { column: 26, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [27, 32],
+ loc: {
+ start: { column: 27, line: 1 },
+ end: { column: 32, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [32, 33],
+ loc: {
+ start: { column: 32, line: 1 },
+ end: { column: 33, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/3-Babel-AST.shot
new file mode 100644
index 000000000000..a4ce3b40a8d3
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/3-Babel-AST.shot
@@ -0,0 +1,72 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-aliased-to-identifier-with-source Babel - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ assertions: [],
+ declaration: null,
+ exportKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [27, 32],
+ loc: {
+ start: { column: 27, line: 1 },
+ end: { column: 32, line: 1 },
+ },
+ },
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Identifier {
+ type: "Identifier",
+ name: "b",
+
+ range: [18, 19],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Literal {
+ type: "Literal",
+ raw: "'a a'",
+ value: "a a",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+
+ range: [9, 19],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 33],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 33, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 34],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/4-Babel-Tokens.shot
new file mode 100644
index 000000000000..651a962c4fd5
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/4-Babel-Tokens.shot
@@ -0,0 +1,96 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-aliased-to-identifier-with-source Babel - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'a a'",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "as",
+
+ range: [15, 17],
+ loc: {
+ start: { column: 15, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "b",
+
+ range: [18, 19],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [20, 21],
+ loc: {
+ start: { column: 20, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [22, 26],
+ loc: {
+ start: { column: 22, line: 1 },
+ end: { column: 26, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [27, 32],
+ loc: {
+ start: { column: 27, line: 1 },
+ end: { column: 32, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [32, 33],
+ loc: {
+ start: { column: 32, line: 1 },
+ end: { column: 33, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/5-AST-Alignment-AST.shot
new file mode 100644
index 000000000000..bd501e07974f
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/5-AST-Alignment-AST.shot
@@ -0,0 +1,79 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-aliased-to-identifier-with-source AST Alignment - AST 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Program {
+ type: 'Program',
+ body: Array [
+ ExportNamedDeclaration {
+ type: 'ExportNamedDeclaration',
+- attributes: Array [],
++ assertions: Array [],
+ declaration: null,
+ exportKind: 'value',
+ source: Literal {
+ type: 'Literal',
+ raw: '\\'mod\\'',
+ value: 'mod',
+
+ range: [27, 32],
+ loc: {
+ start: { column: 27, line: 1 },
+ end: { column: 32, line: 1 },
+ },
+ },
+ specifiers: Array [
+ ExportSpecifier {
+ type: 'ExportSpecifier',
+ exported: Identifier {
+ type: 'Identifier',
+- decorators: Array [],
+ name: 'b',
+- optional: false,
+
+ range: [18, 19],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ exportKind: 'value',
+ local: Literal {
+ type: 'Literal',
+ raw: '\\'a a\\'',
+ value: 'a a',
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+
+ range: [9, 19],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 33],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 33, line: 1 },
+ },
+ },
+ ],
+ sourceType: 'module',
+
+ range: [0, 34],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+ }"
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..013676484cb0
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-aliased-to-identifier-with-source AST Alignment - Token 1`] = `
+"Snapshot Diff:
+Compared values have no visual difference."
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/fixture.ts
new file mode 100644
index 000000000000..5ee1ca6e5a43
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/fixture.ts
@@ -0,0 +1 @@
+export { 'a a', 'b b' } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/1-TSESTree-AST.shot
new file mode 100644
index 000000000000..99062c83b78f
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/1-TSESTree-AST.shot
@@ -0,0 +1,105 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-many-with-source TSESTree - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ attributes: [],
+ declaration: null,
+ exportKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [29, 34],
+ loc: {
+ start: { column: 29, line: 1 },
+ end: { column: 34, line: 1 },
+ },
+ },
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Literal {
+ type: "Literal",
+ raw: "'a a'",
+ value: "a a",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Literal {
+ type: "Literal",
+ raw: "'a a'",
+ value: "a a",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Literal {
+ type: "Literal",
+ raw: "'b b'",
+ value: "b b",
+
+ range: [16, 21],
+ loc: {
+ start: { column: 16, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Literal {
+ type: "Literal",
+ raw: "'b b'",
+ value: "b b",
+
+ range: [16, 21],
+ loc: {
+ start: { column: 16, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+
+ range: [16, 21],
+ loc: {
+ start: { column: 16, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 35],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 35, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 36],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/2-TSESTree-Tokens.shot
new file mode 100644
index 000000000000..31ad2ecba3c5
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/2-TSESTree-Tokens.shot
@@ -0,0 +1,96 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-many-with-source TSESTree - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'a a'",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [14, 15],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 15, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'b b'",
+
+ range: [16, 21],
+ loc: {
+ start: { column: 16, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [22, 23],
+ loc: {
+ start: { column: 22, line: 1 },
+ end: { column: 23, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [24, 28],
+ loc: {
+ start: { column: 24, line: 1 },
+ end: { column: 28, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [29, 34],
+ loc: {
+ start: { column: 29, line: 1 },
+ end: { column: 34, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [34, 35],
+ loc: {
+ start: { column: 34, line: 1 },
+ end: { column: 35, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/3-Babel-AST.shot
new file mode 100644
index 000000000000..9ff935acade5
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/3-Babel-AST.shot
@@ -0,0 +1,105 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-many-with-source Babel - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ assertions: [],
+ declaration: null,
+ exportKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [29, 34],
+ loc: {
+ start: { column: 29, line: 1 },
+ end: { column: 34, line: 1 },
+ },
+ },
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Literal {
+ type: "Literal",
+ raw: "'a a'",
+ value: "a a",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Literal {
+ type: "Literal",
+ raw: "'a a'",
+ value: "a a",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Literal {
+ type: "Literal",
+ raw: "'b b'",
+ value: "b b",
+
+ range: [16, 21],
+ loc: {
+ start: { column: 16, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Literal {
+ type: "Literal",
+ raw: "'b b'",
+ value: "b b",
+
+ range: [16, 21],
+ loc: {
+ start: { column: 16, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+
+ range: [16, 21],
+ loc: {
+ start: { column: 16, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 35],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 35, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 36],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/4-Babel-Tokens.shot
new file mode 100644
index 000000000000..e6b87399cc54
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/4-Babel-Tokens.shot
@@ -0,0 +1,96 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-many-with-source Babel - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'a a'",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [14, 15],
+ loc: {
+ start: { column: 14, line: 1 },
+ end: { column: 15, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'b b'",
+
+ range: [16, 21],
+ loc: {
+ start: { column: 16, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [22, 23],
+ loc: {
+ start: { column: 22, line: 1 },
+ end: { column: 23, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [24, 28],
+ loc: {
+ start: { column: 24, line: 1 },
+ end: { column: 28, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [29, 34],
+ loc: {
+ start: { column: 29, line: 1 },
+ end: { column: 34, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [34, 35],
+ loc: {
+ start: { column: 34, line: 1 },
+ end: { column: 35, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/5-AST-Alignment-AST.shot
new file mode 100644
index 000000000000..23b269cc250f
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/5-AST-Alignment-AST.shot
@@ -0,0 +1,110 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-many-with-source AST Alignment - AST 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Program {
+ type: 'Program',
+ body: Array [
+ ExportNamedDeclaration {
+ type: 'ExportNamedDeclaration',
+- attributes: Array [],
++ assertions: Array [],
+ declaration: null,
+ exportKind: 'value',
+ source: Literal {
+ type: 'Literal',
+ raw: '\\'mod\\'',
+ value: 'mod',
+
+ range: [29, 34],
+ loc: {
+ start: { column: 29, line: 1 },
+ end: { column: 34, line: 1 },
+ },
+ },
+ specifiers: Array [
+ ExportSpecifier {
+ type: 'ExportSpecifier',
+ exported: Literal {
+ type: 'Literal',
+ raw: '\\'a a\\'',
+ value: 'a a',
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ exportKind: 'value',
+ local: Literal {
+ type: 'Literal',
+ raw: '\\'a a\\'',
+ value: 'a a',
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ ExportSpecifier {
+ type: 'ExportSpecifier',
+ exported: Literal {
+ type: 'Literal',
+ raw: '\\'b b\\'',
+ value: 'b b',
+
+ range: [16, 21],
+ loc: {
+ start: { column: 16, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+ exportKind: 'value',
+ local: Literal {
+ type: 'Literal',
+ raw: '\\'b b\\'',
+ value: 'b b',
+
+ range: [16, 21],
+ loc: {
+ start: { column: 16, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+
+ range: [16, 21],
+ loc: {
+ start: { column: 16, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 35],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 35, line: 1 },
+ },
+ },
+ ],
+ sourceType: 'module',
+
+ range: [0, 36],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+ }"
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..0e7d6a2b84dc
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-many-with-source AST Alignment - Token 1`] = `
+"Snapshot Diff:
+Compared values have no visual difference."
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/fixture.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/fixture.ts
new file mode 100644
index 000000000000..96cea3b07692
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/fixture.ts
@@ -0,0 +1 @@
+export { 'a a' } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/1-TSESTree-AST.shot
new file mode 100644
index 000000000000..3d0653eea62d
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/1-TSESTree-AST.shot
@@ -0,0 +1,73 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-with-source TSESTree - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ attributes: [],
+ declaration: null,
+ exportKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [22, 27],
+ loc: {
+ start: { column: 22, line: 1 },
+ end: { column: 27, line: 1 },
+ },
+ },
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Literal {
+ type: "Literal",
+ raw: "'a a'",
+ value: "a a",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Literal {
+ type: "Literal",
+ raw: "'a a'",
+ value: "a a",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 28],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 28, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 29],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/2-TSESTree-Tokens.shot
new file mode 100644
index 000000000000..a6970cc620d9
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/2-TSESTree-Tokens.shot
@@ -0,0 +1,76 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-with-source TSESTree - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'a a'",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [15, 16],
+ loc: {
+ start: { column: 15, line: 1 },
+ end: { column: 16, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [17, 21],
+ loc: {
+ start: { column: 17, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [22, 27],
+ loc: {
+ start: { column: 22, line: 1 },
+ end: { column: 27, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [27, 28],
+ loc: {
+ start: { column: 27, line: 1 },
+ end: { column: 28, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/3-Babel-AST.shot
new file mode 100644
index 000000000000..0bd7dd4ea51a
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/3-Babel-AST.shot
@@ -0,0 +1,73 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-with-source Babel - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ExportNamedDeclaration {
+ type: "ExportNamedDeclaration",
+ assertions: [],
+ declaration: null,
+ exportKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [22, 27],
+ loc: {
+ start: { column: 22, line: 1 },
+ end: { column: 27, line: 1 },
+ },
+ },
+ specifiers: [
+ ExportSpecifier {
+ type: "ExportSpecifier",
+ exported: Literal {
+ type: "Literal",
+ raw: "'a a'",
+ value: "a a",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ exportKind: "value",
+ local: Literal {
+ type: "Literal",
+ raw: "'a a'",
+ value: "a a",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 28],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 28, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 29],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/4-Babel-Tokens.shot
new file mode 100644
index 000000000000..9e79a0692088
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/4-Babel-Tokens.shot
@@ -0,0 +1,76 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-with-source Babel - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "export",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'a a'",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [15, 16],
+ loc: {
+ start: { column: 15, line: 1 },
+ end: { column: 16, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [17, 21],
+ loc: {
+ start: { column: 17, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [22, 27],
+ loc: {
+ start: { column: 22, line: 1 },
+ end: { column: 27, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [27, 28],
+ loc: {
+ start: { column: 27, line: 1 },
+ end: { column: 28, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/5-AST-Alignment-AST.shot
new file mode 100644
index 000000000000..732466bc7bd4
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/5-AST-Alignment-AST.shot
@@ -0,0 +1,78 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-with-source AST Alignment - AST 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Program {
+ type: 'Program',
+ body: Array [
+ ExportNamedDeclaration {
+ type: 'ExportNamedDeclaration',
+- attributes: Array [],
++ assertions: Array [],
+ declaration: null,
+ exportKind: 'value',
+ source: Literal {
+ type: 'Literal',
+ raw: '\\'mod\\'',
+ value: 'mod',
+
+ range: [22, 27],
+ loc: {
+ start: { column: 22, line: 1 },
+ end: { column: 27, line: 1 },
+ },
+ },
+ specifiers: Array [
+ ExportSpecifier {
+ type: 'ExportSpecifier',
+ exported: Literal {
+ type: 'Literal',
+ raw: '\\'a a\\'',
+ value: 'a a',
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ exportKind: 'value',
+ local: Literal {
+ type: 'Literal',
+ raw: '\\'a a\\'',
+ value: 'a a',
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 28],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 28, line: 1 },
+ },
+ },
+ ],
+ sourceType: 'module',
+
+ range: [0, 29],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+ }"
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..22bb3f9fcbf3
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ExportNamedDeclaration braced-string-literal-with-source AST Alignment - Token 1`] = `
+"Snapshot Diff:
+Compared values have no visual difference."
+`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/6-AST-Alignment-Tokens.shot
deleted file mode 100644
index d3563662f8c1..000000000000
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/identifier-braced/snapshots/6-AST-Alignment-Tokens.shot
+++ /dev/null
@@ -1,6 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AST Fixtures declaration ExportNamedDeclaration identifier-braced AST Alignment - Token 1`] = `
-"Snapshot Diff:
-Compared values have no visual difference."
-`;
diff --git a/packages/ast-spec/src/declaration/ExportNamedDeclaration/spec.ts b/packages/ast-spec/src/declaration/ExportNamedDeclaration/spec.ts
index 79c266d9b5fc..1fcb91b033ed 100644
--- a/packages/ast-spec/src/declaration/ExportNamedDeclaration/spec.ts
+++ b/packages/ast-spec/src/declaration/ExportNamedDeclaration/spec.ts
@@ -1,7 +1,10 @@
import type { AST_NODE_TYPES } from '../../ast-node-types';
import type { BaseNode } from '../../base/BaseNode';
import type { StringLiteral } from '../../expression/literal/StringLiteral/spec';
-import type { ExportSpecifier } from '../../special/ExportSpecifier/spec';
+import type {
+ ExportSpecifier,
+ ExportSpecifierWithIdentifierLocal,
+} from '../../special/ExportSpecifier/spec';
import type { ImportAttribute } from '../../special/ImportAttribute/spec';
import type { NamedExportDeclarations } from '../../unions/ExportDeclaration';
import type { ExportKind } from '../ExportAndImportKind';
@@ -75,6 +78,8 @@ export interface ExportNamedDeclarationWithoutSourceWithMultiple
attributes: ImportAttribute[];
declaration: null;
source: null;
+ // Cannot have literal local without a source
+ specifiers: ExportSpecifierWithIdentifierLocal[];
}
/**
@@ -99,7 +104,7 @@ export interface ExportNamedDeclarationWithoutSourceWithSingle
/**
* This will always be an empty array.
*/
- specifiers: ExportSpecifier[];
+ specifiers: ExportSpecifierWithIdentifierLocal[];
}
/**
@@ -114,6 +119,10 @@ export interface ExportNamedDeclarationWithSource
source: StringLiteral;
}
+export type ExportNamedDeclarationWithoutSource =
+ | ExportNamedDeclarationWithoutSourceWithMultiple
+ | ExportNamedDeclarationWithoutSourceWithSingle;
+
export type ExportNamedDeclaration =
| ExportNamedDeclarationWithoutSourceWithMultiple
| ExportNamedDeclarationWithoutSourceWithSingle
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-and-named-and-namespace/fixture.ts b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-and-named-and-namespace/fixture.ts
new file mode 100644
index 000000000000..54e0da9ee1d4
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-and-named-and-namespace/fixture.ts
@@ -0,0 +1 @@
+import a, * as b, { c } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-and-named-and-namespace/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-and-named-and-namespace/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..4968c665b7f4
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-and-named-and-namespace/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ default-and-named-and-namespace TSESTree - Error 1`] = `
+"TSError
+> 1 | import a, * as b, { c } from 'mod';
+ | ^ 'from' expected.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-and-named-and-namespace/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-and-named-and-namespace/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..c937b0227c30
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-and-named-and-namespace/snapshots/2-Babel-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ default-and-named-and-namespace Babel - Error 1`] = `[SyntaxError: Unexpected token, expected "from" (1:16)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/snapshots/1-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-and-named-and-namespace/snapshots/3-Alignment-Error.shot
similarity index 53%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/snapshots/1-Babel-Error.shot
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-and-named-and-namespace/snapshots/3-Alignment-Error.shot
index 438c9cdf7501..40b9a5a2bb0f 100644
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/snapshots/1-Babel-Error.shot
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-and-named-and-namespace/snapshots/3-Alignment-Error.shot
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ImportDeclaration _error_ default-non-identifier Babel - Error 1`] = `[SyntaxError: Unexpected token, expected "{" (1:7)]`;
+exports[`AST Fixtures declaration ImportDeclaration _error_ default-and-named-and-namespace Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/fixture.ts b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-number-literal/fixture.ts
similarity index 100%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/fixture.ts
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-number-literal/fixture.ts
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-number-literal/snapshots/1-TSESTree-Error.shot
similarity index 81%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/snapshots/1-TSESTree-Error.shot
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-number-literal/snapshots/1-TSESTree-Error.shot
index 33e9c446a1ac..733e29a135bd 100644
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/snapshots/1-TSESTree-Error.shot
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-number-literal/snapshots/1-TSESTree-Error.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ImportDeclaration _error_ default-non-identifier TSESTree - Error 1`] = `
+exports[`AST Fixtures declaration ImportDeclaration _error_ default-number-literal TSESTree - Error 1`] = `
"TSError
> 1 | import 1 from 'mod';
| ^ Declaration or statement expected.
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-number-literal/snapshots/2-Babel-Error.shot
similarity index 68%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/snapshots/2-Babel-Error.shot
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-number-literal/snapshots/2-Babel-Error.shot
index 438c9cdf7501..edf91ca01db1 100644
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/snapshots/2-Babel-Error.shot
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-number-literal/snapshots/2-Babel-Error.shot
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ImportDeclaration _error_ default-non-identifier Babel - Error 1`] = `[SyntaxError: Unexpected token, expected "{" (1:7)]`;
+exports[`AST Fixtures declaration ImportDeclaration _error_ default-number-literal Babel - Error 1`] = `[SyntaxError: Unexpected token, expected "{" (1:7)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-number-literal/snapshots/3-Alignment-Error.shot
similarity index 64%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/snapshots/3-Alignment-Error.shot
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-number-literal/snapshots/3-Alignment-Error.shot
index 2e0bcbec5a5e..f3810de15bec 100644
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/snapshots/3-Alignment-Error.shot
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-number-literal/snapshots/3-Alignment-Error.shot
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ImportDeclaration _error_ default-non-identifier Error Alignment 1`] = `"Both errored"`;
+exports[`AST Fixtures declaration ImportDeclaration _error_ default-number-literal Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-string-literal/fixture.ts b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-string-literal/fixture.ts
new file mode 100644
index 000000000000..65c0a923c510
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-string-literal/fixture.ts
@@ -0,0 +1 @@
+import 'a a' from 'mod';
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-string-literal/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-string-literal/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..db2f849a6462
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-string-literal/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ default-string-literal TSESTree - Error 1`] = `
+"TSError
+> 1 | import 'a a' from 'mod';
+ | ^ ';' expected.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-string-literal/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-string-literal/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..7f044aaf68a9
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-string-literal/snapshots/2-Babel-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ default-string-literal Babel - Error 1`] = `[SyntaxError: Missing semicolon. (1:12)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/snapshots/2-Alignment-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-string-literal/snapshots/3-Alignment-Error.shot
similarity index 64%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/snapshots/2-Alignment-Error.shot
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-string-literal/snapshots/3-Alignment-Error.shot
index 2e0bcbec5a5e..6aaccd724166 100644
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-non-identifier/snapshots/2-Alignment-Error.shot
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/default-string-literal/snapshots/3-Alignment-Error.shot
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ImportDeclaration _error_ default-non-identifier Error Alignment 1`] = `"Both errored"`;
+exports[`AST Fixtures declaration ImportDeclaration _error_ default-string-literal Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-number-literal/fixture.ts b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-number-literal/fixture.ts
new file mode 100644
index 000000000000..e37d9c20f53f
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-number-literal/fixture.ts
@@ -0,0 +1 @@
+import { X as 1 } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-number-literal/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-number-literal/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..58be2d8119f6
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-number-literal/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-identifier-aliased-to-number-literal TSESTree - Error 1`] = `
+"TSError
+> 1 | import { X as 1 } from 'mod';
+ | ^ Identifier expected.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-number-literal/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-number-literal/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..d9a7cd7a0c2e
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-number-literal/snapshots/2-Babel-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-identifier-aliased-to-number-literal Babel - Error 1`] = `[SyntaxError: Unexpected token (1:14)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-and-namespace/snapshots/2-Alignment-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-number-literal/snapshots/3-Alignment-Error.shot
similarity index 57%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-and-namespace/snapshots/2-Alignment-Error.shot
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-number-literal/snapshots/3-Alignment-Error.shot
index 89fae3fa27c3..8c894dfa107b 100644
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-and-namespace/snapshots/2-Alignment-Error.shot
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-number-literal/snapshots/3-Alignment-Error.shot
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ImportDeclaration _error_ named-and-namespace Error Alignment 1`] = `"Both errored"`;
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-identifier-aliased-to-number-literal Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-string-literal/fixture.ts b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-string-literal/fixture.ts
new file mode 100644
index 000000000000..6687e6e1bc00
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-string-literal/fixture.ts
@@ -0,0 +1 @@
+import { X as 'a a' } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-string-literal/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-string-literal/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..531618494f56
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-string-literal/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-identifier-aliased-to-string-literal TSESTree - Error 1`] = `
+"TSError
+> 1 | import { X as 'a a' } from 'mod';
+ | ^ Identifier expected.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-string-literal/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-string-literal/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..7656a34c665f
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-string-literal/snapshots/2-Babel-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-identifier-aliased-to-string-literal Babel - Error 1`] = `[SyntaxError: Unexpected token (1:14)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-default/snapshots/2-Alignment-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-string-literal/snapshots/3-Alignment-Error.shot
similarity index 57%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-default/snapshots/2-Alignment-Error.shot
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-string-literal/snapshots/3-Alignment-Error.shot
index 6e491db0e63b..a29f2cd12227 100644
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-default/snapshots/2-Alignment-Error.shot
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-identifier-aliased-to-string-literal/snapshots/3-Alignment-Error.shot
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ImportDeclaration _error_ namespace-and-default Error Alignment 1`] = `"Both errored"`;
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-identifier-aliased-to-string-literal Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-identifier/fixture.ts b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-identifier/fixture.ts
new file mode 100644
index 000000000000..099f3ad1726b
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-identifier/fixture.ts
@@ -0,0 +1 @@
+import { 1 as X } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-identifier/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-identifier/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..e1122d1ce71d
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-identifier/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-number-literal-aliased-to-identifier TSESTree - Error 1`] = `
+"TSError
+> 1 | import { 1 as X } from 'mod';
+ | ^ Identifier expected.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-and-namespace/snapshots/1-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-identifier/snapshots/2-Babel-Error.shot
similarity index 51%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-and-namespace/snapshots/1-Babel-Error.shot
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-identifier/snapshots/2-Babel-Error.shot
index 9cf4c4b719a9..58519208645e 100644
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-and-namespace/snapshots/1-Babel-Error.shot
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-identifier/snapshots/2-Babel-Error.shot
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ImportDeclaration _error_ named-and-namespace Babel - Error 1`] = `[SyntaxError: Unexpected token, expected "from" (1:12)]`;
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-number-literal-aliased-to-identifier Babel - Error 1`] = `[SyntaxError: Unexpected token (1:9)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-identifier/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-identifier/snapshots/3-Alignment-Error.shot
new file mode 100644
index 000000000000..749860b2f02f
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-identifier/snapshots/3-Alignment-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-number-literal-aliased-to-identifier Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-number-literal/fixture.ts b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-number-literal/fixture.ts
new file mode 100644
index 000000000000..fea36d1c3a0d
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-number-literal/fixture.ts
@@ -0,0 +1 @@
+import { 1 as 1 } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-number-literal/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-number-literal/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..80f9adac9bcb
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-number-literal/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-number-literal-aliased-to-number-literal TSESTree - Error 1`] = `
+"TSError
+> 1 | import { 1 as 1 } from 'mod';
+ | ^ Identifier expected.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-number-literal/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-number-literal/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..0a7c831653fd
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-number-literal/snapshots/2-Babel-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-number-literal-aliased-to-number-literal Babel - Error 1`] = `[SyntaxError: Unexpected token (1:9)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-number-literal/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-number-literal/snapshots/3-Alignment-Error.shot
new file mode 100644
index 000000000000..2f287555e305
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-number-literal/snapshots/3-Alignment-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-number-literal-aliased-to-number-literal Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-string-literal/fixture.ts b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-string-literal/fixture.ts
new file mode 100644
index 000000000000..511385a56927
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-string-literal/fixture.ts
@@ -0,0 +1 @@
+import { 1 as 'a a' } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-string-literal/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-string-literal/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..ec1b36db89c2
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-string-literal/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-number-literal-aliased-to-string-literal TSESTree - Error 1`] = `
+"TSError
+> 1 | import { 1 as 'a a' } from 'mod';
+ | ^ Identifier expected.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-string-literal/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-string-literal/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..19f6f28a36de
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-string-literal/snapshots/2-Babel-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-number-literal-aliased-to-string-literal Babel - Error 1`] = `[SyntaxError: Unexpected token (1:9)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-string-literal/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-string-literal/snapshots/3-Alignment-Error.shot
new file mode 100644
index 000000000000..7cf9b37ab9fd
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal-aliased-to-string-literal/snapshots/3-Alignment-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-number-literal-aliased-to-string-literal Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-non-identifier/fixture.ts b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal/fixture.ts
similarity index 100%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-non-identifier/fixture.ts
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal/fixture.ts
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-non-identifier/snapshots/1-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal/snapshots/1-Babel-Error.shot
similarity index 100%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-non-identifier/snapshots/1-Babel-Error.shot
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal/snapshots/1-Babel-Error.shot
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-non-identifier/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal/snapshots/1-TSESTree-Error.shot
similarity index 82%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-non-identifier/snapshots/1-TSESTree-Error.shot
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal/snapshots/1-TSESTree-Error.shot
index a4b94678f3e0..08a52f136259 100644
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-non-identifier/snapshots/1-TSESTree-Error.shot
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal/snapshots/1-TSESTree-Error.shot
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ImportDeclaration _error_ named-non-identifier TSESTree - Error 1`] = `
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-number-literal TSESTree - Error 1`] = `
"TSError
> 1 | import { 1 } from 'mod';
| ^ Identifier expected.
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-non-identifier/snapshots/2-Alignment-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal/snapshots/2-Alignment-Error.shot
similarity index 100%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-non-identifier/snapshots/2-Alignment-Error.shot
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal/snapshots/2-Alignment-Error.shot
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-non-identifier/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal/snapshots/2-Babel-Error.shot
similarity index 65%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-non-identifier/snapshots/2-Babel-Error.shot
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal/snapshots/2-Babel-Error.shot
index 970528e3253d..e28da23b2a8f 100644
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-non-identifier/snapshots/2-Babel-Error.shot
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal/snapshots/2-Babel-Error.shot
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ImportDeclaration _error_ named-non-identifier Babel - Error 1`] = `[SyntaxError: Unexpected token (1:9)]`;
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-number-literal Babel - Error 1`] = `[SyntaxError: Unexpected token (1:9)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-non-identifier/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal/snapshots/3-Alignment-Error.shot
similarity index 65%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-non-identifier/snapshots/3-Alignment-Error.shot
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal/snapshots/3-Alignment-Error.shot
index fefbeef9c524..d79fe92b612a 100644
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-non-identifier/snapshots/3-Alignment-Error.shot
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-number-literal/snapshots/3-Alignment-Error.shot
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ImportDeclaration _error_ named-non-identifier Error Alignment 1`] = `"Both errored"`;
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-number-literal Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-number-literal/fixture.ts b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-number-literal/fixture.ts
new file mode 100644
index 000000000000..0a3e8d333471
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-number-literal/fixture.ts
@@ -0,0 +1 @@
+import { "😭" as 1 } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-number-literal/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-number-literal/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..96863c644aec
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-number-literal/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-string-literal-aliased-to-number-literal TSESTree - Error 1`] = `
+"TSError
+> 1 | import { "😭" as 1 } from 'mod';
+ | ^ Identifier expected.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-number-literal/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-number-literal/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..59bdc16bbe31
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-number-literal/snapshots/2-Babel-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-string-literal-aliased-to-number-literal Babel - Error 1`] = `[SyntaxError: Unexpected token (1:17)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-number-literal/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-number-literal/snapshots/3-Alignment-Error.shot
new file mode 100644
index 000000000000..9fdcd1ad6d2f
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-number-literal/snapshots/3-Alignment-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-string-literal-aliased-to-number-literal Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-string-literal/fixture.ts b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-string-literal/fixture.ts
new file mode 100644
index 000000000000..d2a4b3f84e80
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-string-literal/fixture.ts
@@ -0,0 +1 @@
+import { "😭" as 'a a' } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-string-literal/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-string-literal/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..31ba0b991eb4
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-string-literal/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-string-literal-aliased-to-string-literal TSESTree - Error 1`] = `
+"TSError
+> 1 | import { "😭" as 'a a' } from 'mod';
+ | ^ Identifier expected.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-string-literal/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-string-literal/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..13f04b7d71f3
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-string-literal/snapshots/2-Babel-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-string-literal-aliased-to-string-literal Babel - Error 1`] = `[SyntaxError: Unexpected token (1:17)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-string-literal/snapshots/3-Alignment-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-string-literal/snapshots/3-Alignment-Error.shot
new file mode 100644
index 000000000000..bac20b92c0dd
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal-aliased-to-string-literal/snapshots/3-Alignment-Error.shot
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-string-literal-aliased-to-string-literal Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal/fixture.ts b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal/fixture.ts
new file mode 100644
index 000000000000..db0db5b50afe
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal/fixture.ts
@@ -0,0 +1 @@
+import { "😭" } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal/snapshots/1-TSESTree-Error.shot
new file mode 100644
index 000000000000..cb41ba55e998
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal/snapshots/1-TSESTree-Error.shot
@@ -0,0 +1,8 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-string-literal TSESTree - Error 1`] = `
+"TSError
+> 1 | import { "😭" } from 'mod';
+ | ^ Identifier expected.
+ 2 |"
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal/snapshots/2-Babel-Error.shot
new file mode 100644
index 000000000000..d3b922788498
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal/snapshots/2-Babel-Error.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-string-literal Babel - Error 1`] = `
+[SyntaxError: A string literal cannot be used as an imported binding.
+- Did you mean \`import { "😭" as foo }\`? (1:9)]
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-named/snapshots/2-Alignment-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal/snapshots/3-Alignment-Error.shot
similarity index 65%
rename from packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-named/snapshots/2-Alignment-Error.shot
rename to packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal/snapshots/3-Alignment-Error.shot
index f1e891dbecaf..6980fcce0d80 100644
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-named/snapshots/2-Alignment-Error.shot
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/named-string-literal/snapshots/3-Alignment-Error.shot
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`AST Fixtures declaration ImportDeclaration _error_ namespace-and-named Error Alignment 1`] = `"Both errored"`;
+exports[`AST Fixtures declaration ImportDeclaration _error_ named-string-literal Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-default/snapshots/1-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-default/snapshots/1-Babel-Error.shot
deleted file mode 100644
index 294d069aacc6..000000000000
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-default/snapshots/1-Babel-Error.shot
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AST Fixtures declaration ImportDeclaration _error_ namespace-and-default Babel - Error 1`] = `[SyntaxError: Unexpected token, expected "from" (1:13)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-named/snapshots/1-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-named/snapshots/1-Babel-Error.shot
deleted file mode 100644
index 605940a84336..000000000000
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-named/snapshots/1-Babel-Error.shot
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AST Fixtures declaration ImportDeclaration _error_ namespace-and-named Babel - Error 1`] = `[SyntaxError: Unexpected token, expected "from" (1:13)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-namespace/snapshots/1-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-namespace/snapshots/1-Babel-Error.shot
deleted file mode 100644
index 8efbfcaf5191..000000000000
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-namespace/snapshots/1-Babel-Error.shot
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AST Fixtures declaration ImportDeclaration _error_ namespace-and-namespace Babel - Error 1`] = `[SyntaxError: Unexpected token, expected "from" (1:13)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-namespace/snapshots/2-Alignment-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-namespace/snapshots/2-Alignment-Error.shot
deleted file mode 100644
index e3c8c7a6288d..000000000000
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-and-namespace/snapshots/2-Alignment-Error.shot
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AST Fixtures declaration ImportDeclaration _error_ namespace-and-namespace Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-non-identifier/snapshots/1-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-non-identifier/snapshots/1-Babel-Error.shot
deleted file mode 100644
index a511cc6c94d3..000000000000
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-non-identifier/snapshots/1-Babel-Error.shot
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AST Fixtures declaration ImportDeclaration _error_ namespace-non-identifier Babel - Error 1`] = `[SyntaxError: Unexpected token (1:12)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-non-identifier/snapshots/2-Alignment-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-non-identifier/snapshots/2-Alignment-Error.shot
deleted file mode 100644
index f0d97ae32bc8..000000000000
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/namespace-non-identifier/snapshots/2-Alignment-Error.shot
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AST Fixtures declaration ImportDeclaration _error_ namespace-non-identifier Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/non-string-source/snapshots/1-Babel-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/non-string-source/snapshots/1-Babel-Error.shot
deleted file mode 100644
index 49abb8366621..000000000000
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/non-string-source/snapshots/1-Babel-Error.shot
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AST Fixtures declaration ImportDeclaration _error_ non-string-source Babel - Error 1`] = `[SyntaxError: Unexpected token (1:19)]`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/non-string-source/snapshots/2-Alignment-Error.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/non-string-source/snapshots/2-Alignment-Error.shot
deleted file mode 100644
index 0d5964ffc24c..000000000000
--- a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/_error_/non-string-source/snapshots/2-Alignment-Error.shot
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AST Fixtures declaration ImportDeclaration _error_ non-string-source Error Alignment 1`] = `"Both errored"`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/fixture.ts b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/fixture.ts
new file mode 100644
index 000000000000..dd77a2ba052f
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/fixture.ts
@@ -0,0 +1 @@
+import { 'a a' as X } from 'mod';
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/1-TSESTree-AST.shot
new file mode 100644
index 000000000000..c17bff3bdbb9
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/1-TSESTree-AST.shot
@@ -0,0 +1,73 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration named-string-literal-aliased-to-identifier TSESTree - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ImportDeclaration {
+ type: "ImportDeclaration",
+ attributes: [],
+ importKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [27, 32],
+ loc: {
+ start: { column: 27, line: 1 },
+ end: { column: 32, line: 1 },
+ },
+ },
+ specifiers: [
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Literal {
+ type: "Literal",
+ raw: "'a a'",
+ value: "a a",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ decorators: [],
+ name: "X",
+ optional: false,
+
+ range: [18, 19],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+
+ range: [9, 19],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 33],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 33, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 34],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/2-TSESTree-Tokens.shot
new file mode 100644
index 000000000000..707ce3ff9c17
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/2-TSESTree-Tokens.shot
@@ -0,0 +1,96 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration named-string-literal-aliased-to-identifier TSESTree - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "import",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'a a'",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "as",
+
+ range: [15, 17],
+ loc: {
+ start: { column: 15, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "X",
+
+ range: [18, 19],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [20, 21],
+ loc: {
+ start: { column: 20, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [22, 26],
+ loc: {
+ start: { column: 22, line: 1 },
+ end: { column: 26, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [27, 32],
+ loc: {
+ start: { column: 27, line: 1 },
+ end: { column: 32, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [32, 33],
+ loc: {
+ start: { column: 32, line: 1 },
+ end: { column: 33, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/3-Babel-AST.shot
new file mode 100644
index 000000000000..c8b8eaf484f7
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/3-Babel-AST.shot
@@ -0,0 +1,71 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration named-string-literal-aliased-to-identifier Babel - AST 1`] = `
+Program {
+ type: "Program",
+ body: [
+ ImportDeclaration {
+ type: "ImportDeclaration",
+ assertions: [],
+ importKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'mod'",
+ value: "mod",
+
+ range: [27, 32],
+ loc: {
+ start: { column: 27, line: 1 },
+ end: { column: 32, line: 1 },
+ },
+ },
+ specifiers: [
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Literal {
+ type: "Literal",
+ raw: "'a a'",
+ value: "a a",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "X",
+
+ range: [18, 19],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+
+ range: [9, 19],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 33],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 33, line: 1 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [0, 34],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/4-Babel-Tokens.shot
new file mode 100644
index 000000000000..49688d3a6cb3
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/4-Babel-Tokens.shot
@@ -0,0 +1,96 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration named-string-literal-aliased-to-identifier Babel - Tokens 1`] = `
+[
+ Keyword {
+ type: "Keyword",
+ value: "import",
+
+ range: [0, 6],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 6, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [7, 8],
+ loc: {
+ start: { column: 7, line: 1 },
+ end: { column: 8, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'a a'",
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "as",
+
+ range: [15, 17],
+ loc: {
+ start: { column: 15, line: 1 },
+ end: { column: 17, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "X",
+
+ range: [18, 19],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [20, 21],
+ loc: {
+ start: { column: 20, line: 1 },
+ end: { column: 21, line: 1 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [22, 26],
+ loc: {
+ start: { column: 22, line: 1 },
+ end: { column: 26, line: 1 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'mod'",
+
+ range: [27, 32],
+ loc: {
+ start: { column: 27, line: 1 },
+ end: { column: 32, line: 1 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [32, 33],
+ loc: {
+ start: { column: 32, line: 1 },
+ end: { column: 33, line: 1 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/5-AST-Alignment-AST.shot
new file mode 100644
index 000000000000..4e07e47433b7
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/5-AST-Alignment-AST.shot
@@ -0,0 +1,78 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration named-string-literal-aliased-to-identifier AST Alignment - AST 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Program {
+ type: 'Program',
+ body: Array [
+ ImportDeclaration {
+ type: 'ImportDeclaration',
+- attributes: Array [],
++ assertions: Array [],
+ importKind: 'value',
+ source: Literal {
+ type: 'Literal',
+ raw: '\\'mod\\'',
+ value: 'mod',
+
+ range: [27, 32],
+ loc: {
+ start: { column: 27, line: 1 },
+ end: { column: 32, line: 1 },
+ },
+ },
+ specifiers: Array [
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Literal {
+ type: 'Literal',
+ raw: '\\'a a\\'',
+ value: 'a a',
+
+ range: [9, 14],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 14, line: 1 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+- decorators: Array [],
+ name: 'X',
+- optional: false,
+
+ range: [18, 19],
+ loc: {
+ start: { column: 18, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+
+ range: [9, 19],
+ loc: {
+ start: { column: 9, line: 1 },
+ end: { column: 19, line: 1 },
+ },
+ },
+ ],
+
+ range: [0, 33],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 33, line: 1 },
+ },
+ },
+ ],
+ sourceType: 'module',
+
+ range: [0, 34],
+ loc: {
+ start: { column: 0, line: 1 },
+ end: { column: 0, line: 2 },
+ },
+ }"
+`;
diff --git a/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..a3c5da04f73a
--- /dev/null
+++ b/packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures declaration ImportDeclaration named-string-literal-aliased-to-identifier AST Alignment - Token 1`] = `
+"Snapshot Diff:
+Compared values have no visual difference."
+`;
diff --git a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/fixture.ts b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/fixture.ts
index 9e48b70be733..58f984a20bd4 100644
--- a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/fixture.ts
+++ b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/fixture.ts
@@ -1 +1,2 @@
-await using x = 1, y = 2;
+await using x = 1,
+ y = 2;
diff --git a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/1-TSESTree-AST.shot
index cc177f81242f..d54fd36f4f5e 100644
--- a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/1-TSESTree-AST.shot
+++ b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/1-TSESTree-AST.shot
@@ -49,10 +49,10 @@ Program {
name: "y",
optional: false,
- range: [19, 20],
+ range: [21, 22],
loc: {
- start: { column: 19, line: 1 },
- end: { column: 20, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 3, line: 2 },
},
},
init: Literal {
@@ -60,36 +60,36 @@ Program {
raw: "2",
value: 2,
- range: [23, 24],
+ range: [25, 26],
loc: {
- start: { column: 23, line: 1 },
- end: { column: 24, line: 1 },
+ start: { column: 6, line: 2 },
+ end: { column: 7, line: 2 },
},
},
- range: [19, 24],
+ range: [21, 26],
loc: {
- start: { column: 19, line: 1 },
- end: { column: 24, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 7, line: 2 },
},
},
],
declare: false,
kind: "await using",
- range: [0, 25],
+ range: [0, 27],
loc: {
start: { column: 0, line: 1 },
- end: { column: 25, line: 1 },
+ end: { column: 8, line: 2 },
},
},
],
sourceType: "script",
- range: [0, 26],
+ range: [0, 28],
loc: {
start: { column: 0, line: 1 },
- end: { column: 0, line: 2 },
+ end: { column: 0, line: 3 },
},
}
`;
diff --git a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/2-TSESTree-Tokens.shot
index c123deb06892..7411e75da579 100644
--- a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/2-TSESTree-Tokens.shot
+++ b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/2-TSESTree-Tokens.shot
@@ -66,40 +66,40 @@ exports[`AST Fixtures declaration VariableDeclaration await-using-multiple-decla
type: "Identifier",
value: "y",
- range: [19, 20],
+ range: [21, 22],
loc: {
- start: { column: 19, line: 1 },
- end: { column: 20, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 3, line: 2 },
},
},
Punctuator {
type: "Punctuator",
value: "=",
- range: [21, 22],
+ range: [23, 24],
loc: {
- start: { column: 21, line: 1 },
- end: { column: 22, line: 1 },
+ start: { column: 4, line: 2 },
+ end: { column: 5, line: 2 },
},
},
Numeric {
type: "Numeric",
value: "2",
- range: [23, 24],
+ range: [25, 26],
loc: {
- start: { column: 23, line: 1 },
- end: { column: 24, line: 1 },
+ start: { column: 6, line: 2 },
+ end: { column: 7, line: 2 },
},
},
Punctuator {
type: "Punctuator",
value: ";",
- range: [24, 25],
+ range: [26, 27],
loc: {
- start: { column: 24, line: 1 },
- end: { column: 25, line: 1 },
+ start: { column: 7, line: 2 },
+ end: { column: 8, line: 2 },
},
},
]
diff --git a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/3-Babel-AST.shot
index 56ed5f448201..19023e03c7ed 100644
--- a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/3-Babel-AST.shot
+++ b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/3-Babel-AST.shot
@@ -43,10 +43,10 @@ Program {
type: "Identifier",
name: "y",
- range: [19, 20],
+ range: [21, 22],
loc: {
- start: { column: 19, line: 1 },
- end: { column: 20, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 3, line: 2 },
},
},
init: Literal {
@@ -54,35 +54,35 @@ Program {
raw: "2",
value: 2,
- range: [23, 24],
+ range: [25, 26],
loc: {
- start: { column: 23, line: 1 },
- end: { column: 24, line: 1 },
+ start: { column: 6, line: 2 },
+ end: { column: 7, line: 2 },
},
},
- range: [19, 24],
+ range: [21, 26],
loc: {
- start: { column: 19, line: 1 },
- end: { column: 24, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 7, line: 2 },
},
},
],
kind: "await using",
- range: [0, 25],
+ range: [0, 27],
loc: {
start: { column: 0, line: 1 },
- end: { column: 25, line: 1 },
+ end: { column: 8, line: 2 },
},
},
],
sourceType: "script",
- range: [0, 26],
+ range: [0, 28],
loc: {
start: { column: 0, line: 1 },
- end: { column: 0, line: 2 },
+ end: { column: 0, line: 3 },
},
}
`;
diff --git a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/4-Babel-Tokens.shot
index a4259e47cb7e..ff50696ccc37 100644
--- a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/4-Babel-Tokens.shot
+++ b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/4-Babel-Tokens.shot
@@ -66,40 +66,40 @@ exports[`AST Fixtures declaration VariableDeclaration await-using-multiple-decla
type: "Identifier",
value: "y",
- range: [19, 20],
+ range: [21, 22],
loc: {
- start: { column: 19, line: 1 },
- end: { column: 20, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 3, line: 2 },
},
},
Punctuator {
type: "Punctuator",
value: "=",
- range: [21, 22],
+ range: [23, 24],
loc: {
- start: { column: 21, line: 1 },
- end: { column: 22, line: 1 },
+ start: { column: 4, line: 2 },
+ end: { column: 5, line: 2 },
},
},
Numeric {
type: "Numeric",
value: "2",
- range: [23, 24],
+ range: [25, 26],
loc: {
- start: { column: 23, line: 1 },
- end: { column: 24, line: 1 },
+ start: { column: 6, line: 2 },
+ end: { column: 7, line: 2 },
},
},
Punctuator {
type: "Punctuator",
value: ";",
- range: [24, 25],
+ range: [26, 27],
loc: {
- start: { column: 24, line: 1 },
- end: { column: 25, line: 1 },
+ start: { column: 7, line: 2 },
+ end: { column: 8, line: 2 },
},
},
]
diff --git a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/5-AST-Alignment-AST.shot
index 4495e1e3efaf..5731e016531e 100644
--- a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/5-AST-Alignment-AST.shot
+++ b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/await-using-multiple-declarations/snapshots/5-AST-Alignment-AST.shot
@@ -53,10 +53,10 @@ exports[`AST Fixtures declaration VariableDeclaration await-using-multiple-decla
name: 'y',
- optional: false,
- range: [19, 20],
+ range: [21, 22],
loc: {
- start: { column: 19, line: 1 },
- end: { column: 20, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 3, line: 2 },
},
},
init: Literal {
@@ -64,36 +64,36 @@ exports[`AST Fixtures declaration VariableDeclaration await-using-multiple-decla
raw: '2',
value: 2,
- range: [23, 24],
+ range: [25, 26],
loc: {
- start: { column: 23, line: 1 },
- end: { column: 24, line: 1 },
+ start: { column: 6, line: 2 },
+ end: { column: 7, line: 2 },
},
},
- range: [19, 24],
+ range: [21, 26],
loc: {
- start: { column: 19, line: 1 },
- end: { column: 24, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 7, line: 2 },
},
},
],
- declare: false,
kind: 'await using',
- range: [0, 25],
+ range: [0, 27],
loc: {
start: { column: 0, line: 1 },
- end: { column: 25, line: 1 },
+ end: { column: 8, line: 2 },
},
},
],
sourceType: 'script',
- range: [0, 26],
+ range: [0, 28],
loc: {
start: { column: 0, line: 1 },
- end: { column: 0, line: 2 },
+ end: { column: 0, line: 3 },
},
}"
`;
diff --git a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/fixture.ts b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/fixture.ts
index dcce1ee2a42a..e1c8d6e78ad2 100644
--- a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/fixture.ts
+++ b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/fixture.ts
@@ -1 +1,2 @@
-using x = 1, y = 2;
+using x = 1,
+ y = 2;
diff --git a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/1-TSESTree-AST.shot
index 0e6057adde39..085698cc3718 100644
--- a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/1-TSESTree-AST.shot
+++ b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/1-TSESTree-AST.shot
@@ -49,10 +49,10 @@ Program {
name: "y",
optional: false,
- range: [13, 14],
+ range: [15, 16],
loc: {
- start: { column: 13, line: 1 },
- end: { column: 14, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 3, line: 2 },
},
},
init: Literal {
@@ -60,36 +60,36 @@ Program {
raw: "2",
value: 2,
- range: [17, 18],
+ range: [19, 20],
loc: {
- start: { column: 17, line: 1 },
- end: { column: 18, line: 1 },
+ start: { column: 6, line: 2 },
+ end: { column: 7, line: 2 },
},
},
- range: [13, 18],
+ range: [15, 20],
loc: {
- start: { column: 13, line: 1 },
- end: { column: 18, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 7, line: 2 },
},
},
],
declare: false,
kind: "using",
- range: [0, 19],
+ range: [0, 21],
loc: {
start: { column: 0, line: 1 },
- end: { column: 19, line: 1 },
+ end: { column: 8, line: 2 },
},
},
],
sourceType: "script",
- range: [0, 20],
+ range: [0, 22],
loc: {
start: { column: 0, line: 1 },
- end: { column: 0, line: 2 },
+ end: { column: 0, line: 3 },
},
}
`;
diff --git a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/2-TSESTree-Tokens.shot
index 5199e67367c1..b07cd4d7ef5f 100644
--- a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/2-TSESTree-Tokens.shot
+++ b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/2-TSESTree-Tokens.shot
@@ -56,40 +56,40 @@ exports[`AST Fixtures declaration VariableDeclaration using-multiple-declaration
type: "Identifier",
value: "y",
- range: [13, 14],
+ range: [15, 16],
loc: {
- start: { column: 13, line: 1 },
- end: { column: 14, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 3, line: 2 },
},
},
Punctuator {
type: "Punctuator",
value: "=",
- range: [15, 16],
+ range: [17, 18],
loc: {
- start: { column: 15, line: 1 },
- end: { column: 16, line: 1 },
+ start: { column: 4, line: 2 },
+ end: { column: 5, line: 2 },
},
},
Numeric {
type: "Numeric",
value: "2",
- range: [17, 18],
+ range: [19, 20],
loc: {
- start: { column: 17, line: 1 },
- end: { column: 18, line: 1 },
+ start: { column: 6, line: 2 },
+ end: { column: 7, line: 2 },
},
},
Punctuator {
type: "Punctuator",
value: ";",
- range: [18, 19],
+ range: [20, 21],
loc: {
- start: { column: 18, line: 1 },
- end: { column: 19, line: 1 },
+ start: { column: 7, line: 2 },
+ end: { column: 8, line: 2 },
},
},
]
diff --git a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/3-Babel-AST.shot
index 291406b764a7..e42780ca03e4 100644
--- a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/3-Babel-AST.shot
+++ b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/3-Babel-AST.shot
@@ -43,10 +43,10 @@ Program {
type: "Identifier",
name: "y",
- range: [13, 14],
+ range: [15, 16],
loc: {
- start: { column: 13, line: 1 },
- end: { column: 14, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 3, line: 2 },
},
},
init: Literal {
@@ -54,35 +54,35 @@ Program {
raw: "2",
value: 2,
- range: [17, 18],
+ range: [19, 20],
loc: {
- start: { column: 17, line: 1 },
- end: { column: 18, line: 1 },
+ start: { column: 6, line: 2 },
+ end: { column: 7, line: 2 },
},
},
- range: [13, 18],
+ range: [15, 20],
loc: {
- start: { column: 13, line: 1 },
- end: { column: 18, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 7, line: 2 },
},
},
],
kind: "using",
- range: [0, 19],
+ range: [0, 21],
loc: {
start: { column: 0, line: 1 },
- end: { column: 19, line: 1 },
+ end: { column: 8, line: 2 },
},
},
],
sourceType: "script",
- range: [0, 20],
+ range: [0, 22],
loc: {
start: { column: 0, line: 1 },
- end: { column: 0, line: 2 },
+ end: { column: 0, line: 3 },
},
}
`;
diff --git a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/4-Babel-Tokens.shot
index 1adcd3e551cd..500fb5e0772a 100644
--- a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/4-Babel-Tokens.shot
+++ b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/4-Babel-Tokens.shot
@@ -56,40 +56,40 @@ exports[`AST Fixtures declaration VariableDeclaration using-multiple-declaration
type: "Identifier",
value: "y",
- range: [13, 14],
+ range: [15, 16],
loc: {
- start: { column: 13, line: 1 },
- end: { column: 14, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 3, line: 2 },
},
},
Punctuator {
type: "Punctuator",
value: "=",
- range: [15, 16],
+ range: [17, 18],
loc: {
- start: { column: 15, line: 1 },
- end: { column: 16, line: 1 },
+ start: { column: 4, line: 2 },
+ end: { column: 5, line: 2 },
},
},
Numeric {
type: "Numeric",
value: "2",
- range: [17, 18],
+ range: [19, 20],
loc: {
- start: { column: 17, line: 1 },
- end: { column: 18, line: 1 },
+ start: { column: 6, line: 2 },
+ end: { column: 7, line: 2 },
},
},
Punctuator {
type: "Punctuator",
value: ";",
- range: [18, 19],
+ range: [20, 21],
loc: {
- start: { column: 18, line: 1 },
- end: { column: 19, line: 1 },
+ start: { column: 7, line: 2 },
+ end: { column: 8, line: 2 },
},
},
]
diff --git a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/5-AST-Alignment-AST.shot
index 5895a5a4d686..95f446ee6ff6 100644
--- a/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/5-AST-Alignment-AST.shot
+++ b/packages/ast-spec/src/declaration/VariableDeclaration/fixtures/using-multiple-declarations/snapshots/5-AST-Alignment-AST.shot
@@ -53,10 +53,10 @@ exports[`AST Fixtures declaration VariableDeclaration using-multiple-declaration
name: 'y',
- optional: false,
- range: [13, 14],
+ range: [15, 16],
loc: {
- start: { column: 13, line: 1 },
- end: { column: 14, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 3, line: 2 },
},
},
init: Literal {
@@ -64,36 +64,36 @@ exports[`AST Fixtures declaration VariableDeclaration using-multiple-declaration
raw: '2',
value: 2,
- range: [17, 18],
+ range: [19, 20],
loc: {
- start: { column: 17, line: 1 },
- end: { column: 18, line: 1 },
+ start: { column: 6, line: 2 },
+ end: { column: 7, line: 2 },
},
},
- range: [13, 18],
+ range: [15, 20],
loc: {
- start: { column: 13, line: 1 },
- end: { column: 18, line: 1 },
+ start: { column: 2, line: 2 },
+ end: { column: 7, line: 2 },
},
},
],
- declare: false,
kind: 'using',
- range: [0, 19],
+ range: [0, 21],
loc: {
start: { column: 0, line: 1 },
- end: { column: 19, line: 1 },
+ end: { column: 8, line: 2 },
},
},
],
sourceType: 'script',
- range: [0, 20],
+ range: [0, 22],
loc: {
start: { column: 0, line: 1 },
- end: { column: 0, line: 2 },
+ end: { column: 0, line: 3 },
},
}"
`;
diff --git a/packages/ast-spec/src/jsx/JSXNamespacedName/fixtures/component/fixture.tsx b/packages/ast-spec/src/jsx/JSXNamespacedName/fixtures/component/fixture.tsx
index 04117403f023..2e5c444e3f6c 100644
--- a/packages/ast-spec/src/jsx/JSXNamespacedName/fixtures/component/fixture.tsx
+++ b/packages/ast-spec/src/jsx/JSXNamespacedName/fixtures/component/fixture.tsx
@@ -1,10 +1,10 @@
const x =