@navbook/cli 0.3.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.
- package/dist/args.d.ts +28 -0
- package/dist/args.js +48 -0
- package/dist/args.js.map +1 -0
- package/dist/commands/complete.d.ts +10 -0
- package/dist/commands/complete.js +59 -51
- package/dist/commands/complete.js.map +1 -1
- package/dist/commands/compose.d.ts +35 -0
- package/dist/commands/doctor.d.ts +15 -0
- package/dist/commands/entity.d.ts +73 -0
- package/dist/commands/entity.js +59 -44
- package/dist/commands/entity.js.map +1 -1
- package/dist/commands/init.d.ts +11 -0
- package/dist/commands/install.d.ts +17 -0
- package/dist/commands/install.js +6 -3
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/issue.d.ts +35 -0
- package/dist/commands/issue.js +4 -5
- package/dist/commands/issue.js.map +1 -1
- package/dist/commands/plugin.d.ts +36 -0
- package/dist/commands/plugin.js +386 -0
- package/dist/commands/plugin.js.map +1 -0
- package/dist/commands/policy.d.ts +58 -0
- package/dist/commands/policy.js +28 -2
- package/dist/commands/policy.js.map +1 -1
- package/dist/commands/pr-elsewhere.d.ts +40 -0
- package/dist/commands/pr-elsewhere.js +209 -0
- package/dist/commands/pr-elsewhere.js.map +1 -0
- package/dist/commands/pr.d.ts +69 -0
- package/dist/commands/pr.js +132 -68
- package/dist/commands/pr.js.map +1 -1
- package/dist/context.d.ts +42 -0
- package/dist/context.js +2 -0
- package/dist/context.js.map +1 -1
- package/dist/editor.d.ts +23 -0
- package/dist/editor.js +4 -0
- package/dist/editor.js.map +1 -1
- package/dist/errors.d.ts +17 -0
- package/dist/install/completions.d.ts +19 -0
- package/dist/install/hook.d.ts +32 -0
- package/dist/install/hook.js +48 -4
- package/dist/install/hook.js.map +1 -1
- package/dist/main.d.ts +21 -0
- package/dist/main.js +112 -8
- package/dist/main.js.map +1 -1
- package/dist/plugins/commands.d.ts +69 -0
- package/dist/plugins/commands.js +148 -0
- package/dist/plugins/commands.js.map +1 -0
- package/dist/plugins/hint.d.ts +23 -0
- package/dist/plugins/hint.js +65 -0
- package/dist/plugins/hint.js.map +1 -0
- package/dist/plugins/host.d.ts +125 -0
- package/dist/plugins/host.js +18 -0
- package/dist/plugins/host.js.map +1 -0
- package/dist/plugins/loader.d.ts +54 -0
- package/dist/plugins/loader.js +165 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/resolve.d.ts +50 -0
- package/dist/plugins/resolve.js +134 -0
- package/dist/plugins/resolve.js.map +1 -0
- package/dist/plugins/runtime.d.ts +69 -0
- package/dist/plugins/runtime.js +256 -0
- package/dist/plugins/runtime.js.map +1 -0
- package/dist/plugins/store.d.ts +96 -0
- package/dist/plugins/store.js +186 -0
- package/dist/plugins/store.js.map +1 -0
- package/dist/program.d.ts +49 -0
- package/dist/program.js +353 -114
- package/dist/program.js.map +1 -1
- package/dist/prompt.d.ts +31 -0
- package/dist/render/colors.d.ts +13 -0
- package/dist/render/detail.d.ts +22 -0
- package/dist/render/table.d.ts +32 -0
- package/dist/render/table.js +123 -13
- package/dist/render/table.js.map +1 -1
- package/dist/sort.d.ts +27 -0
- package/package.json +9 -2
- package/dist/commands/feature.js +0 -202
- package/dist/commands/feature.js.map +0 -1
package/dist/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAEL,QAAQ,EACR,UAAU,EACV,SAAS,EACT,OAAO,EACP,OAAO,EACP,SAAS,EACT,OAAO,GAER,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEtD;;;;;;GAMG;AACH,SAAS,cAAc;IACrB,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAwB,CAAC;IAC1E,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;AAExC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;kCAce,CAAC;AAEnC;;;;;GAKG;AACH,SAAS,UAAU,CAAC,KAA8B;IAChD,OAAO,6BAA6B,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;AAC3E,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,eAAe,CAAC,OAAgB;IACvC,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAiB;IAC5C,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;IAC/C,OAAO;SACJ,IAAI,CAAC,KAAK,CAAC;SACX,WAAW,CAAC,gFAAgF,CAAC;SAC7F,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC;SACjC,kBAAkB,EAAE;SACpB,uBAAuB,EAAE,CAAC;IAE7B,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,oDAAoD,CAAC;SACjE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7C,OAAO;SACJ,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;SAC5F,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAE3C,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,UAAU,EAAE,sEAAsE,CAAC;SAC1F,MAAM,CAAC,OAAO,EAAE,yDAAyD,CAAC;SAC1E,MAAM,CAAC,QAAQ,EAAE,mDAAmD,CAAC;SACrE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAE/C,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,qEAAqE,CAAC;SAClF,SAAS,CAAC,IAAI,MAAM,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;SACxE,MAAM,CAAC,SAAS,EAAE,6BAA6B,CAAC;SAChD,SAAS,CAAC,IAAI,MAAM,CAAC,uBAAuB,EAAE,qCAAqC,CAAC,CAAC;SACrF,MAAM,CAAC,gBAAgB,EAAE,oDAAoD,CAAC;SAC9E,MAAM,CAAC,WAAW,EAAE,6BAA6B,CAAC;SAClD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAEhD,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,SAAS,CAAC,IAAI,MAAM,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;SACxE,MAAM,CAAC,SAAS,EAAE,kCAAkC,CAAC;SACrD,SAAS,CAAC,IAAI,MAAM,CAAC,uBAAuB,EAAE,qCAAqC,CAAC,CAAC;SACrF,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;SACxD,MAAM,CAAC,WAAW,EAAE,6BAA6B,CAAC;SAClD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAElD,OAAO;SACJ,OAAO,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SACvC,WAAW,CAAC,kEAAkE,CAAC;SAC/E,QAAQ,CAAC,YAAY,CAAC;SACtB,MAAM,CAAC,CAAC,KAAe,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAE7D,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,MAAiB;IACvC,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAErF,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,6CAA6C,CAAC;SAC1D,MAAM,CAAC,mBAAmB,EAAE,iEAAiE,CAAC;SAC9F,MAAM,CAAC,gBAAgB,EAAE,uDAAuD,CAAC;SACjF,MAAM,CAAC,sBAAsB,EAAE,gDAAgD,CAAC;SAChF,MAAM,CAAC,SAAS,EAAE,2BAA2B,CAAC;SAC9C,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,EAAE,OAAO,EAAE,EAAE,CAAC;SAClE,MAAM,CAAC,oBAAoB,EAAE,iCAAiC,EAAE,OAAO,EAAE,EAAE,CAAC;SAC5E,MAAM,CAAC,oBAAoB,EAAE,wCAAwC,EAAE,OAAO,EAAE,EAAE,CAAC;SACnF,MAAM,CAAC,oBAAoB,EAAE,WAAW,CAAC;SACzC,MAAM,CAAC,kBAAkB,EAAE,qCAAqC,EAAE,OAAO,EAAE,EAAE,CAAC;SAC9E,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;SACpC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAE/C,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;SAC5C,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;SACpC,MAAM,CAAC,CAAC,EAAU,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;SAC5C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;SACpC,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,UAAU,EAAE,qCAAqC,CAAC;SACzD,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;SACpC,MAAM,CAAC,CAAC,EAAU,EAAE,MAAgB,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAE5F,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;SAC5C,WAAW,CAAC,qDAAqD,CAAC;SAClE,MAAM,CAAC,WAAW,EAAE,6BAA6B,CAAC;SAClD,MAAM,CAAC,mBAAmB,EAAE,kCAAkC,CAAC;SAC/D,MAAM,CAAC,WAAW,EAAE,oDAAoD,CAAC;SACzE,MAAM,CAAC,sBAAsB,EAAE,2CAA2C,CAAC;SAC3E,MAAM,CAAC,kBAAkB,EAAE,6CAA6C,CAAC;SACzE,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC;SACvD,MAAM,CAAC,sBAAsB,EAAE,uCAAuC,CAAC;SACvE,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;SACpC,MAAM,CAAC,CAAC,EAAU,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;SAC5C,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,SAAS,EAAE,8BAA8B,CAAC;SACjD,MAAM,CAAC,YAAY,EAAE,qDAAqD,CAAC;SAC3E,MAAM,CAAC,WAAW,EAAE,wDAAwD,CAAC;SAC7E,MAAM,CAAC,kBAAkB,EAAE,8DAA8D,CAAC;QAC3F,oEAAoE;SACnE,MAAM,CAAC,CAAC,EAAsB,EAAE,IAAI,EAAE,EAAE,CACvC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC,CAC/D,CAAC;IAEJ,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QAC/B,4EAA4E;QAC5E,yDAAyD;QACzD,YAAY,EAAE,EAAE;QAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC;QAC5D,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE;YACzB,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,+DAA+D,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC;KACjE,CAAC,CAAC;IACH,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,MAAiB;IAC5C,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAE1F,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,SAAS,EAAE,+BAA+B,CAAC;SACpD,WAAW,CAAC,kBAAkB,CAAC;SAC/B,MAAM,CAAC,sBAAsB,EAAE,4CAA4C,CAAC;SAC5E,MAAM,CAAC,eAAe,EAAE,mEAAmE,CAAC;SAC5F,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;SACzC,MAAM,CAAC,CAAC,KAAa,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAE1E,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uDAAuD,CAAC;SACpE,MAAM,CAAC,QAAQ,EAAE,gDAAgD,CAAC;SAClE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;SAClD,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,QAAQ,EAAE,+DAA+D,CAAC;SACjF,MAAM,CAAC,eAAe,EAAE,qCAAqC,EAAE,CAAC,KAAK,EAAE,EAAE,CACxE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACjD;SACA,MAAM,CAAC,CAAC,IAAY,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAExE,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;SAClD,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;SACzC,MAAM,CAAC,CAAC,IAAY,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAExE,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAiB;IACzC,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAC3D,+CAA+C,CAChD,CAAC;IAEF,IAAI;SACD,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;SAClD,QAAQ,CAAC,SAAS,EAAE,gCAAgC,CAAC;SACrD,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,sBAAsB,EAAE,6CAA6C,CAAC;SAC7E,MAAM,CAAC,eAAe,EAAE,uDAAuD,CAAC;SAChF,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;SACzC,MAAM,CAAC,CAAC,IAAY,EAAE,KAAa,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAE1F,IAAI;SACD,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;SAClD,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;SAC9C,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;SACzC,MAAM,CAAC,CAAC,IAAY,EAAE,IAAY,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEzF,IAAI;SACD,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;SAClD,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,QAAQ,EAAE,iDAAiD,CAAC;SACnE,MAAM,CAAC,CAAC,IAAY,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAErE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAiB;IAC1C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEpF,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;SACvC,WAAW,CAAC,kBAAkB,CAAC;SAC/B,MAAM,CAAC,sBAAsB,EAAE,gDAAgD,CAAC;SAChF,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,EAAE,OAAO,EAAE,EAAE,CAAC;SAClE,MAAM,CAAC,oBAAoB,EAAE,iCAAiC,EAAE,OAAO,EAAE,EAAE,CAAC;SAC5E,MAAM,CAAC,oBAAoB,EAAE,WAAW,CAAC;SACzC,MAAM,CAAC,kBAAkB,EAAE,qCAAqC,EAAE,OAAO,EAAE,EAAE,CAAC;QAC/E,uEAAuE;QACvE,qEAAqE;QACrE,2DAA2D;SAC1D,MAAM,CAAC,YAAY,EAAE,yCAAyC,EAAE,CAAC,KAAK,EAAE,EAAE,CACzE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACjD;SACA,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,CAAC;SAClE,MAAM,CAAC,eAAe,EAAE,2CAA2C,CAAC;SACpE,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;SACvC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAEhE,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;SAC5C,WAAW,CAAC,8CAA8C,CAAC;SAC3D,cAAc,CAAC,eAAe,EAAE,4BAA4B,CAAC;SAC7D,MAAM,CAAC,aAAa,EAAE,qDAAqD,CAAC;SAC5E,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;SACvC,MAAM,CAAC,CAAC,EAAU,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAElE,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;SAC5C,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;SACvC,MAAM,CAAC,CAAC,EAAU,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;QACrC,YAAY,EAAE,EAAE;QAChB,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE,CACzB,OAAO,CAAC,MAAM,CACZ,gBAAgB,EAChB,kBAAkB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,YAAY,GAAG,CACrE;QACH,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE;QACzB,wEAAwE;QACxE,qEAAqE;QACrE,0EAA0E;QAC1E,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,0CAA0C,EAAE,CAAC,KAAK,EAAE,EAAE,CAClF,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACjD;QACH,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAC3B,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,uCAAuC,CAAC;KAC7E,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAgBD,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAC5B,MAAe,EACf,IAAgB,EAChB,MAAiB,EACjB,MAAyB;IAEzB,MAAM,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;IACzD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAEhC,MAAM,IAAI,GAAG,MAAM;SAChB,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,YAAY,EAAE,kCAAkC,CAAC;SAC1D,WAAW,CAAC,QAAQ,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,mBAAmB,CAAC;SACrF,WAAW,CAAC,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;SACvC,MAAM,CAAC,QAAQ,EAAE,+CAA+C,CAAC,CAAC;IACrE,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,CAAC,KAAe,EAAE,IAAI,EAAE,EAAE,CACpC,MAAM,CAAC,OAAO;QACZ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,CAAC;QAC5D,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,CAAC,CAC9D,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM;SAChB,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;SAC5C,WAAW,CAAC,cAAc,IAAI,mBAAmB,CAAC;SAClD,MAAM,CAAC,QAAQ,EAAE,8CAA8C,CAAC,CAAC;IACpE,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAU,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAErE,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;SAC5C,WAAW,CAAC,YAAY,IAAI,oBAAoB,CAAC;SACjD,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;SACpC,MAAM,CAAC,CAAC,EAAU,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnE,MAAM;SACH,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;SAC5C,WAAW,CAAC,sBAAsB,IAAI,EAAE,CAAC;SACzC,MAAM,CAAC,sBAAsB,EAAE,4CAA4C,CAAC;SAC5E,MAAM,CAAC,yBAAyB,EAAE,6BAA6B,CAAC;SAChE,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;SACpC,MAAM,CAAC,CAAC,EAAU,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAEtE,MAAM;SACH,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;SAC5C,WAAW,CAAC,YAAY,IAAI,aAAa,CAAC;SAC1C,MAAM,CAAC,sBAAsB,EAAE,mDAAmD,CAAC;SACnF,MAAM,CAAC,qBAAqB,EAAE,gDAAgD,CAAC;SAC/E,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;SACpC,MAAM,CAAC,CAAC,EAAU,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAiB,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACzE,IAAI,MAAM,CAAC,QAAQ;YAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;;YACvD,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;SAC5C,WAAW,CAAC,YAAY,IAAI,yCAAyC,CAAC;SACtE,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;SACpC,MAAM,CAAC,CAAC,EAAU,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAErE,MAAM,MAAM,GAAG,MAAM;SAClB,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;SAC5C,WAAW,CAAC,cAAc,IAAI,mCAAmC,CAAC;SAClE,MAAM,CAAC,aAAa,EAAE,+DAA+D,CAAC;SACtF,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAU,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,QAAkB;IACvD,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
|
package/dist/prompt.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Confirmation for commands that change files or configuration.
|
|
3
|
+
*
|
|
4
|
+
* Following `apt`: print the exact actions first, then ask. `--yes` skips the
|
|
5
|
+
* question but never the printing, so a scripted run still leaves a record of
|
|
6
|
+
* what it did.
|
|
7
|
+
*/
|
|
8
|
+
import type { Ctx } from "./context.ts";
|
|
9
|
+
export interface Action {
|
|
10
|
+
/** One line describing what will happen, e.g. the exact command to be run. */
|
|
11
|
+
description: string;
|
|
12
|
+
perform: () => void;
|
|
13
|
+
}
|
|
14
|
+
export interface ConfirmOptions {
|
|
15
|
+
title: string;
|
|
16
|
+
actions: readonly Action[];
|
|
17
|
+
assumeYes?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/** Print the planned actions, ask once, then perform them. */
|
|
20
|
+
export declare function confirmAndPerform(ctx: Ctx, opts: ConfirmOptions): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Whether there is somebody at a terminal to answer a question.
|
|
23
|
+
*
|
|
24
|
+
* Both ends matter: the question is written to stdout and the answer is read
|
|
25
|
+
* from stdin, so a run with either one redirected has nobody to ask. A caller
|
|
26
|
+
* that would otherwise block a pipeline on a prompt uses this to decide to
|
|
27
|
+
* say its piece and carry on instead.
|
|
28
|
+
*/
|
|
29
|
+
export declare function isInteractive(ctx: Ctx): boolean;
|
|
30
|
+
/** Ask a yes/no question; anything but `y`/`yes` — including EOF — is a no. */
|
|
31
|
+
export declare function askYesNo(ctx: Ctx, question: string): boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal color, enabled only for a TTY that has not opted out.
|
|
3
|
+
*
|
|
4
|
+
* `--json` output and every fixture comparison therefore run uncolored.
|
|
5
|
+
*/
|
|
6
|
+
import pc from "picocolors";
|
|
7
|
+
export type Colors = ReturnType<typeof pc.createColors>;
|
|
8
|
+
export declare function colorEnabled(stream: {
|
|
9
|
+
isTTY?: boolean;
|
|
10
|
+
}, env: NodeJS.ProcessEnv): boolean;
|
|
11
|
+
export declare function makeColors(stream: {
|
|
12
|
+
isTTY?: boolean;
|
|
13
|
+
}, env: NodeJS.ProcessEnv): Colors;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `show` rendering: an entity's metadata, description and comment thread.
|
|
3
|
+
*/
|
|
4
|
+
import { type EntityRecord, type LinkNode, type ReviewPolicyReading } from "@navbook/core";
|
|
5
|
+
import type { Colors } from "./colors.ts";
|
|
6
|
+
export interface DetailLinks {
|
|
7
|
+
/** The issue this one is filed under, when its file names one. */
|
|
8
|
+
parent?: LinkNode;
|
|
9
|
+
/** Its subtasks, already limited to the depth the caller asked for. */
|
|
10
|
+
subtasks: LinkNode[];
|
|
11
|
+
}
|
|
12
|
+
export interface DetailOptions {
|
|
13
|
+
colors: Colors;
|
|
14
|
+
/** The Navbook directory's name, for the repository-relative `path` row. */
|
|
15
|
+
navDir: string;
|
|
16
|
+
/** Resolved decomposition links; absent for pull requests (§2.5). */
|
|
17
|
+
links?: DetailLinks;
|
|
18
|
+
/** The review policy to count by; the defaults when none is given (§2.10). */
|
|
19
|
+
reviewPolicy?: ReviewPolicyReading;
|
|
20
|
+
}
|
|
21
|
+
/** Render one entity with its full comment thread. */
|
|
22
|
+
export declare function renderDetail(entity: EntityRecord, opts: DetailOptions): string;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Column-aligned listings for `nav issue list` / `nav pr list`.
|
|
3
|
+
*/
|
|
4
|
+
import type { Colors } from "./colors.ts";
|
|
5
|
+
export interface Column {
|
|
6
|
+
header: string;
|
|
7
|
+
/** Cells are truncated to this width when the terminal is narrow. */
|
|
8
|
+
flexible?: boolean;
|
|
9
|
+
minWidth?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface TableOptions {
|
|
12
|
+
colors: Colors;
|
|
13
|
+
/** Total width available; unlimited when undefined. */
|
|
14
|
+
width?: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The width to fit a table to, or undefined for no limit.
|
|
18
|
+
*
|
|
19
|
+
* Undefined below a threshold as well as for a non-terminal: shrinking
|
|
20
|
+
* flexible columns into twenty characters produces something less readable
|
|
21
|
+
* than letting the line wrap, so there is a floor under which no width is
|
|
22
|
+
* better than the real one.
|
|
23
|
+
*/
|
|
24
|
+
export declare function terminalWidth(stdout: {
|
|
25
|
+
columns?: number;
|
|
26
|
+
}): number | undefined;
|
|
27
|
+
/** Render a table, shrinking flexible columns to fit the terminal width. */
|
|
28
|
+
export declare function renderTable(columns: readonly Column[], rows: readonly string[][], opts: TableOptions): string;
|
|
29
|
+
/** Pad `text` with spaces to `width` terminal columns. */
|
|
30
|
+
export declare function pad(text: string, width: number): string;
|
|
31
|
+
/** Truncate to `width` columns, marking the cut with a single ellipsis character. */
|
|
32
|
+
export declare function truncate(text: string, width: number): string;
|
package/dist/render/table.js
CHANGED
|
@@ -1,20 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Column-aligned listings for `nav issue list` / `nav pr list`.
|
|
3
3
|
*/
|
|
4
|
+
import { createRequire } from "node:module";
|
|
4
5
|
const GAP = " ";
|
|
6
|
+
/**
|
|
7
|
+
* The width to fit a table to, or undefined for no limit.
|
|
8
|
+
*
|
|
9
|
+
* Undefined below a threshold as well as for a non-terminal: shrinking
|
|
10
|
+
* flexible columns into twenty characters produces something less readable
|
|
11
|
+
* than letting the line wrap, so there is a floor under which no width is
|
|
12
|
+
* better than the real one.
|
|
13
|
+
*/
|
|
14
|
+
export function terminalWidth(stdout) {
|
|
15
|
+
const columns = stdout.columns;
|
|
16
|
+
return typeof columns === "number" && columns > 20 ? columns : undefined;
|
|
17
|
+
}
|
|
5
18
|
/** Render a table, shrinking flexible columns to fit the terminal width. */
|
|
6
19
|
export function renderTable(columns, rows, opts) {
|
|
7
20
|
if (rows.length === 0)
|
|
8
21
|
return "";
|
|
9
|
-
const
|
|
22
|
+
const cells = rows.map((row) => columns.map((_, index) => printable(row[index] ?? "")));
|
|
23
|
+
const measured = cells.map((row) => row.map(displayWidth));
|
|
24
|
+
const widths = columns.map((column, index) => Math.max(column.header.length, ...measured.map((row) => row[index])));
|
|
10
25
|
const available = opts.width;
|
|
11
26
|
if (available !== undefined)
|
|
12
27
|
shrinkToFit(columns, widths, available);
|
|
13
28
|
const lines = [];
|
|
14
29
|
lines.push(opts.colors.dim(joinCells(columns.map((column, index) => pad(column.header.toUpperCase(), widths[index])))));
|
|
15
|
-
|
|
16
|
-
lines.push(joinCells(
|
|
17
|
-
|
|
30
|
+
cells.forEach((row, rowIndex) => {
|
|
31
|
+
lines.push(joinCells(row.map((text, index) => {
|
|
32
|
+
const width = widths[index];
|
|
33
|
+
const fitted = fit(text, measured[rowIndex]?.[index], width);
|
|
34
|
+
return padTo(fitted.text, fitted.width, width);
|
|
35
|
+
})));
|
|
36
|
+
});
|
|
18
37
|
return lines.join("\n");
|
|
19
38
|
}
|
|
20
39
|
function shrinkToFit(columns, widths, available) {
|
|
@@ -38,21 +57,112 @@ function shrinkToFit(columns, widths, available) {
|
|
|
38
57
|
function joinCells(cells) {
|
|
39
58
|
return cells.join(GAP).replace(/\s+$/, "");
|
|
40
59
|
}
|
|
41
|
-
|
|
42
|
-
|
|
60
|
+
/** Pad `text` with spaces to `width` terminal columns. */
|
|
61
|
+
export function pad(text, width) {
|
|
62
|
+
return padTo(text, displayWidth(text), width);
|
|
63
|
+
}
|
|
64
|
+
function padTo(text, measured, width) {
|
|
65
|
+
const padding = width - measured;
|
|
43
66
|
return padding > 0 ? text + " ".repeat(padding) : text;
|
|
44
67
|
}
|
|
45
|
-
/**
|
|
68
|
+
/**
|
|
69
|
+
* A cell as it should be shown rather than obeyed.
|
|
70
|
+
*
|
|
71
|
+
* Titles and labels are text people wrote, and YAML lets them hold control
|
|
72
|
+
* characters: a tab moves the cursor by as much as eight columns, and an
|
|
73
|
+
* escape sequence recolours the rest of the listing. Neither has a width a
|
|
74
|
+
* table can reserve, so whitespace becomes a space and anything else a
|
|
75
|
+
* replacement character, which at least says something was there.
|
|
76
|
+
*/
|
|
77
|
+
function printable(text) {
|
|
78
|
+
return text.replace(/[\t\n\r]/g, " ").replace(/\p{Cc}/gu, "\uFFFD");
|
|
79
|
+
}
|
|
80
|
+
/** Truncate to `width` columns, marking the cut with a single ellipsis character. */
|
|
46
81
|
export function truncate(text, width) {
|
|
82
|
+
return fit(text, displayWidth(text), width).text;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Cut `text`, which is `measured` columns wide, to at most `width` columns.
|
|
86
|
+
*
|
|
87
|
+
* By grapheme cluster, not by code unit: `slice` cuts between the halves of a
|
|
88
|
+
* surrogate pair, leaving a lone surrogate that is not valid UTF-8, and takes a
|
|
89
|
+
* ZWJ sequence apart into the people it is made of. By column, not by count,
|
|
90
|
+
* for the reason `displayWidth` is: a wide character needs two, so the result
|
|
91
|
+
* can be a column short of `width` when one does not fit beside the ellipsis.
|
|
92
|
+
* Returns the width it came to, so the caller need not measure it again.
|
|
93
|
+
*/
|
|
94
|
+
function fit(text, measured, width) {
|
|
47
95
|
if (width <= 0)
|
|
48
|
-
return "";
|
|
49
|
-
if (
|
|
50
|
-
return text;
|
|
96
|
+
return { text: "", width: 0 };
|
|
97
|
+
if (measured <= width)
|
|
98
|
+
return { text, width: measured };
|
|
51
99
|
if (width === 1)
|
|
52
|
-
return "~";
|
|
53
|
-
|
|
100
|
+
return { text: "~", width: 1 };
|
|
101
|
+
const budget = width - 1;
|
|
102
|
+
let used = 0;
|
|
103
|
+
let kept = "";
|
|
104
|
+
for (const { segment } of graphemes(text)) {
|
|
105
|
+
const cost = graphemeWidth(segment);
|
|
106
|
+
if (used + cost > budget)
|
|
107
|
+
break;
|
|
108
|
+
used += cost;
|
|
109
|
+
kept += segment;
|
|
110
|
+
}
|
|
111
|
+
return { text: `${kept}~`, width: used + 1 };
|
|
112
|
+
}
|
|
113
|
+
const PRINTABLE_ASCII = /^[\x20-\x7e]*$/;
|
|
114
|
+
let segmenter;
|
|
115
|
+
/** Grapheme clusters, with the segmenter built on first use: it costs ~13 ms. */
|
|
116
|
+
function graphemes(text) {
|
|
117
|
+
segmenter ??= new Intl.Segmenter("en", { granularity: "grapheme" });
|
|
118
|
+
return segmenter.segment(text);
|
|
54
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* How many terminal columns `text` occupies.
|
|
122
|
+
*
|
|
123
|
+
* Not code points: UAX #11 gives East Asian Wide and Fullwidth characters two
|
|
124
|
+
* columns and combining marks none, so a Japanese title counted by code point
|
|
125
|
+
* is padded to half the space it takes and every column after it shifts.
|
|
126
|
+
* Summed grapheme by grapheme, which is how `string-width` counts too, so that
|
|
127
|
+
* a string and the cut `fit` makes of it are measured the same way.
|
|
128
|
+
*/
|
|
55
129
|
function displayWidth(text) {
|
|
56
|
-
|
|
130
|
+
if (PRINTABLE_ASCII.test(text))
|
|
131
|
+
return text.length;
|
|
132
|
+
let width = 0;
|
|
133
|
+
for (const { segment } of graphemes(text))
|
|
134
|
+
width += graphemeWidth(segment);
|
|
135
|
+
return width;
|
|
136
|
+
}
|
|
137
|
+
const graphemeWidths = new Map();
|
|
138
|
+
/**
|
|
139
|
+
* One grapheme's width, from `string-width`'s UAX #11 table.
|
|
140
|
+
*
|
|
141
|
+
* Remembered, because a listing's titles draw on far fewer characters than
|
|
142
|
+
* they hold and each lookup segments and tests its input again. A second
|
|
143
|
+
* implementation lays out the same table from the same data (`unicode-width`
|
|
144
|
+
* in Rust).
|
|
145
|
+
*/
|
|
146
|
+
function graphemeWidth(grapheme) {
|
|
147
|
+
if (grapheme.length === 1 && PRINTABLE_ASCII.test(grapheme))
|
|
148
|
+
return 1;
|
|
149
|
+
let width = graphemeWidths.get(grapheme);
|
|
150
|
+
if (width === undefined) {
|
|
151
|
+
width = stringWidth()(grapheme);
|
|
152
|
+
graphemeWidths.set(grapheme, width);
|
|
153
|
+
}
|
|
154
|
+
return width;
|
|
155
|
+
}
|
|
156
|
+
const require = createRequire(import.meta.url);
|
|
157
|
+
let loaded;
|
|
158
|
+
/**
|
|
159
|
+
* `string-width`, loaded on first use rather than with the module.
|
|
160
|
+
*
|
|
161
|
+
* Importing it compiles its Unicode property patterns, about 40 ms, and every
|
|
162
|
+
* command loads this module; a listing whose text is all ASCII never needs it.
|
|
163
|
+
*/
|
|
164
|
+
function stringWidth() {
|
|
165
|
+
loaded ??= require("string-width").default;
|
|
166
|
+
return loaded;
|
|
57
167
|
}
|
|
58
168
|
//# sourceMappingURL=table.js.map
|
package/dist/render/table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/render/table.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/render/table.ts"],"names":[],"mappings":"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"}
|
package/dist/sort.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The orders `nav issue list --sort` offers — spec 02 §2.5.
|
|
3
|
+
*
|
|
4
|
+
* Sorting is a front end's reading of what it was handed, never an order the
|
|
5
|
+
* files or the API hold: core lists newest first and the server takes no sort
|
|
6
|
+
* argument, because an order either of them owned would be the index spec 06
|
|
7
|
+
* §6.6 refuses. So this is here rather than in `core`, and the web client has
|
|
8
|
+
* its own copy of the same rules for the same reason.
|
|
9
|
+
*
|
|
10
|
+
* Each order is a chain of comparisons ending in the one that can never tie,
|
|
11
|
+
* so an ordering is total and two tools sorting one listing agree about it.
|
|
12
|
+
*/
|
|
13
|
+
import { type EntityRecord } from "@navbook/core";
|
|
14
|
+
export declare const SORT_ORDERS: readonly ["priority", "deadline", "newest"];
|
|
15
|
+
export type SortOrder = (typeof SORT_ORDERS)[number];
|
|
16
|
+
/** The order a `list` command uses when nobody asks for one: spec 04 §4.2's. */
|
|
17
|
+
export declare const DEFAULT_SORT: SortOrder;
|
|
18
|
+
/**
|
|
19
|
+
* What `--sort` was given, or the default when it was not given at all.
|
|
20
|
+
*
|
|
21
|
+
* A value that is not an order is refused rather than defaulted: somebody who
|
|
22
|
+
* typed `--sort priorty` asked a question, and answering a different one by
|
|
23
|
+
* handing back a listing in the usual order would hide the typo.
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseSortOrder(value: unknown): SortOrder;
|
|
26
|
+
/** A listing in one of the orders of spec 02 §2.5. */
|
|
27
|
+
export declare function sortListing(entities: readonly EntityRecord[], order: SortOrder): EntityRecord[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navbook/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Git-native issue and pull-request tracking as plaintext files in your repository",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"issues",
|
|
@@ -19,6 +19,12 @@
|
|
|
19
19
|
"homepage": "https://github.com/peyremorgan/navbook#readme",
|
|
20
20
|
"bugs": "https://github.com/peyremorgan/navbook/issues",
|
|
21
21
|
"type": "module",
|
|
22
|
+
"exports": {
|
|
23
|
+
"./plugin": {
|
|
24
|
+
"types": "./dist/plugins/host.d.ts",
|
|
25
|
+
"default": "./dist/plugins/host.js"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
22
28
|
"publishConfig": {
|
|
23
29
|
"access": "public"
|
|
24
30
|
},
|
|
@@ -34,7 +40,8 @@
|
|
|
34
40
|
"dependencies": {
|
|
35
41
|
"commander": "^14.0.2",
|
|
36
42
|
"picocolors": "^1.1.1",
|
|
37
|
-
"
|
|
43
|
+
"string-width": "^8.2.2",
|
|
44
|
+
"@navbook/core": "0.5.0"
|
|
38
45
|
},
|
|
39
46
|
"scripts": {
|
|
40
47
|
"build": "tsc -p tsconfig.build.json",
|
package/dist/commands/feature.js
DELETED
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `nav feature <verb>` — spec 04 §4.3.
|
|
3
|
-
*
|
|
4
|
-
* A feature has no lifecycle and no discussion, so it borrows none of the
|
|
5
|
-
* shared entity verbs: what it can be asked is what it is, what documents
|
|
6
|
-
* describe it, and what has happened to it.
|
|
7
|
-
*/
|
|
8
|
-
import { addSpec, applyFeatureEdit, commitReport, createFeature, currentAuthor, featureCommits, featureJson, featureMembers, findFeature, loadRepo, newFeatureFile, newSpecFile, prepareOpen, referencedFeatures, requireSpecFileName, resolveFeature, resolveFeatureForEdit, revalidateFeatureFile, specFileName, specJson, toNdjson, validateFeature, validateSpec, } from "@navbook/core";
|
|
9
|
-
import { openInEditor } from "../editor.js";
|
|
10
|
-
import { fail } from "../errors.js";
|
|
11
|
-
import { renderTable } from "../render/table.js";
|
|
12
|
-
import { composeFile } from "./compose.js";
|
|
13
|
-
export function cmdFeatureOpen(ctx, title, opts) {
|
|
14
|
-
if (title.trim() === "")
|
|
15
|
-
fail("a feature needs a title");
|
|
16
|
-
const { created } = prepareOpen(ctx);
|
|
17
|
-
const composed = composeFile(ctx, {
|
|
18
|
-
...(opts.message === undefined ? {} : { message: opts.message }),
|
|
19
|
-
bufferName: "NAVBOOK_FEATURE.md",
|
|
20
|
-
noun: "feature",
|
|
21
|
-
// A feature is named by its title; the documents beside it carry the detail.
|
|
22
|
-
allowEmptyBody: true,
|
|
23
|
-
render: (body) => newFeatureFile({ title, author: currentAuthor(ctx), created, ...(body ? { body } : {}) }),
|
|
24
|
-
validate: validateFeature,
|
|
25
|
-
});
|
|
26
|
-
const { slug, dirPath, run } = createFeature(ctx, {
|
|
27
|
-
content: composed.content,
|
|
28
|
-
...(opts.slug === undefined ? {} : { slug: opts.slug }),
|
|
29
|
-
fallbackTitle: title,
|
|
30
|
-
}, { commit: opts.commit });
|
|
31
|
-
ctx.stdout.write(`Created ${ctx.navDir}/${dirPath}/ (${slug})\n`);
|
|
32
|
-
if (opts.commit)
|
|
33
|
-
ctx.stdout.write(`${commitReport(run)}\n`);
|
|
34
|
-
}
|
|
35
|
-
/* --------------------------------------------------------------------- list */
|
|
36
|
-
export function cmdFeatureList(ctx, opts) {
|
|
37
|
-
const repo = loadRepo(ctx, { comments: "none" });
|
|
38
|
-
const rows = repo.features.map((feature) => {
|
|
39
|
-
const attached = featureMembers(repo, feature.slug);
|
|
40
|
-
return { feature, entities: [...attached.issues, ...attached.prs] };
|
|
41
|
-
});
|
|
42
|
-
if (opts.json) {
|
|
43
|
-
if (rows.length === 0)
|
|
44
|
-
return;
|
|
45
|
-
const objects = rows.map(({ feature, entities }) => featureJson(ctx.navDir, feature, memberIds(entities)));
|
|
46
|
-
ctx.stdout.write(`${toNdjson(objects)}\n`);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
if (rows.length === 0) {
|
|
50
|
-
ctx.stdout.write("No features yet.\n");
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
const columns = [
|
|
54
|
-
{ header: "slug" },
|
|
55
|
-
{ header: "title", flexible: true, minWidth: 20 },
|
|
56
|
-
{ header: "specs" },
|
|
57
|
-
{ header: "open" },
|
|
58
|
-
{ header: "closed" },
|
|
59
|
-
];
|
|
60
|
-
const cells = rows.map(({ feature, entities }) => [
|
|
61
|
-
feature.slug,
|
|
62
|
-
feature.title,
|
|
63
|
-
String(feature.specs.length),
|
|
64
|
-
String(entities.filter((entity) => entity.status === "open").length),
|
|
65
|
-
String(entities.filter((entity) => entity.status !== "open").length),
|
|
66
|
-
]);
|
|
67
|
-
ctx.stdout.write(`${renderTable(columns, cells, { colors: ctx.colors, width: terminalWidth(ctx) })}\n`);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* The `issues` and `prs` keys a feature's JSON carries.
|
|
71
|
-
*
|
|
72
|
-
* Both `list` and `show` emit them, and both emit IDs: a key must not change
|
|
73
|
-
* type between commands, which is what makes the projection worth diffing
|
|
74
|
-
* across implementations (spec 04 §4.2).
|
|
75
|
-
*/
|
|
76
|
-
function memberIds(entities) {
|
|
77
|
-
return {
|
|
78
|
-
issues: entities.filter((e) => e.kind === "issue").map((e) => e.id),
|
|
79
|
-
prs: entities.filter((e) => e.kind === "pr").map((e) => e.id),
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
export function cmdFeatureShow(ctx, slug, opts) {
|
|
83
|
-
const repo = loadRepo(ctx, { comments: "none" });
|
|
84
|
-
const feature = resolveFeature(repo, slug);
|
|
85
|
-
const attached = featureMembers(repo, feature.slug);
|
|
86
|
-
if (opts.json) {
|
|
87
|
-
ctx.stdout.write(`${JSON.stringify(featureJson(ctx.navDir, feature, memberIds([...attached.issues, ...attached.prs])))}\n`);
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
const c = ctx.colors;
|
|
91
|
-
const lines = [c.bold(feature.slug), ""];
|
|
92
|
-
const label = (text) => c.dim(`${text}:`.padEnd(11));
|
|
93
|
-
lines.push(`${label("title")}${feature.title}`);
|
|
94
|
-
if (typeof feature.fm.author === "string")
|
|
95
|
-
lines.push(`${label("author")}${feature.fm.author}`);
|
|
96
|
-
if (typeof feature.fm.created === "string")
|
|
97
|
-
lines.push(`${label("created")}${feature.fm.created}`);
|
|
98
|
-
lines.push(`${label("path")}${ctx.navDir}/${feature.dirPath}`);
|
|
99
|
-
const summary = feature.body.trim();
|
|
100
|
-
if (summary !== "")
|
|
101
|
-
lines.push("", summary);
|
|
102
|
-
lines.push("", c.dim(`specs (${feature.specs.length}):`));
|
|
103
|
-
if (feature.specs.length === 0)
|
|
104
|
-
lines.push(c.dim(" none"));
|
|
105
|
-
for (const spec of feature.specs) {
|
|
106
|
-
lines.push(` ${spec.fileName.padEnd(28)}${spec.title}`);
|
|
107
|
-
}
|
|
108
|
-
const entities = [...attached.issues, ...attached.prs];
|
|
109
|
-
lines.push("", c.dim(`issues and pull requests (${entities.length}):`));
|
|
110
|
-
if (entities.length === 0)
|
|
111
|
-
lines.push(c.dim(" none"));
|
|
112
|
-
for (const entity of entities) {
|
|
113
|
-
lines.push(` #${entity.id} ${entity.status.padEnd(7)}${entity.title}`);
|
|
114
|
-
}
|
|
115
|
-
const limit = opts.commits ?? 10;
|
|
116
|
-
if (limit > 0) {
|
|
117
|
-
const commits = featureCommits(ctx, feature, attached, { limit });
|
|
118
|
-
lines.push("", c.dim(`recent commits (${commits.length}):`));
|
|
119
|
-
if (commits.length === 0)
|
|
120
|
-
lines.push(c.dim(" none"));
|
|
121
|
-
for (const commit of commits) {
|
|
122
|
-
lines.push(` ${c.dim(commit.sha.slice(0, 8))} ${commit.subject}`);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
ctx.stdout.write(`${lines.join("\n")}\n`);
|
|
126
|
-
}
|
|
127
|
-
/* --------------------------------------------------------------------- edit */
|
|
128
|
-
export function cmdFeatureEdit(ctx, slug, opts) {
|
|
129
|
-
editInPlace(ctx, slug, undefined, opts);
|
|
130
|
-
}
|
|
131
|
-
export function cmdSpecAdd(ctx, slug, title, opts) {
|
|
132
|
-
if (title.trim() === "")
|
|
133
|
-
fail("a specification document needs a title");
|
|
134
|
-
// Resolved first: being told the feature does not exist is worth much more
|
|
135
|
-
// before an editor has been filled in than after.
|
|
136
|
-
const feature = findFeature(ctx, slug);
|
|
137
|
-
const fileName = requireSpecFileName(opts.file ?? specFileName(title));
|
|
138
|
-
const composed = composeFile(ctx, {
|
|
139
|
-
...(opts.message === undefined ? {} : { message: opts.message }),
|
|
140
|
-
bufferName: "NAVBOOK_SPEC.md",
|
|
141
|
-
noun: "specification document",
|
|
142
|
-
render: (body) => newSpecFile({ title, body }),
|
|
143
|
-
validate: validateSpec,
|
|
144
|
-
});
|
|
145
|
-
const added = addSpec(ctx, feature.slug, { content: composed.content, fileName }, { commit: opts.commit });
|
|
146
|
-
ctx.stdout.write(`Created ${ctx.navDir}/${added.path}\n`);
|
|
147
|
-
if (opts.commit)
|
|
148
|
-
ctx.stdout.write(`${commitReport(added.run)}\n`);
|
|
149
|
-
}
|
|
150
|
-
export function cmdSpecEdit(ctx, slug, file, opts) {
|
|
151
|
-
editInPlace(ctx, slug, file, opts);
|
|
152
|
-
}
|
|
153
|
-
export function cmdSpecList(ctx, slug, opts) {
|
|
154
|
-
const feature = findFeature(ctx, slug);
|
|
155
|
-
if (opts.json) {
|
|
156
|
-
if (feature.specs.length === 0)
|
|
157
|
-
return;
|
|
158
|
-
const objects = feature.specs.map((spec) => specJson(ctx.navDir, feature, spec));
|
|
159
|
-
ctx.stdout.write(`${toNdjson(objects)}\n`);
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
if (feature.specs.length === 0) {
|
|
163
|
-
ctx.stdout.write(`Feature '${feature.slug}' has no specification documents yet.\n`);
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
const columns = [{ header: "file" }, { header: "title", flexible: true, minWidth: 20 }];
|
|
167
|
-
const rows = feature.specs.map((spec) => [spec.fileName, spec.title]);
|
|
168
|
-
ctx.stdout.write(`${renderTable(columns, rows, { colors: ctx.colors, width: terminalWidth(ctx) })}\n`);
|
|
169
|
-
}
|
|
170
|
-
/* ------------------------------------------------------------------ helpers */
|
|
171
|
-
/** Open a feature file or one of its documents in `$EDITOR` and record it. */
|
|
172
|
-
function editInPlace(ctx, slug, fileName, opts) {
|
|
173
|
-
const target = resolveFeatureForEdit(ctx, slug, fileName);
|
|
174
|
-
openInEditor(ctx, target.path);
|
|
175
|
-
const problems = revalidateFeatureFile(target.path, target.spec !== undefined);
|
|
176
|
-
if (problems.length > 0) {
|
|
177
|
-
fail(`${ctx.navDir}/${target.filePath} is no longer valid; it was left as you saved it`, problems.map((problem) => ` ${problem}`));
|
|
178
|
-
}
|
|
179
|
-
const run = applyFeatureEdit(ctx, target, { commit: opts.commit });
|
|
180
|
-
ctx.stdout.write(`Edited ${ctx.navDir}/${target.filePath}\n`);
|
|
181
|
-
if (opts.commit)
|
|
182
|
-
ctx.stdout.write(`${commitReport(run)}\n`);
|
|
183
|
-
}
|
|
184
|
-
function terminalWidth(ctx) {
|
|
185
|
-
const columns = ctx.stdout.columns;
|
|
186
|
-
return typeof columns === "number" && columns > 0 ? columns : undefined;
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Feature slugs offered for completion: those that exist, and those named.
|
|
190
|
-
*
|
|
191
|
-
* A slug an entity names but no directory holds is offered too — it is what
|
|
192
|
-
* somebody typed, and completing it is how they find the typo (D14).
|
|
193
|
-
*/
|
|
194
|
-
export function featureSlugs(ctx) {
|
|
195
|
-
try {
|
|
196
|
-
return referencedFeatures(loadRepo(ctx, { comments: "none" }));
|
|
197
|
-
}
|
|
198
|
-
catch {
|
|
199
|
-
return [];
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
//# sourceMappingURL=feature.js.map
|