This is an automated email from the ASF dual-hosted git repository.

randall pushed a commit to branch esm-tests
in repository https://gitbox.apache.org/repos/asf/incubator-annotator.git

commit 6b1e40b89ca0fbd141fcc4ec33ccfe4b4db8bdcd
Author: Randall Leeds <[email protected]>
AuthorDate: Sun Oct 31 21:42:11 2021 -0700

    Require file extensions on relative imports
    
    Add file extensions to all relative imports to better align with the
    requirements of spec-compliant ECMAScript modules.
---
 .eslintrc.js                                            |  2 +-
 babel.config.js                                         |  7 -------
 package.json                                            |  1 -
 packages/dom/src/css.ts                                 |  4 ++--
 packages/dom/src/highlight-text.ts                      |  4 ++--
 packages/dom/src/index.ts                               | 10 +++++-----
 packages/dom/src/normalize-range.ts                     |  2 +-
 packages/dom/src/range/index.ts                         |  2 +-
 packages/dom/src/range/match.ts                         |  6 +++---
 packages/dom/src/text-node-chunker.ts                   |  6 +++---
 packages/dom/src/text-position/describe.ts              |  6 +++---
 packages/dom/src/text-position/index.ts                 |  4 ++--
 packages/dom/src/text-position/match.ts                 |  2 +-
 packages/dom/src/text-quote/describe.ts                 |  6 +++---
 packages/dom/src/text-quote/index.ts                    |  4 ++--
 packages/dom/src/text-quote/match.ts                    |  2 +-
 packages/dom/src/to-range.ts                            |  2 +-
 packages/dom/test/css/describe.test.ts                  |  6 +++---
 packages/dom/test/css/match.test.ts                     |  6 +++---
 packages/dom/test/highlight-text/highlight-text.test.ts |  6 +++---
 packages/dom/test/range/cartesian.test.ts               |  2 +-
 packages/dom/test/text-position/describe.test.ts        |  6 +++---
 packages/dom/test/text-position/match-cases.ts          |  2 +-
 packages/dom/test/text-position/match.test.ts           |  8 ++++----
 packages/dom/test/text-quote/describe-cases.ts          |  2 +-
 packages/dom/test/text-quote/describe.test.ts           | 10 +++++-----
 packages/dom/test/text-quote/match-cases.ts             |  2 +-
 packages/dom/test/text-quote/match.test.ts              |  8 ++++----
 packages/dom/test/utils.ts                              |  2 +-
 packages/selector/src/index.ts                          |  8 ++++----
 packages/selector/src/text/code-point-seeker.ts         |  4 ++--
 packages/selector/src/text/describe-text-position.ts    |  8 ++++----
 packages/selector/src/text/describe-text-quote.ts       | 12 ++++++------
 packages/selector/src/text/index.ts                     | 10 +++++-----
 packages/selector/src/text/match-text-position.ts       |  8 ++++----
 packages/selector/src/text/match-text-quote.ts          |  4 ++--
 packages/selector/src/text/seeker.ts                    |  4 ++--
 yarn.lock                                               |  7 -------
 38 files changed, 90 insertions(+), 105 deletions(-)

