{
  "tool_id": "art-194-digest-manifest-builder",
  "note": "golden_hash filled by `node golden-parity.test.mjs --update`.",
  "vectors": [
    {
      "name": "two-entries",
      "policy_parameters": {
        "entries": [
          {
            "name": "report.pdf",
            "sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
            "bytes": 10240,
            "media_type": "application/pdf"
          },
          {
            "name": "data.csv",
            "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
            "bytes": 512,
            "media_type": "text/csv"
          }
        ],
        "purpose": "release-bundle",
        "sort": "name"
      },
      "output_payload": {
        "manifest": {
          "manifest_version": "1.0",
          "purpose": "release-bundle",
          "entry_count": 2,
          "total_bytes": 10752,
          "sort": "name",
          "entries": [
            {
              "name": "data.csv",
              "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
              "bytes": 512,
              "media_type": "text/csv"
            },
            {
              "name": "report.pdf",
              "sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
              "bytes": 10240,
              "media_type": "application/pdf"
            }
          ],
          "manifest_sha256": "19c3913b698f2732bb2d2c397e89021001cbd510a4d322577da915c94ef8e52f"
        },
        "checks": [
          {
            "check": "all_digests_64_hex",
            "pass": true,
            "detail": "all digests are 64 hex"
          },
          {
            "check": "no_duplicate_names",
            "pass": true,
            "detail": "no duplicate names"
          },
          {
            "check": "no_duplicate_digests",
            "pass": true,
            "detail": "no duplicate digests"
          },
          {
            "check": "no_path_like_names",
            "pass": true,
            "detail": "no path-like names"
          }
        ],
        "all_checks_pass": true
      },
      "golden_hash": "1eddb943e9c6dd0e67d47f19920f67ff86329bcea7977ee962cfba0bbc75138b"
    },
    {
      "name": "duplicate-digest",
      "policy_parameters": {
        "entries": [
          {
            "name": "a.txt",
            "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
            "bytes": 4
          },
          {
            "name": "b.txt",
            "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
            "bytes": 4
          }
        ],
        "purpose": "dup-check",
        "sort": "digest"
      },
      "output_payload": {
        "manifest": {
          "manifest_version": "1.0",
          "purpose": "dup-check",
          "entry_count": 2,
          "total_bytes": 8,
          "sort": "digest",
          "entries": [
            {
              "name": "a.txt",
              "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
              "bytes": 4
            },
            {
              "name": "b.txt",
              "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
              "bytes": 4
            }
          ],
          "manifest_sha256": "69f69ffe6817e0406d7bc3b11ec9fb98a4d05b6020c2fefbdf4632db6360b345"
        },
        "checks": [
          {
            "check": "all_digests_64_hex",
            "pass": true,
            "detail": "all digests are 64 hex"
          },
          {
            "check": "no_duplicate_names",
            "pass": true,
            "detail": "no duplicate names"
          },
          {
            "check": "no_duplicate_digests",
            "pass": false,
            "detail": "duplicate digest(s) present (1)"
          },
          {
            "check": "no_path_like_names",
            "pass": true,
            "detail": "no path-like names"
          }
        ],
        "all_checks_pass": false
      },
      "golden_hash": "265a92c9024364fa4ac9fbe624a9b955ccb466e7e664c6c2f00f91e906d1de20"
    },
    {
      "name": "empty-input",
      "policy_parameters": {},
      "output_payload": {
        "manifest": {
          "manifest_version": "1.0",
          "purpose": "",
          "entry_count": 0,
          "total_bytes": null,
          "sort": "name",
          "entries": [],
          "manifest_sha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945"
        },
        "checks": [
          {
            "check": "all_digests_64_hex",
            "pass": true,
            "detail": "all digests are 64 hex"
          },
          {
            "check": "no_duplicate_names",
            "pass": true,
            "detail": "no duplicate names"
          },
          {
            "check": "no_duplicate_digests",
            "pass": true,
            "detail": "no duplicate digests"
          },
          {
            "check": "no_path_like_names",
            "pass": true,
            "detail": "no path-like names"
          }
        ],
        "all_checks_pass": true
      },
      "golden_hash": "06a13f4b29ad6818b73cc67c5b91327ef7cbd963ed34960f287b8c3044a47be9"
    }
  ]
}
