@fougere/cli 0.12.5-alpha.0 → 0.12.6-alpha.0

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 (335) hide show
  1. package/dist/.fougere/scan.generated.d.ts +3 -0
  2. package/dist/.fougere/scan.generated.d.ts.map +1 -0
  3. package/dist/.fougere/scan.generated.js +140 -0
  4. package/dist/.fougere/scan.generated.js.map +1 -0
  5. package/dist/app/commands/BuildCommand.d.ts +18 -0
  6. package/dist/app/commands/BuildCommand.d.ts.map +1 -0
  7. package/dist/app/commands/BuildCommand.js +35 -0
  8. package/dist/app/commands/BuildCommand.js.map +1 -0
  9. package/dist/app/commands/CallCommand.d.ts +16 -0
  10. package/dist/app/commands/CallCommand.d.ts.map +1 -0
  11. package/dist/app/commands/CallCommand.js +73 -0
  12. package/dist/app/commands/CallCommand.js.map +1 -0
  13. package/dist/app/commands/CheckCommand.d.ts +11 -0
  14. package/dist/app/commands/CheckCommand.d.ts.map +1 -0
  15. package/dist/app/commands/CheckCommand.js +59 -0
  16. package/dist/app/commands/CheckCommand.js.map +1 -0
  17. package/dist/app/commands/CompletionCommand.d.ts +7 -0
  18. package/dist/app/commands/CompletionCommand.d.ts.map +1 -0
  19. package/dist/app/commands/CompletionCommand.js +23 -0
  20. package/dist/app/commands/CompletionCommand.js.map +1 -0
  21. package/dist/app/commands/DevtoolsCommand.d.ts +20 -0
  22. package/dist/app/commands/DevtoolsCommand.d.ts.map +1 -0
  23. package/dist/app/commands/DevtoolsCommand.js +79 -0
  24. package/dist/app/commands/DevtoolsCommand.js.map +1 -0
  25. package/dist/app/commands/ExplainCommand.d.ts +18 -0
  26. package/dist/app/commands/ExplainCommand.d.ts.map +1 -0
  27. package/dist/app/commands/ExplainCommand.js +111 -0
  28. package/dist/app/commands/ExplainCommand.js.map +1 -0
  29. package/dist/app/commands/FreezeCommand.d.ts +21 -0
  30. package/dist/app/commands/FreezeCommand.d.ts.map +1 -0
  31. package/dist/app/commands/FreezeCommand.js +102 -0
  32. package/dist/app/commands/FreezeCommand.js.map +1 -0
  33. package/dist/app/commands/GrantCommand.d.ts +18 -0
  34. package/dist/app/commands/GrantCommand.d.ts.map +1 -0
  35. package/dist/app/commands/GrantCommand.js +39 -0
  36. package/dist/app/commands/GrantCommand.js.map +1 -0
  37. package/dist/app/commands/GraphCommand.d.ts +11 -0
  38. package/dist/app/commands/GraphCommand.d.ts.map +1 -0
  39. package/dist/app/commands/GraphCommand.js +72 -0
  40. package/dist/app/commands/GraphCommand.js.map +1 -0
  41. package/dist/app/commands/KeysCommand.d.ts +22 -0
  42. package/dist/app/commands/KeysCommand.d.ts.map +1 -0
  43. package/dist/app/commands/KeysCommand.js +50 -0
  44. package/dist/app/commands/KeysCommand.js.map +1 -0
  45. package/dist/app/commands/LoadCommand.d.ts +19 -0
  46. package/dist/app/commands/LoadCommand.d.ts.map +1 -0
  47. package/dist/app/commands/LoadCommand.js +37 -0
  48. package/dist/app/commands/LoadCommand.js.map +1 -0
  49. package/dist/app/commands/MigrateCommand.d.ts +17 -0
  50. package/dist/app/commands/MigrateCommand.d.ts.map +1 -0
  51. package/dist/app/commands/MigrateCommand.js +47 -0
  52. package/dist/app/commands/MigrateCommand.js.map +1 -0
  53. package/dist/app/commands/NewCommand.d.ts +24 -0
  54. package/dist/app/commands/NewCommand.d.ts.map +1 -0
  55. package/dist/app/commands/NewCommand.js +131 -0
  56. package/dist/app/commands/NewCommand.js.map +1 -0
  57. package/dist/app/commands/ServeCommand.d.ts +17 -0
  58. package/dist/app/commands/ServeCommand.d.ts.map +1 -0
  59. package/dist/app/commands/ServeCommand.js +93 -0
  60. package/dist/app/commands/ServeCommand.js.map +1 -0
  61. package/dist/app/commands/grant-material.d.ts +5 -0
  62. package/dist/app/commands/grant-material.d.ts.map +1 -0
  63. package/{app/commands/grant-material.ts → dist/app/commands/grant-material.js} +2 -2
  64. package/dist/app/commands/grant-material.js.map +1 -0
  65. package/dist/fronds/analysis/entities/Build.d.ts +10 -0
  66. package/dist/fronds/analysis/entities/Build.d.ts.map +1 -0
  67. package/dist/fronds/analysis/entities/Build.js +9 -0
  68. package/dist/fronds/analysis/entities/Build.js.map +1 -0
  69. package/dist/fronds/analysis/entities/Check.d.ts +8 -0
  70. package/dist/fronds/analysis/entities/Check.d.ts.map +1 -0
  71. package/dist/fronds/analysis/entities/Check.js +7 -0
  72. package/dist/fronds/analysis/entities/Check.js.map +1 -0
  73. package/dist/fronds/analysis/entities/Devtools.d.ts +10 -0
  74. package/dist/fronds/analysis/entities/Devtools.d.ts.map +1 -0
  75. package/dist/fronds/analysis/entities/Devtools.js +9 -0
  76. package/dist/fronds/analysis/entities/Devtools.js.map +1 -0
  77. package/dist/fronds/analysis/entities/Explain.d.ts +11 -0
  78. package/dist/fronds/analysis/entities/Explain.d.ts.map +1 -0
  79. package/dist/fronds/analysis/entities/Explain.js +10 -0
  80. package/dist/fronds/analysis/entities/Explain.js.map +1 -0
  81. package/dist/fronds/analysis/entities/Freeze.d.ts +10 -0
  82. package/dist/fronds/analysis/entities/Freeze.d.ts.map +1 -0
  83. package/dist/fronds/analysis/entities/Freeze.js +9 -0
  84. package/dist/fronds/analysis/entities/Freeze.js.map +1 -0
  85. package/dist/fronds/analysis/entities/Graph.d.ts +9 -0
  86. package/dist/fronds/analysis/entities/Graph.d.ts.map +1 -0
  87. package/dist/fronds/analysis/entities/Graph.js +8 -0
  88. package/dist/fronds/analysis/entities/Graph.js.map +1 -0
  89. package/dist/fronds/analysis/entities/Load.d.ts +10 -0
  90. package/dist/fronds/analysis/entities/Load.d.ts.map +1 -0
  91. package/dist/fronds/analysis/entities/Load.js +9 -0
  92. package/dist/fronds/analysis/entities/Load.js.map +1 -0
  93. package/dist/fronds/analysis/entities/Migrate.d.ts +10 -0
  94. package/dist/fronds/analysis/entities/Migrate.d.ts.map +1 -0
  95. package/dist/fronds/analysis/entities/Migrate.js +9 -0
  96. package/dist/fronds/analysis/entities/Migrate.js.map +1 -0
  97. package/dist/fronds/analysis/handlers/BuildHandler.d.ts +50 -0
  98. package/dist/fronds/analysis/handlers/BuildHandler.d.ts.map +1 -0
  99. package/dist/fronds/analysis/handlers/BuildHandler.js +63 -0
  100. package/dist/fronds/analysis/handlers/BuildHandler.js.map +1 -0
  101. package/dist/fronds/analysis/handlers/CheckHandler.d.ts +30 -0
  102. package/dist/fronds/analysis/handlers/CheckHandler.d.ts.map +1 -0
  103. package/dist/fronds/analysis/handlers/CheckHandler.js +196 -0
  104. package/dist/fronds/analysis/handlers/CheckHandler.js.map +1 -0
  105. package/dist/fronds/analysis/handlers/DevtoolsHandler.d.ts +45 -0
  106. package/dist/fronds/analysis/handlers/DevtoolsHandler.d.ts.map +1 -0
  107. package/dist/fronds/analysis/handlers/DevtoolsHandler.js +61 -0
  108. package/dist/fronds/analysis/handlers/DevtoolsHandler.js.map +1 -0
  109. package/dist/fronds/analysis/handlers/ExplainHandler.d.ts +99 -0
  110. package/dist/fronds/analysis/handlers/ExplainHandler.d.ts.map +1 -0
  111. package/dist/fronds/analysis/handlers/ExplainHandler.js +157 -0
  112. package/dist/fronds/analysis/handlers/ExplainHandler.js.map +1 -0
  113. package/dist/fronds/analysis/handlers/FreezeHandler.d.ts +55 -0
  114. package/dist/fronds/analysis/handlers/FreezeHandler.d.ts.map +1 -0
  115. package/dist/fronds/analysis/handlers/FreezeHandler.js +145 -0
  116. package/dist/fronds/analysis/handlers/FreezeHandler.js.map +1 -0
  117. package/dist/fronds/analysis/handlers/GraphHandler.d.ts +23 -0
  118. package/dist/fronds/analysis/handlers/GraphHandler.d.ts.map +1 -0
  119. package/dist/fronds/analysis/handlers/GraphHandler.js +23 -0
  120. package/dist/fronds/analysis/handlers/GraphHandler.js.map +1 -0
  121. package/dist/fronds/analysis/handlers/LoadHandler.d.ts +26 -0
  122. package/dist/fronds/analysis/handlers/LoadHandler.d.ts.map +1 -0
  123. package/dist/fronds/analysis/handlers/LoadHandler.js +35 -0
  124. package/dist/fronds/analysis/handlers/LoadHandler.js.map +1 -0
  125. package/dist/fronds/analysis/handlers/MigrateHandler.d.ts +34 -0
  126. package/dist/fronds/analysis/handlers/MigrateHandler.d.ts.map +1 -0
  127. package/dist/fronds/analysis/handlers/MigrateHandler.js +92 -0
  128. package/dist/fronds/analysis/handlers/MigrateHandler.js.map +1 -0
  129. package/dist/fronds/analysis/services/ProjectScan.d.ts +22 -0
  130. package/dist/fronds/analysis/services/ProjectScan.d.ts.map +1 -0
  131. package/dist/fronds/analysis/services/ProjectScan.js +48 -0
  132. package/dist/fronds/analysis/services/ProjectScan.js.map +1 -0
  133. package/dist/fronds/analysis/versions.d.ts +21 -0
  134. package/dist/fronds/analysis/versions.d.ts.map +1 -0
  135. package/dist/fronds/analysis/versions.js +48 -0
  136. package/dist/fronds/analysis/versions.js.map +1 -0
  137. package/dist/fronds/scaffold/entities/BuildFrond.d.ts +7 -0
  138. package/dist/fronds/scaffold/entities/BuildFrond.d.ts.map +1 -0
  139. package/dist/fronds/scaffold/entities/BuildFrond.js +6 -0
  140. package/dist/fronds/scaffold/entities/BuildFrond.js.map +1 -0
  141. package/dist/fronds/scaffold/entities/Call.d.ts +8 -0
  142. package/dist/fronds/scaffold/entities/Call.d.ts.map +1 -0
  143. package/{fronds/scaffold/entities/Call.ts → dist/fronds/scaffold/entities/Call.js} +4 -3
  144. package/dist/fronds/scaffold/entities/Call.js.map +1 -0
  145. package/dist/fronds/scaffold/entities/Completion.d.ts +7 -0
  146. package/dist/fronds/scaffold/entities/Completion.d.ts.map +1 -0
  147. package/dist/fronds/scaffold/entities/Completion.js +6 -0
  148. package/dist/fronds/scaffold/entities/Completion.js.map +1 -0
  149. package/dist/fronds/scaffold/entities/Grant.d.ts +8 -0
  150. package/dist/fronds/scaffold/entities/Grant.d.ts.map +1 -0
  151. package/{fronds/scaffold/entities/Grant.ts → dist/fronds/scaffold/entities/Grant.js} +4 -3
  152. package/dist/fronds/scaffold/entities/Grant.js.map +1 -0
  153. package/dist/fronds/scaffold/entities/Keys.d.ts +6 -0
  154. package/dist/fronds/scaffold/entities/Keys.d.ts.map +1 -0
  155. package/{fronds/scaffold/entities/Keys.ts → dist/fronds/scaffold/entities/Keys.js} +3 -2
  156. package/dist/fronds/scaffold/entities/Keys.js.map +1 -0
  157. package/dist/fronds/scaffold/entities/New.d.ts +21 -0
  158. package/dist/fronds/scaffold/entities/New.d.ts.map +1 -0
  159. package/dist/fronds/scaffold/entities/New.js +20 -0
  160. package/dist/fronds/scaffold/entities/New.js.map +1 -0
  161. package/dist/fronds/scaffold/entities/Serve.d.ts +10 -0
  162. package/dist/fronds/scaffold/entities/Serve.d.ts.map +1 -0
  163. package/dist/fronds/scaffold/entities/Serve.js +9 -0
  164. package/dist/fronds/scaffold/entities/Serve.js.map +1 -0
  165. package/dist/fronds/scaffold/entities/Sync.d.ts +8 -0
  166. package/dist/fronds/scaffold/entities/Sync.d.ts.map +1 -0
  167. package/dist/fronds/scaffold/entities/Sync.js +7 -0
  168. package/dist/fronds/scaffold/entities/Sync.js.map +1 -0
  169. package/dist/fronds/scaffold/handlers/BuildFrondHandler.d.ts +11 -0
  170. package/dist/fronds/scaffold/handlers/BuildFrondHandler.d.ts.map +1 -0
  171. package/dist/fronds/scaffold/handlers/BuildFrondHandler.js +82 -0
  172. package/dist/fronds/scaffold/handlers/BuildFrondHandler.js.map +1 -0
  173. package/dist/fronds/scaffold/handlers/CallHandler.d.ts +10 -0
  174. package/dist/fronds/scaffold/handlers/CallHandler.d.ts.map +1 -0
  175. package/{fronds/scaffold/handlers/CallHandler.ts → dist/fronds/scaffold/handlers/CallHandler.js} +3 -2
  176. package/dist/fronds/scaffold/handlers/CallHandler.js.map +1 -0
  177. package/dist/fronds/scaffold/handlers/CompletionHandler.d.ts +9 -0
  178. package/dist/fronds/scaffold/handlers/CompletionHandler.d.ts.map +1 -0
  179. package/{fronds/scaffold/handlers/CompletionHandler.ts → dist/fronds/scaffold/handlers/CompletionHandler.js} +3 -2
  180. package/dist/fronds/scaffold/handlers/CompletionHandler.js.map +1 -0
  181. package/dist/fronds/scaffold/handlers/GrantHandler.d.ts +9 -0
  182. package/dist/fronds/scaffold/handlers/GrantHandler.d.ts.map +1 -0
  183. package/{fronds/scaffold/handlers/GrantHandler.ts → dist/fronds/scaffold/handlers/GrantHandler.js} +3 -2
  184. package/dist/fronds/scaffold/handlers/GrantHandler.js.map +1 -0
  185. package/dist/fronds/scaffold/handlers/KeysHandler.d.ts +9 -0
  186. package/dist/fronds/scaffold/handlers/KeysHandler.d.ts.map +1 -0
  187. package/{fronds/scaffold/handlers/KeysHandler.ts → dist/fronds/scaffold/handlers/KeysHandler.js} +3 -2
  188. package/dist/fronds/scaffold/handlers/KeysHandler.js.map +1 -0
  189. package/dist/fronds/scaffold/handlers/NewHandler.d.ts +9 -0
  190. package/dist/fronds/scaffold/handlers/NewHandler.d.ts.map +1 -0
  191. package/{fronds/scaffold/handlers/NewHandler.ts → dist/fronds/scaffold/handlers/NewHandler.js} +3 -2
  192. package/dist/fronds/scaffold/handlers/NewHandler.js.map +1 -0
  193. package/dist/fronds/scaffold/handlers/ServeHandler.d.ts +10 -0
  194. package/dist/fronds/scaffold/handlers/ServeHandler.d.ts.map +1 -0
  195. package/{fronds/scaffold/handlers/ServeHandler.ts → dist/fronds/scaffold/handlers/ServeHandler.js} +3 -2
  196. package/dist/fronds/scaffold/handlers/ServeHandler.js.map +1 -0
  197. package/dist/fronds/scaffold/handlers/SyncHandler.d.ts +20 -0
  198. package/dist/fronds/scaffold/handlers/SyncHandler.d.ts.map +1 -0
  199. package/dist/fronds/scaffold/handlers/SyncHandler.js +349 -0
  200. package/dist/fronds/scaffold/handlers/SyncHandler.js.map +1 -0
  201. package/dist/fronds/scaffold/services/ProjectWriter.d.ts +71 -0
  202. package/dist/fronds/scaffold/services/ProjectWriter.d.ts.map +1 -0
  203. package/dist/fronds/scaffold/services/ProjectWriter.js +341 -0
  204. package/dist/fronds/scaffold/services/ProjectWriter.js.map +1 -0
  205. package/dist/src/bin.d.ts.map +1 -0
  206. package/dist/src/bin.js +11 -0
  207. package/dist/src/bin.js.map +1 -0
  208. package/dist/src/bridge.d.ts.map +1 -0
  209. package/dist/src/bridge.js.map +1 -0
  210. package/dist/src/completion.d.ts.map +1 -0
  211. package/dist/src/completion.js.map +1 -0
  212. package/dist/src/index.d.ts.map +1 -0
  213. package/dist/src/index.js.map +1 -0
  214. package/dist/src/loader.d.ts.map +1 -0
  215. package/dist/src/loader.js.map +1 -0
  216. package/dist/src/machine.d.ts.map +1 -0
  217. package/dist/src/machine.js.map +1 -0
  218. package/dist/src/main.d.ts +2 -0
  219. package/dist/src/main.d.ts.map +1 -0
  220. package/dist/src/main.js +19 -0
  221. package/dist/src/main.js.map +1 -0
  222. package/dist/src/runner.d.ts.map +1 -0
  223. package/dist/{runner.js → src/runner.js} +22 -22
  224. package/dist/src/runner.js.map +1 -0
  225. package/dist/src/theme.d.ts.map +1 -0
  226. package/dist/src/theme.js.map +1 -0
  227. package/dist/src/typescript/EntityTypes.d.ts.map +1 -0
  228. package/dist/src/typescript/EntityTypes.js.map +1 -0
  229. package/dist/src/typescript/FacadeTypes.d.ts.map +1 -0
  230. package/dist/src/typescript/FacadeTypes.js.map +1 -0
  231. package/dist/src/typescript/syntax.d.ts.map +1 -0
  232. package/dist/src/typescript/syntax.js.map +1 -0
  233. package/dist/{ui.d.ts → src/ui.d.ts} +0 -1
  234. package/dist/src/ui.d.ts.map +1 -0
  235. package/dist/{ui.js → src/ui.js} +24 -22
  236. package/dist/src/ui.js.map +1 -0
  237. package/package.json +23 -27
  238. package/app/commands/BuildCommand.ts +0 -43
  239. package/app/commands/CallCommand.ts +0 -70
  240. package/app/commands/CheckCommand.ts +0 -70
  241. package/app/commands/CompletionCommand.ts +0 -24
  242. package/app/commands/DevtoolsCommand.ts +0 -92
  243. package/app/commands/ExplainCommand.ts +0 -136
  244. package/app/commands/FreezeCommand.ts +0 -119
  245. package/app/commands/GrantCommand.ts +0 -46
  246. package/app/commands/GraphCommand.ts +0 -91
  247. package/app/commands/KeysCommand.ts +0 -57
  248. package/app/commands/LoadCommand.ts +0 -46
  249. package/app/commands/MigrateCommand.ts +0 -61
  250. package/app/commands/NewCommand.ts +0 -137
  251. package/app/commands/ServeCommand.ts +0 -108
  252. package/dist/bin.d.ts.map +0 -1
  253. package/dist/bin.js +0 -64
  254. package/dist/bin.js.map +0 -1
  255. package/dist/bridge.d.ts.map +0 -1
  256. package/dist/bridge.js.map +0 -1
  257. package/dist/completion.d.ts.map +0 -1
  258. package/dist/completion.js.map +0 -1
  259. package/dist/index.d.ts.map +0 -1
  260. package/dist/index.js.map +0 -1
  261. package/dist/loader.d.ts.map +0 -1
  262. package/dist/loader.js.map +0 -1
  263. package/dist/machine.d.ts.map +0 -1
  264. package/dist/machine.js.map +0 -1
  265. package/dist/runner.d.ts.map +0 -1
  266. package/dist/runner.js.map +0 -1
  267. package/dist/theme.d.ts.map +0 -1
  268. package/dist/theme.js.map +0 -1
  269. package/dist/typescript/EntityTypes.d.ts.map +0 -1
  270. package/dist/typescript/EntityTypes.js.map +0 -1
  271. package/dist/typescript/FacadeTypes.d.ts.map +0 -1
  272. package/dist/typescript/FacadeTypes.js.map +0 -1
  273. package/dist/typescript/syntax.d.ts.map +0 -1
  274. package/dist/typescript/syntax.js.map +0 -1
  275. package/dist/ui.d.ts.map +0 -1
  276. package/dist/ui.js.map +0 -1
  277. package/fronds/analysis/entities/Build.ts +0 -8
  278. package/fronds/analysis/entities/Check.ts +0 -6
  279. package/fronds/analysis/entities/Devtools.ts +0 -8
  280. package/fronds/analysis/entities/Explain.ts +0 -9
  281. package/fronds/analysis/entities/Freeze.ts +0 -8
  282. package/fronds/analysis/entities/Graph.ts +0 -7
  283. package/fronds/analysis/entities/Load.ts +0 -8
  284. package/fronds/analysis/entities/Migrate.ts +0 -8
  285. package/fronds/analysis/handlers/BuildHandler.ts +0 -87
  286. package/fronds/analysis/handlers/CheckHandler.ts +0 -217
  287. package/fronds/analysis/handlers/DevtoolsHandler.ts +0 -97
  288. package/fronds/analysis/handlers/ExplainHandler.ts +0 -263
  289. package/fronds/analysis/handlers/FreezeHandler.ts +0 -183
  290. package/fronds/analysis/handlers/GraphHandler.ts +0 -38
  291. package/fronds/analysis/handlers/LoadHandler.ts +0 -44
  292. package/fronds/analysis/handlers/MigrateHandler.ts +0 -110
  293. package/fronds/analysis/services/ProjectScan.ts +0 -55
  294. package/fronds/analysis/versions.ts +0 -59
  295. package/fronds/scaffold/entities/BuildFrond.ts +0 -5
  296. package/fronds/scaffold/entities/Completion.ts +0 -5
  297. package/fronds/scaffold/entities/New.ts +0 -19
  298. package/fronds/scaffold/entities/Serve.ts +0 -8
  299. package/fronds/scaffold/entities/Sync.ts +0 -6
  300. package/fronds/scaffold/handlers/BuildFrondHandler.ts +0 -96
  301. package/fronds/scaffold/handlers/SyncHandler.ts +0 -376
  302. package/fronds/scaffold/services/ProjectWriter.ts +0 -339
  303. package/fronds/shims.d.ts +0 -9
  304. package/src/bin.ts +0 -77
  305. package/src/bridge.ts +0 -118
  306. package/src/completion.ts +0 -145
  307. package/src/index.ts +0 -1
  308. package/src/loader.ts +0 -28
  309. package/src/machine.ts +0 -17
  310. package/src/runner.ts +0 -152
  311. package/src/theme.ts +0 -19
  312. package/src/typescript/EntityTypes.ts +0 -92
  313. package/src/typescript/FacadeTypes.ts +0 -50
  314. package/src/typescript/syntax.ts +0 -11
  315. package/src/ui.ts +0 -142
  316. /package/dist/{bin.d.ts → src/bin.d.ts} +0 -0
  317. /package/dist/{bridge.d.ts → src/bridge.d.ts} +0 -0
  318. /package/dist/{bridge.js → src/bridge.js} +0 -0
  319. /package/dist/{completion.d.ts → src/completion.d.ts} +0 -0
  320. /package/dist/{completion.js → src/completion.js} +0 -0
  321. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  322. /package/dist/{index.js → src/index.js} +0 -0
  323. /package/dist/{loader.d.ts → src/loader.d.ts} +0 -0
  324. /package/dist/{loader.js → src/loader.js} +0 -0
  325. /package/dist/{machine.d.ts → src/machine.d.ts} +0 -0
  326. /package/dist/{machine.js → src/machine.js} +0 -0
  327. /package/dist/{runner.d.ts → src/runner.d.ts} +0 -0
  328. /package/dist/{theme.d.ts → src/theme.d.ts} +0 -0
  329. /package/dist/{theme.js → src/theme.js} +0 -0
  330. /package/dist/{typescript → src/typescript}/EntityTypes.d.ts +0 -0
  331. /package/dist/{typescript → src/typescript}/EntityTypes.js +0 -0
  332. /package/dist/{typescript → src/typescript}/FacadeTypes.d.ts +0 -0
  333. /package/dist/{typescript → src/typescript}/FacadeTypes.js +0 -0
  334. /package/dist/{typescript → src/typescript}/syntax.d.ts +0 -0
  335. /package/dist/{typescript → src/typescript}/syntax.js +0 -0
