@navbook/cli 0.4.0 → 0.5.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 (78) hide show
  1. package/dist/args.d.ts +28 -0
  2. package/dist/args.js +48 -0
  3. package/dist/args.js.map +1 -0
  4. package/dist/commands/complete.d.ts +10 -0
  5. package/dist/commands/complete.js +59 -51
  6. package/dist/commands/complete.js.map +1 -1
  7. package/dist/commands/compose.d.ts +35 -0
  8. package/dist/commands/doctor.d.ts +15 -0
  9. package/dist/commands/entity.d.ts +73 -0
  10. package/dist/commands/entity.js +59 -44
  11. package/dist/commands/entity.js.map +1 -1
  12. package/dist/commands/init.d.ts +11 -0
  13. package/dist/commands/install.d.ts +17 -0
  14. package/dist/commands/install.js +6 -3
  15. package/dist/commands/install.js.map +1 -1
  16. package/dist/commands/issue.d.ts +35 -0
  17. package/dist/commands/issue.js +4 -5
  18. package/dist/commands/issue.js.map +1 -1
  19. package/dist/commands/plugin.d.ts +36 -0
  20. package/dist/commands/plugin.js +386 -0
  21. package/dist/commands/plugin.js.map +1 -0
  22. package/dist/commands/policy.d.ts +58 -0
  23. package/dist/commands/policy.js +13 -0
  24. package/dist/commands/policy.js.map +1 -1
  25. package/dist/commands/pr-elsewhere.d.ts +40 -0
  26. package/dist/commands/pr-elsewhere.js +209 -0
  27. package/dist/commands/pr-elsewhere.js.map +1 -0
  28. package/dist/commands/pr.d.ts +69 -0
  29. package/dist/commands/pr.js +86 -60
  30. package/dist/commands/pr.js.map +1 -1
  31. package/dist/context.d.ts +42 -0
  32. package/dist/context.js +2 -0
  33. package/dist/context.js.map +1 -1
  34. package/dist/editor.d.ts +23 -0
  35. package/dist/editor.js +4 -0
  36. package/dist/editor.js.map +1 -1
  37. package/dist/errors.d.ts +17 -0
  38. package/dist/install/completions.d.ts +19 -0
  39. package/dist/install/hook.d.ts +32 -0
  40. package/dist/install/hook.js +48 -4
  41. package/dist/install/hook.js.map +1 -1
  42. package/dist/main.d.ts +21 -0
  43. package/dist/main.js +112 -8
  44. package/dist/main.js.map +1 -1
  45. package/dist/plugins/commands.d.ts +69 -0
  46. package/dist/plugins/commands.js +148 -0
  47. package/dist/plugins/commands.js.map +1 -0
  48. package/dist/plugins/hint.d.ts +23 -0
  49. package/dist/plugins/hint.js +65 -0
  50. package/dist/plugins/hint.js.map +1 -0
  51. package/dist/plugins/host.d.ts +125 -0
  52. package/dist/plugins/host.js +18 -0
  53. package/dist/plugins/host.js.map +1 -0
  54. package/dist/plugins/loader.d.ts +54 -0
  55. package/dist/plugins/loader.js +165 -0
  56. package/dist/plugins/loader.js.map +1 -0
  57. package/dist/plugins/resolve.d.ts +50 -0
  58. package/dist/plugins/resolve.js +134 -0
  59. package/dist/plugins/resolve.js.map +1 -0
  60. package/dist/plugins/runtime.d.ts +69 -0
  61. package/dist/plugins/runtime.js +256 -0
  62. package/dist/plugins/runtime.js.map +1 -0
  63. package/dist/plugins/store.d.ts +96 -0
  64. package/dist/plugins/store.js +186 -0
  65. package/dist/plugins/store.js.map +1 -0
  66. package/dist/program.d.ts +49 -0
  67. package/dist/program.js +351 -113
  68. package/dist/program.js.map +1 -1
  69. package/dist/prompt.d.ts +31 -0
  70. package/dist/render/colors.d.ts +13 -0
  71. package/dist/render/detail.d.ts +22 -0
  72. package/dist/render/table.d.ts +32 -0
  73. package/dist/render/table.js +123 -13
  74. package/dist/render/table.js.map +1 -1
  75. package/dist/sort.d.ts +27 -0
  76. package/package.json +9 -2
  77. package/dist/commands/feature.js +0 -202
  78. package/dist/commands/feature.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,aAAa,EAEb,UAAU,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,aAAa,EAIb,qBAAqB,EAErB,cAAc,EACd,SAAS,EACT,MAAM,EACN,cAAc,EACd,WAAW,EACX,WAAW,EACX,aAAa,EAEb,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,aAAa,EAEb,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,EAER,eAAe,EACf,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAEL,QAAQ,EAIR,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAuB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAsBzE,MAAM,UAAU,SAAS,CAAC,GAAQ,EAAE,IAAmB;IACrD,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAE7E,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU,EAAE,eAAe;QAC3B,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CACf,SAAS,CAAC;YACR,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC3B,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvC,CAAC;QACJ,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC;KAClD,CAAC,CAAC;IAEH,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,CACjC,GAAG,EACH,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,EACzD,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACxB,CAAC;IAEF,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,MAAM,IAAI,OAAO,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC,MAAM,UAAU,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAClG,IAAI,IAAI,CAAC,MAAM;QAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC;AAMD,MAAM,UAAU,WAAW,CAAC,GAAQ,EAAE,MAAc,EAAE,IAAqB;IACzE,6EAA6E;IAC7E,uEAAuE;IACvE,mDAAmD;IACnD,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;QACxC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3F,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,qBAAqB,aAAa,QAAQ,MAAM,CAAC,EAAE,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CACnF,CAAC;QACF,IAAI,IAAI,CAAC,MAAM;YAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,MAAM,UAAU,YAAY,CAC1B,GAAQ,EACR,MAAc,EACd,MAAgB,EAChB,IAAoB;IAEpB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;QACxC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;YAC5E,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACrE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,4EAA4E;QAC5E,oEAAoE;QACpE,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;YAC/B,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,MAAM,IAAI,CACjF,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,MAAM;YAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC;AAcD,MAAM,UAAU,WAAW,CAAC,GAAQ,EAAE,MAAc,EAAE,IAAmB;IACvE,wEAAwE;IACxE,sBAAsB;IACtB,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACxF,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,IAAI,CAAC,sEAAsE,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAEzD,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE;QAChD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE3D,8EAA8E;QAC9E,8EAA8E;QAC9E,4EAA4E;QAC5E,yEAAyE;QACzE,MAAM,OAAO,GAAwB,IAAI,CAAC,OAAO;YAC/C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,cAAc;gBACnB,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO;oBACvC,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,SAAS,CAAC;QAClB,MAAM,QAAQ,GAAG,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;QAElE,MAAM,IAAI,GAAoB;YAC5B,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;YACzB,IAAI,EAAE,EAAE;YACR,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC;QAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,mBAAmB;YAC/B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACpC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;YACnD,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAC9D,CAAC,CAAC;QAEH,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,YAAY,CACpC,EAAE,EACF,MAAM,EACN,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAC/C,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACxB,CAAC;QAEF,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC;QACjE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,IAAI,IAAI,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7E,IAAI,QAAQ;YAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAC/E,IAAI,IAAI,CAAC,MAAM;YAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5D,0EAA0E;QAC1E,+BAA+B;QAC/B,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CAAC,GAAQ,EAAE,MAAoB,EAAE,OAA4B;IACpF,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO;IAC3D,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,UAAU;QAAE,OAAO;IAC9B,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC;IACjE,MAAM,IAAI,GAAG,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;IACpD,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC;QAAE,OAAO;IACzD,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,EAAE,6BAA6B;QACzE,QAAQ,OAAO,qCAAqC,CACvD,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,SAAS,CAAC,GAAQ,EAAE,KAAe,EAAE,IAAmB;IACtE,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEjC,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAyB,CAAC;IACnD,MAAM,SAAS,GAAG,CAAC,MAAoB,EAAiB,EAAE;QACxD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACtD,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAkB;QAClC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;QACpF,2EAA2E;QAC3E,2EAA2E;QAC3E,8BAA8B;QAC9B;YACE,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACrD,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAClF,QAAQ,EAAE,IAAI;SACf;QACD;YACE,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ;YAC7C,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;SACtF;KACF,CAAC;IACF,0EAA0E;IAC1E,uDAAuD;IACvD,MAAM,OAAO,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAE/C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5C,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,GAAG,QAAQ,CACT,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACpB,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE;YACnC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;SACzC,CAAC,CACH,CACF,IAAI,CACN,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,UAAU,CACR,GAAG,EACH,IAAI,EACJ,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAC1E;QACE,GAAG,IAAI;QACP,YAAY,EAAE;YACZ,GAAG,OAAO;YACV;gBACE,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,CAAC,MAAoB,EAAE,EAAE,CAC9B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;qBACjE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;qBACvB,IAAI,CAAC,GAAG,CAAC;aACf;SACF;KACF,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,aAAa,CAAC,GAAQ,EAAE,IAAmB;IAClD,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO;IACtB,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QACH,KAAK,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;QAC3E,0EAA0E;QAC1E,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO;IACxB,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CACf,GAAG,KAAK,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,sBAAsB;QAC9E,oCAAoC,CACvC,IAAI,CACN,CAAC;AACJ,CAAC;AAcD,MAAM,UAAU,UAAU,CAAC,GAAQ,EAAE,MAA0B,EAAE,IAAkB;IACjF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC;IAC7C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAC5D,wEAAwE;QACxE,2DAA2D;QAC3D,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,oBAAoB,SAAS,IAAI,CACvF,CAAC;QACJ,CAAC;QACD,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzB,OAAO;IACT,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,wDAAwD,CAAC,CAAC;IAE5E,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IACvF,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/C,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IAC1E,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,KAAyB;IAC3C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,CAAC,IAAI,KAAK,4CAA4C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,+EAA+E;AAC/E,SAAS,iBAAiB,CAAC,MAAmB;IAC5C,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,GAAQ,EAAE,EAAU,EAAE,MAAmB,EAAE,SAAkB;IACzF,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO;IAC/B,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,SAAS,IAAI,CAAC,CAAC;IAE9C,QAAQ,WAAW,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/E,KAAK,SAAS;YACZ,OAAO;QACT,KAAK,kBAAkB;YACrB,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,iCAAiC,CACjF,CAAC;YACF,OAAO;QACT,KAAK,KAAK;YACR,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAC;gBAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAQ,EAAE,MAAmB;IAChD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC;IACpF,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;QAC3E,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IACD,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,gBAAgB,CAAC,GAAQ,EAAE,MAAkB,EAAE,MAAmB,EAAE,MAAc;IACzF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAQ,EAAE;QAClC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,cAAc,CAAC;IAClE,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,KAAK,gBAAgB;YACnB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,CAAC,GAAG,OAAO,MAAM,IAAI,CAAC,CAAC;YAChE,OAAO;QACT,KAAK,SAAS;YACZ,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,GAAG,SAAS,MAAM,IAAI,CAAC,CAAC;YAC3D,OAAO;QACT,KAAK,UAAU;YACb,yEAAyE;YACzE,yEAAyE;YACzE,gEAAgE;YAChE,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,GAAG,MAAM,CAAC,GAAG,6CAA6C,MAAM,oCAAoC,CACrG,CAAC;YACF,OAAO;QACT,KAAK,UAAU;YACb,IAAI,CACF,QAAQ;gBACN,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,kDAAkD,MAAM,oDAAoD,MAAM,uBAAuB;gBACxJ,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,kCAAkC,MAAM,oBAAoB,MAAM,UAAU,CAC9F,CAAC;YACF,OAAO;QACT,KAAK,aAAa;YAChB,IAAI,CACF,QAAQ;gBACN,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,wCAAwC,MAAM,CAAC,QAAQ,oCAAoC,MAAM,wCAAwC,MAAM,SAAS;gBACvK,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,wCAAwC,MAAM,CAAC,QAAQ,8BAA8B,MAAM,SAAS,CACtH,CAAC;YACF,OAAO;QACT;YACE,OAAO;IACX,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,GAAQ,EAAE,MAAc,EAAE,IAAkB;IACrE,MAAM,YAAY,GAAG,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,YAAY,EAAE,CAAC;QACjB,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,YAAY,YAAY,CAAC,EAAE,0BAA0B,YAAY,CAAC,GAAG,0BAA0B,CAChG,CAAC;IACJ,CAAC;IACD,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * The CLI's context: a workspace context plus the terminal it reports to.
