Skip to content

Project Structure

LavaMoat is a monorepo organized into discrete packages. Below is a directory tree showing directories of interest, and how directories map to packages.

Click a link to view detailed information about each directory or package.

  • Directory.config/ Common TypeScript, ESLint & other configuration
    • …
  • Directory.github/ CI configuration
    • …
  • Directorypackages/ Contains all workspaces
    • Directoryaa/ @lavamoat/aa - Generates canonical package names
      • …
    • Directoryallow-scripts/ @lavamoat/allow-scripts - Allow-list for on-install lifecycle scripts
      • …
    • Directorybrowserify/ lavamoat-browserify - Browserify plugin
      • …
    • Directorycore/ lavamoat-core - Core LavaMoat functionality
      • …
    • Directorylavapack/ @lavamoat/lavapack - Bundle packer for lavamoat-browserify
      • …
    • Directorylavamoat-node/ lavamoat - Node.js LavaMoat runtime adapter (DEPRECATED)
      • …
    • Directorylaverna/ @lavamoat/laverna - Tool to publish multiple workspaces in a monorepo (DEPRECATED)
      • …
    • Directorynode/ @lavamoat/node - Node.js LavaMoat runtime adapter
      • …
    • Directorypreinstall-always-fail/ @lavamoat/preinstall-always-fail - Fails if preinstall lifecycle script is run; helper for @lavamoat/allow-scripts
      • …
    • Directorytofu/ lavamoat-tofu - Common AST-based module analysis for LavaMoat adapters
      • …
    • Directorywebpack/ @lavamoat/webpack - Webpack plugin
      • …
  • Directoryscripts/ Custom scripts
    • …