@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 +1 -1
- package/build/constants.js +1 -2
- package/build/constants.js.map +2 -2
- package/build/ui/Failure.d.ts +2 -2
- package/build/ui/Failure.js.map +1 -1
- package/build/ui/Header.d.ts +1 -1
- package/build/ui/Help.d.ts +1 -1
- package/build/ui/Spinner.d.ts +1 -1
- package/build/ui/form/FormRow.d.ts +1 -1
- package/build/ui/form/TextInput.d.ts +1 -1
- package/build/ui/useProgram.js.map +2 -2
- package/package.json +21 -21
- package/source/constants.ts +1 -2
- package/source/ui/Failure.tsx +1 -1
- package/source/ui/useProgram.ts +0 -2
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
|
package/build/constants.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
|
|
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 = "$ ";
|
package/build/constants.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../source/constants.ts"],
|
|
4
|
-
"sourcesContent": ["import path from 'node:path';\
|
|
5
|
-
"mappings": ";AAAA,OAAO,UAAU;
|
|
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
|
}
|
package/build/ui/Failure.d.ts
CHANGED
|
@@ -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:
|
|
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
|
|
15
|
+
export declare function Failure({ error, errorDetail, ...boxProps }: FailureProps): import("react").JSX.Element;
|
package/build/ui/Failure.js.map
CHANGED
|
@@ -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:
|
|
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
|
}
|
package/build/ui/Header.d.ts
CHANGED
|
@@ -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
|
|
15
|
+
export declare function Header({ children, icon, showSpinner, ...boxProps }: PropsWithChildren<HeaderProps>): import("react").JSX.Element;
|
package/build/ui/Help.d.ts
CHANGED
|
@@ -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
|
|
13
|
+
export declare function Help({ program, ...boxProps }: HelpProps): import("react").JSX.Element;
|
package/build/ui/Spinner.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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;
|
|
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.
|
|
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.
|
|
31
|
-
"@jakubmazanec/error": "3.0.18-next.
|
|
32
|
-
"@jakubmazanec/ts-utils": "3.0.19-next.
|
|
33
|
-
"@jakubmazanec/zod-utils": "3.0.4-next.
|
|
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.
|
|
35
|
+
"fs-extra": "^11.3.6",
|
|
36
36
|
"latest-version": "^9.0.0",
|
|
37
|
-
"lodash": "^4.
|
|
38
|
-
"react-error-boundary": "^6.
|
|
39
|
-
"zod": "^4.
|
|
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": "
|
|
42
|
+
"@jakubmazanec/eslint-config": "5.0.0-next.e659d093",
|
|
43
43
|
"@types/fs-extra": "^11.0.4",
|
|
44
|
-
"@types/lodash": "^4.17.
|
|
44
|
+
"@types/lodash": "^4.17.24",
|
|
45
45
|
"@types/node": "^24.0.4",
|
|
46
|
-
"@types/react": "^19.2.
|
|
47
|
-
"@vitest/coverage-v8": "^4.
|
|
48
|
-
"concurrently": "^9.2.
|
|
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.
|
|
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.
|
|
56
|
-
"prettier-plugin-packagejson": "^2.5.
|
|
57
|
-
"react": "^19.2.
|
|
58
|
-
"typedoc": "^0.28.
|
|
59
|
-
"typedoc-plugin-markdown": "^4.
|
|
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.
|
|
61
|
+
"vitest": "^4.1.10"
|
|
62
62
|
},
|
|
63
63
|
"peerDependencies": {
|
|
64
64
|
"ink": "6.x",
|
package/source/constants.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import url from 'node:url';
|
|
3
2
|
|
|
4
|
-
let directory =
|
|
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');
|
package/source/ui/Failure.tsx
CHANGED
|
@@ -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:
|
|
14
|
+
error: unknown;
|
|
15
15
|
|
|
16
16
|
/** Information about the failure state. Overrides information retireved from `error` prop. */
|
|
17
17
|
errorDetail?: ErrorDetail;
|
package/source/ui/useProgram.ts
CHANGED
|
@@ -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);
|