outfitter 0.2.7 → 0.3.3

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 (312) hide show
  1. package/README.md +34 -7
  2. package/dist/actions/add.d.ts +18 -0
  3. package/dist/actions/add.js +14 -0
  4. package/dist/actions/check-automation.d.ts +20 -0
  5. package/dist/actions/check-automation.js +27 -0
  6. package/dist/actions/check.d.ts +34 -0
  7. package/dist/actions/check.js +19 -0
  8. package/dist/actions/demo.d.ts +12 -0
  9. package/dist/actions/demo.js +11 -0
  10. package/dist/actions/docs-output-mode.d.ts +4 -0
  11. package/dist/actions/docs-output-mode.js +8 -0
  12. package/dist/actions/docs.d.ts +25 -0
  13. package/dist/actions/docs.js +31 -0
  14. package/dist/actions/doctor.d.ts +10 -0
  15. package/dist/actions/doctor.js +15 -0
  16. package/dist/actions/init.d.ts +28 -0
  17. package/dist/actions/init.js +31 -0
  18. package/dist/actions/scaffold.d.ts +19 -0
  19. package/dist/actions/scaffold.js +21 -0
  20. package/dist/actions/shared.d.ts +61 -0
  21. package/dist/actions/shared.js +30 -0
  22. package/dist/actions/upgrade.d.ts +17 -0
  23. package/dist/actions/upgrade.js +21 -0
  24. package/dist/actions.d.ts +1 -1
  25. package/dist/actions.js +53 -22
  26. package/dist/cli.js +66 -4
  27. package/dist/commands/add.js +3 -3
  28. package/dist/commands/check-action-ceremony.d.ts +55 -0
  29. package/dist/commands/check-action-ceremony.js +15 -0
  30. package/dist/commands/check-docs-sentinel.d.ts +27 -0
  31. package/dist/commands/check-docs-sentinel.js +18 -0
  32. package/dist/commands/check-orchestrator.d.ts +2 -0
  33. package/dist/commands/check-orchestrator.js +17 -0
  34. package/dist/commands/check-preset-versions.d.ts +20 -0
  35. package/dist/commands/check-preset-versions.js +15 -0
  36. package/dist/commands/check-publish-guardrails.d.ts +38 -0
  37. package/dist/commands/check-publish-guardrails.js +19 -0
  38. package/dist/commands/check-surface-map-format.d.ts +29 -0
  39. package/dist/commands/check-surface-map-format.js +19 -0
  40. package/dist/commands/check-surface-map.d.ts +20 -0
  41. package/dist/commands/check-surface-map.js +15 -0
  42. package/dist/commands/check-tsdoc.d.ts +2 -21
  43. package/dist/commands/check-tsdoc.js +3 -2
  44. package/dist/commands/check.d.ts +2 -0
  45. package/dist/commands/check.js +3 -3
  46. package/dist/commands/demo.js +1 -1
  47. package/dist/commands/docs-api.d.ts +4 -0
  48. package/dist/commands/docs-api.js +13 -0
  49. package/dist/commands/docs-export.d.ts +4 -0
  50. package/dist/commands/docs-export.js +12 -0
  51. package/dist/commands/docs-list.d.ts +3 -0
  52. package/dist/commands/docs-list.js +13 -0
  53. package/dist/commands/docs-module-loader.d.ts +2 -2
  54. package/dist/commands/docs-module-loader.js +2 -2
  55. package/dist/commands/docs-search.d.ts +3 -0
  56. package/dist/commands/docs-search.js +13 -0
  57. package/dist/commands/docs-show.d.ts +3 -0
  58. package/dist/commands/docs-show.js +13 -0
  59. package/dist/commands/docs-types.d.ts +21 -0
  60. package/dist/commands/doctor.js +4 -12
  61. package/dist/commands/init-execution.d.ts +8 -0
  62. package/dist/commands/init-execution.js +11 -0
  63. package/dist/commands/init-option-resolution.d.ts +5 -0
  64. package/dist/commands/init-option-resolution.js +14 -0
  65. package/dist/commands/init-output.d.ts +9 -0
  66. package/dist/commands/init-output.js +11 -0
  67. package/dist/commands/init.d.ts +7 -5
  68. package/dist/commands/init.js +10 -18
  69. package/dist/commands/jq-utils.d.ts +17 -0
  70. package/dist/commands/jq-utils.js +8 -0
  71. package/dist/commands/repo.d.ts +3 -3
  72. package/dist/commands/repo.js +8 -4
  73. package/dist/commands/scaffold-output.d.ts +4 -0
  74. package/dist/commands/scaffold-output.js +11 -0
  75. package/dist/commands/scaffold-planning.d.ts +65 -0
  76. package/dist/commands/scaffold-planning.js +20 -0
  77. package/dist/commands/scaffold.d.ts +3 -3
  78. package/dist/commands/scaffold.js +10 -16
  79. package/dist/commands/shared-deps.d.ts +5 -4
  80. package/dist/commands/shared-deps.js +3 -3
  81. package/dist/commands/upgrade-apply.d.ts +14 -0
  82. package/dist/commands/upgrade-apply.js +8 -0
  83. package/dist/commands/upgrade-codemods.d.ts +5 -0
  84. package/dist/commands/upgrade-codemods.js +4 -5
  85. package/dist/commands/upgrade-latest-version.d.ts +8 -0
  86. package/dist/commands/upgrade-latest-version.js +8 -0
  87. package/dist/commands/upgrade-migration-docs.d.ts +3 -0
  88. package/dist/commands/upgrade-migration-docs.js +15 -0
  89. package/dist/commands/upgrade-migration-frontmatter.d.ts +2 -0
  90. package/dist/commands/upgrade-migration-frontmatter.js +10 -0
  91. package/dist/commands/upgrade-migration-guides.d.ts +5 -0
  92. package/dist/commands/upgrade-migration-guides.js +10 -0
  93. package/dist/commands/upgrade-output.d.ts +5 -0
  94. package/dist/commands/upgrade-output.js +11 -0
  95. package/dist/commands/upgrade-planner.js +1 -1
  96. package/dist/commands/upgrade-report.d.ts +5 -0
  97. package/dist/commands/upgrade-report.js +8 -0
  98. package/dist/commands/upgrade-workspace.js +2 -2
  99. package/dist/commands/upgrade.d.ts +4 -220
  100. package/dist/commands/upgrade.js +21 -9
  101. package/dist/create/index.d.ts +3 -3
  102. package/dist/create/index.js +2 -30
  103. package/dist/create/planner.d.ts +2 -2
  104. package/dist/create/planner.js +80 -17
  105. package/dist/create/presets.d.ts +2 -2
  106. package/dist/create/presets.js +2 -2
  107. package/dist/create/types.d.ts +1 -1
  108. package/dist/engine/blocks.d.ts +2 -2
  109. package/dist/engine/blocks.js +5 -5
  110. package/dist/engine/collector.d.ts +1 -1
  111. package/dist/engine/collector.js +1 -1
  112. package/dist/engine/config.d.ts +2 -2
  113. package/dist/engine/config.js +4 -4
  114. package/dist/engine/dependency-versions.d.ts +13 -8
  115. package/dist/engine/dependency-versions.js +4 -4
  116. package/dist/engine/executor.d.ts +2 -2
  117. package/dist/engine/executor.js +149 -12
  118. package/dist/engine/index.d.ts +9 -7
  119. package/dist/engine/index.js +17 -31
  120. package/dist/engine/names.js +1 -1
  121. package/dist/engine/post-scaffold.d.ts +2 -2
  122. package/dist/engine/post-scaffold.js +1 -1
  123. package/dist/engine/preset.d.ts +3 -0
  124. package/dist/engine/preset.js +17 -0
  125. package/dist/engine/render-plan.d.ts +1 -1
  126. package/dist/engine/render-plan.js +1 -1
  127. package/dist/engine/template.d.ts +3 -2
  128. package/dist/engine/template.js +24 -7
  129. package/dist/engine/types.d.ts +1 -1
  130. package/dist/engine/types.js +1 -1
  131. package/dist/engine/workspace.d.ts +2 -2
  132. package/dist/engine/workspace.js +1 -1
  133. package/dist/index.d.ts +17 -398
  134. package/dist/index.js +7 -164
  135. package/dist/manifest.js +2 -2
  136. package/dist/output-mode.js +1 -1
  137. package/dist/shared/{outfitter-6fgk6adm.d.ts → outfitter-1tfa9hke.d.ts} +16 -1
  138. package/dist/shared/{outfitter-6bkqjk86.d.ts → outfitter-2nx0k4b3.d.ts} +1 -0
  139. package/dist/shared/outfitter-2ysjerp6.d.ts +44 -0
  140. package/dist/shared/outfitter-2z61gp5w.js +29 -0
  141. package/dist/shared/outfitter-34vg353f.d.ts +82 -0
  142. package/dist/shared/{outfitter-5yjr404v.d.ts → outfitter-3dq4r10s.d.ts} +5 -3
  143. package/dist/shared/outfitter-3rcrvva8.js +103 -0
  144. package/dist/shared/{outfitter-79vfxt6y.js → outfitter-3tx3adgj.js} +12 -3
  145. package/dist/shared/{outfitter-63gse8fv.js → outfitter-507ra35w.js} +33 -64
  146. package/dist/shared/outfitter-56jq0rh2.d.ts +42 -0
  147. package/dist/shared/{outfitter-r419zfgs.d.ts → outfitter-58rn1sj1.d.ts} +1 -1
  148. package/dist/shared/outfitter-5d9wbzhh.d.ts +19 -0
  149. package/dist/shared/outfitter-5j7zee11.d.ts +180 -0
  150. package/dist/shared/{outfitter-s7jetkge.d.ts → outfitter-5r6q2749.d.ts} +1 -1
  151. package/dist/shared/outfitter-5vx1bp7h.js +41 -0
  152. package/dist/shared/outfitter-6ddf91vh.js +190 -0
  153. package/dist/shared/{outfitter-mt7d1ek2.js → outfitter-6mpkh3zn.js} +39 -305
  154. package/dist/shared/{outfitter-ybbazsxq.d.ts → outfitter-6rtcemk7.d.ts} +8 -4
  155. package/dist/shared/{outfitter-9x1brcmq.js → outfitter-6t7xeyg1.js} +13 -38
  156. package/dist/shared/outfitter-738z4c37.js +262 -0
  157. package/dist/shared/{outfitter-yvksv5qb.js → outfitter-76k25svs.js} +4 -4
  158. package/dist/shared/outfitter-7n7vsz95.js +101 -0
  159. package/dist/shared/outfitter-7q9fnbwa.js +60 -0
  160. package/dist/shared/outfitter-84chvazx.js +480 -0
  161. package/dist/shared/outfitter-8ggmja91.js +301 -0
  162. package/dist/shared/{outfitter-qakwgrrh.d.ts → outfitter-8kmak0wc.d.ts} +1 -1
  163. package/dist/shared/outfitter-940h0x7b.js +71 -0
  164. package/dist/shared/{outfitter-fn20r49x.d.ts → outfitter-954y4mzx.d.ts} +1 -1
  165. package/dist/shared/outfitter-b9cpnr7e.js +110 -0
  166. package/dist/shared/outfitter-c7sbs7es.js +92 -0
  167. package/dist/shared/outfitter-cyhzstz0.js +93 -0
  168. package/dist/shared/{outfitter-n9g1zk4x.d.ts → outfitter-cyvr4r8d.d.ts} +3 -2
  169. package/dist/shared/outfitter-d0kqashd.d.ts +98 -0
  170. package/dist/shared/outfitter-dx4hn4ta.js +325 -0
  171. package/dist/shared/{outfitter-bn9c8p2e.js → outfitter-e84cr97g.js} +37 -9
  172. package/dist/shared/outfitter-ec83h4v2.js +17 -0
  173. package/dist/shared/{outfitter-vh4xgb93.js → outfitter-ekb6t1zz.js} +4 -4
  174. package/dist/shared/outfitter-ex8gn945.js +51 -0
  175. package/dist/shared/outfitter-f3a70135.js +75 -0
  176. package/dist/shared/outfitter-fbvfd5zq.d.ts +13 -0
  177. package/dist/shared/outfitter-fj2v5ffz.js +165 -0
  178. package/dist/shared/outfitter-fx1m251y.js +122 -0
  179. package/dist/shared/outfitter-fxry5n58.js +254 -0
  180. package/dist/shared/outfitter-g3hvjshg.js +1 -0
  181. package/dist/shared/{outfitter-f9znfhkn.d.ts → outfitter-gdc7b7de.d.ts} +1 -1
  182. package/dist/shared/outfitter-gyayfx5r.js +156 -0
  183. package/dist/shared/outfitter-h0wmtxw8.d.ts +23 -0
  184. package/dist/shared/{outfitter-z5sx06qe.d.ts → outfitter-hcexcvxe.d.ts} +1 -1
  185. package/dist/shared/outfitter-hf5bj2gq.js +117 -0
  186. package/dist/shared/{outfitter-e9rrfekb.d.ts → outfitter-htx4asgr.d.ts} +4 -3
  187. package/dist/shared/outfitter-jkct38dh.js +53 -0
  188. package/dist/shared/outfitter-jwxggvz4.js +42 -0
  189. package/dist/shared/outfitter-k6zyvg2n.js +306 -0
  190. package/dist/shared/outfitter-mstr60zz.js +215 -0
  191. package/dist/shared/outfitter-n0ed012k.js +101 -0
  192. package/dist/shared/outfitter-n13pqaft.js +19 -0
  193. package/dist/shared/outfitter-nxvjxrmw.d.ts +48 -0
  194. package/dist/shared/outfitter-p2wn07b7.js +160 -0
  195. package/dist/shared/{outfitter-5y646xzk.js → outfitter-px5sv5gn.js} +29 -9
  196. package/dist/shared/outfitter-q1g58t85.js +8 -0
  197. package/dist/shared/{outfitter-pj9vp00r.js → outfitter-qsd5638j.js} +26 -249
  198. package/dist/shared/outfitter-qsrx7m4w.js +72 -0
  199. package/dist/shared/outfitter-r2awqszh.d.ts +52 -0
  200. package/dist/shared/outfitter-rdpw2sbp.d.ts +77 -0
  201. package/dist/shared/outfitter-rp89dafm.js +109 -0
  202. package/dist/shared/outfitter-s1c0whzj.js +121 -0
  203. package/dist/shared/{outfitter-w1j80j1r.js → outfitter-ssrtakh3.js} +21 -5
  204. package/dist/shared/outfitter-ssynegbs.js +167 -0
  205. package/dist/shared/{outfitter-zwyvewr1.js → outfitter-svts4wk2.js} +1 -1
  206. package/dist/shared/outfitter-tavatb5p.js +166 -0
  207. package/dist/shared/outfitter-tqznjgbm.js +44 -0
  208. package/dist/shared/{outfitter-yraebrmw.d.ts → outfitter-wcrp7d7m.d.ts} +1 -1
  209. package/dist/shared/outfitter-wkt0a0ra.js +67 -0
  210. package/dist/shared/{outfitter-ha89qf8q.js → outfitter-wrcqq29p.js} +4 -4
  211. package/dist/shared/outfitter-wyg1tpp5.d.ts +43 -0
  212. package/dist/shared/outfitter-x0vpb7tj.js +126 -0
  213. package/dist/shared/{outfitter-m44n0qzw.js → outfitter-x39awx8g.js} +11 -26
  214. package/dist/shared/outfitter-x4cc5xsq.js +168 -0
  215. package/dist/shared/outfitter-x8w5sjnd.d.ts +39 -0
  216. package/dist/shared/{outfitter-amc4jbs1.d.ts → outfitter-xr6g13nz.d.ts} +2 -2
  217. package/dist/shared/outfitter-xs94pkfe.js +106 -0
  218. package/dist/shared/outfitter-y37yfehn.d.ts +37 -0
  219. package/dist/shared/{outfitter-fhnjpjwc.d.ts → outfitter-y6ee0k45.d.ts} +1 -1
  220. package/dist/shared/{outfitter-j833sxws.js → outfitter-ydw7x6bh.js} +1 -1
  221. package/dist/shared/outfitter-yhb23pjc.js +89 -0
  222. package/dist/shared/{outfitter-mtbpabf3.js → outfitter-ypcvwg1s.js} +1 -1
  223. package/dist/shared/outfitter-znbqe5zy.d.ts +45 -0
  224. package/dist/shared/{outfitter-dpj9erew.d.ts → outfitter-zng6w0t9.d.ts} +1 -1
  225. package/dist/targets/index.d.ts +2 -2
  226. package/dist/targets/index.js +2 -3
  227. package/dist/targets/registry.d.ts +2 -2
  228. package/dist/targets/registry.js +207 -14
  229. package/dist/targets/types.d.ts +1 -1
  230. package/package.json +203 -40
  231. package/dist/shared/chunk-x6644tk8.js +0 -6491
  232. package/dist/shared/outfitter-20f6a2n4.js +0 -35
  233. package/dist/shared/outfitter-5akzvppx.js +0 -125
  234. package/dist/shared/outfitter-7ch26yq8.js +0 -885
  235. package/dist/shared/outfitter-ehp18x1n.js +0 -1
  236. package/dist/shared/outfitter-h3q6ae6d.d.ts +0 -48
  237. package/dist/shared/outfitter-hvsaxgcp.js +0 -1
  238. package/dist/shared/outfitter-p71qb0f0.js +0 -82
  239. package/dist/shared/outfitter-pcj9gg2g.js +0 -909
  240. package/dist/shared/outfitter-xe5mzgdc.js +0 -208
  241. package/dist/shared/outfitter-z0we32cp.d.ts +0 -63
  242. package/template-versions.json +0 -22
  243. package/templates/.gitkeep +0 -0
  244. package/templates/basic/.gitignore.template +0 -30
  245. package/templates/basic/.lefthook.yml.template +0 -26
  246. package/templates/basic/package.json.template +0 -46
  247. package/templates/basic/src/index.ts.template +0 -26
  248. package/templates/basic/tsconfig.json.template +0 -34
  249. package/templates/cli/.gitignore.template +0 -4
  250. package/templates/cli/.lefthook.yml.template +0 -26
  251. package/templates/cli/README.md.template +0 -35
  252. package/templates/cli/biome.json.template +0 -4
  253. package/templates/cli/package.json.template +0 -53
  254. package/templates/cli/src/cli.ts.template +0 -8
  255. package/templates/cli/src/index.ts.template +0 -7
  256. package/templates/cli/src/program.ts.template +0 -31
  257. package/templates/cli/tsconfig.json.template +0 -34
  258. package/templates/daemon/.gitignore.template +0 -4
  259. package/templates/daemon/.lefthook.yml.template +0 -26
  260. package/templates/daemon/README.md.template +0 -67
  261. package/templates/daemon/biome.json.template +0 -4
  262. package/templates/daemon/package.json.template +0 -56
  263. package/templates/daemon/src/cli.ts.template +0 -96
  264. package/templates/daemon/src/daemon-main.ts.template +0 -79
  265. package/templates/daemon/src/daemon.ts.template +0 -11
  266. package/templates/daemon/src/index.ts.template +0 -7
  267. package/templates/daemon/tsconfig.json.template +0 -23
  268. package/templates/full-stack/.gitignore.template +0 -30
  269. package/templates/full-stack/README.md.template +0 -30
  270. package/templates/full-stack/apps/cli/package.json.template +0 -39
  271. package/templates/full-stack/apps/cli/src/cli.ts.template +0 -24
  272. package/templates/full-stack/apps/cli/src/index.test.ts.template +0 -18
  273. package/templates/full-stack/apps/cli/src/index.ts.template +0 -5
  274. package/templates/full-stack/apps/cli/tsconfig.json.template +0 -37
  275. package/templates/full-stack/apps/mcp/package.json.template +0 -40
  276. package/templates/full-stack/apps/mcp/src/index.test.ts.template +0 -18
  277. package/templates/full-stack/apps/mcp/src/index.ts.template +0 -6
  278. package/templates/full-stack/apps/mcp/src/mcp.ts.template +0 -22
  279. package/templates/full-stack/apps/mcp/src/server.ts.template +0 -10
  280. package/templates/full-stack/apps/mcp/tsconfig.json.template +0 -37
  281. package/templates/full-stack/package.json.template +0 -16
  282. package/templates/full-stack/packages/core/package.json.template +0 -36
  283. package/templates/full-stack/packages/core/src/handlers.ts.template +0 -31
  284. package/templates/full-stack/packages/core/src/index.test.ts.template +0 -30
  285. package/templates/full-stack/packages/core/src/index.ts.template +0 -8
  286. package/templates/full-stack/packages/core/src/types.ts.template +0 -13
  287. package/templates/full-stack/packages/core/tsconfig.json.template +0 -34
  288. package/templates/library/.gitignore.template +0 -30
  289. package/templates/library/README.md.template +0 -29
  290. package/templates/library/bunup.config.ts.template +0 -20
  291. package/templates/library/package.json.template +0 -55
  292. package/templates/library/src/handlers.ts.template +0 -31
  293. package/templates/library/src/index.test.ts.template +0 -35
  294. package/templates/library/src/index.ts.template +0 -8
  295. package/templates/library/src/types.ts.template +0 -13
  296. package/templates/library/tsconfig.json.template +0 -34
  297. package/templates/mcp/.gitignore.template +0 -4
  298. package/templates/mcp/.lefthook.yml.template +0 -26
  299. package/templates/mcp/README.md.template +0 -54
  300. package/templates/mcp/biome.json.template +0 -4
  301. package/templates/mcp/package.json.template +0 -53
  302. package/templates/mcp/src/index.ts.template +0 -7
  303. package/templates/mcp/src/mcp.ts.template +0 -33
  304. package/templates/mcp/src/server.ts.template +0 -8
  305. package/templates/mcp/tsconfig.json.template +0 -23
  306. package/templates/minimal/.gitignore.template +0 -30
  307. package/templates/minimal/.lefthook.yml.template +0 -26
  308. package/templates/minimal/package.json.template +0 -53
  309. package/templates/minimal/src/index.ts.template +0 -26
  310. package/templates/minimal/tsconfig.json.template +0 -34
  311. /package/dist/{shared/outfitter-344t1r38.js → commands/docs-types.js} +0 -0
  312. /package/dist/shared/{outfitter-mdt37hqm.js → outfitter-eepj7rf7.js} +0 -0
@@ -1,18 +1,211 @@
1
1
  // @bun
2
- import {
3
- INIT_TARGET_IDS,
4
- READY_TARGET_IDS,
5
- SCAFFOLD_TARGET_IDS,
6
- TARGET_IDS,
7
- TARGET_REGISTRY,
8
- getInitTarget,
9
- getReadyTarget,
10
- getScaffoldTarget,
11
- getTarget,
12
- listTargets,
13
- resolvePlacement
14
- } from "../shared/outfitter-xe5mzgdc.js";
15
- import"../shared/outfitter-mdt37hqm.js";
2
+ import"../shared/outfitter-eepj7rf7.js";
3
+
4
+ // apps/outfitter/src/targets/registry.ts
5
+ import { NotFoundError, Result, ValidationError } from "@outfitter/contracts";
6
+ var TARGET_ALIASES = new Map([
7
+ ["basic", "minimal"],
8
+ ["lib", "library"]
9
+ ]);
10
+ var TARGET_REGISTRY = new Map([
11
+ [
12
+ "minimal",
13
+ {
14
+ id: "minimal",
15
+ description: "Minimal Bun + TypeScript project",
16
+ category: "library",
17
+ placement: "packages",
18
+ presetDir: "minimal",
19
+ defaultBlocks: ["scaffolding"],
20
+ status: "ready",
21
+ scope: "init-only"
22
+ }
23
+ ],
24
+ [
25
+ "cli",
26
+ {
27
+ id: "cli",
28
+ description: "CLI application with Outfitter command ergonomics",
29
+ category: "runnable",
30
+ placement: "apps",
31
+ presetDir: "cli",
32
+ defaultBlocks: ["scaffolding"],
33
+ status: "ready",
34
+ scope: "both"
35
+ }
36
+ ],
37
+ [
38
+ "mcp",
39
+ {
40
+ id: "mcp",
41
+ description: "MCP server with typed tools and action registry",
42
+ category: "runnable",
43
+ placement: "apps",
44
+ presetDir: "mcp",
45
+ defaultBlocks: ["scaffolding"],
46
+ status: "ready",
47
+ scope: "both"
48
+ }
49
+ ],
50
+ [
51
+ "daemon",
52
+ {
53
+ id: "daemon",
54
+ description: "Background daemon with control CLI",
55
+ category: "runnable",
56
+ placement: "apps",
57
+ presetDir: "daemon",
58
+ defaultBlocks: ["scaffolding"],
59
+ status: "ready",
60
+ scope: "both"
61
+ }
62
+ ],
63
+ [
64
+ "api",
65
+ {
66
+ id: "api",
67
+ description: "HTTP API server (Hono)",
68
+ category: "runnable",
69
+ placement: "apps",
70
+ presetDir: "api",
71
+ defaultBlocks: ["scaffolding"],
72
+ status: "stub",
73
+ scope: "both"
74
+ }
75
+ ],
76
+ [
77
+ "worker",
78
+ {
79
+ id: "worker",
80
+ description: "Background job worker",
81
+ category: "runnable",
82
+ placement: "apps",
83
+ presetDir: "worker",
84
+ defaultBlocks: ["scaffolding"],
85
+ status: "stub",
86
+ scope: "both"
87
+ }
88
+ ],
89
+ [
90
+ "web",
91
+ {
92
+ id: "web",
93
+ description: "Web application (TanStack Start)",
94
+ category: "runnable",
95
+ placement: "apps",
96
+ presetDir: "web",
97
+ defaultBlocks: ["scaffolding"],
98
+ status: "stub",
99
+ scope: "both"
100
+ }
101
+ ],
102
+ [
103
+ "library",
104
+ {
105
+ id: "library",
106
+ description: "Reusable library package with Result handlers",
107
+ category: "library",
108
+ placement: "packages",
109
+ presetDir: "library",
110
+ defaultBlocks: ["scaffolding"],
111
+ status: "ready",
112
+ scope: "init-only"
113
+ }
114
+ ],
115
+ [
116
+ "full-stack",
117
+ {
118
+ id: "full-stack",
119
+ description: "Workspace with CLI + MCP apps sharing a core handler package",
120
+ category: "runnable",
121
+ placement: "apps",
122
+ presetDir: "full-stack",
123
+ defaultBlocks: ["scaffolding"],
124
+ status: "ready",
125
+ scope: "init-only"
126
+ }
127
+ ]
128
+ ]);
129
+ var TARGET_IDS = [...TARGET_REGISTRY.keys()];
130
+ var READY_TARGET_IDS = TARGET_IDS.filter((id) => TARGET_REGISTRY.get(id)?.status === "ready");
131
+ var INIT_TARGET_IDS = TARGET_IDS.filter((id) => {
132
+ const target = TARGET_REGISTRY.get(id);
133
+ return target?.status === "ready" && target.scope !== "scaffold-only";
134
+ });
135
+ var SCAFFOLD_TARGET_IDS = TARGET_IDS.filter((id) => {
136
+ const target = TARGET_REGISTRY.get(id);
137
+ return target?.status === "ready" && target.scope !== "init-only";
138
+ });
139
+ function getTarget(id) {
140
+ const resolvedId = TARGET_ALIASES.get(id) ?? id;
141
+ const target = TARGET_REGISTRY.get(resolvedId);
142
+ if (!target) {
143
+ return Result.err(new NotFoundError({
144
+ message: `Unknown target '${id}'. Available targets: ${TARGET_IDS.join(", ")}`,
145
+ resourceType: "target",
146
+ resourceId: id
147
+ }));
148
+ }
149
+ return Result.ok(target);
150
+ }
151
+ function getReadyTarget(id) {
152
+ const targetResult = getTarget(id);
153
+ if (targetResult.isErr()) {
154
+ return targetResult;
155
+ }
156
+ const target = targetResult.value;
157
+ if (target.status === "stub") {
158
+ return Result.err(new ValidationError({
159
+ message: `Target '${id}' is not yet available. ` + "It is planned but the preset has not been implemented. " + `Ready targets: ${READY_TARGET_IDS.join(", ")}`,
160
+ field: "target"
161
+ }));
162
+ }
163
+ return Result.ok(target);
164
+ }
165
+ function getInitTarget(id) {
166
+ const targetResult = getReadyTarget(id);
167
+ if (targetResult.isErr()) {
168
+ return targetResult;
169
+ }
170
+ const target = targetResult.value;
171
+ if (target.scope === "scaffold-only") {
172
+ return Result.err(new ValidationError({
173
+ message: `Target '${id}' cannot be used with init. Use 'outfitter scaffold ${id}' instead.`,
174
+ field: "target"
175
+ }));
176
+ }
177
+ return Result.ok(target);
178
+ }
179
+ function getScaffoldTarget(id) {
180
+ const targetResult = getReadyTarget(id);
181
+ if (targetResult.isErr()) {
182
+ return targetResult;
183
+ }
184
+ const target = targetResult.value;
185
+ if (target.scope === "init-only") {
186
+ return Result.err(new ValidationError({
187
+ message: `Target '${id}' cannot be scaffolded into an existing project. ` + `It is only available for new project creation via 'outfitter init'.`,
188
+ field: "target"
189
+ }));
190
+ }
191
+ return Result.ok(target);
192
+ }
193
+ function resolvePlacement(target) {
194
+ return target.placement;
195
+ }
196
+ function listTargets(filter) {
197
+ let targets = [...TARGET_REGISTRY.values()];
198
+ if (filter?.status) {
199
+ targets = targets.filter((target) => target.status === filter.status);
200
+ }
201
+ if (filter?.scope) {
202
+ targets = targets.filter((target) => target.scope === filter.scope);
203
+ }
204
+ if (filter?.category) {
205
+ targets = targets.filter((target) => target.category === filter.category);
206
+ }
207
+ return targets;
208
+ }
16
209
  export {
17
210
  resolvePlacement,
18
211
  listTargets,
@@ -1,2 +1,2 @@
1
- import { TargetCategory, TargetDefinition, TargetId, TargetScope, TargetStatus } from "../shared/outfitter-r419zfgs.js";
1
+ import { TargetCategory, TargetDefinition, TargetId, TargetScope, TargetStatus } from "../shared/outfitter-58rn1sj1.js";
2
2
  export { TargetStatus, TargetScope, TargetId, TargetDefinition, TargetCategory };
package/package.json CHANGED
@@ -1,13 +1,29 @@
1
1
  {
2
2
  "name": "outfitter",
3
+ "version": "0.3.3",
3
4
  "description": "Outfitter umbrella CLI for scaffolding and project management",
4
- "version": "0.2.7",
5
- "type": "module",
5
+ "keywords": [
6
+ "bun",
7
+ "cli",
8
+ "outfitter",
9
+ "scaffolding",
10
+ "typescript"
11
+ ],
12
+ "license": "MIT",
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "https://github.com/outfitter-dev/outfitter.git",
16
+ "directory": "apps/outfitter"
17
+ },
18
+ "bin": {
19
+ "out": "./dist/cli.js",
20
+ "outfitter": "./dist/cli.js"
21
+ },
6
22
  "files": [
7
- "dist",
8
- "templates",
9
- "template-versions.json"
23
+ "dist"
10
24
  ],
25
+ "type": "module",
26
+ "sideEffects": false,
11
27
  "module": "./dist/index.js",
12
28
  "types": "./dist/index.d.ts",
13
29
  "exports": {
@@ -35,6 +51,48 @@
35
51
  "default": "./dist/commands/check.js"
36
52
  }
37
53
  },
54
+ "./commands/check-action-ceremony": {
55
+ "import": {
56
+ "types": "./dist/commands/check-action-ceremony.d.ts",
57
+ "default": "./dist/commands/check-action-ceremony.js"
58
+ }
59
+ },
60
+ "./commands/check-docs-sentinel": {
61
+ "import": {
62
+ "types": "./dist/commands/check-docs-sentinel.d.ts",
63
+ "default": "./dist/commands/check-docs-sentinel.js"
64
+ }
65
+ },
66
+ "./commands/check-orchestrator": {
67
+ "import": {
68
+ "types": "./dist/commands/check-orchestrator.d.ts",
69
+ "default": "./dist/commands/check-orchestrator.js"
70
+ }
71
+ },
72
+ "./commands/check-preset-versions": {
73
+ "import": {
74
+ "types": "./dist/commands/check-preset-versions.d.ts",
75
+ "default": "./dist/commands/check-preset-versions.js"
76
+ }
77
+ },
78
+ "./commands/check-publish-guardrails": {
79
+ "import": {
80
+ "types": "./dist/commands/check-publish-guardrails.d.ts",
81
+ "default": "./dist/commands/check-publish-guardrails.js"
82
+ }
83
+ },
84
+ "./commands/check-surface-map": {
85
+ "import": {
86
+ "types": "./dist/commands/check-surface-map.d.ts",
87
+ "default": "./dist/commands/check-surface-map.js"
88
+ }
89
+ },
90
+ "./commands/check-surface-map-format": {
91
+ "import": {
92
+ "types": "./dist/commands/check-surface-map-format.d.ts",
93
+ "default": "./dist/commands/check-surface-map-format.js"
94
+ }
95
+ },
38
96
  "./commands/check-tsdoc": {
39
97
  "import": {
40
98
  "types": "./dist/commands/check-tsdoc.d.ts",
@@ -47,12 +105,48 @@
47
105
  "default": "./dist/commands/demo.js"
48
106
  }
49
107
  },
108
+ "./commands/docs-api": {
109
+ "import": {
110
+ "types": "./dist/commands/docs-api.d.ts",
111
+ "default": "./dist/commands/docs-api.js"
112
+ }
113
+ },
114
+ "./commands/docs-export": {
115
+ "import": {
116
+ "types": "./dist/commands/docs-export.d.ts",
117
+ "default": "./dist/commands/docs-export.js"
118
+ }
119
+ },
120
+ "./commands/docs-list": {
121
+ "import": {
122
+ "types": "./dist/commands/docs-list.d.ts",
123
+ "default": "./dist/commands/docs-list.js"
124
+ }
125
+ },
50
126
  "./commands/docs-module-loader": {
51
127
  "import": {
52
128
  "types": "./dist/commands/docs-module-loader.d.ts",
53
129
  "default": "./dist/commands/docs-module-loader.js"
54
130
  }
55
131
  },
132
+ "./commands/docs-search": {
133
+ "import": {
134
+ "types": "./dist/commands/docs-search.d.ts",
135
+ "default": "./dist/commands/docs-search.js"
136
+ }
137
+ },
138
+ "./commands/docs-show": {
139
+ "import": {
140
+ "types": "./dist/commands/docs-show.d.ts",
141
+ "default": "./dist/commands/docs-show.js"
142
+ }
143
+ },
144
+ "./commands/docs-types": {
145
+ "import": {
146
+ "types": "./dist/commands/docs-types.d.ts",
147
+ "default": "./dist/commands/docs-types.js"
148
+ }
149
+ },
56
150
  "./commands/doctor": {
57
151
  "import": {
58
152
  "types": "./dist/commands/doctor.d.ts",
@@ -65,6 +159,30 @@
65
159
  "default": "./dist/commands/init.js"
66
160
  }
67
161
  },
