@tabbio-technologies/cli 1.2.8 → 1.3.1

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 (27) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +86 -19
  3. package/dist/chunks/{chunk-7LNC3FIV.js → chunk-GGJEDG3P.js} +95 -14
  4. package/dist/chunks/{chunk-7LNC3FIV.js.map → chunk-GGJEDG3P.js.map} +4 -4
  5. package/dist/chunks/{chunk-Y6GWIFHI.js → chunk-KBIQKZUK.js} +3 -53
  6. package/dist/chunks/chunk-KBIQKZUK.js.map +7 -0
  7. package/dist/chunks/{chunk-QVR5KIEQ.js → chunk-KHLGZ5IV.js} +1796 -244
  8. package/dist/chunks/chunk-KHLGZ5IV.js.map +7 -0
  9. package/dist/chunks/{chunk-NAWA6NCZ.js → chunk-NRFVKK3S.js} +37 -96
  10. package/dist/chunks/chunk-NRFVKK3S.js.map +7 -0
  11. package/dist/chunks/chunk-TP3CRQJD.js +106 -0
  12. package/dist/chunks/chunk-TP3CRQJD.js.map +7 -0
  13. package/dist/chunks/{entry-WENOOT6W.js → entry-ZAXWZSEE.js} +2023 -770
  14. package/dist/chunks/entry-ZAXWZSEE.js.map +7 -0
  15. package/dist/chunks/{mount-NGUARMCL.js → mount-36JUVX3R.js} +3 -2
  16. package/dist/chunks/{mount-NGUARMCL.js.map → mount-36JUVX3R.js.map} +1 -1
  17. package/dist/chunks/{program-O2BA5L6Z.js → program-J6GENE2V.js} +314 -375
  18. package/dist/chunks/program-J6GENE2V.js.map +7 -0
  19. package/dist/chunks/{status-I5UAQPBY.js → status-2C7BECKK.js} +3 -3
  20. package/dist/cli.js +1 -1
  21. package/package.json +4 -8
  22. package/dist/chunks/chunk-NAWA6NCZ.js.map +0 -7
  23. package/dist/chunks/chunk-QVR5KIEQ.js.map +0 -7
  24. package/dist/chunks/chunk-Y6GWIFHI.js.map +0 -7
  25. package/dist/chunks/entry-WENOOT6W.js.map +0 -7
  26. package/dist/chunks/program-O2BA5L6Z.js.map +0 -7
  27. /package/dist/chunks/{status-I5UAQPBY.js.map → status-2C7BECKK.js.map} +0 -0
@@ -5,7 +5,8 @@ import {
5
5
  SpinnerProvider,
6
6
  contentWidth,
7
7
  useTerminalSize
8
- } from "./chunk-NAWA6NCZ.js";
8
+ } from "./chunk-TP3CRQJD.js";
9
+ import "./chunk-NRFVKK3S.js";
9
10
  import "./chunk-VHHZFMIF.js";
10
11
 
11
12
  // src/ui/mount.tsx
