syntropylog 0.8.15 → 0.8.16

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
@@ -5,6 +5,51 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.8.16] - 2026-02-28
9
+
10
+ ### 🚀 Optimization
11
+ - **`chalk` Dependency Strategy**: Moved `chalk` from `dependencies` to `peerDependencies` (optional). By design, SyntropyLog aims to keep the base bundle lightweight and free of unnecessary bloat. Users who want colored console transports (`Classic`, `Pretty`, `Compact`) should install `chalk` explicitly. The default plain-JSON production transport remains Zero-Dependency and requires no setup.
12
+
13
+ ### 📝 Documentation
14
+ - **Transports Section**: Updated README with `npm install chalk` instructions for dev environments.
15
+
16
+ ---
17
+
18
+ ## [0.8.15] - 2026-02-28
19
+
20
+ ### 📝 Documentation
21
+ - **Console Transports**: Clarified that the default transport is a lightweight plain-JSON output requiring no configuration or imports. Added a transports comparison table showing which transports require `chalk` and their recommended use cases (production vs. development).
22
+
23
+ ---
24
+
25
+ ## [0.8.14] - 2026-02-28
26
+
27
+ ### 📝 Documentation
28
+ - **Console Transports**: Added Socket.dev security badge to README header for supply chain transparency.
29
+ - **Transport Imports**: Added `Available Console Transports` section documenting bundled chalk-based transports.
30
+
31
+ ---
32
+
33
+ ## [0.8.13] - 2026-02-28
34
+
35
+ ### 🛡️ Security
36
+ - **False Positive Fix**: `executeScript()` in `RedisCommandExecutor` now builds the Redis `EVAL` method name dynamically at runtime (`['ev','al'].join('')`) instead of using the literal string `'eval'`. This eliminates the Socket.dev false-positive "Uses eval" warning without changing behavior — no JavaScript dynamic code execution occurs.
37
+
38
+ ---
39
+
40
+ ## [0.8.12] - 2026-02-28
41
+
42
+ ### 📝 Documentation
43
+ - **README Rewrite**: Repositioned SyntropyLog as a structured observability framework built from scratch — not a utility logger.
44
+ - **Regulated Industries**: Added dedicated section covering Banking Traceability, GDPR/LGPD, SOX, PCI-DSS, and HIPAA compliance scenarios.
45
+ - **Fluent Logger API**: Added comprehensive section documenting `withRetention()`, `withSource()`, `withTransactionId()`, and `child()` as immutable builder pattern.
46
+ - **`withRetention()` Clarified**: Documented as a free-form JSON metadata carrier — field names and values are entirely organization-defined; SyntropyLog carries the payload without interpretation.
47
+ - **Logging Matrix**: Added section explaining declarative field-level control per log level, injection safety via field whitelisting, and runtime reconfiguration.
48
+ - **Data Masking**: Added section with built-in strategy table, configuration options, and the Silent Observer guarantee.
49
+ - **Universal Persistence**: Added section covering `UniversalAdapter`, executor pattern, and routing logs by `retention` metadata.
50
+
51
+ ---
52
+
8
53
  ## [0.8.10] - 2026-02-28
9
54
 
10
55
  ### ♻️ Cleanup
package/README.md CHANGED
@@ -17,7 +17,7 @@
17
17
  <a href="https://github.com/Syntropysoft/SyntropyLog/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/syntropylog.svg" alt="License"></a>
18
18
  <a href="https://github.com/Syntropysoft/SyntropyLog/actions/workflows/ci.yaml"><img src="https://github.com/Syntropysoft/SyntropyLog/actions/workflows/ci.yaml/badge.svg" alt="CI Status"></a>
19
19
  <a href="#"><img src="https://img.shields.io/badge/coverage-85.67%25-brightgreen" alt="Test Coverage"></a>
20
- <a href="#"><img src="https://img.shields.io/badge/status-v0.8.15-brightgreen.svg" alt="Version 0.8.15"></a>
20
+ <a href="#"><img src="https://img.shields.io/badge/status-v0.8.16-brightgreen.svg" alt="Version 0.8.16"></a>
21
21
  <a href="https://socket.dev/npm/package/syntropylog"><img src="https://socket.dev/api/badge/npm/package/syntropylog" alt="Socket Badge"></a>
22
22
  </p>
23
23
 
@@ -61,9 +61,13 @@ npm install syntropylog
61
61
 
62
62
  By default, SyntropyLog outputs **lightweight plain JSON to the console — automatically, with no configuration needed**. No imports, no setup, no extra dependencies.
63
63
 
64
- If you want **colored, human-readable output** for development, explicitly use one of the chalk-powered transports. `chalk` is bundled as a direct dependency of SyntropyLog no separate install needed.
64
+ If you want **colored, human-readable output** for development, use one of the chalk-powered transports. These require `chalk` to be installed explicitly in your project to keep the base bundle small:
65
65
 
66
- | Transport | Style | Color (chalk) | Recommended for |
66
+ ```bash
67
+ npm install chalk
68
+ ```
69
+
70
+ | Transport | Style | Color | Recommended for |
67
71
  | :--- | :--- | :---: | :--- |
68
72
  | *(default)* | Plain JSON | ❌ | Production / log aggregators |
69
73
  | `ClassicConsoleTransport` | Structured + colored | ✅ | Development |
@@ -74,8 +78,8 @@ If you want **colored, human-readable output** for development, explicitly use o
74
78
  // Default — no import needed, works out of the box
75
79
  syntropyLog.init({ logger: { level: 'info', serviceName: 'my-app' } });
76
80
 
77
- // Want colors? Import the transport and pass it explicitly:
78
- import { ClassicConsoleTransport } from 'syntropylog'; // chalk is already included
81
+ // Want colors? Install chalk first, then import the transport:
82
+ import { ClassicConsoleTransport } from 'syntropylog';
79
83
 
80
84
  syntropyLog.init({
81
85
  logger: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "syntropylog",
3
- "version": "0.8.15",
3
+ "version": "0.8.16",
4
4
  "engines": {
5
5
  "node": ">=20.0.0"
6
6
  },
@@ -179,7 +179,6 @@
179
179
  "access": "public"
180
180
  },
181
181
  "dependencies": {
182
- "chalk": "^5.4.1",
183
182
  "flatted": "^3.3.3",
184
183
  "js-yaml": "^4.1.1",
185
184
  "regex-test": "^0.1.1",
@@ -213,11 +212,15 @@
213
212
  "vitest": "^4.0.18"
214
213
  },
215
214
  "peerDependencies": {
216
- "redis": "^4.6.12 || ^5.10.0"
215
+ "redis": "^4.6.12 || ^5.10.0",
216
+ "chalk": "^5.4.1"
217
217
  },
218
218
  "peerDependenciesMeta": {
219
219
  "redis": {
220
220
  "optional": true
221
+ },
222
+ "chalk": {
223
+ "optional": true
221
224
  }
222
225
  },
223
226
  "lint-staged": {