Skip to content

chore(release): 1.2.0 - #12

Merged
nesvet merged 9 commits into
mainfrom
develop
Feb 26, 2026
Merged

chore(release): 1.2.0#12
nesvet merged 9 commits into
mainfrom
develop

Conversation

@nesvet

@nesvet nesvet commented Feb 26, 2026

Copy link
Copy Markdown
Owner

Description

What does this PR do?

Refactors path and pattern handling to normalize paths safely, respect gitignore, and avoid including files outside the input directory; adds a typed config schema and new option names across API/CLI (input/output/maxFileSize/maxTotalSize/date/gitignore/ansi) plus fln init, --stdout, --ext, --since, --banner/--footer and --date flags; and expands test coverage, updates README/examples, and prepares the 1.2.0 release artifacts and CI workflow.

Changes

Removed (Breaking)

  • Public API reduced to fln, FlnOptions, FlnResult, LogLevel, ProgressCallback. Removed exports: scanTree, writeOutput, renderTree, IgnoreMatcher, parseByteSize, formatByteSize, formatTokenCount, collectExtensionStats, collectProcessedFiles, core types (FileNode, ScanResult, etc.), VERSION.

Added

  • New option names: input (replaces rootDirectory), output (replaces outputFile), maxFileSize, maxTotalSize, date, gitignore, ansi (API, config, CLI)
  • JSON output now includes input field (in addition to rootDirectory for backward compatibility)
  • bannerFile — path to file whose contents are prepended to output (file excluded from tree)
  • footerFile — path to file whose contents are appended to output (file excluded from tree)
  • New CLI features: fln init, --stdout, --ext, --since
  • New CLI flags: --date, --banner-file, --footer-file
  • Config schema and fln init template ($schema) for .fln.json

Changed

  • JSON output options object now uses maxFileSize, maxTotalSize, gitignore (old names deprecated)
  • Output now supports stdout target (-) and auto-adds extension (.md/.json) when missing
  • Banner/footer content now combines inline text with file-based content
  • Project metadata detection now also supports pom.xml

Fixed

  • excludePatterns and includePatterns now normalize leading ./ and safely ignore paths resolving outside input (for example, ../...)
  • Windows ARM64 binary release target corrected in release workflow

Deprecated

  • rootDirectory — use input instead. Will be removed in 2.0.
  • outputFile — use output instead (in API options and .fln.json). Will be removed in 2.0.
  • maximumFileSizeBytes — use maxFileSize instead. Will be removed in 2.0.
  • maximumTotalSizeBytes — use maxTotalSize instead. Will be removed in 2.0.
  • generatedDate — use date instead. Will be removed in 2.0.
  • useGitignore — use gitignore instead. Will be removed in 2.0.
  • useAnsi — use ansi instead. Will be removed in 2.0.
  • CLI --generated-date — use --date instead. Will be removed in 2.0.
  • JSON output field rootDirectory — use input instead. Will be removed in 2.0.

Testing

  • bun test passes
  • bun run lint passes
  • bun run typecheck passes
  • Tested manually (describe scenario if applicable)

Checklist

  • Updated documentation if needed (README, CONTRIBUTING, etc.)
  • Added tests for new features or bug fixes
  • Updated CHANGELOG.md if this is a notable change

@nesvet
nesvet force-pushed the develop branch 2 times, most recently from efc294c to 519a47d Compare February 26, 2026 11:03
@nesvet
nesvet merged commit 029e4bb into main Feb 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant