Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .fln.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"$schema": "https://fln.nesvet.dev/schema",
"output": "output.md",
"excludePatterns": [],
"includePatterns": [],
"gitignore": true,
"includeHidden": false,
"maxFileSize": "10mb",
"maxTotalSize": "0",
"includeTree": true,
"includeContents": true,
"format": "md",
"followSymlinks": false,
"overwrite": false
}
2 changes: 2 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ jobs:

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: "1.3.10"

- name: Cache dependencies
uses: actions/cache@v5
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ jobs:

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: "1.3.10"

- name: Setup Node.js
uses: actions/setup-node@v6
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/release-binary.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,16 @@ jobs:
architecture: arm64
archiveName: fln-windows-arm64.zip
packageType: zip
targetName: bun-windows-x64
targetName: bun-windows-arm64
outputName: fln.exe
steps:
- name: Checkout
uses: actions/checkout@v6

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: "1.3.10"

- name: Install dependencies
run: bun install --frozen-lockfile
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,7 @@ src/version.ts
node_modules/
dist/
fln
fln-*.md
output.md
output-*.md
docs/
43 changes: 42 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [1.2.0] - 2026-02-26

### 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.

## [1.1.3] - 2026-02-12

### Fixed
Expand Down Expand Up @@ -75,7 +115,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Cross-platform shell installers with SHA256 verification (macOS, Linux, Windows)
- Comprehensive test suite

[Unreleased]: https://github.com/nesvet/fln/compare/1.1.3...HEAD
[Unreleased]: https://github.com/nesvet/fln/compare/1.2.0...HEAD
[1.2.0]: https://github.com/nesvet/fln/compare/1.1.3...1.2.0
[1.1.3]: https://github.com/nesvet/fln/compare/1.1.2...1.1.3
[1.1.2]: https://github.com/nesvet/fln/compare/1.1.1...1.1.2
[1.1.1]: https://github.com/nesvet/fln/compare/1.0.0...1.1.1
Expand Down
Loading