# omrilotan/mono architecture

> Architecture diagram of the GitHub repository omrilotan/mono, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/omrilotan/mono
- Repository: https://github.com/omrilotan/mono

## Overview

Mono is a collection of independently usable JavaScript packages, not one application with a shared user-to-result workflow. Users call a package API or run its command; that package performs its specific utility, reporting, configuration, or integration task and returns a value, writes files, or produces output. The graph groups the documented capabilities by function. Internal edges are limited to relationships visible in sampled source or the source index; most packages have no demonstrated runtime connection to one another.

Main entry points: [`packages/percent/index.js`](https://github.com/omrilotan/mono/blob/master/packages/percent/index.js) (Percentage calculation), [`packages/chunkalyse/index.js`](https://github.com/omrilotan/mono/blob/master/packages/chunkalyse/index.js) (Webpack stats summary), [`packages/perfrep/index.js`](https://github.com/omrilotan/mono/blob/master/packages/perfrep/index.js) (Host performance report)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_utilities["Data utilities"]
  node_await_reduce["Promise reduction<br/>[index.js]"]
  node_bound_call["Bound calls<br/>[index.js]"]
  node_count["Counter<br/>[index.js]"]
  node_doamrn["Random argument<br/>[index.js]"]
  node_double_digit["Digit padding<br/>[index.js]"]
  node_flatten["Array flattening<br/>[index.js]"]
  node_jsoncopy["JSON cloning<br/>[index.js]"]
  node_key_value_join["Key-value joining<br/>[index.js]"]
  node_levelheaded["Operational levels<br/>[index.js]"]
  node_percent["Percentage calculation<br/>[index.js]"]
  node_rmext["Extension removal<br/>[index.js]"]
  node_sample_size["Sample-size decision<br/>[index.js]"]
  node_sleep["Runtime sleep<br/>[index.js]"]
  node_sortby["Array sorting<br/>[index.js]"]
  node_string_wrap["String wrapping<br/>[index.js]"]
  node_module_scope["Module scope values<br/>[index.mjs]"]
  node_transparent_pixel["Transparent pixel<br/>[index.js]"]
end

subgraph group_reporting["Reporting and output"]
  node_chunkalyse["Webpack stats summary<br/>[index.js]"]
  node_perfrep["Host performance report<br/>[index.js]"]
  node_bench_press["Operation benchmarks<br/>[index.js]"]
  node_oh_my_gauge["Gauge and benchmark<br/>[index.js]"]
  node_markdownise["Markdown rendering<br/>[index.js]"]
  node_markt["Markdown page generation<br/>[index.js]"]
  node_the_moon["Moon phase display<br/>[index.js]"]
end

subgraph group_tools["Developer tools"]
  node_babelrc["Babel configuration<br/>[index.js]"]
  node_create_npx["NPX wrapper<br/>[bin.js]"]
  node_dirdo["Nested-directory commands<br/>[package.json]"]
  node_edit_package["Package file editing<br/>[index.js]"]
  node_dangerfile["Dangerfile setup<br/>[index.js]"]
  node_handle_rejection["Rejection handling<br/>[index.js]"]
  node_index_require["Library index generation<br/>[index.js]"]
  node_run_all["Parallel script runner<br/>[index.js]"]
  node_setup["Node environment setup<br/>[bin.js]"]
  node_twinsies["File watching and copying<br/>[index.js]"]
end

subgraph group_integrations["External integrations"]
end

node_chunkalyse -->|"calculates percentages"| node_percent
node_perfrep -->|"calculates percentages"| node_percent

click node_await_reduce "https://github.com/omrilotan/mono/blob/master/packages/await-reduce/index.js"
click node_bound_call "https://github.com/omrilotan/mono/blob/master/packages/bound-call/index.js"
click node_count "https://github.com/omrilotan/mono/blob/master/packages/count/index.js"
click node_doamrn "https://github.com/omrilotan/mono/blob/master/packages/doamrn/index.js"
click node_double_digit "https://github.com/omrilotan/mono/blob/master/packages/double-digit/index.js"
click node_flatten "https://github.com/omrilotan/mono/blob/master/packages/flatten/index.js"
click node_jsoncopy "https://github.com/omrilotan/mono/blob/master/packages/jsoncopy/index.js"
click node_key_value_join "https://github.com/omrilotan/mono/blob/master/packages/key-value-join/index.js"
click node_levelheaded "https://github.com/omrilotan/mono/blob/master/packages/levelheaded/index.js"
click node_percent "https://github.com/omrilotan/mono/blob/master/packages/percent/index.js"
click node_rmext "https://github.com/omrilotan/mono/blob/master/packages/rmext/index.js"
click node_sample_size "https://github.com/omrilotan/mono/blob/master/packages/sample-size/index.js"
click node_sleep "https://github.com/omrilotan/mono/blob/master/packages/sleep/index.js"
click node_sortby "https://github.com/omrilotan/mono/blob/master/packages/sortby/index.js"
click node_string_wrap "https://github.com/omrilotan/mono/blob/master/packages/string-wrap/index.js"
click node_module_scope "https://github.com/omrilotan/mono/blob/master/packages/module-scope/index.mjs"
click node_transparent_pixel "https://github.com/omrilotan/mono/blob/master/packages/transparent-pixel/index.js"
click node_chunkalyse "https://github.com/omrilotan/mono/blob/master/packages/chunkalyse/index.js"
click node_perfrep "https://github.com/omrilotan/mono/blob/master/packages/perfrep/index.js"
click node_bench_press "https://github.com/omrilotan/mono/blob/master/packages/bench-press/index.js"
click node_oh_my_gauge "https://github.com/omrilotan/mono/blob/master/packages/oh-my-gauge/index.js"
click node_markdownise "https://github.com/omrilotan/mono/blob/master/packages/markdownise/index.js"
click node_markt "https://github.com/omrilotan/mono/blob/master/packages/markt/index.js"
click node_the_moon "https://github.com/omrilotan/mono/blob/master/packages/the-moon/index.js"
click node_babelrc "https://github.com/omrilotan/mono/blob/master/packages/babelrc/index.js"
click node_create_npx "https://github.com/omrilotan/mono/blob/master/packages/create-npx/bin.js"
click node_dirdo "https://github.com/omrilotan/mono/blob/master/packages/dirdo/package.json"
click node_edit_package "https://github.com/omrilotan/mono/blob/master/packages/edit-package/index.js"
click node_dangerfile "https://github.com/omrilotan/mono/blob/master/packages/dangerfile/index.js"
click node_handle_rejection "https://github.com/omrilotan/mono/blob/master/packages/handle-rejection/index.js"
click node_index_require "https://github.com/omrilotan/mono/blob/master/packages/index-require/index.js"
click node_run_all "https://github.com/omrilotan/mono/blob/master/packages/run-all-the-things/index.js"
click node_setup "https://github.com/omrilotan/mono/blob/master/packages/setup/bin.js"
click node_twinsies "https://github.com/omrilotan/mono/blob/master/packages/twinsies/index.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_await_reduce,node_bound_call,node_count,node_doamrn,node_double_digit,node_flatten,node_jsoncopy,node_key_value_join,node_levelheaded,node_percent,node_rmext,node_sample_size,node_sleep,node_sortby,node_string_wrap,node_module_scope,node_transparent_pixel toneBlue
class node_chunkalyse,node_perfrep,node_bench_press,node_oh_my_gauge,node_markdownise,node_markt,node_the_moon toneAmber
class node_babelrc,node_create_npx,node_dirdo,node_edit_package,node_dangerfile,node_handle_rejection,node_index_require,node_run_all,node_setup,node_twinsies toneMint
```

## Components

### Data utilities

- [Promise reduction](https://github.com/omrilotan/mono/blob/master/packages/await-reduce/index.js): `packages/await-reduce/index.js`
- [Bound calls](https://github.com/omrilotan/mono/blob/master/packages/bound-call/index.js): `packages/bound-call/index.js`
- [Counter](https://github.com/omrilotan/mono/blob/master/packages/count/index.js): `packages/count/index.js`
- [Random argument](https://github.com/omrilotan/mono/blob/master/packages/doamrn/index.js): `packages/doamrn/index.js`
- [Digit padding](https://github.com/omrilotan/mono/blob/master/packages/double-digit/index.js): `packages/double-digit/index.js`
- [Array flattening](https://github.com/omrilotan/mono/blob/master/packages/flatten/index.js): `packages/flatten/index.js`
- [JSON cloning](https://github.com/omrilotan/mono/blob/master/packages/jsoncopy/index.js): `packages/jsoncopy/index.js`
- [Key-value joining](https://github.com/omrilotan/mono/blob/master/packages/key-value-join/index.js): `packages/key-value-join/index.js`
- [Operational levels](https://github.com/omrilotan/mono/blob/master/packages/levelheaded/index.js): `packages/levelheaded/index.js`
- [Percentage calculation](https://github.com/omrilotan/mono/blob/master/packages/percent/index.js): `packages/percent/index.js`
- [Extension removal](https://github.com/omrilotan/mono/blob/master/packages/rmext/index.js): `packages/rmext/index.js`
- [Sample-size decision](https://github.com/omrilotan/mono/blob/master/packages/sample-size/index.js): `packages/sample-size/index.js`
- [Runtime sleep](https://github.com/omrilotan/mono/blob/master/packages/sleep/index.js): `packages/sleep/index.js`
- [Array sorting](https://github.com/omrilotan/mono/blob/master/packages/sortby/index.js): `packages/sortby/index.js`
- [String wrapping](https://github.com/omrilotan/mono/blob/master/packages/string-wrap/index.js): `packages/string-wrap/index.js`
- [Module scope values](https://github.com/omrilotan/mono/blob/master/packages/module-scope/index.mjs): `packages/module-scope/index.mjs`
- [Transparent pixel](https://github.com/omrilotan/mono/blob/master/packages/transparent-pixel/index.js): `packages/transparent-pixel/index.js`

### Reporting and output

- [Webpack stats summary](https://github.com/omrilotan/mono/blob/master/packages/chunkalyse/index.js): `packages/chunkalyse/index.js`
- [Host performance report](https://github.com/omrilotan/mono/blob/master/packages/perfrep/index.js): `packages/perfrep/index.js`
- [Operation benchmarks](https://github.com/omrilotan/mono/blob/master/packages/bench-press/index.js): `packages/bench-press/index.js`
- [Gauge and benchmark](https://github.com/omrilotan/mono/blob/master/packages/oh-my-gauge/index.js): `packages/oh-my-gauge/index.js`
- [Markdown rendering](https://github.com/omrilotan/mono/blob/master/packages/markdownise/index.js): `packages/markdownise/index.js`
- [Markdown page generation](https://github.com/omrilotan/mono/blob/master/packages/markt/index.js): `packages/markt/index.js`
- [Moon phase display](https://github.com/omrilotan/mono/blob/master/packages/the-moon/index.js): `packages/the-moon/index.js`

### Developer tools

- [Babel configuration](https://github.com/omrilotan/mono/blob/master/packages/babelrc/index.js): `packages/babelrc/index.js`
- [NPX wrapper](https://github.com/omrilotan/mono/blob/master/packages/create-npx/bin.js): `packages/create-npx/bin.js`
- [Nested-directory commands](https://github.com/omrilotan/mono/blob/master/packages/dirdo/package.json): `packages/dirdo/package.json`
- [Package file editing](https://github.com/omrilotan/mono/blob/master/packages/edit-package/index.js): `packages/edit-package/index.js`
- [Dangerfile setup](https://github.com/omrilotan/mono/blob/master/packages/dangerfile/index.js): `packages/dangerfile/index.js`
- [Rejection handling](https://github.com/omrilotan/mono/blob/master/packages/handle-rejection/index.js): `packages/handle-rejection/index.js`
- [Library index generation](https://github.com/omrilotan/mono/blob/master/packages/index-require/index.js): `packages/index-require/index.js`
- [Parallel script runner](https://github.com/omrilotan/mono/blob/master/packages/run-all-the-things/index.js): `packages/run-all-the-things/index.js`
- [Node environment setup](https://github.com/omrilotan/mono/blob/master/packages/setup/bin.js): `packages/setup/bin.js`
- [File watching and copying](https://github.com/omrilotan/mono/blob/master/packages/twinsies/index.js): `packages/twinsies/index.js`

## Connections

- Webpack stats summary → Percentage calculation: calculates percentages (evidence: `packages/chunkalyse/index.js`)
- Host performance report → Percentage calculation: calculates percentages (evidence: `packages/perfrep/index.js`)
