w-web-sso 1.0.0

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 (102) hide show
  1. package/.editorconfig +9 -0
  2. package/.eslintignore +3 -0
  3. package/.eslintrc.js +55 -0
  4. package/.github/workflows/ci-test.yml +24 -0
  5. package/.jsdoc +25 -0
  6. package/.vscode/launch.json +20 -0
  7. package/LICENSE +21 -0
  8. package/README.md +25 -0
  9. package/SECURITY.md +5 -0
  10. package/babel.config.js +15 -0
  11. package/dist/css/app.969ad1db.css +1 -0
  12. package/dist/index.tmp +3 -0
  13. package/dist/js/app-legacy.ff64be1c.js +2 -0
  14. package/dist/js/app-legacy.ff64be1c.js.map +1 -0
  15. package/dist/js/app.ff64be1c.js +2 -0
  16. package/dist/js/app.ff64be1c.js.map +1 -0
  17. package/dist/js/chunk-vendors-legacy.0bb7a31b.js +13 -0
  18. package/dist/js/chunk-vendors-legacy.0bb7a31b.js.map +1 -0
  19. package/dist/js/chunk-vendors.0bb7a31b.js +13 -0
  20. package/dist/js/chunk-vendors.0bb7a31b.js.map +1 -0
  21. package/dist/w-web-sso.umd.js +7 -0
  22. package/dist/w-web-sso.umd.js.map +1 -0
  23. package/docs/WWebSso.html +938 -0
  24. package/docs/WWebSso.mjs.html +721 -0
  25. package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
  26. package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
  27. package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
  28. package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
  29. package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
  30. package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  31. package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
  32. package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
  33. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  34. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +978 -0
  35. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  36. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  37. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  38. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  39. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +1049 -0
  40. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  41. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  42. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  43. package/docs/index.html +84 -0
  44. package/docs/scripts/collapse.js +39 -0
  45. package/docs/scripts/commonNav.js +28 -0
  46. package/docs/scripts/linenumber.js +25 -0
  47. package/docs/scripts/nav.js +12 -0
  48. package/docs/scripts/polyfill.js +4 -0
  49. package/docs/scripts/prettify/Apache-License-2.0.txt +202 -0
  50. package/docs/scripts/prettify/lang-css.js +2 -0
  51. package/docs/scripts/prettify/prettify.js +28 -0
  52. package/docs/scripts/search.js +99 -0
  53. package/docs/styles/jsdoc.css +776 -0
  54. package/docs/styles/prettify.css +80 -0
  55. package/g.backupDb.mjs +10 -0
  56. package/g.getSettings.mjs +17 -0
  57. package/g.initialData.mjs +94 -0
  58. package/g.initialTestData.mjs +21 -0
  59. package/g.mOrm.mjs +24 -0
  60. package/g.provideUsers.mjs +45 -0
  61. package/package.json +70 -0
  62. package/public/index.html +30 -0
  63. package/script.txt +22 -0
  64. package/server/WWebSso.mjs +649 -0
  65. package/server/hashPassword.mjs +27 -0
  66. package/server/proc.mjs +543 -0
  67. package/server/provideUsers.mjs +68 -0
  68. package/src/App.vue +123 -0
  69. package/src/components/Common/CheckYes.vue +85 -0
  70. package/src/components/Common/CheckYesNo.vue +91 -0
  71. package/src/components/Common/LabelItem.vue +106 -0
  72. package/src/components/Common/LoadingWinBar.vue +115 -0
  73. package/src/components/Layout.vue +160 -0
  74. package/src/components/LayoutContent.vue +193 -0
  75. package/src/components/LayoutContentUsers.vue +498 -0
  76. package/src/components/LayoutState.vue +91 -0
  77. package/src/components/PageLogin.vue +524 -0
  78. package/src/components/VeUser.vue +446 -0
  79. package/src/components/ruleGroup.vue +645 -0
  80. package/src/main.js +97 -0
  81. package/src/plugins/mDataSelectorSchema.mjs +30 -0
  82. package/src/plugins/mDataSupport.mjs +23 -0
  83. package/src/plugins/mShare.mjs +229 -0
  84. package/src/plugins/mUI.mjs +229 -0
  85. package/src/schema/gi.mjs +8 -0
  86. package/src/schema/index.mjs +18 -0
  87. package/src/schema/tables/tokens.mjs +70 -0
  88. package/src/schema/tables/users.mjs +110 -0
  89. package/src/store/actions.mjs +1 -0
  90. package/src/store/getters.mjs +1 -0
  91. package/src/store/index.mjs +25 -0
  92. package/src/store/mutations.mjs +333 -0
  93. package/src/store/types.mjs +15 -0
  94. package/srv.mjs +84 -0
  95. package/tableTags-web-sso.json +1 -0
  96. package/test/all.test.mjs +10 -0
  97. package/toolg/addVersion.mjs +4 -0
  98. package/toolg/cleanFolder.mjs +4 -0
  99. package/toolg/gDistRollup.mjs +36 -0
  100. package/toolg/genEntry.mjs +23 -0
  101. package/toolg/modifyReadme.mjs +4 -0
  102. package/vue.config.js +15 -0