162
+ "./commands/init-execution": {
163
+ "import": {
164
+ "types": "./dist/commands/init-execution.d.ts",
165
+ "default": "./dist/commands/init-execution.js"
166
+ }
167
+ },
168
+ "./commands/init-option-resolution": {
169
+ "import": {
170
+ "types": "./dist/commands/init-option-resolution.d.ts",
171
+ "default": "./dist/commands/init-option-resolution.js"
172
+ }
173
+ },
174
+ "./commands/init-output": {
175
+ "import": {
176
+ "types": "./dist/commands/init-output.d.ts",
177
+ "default": "./dist/commands/init-output.js"
178
+ }
179
+ },
180
+ "./commands/jq-utils": {
181
+ "import": {
182
+ "types": "./dist/commands/jq-utils.d.ts",
183
+ "default": "./dist/commands/jq-utils.js"
184
+ }
185
+ },
68
186
  "./commands/repo": {
69
187
  "import": {
70
188
  "types": "./dist/commands/repo.d.ts",
@@ -77,6 +195,18 @@
77
195
  "default": "./dist/commands/scaffold.js"
78
196
  }
79
197
  },
198
+ "./commands/scaffold-output": {
199
+ "import": {
200
+ "types": "./dist/commands/scaffold-output.d.ts",
201
+ "default": "./dist/commands/scaffold-output.js"
202
+ }
203
+ },
204
+ "./commands/scaffold-planning": {
205
+ "import": {
206
+ "types": "./dist/commands/scaffold-planning.d.ts",
207
+ "default": "./dist/commands/scaffold-planning.js"
208
+ }
209
+ },
80
210
  "./commands/shared-deps": {
81
211
  "import": {
82
212
  "types": "./dist/commands/shared-deps.d.ts",
@@ -89,18 +219,60 @@
89
219
  "default": "./dist/commands/upgrade.js"
90
220
  }
91
221
  },
