diff --git a/package.json b/package.json index 8dd556a53c1..89316fbd9f5 100644 --- a/package.json +++ b/package.json @@ -14,8 +14,8 @@ "@jessie.js/eslint-plugin": "^0.4.0", "@types/express": "^4.17.17", "@types/node": "^16.13.0", - "@typescript-eslint/eslint-plugin": "^6.7.0", - "@typescript-eslint/parser": "^6.7.0", + "@typescript-eslint/eslint-plugin": "^6.13.2", + "@typescript-eslint/parser": "^6.13.2", "ava": "^5.3.0", "c8": "^7.13.0", "conventional-changelog-conventionalcommits": "^4.6.0", diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index fb45fce94a0..2e735eb6f8a 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -27,8 +27,8 @@ "peerDependencies": { "@endo/eslint-plugin": "^0.5.1", "@jessie.js/eslint-plugin": "^0.4.0", - "@typescript-eslint/eslint-plugin": "^6.7.0", - "@typescript-eslint/parser": "^6.7.0", + "@typescript-eslint/eslint-plugin": "^6.13.2", + "@typescript-eslint/parser": "^6.13.2", "eslint": "^8.47.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-github": "^4.10.0", diff --git a/packages/governance/src/contractHelper.js b/packages/governance/src/contractHelper.js index 1f42b7e7291..7410bf7ae67 100644 --- a/packages/governance/src/contractHelper.js +++ b/packages/governance/src/contractHelper.js @@ -152,7 +152,8 @@ const facetHelpers = (zcf, paramManager) => { * * @see {makeDurableGovernorFacet} * - * @param {{ [methodName: string]: (context?: unknown, ...rest: unknown[]) => unknown}} limitedCreatorFacet + * @template {{ [methodName: string]: (context?: unknown, ...rest: unknown[]) => unknown}} LCF + * @param {LCF} limitedCreatorFacet */ const makeVirtualGovernorFacet = limitedCreatorFacet => { /** @type {import('@agoric/swingset-liveslots').FunctionsPlusContext>} */ diff --git a/packages/inter-protocol/src/proposals/startPSM.js b/packages/inter-protocol/src/proposals/startPSM.js index ac54aaa44b8..1b1b64b37de 100644 --- a/packages/inter-protocol/src/proposals/startPSM.js +++ b/packages/inter-protocol/src/proposals/startPSM.js @@ -276,7 +276,6 @@ export const startPSM = async ( governorFacets.creatorFacet, instanceKey, ), - // @ts-expect-error TODO type for provisionPoolStartResult E(E.get(provisionPoolStartResult).creatorFacet).initPSM( anchorBrand, newpsmKit.psm, diff --git a/packages/inter-protocol/test/psm/setupPsm.js b/packages/inter-protocol/test/psm/setupPsm.js index 55b0d5aa8bb..2da66c5e8d7 100644 --- a/packages/inter-protocol/test/psm/setupPsm.js +++ b/packages/inter-protocol/test/psm/setupPsm.js @@ -99,6 +99,7 @@ export const setupPsm = async ( issuer.produce.IST.resolve(istIssuer); space.produce.provisionPoolStartResult.resolve({ + // @ts-expect-error mock creatorFacet: Far('dummy', { initPSM: () => { t.log('dummy provisionPool.initPSM'); diff --git a/packages/swingset-liveslots/src/types.js b/packages/swingset-liveslots/src/types.js index 115b3b5edd8..05856154136 100644 --- a/packages/swingset-liveslots/src/types.js +++ b/packages/swingset-liveslots/src/types.js @@ -1,3 +1,6 @@ +// Ensure this is a module. +export {}; + /** * @callback makeLiveSlots */ @@ -79,5 +82,8 @@ * */ -// Ensure this is a module. -export {}; +/** + * @template V fulfilled value + * @template {any[]} [A=unknown[]] arguments + * @typedef { {onFulfilled?: (value: V, ...args: A) => void, onRejected?: (reason: unknown, ...args: A) => void} } PromiseWatcher + */ diff --git a/packages/swingset-liveslots/src/watchedPromises.js b/packages/swingset-liveslots/src/watchedPromises.js index cdfa3b9f582..c6dcc80979b 100644 --- a/packages/swingset-liveslots/src/watchedPromises.js +++ b/packages/swingset-liveslots/src/watchedPromises.js @@ -1,3 +1,4 @@ +// @ts-check // no-lonely-if is a stupid rule that really should be disabled globally /* eslint-disable no-lonely-if */ @@ -6,6 +7,12 @@ import { initEmpty, M } from '@agoric/store'; import { E } from '@endo/eventual-send'; import { parseVatSlot } from './parseVatSlots.js'; +/** + * @template V + * @template {any[]} [A=unknown[]] + * @typedef {[watcher: import('./types.js').PromiseWatcher, ...args: A]} PromiseWatcherTuple + */ + /** * @param {object} options * @param {*} options.syscall @@ -28,17 +35,28 @@ export function makeWatchedPromiseManager({ const { makeScalarBigMapStore } = collectionManager; const { defineDurableKind } = vom; - // virtual Store (not durable) mapping vpid to Promise objects, to - // maintain the slotToVal registration until resolution. Without - // this, slotToVal would forget local Promises that aren't exported. + /** + * virtual Store (not durable) mapping vpid to Promise objects, to + * maintain the slotToVal registration until resolution. Without + * this, slotToVal would forget local Promises that aren't exported. + * + * @type {MapStore>} + */ let promiseRegistrations; - // watched promises by vpid: each entry is an array of watches on the - // corresponding vpid; each of these is in turn an array of a watcher object - // and the arguments associated with it by `watchPromise`. + /** + * watched promises by vpid: each entry is an array of watches on the + * corresponding vpid; each of these is in turn an array of a watcher object + * and the arguments associated with it by `watchPromise`. + * @type {MapStore[]>} + */ let watchedPromiseTable; - // defined promise watcher objects indexed by kindHandle + /** + * defined promise watcher objects indexed by kindHandle + * + * @type {MapStore>} + */ let promiseWatcherByKindTable; function preparePromiseWatcherTables() { @@ -73,11 +91,17 @@ export function makeWatchedPromiseManager({ } /** - * - * @param {Promise} p + * @template T + * @param {Promise} p * @param {string} vpid + * @returns {void} */ function pseudoThen(p, vpid) { + /** + * + * @param {T} value + * @param {boolean} wasFulfilled + */ function settle(value, wasFulfilled) { const watches = watchedPromiseTable.get(vpid); watchedPromiseTable.delete(vpid); @@ -121,20 +145,28 @@ export function makeWatchedPromiseManager({ } } + /** + * @template V + * @template {any[]} A] + * @param {import('./vatDataTypes.js').DurableKindHandle} kindHandle + * @param {(value: V, ...args: A) => void} fulfillHandler + * @param {(reason: any, ...args: A) => void} rejectHandler + * @returns {import('./types.js').PromiseWatcher} + */ function providePromiseWatcher( kindHandle, - fulfillHandler = x => x, - rejectHandler = x => { - throw x; - }, + // @ts-expect-error xxx rest params in typedef + fulfillHandler = _value => {}, + // @ts-expect-error xxx rest params in typedef + rejectHandler = _reason => {}, ) { assert.typeof(fulfillHandler, 'function'); assert.typeof(rejectHandler, 'function'); const makeWatcher = defineDurableKind(kindHandle, initEmpty, { - // @ts-expect-error TS is confused by the spread operator + /** @type {(context: unknown, res: V, ...args: A) => void} */ onFulfilled: (_context, res, ...args) => fulfillHandler(res, ...args), - // @ts-expect-error + /** @type {(context: unknown, rej: unknown, ...args: A) => void} */ onRejected: (_context, rej, ...args) => rejectHandler(rej, ...args), }); @@ -148,10 +180,7 @@ export function makeWatchedPromiseManager({ } /** - * - * @param {Promise} p - * @param {{onFulfilled?: Function, onRejected?: Function}} watcher - * @param {...any} args + * @type {

, A extends any[]>(p: P, watcher: import('./types.js').PromiseWatcher, A>, ...args: A) => void} */ function watchPromise(p, watcher, ...args) { // The following wrapping defers setting up the promise watcher itself to a diff --git a/packages/swingset-liveslots/tools/setup-vat-data.js b/packages/swingset-liveslots/tools/setup-vat-data.js index bd9ea283342..7ffa9e37224 100644 --- a/packages/swingset-liveslots/tools/setup-vat-data.js +++ b/packages/swingset-liveslots/tools/setup-vat-data.js @@ -23,6 +23,7 @@ globalThis.VatData = harden({ makeKindHandle: tag => fakeVomKit.vom.makeKindHandle(tag), canBeDurable: (...args) => fakeVomKit.vom.canBeDurable(...args), providePromiseWatcher: (...args) => + // @ts-expect-error spread argument for non-rest parameter fakeVomKit.wpm.providePromiseWatcher(...args), watchPromise: (p, watcher, ...args) => fakeVomKit.wpm.watchPromise(p, watcher, ...args), diff --git a/packages/vat-data/src/index.test-d.ts b/packages/vat-data/src/index.test-d.ts index 027fc671894..6f14641539f 100644 --- a/packages/vat-data/src/index.test-d.ts +++ b/packages/vat-data/src/index.test-d.ts @@ -13,6 +13,7 @@ import { makeKindHandle, defineDurableKind, partialAssign, + watchPromise, } from '.'; // for use in assignments below @@ -168,3 +169,22 @@ const vom: VirtualObjectManager = anyVal; vom.missingMethod; // @ts-expect-error Expected 0-4 arguments but got 5 vom.defineDurableKind(anyVal, anyVal, anyVal, anyVal, 'extra'); + +const p: Promise = anyVal; +watchPromise( + p, + { + onFulfilled(value, extra1, extra2) { + expectType(value); + expectType(extra1); + // @ts-expect-error str + expectType(extra2); + }, + onRejected(reason, extra1) { + expectType(reason); + expectType(extra1); + }, + }, + 'extraString', + 'alsoString', +); diff --git a/packages/vats/index.js b/packages/vats/index.js index f16221b1572..27a927b9544 100644 --- a/packages/vats/index.js +++ b/packages/vats/index.js @@ -1,4 +1,3 @@ -// @ts-check // Ambient types import '@agoric/zoe/exported.js'; import './src/core/types-ambient.js'; diff --git a/packages/vats/package.json b/packages/vats/package.json index f5fc797e7a7..856e4d2af3f 100644 --- a/packages/vats/package.json +++ b/packages/vats/package.json @@ -76,6 +76,6 @@ "workerThreads": false }, "typeCoverage": { - "atLeast": 90.86 + "atLeast": 90.88 } } diff --git a/packages/vats/src/bridge.js b/packages/vats/src/bridge.js index a3b82b445e3..2bc642c38c5 100644 --- a/packages/vats/src/bridge.js +++ b/packages/vats/src/bridge.js @@ -1,5 +1,3 @@ -// @ts-check - import { M } from '@agoric/store'; import '@agoric/store/exported.js'; import { E } from '@endo/far'; diff --git a/packages/vats/src/centralSupply.js b/packages/vats/src/centralSupply.js index 7a732736c37..ee0cc37366d 100644 --- a/packages/vats/src/centralSupply.js +++ b/packages/vats/src/centralSupply.js @@ -1,5 +1,3 @@ -// @ts-check - import { AmountMath } from '@agoric/ertp'; import { E, Far } from '@endo/far'; diff --git a/packages/vats/src/core/basic-behaviors.js b/packages/vats/src/core/basic-behaviors.js index 6da62acdeeb..11053f847bd 100644 --- a/packages/vats/src/core/basic-behaviors.js +++ b/packages/vats/src/core/basic-behaviors.js @@ -1,5 +1,3 @@ -// @ts-check - import { AssetKind } from '@agoric/ertp'; import { CONTRACT_ELECTORATE, ParamTypes } from '@agoric/governance'; import { Stable, Stake } from '@agoric/internal/src/tokens.js'; diff --git a/packages/vats/src/core/boot-chain.js b/packages/vats/src/core/boot-chain.js index 15f4198e33b..522e471866d 100644 --- a/packages/vats/src/core/boot-chain.js +++ b/packages/vats/src/core/boot-chain.js @@ -1,4 +1,3 @@ -// @ts-check import { makeDurableZone } from '@agoric/zone/durable.js'; import { makeBootstrap } from './lib-boot.js'; diff --git a/packages/vats/src/core/boot-sim.js b/packages/vats/src/core/boot-sim.js index 0e0471d981f..807275823a2 100644 --- a/packages/vats/src/core/boot-sim.js +++ b/packages/vats/src/core/boot-sim.js @@ -1,4 +1,3 @@ -// @ts-check import { makeBootstrap } from './lib-boot.js'; import * as basicBehaviorsPlus from './basic-behaviors.js'; diff --git a/packages/vats/src/core/boot-solo.js b/packages/vats/src/core/boot-solo.js index c9118cd8ae7..02ce947a681 100644 --- a/packages/vats/src/core/boot-solo.js +++ b/packages/vats/src/core/boot-solo.js @@ -1,4 +1,3 @@ -// @ts-check import { makeBootstrap } from './lib-boot.js'; import * as basicBehaviorsPlus from './basic-behaviors.js'; diff --git a/packages/vats/src/core/chain-behaviors.js b/packages/vats/src/core/chain-behaviors.js index 7b734aaf04e..f7fd36b92f4 100644 --- a/packages/vats/src/core/chain-behaviors.js +++ b/packages/vats/src/core/chain-behaviors.js @@ -1,5 +1,4 @@ /* global globalThis */ -// @ts-check import { allValues, BridgeId as BRIDGE_ID } from '@agoric/internal'; import * as STORAGE_PATH from '@agoric/internal/src/chain-storage-paths.js'; import { makePrioritySendersManager } from '@agoric/internal/src/priority-senders.js'; diff --git a/packages/vats/src/core/client-behaviors.js b/packages/vats/src/core/client-behaviors.js index a8438fb81c4..24c9349d589 100644 --- a/packages/vats/src/core/client-behaviors.js +++ b/packages/vats/src/core/client-behaviors.js @@ -1,4 +1,3 @@ -// @ts-check import { E, Far } from '@endo/far'; import { makePluginManager } from '@agoric/swingset-vat/src/vats/plugin-manager.js'; import { observeNotifier } from '@agoric/notifier'; diff --git a/packages/vats/src/core/lib-boot.js b/packages/vats/src/core/lib-boot.js index 77e673ec192..054cf00730d 100644 --- a/packages/vats/src/core/lib-boot.js +++ b/packages/vats/src/core/lib-boot.js @@ -1,4 +1,3 @@ -// @ts-check import { E, Far } from '@endo/far'; import { makeHeapZone } from '@agoric/zone'; import { diff --git a/packages/vats/src/core/promise-space.js b/packages/vats/src/core/promise-space.js index f0cca2537f9..62a02f6b48f 100644 --- a/packages/vats/src/core/promise-space.js +++ b/packages/vats/src/core/promise-space.js @@ -1,4 +1,3 @@ -// @ts-check import { E } from '@endo/far'; import { assertKey } from '@agoric/store'; import { canBeDurable } from '@agoric/vat-data'; diff --git a/packages/vats/src/core/startWalletFactory.js b/packages/vats/src/core/startWalletFactory.js index 430c2ed0367..c3c6f00ca26 100644 --- a/packages/vats/src/core/startWalletFactory.js +++ b/packages/vats/src/core/startWalletFactory.js @@ -1,4 +1,3 @@ -// @ts-check import { makeMap } from 'jessie.js'; import { E, Far } from '@endo/far'; import { deeplyFulfilled } from '@endo/marshal'; diff --git a/packages/vats/src/core/types-ambient.d.ts b/packages/vats/src/core/types-ambient.d.ts index ebe8409cc9a..7c940e2450e 100644 --- a/packages/vats/src/core/types-ambient.d.ts +++ b/packages/vats/src/core/types-ambient.d.ts @@ -373,7 +373,9 @@ type ChainBootstrapSpaceT = { testFirstAnchorKit: import('../vat-bank.js').AssetIssuerKit<'nat'>; walletBridgeManager: import('../types.js').ScopedBridgeManager | undefined; walletFactoryStartResult: import('./startWalletFactory.js').WalletFactoryStartResult; - provisionPoolStartResult: unknown; + provisionPoolStartResult: GovernanceFacetKit< + typeof import('@agoric/inter-protocol/src/provisionPool.js').start + >; vatStore: import('./utils.js').VatStore; zoe: ZoeService; }; diff --git a/packages/vats/src/core/utils.js b/packages/vats/src/core/utils.js index 60a38cac888..31cc6e4f8a9 100644 --- a/packages/vats/src/core/utils.js +++ b/packages/vats/src/core/utils.js @@ -1,4 +1,3 @@ -// @ts-check import { Stable, Stake } from '@agoric/internal/src/tokens.js'; import { WalletName } from '@agoric/internal'; import { E, Far } from '@endo/far'; diff --git a/packages/vats/src/crc.js b/packages/vats/src/crc.js index 864a121498f..a34ee7e4d42 100644 --- a/packages/vats/src/crc.js +++ b/packages/vats/src/crc.js @@ -6,7 +6,6 @@ * Forked from npm polycrc@1.1.0 for module system compatibility, then trimmed * down to a version that assumes TypedArrays are universal. */ -// @ts-check /* eslint-disable no-bitwise */ /** @typedef {string | number | Uint8Array | ArrayBuffer} Data */ diff --git a/packages/vats/src/ibc.js b/packages/vats/src/ibc.js index 66f52db991c..cd7139cd5df 100644 --- a/packages/vats/src/ibc.js +++ b/packages/vats/src/ibc.js @@ -1,5 +1,3 @@ -// @ts-check - import { makeScalarMapStore, makeLegacyMap } from '@agoric/store'; import { makePromiseKit } from '@endo/promise-kit'; import { assert, details as X, Fail } from '@agoric/assert'; diff --git a/packages/vats/src/lib-board.js b/packages/vats/src/lib-board.js index 0e69c6c86b0..c9d758ad437 100644 --- a/packages/vats/src/lib-board.js +++ b/packages/vats/src/lib-board.js @@ -1,4 +1,3 @@ -// @ts-check /** * @file lib-board: share objects by way of plain-data ids * @see prepareBoardKit() diff --git a/packages/vats/src/mintHolder.js b/packages/vats/src/mintHolder.js index 4f526e7fde4..c7163725f30 100644 --- a/packages/vats/src/mintHolder.js +++ b/packages/vats/src/mintHolder.js @@ -1,4 +1,3 @@ -// @ts-check // @jessie-check import { prepareIssuerKit } from '@agoric/ertp'; diff --git a/packages/vats/src/nameHub.js b/packages/vats/src/nameHub.js index 04a4866ac97..f5e9acc1236 100644 --- a/packages/vats/src/nameHub.js +++ b/packages/vats/src/nameHub.js @@ -1,5 +1,3 @@ -// @ts-check - import { assert, NonNullish } from '@agoric/assert'; import { E } from '@endo/far'; import { makePromiseKit } from '@endo/promise-kit'; diff --git a/packages/vats/src/proposals/network-proposal.js b/packages/vats/src/proposals/network-proposal.js index e6d0eb619f8..8565ed5df76 100644 --- a/packages/vats/src/proposals/network-proposal.js +++ b/packages/vats/src/proposals/network-proposal.js @@ -1,4 +1,3 @@ -// @ts-check import { E, Far } from '@endo/far'; import { BridgeId as BRIDGE_ID } from '@agoric/internal'; import { diff --git a/packages/vats/src/proposals/null-upgrade-zoe-proposal.js b/packages/vats/src/proposals/null-upgrade-zoe-proposal.js index d9441f092cc..0de11165420 100644 --- a/packages/vats/src/proposals/null-upgrade-zoe-proposal.js +++ b/packages/vats/src/proposals/null-upgrade-zoe-proposal.js @@ -4,7 +4,10 @@ import { E } from '@endo/far'; * @param {BootstrapPowers & { * consume: { * vatAdminSvc: VatAdminSvc; - * vatStore: MapStore; + * vatStore: MapStore< + * string, + * import('@agoric/swingset-vat').CreateVatResults + * >; * }; * }} powers * @param {object} options @@ -16,6 +19,7 @@ export const nullUpgradeZoe = async ( ) => { const { zoeRef } = options.options; + assert(zoeRef.bundleID); const zoeBundleCap = await E(vatAdminSvc).getBundleCap(zoeRef.bundleID); console.log(`ZOE BUNDLE ID: `, zoeRef.bundleID); diff --git a/packages/vats/src/proposals/restart-vats-proposal.js b/packages/vats/src/proposals/restart-vats-proposal.js index 7ea3d6a2c13..02b42cb1342 100644 --- a/packages/vats/src/proposals/restart-vats-proposal.js +++ b/packages/vats/src/proposals/restart-vats-proposal.js @@ -1,5 +1,3 @@ -// @ts-check - import { Fail } from '@agoric/assert'; import { deeplyFulfilledObject, makeTracer } from '@agoric/internal'; import { M, mustMatch } from '@agoric/store'; diff --git a/packages/vats/src/proposals/zcf-proposal.js b/packages/vats/src/proposals/zcf-proposal.js index d27297e177d..7d974e02460 100644 --- a/packages/vats/src/proposals/zcf-proposal.js +++ b/packages/vats/src/proposals/zcf-proposal.js @@ -4,7 +4,10 @@ import { E } from '@endo/far'; * @param {BootstrapPowers & { * consume: { * vatAdminSvc: VatAdminSvc; - * vatStore: MapStore; + * vatStore: MapStore< + * string, + * import('@agoric/swingset-vat').CreateVatResults + * >; * }; * }} powers * @param {object} options @@ -16,6 +19,7 @@ export const upgradeZcf = async ( ) => { const { zoeRef, zcfRef } = options.options; + assert(zoeRef.bundleID); const zoeBundleCap = await E(vatAdminSvc).getBundleCap(zoeRef.bundleID); console.log(`ZOE BUNDLE ID: `, zoeRef.bundleID); diff --git a/packages/vats/src/repl.js b/packages/vats/src/repl.js index 60e84800792..2b69100c355 100644 --- a/packages/vats/src/repl.js +++ b/packages/vats/src/repl.js @@ -1,4 +1,3 @@ -// @ts-check import { isPromise } from '@endo/promise-kit'; import { E, Far } from '@endo/far'; import * as farExports from '@endo/far'; diff --git a/packages/vats/src/vat-agoricNames.js b/packages/vats/src/vat-agoricNames.js index 9b32d9cb27f..601e616ee08 100644 --- a/packages/vats/src/vat-agoricNames.js +++ b/packages/vats/src/vat-agoricNames.js @@ -1,4 +1,3 @@ -// @ts-check // @jessy-check import { E, Far } from '@endo/far'; import { BrandI } from '@agoric/ertp'; diff --git a/packages/vats/src/vat-bank.js b/packages/vats/src/vat-bank.js index f8efab68510..31385e3e658 100644 --- a/packages/vats/src/vat-bank.js +++ b/packages/vats/src/vat-bank.js @@ -1,4 +1,3 @@ -// @ts-check import { AmountMath, AssetKind, BrandShape } from '@agoric/ertp'; import { deeplyFulfilledObject } from '@agoric/internal'; import { prepareGuardedAttenuator } from '@agoric/internal/src/callback.js'; diff --git a/packages/vats/src/vat-board.js b/packages/vats/src/vat-board.js index c98b0587156..3c8096565d4 100644 --- a/packages/vats/src/vat-board.js +++ b/packages/vats/src/vat-board.js @@ -1,4 +1,3 @@ -// @ts-check import { provide } from '@agoric/vat-data'; import { makeDurableZone } from '@agoric/zone/durable.js'; import { Far } from '@endo/marshal'; diff --git a/packages/vats/src/vat-bridge.js b/packages/vats/src/vat-bridge.js index 7dbfb3cd1d7..1a5c00b3966 100644 --- a/packages/vats/src/vat-bridge.js +++ b/packages/vats/src/vat-bridge.js @@ -1,4 +1,3 @@ -// @ts-check import { Fail } from '@agoric/assert'; import { Far } from '@endo/far'; import { makeDurableZone } from '@agoric/zone/durable.js'; diff --git a/packages/vats/src/vat-mints.js b/packages/vats/src/vat-mints.js index dbafccbe4d7..7e03cb1ed80 100644 --- a/packages/vats/src/vat-mints.js +++ b/packages/vats/src/vat-mints.js @@ -1,4 +1,3 @@ -// @ts-check import { Far } from '@endo/far'; import { makeIssuerKit, AmountMath } from '@agoric/ertp'; diff --git a/packages/vats/src/vat-network.js b/packages/vats/src/vat-network.js index 6f98d761c24..8b499cec7a0 100644 --- a/packages/vats/src/vat-network.js +++ b/packages/vats/src/vat-network.js @@ -1,4 +1,3 @@ -// @ts-check import { makeRouterProtocol } from '@agoric/network'; export function buildRootObject() { diff --git a/packages/vats/src/vat-provisioning.js b/packages/vats/src/vat-provisioning.js index 6989cc042b7..3caa07b915d 100644 --- a/packages/vats/src/vat-provisioning.js +++ b/packages/vats/src/vat-provisioning.js @@ -1,4 +1,3 @@ -// @ts-check import { E, Far } from '@endo/far'; import { makeNotifierKit } from '@agoric/notifier'; import { diff --git a/packages/vats/src/virtual-purse.js b/packages/vats/src/virtual-purse.js index eadd6f1bb14..b2876a7e02b 100644 --- a/packages/vats/src/virtual-purse.js +++ b/packages/vats/src/virtual-purse.js @@ -1,4 +1,3 @@ -// @ts-check import { M } from '@agoric/store'; import { E } from '@endo/far'; import { isPromise } from '@endo/promise-kit'; diff --git a/packages/vats/test/test-board-utils.js b/packages/vats/test/test-board-utils.js index 2e877c591a1..71503212b43 100644 --- a/packages/vats/test/test-board-utils.js +++ b/packages/vats/test/test-board-utils.js @@ -1,4 +1,3 @@ -// @ts-check import { test } from '@agoric/swingset-vat/tools/prepare-test-env-ava.js'; import { makeFakeStorageKit } from '@agoric/internal/src/storage-test-utils.js'; diff --git a/packages/vats/test/test-boot.js b/packages/vats/test/test-boot.js index b10e1a16dd1..57a92979772 100644 --- a/packages/vats/test/test-boot.js +++ b/packages/vats/test/test-boot.js @@ -1,4 +1,3 @@ -// @ts-check import { test } from '@agoric/swingset-vat/tools/prepare-test-env-ava.js'; import { makeScalarBigMapStore } from '@agoric/vat-data'; import { makeFakeVatAdmin } from '@agoric/zoe/tools/fakeVatAdmin.js'; diff --git a/packages/vats/test/test-bootstrapPayment.js b/packages/vats/test/test-bootstrapPayment.js index af74b1b7d01..933841611ca 100644 --- a/packages/vats/test/test-bootstrapPayment.js +++ b/packages/vats/test/test-bootstrapPayment.js @@ -1,5 +1,3 @@ -// @ts-check - import { test } from '@agoric/zoe/tools/prepare-test-env-ava.js'; import { E } from '@endo/far'; import { deeplyFulfilled } from '@endo/marshal'; diff --git a/packages/vats/test/test-clientBundle.js b/packages/vats/test/test-clientBundle.js index 1c28a8dfc97..fcc066c55c1 100644 --- a/packages/vats/test/test-clientBundle.js +++ b/packages/vats/test/test-clientBundle.js @@ -1,4 +1,3 @@ -// @ts-check import { test } from '@agoric/swingset-vat/tools/prepare-test-env-ava.js'; import { E, Far } from '@endo/far'; import { setUpZoeForTest } from '@agoric/zoe/tools/setup-zoe.js'; diff --git a/packages/vats/test/test-dump.js b/packages/vats/test/test-dump.js index 1424f6ca19b..efe002b82a1 100644 --- a/packages/vats/test/test-dump.js +++ b/packages/vats/test/test-dump.js @@ -1,4 +1,3 @@ -// @ts-check import test from 'ava'; import { dump } from '../src/repl.js'; diff --git a/packages/vats/test/test-extract.js b/packages/vats/test/test-extract.js index d9ede58d883..8a01d89494f 100644 --- a/packages/vats/test/test-extract.js +++ b/packages/vats/test/test-extract.js @@ -1,4 +1,3 @@ -// @ts-check import { test } from '@agoric/swingset-vat/tools/prepare-test-env-ava.js'; import { extract } from '../src/core/utils.js'; diff --git a/packages/vats/test/test-lib-board.js b/packages/vats/test/test-lib-board.js index bd69a964966..e9ec6d264c3 100644 --- a/packages/vats/test/test-lib-board.js +++ b/packages/vats/test/test-lib-board.js @@ -1,4 +1,3 @@ -// @ts-check import { test } from '@agoric/swingset-vat/tools/prepare-test-env-ava.js'; import { E, Far } from '@endo/far'; diff --git a/packages/vats/test/test-name-hub-published.js b/packages/vats/test/test-name-hub-published.js index 47d484310c9..f33ba8cc1d6 100644 --- a/packages/vats/test/test-name-hub-published.js +++ b/packages/vats/test/test-name-hub-published.js @@ -1,4 +1,3 @@ -// @ts-check import { test } from '@agoric/swingset-vat/tools/prepare-test-env-ava.js'; import { makeMockChainStorageRoot } from '@agoric/internal/src/storage-test-utils.js'; diff --git a/packages/vats/test/test-name-hub.js b/packages/vats/test/test-name-hub.js index 365c0ec06ef..3911a3e6773 100644 --- a/packages/vats/test/test-name-hub.js +++ b/packages/vats/test/test-name-hub.js @@ -1,4 +1,3 @@ -// @ts-check import { test } from '@agoric/swingset-vat/tools/prepare-test-env-ava.js'; import { Far } from '@endo/far'; diff --git a/packages/vats/test/test-network.js b/packages/vats/test/test-network.js index b734e14bcf6..6e722b08f14 100644 --- a/packages/vats/test/test-network.js +++ b/packages/vats/test/test-network.js @@ -1,4 +1,3 @@ -// @ts-check import { test } from '@agoric/swingset-vat/tools/prepare-test-env-ava.js'; import { E, Far } from '@endo/far'; diff --git a/packages/vats/test/test-promise-space.js b/packages/vats/test/test-promise-space.js index 38b7fda8fa8..7fd4855ce17 100644 --- a/packages/vats/test/test-promise-space.js +++ b/packages/vats/test/test-promise-space.js @@ -1,4 +1,3 @@ -// @ts-check import { test } from '@agoric/swingset-vat/tools/prepare-test-env-ava.js'; import { makeScalarBigMapStore } from '@agoric/vat-data'; diff --git a/packages/vats/test/test-tokens.js b/packages/vats/test/test-tokens.js index bc0ff3a1dcf..6a70e569fbf 100644 --- a/packages/vats/test/test-tokens.js +++ b/packages/vats/test/test-tokens.js @@ -1,4 +1,3 @@ -// @ts-check import test from 'ava'; import { assertKeywordName } from '@agoric/zoe/src/cleanProposal.js'; diff --git a/packages/vats/test/test-vat-bank-integration.js b/packages/vats/test/test-vat-bank-integration.js index fe29607fd0e..12c139cf0ea 100644 --- a/packages/vats/test/test-vat-bank-integration.js +++ b/packages/vats/test/test-vat-bank-integration.js @@ -1,4 +1,3 @@ -// @ts-check import { test } from '@agoric/swingset-vat/tools/prepare-test-env-ava.js'; import { makeScalarMapStore } from '@agoric/vat-data'; diff --git a/packages/vats/test/test-vat-bank.js b/packages/vats/test/test-vat-bank.js index 8cc4405b86a..46502424180 100644 --- a/packages/vats/test/test-vat-bank.js +++ b/packages/vats/test/test-vat-bank.js @@ -1,4 +1,3 @@ -// @ts-check import { test } from '@agoric/swingset-vat/tools/prepare-test-env-ava.js'; import { reincarnate } from '@agoric/swingset-liveslots/tools/setup-vat-data.js'; diff --git a/packages/vats/test/test-vpurse.js b/packages/vats/test/test-vpurse.js index 188a3b92183..c7a71782564 100644 --- a/packages/vats/test/test-vpurse.js +++ b/packages/vats/test/test-vpurse.js @@ -1,4 +1,3 @@ -// @ts-check import { test as rawTest } from '@agoric/swingset-vat/tools/prepare-test-env-ava.js'; import { reincarnate } from '@agoric/swingset-liveslots/tools/setup-vat-data.js'; diff --git a/packages/vats/tools/bank-utils.js b/packages/vats/tools/bank-utils.js index 84b3cf70562..13a0047b78c 100644 --- a/packages/vats/tools/bank-utils.js +++ b/packages/vats/tools/bank-utils.js @@ -1,4 +1,3 @@ -// @ts-check import { makeSubscriptionKit } from '@agoric/notifier'; import { makeScalarMapStore } from '@agoric/vat-data'; import { E } from '@endo/far'; diff --git a/packages/vats/tools/board-utils.js b/packages/vats/tools/board-utils.js index c1ee00a0c31..c9ee33bb416 100644 --- a/packages/vats/tools/board-utils.js +++ b/packages/vats/tools/board-utils.js @@ -1,4 +1,3 @@ -// @ts-check /** * @typedef {{ * brand: import('@agoric/internal/src/marshal.js').BoardRemote; diff --git a/packages/vats/tools/boot-test-utils.js b/packages/vats/tools/boot-test-utils.js index 8e0e0daab2d..ba166db519e 100644 --- a/packages/vats/tools/boot-test-utils.js +++ b/packages/vats/tools/boot-test-utils.js @@ -1,4 +1,3 @@ -// @ts-check import { makeFakeVatAdmin, zcfBundleCap, diff --git a/packages/vats/tsconfig.json b/packages/vats/tsconfig.json index 20c742a8851..6afba2fd253 100644 --- a/packages/vats/tsconfig.json +++ b/packages/vats/tsconfig.json @@ -2,7 +2,6 @@ "extends": "../../tsconfig.json", "compilerOptions": { "allowSyntheticDefaultImports": true, - "checkJs": false, "maxNodeModuleJsDepth": 1, }, "include": [ diff --git a/packages/zoe/src/zoeService/installationStorage.js b/packages/zoe/src/zoeService/installationStorage.js index e2579ac8bbb..9b12197d706 100644 --- a/packages/zoe/src/zoeService/installationStorage.js +++ b/packages/zoe/src/zoeService/installationStorage.js @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/prefer-ts-expect-error -- accomodate different type search depths */ import { assert } from '@agoric/assert'; import { M, @@ -33,20 +34,24 @@ export const makeInstallationStorage = (getBundleCapForID, zoeBaggage) => { 'installationsBundle', ); + /** @type {(bundleLabel: string) => Installation} */ const makeBundleIDInstallation = prepareKind( zoeBaggage, 'BundleIDInstallation', bundleLabel => ({ bundleLabel }), + // @ts-ignore cast without StartFunction property { getBundle: _context => Fail`bundleID-based Installation`, getBundleLabel: ({ state: { bundleLabel } }) => bundleLabel, }, ); + /** @type {(bundle: SourceBundle, bundleLabel?: string) => Installation} */ const makeBundleInstallation = prepareKind( zoeBaggage, 'BundleInstallation', (bundle, bundleLabel) => ({ bundle, bundleLabel }), + // @ts-ignore cast without StartFunction property { getBundle: ({ state: { bundle } }) => bundle, getBundleLabel: ({ state: { bundleLabel } }) => bundleLabel, @@ -68,8 +73,6 @@ export const makeInstallationStorage = (getBundleCapForID, zoeBaggage) => { typeof bundle === 'object' || Fail`a bundle must be provided`; /** @type {Installation} */ bundle || Fail`a bundle must be provided`; - /** @type {Installation} */ - // @ts-expect-error cast const installation = makeBundleInstallation(bundle, bundleLabel); installationsBundle.init(installation, bundle); return installation; @@ -125,8 +128,6 @@ export const makeInstallationStorage = (getBundleCapForID, zoeBaggage) => { const bundleCap = await getBundleCapForID(bundleID); // AWAIT - /** @type {Installation} */ - // @ts-expect-error cast const installation = makeBundleIDInstallation(bundleLabel); installationsBundleCap.init( installation, diff --git a/yarn.lock b/yarn.lock index 84fb99fccfe..cac53b9aa08 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2398,7 +2398,7 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== -"@typescript-eslint/eslint-plugin@^6.0.0", "@typescript-eslint/eslint-plugin@^6.7.0": +"@typescript-eslint/eslint-plugin@^6.0.0": version "6.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.0.tgz#ed2a38867190f8a688af85ad7c8a74670b8b3675" integrity sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag== @@ -2415,7 +2415,24 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.0.0", "@typescript-eslint/parser@^6.7.0": +"@typescript-eslint/eslint-plugin@^6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz#2e03506c5362a65e43cb132c37c9ce2d3cb51470" + integrity sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ== + dependencies: + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.13.2" + "@typescript-eslint/type-utils" "6.13.2" + "@typescript-eslint/utils" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/parser@^6.0.0": version "6.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.7.0.tgz#332fe9c7ecf6783d3250b4c8a960bd4af0995807" integrity sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng== @@ -2426,6 +2443,25 @@ "@typescript-eslint/visitor-keys" "6.7.0" debug "^4.3.4" +"@typescript-eslint/parser@^6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.13.2.tgz#390b79cc9a57a5f904d197a201cc4b6bc4f9afb9" + integrity sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg== + dependencies: + "@typescript-eslint/scope-manager" "6.13.2" + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/typescript-estree" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz#5fa4e4adace028dafac212c770640b94e7b61052" + integrity sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA== + dependencies: + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" + "@typescript-eslint/scope-manager@6.7.0": version "6.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.0.tgz#6b3c22187976e2bf5ed0dc0d9095f1f2cbd1d106" @@ -2434,6 +2470,16 @@ "@typescript-eslint/types" "6.7.0" "@typescript-eslint/visitor-keys" "6.7.0" +"@typescript-eslint/type-utils@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz#ebec2da14a6bb7122e0fd31eea72a382c39c6102" + integrity sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw== + dependencies: + "@typescript-eslint/typescript-estree" "6.13.2" + "@typescript-eslint/utils" "6.13.2" + debug "^4.3.4" + ts-api-utils "^1.0.1" + "@typescript-eslint/type-utils@6.7.0": version "6.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.7.0.tgz#21a013d4c7f96255f5e64ac59fb41301d1e052ba" @@ -2444,11 +2490,29 @@ debug "^4.3.4" ts-api-utils "^1.0.1" +"@typescript-eslint/types@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.13.2.tgz#c044aac24c2f6cefb8e921e397acad5417dd0ae6" + integrity sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg== + "@typescript-eslint/types@6.7.0": version "6.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.0.tgz#8de8ba9cafadc38e89003fe303e219c9250089ae" integrity sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q== +"@typescript-eslint/typescript-estree@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz#ae556ee154c1acf025b48d37c3ef95a1d55da258" + integrity sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w== + dependencies: + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + "@typescript-eslint/typescript-estree@6.7.0": version "6.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.0.tgz#20ce2801733bd46f02cc0f141f5b63fbbf2afb63" @@ -2462,6 +2526,19 @@ semver "^7.5.4" ts-api-utils "^1.0.1" +"@typescript-eslint/utils@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.13.2.tgz#8eb89e53adc6d703a879b131e528807245486f89" + integrity sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.13.2" + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/typescript-estree" "6.13.2" + semver "^7.5.4" + "@typescript-eslint/utils@6.7.0", "@typescript-eslint/utils@^6.6.0": version "6.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.7.0.tgz#61b6f1f1b82ad529abfcee074d21764e880886fb" @@ -2475,6 +2552,14 @@ "@typescript-eslint/typescript-estree" "6.7.0" semver "^7.5.4" +"@typescript-eslint/visitor-keys@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz#e0a4a80cf842bb08e6127b903284166ac4a5594c" + integrity sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw== + dependencies: + "@typescript-eslint/types" "6.13.2" + eslint-visitor-keys "^3.4.1" + "@typescript-eslint/visitor-keys@6.7.0": version "6.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz#34140ac76dfb6316d17012e4469acf3366ad3f44"