3
+ *
4
+ * Everything that is not presentation — repository paths, the clock, ID
5
+ * minting, identity — lives in `workspace/ctx.ts` and is shared with any other
6
+ * front end. This module adds only what a terminal program needs on top.
7
+ */
8
+ import { type CoreExtensions, type WsCtx } from "@navbook/core";
9
+ import { type Colors } from "./render/colors.ts";
10
+ export interface Ctx extends WsCtx {
11
+ colors: Colors;
12
+ stdout: NodeJS.WriteStream;
13
+ stderr: NodeJS.WriteStream;
14
+ }
15
+ export interface MakeContextOptions {
16
+ cwd?: string;
17
+ env?: NodeJS.ProcessEnv;
18
+ stdout?: NodeJS.WriteStream;
19
+ stderr?: NodeJS.WriteStream;
20
+ /** Skip repository discovery, for commands that work outside a repository. */
21
+ requireRepo?: boolean;
22
+ /** The Navbook directory, when the caller already knows it; see `makeWsCtx`. */
23
+ navDir?: string;
24
+ /**
25
+ * What the loaded plugins registered (spec 02 §2.12).
26
+ *
27
+ * Supplied only for a command whose declaration says it needs the format
28
+ * extensions, because loading them means importing plugin code and that is
29
+ * what the budget of spec 05 §5.2 cannot afford on every invocation.
30
+ */
31
+ ext?: CoreExtensions;
32
+ }
33
+ /**
34
+ * How the program asks for its context: built on first use, and memoised.
35
+ *
36
+ * `requireRepo: false` is for a command that works outside a repository; the
37
+ * default refuses to build one there, which is the error most commands want.
38
+ */
39
+ export type GetCtx = (opts?: {
40
+ requireRepo?: boolean;
41
+ }) => Ctx;
42
+ export declare function makeContext(opts?: MakeContextOptions): Ctx;
package/dist/context.js CHANGED
@@ -15,6 +15,8 @@ export function makeContext(opts = {}) {
15
15
  cwd: opts.cwd,
16
16
  env,
17
17
  ...(opts.requireRepo !== undefined ? { requireRepo: opts.requireRepo } : {}),
18
+ ...(opts.navDir !== undefined ? { navDir: opts.navDir } : {}),
19
+ ...(opts.ext !== undefined ? { ext: opts.ext } : {}),
18
20
  });
