p3x-redis-ui 2026.4.1006 → 2026.4.1007

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/CLAUDE.md CHANGED
@@ -51,7 +51,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
51
51
  ---
52
52
 
53
53
 
54
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1006
54
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
55
55
 
56
56
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
57
57
 
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- # 📡 P3X Redis UI: A highly functional and convenient database GUI that fits in your pocket, accessible on both responsive web and desktop applications v2026.4.1006
9
+ # 📡 P3X Redis UI: A highly functional and convenient database GUI that fits in your pocket, accessible on both responsive web and desktop applications v2026.4.1007
10
10
 
11
11
 
12
12
 
@@ -801,7 +801,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
801
801
  ---
802
802
 
803
803
 
804
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1006
804
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
805
805
 
806
806
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
807
807
 
@@ -126,7 +126,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
126
126
  ---
127
127
 
128
128
 
129
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1006
129
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
130
130
 
131
131
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
132
132
 
@@ -295,7 +295,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
295
295
  ---
296
296
 
297
297
 
298
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1006
298
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
299
299
 
300
300
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
301
301
 
@@ -689,7 +689,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
689
689
  ---
690
690
 
691
691
 
692
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1006
692
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
693
693
 
694
694
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
695
695
 
@@ -338,7 +338,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
338
338
  ---
339
339
 
340
340
 
341
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1006
341
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
342
342
 
343
343
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
344
344
 
@@ -85,7 +85,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
85
85
  ---
86
86
 
87
87
 
88
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1006
88
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
89
89
 
90
90
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
91
91
 
@@ -122,7 +122,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
122
122
  ---
123
123
 
124
124
 
125
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1006
125
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
126
126
 
127
127
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
128
128
 
@@ -466,7 +466,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
466
466
  ---
467
467
 
468
468
 
469
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1006
469
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
470
470
 
471
471
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
472
472
 
@@ -94,7 +94,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
94
94
  ---
95
95
 
96
96
 
97
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1006
97
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
98
98
 
99
99
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
100
100
 
package/change-log.md CHANGED
@@ -5,6 +5,13 @@
5
5
 