@@ -0,0 +1,71 @@
1
+ import { type Conventions } from '@fougere/core';
2
+ export default class ProjectWriter {
3
+ /** The workspace shell — fougere.config, pnpm-workspace (fronds/* apps/*), package.json. */
4
+ createWorkspace(dir: string, name: string): {
5
+ path: string;
6
+ };
7
+ /**
8
+ * The flat shell — one Nuxt app whose root carries the convention, so no `fronds/`
9
+ * and no workspace. `templates/flat/` is that shell; what separates the two shapes is
10
+ * only where the domain lands.
11
+ */
12
+ createFlat(dir: string, name: string): {
13
+ path: string;
14
+ };
15
+ /**
16
+ * Put a frond template's directories at the project root. Only the directories: at the
17
+ * root the app's own `package.json` is the frond's, and `@fronds/<name>` comes from the
18
+ * directory through the Nuxt module's alias, so the template's package would only
19
+ * duplicate it under a second name.
20
+ */
21
+ addRootFrond(dir: string, template: string): {
22
+ path: string;
23
+ };
24
+ /** Add a frond (business hexagon) under fronds/<name>. */
25
+ addFrond(wsDir: string, template: string, name: string, conventions?: Conventions): {
26
+ path: string;
27
+ };
28
+ /** Add an app (consumer) under apps/<name>, from the host package that owns its wiring. */
29
+ addApp(wsDir: string, template: string, name: string): {
30
+ path: string;
31
+ };
32
+ /**
33
+ * What can be scaffolded, of a kind.
34
+ *
35
+ * A FROND comes from this package: it is Fougere's own vocabulary, entities and handlers,
36
+ * and no other package owns it. An APP comes from its HOST — the registry is the hosts this
37
+ * CLI depends on, so `fougere new` offers what is published rather than what was copied here.
38
+ */
39
+ listTemplates(kind: 'fronds' | 'apps'): string[];
40
+ /**
41
+ * Every app depends on every frond of the workspace — stated once composition is done,
42
+ * because that is when the names exist.
43
+ *
44
+ * A template cannot carry it: the frond is named at composition time (`blog:catalog`),
45
+ * so a dependency written into `templates/apps/nuxt` would name the template instead
46
+ * and resolve to nothing. Which is what happened — the generated app imported
47
+ * `@fronds/blog` whatever you had called it, and did not start.
48
+ *
49
+ * `fronds/` and `apps/` are the registry, like `listTemplates`: nothing to declare.
50
+ */
51
+ linkFronds(wsDir: string, conventions?: Conventions): void;
52
+ /**
53
+ * Every `@fougere/*` dependency, pinned to the version that scaffolded it.
54
+ *
55
+ * The templates say `latest`, which reads as "whatever is current" and is not: pnpm
56
+ * answers from a metadata cache, and a fresh project installed 0.6 while the registry
57
+ * said 0.7 — measured. A version is also what makes an install reproducible, which
58
+ * `latest` never was.
59
+ *
60
+ * Read off this CLI's own package, because the scaffold and the packages it names ship
61
+ * together: the version that wrote the file is the one it was written for.
62
+ */
63
+ pinVersions(wsDir: string, conventions?: Conventions): void;
64
+ /**
65
+ * Dev mode: rewrite every `@fougere/*` dependency in the workspace to a
66
+ * `link:` into this monorepo, so `pnpm install` resolves offline (the
67
+ * packages aren't on npm yet). No-op once the packages are published.
68
+ */
69
+ linkLocal(wsDir: string): void;
70
+ }
71
+ //# sourceMappingURL=ProjectWriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectWriter.d.ts","sourceRoot":"","sources":["../../../../fronds/scaffold/services/ProjectWriter.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,WAAW,EAAqC,MAAM,eAAe,CAAC;AA2IpF,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,4FAA4F;IAC5F,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAM3D;IAED;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAMtD;IAED;;;;;OAKG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAQ5D;IAED,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,WAAiC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAcxH;IAED,2FAA2F;IAC3F,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAUtE;IAED;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,EAAE,CAO/C;IAED;;;;;;;;;;OAUG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,GAAE,WAAiC,GAAG,IAAI,CAoB9E;IAED;;;;;;;;;;OAUG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,GAAE,WAAiC,GAAG,IAAI,CAyB/E;IAED;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAwC7B;CACF"}
@@ -0,0 +1,341 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import { cpSync, existsSync, mkdirSync, renameSync, readFileSync, writeFileSync, readdirSync } from 'node:fs';
3
+ import { tmpdir } from 'node:os';
4
+ import { dirname, join } from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+ import { DEFAULT_CONVENTIONS, frondPackage } from '@fougere/core';
7
+ /**
8
+ * The monorepo's `packages/`, found by its workspace marker rather than counted
9
+ * in `..` from this file. Counting encoded how deep the CLI itself sat, so the
10
+ * day `cli/` moved into a family, `--local` linked four packages instead of
11
+ * twenty-one — silently, because the scan below simply found less.
12
+ *
13
+ * Returns undefined outside the monorepo, which is every installed copy.
14
+ */
15
+ function monorepoPackages() {
16
+ let d = fileURLToPath(new URL('.', import.meta.url));
17
+ while (d !== dirname(d)) {
18
+ if (existsSync(join(d, 'pnpm-workspace.yaml')))
19
+ return join(d, 'packages');
20
+ d = dirname(d);
21
+ }
22
+ return undefined;
23
+ }
24
+ /** This package's directory — found by walking up, since the source and its compiled copy sit at different depths. */
25
+ function packageRoot() {
26
+ let d = fileURLToPath(new URL('.', import.meta.url));
27
+ while (!existsSync(join(d, 'package.json')))
28
+ d = dirname(d);
29
+ return d;
30
+ }
31
+ /**
32
+ * Scaffolds from real template files (create-vite pattern: stdlib copy, no
33
+ * token engine). The workspace model composes at every scale:
34
+ * - a workspace shell (`workspace/`),
35
+ * - fronds added from `fronds/<template>` (business hexagons),
36
+ * - apps added from `apps/<template>` (consumers: nuxt, cli).
37
+ * The only per-piece edits are the package names.
38
+ */
39
+ const TEMPLATES = join(packageRoot(), 'templates');
40
+ /**
41
+ * Where a HOST keeps its starter, or nothing when it ships none.
42
+ *
43
+ * The package that owns the wiring owns the files: `@fougere/nuxt` knows what a
44
+ * `nuxt.config.ts` must say, and a copy of it here would be that knowledge written twice —
45
+ * which is how `templates/apps/` came to hold one host while six were published.
46
+ *
47
+ * Two ways to reach them, and the first is the monorepo's: a host is on disk there, and in
48
+ * every process that installed one for its own reasons.
49
+ */
50
+ function starterOf(pkg) {
51
+ return carried(pkg) ?? fetched(pkg);
52
+ }
53
+ /**
54
+ * Resolved from the main entry and walked up to the manifest, because a host does not export
55
+ * its own `package.json` and has no reason to.
56
+ *
57
+ * `import.meta.resolve` and not `createRequire().resolve`: a host's `exports` states only the
58
+ * `import` condition, so the CJS resolver answers `ERR_PACKAGE_PATH_NOT_EXPORTED` for every
59
+ * one of them.
60
+ */
61
+ function carried(pkg) {
62
+ let dir;
63
+ try {
64
+ dir = dirname(fileURLToPath(import.meta.resolve(pkg)));
65
+ }
66
+ catch {
67
+ return undefined;
68
+ }
69
+ while (!existsSync(join(dir, 'package.json')) && dir !== dirname(dir))
70
+ dir = dirname(dir);
71
+ const template = join(dir, 'template');
72
+ return existsSync(template) ? template : undefined;
73
+ }
74
+ /**
75
+ * The starter of a host this process does not carry, read out of its published tarball.
76
+ *
77
+ * A host is no longer a `dependencies` entry: what is wanted of it is a directory of files, and
78
+ * npm answers a dependency by installing the whole tree behind it — `next` brought 300 MB and
79
+ * `nuxt` its own, so that 28 files weighing 112 KB could be copied. A tarball is 27 to 388 KB,
80
+ * and the peers it names are the scaffolded app's to install, never this CLI's.
81
+ *
82
+ * Pinned to `scaffoldVersion()` for the reason `pinVersions` states, and extracted under that
83
+ * version, so a second call reuses what the first unpacked and a released CLI never reads the
84
+ * starter of another one.
85
+ */
86
+ function fetched(pkg) {
87
+ const dir = join(tmpdir(), 'fougere-starter', `${pkg.replace('/', '-')}@${scaffoldVersion()}`);
88
+ const template = join(dir, 'package', 'template');
89
+ if (existsSync(template))
90
+ return template;
91
+ try {
92
+ mkdirSync(dir, { recursive: true });
93
+ const tarball = execFileSync('npm', ['pack', `${pkg}@${scaffoldVersion()}`, '--pack-destination', dir, '--silent'], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
94
+ execFileSync('tar', ['-xzf', join(dir, tarball), '-C', dir, 'package/template'], { stdio: 'ignore' });
95
+ }
96
+ catch {
97
+ return undefined;
98
+ }
99
+ return existsSync(template) ? template : undefined;
100
+ }
101
+ /**
102
+ * The hosts this CLI can scaffold: the `@fougere/*` packages it is developed against.
103
+ *
104
+ * The dependency list IS the registry — nothing to declare, and a host added to the family
105
+ * appears here the day the CLI names it. It names them under `devDependencies`, because what
106
+ * it wants of a host is a directory of files rather than a module to load, and `dependencies`
107
+ * is what had `npm create fougere` install Next.js and Nuxt to copy 28 files.
108
+ *
109
+ * The NAMES are read here and the FILES only where an app is written, so offering the list
110
+ * costs nothing: resolving all six would fetch six tarballs to print six words.
111
+ */
112
+ function hosts() {
113
+ const manifest = JSON.parse(readFileSync(join(packageRoot(), 'package.json'), 'utf8'));
114
+ return Object.keys(manifest.devDependencies ?? {})
115
+ .filter((pkg) => pkg.startsWith('@fougere/'))
116
+ .map((pkg) => pkg.slice('@fougere/'.length));
117
+ }
118
+ /** The version that scaffolds is the version the templates were written for. */
119
+ const scaffoldVersion = () => JSON.parse(readFileSync(join(packageRoot(), 'package.json'), 'utf8')).version;
120
+ // npm strips a literal .gitignore from published packages — it ships as
121
+ // _gitignore and the name is restored on copy.
122
+ function restoreGitignore(dir) {
123
+ const gi = join(dir, '_gitignore');
124
+ if (existsSync(gi))
125
+ renameSync(gi, join(dir, '.gitignore'));
126
+ }
127
+ function setPackageName(dir, name) {
128
+ const pkgPath = join(dir, 'package.json');
129
+ if (!existsSync(pkgPath))
130
+ return;
131
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
132
+ pkg.name = name;
133
+ writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
134
+ }
135
+ export default class ProjectWriter {
136
+ /** The workspace shell — fougere.config, pnpm-workspace (fronds/* apps/*), package.json. */
137
+ createWorkspace(dir, name) {
138
+ cpSync(join(TEMPLATES, 'workspace'), dir, { recursive: true });
139
+ restoreGitignore(dir);
140
+ setPackageName(dir, name);
141
+ return { path: dir };
142
+ }
143
+ /**
144
+ * The flat shell — one Nuxt app whose root carries the convention, so no `fronds/`
145
+ * and no workspace. `templates/flat/` is that shell; what separates the two shapes is
146
+ * only where the domain lands.
147
+ */
148
+ createFlat(dir, name) {
149
+ cpSync(join(TEMPLATES, 'flat'), dir, { recursive: true });
150
+ restoreGitignore(dir);
151
+ setPackageName(dir, name);
152
+ return { path: dir };
153
+ }
154
+ /**
155
+ * Put a frond template's directories at the project root. Only the directories: at the
156
+ * root the app's own `package.json` is the frond's, and `@fronds/<name>` comes from the
157
+ * directory through the Nuxt module's alias, so the template's package would only
158
+ * duplicate it under a second name.
159
+ */
160
+ addRootFrond(dir, template) {
161
+ const src = join(TEMPLATES, 'fronds', template);
162
+ for (const entry of readdirSync(src, { withFileTypes: true })) {
163
+ if (!entry.isDirectory())
164
+ continue;
165
+ cpSync(join(src, entry.name), join(dir, entry.name), { recursive: true });
166
+ }
167
+ return { path: dir };
168
+ }
169
+ /** Add a frond (business hexagon) under fronds/<name>. */
170
+ addFrond(wsDir, template, name, conventions = DEFAULT_CONVENTIONS) {
171
+ const dest = join(wsDir, conventions.fronds, name);
172
+ cpSync(join(TEMPLATES, 'fronds', template), dest, { recursive: true });
173
+ // Only the import name. Carrying the convention is what makes a frond — the scan
174
+ // reads directories. `fougere.frond` IS read now (`scanner.ts`, `frondNameOf`), but
175
+ // it renames the contract, which a freshly scaffolded frond has no reason to do.
176
+ const pkgPath = join(dest, 'package.json');
177
+ if (existsSync(pkgPath)) {
178
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
179
+ pkg.name = frondPackage(name, conventions);
180
+ writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
181
+ }
182
+ return { path: dest };
183
+ }
184
+ /** Add an app (consumer) under apps/<name>, from the host package that owns its wiring. */
185
+ addApp(wsDir, template, name) {
186
+ const dest = join(wsDir, 'apps', name);
187
+ const starter = hosts().includes(template) ? starterOf(`@fougere/${template}`) : undefined;
188
+ if (!starter)
189
+ throw new Error(`No host ships a starter for '${template}'. Served: ${hosts().join(', ')}.`);
190
+ cpSync(starter, dest, { recursive: true });
191
+ restoreGitignore(dest);
192
+ setPackageName(dest, name);
193
+ return { path: dest };
194
+ }
195
+ /**
196
+ * What can be scaffolded, of a kind.
197
+ *
198
+ * A FROND comes from this package: it is Fougere's own vocabulary, entities and handlers,
199
+ * and no other package owns it. An APP comes from its HOST — the registry is the hosts this
200
+ * CLI depends on, so `fougere new` offers what is published rather than what was copied here.
201
+ */
202
+ listTemplates(kind) {
203
+ if (kind === 'apps')
204
+ return hosts().sort();
205
+ const dir = join(TEMPLATES, kind);
206
+ if (!existsSync(dir))
207
+ return [];
208
+ return readdirSync(dir, { withFileTypes: true }).filter((e) => e.isDirectory()).map((e) => e.name);
209
+ }
210
+ /**
211
+ * Every app depends on every frond of the workspace — stated once composition is done,
212
+ * because that is when the names exist.
213
+ *
214
+ * A template cannot carry it: the frond is named at composition time (`blog:catalog`),
215
+ * so a dependency written into `templates/apps/nuxt` would name the template instead
216
+ * and resolve to nothing. Which is what happened — the generated app imported
217
+ * `@fronds/blog` whatever you had called it, and did not start.
218
+ *
219
+ * `fronds/` and `apps/` are the registry, like `listTemplates`: nothing to declare.
220
+ */
221
+ linkFronds(wsDir, conventions = DEFAULT_CONVENTIONS) {
222
+ const dirs = (kind) => {
223
+ const dir = join(wsDir, kind);
224
+ if (!existsSync(dir))
225
+ return [];
226
+ return readdirSync(dir, { withFileTypes: true }).filter((e) => e.isDirectory()).map((e) => e.name);
227
+ };
228
+ const fronds = dirs(conventions.fronds);
229
+ if (fronds.length === 0)
230
+ return;
231
+ for (const app of dirs('apps')) {
232
+ const pkgPath = join(wsDir, 'apps', app, 'package.json');
233
+ if (!existsSync(pkgPath))
234
+ continue;
235
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
236
+ pkg.dependencies ??= {};
237
+ for (const frond of fronds)
238
+ pkg.dependencies[frondPackage(frond, conventions)] = 'workspace:*';
239
+ writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
240
+ }
241
+ }
242
+ /**
243
+ * Every `@fougere/*` dependency, pinned to the version that scaffolded it.
244
+ *
245
+ * The templates say `latest`, which reads as "whatever is current" and is not: pnpm
246
+ * answers from a metadata cache, and a fresh project installed 0.6 while the registry
247
+ * said 0.7 — measured. A version is also what makes an install reproducible, which
248
+ * `latest` never was.
249
+ *
250
+ * Read off this CLI's own package, because the scaffold and the packages it names ship
251
+ * together: the version that wrote the file is the one it was written for.
252
+ */
253
+ pinVersions(wsDir, conventions = DEFAULT_CONVENTIONS) {
254
+ const version = scaffoldVersion();
255
+ const manifests = [
256
+ join(wsDir, 'package.json'),
257
+ ...['apps', conventions.fronds].flatMap((kind) => {
258
+ const dir = join(wsDir, kind);
259
+ if (!existsSync(dir))
260
+ return [];
261
+ return readdirSync(dir, { withFileTypes: true })
262
+ .filter((e) => e.isDirectory())
263
+ .map((e) => join(dir, e.name, 'package.json'));
264
+ }),
265
+ ];
266
+ for (const path of manifests) {
267
+ if (!existsSync(path))
268
+ continue;
269
+ const pkg = JSON.parse(readFileSync(path, 'utf8'));
270
+ let moved = false;
271
+ for (const [name, range] of Object.entries(pkg.dependencies ?? {})) {
272
+ if (!name.startsWith('@fougere/') || range !== 'latest')
273
+ continue;
274
+ pkg.dependencies[name] = version;
275
+ moved = true;
276
+ }
277
+ if (moved)
278
+ writeFileSync(path, JSON.stringify(pkg, null, 2) + '\n');
279
+ }
280
+ }
281
+ /**
282
+ * Dev mode: rewrite every `@fougere/*` dependency in the workspace to a
283
+ * `link:` into this monorepo, so `pnpm install` resolves offline (the
284
+ * packages aren't on npm yet). No-op once the packages are published.
285
+ */
286
+ linkLocal(wsDir) {
287
+ const packages = monorepoPackages();
288
+ if (!packages)
289
+ return;
290
+ // Read off the monorepo rather than listed here: a hand-kept map knew the seven
291
+ // packages the default templates use, so the first step beyond the default — a
292
+ // GraphQL surface, auth — added a dependency it had never heard of, which stayed
293
+ // on `latest` and broke the install. `@fougere/nuxt` lives in `app/nuxt/` and
294
+ // `@fougere/transport-http` in `transport/http/`, which is exactly why the name is
295
+ // read from each package.json instead of guessed from its directory.
296
+ const dirOf = new Map();
297
+ const scan = (dir, depth = 0) => {
298
+ for (const e of readdirSync(dir, { withFileTypes: true })) {
299
+ if (!e.isDirectory() || e.name === 'node_modules')
300
+ continue;
301
+ const sub = join(dir, e.name);
302
+ const pkgPath = join(sub, 'package.json');
303
+ if (existsSync(pkgPath)) {
304
+ const { name } = JSON.parse(readFileSync(pkgPath, 'utf8'));
305
+ if (name?.startsWith('@fougere/'))
306
+ dirOf.set(name, sub);
307
+ }
308
+ else if (depth === 0) {
309
+ scan(sub, depth + 1);
310
+ }
311
+ }
312
+ };
313
+ scan(packages);
314
+ const walk = (d) => {
315
+ for (const e of readdirSync(d, { withFileTypes: true })) {
316
+ if (e.name === 'node_modules')
317
+ continue;
318
+ const f = join(d, e.name);
319
+ if (e.isDirectory()) {
320
+ walk(f);
321
+ continue;
322
+ }
323
+ if (e.name !== 'package.json')
324
+ continue;
325
+ const pkg = JSON.parse(readFileSync(f, 'utf8'));
326
+ let changed = false;
327
+ for (const dep of Object.keys(pkg.dependencies ?? {})) {
328
+ const local = dirOf.get(dep);
329
+ if (local) {
330
+ pkg.dependencies[dep] = `link:${local}`;
331
+ changed = true;
332
+ }
333
+ }
334
+ if (changed)
335
+ writeFileSync(f, JSON.stringify(pkg, null, 2) + '\n');
336
+ }
337
+ };
338
+ walk(wsDir);
339
+ }
340
+ }
341
+ //# sourceMappingURL=ProjectWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectWriter.js","sourceRoot":"","sources":["../../../../fronds/scaffold/services/ProjectWriter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../src/bin.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ /** `--version` answers before anything loads; every other command boots the CLI's app. */
3
+ import { readFileSync } from 'node:fs';
4
+ const [first] = process.argv.slice(2);
5
+ if (first === '--version' || first === '-v') {
6
+ console.log(JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf8')).version);
7
+ }
8
+ else {
9
+ await import('./main.js');
10
+ }
11
+ //# sourceMappingURL=bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/bin.ts"],"names":[],"mappings":";AACA,0FAA0F;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAyB,CAAC,OAAO,CAAC,CAAC;AACjI,CAAC;KAAM,CAAC;IACN,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":"AACA,6BAA6B;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EAAE,OAAO,EAAU,MAAM,OAAO,CAAC;AA0B7C,6DAA6D;AAC7D,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CA+CpD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/completion.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAkDzC,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,SAAY,GAAG,MAAM,CAgD3E;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,SAAY,GAAG,MAAM,CA2C5E"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/completion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAetF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGjE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,MAAM,GAAG,KAAK;IAC9D,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;IACxD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,eAAe,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAqC,CAAC,CAAC;IAEzF,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE;QAC/B,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,MAAM,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC;QAC5C,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAC;IACH,eAAe,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAqC,CAAC,CAAC;IAEzF,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../src/machine.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAElD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAEjD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine.js","sourceRoot":"","sources":["../../src/machine.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,UAAU,aAAa,CAAC,GAA4B;IACxD,OAAO,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ /** fougere CLI — a Fougere app powered by citty. */
2
+ import { createApp, setLogLevel, envLevel } from '@fougere/core';
3
+ import { createContainer } from '@fougere/container';
4
+ import { scan } from '../.fougere/scan.generated.js';
5
+ import { ui } from './ui.js';
6
+ import { run } from './runner.js';
7
+ const container = createContainer();
8
+ const terminal = ui();
9
+ container.registerValue('ui', terminal);
10
+ container.registerValue('cwd', process.cwd());
11
+ // The CLI is a Fougere app — silence its boot chatter unless explicitly asked. The
12
+ // threshold is SET, not only announced: a static import evaluates the logger module,
13
+ // its env read included, before this line runs.
14
+ process.env.FOUGERE_LOG_LEVEL ??= 'warn';
15
+ setLogLevel(envLevel() ?? 'warn');
16
+ const app = await createApp({ scan, createContainer: () => container });
17
+ container.registerValue('app', app);
18
+ await run(app);
19
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;AACpC,MAAM,QAAQ,GAAG,EAAE,EAAE,CAAC;AACtB,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACxC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAE9C,mFAAmF;AACnF,qFAAqF;AACrF,gDAAgD;AAChD,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,CAAC;AACzC,WAAW,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,CAAC;AAElC,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;AAExE,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAEpC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AA+BzC;;;;;;;GAOG;AACH,wBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,SAA0C,GAAG,OAAO,CAAC,IAAI,CAAC,CAwGjG"}
@@ -1,34 +1,27 @@
1
1
  import { createAppRunner } from '@fougere/core';
2
2
  import { lowerFirst } from '@fougere/core/contract';
3
- import { defineCommand, runMain } from 'citty';
3
+ import { defineCommand, runMain, showUsage } from 'citty';
4
4
  import { ui } from './ui.js';
5
+ import { installLoader } from './loader.js';
5
6
  import { machineWanted } from './machine.js';
6
7
  import { Shapes } from '@fougere/schema';
7
8
  import { entityToArgs } from './bridge.js';
8
9
  import { readdir } from 'node:fs/promises';
9
10
  import { join } from 'node:path';
11
+ import { pathToFileURL } from 'node:url';
10
12
  function toKebab(name) {
11
13
  return name.replace(/[A-Z]/g, (c) => '-' + c.toLowerCase()).replace(/^-/, '');
12
14
  }
13
15
  function toCamel(kebab) {
14
16
  return kebab.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
15
17
  }
16
- /** Scan app/commands/ for command classes. */
17
- async function loadAppCommands(root, loader) {
18
- const map = new Map();
18
+ /** The presentation classes under app/commands/, by command name — found, not imported: a command imports its own when it runs. */
19
+ async function appCommandFiles(root) {
19
20
  const dir = join(root, 'app', 'commands');
20
21
  const files = await readdir(dir, { withFileTypes: true }).catch(() => []);
21
- for (const f of files) {
22
- if (!f.isFile() || !(f.name.endsWith('.ts') || f.name.endsWith('.js')))
23
- continue;
24
- const name = f.name.replace(/Command\.(ts|js)$/, '').replace(/\.(ts|js)$/, '');
25
- const kebab = toKebab(name);
26
- const mod = await loader(join(dir, f.name));
27
- if (mod.default && typeof mod.default === 'function') {
28
- map.set(kebab, mod.default);
29
- }
30
- }
31
- return map;
22
+ return new Map(files
23
+ .filter((f) => f.isFile() && !f.name.endsWith('.d.ts') && (f.name.endsWith('.ts') || f.name.endsWith('.js')))
24
+ .map((f) => [toKebab(f.name.replace(/Command\.(ts|js)$/, '').replace(/\.(ts|js)$/, '')), join(dir, f.name)]));
32
25
  }
33
26
  /**
34
27
  * Every operation of an app, as a terminal command.
@@ -40,10 +33,13 @@ async function loadAppCommands(root, loader) {
40
33
  */
41
34
  export async function run(app, root = new URL('..', import.meta.url).pathname) {
42
35
  const terminal = ui();
43
- const { createJiti } = await import('jiti');
44
- const jiti = createJiti(import.meta.url, { interopDefault: true });
45
- const loader = (path) => jiti.import(path);
46
- const appCommands = await loadAppCommands(root, loader);
36
+ const loader = async (path) => {
37
+ if (!path.endsWith('.ts'))
38
+ return await import(pathToFileURL(path).href);
39
+ const { createJiti } = await import('jiti');
40
+ return createJiti(import.meta.url, { interopDefault: true }).import(path);
41
+ };
42
+ const appCommands = await appCommandFiles(root);
47
43
  const subCommands = {};
48
44
  for (const frond of app.fronds) {
49
45
  const handlerMap = new Map(frond.handlers.map((h) => [h.address, h]));
@@ -65,9 +61,9 @@ export async function run(app, root = new URL('..', import.meta.url).pathname) {
65
61
  const fields = entity.entityClass.getFields();
66
62
  const args = entityToArgs(fields);
67
63
  // Check for an app command (presentation layer)
68
- const AppCommand = appCommands.get(cmdName);
64
+ const appCommand = appCommands.get(cmdName);
69
65
  // App commands handle their own prompting — don't let citty reject missing args
70
- if (AppCommand) {
66
+ if (appCommand) {
71
67
  for (const def of Object.values(args)) {
72
68
  if (typeof def === 'object' && def)
73
69
  def.required = false;
@@ -99,7 +95,9 @@ export async function run(app, root = new URL('..', import.meta.url).pathname) {
99
95
  .filter(([key]) => key !== '_' && key !== '--')
100
96
  .map(([key, value]) => [key, Shapes.fromText(fields[key]?.shape, value)]));
101
97
  try {
102
- if (AppCommand) {
98
+ await installLoader(process.cwd());
99
+ const AppCommand = appCommand ? (await loader(appCommand)).default : undefined;
100
+ if (typeof AppCommand === 'function') {
103
101
  const cmd = new AppCommand(app, terminal);
104
102
  await cmd.run(input);
105
103
  }
@@ -125,6 +123,8 @@ export async function run(app, root = new URL('..', import.meta.url).pathname) {
125
123
  const main = defineCommand({
126
124
  meta: { name: 'fougere', description: 'Fougere CLI' },
127
125
  subCommands,
126
+ run: async ({ rawArgs }) => { if (rawArgs.length === 0)
127
+ await showUsage(main); },
128
128
  });
129
129
  await runMain(main);
130
130
  }