@nathievzm/lumi 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [1.1.2](https://github.com/nathievzm/lumi/compare/v1.1.1...v1.1.2) (2026-05-13)
2
+
3
+ ### Bug Fixes
4
+
5
+ - use boxen to fix the intro banner
6
+ ([e3e8085](https://github.com/nathievzm/lumi/commit/e3e80853251b584aab892b688eb12c8c6b7799d4))
7
+
8
+ ## [1.1.1](https://github.com/nathievzm/lumi/compare/v1.1.0...v1.1.1) (2026-05-12)
9
+
10
+ ### Bug Fixes
11
+
12
+ - intro banner and use lightning emoji in outro message
13
+ ([a3d4f33](https://github.com/nathievzm/lumi/commit/a3d4f3362d847fd8415027c9a73f6fc486dcd770))
14
+
1
15
  # [1.1.0](https://github.com/nathievzm/lumi/compare/v1.0.1...v1.1.0) (2026-05-12)
2
16
 
3
17
  ### Features
package/README.md CHANGED
@@ -7,8 +7,8 @@ A fast, interactive CLI tool for batch image processing. Resize, convert, and op
7
7
 
8
8
  - **Batch Processing:** Process hundreds of images in seconds with high concurrency.
9
9
  - **Interactive UI:** User-friendly prompts for missing configurations using `@clack/prompts`.
10
- - **Recursive Processing:** Automatically finds all images in the input folder and its subdirectories.
11
- - **Progress Tracking:** Real-time feedback with `spinnies` progress indicators.
10
+ - **Recursive Processing:** Optionally find all images in subdirectories using the recursive flag.
11
+ - **Progress Tracking:** Real-time feedback with interactive progress indicators.
12
12
  - **Smart Resizing:** Automatically fits images while maintaining aspect ratio (`contain` fit).
13
13
  - **Multi-Format Support:** Convert between all formats supported by Sharp (WebP, PNG, JPEG, GIF, AVIF, etc.).
14
14
  - **Animated Support:** Seamlessly handles animated GIFs and WebP files.
@@ -56,15 +56,16 @@ You can bypass the prompts by providing the flags directly:
56
56
  bunx @nathievzm/lumi -i ./my-vacation-pics -s 1080 -f .webp
57
57
  ```
58
58
 
59
- | Flag | Shortcut | Description | Default / Env |
60
- | :--------- | :------- | :---------------------------- | :--------------------------- |
61
- | `--input` | `-i` | Input directory path | `.` / `INPUT_FOLDER` |
62
- | `--output` | `-o` | Output directory path | `./output` / `OUTPUT_FOLDER` |
63
- | `--width` | `-w` | Target width in pixels | Prompt / `WIDTH` |
64
- | `--height` | `-h` | Target height in pixels | Prompt / `HEIGHT` |
65
- | `--size` | `-s` | Sets both width and height | - |
66
- | `--format` | `-f` | Output format (e.g., `.webp`) | Prompt / `FORMAT` |
67
- | `--limit` | `-l` | Max concurrent operations | `10` / `LIMIT` |
59
+ | Flag | Shortcut | Description | Default / Env |
60
+ | :------------ | :------- | :---------------------------- | :--------------------------- |
61
+ | `--input` | `-i` | Input directory path | `.` / `INPUT_FOLDER` |
62
+ | `--output` | `-o` | Output directory path | `./output` / `OUTPUT_FOLDER` |
63
+ | `--width` | `-w` | Target width in pixels | Prompt / `WIDTH` |
64
+ | `--height` | `-h` | Target height in pixels | Prompt / `HEIGHT` |
65
+ | `--size` | `-s` | Sets both width and height | - |
66
+ | `--format` | `-f` | Output format (e.g., `.webp`) | Prompt / `FORMAT` |
67
+ | `--limit` | `-l` | Max concurrent operations | `10` / `LIMIT` |
68
+ | `--recursive` | `-r` | Process subdirectories | `false` / `RECURSIVE` |
68
69
 
69
70
  ### 🌍 Environment Variables
70
71
 
@@ -78,6 +79,7 @@ INPUT_FOLDER = './input'
78
79
  OUTPUT_FOLDER = './output'
79
80
  FORMAT = '.webp'
80
81
  LIMIT = '10'
82
+ RECURSIVE = 'false'
81
83
  ```
82
84
 
83
85
  ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nathievzm/lumi",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "a concurrent cli tool to resize and convert images using bun and sharp",
5
5
  "keywords": [
6
6
  "bun",
@@ -52,6 +52,7 @@
52
52
  "dependencies": {
53
53
  "@clack/prompts": "^1.3.0",
54
54
  "@js-temporal/polyfill": "^0.5.1",
55
+ "boxen": "^8.0.1",
55
56
  "image-extensions": "^1.1.0",
56
57
  "p-limit": "^7.3.0",
57
58
  "picocolors": "^1.1.1",
package/src/index.ts CHANGED
@@ -6,6 +6,7 @@ import { exit } from 'node:process'
6
6
 
7
7
  import { intro, log, note, outro, spinner } from '@clack/prompts'
8
8
  import { Temporal } from '@js-temporal/polyfill'
9
+ import boxen from 'boxen'
9
10
  import pLimit from 'p-limit'
10
11
  import color from 'picocolors'
11
12
 
@@ -17,15 +18,15 @@ import pkg from '../package.json'
17
18
 
18
19
  console.clear()
19
20
 
20
- const banner = `
21
- ${color.magenta('╭──────────────────────────────╮')}
22
- ${color.magenta('│')} ${color.magenta('│')}
23
- ${color.magenta('│')} 🩷 ${color.magenta('lumi')} 🩷 ${color.magenta('')}
24
- ${color.magenta('│')} ${color.magenta('│')}
25
- ${color.magenta('╰──────────────────────────────╯')}
26
- `
21
+ const banner = boxen('lumi', {
22
+ backgroundColor: 'magenta',
23
+ borderColor: 'magenta',
24
+ borderStyle: 'round',
25
+ padding: { bottom: 2, left: 15, right: 15, top: 2 },
26
+ textAlignment: 'center'
27
+ })
27
28
 
28
- console.log(banner)
29
+ console.log(banner, '\n')
29
30
 
30
31
  intro(color.magenta(`welcome to lumi v${pkg.version} 🩷`))
31
32
 
@@ -85,7 +86,7 @@ if (result.some(pr => pr.status === 'rejected')) {
85
86
  )
86
87
  outroMessage = 'please check your input files and try again 🛠️'
87
88
  } else {
88
- spin.stop(`yay! ${color.green(images.length)} images processed in ${color.green(duration)} seconds! 💡`)
89
+ spin.stop(`yay! ${color.green(images.length)} images processed in ${color.green(duration)} seconds! \u26A1\uFE0F`)
89
90
  outroMessage = 'bye 👋'
90
91
  }
91
92