222
+ "./commands/upgrade-apply": {
223
+ "import": {
224
+ "types": "./dist/commands/upgrade-apply.d.ts",
225
+ "default": "./dist/commands/upgrade-apply.js"
226
+ }
227
+ },
92
228
  "./commands/upgrade-codemods": {
93
229
  "import": {
94
230
  "types": "./dist/commands/upgrade-codemods.d.ts",
95
231
  "default": "./dist/commands/upgrade-codemods.js"
96
232
  }
97
233
  },
234
+ "./commands/upgrade-latest-version": {
235
+ "import": {
236
+ "types": "./dist/commands/upgrade-latest-version.d.ts",
237
+ "default": "./dist/commands/upgrade-latest-version.js"
238
+ }
239
+ },
240
+ "./commands/upgrade-migration-docs": {
241
+ "import": {
242
+ "types": "./dist/commands/upgrade-migration-docs.d.ts",
243
+ "default": "./dist/commands/upgrade-migration-docs.js"
244
+ }
245
+ },
246
+ "./commands/upgrade-migration-frontmatter": {
247
+ "import": {
248
+ "types": "./dist/commands/upgrade-migration-frontmatter.d.ts",
249
+ "default": "./dist/commands/upgrade-migration-frontmatter.js"
250
+ }
251
+ },
252
+ "./commands/upgrade-migration-guides": {
253
+ "import": {
254
+ "types": "./dist/commands/upgrade-migration-guides.d.ts",
255
+ "default": "./dist/commands/upgrade-migration-guides.js"
256
+ }
257
+ },
258
+ "./commands/upgrade-output": {
259
+ "import": {
260
+ "types": "./dist/commands/upgrade-output.d.ts",
261
+ "default": "./dist/commands/upgrade-output.js"
262
+ }
263
+ },
98
264
  "./commands/upgrade-planner": {
99
265
  "import": {
100
266
  "types": "./dist/commands/upgrade-planner.d.ts",
101
267
  "default": "./dist/commands/upgrade-planner.js"
102
268
  }
103
269
  },
