359 lines
8.8 KiB
Markdown
359 lines
8.8 KiB
Markdown
|
|
# @clack/core
|
||
|
|
|
||
|
|
## 1.0.0-alpha.7
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 0718b07: fix: export `*Options` types for prompts.
|
||
|
|
- 4ba2d78: Support short terminal windows when re-rendering by accounting for off-screen lines
|
||
|
|
- acc4c3a: Add a new `withGuide` option to all prompts to disable the default clack border
|
||
|
|
|
||
|
|
## 1.0.0-alpha.6
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- b103ad3: Allow disabled options in multi-select and select prompts.
|
||
|
|
|
||
|
|
## 1.0.0-alpha.5
|
||
|
|
|
||
|
|
### Minor Changes
|
||
|
|
|
||
|
|
- 55645c2: Support wrapping autocomplete and select prompts.
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 71b5029: Add missing nullish checks around values.
|
||
|
|
- 2310b43: Allow custom writables as output stream.
|
||
|
|
|
||
|
|
## 1.0.0-alpha.4
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- d98e033: add invert selection for multiselect prompt
|
||
|
|
|
||
|
|
## 1.0.0-alpha.3
|
||
|
|
|
||
|
|
### Minor Changes
|
||
|
|
|
||
|
|
- 1604f97: Add `clearOnError` option to password prompt to automatically clear input when validation fails
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 1a45f93: Switched from wrap-ansi to fast-wrap-ansi
|
||
|
|
|
||
|
|
## 1.0.0-alpha.2
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 7df841d: Removed all trailing space in prompt output and fixed various padding rendering bugs.
|
||
|
|
|
||
|
|
## 1.0.0-alpha.1
|
||
|
|
|
||
|
|
### Minor Changes
|
||
|
|
|
||
|
|
- 7bc3301: Prompts now have a `userInput` stored separately from their `value`.
|
||
|
|
- 2837845: Adds suggestion and path prompts
|
||
|
|
- df4eea1: Remove `suggestion` prompt and change `path` prompt to be an autocomplete prompt.
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- bfe0dd3: Prevents placeholder from being used as input value in text prompts
|
||
|
|
- 34f52fe: Validates initial values immediately when using text prompts with initialValue and validate props.
|
||
|
|
- 94fee2a: Changes `placeholder` to be a visual hint rather than a tabbable value.
|
||
|
|
- 4f6b3c2: Set initial values of auto complete prompt to first option when multiple is false.
|
||
|
|
- 8ead5d3: Avoid passing initial values to core when using auto complete prompt
|
||
|
|
|
||
|
|
## 1.0.0-alpha.0
|
||
|
|
|
||
|
|
### Major Changes
|
||
|
|
|
||
|
|
- c713fd5: The package is now distributed as ESM-only. In `v0` releases, the package was dual-published as CJS and ESM.
|
||
|
|
|
||
|
|
For existing CJS projects using Node v20+, please see Node's guide on [Loading ECMAScript modules using `require()`](https://nodejs.org/docs/latest-v20.x/api/modules.html#loading-ecmascript-modules-using-require).
|
||
|
|
|
||
|
|
### Minor Changes
|
||
|
|
|
||
|
|
- 729bbb6: Add support for customizable spinner cancel and error messages. Users can now customize these messages either per spinner instance or globally via the `updateSettings` function to support multilingual CLIs.
|
||
|
|
|
||
|
|
This update also improves the architecture by exposing the core settings to the prompts package, enabling more consistent default message handling across the codebase.
|
||
|
|
|
||
|
|
```ts
|
||
|
|
// Per-instance customization
|
||
|
|
const spinner = prompts.spinner({
|
||
|
|
cancelMessage: "Operación cancelada", // "Operation cancelled" in Spanish
|
||
|
|
errorMessage: "Se produjo un error", // "An error occurred" in Spanish
|
||
|
|
});
|
||
|
|
|
||
|
|
// Global customization via updateSettings
|
||
|
|
prompts.updateSettings({
|
||
|
|
messages: {
|
||
|
|
cancel: "Operación cancelada", // "Operation cancelled" in Spanish
|
||
|
|
error: "Se produjo un error", // "An error occurred" in Spanish
|
||
|
|
},
|
||
|
|
});
|
||
|
|
|
||
|
|
// Settings can now be accessed directly
|
||
|
|
console.log(prompts.settings.messages.cancel); // "Operación cancelada"
|
||
|
|
|
||
|
|
// Direct options take priority over global settings
|
||
|
|
const spinner = prompts.spinner({
|
||
|
|
cancelMessage: "Cancelled", // This will be used instead of the global setting
|
||
|
|
});
|
||
|
|
```
|
||
|
|
|
||
|
|
- f2c2b89: Adds `AutocompletePrompt` to core with comprehensive tests and implement both `autocomplete` and `autocomplete-multiselect` components in prompts package.
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 6868c1c: Adds a new `selectableGroups` boolean to the group multi-select prompt. Using `selectableGroups: false` will disable the ability to select a top-level group, but still allow every child to be selected individually.
|
||
|
|
- a4f5034: Fixes an edge case for placeholder values. Previously, when pressing `enter` on an empty prompt, placeholder values would be ignored. Now, placeholder values are treated as the prompt value.
|
||
|
|
- a36292b: Fix "TTY initialization failed: uv_tty_init returned EBADF (bad file descriptor)" error happening on Windows for non-tty terminals.
|
||
|
|
|
||
|
|
## 0.4.1
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 8093f3c: Adds `Error` support to the `validate` function
|
||
|
|
- e5ba09a: Fixes a cursor display bug in terminals that do not support the "hidden" escape sequence. See [Issue #127](https://github.com/bombshell-dev/clack/issues/127).
|
||
|
|
- 8cba8e3: Fixes a rendering bug with cursor positions for `TextPrompt`
|
||
|
|
|
||
|
|
## 0.4.0
|
||
|
|
|
||
|
|
### Minor Changes
|
||
|
|
|
||
|
|
- a83d2f8: Adds a new `updateSettings()` function to support new global keybindings.
|
||
|
|
|
||
|
|
`updateSettings()` accepts an `aliases` object that maps custom keys to an action (`up | down | left | right | space | enter | cancel`).
|
||
|
|
|
||
|
|
```ts
|
||
|
|
import { updateSettings } from "@clack/core";
|
||
|
|
|
||
|
|
// Support custom keybindings
|
||
|
|
updateSettings({
|
||
|
|
aliases: {
|
||
|
|
w: "up",
|
||
|
|
a: "left",
|
||
|
|
s: "down",
|
||
|
|
d: "right",
|
||
|
|
},
|
||
|
|
});
|
||
|
|
```
|
||
|
|
|
||
|
|
> [!WARNING]
|
||
|
|
> In order to enforce consistent, user-friendly defaults across the ecosystem, `updateSettings` does not support disabling Clack's default keybindings.
|
||
|
|
|
||
|
|
- 801246b: Adds a new `signal` option to support programmatic prompt cancellation with an [abort controller](https://kettanaito.com/blog/dont-sleep-on-abort-controller).
|
||
|
|
|
||
|
|
- a83d2f8: Updates default keybindings to support Vim motion shortcuts and map the `escape` key to cancel (`ctrl+c`).
|
||
|
|
|
||
|
|
| alias | action |
|
||
|
|
| ----- | ------ |
|
||
|
|
| `k` | up |
|
||
|
|
| `l` | right |
|
||
|
|
| `j` | down |
|
||
|
|
| `h` | left |
|
||
|
|
| `esc` | cancel |
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 51e12bc: Improves types for events and interaction states.
|
||
|
|
|
||
|
|
## 0.3.5
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 4845f4f: Fixes a bug which kept the terminal cursor hidden after a prompt is cancelled
|
||
|
|
- d7b2fb9: Adds missing `LICENSE` file. Since the `package.json` file has always included `"license": "MIT"`, please consider this a licensing clarification rather than a licensing change.
|
||
|
|
|
||
|
|
## 0.3.4
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- a04e418: fix(@clack/core): keyboard input not working after await in spinner
|
||
|
|
- 4f6fcf5: feat(@clack/core): allow tab completion for placeholders
|
||
|
|
|
||
|
|
## 0.3.3
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- cd79076: fix: restore raw mode on unblock
|
||
|
|
|
||
|
|
## 0.3.2
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- c96eda5: Enable hard line-wrapping behavior for long words without spaces
|
||
|
|
|
||
|
|
## 0.3.1
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 58a1df1: Fix line duplication bug by automatically wrapping prompts to `process.stdout.columns`
|
||
|
|
|
||
|
|
## 0.3.0
|
||
|
|
|
||
|
|
### Minor Changes
|
||
|
|
|
||
|
|
- 8a4a12f: Add `GroupMultiSelect` prompt
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 8a4a12f: add `groupMultiselect` prompt
|
||
|
|
|
||
|
|
## 0.2.1
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- ec812b6: fix `readline` hang on Windows
|
||
|
|
|
||
|
|
## 0.2.0
|
||
|
|
|
||
|
|
### Minor Changes
|
||
|
|
|
||
|
|
- d74dd05: Adds a `selectKey` prompt type
|
||
|
|
- 54c1bc3: **Breaking Change** `multiselect` has renamed `initialValue` to `initialValues`
|
||
|
|
|
||
|
|
## 0.1.9
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 1251132: Multiselect: return `Value[]` instead of `Option[]`.
|
||
|
|
- 8994382: Add a password prompt to `@clack/prompts`
|
||
|
|
|
||
|
|
## 0.1.8
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- d96071c: Don't mutate `initialValue` in `multiselect`, fix parameter type for `validate()`.
|
||
|
|
|
||
|
|
Credits to @banjo for the bug report and initial PR!
|
||
|
|
|
||
|
|
## 0.1.7
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 6d9e675: Add support for neovim cursor motion (`hjkl`)
|
||
|
|
|
||
|
|
Thanks [@esau-morais](https://github.com/esau-morais) for the assist!
|
||
|
|
|
||
|
|
## 0.1.6
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 7fb5375: Adds a new `defaultValue` option to the text prompt, removes automatic usage of the placeholder value.
|
||
|
|
|
||
|
|
## 0.1.5
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- de1314e: Support `required` option for multi-select
|
||
|
|
|
||
|
|
## 0.1.4
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- ca77da1: Fix multiselect initial value logic
|
||
|
|
- 8aed606: Fix `MaxListenersExceededWarning` by detaching `stdin` listeners on close
|
||
|
|
|
||
|
|
## 0.1.3
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- a99c458: Support `initialValue` option for text prompt
|
||
|
|
|
||
|
|
## 0.1.2
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- Allow isCancel to type guard any unknown value
|
||
|
|
- 7dcad8f: Allow placeholder to be passed to TextPrompt
|
||
|
|
- 2242f13: Fix multiselect returning undefined
|
||
|
|
- b1341d6: Improved placeholder handling
|
||
|
|
|
||
|
|
## 0.1.1
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 4be7dbf: Ensure raw mode is unset on submit
|
||
|
|
- b480679: Preserve value if validation fails
|
||
|
|
|
||
|
|
## 0.1.0
|
||
|
|
|
||
|
|
### Minor Changes
|
||
|
|
|
||
|
|
- 7015ec9: Create new prompt: multi-select
|
||
|
|
|
||
|
|
## 0.0.12
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 9d371c3: Fix rendering bug when using y/n to confirm
|
||
|
|
|
||
|
|
## 0.0.11
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 441d5b7: fix select return undefined
|
||
|
|
- d20ef2a: Update keywords, URLs
|
||
|
|
- fe13c2f: fix cursor missing after submit
|
||
|
|
|
||
|
|
## 0.0.10
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- a0cb382: Add `main` entrypoint
|
||
|
|
|
||
|
|
## 0.0.9
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- Fix node@16 issue (cannot read "createInterface" of undefined)
|
||
|
|
|
||
|
|
## 0.0.8
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- a4b5e13: Bug fixes, exposes `block` utility
|
||
|
|
|
||
|
|
## 0.0.7
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- Fix cursor bug
|
||
|
|
|
||
|
|
## 0.0.6
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- Fix error with character check
|
||
|
|
|
||
|
|
## 0.0.5
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 491f9e0: update readme
|
||
|
|
|
||
|
|
## 0.0.4
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 7372d5c: Fix bug with line deletion
|
||
|
|
|
||
|
|
## 0.0.3
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 5605d28: Do not bundle dependencies (take II)
|
||
|
|
|
||
|
|
## 0.0.2
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 2ee67cb: don't bundle deps
|
||
|
|
|
||
|
|
## 0.0.1
|
||
|
|
|
||
|
|
### Patch Changes
|
||
|
|
|
||
|
|
- 306598e: Initial publish, still WIP
|