een-api-toolkit 0.3.69 → 0.3.78
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 +83 -51
- package/README.md +2 -0
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +398 -370
- package/dist/index.js.map +1 -1
- package/docs/AI-CONTEXT.md +1 -1
- package/docs/ai-reference/AI-AUTH.md +1 -1
- package/docs/ai-reference/AI-AUTOMATIONS.md +1 -1
- package/docs/ai-reference/AI-DEVICES.md +1 -1
- package/docs/ai-reference/AI-EVENT-DATA-SCHEMAS.md +1 -1
- package/docs/ai-reference/AI-EVENTS.md +1 -1
- package/docs/ai-reference/AI-GROUPING.md +1 -1
- package/docs/ai-reference/AI-JOBS.md +1 -1
- package/docs/ai-reference/AI-MEDIA.md +1 -1
- package/docs/ai-reference/AI-SETUP.md +1 -1
- package/docs/ai-reference/AI-USERS.md +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -2,72 +2,94 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
## [0.3.
|
|
5
|
+
## [0.3.78] - 2026-02-12
|
|
6
6
|
|
|
7
7
|
### Release Summary
|
|
8
8
|
|
|
9
|
-
#### PR #
|
|
10
|
-
##
|
|
9
|
+
#### PR #102: Release v0.3.69: CI improvements and dependency management
|
|
10
|
+
## Summary
|
|
11
|
+
- Dynamic E2E test matrix discovery (auto-detects example apps with `playwright.config.ts`)
|
|
12
|
+
- Added missing `vue-jobs` to CI E2E testing
|
|
13
|
+
- Dependabot configuration for automated dependency updates
|
|
14
|
+
- Pinned GitHub Actions to immutable commit SHAs for supply chain security
|
|
11
15
|
|
|
12
|
-
|
|
16
|
+
## Commits
|
|
17
|
+
- `474e9bb` ci: Dynamically discover example apps for E2E matrix
|
|
18
|
+
- `ad3f318` fix: pin GitHub Actions to immutable commit SHAs
|
|
19
|
+
- `cc706d8` chore: add Dependabot configuration for automated dependency updates
|
|
20
|
+
- `24a385b` Merge PR #95 (workflow SHA pinning security fix)
|
|
13
21
|
|
|
14
|
-
|
|
22
|
+
## Test Results
|
|
23
|
+
- **Lint**: Passed (0 errors, 1 warning)
|
|
24
|
+
- **Unit tests**: 619/619 passed
|
|
25
|
+
- **Build**: Successful
|
|
26
|
+
- **E2E tests**: 11/11 example apps passed (1 transient OAuth timeout on vue-users, passed on rerun)
|
|
15
27
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
- Fixed vue-feeds navigation reactivity issue
|
|
19
|
-
- Added camera utility functions
|
|
20
|
-
- Improved accessibility with aria-labels
|
|
28
|
+
## Security Review
|
|
29
|
+
Changes are CI/infrastructure only (workflow files, dependabot config). No source code changes. No security vulnerabilities.
|
|
21
30
|
|
|
22
|
-
|
|
31
|
+
## Version
|
|
32
|
+
`v0.3.69`
|
|
23
33
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- ✅ #70 - Implemented getCameraStatusString() utility function
|
|
27
|
-
- ✅ #71 - Implemented isStatusObject() TypeScript type guard
|
|
28
|
-
- ✅ #87 - Documented auto-generated vs manually maintained files
|
|
29
|
-
- ✅ #89 - Fully automated event data schemas documentation generation
|
|
30
|
-
- ❌ #85 - Closed as won't-do (JSON viewer E2E tests)
|
|
31
|
-
- ❌ #76 - Closed as won't-do (datetime persistence test timezone)
|
|
34
|
+
#### PR #106: Release v0.3.70: Fix Dependabot TypeScript minor version ignore
|
|
35
|
+
## Summary
|
|
32
36
|
|
|
33
|
-
|
|
34
|
-
- `
|
|
35
|
-
-
|
|
36
|
-
- CLAUDE.md
|
|
37
|
+
- Re-add `semver-minor` ignore for TypeScript in Dependabot config to prevent unwanted 5.8→5.9 bump PRs
|
|
38
|
+
- Dependabot modifies `package.json` directly, bypassing the `~5.8.x` constraint — must be blocked at the Dependabot level
|
|
39
|
+
- Addresses review feedback from PR #102 and closes Dependabot PR #104
|
|
40
|
+
- Documentation updates: fix inaccuracies in CLAUDE.md and README.md, regenerate API docs
|
|
41
|
+
- Remove misleading auto-merge comment, add CodeQL and SHA pinning guidance to CLAUDE.md
|
|
37
42
|
|
|
38
|
-
|
|
39
|
-
- Fixed vue-feeds navigation not appearing after OAuth login (computed property for reactivity)
|
|
40
|
-
- Updated all example app READMEs with accurate function lists
|
|
43
|
+
## Changes
|
|
41
44
|
|
|
42
|
-
|
|
45
|
+
- `.github/dependabot.yml` - Re-add semver-minor to TypeScript ignore, clarify comments
|
|
46
|
+
- `.github/workflows/validate-pr.yml` - Add validation to discover-examples job
|
|
47
|
+
- `.github/workflows/claude-code-review.yml` - Update SHA version comment to v1.0.48
|
|
48
|
+
- `CLAUDE.md` - Fix 7 documentation inaccuracies, add SHA pinning guidance
|
|
49
|
+
- `README.md` - Add vue-automations and vue-jobs to examples table
|
|
50
|
+
- `docs/` - Regenerated API docs and AI reference docs
|
|
43
51
|
|
|
44
|
-
|
|
45
|
-
- vue-alerts-metrics: 20 tests
|
|
46
|
-
- vue-automations: 24 tests
|
|
47
|
-
- vue-bridges: 13 tests
|
|
48
|
-
- vue-event-subscriptions: 15 tests
|
|
49
|
-
- vue-events: 16 tests
|
|
50
|
-
- **vue-feeds: 12 tests** ✅ (Main fix verified)
|
|
51
|
-
- vue-jobs: 34 tests
|
|
52
|
-
- vue-users: 14 tests
|
|
52
|
+
## Test Results
|
|
53
53
|
|
|
54
|
-
**
|
|
54
|
+
- **Lint**: Passed (0 errors, 1 warning)
|
|
55
|
+
- **Unit tests**: 619/619 passed
|
|
56
|
+
- **Build**: Successful
|
|
57
|
+
- **E2E tests**: 11/11 example apps passed
|
|
55
58
|
|
|
56
|
-
|
|
59
|
+
## Security Review
|
|
57
60
|
|
|
58
|
-
|
|
59
|
-
- All file operations use safe path handling
|
|
60
|
-
- No command injection risks
|
|
61
|
-
- Regex patterns safe from ReDoS
|
|
62
|
-
- Vue components follow framework security best practices
|
|
61
|
+
No source code changes — infrastructure and documentation only. No security concerns.
|
|
63
62
|
|
|
64
|
-
|
|
63
|
+
## Version
|
|
65
64
|
|
|
66
|
-
v0.3.
|
|
65
|
+
v0.3.70
|
|
67
66
|
|
|
68
|
-
|
|
67
|
+
#### PR #108: Release v0.3.76: Hostname validation security hardening
|
|
68
|
+
## Summary
|
|
69
|
+
- **Security Fix**: Validate hostname against EEN domain allowlist to prevent token exfiltration via malicious base URL injection
|
|
70
|
+
- **Hardening**: Fail-secure on tampered storage - clears all auth data when poisoned hostname/port detected
|
|
71
|
+
- **Validation**: Port validation (1-65535 range), protocol bypass prevention, subdomain spoofing protection
|
|
72
|
+
- **Tests**: Comprehensive hostname validation test suite for auth store (46 new tests)
|
|
73
|
+
- **Robustness**: Added `isAllowedEenHostname` utility with falsy guard, console.warn for rejected hostnames, `@internal` JSDoc tag on `ALLOWED_DOMAINS`
|
|
74
|
+
|
|
75
|
+
## Commits
|
|
76
|
+
- fix: Validate hostname against EEN domain allowlist to prevent token exfiltration
|
|
77
|
+
- test: Add hostname validation tests for auth store security fix
|
|
78
|
+
- docs: Add @internal JSDoc tag to ALLOWED_DOMAINS constant
|
|
79
|
+
- fix: Use console.warn for rejected hostname validation messages
|
|
80
|
+
- fix: Add falsy guard to isAllowedEenHostname for robustness
|
|
81
|
+
- fix: harden hostname/port validation and fail-secure on tampered storage
|
|
82
|
+
|
|
83
|
+
## Test Results
|
|
84
|
+
- **Lint**: Passed (1 warning - pre-existing)
|
|
85
|
+
- **Unit Tests**: 639 passed (23 test files)
|
|
86
|
+
- **Build**: Successful (ESM + CJS)
|
|
87
|
+
- **E2E Tests**: All 11 example apps passed
|
|
88
|
+
|
|
89
|
+
## Version
|
|
90
|
+
`0.3.76`
|
|
69
91
|
|
|
70
|
-
|
|
92
|
+
🤖 Generated with [Claude Code](https://claude.com/claude-code)
|
|
71
93
|
|
|
72
94
|
#### PR #94: Release v0.3.69: SSRF protection fix with test coverage
|
|
73
95
|
## Summary
|
|
@@ -95,12 +117,22 @@ The only source code change is the SSRF protection in `src/media/service.ts` whi
|
|
|
95
117
|
### Detailed Changes
|
|
96
118
|
|
|
97
119
|
#### Bug Fixes
|
|
98
|
-
- fix:
|
|
99
|
-
-
|
|
120
|
+
- fix: Repair broken JSDoc comment in hostname.ts
|
|
121
|
+
- fix: Address code review concerns for PR #108
|
|
122
|
+
- fix: harden hostname/port validation and fail-secure on tampered storage
|
|
123
|
+
- fix: Add falsy guard to isAllowedEenHostname for robustness
|
|
124
|
+
- fix: Use console.warn for rejected hostname validation messages
|
|
125
|
+
- fix: Validate hostname against EEN domain allowlist to prevent token exfiltration
|
|
126
|
+
- fix: Re-add semver-minor ignore for TypeScript in Dependabot
|
|
127
|
+
|
|
128
|
+
#### Other Changes
|
|
129
|
+
- Update src/utils/hostname.ts
|
|
130
|
+
- docs: Add @internal JSDoc tag to ALLOWED_DOMAINS constant
|
|
131
|
+
- test: Add hostname validation tests for auth store security fix
|
|
100
132
|
|
|
101
133
|
### Links
|
|
102
134
|
- [npm package](https://www.npmjs.com/package/een-api-toolkit)
|
|
103
|
-
- [Full Changelog](https://github.com/klaushofrichter/een-api-toolkit/compare/v0.3.
|
|
135
|
+
- [Full Changelog](https://github.com/klaushofrichter/een-api-toolkit/compare/v0.3.70...v0.3.78)
|
|
104
136
|
|
|
105
137
|
---
|
|
106
|
-
*Released: 2026-02-
|
|
138
|
+
*Released: 2026-02-12 20:28:23 CST*
|
package/README.md
CHANGED
|
@@ -215,6 +215,8 @@ The `examples/` directory contains complete Vue 3 applications demonstrating too
|
|
|
215
215
|
| **[vue-events](./examples/vue-events/)** | Event listing with bounding box overlays | `listEvents()`, `listEventTypes()`, `listEventFieldValues()`, `getRecordedImage()` |
|
|
216
216
|
| **[vue-alerts-metrics](./examples/vue-alerts-metrics/)** | Event metrics, alerts, and notifications dashboard | `getEventMetrics()`, `listAlerts()`, `listAlertTypes()`, `listNotifications()` |
|
|
217
217
|
| **[vue-event-subscriptions](./examples/vue-event-subscriptions/)** | Real-time event streaming with SSE | `listEventSubscriptions()`, `createEventSubscription()`, `deleteEventSubscription()`, `connectToEventSubscription()` |
|
|
218
|
+
| **[vue-automations](./examples/vue-automations/)** | Automation rules and alert actions | `listEventAlertConditionRules()`, `listAlertConditionRules()`, `listAlertActionRules()`, `listAlertActions()` |
|
|
219
|
+
| **[vue-jobs](./examples/vue-jobs/)** | Job management, exports, and file downloads | `listJobs()`, `getJob()`, `createExportJob()`, `listFiles()`, `downloadFile()` |
|
|
218
220
|
|
|
219
221
|
Each example includes:
|
|
220
222
|
- Complete OAuth authentication flow
|