{
  "definitions": [
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "core/steps/probe.step.ts",
          "name": "behaviors",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "behaviors",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "behaviors",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "behaviors",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "behaviors",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "behaviors",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "behaviors",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "behaviors",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "behaviors",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "behaviors",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "behaviors",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "behaviors",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "queryProbes",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 74,
      "name": "expectation",
      "signature": "const expectation = function expectation("
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "runtime/entrypoints/deployment.entrypoint.ts",
          "name": "release",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-runtime-entrypoints-deployment-entrypoint-ts",
            "json": "https://banes-lab.com/json/source/deploy/runtime/entrypoints/deployment.entrypoint.ts",
            "label": "runtime/entrypoints/deployment.entrypoint.ts",
            "markdown": "https://banes-lab.com/source/deploy/runtime/entrypoints/deployment.entrypoint.ts.md",
            "ref": "anatomy:file-deploy-runtime-entrypoints-deployment-entrypoint-ts"
          }
        },
        {
          "file": "runtime/entrypoints/nginx.entrypoint.ts",
          "name": "push",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-runtime-entrypoints-nginx-entrypoint-ts",
            "json": "https://banes-lab.com/json/source/deploy/runtime/entrypoints/nginx.entrypoint.ts",
            "label": "runtime/entrypoints/nginx.entrypoint.ts",
            "markdown": "https://banes-lab.com/source/deploy/runtime/entrypoints/nginx.entrypoint.ts.md",
            "ref": "anatomy:file-deploy-runtime-entrypoints-nginx-entrypoint-ts"
          }
        }
      ],
      "exported": true,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 170,
      "name": "probeSite",
      "signature": "export const probeSite = async function probeSite("
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/steps/probe.step.ts",
          "name": "answer",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        }
      ],
      "callers": [
        {
          "file": "core/steps/probe.step.ts",
          "name": "behaviorProblem",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        }
      ],
      "exported": false,
      "flow": "relay",
      "kind": "lexical_declaration",
      "line": 66,
      "name": "mismatch",
      "signature": "const mismatch = function mismatch(expected: ProbeExpectation, response: ProbeResponse): string | null {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "core/steps/probe.step.ts",
          "name": "mismatch",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 62,
      "name": "answer",
      "signature": "const answer = function answer(status: number, type: string): string {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/steps/probe.step.ts",
          "name": "expectation",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "expectation",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "expectation",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "expectation",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "expectation",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "expectation",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "expectation",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "expectation",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "expectation",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "expectation",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "expectation",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        },
        {
          "file": "core/steps/probe.step.ts",
          "name": "expectation",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 83,
      "name": "behaviors",
      "signature": "const behaviors = function behaviors(site: string): readonly ProbeExpectation[] {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/steps/probe.step.ts",
          "name": "expectation",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 117,
      "name": "queryProbes",
      "signature": "const queryProbes = function queryProbes("
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/steps/probe.step.ts",
          "name": "mismatch",
          "source": {
            "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
            "json": "https://banes-lab.com/json/source/deploy/core/steps/probe.step.ts",
            "label": "core/steps/probe.step.ts",
            "markdown": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.md",
            "ref": "anatomy:file-deploy-core-steps-probe-step-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 163,
      "name": "behaviorProblem",
      "signature": "const behaviorProblem = async function behaviorProblem("
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 37,
      "name": "JSON_TYPE",
      "signature": "const JSON_TYPE = \"application/json\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 38,
      "name": "MARKDOWN_TYPE",
      "signature": "const MARKDOWN_TYPE = \"text/markdown\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 39,
      "name": "TEXT_TYPE",
      "signature": "const TEXT_TYPE = \"text/plain\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 40,
      "name": "ANY_TYPE",
      "signature": "const ANY_TYPE = \"\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 41,
      "name": "GET",
      "signature": "const GET = \"GET\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 42,
      "name": "HEAD",
      "signature": "const HEAD = \"HEAD\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 43,
      "name": "OPTIONS",
      "signature": "const OPTIONS = \"OPTIONS\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 44,
      "name": "OK",
      "signature": "const OK = 200;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 45,
      "name": "NO_CONTENT",
      "signature": "const NO_CONTENT = 204;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 46,
      "name": "NOT_FOUND",
      "signature": "const NOT_FOUND = 404;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 47,
      "name": "BAD_REQUEST",
      "signature": "const BAD_REQUEST = 400;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 48,
      "name": "QUERY_PROBE",
      "signature": "const QUERY_PROBE = \"?ref=api:route\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 49,
      "name": "STATIC_QUERY_PROBE",
      "signature": "const STATIC_QUERY_PROBE = \"?probe=1\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 50,
      "name": "MISSING_SEGMENT",
      "signature": "const MISSING_SEGMENT = \"no-such-address\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 51,
      "name": "MARKDOWN_SUFFIX",
      "signature": "const MARKDOWN_SUFFIX = \".md\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 52,
      "name": "TEXT_SUFFIX",
      "signature": "const TEXT_SUFFIX = \".txt\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 53,
      "name": "JSON_SUFFIX",
      "signature": "const JSON_SUFFIX = \".json\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 54,
      "name": "SPACE",
      "signature": "const SPACE = \" \";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 55,
      "name": "STOP",
      "signature": "const STOP = \".\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 56,
      "name": "QUERY_MARK",
      "signature": "const QUERY_MARK = \"?\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 57,
      "name": "REF_SEPARATOR",
      "signature": "const REF_SEPARATOR = \":\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 58,
      "name": "WILDCARD",
      "signature": "const WILDCARD = \"*\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 59,
      "name": "LETTERS",
      "signature": "const LETTERS = \"abcdefghijklmnopqrstuvwxyz\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 60,
      "name": "ENCODING",
      "signature": "const ENCODING = \"utf8\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 84,
      "name": "root",
      "signature": "const root = siteIndex();"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 85,
      "name": "route",
      "signature": "const route = (root.markdown ?? MARKDOWN_SUFFIX).slice(0, -MARKDOWN_SUFFIX.length);"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 102,
      "name": "groupOf",
      "signature": "const groupOf = function groupOf(ref: string): string {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 106,
      "name": "firstWord",
      "signature": "const firstWord = function firstWord(title: string): string {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 107,
      "name": "word",
      "signature": "let word = \"\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 121,
      "name": "record",
      "signature": "const record = rows.find((row) => row.ref !== null && COLLECTION_TITLES.has(groupOf(row.ref)));"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 125,
      "name": "group",
      "signature": "const group = groupOf(record.ref);"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 139,
      "name": "parsed",
      "signature": "const parsed = function parsed(response: ProbeResponse): unknown {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 143,
      "name": "isStale",
      "signature": "const isStale = function isStale(row: CatalogRow, response: ProbeResponse): boolean {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 150,
      "name": "rowProblems",
      "signature": "const rowProblems = async function rowProblems(row: CatalogRow, fetcher: ProbeFetcher): Promise<readonly string[]> {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 151,
      "name": "json",
      "signature": "const json = await fetcher(row.json, GET);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 152,
      "name": "markdown",
      "signature": "const markdown = row.markdown === null ? null : await fetcher(row.markdown, HEAD);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 153,
      "name": "found",
      "signature": "const found = ["
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 177,
      "name": "log",
      "signature": "const log = errorLogOf(readFileSync(absolutePath(\"app.nginxSite\"), ENCODING));"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 178,
      "name": "offset",
      "signature": "const offset = await logSize(shell, log);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 179,
      "name": "rootAddress",
      "signature": "const rootAddress = site + siteIndex().json;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 180,
      "name": "idsAddress",
      "signature": "const idsAddress = site + idsIndex().json;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 181,
      "name": "[root, ids]",
      "signature": "const [root, ids] = await Promise.all([fetcher(rootAddress, GET), fetcher(idsAddress, GET)]);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 182,
      "name": "shards",
      "signature": "const shards = await Promise.all(shardAddresses(parsed(ids)).map(async (address) => fetcher(address, GET)));"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 183,
      "name": "rows",
      "signature": "const rows = ["
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 186,
      "name": "row",
      "signature": "const row = shardRow(parsed(shard));"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 190,
      "name": "queries",
      "signature": "const queries = queryProbes(site, rows);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 191,
      "name": "heads",
      "signature": "const heads = ["
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 199,
      "name": "rowFindings",
      "signature": "const rowFindings = (await Promise.all(rows.map(async (row) => rowProblems(row, fetcher)))).flat();"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 200,
      "name": "logged",
      "signature": "const logged = await loggedSince(shell, log, offset);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 201,
      "name": "problems",
      "signature": "const problems = ["
    }
  ],
  "document": null,
  "findings": [],
  "generated": false,
  "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-probe-step-ts",
  "language": "typescript",
  "layer": "application",
  "name": "probe.step.ts",
  "path": "core/steps/probe.step.ts",
  "ref": "anatomy:file-deploy-core-steps-probe-step-ts",
  "relations": [
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/deploy#folder-deploy-core-steps",
          "json": "https://banes-lab.com/json/anatomy/deploy/folder-deploy-core-steps",
          "label": "core/steps",
          "markdown": "https://banes-lab.com/anatomy/deploy/folder-deploy-core-steps.md",
          "ref": "chapter:/anatomy/deploy#folder-deploy-core-steps"
        }
      ],
      "relation": "contained-in"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/deploy#file-deploy-runtime-entrypoints-deployment-entrypoint-ts",
          "json": "https://banes-lab.com/json/source/deploy/runtime/entrypoints/deployment.entrypoint.ts",
          "label": "runtime/entrypoints/deployment.entrypoint.ts",
          "markdown": "https://banes-lab.com/source/deploy/runtime/entrypoints/deployment.entrypoint.ts.md",
          "ref": "anatomy:file-deploy-runtime-entrypoints-deployment-entrypoint-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/deploy#file-deploy-runtime-entrypoints-nginx-entrypoint-ts",
          "json": "https://banes-lab.com/json/source/deploy/runtime/entrypoints/nginx.entrypoint.ts",
          "label": "runtime/entrypoints/nginx.entrypoint.ts",
          "markdown": "https://banes-lab.com/source/deploy/runtime/entrypoints/nginx.entrypoint.ts.md",
          "ref": "anatomy:file-deploy-runtime-entrypoints-nginx-entrypoint-ts"
        }
      ],
      "relation": "used-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/deploy#folder-deploy-core-steps",
          "json": "https://banes-lab.com/json/anatomy/deploy/folder-deploy-core-steps",
          "label": "core/steps",
          "markdown": "https://banes-lab.com/anatomy/deploy/folder-deploy-core-steps.md",
          "ref": "chapter:/anatomy/deploy#folder-deploy-core-steps"
        },
        {
          "href": "https://banes-lab.com/anatomy/deploy#folder-deploy-runtime-entrypoints",
          "json": "https://banes-lab.com/json/anatomy/deploy/folder-deploy-runtime-entrypoints",
          "label": "runtime/entrypoints",
          "markdown": "https://banes-lab.com/anatomy/deploy/folder-deploy-runtime-entrypoints.md",
          "ref": "chapter:/anatomy/deploy#folder-deploy-runtime-entrypoints"
        }
      ],
      "relation": "linked-from"
    }
  ],
  "slots": {
    "concern": "step",
    "subject": "probe",
    "variant": null
  },
  "stats": {
    "bytes": 8163,
    "callable": 12,
    "definitions": 57,
    "edges": 15,
    "exported": 14,
    "files": 1,
    "findings": {},
    "flows": {
      "leaf": 3,
      "relay": 1,
      "entry": 3,
      "isolated": 50
    },
    "lines": {
      "blank": 13,
      "code": 197,
      "total": 210
    }
  },
  "summary": "197 lines of code and 57 definitions.",
  "text": "https://banes-lab.com/source/deploy/core/steps/probe.step.ts.txt",
  "tree": "deploy",
  "siblings": {
    "next": {
      "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-recovery-step-ts",
      "json": "https://banes-lab.com/json/source/deploy/core/steps/recovery.step.ts",
      "label": "core/steps/recovery.step.ts",
      "markdown": "https://banes-lab.com/source/deploy/core/steps/recovery.step.ts.md",
      "ref": "anatomy:file-deploy-core-steps-recovery-step-ts"
    },
    "previous": {
      "href": "https://banes-lab.com/anatomy/deploy#file-deploy-core-steps-nginx-step-ts",
      "json": "https://banes-lab.com/json/source/deploy/core/steps/nginx.step.ts",
      "label": "core/steps/nginx.step.ts",
      "markdown": "https://banes-lab.com/source/deploy/core/steps/nginx.step.ts.md",
      "ref": "anatomy:file-deploy-core-steps-nginx-step-ts"
    }
  },
  "up": {
    "href": null,
    "json": "https://banes-lab.com/json/api/source/deploy/core/steps",
    "label": "core/steps",
    "markdown": "https://banes-lab.com/api/source/deploy/core/steps.md",
    "ref": "api:source/deploy/core/steps"
  }
}
