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 =
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: