retold 4.0.3 → 4.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/launch.json +29 -0
- package/.claude/settings.local.json +85 -2
- package/CLAUDE.md +4 -2
- package/README.md +24 -2
- package/Retold-Modules-Manifest.json +576 -0
- package/docs/README.md +7 -1
- package/docs/{cover.md → _cover.md} +1 -1
- package/docs/_sidebar.md +30 -2
- package/docs/architecture/architecture.md +7 -4
- package/docs/architecture/dependencies/_generate-graph.js +186 -0
- package/docs/architecture/dependencies/_generate-svg.js +364 -0
- package/docs/architecture/dependencies/in-ecosystem-dependency-graph-generation.md +97 -0
- package/docs/architecture/dependencies/in-ecosystem-dependency-graph.json +3168 -0
- package/docs/architecture/dependencies/in-ecosystem-dependency-graph.md +221 -0
- package/docs/architecture/dependencies/in-ecosystem-dependency-graph.svg +664 -0
- package/docs/architecture/documentation-style-guide.md +65 -0
- package/docs/architecture/example-app-style-guide.md +154 -0
- package/docs/architecture/modules.md +19 -8
- package/docs/architecture/templating/data-access.md +196 -0
- package/docs/architecture/templating/data-formatting.md +350 -0
- package/docs/architecture/templating/data-generation.md +72 -0
- package/docs/architecture/templating/debugging.md +181 -0
- package/docs/architecture/templating/entity.md +99 -0
- package/docs/architecture/templating/iteration.md +170 -0
- package/docs/architecture/templating/jellyfish-deep-dive.md +271 -0
- package/docs/architecture/templating/jellyfish-templates.md +476 -0
- package/docs/architecture/templating/logic.md +185 -0
- package/docs/architecture/templating/ref-breakpoint.md +38 -0
- package/docs/architecture/templating/ref-data.md +51 -0
- package/docs/architecture/templating/ref-dateonlyformat.md +43 -0
- package/docs/architecture/templating/ref-dateonlyymd.md +39 -0
- package/docs/architecture/templating/ref-datetimeformat.md +59 -0
- package/docs/architecture/templating/ref-datetimeymd.md +44 -0
- package/docs/architecture/templating/ref-dejs.md +42 -0
- package/docs/architecture/templating/ref-digits.md +36 -0
- package/docs/architecture/templating/ref-dj.md +50 -0
- package/docs/architecture/templating/ref-dollars.md +36 -0
- package/docs/architecture/templating/ref-dt.md +38 -0
- package/docs/architecture/templating/ref-dvbk.md +46 -0
- package/docs/architecture/templating/ref-dwaf.md +45 -0
- package/docs/architecture/templating/ref-dwtf.md +45 -0
- package/docs/architecture/templating/ref-entity.md +47 -0
- package/docs/architecture/templating/ref-hce.md +29 -0
- package/docs/architecture/templating/ref-hcs.md +38 -0
- package/docs/architecture/templating/ref-join.md +45 -0
- package/docs/architecture/templating/ref-joinunique.md +34 -0
- package/docs/architecture/templating/ref-ls.md +37 -0
- package/docs/architecture/templating/ref-lv.md +38 -0
- package/docs/architecture/templating/ref-lvt.md +33 -0
- package/docs/architecture/templating/ref-ne.md +40 -0
- package/docs/architecture/templating/ref-pascalcaseidentifier.md +41 -0
- package/docs/architecture/templating/ref-pict.md +42 -0
- package/docs/architecture/templating/ref-pluckjoinunique.md +39 -0
- package/docs/architecture/templating/ref-rn.md +35 -0
- package/docs/architecture/templating/ref-rns.md +35 -0
- package/docs/architecture/templating/ref-sbr.md +36 -0
- package/docs/architecture/templating/ref-solve.md +46 -0
- package/docs/architecture/templating/ref-tbda.md +41 -0
- package/docs/architecture/templating/ref-tbr.md +43 -0
- package/docs/architecture/templating/ref-tbt.md +46 -0
- package/docs/architecture/templating/ref-template.md +40 -0
- package/docs/architecture/templating/ref-tfa.md +32 -0
- package/docs/architecture/templating/ref-tfm.md +43 -0
- package/docs/architecture/templating/ref-tif.md +45 -0
- package/docs/architecture/templating/ref-tifabs.md +41 -0
- package/docs/architecture/templating/ref-ts.md +41 -0
- package/docs/architecture/templating/ref-tsfm.md +42 -0
- package/docs/architecture/templating/ref-tswp.md +45 -0
- package/docs/architecture/templating/ref-tvs.md +48 -0
- package/docs/architecture/templating/ref-view.md +40 -0
- package/docs/architecture/templating/ref-vrs.md +39 -0
- package/docs/architecture/templating/solvers.md +153 -0
- package/docs/architecture/templating/template-composition.md +196 -0
- package/docs/architecture/templating/template-expressions.md +217 -0
- package/docs/architecture/templating/views.md +154 -0
- package/docs/contributing.md +50 -0
- package/docs/examples/todolist/todo-list.md +1 -1
- package/docs/modules/apps.md +26 -0
- package/docs/modules/orator.md +0 -7
- package/docs/modules/pict.md +18 -0
- package/docs/modules/utility.md +23 -1
- package/docs/retold-catalog.json +937 -126
- package/docs/retold-keyword-index.json +195296 -116062
- package/docs/testing.md +122 -0
- package/modules/CLAUDE.md +1 -0
- package/modules/Checkout.sh +1 -0
- package/modules/Diff.sh +86 -0
- package/modules/Include-Retold-Module-List.sh +5 -3
- package/modules/Status.sh +1 -0
- package/modules/Update.sh +1 -0
- package/modules/apps/Apps.md +1 -0
- package/modules/utility/Utility.md +1 -0
- package/package.json +12 -11
- package/source/retold-manager/package.json +23 -0
- package/source/retold-manager/retold-manager.js +65 -0
- package/source/retold-manager/source/Retold-Manager-App.js +1532 -0
- package/source/retold-manager/source/Retold-Manager-ModuleCatalog.js +75 -0
- package/source/retold-manager/source/Retold-Manager-ProcessRunner.js +706 -0
- package/source/retold-manager/source/views/PictView-TUI-Checkout.js +45 -0
- package/source/retold-manager/source/views/PictView-TUI-Header.js +41 -0
- package/source/retold-manager/source/views/PictView-TUI-Layout.js +53 -0
- package/source/retold-manager/source/views/PictView-TUI-Status.js +45 -0
- package/source/retold-manager/source/views/PictView-TUI-StatusBar.js +41 -0
- package/source/retold-manager/source/views/PictView-TUI-Update.js +45 -0
- package/docs/retold-building-documentation.md +0 -33
- package/examples/quickstart/layer1/package-lock.json +0 -344
- package/examples/quickstart/layer2/package-lock.json +0 -4468
- package/examples/quickstart/layer3/package-lock.json +0 -1936
- package/examples/quickstart/layer4/package-lock.json +0 -13206
- package/examples/quickstart/layer5/package-lock.json +0 -345
- package/examples/todo-list/cli-client/package-lock.json +0 -418
- package/examples/todo-list/console-client/package-lock.json +0 -426
- package/examples/todo-list/server/package-lock.json +0 -6113
- package/examples/todo-list/web-client/package-lock.json +0 -12030
- package/modules/Retold-Modules.md +0 -24
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Generating the In-Ecosystem Dependency Graph
|
|
2
|
+
|
|
3
|
+
Two Node.js scripts in this folder produce the dependency graph artifacts. They have no dependencies beyond Node.js itself and must be run from the **retold repository root**.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
- Node.js (v16+)
|
|
8
|
+
- All module repositories cloned into `modules/` (the scripts scan `package.json` files via `find`)
|
|
9
|
+
|
|
10
|
+
## Scripts
|
|
11
|
+
|
|
12
|
+
| Script | Input | Output |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| `_generate-graph.js` | All `package.json` files in the repo | `in-ecosystem-dependency-graph.json` |
|
|
15
|
+
| `_generate-svg.js` | `in-ecosystem-dependency-graph.json` | `in-ecosystem-dependency-graph.svg` |
|
|
16
|
+
|
|
17
|
+
The JSON must be generated before the SVG, since the SVG script reads from it.
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
From the retold root directory:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Step 1: Generate the JSON graph from all package.json files
|
|
25
|
+
node docs/architecture/dependencies/_generate-graph.js
|
|
26
|
+
|
|
27
|
+
# Step 2: Generate the SVG from the JSON
|
|
28
|
+
node docs/architecture/dependencies/_generate-svg.js
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Or as a single command:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
node docs/architecture/dependencies/_generate-graph.js && node docs/architecture/dependencies/_generate-svg.js
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Both scripts print summary statistics to stdout on completion.
|
|
38
|
+
|
|
39
|
+
## What Each Script Does
|
|
40
|
+
|
|
41
|
+
### _generate-graph.js
|
|
42
|
+
|
|
43
|
+
1. Finds every `package.json` under the repo root (max depth 4, excluding `node_modules` and `.git`)
|
|
44
|
+
2. Collects all package names to build the set of ecosystem packages
|
|
45
|
+
3. For each package, extracts `dependencies` and `devDependencies` that reference other ecosystem packages
|
|
46
|
+
4. Classifies each package by group (`fable`, `meadow`, `orator`, `pict`, `utility`, `apps`, `root`) and category (`module`, `example`, `root`, `internal`)
|
|
47
|
+
5. Computes graph analytics: in-degree, out-degree, leaf nodes, root nodes, most-depended-upon ranking
|
|
48
|
+
6. Writes the result to `in-ecosystem-dependency-graph.json`
|
|
49
|
+
|
|
50
|
+
### _generate-svg.js
|
|
51
|
+
|
|
52
|
+
1. Reads `in-ecosystem-dependency-graph.json`
|
|
53
|
+
2. Filters to module-category and root-category nodes (excludes examples and internal packages)
|
|
54
|
+
3. Lays out groups in a 2-column grid following the architectural layer order:
|
|
55
|
+
- Row 0: Fable (Core) | Utility (Build/Ops)
|
|
56
|
+
- Row 1: Meadow (Data) — full width
|
|
57
|
+
- Row 2: Orator (API) | Apps (Full Stack)
|
|
58
|
+
- Row 3: Pict (MVC/UI) — full width
|
|
59
|
+
- Row 4: Root — full width
|
|
60
|
+
4. Draws edges as cubic bezier curves (solid for production, dashed for development)
|
|
61
|
+
5. Highlights core modules (10+ dependents) with filled backgrounds
|
|
62
|
+
6. Writes the result to `in-ecosystem-dependency-graph.svg`
|
|
63
|
+
|
|
64
|
+
## Output Files
|
|
65
|
+
|
|
66
|
+
| File | Format | Purpose |
|
|
67
|
+
|---|---|---|
|
|
68
|
+
| `in-ecosystem-dependency-graph.json` | JSON | Machine-readable graph for scripting and automation |
|
|
69
|
+
| `in-ecosystem-dependency-graph.svg` | SVG | Visual dependency graph for documentation |
|
|
70
|
+
| `in-ecosystem-dependency-graph.md` | Markdown | Human-readable analysis with topological layers and update order |
|
|
71
|
+
|
|
72
|
+
The markdown file (`in-ecosystem-dependency-graph.md`) is maintained manually and references the JSON and SVG. After regenerating the data files, review the markdown to see if any statistics or tables need updating.
|
|
73
|
+
|
|
74
|
+
## When to Regenerate
|
|
75
|
+
|
|
76
|
+
Run the scripts again after any of the following:
|
|
77
|
+
|
|
78
|
+
- A new module is added to the ecosystem
|
|
79
|
+
- A module's `dependencies` or `devDependencies` change
|
|
80
|
+
- A module is moved between groups
|
|
81
|
+
- Module versions are bumped
|
|
82
|
+
|
|
83
|
+
## JSON Schema
|
|
84
|
+
|
|
85
|
+
The JSON file has this structure:
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
{
|
|
89
|
+
"metadata": { generated, description, totalModules, totalEcosystemPackages, groups },
|
|
90
|
+
"nodes": [{ name, group, category, version, description, path, ecosystemProductionDependencyCount, ... }],
|
|
91
|
+
"edges": [{ from, to, version, type }],
|
|
92
|
+
"groups": { "fable": ["fable", "fable-log", ...], ... },
|
|
93
|
+
"analytics": { leafNodes, rootNodes, mostDependedUpon, totalProductionEdges, totalDevelopmentEdges }
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Edge `type` is either `"production"` or `"development"`. Node `category` is one of `"module"`, `"example"`, `"root"`, or `"internal"`.
|