v1.0.0
🚨 Breaking Changes
- Move argv to
ParseOptions- by @so1ve (93c4e) - clerc:
- core:
- core, parser:
- core, plugin-help:
- parser:
- plugin-help:
🚀 Features
- A complete rewrite - by @so1ve in #320 (f4dc9)
- Rename
NoCommandGivenErrortoNoCommandSpecifiedError- by @so1ve (0ccbc) - Add generics to
Choices- by @so1ve (7382b) - Use
@uttr/tintinstead ofyoctocolors- by @so1ve (b0e23) - clerc:
- core:
- Support space-separated parameters - by @so1ve (b1ced)
- Re-export parser constants - by @so1ve (3a2ca)
- Allow extending flag options - by @so1ve (ea6fd)
- Re-export parser types - by @so1ve (42c0f)
- Provide a shared
storestate to communicate between plugins - by @so1ve (262b7) - Command constraints - by @so1ve (4c258)
- Allow extending parameter option types - by @so1ve (1bb8a)
- Support registering multiple commands in one array - by @so1ve (f44db)
- core, plugin-help:
- parser:
- parser, plugin-help:
- plugin-completions:
- Allow hiding certain commands in completion result - by @so1ve (29a42)
- Use types to restrict input values - by @so1ve (e1739)
- Replace
@pnpm/tabtabwith@bomb.sh/tab- by @so1ve in #323 (205f9) - Allow hiding flags in completion result - by @so1ve (faf3c)
- Allow passing custom handlers for flags - by @so1ve (a1bbf)
- Allow user passing custom command handler - by @so1ve (c1917)
- Allow passing custom handlers for parameters - by @so1ve (3b701)
- plugin-core:
- plugin-help:
- Allow hiding certain commands in help text, close #262 - by @so1ve in #262 (6723b)
- Support customize flag formatter - by @so1ve (80484)
- Re-export default formatters - by @so1ve (db812)
- Grouping commands, flags and globalFlags - by @so1ve (25c65)
- Add line breaks between groups - by @so1ve (d40d1)
- Add back
<COMMAND>placeholder - by @so1ve (39b48) - Put commands/flags in default group at top - by @so1ve (24928)
- Put root command at top - by @so1ve (65c62)
- Display subcommands - by @so1ve (72efd)
- Throw errors when command not found and let other handlers handle it - by @so1ve (f07e3)
- Display parameter constraints - by @so1ve (ecfef)
- Reorder sections in a more readable way - by @so1ve (bb50f)
- Print available subcommands - by @so1ve (57d2e)
- Remaster colors - by @so1ve (67d2c)
- Dim cli name - by @so1ve (d4c51)
- Make
[flags]and[command]dimmed - by @so1ve (7c8ca)
- plugin-not-found:
- plugin-store:
🐞 Bug Fixes
- Use
console.loginstead ofprocess.stdout.write- by @so1ve (59ed5) - Correctly inline @clerc/utils - by @so1ve (9e12e)
- Remove default value for Flags in command definitions to help autocompletion - by @so1ve (364f7)
- clerc:
- core:
- Rename
maybeMissingParameterstomissingParametersand it's not optional - by @so1ve (c1ac0) - Should return promise instead of ignore it during error handling - by @so1ve (5f67b)
- Should accept a stricter
readonly string[]as Parameters - by @so1ve (dfb83) - Should accept readonly parameters in
defineCommandas well - by @so1ve (25e29) - Should resolve alias from command object instead of options - by @so1ve (cec6b)
- Remove default value from type parameter to make generic constraints work - by @so1ve (f25ef)
- Restrict ConstraintFunction type parameter to string - by @so1ve (249d5)
- Should allow flag shorthand definition - by @so1ve (e4330)
- Support catching error thrown in command handler - by @so1ve (8d772)
- Only omit known keys from global flags - by @so1ve (4d29c)
- Rename
- deps:
- Update all non-major dependencies - in #275 (feff7)
- Update all non-major dependencies - in #281 (dbc3f)
- Update all non-major dependencies - in #286 (21e3e)
- Update all non-major dependencies - in #287 (5b316)
- Update all non-major dependencies - in #290 (b31b9)
- Update all non-major dependencies - in #291 (41986)
- Update dependency type-fest to v4.40.0 - in #294 (c2f3e)
- Update dependency type-fest to v4.40.1 - in #296 (ce1aa)
- Update all non-major dependencies - in #298 (b0ee8)
- parser:
- Should cast
anytype toany- by @so1ve (18e66) - Should infer default value for counter types and object types - by @so1ve (e17c5)
- Rename
FlagTypeFunctiontoTypeFunction- by @so1ve (4568e) - Should peek next value instead of eat immediately - by @so1ve (7ea23)
- Should not use
requiredwithdefault- by @so1ve (9cc0c) - Should not resolve short flags as long flags - by @so1ve (1340c)
- Should cast
- plugin-completions:
- Do not display
completion-servercommand in help text - by @so1ve (4cec4) - Register help groups - by @so1ve (76283)
- Should use
_scriptNamefor tabtab - by @so1ve (42e2e) - Hide completion-server from completion result - by @so1ve (d54c2)
- Should not perform extra filtering - by @so1ve (f78bb)
- Remove duplicated description - by @so1ve (6a030)
- Register flags correctly for root command - by @so1ve (981ab)
- Should distinguish between boolean flags and non-boolean flags - by @so1ve (1f499)
- Handle flags completion handlers correctly - by @so1ve (7aca1)
- Distinguish between boolean flags and flags that takes value - by @so1ve (795e2)
- Do not display
- plugin-help:
- Remove unneccesary colored text - by @so1ve (039ad)
- Should fallback to cli script name when command is root - by @so1ve (db85d)
- Delay reading groups - by @so1ve (1c5f3)
- Delay reading examples - by @so1ve (8119f)
- Should not show
commandplaceholder when no command exists - by @so1ve (4c25e) - Should not show
commandplaceholder when only registered root command - by @so1ve (d6947) - Make parameter type dimmed - by @so1ve (1817a)
- Script name should not be dimmed - by @so1ve (36e4d)
- Should filter out DOUBLE_DASH from render list - by @so1ve (748c8)
- Correctly ignore double dash in parameters section - by @so1ve (06777)
- Should wrap
--in[]if there's no required parameters after--- by @so1ve (70c25) - Allow
--in string format only - by @so1ve (f4931) - Use consistent filter logic for double dash - by @so1ve (75e55)
- plugin-help, plugin-completions:
- plugin-version:
👷 CI
- Update node version - by @so1ve (92e4f)
- Fix release - by @so1ve (badd5)
- Add pkg.pr.new - by @so1ve (de5ef)
- Fix publish script - by @so1ve (2c29c)
- Use shared workflow - by @so1ve (3541e)
- Fix commit release - by @so1ve (9b89e)
- Enable compact - by @so1ve (e8572)
🧹 Chore
- Fix jsdoc typo - by Kawasaki Shizuku (63aea)
- Update deps - by @so1ve (dc17a)
- Update deps and lint - by @so1ve (9291c)
- Update deps - by @so1ve (20207)
- Release v1.0.0-beta.1 - by @so1ve (d7972)
- Configure changelogithub - by @so1ve (dd728)
- Fix lint - by @so1ve (660bf)
- Rename - by @so1ve (8c2cd)
- Release v1.0.0-beta.2 - by @so1ve (fbfc4)
- Mark all packages as isolated - by @so1ve (7a848)
- Apply automatic fixes - (c253f)
- Benchmark args-tokens - by @so1ve (05c91)
- Fix typechecking - by @so1ve (5de13)
- Add vitest typechecking - by @so1ve (ed1b2)
- Test all in ci - by @so1ve (92860)
- Release v1.0.0-beta.3 - by @so1ve (7ba7f)
- Release v1.0.0-beta.4 - by @so1ve (49ea5)
- Apply automatic fixes - (fe265)
- Try using trusted publisher - by @so1ve (edfd1)
- Remove build step in release script - by @so1ve (c3b87)
- Release v1.0.0-beta.6 - by @so1ve (3dfa9)
- Cleanup tazerc - by @so1ve (239f1)
- Cleanup renovate config - by @so1ve (de22e)
- Release v1.0.0-beta.7 - by @so1ve (e9ded)
- Release v1.0.0-beta.8 - by @so1ve (698ae)
- Release v1.0.0-beta.9 - by @so1ve (aab84)
- Use tsdown's workspace functinality to build - by @so1ve (65015)
- Update lockfile - by @so1ve (d95f1)
- Release v1.0.0-beta.10 - by @so1ve (5d72a)
- Release v1.0.0-beta.11 - by @so1ve (42f6d)
- Fix unocss config type issue - by @so1ve (60f15)
- Type-check docs - by @so1ve (29b9b)
- Use toSorted - by @so1ve (eee9d)
- Release v1.0.0-beta.12 - by @so1ve (4e029)
- Release v1.0.0-beta.13 - by @so1ve (47332)
- Release v1.0.0-beta.14 - by @so1ve (c2324)
- Release v1.0.0-beta.15 - by @so1ve (b728d)
- Lint - by @so1ve (31ceb)
- Release v1.0.0-beta.16 - by @so1ve (217cb)
- Release v1.0.0-beta.17 - by @so1ve (3e279)
- Release v1.0.0-beta.18 - by @so1ve (9f86d)
- Fix type - by @so1ve (1ac37)
- Release v1.0.0-beta.19 - by @so1ve (66170)
- Release v1.0.0-beta.20 - by @so1ve (e2c0b)
- Release v1.0.0-beta.21 - by @so1ve (d6dbc)
- Release v1.0.0-beta.22 - by @so1ve (e1883)
- Release v1.0.0-beta.23 - by @so1ve (26daf)
- Add comment - by @so1ve (e39bc)
- Release v1.0.0-beta.24 - by @so1ve (e19a1)
- Release v1.0.0-beta.25 - by @so1ve (89446)
- Delete packages/plugin-completions/debug.txt - by @so1ve (b8659)
- Associate
.mdtypes - by @so1ve (747cd) - Release v1.0.0-beta.26 - by @so1ve (1669d)
- Rename
FlagRequiredOrDefaultinternally - by @so1ve (6d8eb) - Release v1.0.0-beta.27 - by @so1ve (5f0d0)
- Release v1.0.0-beta.28 - by @so1ve (66a29)
- Use tsgo - by @so1ve (e3cf8)
- Restrict using imports from
clercin packages - by @so1ve (9c64a) - Release v1.0.0-beta.29 - by @so1ve (3507e)
- Pin tsgo to temporarily fix hang issue - by @so1ve (dd3cf)
- Release v1.0.0-beta.30 - by @so1ve (1bf61)
- Bump tsgo - by @so1ve (05239)
- Release v1.0.0-beta.31 - by @so1ve (9cf17)
- Release v1.0.0 - by @so1ve (7878c)
- deps:
- Update dependency type-fest to v4.16.0 - (108aa)
- Update dependency type-fest to v4.17.0 - (8e4fa)
- Update all non-major dependencies - (c306d)
- Update pnpm to v8.15.8 - (aae89)
- Update dependency type-fest to v4.18.1 - (f1f8a)
- Update dependency type-fest to v4.18.2 - (f3e92)
- Update dependency @types/node to v18.19.32 - (54938)
- Update dependency @types/node to v18.19.33 - (1c43b)
- Update dependency type-fest to v4.18.3 - (890a9)
- Update dependency prettier to v3.3.0 - (d13d7)
- Update dependency @types/node to v18.19.34 - (5e889)
- Update dependency type-fest to v4.19.0 - (7ecf3)
- Update dependency prettier to v3.3.1 - (94de6)
- Update dependency type-fest to v4.20.0 - (ff8df)
- Update dependency prettier to v3.3.2 - (4f11f)
- Update dependency type-fest to v4.20.1 - (50af1)
- Update dependency @types/node to v18.19.35 - (25ba2)
- Update dependency @types/node to v18.19.36 - (36249)
- Update dependency @types/node to v18.19.37 - (bed6a)
- Update dependency typescript to v5.5.2 - (0d6b5)
- Update dependency @types/node to v18.19.38 - (aec4b)
- Update dependency @types/node to v18.19.39 - (6d27a)
- Update autofix-ci/action digest to dd55f44 - (361f3)
- Update autofix-ci/action digest to 2891949 - (c16c1)
- Update dependency typescript to v5.5.3 - (3685a)
- Update dependency type-fest to v4.21.0 - (ffe93)
- Update dependency prettier to v3.3.3 - (bc689)
- Update dependency @types/node to v18.19.40 - (40251)
- Update dependency type-fest to v4.22.0 - (71372)
- Update pnpm to v8.15.9 - (95eea)
- Update dependency type-fest to v4.22.1 - (36a94)
- Update autofix-ci/action digest to ff86a55 - (b0d95)
- Update dependency @types/node to v18.19.41 - (08bb3)
- Update dependency type-fest to v4.23.0 - (8682b)
- Update dependency typescript to v5.5.4 - (0f47c)
- Update dependency @types/node to v18.19.42 - (8d72f)
- Update dependency bumpp to v9.4.2 - (fd5d9)
- Update dependency @types/node to v18.19.43 - (663c8)
- Update dependency type-fest to v4.24.0 - (b00cd)
- Update dependency @types/node to v18.19.44 - (12e8c)
- Update dependency bumpp to v9.5.1 - (8ca1b)
- Update dependency type-fest to v4.25.0 - (4da86)
- Update dependency @types/node to v18.19.45 - (a8987)
- Update dependency bumpp to v9.5.2 - (ba2fb)
- Update dependency @types/node to v18.19.46 - (bb262)
- Update dependency @types/node to v18.19.47 - (12218)
- Update dependency type-fest to v4.26.0 - (07a4c)
- Update dependency @types/node to v18.19.48 - (8f756)
- Update dependency @types/node to v18.19.49 - (e71c1)
- Update dependency @types/node to v18.19.50 - (55528)
- Update dependency type-fest to v4.26.1 - (821c0)
- Update dependency typescript to v5.6.2 - (5424f)
- Update dependency eslint to v8.57.1 - (3646b)
- Update dependency vite to v4.5.5 - (704d4)
- Update dependency @types/node to v18.19.51 - (6305e)
- Update dependency @types/node to v18.19.52 - (61e03)
- Update dependency @types/node to v18.19.53 - (b2e69)
- Update dependency @types/node to v18.19.54 - (2b7d4)
- Update dependency bumpp to v9.6.0 - (d5362)
- Update dependency bumpp to v9.6.1 - (9c646)
- Update dependency @types/node to v18.19.55 - (4d7ac)
- Update dependency typescript to v5.6.3 - (4e10e)
- Update dependency bumpp to v9.7.1 - (baa0c)
- Update dependency @types/node to v18.19.56 - (11dab)
- Update dependency @types/node to v18.19.57 - (3bcf8)
- Update dependency @types/node to v18.19.58 - (b126d)
- Update dependency @types/node to v18.19.59 - (96a49)
- Update dependency bumpp to v9.8.0 - (14b08)
- Update dependency @types/node to v18.19.60 - (01150)
- Update dependency @types/node to v18.19.61 - (9ec03)
- Update dependency @types/node to v18.19.62 - (45138)
- Update dependency @types/node to v18.19.63 - (74623)
- Update dependency @types/node to v18.19.64 - (f118a)
- Update dependency bumpp to v9.8.1 - (88e87)
- Update dependency type-fest to v4.27.0 - in #267 (c2b32)
- Update dependency typescript to v5.7.2 - in #268 (63f47)
- Update dependency @types/node to v18.19.65 - in #269 (cfa49)
- Update dependency type-fest to v4.27.1 - in #270 (0a398)
- Update dependency type-fest to v4.28.0 - in #271 (d5d42)
- Update dependency @types/node to v18.19.66 - in #272 (a5729)
- Update dependency prettier to v3.4.0 - in #273 (de7d7)
- Update dependency type-fest to v4.28.1 - in #274 (8722a)
- Update autofix-ci/action digest to 551dded - in #278 (d4845)
- Update dependency bumpp to v9.10.1 - in #279 (3989b)
- Update dependency @types/node to v18.19.71 - in #280 (2e561)
- Update dependency vite to v4.5.9 - in #282 (392a5)
- Update dependency bumpp to v9.10.2 - in #283 (2f3f7)
- Update dependency @types/node to v18.19.74 - in #284 (caf3d)
- Update dependency bumpp to v9.11.1 - in #285 (77167)
- Update dependency @types/node to v18.19.84 - in #288 (b2cf0)
- Update dependency vite to v4.5.11 - in #289 (1db20)
- Update dependency typescript to v5.8.3 - in #292 (c1495)
- Update dependency vite to v4.5.13 - in #293 (1918a)
- Update dependency @types/node to v18.19.87 - in #295 (779af)
- Update dependency vite to v4.5.14 - in #297 (54568)
- Update dependency @types/node to v18.19.97 - in #299 (1e192)
- Update dependency @types/node to v18.19.98 - in #300 (d5c5a)
- Update dependency @types/node to v18.19.99 - in #301 (6b301)
- Update dependency @types/node to v18.19.100 - in #302 (2b37b)
- Update dependency @types/node to v18.19.101 - in #303 (941e1)
- Update dependency @types/node to v18.19.103 - in #304 (980a5)
- Update dependency @types/node to v18.19.104 - in #305 (ae73d)
- Update dependency @types/node to v18.19.105 - in #306 (2f275)
- Update dependency @types/node to v18.19.108 - in #307 (d1eca)
- Update dependency @types/node to v18.19.110 - in #308 (7029f)
- Update dependency @types/node to v18.19.111 - in #309 (d72e4)
- Update autofix-ci/action digest to 635ffb0 - in #310 (3195c)
- Update dependency @types/node to v18.19.112 - in #311 (9e76b)
- plugin-help:
🧪 Test
- Update mocking - by @so1ve (f7474)
- Remove compatibility test - by @so1ve (ece28)
- Rename
ClitoTestClito avoid potential conflict - by @so1ve (78d83) - Rename old
TestClitoTestBaseCliand introduce newTestCli- by @so1ve (623d3) - Fix dependencies - by @so1ve (b603d)
- Update snapshot - by @so1ve (5cda6)
- Improve coverage - by @so1ve (d80be)
- Add "clerc" as a direct dependency? - by @so1ve (45d36)
- Update snapshot - by @so1ve (95bcf)
- Update snapshot - by @so1ve (833eb)
- Update snapshot - by @so1ve (38406)
- Split tests into smaller files - by @so1ve (a9b5b)
- clerc:
- core:
- parser:
- plugin-completions:
- plugin-help:
🔨 Refactor
- Extract
resolveValueandMaybeGetter- by @so1ve (04bb2) - Use more consistent file naming - by @so1ve (1a79e)
- Disallow importing from
clerc- by @so1ve (e2799) - Move flag types to core - by @so1ve (41f18)
- Extract advanced types into a separated package - by @so1ve (e9ed3)
- core:
- parser:
- plugin-completions:
- plugin-help:
- test-utils: