colorino 0.7.3 → 0.8.0

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/README.md CHANGED
@@ -1,262 +1,285 @@
1
- # <a id="0"></a>🎨 Colorino
2
-
3
- **The zero-configuration, context-aware `console` logger for Node.js and the browser.**
4
-
5
- Colorino automatically adapts its palette to your terminal or browser DevTools theme.
6
-
7
- # <a id="0"></a><a id="0"></a>
8
-
9
- - [Why use Colorino?](#1)
10
- - [Features](#2)
11
- - [Installation](#3)
12
- - [Usage](#4)
13
- - [Quick Start](#4-1)
14
- - [Creating a Custom Logger](#4-2)
15
- - [Options & Theme Overrides](#4-3)
16
- - [Available Theme Presets](#4-3-1)
17
- - [Examples](#4-3-2)
18
- - [Customization](#4-4)
19
- - [Supported Environment Variables](#4-5)
20
- - [Colorino vs. Chalk](#5)
21
- - [API Reference](#6)
22
- - [1. `colorino` (default instance)](#6-1)
23
- - [2. `createColorino(palette?, options?)` (factory)](#6-2)
24
- - [Extending Colorino](#7)
25
- - [Why This Pattern?](#7-1)
26
- - [License](#8)
27
-
28
- <!-- Table of contents is made with https://github.com/eugene-khyst/md-toc-cli -->
29
-
30
- ## <a id="1"></a>Why use Colorino?
31
-
32
- Plain `console.log` is colorless and inconsistent. Libraries like `chalk` let you style strings, but you have to decorate every message and manually manage color choices.
33
-
34
- Colorino is different: it’s a "batteries-included" logging facade with beautiful, theme-aware colors and a familiar API—no learning curve, no configuration. Instantly upgrade your logs everywhere.
35
-
36
- ## <a id="2"></a>Features
37
-
38
- - 🎨 **Smart Theming:** Automatically detects *dark/light* mode and uses a coordinated color palette.
39
- - 🤝 **Familiar API:** If you know `console.log`, you already know Colorino: all standard log levels are supported.
40
- - 🔀 **Environment-Aware:** Works in **Node.js** (ANSI color and truecolor) and all major **Browsers** (CSS styles).
41
- - ⚡️ **Fast, Lightweight:** Minimal dependencies, works great in modern frameworks and CLIs.
42
- - 🔒 **Robust:** Handles bad inputs and weird environments safely.
43
- - 🛠️ **Customizable:** Override individual log colors for your own branding.
44
-
45
- ## <a id="3"></a>Installation
46
-
47
- ```bash
48
- npm install colorino
49
- ```
50
-
51
- ## <a id="4"></a>Usage
52
-
53
- ### <a id="4-1"></a>Quick Start
54
-
55
- Just import the default instance and log away!
56
-
57
- ```typescript
58
- import { colorino } from 'colorino'
59
-
60
- // All log levels automatically themed
61
- colorino.error('A critical error!')
62
- colorino.warn('A warning message.')
63
- colorino.info('Useful info logging.')
64
- colorino.log('A plain log.')
65
- colorino.debug('Debug with objects:', { x: 5, y: 9 })
66
- colorino.trace('Tracing app start...')
67
- ```
68
-
69
- ### <a id="4-2"></a>Creating a Custom Logger
70
-
71
- Need your own colors or different settings?
72
- Use the factory to create as many loggers as you want (each with its own palette and options):
73
-
74
- ```typescript
75
- import { createColorino } from 'colorino'
76
-
77
- const myLogger = createColorino(
78
- { // Palette (partial)
79
- error: '#ff007b',
80
- info: '#3498db'
81
- },
82
- { disableWarnings: true } // Options (see below)
83
- )
84
- myLogger.error('Critical!')
85
- myLogger.info('Rebranded info!')
86
- ```
87
-
88
- ### <a id="4-3"></a>Options & Theme Overrides
89
-
90
- `createColorino(palette?, options?)` accepts:
91
-
92
- | Option | Type | Default | Description |
93
- |-------------------|--------------------------------|---------|--------------------------------------------------------------------------------|
94
- | `disableWarnings` | `boolean` | `false` | Suppress warnings when color support can't be detected or is disabled. |
95
- | `theme` | `ThemeOption` (see below) | `'auto'`| Control the active color theme or force a specific mode. |
96
-
97
- **`theme` accepts three types of values:**
98
-
99
- 1. **`'auto'`** (Default): Automatically detects your terminal or browser theme (dark/light) and applies the matching default preset.
100
- 2. **`'dark' | 'light'`**: Forces the logger into a specific mode using the default preset for that mode.
101
- 3. **`ThemeName`**: Forces a specific built-in palette (e.g., `'dracula'`).
102
-
103
- #### <a id="4-3-1"></a>Available Theme Presets
104
-
105
- Pass any of these names to the `theme` option to use a specific palette:
106
-
107
- | Theme Name | Type | Description |
108
- |----------------------|-----------------|--------------------------------------------------|
109
- | `'dracula'` | **Dark** (High) | Vibrant pinks, purples, and cyans. |
110
- | `'catppuccin-mocha'` | **Dark** (Low) | *Default Dark.* Soothing pastel colors. |
111
- | `'github-light'` | **Light** (High)| *Default Light.* Clean, sharp, high-contrast. |
112
- | `'catppuccin-latte'` | **Light** (Low) | Warm, cozy light mode with soft colors. |
113
-
114
- #### <a id="4-3-2"></a>Examples
115
-
116
- **1. Force a specific mode (uses defaults):**
117
- Useful for CI/CD or environments where detection fails.
118
-
119
- ```typescript
120
- // Forces the default dark theme (Catppuccin Mocha)
121
- const darkLogger = createColorino({}, { theme: 'dark' })
122
- ```
123
-
124
- **2. Use a specific preset:**
125
- Instant branding with zero configuration.
126
-
127
- ```typescript
128
- // Forces the Dracula palette
129
- const draculaLogger = createColorino({}, { theme: 'dracula' })
130
- ```
131
-
132
- **3. Customize a preset:**
133
- Overlay your own colors on top of a built-in theme.
134
-
135
- ```typescript
136
- // Use GitHub Light but with a custom error color
137
- const myLogger = createColorino(
138
- { error: '#ff007b' },
139
- { theme: 'github-light' }
140
- )
141
- ```
142
-
143
- > **Tip:**
144
- > Forcing `'dark'` or `'light'` bypasses automatic theming, ensuring predictable colors in environments with unknown or unsupported theme detection (like some CI pipelines, dumb terminals, or minimal browsers).
145
-
146
- ### <a id="4-4"></a>Customization
147
-
148
- Use your brand colors by passing a partial palette to the `createColorino` factory. Any log levels you don't specify will use the smart theme defaults.
149
-
150
- ```typescript
151
- import { createColorino } from 'colorino'
152
-
153
- // Custom error color; others use theme defaults
154
- const myLogger = createColorino({ error: '#ff007b' })
155
-
156
- myLogger.error('Oh no!') // Uses your custom color
157
- myLogger.info('Still styled by theme.') // Uses the default theme color
158
- ```
159
-
160
- ### <a id="4-5"></a>Supported Environment Variables
161
-
162
- Colorino auto-detects your environment and color support, but you can override behavior using these standard environment variables (compatible with Chalk):
163
-
164
- | Variable | Effect | Example |
165
- |------------------|---------------------------------------------------|--------------------------|
166
- | `NO_COLOR` | Forces *no color* output | `NO_COLOR=1 node app.js` |
167
- | `FORCE_COLOR` | Forces color (`1`=ANSI, `2`=256, `3`=truecolor) | `FORCE_COLOR=3 node app.js` |
168
- | `CLICOLOR` | `"0"` disables color | `CLICOLOR=0 node app.js` |
169
- | `CLICOLOR_FORCE` | Non-`"0"` value enables color even if not a TTY | `CLICOLOR_FORCE=1 node app.js` |
170
- | `TERM` | Terminal type, can increase/decrease support | `TERM=xterm-256color` |
171
- | `COLORTERM` | `'truecolor'` or `'24bit'` enables truecolor | `COLORTERM=truecolor` |
172
- | `WT_SESSION` | Detected for Windows Terminal (enables color) | |
173
- | `CI` | Many CI platforms default to *no color* | `CI=1 node app.js` |
174
-
175
- ## <a id="5"></a>Colorino vs. Chalk
176
-
177
- | Feature | 🎨 **Colorino** | 🖍️ **Chalk** |
178
- |--------------------------|----------------------------|-----------------|
179
- | Out-of-box logs | themed, all log levels | ✘ string styling|
180
- | Zero-config | ✔ | manual, per-use|
181
- | Node + browser | ✔ | ✘ (Node only) |
182
- | CSS console logs | ✔ | ✘ |
183
- | Extensible / Composable | ✔ (via factory) | ✘ |
184
-
185
- ## <a id="6"></a>API Reference
186
-
187
- The `colorino` package exports two main items:
188
-
189
- ### <a id="6-1"></a>1. `colorino` (default instance)
190
-
191
- A pre-configured, zero-setup logger instance. Just import and use.
192
-
193
- - `.log(...args)`
194
- - `.info(...args)`
195
- - `.warn(...args)`
196
- - `.error(...args)`
197
- - `.debug(...args)`
198
- - `.trace(...args)`
199
-
200
- ### <a id="6-2"></a>2. `createColorino(palette?, options?)` (factory)
201
-
202
- A factory function to create your own customized logger instances.
203
-
204
- - `palette` (`Partial<Palette>`): An object to override default colors for specific log levels (e.g., `{ error: '#ff007b' }`).
205
- - `options` (`ColorinoOptions`): An object to control behavior:
206
- - `disableWarnings: boolean` (default `false`): Suppress warnings on environments with no color support.
207
- - `theme: 'dark' | 'light'` (default `auto`): Force a specific theme instead of auto-detecting.
208
-
209
- ## <a id="7"></a>Extending Colorino
210
-
211
- Example: Add a `fatal()` logger for critical errors.
212
-
213
- Since colorino uses a factory pattern, extend it by creating your own factory that composes the base logger with additional methods:
214
-
215
- ```typescript
216
- import { createColorino, type ColorinoOptions, type Palette } from 'colorino'
217
-
218
- // Create a factory for your custom logger
219
- export function createMyLogger(palette?: Partial<Palette>, options?: ColorinoOptions) {
220
- // Get the base logger instance
221
- const baseLogger = createColorino(palette, options)
222
-
223
- // Define your custom method
224
- function fatal(...args: unknown[]): void {
225
- // Reuse the base logger's error method
226
- baseLogger.error(...args)
227
-
228
- // Add your custom behavior
229
- if (typeof process !== 'undefined' && process.exit) {
230
- process.exit(1)
231
- }
232
- }
233
-
234
- // Return a new object with all base methods + your custom ones
235
- // This preserves type safety and the original API
236
- return {
237
- ...baseLogger,
238
- fatal,
239
- }
240
- }
241
- ```
242
-
243
- Usage:
244
-
245
- ```typescript
246
- const logger = createMyLogger({ error: '#d92626' })
247
-
248
- logger.info('Starting!')
249
- logger.fatal('Missing config: Exiting')
250
- ```
251
-
252
- ### <a id="7-1"></a>Why This Pattern?
253
-
254
- - **Composition > Inheritance**: No fragile base class problems
255
- - **Type Safe**: TypeScript infers the return type correctly
256
- - **Future Proof**: Works even if colorino's internal implementation changes
257
- - **Clean**: No messing with `super()` or constructor parameters
258
- - **Composable**: You can layer multiple extensions
259
-
260
- ## <a id="8"></a>License
261
-
262
- [MIT](LICENSE.md)
1
+ # <a id="0"></a>🎨 Colorino
2
+
3
+ **The zero-configuration, context-aware `console` logger for Node.js and the browser.**
4
+
5
+ Colorino automatically adapts its palette to your terminal or browser DevTools theme, and defaults to **minimal, high-contrast** colors unless you opt into a specific theme preset.
6
+
7
+ # <a id="0"></a><a id="0"></a>
8
+
9
+ - [Why use Colorino?](#1)
10
+ - [Features](#2)
11
+ - [Installation](#3)
12
+ - [Usage](#4)
13
+ - [Quick Start](#4-1)
14
+ - [Creating a Custom Logger](#4-2)
15
+ - [Options & Theme Overrides](#4-3)
16
+ - [Available Theme Presets](#4-3-1)
17
+ - [Examples](#4-3-2)
18
+ - [Customization](#4-4)
19
+ - [Supported Environment Variables](#4-5)
20
+ - [Colorino vs. Chalk](#5)
21
+ - [API Reference](#6)
22
+ - [1. `colorino` (default instance)](#6-1)
23
+ - [2. `createColorino(palette?, options?)` (factory)](#6-2)
24
+ - [Extending Colorino](#7)
25
+ - [Why This Pattern?](#7-1)
26
+ - [License](#8)
27
+
28
+ <!-- Table of contents is made with https://github.com/eugene-khyst/md-toc-cli -->
29
+
30
+ ## <a id="1"></a>Why use Colorino?
31
+
32
+ Plain `console.log` is colorless and inconsistent. Libraries like `chalk` let you style strings, but you have to decorate every message and manually manage color choices.
33
+
34
+ Colorino is different: it’s a "batteries-included" logging facade with beautiful, theme-aware colors and a familiar API—no learning curve, no configuration. Instantly upgrade your logs everywhere.
35
+
36
+ ## <a id="2"></a>Features
37
+
38
+ - 🎨 **Smart Theming:** Automatically detects *dark/light* mode and applies a **minimal** high-contrast base palette by default; opt into a coordinated theme preset when you want richer colors.
39
+ - 🤝 **Familiar API:** If you know `console.log`, you already know Colorino: all standard log levels are supported.
40
+ - 🔀 **Environment-Aware:** Works in **Node.js** (ANSI color and truecolor) and all major **Browsers** (CSS styles).
41
+ - ⚡️ **Fast, Lightweight:** Minimal dependencies, works great in modern frameworks and CLIs.
42
+ - 🔒 **Robust:** Handles bad inputs and weird environments safely.
43
+ - 🛠️ **Customizable:** Override individual log colors for your own branding.
44
+
45
+ ## <a id="3"></a>Installation
46
+
47
+ ```bash
48
+ npm install colorino
49
+ ```
50
+
51
+ ## <a id="4"></a>Usage
52
+
53
+ ### <a id="4-1"></a>Quick Start
54
+
55
+ Just import the default instance and log away!
56
+
57
+ ```typescript
58
+ import { colorino } from 'colorino'
59
+
60
+ // All log levels automatically themed
61
+ colorino.error('A critical error!')
62
+ colorino.warn('A warning message.')
63
+ colorino.info('Useful info logging.')
64
+ colorino.log('A plain log.')
65
+ colorino.debug('Debug with objects:', { x: 5, y: 9 })
66
+ colorino.trace('Tracing app start...')
67
+ ```
68
+
69
+ ### <a id="4-2"></a>Creating a Custom Logger
70
+
71
+ Need your own colors or different settings?
72
+ Use the factory to create as many loggers as you want (each with its own palette and options):
73
+
74
+ ```typescript
75
+ import { createColorino } from 'colorino'
76
+
77
+ const myLogger = createColorino(
78
+ { // Palette (partial)
79
+ error: '#ff007b',
80
+ info: '#3498db'
81
+ },
82
+ { disableWarnings: true } // Options (see below)
83
+ )
84
+ myLogger.error('Critical!')
85
+ myLogger.info('Rebranded info!')
86
+ ```
87
+
88
+ ### <a id="4-3"></a>Options & Theme Overrides
89
+
90
+ `createColorino(palette?, options?)` accepts:
91
+
92
+ | Option | Type | Default | Description |
93
+ |-------------------|--------------------------------|---------|--------------------------------------------------------------------------------|
94
+ | `disableWarnings` | `boolean` | `false` | Suppress warnings when color support can't be detected or is disabled. |
95
+ | `theme` | `ThemeOption` (see below) | `'auto'`| Control the active color theme or force a specific mode. |
96
+
97
+ **`theme` accepts three types of values:**
98
+
99
+ 1. **`'auto'`** (Default): Automatically detects your terminal or browser theme (dark/light) and applies the matching default preset.
100
+ 2. **`'dark' | 'light'`**: Forces the logger into a specific mode using the default preset for that mode.
101
+ 3. **`ThemeName`**: Forces a specific built-in palette (e.g., `'dracula'`).
102
+
103
+ #### <a id="4-3-1"></a>Available Theme Presets
104
+
105
+ Pass any of these names to the `theme` option to use a specific palette:
106
+
107
+ | Theme Name | Type | Description |
108
+ |----------------------|-----------------|--------------------------------------------------|
109
+ | `'dracula'` | **Dark** (High) | Vibrant pinks, purples, and cyans. |
110
+ | `'catppuccin-mocha'` | **Dark** (Low) | Soothing pastel colors. |
111
+ | `'minimal-dark'` | **Dark** | *Default Dark (auto).* Minimal, high-contrast. |
112
+ | `'minimal-light'` | **Light** | *Default Light (auto).* Minimal, high-contrast. |
113
+ | `'github-light'` | **Light** (High)| Clean, sharp, high-contrast. |
114
+ | `'catppuccin-latte'` | **Light** (Low) | Warm, cozy light mode with soft colors. |
115
+
116
+ #### <a id="4-3-2"></a>Examples
117
+
118
+ **1. Minimal defaults with custom branding (recommended):**
119
+ Set only the colors you care about; everything else stays maximally readable.
120
+
121
+ ```typescript
122
+ // Only customize error and warn
123
+ const myLogger = createColorino({
124
+ error: '#ff007b',
125
+ warn: '#ffa500'
126
+ })
127
+
128
+ // Detected dark terminal:
129
+ // - error: #ff007b (your custom red)
130
+ // - warn: #ffa500 (your custom orange)
131
+ // - info, log, debug, trace: #ffffff (white - safe on dark)
132
+
133
+ // Detected light terminal:
134
+ // - error: #ff007b (your custom red)
135
+ // - warn: #ffa500 (your custom orange)
136
+ // - info, log, debug, trace: #000000 (black - safe on light)
137
+ ```
138
+
139
+ **2. Force a specific mode (uses defaults):**
140
+ Useful for CI/CD or environments where detection fails.
141
+
142
+ ```typescript
143
+ // Forces dark mode using the default minimal palette (minimal-dark)
144
+ const darkLogger = createColorino({}, { theme: 'dark' })
145
+ ```
146
+
147
+ **3. Use a specific preset:**
148
+ Instant branding with zero configuration.
149
+
150
+ ```typescript
151
+ // Forces the Dracula palette
152
+ const draculaLogger = createColorino({}, { theme: 'dracula' })
153
+ ```
154
+
155
+ **4. Customize a preset:**
156
+ Overlay your own colors on top of a built-in theme.
157
+
158
+ ```typescript
159
+ // Use GitHub Light but with a custom error color
160
+ const myLogger = createColorino(
161
+ { error: '#ff007b' },
162
+ { theme: 'github-light' }
163
+ )
164
+ ```
165
+
166
+ > **Tip:**
167
+ > Forcing `'dark'` or `'light'` bypasses automatic theming, ensuring predictable colors in environments with unknown or unsupported theme detection (like some CI pipelines, dumb terminals, or minimal browsers).
168
+
169
+ ### <a id="4-4"></a>Customization
170
+
171
+ Use your brand colors by passing a partial palette to the `createColorino` factory. Any log levels you don't specify will use the detected **minimal** defaults (`minimal-dark` / `minimal-light`) unless you explicitly select a theme preset.
172
+
173
+ ```typescript
174
+ import { createColorino } from 'colorino'
175
+
176
+ // Custom error color; others use theme defaults
177
+ const myLogger = createColorino({ error: '#ff007b' })
178
+
179
+ myLogger.error('Oh no!') // Uses your custom color
180
+ myLogger.info('Still styled by theme.') // Uses the default theme color
181
+ ```
182
+
183
+ ### <a id="4-5"></a>Supported Environment Variables
184
+
185
+ Colorino auto-detects your environment and color support, but you can override behavior using these standard environment variables (compatible with Chalk):
186
+
187
+ | Variable | Effect | Example |
188
+ |------------------|---------------------------------------------------|--------------------------|
189
+ | `NO_COLOR` | Forces *no color* output | `NO_COLOR=1 node app.js` |
190
+ | `FORCE_COLOR` | Forces color (`1`=ANSI, `2`=256, `3`=truecolor) | `FORCE_COLOR=3 node app.js` |
191
+ | `CLICOLOR` | `"0"` disables color | `CLICOLOR=0 node app.js` |
192
+ | `CLICOLOR_FORCE` | Non-`"0"` value enables color even if not a TTY | `CLICOLOR_FORCE=1 node app.js` |
193
+ | `TERM` | Terminal type, can increase/decrease support | `TERM=xterm-256color` |
194
+ | `COLORTERM` | `'truecolor'` or `'24bit'` enables truecolor | `COLORTERM=truecolor` |
195
+ | `WT_SESSION` | Detected for Windows Terminal (enables color) | |
196
+ | `CI` | Many CI platforms default to *no color* | `CI=1 node app.js` |
197
+
198
+ ## <a id="5"></a>Colorino vs. Chalk
199
+
200
+ | Feature | 🎨 **Colorino** | 🖍️ **Chalk** |
201
+ |--------------------------|----------------------------|-----------------|
202
+ | Out-of-box logs | themed, all log levels | string styling|
203
+ | Zero-config | ✔ | ✘ manual, per-use|
204
+ | Node + browser | ✔ | (Node only) |
205
+ | CSS console logs | ✔ | ✘ |
206
+ | Extensible / Composable | (via factory) | ✘ |
207
+
208
+ ## <a id="6"></a>API Reference
209
+
210
+ The `colorino` package exports two main items:
211
+
212
+ ### <a id="6-1"></a>1. `colorino` (default instance)
213
+
214
+ A pre-configured, zero-setup logger instance. Just import and use.
215
+
216
+ - `.log(...args)`
217
+ - `.info(...args)`
218
+ - `.warn(...args)`
219
+ - `.error(...args)`
220
+ - `.debug(...args)`
221
+ - `.trace(...args)`
222
+
223
+ ### <a id="6-2"></a>2. `createColorino(palette?, options?)` (factory)
224
+
225
+ A factory function to create your own customized logger instances.
226
+
227
+ - `palette` (`Partial<Palette>`): An object to override default colors for specific log levels (e.g., `{ error: '#ff007b' }`).
228
+ - `options` (`ColorinoOptions`): An object to control behavior:
229
+ - `disableWarnings: boolean` (default `false`): Suppress warnings on environments with no color support.
230
+ - `theme: 'dark' | 'light'` (default `auto`): Force a specific theme instead of auto-detecting.
231
+
232
+ ## <a id="7"></a>Extending Colorino
233
+
234
+ Example: Add a `fatal()` logger for critical errors.
235
+
236
+ Since colorino uses a factory pattern, extend it by creating your own factory that composes the base logger with additional methods:
237
+
238
+ ```typescript
239
+ import { createColorino, type ColorinoOptions, type Palette } from 'colorino'
240
+
241
+ // Create a factory for your custom logger
242
+ export function createMyLogger(palette?: Partial<Palette>, options?: ColorinoOptions) {
243
+ // Get the base logger instance
244
+ const baseLogger = createColorino(palette, options)
245
+
246
+ // Define your custom method
247
+ function fatal(...args: unknown[]): void {
248
+ // Reuse the base logger's error method
249
+ baseLogger.error(...args)
250
+
251
+ // Add your custom behavior
252
+ if (typeof process !== 'undefined' && process.exit) {
253
+ process.exit(1)
254
+ }
255
+ }
256
+
257
+ // Return a new object with all base methods + your custom ones
258
+ // This preserves type safety and the original API
259
+ return {
260
+ ...baseLogger,
261
+ fatal,
262
+ }
263
+ }
264
+ ```
265
+
266
+ Usage:
267
+
268
+ ```typescript
269
+ const logger = createMyLogger({ error: '#d92626' })
270
+
271
+ logger.info('Starting!')
272
+ logger.fatal('Missing config: Exiting')
273
+ ```
274
+
275
+ ### <a id="7-1"></a>Why This Pattern?
276
+
277
+ - **Composition > Inheritance**: No fragile base class problems
278
+ - **Type Safe**: TypeScript infers the return type correctly
279
+ - **Future Proof**: Works even if colorino's internal implementation changes
280
+ - **Clean**: No messing with `super()` or constructor parameters
281
+ - **Composable**: You can layer multiple extensions
282
+
283
+ ## <a id="8"></a>License
284
+
285
+ [MIT](LICENSE.md)
package/dist/browser.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const determineBaseTheme = require('./shared/colorino.H3b6WY7b.cjs');
3
+ const determineBaseTheme = require('./shared/colorino.B2VY_Grv.cjs');
4
4
 
5
5
  class BrowserColorSupportDetector {
6
6
  constructor(_window, _navigator, _overrideTheme) {
@@ -1,5 +1,5 @@
1
- import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.D5epIHWO.cjs';
2
- export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.D5epIHWO.cjs';
1
+ import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.5b7Tq7_-.cjs';
2
+ export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.5b7Tq7_-.cjs';
3
3
 
4
4
  declare function createColorino(palette?: Partial<Palette>, options?: ColorinoOptions): Colorino;
5
5
 
@@ -1,5 +1,5 @@
1
- import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.D5epIHWO.mjs';
2
- export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.D5epIHWO.mjs';
1
+ import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.5b7Tq7_-.mjs';
2
+ export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.5b7Tq7_-.mjs';
3
3
 
4
4
  declare function createColorino(palette?: Partial<Palette>, options?: ColorinoOptions): Colorino;
5
5
 
package/dist/browser.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.D5epIHWO.js';
2
- export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.D5epIHWO.js';
1
+ import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.5b7Tq7_-.js';
2
+ export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.5b7Tq7_-.js';
3
3
 
4
4
  declare function createColorino(palette?: Partial<Palette>, options?: ColorinoOptions): Colorino;
5
5
 
package/dist/browser.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { C as ColorLevel, t as themePalettes, a as Colorino, I as InputValidator, d as determineBaseTheme } from './shared/colorino.DIwRv0NB.mjs';
1
+ import { C as ColorLevel, t as themePalettes, a as Colorino, I as InputValidator, d as determineBaseTheme } from './shared/colorino.CwcatZ-Z.mjs';
2
2
 
3
3
  class BrowserColorSupportDetector {
4
4
  constructor(_window, _navigator, _overrideTheme) {
package/dist/node.cjs CHANGED
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
- const determineBaseTheme = require('./shared/colorino.H3b6WY7b.cjs');
3
+ const determineBaseTheme = require('./shared/colorino.B2VY_Grv.cjs');
4
+ const node_child_process = require('node:child_process');
4
5
 
5
6
  class OscThemeQuerier {
6
7
  constructor(_stdin, _stdout, _timeout = 300, _cacheTtl = 36e5) {
@@ -54,9 +55,14 @@ class OscThemeQuerier {
54
55
  this._stdin.pause();
55
56
  }
56
57
  _sleepSync(ms) {
57
- const buffer = new SharedArrayBuffer(4);
58
- const view = new Int32Array(buffer);
59
- Atomics.wait(view, 0, 0, ms);
58
+ if (process.platform === "win32") {
59
+ node_child_process.spawnSync("timeout", ["/T", String(Math.ceil(ms / 1e3)), "/NOBREAK"], {
60
+ stdio: "ignore",
61
+ shell: true
62
+ });
63
+ } else {
64
+ node_child_process.spawnSync("sleep", [String(ms / 1e3)], { stdio: "ignore" });
65
+ }
60
66
  }
61
67
  _parseResponse(response) {
62
68
  const rgbMatch = response.match(
package/dist/node.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.D5epIHWO.cjs';
2
- export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.D5epIHWO.cjs';
1
+ import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.5b7Tq7_-.cjs';
2
+ export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.5b7Tq7_-.cjs';
3
3
 
4
4
  declare function createColorino(palette?: Partial<Palette>, options?: ColorinoOptions): Colorino;
5
5
 
package/dist/node.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.D5epIHWO.mjs';
2
- export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.D5epIHWO.mjs';
1
+ import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.5b7Tq7_-.mjs';
2
+ export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.5b7Tq7_-.mjs';
3
3
 
4
4
  declare function createColorino(palette?: Partial<Palette>, options?: ColorinoOptions): Colorino;
5
5
 
package/dist/node.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.D5epIHWO.js';
2
- export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.D5epIHWO.js';
1
+ import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.5b7Tq7_-.js';
2
+ export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.5b7Tq7_-.js';
3
3
 
4
4
  declare function createColorino(palette?: Partial<Palette>, options?: ColorinoOptions): Colorino;
5
5
 
package/dist/node.mjs CHANGED
@@ -1,4 +1,5 @@
1
- import { e as err, O as OscQueryError, o as ok, C as ColorLevel, d as determineBaseTheme, t as themePalettes, a as Colorino, I as InputValidator } from './shared/colorino.DIwRv0NB.mjs';
1
+ import { e as err, O as OscQueryError, o as ok, C as ColorLevel, d as determineBaseTheme, t as themePalettes, a as Colorino, I as InputValidator } from './shared/colorino.CwcatZ-Z.mjs';
2
+ import { spawnSync } from 'node:child_process';
2
3
 
3
4
  class OscThemeQuerier {
4
5
  constructor(_stdin, _stdout, _timeout = 300, _cacheTtl = 36e5) {
@@ -52,9 +53,14 @@ class OscThemeQuerier {
52
53
  this._stdin.pause();
53
54
  }
54
55
  _sleepSync(ms) {
55
- const buffer = new SharedArrayBuffer(4);
56
- const view = new Int32Array(buffer);
57
- Atomics.wait(view, 0, 0, ms);
56
+ if (process.platform === "win32") {
57
+ spawnSync("timeout", ["/T", String(Math.ceil(ms / 1e3)), "/NOBREAK"], {
58
+ stdio: "ignore",
59
+ shell: true
60
+ });
61
+ } else {
62
+ spawnSync("sleep", [String(ms / 1e3)], { stdio: "ignore" });
63
+ }
58
64
  }
59
65
  _parseResponse(response) {
60
66
  const rgbMatch = response.match(
@@ -2,7 +2,7 @@ type ConsoleMethod = 'log' | 'info' | 'warn' | 'error' | 'trace' | 'debug';
2
2
  type LogLevel = ConsoleMethod & string;
3
3
  type Palette = Record<LogLevel, string>;
4
4
  type TerminalTheme = 'dark' | 'light' | 'unknown';
5
- type ThemeName = 'catppuccin-mocha' | 'catppuccin-latte' | 'dracula' | 'github-light';
5
+ type ThemeName = 'catppuccin-mocha' | 'catppuccin-latte' | 'dracula' | 'github-light' | 'minimal-dark' | 'minimal-light';
6
6
  interface ColorinoOptions {
7
7
  disableWarnings?: boolean;
8
8
  theme?: TerminalTheme | ThemeName | 'auto';
@@ -2,7 +2,7 @@ type ConsoleMethod = 'log' | 'info' | 'warn' | 'error' | 'trace' | 'debug';
2
2
  type LogLevel = ConsoleMethod & string;
3
3
  type Palette = Record<LogLevel, string>;
4
4
  type TerminalTheme = 'dark' | 'light' | 'unknown';
5
- type ThemeName = 'catppuccin-mocha' | 'catppuccin-latte' | 'dracula' | 'github-light';
5
+ type ThemeName = 'catppuccin-mocha' | 'catppuccin-latte' | 'dracula' | 'github-light' | 'minimal-dark' | 'minimal-light';
6
6
  interface ColorinoOptions {
7
7
  disableWarnings?: boolean;
8
8
  theme?: TerminalTheme | ThemeName | 'auto';
@@ -2,7 +2,7 @@ type ConsoleMethod = 'log' | 'info' | 'warn' | 'error' | 'trace' | 'debug';
2
2
  type LogLevel = ConsoleMethod & string;
3
3
  type Palette = Record<LogLevel, string>;
4
4
  type TerminalTheme = 'dark' | 'light' | 'unknown';
5
- type ThemeName = 'catppuccin-mocha' | 'catppuccin-latte' | 'dracula' | 'github-light';
5
+ type ThemeName = 'catppuccin-mocha' | 'catppuccin-latte' | 'dracula' | 'github-light' | 'minimal-dark' | 'minimal-light';
6
6
  interface ColorinoOptions {
7
7
  disableWarnings?: boolean;
8
8
  theme?: TerminalTheme | ThemeName | 'auto';
@@ -74,7 +74,7 @@ class Colorino {
74
74
  this._colorLevel = this._detectColorSupport();
75
75
  const validatePaletteResult = this._validator.validatePalette(this._palette);
76
76
  if (validatePaletteResult.isErr()) throw validatePaletteResult.error;
77
- if (!this.isBrowser && (this._colorLevel === ColorLevel.NO_COLOR || this._colorLevel === "UnknownEnv") && !this._options.disableWarnings) {
77
+ if (this._colorLevel !== ColorLevel.NO_COLOR && !this._options.disableWarnings && this._colorLevel === "UnknownEnv") {
78
78
  this._maybeWarnUser();
79
79
  }
80
80
  }
@@ -783,15 +783,33 @@ const githubLightPalette = {
783
783
  trace: "#6a737d"
784
784
  // Gray-light
785
785
  };
786
+ const minimalDarkPalette = {
787
+ log: "#ffffff",
788
+ info: "#ffffff",
789
+ warn: "#ffffff",
790
+ error: "#ffffff",
791
+ debug: "#ffffff",
792
+ trace: "#ffffff"
793
+ };
794
+ const minimalLightPalette = {
795
+ log: "#000000",
796
+ info: "#000000",
797
+ warn: "#000000",
798
+ error: "#000000",
799
+ debug: "#000000",
800
+ trace: "#000000"
801
+ };
786
802
 
787
803
  const themePalettes = {
788
804
  "catppuccin-mocha": catppuccinMochaPalette,
789
805
  "catppuccin-latte": catppuccinLattePalette,
790
806
  dracula: draculaPalette,
791
- "github-light": githubLightPalette
807
+ "github-light": githubLightPalette,
808
+ "minimal-dark": minimalDarkPalette,
809
+ "minimal-light": minimalLightPalette
792
810
  };
793
- const defaultDarkTheme = "catppuccin-mocha";
794
- const defaultLightTheme = "github-light";
811
+ const defaultDarkTheme = "minimal-dark";
812
+ const defaultLightTheme = "minimal-light";
795
813
  function isThemeName(theme) {
796
814
  return theme in themePalettes;
797
815
  }
@@ -72,7 +72,7 @@ class Colorino {
72
72
  this._colorLevel = this._detectColorSupport();
73
73
  const validatePaletteResult = this._validator.validatePalette(this._palette);
74
74
  if (validatePaletteResult.isErr()) throw validatePaletteResult.error;
75
- if (!this.isBrowser && (this._colorLevel === ColorLevel.NO_COLOR || this._colorLevel === "UnknownEnv") && !this._options.disableWarnings) {
75
+ if (this._colorLevel !== ColorLevel.NO_COLOR && !this._options.disableWarnings && this._colorLevel === "UnknownEnv") {
76
76
  this._maybeWarnUser();
77
77
  }
78
78
  }
@@ -781,15 +781,33 @@ const githubLightPalette = {
781
781
  trace: "#6a737d"
782
782
  // Gray-light
783
783
  };
784
+ const minimalDarkPalette = {
785
+ log: "#ffffff",
786
+ info: "#ffffff",
787
+ warn: "#ffffff",
788
+ error: "#ffffff",
789
+ debug: "#ffffff",
790
+ trace: "#ffffff"
791
+ };
792
+ const minimalLightPalette = {
793
+ log: "#000000",
794
+ info: "#000000",
795
+ warn: "#000000",
796
+ error: "#000000",
797
+ debug: "#000000",
798
+ trace: "#000000"
799
+ };
784
800
 
785
801
  const themePalettes = {
786
802
  "catppuccin-mocha": catppuccinMochaPalette,
787
803
  "catppuccin-latte": catppuccinLattePalette,
788
804
  dracula: draculaPalette,
789
- "github-light": githubLightPalette
805
+ "github-light": githubLightPalette,
806
+ "minimal-dark": minimalDarkPalette,
807
+ "minimal-light": minimalLightPalette
790
808
  };
791
- const defaultDarkTheme = "catppuccin-mocha";
792
- const defaultLightTheme = "github-light";
809
+ const defaultDarkTheme = "minimal-dark";
810
+ const defaultLightTheme = "minimal-light";
793
811
  function isThemeName(theme) {
794
812
  return theme in themePalettes;
795
813
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "colorino",
3
- "version": "0.7.3",
3
+ "version": "0.8.0",
4
4
  "description": "A super simple colorized logger that gets the most out of your terminal",
5
5
  "type": "module",
6
6
  "license": "MIT",