A CLI tool to audit Umbraco 13 LTS projects and estimate upgrade effort to Umbraco 17 LTS.
- π Scans Umbraco 13 projects for upgrade-breaking changes
- π Generates detailed hour estimates based on 10 detection rules
- π¨ Beautiful console output
- β‘ Fast scanning with NuGet API integration
- π Configurable rules and output formats
npx umbaudit /path/to/umbraco-project# Verbose mode (show detailed findings)
npx umbaudit /path/to/project --verbose
# Debug mode (show trace logs)
npx umbaudit /path/to/project --debug
# JSON output
npx umbaudit /path/to/project --output json
# HTML output (coming soon)
npx umbaudit /path/to/project --output htmlThe tool applies 10 rules to detect upgrade-relevant changes:
| Rule | Detection | Base Hours |
|---|---|---|
| NuGet Package Updates | Checks package versions against NuGet API | 0.5h for minor/patch, 1.0h for major version bumps |
| Obsolete Controller Classes | Detects 3 controller classes that no longer exist (UmbracoApiController, UmbracoAuthorizedApiController, UmbracoAuthorizedJsonController) |
1.0h per file |
| Tiptap Import Changes | Finds Tiptap imports (@umbraco-cms/backoffice/external/tiptap) needing updates |
0.5h per file |
| Removed Packages | Detects 3 packages removed in v17 (Umbraco.Cloud.Cms.PublicAccess, Umbraco.Cloud.Identity.Cms, Umbraco.Cms.Web.BackOffice) |
0.5h per package |
| Program.cs Changes | Finds UseInstallerEndpoints() calls that have been removed |
0.5h fixed |
| ViewImports Smidge Removal | Detects Smidge TagHelper references in _ViewImports.cshtml |
0.5h fixed |
| Angular Detection | Counts AngularJS files in App_Plugins requiring migration to Lit/Web Components |
40h base (5 days) + 4h per 10 files |
| Published Snapshot Interfaces | Detects IPublishedSnapshotAccessor and IPublishedSnapshot usage |
0.5h fixed for generated files, 0.5h per regular file |
| Outdated Property Editors | Detects obsolete property editors in *.uda files (Umbraco.MediaPicker, Nested Content, Stacked Content) |
1.0h per occurrence |
| License File Structure Changes | Detects legacy license files (umbracoDeploy.lic, umbracoForms.lic) needing update for new licensing structure |
0.5h total |
βββ βββββββ βββββββββββ βββββββ ββββββ βββββββ βββββββ
βββ ββββββββ ββββββββββββββββββββββββββββββββββββββββββββββ
βββ βββββββββββββββββββββββββββββββββββββββββ βββ βββ
βββ βββββββββββββββββββββββββββββββββββββββββ βββ βββ
ββββββββββββ βββ ββββββββββββββ ββββββ ββββββββββββββββββββ
βββββββ βββ ββββββββββ βββ ββββββ βββ βββββββ βββββββ
LTS Upgrade Audit Tool v0.1.0
ββββββββββββββββββββββββββββββββββββββββββββββββββββ¬βββββββββββββ¬βββββββββββββ
β Rule β Matches β Hours β
ββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββΌβββββββββββββ€
β NuGet Package Updates β 12 β 6.0 β
β ββ Umbraco.* packages β 5 β 2.5 β
β ββ Other packages β 7 β 3.5 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββΌβββββββββββββ€
β Obsolete Controller Classes β 2 β 2.0 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββΌβββββββββββββ€
β Tiptap Import Changes β 2 β 1.0 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββΌβββββββββββββ€
β Program.cs Changes β 1 β 0.5 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββΌβββββββββββββ€
β Angular Files Detected β 8 β 40.0 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ΄βββββββββββββ΄βββββββββββββ€
β TOTAL ESTIMATE: 51.0 hours (~6.4 days @ 8h/day) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
#H5YR! π Thanks for using the Umbraco Upgrade Audit Tool!
npm run buildnpm testnpm run lint
npm run lint:fix- TypeScript 5.x with strict mode
- Node.js 22 LTS runtime
- Commander for CLI framework
- Zod for schema validation
- fast-glob for file scanning
- fast-xml-parser for .csproj parsing
- chalk for terminal colors
- cli-table3 for table rendering
src/
βββ cli/ # CLI commands and output formatters
βββ rules/ # 10 audit rules
βββ scanners/ # File scanning and parsing utilities
βββ models/ # TypeScript interfaces
βββ utils/ # Shared utilities (logger, hours calc)
- v0.1.0 - Basic console output with 10 rules (MVP)
- v0.2.0 - JSON and HTML output formats
- v0.3.0 - YAML configuration support
- v1.0.0 - Detailed findings with code snippets
MIT
Built with β€οΈ for the Umbraco community. H5YR! π