w-web-perm 1.0.69 → 1.0.71

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.
Files changed (37) hide show
  1. package/README.md +1 -1
  2. package/dist/css/{chunk-vendors.f6e4c9e1.css → chunk-vendors.695187ec.css} +1 -1
  3. package/dist/index.tmp +1 -1
  4. package/dist/js/{app-legacy.6c9b2364.js → app-legacy.a8a679a7.js} +1 -1
  5. package/dist/js/{app.6c9b2364.js → app.a8a679a7.js} +1 -1
  6. package/dist/js/{chunk-vendors.d018402b.js → chunk-vendors-legacy.644eda7c.js} +2 -2
  7. package/dist/js/{chunk-vendors-legacy.d018402b.js → chunk-vendors.644eda7c.js} +2 -2
  8. package/dist/w-web-perm.umd.js +1 -1
  9. package/docs/WWebPerm.html +2 -2
  10. package/docs/WWebPerm.mjs.html +2 -2
  11. package/docs/index.html +1 -1
  12. package/{g.backupDb.mjs → g_backupDb.mjs} +2 -2
  13. package/{g.initialData.mjs → g_initialData.mjs} +2 -2
  14. package/{g.initialTestData.mjs → g_initialTestData.mjs} +2 -2
  15. package/{g.mOrm.mjs → g_mOrm.mjs} +1 -1
  16. package/{g.provideGrups.mjs → g_provideGrups.mjs} +1 -1
  17. package/{g.providePemis.mjs → g_providePemis.mjs} +1 -1
  18. package/{g.provideTargets.mjs → g_provideTargets.mjs} +1 -1
  19. package/{g.provideUsers.mjs → g_provideUsers.mjs} +1 -1
  20. package/logs/2026-08-25T19.log +4704 -0
  21. package/logs/2026-08-25T20.log +5144 -0
  22. package/logs/2026-08-25T21.log +2116 -0
  23. package/logs/2026-08-26T05.log +1678 -0
  24. package/logs/2026-08-26T06.log +4561 -0
  25. package/logs/2026-08-26T07.log +4916 -0
  26. package/logs/2026-08-26T08.log +260 -0
  27. package/logs/2026-08-26T09.log +1543 -0
  28. package/logs/2026-08-26T13.log +2559 -0
  29. package/logs/2026-08-26T14.log +5526 -0
  30. package/logs/2026-08-26T15.log +2271 -0
  31. package/package.json +12 -12
  32. package/server/WWebPerm.mjs +1 -1
  33. package/src/components/LayoutContent.vue +6 -6
  34. package/srv.mjs +1 -1
  35. package/tableTags.json +1 -1
  36. package/z/344/277/256/346/255/243/350/246/217/345/212/203/346/233/270.md +2 -2
  37. /package/{g.getSettings.mjs → g_getSettings.mjs} +0 -0
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "w-web-perm",
3
- "version": "1.0.69",
3
+ "version": "1.0.71",
4
4
  "main": "dist/w-web-perm.umd.js",
5
5
  "dependencies": {
6
6
  "axios": "^1.18.1",
7
7
  "json5": "^2.2.3",
8
- "w-aggrid-vue": "^2.0.74",
9
- "w-component-vue": "^2.5.3",
10
- "w-data-collector": "^1.0.32",
11
- "w-echarts-vue": "^1.0.3",
12
- "w-serv-hapi": "^1.0.82",
13
- "w-serv-orm": "^1.0.49",
14
- "w-syslog": "^1.0.21",
15
- "w-ui-loginout": "^1.0.20",
16
- "wsemi": "^1.8.79"
8
+ "w-aggrid-vue": "^2.0.76",
9
+ "w-component-vue": "^2.5.6",
10
+ "w-data-collector": "^1.0.33",
11
+ "w-echarts-vue": "^1.0.5",
12
+ "w-serv-hapi": "^1.0.83",
13
+ "w-serv-orm": "^1.0.50",
14
+ "w-syslog": "^1.0.22",
15
+ "w-ui-loginout": "^1.0.21",
16
+ "wsemi": "^1.8.80"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@vue/cli-plugin-babel": "^5.0.8",
@@ -28,10 +28,10 @@
28
28
  "eslint-plugin-vue": "^9.10.0",
29
29
  "vue": "^2.7.16",
30
30
  "vuex": "^3.6.2",
31
- "w-orm-lmdb": "^1.0.26",
31
+ "w-orm-lmdb": "^1.0.27",
32
32
  "w-package-tools": "^1.1.15",
33
33
  "w-package-tools-e2e": "^1.0.0",
34
- "w-screenctl": "^1.0.14"
34
+ "w-screenctl": "^1.0.15"
35
35
  },
