{
  "schema_version": "1.0.0",
  "scanner": {
    "name": "global-capability-catalog",
    "version": "0.1.0"
  },
  "repo": {
    "id": "github-recent__ph3ar__www_js_terminal",
    "name": "ph3ar__www_js_terminal",
    "path": "/Users/bwm.barbinewarnermichael/Documents/github/repositories/github-recent/ph3ar__www_js_terminal",
    "relative_path": "github-recent/ph3ar__www_js_terminal",
    "remote_url": "git@github.com:ph3ar/www_js_terminal.git",
    "default_branch": "master",
    "current_commit": "b573288b000f9dafccc12eb93bc6187bf54cef94"
  },
  "languages": [
    {
      "language": "JavaScript",
      "files": 16,
      "bytes": 1095695
    },
    {
      "language": "YAML",
      "files": 1,
      "bytes": 85691
    },
    {
      "language": "HTML",
      "files": 2,
      "bytes": 14166
    },
    {
      "language": "Markdown",
      "files": 6,
      "bytes": 10951
    },
    {
      "language": "JSON",
      "files": 6,
      "bytes": 3227
    },
    {
      "language": "Dockerfile",
      "files": 3,
      "bytes": 669
    },
    {
      "language": "Shell",
      "files": 3,
      "bytes": 85
    }
  ],
  "frameworks": [
    {
      "name": "Express",
      "confidence": "high",
      "evidence_paths": [
        "package.json",
        "www_js_terminal/package.json"
      ]
    },
    {
      "name": "Playwright",
      "confidence": "high",
      "evidence_paths": [
        "package.json",
        "www_js_terminal/package.json"
      ]
    }
  ],
  "packages": {
    "package_manager": "pnpm",
    "manifests": [
      {
        "path": "package.json",
        "name": "PH3AR Terminal",
        "version": "1.0.0",
        "scripts": {},
        "dependencies": {
          "body-parser": "^1.16.1",
          "express": "^4.17.3",
          "express-rate-limit": "^8.3.1",
          "node-pty": "^1.1.0",
          "optimist": "^0.6.1",
          "playwright": "^1.59.1",
          "socket.io": "^2.4.0",
          "yalm": "^4.0.2"
        },
        "dev_dependencies": {
          "@playwright/test": "^1.58.2",
          "chai": "^4.5.0",
          "grunt": "^1.5",
          "grunt-contrib-clean": "^0.6",
          "grunt-git": "^0.3",
          "grunt-mkdir": "^0.1",
          "grunt-shell": "^1.1",
          "load-grunt-tasks": "^3.0",
          "mocha": "^11.7.5",
          "proxyquire": "^2.1.3",
          "sinon": "^21.0.3",
          "supertest": "^7.2.2"
        }
      },
      {
        "path": "www_js_terminal/package.json",
        "name": "PH3AR Terminal",
        "version": "1.0.0",
        "scripts": {},
        "dependencies": {
          "body-parser": "^1.16.1",
          "express": "^4.14.1",
          "optimist": "^0.6.1",
          "pty.js": "^0.3.1",
          "socket.io": "^2.4.0",
          "yalm": "^4.0.2"
        },
        "dev_dependencies": {
          "load-grunt-tasks": "^3.0",
          "grunt": "^1.5",
          "grunt-shell": "^1.1",
          "grunt-mkdir": "^0.1",
          "grunt-git": "^0.3",
          "grunt-contrib-clean": "^0.6"
        }
      }
    ]
  },
  "routes": {
    "api_routes": [],
    "app_routes": []
  },
  "components": [],
  "data_models": [],
  "database": {
    "databases": [],
    "schemas": [],
    "migrations": []
  },
  "tests": [
    {
      "name": "test-ux.js",
      "kind": "unit-or-integration",
      "source_path": "test-ux.js"
    },
    {
      "name": "app.test.js",
      "kind": "unit-or-integration",
      "source_path": "test/app.test.js"
    },
    {
      "name": "frontend.spec.js",
      "kind": "unit-or-integration",
      "source_path": "test/frontend.spec.js"
    }
  ],
  "ci": {
    "workflows": []
  },
  "containers": {
    "dockerfiles": [
      {
        "path": "Dockerfile"
      },
      {
        "path": "Dockerfile.arm"
      },
      {
        "path": "www_js_terminal/Dockerfile"
      },
      {
        "path": "www_js_terminal/Dockerfile.arm"
      },
      {
        "path": "www_js_terminal/www_js_terminal/Dockerfile"
      },
      {
        "path": "www_js_terminal/www_js_terminal/Dockerfile.arm"
      }
    ],
    "compose_files": []
  },
  "env": {
    "example_files": [
      {
        "path": ".env.example"
      }
    ],
    "variables": []
  },
  "configs": [
    {
      "path": "package.json"
    },
    {
      "path": "vercel.json"
    },
    {
      "path": "www_js_terminal/package.json"
    }
  ],
  "docs": {
    "readme_paths": [
      {
        "path": "README.md"
      },
      {
        "path": "www_js_terminal/README.md"
      },
      {
        "path": "www_js_terminal/www_js_terminal/README.md"
      }
    ],
    "doc_paths": [],
    "llms_context_paths": []
  },
  "discovery_files": {
    "openapi": [],
    "mcp": [],
    "llms": [],
    "sitemaps": [],
    "feeds": [],
    "well_known": [],
    "robots": [],
    "manifests": []
  },
  "integrations": [],
  "license": {
    "spdx": "MIT",
    "paths": [
      {
        "path": "LICENSE"
      },
      {
        "path": "www_js_terminal/LICENSE"
      },
      {
        "path": "www_js_terminal/www_js_terminal/LICENSE"
      }
    ]
  },
  "comments": [
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 350,
      "text": "deprecated: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)"
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 602,
      "text": "deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by cont"
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 607,
      "text": "deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by cont"
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 725,
      "text": "deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful."
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 993,
      "text": "deprecated: This package is no longer supported."
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 1157,
      "text": "deprecated: Rimraf versions prior to v4 are no longer supported"
    },
    {
      "kind": "unsafe",
      "source_path": "public/hterm_all.js",
      "line": 4239,
      "text": "* This uses a dirty hack.  It throws an exception, catches it, and examines"
    },
    {
      "kind": "todo",
      "source_path": "public/hterm_all.js",
      "line": 4292,
      "text": "// TODO(davidben): When the string encoding API is implemented,"
    },
    {
      "kind": "todo",
      "source_path": "public/hterm_all.js",
      "line": 4402,
      "text": "* TODO(davidben): Do we need a stateful version of this that can"
    },
    {
      "kind": "todo",
      "source_path": "public/hterm_all.js",
      "line": 4842,
      "text": "// TODO: emoji characters usually require space for wide characters although"
    },
    {
      "kind": "todo",
      "source_path": "public/hterm_all.js",
      "line": 5011,
      "text": "// TODO(rginda): This is where we end up for a v1 app's background page."
    },
    {
      "kind": "todo",
      "source_path": "public/hterm_all.js",
      "line": 5932,
      "text": "// TODO(rginda): Character compositions will need some black magic."
    },
    {
      "kind": "todo",
      "source_path": "public/hterm_all.js",
      "line": 6051,
      "text": "* TODO(rginda): For now this bindings code is only used for user overrides."
    },
    {
      "kind": "todo",
      "source_path": "public/hterm_all.js",
      "line": 7223,
      "text": "* TODO(rginda): Variable interpolation."
    },
    {
      "kind": "unsafe",
      "source_path": "public/hterm_all.js",
      "line": 7623,
      "text": "'Select an AltGr detection hack^Wheuristic.\\n' +"
    },
    {
      "kind": "unsafe",
      "source_path": "www_js_terminal/public/hterm_all.js",
      "line": 4239,
      "text": "* This uses a dirty hack.  It throws an exception, catches it, and examines"
    },
    {
      "kind": "todo",
      "source_path": "www_js_terminal/public/hterm_all.js",
      "line": 4292,
      "text": "// TODO(davidben): When the string encoding API is implemented,"
    },
    {
      "kind": "todo",
      "source_path": "www_js_terminal/public/hterm_all.js",
      "line": 4402,
      "text": "* TODO(davidben): Do we need a stateful version of this that can"
    },
    {
      "kind": "todo",
      "source_path": "www_js_terminal/public/hterm_all.js",
      "line": 4842,
      "text": "// TODO: emoji characters usually require space for wide characters although"
    },
    {
      "kind": "todo",
      "source_path": "www_js_terminal/public/hterm_all.js",
      "line": 5011,
      "text": "// TODO(rginda): This is where we end up for a v1 app's background page."
    },
    {
      "kind": "todo",
      "source_path": "www_js_terminal/public/hterm_all.js",
      "line": 5932,
      "text": "// TODO(rginda): Character compositions will need some black magic."
    },
    {
      "kind": "todo",
      "source_path": "www_js_terminal/public/hterm_all.js",
      "line": 6051,
      "text": "* TODO(rginda): For now this bindings code is only used for user overrides."
    },
    {
      "kind": "todo",
      "source_path": "www_js_terminal/public/hterm_all.js",
      "line": 7223,
      "text": "* TODO(rginda): Variable interpolation."
    },
    {
      "kind": "unsafe",
      "source_path": "www_js_terminal/public/hterm_all.js",
      "line": 7623,
      "text": "'Select an AltGr detection hack^Wheuristic.\\n' +"
    }
  ],
  "security": {
    "secret_risks": [],
    "unsafe_patterns": [
      {
        "name": "child-process-exec",
        "confidence": "medium",
        "evidence_paths": [
          "public/hterm_all.js",
          "www_js_terminal/public/hterm_all.js"
        ]
      }
    ],
    "sensitive_data_indicators": [
      {
        "name": "card",
        "confidence": "medium",
        "evidence_paths": [
          "public/hterm_all.js",
          "www_js_terminal/public/hterm_all.js"
        ]
      },
      {
        "name": "location",
        "confidence": "medium",
        "evidence_paths": [
          "public/hterm_all.js",
          "public/jutty.js",
          "README.md",
          "www_js_terminal/public/hterm_all.js",
          "www_js_terminal/public/jutty.js",
          "www_js_terminal/www_js_terminal/README.md"
        ]
      },
      {
        "name": "pii",
        "confidence": "medium",
        "evidence_paths": [
          "pnpm-lock.yaml"
        ]
      },
      {
        "name": "token",
        "confidence": "medium",
        "evidence_paths": [
          "public/hterm_all.js",
          "www_js_terminal/public/hterm_all.js"
        ]
      }
    ]
  },
  "generated_at": "2026-05-16T16:44:32.029Z"
}
