een-api-toolkit 0.3.67 → 0.3.70

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
@@ -2,138 +2,83 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- ## [0.3.67] - 2026-02-08
5
+ ## [0.3.70] - 2026-02-10
6
6
 
7
7
  ### Release Summary
8
8
 
9
- #### PR #91: feat: E2E runner script, release summary fix, agent updates
9
+ #### PR #102: Release v0.3.69: CI improvements and dependency management
10
10
  ## Summary
11
-
12
- - **feat:** Add `scripts/run-examples-e2e.sh` that dynamically discovers all example apps and runs Playwright E2E tests sequentially with port 3333 cleanup between runs
13
- - **fix:** Fix npm-publish workflow race condition where Release Summary was always empty — replaced `git log --merges` (which failed when checked-out develop commit didn't have production merge commits as ancestors) with `gh pr list --base production --state merged` via GitHub API
14
- - **fix:** Update PR-and-check skill to fetch all tags (`git fetch origin --tags`), check for in-progress release workflows before proceeding, use `npm run test:e2e:examples` script, and set 20-minute E2E timeout
15
- - **chore:** Update docs-accuracy-reviewer to also verify skills and agent files against actual implementations
16
- - **chore:** Set sonnet model for test-runner and docs-accuracy-reviewer agents
17
- - **fix:** Correct inaccuracies in een-auth, een-devices, een-media, een-users agent files
18
-
19
- ## Version
20
-
21
- `0.3.62`
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
22
15
 
23
16
  ## Commits
24
-
25
- - `6df59c8` chore: Set 20-minute timeout for example E2E tests in PR skill
26
- - `fce1f9e` feat: Add E2E runner script, fix release PR summaries, update agents
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)
27
21
 
28
22
  ## Test Results
29
-
30
- | Check | Result |
31
- |-------|--------|
32
- | Lint | Passed |
33
- | Unit Tests | 600 passed (22 files) |
34
- | Build | Passed |
35
- | vue-alerts-metrics E2E | 20 passed |
36
- | vue-automations E2E | 24 passed |
37
- | vue-bridges E2E | 18 passed |
38
- | vue-cameras E2E | 41 passed |
39
- | vue-event-subscriptions E2E | 15 passed |
40
- | vue-events E2E | 16 passed |
41
- | vue-feeds E2E | 12 passed |
42
- | vue-jobs E2E | 34 passed |
43
- | vue-layouts E2E | 14 passed |
44
- | vue-media E2E | 20 passed |
45
- | vue-users E2E | 14 passed (passed on retry, transient OAuth callback timeout) |
46
- | **Total E2E** | **228 passed across 11 apps** |
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)
47
27
 
48
28
  ## Security Review
29
+ Changes are CI/infrastructure only (workflow files, dependabot config). No source code changes. No security vulnerabilities.
49
30
 