36
36
  "scripts": {
37
37
  "serve": "vue-cli-service serve",
@@ -59,7 +59,7 @@ import procStaInfor from './procStaInfor.mjs'
59
59
  *
60
60
  * import WOrm from 'w-orm-lmdb/src/WOrmLmdb.mjs'
61
61
  * import WWebPerm from './server/WWebPerm.mjs'
62
- * import getSettings from './g.getSettings.mjs'
62
+ * import getSettings from './g_getSettings.mjs'
63
63
  *
64
64
  *
65
65
  * //st
@@ -165,7 +165,7 @@ export default {
165
165
  mdiArrowLeftBoldHexagonOutline,
166
166
  mdiArrowRightBoldHexagonOutline,
167
167
 
168
- menuKey: 'mmTargets',
168
+ menuKey: 'mmStaInfor',
169
169
 
170
170
  panelHeight: 0,
171
171
 
@@ -186,6 +186,11 @@ export default {
186
186
  menus: function() {
187
187
  let vo = this
188
188
  let ms = [
189
+ {
190
+ key: 'mmStaInfor',
191
+ text: vo.$t('mmStaInfor'),
192
+ icon: mdiChartBoxOutline,
193
+ },
189
194
  {
190
195
  key: 'mmTargets',
191
196
  text: vo.$t('mmTargets'),
@@ -206,11 +211,6 @@ export default {
206
211
  text: vo.$t('mmUsers'),
207
212
  icon: mdiAccountGroupOutline,
208
213
  },
209
- {
210
- key: 'mmStaInfor',
211
- text: vo.$t('mmStaInfor'),
212
- icon: mdiChartBoxOutline,
213
- },
214
214
  ]
215
215
  return ms
216
216
  },
package/srv.mjs CHANGED
@@ -2,7 +2,7 @@ import fs from 'fs'
2
2
  import JSON5 from 'json5'
3
3
  import WOrm from 'w-orm-lmdb/src/WOrmLmdb.mjs'
4
4
  import WWebPerm from './server/WWebPerm.mjs'
5
- import getSettings from './g.getSettings.mjs'
5
+ import getSettings from './g_getSettings.mjs'
6
6
 
7
7
 
8
8
  //st(DB 設定)
package/tableTags.json CHANGED
@@ -1 +1 @@
1
- {"grups":"2026-07-11T17:38:16+08:00|oibw7P","pemis":"2026-07-11T17:38:16+08:00|cnWe25","targets":"2026-07-11T17:38:16+08:00|OChCfm","users":"2026-07-11T17:38:16+08:00|7oyfiw"}
1
+ {"grups":"2026-08-26T15:16:24+08:00|pGTU3s","pemis":"2026-08-26T15:16:24+08:00|wYLwmy","targets":"2026-08-26T15:16:24+08:00|MZsetZ","users":"2026-08-26T15:24:04+08:00|XJoOY1"}
@@ -70,8 +70,8 @@
70
70
  > **第二層 — 合併模式下 e2e 繼承 api 相之後端, 對話框 grid 列序(`sortBy order`)被 api 還原 RPC 正規化 → pixel mismatch**
71
71
  > - 第一層修好後, before-all cascade 消失, 但浮現 64 顆**對話框類 case 之 pixel mismatch**(grups E2E-008、pemis E2E-008-crules、rela-pemi-rule 整支等)。
72
72
  > - **§4 規則 3 紀律: 讀 diff 圖不臆測** —— grups E2E-008 之 diff/capture/baseline 三圖顯示: **同一份資料、grid 列序相反**(baseline `peter,mary,john,admin` vs capture `admin,john,mary,peter`), 非渲染雜訊。
73
- > - 根因(讀碼+實驗): 對話框 grid 依 `sortBy(rs, 'order')` 排序;合併模式下 e2e 檔**重用 api 相先 spawn 的後端**, 而 `api-updateTabs`(32 處寫入)與 `api-syncAndReplaceTabs` 之 suite-after 以 `updateXxx` RPC 整表寫回還原, 該 RPC **重給 `order` 欄位** → 還原後 order 值序與 `g.initialTestData` 原始不同 → 對話框列序遂與「solo 自產 baseline」不符。**e2e 之 `resetDb` 僅還原 grups 表, 不還原 users/pemis/targets**, 故窗外汙染殘留。
74
- > - **既有性確證**: 這批 case **單檔跑全綠**(solo 各自 spawn 全新後端 = 純 g.initialTestData 種子);僅合併模式失敗。本專案 e2e 檔本就設計為逐檔獨立(自 seedDb + 自 spawn 後端 + --baseline 直跑入口), 塞進單一 mocha 進程共用後端才是錯誤執行模型。對照組: w-web-sso 之 `resetToBaseSeed` 以 `delAll`+程式常數**重建全表**, 故其合併 e2e 可綠。
73
+ > - 根因(讀碼+實驗): 對話框 grid 依 `sortBy(rs, 'order')` 排序;合併模式下 e2e 檔**重用 api 相先 spawn 的後端**, 而 `api-updateTabs`(32 處寫入)與 `api-syncAndReplaceTabs` 之 suite-after 以 `updateXxx` RPC 整表寫回還原, 該 RPC **重給 `order` 欄位** → 還原後 order 值序與 `g_initialTestData` 原始不同 → 對話框列序遂與「solo 自產 baseline」不符。**e2e 之 `resetDb` 僅還原 grups 表, 不還原 users/pemis/targets**, 故窗外汙染殘留。
74
+ > - **既有性確證**: 這批 case **單檔跑全綠**(solo 各自 spawn 全新後端 = 純 g_initialTestData 種子);僅合併模式失敗。本專案 e2e 檔本就設計為逐檔獨立(自 seedDb + 自 spawn 後端 + --baseline 直跑入口), 塞進單一 mocha 進程共用後端才是錯誤執行模型。對照組: w-web-sso 之 `resetToBaseSeed` 以 `delAll`+程式常數**重建全表**, 故其合併 e2e 可綠。
75
75
  > - **修法(零改 baseline / 零改 production)**: 新增 `test/run-e2e-isolated.mjs` —— 每個 browser e2e 檔以獨立 mocha 進程執行, 每檔前只殺後端(11006)使其重 seed+spawn 全新後端、前端(8090)保持暖機共用。`package.json` 之 `test` 改為 `test:apiunit`(unit+api+e2e-doubleclick 合跑)`&& test:e2e`(逐檔隔離)。
76
76
  > - 驗證: 先前失敗之 grups **20/0**、rela-pemi-rule **12/0** 於隔離機制下轉綠。**全量 `npm test`(新結構)終驗(2026-07-10 22:47)**: 階段一 `test:apiunit` **82 passing** / 階段二 `test:e2e` **9 個 e2e 檔逐檔 exit 0** = **全綠 0 failing**。
77
77
  > - **2026-07-11 審計輪補強(pattern 化)**: 初版 `test:apiunit` 與 runner 用**寫死檔名清單**, 未來新增測試檔會被靜默漏跑(違反全域 §14.3「納入規則用 pattern 白名單」)。已改: `test:apiunit` 用 mocha glob(`test/unit-*.test.mjs test/api-*.test.mjs test/getUserRules.test.mjs`), runner 以 `readdirSync` 動態列舉 `^e2e-.*\.test\.mjs$`(e2e-doubleclick 一併納入隔離跑, 換取零遺漏)。**pattern 化後全量終驗(2026-07-11 01:35)**: 階段一 78 passing + 階段二 **10 個 e2e 檔全 exit 0**(doubleclick 4 + 原 9 檔)= **全綠**。
File without changes