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.
Files changed (115) hide show
  1. package/.claude/launch.json +29 -0
  2. package/.claude/settings.local.json +85 -2
  3. package/CLAUDE.md +4 -2
  4. package/README.md +24 -2
  5. package/Retold-Modules-Manifest.json +576 -0
  6. package/docs/README.md +7 -1
  7. package/docs/{cover.md → _cover.md} +1 -1
  8. package/docs/_sidebar.md +30 -2
  9. package/docs/architecture/architecture.md +7 -4
  10. package/docs/architecture/dependencies/_generate-graph.js +186 -0
  11. package/docs/architecture/dependencies/_generate-svg.js +364 -0
  12. package/docs/architecture/dependencies/in-ecosystem-dependency-graph-generation.md +97 -0
  13. package/docs/architecture/dependencies/in-ecosystem-dependency-graph.json +3168 -0
  14. package/docs/architecture/dependencies/in-ecosystem-dependency-graph.md +221 -0
  15. package/docs/architecture/dependencies/in-ecosystem-dependency-graph.svg +664 -0
  16. package/docs/architecture/documentation-style-guide.md +65 -0
  17. package/docs/architecture/example-app-style-guide.md +154 -0
  18. package/docs/architecture/modules.md +19 -8
  19. package/docs/architecture/templating/data-access.md +196 -0
  20. package/docs/architecture/templating/data-formatting.md +350 -0
  21. package/docs/architecture/templating/data-generation.md +72 -0
  22. package/docs/architecture/templating/debugging.md +181 -0
  23. package/docs/architecture/templating/entity.md +99 -0
  24. package/docs/architecture/templating/iteration.md +170 -0
  25. package/docs/architecture/templating/jellyfish-deep-dive.md +271 -0
  26. package/docs/architecture/templating/jellyfish-templates.md +476 -0
  27. package/docs/architecture/templating/logic.md +185 -0
  28. package/docs/architecture/templating/ref-breakpoint.md +38 -0
  29. package/docs/architecture/templating/ref-data.md +51 -0
  30. package/docs/architecture/templating/ref-dateonlyformat.md +43 -0
  31. package/docs/architecture/templating/ref-dateonlyymd.md +39 -0
  32. package/docs/architecture/templating/ref-datetimeformat.md +59 -0
  33. package/docs/architecture/templating/ref-datetimeymd.md +44 -0
  34. package/docs/architecture/templating/ref-dejs.md +42 -0
  35. package/docs/architecture/templating/ref-digits.md +36 -0
  36. package/docs/architecture/templating/ref-dj.md +50 -0
  37. package/docs/architecture/templating/ref-dollars.md +36 -0
  38. package/docs/architecture/templating/ref-dt.md +38 -0
  39. package/docs/architecture/templating/ref-dvbk.md +46 -0
  40. package/docs/architecture/templating/ref-dwaf.md +45 -0
  41. package/docs/architecture/templating/ref-dwtf.md +45 -0
  42. package/docs/architecture/templating/ref-entity.md +47 -0
  43. package/docs/architecture/templating/ref-hce.md +29 -0
  44. package/docs/architecture/templating/ref-hcs.md +38 -0
  45. package/docs/architecture/templating/ref-join.md +45 -0
  46. package/docs/architecture/templating/ref-joinunique.md +34 -0
  47. package/docs/architecture/templating/ref-ls.md +37 -0
  48. package/docs/architecture/templating/ref-lv.md +38 -0
  49. package/docs/architecture/templating/ref-lvt.md +33 -0
  50. package/docs/architecture/templating/ref-ne.md +40 -0
  51. package/docs/architecture/templating/ref-pascalcaseidentifier.md +41 -0
  52. package/docs/architecture/templating/ref-pict.md +42 -0
  53. package/docs/architecture/templating/ref-pluckjoinunique.md +39 -0
  54. package/docs/architecture/templating/ref-rn.md +35 -0
  55. package/docs/architecture/templating/ref-rns.md +35 -0
  56. package/docs/architecture/templating/ref-sbr.md +36 -0
  57. package/docs/architecture/templating/ref-solve.md +46 -0
  58. package/docs/architecture/templating/ref-tbda.md +41 -0
  59. package/docs/architecture/templating/ref-tbr.md +43 -0
  60. package/docs/architecture/templating/ref-tbt.md +46 -0
  61. package/docs/architecture/templating/ref-template.md +40 -0
  62. package/docs/architecture/templating/ref-tfa.md +32 -0
  63. package/docs/architecture/templating/ref-tfm.md +43 -0
  64. package/docs/architecture/templating/ref-tif.md +45 -0
  65. package/docs/architecture/templating/ref-tifabs.md +41 -0
  66. package/docs/architecture/templating/ref-ts.md +41 -0
  67. package/docs/architecture/templating/ref-tsfm.md +42 -0
  68. package/docs/architecture/templating/ref-tswp.md +45 -0
  69. package/docs/architecture/templating/ref-tvs.md +48 -0
  70. package/docs/architecture/templating/ref-view.md +40 -0
  71. package/docs/architecture/templating/ref-vrs.md +39 -0
  72. package/docs/architecture/templating/solvers.md +153 -0
  73. package/docs/architecture/templating/template-composition.md +196 -0
  74. package/docs/architecture/templating/template-expressions.md +217 -0
  75. package/docs/architecture/templating/views.md +154 -0
  76. package/docs/contributing.md +50 -0
  77. package/docs/examples/todolist/todo-list.md +1 -1
  78. package/docs/modules/apps.md +26 -0
  79. package/docs/modules/orator.md +0 -7
  80. package/docs/modules/pict.md +18 -0
  81. package/docs/modules/utility.md +23 -1
  82. package/docs/retold-catalog.json +937 -126
  83. package/docs/retold-keyword-index.json +195296 -116062
  84. package/docs/testing.md +122 -0
  85. package/modules/CLAUDE.md +1 -0
  86. package/modules/Checkout.sh +1 -0
  87. package/modules/Diff.sh +86 -0
  88. package/modules/Include-Retold-Module-List.sh +5 -3
  89. package/modules/Status.sh +1 -0
  90. package/modules/Update.sh +1 -0
  91. package/modules/apps/Apps.md +1 -0
  92. package/modules/utility/Utility.md +1 -0
  93. package/package.json +12 -11
  94. package/source/retold-manager/package.json +23 -0
  95. package/source/retold-manager/retold-manager.js +65 -0
  96. package/source/retold-manager/source/Retold-Manager-App.js +1532 -0
  97. package/source/retold-manager/source/Retold-Manager-ModuleCatalog.js +75 -0
  98. package/source/retold-manager/source/Retold-Manager-ProcessRunner.js +706 -0
  99. package/source/retold-manager/source/views/PictView-TUI-Checkout.js +45 -0
  100. package/source/retold-manager/source/views/PictView-TUI-Header.js +41 -0
  101. package/source/retold-manager/source/views/PictView-TUI-Layout.js +53 -0
  102. package/source/retold-manager/source/views/PictView-TUI-Status.js +45 -0
  103. package/source/retold-manager/source/views/PictView-TUI-StatusBar.js +41 -0
  104. package/source/retold-manager/source/views/PictView-TUI-Update.js +45 -0
  105. package/docs/retold-building-documentation.md +0 -33
  106. package/examples/quickstart/layer1/package-lock.json +0 -344
  107. package/examples/quickstart/layer2/package-lock.json +0 -4468
  108. package/examples/quickstart/layer3/package-lock.json +0 -1936
  109. package/examples/quickstart/layer4/package-lock.json +0 -13206
  110. package/examples/quickstart/layer5/package-lock.json +0 -345
  111. package/examples/todo-list/cli-client/package-lock.json +0 -418
  112. package/examples/todo-list/console-client/package-lock.json +0 -426
  113. package/examples/todo-list/server/package-lock.json +0 -6113
  114. package/examples/todo-list/web-client/package-lock.json +0 -12030
  115. 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"`.