w-web-api 1.0.38 → 1.0.40

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 (43) hide show
  1. package/README.md +4 -4
  2. package/db/wapis/apis/data.mdb +0 -0
  3. package/db/wapis/apis/lock.mdb +0 -0
  4. package/dist/css/{app.99a58617.css → app.02bbf3c6.css} +1 -1
  5. package/dist/index.tmp +2 -2
  6. package/dist/js/app-legacy.d2226e7d.js +2 -0
  7. package/dist/js/app-legacy.d2226e7d.js.map +1 -0
  8. package/dist/js/app.d2226e7d.js +2 -0
  9. package/dist/js/app.d2226e7d.js.map +1 -0
  10. package/dist/js/{chunk-vendors.767ef893.js → chunk-vendors-legacy.10dbc55a.js} +3 -3
  11. package/dist/js/chunk-vendors-legacy.10dbc55a.js.map +1 -0
  12. package/dist/js/{chunk-vendors-legacy.767ef893.js → chunk-vendors.10dbc55a.js} +3 -3
  13. package/dist/js/chunk-vendors.10dbc55a.js.map +1 -0
  14. package/dist/w-web-api.umd.js +2 -2
  15. package/dist/w-web-api.umd.js.map +1 -1
  16. package/docs/WWebApi.html +6 -6
  17. package/docs/WWebApi.mjs.html +120 -34
  18. package/docs/index.html +1 -1
  19. package/g.getSettings.mjs +6 -4
  20. package/g.mOrm.mjs +2 -2
  21. package/package.json +7 -7
  22. package/public/index.html +1 -1
  23. package/script.txt +0 -1
  24. package/server/WWebApi.mjs +119 -33
  25. package/src/App.vue +25 -4
  26. package/src/components/Layout.vue +56 -26
  27. package/src/components/LayoutContent.vue +51 -37
  28. package/src/components/LayoutState.vue +20 -8
  29. package/src/main.js +17 -20
  30. package/src/plugins/mLang.mjs +250 -0
  31. package/src/plugins/mUI.mjs +140 -51
  32. package/src/schema/tables/apis.mjs +6 -8
  33. package/src/store/mutations.mjs +8 -102
  34. package/src/store/types.mjs +1 -1
  35. package/srv.mjs +6 -6
  36. package/tableTags.json +1 -1
  37. package/dist/js/app-legacy.f7e293ef.js +0 -2
  38. package/dist/js/app-legacy.f7e293ef.js.map +0 -1
  39. package/dist/js/app.f7e293ef.js +0 -2
  40. package/dist/js/app.f7e293ef.js.map +0 -1
  41. package/dist/js/chunk-vendors-legacy.767ef893.js.map +0 -1
  42. package/dist/js/chunk-vendors.767ef893.js.map +0 -1
  43. package/src/plugins/mDataSupport.mjs +0 -66
package/docs/WWebApi.html CHANGED
@@ -64,7 +64,7 @@
64
64
 
65
65
 
66
66
 
67
- <h4 class="name" id="WWebApi"><span class="type-signature"></span>new WWebApi<span class="signature">(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser, opt<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Object}</span></h4>
67
+ <h4 class="name" id="WWebApi"><span class="type-signature"></span>new WWebApi<span class="signature">(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser, opt<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Object}</span></h4>
68
68
 
69
69
 
70
70
 
@@ -80,7 +80,7 @@
80
80
 
81
81
  <dt class="tag-source">Source:</dt>
82
82
  <dd class="tag-source"><ul class="dummy"><li>
83
- <a href="WWebApi.mjs.html">WWebApi.mjs</a>, <a href="WWebApi.mjs.html#line128">line 128</a>
83
+ <a href="WWebApi.mjs.html">WWebApi.mjs</a>, <a href="WWebApi.mjs.html#line129">line 129</a>
84
84
  </li></ul></dd>
85
85
 
86
86
 
@@ -127,7 +127,7 @@
127
127
 
128
128
  <h5 class="h5-examples">Example</h5>
129
129
 
130
- <pre class="prettyprint"><code>import WOrm from 'w-orm-mongodb/src/WOrmMongodb.mjs' //自行選擇引用ORM, 使用Mongodb測試
131
130
  useCheckUser: false,
132
131
  getUserById: null,
133
132
  useExcludeWhenNotAdmin: false,
134
133
  serverPort: 11005,
135
134
  subfolder: '', //mapi
136
135
  urlRedirect: 'https://www.google.com/', //本機測試時得先編譯, 再瀏覽: http://localhost:11005/
