%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 * as common from '../common/index.mjs'; import path from 'path'; import fs from 'fs/promises'; import tmpdir from '../common/tmpdir.js'; import { spawn } from 'child_process'; import assert from 'assert'; tmpdir.refresh(); const tmpDir = tmpdir.path; // Create the following file structure: // ├── index.mjs // ├── subfolder // │ ├── index.mjs // │ └── node_modules // │ └── package-a // │ └── index.mjs // └── symlink.mjs -> ./subfolder/index.mjs const entry = path.join(tmpDir, 'index.mjs'); const symlink = path.join(tmpDir, 'symlink.mjs'); const real = path.join(tmpDir, 'subfolder', 'index.mjs'); const packageDir = path.join(tmpDir, 'subfolder', 'node_modules', 'package-a'); const packageEntry = path.join(packageDir, 'index.mjs'); try { await fs.symlink(real, symlink); } catch (err) { if (err.code !== 'EPERM') throw err; common.skip('insufficient privileges for symlinks'); } await fs.mkdir(packageDir, { recursive: true }); await Promise.all([ fs.writeFile(entry, 'import "./symlink.mjs";'), fs.writeFile(real, 'export { a } from "package-a/index.mjs"'), fs.writeFile(packageEntry, 'export const a = 1;'), ]); spawn(process.execPath, ['--experimental-specifier-resolution=node', entry], { stdio: 'inherit' }).on('exit', common.mustCall((code) => { assert.strictEqual(code, 0); }));