19
21
  return { ...ws, colors: makeColors(stdout, env), stdout, stderr };
20
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAc,MAAM,eAAe,CAAC;AACtD,OAAO,EAAe,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAiB7D,MAAM,UAAU,WAAW,CAAC,OAA2B,EAAE;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAE7C,MAAM,EAAE,GAAG,SAAS,CAAC;QACnB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,GAAG;QACH,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7E,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAuB,SAAS,EAAc,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAe,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAmC7D,MAAM,UAAU,WAAW,CAAC,OAA2B,EAAE;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAE7C,MAAM,EAAE,GAAG,SAAS,CAAC;QACnB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,GAAG;QACH,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrD,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACpE,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * `$EDITOR` integration for the `--edit` flows.
3
+ *
4
+ * The editor is always opened on the real Navbook file, exactly as spec 04 §4.3
5
+ * describes, so nothing has to be parsed back out of a scratch buffer.
6
+ */
7
+ import type { Ctx } from "./context.ts";
8
+ /** Single-quote a path for a POSIX shell, escaping any embedded quotes. */
9
+ export declare function shellQuote(value: string): string;
10
+ /** The editor command to use, or null when none can be determined. */
11
+ export declare function editorCommand(env: NodeJS.ProcessEnv): string | null;
12
+ /** Open `absolutePath` in the user's editor, failing if it exits non-zero. */
13
+ export declare function openInEditor(ctx: Ctx, absolutePath: string): void;
14
+ /**
15
+ * Edit a Navbook file before it exists.
16
+ *
17
+ * The buffer is a real `.md` file (so editors highlight it) held next to
18
+ * `COMMIT_EDITMSG` in the git directory, and it is prefilled with the exact
19
+ * frontmatter the file will carry — the author can adjust the title, labels and
20
+ * body in one pass. Nothing is created in `.navbook/` until the text is valid,
21
+ * so an abort leaves no partial entity behind.
22
+ */
23
+ export declare function editBuffer(ctx: Ctx, name: string, initial: string): string;
package/dist/editor.js CHANGED
@@ -41,6 +41,10 @@ export function openInEditor(ctx, absolutePath) {
41
41
  });
