Skip to content

Releases: SBoudrias/Inquirer.js

[email protected]

13 Dec 17:58
[email protected]
7eedd8e

Choose a tag to compare

  • Feat: rawlist now supports default option.
  • Fix: select now infer return type properly when passing a choices array of string literals.

@inquirer/[email protected]

13 Dec 17:59
@inquirer/[email protected]
7eedd8e

Choose a tag to compare

  • fix: preserve Value type inference in render()

@inquirer/[email protected]

13 Dec 17:57
@inquirer/[email protected]
7eedd8e

Choose a tag to compare

  • Fix: Return type when using a list of string as choices.

@inquirer/[email protected]

13 Dec 17:56
@inquirer/[email protected]
7eedd8e

Choose a tag to compare

  • Feat: Now supports default

@inquirer/[email protected]

13 Dec 17:58
@inquirer/[email protected]
7eedd8e

Choose a tag to compare

  • Feat: rawlist now supports default option.
  • Fix: select now infer return type properly when passing a choices array of string literals.

@inquirer/[email protected]

13 Dec 17:56
@inquirer/[email protected]
7eedd8e

Choose a tag to compare

  • Feat: KeypressEvents now register shift keys.

[email protected]

02 Dec 20:51
[email protected]
9c72429

Choose a tag to compare

  • Fix Typescript not discovering types when moduleResolution is set to commonjs (you probably want to fix that in your project if it's still in your tsconfig)

@inquirer/[email protected]

02 Dec 20:51
@inquirer/[email protected]
9c72429

Choose a tag to compare

  • Fix Typescript not discovering types when moduleResolution is set to commonjs (you probably want to fix that in your project if it's still in your tsconfig)

[email protected]

16 Nov 22:29
[email protected]
676685d

Choose a tag to compare

Release Notes

🚨 Breaking Changes

This is a major release that modernizes the codebase for Node.js ≥ 20.

ESM Only - No More CommonJS Support

Impact: All packages are now ESM-only. CommonJS imports are no longer supported.

If you're on modern Node versions (≥ 20), this should be transparent and have no impact.

Node.js Version Requirement

Minimum Node.js version is now 20.x

Node.js versions below 20 are no longer supported. Please upgrade to Node.js 20 or later.

Node min versions: >=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0

Deprecated APIs Removed

The following deprecated APIs have been removed after being deprecated in previous releases:

list prompt alias removed (affects inquirer package only)

The list alias has been removed from the inquirer package. This only impacts users of the legacy inquirer package, not users of @inquirer/prompts or individual prompt packages.

// ❌ No longer available (inquirer package only)
import inquirer from 'inquirer';
const answer = await inquirer.prompt([
  { type: 'list', name: 'choice', message: 'Pick one:', choices: ['a', 'b'] }
]);

// ✅ Use 'select' instead
import inquirer from 'inquirer';
const answer = await inquirer.prompt([
  { type: 'select', name: 'choice', message: 'Pick one:', choices: ['a', 'b'] }
]);

helpMode theme property removed

// ❌ No longer available
const answer = await select({
  theme: { helpMode: 'never' }
});

// ✅ Use theme.style.keysHelpTip instead
const answer = await select({
  theme: {
    style: {
      keysHelpTip: () => undefined // or your custom styling function
    }
  }
});

This affects the following prompts:

  • @inquirer/checkbox
  • @inquirer/search
  • @inquirer/select

instructions config property removed

// ❌ No longer available
const answer = await checkbox({
  instructions: 'Custom instructions'
});

// ✅ Use theme.style.keysHelpTip instead
const answer = await checkbox({
  theme: {
    style: {
      keysHelpTip: (text) => 'Custom instructions'
    }
  }
});

This affects the following prompts:

  • @inquirer/checkbox
  • @inquirer/search
  • @inquirer/select

cancel() method removed

The cancel() method on prompt return custom Promise has been removed.

// ❌ No longer available
const answerPromise = input({ message: 'Name?' });
answerPromise.cancel();
const answer = await answerPromise;

// ✅ Use AbortSignal instead
const controller = new AbortController();
const answer = await input(
  { message: 'Name?' },
  { signal: controller.signal }
);
controller.abort();

Color Library Change: yoctocolors → Node.js styleText

Internal change: The project now uses Node.js built-in util.styleText() instead of the yoctocolors package for terminal colors. This makes Inquirer smaller and reduces risks of vulnerabilities coming from transitive dependencies.

@inquirer/[email protected]

16 Nov 22:29
@inquirer/[email protected]
676685d

Choose a tag to compare

Release Notes

🚨 Breaking Changes

This is a major release that modernizes the codebase for Node.js ≥ 20.

ESM Only - No More CommonJS Support

Impact: All packages are now ESM-only. CommonJS imports are no longer supported.

If you're on modern Node versions (≥ 20), this should be transparent and have no impact.

Node.js Version Requirement

Minimum Node.js version is now 20.x

Node.js versions below 20 are no longer supported. Please upgrade to Node.js 20 or later.

Node min versions: >=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0

Deprecated APIs Removed

The following deprecated APIs have been removed after being deprecated in previous releases:

list prompt alias removed (affects inquirer package only)

The list alias has been removed from the inquirer package. This only impacts users of the legacy inquirer package, not users of @inquirer/prompts or individual prompt packages.

// ❌ No longer available (inquirer package only)
import inquirer from 'inquirer';
const answer = await inquirer.prompt([
  { type: 'list', name: 'choice', message: 'Pick one:', choices: ['a', 'b'] }
]);

// ✅ Use 'select' instead
import inquirer from 'inquirer';
const answer = await inquirer.prompt([
  { type: 'select', name: 'choice', message: 'Pick one:', choices: ['a', 'b'] }
]);

helpMode theme property removed

// ❌ No longer available
const answer = await select({
  theme: { helpMode: 'never' }
});

// ✅ Use theme.style.keysHelpTip instead
const answer = await select({
  theme: {
    style: {
      keysHelpTip: () => undefined // or your custom styling function
    }
  }
});

This affects the following prompts:

  • @inquirer/checkbox
  • @inquirer/search
  • @inquirer/select

instructions config property removed

// ❌ No longer available
const answer = await checkbox({
  instructions: 'Custom instructions'
});

// ✅ Use theme.style.keysHelpTip instead
const answer = await checkbox({
  theme: {
    style: {
      keysHelpTip: (text) => 'Custom instructions'
    }
  }
});

This affects the following prompts:

  • @inquirer/checkbox
  • @inquirer/search
  • @inquirer/select

cancel() method removed

The cancel() method on prompt return custom Promise has been removed.

// ❌ No longer available
const answerPromise = input({ message: 'Name?' });
answerPromise.cancel();
const answer = await answerPromise;

// ✅ Use AbortSignal instead
const controller = new AbortController();
const answer = await input(
  { message: 'Name?' },
  { signal: controller.signal }
);
controller.abort();

Color Library Change: yoctocolors → Node.js styleText

Internal change: The project now uses Node.js built-in util.styleText() instead of the yoctocolors package for terminal colors. This makes Inquirer smaller and reduces risks of vulnerabilities coming from transitive dependencies.