6
6
  [//]: #@corifeus-header:end
7
7
 
8
+ ### v2026.4.1006
9
+ Released on 04/15/2026
10
+ * FEATURE: Added network.corifeus.com promo toast for demo site with dynamic hide delay and disclaimer.
11
+ * BUGFIX: Fixed connection readonly mode broken by stale isProOrEnterpriseTier() call.
12
+ * BUGFIX: Added googletagmanager.com to CSP connect-src for analytics across all frameworks.
13
+ * DOCS: Updated README with triple frontend architecture, Vue sections, and ACL management documentation.
14
+
8
15
  ### v2026.4.1005
9
16
  Released on 04/13/2026
10
17
  * FEATURE: ACL UX improvements — auth hint, credential hiding in askAuth dialog, shared connect, and layout alignment.
@@ -751,7 +758,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
751
758
  ---
752
759
 
753
760
 
754
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1006
761
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
755
762
 
756
763
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
757
764
 
package/contributors.md CHANGED
@@ -56,7 +56,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
56
56
  ---
57
57
 
58
58
 
59
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1006
59
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
60
60
 
61
61
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
62
62
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "p3x-redis-ui",
3
- "version": "2026.4.1006",
3
+ "version": "2026.4.1007",
4
4
  "description": "📡 P3X Redis UI: A highly functional and convenient database GUI that fits in your pocket, accessible on both responsive web and desktop applications",
5
5
  "corifeus": {
6
6
  "description-snap": "P3X Redis UI: A highly functional and convenient database GUI that fits in your pocket, accessible on both responsive web and desktop applications",
@@ -72,7 +72,7 @@
72
72
  "axios": "^1.15.0",
73
73
  "copyfiles": "^2.4.1",
74
74
  "corifeus-builder": "^2026.4.139",
75
- "electron": "^41.2.0",
75
+ "electron": "^41.2.1",
76
76
  "electron-builder": "^26.8.1",
77
77
  "node-fetch": "^3.3.2",
78
78
  "playwright": "^1.59.1",
@@ -87,8 +87,8 @@
87
87
  "corifeus-utils": "^2025.4.123",
88
88
  "electron-store": "^11.0.2",
89
89
  "electron-updater": "^6.8.3",
90
- "p3x-redis-ui-material": "^2026.4.440",
91
- "p3x-redis-ui-server": "^2026.4.362"
90
+ "p3x-redis-ui-material": "^2026.4.441",
91
+ "p3x-redis-ui-server": "^2026.4.363"
92
92
  },
93
93
  "build-save": {
94
94
  "mac": {
package/src/app.mjs CHANGED
@@ -114,7 +114,7 @@ const execAsync = async() => {
114
114
  })
115
115
 
116
116
  const { default: createWindow } = await import('./electron/module/create/window.mjs');
117
- const rendererCsp = "default-src 'self'; script-src 'self' https://www.googletagmanager.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://www.googletagmanager.com https://www.google-analytics.com; font-src 'self' data:; connect-src 'self' http://localhost:* http://127.0.0.1:* ws://localhost:* ws://127.0.0.1:* https://www.google-analytics.com https://region1.google-analytics.com https://analytics.google.com; worker-src 'self' blob:; child-src 'self' http://localhost:* http://127.0.0.1:*; object-src 'none'; base-uri 'self'; form-action 'self'";
117
+ const rendererCsp = "default-src 'self'; script-src 'self' https://www.googletagmanager.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://www.googletagmanager.com https://www.google-analytics.com; font-src 'self' data:; connect-src 'self' http://localhost:* http://127.0.0.1:* ws://localhost:* ws://127.0.0.1:* https://www.googletagmanager.com https://www.google-analytics.com https://region1.google-analytics.com https://analytics.google.com; worker-src 'self' blob:; child-src 'self' http://localhost:* http://127.0.0.1:*; object-src 'none'; base-uri 'self'; form-action 'self'";
118
118
 
119
119
  app.on('ready', () => {
120
120
  session.defaultSession.webRequest.onHeadersReceived((details, callback) => {
@@ -18,51 +18,17 @@ async function mainMenu() {
18
18
  label: global.p3xre.strings.title,
19
19
  submenu: [
20
20
  {
21
- label: global.p3xre.strings.menu.main.home,
22
- submenu: [
23
- {
24
- label: 'Angular',
25
- type: 'radio',
26
- checked: currentFrontend !== 'react',
27
- click: () => switchFrontend('ng'),
28
- },
29
- {
30
- label: 'React',
31
- type: 'radio',
32
- checked: currentFrontend === 'react',
33
- click: () => switchFrontend('react'),
34
- },
35
- ],
21
+ label: 'Angular',
22
+ click: () => switchFrontend('ng'),
36
23
  },
37
24
  {
38
- label: global.p3xre.strings.menu.main.settings,
39
- submenu: [
40
- {
41
- label: 'Angular',
42
- click: () => {
43
- global.p3xre.mainWindow.webContents.send('p3x-menu', {
44
- action: 'settings'
45
- })
46
- },
47
- },
48
- {
49
- label: 'React',
50
- click: () => {
51
- switchFrontend('react')
52
- },
53
- },
54
- ],
25
+ label: 'React',
26
+ click: () => switchFrontend('react'),
55
27
  },
56
- /*
57
28
  {
58
- label: global.p3xre.strings.menu.main.overview,
59
- click: () => {
60
- global.p3xre.mainWindow.webContents.send('p3x-menu', {
61
- action: 'overview'
62
- })
63
- }
29
+ label: 'Vue',
30
+ click: () => switchFrontend('vue'),
64
31
  },
65
- */
66
32
  {type: 'separator'},
67
33
  {
68
34
  label: global.p3xre.strings.menu.main.quit,
@@ -87,6 +87,7 @@ ipcRenderer.on('p3x-set-language', (event, data) => {
87
87
  return;
88
88
  }
89
89
  const translation = data.translation
90
+ if (translation === 'auto') return
90
91
  const stringsModule = await import(`../../../strings/${translation}/index.mjs`)
91
92
  global.p3xre.strings = stringsModule.default
92
93
  global.p3xre.iframe.contentWindow.postMessage({ type: 'p3x-set-language', translation: translation }, '*')
@@ -261,9 +262,9 @@ window.p3xreRun = async function () {
261
262
  serverUrl = await waitForServer(getCurrentLocalServerUrl())
262
263
  }
263
264
 
264
- // Append /react/ or /ng/ based on stored frontend preference
265
+ // Append /react/, /vue/, or /ng/ based on stored frontend preference
265
266
  const frontendPref = uiStateStore.get('p3xr-frontend', 'ng')
266
- const frontendPath = frontendPref === 'react' ? '/react/' : '/ng/'
267
+ const frontendPath = frontendPref === 'react' ? '/react/' : frontendPref === 'vue' ? '/vue/' : '/ng/'
267
268
  global.p3xre.iframe.src = getIframeUrlWithUiState(serverUrl + frontendPath)
268
269
 
269
270
  } catch (e) {