@jakubmazanec/cli 0.5.6-next.9db8be45 → 0.5.6-next.e659d093

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/README.md CHANGED
@@ -4,7 +4,6 @@
4
4
  # @jakubmazanec/cli
5
5
 
6
6
  TypeScript-first library for building CLIs.
7
-
8
7
  </div>
9
8
  <!-- header -->
10
9
 
@@ -23,6 +22,7 @@ It cannot be required from a CommonJS module.
23
22
 
24
23
  - Node.js 24 or later
25
24
  - TypeScript 5 or later
25
+
26
26
  <!-- prerequisites -->
27
27
 
28
28
  ## Usage
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  import path from "node:path";
3
- import url from "node:url";
4
- let directory = path.dirname(url.fileURLToPath(import.meta.url));
3
+ let directory = import.meta.dirname;
5
4
  export const PACKAGE_PATH = path.resolve(directory, "..");
6
5
  export const CACHE_PATH = path.resolve(PACKAGE_PATH, "node_modules/.cache");
7
6
  export const DELIMITER = "$ ";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../source/constants.ts"],
4
- "sourcesContent": ["import path from 'node:path';\nimport url from 'node:url';\n\nlet directory = path.dirname(url.fileURLToPath(import.meta.url));\n\nexport const PACKAGE_PATH = path.resolve(directory, '..');\nexport const CACHE_PATH = path.resolve(PACKAGE_PATH, 'node_modules/.cache');\n\nexport const DELIMITER = '$ ';\n"],
5
- "mappings": ";AAAA,OAAO,UAAU;AACjB,OAAO,SAAS;AAEhB,IAAI,YAAY,KAAK,QAAQ,IAAI,cAAc,YAAY,GAAG,CAAC;AAExD,aAAM,eAAe,KAAK,QAAQ,WAAW,IAAI;AACjD,aAAM,aAAa,KAAK,QAAQ,cAAc,qBAAqB;AAEnE,aAAM,YAAY;",
4
+ "sourcesContent": ["import path from 'node:path';\n\nlet directory = import.meta.dirname;\n\nexport const PACKAGE_PATH = path.resolve(directory, '..');\nexport const CACHE_PATH = path.resolve(PACKAGE_PATH, 'node_modules/.cache');\n\nexport const DELIMITER = '$ ';\n"],
5
+ "mappings": ";AAAA,OAAO,UAAU;AAEjB,IAAI,YAAY,YAAY;AAErB,aAAM,eAAe,KAAK,QAAQ,WAAW,IAAI;AACjD,aAAM,aAAa,KAAK,QAAQ,cAAc,qBAAqB;AAEnE,aAAM,YAAY;",
6
6
  "names": []
7
7
  }
@@ -5,11 +5,11 @@ import { type ErrorDetail } from './ErrorDetail.js';
5
5
  */
6
6
  export type FailureProps = BoxProps & {
7
7
  /** Error that describes a failure state. Function {@link getErrorDetail} is used for getting all the information from the error; you can use it to implement own retrieval logic and pass the result as `errorDetail` prop. */
8
- error: Error;
8
+ error: unknown;
9
9
  /** Information about the failure state. Overrides information retireved from `error` prop. */
10
10
  errorDetail?: ErrorDetail;
11
11
  };
12
12
  /**
13
13
  * A component that renders a failure state.
14
14
  */
