%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
import { pathToFileURL } from 'node:url';
import count from '../es-modules/stateful.mjs';
// Arbitrary instance of manipulating a module's internal state
// used to assert node-land and user-land have different contexts
count();
/**
* @param {string} url A fully resolved file url.
* @param {object} context Additional info.
* @param {function} next for now, next is defaultLoad a wrapper for
* defaultGetFormat + defaultGetSource
* @returns {{ format: string, source: (string|SharedArrayBuffer|Uint8Array) }}
*/
export function load(url, context, next) {
// Load all .js files as ESM, regardless of package scope
if (url.endsWith('.js')) return next(url, {
...context,
format: 'module',
});
if (url.endsWith('.ext')) return next(url, {
...context,
format: 'module',
});
if (url.endsWith('esmHook/badReturnVal.mjs')) return 'export function returnShouldBeObject() {}';
if (url.endsWith('esmHook/badReturnFormatVal.mjs')) return {
format: Array(0),
shortCircuit: true,
source: '',
}
if (url.endsWith('esmHook/unsupportedReturnFormatVal.mjs')) return {
format: 'foo', // Not one of the allowable inputs: no translator named 'foo'
shortCircuit: true,
source: '',
}
if (url.endsWith('esmHook/badReturnSourceVal.mjs')) return {
format: 'module',
shortCircuit: true,
source: Array(0),
}
if (url.endsWith('esmHook/preknownFormat.pre')) return {
format: context.format,
shortCircuit: true,
source: `const msg = 'hello world'; export default msg;`
};
if (url.endsWith('esmHook/virtual.mjs')) return {
format: 'module',
shortCircuit: true,
source: `export const message = 'Woohoo!'.toUpperCase();`,
};
return next(url);
}
export function resolve(specifier, { importAssertions }, next) {
let format = '';
if (specifier === 'esmHook/format.false') format = false;
if (specifier === 'esmHook/format.true') format = true;
if (specifier === 'esmHook/preknownFormat.pre') format = 'module';
if (specifier.startsWith('esmHook')) return {
format,
shortCircuit: true,
url: pathToFileURL(specifier).href,
importAssertions,
};
return next(specifier);
}