270
+ "./commands/upgrade-report": {
271
+ "import": {
272
+ "types": "./dist/commands/upgrade-report.d.ts",
273
+ "default": "./dist/commands/upgrade-report.js"
274
+ }
275
+ },
104
276
  "./commands/upgrade-workspace": {
105
277
  "import": {
106
278
  "types": "./dist/commands/upgrade-workspace.d.ts",
@@ -179,6 +351,12 @@
179
351
  "default": "./dist/engine/post-scaffold.js"
180
352
  }
181
353
  },
354
+ "./engine/preset": {
355
+ "import": {
356
+ "types": "./dist/engine/preset.d.ts",
357
+ "default": "./dist/engine/preset.js"
358
+ }
359
+ },
182
360
  "./engine/render-plan": {
183
361
  "import": {
184
362
  "types": "./dist/engine/render-plan.d.ts",
@@ -227,62 +405,47 @@
227
405
  "types": "./dist/targets/types.d.ts",
228
406
  "default": "./dist/targets/types.js"
229
407
  }
230
- },
231
- "./template-versions": "./template-versions.json",
232
- "./template-versions.json": "./template-versions.json"
408
+ }
233
409
  },
234
- "bin": {
235
- "outfitter": "./dist/cli.js",
236
- "out": "./dist/cli.js"
237
- },
238
- "sideEffects": false,
239
410
  "scripts": {
240
- "build": "bunup --filter outfitter",
411
+ "build": "cd ../.. && bunup --filter outfitter",
241
412
  "postbuild": "bun link",
242
413
  "dev": "bun run src/cli.ts",
243
414
  "test": "bun test",
415
+ "test:init-integration": "bun test ./src/__tests__/init-*.test.ts",
416
+ "test:upgrade-integration": "bun test ./src/__tests__/upgrade-integration-*.test.ts",
244
417
  "test:scaffold-e2e": "OUTFITTER_RUN_SCAFFOLD_E2E=1 bun test ./src/__tests__/scaffold-e2e.test.ts",
245
418
  "test:watch": "bun test --watch",
246
- "lint": "biome lint ./src",
247
- "lint:fix": "biome lint --write ./src",
419
+ "lint": "oxlint ./src",
420
+ "lint:fix": "oxlint --fix ./src",
248
421
  "pretypecheck": "(test -f ../../packages/logging/dist/index.d.ts || bun run --filter @outfitter/logging build) && (test -f ../../packages/cli/dist/output.d.ts || bun run --filter @outfitter/cli build)",
249
422
  "typecheck": "tsc --noEmit",
250
- "sync:templates": "bun run ../../scripts/sync-templates.ts",
251
- "prepack": "bun run sync:templates",
252
423
  "prepublishOnly": "bun ../../scripts/check-publish-manifest.ts",
253
424
  "clean": "rm -rf dist"
254
425
  },
