{
  "definitions": [
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "core/renderers/chapter.renderer.ts",
          "name": "chapterOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-chapter-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/chapter.renderer.ts",
            "label": "core/renderers/chapter.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/chapter.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-chapter-renderer-ts"
          }
        },
        {
          "file": "core/renderers/chapter.renderer.ts",
          "name": "repositoryResolver",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-chapter-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/chapter.renderer.ts",
            "label": "core/renderers/chapter.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/chapter.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-chapter-renderer-ts"
          }
        }
      ],
      "exported": true,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 26,
      "name": "chapterPathOf",
      "signature": "export const chapterPathOf = function chapterPathOf("
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/renderers/chapter.renderer.ts",
          "name": "chapterPathOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-chapter-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/chapter.renderer.ts",
            "label": "core/renderers/chapter.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/chapter.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-chapter-renderer-ts"
          }
        },
        {
          "file": "core/renderers/chapter.renderer.ts",
          "name": "relativeTo",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-chapter-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/chapter.renderer.ts",
            "label": "core/renderers/chapter.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/chapter.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-chapter-renderer-ts"
          }
        }
      ],
      "callers": [
        {
          "file": "core/renderers/chapter.renderer.ts",
          "name": "renderChapters",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-chapter-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/chapter.renderer.ts",
            "label": "core/renderers/chapter.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/chapter.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-chapter-renderer-ts"
          }
        }
      ],
      "exported": true,
      "flow": "relay",
      "kind": "lexical_declaration",
      "line": 44,
      "name": "repositoryResolver",
      "signature": "export const repositoryResolver = function repositoryResolver("
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "core/renderers/chapter.renderer.ts",
          "name": "repositoryResolver",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-chapter-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/chapter.renderer.ts",
            "label": "core/renderers/chapter.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/chapter.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-chapter-renderer-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 36,
      "name": "relativeTo",
      "signature": "const relativeTo = function relativeTo(from: string, target: string): string {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "core/renderers/chapter.renderer.ts",
          "name": "chapterOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-chapter-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/chapter.renderer.ts",
            "label": "core/renderers/chapter.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/chapter.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-chapter-renderer-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 67,
      "name": "chapterList",
      "signature": "const chapterList = function chapterList(page: PageSources): string {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "core/renderers/chapter.renderer.ts",
          "name": "renderChapters",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-chapter-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/chapter.renderer.ts",
            "label": "core/renderers/chapter.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/chapter.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-chapter-renderer-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 89,
      "name": "folderOfFile",
      "signature": "const folderOfFile = function folderOfFile(file: string): string {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/normalizers/link.normalizer.ts",
          "name": "relinked",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-normalizers-link-normalizer-ts",
            "json": "https://banes-lab.com/json/source/content/core/normalizers/link.normalizer.ts",
            "label": "core/normalizers/link.normalizer.ts",
            "markdown": "https://banes-lab.com/source/content/core/normalizers/link.normalizer.ts.md",
            "ref": "anatomy:file-content-core-normalizers-link-normalizer-ts"
          }
        },
        {
          "file": "core/renderers/chapter.renderer.ts",
          "name": "folderOfFile",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-chapter-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/chapter.renderer.ts",
            "label": "core/renderers/chapter.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/chapter.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-chapter-renderer-ts"
          }
        },
        {
          "file": "core/renderers/chapter.renderer.ts",
          "name": "repositoryResolver",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-chapter-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/chapter.renderer.ts",
            "label": "core/renderers/chapter.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/chapter.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-chapter-renderer-ts"
          }
        },
        {
          "file": "core/renderers/readme.renderer.ts",
          "name": "renderReadme",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-readme-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/readme.renderer.ts",
            "label": "core/renderers/readme.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/readme.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-readme-renderer-ts"
          }
        }
      ],
      "callers": [],
      "exported": true,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 94,
      "name": "renderChapters",
      "signature": "export const renderChapters = function renderChapters(input: ShapeInput, attribution: Attribution): Chapter[] {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/renderers/chapter.renderer.ts",
          "name": "chapterList",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-chapter-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/chapter.renderer.ts",
            "label": "core/renderers/chapter.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/chapter.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-chapter-renderer-ts"
          }
        },
        {
          "file": "core/renderers/chapter.renderer.ts",
          "name": "chapterPathOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-chapter-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/chapter.renderer.ts",
            "label": "core/renderers/chapter.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/chapter.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-chapter-renderer-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 74,
      "name": "chapterOf",
      "signature": "const chapterOf = function chapterOf("
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/normalizers/readme.normalizer.ts",
          "name": "pageFolderOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-normalizers-readme-normalizer-ts",
            "json": "https://banes-lab.com/json/source/content/core/normalizers/readme.normalizer.ts",
            "label": "core/normalizers/readme.normalizer.ts",
            "markdown": "https://banes-lab.com/source/content/core/normalizers/readme.normalizer.ts.md",
            "ref": "anatomy:file-content-core-normalizers-readme-normalizer-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 22,
      "name": "folderOf",
      "signature": "const folderOf = function folderOf(page: PageSources): string {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 31,
      "name": "folder",
      "signature": "const folder = folderOf(page);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 32,
      "name": "file",
      "signature": "const file = source.first && !composed && folder.length === 0 ? README_FILE : tabFileOf(source.tab);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 40,
      "name": "prefix",
      "signature": "const prefix = from + FOLDER_SEPARATOR;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 50,
      "name": "found",
      "signature": "const found = pages.find((candidate) => candidate.page === page);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 51,
      "name": "source",
      "signature": "const source = found?.sources.find((candidate) => (tab === null ? candidate.first : candidate.tab === tab));"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 58,
      "name": "footerOf",
      "signature": "const footerOf = function footerOf(page: PageSources, composed: boolean): string {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 59,
      "name": "root",
      "signature": "const root = folderOf(page).length === 0;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 60,
      "name": "links",
      "signature": "const links = page.sources.map((source) => {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 61,
      "name": "label",
      "signature": "const label = source.first && !composed && root ? README_LABEL : source.label;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 68,
      "name": "items",
      "signature": "const items = page.sources"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 80,
      "name": "parts",
      "signature": "const parts = [attributionLine(attribution), source.markdown.trimEnd()];"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 81,
      "name": "leads",
      "signature": "const leads = source.first && !composed && folderOf(page).length === 0;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 85,
      "name": "body",
      "signature": "const body = parts.join(PARAGRAPH_BREAK) + CHAPTER_SEPARATOR + footerOf(page, composed) + LINE_END;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 90,
      "name": "slash",
      "signature": "const slash = file.lastIndexOf(FOLDER_SEPARATOR);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 95,
      "name": "composed",
      "signature": "const composed = input.readme !== null;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 96,
      "name": "chapters",
      "signature": "const chapters = input.pages.flatMap((page) =>"
    }
  ],
  "document": null,
  "findings": [],
  "generated": false,
  "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-chapter-renderer-ts",
  "language": "typescript",
  "layer": "product",
  "name": "chapter.renderer.ts",
  "path": "core/renderers/chapter.renderer.ts",
  "ref": "anatomy:file-content-core-renderers-chapter-renderer-ts",
  "relations": [
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/content#folder-content-core-renderers",
          "json": "https://banes-lab.com/json/anatomy/content/folder-content-core-renderers",
          "label": "core/renderers",
          "markdown": "https://banes-lab.com/anatomy/content/folder-content-core-renderers.md",
          "ref": "chapter:/anatomy/content#folder-content-core-renderers"
        }
      ],
      "relation": "contained-in"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/content#file-content-core-normalizers-link-normalizer-ts",
          "json": "https://banes-lab.com/json/source/content/core/normalizers/link.normalizer.ts",
          "label": "core/normalizers/link.normalizer.ts",
          "markdown": "https://banes-lab.com/source/content/core/normalizers/link.normalizer.ts.md",
          "ref": "anatomy:file-content-core-normalizers-link-normalizer-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/content#file-content-core-normalizers-readme-normalizer-ts",
          "json": "https://banes-lab.com/json/source/content/core/normalizers/readme.normalizer.ts",
          "label": "core/normalizers/readme.normalizer.ts",
          "markdown": "https://banes-lab.com/source/content/core/normalizers/readme.normalizer.ts.md",
          "ref": "anatomy:file-content-core-normalizers-readme-normalizer-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-readme-renderer-ts",
          "json": "https://banes-lab.com/json/source/content/core/renderers/readme.renderer.ts",
          "label": "core/renderers/readme.renderer.ts",
          "markdown": "https://banes-lab.com/source/content/core/renderers/readme.renderer.ts.md",
          "ref": "anatomy:file-content-core-renderers-readme-renderer-ts"
        }
      ],
      "relation": "uses"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/content#folder-content-core-normalizers",
          "json": "https://banes-lab.com/json/anatomy/content/folder-content-core-normalizers",
          "label": "core/normalizers",
          "markdown": "https://banes-lab.com/anatomy/content/folder-content-core-normalizers.md",
          "ref": "chapter:/anatomy/content#folder-content-core-normalizers"
        },
        {
          "href": "https://banes-lab.com/anatomy/content#folder-content-core-renderers",
          "json": "https://banes-lab.com/json/anatomy/content/folder-content-core-renderers",
          "label": "core/renderers",
          "markdown": "https://banes-lab.com/anatomy/content/folder-content-core-renderers.md",
          "ref": "chapter:/anatomy/content#folder-content-core-renderers"
        }
      ],
      "relation": "linked-from"
    }
  ],
  "slots": {
    "concern": "renderer",
    "subject": "chapter",
    "variant": null
  },
  "stats": {
    "bytes": 4204,
    "callable": 9,
    "definitions": 24,
    "edges": 9,
    "exported": 9,
    "files": 1,
    "findings": {},
    "flows": {
      "leaf": 4,
      "relay": 1,
      "entry": 3,
      "isolated": 16
    },
    "lines": {
      "blank": 9,
      "code": 97,
      "total": 106
    }
  },
  "summary": "97 lines of code and 24 definitions.",
  "text": "https://banes-lab.com/source/content/core/renderers/chapter.renderer.ts.txt",
  "tree": "content",
  "siblings": {
    "next": {
      "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-faq-renderer-ts",
      "json": "https://banes-lab.com/json/source/content/core/renderers/faq.renderer.ts",
      "label": "core/renderers/faq.renderer.ts",
      "markdown": "https://banes-lab.com/source/content/core/renderers/faq.renderer.ts.md",
      "ref": "anatomy:file-content-core-renderers-faq-renderer-ts"
    },
    "previous": {
      "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-baseline-renderer-ts",
      "json": "https://banes-lab.com/json/source/content/core/renderers/baseline.renderer.ts",
      "label": "core/renderers/baseline.renderer.ts",
      "markdown": "https://banes-lab.com/source/content/core/renderers/baseline.renderer.ts.md",
      "ref": "anatomy:file-content-core-renderers-baseline-renderer-ts"
    }
  },
  "up": {
    "href": null,
    "json": "https://banes-lab.com/json/api/source/content/core/renderers",
    "label": "core/renderers",
    "markdown": "https://banes-lab.com/api/source/content/core/renderers.md",
    "ref": "api:source/content/core/renderers"
  }
}
