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 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.0] - 2026-01-02
5
+ ## [0.2.1] - 2026-01-03
6
6
 
7
7
  ### Release Summary
8
8
 
9
- #### PR #39: Release v0.1.13: Documentation updates and example improvements
9
+ #### PR #41: Release v0.2.0 - Dependency updates, E2E fixes, and documentation
10
10
  ## Summary
11
11
 
12
- This release includes documentation improvements and developer experience enhancements:
12
+ Release version 0.2.0 with major dependency updates, E2E test improvements, and documentation enhancements.
13
13
 
14
- - **Example README files**: Added comprehensive README.md files with screenshots for all 5 example applications (vue-bridges, vue-cameras, vue-feeds, vue-media, vue-users)
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
- ## Commits included
16
+ - **Pinia 3.0 Required**: Peer dependency changed from `^2.0.0 || ^3.0.0` to `^3.0.0`
19
17
 
20
- - 9050e88 docs: Update README.md to reference all example apps
21
- - 105051e docs: Fix vue-users README to use functions instead of composables
22
- - 8d11c7a chore: Replace npx kill-port with faster native lsof command
23
- - 741ca61 docs: Add README files and screenshots to example applications
24
- - f4aa78b Merge pull request #38 from klaushofrichter/develop
25
- - 6f3b0bf fix: Address code review feedback from PR #38
26
- - 0432d7a feat: Add Media Session API and live video streaming to vue-feeds
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 expected warning for unused vars in test files)
51
+ - ✅ Lint: Passed (1 warning)
31
52
  - ✅ Unit tests: 164 passed
32
- - ✅ Build: Succeeded
53
+ - ✅ Build: Successful
54
+ - ✅ E2E tests: 67 passed across 5 examples
33
55
 
34
56
  ## Version
35
57
 
36
- **0.1.13**
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: Address remaining code review recommendations
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
- - chore: Bump version to 0.2.0 and add CHANGELOG
50
- - chore: Update dependencies and fix E2E tests
51
- - docs: Update README.md to reference all example apps
52
- - docs: Fix vue-users README to use functions instead of composables
53
- - chore: Replace npx kill-port with faster native lsof command
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.1.13...v0.2.0)
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-02 09:30:09 CST*
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
@@ -1,6 +1,6 @@
1
1
  # EEN API Toolkit - AI Reference
2
2
 
3
- > **Version:** 0.2.0
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 auth to complete and redirect to app
88
- await page.waitForURL('**/', { timeout: TIMEOUTS.AUTH_COMPLETE })
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
- await page.waitForURL('**/')
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.17",
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.17",
9
+ "version": "0.0.18",
10
10
  "dependencies": {
11
11
  "een-api-toolkit": "file:../..",
12
12
  "pinia": "^3.0.4",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "een-api-toolkit-example",
3
- "version": "0.0.17",
3
+ "version": "0.0.18",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "scripts": {
@@ -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',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "een-api-toolkit",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "EEN Video platform API v3.0 library for Vue 3",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",