255
426
  "dependencies": {
256
427
  "@clack/prompts": "^1.0.1",
257
- "@outfitter/cli": "0.5.2",
258
- "@outfitter/tui": "0.2.1",
259
- "@outfitter/config": "0.3.3",
260
- "@outfitter/contracts": "0.4.1",
261
- "@outfitter/docs": "0.1.2",
262
- "@outfitter/logging": "0.4.1",
263
- "@outfitter/tooling": "0.3.0",
428
+ "@outfitter/cli": "0.5.3",
429
+ "@outfitter/config": "0.3.4",
430
+ "@outfitter/contracts": "0.4.2",
431
+ "@outfitter/daemon": "0.2.5",
432
+ "@outfitter/docs": "0.2.0",
433
+ "@outfitter/logging": "0.4.2",
434
+ "@outfitter/mcp": "0.4.3",
435
+ "@outfitter/oxlint-plugin": "0.1.0",
436
+ "@outfitter/presets": "0.2.1",
437
+ "@outfitter/tooling": "0.3.4",
438
+ "@outfitter/tui": "0.2.2",
439
+ "@outfitter/types": "0.2.4",
264
440
  "commander": "^14.0.2",
265
441
  "typescript": "^5.9.3",
266
442
  "zod": "^4.3.5"
267
443
  },
268
444
  "devDependencies": {
269
445
  "@types/bun": "^1.3.9",
270
- "@types/node": "^25.0.10"
446
+ "@types/node": "^25.3.0"
271
447
  },
272
448
  "engines": {
273
- "bun": ">=1.3.9"
274
- },
275
- "keywords": [
276
- "outfitter",
277
- "cli",
278
- "scaffolding",
279
- "typescript",
280
- "bun"
281
- ],
282
- "license": "MIT",
283
- "repository": {
284
- "type": "git",
285
- "url": "https://github.com/outfitter-dev/outfitter.git",
286
- "directory": "apps/outfitter"
449
+ "bun": ">=1.3.10"
287
450
  }
288
451
  }