@@ -0,0 +1,938 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+
5
+ <meta charset="utf-8">
6
+ <title>WWebSso - Documentation</title>
7
+
8
+
9
+ <script src="scripts/prettify/prettify.js"></script>
10
+ <script src="scripts/prettify/lang-css.js"></script>
11
+ <!--[if lt IE 9]>
12
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
13
+ <![endif]-->
14
+ <link type="text/css" rel="stylesheet" href="styles/prettify.css">
15
+ <link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
16
+ <script src="scripts/nav.js" defer></script>
17
+
18
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
19
+ </head>
20
+ <body>
21
+
22
+ <input type="checkbox" id="nav-trigger" class="nav-trigger" />
23
+ <label for="nav-trigger" class="navicon-button x">
24
+ <div class="navicon"></div>
25
+ </label>
26
+
27
+ <label for="nav-trigger" class="overlay"></label>
28
+
29
+ <nav >
30
+
31
+
32
+ <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="WWebSso.html">WWebSso</a></li></ul>
33
+
34
+ </nav>
35
+
36
+ <div id="main">
37
+
38
+ <h1 class="page-title">WWebSso</h1>
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+ <section>
47
+
48
+ <header>
49
+
50
+ <h2>
51
+
52
+ WWebSso
53
+
54
+ </h2>
55
+
56
+
57
+ </header>
58
+
59
+ <article>
60
+
61
+ <div class="container-overview">
62
+
63
+
64
+
65
+
66
+
67
+ <h4 class="name" id="WWebSso"><span class="type-signature"></span>new WWebSso<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>
68
+
69
+
70
+
71
+
72
+
73
+
74
+ <dl class="details">
75
+
76
+ <dt class="tag-description">Description:</dt>
77
+ <dd class="tag-description"><ul class="dummy"><li><p>權限伺服器</p></li></ul></dd>
78
+
79
+
80
+
81
+ <dt class="tag-source">Source:</dt>
82
+ <dd class="tag-source"><ul class="dummy"><li>
83
+ <a href="WWebSso.mjs.html">WWebSso.mjs</a>, <a href="WWebSso.mjs.html#line59">line 59</a>
84
+ </li></ul></dd>
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+ </dl>
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+ <h5 class="h5-examples">Example</h5>
129
+
130
+ <pre class="prettyprint"><code></code></pre>
131
+
132
+
133
+
134
+
135
+ <h5 class="h5-parameters">Parameters:</h5>
136
+
137
+
138
+ <table class="params">
139
+ <thead>
140
+ <tr>
141
+
142
+ <th>Name</th>
143
+
144
+
145
+ <th>Type</th>
146
+
147
+
148
+ <th>Attributes</th>
149
+
150
+
151
+
152
+ <th>Default</th>
153
+
154
+
155
+ <th class="last">Description</th>
156
+ </tr>
157
+ </thead>
158
+
159
+ <tbody>
160
+
161
+
162
+ <tr>
163
+
164
+ <td class="name"><code>WOrm</code></td>
165
+
166
+
167
+ <td class="type">
168
+
169
+
170
+ <span class="param-type">function</span>
171
+
172
+
173
+
174
+
175
+ </td>
176
+
177
+
178
+ <td class="attributes">
179
+
180
+
181
+
182
+
183
+
184
+ </td>
185
+
186
+
187
+
188
+ <td class="default">
189
+
190
+ </td>
191
+
192
+
193
+ <td class="description last"><p>輸入資料庫ORM函數</p></td>
194
+ </tr>
195
+
196
+
197
+
198
+ <tr>
199
+
200
+ <td class="name"><code>url</code></td>
201
+
202
+
203
+ <td class="type">
204
+
205
+
206
+ <span class="param-type">String</span>
207
+
208
+
209
+
210
+
211
+ </td>
212
+
213
+
214
+ <td class="attributes">
215
+
216
+
217
+
218
+
219
+
220
+ </td>
221
+
222
+
223
+
224
+ <td class="default">
225
+
226
+ </td>
227
+
228
+
229
+ <td class="description last"><p>輸入資料庫連線字串,例如'mongodb://sername:password@$127.0.0.1:27017'</p></td>
230
+ </tr>
231
+
232
+
233
+
234
+ <tr>
235
+
236
+ <td class="name"><code>db</code></td>
237
+
238
+
239
+ <td class="type">
240
+
241
+
242
+ <span class="param-type">String</span>
243
+
244
+
245
+
246
+
247
+ </td>
248
+
249
+
250
+ <td class="attributes">
251
+
252
+
253
+
254
+
255
+
256
+ </td>
257
+
258
+
259
+
260
+ <td class="default">
261
+
262
+ </td>
263
+
264
+
265
+ <td class="description last"><p>輸入資料庫名稱字串</p></td>
266
+ </tr>
267
+
268
+
269
+
270
+ <tr>
271
+
272
+ <td class="name"><code>getUserByToken</code></td>
273
+
274
+
275
+ <td class="type">
276
+
277
+
278
+ <span class="param-type">function</span>
279
+
280
+
281
+
282
+
283
+ </td>
284
+
285
+
286
+ <td class="attributes">
287
+
288
+
289
+
290
+
291
+
292
+ </td>
293
+
294
+
295
+
296
+ <td class="default">
297
+
298
+ </td>
299
+
300
+
301
+ <td class="description last"><p>輸入處理函數,函數會傳入使用者token,通過此函數處理後並回傳使用者資訊物件,並至少須提供'id'、'email'、'name'、'isAdmin'欄位,且'isAdmin'限輸入'y'或'n',且輸入'y'時會複寫權限系統該使用者之'isAdmin'欄位值</p></td>
302
+ </tr>
303
+
304
+
305
+
306
+ <tr>
307
+
308
+ <td class="name"><code>verifyBrowserUser</code></td>
309
+
310
+
311
+ <td class="type">
312
+
313
+
314
+ <span class="param-type">function</span>
315
+
316
+
317
+
318
+
319
+ </td>
320
+
321
+
322
+ <td class="attributes">
323
+
324
+
325
+
326
+
327
+
328
+ </td>
329
+
330
+
331
+
332
+ <td class="default">
333
+
334
+ </td>
335
+
336
+
337
+ <td class="description last"><p>輸入驗證瀏覽使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false</p></td>
338
+ </tr>
339
+
340
+
341
+
342
+ <tr>
343
+
344
+ <td class="name"><code>verifyAppUser</code></td>
345
+
346
+
347
+ <td class="type">
348
+
349
+
350
+ <span class="param-type">function</span>
351
+
352
+
353
+
354
+
355
+ </td>
356
+
357
+
358
+ <td class="attributes">
359
+
360
+
361
+
362
+
363
+
364
+ </td>
365
+
366
+
367
+
368
+ <td class="default">
369
+
370
+ </td>
371
+
372
+
373
+ <td class="description last"><p>輸入驗證應用程序使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false</p></td>
374
+ </tr>
375
+
376
+
377
+
378
+ <tr>
379
+
380
+ <td class="name"><code>opt</code></td>
381
+
382
+
383
+ <td class="type">
384
+
385
+
386
+ <span class="param-type">Object</span>
387
+
388
+
389
+
390
+
391
+ </td>
392
+
393
+
394
+ <td class="attributes">
395
+
396
+ &lt;optional><br>
397
+
398
+
399
+
400
+
401
+
402
+ </td>
403
+
404
+
405
+
406
+ <td class="default">
407
+
408
+ <code>{}</code>
409
+
410
+ </td>
411
+
412
+
413
+ <td class="description last"><p>輸入設定物件,預設{}</p>
414
+ <h6>Properties</h6>
415
+
416
+
417
+ <table class="params">
418
+ <thead>
419
+ <tr>
420
+
421
+ <th>Name</th>
422
+
423
+
424
+ <th>Type</th>
425
+
426
+
427
+ <th>Attributes</th>
428
+
429
+
430
+
431
+ <th>Default</th>
432
+
433
+
434
+ <th class="last">Description</th>
435
+ </tr>
436
+ </thead>
437
+
438
+ <tbody>
439
+
440
+
441
+ <tr>
442
+
443
+ <td class="name"><code>serverPort</code></td>
444
+
445
+
446
+ <td class="type">
447
+
448
+
449
+ <span class="param-type">Integer</span>
450
+
451
+
452
+
453
+
454
+ </td>
455
+
456
+
457
+ <td class="attributes">
458
+
459
+ &lt;optional><br>
460
+
461
+
462
+
463
+
464
+
465
+ </td>
466
+
467
+
468
+
469
+ <td class="default">
470
+
471
+ <code>11007</code>
472
+
473
+ </td>
474
+
475
+
476
+ <td class="description last"><p>輸入伺服器通訊port,預設11006</p></td>
477
+ </tr>
478
+
479
+
480
+
481
+ <tr>
482
+
483
+ <td class="name"><code>bCheckUser</code></td>
484
+
485
+
486
+ <td class="type">
487
+
488
+
489
+ <span class="param-type">Boolean</span>
490
+
491
+
492
+
493
+
494
+ </td>
495
+
496
+
497
+ <td class="attributes">
498
+
499
+ &lt;optional><br>
500
+
501
+
502
+
503
+
504
+
505
+ </td>
506
+
507
+
508
+
509
+ <td class="default">
510
+
511
+ <code>false</code>
512
+
513
+ </td>
514
+
515
+
516
+ <td class="description last"><p>輸入是否檢查使用者資訊布林值,預設false</p></td>
517
+ </tr>
518
+
519
+
520
+
521
+ <tr>
522
+
523
+ <td class="name"><code>getUserById</code></td>
524
+
525
+
526
+ <td class="type">
527
+
528
+
529
+ <span class="param-type">function</span>
530
+
531
+
532
+
533
+
534
+ </td>
535
+
536
+
537
+ <td class="attributes">
538
+
539
+ &lt;optional><br>
540
+
541
+
542
+
543
+
544
+
545
+ </td>
546
+
547
+
548
+
549
+ <td class="default">
550
+
551
+ <code>null</code>
552
+
553
+ </td>
554
+
555
+
556
+ <td class="description last"><p>輸入當bCheckUser=true時依照使用者ID取得使用者資訊物件函數,預設null</p></td>
557
+ </tr>
558
+
559
+
560
+
561
+ <tr>
562
+
563
+ <td class="name"><code>bExcludeWhenNotAdmin</code></td>
564
+
565
+
566
+ <td class="type">
567
+
568
+
569
+ <span class="param-type">Boolean</span>
570
+
571
+
572
+
573
+
574
+ </td>
575
+
576
+
577
+ <td class="attributes">
578
+
579
+ &lt;optional><br>
580
+
581
+
582
+
583
+
584
+
585
+ </td>
586
+
587
+
588
+
589
+ <td class="default">
590
+
591
+ <code>false</code>
592
+
593
+ </td>
594
+
595
+
596
+ <td class="description last"><p>輸入使用ORM的select方法時是否自動刪除數據內isActive欄位之布林值,預設false</p></td>
597
+ </tr>
598
+
599
+
600
+
601
+ <tr>
602
+
603
+ <td class="name"><code>webName</code></td>
604
+
605
+
606
+ <td class="type">
607
+
608
+
609
+ <span class="param-type">Object</span>
610
+
611
+
612
+
613
+
614
+ </td>
615
+
616
+
617
+ <td class="attributes">
618
+
619
+ &lt;optional><br>
620
+
621
+
622
+
623
+
624
+
625
+ </td>
626
+
627
+
628
+
629
+ <td class="default">
630
+
631
+ <code>{}</code>
632
+
633
+ </td>
634
+
635
+
636
+ <td class="description last"><p>輸入站台名稱物件,至少包含語系eng與cht鍵的名稱,預設{}</p></td>
637
+ </tr>
638
+
639
+
640
+
641
+ <tr>
642
+
643
+ <td class="name"><code>webDescription</code></td>
644
+
645
+
646
+ <td class="type">
647
+
648
+
649
+ <span class="param-type">Object</span>
650
+
651
+
652
+
653
+
654
+ </td>
655
+
656
+
657
+ <td class="attributes">
658
+
659
+ &lt;optional><br>
660
+
661
+
662
+
663
+
664
+
665
+ </td>
666
+
667
+
668
+
669
+ <td class="default">
670
+
671
+ <code>{}</code>
672
+
673
+ </td>
674
+
675
+
676
+ <td class="description last"><p>輸入站台描述物件,至少包含語系eng與cht鍵的名稱,預設{}</p></td>
677
+ </tr>
678
+
679
+
680
+
681
+ <tr>
682
+
683
+ <td class="name"><code>webLogo</code></td>
684
+
685
+
686
+ <td class="type">
687
+
688
+
689
+ <span class="param-type">String</span>
690
+
691
+
692
+
693
+
694
+ </td>
695
+
696
+
697
+ <td class="attributes">
698
+
699
+ &lt;optional><br>
700
+
701
+
702
+
703
+
704
+
705
+ </td>
706
+
707
+
708
+
709
+ <td class="default">
710
+
711
+ <code>''</code>
712
+
713
+ </td>
714
+
715
+
716
+ <td class="description last"><p>輸入站台logo字串,採base64格式,預設''</p></td>
717
+ </tr>
718
+
719
+
720
+
721
+ <tr>
722
+
723
+ <td class="name"><code>subfolder</code></td>
724
+
725
+
726
+ <td class="type">
727
+
728
+
729
+ <span class="param-type">String</span>
730
+
731
+
732
+
733
+
734
+ </td>
735
+
736
+
737
+ <td class="attributes">
738
+
739
+ &lt;optional><br>
740
+
741
+
742
+
743
+
744
+
745
+ </td>
746
+
747
+
748
+
749
+ <td class="default">
750
+
751
+ <code>''</code>
752
+
753
+ </td>
754
+
755
+
756
+ <td class="description last"><p>輸入站台所在子目錄字串,提供站台位於內網採反向代理進行服務時,故需支援位於子目錄情形,預設''</p></td>
757
+ </tr>
758
+
759
+
760
+
761
+ <tr>
762
+
763
+ <td class="name"><code>urlRedirect</code></td>
764
+
765
+
766
+ <td class="type">
767
+
768
+
769
+ <span class="param-type">String</span>
770
+
771
+
772
+
773
+
774
+ </td>
775
+
776
+
777
+ <td class="attributes">
778
+
779
+ &lt;optional><br>
780
+
781
+
782
+
783
+
784
+
785
+ </td>
786
+
787
+
788
+
789
+ <td class="default">
790
+
791
+ <code>''</code>
792
+
793
+ </td>
794
+
795
+
796
+ <td class="description last"><p>輸入錯誤時自動轉址字串,提供站台例如無法登入或驗證失敗時須自動轉址,預設''</p></td>
797
+ </tr>
798
+
799
+
800
+
801
+ <tr>
802
+
803
+ <td class="name"><code>mappingBy</code></td>
804
+
805
+
806
+ <td class="type">
807
+
808
+
809
+ <span class="param-type">String</span>
810
+
811
+
812
+
813
+
814
+ </td>
815
+
816
+
817
+ <td class="attributes">
818
+
819
+ &lt;optional><br>
820
+
821
+
822
+
823
+
824
+
825
+ </td>
826
+
827
+
828
+
829
+ <td class="default">
830
+
831
+ <code>'email'</code>
832
+
833
+ </td>
834
+
835
+
836
+ <td class="description last"><p>輸入外部系統識別使用者token後所提供之資料物件,與權限系統之使用者資料物件,兩者間查找之對應欄位,可選'id'、'email'、'name',預設'email'</p></td>
837
+ </tr>
838
+
839
+
840
+ </tbody>
841
+ </table>
842
+
843
+ </td>
844
+ </tr>
845
+
846
+
847
+ </tbody>
848
+ </table>
849
+
850
+
851
+
852
+
853
+
854
+
855
+
856
+
857
+
858
+
859
+
860
+
861
+
862
+
863
+
864
+
865
+ <h5 class="h5-returns">Returns:</h5>
866
+
867
+
868
+ <div class="param-desc">
869
+ <p>回傳物件,其內server為hapi伺服器實體,wsrv為w-converhp的伺服器事件物件,wsds為w-serv-webdata的伺服器事件物件,可監聽error事件</p>
870
+ </div>
871
+
872
+
873
+
874
+ <dl class="param-type">
875
+ <dt>
876
+ Type
877
+ </dt>
878
+ <dd>
879
+
880
+ <span class="param-type">Object</span>
881
+
882
+
883
+
884
+ </dd>
885
+ </dl>
886
+
887
+
888
+
889
+
890
+
891
+
892
+ </div>
893
+
894
+
895
+
896
+
897
+
898
+
899
+
900
+
901
+
902
+
903
+
904
+
905
+
906
+
907
+
908
+
909
+
910
+
911
+
912
+
913
+
914
+ </article>
915
+
916
+ </section>
917
+
918
+
919
+
920
+
921
+
922
+
923
+ </div>
924
+
925
+ <br class="clear">
926
+
927
+ <footer>
928
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Mon Apr 15 2024 15:51:53 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
929
+ </footer>
930
+
931
+ <script>prettyPrint();</script>
932
+ <script src="scripts/polyfill.js"></script>
933
+ <script src="scripts/linenumber.js"></script>
934
+
935
+
936
+
937
+ </body>
938
+ </html>