v3
- Rebuild the module runtime and command graph around clearer module boundaries, lifecycle hooks, and command definitions.
- Redesign the arguments, options, runtime context, and error handling APIs.
- Add dedicated
func/help,func/testing,func/config,func/log, andfunc/completionsubpaths for composing CLI capabilities as needed.
v2
- Add more
F_SYSTEM_*error codes to make errors easier to pinpoint. - Improve
funcgodiagnostics with build-time value type validation, source locations, code frames, and links to the matching error reference. - Require
Node.js 24or newer and adopt NodeNext module resolution across the workspace. - To view the legacy v2 documentation, visit func-v2.
- Publish separate
CommonJSandESMbundles with conditional package exports and a shared declaration entry. - Update
funcgoto 1.0, use Rolldown as the default build tool, and retainbuild-nccas the legacy build option. - Add end-to-end coverage for both
importandrequireconsumers. - Declare
Node.js 20.12or newer as the supported runtime.
- Rework command validation and parsing with stricter duplicate, type, required-value, array, and unknown-option checks.
- Add structured system, runtime, input, and deprecation errors with stable codes and details.
- Move the core package into the pnpm workspace and migrate its test suite to Vitest.
v1
func 1.0.0 was released on 2019-06-13 and established the framework’s foundations: decorator-based command definitions, option parsing, command dispatch, metadata registration, and service injection.