diff --git a/packages/bundle-source/src/bundle-source.js b/packages/bundle-source/src/bundle-source.js
index ce184350bf..c9899a7bac 100644
--- a/packages/bundle-source/src/bundle-source.js
+++ b/packages/bundle-source/src/bundle-source.js
@@ -7,7 +7,7 @@ export const SUPPORTED_FORMATS = [
'endoScript',
];
-/** @type {import('./types').BundleSource} */
+/** @type {import('./types.js').BundleSource} */
// @ts-ignore cast
const bundleSource = async (
startFilename,
@@ -18,7 +18,7 @@ const bundleSource = async (
if (typeof options === 'string') {
options = { format: options };
}
- /** @type {{ format: import('./types').ModuleFormat }} */
+ /** @type {{ format: import('./types.js').ModuleFormat }} */
// @ts-expect-error cast (xxx params)
const { format: moduleFormat = DEFAULT_MODULE_FORMAT } = options;
diff --git a/packages/captp/src/atomics.js b/packages/captp/src/atomics.js
index 318862fae6..46e8e04dbd 100644
--- a/packages/captp/src/atomics.js
+++ b/packages/captp/src/atomics.js
@@ -1,5 +1,3 @@
-///
-
import { X, Fail } from '@endo/errors';
// This is a pathological minimum, but exercised by the unit test.
diff --git a/packages/captp/src/captp.js b/packages/captp/src/captp.js
index eb81d0f367..abdfdd4966 100644
--- a/packages/captp/src/captp.js
+++ b/packages/captp/src/captp.js
@@ -1,5 +1,3 @@
-///
-
/** @import {RemoteKit, Settler} from '@endo/eventual-send' */
/** @import {CapTPSlot, TrapHost, TrapGuest, TrapImpl} from './types.js' */
diff --git a/packages/captp/test/traplib.js b/packages/captp/test/traplib.js
index 7b6138dc7a..36517d5603 100644
--- a/packages/captp/test/traplib.js
+++ b/packages/captp/test/traplib.js
@@ -1,5 +1,4 @@
/* global setTimeout */
-///
import { Far } from '@endo/marshal';
import { X, Fail } from '@endo/errors';
diff --git a/packages/captp/test/worker.js b/packages/captp/test/worker.js
index 0def2ef38d..daa8d3d359 100644
--- a/packages/captp/test/worker.js
+++ b/packages/captp/test/worker.js
@@ -1,5 +1,3 @@
-///
-
import '@endo/init/pre-remoting.js';
import '@endo/init/debug.js';
diff --git a/packages/compartment-mapper/src/compartment-map.js b/packages/compartment-mapper/src/compartment-map.js
index 90e41fee24..e8e61fc1ce 100644
--- a/packages/compartment-mapper/src/compartment-map.js
+++ b/packages/compartment-mapper/src/compartment-map.js
@@ -1,8 +1,6 @@
/* Validates a compartment map against its schema. */
// @ts-check
-///
-
import { assertPackagePolicy } from './policy-format.js';
// TODO convert to the new `||` assert style.
diff --git a/packages/daemon/src/daemon.js b/packages/daemon/src/daemon.js
index 97330db49d..475ab5e696 100644
--- a/packages/daemon/src/daemon.js
+++ b/packages/daemon/src/daemon.js
@@ -1,6 +1,4 @@
// @ts-check
-///
-
/* global setTimeout, clearTimeout */
import { makeExo } from '@endo/exo';
diff --git a/packages/daemon/src/worker.js b/packages/daemon/src/worker.js
index d2250d1d42..7f41fdbaad 100644
--- a/packages/daemon/src/worker.js
+++ b/packages/daemon/src/worker.js
@@ -1,7 +1,5 @@
/* global globalThis */
// @ts-check
-///
-
import { E, Far } from '@endo/far';
import { makeExo } from '@endo/exo';
import { M } from '@endo/patterns';
diff --git a/packages/errors/index.js b/packages/errors/index.js
index f71d9791cd..83271b2c62 100644
--- a/packages/errors/index.js
+++ b/packages/errors/index.js
@@ -1,6 +1,4 @@
/* global globalThis */
-///
-
// This module assumes the existence of a non-standard `assert` host object.
// SES version 0.11.0 introduces this global object and entangles it
// with the `console` host object in scope when it initializes,
diff --git a/packages/evasive-transform/src/generate.js b/packages/evasive-transform/src/generate.js
index 468ca255d9..0b632f8fce 100644
--- a/packages/evasive-transform/src/generate.js
+++ b/packages/evasive-transform/src/generate.js
@@ -4,6 +4,7 @@
* @module
*/
+// @ts-ignore XXX no types defined
import babelGenerator from '@agoric/babel-generator';
// TODO The following is sufficient on Node.js, but for compatibility with
@@ -37,7 +38,7 @@ const generator = /** @type {typeof import('@babel/generator')['default']} */ (
* provided to the options.
*
* @template {string|undefined} [SourceUrl=undefined]
- * @typedef {{code: string, map: SourceUrl extends string ? import('source-map').RawSourceMap : never}} TransformedResult
+ * @typedef {{code: string, map: SourceUrl extends string ? import('source-map-js').RawSourceMap : never}} TransformedResult
* @internal
*/
diff --git a/packages/evasive-transform/src/index.js b/packages/evasive-transform/src/index.js
index cb3cc0025e..e205a463b0 100644
--- a/packages/evasive-transform/src/index.js
+++ b/packages/evasive-transform/src/index.js
@@ -16,7 +16,7 @@ import { generate } from './generate.js';
* Options for {@link evadeCensorSync}
*
* @typedef EvadeCensorOptions
- * @property {string|import('source-map').RawSourceMap} [sourceMap] - Original source map in JSON string or object form
+ * @property {string|import('source-map-js').RawSourceMap} [sourceMap] - Original source map in JSON string or object form
* @property {string} [sourceUrl] - URL or filepath of the original source in `code`
* @property {boolean} [useLocationUnmap] - Enable location unmapping. Only applies if `sourceMap` was provided
* @property {boolean} [elideComments] - Replace comments with an ellipsis but preserve interior newlines.
diff --git a/packages/evasive-transform/src/transform-ast.js b/packages/evasive-transform/src/transform-ast.js
index de7aca4d32..f3b29b7863 100644
--- a/packages/evasive-transform/src/transform-ast.js
+++ b/packages/evasive-transform/src/transform-ast.js
@@ -14,7 +14,6 @@ import { makeLocationUnmapper } from './location-unmapper.js';
// OR, upgrading to Babel 8 probably addresses this defect.
// const { default: traverse } = /** @type {any} */ (babelTraverse);
const traverse = /** @type {typeof import('@babel/traverse')['default']} */ (
- // @ts-expect-error
babelTraverse.default || babelTraverse
);
diff --git a/packages/eventual-send/src/E.js b/packages/eventual-send/src/E.js
index 24e2285987..579aa37f4d 100644
--- a/packages/eventual-send/src/E.js
+++ b/packages/eventual-send/src/E.js
@@ -4,6 +4,10 @@ import { makeMessageBreakpointTester } from './message-breakpoints.js';
const { details: X, quote: q, Fail, error: makeError } = assert;
const { assign, create } = Object;
+/**
+ * @import { HandledPromiseConstructor } from './types.js';
+ */
+
const onSend = makeMessageBreakpointTester('ENDO_SEND_BREAKPOINTS');
/** @type {ProxyHandler} */
@@ -35,7 +39,7 @@ const baseFreezableProxyHandler = {
* A Proxy handler for E(x).
*
* @param {any} recipient Any value passed to E(x)
- * @param {import('./types').HandledPromiseConstructor} HandledPromise
+ * @param {HandledPromiseConstructor} HandledPromise
* @returns {ProxyHandler} the Proxy handler
*/
const makeEProxyHandler = (recipient, HandledPromise) =>
@@ -96,7 +100,7 @@ const makeEProxyHandler = (recipient, HandledPromise) =>
* It is a variant on the E(x) Proxy handler.
*
* @param {any} recipient Any value passed to E.sendOnly(x)
- * @param {import('./types').HandledPromiseConstructor} HandledPromise
+ * @param {HandledPromiseConstructor} HandledPromise
* @returns {ProxyHandler} the Proxy handler
*/
const makeESendOnlyProxyHandler = (recipient, HandledPromise) =>
@@ -153,7 +157,7 @@ const makeESendOnlyProxyHandler = (recipient, HandledPromise) =>
* It is a variant on the E(x) Proxy handler.
*
* @param {any} x Any value passed to E.get(x)
- * @param {import('./types').HandledPromiseConstructor} HandledPromise
+ * @param {HandledPromiseConstructor} HandledPromise
* @returns {ProxyHandler} the Proxy handler
*/
const makeEGetProxyHandler = (x, HandledPromise) =>
@@ -164,7 +168,7 @@ const makeEGetProxyHandler = (x, HandledPromise) =>
});
/**
- * @param {import('./types').HandledPromiseConstructor} HandledPromise
+ * @param {HandledPromiseConstructor} HandledPromise
*/
const makeE = HandledPromise => {
return harden(
@@ -255,7 +259,7 @@ export default makeE;
*
* @template Primary The type of the primary reference.
* @template [Local=DataOnly] The local properties of the object.
- * @typedef {ERef>} FarRef
+ * @typedef {ERef>} FarRef
*/
/**
@@ -263,7 +267,7 @@ export default makeE;
* properties that are *not* functions.
*
* @template T The type to be filtered.
- * @typedef {Omit>} DataOnly
+ * @typedef {Omit>} DataOnly
*/
/**
@@ -273,7 +277,7 @@ export default makeE;
*/
/**
- * @template {import('./types').Callable} T
+ * @template {import('./types.js').Callable} T
* @typedef {(
* ReturnType extends PromiseLike // if function returns a promise
* ? T // return the function
@@ -284,7 +288,7 @@ export default makeE;
/**
* @template T
* @typedef {{
- * readonly [P in keyof T]: T[P] extends import('./types').Callable
+ * readonly [P in keyof T]: T[P] extends import('./types.js').Callable
* ? ECallable
* : never;
* }} EMethods
@@ -300,14 +304,14 @@ export default makeE;
*/
/**
- * @template {import('./types').Callable} T
+ * @template {import('./types.js').Callable} T
* @typedef {(...args: Parameters) => Promise} ESendOnlyCallable
*/
/**
* @template T
* @typedef {{
- * readonly [P in keyof T]: T[P] extends import('./types').Callable
+ * readonly [P in keyof T]: T[P] extends import('./types.js').Callable
* ? ESendOnlyCallable
* : never;
* }} ESendOnlyMethods
@@ -316,7 +320,7 @@ export default makeE;
/**
* @template T
* @typedef {(
- * T extends import('./types').Callable
+ * T extends import('./types.js').Callable
* ? ESendOnlyCallable & ESendOnlyMethods>
* : ESendOnlyMethods>
* )} ESendOnlyCallableOrMethods
@@ -325,7 +329,7 @@ export default makeE;
/**
* @template T
* @typedef {(
- * T extends import('./types').Callable
+ * T extends import('./types.js').Callable
* ? ECallable & EMethods>
* : EMethods>
* )} ECallableOrMethods
@@ -352,9 +356,9 @@ export default makeE;
*
* @template T
* @typedef {(
- * T extends import('./types').Callable
+ * T extends import('./types.js').Callable
* ? (...args: Parameters) => ReturnType // a root callable, no methods
- * : Pick> // any callable methods
+ * : Pick> // any callable methods
* )} PickCallable
*/
@@ -363,9 +367,9 @@ export default makeE;
*
* @template T
* @typedef {(
- * T extends import('./types').RemotableBrand // if a given T is some remote interface R
+ * T extends import('./types.js').RemotableBrand // if a given T is some remote interface R
* ? PickCallable // then return the callable properties of R
- * : Awaited extends import('./types').RemotableBrand // otherwise, if the final resolution of T is some remote interface R
+ * : Awaited extends import('./types.js').RemotableBrand // otherwise, if the final resolution of T is some remote interface R
* ? PickCallable // then return the callable properties of R
* : T extends PromiseLike // otherwise, if T is a promise
* ? Awaited // then return resolved value T
@@ -376,9 +380,9 @@ export default makeE;
/**
* @template T
* @typedef {(
- * T extends import('./types').RemotableBrand
+ * T extends import('./types.js').RemotableBrand
* ? L
- * : Awaited extends import('./types').RemotableBrand
+ * : Awaited extends import('./types.js').RemotableBrand
* ? L
* : T extends PromiseLike
* ? Awaited
@@ -390,7 +394,7 @@ export default makeE;
* @template [R = unknown]
* @typedef {{
* promise: Promise;
- * settler: import('./types').Settler;
+ * settler: import('./types.js').Settler;
* }} EPromiseKit
*/
@@ -400,11 +404,11 @@ export default makeE;
*
* @template T
* @typedef {(
- * T extends import('./types').Callable
+ * T extends import('./types.js').Callable
* ? (...args: Parameters) => ERef>>>
- * : T extends Record
+ * : T extends Record
* ? {
- * [K in keyof T]: T[K] extends import('./types').Callable
+ * [K in keyof T]: T[K] extends import('./types.js').Callable
* ? (...args: Parameters) => ERef>>>
* : T[K];
* }
diff --git a/packages/eventual-send/src/postponed.js b/packages/eventual-send/src/postponed.js
index 2d49d2f562..878826c3f3 100644
--- a/packages/eventual-send/src/postponed.js
+++ b/packages/eventual-send/src/postponed.js
@@ -4,8 +4,8 @@
* Create a simple postponedHandler that just postpones until donePostponing is
* called.
*
- * @param {import('./types').HandledPromiseConstructor} HandledPromise
- * @returns {[Required>, () => void]} postponedHandler and donePostponing callback.
+ * @param {import('./types.js').HandledPromiseConstructor} HandledPromise
+ * @returns {[Required>, () => void]} postponedHandler and donePostponing callback.
*/
export const makePostponedHandler = HandledPromise => {
/** @type {() => void} */
@@ -29,7 +29,7 @@ export const makePostponedHandler = HandledPromise => {
};
};
- /** @type {Required>} */
+ /** @type {Required>} */
const postponedHandler = {
get: makePostponedOperation('get'),
getSendOnly: makePostponedOperation('getSendOnly'),
diff --git a/packages/exo/src/exo-makers.js b/packages/exo/src/exo-makers.js
index a61e5bbfe6..b3ffd13898 100644
--- a/packages/exo/src/exo-makers.js
+++ b/packages/exo/src/exo-makers.js
@@ -1,4 +1,3 @@
-///
import { objectMap } from '@endo/common/object-map.js';
import { environmentOptionsListHas } from '@endo/env-options';
diff --git a/packages/lp32/reader.js b/packages/lp32/reader.js
index 9b0fd462ae..fd52dcb79c 100644
--- a/packages/lp32/reader.js
+++ b/packages/lp32/reader.js
@@ -1,6 +1,4 @@
// @ts-check
-///
-
// We use a DataView to give users choice over endianness.
// But DataView does not default to host-byte-order like other typed arrays.
diff --git a/packages/lp32/writer.js b/packages/lp32/writer.js
index e8416cba56..7416698fe2 100644
--- a/packages/lp32/writer.js
+++ b/packages/lp32/writer.js
@@ -1,6 +1,4 @@
// @ts-check
-///
-
import { Fail, q } from '@endo/errors';
import { hostIsLittleEndian } from './src/host-endian.js';
diff --git a/packages/pass-style/src/types.test-d.ts b/packages/pass-style/src/types.test-d.ts
index be6af9d036..a2ca1a6efc 100644
--- a/packages/pass-style/src/types.test-d.ts
+++ b/packages/pass-style/src/types.test-d.ts
@@ -1,10 +1,10 @@
/* eslint-disable */
import { expectAssignable, expectType, expectNotType } from 'tsd';
-import { Far } from './make-far';
-import { passStyleOf } from './passStyleOf';
-import { makeTagged } from './makeTagged';
-import { CopyTagged, Passable, PassStyle } from './types';
-import { PASS_STYLE } from './passStyle-helpers';
+import { Far } from './make-far.js';
+import { passStyleOf } from './passStyleOf.js';
+import { makeTagged } from './makeTagged.js';
+import { CopyTagged, Passable, PassStyle } from './types.js';
+import { PASS_STYLE } from './passStyle-helpers.js';
const remotable = Far('foo', {});
diff --git a/packages/promise-kit/index.js b/packages/promise-kit/index.js
index 68ba34b805..b8da7e1d3a 100644
--- a/packages/promise-kit/index.js
+++ b/packages/promise-kit/index.js
@@ -1,7 +1,5 @@
/* global globalThis */
-///
-
import { makeReleasingExecutorKit } from './src/promise-executor-kit.js';
import { memoRace } from './src/memo-race.js';
diff --git a/packages/ses/src/compartment-shim.js b/packages/ses/src/compartment-shim.js
index ecdfac9d2b..8ad47f5046 100644
--- a/packages/ses/src/compartment-shim.js
+++ b/packages/ses/src/compartment-shim.js
@@ -1,5 +1,3 @@
-///
-
import { globalThis } from './commons.js';
import { makeCompartmentConstructor } from './compartment.js';
import { tameFunctionToString } from './tame-function-tostring.js';
diff --git a/packages/ses/src/error/assert.js b/packages/ses/src/error/assert.js
index 06d764da2c..f4a645c5b0 100644
--- a/packages/ses/src/error/assert.js
+++ b/packages/ses/src/error/assert.js
@@ -48,6 +48,7 @@ import { makeNoteLogArgsArrayKit } from './note-log-args.js';
/**
* @import {BaseAssert, Assert, AssertionFunctions, AssertionUtilities, StringablePayload, DetailsToken, MakeAssert} from '../../types.js'
+ * @import {LogArgs, NoteCallback, LoggedErrorHandler} from "./internal-types.js";
*/
// For our internal debugging purposes, uncomment
diff --git a/packages/ses/src/error/console.js b/packages/ses/src/error/console.js
index 60ff798d93..49b78f9f0a 100644
--- a/packages/ses/src/error/console.js
+++ b/packages/ses/src/error/console.js
@@ -22,8 +22,11 @@ import {
weaksetAdd,
weaksetHas,
} from '../commons.js';
-import './types.js';
-import './internal-types.js';
+
+/**
+ * @import {FilterConsole, LogSeverity, VirtualConsole} from './types.js'
+ * @import {ErrorInfo, ErrorInfoKind, LogRecord, NoteCallback, LoggedErrorHandler, MakeCausalConsole, MakeLoggingConsoleKit} from "./internal-types.js";
+ */
// For our internal debugging purposes, uncomment
// const internalDebugConsole = console;
diff --git a/packages/ses/src/error/internal-types.js b/packages/ses/src/error/internal-types.js
index 9cfe79413b..3e3f2b4a13 100644
--- a/packages/ses/src/error/internal-types.js
+++ b/packages/ses/src/error/internal-types.js
@@ -1,5 +1,9 @@
// @ts-check
+/**
+ * @import {VirtualConsole} from './types.js'
+ */
+
/**
* @typedef {readonly any[]} LogArgs
*
diff --git a/packages/ses/src/error/note-log-args.js b/packages/ses/src/error/note-log-args.js
index 19ee35a2a0..b4a704d75d 100644
--- a/packages/ses/src/error/note-log-args.js
+++ b/packages/ses/src/error/note-log-args.js
@@ -3,7 +3,10 @@
/* eslint-disable no-restricted-globals */
import { makeLRUCacheMap } from '../make-lru-cachemap.js';
-import './internal-types.js';
+
+/**
+ * @import {LogArgs} from './internal-types.js';
+ */
const { freeze } = Object;
const { isSafeInteger } = Number;
diff --git a/packages/ses/src/error/tame-console.js b/packages/ses/src/error/tame-console.js
index a5371d7e09..92f66fdaff 100644
--- a/packages/ses/src/error/tame-console.js
+++ b/packages/ses/src/error/tame-console.js
@@ -11,8 +11,11 @@ import {
import { loggedErrorHandler as defaultHandler } from './assert.js';
import { makeCausalConsole } from './console.js';
import { makeRejectionHandlers } from './unhandled-rejection.js';
-import './types.js';
-import './internal-types.js';
+
+/**
+ * @import {VirtualConsole} from './types.js'
+ * @import {GetStackString} from './internal-types.js';
+ */
const failFast = message => {
throw TypeError(message);
diff --git a/packages/ses/types.test-d.ts b/packages/ses/types.test-d.ts
index dbb7ec7c22..4428b04855 100644
--- a/packages/ses/types.test-d.ts
+++ b/packages/ses/types.test-d.ts
@@ -4,8 +4,6 @@ import type { Assert } from 'ses';
import { equal as nassert } from 'node:assert/strict';
-///
-
// Lockdown
lockdown();
diff --git a/tsconfig.eslint-base.json b/tsconfig.eslint-base.json
index 048064a136..0c853e9994 100644
--- a/tsconfig.eslint-base.json
+++ b/tsconfig.eslint-base.json
@@ -2,12 +2,12 @@
"compilerOptions": {
"allowJs": true,
"target": "esnext",
- "module": "esnext",
+ "module": "NodeNext",
"checkJs": true,
"noEmit": true,
"downlevelIteration": true,
"strictNullChecks": true,
- "moduleResolution": "node"
+ "moduleResolution": "NodeNext"
},
"include": [],
"exclude": [