15
- export declare function Failure({ error, errorDetail, ...boxProps }: FailureProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function Failure({ error, errorDetail, ...boxProps }: FailureProps): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../source/ui/Failure.tsx"],
4
- "sourcesContent": ["import {Box, type BoxProps, Text} from 'ink';\n\nimport * as colors from './colors.js';\nimport {type ErrorDetail} from './ErrorDetail.js';\nimport {getErrorDetail} from './getErrorDetail.js';\nimport {Header} from './Header.js';\nimport * as icons from './icons.js';\n\n/**\n * {@link Failure} component props.\n */\nexport type FailureProps = BoxProps & {\n /** Error that describes a failure state. Function {@link getErrorDetail} is used for getting all the information from the error; you can use it to implement own retrieval logic and pass the result as `errorDetail` prop. */\n error: Error;\n\n /** Information about the failure state. Overrides information retireved from `error` prop. */\n errorDetail?: ErrorDetail;\n};\n\n/**\n * A component that renders a failure state.\n */\nexport function Failure({error, errorDetail, ...boxProps}: FailureProps) {\n let {label, description, stack, cause} = errorDetail ?? getErrorDetail(error);\n\n return (\n <Box {...boxProps} flexDirection=\"column\">\n <Header icon={icons.error}>\n <Text color={colors.highlighted}>{label}</Text>\n </Header>\n\n {description ?\n <Box flexDirection=\"column\" marginLeft={2}>\n <Text color={colors.failure}>{description}</Text>\n </Box>\n : null}\n\n {stack ?\n <Box flexDirection=\"column\" marginLeft={2} marginTop={1}>\n <Text color={colors.muted}>{stack}</Text>\n </Box>\n : null}\n\n {cause ?\n <>\n <Box flexDirection=\"column\" marginLeft={2} marginTop={1}>\n <Text color={colors.muted}>{cause.description}</Text>\n </Box>\n\n {cause.stack ?\n <Box flexDirection=\"column\" marginLeft={2} marginTop={1}>\n <Text color={colors.muted}>{cause.stack}</Text>\n </Box>\n : null}\n </>\n : null}\n </Box>\n );\n}\n"],
4
+ "sourcesContent": ["import {Box, type BoxProps, Text} from 'ink';\n\nimport * as colors from './colors.js';\nimport {type ErrorDetail} from './ErrorDetail.js';\nimport {getErrorDetail} from './getErrorDetail.js';\nimport {Header} from './Header.js';\nimport * as icons from './icons.js';\n\n/**\n * {@link Failure} component props.\n */\nexport type FailureProps = BoxProps & {\n /** Error that describes a failure state. Function {@link getErrorDetail} is used for getting all the information from the error; you can use it to implement own retrieval logic and pass the result as `errorDetail` prop. */\n error: unknown;\n\n /** Information about the failure state. Overrides information retireved from `error` prop. */\n errorDetail?: ErrorDetail;\n};\n\n/**\n * A component that renders a failure state.\n */\nexport function Failure({error, errorDetail, ...boxProps}: FailureProps) {\n let {label, description, stack, cause} = errorDetail ?? getErrorDetail(error);\n\n return (\n <Box {...boxProps} flexDirection=\"column\">\n <Header icon={icons.error}>\n <Text color={colors.highlighted}>{label}</Text>\n </Header>\n\n {description ?\n <Box flexDirection=\"column\" marginLeft={2}>\n <Text color={colors.failure}>{description}</Text>\n </Box>\n : null}\n\n {stack ?\n <Box flexDirection=\"column\" marginLeft={2} marginTop={1}>\n <Text color={colors.muted}>{stack}</Text>\n </Box>\n : null}\n\n {cause ?\n <>\n <Box flexDirection=\"column\" marginLeft={2} marginTop={1}>\n <Text color={colors.muted}>{cause.description}</Text>\n </Box>\n\n {cause.stack ?\n <Box flexDirection=\"column\" marginLeft={2} marginTop={1}>\n <Text color={colors.muted}>{cause.stack}</Text>\n </Box>\n : null}\n </>\n : null}\n </Box>\n );\n}\n"],
5
5
  "mappings": ";AA4BQ,SAgBA,UAhBA,KAgBA,YAhBA;AA5BR,SAAQ,KAAoB,YAAW;AAEvC,YAAY,YAAY;AAExB,SAAQ,sBAAqB;AAC7B,SAAQ,cAAa;AACrB,YAAY,WAAW;AAgBhB,gBAAS,QAAQ,EAAC,OAAO,aAAa,GAAG,SAAQ,GAAiB;AACvE,MAAI,EAAC,OAAO,aAAa,OAAO,MAAK,IAAI,eAAe,eAAe,KAAK;AAE5E,SACE,qBAAC,OAAK,GAAG,UAAU,eAAc,UAC/B;AAAA,wBAAC,UAAO,MAAM,MAAM,OAClB,8BAAC,QAAK,OAAO,OAAO,aAAc,iBAAM,GAC1C;AAAA,IAEC,cACC,oBAAC,OAAI,eAAc,UAAS,YAAY,GACtC,8BAAC,QAAK,OAAO,OAAO,SAAU,uBAAY,GAC5C,IACA;AAAA,IAED,QACC,oBAAC,OAAI,eAAc,UAAS,YAAY,GAAG,WAAW,GACpD,8BAAC,QAAK,OAAO,OAAO,OAAQ,iBAAM,GACpC,IACA;AAAA,IAED,QACC,iCACE;AAAA,0BAAC,OAAI,eAAc,UAAS,YAAY,GAAG,WAAW,GACpD,8BAAC,QAAK,OAAO,OAAO,OAAQ,gBAAM,aAAY,GAChD;AAAA,MAEC,MAAM,QACL,oBAAC,OAAI,eAAc,UAAS,YAAY,GAAG,WAAW,GACpD,8BAAC,QAAK,OAAO,OAAO,OAAQ,gBAAM,OAAM,GAC1C,IACA;AAAA,OACJ,IACA;AAAA,KACJ;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -12,4 +12,4 @@ export type HeaderProps = BoxProps & {
12
12
  /**
13
13
  * Header component.
14
14
  */
15
- export declare function Header({ children, icon, showSpinner, ...boxProps }: PropsWithChildren<HeaderProps>): import("react/jsx-runtime").JSX.Element;
15
+ export declare function Header({ children, icon, showSpinner, ...boxProps }: PropsWithChildren<HeaderProps>): import("react").JSX.Element;
@@ -10,4 +10,4 @@ export type HelpProps = BoxProps & {
10
10
  /**
11
11
  * A component that renders help information.
12
12
  */
13
- export declare function Help({ program, ...boxProps }: HelpProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function Help({ program, ...boxProps }: HelpProps): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * Spinner component.
3
3
  */
4
- export declare function Spinner(): import("react/jsx-runtime").JSX.Element;
4
+ export declare function Spinner(): import("react").JSX.Element;
@@ -26,5 +26,5 @@ type FormRowProps<C extends FormConfig> = BoxProps & {
26
26
  /**
27
27
  * Form row component.
28
28
  */
29
- export declare function FormRow<C extends FormConfig>({ rowName, config, rows, value, focus, isComplete, onChange, onComplete, ...boxProps }: FormRowProps<C>): import("react/jsx-runtime").JSX.Element | null;
29
+ export declare function FormRow<C extends FormConfig>({ rowName, config, rows, value, focus, isComplete, onChange, onComplete, ...boxProps }: FormRowProps<C>): import("react").JSX.Element | null;
30
30
  export {};
@@ -27,4 +27,4 @@ export type TextInputProps = BoxProps & {
27
27
  /**
28
28
  * Text input component.
29
29
  */
30
- export declare function TextInput({ label, validate, isComplete, value: originalValue, placeholder, focus, mask, showCursor, onChange, onSubmit, ...boxProps }: TextInputProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare function TextInput({ label, validate, isComplete, value: originalValue, placeholder, focus, mask, showCursor, onChange, onSubmit, ...boxProps }: TextInputProps): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../source/ui/useProgram.ts"],
4
- "sourcesContent": ["import {useApp} from 'ink';\nimport {useCallback, useContext} from 'react';\nimport {useErrorBoundary} from 'react-error-boundary';\n\nimport {programContext} from './internals.js';\n\n/**\n * A React hook for accessing {@link Program} instance and `exit` function that is used for showing an error (via an error boundary) and exiting.\n */\nexport function useProgram() {\n let {showBoundary} = useErrorBoundary();\n let {exit: appExit} = useApp();\n let {program} = useContext(programContext);\n\n let exit = useCallback(\n (error: unknown) => {\n // TODO: remove when this is fixed: https://github.com/facebook/react/issues/31544\n // eslint-disable-next-line react-compiler/react-compiler -- false positive\n process.exitCode = 1;\n\n showBoundary(error);\n appExit(error as Error);\n },\n [appExit, showBoundary],\n );\n\n return {program, exit};\n}\n"],
5
- "mappings": ";AAAA,SAAQ,cAAa;AACrB,SAAQ,aAAa,kBAAiB;AACtC,SAAQ,wBAAuB;AAE/B,SAAQ,sBAAqB;AAKtB,gBAAS,aAAa;AAC3B,MAAI,EAAC,aAAY,IAAI,iBAAiB;AACtC,MAAI,EAAC,MAAM,QAAO,IAAI,OAAO;AAC7B,MAAI,EAAC,QAAO,IAAI,WAAW,cAAc;AAEzC,MAAI,OAAO;AAAA,IACT,CAAC,UAAmB;AAGlB,cAAQ,WAAW;AAEnB,mBAAa,KAAK;AAClB,cAAQ,KAAc;AAAA,IACxB;AAAA,IACA,CAAC,SAAS,YAAY;AAAA,EACxB;AAEA,SAAO,EAAC,SAAS,KAAI;AACvB;",
4
+ "sourcesContent": ["import {useApp} from 'ink';\nimport {useCallback, useContext} from 'react';\nimport {useErrorBoundary} from 'react-error-boundary';\n\nimport {programContext} from './internals.js';\n\n/**\n * A React hook for accessing {@link Program} instance and `exit` function that is used for showing an error (via an error boundary) and exiting.\n */\nexport function useProgram() {\n let {showBoundary} = useErrorBoundary();\n let {exit: appExit} = useApp();\n let {program} = useContext(programContext);\n\n let exit = useCallback(\n (error: unknown) => {\n process.exitCode = 1;\n\n showBoundary(error);\n appExit(error as Error);\n },\n [appExit, showBoundary],\n );\n\n return {program, exit};\n}\n"],
5
+ "mappings": ";AAAA,SAAQ,cAAa;AACrB,SAAQ,aAAa,kBAAiB;AACtC,SAAQ,wBAAuB;AAE/B,SAAQ,sBAAqB;AAKtB,gBAAS,aAAa;AAC3B,MAAI,EAAC,aAAY,IAAI,iBAAiB;AACtC,MAAI,EAAC,MAAM,QAAO,IAAI,OAAO;AAC7B,MAAI,EAAC,QAAO,IAAI,WAAW,cAAc;AAEzC,MAAI,OAAO;AAAA,IACT,CAAC,UAAmB;AAClB,cAAQ,WAAW;AAEnB,mBAAa,KAAK;AAClB,cAAQ,KAAc;AAAA,IACxB;AAAA,IACA,CAAC,SAAS,YAAY;AAAA,EACxB;AAEA,SAAO,EAAC,SAAS,KAAI;AACvB;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jakubmazanec/cli",
3
- "version": "0.5.6-next.9db8be45",
3
+ "version": "0.5.6-next.e659d093",
4
4
  "description": "TypeScript-first library for building CLIs.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -27,38 +27,38 @@
27
27
  "typecheck": "tsc --project tsconfig.typecheck.json"
28
28
  },
29
29
  "dependencies": {
30
- "@jakubmazanec/args": "2.0.18-next.9db8be45",
31
- "@jakubmazanec/error": "3.0.18-next.9db8be45",
32
- "@jakubmazanec/ts-utils": "3.0.19-next.9db8be45",
33
- "@jakubmazanec/zod-utils": "3.0.4-next.9db8be45",
30
+ "@jakubmazanec/args": "2.0.18-next.e659d093",
31
+ "@jakubmazanec/error": "3.0.18-next.e659d093",
32
+ "@jakubmazanec/ts-utils": "3.0.19-next.e659d093",
33
+ "@jakubmazanec/zod-utils": "3.0.4-next.e659d093",
34
34
  "chalk": "^5.6.2",
35
- "fs-extra": "^11.3.2",
35
+ "fs-extra": "^11.3.6",
36
36
  "latest-version": "^9.0.0",
37
- "lodash": "^4.17.21",
38
- "react-error-boundary": "^6.0.0",
39
- "zod": "^4.1.13"
37
+ "lodash": "^4.18.1",
38
+ "react-error-boundary": "^6.1.2",
39
+ "zod": "^4.4.3"
40
40
  },
41
41
  "devDependencies": {
42
- "@jakubmazanec/eslint-config": "4.1.13-next.9db8be45",
42
+ "@jakubmazanec/eslint-config": "5.0.0-next.e659d093",
43
43
  "@types/fs-extra": "^11.0.4",
44
- "@types/lodash": "^4.17.21",
44
+ "@types/lodash": "^4.17.24",
45
45
  "@types/node": "^24.0.4",
46
- "@types/react": "^19.2.7",
47
- "@vitest/coverage-v8": "^4.0.14",
48
- "concurrently": "^9.2.1",
46
+ "@types/react": "^19.2.17",
47
+ "@vitest/coverage-v8": "^4.1.10",
48
+ "concurrently": "^9.2.4",
49
49
  "cross-env": "^10.1.0",
50
50
  "del-cli": "^7.0.0",
51
- "esbuild": "^0.27.0",
51
+ "esbuild": "^0.28.1",
52
52
  "eslint": "^9.39.4",
53
53
  "ink": "^6.5.1",
54
54
  "ink-testing-library": "^4.0.0",
55
- "prettier": "^3.7.3",
56
- "prettier-plugin-packagejson": "^2.5.20",
57
- "react": "^19.2.0",
58
- "typedoc": "^0.28.15",
59
- "typedoc-plugin-markdown": "^4.9.0",
55
+ "prettier": "^3.9.5",
56
+ "prettier-plugin-packagejson": "^2.5.22",
57
+ "react": "^19.2.7",
58
+ "typedoc": "^0.28.20",
59
+ "typedoc-plugin-markdown": "^4.12.0",
60
60
  "typescript": "^5.9.3",
61
- "vitest": "^4.0.14"
61
+ "vitest": "^4.1.10"
62
62
  },
63
63
  "peerDependencies": {
64
64
  "ink": "6.x",
@@ -1,7 +1,6 @@
1
1
  import path from 'node:path';
2
- import url from 'node:url';
3
2
 
4
- let directory = path.dirname(url.fileURLToPath(import.meta.url));
3
+ let directory = import.meta.dirname;
5
4
 
6
5
  export const PACKAGE_PATH = path.resolve(directory, '..');
7
6
  export const CACHE_PATH = path.resolve(PACKAGE_PATH, 'node_modules/.cache');
@@ -11,7 +11,7 @@ import * as icons from './icons.js';
11
11
  */
12
12
  export type FailureProps = BoxProps & {
13
13
  /** Error that describes a failure state. Function {@link getErrorDetail} is used for getting all the information from the error; you can use it to implement own retrieval logic and pass the result as `errorDetail` prop. */
14
- error: Error;
14
+ error: unknown;
15
15
 
16
16
  /** Information about the failure state. Overrides information retireved from `error` prop. */
17
17
  errorDetail?: ErrorDetail;
@@ -14,8 +14,6 @@ export function useProgram() {
14
14
 
15
15
  let exit = useCallback(
16
16
  (error: unknown) => {
17
- // TODO: remove when this is fixed: https://github.com/facebook/react/issues/31544
18
- // eslint-disable-next-line react-compiler/react-compiler -- false positive
19
17
  process.exitCode = 1;
20
18
 
21
19
  showBoundary(error);