Compare commits
97 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| dee648b3bc | |||
| f4ed32cee4 | |||
| e9c72952ab | |||
| 1bd485c43e | |||
| 421a0390ba | |||
| c7f87a7c22 | |||
| 390d5c648f | |||
| ec651c1cdb | |||
| 6f82c393e7 | |||
| afdb48367b | |||
| 53526ca3ba | |||
| 07e8f4489b | |||
| 14101a09d3 | |||
| 5344d53806 | |||
| 971535926c | |||
| c13a4ae4be | |||
| e7a03c48ae | |||
| a682329a3f | |||
| c4580f9874 | |||
| b331065b8c | |||
| 4675ca3e89 | |||
| 70e2c8e17d | |||
| db53d87cc5 | |||
| ff6244d3d1 | |||
| f0aafe9027 | |||
| 487f2acac8 | |||
| 0a5e35c58e | |||
| 34c0cab5dc | |||
| 3a666e9300 | |||
| cbe1b5d37d | |||
| 30f2044d9f | |||
| 593b000ca3 | |||
| 60c298c396 | |||
| d7f1c16454 | |||
| 4290d4be86 | |||
| bc34cb5eab | |||
| eda12f3ce3 | |||
| 65f19aac72 | |||
| 29a992a695 | |||
| dbb2166a8f | |||
| 22691329a5 | |||
| e098e1a2ad | |||
| 16d64ec988 | |||
| cb1332ff76 | |||
| 3e52060788 | |||
| f041891a3f | |||
| f902c2c1db | |||
| e1a9e1f997 | |||
| d7b39a3017 | |||
| 0f41b0d8c7 | |||
| 2d33c037ba | |||
| dca7b37eb8 | |||
| b56598ba00 | |||
| bbf550b183 | |||
| f4fc5eb1fd | |||
| d9e88cf5f9 | |||
| eccb9706f2 | |||
| 285e681413 | |||
| 4f3958d94d | |||
| d19f22255d | |||
| 87ec55619a | |||
| b91dab0f85 | |||
| df573d498e | |||
| da2b838019 | |||
| 107adeee1d | |||
| 45f933b473 | |||
| ad16bc44f1 | |||
| 96d5b7e01a | |||
| 93ffcf86b3 | |||
| de98b070db | |||
| d3d2bde440 | |||
| 0840b2b571 | |||
| fa2e784eaa | |||
| 64f2854023 | |||
| 03e3261755 | |||
| c724e68b8c | |||
| f8f66d1392 | |||
| c66bdc9f88 | |||
| 8d57547ace | |||
| 54eaf23298 | |||
| 7148306381 | |||
| d3aefef78d | |||
| ecd0cc0066 | |||
| eac490297a | |||
| de65641f6f | |||
| ffddc1a5f5 | |||
| 26152e0520 | |||
| f79ad07a57 | |||
| 76d5b9bf7c | |||
| 670b67eecf | |||
| 174af5cf86 | |||
| a1f5e45e94 | |||
| d06165bd0c | |||
| 8f3c6fdf23 | |||
| 106ef2919e | |||
| 3d7fd233cf | |||
| 34d40f7370 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -21,3 +21,4 @@ dist_*/
|
||||
**/.claude/settings.local.json
|
||||
.nogit/data/
|
||||
readme.plan.md
|
||||
.playwright-mcp/
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
[ 74ms] TypeError: Cannot read properties of null (reading 'appendChild')
|
||||
at TypedserverStatusPill.show (http://localhost:3000/typedserver/devtools:17607:21)
|
||||
at TypedserverStatusPill.updateStatus (http://localhost:3000/typedserver/devtools:17567:10)
|
||||
at ReloadChecker.checkReload (http://localhost:3000/typedserver/devtools:18137:23)
|
||||
at async ReloadChecker.start (http://localhost:3000/typedserver/devtools:18224:9)
|
||||
[ 587ms] [ERROR] method: >>getMergedRoutes<< got an ERROR: "unauthorized" with data undefined @ http://localhost:3000/bundle.js:13
|
||||
[ 697ms] [ERROR] Error while trying to use the following icon from the Manifest: http://localhost:3000/assetbroker/manifest/icon-144x144.png (Download error or resource isn't a valid image) @ http://localhost:3000/routes:0
|
||||
@@ -1,12 +0,0 @@
|
||||
[ 669ms] [WARNING] Lit is in dev mode. Not recommended for production! See https://lit.dev/msg/dev-mode for more information. @ http://localhost:3000/chunk-3L5NJTXF.js:13541
|
||||
[ 729ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://localhost:3000/favicon.ico:0
|
||||
[ 27973ms] [ERROR] WebSocket connection to 'ws://localhost:3000/ws/reload' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED @ http://localhost:3000/main.js:115
|
||||
[ 27973ms] [ERROR] [ReloadService] WebSocket error: Event @ http://localhost:3000/main.js:141
|
||||
[ 29975ms] [ERROR] WebSocket connection to 'ws://localhost:3000/ws/reload' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED @ http://localhost:3000/main.js:115
|
||||
[ 29975ms] [ERROR] [ReloadService] WebSocket error: Event @ http://localhost:3000/main.js:141
|
||||
[ 33977ms] [ERROR] WebSocket connection to 'ws://localhost:3000/ws/reload' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED @ http://localhost:3000/main.js:115
|
||||
[ 33978ms] [ERROR] [ReloadService] WebSocket error: Event @ http://localhost:3000/main.js:141
|
||||
[ 41980ms] [ERROR] WebSocket connection to 'ws://localhost:3000/ws/reload' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED @ http://localhost:3000/main.js:115
|
||||
[ 41980ms] [ERROR] [ReloadService] WebSocket error: Event @ http://localhost:3000/main.js:141
|
||||
[ 51983ms] [ERROR] WebSocket connection to 'ws://localhost:3000/ws/reload' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED @ http://localhost:3000/main.js:115
|
||||
[ 51983ms] [ERROR] [ReloadService] WebSocket error: Event @ http://localhost:3000/main.js:141
|
||||
@@ -1,6 +0,0 @@
|
||||
[ 55ms] TypeError: Cannot read properties of null (reading 'appendChild')
|
||||
at TypedserverStatusPill.show (http://localhost:3000/typedserver/devtools:17607:21)
|
||||
at TypedserverStatusPill.updateStatus (http://localhost:3000/typedserver/devtools:17567:10)
|
||||
at ReloadChecker.checkReload (http://localhost:3000/typedserver/devtools:18137:23)
|
||||
at async ReloadChecker.start (http://localhost:3000/typedserver/devtools:18224:9)
|
||||
[ 791ms] [ERROR] Error while trying to use the following icon from the Manifest: http://localhost:3000/assetbroker/manifest/icon-144x144.png (Download error or resource isn't a valid image) @ http://localhost:3000/overview:0
|
||||
@@ -1,50 +0,0 @@
|
||||
[ 272ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for Refresh-cw
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078)
|
||||
at async N._$EP (http://localhost:3000/bundle.js:1:9024) @ http://localhost:3000/bundle.js:1203
|
||||
[ 272ms] [WARNING] Lucide icon 'Refresh-cw' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 274ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for Pause-circle
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078)
|
||||
at async N._$EP (http://localhost:3000/bundle.js:1:9024) @ http://localhost:3000/bundle.js:1203
|
||||
[ 274ms] [WARNING] Lucide icon 'Pause-circle' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 275ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for Refresh-cw
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 275ms] [WARNING] Lucide icon 'Refresh-cw' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 276ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for Refresh-cw
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078)
|
||||
at async N._$EP (http://localhost:3000/bundle.js:1:9024) @ http://localhost:3000/bundle.js:1203
|
||||
[ 276ms] [WARNING] Lucide icon 'Refresh-cw' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 276ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for Refresh-cw
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 276ms] [WARNING] Lucide icon 'Refresh-cw' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 297ms] [ERROR] method: >>getMergedRoutes<< got an ERROR: "unauthorized" with data undefined @ http://localhost:3000/bundle.js:13
|
||||
[ 377ms] [ERROR] Error while trying to use the following icon from the Manifest: http://localhost:3000/assetbroker/manifest/icon-144x144.png (Download error or resource isn't a valid image) @ http://localhost:3000/routes:0
|
||||
[ 78064ms] [ERROR] method: >>getMergedRoutes<< got an ERROR: "unauthorized" with data undefined @ http://localhost:3000/bundle.js:13
|
||||
[ 78237ms] [ERROR] Error while trying to use the following icon from the Manifest: http://localhost:3000/assetbroker/manifest/icon-144x144.png (Download error or resource isn't a valid image) @ http://localhost:3000/routes:0
|
||||
[ 127969ms] [ERROR] WebSocket connection to 'ws://localhost:3000/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED @ http://localhost:3000/typedserver/devtools:16227
|
||||
[ 127969ms] [ERROR] TypedSocket WebSocket error: Event @ http://localhost:3000/typedserver/devtools:16251
|
||||
[ 129695ms] [ERROR] WebSocket connection to 'ws://localhost:3000/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED @ http://localhost:3000/typedserver/devtools:16227
|
||||
[ 129695ms] [ERROR] TypedSocket WebSocket error: Event @ http://localhost:3000/typedserver/devtools:16251
|
||||
[ 133309ms] [ERROR] WebSocket connection to 'ws://localhost:3000/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED @ http://localhost:3000/typedserver/devtools:16227
|
||||
[ 133309ms] [ERROR] TypedSocket WebSocket error: Event @ http://localhost:3000/typedserver/devtools:16251
|
||||
[ 141762ms] [ERROR] method: >>getMergedRoutes<< got an ERROR: "unauthorized" with data undefined @ http://localhost:3000/bundle.js:13
|
||||
[ 141910ms] [ERROR] Error while trying to use the following icon from the Manifest: http://localhost:3000/assetbroker/manifest/icon-144x144.png (Download error or resource isn't a valid image) @ http://localhost:3000/routes:0
|
||||
@@ -1,23 +0,0 @@
|
||||
[ 437ms] [ERROR] Error while trying to use the following icon from the Manifest: http://localhost:3000/assetbroker/manifest/icon-144x144.png (Download error or resource isn't a valid image) @ http://localhost:3000/overview:0
|
||||
[ 38948ms] [WARNING] FontAwesome icon not found: circle-check @ http://localhost:3000/bundle.js:1203
|
||||
[ 52895ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 52896ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 52896ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 52897ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 99401ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 99401ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
@@ -1,31 +0,0 @@
|
||||
[ 75ms] TypeError: Cannot read properties of null (reading 'appendChild')
|
||||
at TypedserverStatusPill.show (http://localhost:3000/typedserver/devtools:17607:21)
|
||||
at TypedserverStatusPill.updateStatus (http://localhost:3000/typedserver/devtools:17567:10)
|
||||
at ReloadChecker.checkReload (http://localhost:3000/typedserver/devtools:18137:23)
|
||||
at async ReloadChecker.start (http://localhost:3000/typedserver/devtools:18224:9)
|
||||
[ 763ms] [ERROR] Error while trying to use the following icon from the Manifest: http://localhost:3000/assetbroker/manifest/icon-144x144.png (Download error or resource isn't a valid image) @ http://localhost:3000/overview:0
|
||||
[ 22315ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 22315ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 22316ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 22316ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 22321ms] [ERROR] method: >>listApiTokens<< got an ERROR: "admin access required" with data undefined @ http://localhost:3000/bundle.js:13
|
||||
[ 22322ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 22322ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 22322ms] [ERROR] method: >>listApiTokens<< got an ERROR: "admin access required" with data undefined @ http://localhost:3000/bundle.js:13
|
||||
[ 65371ms] [ERROR] method: >>createApiToken<< got an ERROR: "admin access required" with data undefined @ http://localhost:3000/bundle.js:13
|
||||
[ 65371ms] [ERROR] Failed to create token: zs @ http://localhost:3000/bundle.js:38142
|
||||
@@ -1,25 +0,0 @@
|
||||
[ 642ms] [ERROR] Error while trying to use the following icon from the Manifest: http://localhost:3000/assetbroker/manifest/icon-144x144.png (Download error or resource isn't a valid image) @ http://localhost:3000/overview:0
|
||||
[ 114916ms] [ERROR] Error while trying to use the following icon from the Manifest: http://localhost:3000/assetbroker/manifest/icon-144x144.png (Download error or resource isn't a valid image) @ http://localhost:3000/overview:0
|
||||
[ 179731ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 179731ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 179731ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 179732ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 179737ms] [ERROR] method: >>listApiTokens<< got an ERROR: "admin access required" with data undefined @ http://localhost:3000/bundle.js:13
|
||||
[ 179738ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 179738ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 179738ms] [ERROR] method: >>listApiTokens<< got an ERROR: "admin access required" with data undefined @ http://localhost:3000/bundle.js:13
|
||||
@@ -1 +0,0 @@
|
||||
[ 603ms] [ERROR] Error while trying to use the following icon from the Manifest: http://localhost:3000/assetbroker/manifest/icon-144x144.png (Download error or resource isn't a valid image) @ http://localhost:3000/overview:0
|
||||
@@ -1,24 +0,0 @@
|
||||
[ 308ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 309ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 309ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 310ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 349ms] [ERROR] method: >>listApiTokens<< got an ERROR: "admin access required" with data undefined @ http://localhost:3000/bundle.js:13
|
||||
[ 350ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 350ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 351ms] [ERROR] method: >>listApiTokens<< got an ERROR: "admin access required" with data undefined @ http://localhost:3000/bundle.js:13
|
||||
[ 500ms] [ERROR] Error while trying to use the following icon from the Manifest: http://localhost:3000/assetbroker/manifest/icon-144x144.png (Download error or resource isn't a valid image) @ http://localhost:3000/apitokens:0
|
||||
@@ -1,30 +0,0 @@
|
||||
[ 427ms] [ERROR] Error while trying to use the following icon from the Manifest: http://localhost:3000/assetbroker/manifest/icon-144x144.png (Download error or resource isn't a valid image) @ http://localhost:3000/overview:0
|
||||
[ 44124ms] [WARNING] FontAwesome icon not found: circle-check @ http://localhost:3000/bundle.js:1203
|
||||
[ 59106ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 59106ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 59107ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 59107ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 59116ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 59116ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
[ 89192ms] [ERROR] Error rendering Lucide icon: Error: Could not create element for MagnifyingGlass
|
||||
at N.updated (http://localhost:3000/bundle.js:1204:736)
|
||||
at N._$AE (http://localhost:3000/bundle.js:1:9837)
|
||||
at N.performUpdate (http://localhost:3000/bundle.js:1:9701)
|
||||
at N.scheduleUpdate (http://localhost:3000/bundle.js:1:9170)
|
||||
at N._$EP (http://localhost:3000/bundle.js:1:9078) @ http://localhost:3000/bundle.js:1203
|
||||
[ 89192ms] [WARNING] Lucide icon 'MagnifyingGlass' not found in lucideIcons object @ http://localhost:3000/bundle.js:1174
|
||||
@@ -1,6 +0,0 @@
|
||||
[ 95ms] TypeError: Cannot read properties of null (reading 'appendChild')
|
||||
at TypedserverStatusPill.show (http://localhost:3000/typedserver/devtools:17607:21)
|
||||
at TypedserverStatusPill.updateStatus (http://localhost:3000/typedserver/devtools:17567:10)
|
||||
at ReloadChecker.checkReload (http://localhost:3000/typedserver/devtools:18137:23)
|
||||
at async ReloadChecker.start (http://localhost:3000/typedserver/devtools:18224:9)
|
||||
[ 992ms] [ERROR] Error while trying to use the following icon from the Manifest: http://localhost:3000/assetbroker/manifest/icon-144x144.png (Download error or resource isn't a valid image) @ http://localhost:3000/overview:0
|
||||
@@ -1,5 +0,0 @@
|
||||
[ 329ms] [ERROR] method: >>getMergedRoutes<< got an ERROR: "unauthorized" with data undefined @ http://localhost:3000/bundle.js:13
|
||||
[ 727ms] [ERROR] Error while trying to use the following icon from the Manifest: http://localhost:3000/assetbroker/manifest/icon-144x144.png (Download error or resource isn't a valid image) @ http://localhost:3000/routes:0
|
||||
[ 260513ms] [ERROR] method: >>adminLoginWithUsernameAndPassword<< got an ERROR: "login failed" with data undefined @ http://localhost:3000/bundle.js:13
|
||||
[ 260514ms] [ERROR] Login failed: Ns @ http://localhost:3000/bundle.js:38066
|
||||
[ 260518ms] [WARNING] FontAwesome icon not found: circle-xmark @ http://localhost:3000/bundle.js:1203
|
||||
@@ -1,3 +0,0 @@
|
||||
[ 397ms] [ERROR] method: >>getMergedRoutes<< got an ERROR: "unauthorized" with data undefined @ http://localhost:3000/bundle.js:13
|
||||
[ 657ms] [ERROR] Error while trying to use the following icon from the Manifest: http://localhost:3000/assetbroker/manifest/icon-144x144.png (Download error or resource isn't a valid image) @ http://localhost:3000/routes:0
|
||||
[ 24180ms] [WARNING] FontAwesome icon not found: circle-check @ http://localhost:3000/bundle.js:1203
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 44 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 38 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 38 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB |
286
changelog.md
286
changelog.md
@@ -1,5 +1,291 @@
|
||||
# Changelog
|
||||
|
||||
## 2026-03-05 - 11.0.49 - fix(dcrouter)
|
||||
no changes detected
|
||||
|
||||
- No files changed in this commit
|
||||
- Working tree unchanged; no version bump required
|
||||
|
||||
## 2026-03-05 - 11.0.48 - fix(deps)
|
||||
bump @git.zone/tsbuild to ^4.2.3
|
||||
|
||||
- package.json: updated devDependency @git.zone/tsbuild from ^4.2.2 to ^4.2.3
|
||||
|
||||
## 2026-03-05 - 11.0.47 - fix(dcrouter)
|
||||
no code changes; nothing to release
|
||||
|
||||
- No files changed in this commit (git diff is empty)
|
||||
- No version bump required
|
||||
|
||||
## 2026-03-05 - 11.0.46 - fix(none)
|
||||
no changes detected
|
||||
|
||||
- Git diff reported no changes
|
||||
- No files were modified; no version bump required
|
||||
|
||||
## 2026-03-05 - 11.0.45 - fix(deps)
|
||||
bump @git.zone/tsbuild to ^4.2.2
|
||||
|
||||
- Updated @git.zone/tsbuild from ^4.2.1 to ^4.2.2 in package.json
|
||||
|
||||
## 2026-03-05 - 11.0.44 - fix(dev-deps)
|
||||
bump @git.zone/tsbuild devDependency to ^4.2.1
|
||||
|
||||
- Updated package.json devDependency @git.zone/tsbuild from ^4.2.0 to ^4.2.1
|
||||
- Non-breaking patch update for build tool dependency
|
||||
|
||||
## 2026-03-05 - 11.0.43 - fix(dcrouter)
|
||||
no changes detected; nothing to release
|
||||
|
||||
- Git diff reported no changes
|
||||
- No files were modified, so no version bump is recommended
|
||||
|
||||
## 2026-03-05 - 11.0.42 - fix(dcrouter)
|
||||
empty commit — no changes
|
||||
|
||||
- No files were modified in this commit
|
||||
- No version bump required
|
||||
|
||||
## 2026-03-05 - 11.0.41 - fix(deps)
|
||||
bump devDependency @git.zone/tsbuild to ^4.2.0
|
||||
|
||||
- Updated @git.zone/tsbuild from ^4.1.26 to ^4.2.0
|
||||
- Change made in package.json under devDependencies
|
||||
- No source code changes — dev tooling dependency bump
|
||||
|
||||
## 2026-03-05 - 11.0.40 - fix(deps)
|
||||
bump @git.zone/tsbuild devDependency to ^4.1.26
|
||||
|
||||
- Updated devDependency @git.zone/tsbuild: ^4.1.25 → ^4.1.26 in package.json
|
||||
- Build tooling/dev dependency bump only; no runtime or API changes
|
||||
|
||||
## 2026-03-05 - 11.0.39 - fix(devDependencies)
|
||||
bump @git.zone/tsbuild devDependency to ^4.1.25
|
||||
|
||||
- Updated devDependency @git.zone/tsbuild from ^4.1.24 to ^4.1.25 in package.json
|
||||
- Only a devDependency was changed; no runtime dependencies or source files modified
|
||||
- Current package version is 11.0.38; recommend a patch release
|
||||
|
||||
## 2026-03-05 - 11.0.38 - fix(deps)
|
||||
bump @git.zone/tsbuild to ^4.1.24
|
||||
|
||||
- Updated @git.zone/tsbuild in devDependencies from ^4.1.23 to ^4.1.24
|
||||
- Dev tooling dependency bump; no runtime or API changes expected
|
||||
|
||||
## 2026-03-05 - 11.0.37 - fix(dcrouter)
|
||||
bump patch version (no changes detected)
|
||||
|
||||
- No files changed in the provided diff
|
||||
- Current package version is 11.0.36 (package.json)
|
||||
- Recommend a patch bump to record a new release if desired
|
||||
|
||||
## 2026-03-05 - 11.0.36 - fix(repo)
|
||||
no changes detected; no release necessary
|
||||
|
||||
- Diff contains no changes
|
||||
- No files were modified — skip version bump
|
||||
|
||||
## 2026-03-05 - 11.0.35 - fix(dev-deps)
|
||||
bump @git.zone/tsbuild devDependency to ^4.1.23
|
||||
|
||||
- Updated devDependency @git.zone/tsbuild from ^4.1.22 to ^4.1.23 in package.json
|
||||
|
||||
## 2026-03-05 - 11.0.34 - fix(dcrouter)
|
||||
empty diff — no changes detected; no version bump suggested
|
||||
|
||||
- No file changes in the provided git diff
|
||||
- Current package.json version is 11.0.33 — keep unchanged
|
||||
|
||||
## 2026-03-05 - 11.0.33 - fix(build)
|
||||
bump @git.zone/tsbuild to ^4.1.22
|
||||
|
||||
- Updated devDependency @git.zone/tsbuild from ^4.1.21 to ^4.1.22
|
||||
- Change affects build tooling only (devDependencies) — no runtime or API changes expected
|
||||
|
||||
## 2026-03-05 - 11.0.32 - fix(dev-deps)
|
||||
bump @git.zone/tsbuild devDependency to ^4.1.21
|
||||
|
||||
- Updated package.json devDependency @git.zone/tsbuild from ^4.1.20 to ^4.1.21
|
||||
- Change affects development tooling only (no runtime/source changes)
|
||||
- Bump package patch version from 11.0.31 to 11.0.32 recommended
|
||||
|
||||
## 2026-03-05 - 11.0.31 - fix(deps)
|
||||
bump @git.zone/tsbuild devDependency to ^4.1.20
|
||||
|
||||
- Updated devDependency @git.zone/tsbuild from ^4.1.19 to ^4.1.20
|
||||
|
||||
## 2026-03-05 - 11.0.30 - fix(devDependencies)
|
||||
bump @git.zone/tsbuild devDependency to ^4.1.19
|
||||
|
||||
- Updated @git.zone/tsbuild from ^4.1.18 to ^4.1.19 in package.json
|
||||
- Change is limited to devDependencies (build toolchain) and should not affect runtime behavior
|
||||
|
||||
## 2026-03-05 - 11.0.29 - fix(build)
|
||||
bump @git.zone/tsbuild devDependency to ^4.1.18
|
||||
|
||||
- Updated @git.zone/tsbuild from ^4.1.17 to ^4.1.18
|
||||
- Change is a devDependency update only; no runtime behavior expected to change
|
||||
- Recommend patch version bump
|
||||
|
||||
## 2026-03-05 - 11.0.28 - fix(devDependencies)
|
||||
bump @git.zone/tsbuild devDependency to ^4.1.17
|
||||
|
||||
- package.json: updated @git.zone/tsbuild from ^4.1.16 to ^4.1.17 (devDependency)
|
||||
|
||||
## 2026-03-05 - 11.0.27 - fix(deps)
|
||||
bump @git.zone/tsbuild to ^4.1.16
|
||||
|
||||
- Updated devDependency @git.zone/tsbuild from ^4.1.15 to ^4.1.16 in package.json
|
||||
- No runtime code or dependency changes; only a dev/build tool bump
|
||||
|
||||
## 2026-03-05 - 11.0.26 - fix(devDependencies)
|
||||
bump @git.zone/tsbuild devDependency to ^4.1.15
|
||||
|
||||
- Updated devDependency @git.zone/tsbuild from ^4.1.14 to ^4.1.15 in package.json
|
||||
- No runtime changes; development tooling update only
|
||||
|
||||
## 2026-03-05 - 11.0.25 - fix(logger)
|
||||
remove build verification comment from logger export
|
||||
|
||||
- Removed parenthetical '(build verification)' from export comment in ts/logger.ts
|
||||
- No functional changes — this is a comment-only cleanup
|
||||
|
||||
## 2026-03-05 - 11.0.24 - fix(dcrouter)
|
||||
no changes detected — no release necessary
|
||||
|
||||
- No files changed in the provided diff; no code, docs, or dependency updates to release.
|
||||
|
||||
## 2026-03-05 - 11.0.23 - fix(deps)
|
||||
bump @git.zone/tsbuild devDependency to ^4.1.14
|
||||
|
||||
- Updated devDependency @git.zone/tsbuild from ^4.1.13 to ^4.1.14 in package.json
|
||||
- Change affects build tooling only (devDependencies); no production code changes
|
||||
|
||||
## 2026-03-05 - 11.0.22 - fix(deps)
|
||||
bump @git.zone/tsbuild devDependency to ^4.1.13
|
||||
|
||||
- Updated @git.zone/tsbuild from ^4.1.9 to ^4.1.13 in devDependencies
|
||||
- No runtime code changes; build/dev dependency update only
|
||||
|
||||
## 2026-03-05 - 11.0.21 - fix()
|
||||
no changes detected
|
||||
|
||||
- No files changed in this diff; no release required.
|
||||
|
||||
## 2026-03-05 - 11.0.20 - fix(logger)
|
||||
annotate singleton logger export comment for build verification
|
||||
|
||||
- Changed comment in ts/logger.ts to add '(build verification)'
|
||||
- No functional code changes; only a comment update
|
||||
- Intended to mark the export for build verification purposes
|
||||
|
||||
## 2026-03-05 - 11.0.19 - fix(dcrouter)
|
||||
no changes
|
||||
|
||||
- No files changed in this commit.
|
||||
- Package version remains 11.0.18.
|
||||
|
||||
## 2026-03-05 - 11.0.18 - fix(dcrouter)
|
||||
no changes detected; no version bump required
|
||||
|
||||
- Git diff contains no changes — nothing to release
|
||||
|
||||
## 2026-03-05 - 11.0.17 - fix(dcrouter)
|
||||
no changes detected in diff; no code or documentation updates
|
||||
|
||||
- No files changed in this diff
|
||||
- No code, tests, or documentation modified; no release required
|
||||
|
||||
## 2026-03-05 - 11.0.16 - fix(dcrouter)
|
||||
noop commit: no changes detected
|
||||
|
||||
- No files changed in this diff.
|
||||
- No code or configuration modifications detected.
|
||||
|
||||
## 2026-03-05 - 11.0.15 - fix()
|
||||
no changes detected; no version bump necessary
|
||||
|
||||
- Diff contains no changes; no files were modified
|
||||
|
||||
## 2026-03-05 - 11.0.14 - fix(dcrouter)
|
||||
no changes detected
|
||||
|
||||
- Provided git diff contains no changes; nothing to release or bump
|
||||
- Create a commit only if an empty/placeholder commit is intentionally required
|
||||
|
||||
## 2026-03-05 - 11.0.13 - fix()
|
||||
no code changes
|
||||
|
||||
- No files were changed in this commit.
|
||||
|
||||
## 2026-03-05 - 11.0.12 - fix(dcrouter)
|
||||
no changes detected — nothing to commit
|
||||
|
||||
- Diff reported: No changes
|
||||
- No files were modified or staged; no functional or documentation changes to release
|
||||
|
||||
## 2026-03-05 - 11.0.11 - fix(deps)
|
||||
bump @git.zone/tsbuild devDependency to ^4.1.9
|
||||
|
||||
- Updated @git.zone/tsbuild from ^4.1.4 to ^4.1.9 in package.json
|
||||
|
||||
## 2026-03-05 - 11.0.10 - fix(playwright-mcp)
|
||||
remove committed Playwright artifacts and add .playwright-mcp/ to .gitignore
|
||||
|
||||
- Added .playwright-mcp/ to .gitignore to avoid committing transient Playwright outputs
|
||||
- Removed many Playwright-generated logs, screenshots and console dumps under .playwright-mcp/ to reduce repository noise/size
|
||||
- Prevents accidental check-in of large test artifacts generated by Playwright runs
|
||||
|
||||
## 2026-03-05 - 11.0.9 - fix(devDependencies)
|
||||
bump @git.zone/tsbuild devDependency to ^4.1.4
|
||||
|
||||
- package.json: Updated @git.zone/tsbuild from ^4.1.3 to ^4.1.4
|
||||
|
||||
## 2026-03-05 - 11.0.8 - fix()
|
||||
no changes detected
|
||||
|
||||
- No files changed in this commit
|
||||
- No version bump recommended
|
||||
|
||||
## 2026-03-05 - 11.0.7 - fix(deps)
|
||||
bump @git.zone/tsbuild to ^4.1.3 and @push.rocks/lik to ^6.3.1
|
||||
|
||||
- Updated devDependency @git.zone/tsbuild from ^4.1.2 to ^4.1.3 in package.json
|
||||
- Updated dependency @push.rocks/lik from ^6.2.2 to ^6.3.1 in package.json
|
||||
- Changes are non-breaking dependency bumps; no source code changes
|
||||
|
||||
## 2026-03-04 - 11.0.5 - fix(none)
|
||||
no changes detected; nothing to release
|
||||
|
||||
- Diff contained no changes
|
||||
- No files modified; no version bump required
|
||||
|
||||
## 2026-03-04 - 11.0.4 - fix()
|
||||
no changes
|
||||
|
||||
- No files changed in the provided diff; no release or version bump required.
|
||||
|
||||
## 2026-03-04 - 11.0.3 - fix()
|
||||
no changes detected
|
||||
|
||||
- Diff shows no file changes; no code changes to release.
|
||||
|
||||
## 2026-03-04 - 11.0.2 - fix(dcrouter)
|
||||
no changes detected; no files were modified
|
||||
|
||||
- diff was empty
|
||||
- no source or package changes detected
|
||||
|
||||
## 2026-03-04 - 11.0.1 - fix(auth)
|
||||
treat expired JWTs as no identity, improve logout and token verification flow, and bump deps
|
||||
|
||||
- App: getActionContext now treats expired JWTs as null to avoid using stale identities for requests.
|
||||
- Logout action always clears local login state; server-side adminLogout is attempted only when a valid identity exists.
|
||||
- Dashboard: verify persisted JWT with server (verifyIdentity) on startup; if verification fails, clear state and show login.
|
||||
- Auto-refresh: on combined refresh failure, detect auth-related errors (invalid/unauthorized/401), dispatch logout and reload to force re-login.
|
||||
- Deps: bumped devDependencies @git.zone/tstest (^3.2.0) and @git.zone/tswatch (^3.2.5); added runtime dependency @push.rocks/lik (^6.2.2).
|
||||
- Tests/artifacts: added Playwright console logs and page screenshots (test artifacts) to the commit.
|
||||
|
||||
## 2026-03-03 - 11.0.0 - BREAKING CHANGE(opsserver)
|
||||
Require authentication for OpsServer endpoints, split handlers into authenticated view/admin routers, and make identity required on many TypedRequest interfaces
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@serve.zone/dcrouter",
|
||||
"private": false,
|
||||
"version": "11.0.0",
|
||||
"version": "11.0.49",
|
||||
"description": "A multifaceted routing service handling mail and SMS delivery functions.",
|
||||
"type": "module",
|
||||
"exports": {
|
||||
@@ -19,11 +19,11 @@
|
||||
"watch": "tswatch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@git.zone/tsbuild": "^4.1.2",
|
||||
"@git.zone/tsbuild": "^4.2.3",
|
||||
"@git.zone/tsbundle": "^2.9.0",
|
||||
"@git.zone/tsrun": "^2.0.1",
|
||||
"@git.zone/tstest": "^3.1.8",
|
||||
"@git.zone/tswatch": "^3.2.0",
|
||||
"@git.zone/tstest": "^3.2.0",
|
||||
"@git.zone/tswatch": "^3.2.5",
|
||||
"@types/node": "^25.3.3"
|
||||
},
|
||||
"dependencies": {
|
||||
@@ -34,6 +34,7 @@
|
||||
"@apiclient.xyz/cloudflare": "^7.1.0",
|
||||
"@design.estate/dees-catalog": "^3.43.3",
|
||||
"@design.estate/dees-element": "^2.1.6",
|
||||
"@push.rocks/lik": "^6.3.1",
|
||||
"@push.rocks/projectinfo": "^5.0.2",
|
||||
"@push.rocks/qenv": "^6.1.3",
|
||||
"@push.rocks/smartacme": "^9.1.3",
|
||||
|
||||
2624
pnpm-lock.yaml
generated
2624
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@serve.zone/dcrouter',
|
||||
version: '11.0.0',
|
||||
version: '11.0.49',
|
||||
description: 'A multifaceted routing service handling mail and SMS delivery functions.'
|
||||
}
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@serve.zone/dcrouter',
|
||||
version: '11.0.0',
|
||||
version: '11.0.49',
|
||||
description: 'A multifaceted routing service handling mail and SMS delivery functions.'
|
||||
}
|
||||
|
||||
@@ -238,9 +238,12 @@ interface IActionContext {
|
||||
}
|
||||
|
||||
const getActionContext = (): IActionContext => {
|
||||
return {
|
||||
identity: loginStatePart.getState().identity,
|
||||
};
|
||||
const identity = loginStatePart.getState().identity;
|
||||
// Treat expired JWTs as no identity — prevents stale persisted sessions from firing requests
|
||||
if (identity && identity.expiresAt && identity.expiresAt < Date.now()) {
|
||||
return { identity: null };
|
||||
}
|
||||
return { identity };
|
||||
};
|
||||
|
||||
// Login Action
|
||||
@@ -271,24 +274,23 @@ export const loginAction = loginStatePart.createAction<{
|
||||
}
|
||||
});
|
||||
|
||||
// Logout Action
|
||||
// Logout Action — always clears state, even if identity is expired/missing
|
||||
export const logoutAction = loginStatePart.createAction(async (statePartArg) => {
|
||||
const context = getActionContext();
|
||||
if (!context.identity) return statePartArg.getState();
|
||||
|
||||
const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<
|
||||
interfaces.requests.IReq_AdminLogout
|
||||
>('/typedrequest', 'adminLogout');
|
||||
|
||||
try {
|
||||
await typedRequest.fire({
|
||||
identity: context.identity,
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Logout error:', error);
|
||||
// Try to notify server, but don't block logout if identity is missing/expired
|
||||
if (context.identity) {
|
||||
const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<
|
||||
interfaces.requests.IReq_AdminLogout
|
||||
>('/typedrequest', 'adminLogout');
|
||||
try {
|
||||
await typedRequest.fire({ identity: context.identity });
|
||||
} catch (error) {
|
||||
console.error('Logout error:', error);
|
||||
}
|
||||
}
|
||||
|
||||
// Clear login state regardless
|
||||
// Always clear login state
|
||||
return {
|
||||
identity: null,
|
||||
isLoggedIn: false,
|
||||
@@ -1338,6 +1340,12 @@ async function dispatchCombinedRefreshAction() {
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Combined refresh failed:', error);
|
||||
// If the error looks like an auth failure (invalid JWT), force re-login
|
||||
const errMsg = String(error);
|
||||
if (errMsg.includes('invalid') || errMsg.includes('unauthorized') || errMsg.includes('401')) {
|
||||
await loginStatePart.dispatchAction(logoutAction, null);
|
||||
window.location.reload();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import * as plugins from '../plugins.js';
|
||||
import * as appstate from '../appstate.js';
|
||||
import * as interfaces from '../../dist_ts_interfaces/index.js';
|
||||
import { appRouter } from '../router.js';
|
||||
|
||||
import {
|
||||
@@ -218,13 +219,27 @@ export class OpsDashboard extends DeesElement {
|
||||
// Handle initial state - check if we have a stored session that's still valid
|
||||
const loginState = appstate.loginStatePart.getState();
|
||||
if (loginState.identity?.jwt) {
|
||||
// Verify JWT hasn't expired
|
||||
if (loginState.identity.expiresAt > Date.now()) {
|
||||
// JWT still valid, restore logged-in state
|
||||
this.loginState = loginState;
|
||||
await simpleLogin.switchToSlottedContent();
|
||||
await appstate.statsStatePart.dispatchAction(appstate.fetchAllStatsAction, null);
|
||||
await appstate.configStatePart.dispatchAction(appstate.fetchConfigurationAction, null);
|
||||
// Client-side expiry looks valid — verify with server (keypair may have changed)
|
||||
try {
|
||||
const verifyRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<
|
||||
interfaces.requests.IReq_VerifyIdentity
|
||||
>('/typedrequest', 'verifyIdentity');
|
||||
const response = await verifyRequest.fire({ identity: loginState.identity });
|
||||
if (response.valid) {
|
||||
// JWT confirmed valid by server
|
||||
this.loginState = loginState;
|
||||
await simpleLogin.switchToSlottedContent();
|
||||
await appstate.statsStatePart.dispatchAction(appstate.fetchAllStatsAction, null);
|
||||
await appstate.configStatePart.dispatchAction(appstate.fetchConfigurationAction, null);
|
||||
} else {
|
||||
// Server rejected the JWT — clear state, show login
|
||||
await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);
|
||||
}
|
||||
} catch {
|
||||
// Server unreachable or error — clear state, show login
|
||||
await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);
|
||||
}
|
||||
} else {
|
||||
// JWT expired, clear the stored state
|
||||
await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);
|
||||
|
||||
Reference in New Issue
Block a user