137
136
  webName: {
138
137
  'eng': 'API Service',
139
138
  'cht': 'API管理系統',
140
139
  },
141
140
  webDescription: {
142
141
  'eng': 'A web service package as methods to send requests to and receive responses from an API.',
143
142
  'cht': 'A web service package as methods to send requests to and receive responses from an API.',
144
143
  },
145
144
  webLogo: 'data:image/svg+xml;base64,...',
146
145
  // return {} //測試無法登入
147
146
  if (token === '{token-for-application}') { //提供外部應用系統作為存取使用者
148
147
  return {
149
148
  id: 'id-for-application',
150
149
  name: 'application',
151
150
  email: 'application@example.com',
152
151
  isAdmin: 'y',
153
152
  }
154
153
  }
155
154
  if (token === 'sys') { //開發階段w-ui-loginout自動給予browser使用者(且位於localhost)的token為sys
156
155
  return {
157
156
  id: 'id-for-admin',
158
157
  name: '測試者',
159
158
  email: 'admin@example.com',
160
159
  isAdmin: 'y',
161
160
  }
162
161
  }
163
162
  console.log('invalid token', token)
164
163
  console.log('於生產環境時得加入SSO等驗證token機制')
165
164
  return {}
166
165
  console.log('verifyBrowserUser/user', user)
167
166
  // return false //測試無法登入
168
167
  console.log('於生產環境時得加入限制瀏覽器使用者身份機制')
169
168
  return user.isAdmin === 'y' //測試僅系統管理者使用
170
169
  console.log('verifyAppUser/user', user)
171
170
  // return false //測試無法登入
172
171
  console.log('於生產環境時得加入限制應用程式使用者身份機制')
173
172
  return user.isAdmin === 'y' //測試僅系統管理者使用
174
173
  console.log(err)
174
+ <pre class="prettyprint"><code>import WOrm from 'w-orm-lmdb/src/WOrmLmdb.mjs'
175
175
  useCheckUser: false,
176
176
  getUserById: null,
177
177
  useExcludeWhenNotAdmin: false,
178
178
  serverPort: 11005,
179
179
  subfolder: '', //mapi
180
180
  urlRedirect: 'https://www.google.com/', //本機測試時得先編譯, 再瀏覽: http://localhost:11005/
181
181
  webName: {
182
182
  'eng': 'API Service',
183
183
  'cht': 'API管理系統',
184
184
  },
185
185
  webDescription: {
186
186
  'eng': 'A web service package as methods to send requests to and receive responses from an API.',
187
187
  'cht': 'A web service package as methods to send requests to and receive responses from an API.',
188
188
  },
189
189
  webLogo: 'data:image/svg+xml;base64,...',
190
190
  // return {} //測試無法登入
191
191
  if (token === '{token-for-application}') { //提供外部應用系統作為存取使用者
192
192
  return {
193
193
  id: 'id-for-application',
194
194
  name: 'application',
195
195
  email: 'application@example.com',
196
196
  isAdmin: 'y',
197
197
  }
198
198
  }
199
199
  if (token === 'sys') { //開發階段w-ui-loginout自動給予browser使用者(且位於localhost)的token為sys
200
200
  return {
201
201
  id: 'id-for-admin',
202
202
  name: '測試者',
203
203
  email: 'admin@example.com',
204
204
  isAdmin: 'y',
205
205
  }
206
206
  }
207
207
  console.log('invalid token', token)
208
208
  console.log('於生產環境時得加入SSO等驗證token機制')
209
209
  return {}
210
210
  console.log('verifyClientUser/user', user)
211
211
  // return false //測試無法登入
212
212
  console.log('於生產環境時得加入限制瀏覽器使用者身份機制')
213
213
  return user.isAdmin === 'y' //測試僅系統管理者使用
214
214
  console.log('verifyAppUser/user', user)
215
215
  // return false //測試無法登入
216
216
  console.log('於生產環境時得加入限制應用程式使用者身份機制')
217
217
  return user.isAdmin === 'y' //測試僅系統管理者使用
218
218
  console.log(err)
219
219
 
220
220
 
221
221
 
@@ -226,7 +226,7 @@
226
226
  </td>
227
227
 
228
228
 
229
- <td class="description last"><p>輸入資料庫連線字串,例如'mongodb://sername:password@$127.0.0.1:27017'</p></td>
229
+ <td class="description last"><p>輸入資料庫連線字串,例如w-orm-lmdb為'./db',或w-orm-mongodb為'mongodb://username:password@$127.0.0.1:27017'</p></td>
230
230
  </tr>
231
231
 
232
232
 
@@ -305,7 +305,7 @@
305
305
 
306
306
  <tr>
307
307
 
308
- <td class="name"><code>verifyBrowserUser</code></td>
308
+ <td class="name"><code>verifyClientUser</code></td>
309
309
 
310
310
 
311
311
  <td class="type">
@@ -885,7 +885,7 @@
885
885
  <br class="clear">
886
886
 
887
887
  <footer>
888
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Fri Jun 06 2025 14:21:00 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
888
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Mon Jul 14 2025 18:00:09 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
889
889
  </footer>
890
890
 
891
891
  <script>prettyPrint();</script>
@@ -55,6 +55,7 @@ import iseobj from 'wsemi/src/iseobj.mjs'
55
55
  import isestr from 'wsemi/src/isestr.mjs'
56
56
  import isearr from 'wsemi/src/isearr.mjs'
57
57
  import ispint from 'wsemi/src/ispint.mjs'
58
+ import isErr from 'wsemi/src/isErr.mjs'
58
59
  import isfun from 'wsemi/src/isfun.mjs'
59
60
  import ispm from 'wsemi/src/ispm.mjs'
60
61
  import cint from 'wsemi/src/cint.mjs'
@@ -77,10 +78,10 @@ import ds from '../src/schema/index.mjs'
77
78
  *
78
79
  * @class
79
80
  * @param {Function} WOrm 輸入資料庫ORM函數
80
- * @param {String} url 輸入資料庫連線字串,例如'mongodb://sername:password@$127.0.0.1:27017'
81
+ * @param {String} url 輸入資料庫連線字串,例如w-orm-lmdb為'./db',或w-orm-mongodb為'mongodb://username:password@$127.0.0.1:27017'
81
82
  * @param {String} db 輸入資料庫名稱字串
82
83
  * @param {Function} getUserByToken 輸入處理函數,函數會傳入使用者token,通過此函數處理後並回傳使用者資訊物件,並至少須提供'id'、'email'、'name'、'isAdmin'欄位,且'isAdmin'限輸入'y'或'n',且輸入'y'時會複寫權限系統該使用者之'isAdmin'欄位值
83
- * @param {Function} verifyBrowserUser 輸入驗證瀏覽使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false
84
+ * @param {Function} verifyClientUser 輸入驗證瀏覽使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false
84
85
  * @param {Function} verifyAppUser 輸入驗證應用程序使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false
85
86
  * @param {Object} [opt={}] 輸入設定物件,預設{}
86
87
  * @param {Integer} [opt.serverPort=11005] 輸入伺服器通訊port,預設11005
@@ -95,7 +96,7 @@ import ds from '../src/schema/index.mjs'
95
96
  * @returns {Object} 回傳物件,其內server為hapi伺服器實體,wsrv為w-converhp的伺服器事件物件,wsds為w-serv-webdata的伺服器事件物件,可監聽error事件
96
97
  * @example
97
98
  *
98
- * import WOrm from 'w-orm-mongodb/src/WOrmMongodb.mjs' //自行選擇引用ORM, 使用Mongodb測試
99
+ * import WOrm from 'w-orm-lmdb/src/WOrmLmdb.mjs'
99
100
  * import WWebApi from './server/WWebApi.mjs'
100
101
  * import getSettings from './g.getSettings.mjs'
101
102
  *
@@ -103,7 +104,7 @@ import ds from '../src/schema/index.mjs'
103
104
  * //st
104
105
  * let st = getSettings()
105
106
  *
106
- * let url = `mongodb://${st.dbUsername}:${st.dbPassword}@${st.dbIP}:${st.dbPort}` //使用Mongodb測試
107
+ * let url = st.dbUrl
107
108
  * let db = st.dbName
108
109
  * let opt = {
109
110
  *
@@ -150,14 +151,14 @@ import ds from '../src/schema/index.mjs'
150
151
  * return {}
151
152
  * }
152
153
  *
153
- * let verifyBrowserUser = (user, caller) => {
154
- * console.log('verifyBrowserUser/user', user)
154
+ * let verifyClientUser = (user, from) => {
155
+ * console.log('verifyClientUser/user', user)
155
156
  * // return false //測試無法登入
156
157
  * console.log('於生產環境時得加入限制瀏覽器使用者身份機制')
157
158
  * return user.isAdmin === 'y' //測試僅系統管理者使用
158
159
  * }
159
160
  *
160
- * let verifyAppUser = (user, caller) => {
161
+ * let verifyAppUser = (user, from) => {
161
162
  * console.log('verifyAppUser/user', user)
162
163
  * // return false //測試無法登入
163
164
  * console.log('於生產環境時得加入限制應用程式使用者身份機制')
@@ -165,14 +166,14 @@ import ds from '../src/schema/index.mjs'
165
166
  * }
166
167
  *
167
168
  * //WWebApi
168
- * let instWWebApi = WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser, opt)
169
+ * let instWWebApi = WWebApi(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser, opt)
169
170
  *
170
171
  * instWWebApi.on('error', (err) => {
171
172
  * console.log(err)
172
173
  * })
173
174
  *
174
175
  */
175
- function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser, opt = {}) {
176
+ function WWebApi(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser, opt = {}) {
176
177
  let instWServHapiServer = null
177
178
 
178
179
 
@@ -204,10 +205,10 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
204
205
  }
205
206
 
206
207
 
207
- //check verifyBrowserUser
208
- if (!isfun(verifyBrowserUser)) {
209
- console.log('invalid verifyBrowserUser', verifyBrowserUser)
210
- throw new Error('invalid verifyBrowserUser')
208
+ //check verifyClientUser
209
+ if (!isfun(verifyClientUser)) {
210
+ console.log('invalid verifyClientUser', verifyClientUser)
211
+ throw new Error('invalid verifyClientUser')
211
212
  }
212
213
 
213
214
 
@@ -292,6 +293,37 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
292
293
  }
293
294
 
294
295
 
296
+ //checkUser
297
+ let checkUser = async(user) => {
298
+ let id = get(user, 'id', '')
299
+ if (!isestr(id)) {
300
+ console.log('user', user)
301
+ console.log('can not get the userId')
302
+ return Promise.reject(`can not get the userId`)
303
+ }
304
+ let email = get(user, 'email', '')
305
+ if (!isestr(email)) {
306
+ console.log('user', user)
307
+ console.log('can not get the email of user')
308
+ return Promise.reject(`can not get the email of user`)
309
+ }
310
+ let name = get(user, 'name', '')
311
+ if (!isestr(name)) {
312
+ console.log('user', user)
313
+ console.log('can not get userName')
314
+ return Promise.reject(`can not get userName`)
315
+ }
316
+ let isAdmin = get(user, 'isAdmin', '')
317
+ if (isAdmin !== 'y' &amp;&amp; isAdmin !== 'n') {
318
+ console.log('user', user)
319
+ console.log('user.isAdmin is not y or n', user.isAdmin)
320
+ console.log('can not get the role of user')
321
+ return Promise.reject(`can not get the role of user`)
322
+ }
323
+ return true
324
+ }
325
+
326
+
295
327
  //getTokenUser
296
328
  let getTokenUser = async (token) => {
297
329
 
@@ -302,24 +334,43 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
302
334
  }
303
335
 
304
336
  //check
305
- if (!iseobj(userSelf)) {
306
- console.log(`token`, token)
307
- console.log(`can not find the user from token`)
308
- return Promise.reject(`can not find the user from token`)
337
+ if (true) {
338
+ // if (!iseobj(userSelf)) {
339
+ // console.log(`token`, token)
340
+ // console.log(`can not find the user from token`)
341
+ // return Promise.reject(`can not find the user from token`)
342
+ // }
343
+ await checkUser(userSelf)
309
344
  }
310
345
 
311
346
  return userSelf
312
347
  }
313
348
 
314
349
 
350
+ //p
351
+ let p = {
352
+ checkToken: async(token) => {
353
+
354
+ //getUserByToken
355
+ let u = await getUserByToken(token)
356
+ // console.log('u', u)
357
+
358
+ //checkUser
359
+ await checkUser(u)
360
+
361
+ return true
362
+ },
363
+ }
364
+
365
+
315
366
  //getAndVerifyBrowserTokenUser
316
- let getAndVerifyBrowserTokenUser = async (token, caller = '') => {
367
+ let getAndVerifyBrowserTokenUser = async (token, from = '') => {
317
368
 
318
369
  //getTokenUser
319
370
  let userSelf = await getTokenUser(token)
320
371
 
321
- //verifyBrowserUser
322
- let b = verifyBrowserUser(userSelf, caller)
372
+ //verifyClientUser
373
+ let b = verifyClientUser(userSelf, from)
323
374
  if (ispm(b)) {
324
375
  b = await b
325
376
  }
@@ -336,13 +387,13 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
336
387
 
337
388
 
338
389
  //getAndVerifyAppTokenUser
339
- let getAndVerifyAppTokenUser = async (token, caller = '') => {
390
+ let getAndVerifyAppTokenUser = async (token, from = '') => {
340
391
 
341
392
  //getTokenUser
342
393
  let userSelf = await getTokenUser(token)
343
394
 
344
395
  //verifyAppUser
345
- let b = verifyAppUser(userSelf, caller)
396
+ let b = verifyAppUser(userSelf, from)
346
397
  if (ispm(b)) {
347
398
  b = await b
348
399
  }
@@ -533,13 +584,7 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
533
584
  // return 'someAPI'
534
585
  // },
535
586
  // },
536
- {
537
- method: 'GET',
538
- path: '/getWebInfor',
539
- handler: async function (req, res) {
540
- return getWebInfor()
541
- },
542
- },
587
+
543
588
  {
544
589
  method: 'GET',
545
590
  path: '/api/getUserByToken', //未登入界面需先檢測token是否為系統管理員, 確認後回傳為系統管理員資訊物件, getUserByToken為w-ui-loginout預設值, 若要更改兩邊須同時修改
@@ -567,6 +612,9 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
567
612
 
568
613
  //pm2resolve core
569
614
  let r = await pm2resolve(core)() //w-ui-loginout接收已預設格式用pm2resolve轉過, 會提取state進行判斷
615
+ if (isErr(r.msg)) {
616
+ r.msg = r.msg.message
617
+ }
570
618
  // console.log('getUserByToken', r)
571
619
 
572
620
  return r
@@ -602,7 +650,10 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
602
650
 
603
651
  //pm2resolve core
604
652
  let r = await pm2resolve(core)()
605
- // console.log('verifyIdentity', r)
653
+ if (isErr(r.msg)) {
654
+ r.msg = r.msg.message
655
+ }
656
+ // console.log('getAPIsList', r)
606
657
 
607
658
  return r
608
659
  },
@@ -641,7 +692,10 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
641
692
 
642
693
  //pm2resolve core
643
694
  let r = await pm2resolve(core)()
644
- // console.log('verifyIdentity', r)
695
+ if (isErr(r.msg)) {
696
+ r.msg = r.msg.message
697
+ }
698
+ // console.log('updateAPIs', r)
645
699
 
646
700
  return r
647
701
  },
@@ -680,7 +734,10 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
680
734
 
681
735
  //pm2resolve core
682
736
  let r = await pm2resolve(core)()
683
- // console.log('verifyIdentity', r)
737
+ if (isErr(r.msg)) {
738
+ r.msg = r.msg.message
739
+ }
740
+ // console.log('syncAndReplaceApis', r)
684
741
 
685
742
  return r
686
743
  },
@@ -700,7 +757,30 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
700
757
  instWServHapiServer = new WServHapiServer({
701
758
  port: opt.serverPort,
702
759
  pathStaticFiles,
760
+ apiName: 'api',
703
761
  apis,
762
+ tokenType: 'Bearer',
763
+ verifyConn: async ({ apiType, authorization, query, headers, req }) => {
764
+ // console.log('verifyConn', `apiType[${apiType}]`, `authorization[${authorization}]`)
765
+
766
+ //token
767
+ let token = strdelleft(authorization, 7) //刪除Bearer
768
+ // console.log('token', token)
769
+
770
+ //check
771
+ if (!isestr(token)) {
772
+ console.log('apiType', apiType)
773
+ console.log('authorization', authorization)
774
+ console.log('invalid token')
775
+ return false
776
+ }
777
+
778
+ //checkToken
779
+ let b = await p.checkToken(token)
780
+ // console.log('b', b)
781
+
782
+ return b
783
+ },
704
784
  getUserIdByToken: async (token) => { //可使用async或sync函數
705
785
  // console.log('getUserIdByToken', token)
706
786
  return ''
@@ -720,11 +800,17 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
720
800
  methodsExec: ['select', 'insert', 'save', 'del'], //mix需於procOrm內註冊以提供
721
801
  tableNamesSync,
722
802
  kpFunExt: { //接收參數第1個為userId, 之後才是前端給予參數
803
+
723
804
  getWebInfor,
805
+
724
806
  getAPIsList: (userId, query = {}) => {
725
807
  return getAPIsList(query)
726
808
  },
727
- //...
809
+
810
+ // updateApis: (userId, rows) => {
811
+ // return updateApis(rows)
812
+ // },
813
+
728
814
  },
729
815
  fnTableTags: 'tableTags-web-api.json',
730
816
  })
@@ -749,7 +835,7 @@ export default WWebApi
749
835
  <br class="clear">
750
836
 
751
837
  <footer>
752
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Fri Jun 06 2025 14:21:00 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
838
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Mon Jul 14 2025 18:00:09 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
753
839
  </footer>
754
840
 
755
841
  <script>prettyPrint();</script>
package/docs/index.html CHANGED
@@ -71,7 +71,7 @@
71
71
  <br class="clear">
72
72
 
73
73
  <footer>
74
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Fri Jun 06 2025 14:21:00 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
74
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Mon Jul 14 2025 18:00:09 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
75
75
  </footer>
76
76
 
77
77
  <script>prettyPrint();</script>
package/g.getSettings.mjs CHANGED
@@ -5,11 +5,13 @@
5
5
 
6
6
  function getSettings() {
7
7
  return {
8
- 'dbUsername': 'username',
9
- 'dbPassword': 'password',
8
+ // 'dbUsername': 'username',
9
+ // 'dbPassword': 'password',
10
+ // 'dbName': 'wapis',
11
+ // 'dbIP': '127.0.0.1',
12
+ // 'dbPort': 27017,
13
+ 'dbUrl': './db',
10
14
  'dbName': 'wapis',
11
- 'dbIP': '127.0.0.1',
12
- 'dbPort': 27017,
13
15
  }
14
16
  }
15
17
 
package/g.mOrm.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import WOrm from 'w-orm-mongodb/src/WOrmMongodb.mjs'
1
+ import WOrm from 'w-orm-lmdb/src/WOrmLmdb.mjs'
2
2
  import WServOrm from 'w-serv-orm/src/WServOrm.mjs'
3
3
  import ds from './src/schema/index.mjs'
4
4
  import getSettings from './g.getSettings.mjs'
@@ -8,7 +8,7 @@ import getSettings from './g.getSettings.mjs'
8
8
  let st = getSettings()
9
9
 
10
10
  //url, db
11
- let url = `mongodb://${st.dbUsername}:${st.dbPassword}@${st.dbIP}:${st.dbPort}`
11
+ let url = st.dbUrl
12
12
  let db = st.dbName
13
13
 
14
14
  //WServOrm
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "w-web-api",
3
- "version": "1.0.38",
3
+ "version": "1.0.40",
4
4
  "main": "dist/w-web-api.umd.js",
5
5
  "dependencies": {
6
6
  "@mdi/js": "^7.4.47",
7
- "axios": "^1.6.8",
7
+ "axios": "^1.9.0",
8
8
  "lodash-es": "^4.17.21",
9
9
  "showdown": "^2.1.0",
10
- "w-component-vue": "^2.4.20",
10
+ "w-component-vue": "^2.4.22",
11
11
  "w-data-collector": "^1.0.22",
12
- "w-serv-hapi": "^1.0.57",
13
- "w-serv-orm": "^1.0.26",
12
+ "w-serv-hapi": "^1.0.60",
13
+ "w-serv-orm": "^1.0.29",
14
14
  "w-ui-loginout": "^1.0.9",
15
- "wsemi": "^1.7.92"
15
+ "wsemi": "^1.8.15"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@vue/cli-plugin-babel": "^5.0.8",
@@ -28,7 +28,7 @@
28
28
  "eslint-plugin-vue": "^9.10.0",
29
29
  "vue": "^2.6.14",
30
30
  "vuex": "^3.6.2",
31
- "w-orm-mongodb": "^1.1.33",
31
+ "w-orm-lmdb": "^1.0.2",
32
32
  "w-package-tools": "^1.1.2"
33
33
  },
34
34
  "scripts": {
package/public/index.html CHANGED
@@ -7,7 +7,7 @@
7
7
  <title></title>
8
8
 
9
9
  <!-- mdi font -->
10
- <link href="https://cdn.jsdelivr.net/npm/@mdi/font/css/materialdesignicons.min.css" rel="stylesheet">
10
+ <link href="https://cdn.jsdelivr.net/npm/@mdi/font@7.4.47/css/materialdesignicons.min.css" rel="stylesheet">
11
11
 
12
12
  <!-- fontawesome -->
13
13
  <link href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.4.2/css/all.min.css" rel="stylesheet">
package/script.txt CHANGED
@@ -19,4 +19,3 @@ npm run deploy
19
19
  #npm test
20
20
 
21
21
  #npm publish
22
-