diff --git a/.eslintrc.js b/.eslintrc.js
index a48deed..63a63df 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -25,7 +25,7 @@ module.exports = {
   extends: ['eslint:recommended', 'plugin:import/recommended', 'prettier'],
   plugins: ['import', 'prettier'],
   rules: {
-    'import/extensions': ['error', 'never'],
+    'import/extensions': ['error', 'ignorePackages'],
     'import/first': 'error',
     'import/newline-after-import': 'error',
     'import/no-absolute-path': 'error',
diff --git a/babel.config.js b/babel.config.js
index 9bd9a01..d1db391 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -21,7 +21,6 @@
  */
 
 const path = require('path');
-const { DEFAULT_EXTENSIONS } = require('@babel/core');
 
 module.exports = (api) => {
   const ENV = api.env();
@@ -45,10 +44,6 @@ module.exports = (api) => {
     onlyRemoveTypeImports: true,
   };
 
-  const addImportExtensionOptions = {
-    extension: DEV || TEST ? 'ts' : 'js',
-  };
-
   // Options for the module-resolver plugin.
   // Used for resolving source files during development.
   const resolverOptions = {
@@ -60,7 +55,6 @@ module.exports = (api) => {
           }
         : null),
     },
-    extensions: ['.ts', '.tsx', ...DEFAULT_EXTENSIONS],
   };
 
   // Options for the @babel/transform-runtime plugin.
@@ -75,7 +69,6 @@ module.exports = (api) => {
     plugins: [
       '@babel/plugin-proposal-class-properties',
       ['@babel/transform-runtime', runtimeOptions],
-      ['add-import-extension', addImportExtensionOptions],
       ['module-resolver', resolverOptions],
       'preserve-comment-header',
       ...(TEST ? ['istanbul'] : []),
diff --git a/package.json b/package.json
index d4870c9..85a7610 100644
--- a/package.json
+++ b/package.json
@@ -46,7 +46,6 @@
     "@typescript-eslint/parser": "^4.20.0",
     "ajv": "^6.11.0",
     "babel-loader": "^8.0.5",
-    "babel-plugin-add-import-extension": "^1.4.1",
     "babel-plugin-istanbul": "^6.0.0",
     "babel-plugin-module-resolver": "^4.0.0",
     "babel-plugin-preserve-comment-header": "^1.0.1",
diff --git a/packages/dom/src/css.ts b/packages/dom/src/css.ts
index e1c5088..6123b5d 100644
--- a/packages/dom/src/css.ts
+++ b/packages/dom/src/css.ts
@@ -22,8 +22,8 @@
 
 import optimalSelect from 'optimal-select';
 import type { CssSelector, Matcher } from '@apache-annotator/selector';
-import { ownerDocument } from './owner-document';
-import { toRange } from './to-range';
+import { ownerDocument } from './owner-document.js';
+import { toRange } from './to-range.js';
 
 /**
  * Find the elements corresponding to the given {@link
diff --git a/packages/dom/src/highlight-text.ts 
b/packages/dom/src/highlight-text.ts
index db91e79..174e97b 100644
--- a/packages/dom/src/highlight-text.ts
+++ b/packages/dom/src/highlight-text.ts
@@ -20,8 +20,8 @@
  * under the License.
  */
 
-import { ownerDocument } from './owner-document';
-import { toRange } from './to-range';
+import { ownerDocument } from './owner-document.js';
+import { toRange } from './to-range.js';
 
 /**
  * Wrap each text node in a given Node or Range with a `<mark>` or other
diff --git a/packages/dom/src/index.ts b/packages/dom/src/index.ts
index 47f8b6e..89ffbc2 100644
--- a/packages/dom/src/index.ts
+++ b/packages/dom/src/index.ts
@@ -20,8 +20,8 @@
  * under the License.
  */
 
-export * from './css';
-export * from './range';
-export * from './text-quote';
-export * from './text-position';
-export * from './highlight-text';
+export * from './css.js';
+export * from './range/index.js';
+export * from './text-quote/index.js';
+export * from './text-position/index.js';
+export * from './highlight-text.js';
diff --git a/packages/dom/src/normalize-range.ts 
b/packages/dom/src/normalize-range.ts
index cd9df97..c102866 100644
--- a/packages/dom/src/normalize-range.ts
+++ b/packages/dom/src/normalize-range.ts
@@ -20,7 +20,7 @@
  * under the License.
  */
 
-import { ownerDocument } from './owner-document';
+import { ownerDocument } from './owner-document.js';
 
 /**
  * TextRange is a Range that guarantees to always have Text nodes as its start
diff --git a/packages/dom/src/range/index.ts b/packages/dom/src/range/index.ts
index 9a945ab..145bb4e 100644
--- a/packages/dom/src/range/index.ts
+++ b/packages/dom/src/range/index.ts
@@ -20,4 +20,4 @@
  * under the License.
  */
 
-export * from './match';
+export * from './match.js';
diff --git a/packages/dom/src/range/match.ts b/packages/dom/src/range/match.ts
index 8f68150..f0f8001 100644
--- a/packages/dom/src/range/match.ts
+++ b/packages/dom/src/range/match.ts
@@ -25,9 +25,9 @@ import type {
   RangeSelector,
   Selector,
 } from '@apache-annotator/selector';
-import { ownerDocument } from '../owner-document';
-import { toRange } from '../to-range';
-import { cartesian } from './cartesian';
+import { ownerDocument } from '../owner-document.js';
+import { toRange } from '../to-range.js';
+import { cartesian } from './cartesian.js';
 
 /**
  * Find the range(s) corresponding to the given {@link RangeSelector}.
diff --git a/packages/dom/src/text-node-chunker.ts 
b/packages/dom/src/text-node-chunker.ts
index 4d128cb..a6a8f5d 100644
--- a/packages/dom/src/text-node-chunker.ts
+++ b/packages/dom/src/text-node-chunker.ts
@@ -21,9 +21,9 @@
  */
 
 import type { Chunk, Chunker, ChunkRange } from '@apache-annotator/selector';
-import { normalizeRange } from './normalize-range';
-import { ownerDocument } from './owner-document';
-import { toRange } from './to-range';
+import { normalizeRange } from './normalize-range.js';
+import { ownerDocument } from './owner-document.js';
+import { toRange } from './to-range.js';
 
 export interface PartialTextNode extends Chunk<string> {
   readonly node: Text;
diff --git a/packages/dom/src/text-position/describe.ts 
b/packages/dom/src/text-position/describe.ts
index 9f3869b..8d72716 100644
--- a/packages/dom/src/text-position/describe.ts
+++ b/packages/dom/src/text-position/describe.ts
@@ -22,9 +22,9 @@
 
 import type { TextPositionSelector } from '@apache-annotator/selector';
 import { describeTextPosition as abstractDescribeTextPosition } from 
'@apache-annotator/selector';
-import { ownerDocument } from '../owner-document';
-import { TextNodeChunker } from '../text-node-chunker';
-import { toRange } from '../to-range';
+import { ownerDocument } from '../owner-document.js';
+import { TextNodeChunker } from '../text-node-chunker.js';
+import { toRange } from '../to-range.js';
 
 /**
  * Returns a {@link TextPositionSelector} that points at the target text within
diff --git a/packages/dom/src/text-position/index.ts 
b/packages/dom/src/text-position/index.ts
index 4a00da4..15f06af 100644
--- a/packages/dom/src/text-position/index.ts
+++ b/packages/dom/src/text-position/index.ts
@@ -20,5 +20,5 @@
  * under the License.
  */
 
-export * from './describe';
-export * from './match';
+export * from './describe.js';
+export * from './match.js';
diff --git a/packages/dom/src/text-position/match.ts 
b/packages/dom/src/text-position/match.ts
index 892feee..0ba210f 100644
--- a/packages/dom/src/text-position/match.ts
+++ b/packages/dom/src/text-position/match.ts
@@ -22,7 +22,7 @@
 
 import type { Matcher, TextPositionSelector } from 
'@apache-annotator/selector';
 import { textPositionSelectorMatcher as abstractTextPositionSelectorMatcher } 
from '@apache-annotator/selector';
-import { TextNodeChunker } from '../text-node-chunker';
+import { TextNodeChunker } from '../text-node-chunker.js';
 
 /**
  * Find the range of text corresponding to the given {@link
diff --git a/packages/dom/src/text-quote/describe.ts 
b/packages/dom/src/text-quote/describe.ts
index 5552ce7..8da7990 100644
--- a/packages/dom/src/text-quote/describe.ts
+++ b/packages/dom/src/text-quote/describe.ts
@@ -25,9 +25,9 @@ import type {
   DescribeTextQuoteOptions,
 } from '@apache-annotator/selector';
 import { describeTextQuote as abstractDescribeTextQuote } from 
'@apache-annotator/selector';
-import { ownerDocument } from '../owner-document';
-import { TextNodeChunker } from '../text-node-chunker';
-import { toRange } from '../to-range';
+import { ownerDocument } from '../owner-document.js';
+import { TextNodeChunker } from '../text-node-chunker.js';
+import { toRange } from '../to-range.js';
 
 /**
  * Returns a {@link TextQuoteSelector} that unambiguously describes the given
diff --git a/packages/dom/src/text-quote/index.ts 
b/packages/dom/src/text-quote/index.ts
index 4a00da4..15f06af 100644
--- a/packages/dom/src/text-quote/index.ts
+++ b/packages/dom/src/text-quote/index.ts
@@ -20,5 +20,5 @@
  * under the License.
  */
 
-export * from './describe';
-export * from './match';
+export * from './describe.js';
+export * from './match.js';
diff --git a/packages/dom/src/text-quote/match.ts 
b/packages/dom/src/text-quote/match.ts
index 3ef5a01..5a6c44b 100644
--- a/packages/dom/src/text-quote/match.ts
+++ b/packages/dom/src/text-quote/match.ts
@@ -22,7 +22,7 @@
 
 import type { Matcher, TextQuoteSelector } from '@apache-annotator/selector';
 import { textQuoteSelectorMatcher as abstractTextQuoteSelectorMatcher } from 
'@apache-annotator/selector';
-import { TextNodeChunker, EmptyScopeError } from '../text-node-chunker';
+import { TextNodeChunker, EmptyScopeError } from '../text-node-chunker.js';
 
 /**
  * Find occurrences in a text matching the given {@link
diff --git a/packages/dom/src/to-range.ts b/packages/dom/src/to-range.ts
index a03e836..cbc178a 100644
--- a/packages/dom/src/to-range.ts
+++ b/packages/dom/src/to-range.ts
@@ -20,7 +20,7 @@
  * under the License.
  */
 
-import { ownerDocument } from './owner-document';
+import { ownerDocument } from './owner-document.js';
 
 /**
  * Returns a range that exactly selects the contents of the given node.
diff --git a/packages/dom/test/css/describe.test.ts 
b/packages/dom/test/css/describe.test.ts
index a0309bd..1ef9ff8 100644
--- a/packages/dom/test/css/describe.test.ts
+++ b/packages/dom/test/css/describe.test.ts
@@ -21,9 +21,9 @@
  */
 
 import { strict as assert } from 'assert';
-import { describeCss } from '../../src/css';
-import { evaluateXPath } from '../utils';
-import { testCases } from './match-cases';
+import { describeCss } from '../../src/css.js';
+import { evaluateXPath } from '../utils.js';
+import { testCases } from './match-cases.js';
 
 const domParser = new DOMParser();
 
diff --git a/packages/dom/test/css/match.test.ts 
b/packages/dom/test/css/match.test.ts
index 679021c..026ca3c 100644
--- a/packages/dom/test/css/match.test.ts
+++ b/packages/dom/test/css/match.test.ts
@@ -22,9 +22,9 @@
 
 import { strict as assert } from 'assert';
 import type { CssSelector } from '@apache-annotator/selector';
-import { createCssSelectorMatcher } from '../../src/css';
-import { evaluateXPath } from '../utils';
-import { testCases } from './match-cases';
+import { createCssSelectorMatcher } from '../../src/css.js';
+import { evaluateXPath } from '../utils.js';
+import { testCases } from './match-cases.js';
 
 const domParser = new DOMParser();
 
diff --git a/packages/dom/test/highlight-text/highlight-text.test.ts 
b/packages/dom/test/highlight-text/highlight-text.test.ts
index ab2c43f..cf1a1c0 100644
--- a/packages/dom/test/highlight-text/highlight-text.test.ts
+++ b/packages/dom/test/highlight-text/highlight-text.test.ts
@@ -21,9 +21,9 @@
  */
 
 import { strict as assert } from 'assert';
-import { highlightText } from '../../src/highlight-text';
-import type { RangeInfo } from '../utils';
-import { hydrateRange, evaluateXPath } from '../utils';
+import { highlightText } from '../../src/highlight-text.js';
+import type { RangeInfo } from '../utils.js';
+import { hydrateRange, evaluateXPath } from '../utils.js';
 
 const domParser = new DOMParser();
 
diff --git a/packages/dom/test/range/cartesian.test.ts 
b/packages/dom/test/range/cartesian.test.ts
index d1ef0c4..8b3f127 100644
--- a/packages/dom/test/range/cartesian.test.ts
+++ b/packages/dom/test/range/cartesian.test.ts
@@ -21,7 +21,7 @@
  */
 
 import { strict as assert } from 'assert';
-import { cartesian } from '../../src/range/cartesian';
+import { cartesian } from '../../src/range/cartesian.js';
 
 async function* gen1() {
   yield 1;
diff --git a/packages/dom/test/text-position/describe.test.ts 
b/packages/dom/test/text-position/describe.test.ts
index 1314447..cf4136d 100644
--- a/packages/dom/test/text-position/describe.test.ts
+++ b/packages/dom/test/text-position/describe.test.ts
@@ -21,9 +21,9 @@
  */
 
 import { strict as assert } from 'assert';
-import { describeTextPosition } from '../../src/text-position/describe';
-import { hydrateRange } from '../utils';
-import { testCases } from './match-cases';
+import { describeTextPosition } from '../../src/text-position/describe.js';
+import { hydrateRange } from '../utils.js';
+import { testCases } from './match-cases.js';
 
 const domParser = new DOMParser();
 
diff --git a/packages/dom/test/text-position/match-cases.ts 
b/packages/dom/test/text-position/match-cases.ts
index 7514cdd..09f134a 100644
--- a/packages/dom/test/text-position/match-cases.ts
+++ b/packages/dom/test/text-position/match-cases.ts
@@ -21,7 +21,7 @@
  */
 
 import type { TextPositionSelector } from '@apache-annotator/selector';
-import type { RangeInfo } from '../utils';
+import type { RangeInfo } from '../utils.js';
 
 export const testCases: {
   [name: string]: {
diff --git a/packages/dom/test/text-position/match.test.ts 
b/packages/dom/test/text-position/match.test.ts
index e94161c..d76d73b 100644
--- a/packages/dom/test/text-position/match.test.ts
+++ b/packages/dom/test/text-position/match.test.ts
@@ -22,10 +22,10 @@
 
 import { strict as assert } from 'assert';
 import type { TextPositionSelector } from '@apache-annotator/selector';
-import { createTextPositionSelectorMatcher } from 
'../../src/text-position/match';
-import { evaluateXPath, assertRangeEquals } from '../utils';
-import type { RangeInfo } from '../utils';
-import { testCases } from './match-cases';
+import { createTextPositionSelectorMatcher } from 
'../../src/text-position/match.js';
+import { evaluateXPath, assertRangeEquals } from '../utils.js';
+import type { RangeInfo } from '../utils.js';
+import { testCases } from './match-cases.js';
 
 const domParser = new DOMParser();
 
diff --git a/packages/dom/test/text-quote/describe-cases.ts 
b/packages/dom/test/text-quote/describe-cases.ts
index 8f3fd60..540eecb 100644
--- a/packages/dom/test/text-quote/describe-cases.ts
+++ b/packages/dom/test/text-quote/describe-cases.ts
@@ -24,7 +24,7 @@ import type {
   TextQuoteSelector,
   DescribeTextQuoteOptions,
 } from '@apache-annotator/selector';
-import type { RangeInfo } from '../utils';
+import type { RangeInfo } from '../utils.js';
 
 export interface DescribeTextQuoteTestCases {
   [name: string]: {
diff --git a/packages/dom/test/text-quote/describe.test.ts 
b/packages/dom/test/text-quote/describe.test.ts
index 50083fa..e595fcd 100644
--- a/packages/dom/test/text-quote/describe.test.ts
+++ b/packages/dom/test/text-quote/describe.test.ts
@@ -21,16 +21,16 @@
  */
 
 import { strict as assert } from 'assert';
-import { describeTextQuote } from '../../src/text-quote/describe';
-import { hydrateRange, evaluateXPath } from '../utils';
-import type { DescribeTextQuoteTestCases } from './describe-cases';
+import { describeTextQuote } from '../../src/text-quote/describe.js';
+import { hydrateRange, evaluateXPath } from '../utils.js';
+import type { DescribeTextQuoteTestCases } from './describe-cases.js';
 import {
   testCasesWithMinimumQuoteLength,
   testCasesWithMaxWordLength,
   testCasesWithMinimalContext,
   testCasesWithoutOptions,
-} from './describe-cases';
-import { testCases as testMatchCases } from './match-cases';
+} from './describe-cases.js';
+import { testCases as testMatchCases } from './match-cases.js';
 
 const domParser = new DOMParser();
 
diff --git a/packages/dom/test/text-quote/match-cases.ts 
b/packages/dom/test/text-quote/match-cases.ts
index 3a8f97c..2364b0b 100644
--- a/packages/dom/test/text-quote/match-cases.ts
+++ b/packages/dom/test/text-quote/match-cases.ts
@@ -21,7 +21,7 @@
  */
 
 import type { TextQuoteSelector } from '@apache-annotator/selector';
-import type { RangeInfo } from '../utils';
+import type { RangeInfo } from '../utils.js';
 
 export const testCases: {
   [name: string]: {
diff --git a/packages/dom/test/text-quote/match.test.ts 
b/packages/dom/test/text-quote/match.test.ts
index 5e5e67c..b97720c 100644
--- a/packages/dom/test/text-quote/match.test.ts
+++ b/packages/dom/test/text-quote/match.test.ts
@@ -22,10 +22,10 @@
 
 import { strict as assert } from 'assert';
 import type { TextQuoteSelector } from '@apache-annotator/selector';
-import { createTextQuoteSelectorMatcher } from '../../src/text-quote/match';
-import { evaluateXPath, assertRangeEquals } from '../utils';
-import type { RangeInfo } from '../utils';
-import { testCases } from './match-cases';
+import { createTextQuoteSelectorMatcher } from '../../src/text-quote/match.js';
+import { evaluateXPath, assertRangeEquals } from '../utils.js';
+import type { RangeInfo } from '../utils.js';
+import { testCases } from './match-cases.js';
 
 const domParser = new DOMParser();
 
diff --git a/packages/dom/test/utils.ts b/packages/dom/test/utils.ts
index 7537de7..f71d1e9 100644
--- a/packages/dom/test/utils.ts
+++ b/packages/dom/test/utils.ts
@@ -21,7 +21,7 @@
  */
 
 import { strict as assert } from 'assert';
-import { ownerDocument } from '../src/owner-document';
+import { ownerDocument } from '../src/owner-document.js';
 
 // RangeInfo serialises a Range’s start and end containers as XPaths.
 export type RangeInfo = {
diff --git a/packages/selector/src/index.ts b/packages/selector/src/index.ts
index ffc9dc9..36df7f9 100644
--- a/packages/selector/src/index.ts
+++ b/packages/selector/src/index.ts
@@ -20,16 +20,16 @@
  * under the License.
  */
 
-import type { Matcher, Selector } from './types';
+import type { Matcher, Selector } from './types.js';
 
-export type { Matcher, Selector } from './types';
+export type { Matcher, Selector } from './types.js';
 export type {
   CssSelector,
   RangeSelector,
   TextPositionSelector,
   TextQuoteSelector,
-} from './types';
-export * from './text';
+} from './types.js';
+export * from './text/index.js';
 
 /**
  * Wrap a matcher creation function so that it supports refinement of 
selection.
diff --git a/packages/selector/src/text/code-point-seeker.ts 
b/packages/selector/src/text/code-point-seeker.ts
index 28c4d47..84df00e 100644
--- a/packages/selector/src/text/code-point-seeker.ts
+++ b/packages/selector/src/text/code-point-seeker.ts
@@ -20,8 +20,8 @@
  * under the License.
  */
 
-import type { Chunk } from './chunker';
-import type { Seeker } from './seeker';
+import type { Chunk } from './chunker.js';
+import type { Seeker } from './seeker.js';
 
 /**
  * Seeks through text counting Unicode *code points* instead of *code units*.
diff --git a/packages/selector/src/text/describe-text-position.ts 
b/packages/selector/src/text/describe-text-position.ts
index ce7d7d3..0a55935 100644
--- a/packages/selector/src/text/describe-text-position.ts
+++ b/packages/selector/src/text/describe-text-position.ts
@@ -20,10 +20,10 @@
  * under the License.
  */
 
-import type { TextPositionSelector } from '../types';
-import type { Chunk, Chunker, ChunkRange } from './chunker';
-import { CodePointSeeker } from './code-point-seeker';
-import { TextSeeker } from './seeker';
+import type { TextPositionSelector } from '../types.js';
+import type { Chunk, Chunker, ChunkRange } from './chunker.js';
+import { CodePointSeeker } from './code-point-seeker.js';
+import { TextSeeker } from './seeker.js';
 
 /**
  * Returns a {@link TextPositionSelector} that points at the target text within
diff --git a/packages/selector/src/text/describe-text-quote.ts 
b/packages/selector/src/text/describe-text-quote.ts
index 28c567f..19927d2 100644
--- a/packages/selector/src/text/describe-text-quote.ts
+++ b/packages/selector/src/text/describe-text-quote.ts
@@ -20,12 +20,12 @@
  * under the License.
  */
 
-import type { TextQuoteSelector } from '../types';
-import type { Chunk, Chunker, ChunkRange } from './chunker';
-import { chunkRangeEquals } from './chunker';
-import type { RelativeSeeker } from './seeker';
-import { TextSeeker } from './seeker';
-import { textQuoteSelectorMatcher } from '.';
+import type { TextQuoteSelector } from '../types.js';
+import type { Chunk, Chunker, ChunkRange } from './chunker.js';
+import { chunkRangeEquals } from './chunker.js';
+import { textQuoteSelectorMatcher } from './match-text-quote.js';
+import type { RelativeSeeker } from './seeker.js';
+import { TextSeeker } from './seeker.js';
 
 /**
  * @public
diff --git a/packages/selector/src/text/index.ts 
b/packages/selector/src/text/index.ts
index 8154691..5ee499f 100644
--- a/packages/selector/src/text/index.ts
+++ b/packages/selector/src/text/index.ts
@@ -20,8 +20,8 @@
  * under the License.
  */
 
-export * from './describe-text-quote';
-export * from './match-text-quote';
-export * from './describe-text-position';
-export * from './match-text-position';
-export * from './chunker';
+export * from './describe-text-quote.js';
+export * from './match-text-quote.js';
+export * from './describe-text-position.js';
+export * from './match-text-position.js';
+export * from './chunker.js';
diff --git a/packages/selector/src/text/match-text-position.ts 
b/packages/selector/src/text/match-text-position.ts
index cb7a478..0e0f4a5 100644
--- a/packages/selector/src/text/match-text-position.ts
+++ b/packages/selector/src/text/match-text-position.ts
@@ -20,10 +20,10 @@
  * under the License.
  */
 
-import type { TextPositionSelector } from '../types';
-import type { Chunk, ChunkRange, Chunker } from './chunker';
-import { CodePointSeeker } from './code-point-seeker';
-import { TextSeeker } from './seeker';
+import type { TextPositionSelector } from '../types.js';
+import type { Chunk, ChunkRange, Chunker } from './chunker.js';
+import { CodePointSeeker } from './code-point-seeker.js';
+import { TextSeeker } from './seeker.js';
 
 /**
  * Find the range of text corresponding to the given {@link 
TextPositionSelector}.
diff --git a/packages/selector/src/text/match-text-quote.ts 
b/packages/selector/src/text/match-text-quote.ts
index 3637a2c..49de8b2 100644
--- a/packages/selector/src/text/match-text-quote.ts
+++ b/packages/selector/src/text/match-text-quote.ts
@@ -20,8 +20,8 @@
  * under the License.
  */
 
-import type { TextQuoteSelector } from '../types';
-import type { Chunk, Chunker, ChunkRange } from './chunker';
+import type { TextQuoteSelector } from '../types.js';
+import type { Chunk, Chunker, ChunkRange } from './chunker.js';
 
 /**
  * Find occurrences in a text matching the given {@link TextQuoteSelector}.
diff --git a/packages/selector/src/text/seeker.ts 
b/packages/selector/src/text/seeker.ts
index 23a62d1..466d1af 100644
--- a/packages/selector/src/text/seeker.ts
+++ b/packages/selector/src/text/seeker.ts
@@ -20,8 +20,8 @@
  * under the License.
  */
 
-import type { Chunk, Chunker } from './chunker';
-import { chunkEquals } from './chunker';
+import type { Chunk, Chunker } from './chunker.js';
+import { chunkEquals } from './chunker.js';
 
 const E_END = 'Iterator exhausted before seek ended.';
 
diff --git a/yarn.lock b/yarn.lock
index 61b2328..cc1b3aa 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2536,13 +2536,6 @@ babel-loader@^8.0.5:
     mkdirp "^0.5.1"
     pify "^4.0.1"
 
-babel-plugin-add-import-extension@^1.4.1:
-  version "1.4.1"
-  resolved 
"https://registry.yarnpkg.com/babel-plugin-add-import-extension/-/babel-plugin-add-import-extension-1.4.1.tgz#d31b919ecbbd052aa3df210eca0b9f0153df770b";
-  integrity 
sha512-owxjRte+y2QB0YPCv3hWFNLF3Y1S7eEEZCCGo48TzRPM6zEzYsvxtOyx1h95Ghw1gEcl1UnOFIs5CY3Kd4OLYg==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.10.4"
-
 babel-plugin-dynamic-import-node@^2.3.3:
   version "2.3.3"
   resolved 
"https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3";

Reply via email to