@@ -76,4 +77,4 @@ async function mountScreen(build, opts = {}) {
76
77
  export {
77
78
  mountScreen
78
79
  };
79
- //# sourceMappingURL=mount-NGUARMCL.js.map
80
+ //# sourceMappingURL=mount-36JUVX3R.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/ui/mount.tsx"],
4
4
  "sourcesContent": ["import { render, useApp, useInput } from 'ink';\nimport { type ReactElement, type ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport { SpinnerProvider } from './components/Spinner';\nimport { Page, contentWidth, useTerminalSize } from './layout';\n\nexport type MountOutcome<T> = { status: 'done'; value: T } | { status: 'interrupted' };\n\nexport type ScreenControls<T> = {\n /**\n * Resolve the screen. `finalFrame` is rendered once as the last frame and\n * stays in the scrollback (e.g. the collapsed approval row); omit it to\n * erase the screen.\n */\n finish(value: T, finalFrame?: ReactNode): void;\n /** Content width inside the page gutter, and rows the live region may use. */\n width: number;\n height: number;\n};\n\nexport type MountOptions = {\n /**\n * `interrupt` (default): Ctrl+C resolves `{ status: 'interrupted' }`.\n * `screen`: the screen handles Ctrl+C itself (chat and home: press twice).\n */\n ctrlC?: 'interrupt' | 'screen';\n stdout?: NodeJS.WriteStream;\n stdin?: NodeJS.ReadStream;\n stderr?: NodeJS.WriteStream;\n};\n\ntype Closing = { node: ReactNode } | null;\n\nfunction Root<T>(props: {\n build(controls: ScreenControls<T>): ReactElement;\n onResult(outcome: MountOutcome<T>): void;\n interruptible: boolean;\n}) {\n const { exit } = useApp();\n const { columns, rows } = useTerminalSize();\n const [closing, setClosing] = useState<Closing>(null);\n const settled = useRef(false);\n const { onResult } = props;\n\n const finish = useCallback(\n (value: T, finalFrame?: ReactNode) => {\n if (settled.current) return;\n settled.current = true;\n onResult({ status: 'done', value });\n setClosing({ node: finalFrame ?? null });\n },\n [onResult],\n );\n\n useInput(\n (input, key) => {\n if (!(key.ctrl && input === 'c') || settled.current) return;\n settled.current = true;\n onResult({ status: 'interrupted' });\n setClosing({ node: null });\n },\n { isActive: props.interruptible && !closing },\n );\n\n // Exit only after the final frame has been committed, so it is what stays on screen.\n useEffect(() => {\n if (closing) exit();\n }, [closing, exit]);\n\n if (closing) return <Page columns={columns}>{closing.node}</Page>;\n return (\n <SpinnerProvider>\n <Page columns={columns}>{props.build({ finish, width: contentWidth(columns), height: Math.max(8, rows - 1) })}</Page>\n </SpinnerProvider>\n );\n}\n\n/**\n * Renders a screen with Ink, waits for it to resolve, and unmounts cleanly\n * (raw mode off, cursor restored, listeners and timers gone). Never uses the\n * alternate screen: finished output stays in the normal scrollback.\n */\nexport async function mountScreen<T>(build: (controls: ScreenControls<T>) => ReactElement, opts: MountOptions = {}): Promise<MountOutcome<T>> {\n let outcome: MountOutcome<T> = { status: 'interrupted' };\n const stdout = opts.stdout ?? process.stdout;\n // A pty without a size (e.g. `script` fed from a pipe) reports 0 rows, and\n // Ink 6 then clears the whole terminal on every frame. Assume a classic size.\n if (stdout.isTTY && !stdout.rows) stdout.rows = 24;\n if (stdout.isTTY && !stdout.columns) stdout.columns = 80;\n const instance = render(\n <Root<T>\n build={build}\n interruptible={(opts.ctrlC ?? 'interrupt') === 'interrupt'}\n onResult={(value) => {\n outcome = value;\n }}\n />,\n {\n stdout,\n stdin: opts.stdin ?? process.stdin,\n stderr: opts.stderr ?? process.stderr,\n exitOnCtrlC: false,\n patchConsole: true,\n },\n );\n try {\n await instance.waitUntilExit();\n } finally {\n instance.cleanup();\n }\n return outcome;\n}\n"],
5
- "mappings": ";;;;;;;;;;;AAAA,SAAS,QAAQ,QAAQ,gBAAgB;AACzC,SAA4C,aAAa,WAAW,QAAQ,gBAAgB;AAmEtE;AApCtB,SAAS,KAAQ,OAId;AACD,QAAM,EAAE,KAAK,IAAI,OAAO;AACxB,QAAM,EAAE,SAAS,KAAK,IAAI,gBAAgB;AAC1C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAkB,IAAI;AACpD,QAAM,UAAU,OAAO,KAAK;AAC5B,QAAM,EAAE,SAAS,IAAI;AAErB,QAAM,SAAS;AAAA,IACb,CAAC,OAAU,eAA2B;AACpC,UAAI,QAAQ,QAAS;AACrB,cAAQ,UAAU;AAClB,eAAS,EAAE,QAAQ,QAAQ,MAAM,CAAC;AAClC,iBAAW,EAAE,MAAM,cAAc,KAAK,CAAC;AAAA,IACzC;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA;AAAA,IACE,CAAC,OAAO,QAAQ;AACd,UAAI,EAAE,IAAI,QAAQ,UAAU,QAAQ,QAAQ,QAAS;AACrD,cAAQ,UAAU;AAClB,eAAS,EAAE,QAAQ,cAAc,CAAC;AAClC,iBAAW,EAAE,MAAM,KAAK,CAAC;AAAA,IAC3B;AAAA,IACA,EAAE,UAAU,MAAM,iBAAiB,CAAC,QAAQ;AAAA,EAC9C;AAGA,YAAU,MAAM;AACd,QAAI,QAAS,MAAK;AAAA,EACpB,GAAG,CAAC,SAAS,IAAI,CAAC;AAElB,MAAI,QAAS,QAAO,oBAAC,QAAK,SAAmB,kBAAQ,MAAK;AAC1D,SACE,oBAAC,mBACC,8BAAC,QAAK,SAAmB,gBAAM,MAAM,EAAE,QAAQ,OAAO,aAAa,OAAO,GAAG,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,GAAE,GAChH;AAEJ;AAOA,eAAsB,YAAe,OAAsD,OAAqB,CAAC,GAA6B;AAC5I,MAAI,UAA2B,EAAE,QAAQ,cAAc;AACvD,QAAM,SAAS,KAAK,UAAU,QAAQ;AAGtC,MAAI,OAAO,SAAS,CAAC,OAAO,KAAM,QAAO,OAAO;AAChD,MAAI,OAAO,SAAS,CAAC,OAAO,QAAS,QAAO,UAAU;AACtD,QAAM,WAAW;AAAA,IACf;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,gBAAgB,KAAK,SAAS,iBAAiB;AAAA,QAC/C,UAAU,CAAC,UAAU;AACnB,oBAAU;AAAA,QACZ;AAAA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA,OAAO,KAAK,SAAS,QAAQ;AAAA,MAC7B,QAAQ,KAAK,UAAU,QAAQ;AAAA,MAC/B,aAAa;AAAA,MACb,cAAc;AAAA,IAChB;AAAA,EACF;AACA,MAAI;AACF,UAAM,SAAS,cAAc;AAAA,EAC/B,UAAE;AACA,aAAS,QAAQ;AAAA,EACnB;AACA,SAAO;AACT;",
5
+ "mappings": ";;;;;;;;;;;;AAAA,SAAS,QAAQ,QAAQ,gBAAgB;AACzC,SAA4C,aAAa,WAAW,QAAQ,gBAAgB;AAmEtE;AApCtB,SAAS,KAAQ,OAId;AACD,QAAM,EAAE,KAAK,IAAI,OAAO;AACxB,QAAM,EAAE,SAAS,KAAK,IAAI,gBAAgB;AAC1C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAkB,IAAI;AACpD,QAAM,UAAU,OAAO,KAAK;AAC5B,QAAM,EAAE,SAAS,IAAI;AAErB,QAAM,SAAS;AAAA,IACb,CAAC,OAAU,eAA2B;AACpC,UAAI,QAAQ,QAAS;AACrB,cAAQ,UAAU;AAClB,eAAS,EAAE,QAAQ,QAAQ,MAAM,CAAC;AAClC,iBAAW,EAAE,MAAM,cAAc,KAAK,CAAC;AAAA,IACzC;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA;AAAA,IACE,CAAC,OAAO,QAAQ;AACd,UAAI,EAAE,IAAI,QAAQ,UAAU,QAAQ,QAAQ,QAAS;AACrD,cAAQ,UAAU;AAClB,eAAS,EAAE,QAAQ,cAAc,CAAC;AAClC,iBAAW,EAAE,MAAM,KAAK,CAAC;AAAA,IAC3B;AAAA,IACA,EAAE,UAAU,MAAM,iBAAiB,CAAC,QAAQ;AAAA,EAC9C;AAGA,YAAU,MAAM;AACd,QAAI,QAAS,MAAK;AAAA,EACpB,GAAG,CAAC,SAAS,IAAI,CAAC;AAElB,MAAI,QAAS,QAAO,oBAAC,QAAK,SAAmB,kBAAQ,MAAK;AAC1D,SACE,oBAAC,mBACC,8BAAC,QAAK,SAAmB,gBAAM,MAAM,EAAE,QAAQ,OAAO,aAAa,OAAO,GAAG,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,GAAE,GAChH;AAEJ;AAOA,eAAsB,YAAe,OAAsD,OAAqB,CAAC,GAA6B;AAC5I,MAAI,UAA2B,EAAE,QAAQ,cAAc;AACvD,QAAM,SAAS,KAAK,UAAU,QAAQ;AAGtC,MAAI,OAAO,SAAS,CAAC,OAAO,KAAM,QAAO,OAAO;AAChD,MAAI,OAAO,SAAS,CAAC,OAAO,QAAS,QAAO,UAAU;AACtD,QAAM,WAAW;AAAA,IACf;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,gBAAgB,KAAK,SAAS,iBAAiB;AAAA,QAC/C,UAAU,CAAC,UAAU;AACnB,oBAAU;AAAA,QACZ;AAAA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA,OAAO,KAAK,SAAS,QAAQ;AAAA,MAC7B,QAAQ,KAAK,UAAU,QAAQ;AAAA,MAC/B,aAAa;AAAA,MACb,cAAc;AAAA,IAChB;AAAA,EACF;AACA,MAAI;AACF,UAAM,SAAS,cAAc;AAAA,EAC/B,UAAE;AACA,aAAS,QAAQ;AAAA,EACnB;AACA,SAAO;AACT;",
6
6
  "names": []
7
7
  }