42
42
  if (result.error)
43
43
  fail(`could not start editor '${editor}': ${result.error.message}`);
44
+ // Ctrl-C reaches the editor too, and a killed process has a signal, not a
45
+ // status: "status null" would say nothing about what happened.
46
+ if (result.signal)
47
+ fail(`editor '${editor}' was interrupted (${result.signal}); nothing was written`);
44
48
  if ((result.status ?? 1) !== 0)
45
49
  fail(`editor '${editor}' exited with status ${result.status}`);
46
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"editor.js","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,2EAA2E;AAC3E,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,aAAa,CAAC,GAAsB;IAClD,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,GAAQ,EAAE,YAAoB;IACzD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,sBAAsB,EAAE;YAC3B,0EAA0E;SAC3E,CAAC,CAAC;IACL,CAAC;IACD,yEAAyE;IACzE,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,EAAE;QAChE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;QACX,GAAG,EAAE,GAAG,CAAC,QAAQ;QACjB,GAAG,EAAE,GAAG,CAAC,GAAG;KACb,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,KAAK;QAAE,IAAI,CAAC,2BAA2B,MAAM,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACtF,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,WAAW,MAAM,wBAAwB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AACjG,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,GAAQ,EAAE,IAAY,EAAE,OAAe;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxB,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"editor.js","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,2EAA2E;AAC3E,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,aAAa,CAAC,GAAsB;IAClD,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,GAAQ,EAAE,YAAoB;IACzD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,sBAAsB,EAAE;YAC3B,0EAA0E;SAC3E,CAAC,CAAC;IACL,CAAC;IACD,yEAAyE;IACzE,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,EAAE;QAChE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;QACX,GAAG,EAAE,GAAG,CAAC,QAAQ;QACjB,GAAG,EAAE,GAAG,CAAC,GAAG;KACb,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,KAAK;QAAE,IAAI,CAAC,2BAA2B,MAAM,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACtF,0EAA0E;IAC1E,+DAA+D;IAC/D,IAAI,MAAM,CAAC,MAAM;QACf,IAAI,CAAC,WAAW,MAAM,sBAAsB,MAAM,CAAC,MAAM,wBAAwB,CAAC,CAAC;IACrF,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,WAAW,MAAM,wBAAwB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AACjG,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,GAAQ,EAAE,IAAY,EAAE,OAAe;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxB,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Exit codes — spec 04 §4.2: 0 success, 1 operational error, 2 format violation.
3
+ */
4
+ export type ExitCode = 0 | 1 | 2;
5
+ export declare class NavError extends Error {
6
+ readonly exitCode: ExitCode;
7
+ /** Extra lines printed under the message, e.g. candidate IDs. */
8
+ readonly details: string[];
9
+ constructor(message: string, opts?: {
10
+ exitCode?: ExitCode;
11
+ details?: string[];
12
+ });
13
+ }
14
+ /** An operational error: not found, ambiguous, malformed input (exit 1). */
15
+ export declare function fail(message: string, details?: string[]): never;
16
+ /** A format violation detected by `doctor` (exit 2). */
17
+ export declare function failFormat(message: string, details?: string[]): never;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Shell completions.
3
+ *
4
+ * The scripts stay deliberately thin: anything that needs to know about the
5
+ * repository calls back into `nav __complete`, so completion behavior lives in
6
+ * one implementation rather than three shell dialects.
7
+ */
8
+ export declare const SHELLS: readonly ["bash", "zsh", "fish"];
9
+ export type Shell = (typeof SHELLS)[number];
10
+ export declare function isShell(value: string): value is Shell;
11
+ /** Guess the user's shell from `$SHELL`, defaulting to bash. */
12
+ export declare function detectShell(env: NodeJS.ProcessEnv): Shell;
13
+ /** Where a shell looks for per-user completion scripts. */
14
+ export declare function completionPath(shell: Shell, env: NodeJS.ProcessEnv): string;
15
+ /** Extra advice printed after installing, where a shell needs configuration. */
16
+ export declare function completionNote(shell: Shell, path: string): string | null;
17
+ export declare function completionScript(shell: Shell): string;
18
+ export declare function installCompletions(shell: Shell, env: NodeJS.ProcessEnv): string;
19
+ export declare function uninstallCompletions(shell: Shell, env: NodeJS.ProcessEnv): string | null;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The `pre-commit` hook — spec 04 §4.5.
3
+ *
4
+ * The hook is a thin shell script that calls the binary, so `--no-verify` and
5
+ * manual hook removal behave exactly as users expect. It is written as a marked
6
+ * block appended to any existing hook, and `nav uninstall --hooks` removes
7
+ * precisely that block and nothing else.
8
+ */
9
+ export declare const MARKER_BEGIN = "# >>> navbook >>>";
10
+ export declare const MARKER_END = "# <<< navbook <<<";
11
+ export declare const HOOK_NAME = "pre-commit";
12
+ export declare function hookPath(repoRoot: string): string;
13
+ export declare function isInstalled(repoRoot: string): boolean;
14
+ /**
15
+ * Whether the hook has the block, and whether it is this `nav`'s.
16
+ *
17
+ * `outdated` is a block an older `nav` wrote: the markers are there but what
18
+ * is between them is not what this one would write — the block before the
19
+ * `set -e` fix, say. Seeing only the marker would leave every existing
20
+ * install with the old block for good.
21
+ */
22
+ export declare function hookState(repoRoot: string): "absent" | "current" | "outdated";
23
+ /**
24
+ * Write the marked block: appended, creating the hook file if there is none,
25
+ * or put in place of an older block, leaving everything around it alone.
26
+ */
27
+ export declare function installHook(repoRoot: string): void;
28
+ /**
29
+ * Remove exactly the marked block. A hook that contained nothing else is
30
+ * deleted; a hook the user also wrote by hand keeps everything they wrote.
31
+ */
32
+ export declare function uninstallHook(repoRoot: string): void;
@@ -17,9 +17,15 @@ const BODY = `${MARKER_BEGIN}
17
17
  # Validate staged Navbook files. Only a format violation (exit 2) blocks the
18
18
  # commit; warnings never do, and a clone without nav installed is unaffected.
19
19
  # Commit with --no-verify, or delete this block, to skip the check.
20
+ #
21
+ # The status is captured rather than tested on the next line: this block is
22
+ # appended to whatever hook was already here, and under 'set -e' a bare
23
+ # 'nav doctor --staged' would end the hook on exit 1 (an operational error,
24
+ # not a format violation) before the test below ever ran.
20
25
  if command -v nav >/dev/null 2>&1; then
21
- nav doctor --staged
22
- if [ $? -eq 2 ]; then
26
+ navbook_status=0
27
+ nav doctor --staged || navbook_status=$?
28
+ if [ "$navbook_status" -eq 2 ]; then
23
29
  exit 1
24
30
  fi
25
31
  fi
@@ -31,13 +37,51 @@ export function isInstalled(repoRoot) {
31
37
  const path = hookPath(repoRoot);
32
38
  return existsSync(path) && readFileSync(path, "utf8").includes(MARKER_BEGIN);
33
39
  }
34
- /** Append the marked block, creating the hook file if there is none. */
40
+ /**
41
+ * Whether the hook has the block, and whether it is this `nav`'s.
42
+ *
43
+ * `outdated` is a block an older `nav` wrote: the markers are there but what
44
+ * is between them is not what this one would write — the block before the
45
+ * `set -e` fix, say. Seeing only the marker would leave every existing
46
+ * install with the old block for good.
47
+ */
48
+ export function hookState(repoRoot) {
49
+ const path = hookPath(repoRoot);
50
+ if (!existsSync(path))
51
+ return "absent";
52
+ const block = findBlock(readFileSync(path, "utf8"));
53
+ if (block === null)
54
+ return "absent";
55
+ return block.text === BODY ? "current" : "outdated";
56
+ }
57
+ /** The marked block's text and where it sits, or null when there is none. */
58
+ function findBlock(content) {
59
+ const start = content.indexOf(MARKER_BEGIN);
60
+ if (start === -1)
61
+ return null;
62
+ const close = content.indexOf(MARKER_END, start);
63
+ // An opening marker with no closing one is a block somebody cut short by
64
+ // hand; it runs to the end of the file, which is what uninstall assumes too.
65
+ const end = close === -1 ? content.length : close + MARKER_END.length;
66
+ return { start, end, text: content.slice(start, end) };
67
+ }
68
+ /**
69
+ * Write the marked block: appended, creating the hook file if there is none,
70
+ * or put in place of an older block, leaving everything around it alone.
71
+ */
35
72
  export function installHook(repoRoot) {
36
73
  const path = hookPath(repoRoot);
37
74
  mkdirSync(dirname(path), { recursive: true });
38
75
  const existing = existsSync(path) ? readFileSync(path, "utf8") : "";
39
- if (existing.includes(MARKER_BEGIN))
76
+ const block = findBlock(existing);
77
+ if (block !== null) {
78
+ if (block.text === BODY)
79
+ return;
80
+ const replaced = `${existing.slice(0, block.start)}${BODY}${existing.slice(block.end)}`;
81
+ writeFileSync(path, replaced.endsWith("\n") ? replaced : `${replaced}\n`, "utf8");
82
+ chmodSync(path, statSync(path).mode | 0o111);
40
83
  return;
84
+ }
41
85
  const content = existing.trim() === ""
42
86
  ? `${SHEBANG}\n${BODY}\n`
43
87
  : `${existing.replace(/\n*$/, "\n")}\n${BODY}\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/install/hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/install/hook.ts"],"names":[],"mappings":"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"}
