PackageTrack

npm · #3845

@oclif/core

4.14.0oclif/core

base library for oclif CLIs

Release timeline

478 releases since 2020
202120222023202420252026

Releases

  1. 3.10.46 Nov 2023
    Release notes2 sources agree

    Bug Fixes

    • deps: bump get-func-name from 2.0.0 to 2.0.2 (#796) (a6c5f3c)
    Open source →
  2. 3.10.36 Nov 2023
    Release notes2 sources agree

    Bug Fixes

    • deps: bump postcss from 8.4.30 to 8.4.31 (#809) (fd938d3)
    Open source →
  3. 3.10.26 Nov 2023
    Release notes2 sources agree

    Bug Fixes

    • dont drop ts-node options if there are no extends (#853) (039b42a)
    Open source →
  4. 3.10.13 Nov 2023
    Release notes

    Bug Fixes

    • check for ENOENT code (44fb9dc)
    • handle non-existent tsconfig (0b15536)
    • support jsonc tsconfig (026f835)
    • use tsconfck to handle json-c (7f0c9f0)
    Open source →
    Additional notes

    Bug Fixes

    • check for ENOENT code (44fb9dc)
    • handle non-existent tsconfig (0b15536)
    • support jsonc tsconfig (026f835)
    • use tsconfck to handle json-c (7f0c9f0)

    3.10.0 (2023-11-02)

    Features

    Open source →
  5. 3.10.02 Nov 2023
    Release notes

    Features

    Open source →
  6. 3.9.230 Oct 2023
    Release notes2 sources agree

    Bug Fixes

    • support hasDynamicHelp for v2 commands (#844) (1b1e053)
    Open source →
  7. 3.9.127 Oct 2023
    Release notes

    Bug Fixes

    • restore exit(0) behavior (0c3fdd7)
    Open source →
    Additional notes

    Bug Fixes

    • restore exit(0) behavior (0c3fdd7)

    3.9.0 (2023-10-26)

    Features

    3.8.0 (2023-10-25)

    Features

    Open source →
  8. 3.9.026 Oct 2023
    Release notes

    Features

    Open source →
  9. 3.8.025 Oct 2023
    Release notes

    Features

    Open source →
  10. 3.7.124 Oct 2023
    Release notes

    3.3.3-dev.0 (2023-10-18)

    Bug Fixes

    • clear commands belogning to legacy plugins before reloading (6a53997)
    Open source →
  11. 3.7.024 Oct 2023
    Release notes

    Features

    Open source →
  12. 3.6.023 Oct 2023
    Release notes

    Bug Fixes

    • safely fail if pnpapi cannot be found (c2fc8d2)

    3.4.1-dev.0 (2023-10-19)

    Features

    Open source →
  13. 3.5.019 Oct 2023
    Release notes

    Bug Fixes

    Features

    • don't error on exit code 0 (c62fb01)
    Open source →
  14. 3.4.1-dev.019 Oct 2023pre-release
    Release notes

    Bug Fixes

    Features

    Open source →
    Additional notes

    Features

    3.5.0 (2023-10-19)

    Bug Fixes

    Features

    • don't error on exit code 0 (c62fb01)

    3.4.0 (2023-10-19)

    Bug Fixes

    Features

    • export ux stubs (4b7cdda)
    • no longer use wrapped process.stdout and process.stderr (3ff5f63)
    Open source →
  15. 3.4.019 Oct 2023
    Release notes

    Bug Fixes

    Features

    • export ux stubs (4b7cdda)
    • no longer use wrapped process.stdout and process.stderr (3ff5f63)
    Open source →
  16. 3.3.319 Oct 2023
    Release notes2 sources agree

    Bug Fixes

    • allow github-installed plugins to be auto-transpiled (6f2c5e2)
    • handle ModuleLoadError from hooks (0321093)
    Open source →
  17. 3.3.3-dev.018 Oct 2023pre-release
    Release notes

    Bug Fixes

    • clear commands belogning to legacy plugins before reloading (6a53997)
    Open source →
    Additional notes

    Bug Fixes

    • clear commands belogning to legacy plugins before reloading (6a53997)

    3.7.0 (2023-10-24)

    Features

    3.6.0 (2023-10-23)

    Bug Fixes

    • safely fail if pnpapi cannot be found (c2fc8d2)

    3.5.0 (2023-10-19)

    Open source →
  18. 3.3.217 Oct 2023
    Release notes2 sources agree

    Bug Fixes

    • deps: bump @babel/traverse from 7.23.0 to 7.23.2 (d53498a)
    Open source →
  19. 3.3.116 Oct 2023
    Release notes

    Bug Fixes

    • add frequency and frequencyUnit to warn-if-update (#827) (3567c74)
    Open source →
    Additional notes

    Bug Fixes

    • add frequency and frequencyUnit to warn-if-update (#827) (3567c74)

    3.3.0 (2023-10-16)

    Open source →
  20. 3.3.016 Oct 2023

    Nothing published for this version

  21. 3.2.113 Oct 2023
    Release notes

    Bug Fixes

    • add types for warn-if-update-available (#826) (5464dcf)
    Open source →
    Additional notes

    Bug Fixes

    • add types for warn-if-update-available (#826) (5464dcf)

    3.2.0 (2023-10-13)

    Bug Fixes

    • add Cache class for caching root plugin (9452b19)
    • bump ejs and other deps (14a0e48)
    • ignore .d.mts and .d.cts (4ba853f)
    • support baseUrl for ts source (03b824b)

    Features

    • support .mts and .cts file extensions (5f16e0b)

    Performance Improvements

    • promise.all flag and arg caching (c592ce0)

    3.1.0 (2023-10-13)

    Features

    • add hiddenAliases property to Command (5bf0a2e)
    • add hideAliases help option (f1925a7)
    Open source →
  22. 3.2.013 Oct 2023
    Release notes

    Bug Fixes

    • add Cache class for caching root plugin (9452b19)
    • bump ejs and other deps (14a0e48)
    • ignore .d.mts and .d.cts (4ba853f)
    • support baseUrl for ts source (03b824b)

    Features

    • support .mts and .cts file extensions (5f16e0b)

    Performance Improvements

    • promise.all flag and arg caching (c592ce0)
    Open source →
  23. 3.1.013 Oct 2023
    Release notes

    Features

    • add hiddenAliases property to Command (5bf0a2e)
    • add hideAliases help option (f1925a7)
    Open source →
  24. 3.0.912 Oct 2023
    Release notes2 sources agree

    Bug Fixes

    Open source →
  25. 3.0.812 Oct 2023
    Release notes2 sources agree

    Bug Fixes

    • deps: bump semver from 5.7.1 to 5.7.2 (#808) (cffa115)
    Open source →
  26. 3.0.712 Oct 2023
    Release notes2 sources agree

    Bug Fixes

    Open source →
  27. 3.0.611 Oct 2023
    Release notes2 sources agree

    Bug Fixes

    Open source →
  28. 3.0.511 Oct 2023
    Release notes

    3.0.5-dev.0 (2023-10-10)

    Bug Fixes

    • avoid fs.access for checking for file existence (c4277a9)
    Open source →
  29. 3.0.5-dev.010 Oct 2023pre-release
    Release notes2 sources agree

    Bug Fixes

    • avoid fs.access for checking for file existence (c4277a9)
    Open source →
  30. 3.0.49 Oct 2023
    Release notes2 sources agree

    Bug Fixes

    Open source →
  31. 3.0.35 Oct 2023
    Release notes2 sources agree

    Bug Fixes

    Open source →
  32. 3.0.25 Oct 2023
    Release notes2 sources agree

    Bug Fixes

    • dont run postrun hook for uinstalled plugins (#805) (0c47a5c)
    Open source →
  33. 3.0.15 Oct 2023
    Release notes

    Bug Fixes

    • add macos to plugin PJSON interface (2919835)
    Open source →
    Additional notes

    Bug Fixes

    • add macos to plugin PJSON interface (2919835)

    3.0.0 (2023-10-04)

    2.15.0 (2023-09-01)

    Features

    2.14.0 (2023-08-31)

    Features

    2.13.0 (2023-08-29)

    Features

    • forwards compatibility for config reload (#773) (b751bbe)

    2.12.0 (2023-08-28)

    Features

    • reload Config before running command (#770) (efd1f54)
    Open source →
  34. 3.0.04 Oct 2023
    Release notes

    BREAKING CHANGES ❗

    Dropping node 14 and node 16 support

    The end-of-life date for Node.js 14 was April 30, 2023.

    The end-of-life date for Node.js 16 was September 11, 2023. This date is earlier than previously published. Node.js’s blog explains why they chose this earlier end-of-life date.

    Bin Scripts for ESM/CJS Interoperability

    In order to support ESM and CommonJS plugin interoperability you will need to update your bin scripts to match these:

    CJS Template

    ESM Template

    You will also need to update any references to the bin scripts to include the .js extension.

    If you'd like to migrate your plugin to ESM, please read our guide here

    Dropped ts-node as a dependency

    We removed ts-node as a dependency to reduce the package size. By doing this, it means that linked plugin must have ts-node as a devDependency in order for auto-transpilation to work.

    Config.plugins

    Config.plugins is now a Map where the keys are the plugin names and the values are the loaded Plugin instances. Previously it was an array of loaded Plugin instances.

    By using a Map we can now do more efficient lookups during command execution. Config.getPluginsList was added in case you still would like a flat array of Plugin instances.

    Readonly properties on Config

    Various properties on Config are now readonly

    • name
    • version
    • channel
    • pjson
    • root
    • arch
    • bin
    • cacheDir
    • configDir
    • dataDir
    • dirname
    • errLog
    • home
    • platform
    • shell
    • userAgent
    • windows
    • debug
    • npmRegistry
    • userPJSON
    • plugins
    • binPath
    • binAliases
    • nsisCustomization
    • valid
    • flexibleTaxonomy
    • commands

    Private methods on Plugin

    The _manifest and warn methods on Plugin are now private

    global['cli-ux'] -> global.ux

    The global cli-ux object has been renamed to ux to be consistent with the module's name

    handle

    The exported handle function for handling errors in bin scripts is now asynchronous

    noCacheDefault flag property replaces isWritingManifest

    Version 2 allowed you to optionally return non-sensitive input if the default or defaultHelp flag/arg properties were called during manifest creation. This is helpful if you don't want sensitive data to be put into the oclif.manifest.json and then released to npm. To do this you had to handle the isWritingManifest parameter passed in to the default and defaultHelp callbacks.

    export const mySensitiveFlag = Flags.string({
      default: async (context, isWritingManifest) => {
        if (isWritingManifest) {
          return undefined
        }
    
        return 'sensitive info'
      },
    })
    

    Version 3 removes the isWritingManifest parameter in favor of a flag and arg property, noCacheDefault. Setting it to true will automatically keep it from being cached in the manifest.

    export const mySensitiveFlag = Flags.string({
      noCacheDefault: true,
      default: async (context) => {
        return 'sensitive info'
      },
    })
    

    Removed Unnecessary Exports

    The following exports have been removed:

    • toCached
    • tsPath

    Features 🎉

    Performance Improvements

    • Cache command permutations for flexible taxonomy in the oclif.manifest.json
    • Cache additional command properties (isESM, relativePath) in the oclif.manifest.json
    • Improved accuracy in the DEBUG=perf output.
    • Remove ts-node from dependencies to reduce the package size.

    charAliases Flag Property

    You can now define single character flag aliases using the charAliases property.

    Flags.option

    There's a new flag type that infers the flag's type from the provided options.

    In v2 you would have needed to do something like this,

    type Options = 'foo' | 'bar'
    export default class MyCommand extends Command {
      static flags = {
        name: Flags.custom<Options>({
          options: ['foo', 'bar'],
        })(),
      }
    }
    

    Now in v3 you can do this,

    export default class MyCommand extends Command {
      static flags = {
        name: Flags.option({
          options: ['foo', 'bar'] as const,
        })(),
      }
    }
    

    Set spinner styles

    You can now configure the style of the spinner when using ux.action.start. See spinners for all the different options.

    ux.action.start('starting spinner', 'spinning', {style: 'arc'})
    await ux.wait(2500)
    ux.action.status = 'still going'
    await ux.wait(2500)
    ux.action.stop()
    
    Open source →
  35. 3.0.0-beta.253 Oct 2023pre-release
    Release notes

    Bug Fixes

    • remove OCLIF_NEXT_VERSION (aece19a)
    Open source →
  36. 3.0.0-beta.243 Oct 2023pre-release
    Release notes

    Bug Fixes

    • remove OCLIF_NEXT_VERSION (aece19a)
    Open source →
  37. 3.0.0-beta.232 Oct 2023pre-release
    Release notes

    Features

    • collect perf results from outside oclif (#797) (2076445)
    Open source →
  38. 3.0.0-beta.222 Oct 2023pre-release
    Release notes

    Bug Fixes

    • move styledJson to index (2848e26)
    Open source →
  39. 3.0.0-beta.212 Oct 2023pre-release
    Release notes

    Bug Fixes

    Open source →
  40. 3.0.0-beta.202 Oct 2023pre-release
    Release notes

    Bug Fixes

    • move @types/cli-progress to devDeps (6696ff1)
    • remove tsPath export (60f1e30)
    Open source →
  41. 3.0.0-beta.1929 Sept 2023pre-release
    Release notes

    Bug Fixes

    Open source →
  42. 3.0.0-beta.1828 Sept 2023pre-release
    Release notes

    Bug Fixes

    Open source →
  43. 3.0.0-beta.1725 Sept 2023pre-release
    Release notes

    Features

    Open source →
  44. 3.0.0-beta.1622 Sept 2023pre-release
    Release notes

    Features

    Open source →
  45. 3.0.0-beta.1522 Sept 2023pre-release
    Release notes

    Bug Fixes

    • allow undefined from flag parser (878da23)
    Open source →
  46. 3.0.0-beta.1422 Sept 2023pre-release
    Release notes

    Features

    Open source →
  47. 3.0.0-beta.136 Sept 2023pre-release
    Release notes

    Features

    • skip ts-node register for ESM plugins (#778) (299df21)
    Open source →
  48. 3.0.0-beta.121 Sept 2023pre-release
    Release notes

    Bug Fixes

    • update imports in Config (96ca180)

    3.0.0-beta.11 (2023-09-01)

    Bug Fixes

    • revert styledJSON change (cec0ef2)

    3.0.0-beta.10 (2023-09-01)

    Features

    3.0.0-beta.9 (2023-08-31)

    Bug Fixes

    3.0.0-beta.8 (2023-08-31)

    Features

    • remove ux and interfaces export (979cf86)

    3.0.0-beta.7 (2023-08-31)

    Bug Fixes

    3.0.0-beta.6 (2023-08-31)

    Bug Fixes

    3.0.0-beta.5 (2023-08-31)

    Bug Fixes

    • add main to package.json (6254f9c)

    3.0.0-beta.4 (2023-08-31)

    3.0.0-beta.3 (2023-08-31)

    3.0.0-beta.2 (2023-08-31)

    Features

    3.0.0-beta.1 (2023-08-21)

    Open source →
  49. 3.0.0-beta.111 Sept 2023pre-release
    Release notes

    Bug Fixes

    • revert styledJSON change (cec0ef2)
    Open source →
  50. 3.0.0-beta.101 Sept 2023pre-release
    Release notes

    Features

    Open source →
  51. 3.0.0-beta.931 Aug 2023pre-release
    Release notes

    Bug Fixes

    Open source →
  52. 3.0.0-beta.831 Aug 2023pre-release
    Release notes

    Features

    • remove ux and interfaces export (979cf86)
    Open source →
  53. 3.0.0-beta.731 Aug 2023pre-release
    Release notes

    Bug Fixes

    Open source →
  54. 3.0.0-beta.631 Aug 2023pre-release
    Release notes

    Bug Fixes

    Open source →
  55. 3.0.0-beta.531 Aug 2023pre-release
    Release notes

    Bug Fixes

    • add main to package.json (6254f9c)
    Open source →
  56. 3.0.0-beta.431 Aug 2023pre-release

    Nothing published for this version

  57. 3.0.0-beta.331 Aug 2023pre-release
    Release notes

    2.14.0 (2023-08-31)

    Features

    2.13.0 (2023-08-29)

    Features

    • forwards compatibility for config reload (#773) (b751bbe)

    2.12.0 (2023-08-28)

    Features

    • reload Config before running command (#770) (efd1f54)

    2.11.11 (2023-08-28)

    Bug Fixes

    2.11.10 (2023-08-23)

    Bug Fixes

    • add getPluginsList to Config interface (cba7a75)

    2.11.9 (2023-08-23)

    Bug Fixes

    Open source →
  58. 3.0.0-beta.231 Aug 2023pre-release
    Release notes

    Features

    Open source →
  59. 3.0.0-beta.121 Aug 2023pre-release

    Nothing published for this version

  60. 2.16.08 Apr 2024

    Nothing published for this version