een-api-toolkit 0.2.0 → 0.2.1
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 +47 -28
- package/README.md +1 -0
- package/docs/AI-CONTEXT.md +6 -1
- package/examples/vue-users/e2e/auth.spec.ts +7 -4
- package/examples/vue-users/package-lock.json +2 -2
- package/examples/vue-users/package.json +1 -1
- package/examples/vue-users/playwright.config.ts +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,38 +2,60 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
## [0.2.
|
|
5
|
+
## [0.2.1] - 2026-01-03
|
|
6
6
|
|
|
7
7
|
### Release Summary
|
|
8
8
|
|
|
9
|
-
#### PR #
|
|
9
|
+
#### PR #41: Release v0.2.0 - Dependency updates, E2E fixes, and documentation
|
|
10
10
|
## Summary
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Release version 0.2.0 with major dependency updates, E2E test improvements, and documentation enhancements.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
- **Faster dev server startup**: Replaced slow `npx kill-port` (10-15 seconds) with native `lsof` command for instant port cleanup
|
|
16
|
-
- **Documentation fixes**: Fixed vue-users README to use functions instead of removed composables, updated docs/README.md to reference all example apps
|
|
14
|
+
### Breaking Changes
|
|
17
15
|
|
|
18
|
-
|
|
16
|
+
- **Pinia 3.0 Required**: Peer dependency changed from `^2.0.0 || ^3.0.0` to `^3.0.0`
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
18
|
+
### Key Changes
|
|
19
|
+
|
|
20
|
+
**Dependency Updates:**
|
|
21
|
+
- ESLint 8 → 9 with flat config migration
|
|
22
|
+
- @typescript-eslint packages → v8
|
|
23
|
+
- eslint-plugin-vue → v10
|
|
24
|
+
- Pinia → v3 across all examples
|
|
25
|
+
- @types/node, @vue/tsconfig updated
|
|
26
|
+
|
|
27
|
+
**E2E Test Improvements:**
|
|
28
|
+
- Rewrote vue-feeds and vue-media auth tests to be self-contained
|
|
29
|
+
- Fixed Playwright "double require" conflict
|
|
30
|
+
- Added configurable baseURL support
|
|
31
|
+
- Improved error logging for local debugging
|
|
32
|
+
- Added comprehensive E2E testing documentation
|
|
33
|
+
|
|
34
|
+
**Documentation:**
|
|
35
|
+
- Added CHANGELOG.md documenting breaking changes
|
|
36
|
+
- Added "Running E2E Tests" section to README
|
|
37
|
+
- Added "Working Examples" note to AI-CONTEXT.md
|
|
38
|
+
- Added "Live Video Viewer App" prompt to Prompts.md
|
|
39
|
+
|
|
40
|
+
### Commits
|
|
41
|
+
|
|
42
|
+
- `245e2b9` docs: Add Live Video Viewer prompt to Prompts.md
|
|
43
|
+
- `3da2ba8` docs: Add working examples note to AI-CONTEXT.md
|
|
44
|
+
- `cf3343c` chore: Bump version to 0.2.0 and add CHANGELOG
|
|
45
|
+
- `cca7f8c` fix: Address remaining code review recommendations
|
|
46
|
+
- `0c09a7a` fix: Address code review feedback for PR #40
|
|
47
|
+
- `0b44931` chore: Update dependencies and fix E2E tests
|
|
27
48
|
|
|
28
49
|
## Test Results
|
|
29
50
|
|
|
30
|
-
- ✅ Lint: Passed (1
|
|
51
|
+
- ✅ Lint: Passed (1 warning)
|
|
31
52
|
- ✅ Unit tests: 164 passed
|
|
32
|
-
- ✅ Build:
|
|
53
|
+
- ✅ Build: Successful
|
|
54
|
+
- ✅ E2E tests: 67 passed across 5 examples
|
|
33
55
|
|
|
34
56
|
## Version
|
|
35
57
|
|
|
36
|
-
|
|
58
|
+
`0.2.0`
|
|
37
59
|
|
|
38
60
|
🤖 Generated with [Claude Code](https://claude.com/claude-code)
|
|
39
61
|
|
|
@@ -41,21 +63,18 @@ This release includes documentation improvements and developer experience enhanc
|
|
|
41
63
|
### Detailed Changes
|
|
42
64
|
|
|
43
65
|
#### Bug Fixes
|
|
44
|
-
- fix:
|
|
45
|
-
- fix: Address code review feedback for PR #40
|
|
46
|
-
- fix: Address code review feedback - macOS note, xargs safety, and skill fix
|
|
66
|
+
- fix: Fix vue-users E2E test and Prompts.md branch reference
|
|
47
67
|
|
|
48
68
|
#### Other Changes
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
- docs:
|
|
52
|
-
- docs:
|
|
53
|
-
-
|
|
54
|
-
- docs: Add README files and screenshots to example applications
|
|
69
|
+
- docs: Clarify redirect URI comes from toolkit configuration
|
|
70
|
+
- docs: Address code review feedback for OAuth and logout documentation
|
|
71
|
+
- docs: Clarify OAuth callback handling and add logout button to prompts
|
|
72
|
+
- docs: Add Live Video Viewer prompt to Prompts.md
|
|
73
|
+
- docs: Add working examples note to AI-CONTEXT.md
|
|
55
74
|
|
|
56
75
|
### Links
|
|
57
76
|
- [npm package](https://www.npmjs.com/package/een-api-toolkit)
|
|
58
|
-
- [Full Changelog](https://github.com/klaushofrichter/een-api-toolkit/compare/v0.
|
|
77
|
+
- [Full Changelog](https://github.com/klaushofrichter/een-api-toolkit/compare/v0.2.0...v0.2.1)
|
|
59
78
|
|
|
60
79
|
---
|
|
61
|
-
*Released: 2026-01-
|
|
80
|
+
*Released: 2026-01-03 11:40:40 CST*
|
package/README.md
CHANGED
|
@@ -241,6 +241,7 @@ npm run test:e2e:ui
|
|
|
241
241
|
|
|
242
242
|
- [EEN Developer Portal](https://developer.eagleeyenetworks.com/)
|
|
243
243
|
- [EEN API v3.0 Documentation](https://developer.eagleeyenetworks.com/reference/using-the-api)
|
|
244
|
+
- [EEN OAuth Application Management](https://developer.eagleeyenetworks.com/page/my-application)
|
|
244
245
|
- [een-oauth-proxy](https://github.com/klaushofrichter/een-oauth-proxy) - OAuth proxy server
|
|
245
246
|
|
|
246
247
|
## License
|
package/docs/AI-CONTEXT.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# EEN API Toolkit - AI Reference
|
|
2
2
|
|
|
3
|
-
> **Version:** 0.2.
|
|
3
|
+
> **Version:** 0.2.1
|
|
4
4
|
>
|
|
5
5
|
> This file is optimized for AI assistants. It contains all API signatures,
|
|
6
6
|
> types, and usage patterns in a single, parseable document.
|
|
@@ -8,6 +8,11 @@
|
|
|
8
8
|
> For the full EEN API documentation, see the
|
|
9
9
|
> [Eagle Eye Networks Developer Portal](https://developer.eagleeyenetworks.com).
|
|
10
10
|
|
|
11
|
+
> **Working Examples:** The installed package includes complete Vue 3 example applications
|
|
12
|
+
> at `./node_modules/een-api-toolkit/examples/`. These demonstrate OAuth authentication,
|
|
13
|
+
> user management, camera listing, live/recorded media, and video feeds. For Live Main
|
|
14
|
+
> Video streaming, see `./node_modules/een-api-toolkit/examples/vue-feeds/src/views/Feeds.vue`.
|
|
15
|
+
|
|
11
16
|
---
|
|
12
17
|
|
|
13
18
|
## Prerequisites & Installation (READ FIRST)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { test, expect, Page } from '@playwright/test'
|
|
2
|
+
import { baseURL } from '../playwright.config'
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* E2E tests for the Vue Users Example
|
|
@@ -84,8 +85,9 @@ async function performLogin(page: Page, username: string, password: string): Pro
|
|
|
84
85
|
// Click sign in - use OR selector for robustness
|
|
85
86
|
await page.locator('#next, button:has-text("Sign in")').first().click()
|
|
86
87
|
|
|
87
|
-
// Wait for
|
|
88
|
-
|
|
88
|
+
// Wait for redirect back to the app using configured baseURL
|
|
89
|
+
const baseURLPattern = new RegExp(baseURL.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))
|
|
90
|
+
await page.waitForURL(baseURLPattern, { timeout: TIMEOUTS.AUTH_COMPLETE })
|
|
89
91
|
}
|
|
90
92
|
|
|
91
93
|
/**
|
|
@@ -217,8 +219,9 @@ test.describe('Vue Users Example', () => {
|
|
|
217
219
|
// Click logout
|
|
218
220
|
await page.click('[data-testid="nav-logout"]')
|
|
219
221
|
|
|
220
|
-
// Should show not authenticated
|
|
221
|
-
|
|
222
|
+
// Should show not authenticated - wait for redirect to app baseURL
|
|
223
|
+
const baseURLPattern = new RegExp(baseURL.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))
|
|
224
|
+
await page.waitForURL(baseURLPattern)
|
|
222
225
|
await expect(page.locator('[data-testid="not-authenticated"]')).toBeVisible({ timeout: TIMEOUTS.UI_UPDATE })
|
|
223
226
|
await expect(page.locator('[data-testid="nav-login"]')).toBeVisible()
|
|
224
227
|
})
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "een-api-toolkit-example",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.18",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "een-api-toolkit-example",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.18",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"een-api-toolkit": "file:../..",
|
|
12
12
|
"pinia": "^3.0.4",
|
|
@@ -14,7 +14,7 @@ const redirectUri = process.env.VITE_REDIRECT_URI || 'http://127.0.0.1:3333'
|
|
|
14
14
|
if (!redirectUri.startsWith('http://127.0.0.1:') && !redirectUri.startsWith('http://localhost:')) {
|
|
15
15
|
throw new Error('VITE_REDIRECT_URI must use localhost or 127.0.0.1 for security')
|
|
16
16
|
}
|
|
17
|
-
const baseURL = redirectUri
|
|
17
|
+
export const baseURL = redirectUri
|
|
18
18
|
|
|
19
19
|
export default defineConfig({
|
|
20
20
|
testDir: './e2e',
|