50
- No security concerns. Changes are limited to:
51
- - Shell script for test orchestration (no user input, runs locally)
52
- - GitHub Actions workflow fix (uses `gh` CLI with existing `GH_TOKEN`)
53
- - Documentation/agent file corrections (markdown only)
54
- - No new dependencies, no API changes, no auth flow changes
55
-
56
- 🤖 Generated with [Claude Code](https://claude.com/claude-code)
57
-
58
- #### PR #92: Release v0.3.66 - GitHub Issues Resolution & vue-feeds Fix
59
- ## Release v0.3.66
60
-
61
- This PR merges develop into production with GitHub issue resolutions, automation improvements, and critical bug fixes.
62
-
63
- ### Summary
64
-
65
- - Resolved all 7 open GitHub issues
66
- - Automated event data schemas documentation generation
67
- - Fixed vue-feeds navigation reactivity issue
68
- - Added camera utility functions
69
- - Improved accessibility with aria-labels
70
-
71
- ### Changes
72
-
73
- **Closed Issues:**
74
- - ✅ #84 - Added aria-label to JSON viewer button for screen reader accessibility
75
- - ✅ #70 - Implemented getCameraStatusString() utility function
76
- - ✅ #71 - Implemented isStatusObject() TypeScript type guard
77
- - ✅ #87 - Documented auto-generated vs manually maintained files
78
- - ✅ #89 - Fully automated event data schemas documentation generation
79
- - ❌ #85 - Closed as won't-do (JSON viewer E2E tests)
80
- - ❌ #76 - Closed as won't-do (datetime persistence test timezone)
81
-
82
- **New Features:**
83
- - `src/utils/camera.ts` - Camera status utility functions with full JSDoc
84
- - `scripts/generate-event-data-schemas-doc.ts` - Auto-generates AI-EVENT-DATA-SCHEMAS.md from TypeScript source
85
- - CLAUDE.md documentation section explaining auto-generated vs manual files
86
-
87
- **Bug Fixes:**
88
- - Fixed vue-feeds navigation not appearing after OAuth login (computed property for reactivity)
89
- - Updated all example app READMEs with accurate function lists
90
-
91
- ### Test Results
92
-
93
- **✅ Passed (8 of 11 apps - 148 tests):**
94
- - vue-alerts-metrics: 20 tests
95
- - vue-automations: 24 tests
96
- - vue-bridges: 13 tests
97
- - vue-event-subscriptions: 15 tests
98
- - vue-events: 16 tests
99
- - **vue-feeds: 12 tests** ✅ (Main fix verified)
100
- - vue-jobs: 34 tests
101
- - vue-users: 14 tests
102
-
103
- **Note:** 3 apps failed due to OAuth rate limiting (vue-cameras) and test config issues (vue-layouts, vue-media) - not related to code changes.
104
-
105
- ### Security Review
31
+ ## Version
32
+ `v0.3.69`
106
33
 
107
- Security review completed - No vulnerabilities found
108
- - All file operations use safe path handling
109
- - No command injection risks
110
- - Regex patterns safe from ReDoS
111
- - Vue components follow framework security best practices
34
+ #### PR #94: Release v0.3.69: SSRF protection fix with test coverage
35
+ ## Summary
36
+ - Merges security fix from PR #93 (SSRF domain validation in `initMediaSession`)
37
+ - Fixes broken unit tests caused by the domain validation (updated test domains from `example.com` to `eagleeyenetworks.com`)
38
+ - Adds 2 new unit tests for domain validation coverage (untrusted domain rejection, `een.cloud` acceptance)
112
39
 
113
- ### Version
40
+ ## Commits
41
+ - `22aed68` Fix AUTH_BYPASS vulnerability in initMediaSession()
42
+ - `b6d21d1` fix: Update media tests for SSRF domain validation and add coverage
114
43
 
115
- v0.3.66 (auto-incremented from 0.3.64 via Husky pre-commit hooks)
44
+ ## Test Results
45
+ - **Lint**: Passed (1 warning, 0 errors)
46
+ - **Unit tests**: 619/619 passed
47
+ - **Build**: Successful (v0.3.69)
48
+ - **E2E tests**: 11/11 example apps passed
116
49
 
117
- ---
50
+ ## Security Review
51
+ The only source code change is the SSRF protection in `src/media/service.ts` which validates session URLs against allowed domains (`.eagleeyenetworks.com`, `.een.cloud`). This is a security improvement with no new vulnerabilities.
118
52
 
119
- Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
53
+ ## Version
54
+ `v0.3.69`
120
55
 
121
56
 
122
57
  ### Detailed Changes
123
58
 
124
- #### Features
125
- - feat: Resolve all open GitHub issues with automation and utilities
126
-
127
59
  #### Bug Fixes
128
- - fix: Add computed property for auth reactivity in vue-feeds example
60
+ - fix: Address code review concerns for PR #102
61
+ - fix: Revert TypeScript to ~5.8.0 and block minor bumps in Dependabot
62
+ - fix: Revert eslint to v9 for typescript-eslint compatibility
63
+ - fix: pin GitHub Actions to immutable commit SHAs
129
64
 
130
65
  #### Other Changes
131
- - docs: Address code review feedback for camera utilities
132
- - docs: Update example app READMEs to accurately list all toolkit functions used
66
+ - docs: Address minor review concerns for PR #102
67
+ - docs: Fix documentation inaccuracies and regenerate API docs
68
+ - chore(deps): bump github/codeql-action from 3.32.2 to 4.32.2
69
+ - chore: Ignore eslint major version bumps in Dependabot
70
+ - chore(deps-dev): bump the npm-dependencies group with 18 updates
71
+ - chore(deps): bump actions/upload-artifact from 4.6.2 to 6.0.0
72
+ - chore(deps): bump anthropics/claude-code-action
73
+ - chore(deps): bump github/codeql-action
74
+ - chore(deps): bump actions/setup-node from 4.4.0 to 6.2.0
75
+ - chore(deps): bump actions/checkout from 4.3.1 to 6.0.2
76
+ - chore: add Dependabot configuration for automated dependency updates
77
+ - ci: Dynamically discover example apps for E2E matrix
133
78
 
134
79
  ### Links
135
80
  - [npm package](https://www.npmjs.com/package/een-api-toolkit)
136
- - [Full Changelog](https://github.com/klaushofrichter/een-api-toolkit/compare/v0.3.63...v0.3.67)
81
+ - [Full Changelog](https://github.com/klaushofrichter/een-api-toolkit/compare/v0.3.69...v0.3.70)
137
82
 
138
83
  ---
139
- *Released: 2026-02-08 17:32:38 CST*
84
+ *Released: 2026-02-10 21:07:19 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