{
  "schemaVersion": 1,
  "engine": "cpp",
  "scope": {
    "asset": "cpp-regex.wasm",
    "assetSha256": "231c0a37472f2ef7880377b044adadd31a852a0adf2e3cf023055b5dca74c460",
    "assetBytes": 251481,
    "purpose": "Complete linked-component, preferred-source and legal inventory for the exact C++ WebAssembly module"
  },
  "sourceSnapshot": {
    "project": "Emscripten",
    "version": "6.0.4",
    "tag": "6.0.4",
    "commitSha1": "fe5be6afdff43ad58860d821fcc8572a23f92d19",
    "repository": "https://github.com/emscripten-core/emscripten",
    "preferredSourceUrl": "https://github.com/emscripten-core/emscripten/tree/fe5be6afdff43ad58860d821fcc8572a23f92d19",
    "archiveUrl": "https://github.com/emscripten-core/emscripten/archive/fe5be6afdff43ad58860d821fcc8572a23f92d19.tar.gz",
    "emsdk": {
      "tag": "6.0.4",
      "commitSha1": "224ec5f9f2f72f09f9ce0e26d66bae7dbd8b692f",
      "releaseCommitSha1": "b23272fac5d05617cd36dc451356dca0f79bf22d",
      "repository": "https://github.com/emscripten-core/emsdk"
    },
    "llvmToolchain": {
      "version": "24.0.0git",
      "commitSha1": "c050c487e9edb97ef44f53cb29fe1d8bcddb8f76",
      "repository": "https://github.com/llvm/llvm-project"
    }
  },
  "buildSelection": {
    "exceptionMode": "Emscripten JavaScript exceptions (-fexceptions)",
    "allocator": "emmalloc (-sMALLOC=emmalloc)",
    "exactLinkedArchives": [
      "libc++.a",
      "libc++abi.a",
      "libc.a",
      "libclang_rt.builtins.a",
      "libembind-rtti.a",
      "libemmalloc.a",
      "libnoexit.a",
      "libstubs.a"
    ],
    "inventoryMethod": "the pack builder adds wasm-ld --trace, accepts this exact archive set and fails on any addition, removal or libunwind selection"
  },
  "sourceEvidence": [
    {
      "sourcePath": "emscripten-revision.txt",
      "sourceSha256": "33d347ba6aa1de448bc1727d46912c1abcbddac9a32dcf4794d7098dea16e1ad"
    },
    {
      "sourcePath": "emscripten-version.txt",
      "sourceSha256": "1ae2390b7da62b8488a9f596a39ed978b22356de0f267db9ae9dd43d0d3faa6e"
    },
    {
      "sourcePath": "system/lib/compiler-rt/README.md",
      "sourceSha256": "50648d4da5c5c88468da064bd9ba29d68d47597607852330423da0a1cf987946"
    },
    {
      "sourcePath": "system/lib/libc/README.md",
      "sourceSha256": "69aeb7c1991af58c547f8da100c57ff38f53c4015f4df579731c5abab84654b9"
    },
    {
      "sourcePath": "system/lib/libcxx/README.md",
      "sourceSha256": "da90136512d04c06e2bd27ef18d71be34bfc64c06bc29b12ddcf66bb76ae193b"
    },
    {
      "sourcePath": "system/lib/libcxxabi/README.md",
      "sourceSha256": "dcfec7b2c2987ce00e513cac89933f4d30329070570c4efdb4d1d00297182736"
    },
    {
      "sourcePath": "system/lib/libunwind/README.md",
      "sourceSha256": "26b3b06b2640cee75b2cf4e01b0956a0fd6cc5ca2054998e18d66ff060762410"
    },
    {
      "sourcePath": "system/lib/emmalloc.c",
      "sourceSha256": "00eb577cbef51a3359c309f45a7c99a814b8c6151ab75c9a3c78a56f0169146b"
    }
  ],
  "linkedComponents": [
    {
      "id": "emscripten-runtime",
      "version": "6.0.4",
      "linked": true,
      "linkedArchives": [
        "libembind-rtti.a",
        "libnoexit.a",
        "libstubs.a"
      ],
      "sourcePath": "src, system/lib and tools",
      "sourceEvidencePath": "emscripten-revision.txt",
      "license": "MIT OR NCSA",
      "legalFiles": [
        "LICENSE-Emscripten.txt"
      ],
      "evidence": "Emscripten-generated JavaScript/runtime imports plus exact linker-trace archive members"
    },
    {
      "id": "musl",
      "version": "1.2.6 with Emscripten changes",
      "linked": true,
      "linkedArchives": [
        "libc.a"
      ],
      "sourcePath": "system/lib/libc",
      "sourceEvidencePath": "system/lib/libc/README.md",
      "license": "MIT and file-level compatible terms",
      "legalFiles": [
        "LICENSE-musl.txt"
      ],
      "evidence": "exact linker trace selects members of libc.a"
    },
    {
      "id": "emmalloc",
      "version": "Emscripten 6.0.4 snapshot",
      "linked": true,
      "linkedArchives": [
        "libemmalloc.a"
      ],
      "sourcePath": "system/lib/emmalloc.c",
      "sourceEvidencePath": "system/lib/emmalloc.c",
      "license": "MIT OR NCSA",
      "legalFiles": [
        "LICENSE-Emscripten.txt"
      ],
      "evidence": "the build fixes -sMALLOC=emmalloc and the exact linker trace selects emmalloc.o and sbrk.o"
    },
    {
      "id": "compiler-rt",
      "version": "22.1.8 with Emscripten changes",
      "linked": true,
      "linkedArchives": [
        "libclang_rt.builtins.a"
      ],
      "sourcePath": "system/lib/compiler-rt",
      "sourceEvidencePath": "system/lib/compiler-rt/README.md",
      "license": "Apache-2.0 WITH LLVM-exception and legacy component terms",
      "legalFiles": [
        "LICENSE-compiler-rt.txt"
      ],
      "evidence": "exact linker trace selects compiler-rt builtins, including Emscripten exception support"
    },
    {
      "id": "libc++",
      "version": "21.1.8 with Emscripten changes",
      "linked": true,
      "linkedArchives": [
        "libc++.a"
      ],
      "sourcePath": "system/lib/libcxx",
      "sourceEvidencePath": "system/lib/libcxx/README.md",
      "license": "Apache-2.0 WITH LLVM-exception and legacy component terms",
      "legalFiles": [
        "LICENSE-libcxx.txt"
      ],
      "evidence": "exact linker trace selects libc++ regex, locale, string, exception and support objects"
    },
    {
      "id": "libc++abi",
      "version": "21.1.8 with Emscripten changes",
      "linked": true,
      "linkedArchives": [
        "libc++abi.a"
      ],
      "sourcePath": "system/lib/libcxxabi",
      "sourceEvidencePath": "system/lib/libcxxabi/README.md",
      "license": "Apache-2.0 WITH LLVM-exception and legacy component terms",
      "legalFiles": [
        "LICENSE-libcxxabi.txt"
      ],
      "evidence": "exact linker trace selects the Emscripten C++ exception ABI and type-information objects"
    },
    {
      "id": "libunwind",
      "version": "22.1.8 with Emscripten changes",
      "linked": false,
      "linkedArchives": [],
      "consideredArchive": "libunwind.a",
      "sourcePath": "system/lib/libunwind",
      "sourceEvidencePath": "system/lib/libunwind/README.md",
      "license": "Apache-2.0 WITH LLVM-exception and legacy component terms",
      "legalFiles": [
        "LICENSE-libunwind.txt"
      ],
      "evidence": "audited exclusion: the exact JavaScript-exception linker trace selects no libunwind.a member; its legal text is retained to make that boundary reviewable"
    }
  ],
  "legalFiles": [
    {
      "path": "LICENSE-Emscripten.txt",
      "sha256": "620a78084fc7ca97c0b5dea9abf891f3ffcadfdbf305276f099c9c4e12fc1d86",
      "bytes": 5093
    },
    {
      "path": "LICENSE-compiler-rt.txt",
      "sha256": "1a8f1058753f1ba890de984e48f0242a3a5c29a6a8f2ed9fd813f36985387e8d",
      "bytes": 16708
    },
    {
      "path": "LICENSE-libcxx.txt",
      "sha256": "539dd7aed86e8a4f12cbdd0e6c50c189c7d74847e4fecc64ce2c6ee3a01da38b",
      "bytes": 16703
    },
    {
      "path": "LICENSE-libcxxabi.txt",
      "sha256": "e2b35be49f7284a45b7baca8fc7b3ab7440e7902392b2528a457816b5bb2a15c",
      "bytes": 16706
    },
    {
      "path": "LICENSE-libunwind.txt",
      "sha256": "b5efebcaca80879234098e52d1725e6d9eb8fb96a19fce625d39184b705f7b6d",
      "bytes": 16706
    },
    {
      "path": "LICENSE-musl.txt",
      "sha256": "b870108ec5e7790e9f9919064f1b9421d62d5f9b0e6c230c6adf7ea2da62e97b",
      "bytes": 6196
    }
  ]
}
