{
  "version": "node-loading-lab/1",
  "recordedAt": "2026-11-10T14:29:56.209Z",
  "environment": {
    "node": "v22.22.3",
    "platform": "darwin",
    "architecture": "arm64",
    "osRelease": "27.0.0",
    "osVersion": "27.0.1"
  },
  "scope": "Synthetic modules, one local runtime, two fresh directories. Disabling require(ESM) is a feature flag experiment, not a test of an older Node binary.",
  "scriptSha256": "1dc3994348f35248920f0d51ed6ad81b2f096f46a1a276d77eb7365b88e9589e",
  "fixtureSha256": "cc9734499b36b5de32063be1f437e3392c47d69f9b90c421d140502ad6d4c781",
  "sourceFiles": {
    "sync.mjs": "export const answer = 42;\n",
    "async.mjs": "await Promise.resolve();\nexport const answer = 42;\n",
    "bridge.mjs": "export { answer } from './async.mjs';\n",
    "node_modules/lab-order/package.json": "{\n  \"name\": \"lab-order\",\n  \"type\": \"module\",\n  \"exports\": {\n    \".\": {\n      \"node\": \"./node.cjs\",\n      \"require\": \"./require.cjs\",\n      \"default\": \"./fallback.mjs\"\n    }\n  }\n}\n",
    "node_modules/lab-order/node.cjs": "module.exports = { branch: 'node' };\n",
    "node_modules/lab-order/require.cjs": "module.exports = { branch: 'require' };\n",
    "node_modules/lab-order/fallback.mjs": "export const branch = 'default';\n",
    "node_modules/lab-split/package.json": "{\n  \"name\": \"lab-split\",\n  \"type\": \"module\",\n  \"exports\": {\n    \".\": {\n      \"import\": \"./import.mjs\",\n      \"require\": \"./require.cjs\",\n      \"default\": \"./import.mjs\"\n    }\n  }\n}\n",
    "node_modules/lab-split/import.mjs": "export const branch = 'import';\n",
    "node_modules/lab-split/require.cjs": "module.exports = { branch: 'require' };\n",
    "node_modules/lab-split/private.cjs": "module.exports = { hidden: true };\n"
  },
  "runs": [
    {
      "round": 1,
      "freshDirectory": true,
      "results": [
        {
          "id": "require-sync",
          "args": [
            "--input-type=commonjs",
            "-e",
            "console.log(require('./sync.mjs').answer)"
          ],
          "exitCode": 0,
          "stdout": "42",
          "errorCode": null
        },
        {
          "id": "require-disabled",
          "args": [
            "--no-experimental-require-module",
            "--input-type=commonjs",
            "-e",
            "console.log(require('./sync.mjs').answer)"
          ],
          "exitCode": 1,
          "stdout": "",
          "errorCode": "ERR_REQUIRE_ESM"
        },
        {
          "id": "require-async",
          "args": [
            "--input-type=commonjs",
            "-e",
            "console.log(require('./async.mjs').answer)"
          ],
          "exitCode": 1,
          "stdout": "",
          "errorCode": "ERR_REQUIRE_ASYNC_MODULE"
        },
        {
          "id": "require-transitive-async",
          "args": [
            "--input-type=commonjs",
            "-e",
            "console.log(require('./bridge.mjs').answer)"
          ],
          "exitCode": 1,
          "stdout": "",
          "errorCode": "ERR_REQUIRE_ASYNC_MODULE"
        },
        {
          "id": "import-async",
          "args": [
            "--input-type=commonjs",
            "-e",
            "import('./bridge.mjs').then(m => console.log(m.answer)).catch(e => { console.error(e); process.exitCode = 1; })"
          ],
          "exitCode": 0,
          "stdout": "42",
          "errorCode": null
        },
        {
          "id": "condition-order",
          "args": [
            "--input-type=commonjs",
            "-e",
            "console.log(require('lab-order').branch)"
          ],
          "exitCode": 0,
          "stdout": "node",
          "errorCode": null
        },
        {
          "id": "require-branch",
          "args": [
            "--input-type=commonjs",
            "-e",
            "console.log(require('lab-split').branch)"
          ],
          "exitCode": 0,
          "stdout": "require",
          "errorCode": null
        },
        {
          "id": "import-branch",
          "args": [
            "--input-type=commonjs",
            "-e",
            "import('lab-split').then(m => console.log(m.branch)).catch(e => { console.error(e); process.exitCode = 1; })"
          ],
          "exitCode": 0,
          "stdout": "import",
          "errorCode": null
        },
        {
          "id": "private-subpath",
          "args": [
            "--input-type=commonjs",
            "-e",
            "console.log(require('lab-split/private.cjs'))"
          ],
          "exitCode": 1,
          "stdout": "",
          "errorCode": "ERR_PACKAGE_PATH_NOT_EXPORTED"
        }
      ]
    },
    {
      "round": 2,
      "freshDirectory": true,
      "results": [
        {
          "id": "require-sync",
          "args": [
            "--input-type=commonjs",
            "-e",
            "console.log(require('./sync.mjs').answer)"
          ],
          "exitCode": 0,
          "stdout": "42",
          "errorCode": null
        },
        {
          "id": "require-disabled",
          "args": [
            "--no-experimental-require-module",
            "--input-type=commonjs",
            "-e",
            "console.log(require('./sync.mjs').answer)"
          ],
          "exitCode": 1,
          "stdout": "",
          "errorCode": "ERR_REQUIRE_ESM"
        },
        {
          "id": "require-async",
          "args": [
            "--input-type=commonjs",
            "-e",
            "console.log(require('./async.mjs').answer)"
          ],
          "exitCode": 1,
          "stdout": "",
          "errorCode": "ERR_REQUIRE_ASYNC_MODULE"
        },
        {
          "id": "require-transitive-async",
          "args": [
            "--input-type=commonjs",
            "-e",
            "console.log(require('./bridge.mjs').answer)"
          ],
          "exitCode": 1,
          "stdout": "",
          "errorCode": "ERR_REQUIRE_ASYNC_MODULE"
        },
        {
          "id": "import-async",
          "args": [
            "--input-type=commonjs",
            "-e",
            "import('./bridge.mjs').then(m => console.log(m.answer)).catch(e => { console.error(e); process.exitCode = 1; })"
          ],
          "exitCode": 0,
          "stdout": "42",
          "errorCode": null
        },
        {
          "id": "condition-order",
          "args": [
            "--input-type=commonjs",
            "-e",
            "console.log(require('lab-order').branch)"
          ],
          "exitCode": 0,
          "stdout": "node",
          "errorCode": null
        },
        {
          "id": "require-branch",
          "args": [
            "--input-type=commonjs",
            "-e",
            "console.log(require('lab-split').branch)"
          ],
          "exitCode": 0,
          "stdout": "require",
          "errorCode": null
        },
        {
          "id": "import-branch",
          "args": [
            "--input-type=commonjs",
            "-e",
            "import('lab-split').then(m => console.log(m.branch)).catch(e => { console.error(e); process.exitCode = 1; })"
          ],
          "exitCode": 0,
          "stdout": "import",
          "errorCode": null
        },
        {
          "id": "private-subpath",
          "args": [
            "--input-type=commonjs",
            "-e",
            "console.log(require('lab-split/private.cjs'))"
          ],
          "exitCode": 1,
          "stdout": "",
          "errorCode": "ERR_PACKAGE_PATH_NOT_EXPORTED"
        }
      ]
    }
  ]
}
