@syntropysoft/syntropyfront 0.4.5 → 0.4.7
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 +458 -0
- package/NOTICE +1 -1
- package/README.md +2 -0
- package/dist/index.cjs +11 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +11 -7
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +18 -26
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
## [0.4.7] - 2026-03-01
|
|
2
|
+
|
|
3
|
+
### Changed
|
|
4
|
+
- **Package**: Include `CHANGELOG.md` in published `files` (Socket.dev / maintainability).
|
|
5
|
+
- **README**: Coverage badge and Quality Metrics set to 87%; "future version" wording for 0.5.0; explicit **Network access** note (data only to configured endpoint).
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## [0.4.6] - 2026-03-01
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
- **ClickInterceptor**: Removed invalid CSS selector `[@click]` that caused `closest()` to throw in the browser. Wrapped `closest()` in try/catch so invalid selectors (e.g. from cached bundles) fall back to cursor:pointer detection instead of breaking the app.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## [0.4.5] - 2026-03-01
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
- **Architecture review**: `docs/ARCHITECTURE_REVIEW.md` (internal analysis in Spanish).
|
|
20
|
+
- **DIP & refactor**: Injected deps in SerializationManager and PersistentBufferManager; RobustSerializer split into pure shape/restore helpers; JSDoc contracts on Agent, QueueManager, RetryManager, HttpTransport.
|
|
21
|
+
- **New modules**: DataMaskingManager, Environment, FunctionWrapper; ClickInterceptor, FetchInterceptor, ErrorInterceptor.
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
- **RetryManager**: `scheduleRetry` now passes send/remove callbacks so automatic retries persist correctly.
|
|
25
|
+
- **BreadcrumbStore**: Decoupled from Agent via `onBreadcrumbAdded`; facade wires batchTimeout.
|
|
26
|
+
- **RobustSerializer**: ESLint compliance (no-magic-numbers, complexity ≤10, max-len); guard for `makeSerializable(null|undefined)`; DataMaskingManager ANSI regex (intentional control char) with eslint-disable.
|
|
27
|
+
- **CI**: Lint errors resolved (indent and rules); tests updated for English messages and behaviour.
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
- **Codebase**: All source comments, JSDoc, console messages and error strings in English.
|
|
31
|
+
- **Tests**: Behaviour-focused assertions; expectations aligned with refactor and i18n.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## [0.4.4] - 2026-03-01
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
- **Community Health**: Added `CONTRIBUTING.md`, `SECURITY.md`, and `CODE_OF_CONDUCT.md` to establish community standards and security disclosure policies.
|
|
39
|
+
- **Project Configuration**: Added `.editorconfig` for consistent development environment.
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
- **Package Metadata**: Updated `package.json` to include new community documentation files in the published package.
|
|
43
|
+
|
|
44
|
+
## [0.4.3] - 2026-03-01
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
- **Legal Compliance**: Standardized `LICENSE` file with official Apache-2.0 verbatim text and added official `NOTICE` file.
|
|
48
|
+
- **Improved CJS Support**: Fixed `exports` mapping in `package.json` to correctly point to `dist/index.cjs`.
|
|
49
|
+
|
|
50
|
+
## [0.4.2] - 2026-03-01
|
|
51
|
+
|
|
52
|
+
### Added
|
|
53
|
+
- **TypeScript Support**: Added comprehensive type definitions (`index.d.ts`) for native autocompletion and better developer experience.
|
|
54
|
+
|
|
55
|
+
### Fixed
|
|
56
|
+
- **Supply Chain Security**: Preliminary fix for `LICENSE` placeholders and standardized internal scripts to use `pnpm`.
|
|
57
|
+
- **Package Metadata**: Fixed missing type declarations in the distributed bundle.
|
|
58
|
+
|
|
59
|
+
## [0.4.1] - 2026-03-01
|
|
60
|
+
|
|
61
|
+
### Fixed
|
|
62
|
+
- **Security Vulnerabilities**: Resolved high-severity RCE and ReDoS vulnerabilities in devDependencies (`serialize-javascript`, `ajv`, `tmp`).
|
|
63
|
+
- **Dependency Overrides**: Forced `serialize-javascript@7.0.3` to ensure a secure build environment.
|
|
64
|
+
|
|
65
|
+
### Changed
|
|
66
|
+
- **Node.js Engine**: Upgraded minimum required version to **Node >=20.0.0** to support secure dependency requirements (WebCrypto) natively.
|
|
67
|
+
|
|
68
|
+
## [0.4.0] - 2026-03-01
|
|
69
|
+
|
|
70
|
+
### Added
|
|
71
|
+
- **Modular Architecture (Facade)**: Refactored the main entry point to delegate responsibilities to specialized components (`Agent`, `Interceptors`).
|
|
72
|
+
- **Automatic Resilience**: The system now automatically recovers and retries sending failed data from previous sessions stored in IndexedDB upon initialization.
|
|
73
|
+
- **Event Throttling**: Implemented a 500ms throttle for click capture to reduce event noise.
|
|
74
|
+
- **Smart Click Filtering**: Only captures clicks on interactive elements (buttons, links, etc.), significantly improving breadcrumb quality.
|
|
75
|
+
|
|
76
|
+
### Changed
|
|
77
|
+
- Removed the `flatted` external dependency in favor of our own `RobustSerializer`.
|
|
78
|
+
- Improved global error capture robustness using the Chaining Pattern.
|
|
79
|
+
|
|
80
|
+
## [0.3.0] - 2024-12-19
|
|
81
|
+
|
|
82
|
+
### 🚀 **Major Performance & Bundle Optimizations**
|
|
83
|
+
|
|
84
|
+
#### **Dependency Cleanup & Bundle Size Reduction**
|
|
85
|
+
- **Massive Dependency Reduction**: Removed 45+ unnecessary packages
|
|
86
|
+
- **Eliminated Unused Dependencies**: Removed `@stryker-mutator/vitest-runner` (using Jest only)
|
|
87
|
+
- **Streamlined Stryker Setup**: Kept only essential packages (`core` and `jest-runner`)
|
|
88
|
+
- **Bundle Size Optimization**: Significantly reduced final bundle size
|
|
89
|
+
- **Faster Installation**: Reduced npm install time and disk usage
|
|
90
|
+
|
|
91
|
+
#### **CI/CD & Dependabot Improvements**
|
|
92
|
+
- **Smart Dependabot Configuration**: Added selective ignore for Stryker packages
|
|
93
|
+
- **Prevented Incompatible Updates**: Dependabot no longer suggests Node.js >=20 incompatible updates
|
|
94
|
+
- **Maintained Compatibility**: Full Node.js 18, 20, 22 compatibility preserved
|
|
95
|
+
- **Stable CI Pipeline**: Eliminated CI failures from incompatible dependency updates
|
|
96
|
+
- **Consistent Workflow Matrix**: All workflows now use consistent Node.js version testing
|
|
97
|
+
|
|
98
|
+
#### **Development Experience Enhancements**
|
|
99
|
+
- **Cleaner Package Structure**: Only 1 runtime dependency (`flatted` for serialization)
|
|
100
|
+
- **Optimized DevDependencies**: All testing tools properly categorized
|
|
101
|
+
- **Faster Development**: Reduced cognitive load and setup complexity
|
|
102
|
+
- **Better Maintenance**: Easier to maintain and update dependencies
|
|
103
|
+
|
|
104
|
+
### 🔧 **Technical Improvements**
|
|
105
|
+
|
|
106
|
+
#### **Dependency Management**
|
|
107
|
+
- **Runtime Dependencies**: Reduced from multiple to just 1 essential dependency
|
|
108
|
+
- **DevDependencies**: Properly categorized all development tools
|
|
109
|
+
- **Package Lock**: Optimized and cleaned up dependency tree
|
|
110
|
+
- **Security**: Maintained all security benefits while reducing complexity
|
|
111
|
+
|
|
112
|
+
#### **Testing Infrastructure**
|
|
113
|
+
- **Mutation Testing**: Maintained full Stryker functionality with Jest
|
|
114
|
+
- **Test Coverage**: All 485 tests continue to pass
|
|
115
|
+
- **CI Stability**: Eliminated flaky CI builds from dependency conflicts
|
|
116
|
+
- **Cross-Node Testing**: Full compatibility across Node.js 18, 20, 22
|
|
117
|
+
|
|
118
|
+
### 🎯 **No Breaking Changes**
|
|
119
|
+
- **Public API**: All public APIs remain unchanged
|
|
120
|
+
- **Configuration**: Existing configurations continue to work
|
|
121
|
+
- **Migration**: No migration required for existing users
|
|
122
|
+
- **Functionality**: All features work exactly as before
|
|
123
|
+
|
|
124
|
+
### 📦 **Installation & Usage**
|
|
125
|
+
- **Faster Installation**: Reduced package size and dependencies
|
|
126
|
+
- **Better Performance**: Optimized bundle size for production
|
|
127
|
+
- **Same API**: Identical usage patterns and configuration options
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## [0.2.4] - 2024-08-02
|
|
132
|
+
|
|
133
|
+
### 🎨 **UI/UX Improvements**
|
|
134
|
+
|
|
135
|
+
#### **Vue Example Simplification**
|
|
136
|
+
- **Complete UI Overhaul**: Simplified Vue example from 447 lines to clean, modern design
|
|
137
|
+
- **Official Vue Branding**: Implemented official Vue.js colors (#42b883, #35495e, #42d392)
|
|
138
|
+
- **Architecture Fix**: Replaced hardcoded HTML with proper Vite + Vue SFC architecture
|
|
139
|
+
- **Code Reduction**: Eliminated 535+ lines of unnecessary complexity
|
|
140
|
+
- **Modern Design**: Clean, professional UI matching React example simplicity
|
|
141
|
+
|
|
142
|
+
#### **Example Improvements**
|
|
143
|
+
- **Simplified Documentation**: Removed verbose explanations, kept essential information
|
|
144
|
+
- **Better UX**: Improved button layouts and responsive design
|
|
145
|
+
- **Consistent Branding**: Unified color scheme across all examples
|
|
146
|
+
- **Maintained Functionality**: All SyntropyFront features work perfectly
|
|
147
|
+
|
|
148
|
+
### 🔧 **Infrastructure & Compatibility**
|
|
149
|
+
|
|
150
|
+
#### **GitHub Actions Updates**
|
|
151
|
+
- **Deprecation Fixes**: Updated all deprecated GitHub Actions to latest versions
|
|
152
|
+
- **Actions Updated**:
|
|
153
|
+
- `actions/upload-artifact@v3` → `@v4`
|
|
154
|
+
- `codecov/codecov-action@v3` → `@v4`
|
|
155
|
+
- **CI/CD Compatibility**: Ensured compatibility with latest GitHub Actions runner (2.327.1)
|
|
156
|
+
- **Workflow Files Updated**:
|
|
157
|
+
- `.github/workflows/test.yml`
|
|
158
|
+
- `.github/workflows/mutation-test.yml`
|
|
159
|
+
- `.github/workflows/ci.yml`
|
|
160
|
+
- `.github/workflows/quality.yml`
|
|
161
|
+
|
|
162
|
+
#### **Node.js Compatibility**
|
|
163
|
+
- **Multi-Node Support**: Full compatibility with Node 18, 20, and 22
|
|
164
|
+
- **ESLint Configuration**: Fixed Node 20+ ES modules compatibility
|
|
165
|
+
- Renamed `.eslintrc.js` → `.eslintrc.cjs`
|
|
166
|
+
- Removed conflicting `.eslintrc.json`
|
|
167
|
+
- **Test Timing Fixes**: Resolved timing-sensitive test failures in Node 22
|
|
168
|
+
- Increased timing tolerance from 1ms to 50-100ms
|
|
169
|
+
- Fixed exponential backoff delay tests
|
|
170
|
+
- Maintained test accuracy while improving compatibility
|
|
171
|
+
|
|
172
|
+
#### **Code Quality Improvements**
|
|
173
|
+
- **Indentation Fixes**: Fixed 2106+ indentation errors with `eslint --fix`
|
|
174
|
+
- **Error Reduction**: Reduced from 2202 problems to 95 warnings only
|
|
175
|
+
- **Consistent Formatting**: Standardized 2-space indentation across codebase
|
|
176
|
+
- **Linting Compliance**: 100% ESLint compliance with modern standards
|
|
177
|
+
|
|
178
|
+
### 🧪 **Testing Enhancements**
|
|
179
|
+
|
|
180
|
+
#### **Test Compatibility**
|
|
181
|
+
- **Cross-Node Testing**: All 484 tests pass in Node 18, 20, and 22
|
|
182
|
+
- **Timing Tolerance**: Improved test reliability across different Node versions
|
|
183
|
+
- **Test Files Updated**:
|
|
184
|
+
- `tests/retryManager.test.js` - Fixed timing-sensitive tests
|
|
185
|
+
- `tests/agent.test.js` - Improved retry delay assertions
|
|
186
|
+
- **Test Results**: 484 passed, 1 skipped (by design), 0 failed
|
|
187
|
+
|
|
188
|
+
#### **CI/CD Pipeline**
|
|
189
|
+
- **Automated Testing**: GitHub Actions now work seamlessly across all Node versions
|
|
190
|
+
- **Quality Gates**: Maintained high test coverage and mutation scores
|
|
191
|
+
- **Artifact Management**: Updated artifact upload/download processes
|
|
192
|
+
|
|
193
|
+
### 🚀 **Developer Experience**
|
|
194
|
+
|
|
195
|
+
#### **Simplified Development**
|
|
196
|
+
- **Clean Examples**: Developers can now focus on functionality, not complexity
|
|
197
|
+
- **Modern Tooling**: Updated to latest stable versions of all tools
|
|
198
|
+
- **Better Documentation**: Clearer, more focused examples
|
|
199
|
+
- **Faster Setup**: Reduced cognitive load for new developers
|
|
200
|
+
|
|
201
|
+
#### **Maintenance Improvements**
|
|
202
|
+
- **Reduced Complexity**: Eliminated unnecessary code and configurations
|
|
203
|
+
- **Better Organization**: Cleaner file structure and naming conventions
|
|
204
|
+
- **Future-Proof**: Ready for upcoming Node.js and tooling updates
|
|
205
|
+
|
|
206
|
+
### 🐛 **Bug Fixes**
|
|
207
|
+
- **ESLint Configuration Conflicts**: Resolved multiple ESLint config file conflicts
|
|
208
|
+
- **Node 22 Timing Issues**: Fixed test failures due to precise timing in Node 22
|
|
209
|
+
- **GitHub Actions Deprecation**: Eliminated deprecation warnings in CI/CD
|
|
210
|
+
- **Import Path Issues**: Fixed module resolution in different Node versions
|
|
211
|
+
|
|
212
|
+
### 📦 **Dependencies & Tools**
|
|
213
|
+
- **Updated Actions**: Latest GitHub Actions for better security and performance
|
|
214
|
+
- **Node Compatibility**: Full support for current and future Node.js versions
|
|
215
|
+
- **Build Tools**: Improved compatibility with modern development environments
|
|
216
|
+
|
|
217
|
+
### 🎯 **No Breaking Changes**
|
|
218
|
+
- **Public API**: All public APIs remain unchanged
|
|
219
|
+
- **Configuration**: Existing configurations continue to work
|
|
220
|
+
- **Migration**: No migration required for existing users
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## [0.2.3] - 2024-08-02
|
|
225
|
+
|
|
226
|
+
### 🎉 Major Refactoring & Architecture Improvements
|
|
227
|
+
|
|
228
|
+
#### 🏗️ **Architecture Overhaul**
|
|
229
|
+
- **Complete SRP Refactoring**: Broke down monolithic classes into focused, single-responsibility components
|
|
230
|
+
- **Modular Structure**: Reorganized codebase into logical folders for better maintainability
|
|
231
|
+
- **Dependency Injection**: Implemented proper dependency injection patterns throughout the codebase
|
|
232
|
+
|
|
233
|
+
#### 📁 **New Folder Structure**
|
|
234
|
+
```
|
|
235
|
+
src/core/
|
|
236
|
+
├── agent/ # Core Agent components
|
|
237
|
+
├── database/ # IndexedDB management
|
|
238
|
+
├── retry/ # Retry system
|
|
239
|
+
├── persistent/ # Persistent buffer
|
|
240
|
+
├── breadcrumbs/ # Event tracking
|
|
241
|
+
├── context/ # Context collection
|
|
242
|
+
└── utils/ # Utilities
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
#### 🔧 **Component Refactoring**
|
|
246
|
+
|
|
247
|
+
##### **Agent.js** → Coordinator Pattern
|
|
248
|
+
- **Before**: Monolithic class handling configuration, queuing, HTTP, retries, and persistence
|
|
249
|
+
- **After**: Coordinator that delegates to specialized managers
|
|
250
|
+
- **New Components**:
|
|
251
|
+
- `ConfigurationManager.js` - Configuration handling
|
|
252
|
+
- `QueueManager.js` - Batching and queuing logic
|
|
253
|
+
- `HttpTransport.js` - HTTP communication
|
|
254
|
+
- `RetryManager.js` - Retry coordination
|
|
255
|
+
- `PersistentBufferManager.js` - Buffer management
|
|
256
|
+
|
|
257
|
+
##### **DatabaseManager.js** → Specialized Managers
|
|
258
|
+
- **Before**: Single class handling connection, configuration, and transactions
|
|
259
|
+
- **After**: Coordinator with specialized managers
|
|
260
|
+
- **New Components**:
|
|
261
|
+
- `DatabaseConfigManager.js` - Configuration and validation
|
|
262
|
+
- `DatabaseConnectionManager.js` - Connection lifecycle
|
|
263
|
+
- `DatabaseTransactionManager.js` - Transaction management
|
|
264
|
+
|
|
265
|
+
##### **StorageManager.js** → Pure CRUD + Serialization
|
|
266
|
+
- **Before**: Mixed CRUD operations with serialization logic
|
|
267
|
+
- **After**: Pure CRUD operations with separate serialization manager
|
|
268
|
+
- **New Component**: `SerializationManager.js` - Declarative serialization with error handling
|
|
269
|
+
|
|
270
|
+
##### **PersistentBufferManager.js** → Coordinator Pattern
|
|
271
|
+
- **Before**: Direct IndexedDB operations
|
|
272
|
+
- **After**: Coordinator delegating to specialized components
|
|
273
|
+
- **New Component**: `RetryLogicManager.js` - Retry logic and cleanup
|
|
274
|
+
|
|
275
|
+
#### 🧪 **Testing Improvements**
|
|
276
|
+
|
|
277
|
+
##### **Comprehensive Test Suite**
|
|
278
|
+
- **Total Tests**: 484 tests (1 skipped)
|
|
279
|
+
- **Test Coverage**: 92.22% (up from ~80%)
|
|
280
|
+
- **Mutation Score**: 77.60% (up from 68.55%)
|
|
281
|
+
- **New Test Files**: 15+ new test files for refactored components
|
|
282
|
+
|
|
283
|
+
##### **Test Organization**
|
|
284
|
+
- **Component-Specific Tests**: Each new component has dedicated test file
|
|
285
|
+
- **Mock Improvements**: Better mocking strategies for IndexedDB and HTTP
|
|
286
|
+
- **Timeout Optimization**: Reduced test timeouts for faster execution (500ms vs 5000ms)
|
|
287
|
+
|
|
288
|
+
#### 🚀 **Performance Optimizations**
|
|
289
|
+
|
|
290
|
+
##### **Timeout Optimizations**
|
|
291
|
+
- **Test Timeouts**: Reduced from 5000ms to 500ms
|
|
292
|
+
- **Batch Timeouts**: Reduced from 1000ms to 500ms
|
|
293
|
+
- **Stryker Timeouts**: Optimized for faster mutation testing
|
|
294
|
+
- **Build Speed**: Improved compilation time (153ms vs ~200ms)
|
|
295
|
+
|
|
296
|
+
##### **Memory & Processing**
|
|
297
|
+
- **Queue Management**: Optimized batching and flushing logic
|
|
298
|
+
- **Retry System**: Improved exponential backoff implementation
|
|
299
|
+
- **Serialization**: More efficient circular reference handling
|
|
300
|
+
|
|
301
|
+
#### 🔍 **Quality Assurance**
|
|
302
|
+
|
|
303
|
+
##### **Mutation Testing Results**
|
|
304
|
+
- **Overall Score**: 77.60% (excellent)
|
|
305
|
+
- **Perfect Scores (100%)**:
|
|
306
|
+
- `ConfigurationManager.js`
|
|
307
|
+
- `BreadcrumbManager.js`
|
|
308
|
+
- `BreadcrumbStore.js`
|
|
309
|
+
- `SerializationManager.js`
|
|
310
|
+
- `DatabaseTransactionManager.js`
|
|
311
|
+
- `ErrorManager.js`
|
|
312
|
+
- `Logger.js`
|
|
313
|
+
|
|
314
|
+
##### **Code Quality Metrics**
|
|
315
|
+
- **Statements**: 92.22% covered
|
|
316
|
+
- **Branches**: 87.94% covered
|
|
317
|
+
- **Functions**: 92.24% covered
|
|
318
|
+
- **Lines**: 92.35% covered
|
|
319
|
+
|
|
320
|
+
#### 🛠️ **Developer Experience**
|
|
321
|
+
|
|
322
|
+
##### **CI/CD Pipeline**
|
|
323
|
+
- **GitHub Actions**: Automated testing, linting, and mutation testing
|
|
324
|
+
- **Quality Gates**: Automated PR comments with coverage and mutation scores
|
|
325
|
+
- **Artifact Uploads**: Test reports and coverage data
|
|
326
|
+
- **Auto-Issues**: Automatic issue creation for low mutation scores
|
|
327
|
+
|
|
328
|
+
##### **Code Quality Tools**
|
|
329
|
+
- **ESLint**: Comprehensive linting rules
|
|
330
|
+
- **Jest**: Optimized test configuration
|
|
331
|
+
- **Stryker**: Mutation testing with quick and full configurations
|
|
332
|
+
- **Codecov**: Coverage reporting and visualization
|
|
333
|
+
|
|
334
|
+
#### 📦 **Infrastructure**
|
|
335
|
+
|
|
336
|
+
##### **Build System**
|
|
337
|
+
- **Rollup**: Optimized bundling configuration
|
|
338
|
+
- **Multiple Formats**: ES modules, CommonJS, and minified versions
|
|
339
|
+
- **Tree Shaking**: Improved dead code elimination
|
|
340
|
+
|
|
341
|
+
##### **Package Management**
|
|
342
|
+
- **Removed NPM Release Script**: Cleaner package.json
|
|
343
|
+
- **Updated Dependencies**: Latest stable versions
|
|
344
|
+
- **Type Module**: Proper ES module configuration
|
|
345
|
+
|
|
346
|
+
#### 🔧 **Configuration & Scripts**
|
|
347
|
+
|
|
348
|
+
##### **New NPM Scripts**
|
|
349
|
+
```json
|
|
350
|
+
{
|
|
351
|
+
"test": "jest",
|
|
352
|
+
"test:coverage": "jest --config jest.config.coverage.cjs",
|
|
353
|
+
"test:mutation": "stryker run",
|
|
354
|
+
"test:mutation:quick": "stryker run stryker.quick.conf.json",
|
|
355
|
+
"lint": "eslint src --ext .js",
|
|
356
|
+
"lint:fix": "eslint src --ext .js --fix"
|
|
357
|
+
}
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
##### **Configuration Files**
|
|
361
|
+
- **Jest Configs**: Separate configs for tests and coverage
|
|
362
|
+
- **Stryker Configs**: Quick and full mutation testing configs
|
|
363
|
+
- **ESLint Config**: Comprehensive code quality rules
|
|
364
|
+
|
|
365
|
+
#### 🐛 **Bug Fixes**
|
|
366
|
+
- **Import Path Issues**: Fixed all import paths after refactoring
|
|
367
|
+
- **Test Mocking**: Improved IndexedDB and HTTP mocking
|
|
368
|
+
- **Timeout Issues**: Resolved test timing problems
|
|
369
|
+
- **Circular Dependencies**: Eliminated circular import issues
|
|
370
|
+
|
|
371
|
+
#### 📚 **Documentation**
|
|
372
|
+
- **Updated README**: New architecture section and updated metrics
|
|
373
|
+
- **API Documentation**: Improved method documentation
|
|
374
|
+
- **Examples**: Enhanced usage examples
|
|
375
|
+
- **Changelog**: Comprehensive change tracking
|
|
376
|
+
|
|
377
|
+
### 🎯 **Breaking Changes**
|
|
378
|
+
- **Import Paths**: Updated import paths for refactored components
|
|
379
|
+
- **Configuration**: Some internal configuration methods changed
|
|
380
|
+
- **API**: Public API remains stable, internal structure improved
|
|
381
|
+
|
|
382
|
+
### 🚀 **Migration Guide**
|
|
383
|
+
No migration required for end users. All public APIs remain unchanged.
|
|
384
|
+
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
## [0.2.2] - 2024-08-01
|
|
388
|
+
|
|
389
|
+
### 🐛 Bug Fixes
|
|
390
|
+
- Fixed IndexedDB connection issues in some browsers
|
|
391
|
+
- Improved error handling for network failures
|
|
392
|
+
- Enhanced console logging for debugging
|
|
393
|
+
|
|
394
|
+
### 📈 Performance
|
|
395
|
+
- Optimized memory usage for large event collections
|
|
396
|
+
- Improved serialization performance
|
|
397
|
+
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
## [0.2.1] - 2024-07-31
|
|
401
|
+
|
|
402
|
+
### ✨ New Features
|
|
403
|
+
- Added persistent buffer for failed requests
|
|
404
|
+
- Implemented exponential backoff retry mechanism
|
|
405
|
+
- Enhanced error context collection
|
|
406
|
+
|
|
407
|
+
### 🔧 Improvements
|
|
408
|
+
- Better handling of circular references in serialization
|
|
409
|
+
- Improved fetch interception reliability
|
|
410
|
+
- Enhanced breadcrumb data structure
|
|
411
|
+
|
|
412
|
+
---
|
|
413
|
+
|
|
414
|
+
## [0.2.0] - 2024-07-30
|
|
415
|
+
|
|
416
|
+
### 🎉 Major Release
|
|
417
|
+
- Complete rewrite with modular architecture
|
|
418
|
+
- Improved error handling and context collection
|
|
419
|
+
- Enhanced configuration options
|
|
420
|
+
- Better browser compatibility
|
|
421
|
+
|
|
422
|
+
### ✨ New Features
|
|
423
|
+
- Automatic event capture (clicks, errors, HTTP, console)
|
|
424
|
+
- Flexible error posting (endpoint, custom handler, console)
|
|
425
|
+
- Configurable event limits
|
|
426
|
+
- Breadcrumb system for context
|
|
427
|
+
|
|
428
|
+
### 🔧 Technical Improvements
|
|
429
|
+
- ES6+ codebase
|
|
430
|
+
- Rollup bundling
|
|
431
|
+
- Comprehensive testing
|
|
432
|
+
- Better error messages
|
|
433
|
+
|
|
434
|
+
---
|
|
435
|
+
|
|
436
|
+
## [0.1.0] - 2024-07-29
|
|
437
|
+
|
|
438
|
+
### 🎉 Initial Release
|
|
439
|
+
- Basic error capture functionality
|
|
440
|
+
- Simple configuration system
|
|
441
|
+
- Console logging support
|
|
442
|
+
- Basic documentation
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
---
|
|
446
|
+
|
|
447
|
+
## Version History
|
|
448
|
+
|
|
449
|
+
- **0.4.7**: CHANGELOG in package, README metrics & Socket transparency
|
|
450
|
+
- **0.4.6**: ClickInterceptor invalid selector fix, try/catch fallback for closest()
|
|
451
|
+
- **0.4.5**: Refactor SOLID/DIP, code i18n, bug fixes, ESLint compliance for CI
|
|
452
|
+
- **0.4.4**: Community health (CONTRIBUTING, SECURITY, CODE_OF_CONDUCT), .editorconfig
|
|
453
|
+
- **0.2.5**: Initial public release with full observability suite
|
|
454
|
+
- **0.2.4**: Beta release with core functionality
|
|
455
|
+
- **0.2.3**: Alpha release with basic error tracking
|
|
456
|
+
- **0.2.2**: Development version with breadcrumb system
|
|
457
|
+
- **0.2.1**: Early development with agent architecture
|
|
458
|
+
- **0.2.0**: Initial project setup and architecture design
|
package/NOTICE
CHANGED
package/README.md
CHANGED
|
@@ -33,6 +33,8 @@ SyntropyFront is not just a log collector; it is a piece of engineering designed
|
|
|
33
33
|
2. **Functional Programming**: We use declarative patterns to transform data, ensuring that error processing and PII obfuscation are pure and without unexpected side effects.
|
|
34
34
|
3. **Privacy by Design (Privacy-by-Default)**: Security is not optional. The system includes a sensitive data masking engine (PII) that acts before any information leaves the client.
|
|
35
35
|
|
|
36
|
+
**Network access:** This library uses the network only to send errors and breadcrumbs to the endpoint you configure (`configure({ endpoint })` or `onError`). It does not phone home or send data to third parties by default.
|
|
37
|
+
|
|
36
38
|
## ✨ Key Features
|
|
37
39
|
|
|
38
40
|
- 🎯 **Smart Click Capture**: Tracks interactions on interactive elements with built-in throttling logic.
|
package/dist/index.cjs
CHANGED
|
@@ -2238,7 +2238,7 @@ const DOM_UTILS = {
|
|
|
2238
2238
|
'[role="button"]', '[role="link"]', '[role="checkbox"]', '[role="radio"]',
|
|
2239
2239
|
'[role="menuitem"]', '[role="option"]', '[role="switch"]', '[role="tab"]',
|
|
2240
2240
|
'.interactive', '.btn', '.clickable', // Convention selectors
|
|
2241
|
-
'[onclick]', '[ng-click]', '[v-on:click]'
|
|
2241
|
+
'[onclick]', '[ng-click]', '[v-on:click]' // Framework click attributes (@click is invalid in CSS selectors)
|
|
2242
2242
|
].join(', '),
|
|
2243
2243
|
|
|
2244
2244
|
/**
|
|
@@ -2264,14 +2264,18 @@ const DOM_UTILS = {
|
|
|
2264
2264
|
},
|
|
2265
2265
|
|
|
2266
2266
|
/**
|
|
2267
|
-
|
|
2268
|
-
|
|
2267
|
+
* Finds the interactive target using closest() with CSS fallback (declarative).
|
|
2268
|
+
* Uses try/catch so invalid selectors (e.g. from old bundles) don't break the app.
|
|
2269
|
+
*/
|
|
2269
2270
|
findInteractiveTarget: (el) => {
|
|
2270
|
-
// Guard: valid element
|
|
2271
2271
|
if (!el || el === document.body || el.nodeType !== 1) return null;
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2272
|
+
try {
|
|
2273
|
+
const found = el.closest(DOM_UTILS.INTERACTIVE_SELECTOR);
|
|
2274
|
+
if (found) return found;
|
|
2275
|
+
} catch (_) {
|
|
2276
|
+
// Invalid selector (e.g. [@click] in old builds) or browser quirk; fallback only
|
|
2277
|
+
}
|
|
2278
|
+
return DOM_UTILS.findTargetByStyle(el);
|
|
2275
2279
|
},
|
|
2276
2280
|
|
|
2277
2281
|
/**
|