package/dist/main.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * `nav` entry point.
4
+ */
5
+ import { type ExitCode } from "./errors.ts";
6
+ export interface RunOptions {
7
+ argv?: string[];
8
+ cwd?: string;
9
+ env?: NodeJS.ProcessEnv;
10
+ stdout?: NodeJS.WriteStream;
11
+ stderr?: NodeJS.WriteStream;
12
+ }
13
+ /**
14
+ * Run the CLI and return its exit code. Never throws for expected failures.
15
+ *
16
+ * Asynchronous because a plugin's code is imported when one of its commands
17
+ * runs (spec 04 §4.3), and `import()` is a promise. Nothing else about the
18
+ * CLI became async: every built-in verb is still synchronous from end to end,
19
+ * and a run with no plugins awaits nothing that was not already resolved.
20
+ */
21
+ export declare function run(opts?: RunOptions): Promise<ExitCode>;
package/dist/main.js CHANGED
@@ -7,31 +7,135 @@ import { WorkspaceError } from "@navbook/core";
7
7
  import { CommanderError } from "commander";
8
8
  import { makeContext } from "./context.js";
9
9
  import { NavError } from "./errors.js";
10
- import { buildProgram } from "./program.js";
11
- /** Run the CLI and return its exit code. Never throws for expected failures. */
12
- export function run(opts = {}) {
10
+ import { hintUndeclared } from "./plugins/hint.js";
11
+ import { missingLine, resolvePlugins, skippedLine, } from "./plugins/resolve.js";
12
+ import { PluginRuntime } from "./plugins/runtime.js";
13
+ import { BUILTIN_NOUNS, buildProgram } from "./program.js";
14
+ /** The reading of a repository there was none of, used when discovery failed. */
15
+ const NO_DECLARATION = {
16
+ plugins: new Map(),
17
+ declared: false,
18
+ problems: [],
19
+ };
20
+ /**
21
+ * Run the CLI and return its exit code. Never throws for expected failures.
22
+ *
23
+ * Asynchronous because a plugin's code is imported when one of its commands
24
+ * runs (spec 04 §4.3), and `import()` is a promise. Nothing else about the
25
+ * CLI became async: every built-in verb is still synchronous from end to end,
26
+ * and a run with no plugins awaits nothing that was not already resolved.
27
+ */
28
+ export async function run(opts = {}) {
13
29
  const argv = opts.argv ?? process.argv.slice(2);
14
30
  const stdout = opts.stdout ?? process.stdout;
15
31
  const stderr = opts.stderr ?? process.stderr;
32
+ const env = opts.env ?? process.env;
33
+ // Built once and memoised. `ext` is filled in below, before any command
34
+ // runs, when and only when the words typed call for it.
16
35
  let ctx = null;
17
- const getCtx = () => {
18
- ctx ??= makeContext({ cwd: opts.cwd, env: opts.env, stdout, stderr });
36
+ let ext;
37
+ // A second context, for the commands that work outside a repository (the
38
+ // plugin store's verbs), which a missing repository must not fail. Kept
39
+ // apart so a command that does need one still gets the complaint.
40
+ let looseCtx = null;
41
+ const getCtx = (want = {}) => {
42
+ if (want.requireRepo === false) {
43
+ looseCtx ??= makeContext({
44
+ cwd: opts.cwd,
45
+ env: opts.env,
46
+ stdout,
47
+ stderr,
48
+ requireRepo: false,
49
+ });
50
+ return looseCtx;
51
+ }
52
+ ctx ??= makeContext({ cwd: opts.cwd, env: opts.env, stdout, stderr, ...(ext ? { ext } : {}) });
19
53
  return ctx;
20
54
  };
21
- const program = buildProgram(getCtx);
55
+ let plugins;
56
+ try {
57
+ plugins = loadPluginRuntime(getCtx, env, stderr);
58
+ }
59
+ catch (error) {
60
+ return report(error, stderr);
61
+ }
62
+ // The one place plugin code may be imported before parsing, and only because
63
+ // the tree cannot be read without it: a registered directory would otherwise
64
+ // parse as an uninterpreted path and a registered key as raw YAML. Decided
65
+ // from the manifests, so a run that needs none pays nothing (spec 04 §4.3).
66
+ if (plugins.needsCoreFor(argv)) {
67
+ try {
68
+ ext = await plugins.coreExtensions(getCtx());
69
+ // Drop any context built while resolving, so nothing that reads the tree
70
+ // can have been handed one without the extensions.
71
+ ctx = null;
72
+ }
73
+ catch (error) {
74
+ return report(error, stderr);
75
+ }
76
+ }
77
+ const program = buildProgram(getCtx, plugins);
22
78
  program.exitOverride();
23
79
  program.configureOutput({
24
80
  writeOut: (text) => stdout.write(text),
25
81
  writeErr: (text) => stderr.write(text),
26
82
  });
27
83
  try {
28
- program.parse(argv, { from: "user" });
84
+ await program.parseAsync(argv, { from: "user" });
29
85
  return 0;
30
86
  }
31
87
  catch (error) {
32
88
  return report(error, stderr);
33
89
  }
34
90
  }
91
+ /**
92
+ * Resolve what plugins this invocation has, and say what is missing.
93
+ *
94
+ * Reading the declaration needs a repository, and plenty of commands work
95
+ * without one (`nav id`, `nav --help`, `nav init`). A context that cannot be
96
+ * built is therefore not an error here: it means there is no declaration to
97
+ * read, and whichever command runs next will complain about the missing
98
+ * repository in its own words if it needs one.
99
+ */
100
+ function loadPluginRuntime(getCtx, env, stderr) {
101
+ let resolved;
102
+ try {
103
+ resolved = resolvePlugins(getCtx(), env);
104
+ }
105
+ catch {
106
+ resolved = { active: [], missing: [], skipped: [], declaration: NO_DECLARATION };
107
+ }
108
+ const runtime = new PluginRuntime(resolved, BUILTIN_NOUNS);
109
+ // Said once per run, before anything is parsed, so the reason a command is
110
+ // missing is on screen above the complaint that it is missing.
111
+ for (const line of runtime.notices)
112
+ stderr.write(`${line}\n`);
113
+ for (const { name, reason } of resolved.skipped)
114
+ stderr.write(`${skippedLine(name, reason)}\n`);
115
+ for (const name of resolved.missing) {
116
+ stderr.write(`${missingLine(name, navDirOf(getCtx))}\n`);
117
+ }
118
+ // Said here rather than per command: whatever runs next, the reason `nav` is
119
+ // ignoring a directory belongs above its output, not buried in it.
120
+ try {
121
+ const ctx = getCtx();
122
+ if (ctx.hasNavbook) {
123
+ hintUndeclared(ctx, resolved.declaration, resolved.active.flatMap((plugin) => plugin.manifest.format?.root ?? []));
124
+ }
125
+ }
126
+ catch {
127
+ // No repository: there is no tree to have namespaces in.
128
+ }
129
+ return runtime;
130
+ }
131
+ function navDirOf(getCtx) {
132
+ try {
133
+ return getCtx().navDir;
134
+ }
135
+ catch {
136
+ return ".navbook";
137
+ }
138
+ }
35
139
  function report(error, stderr) {
36
140
  if (error instanceof CommanderError) {
37
141
  // Commander already wrote help or the version string.
@@ -93,6 +197,6 @@ function invokedDirectly() {
93
197
  if (invokedDirectly()) {
94
198
  exitQuietlyOnClosedPipe(process.stdout);
95
199
  exitQuietlyOnClosedPipe(process.stderr);
96
- process.exitCode = run();
200
+ process.exitCode = await run();
97
201
  }
98
202
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Building Commander commands out of manifests — spec 04 §4.3.
3
+ *
4
+ * Every command a plugin adds is built from its declaration, with no plugin
5
+ * code loaded. That is what makes `nav --help` and shell completion work
6
+ * without paying for an import, and it is what the manifest's shapes exist to
7
+ * make possible. The plugin's own module is imported inside the action, the
8
+ * moment somebody actually runs the command.
9
+ *
10
+ * A name that collides with a built-in noun, or with one an earlier plugin
11
+ * took, is refused and the plugin skipped, because a word that means different
12
+ * things depending on load order is worse than one that means nothing.
13
+ */
14
+ import type { CommandSpec, OptionSpec, VerbContribution } from "@navbook/core";
15
+ import { Command } from "commander";
16
+ import type { Ctx } from "../context.ts";
17
+ import type { LoadedPlugin } from "./resolve.ts";
18
+ /** Everything the CLI needs to know about one plugin's declared commands. */
19
+ export interface PluginCommands {
20
+ /** Top-level nouns, by name, with the plugin that declared each. */
21
+ nouns: Map<string, {
22
+ plugin: LoadedPlugin;
23
+ spec: CommandSpec;
24
+ }>;
25
+ /** Contributions to existing verbs, keyed by the verb as typed. */
26
+ contributions: Map<string, {
27
+ plugin: LoadedPlugin;
28
+ spec: VerbContribution;
29
+ }[]>;
30
+ /** Plugins dropped for a collision, by name, so callers need not parse a message. */
31
+ skipped: Set<string>;
32
+ /** One line per plugin skipped, for stderr. */
33
+ problems: string[];
34
+ }
35
+ /**
36
+ * Sort out which plugin owns what, refusing collisions.
37
+ *
38
+ * `taken` is the built-in noun vocabulary. A plugin colliding with one of
39
+ * those loses outright; two plugins colliding with each other are resolved by
40
+ * which was resolved first, and the loser is named.
41
+ */
42
+ export declare function collectCommands(plugins: readonly LoadedPlugin[], taken: readonly string[]): PluginCommands;
43
+ /** How a plugin command's action is run once its module is loaded. */
44
+ export type RunCommand = (plugin: LoadedPlugin, path: string, args: string[], opts: Record<string, unknown>) => Promise<void>;
45
+ /** Build one plugin noun into a Commander command tree. */
46
+ export declare function buildPluginCommand(plugin: LoadedPlugin, spec: CommandSpec, getCtx: () => Ctx, run: RunCommand): Command;
47
+ /** Apply one declared option to a command. */
48
+ export declare function applyOption(command: Command, spec: OptionSpec): void;
49
+ /**
50
+ * Why a declared option cannot be applied, or null when it can.
51
+ *
52
+ * Two different rules, because two different namespaces are at stake.
53
+ *
54
+ * On a plugin's **own** command the plugin owns every flag, so a short one is
55
+ * its business: `nav feature open -m "…"` reads exactly as `nav issue open -m
56
+ * "…"` does, and denying it would make a plugin's commands feel like
57
+ * second-class ones for no gain.
58
+ *
59
+ * On a **contribution** to a built-in verb the namespace is shared, and short
60
+ * flags are the scarce part of it — `-m`, `-y`, `-n` already mean things
61
+ * across the whole CLI. A plugin taking one there would be discovered by
62
+ * whoever installed two plugins rather than by whoever wrote the second, so
63
+ * they are refused outright rather than raced for.
64
+ *
65
+ * A long flag that is already taken is refused either way, and checked before
66
+ * Commander sees it: `.option()` throws on a duplicate, which would take the
67
+ * whole CLI down over one plugin's manifest.
68
+ */
69
+ export declare function optionCollision(command: Command, spec: OptionSpec, where?: "own" | "contribution"): string | null;