function whenFile({ module, version, path = '' }) {
	// const f = module + '@' + version + ' :: ' + path;
	const packageSpecifier = module + '/' + version;
	let files = tarFiles.get(packageSpecifier);
	let whens = whenFiles.get(packageSpecifier);
	if (files) {
		const cached = files.get(path);
		if (cached != null) {
			// console.log(`when(${f}): already available`);
			return Promise.resolve(cached);
		}
		// we already have a completed files listing and this file wasn't in it.
		if (!whens) {
			// console.log(`when(${f}): confirmed missing`);
			return Promise.reject('no such file');
		}
	}
	// console.log(`when(${f}): pending (${files ? 'has' : 'no'} files, ${whens ? 'has' : 'no'} whens)`);
	// whenFile() should never be called prior to getTarFiles() to avoid races.
	if (!whens) {
		whens = new Set();
		whenFiles.set(packageSpecifier, whens);
	}
	return new Promise((resolve, reject) => {
		// @ts-ignore
		whens.add({ path, resolve, reject });
	});
}
Get a promise that resolves once a package file as early as possible
@param {Module} info
@returns {Promise<string>}