├── client ├── index.html ├── package.json ├── public │ ├── docx │ │ ├── docx-preview.js │ │ ├── index.html │ │ ├── jszip.min.js │ │ └── polyfill.min.js │ ├── epub │ │ ├── epub.js │ │ ├── examples.css │ │ ├── index.html │ │ └── jszip.min.js │ ├── md │ │ └── index.html │ ├── pdfjs │ │ ├── LICENSE │ │ ├── build │ │ │ ├── pdf.js │ │ │ ├── pdf.js.map │ │ │ ├── pdf.sandbox.js │ │ │ ├── pdf.sandbox.js.map │ │ │ ├── pdf.worker.js │ │ │ └── pdf.worker.js.map │ │ └── web │ │ │ ├── cmaps │ │ │ ├── 78-EUC-H.bcmap │ │ │ ├── 78-EUC-V.bcmap │ │ │ ├── 78-H.bcmap │ │ │ ├── 78-RKSJ-H.bcmap │ │ │ ├── 78-RKSJ-V.bcmap │ │ │ ├── 78-V.bcmap │ │ │ ├── 78ms-RKSJ-H.bcmap │ │ │ ├── 78ms-RKSJ-V.bcmap │ │ │ ├── 83pv-RKSJ-H.bcmap │ │ │ ├── 90ms-RKSJ-H.bcmap │ │ │ ├── 90ms-RKSJ-V.bcmap │ │ │ ├── 90msp-RKSJ-H.bcmap │ │ │ ├── 90msp-RKSJ-V.bcmap │ │ │ ├── 90pv-RKSJ-H.bcmap │ │ │ ├── 90pv-RKSJ-V.bcmap │ │ │ ├── Add-H.bcmap │ │ │ ├── Add-RKSJ-H.bcmap │ │ │ ├── Add-RKSJ-V.bcmap │ │ │ ├── Add-V.bcmap │ │ │ ├── Adobe-CNS1-0.bcmap │ │ │ ├── Adobe-CNS1-1.bcmap │ │ │ ├── Adobe-CNS1-2.bcmap │ │ │ ├── Adobe-CNS1-3.bcmap │ │ │ ├── Adobe-CNS1-4.bcmap │ │ │ ├── Adobe-CNS1-5.bcmap │ │ │ ├── Adobe-CNS1-6.bcmap │ │ │ ├── Adobe-CNS1-UCS2.bcmap │ │ │ ├── Adobe-GB1-0.bcmap │ │ │ ├── Adobe-GB1-1.bcmap │ │ │ ├── Adobe-GB1-2.bcmap │ │ │ ├── Adobe-GB1-3.bcmap │ │ │ ├── Adobe-GB1-4.bcmap │ │ │ ├── Adobe-GB1-5.bcmap │ │ │ ├── Adobe-GB1-UCS2.bcmap │ │ │ ├── Adobe-Japan1-0.bcmap │ │ │ ├── Adobe-Japan1-1.bcmap │ │ │ ├── Adobe-Japan1-2.bcmap │ │ │ ├── Adobe-Japan1-3.bcmap │ │ │ ├── Adobe-Japan1-4.bcmap │ │ │ ├── Adobe-Japan1-5.bcmap │ │ │ ├── Adobe-Japan1-6.bcmap │ │ │ ├── Adobe-Japan1-UCS2.bcmap │ │ │ ├── Adobe-Korea1-0.bcmap │ │ │ ├── Adobe-Korea1-1.bcmap │ │ │ ├── Adobe-Korea1-2.bcmap │ │ │ ├── Adobe-Korea1-UCS2.bcmap │ │ │ ├── B5-H.bcmap │ │ │ ├── B5-V.bcmap │ │ │ ├── B5pc-H.bcmap │ │ │ ├── B5pc-V.bcmap │ │ │ ├── CNS-EUC-H.bcmap │ │ │ ├── CNS-EUC-V.bcmap │ │ │ ├── CNS1-H.bcmap │ │ │ ├── CNS1-V.bcmap │ │ │ ├── CNS2-H.bcmap │ │ │ ├── CNS2-V.bcmap │ │ │ ├── ETHK-B5-H.bcmap │ │ │ ├── ETHK-B5-V.bcmap │ │ │ ├── ETen-B5-H.bcmap │ │ │ ├── ETen-B5-V.bcmap │ │ │ ├── ETenms-B5-H.bcmap │ │ │ ├── ETenms-B5-V.bcmap │ │ │ ├── EUC-H.bcmap │ │ │ ├── EUC-V.bcmap │ │ │ ├── Ext-H.bcmap │ │ │ ├── Ext-RKSJ-H.bcmap │ │ │ ├── Ext-RKSJ-V.bcmap │ │ │ ├── Ext-V.bcmap │ │ │ ├── GB-EUC-H.bcmap │ │ │ ├── GB-EUC-V.bcmap │ │ │ ├── GB-H.bcmap │ │ │ ├── GB-V.bcmap │ │ │ ├── GBK-EUC-H.bcmap │ │ │ ├── GBK-EUC-V.bcmap │ │ │ ├── GBK2K-H.bcmap │ │ │ ├── GBK2K-V.bcmap │ │ │ ├── GBKp-EUC-H.bcmap │ │ │ ├── GBKp-EUC-V.bcmap │ │ │ ├── GBT-EUC-H.bcmap │ │ │ ├── GBT-EUC-V.bcmap │ │ │ ├── GBT-H.bcmap │ │ │ ├── GBT-V.bcmap │ │ │ ├── GBTpc-EUC-H.bcmap │ │ │ ├── GBTpc-EUC-V.bcmap │ │ │ ├── GBpc-EUC-H.bcmap │ │ │ ├── GBpc-EUC-V.bcmap │ │ │ ├── H.bcmap │ │ │ ├── HKdla-B5-H.bcmap │ │ │ ├── HKdla-B5-V.bcmap │ │ │ ├── HKdlb-B5-H.bcmap │ │ │ ├── HKdlb-B5-V.bcmap │ │ │ ├── HKgccs-B5-H.bcmap │ │ │ ├── HKgccs-B5-V.bcmap │ │ │ ├── HKm314-B5-H.bcmap │ │ │ ├── HKm314-B5-V.bcmap │ │ │ ├── HKm471-B5-H.bcmap │ │ │ ├── HKm471-B5-V.bcmap │ │ │ ├── HKscs-B5-H.bcmap │ │ │ ├── HKscs-B5-V.bcmap │ │ │ ├── Hankaku.bcmap │ │ │ ├── Hiragana.bcmap │ │ │ ├── KSC-EUC-H.bcmap │ │ │ ├── KSC-EUC-V.bcmap │ │ │ ├── KSC-H.bcmap │ │ │ ├── KSC-Johab-H.bcmap │ │ │ ├── KSC-Johab-V.bcmap │ │ │ ├── KSC-V.bcmap │ │ │ ├── KSCms-UHC-H.bcmap │ │ │ ├── KSCms-UHC-HW-H.bcmap │ │ │ ├── KSCms-UHC-HW-V.bcmap │ │ │ ├── KSCms-UHC-V.bcmap │ │ │ ├── KSCpc-EUC-H.bcmap │ │ │ ├── KSCpc-EUC-V.bcmap │ │ │ ├── Katakana.bcmap │ │ │ ├── LICENSE │ │ │ ├── NWP-H.bcmap │ │ │ ├── NWP-V.bcmap │ │ │ ├── RKSJ-H.bcmap │ │ │ ├── RKSJ-V.bcmap │ │ │ ├── Roman.bcmap │ │ │ ├── UniCNS-UCS2-H.bcmap │ │ │ ├── UniCNS-UCS2-V.bcmap │ │ │ ├── UniCNS-UTF16-H.bcmap │ │ │ ├── UniCNS-UTF16-V.bcmap │ │ │ ├── UniCNS-UTF32-H.bcmap │ │ │ ├── UniCNS-UTF32-V.bcmap │ │ │ ├── UniCNS-UTF8-H.bcmap │ │ │ ├── UniCNS-UTF8-V.bcmap │ │ │ ├── UniGB-UCS2-H.bcmap │ │ │ ├── UniGB-UCS2-V.bcmap │ │ │ ├── UniGB-UTF16-H.bcmap │ │ │ ├── UniGB-UTF16-V.bcmap │ │ │ ├── UniGB-UTF32-H.bcmap │ │ │ ├── UniGB-UTF32-V.bcmap │ │ │ ├── UniGB-UTF8-H.bcmap │ │ │ ├── UniGB-UTF8-V.bcmap │ │ │ ├── UniJIS-UCS2-H.bcmap │ │ │ ├── UniJIS-UCS2-HW-H.bcmap │ │ │ ├── UniJIS-UCS2-HW-V.bcmap │ │ │ ├── UniJIS-UCS2-V.bcmap │ │ │ ├── UniJIS-UTF16-H.bcmap │ │ │ ├── UniJIS-UTF16-V.bcmap │ │ │ ├── UniJIS-UTF32-H.bcmap │ │ │ ├── UniJIS-UTF32-V.bcmap │ │ │ ├── UniJIS-UTF8-H.bcmap │ │ │ ├── UniJIS-UTF8-V.bcmap │ │ │ ├── UniJIS2004-UTF16-H.bcmap │ │ │ ├── UniJIS2004-UTF16-V.bcmap │ │ │ ├── UniJIS2004-UTF32-H.bcmap │ │ │ ├── UniJIS2004-UTF32-V.bcmap │ │ │ ├── UniJIS2004-UTF8-H.bcmap │ │ │ ├── UniJIS2004-UTF8-V.bcmap │ │ │ ├── UniJISPro-UCS2-HW-V.bcmap │ │ │ ├── UniJISPro-UCS2-V.bcmap │ │ │ ├── UniJISPro-UTF8-V.bcmap │ │ │ ├── UniJISX0213-UTF32-H.bcmap │ │ │ ├── UniJISX0213-UTF32-V.bcmap │ │ │ ├── UniJISX02132004-UTF32-H.bcmap │ │ │ ├── UniJISX02132004-UTF32-V.bcmap │ │ │ ├── UniKS-UCS2-H.bcmap │ │ │ ├── UniKS-UCS2-V.bcmap │ │ │ ├── UniKS-UTF16-H.bcmap │ │ │ ├── UniKS-UTF16-V.bcmap │ │ │ ├── UniKS-UTF32-H.bcmap │ │ │ ├── UniKS-UTF32-V.bcmap │ │ │ ├── UniKS-UTF8-H.bcmap │ │ │ ├── UniKS-UTF8-V.bcmap │ │ │ ├── V.bcmap │ │ │ └── WP-Symbol.bcmap │ │ │ ├── compressed.tracemonkey-pldi-09.pdf │ │ │ ├── debugger.css │ │ │ ├── debugger.js │ │ │ ├── images │ │ │ ├── annotation-check.svg │ │ │ ├── annotation-comment.svg │ │ │ ├── annotation-help.svg │ │ │ ├── annotation-insert.svg │ │ │ ├── annotation-key.svg │ │ │ ├── annotation-newparagraph.svg │ │ │ ├── annotation-noicon.svg │ │ │ ├── annotation-note.svg │ │ │ ├── annotation-paperclip.svg │ │ │ ├── annotation-paragraph.svg │ │ │ ├── annotation-pushpin.svg │ │ │ ├── cursor-editorFreeText.svg │ │ │ ├── cursor-editorInk.svg │ │ │ ├── findbarButton-next.svg │ │ │ ├── findbarButton-previous.svg │ │ │ ├── loading-dark.svg │ │ │ ├── loading-icon.gif │ │ │ ├── loading.svg │ │ │ ├── secondaryToolbarButton-documentProperties.svg │ │ │ ├── secondaryToolbarButton-firstPage.svg │ │ │ ├── secondaryToolbarButton-handTool.svg │ │ │ ├── secondaryToolbarButton-lastPage.svg │ │ │ ├── secondaryToolbarButton-rotateCcw.svg │ │ │ ├── secondaryToolbarButton-rotateCw.svg │ │ │ ├── secondaryToolbarButton-scrollHorizontal.svg │ │ │ ├── secondaryToolbarButton-scrollPage.svg │ │ │ ├── secondaryToolbarButton-scrollVertical.svg │ │ │ ├── secondaryToolbarButton-scrollWrapped.svg │ │ │ ├── secondaryToolbarButton-selectTool.svg │ │ │ ├── secondaryToolbarButton-spreadEven.svg │ │ │ ├── secondaryToolbarButton-spreadNone.svg │ │ │ ├── secondaryToolbarButton-spreadOdd.svg │ │ │ ├── toolbarButton-bookmark.svg │ │ │ ├── toolbarButton-currentOutlineItem.svg │ │ │ ├── toolbarButton-download.svg │ │ │ ├── toolbarButton-editorFreeText.svg │ │ │ ├── toolbarButton-editorInk.svg │ │ │ ├── toolbarButton-menuArrow.svg │ │ │ ├── toolbarButton-openFile.svg │ │ │ ├── toolbarButton-pageDown.svg │ │ │ ├── toolbarButton-pageUp.svg │ │ │ ├── toolbarButton-presentationMode.svg │ │ │ ├── toolbarButton-print.svg │ │ │ ├── toolbarButton-search.svg │ │ │ ├── toolbarButton-secondaryToolbarToggle.svg │ │ │ ├── toolbarButton-sidebarToggle.svg │ │ │ ├── toolbarButton-viewAttachments.svg │ │ │ ├── toolbarButton-viewLayers.svg │ │ │ ├── toolbarButton-viewOutline.svg │ │ │ ├── toolbarButton-viewThumbnail.svg │ │ │ ├── toolbarButton-zoomIn.svg │ │ │ ├── toolbarButton-zoomOut.svg │ │ │ ├── treeitem-collapsed.svg │ │ │ └── treeitem-expanded.svg │ │ │ ├── locale │ │ │ ├── ach │ │ │ │ └── viewer.properties │ │ │ ├── af │ │ │ │ └── viewer.properties │ │ │ ├── an │ │ │ │ └── viewer.properties │ │ │ ├── ar │ │ │ │ └── viewer.properties │ │ │ ├── ast │ │ │ │ └── viewer.properties │ │ │ ├── az │ │ │ │ └── viewer.properties │ │ │ ├── be │ │ │ │ └── viewer.properties │ │ │ ├── bg │ │ │ │ └── viewer.properties │ │ │ ├── bn │ │ │ │ └── viewer.properties │ │ │ ├── bo │ │ │ │ └── viewer.properties │ │ │ ├── br │ │ │ │ └── viewer.properties │ │ │ ├── brx │ │ │ │ └── viewer.properties │ │ │ ├── bs │ │ │ │ └── viewer.properties │ │ │ ├── ca │ │ │ │ └── viewer.properties │ │ │ ├── cak │ │ │ │ └── viewer.properties │ │ │ ├── ckb │ │ │ │ └── viewer.properties │ │ │ ├── cs │ │ │ │ └── viewer.properties │ │ │ ├── cy │ │ │ │ └── viewer.properties │ │ │ ├── da │ │ │ │ └── viewer.properties │ │ │ ├── de │ │ │ │ └── viewer.properties │ │ │ ├── dsb │ │ │ │ └── viewer.properties │ │ │ ├── el │ │ │ │ └── viewer.properties │ │ │ ├── en-CA │ │ │ │ └── viewer.properties │ │ │ ├── en-GB │ │ │ │ └── viewer.properties │ │ │ ├── en-US │ │ │ │ └── viewer.properties │ │ │ ├── eo │ │ │ │ └── viewer.properties │ │ │ ├── es-AR │ │ │ │ └── viewer.properties │ │ │ ├── es-CL │ │ │ │ └── viewer.properties │ │ │ ├── es-ES │ │ │ │ └── viewer.properties │ │ │ ├── es-MX │ │ │ │ └── viewer.properties │ │ │ ├── et │ │ │ │ └── viewer.properties │ │ │ ├── eu │ │ │ │ └── viewer.properties │ │ │ ├── fa │ │ │ │ └── viewer.properties │ │ │ ├── ff │ │ │ │ └── viewer.properties │ │ │ ├── fi │ │ │ │ └── viewer.properties │ │ │ ├── fr │ │ │ │ └── viewer.properties │ │ │ ├── fur │ │ │ │ └── viewer.properties │ │ │ ├── fy-NL │ │ │ │ └── viewer.properties │ │ │ ├── ga-IE │ │ │ │ └── viewer.properties │ │ │ ├── gd │ │ │ │ └── viewer.properties │ │ │ ├── gl │ │ │ │ └── viewer.properties │ │ │ ├── gn │ │ │ │ └── viewer.properties │ │ │ ├── gu-IN │ │ │ │ └── viewer.properties │ │ │ ├── he │ │ │ │ └── viewer.properties │ │ │ ├── hi-IN │ │ │ │ └── viewer.properties │ │ │ ├── hr │ │ │ │ └── viewer.properties │ │ │ ├── hsb │ │ │ │ └── viewer.properties │ │ │ ├── hu │ │ │ │ └── viewer.properties │ │ │ ├── hy-AM │ │ │ │ └── viewer.properties │ │ │ ├── hye │ │ │ │ └── viewer.properties │ │ │ ├── ia │ │ │ │ └── viewer.properties │ │ │ ├── id │ │ │ │ └── viewer.properties │ │ │ ├── is │ │ │ │ └── viewer.properties │ │ │ ├── it │ │ │ │ └── viewer.properties │ │ │ ├── ja │ │ │ │ └── viewer.properties │ │ │ ├── ka │ │ │ │ └── viewer.properties │ │ │ ├── kab │ │ │ │ └── viewer.properties │ │ │ ├── kk │ │ │ │ └── viewer.properties │ │ │ ├── km │ │ │ │ └── viewer.properties │ │ │ ├── kn │ │ │ │ └── viewer.properties │ │ │ ├── ko │ │ │ │ └── viewer.properties │ │ │ ├── lij │ │ │ │ └── viewer.properties │ │ │ ├── lo │ │ │ │ └── viewer.properties │ │ │ ├── locale.properties │ │ │ ├── lt │ │ │ │ └── viewer.properties │ │ │ ├── ltg │ │ │ │ └── viewer.properties │ │ │ ├── lv │ │ │ │ └── viewer.properties │ │ │ ├── meh │ │ │ │ └── viewer.properties │ │ │ ├── mk │ │ │ │ └── viewer.properties │ │ │ ├── mr │ │ │ │ └── viewer.properties │ │ │ ├── ms │ │ │ │ └── viewer.properties │ │ │ ├── my │ │ │ │ └── viewer.properties │ │ │ ├── nb-NO │ │ │ │ └── viewer.properties │ │ │ ├── ne-NP │ │ │ │ └── viewer.properties │ │ │ ├── nl │ │ │ │ └── viewer.properties │ │ │ ├── nn-NO │ │ │ │ └── viewer.properties │ │ │ ├── oc │ │ │ │ └── viewer.properties │ │ │ ├── pa-IN │ │ │ │ └── viewer.properties │ │ │ ├── pl │ │ │ │ └── viewer.properties │ │ │ ├── pt-BR │ │ │ │ └── viewer.properties │ │ │ ├── pt-PT │ │ │ │ └── viewer.properties │ │ │ ├── rm │ │ │ │ └── viewer.properties │ │ │ ├── ro │ │ │ │ └── viewer.properties │ │ │ ├── ru │ │ │ │ └── viewer.properties │ │ │ ├── sat │ │ │ │ └── viewer.properties │ │ │ ├── sc │ │ │ │ └── viewer.properties │ │ │ ├── scn │ │ │ │ └── viewer.properties │ │ │ ├── sco │ │ │ │ └── viewer.properties │ │ │ ├── si │ │ │ │ └── viewer.properties │ │ │ ├── sk │ │ │ │ └── viewer.properties │ │ │ ├── skr │ │ │ │ └── viewer.properties │ │ │ ├── sl │ │ │ │ └── viewer.properties │ │ │ ├── son │ │ │ │ └── viewer.properties │ │ │ ├── sq │ │ │ │ └── viewer.properties │ │ │ ├── sr │ │ │ │ └── viewer.properties │ │ │ ├── sv-SE │ │ │ │ └── viewer.properties │ │ │ ├── szl │ │ │ │ └── viewer.properties │ │ │ ├── ta │ │ │ │ └── viewer.properties │ │ │ ├── te │ │ │ │ └── viewer.properties │ │ │ ├── tg │ │ │ │ └── viewer.properties │ │ │ ├── th │ │ │ │ └── viewer.properties │ │ │ ├── tl │ │ │ │ └── viewer.properties │ │ │ ├── tr │ │ │ │ └── viewer.properties │ │ │ ├── trs │ │ │ │ └── viewer.properties │ │ │ ├── uk │ │ │ │ └── viewer.properties │ │ │ ├── ur │ │ │ │ └── viewer.properties │ │ │ ├── uz │ │ │ │ └── viewer.properties │ │ │ ├── vi │ │ │ │ └── viewer.properties │ │ │ ├── wo │ │ │ │ └── viewer.properties │ │ │ ├── xh │ │ │ │ └── viewer.properties │ │ │ ├── zh-CN │ │ │ │ └── viewer.properties │ │ │ └── zh-TW │ │ │ │ └── viewer.properties │ │ │ ├── standard_fonts │ │ │ ├── FoxitDingbats.pfb │ │ │ ├── FoxitFixed.pfb │ │ │ ├── FoxitFixedBold.pfb │ │ │ ├── FoxitFixedBoldItalic.pfb │ │ │ ├── FoxitFixedItalic.pfb │ │ │ ├── FoxitSans.pfb │ │ │ ├── FoxitSansBold.pfb │ │ │ ├── FoxitSansBoldItalic.pfb │ │ │ ├── FoxitSansItalic.pfb │ │ │ ├── FoxitSerif.pfb │ │ │ ├── FoxitSerifBold.pfb │ │ │ ├── FoxitSerifBoldItalic.pfb │ │ │ ├── FoxitSerifItalic.pfb │ │ │ ├── FoxitSymbol.pfb │ │ │ ├── LICENSE_FOXIT │ │ │ ├── LICENSE_LIBERATION │ │ │ ├── LiberationSans-Bold.ttf │ │ │ ├── LiberationSans-BoldItalic.ttf │ │ │ ├── LiberationSans-Italic.ttf │ │ │ └── LiberationSans-Regular.ttf │ │ │ ├── viewer.css │ │ │ ├── viewer.html │ │ │ ├── viewer.js │ │ │ └── viewer.js.map │ └── spinner.css ├── src │ ├── App.vue │ ├── api.js │ ├── assets │ │ ├── loading.svg │ │ └── send.svg │ ├── auth.js │ ├── main.js │ ├── router.js │ ├── store.js │ ├── styles │ │ ├── chatdata.css │ │ ├── login.css │ │ └── style.css │ ├── utils.js │ └── views │ │ ├── AddLink.vue │ │ ├── Apikey.vue │ │ ├── Chatdata.vue │ │ ├── Home.vue │ │ ├── Login.vue │ │ ├── Logout.vue │ │ ├── Upload.vue │ │ └── UserAccount.vue ├── start └── vite.config.js ├── docs ├── framework.md ├── install.md ├── miniconda_install.md └── todo.md ├── login.png ├── overview.jpeg ├── preview.png ├── readme.md └── server ├── chatdata ├── __init__.py ├── chat_test.py └── doc_util.py ├── database ├── __init__.py ├── database.db ├── db_docs.py ├── db_init.py ├── db_msg.py └── db_user.py ├── download_website.py ├── main.py ├── models.py ├── requirements.txt ├── start └── utils ├── __init__.py ├── consts.py ├── passwords.py ├── structs.py └── utils.py /client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | CharYourData 8 | 9 | 10 | 11 | 12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "client", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite --host", 8 | "build": "vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "@element-plus/icons-vue": "^2.1.0", 13 | "@tato30/vue-pdf": "^1.3.4", 14 | "axios": "^1.4.0", 15 | "element-plus": "^2.3.1", 16 | "normalize.css": "^8.0.1", 17 | "vite-svg-loader": "^4.0.0", 18 | "vue": "^3.2.47", 19 | "vue-pdf": "^4.3.0", 20 | "vue-router": "^4.1.6", 21 | "vuex": "^4.1.0" 22 | }, 23 | "devDependencies": { 24 | "@vitejs/plugin-vue": "^4.1.0", 25 | "sass": "^1.60.0", 26 | "vite": "^4.2.0" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /client/public/docx/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 35 | 36 | -------------------------------------------------------------------------------- /client/public/docx/polyfill.min.js: -------------------------------------------------------------------------------- 1 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t():"function"==typeof define&&define.amd?define(t):t()}(0,function(){"use strict";function e(e){var t=this.constructor;return this.then(function(n){return t.resolve(e()).then(function(){return n})},function(n){return t.resolve(e()).then(function(){return t.reject(n)})})}function t(e){return new this(function(t,n){function r(e,n){if(n&&("object"==typeof n||"function"==typeof n)){var f=n.then;if("function"==typeof f)return void f.call(n,function(t){r(e,t)},function(n){o[e]={status:"rejected",reason:n},0==--i&&t(o)})}o[e]={status:"fulfilled",value:n},0==--i&&t(o)}if(!e||"undefined"==typeof e.length)return n(new TypeError(typeof e+" "+e+" is not iterable(cannot read property Symbol(Symbol.iterator))"));var o=Array.prototype.slice.call(e);if(0===o.length)return t([]);for(var i=o.length,f=0;o.length>f;f++)r(f,o[f])})}function n(e,t){this.name="AggregateError",this.errors=e,this.message=t||""}function r(e){var t=this;return new t(function(r,o){if(!e||"undefined"==typeof e.length)return o(new TypeError("Promise.any accepts an array"));var i=Array.prototype.slice.call(e);if(0===i.length)return o();for(var f=[],u=0;i.length>u;u++)try{t.resolve(i[u]).then(r)["catch"](function(e){f.push(e),f.length===i.length&&o(new n(f,"All promises were rejected"))})}catch(c){o(c)}})}function o(e){return!(!e||"undefined"==typeof e.length)}function i(){}function f(e){if(!(this instanceof f))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],s(e,this)}function u(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,f._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var r;try{r=n(e._value)}catch(o){return void a(t.promise,o)}c(t.promise,r)}else(1===e._state?c:a)(t.promise,e._value)})):e._deferreds.push(t)}function c(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if(t instanceof f)return e._state=3,e._value=t,void l(e);if("function"==typeof n)return void s(function(e,t){return function(){e.apply(t,arguments)}}(n,t),e)}e._state=1,e._value=t,l(e)}catch(r){a(e,r)}}function a(e,t){e._state=2,e._value=t,l(e)}function l(e){2===e._state&&0===e._deferreds.length&&f._immediateFn(function(){e._handled||f._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;n>t;t++)u(e,e._deferreds[t]);e._deferreds=null}function s(e,t){var n=!1;try{e(function(e){n||(n=!0,c(t,e))},function(e){n||(n=!0,a(t,e))})}catch(r){if(n)return;n=!0,a(t,r)}}n.prototype=Error.prototype;var d=setTimeout;f.prototype["catch"]=function(e){return this.then(null,e)},f.prototype.then=function(e,t){var n=new this.constructor(i);return u(this,new function(e,t,n){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.promise=n}(e,t,n)),n},f.prototype["finally"]=e,f.all=function(e){return new f(function(t,n){function r(e,o){try{if(o&&("object"==typeof o||"function"==typeof o)){var u=o.then;if("function"==typeof u)return void u.call(o,function(t){r(e,t)},n)}i[e]=o,0==--f&&t(i)}catch(c){n(c)}}if(!o(e))return n(new TypeError("Promise.all accepts an array"));var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);for(var f=i.length,u=0;i.length>u;u++)r(u,i[u])})},f.any=r,f.allSettled=t,f.resolve=function(e){return e&&"object"==typeof e&&e.constructor===f?e:new f(function(t){t(e)})},f.reject=function(e){return new f(function(t,n){n(e)})},f.race=function(e){return new f(function(t,n){if(!o(e))return n(new TypeError("Promise.race accepts an array"));for(var r=0,i=e.length;i>r;r++)f.resolve(e[r]).then(t,n)})},f._immediateFn="function"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){d(e,0)},f._unhandledRejectionFn=function(e){void 0!==console&&console&&console.warn("Possible Unhandled Promise Rejection:",e)};var p=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw Error("unable to locate global object")}();"function"!=typeof p.Promise?p.Promise=f:(p.Promise.prototype["finally"]||(p.Promise.prototype["finally"]=e),p.Promise.allSettled||(p.Promise.allSettled=t),p.Promise.any||(p.Promise.any=r))}); 2 | -------------------------------------------------------------------------------- /client/public/epub/examples.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | background: #fafafa; 4 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 5 | color: #333; 6 | 7 | position: absolute; 8 | height: 100%; 9 | width: 100%; 10 | min-height: 800px; 11 | } 12 | 13 | #title { 14 | width: 900px; 15 | min-height: 18px; 16 | margin: 10px auto; 17 | text-align: center; 18 | font-size: 16px; 19 | color: #E2E2E2; 20 | font-weight: 400; 21 | } 22 | 23 | #title:hover { 24 | color: #777; 25 | } 26 | 27 | #viewer.spreads { 28 | width: 900px; 29 | height: 600px; 30 | box-shadow: 0 0 4px #ccc; 31 | border-radius: 5px; 32 | padding: 0; 33 | position: relative; 34 | margin: 10px auto; 35 | background: white url('ajax-loader.gif') center center no-repeat; 36 | top: calc(50vh - 400px); 37 | } 38 | 39 | #viewer.spreads .epub-view > iframe { 40 | background: white; 41 | } 42 | 43 | #viewer.scrolled { 44 | overflow: hidden; 45 | width: 800px; 46 | margin: 0 auto; 47 | position: relative; 48 | background: url('ajax-loader.gif') center center no-repeat; 49 | 50 | } 51 | 52 | #viewer.scrolled .epub-container { 53 | background: white; 54 | box-shadow: 0 0 4px #ccc; 55 | margin: 10px; 56 | padding: 20px; 57 | } 58 | 59 | #viewer.scrolled .epub-view > iframe { 60 | background: white; 61 | } 62 | 63 | #prev { 64 | left: 0; 65 | } 66 | 67 | #next { 68 | right: 0; 69 | } 70 | 71 | #toc { 72 | display: block; 73 | margin: 10px auto; 74 | } 75 | 76 | @media (min-width: 1000px) { 77 | #viewer.spreads:after { 78 | position: absolute; 79 | width: 1px; 80 | border-right: 1px #000 solid; 81 | height: 90%; 82 | z-index: 1; 83 | left: 50%; 84 | margin-left: -1px; 85 | top: 5%; 86 | opacity: .15; 87 | box-shadow: -2px 0 15px rgba(0, 0, 0, 1); 88 | content: ""; 89 | } 90 | 91 | #viewer.spreads.single:after { 92 | display: none; 93 | } 94 | 95 | #prev { 96 | left: 40px; 97 | } 98 | 99 | #next { 100 | right: 40px; 101 | } 102 | } 103 | 104 | .arrow { 105 | position: fixed; 106 | top: 50%; 107 | margin-top: -32px; 108 | font-size: 64px; 109 | color: #E2E2E2; 110 | font-family: arial, sans-serif; 111 | font-weight: bold; 112 | cursor: pointer; 113 | -webkit-user-select: none; 114 | -moz-user-select: none; 115 | user-select: none; 116 | text-decoration: none; 117 | } 118 | 119 | .navlink { 120 | margin: 14px; 121 | display: block; 122 | text-align: center; 123 | text-decoration: none; 124 | color: #ccc; 125 | } 126 | 127 | .arrow:hover, .navlink:hover { 128 | color: #777; 129 | } 130 | 131 | .arrow:active, .navlink:hover { 132 | color: #000; 133 | } 134 | 135 | #book-wrapper { 136 | width: 480px; 137 | height: 640px; 138 | overflow: hidden; 139 | border: 1px solid #ccc; 140 | margin: 28px auto; 141 | background: #fff; 142 | border-radius: 0 5px 5px 0; 143 | position: absolute; 144 | } 145 | 146 | #book-viewer { 147 | width: 480px; 148 | height: 660px; 149 | margin: -30px auto; 150 | -moz-box-shadow: inset 10px 0 20px rgba(0,0,0,.1); 151 | -webkit-box-shadow: inset 10px 0 20px rgba(0,0,0,.1); 152 | box-shadow: inset 10px 0 20px rgba(0,0,0,.1); 153 | } 154 | 155 | #book-viewer iframe { 156 | padding: 40px 40px; 157 | } 158 | 159 | #controls { 160 | position: absolute; 161 | bottom: 16px; 162 | left: 50%; 163 | width: 400px; 164 | margin-left: -200px; 165 | text-align: center; 166 | display: none; 167 | } 168 | 169 | #controls > input[type=range] { 170 | width: 400px; 171 | } 172 | 173 | #navigation { 174 | width: 400px; 175 | height: 100vh; 176 | position: absolute; 177 | overflow: auto; 178 | top: 0; 179 | left: 0; 180 | background: #777; 181 | -webkit-transition: -webkit-transform .25s ease-out; 182 | -moz-transition: -moz-transform .25s ease-out; 183 | -ms-transition: -moz-transform .25s ease-out; 184 | transition: transform .25s ease-out; 185 | 186 | } 187 | 188 | #navigation.fixed { 189 | position: fixed; 190 | } 191 | 192 | #navigation h1 { 193 | width: 200px; 194 | font-size: 16px; 195 | font-weight: normal; 196 | color: #fff; 197 | margin-bottom: 10px; 198 | } 199 | 200 | #navigation h2 { 201 | font-size: 14px; 202 | font-weight: normal; 203 | color: #B0B0B0; 204 | margin-bottom: 20px; 205 | } 206 | 207 | #navigation ul { 208 | padding-left: 36px; 209 | margin-left: 0; 210 | margin-top: 12px; 211 | margin-bottom: 12px; 212 | width: 340px; 213 | } 214 | 215 | #navigation ul li { 216 | list-style: decimal; 217 | margin-bottom: 10px; 218 | color: #cccddd; 219 | font-size: 12px; 220 | padding-left: 0; 221 | margin-left: 0; 222 | } 223 | 224 | #navigation ul li a { 225 | color: #ccc; 226 | text-decoration: none; 227 | } 228 | 229 | #navigation ul li a:hover { 230 | color: #fff; 231 | text-decoration: underline; 232 | } 233 | 234 | #navigation ul li a.active { 235 | color: #fff; 236 | } 237 | 238 | #navigation #cover { 239 | display: block; 240 | margin: 24px auto; 241 | } 242 | 243 | #navigation #closer { 244 | position: absolute; 245 | top: 0; 246 | right: 0; 247 | padding: 12px; 248 | color: #cccddd; 249 | width: 24px; 250 | } 251 | 252 | #navigation.closed { 253 | -webkit-transform: translate(-400px, 0); 254 | -moz-transform: translate(-400px, 0); 255 | -ms-transform: translate(-400px, 0); 256 | } 257 | 258 | svg { 259 | display: block; 260 | } 261 | 262 | .close-x { 263 | stroke: #cccddd; 264 | fill: transparent; 265 | stroke-linecap: round; 266 | stroke-width: 5; 267 | } 268 | 269 | .close-x:hover { 270 | stroke: #fff; 271 | } 272 | 273 | #opener { 274 | position: absolute; 275 | top: 0; 276 | left: 0; 277 | padding: 10px; 278 | stroke: #E2E2E2; 279 | fill: #E2E2E2; 280 | 281 | } 282 | 283 | #opener:hover { 284 | stroke: #777; 285 | fill: #777; 286 | } 287 | -------------------------------------------------------------------------------- /client/public/epub/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 150 | 151 | 152 | 153 | -------------------------------------------------------------------------------- /client/public/md/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Marked in the browser 7 | 8 | 9 | 10 |
11 | 12 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/78-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/78-EUC-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/78-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/78-EUC-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/78-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/78-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/78-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/78-RKSJ-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/78-RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/78-RKSJ-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/78-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/78-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/78ms-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/78ms-RKSJ-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/78ms-RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/78ms-RKSJ-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/83pv-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/83pv-RKSJ-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/90ms-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/90ms-RKSJ-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/90ms-RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/90ms-RKSJ-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/90msp-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/90msp-RKSJ-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/90msp-RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/90msp-RKSJ-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/90pv-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/90pv-RKSJ-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/90pv-RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/90pv-RKSJ-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Add-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Add-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Add-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Add-RKSJ-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Add-RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Add-RKSJ-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Add-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Add-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-CNS1-0.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-CNS1-0.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-CNS1-1.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-CNS1-1.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-CNS1-2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-CNS1-2.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-CNS1-3.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-CNS1-3.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-CNS1-4.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-CNS1-4.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-CNS1-5.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-CNS1-5.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-CNS1-6.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-CNS1-6.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-CNS1-UCS2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-CNS1-UCS2.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-GB1-0.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-GB1-0.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-GB1-1.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-GB1-1.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-GB1-2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-GB1-2.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-GB1-3.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-GB1-3.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-GB1-4.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-GB1-4.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-GB1-5.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-GB1-5.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-GB1-UCS2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-GB1-UCS2.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-Japan1-0.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-Japan1-0.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-Japan1-1.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-Japan1-1.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-Japan1-2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-Japan1-2.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-Japan1-3.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-Japan1-3.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-Japan1-4.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-Japan1-4.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-Japan1-5.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-Japan1-5.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-Japan1-6.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-Japan1-6.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-Japan1-UCS2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-Japan1-UCS2.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-Korea1-0.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-Korea1-0.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-Korea1-1.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-Korea1-1.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-Korea1-2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-Korea1-2.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Adobe-Korea1-UCS2.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Adobe-Korea1-UCS2.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/B5-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/B5-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/B5pc-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/B5pc-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/B5pc-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/B5pc-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/CNS-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/CNS-EUC-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/CNS-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/CNS-EUC-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/CNS1-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/CNS1-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/CNS1-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/CNS1-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/CNS2-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/CNS2-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/CNS2-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/CNS2-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/ETHK-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/ETHK-B5-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/ETHK-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/ETHK-B5-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/ETen-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/ETen-B5-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/ETen-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/ETen-B5-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/ETenms-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/ETenms-B5-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/ETenms-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/ETenms-B5-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/EUC-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/EUC-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Ext-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Ext-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Ext-RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Ext-RKSJ-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Ext-RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Ext-RKSJ-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Ext-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Ext-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GB-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GB-EUC-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GB-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GB-EUC-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GB-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GB-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GB-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GB-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GBK-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GBK-EUC-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GBK-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GBK-EUC-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GBK2K-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GBK2K-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GBK2K-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GBK2K-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GBKp-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GBKp-EUC-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GBKp-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GBKp-EUC-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GBT-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GBT-EUC-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GBT-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GBT-EUC-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GBT-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GBT-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GBT-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GBT-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GBTpc-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GBTpc-EUC-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GBTpc-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GBTpc-EUC-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GBpc-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GBpc-EUC-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/GBpc-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/GBpc-EUC-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/HKdla-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/HKdla-B5-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/HKdla-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/HKdla-B5-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/HKdlb-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/HKdlb-B5-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/HKdlb-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/HKdlb-B5-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/HKgccs-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/HKgccs-B5-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/HKgccs-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/HKgccs-B5-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/HKm314-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/HKm314-B5-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/HKm314-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/HKm314-B5-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/HKm471-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/HKm471-B5-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/HKm471-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/HKm471-B5-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/HKscs-B5-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/HKscs-B5-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/HKscs-B5-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/HKscs-B5-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Hankaku.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Hankaku.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Hiragana.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Hiragana.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/KSC-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/KSC-EUC-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/KSC-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/KSC-EUC-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/KSC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/KSC-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/KSC-Johab-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/KSC-Johab-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/KSC-Johab-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/KSC-Johab-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/KSC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/KSC-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/KSCms-UHC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/KSCms-UHC-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/KSCms-UHC-HW-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/KSCms-UHC-HW-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/KSCms-UHC-HW-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/KSCms-UHC-HW-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/KSCms-UHC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/KSCms-UHC-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/KSCpc-EUC-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/KSCpc-EUC-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/KSCpc-EUC-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/KSCpc-EUC-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Katakana.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Katakana.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/LICENSE: -------------------------------------------------------------------------------- 1 | %%Copyright: ----------------------------------------------------------- 2 | %%Copyright: Copyright 1990-2009 Adobe Systems Incorporated. 3 | %%Copyright: All rights reserved. 4 | %%Copyright: 5 | %%Copyright: Redistribution and use in source and binary forms, with or 6 | %%Copyright: without modification, are permitted provided that the 7 | %%Copyright: following conditions are met: 8 | %%Copyright: 9 | %%Copyright: Redistributions of source code must retain the above 10 | %%Copyright: copyright notice, this list of conditions and the following 11 | %%Copyright: disclaimer. 12 | %%Copyright: 13 | %%Copyright: Redistributions in binary form must reproduce the above 14 | %%Copyright: copyright notice, this list of conditions and the following 15 | %%Copyright: disclaimer in the documentation and/or other materials 16 | %%Copyright: provided with the distribution. 17 | %%Copyright: 18 | %%Copyright: Neither the name of Adobe Systems Incorporated nor the names 19 | %%Copyright: of its contributors may be used to endorse or promote 20 | %%Copyright: products derived from this software without specific prior 21 | %%Copyright: written permission. 22 | %%Copyright: 23 | %%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 24 | %%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 25 | %%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | %%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 27 | %%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 28 | %%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 29 | %%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | %%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | %%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 32 | %%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 33 | %%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 34 | %%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 35 | %%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 36 | %%Copyright: ----------------------------------------------------------- 37 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/NWP-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/NWP-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/NWP-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/NWP-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/RKSJ-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/RKSJ-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/RKSJ-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/RKSJ-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/Roman.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/Roman.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniCNS-UCS2-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniCNS-UCS2-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniCNS-UCS2-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniCNS-UCS2-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniCNS-UTF16-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniCNS-UTF16-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniCNS-UTF16-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniCNS-UTF16-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniCNS-UTF32-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniCNS-UTF32-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniCNS-UTF32-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniCNS-UTF32-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniCNS-UTF8-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniCNS-UTF8-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniCNS-UTF8-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniCNS-UTF8-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniGB-UCS2-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniGB-UCS2-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniGB-UCS2-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniGB-UCS2-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniGB-UTF16-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniGB-UTF16-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniGB-UTF16-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniGB-UTF16-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniGB-UTF32-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniGB-UTF32-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniGB-UTF32-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniGB-UTF32-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniGB-UTF8-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniGB-UTF8-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniGB-UTF8-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniGB-UTF8-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS-UCS2-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS-UCS2-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS-UCS2-HW-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS-UCS2-HW-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS-UCS2-HW-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS-UCS2-HW-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS-UCS2-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS-UCS2-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS-UTF16-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS-UTF16-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS-UTF16-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS-UTF16-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS-UTF32-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS-UTF32-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS-UTF32-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS-UTF32-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS-UTF8-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS-UTF8-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS-UTF8-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS-UTF8-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS2004-UTF16-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS2004-UTF16-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS2004-UTF16-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS2004-UTF16-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS2004-UTF32-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS2004-UTF32-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS2004-UTF32-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS2004-UTF32-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS2004-UTF8-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS2004-UTF8-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJIS2004-UTF8-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJIS2004-UTF8-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJISPro-UCS2-HW-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJISPro-UCS2-HW-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJISPro-UCS2-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJISPro-UCS2-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJISPro-UTF8-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJISPro-UTF8-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJISX0213-UTF32-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJISX0213-UTF32-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJISX0213-UTF32-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJISX0213-UTF32-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJISX02132004-UTF32-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJISX02132004-UTF32-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniJISX02132004-UTF32-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniJISX02132004-UTF32-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniKS-UCS2-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniKS-UCS2-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniKS-UCS2-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniKS-UCS2-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniKS-UTF16-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniKS-UTF16-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniKS-UTF16-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniKS-UTF16-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniKS-UTF32-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniKS-UTF32-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniKS-UTF32-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniKS-UTF32-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniKS-UTF8-H.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniKS-UTF8-H.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/UniKS-UTF8-V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/UniKS-UTF8-V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/V.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/V.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/cmaps/WP-Symbol.bcmap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/cmaps/WP-Symbol.bcmap -------------------------------------------------------------------------------- /client/public/pdfjs/web/compressed.tracemonkey-pldi-09.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/compressed.tracemonkey-pldi-09.pdf -------------------------------------------------------------------------------- /client/public/pdfjs/web/debugger.css: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 Mozilla Foundation 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #PDFBug, 17 | #PDFBug input, 18 | #PDFBug button, 19 | #PDFBug select { 20 | font: message-box; 21 | } 22 | #PDFBug { 23 | background-color: rgba(255, 255, 255, 1); 24 | border: 1px solid rgba(102, 102, 102, 1); 25 | position: fixed; 26 | top: 32px; 27 | right: 0; 28 | bottom: 0; 29 | font-size: 10px; 30 | padding: 0; 31 | width: 300px; 32 | } 33 | #PDFBug .controls { 34 | background: rgba(238, 238, 238, 1); 35 | border-bottom: 1px solid rgba(102, 102, 102, 1); 36 | padding: 3px; 37 | } 38 | #PDFBug .panels { 39 | bottom: 0; 40 | left: 0; 41 | overflow: auto; 42 | position: absolute; 43 | right: 0; 44 | top: 27px; 45 | } 46 | #PDFBug .panels > div { 47 | padding: 5px; 48 | } 49 | #PDFBug button.active { 50 | font-weight: bold; 51 | } 52 | .debuggerShowText, 53 | .debuggerHideText:hover { 54 | background-color: rgba(255, 255, 0, 1); 55 | } 56 | #PDFBug .stats { 57 | font-family: courier; 58 | font-size: 10px; 59 | white-space: pre; 60 | } 61 | #PDFBug .stats .title { 62 | font-weight: bold; 63 | } 64 | #PDFBug table { 65 | font-size: 10px; 66 | white-space: pre; 67 | } 68 | #PDFBug table.showText { 69 | border-collapse: collapse; 70 | text-align: center; 71 | } 72 | #PDFBug table.showText, 73 | #PDFBug table.showText tr, 74 | #PDFBug table.showText td { 75 | border: 1px solid black; 76 | padding: 1px; 77 | } 78 | #PDFBug table.showText td.advance { 79 | color: grey; 80 | } 81 | 82 | #viewer.textLayer-visible .textLayer { 83 | opacity: 1; 84 | } 85 | 86 | #viewer.textLayer-visible .canvasWrapper { 87 | background-color: rgba(128, 255, 128, 1); 88 | } 89 | 90 | #viewer.textLayer-visible .canvasWrapper canvas { 91 | mix-blend-mode: screen; 92 | } 93 | 94 | #viewer.textLayer-visible .textLayer span { 95 | background-color: rgba(255, 255, 0, 0.1); 96 | color: rgba(0, 0, 0, 1); 97 | border: solid 1px rgba(255, 0, 0, 0.5); 98 | box-sizing: border-box; 99 | } 100 | 101 | #viewer.textLayer-visible .textLayer span[aria-owns] { 102 | background-color: rgba(255, 0, 0, 0.3); 103 | } 104 | 105 | #viewer.textLayer-hover .textLayer span:hover { 106 | background-color: rgba(255, 255, 255, 1); 107 | color: rgba(0, 0, 0, 1); 108 | } 109 | 110 | #viewer.textLayer-shadow .textLayer span { 111 | background-color: rgba(255, 255, 255, 0.6); 112 | color: rgba(0, 0, 0, 1); 113 | } 114 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/annotation-check.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/annotation-comment.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 13 | 16 | 17 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/annotation-help.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 16 | 18 | 21 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/annotation-insert.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/annotation-key.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/annotation-newparagraph.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/annotation-noicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/annotation-note.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 14 | 21 | 28 | 35 | 42 | 43 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/annotation-paperclip.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/annotation-paragraph.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 13 | 16 | 17 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/annotation-pushpin.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/cursor-editorFreeText.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/cursor-editorInk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/findbarButton-next.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/findbarButton-previous.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/loading-dark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/loading-icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/images/loading-icon.gif -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/loading.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/secondaryToolbarButton-documentProperties.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/secondaryToolbarButton-firstPage.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/secondaryToolbarButton-handTool.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/secondaryToolbarButton-lastPage.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/secondaryToolbarButton-rotateCcw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/secondaryToolbarButton-rotateCw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/secondaryToolbarButton-scrollHorizontal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/secondaryToolbarButton-scrollPage.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/secondaryToolbarButton-scrollVertical.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/secondaryToolbarButton-scrollWrapped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/secondaryToolbarButton-selectTool.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/secondaryToolbarButton-spreadEven.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/secondaryToolbarButton-spreadNone.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/secondaryToolbarButton-spreadOdd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-currentOutlineItem.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-download.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-editorFreeText.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-editorInk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-menuArrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-openFile.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-pageDown.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-pageUp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-presentationMode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-print.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-secondaryToolbarToggle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-sidebarToggle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-viewAttachments.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-viewLayers.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-viewOutline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-viewThumbnail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-zoomIn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/toolbarButton-zoomOut.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/treeitem-collapsed.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/images/treeitem-expanded.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/locale/meh/viewer.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2012 Mozilla Foundation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Main toolbar buttons (tooltips and alt text for images) 16 | previous.title=Página yata 17 | 18 | # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. 19 | # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number 20 | # representing the total number of pages in the document. 21 | # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" 22 | # will be replaced by a number representing the currently visible page, 23 | # respectively a number representing the total number of pages in the document. 24 | 25 | zoom.title=Nasa´a ka´nu/Nasa´a luli 26 | open_file_label=Síne 27 | 28 | # Secondary toolbar and context menu 29 | 30 | 31 | 32 | 33 | # Document properties dialog box 34 | # LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" 35 | # will be replaced by the PDF file size in kilobytes, respectively in bytes. 36 | # LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" 37 | # will be replaced by the PDF file size in megabytes, respectively in bytes. 38 | # LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" 39 | # will be replaced by the creation/modification date, and time, of the PDF file. 40 | document_properties_date_string={{date}}, {{time}} 41 | # LOCALIZATION NOTE (document_properties_page_size_dimension_string): 42 | # "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by 43 | # the size, respectively their unit of measurement and orientation, of the (current) page. 44 | document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}}) 45 | # LOCALIZATION NOTE (document_properties_page_size_dimension_name_string): 46 | # "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by 47 | # the size, respectively their unit of measurement, name, and orientation, of the (current) page. 48 | document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}}) 49 | # LOCALIZATION NOTE (document_properties_linearized): The linearization status of 50 | # the document; usually called "Fast Web View" in English locales of Adobe software. 51 | document_properties_linearized_yes=Kuvi 52 | document_properties_close=Nakasɨ 53 | 54 | # LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by 55 | # a numerical per cent value. 56 | print_progress_percent={{progress}}% 57 | print_progress_close=Nkuvi-ka 58 | 59 | # Tooltips and alt text for side panel toolbar buttons 60 | # (the _label strings are alt text for the buttons, the .title strings are 61 | # tooltips) 62 | findbar_label=Nánuku 63 | 64 | # Thumbnails panel item (tooltip and alt text for images) 65 | # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page 66 | # number. 67 | # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page 68 | # number. 69 | 70 | # Find panel button title and messages 71 | find_input.title=Nánuku 72 | # LOCALIZATION NOTE (find_match_count): The supported plural forms are 73 | # [one|two|few|many|other], with [other] as the default value. 74 | # "{{current}}" and "{{total}}" will be replaced by a number representing the 75 | # index of the currently active find result, respectively a number representing 76 | # the total number of matches in the document. 77 | find_match_count={[ plural(total) ]} 78 | # LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are 79 | # [zero|one|two|few|many|other], with [other] as the default value. 80 | # "{{limit}}" will be replaced by a numerical value. 81 | find_match_count_limit={[ plural(limit) ]} 82 | 83 | # Error panel labels 84 | error_close=Nakasɨ 85 | # LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be 86 | # replaced by the PDF.JS version and build ID. 87 | error_version_info=PDF.js v{{version}} (build: {{build}}) 88 | # LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an 89 | # english string describing the error. 90 | # LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack 91 | # trace. 92 | # LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename 93 | # LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number 94 | 95 | # Predefined zoom values 96 | # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a 97 | # numerical scale value. 98 | page_scale_percent={{scale}}% 99 | 100 | # Loading indicator messages 101 | 102 | # LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be 103 | # replaced by the modification date, and time, of the annotation. 104 | annotation_date_string={{date}}, {{time}} 105 | 106 | # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. 107 | # "{{type}}" will be replaced with an annotation type from a list defined in 108 | # the PDF spec (32000-1:2008 Table 169 – Annotation types). 109 | # Some common types are e.g.: "Check", "Text", "Comment", "Note" 110 | password_cancel=Nkuvi-ka 111 | 112 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/locale/scn/viewer.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2012 Mozilla Foundation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Main toolbar buttons (tooltips and alt text for images) 16 | 17 | # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. 18 | # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number 19 | # representing the total number of pages in the document. 20 | # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" 21 | # will be replaced by a number representing the currently visible page, 22 | # respectively a number representing the total number of pages in the document. 23 | 24 | zoom_out.title=Cchiù nicu 25 | zoom_out_label=Cchiù nicu 26 | zoom_in.title=Cchiù granni 27 | zoom_in_label=Cchiù granni 28 | 29 | # Secondary toolbar and context menu 30 | 31 | 32 | 33 | 34 | # Document properties dialog box 35 | # LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" 36 | # will be replaced by the PDF file size in kilobytes, respectively in bytes. 37 | # LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" 38 | # will be replaced by the PDF file size in megabytes, respectively in bytes. 39 | # LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" 40 | # will be replaced by the creation/modification date, and time, of the PDF file. 41 | # LOCALIZATION NOTE (document_properties_page_size_dimension_string): 42 | # "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by 43 | # the size, respectively their unit of measurement and orientation, of the (current) page. 44 | # LOCALIZATION NOTE (document_properties_page_size_dimension_name_string): 45 | # "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by 46 | # the size, respectively their unit of measurement, name, and orientation, of the (current) page. 47 | # LOCALIZATION NOTE (document_properties_linearized): The linearization status of 48 | # the document; usually called "Fast Web View" in English locales of Adobe software. 49 | document_properties_linearized=Vista web lesta: 50 | document_properties_linearized_yes=Se 51 | 52 | # LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by 53 | # a numerical per cent value. 54 | print_progress_close=Sfai 55 | 56 | # Tooltips and alt text for side panel toolbar buttons 57 | # (the _label strings are alt text for the buttons, the .title strings are 58 | # tooltips) 59 | 60 | # Thumbnails panel item (tooltip and alt text for images) 61 | # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page 62 | # number. 63 | # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page 64 | # number. 65 | 66 | # Find panel button title and messages 67 | # LOCALIZATION NOTE (find_match_count): The supported plural forms are 68 | # [one|two|few|many|other], with [other] as the default value. 69 | # "{{current}}" and "{{total}}" will be replaced by a number representing the 70 | # index of the currently active find result, respectively a number representing 71 | # the total number of matches in the document. 72 | # LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are 73 | # [zero|one|two|few|many|other], with [other] as the default value. 74 | # "{{limit}}" will be replaced by a numerical value. 75 | 76 | # Error panel labels 77 | # LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be 78 | # replaced by the PDF.JS version and build ID. 79 | # LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an 80 | # english string describing the error. 81 | # LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack 82 | # trace. 83 | # LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename 84 | # LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number 85 | 86 | # Predefined zoom values 87 | page_scale_width=Larghizza dâ pàggina 88 | # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a 89 | # numerical scale value. 90 | 91 | # Loading indicator messages 92 | 93 | # LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be 94 | # replaced by the modification date, and time, of the annotation. 95 | 96 | # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. 97 | # "{{type}}" will be replaced with an annotation type from a list defined in 98 | # the PDF spec (32000-1:2008 Table 169 – Annotation types). 99 | # Some common types are e.g.: "Check", "Text", "Comment", "Note" 100 | password_cancel=Sfai 101 | 102 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/locale/wo/viewer.properties: -------------------------------------------------------------------------------- 1 | # Copyright 2012 Mozilla Foundation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Main toolbar buttons (tooltips and alt text for images) 16 | previous.title=Xët wi jiitu 17 | previous_label=Bi jiitu 18 | next.title=Xët wi ci topp 19 | next_label=Bi ci topp 20 | 21 | # LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input. 22 | # LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number 23 | # representing the total number of pages in the document. 24 | # LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}" 25 | # will be replaced by a number representing the currently visible page, 26 | # respectively a number representing the total number of pages in the document. 27 | 28 | zoom_out.title=Wàññi 29 | zoom_out_label=Wàññi 30 | zoom_in.title=Yaatal 31 | zoom_in_label=Yaatal 32 | zoom.title=Yambalaŋ 33 | presentation_mode.title=Wañarñil ci anamu wone 34 | presentation_mode_label=Anamu Wone 35 | open_file.title=Ubbi benn dencukaay 36 | open_file_label=Ubbi 37 | print.title=Móol 38 | print_label=Móol 39 | download.title=Yeb yi 40 | download_label=Yeb yi 41 | bookmark.title=Wone bi taxaw (duppi walla ubbi palanteer bu bees) 42 | bookmark_label=Wone bi feeñ 43 | 44 | # Secondary toolbar and context menu 45 | 46 | 47 | # Document properties dialog box 48 | # LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}" 49 | # will be replaced by the PDF file size in kilobytes, respectively in bytes. 50 | # LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}" 51 | # will be replaced by the PDF file size in megabytes, respectively in bytes. 52 | document_properties_title=Bopp: 53 | # LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}" 54 | # will be replaced by the creation/modification date, and time, of the PDF file. 55 | 56 | # LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by 57 | # a numerical per cent value. 58 | 59 | # Tooltips and alt text for side panel toolbar buttons 60 | # (the _label strings are alt text for the buttons, the .title strings are 61 | # tooltips) 62 | thumbs.title=Wone nataal yu ndaw yi 63 | thumbs_label=Nataal yu ndaw yi 64 | findbar.title=Gis ci biir jukki bi 65 | findbar_label=Wut 66 | 67 | # Thumbnails panel item (tooltip and alt text for images) 68 | # LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page 69 | # number. 70 | thumb_page_title=Xët {{page}} 71 | # LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page 72 | # number. 73 | thumb_page_canvas=Wiñet bu xët {{page}} 74 | 75 | # Find panel button title and messages 76 | find_previous.title=Seet beneen kaddu bu ni mel te jiitu 77 | find_previous_label=Bi jiitu 78 | find_next.title=Seet beneen kaddu bu ni mel 79 | find_next_label=Bi ci topp 80 | find_highlight=Melaxal lépp 81 | find_match_case_label=Sàmm jëmmalin wi 82 | find_reached_top=Jot nañu ndorteel xët wi, kontine dale ko ci suuf 83 | find_reached_bottom=Jot nañu jeexitalu xët wi, kontine ci ndorte 84 | find_not_found=Gisiñu kaddu gi 85 | 86 | # Error panel labels 87 | error_more_info=Xibaar yu gën bari 88 | error_less_info=Xibaar yu gën bari 89 | # LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be 90 | # replaced by the PDF.JS version and build ID. 91 | # LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an 92 | # english string describing the error. 93 | error_message=Bataaxal: {{message}} 94 | # LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack 95 | # trace. 96 | error_stack=Juug: {{stack}} 97 | # LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename 98 | error_file=Dencukaay: {{file}} 99 | # LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number 100 | error_line=Rëdd : {{line}} 101 | rendering_error=Am njumte bu am bi xët bi di wonewu. 102 | 103 | # Predefined zoom values 104 | page_scale_width=Yaatuwaay bu mët 105 | page_scale_fit=Xët lëmm 106 | page_scale_auto=Yambalaŋ ci saa si 107 | page_scale_actual=Dayo bi am 108 | # LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a 109 | # numerical scale value. 110 | 111 | loading_error=Am na njumte ci yebum dencukaay PDF bi. 112 | invalid_file_error=Dencukaay PDF bi baaxul walla mu sankar. 113 | 114 | # LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip. 115 | # "{{type}}" will be replaced with an annotation type from a list defined in 116 | # the PDF spec (32000-1:2008 Table 169 – Annotation types). 117 | # Some common types are e.g.: "Check", "Text", "Comment", "Note" 118 | text_annotation_type.alt=[Karmat {{type}}] 119 | password_ok=OK 120 | password_cancel=Neenal 121 | 122 | printing_not_supported=Artu: Joowkat bii nanguwul lool mool. 123 | 124 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/FoxitDingbats.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/FoxitDingbats.pfb -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/FoxitFixed.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/FoxitFixed.pfb -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/FoxitFixedBold.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/FoxitFixedBold.pfb -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/FoxitFixedBoldItalic.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/FoxitFixedBoldItalic.pfb -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/FoxitFixedItalic.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/FoxitFixedItalic.pfb -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/FoxitSans.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/FoxitSans.pfb -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/FoxitSansBold.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/FoxitSansBold.pfb -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/FoxitSansBoldItalic.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/FoxitSansBoldItalic.pfb -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/FoxitSansItalic.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/FoxitSansItalic.pfb -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/FoxitSerif.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/FoxitSerif.pfb -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/FoxitSerifBold.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/FoxitSerifBold.pfb -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/FoxitSerifBoldItalic.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/FoxitSerifBoldItalic.pfb -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/FoxitSerifItalic.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/FoxitSerifItalic.pfb -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/FoxitSymbol.pfb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/FoxitSymbol.pfb -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/LICENSE_FOXIT: -------------------------------------------------------------------------------- 1 | // Copyright 2014 PDFium Authors. All rights reserved. 2 | // 3 | // Redistribution and use in source and binary forms, with or without 4 | // modification, are permitted provided that the following conditions are 5 | // met: 6 | // 7 | // * Redistributions of source code must retain the above copyright 8 | // notice, this list of conditions and the following disclaimer. 9 | // * Redistributions in binary form must reproduce the above 10 | // copyright notice, this list of conditions and the following disclaimer 11 | // in the documentation and/or other materials provided with the 12 | // distribution. 13 | // * Neither the name of Google Inc. nor the names of its 14 | // contributors may be used to endorse or promote products derived from 15 | // this software without specific prior written permission. 16 | // 17 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/LICENSE_LIBERATION: -------------------------------------------------------------------------------- 1 | Digitized data copyright (c) 2010 Google Corporation 2 | with Reserved Font Arimo, Tinos and Cousine. 3 | Copyright (c) 2012 Red Hat, Inc. 4 | with Reserved Font Name Liberation. 5 | 6 | This Font Software is licensed under the SIL Open Font License, 7 | Version 1.1. 8 | 9 | This license is copied below, and is also available with a FAQ at: 10 | http://scripts.sil.org/OFL 11 | 12 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 13 | 14 | PREAMBLE The goals of the Open Font License (OFL) are to stimulate 15 | worldwide development of collaborative font projects, to support the font 16 | creation efforts of academic and linguistic communities, and to provide 17 | a free and open framework in which fonts may be shared and improved in 18 | partnership with others. 19 | 20 | The OFL allows the licensed fonts to be used, studied, modified and 21 | redistributed freely as long as they are not sold by themselves. 22 | The fonts, including any derivative works, can be bundled, embedded, 23 | redistributed and/or sold with any software provided that any reserved 24 | names are not used by derivative works. The fonts and derivatives, 25 | however, cannot be released under any other type of license. The 26 | requirement for fonts to remain under this license does not apply to 27 | any document created using the fonts or their derivatives. 28 | 29 | 30 | 31 | DEFINITIONS 32 | "Font Software" refers to the set of files released by the Copyright 33 | Holder(s) under this license and clearly marked as such. 34 | This may include source files, build scripts and documentation. 35 | 36 | "Reserved Font Name" refers to any names specified as such after the 37 | copyright statement(s). 38 | 39 | "Original Version" refers to the collection of Font Software components 40 | as distributed by the Copyright Holder(s). 41 | 42 | "Modified Version" refers to any derivative made by adding to, deleting, 43 | or substituting ? in part or in whole ? 44 | any of the components of the Original Version, by changing formats or 45 | by porting the Font Software to a new environment. 46 | 47 | "Author" refers to any designer, engineer, programmer, technical writer 48 | or other person who contributed to the Font Software. 49 | 50 | 51 | PERMISSION & CONDITIONS 52 | 53 | Permission is hereby granted, free of charge, to any person obtaining a 54 | copy of the Font Software, to use, study, copy, merge, embed, modify, 55 | redistribute, and sell modified and unmodified copies of the Font 56 | Software, subject to the following conditions: 57 | 58 | 1) Neither the Font Software nor any of its individual components,in 59 | Original or Modified Versions, may be sold by itself. 60 | 61 | 2) Original or Modified Versions of the Font Software may be bundled, 62 | redistributed and/or sold with any software, provided that each copy 63 | contains the above copyright notice and this license. These can be 64 | included either as stand-alone text files, human-readable headers or 65 | in the appropriate machine-readable metadata fields within text or 66 | binary files as long as those fields can be easily viewed by the user. 67 | 68 | 3) No Modified Version of the Font Software may use the Reserved Font 69 | Name(s) unless explicit written permission is granted by the 70 | corresponding Copyright Holder. This restriction only applies to the 71 | primary font name as presented to the users. 72 | 73 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 74 | Software shall not be used to promote, endorse or advertise any 75 | Modified Version, except to acknowledge the contribution(s) of the 76 | Copyright Holder(s) and the Author(s) or with their explicit written 77 | permission. 78 | 79 | 5) The Font Software, modified or unmodified, in part or in whole, must 80 | be distributed entirely under this license, and must not be distributed 81 | under any other license. The requirement for fonts to remain under 82 | this license does not apply to any document created using the Font 83 | Software. 84 | 85 | 86 | 87 | TERMINATION 88 | This license becomes null and void if any of the above conditions are not met. 89 | 90 | 91 | 92 | DISCLAIMER 93 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 94 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 95 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 96 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 97 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 98 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 99 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 100 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER 101 | DEALINGS IN THE FONT SOFTWARE. 102 | 103 | -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/LiberationSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/LiberationSans-Bold.ttf -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/LiberationSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/LiberationSans-BoldItalic.ttf -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/LiberationSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/LiberationSans-Italic.ttf -------------------------------------------------------------------------------- /client/public/pdfjs/web/standard_fonts/LiberationSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/client/public/pdfjs/web/standard_fonts/LiberationSans-Regular.ttf -------------------------------------------------------------------------------- /client/public/spinner.css: -------------------------------------------------------------------------------- 1 | .spinner { 2 | margin: 100px auto; 3 | width: 50px; 4 | height: 60px; 5 | text-align: center; 6 | font-size: 10px; 7 | } 8 | 9 | .spinner > div { 10 | background-color: #FE3C71; 11 | height: 100%; 12 | width: 6px; 13 | display: inline-block; 14 | -webkit-animation: stretchDelay 1.2s infinite ease-in-out; 15 | animation: stretchDelay 1.2s infinite ease-in-out; 16 | } 17 | 18 | .spinner .rect2 { 19 | -webkit-animation-delay: -1.1s; 20 | animation-delay: -1.1s; 21 | } 22 | 23 | .spinner .rect3 { 24 | -webkit-animation-delay: -1.0s; 25 | animation-delay: -1.0s; 26 | } 27 | 28 | .spinner .rect4 { 29 | -webkit-animation-delay: -0.9s; 30 | animation-delay: -0.9s; 31 | } 32 | 33 | .spinner .rect5 { 34 | -webkit-animation-delay: -0.8s; 35 | animation-delay: -0.8s; 36 | } 37 | 38 | @-webkit-keyframes stretchDelay { 39 | 0%, 40%, 100% { 40 | -webkit-transform: scaleY(0.4) 41 | } 42 | 20% { 43 | -webkit-transform: scaleY(1.0) 44 | } 45 | } 46 | 47 | @keyframes stretchDelay { 48 | 0%, 40%, 100% { 49 | transform: scaleY(0.4); 50 | -webkit-transform: scaleY(0.4); 51 | } 52 | 20% { 53 | transform: scaleY(1.0); 54 | -webkit-transform: scaleY(1.0); 55 | } 56 | } -------------------------------------------------------------------------------- /client/src/App.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 11 | -------------------------------------------------------------------------------- /client/src/api.js: -------------------------------------------------------------------------------- 1 | function err(message) { 2 | ElMessage.error(message) 3 | } 4 | 5 | function myFetch(input, init) { 6 | return new Promise((resolve, reject) => { 7 | fetch(input, init).then(res => { 8 | json = resolve(res.json()) 9 | if (json.code != 0) { 10 | err(json.message) 11 | reject(new Error(json.message)) 12 | } else { 13 | resolve(json) 14 | } 15 | }).catch(err => { 16 | reject(err) 17 | }) 18 | }) 19 | } 20 | 21 | // export async function fetchDocList() { 22 | // return new Promise((resolve, reject) => { 23 | // myFetch("/api/my_docs").then(res => resolve(res)).catch(e => reject(e)) 24 | // }) 25 | // } 26 | export async function fetchDocList(user) { 27 | return new Promise((resolve, reject) => { 28 | myFetch("/api/my_docs", { 29 | method: "POST", 30 | body: JSON.stringify({user: user}), 31 | headers: { 32 | "Content-Type": "application/json", 33 | } 34 | }).then(res => resolve(res)).catch(e => reject(e)) 35 | }) 36 | } 37 | 38 | export async function fetchQuery(doc_id, query, user) { 39 | return new Promise((resolve, reject) => { 40 | myFetch("/api/ask/" + doc_id + "?question=" + query + "&user=" + JSON.stringify(user)).then(res => resolve(res)).catch(e => reject(e)) 41 | }) 42 | } 43 | 44 | export async function fetchMsg(doc_id) { 45 | return new Promise((resolve, reject) => { 46 | myFetch("/api/msg/" + doc_id).then(res => resolve(res)).catch(e => reject(e)) 47 | }) 48 | } 49 | 50 | export async function fetchDelDoc(doc_id) { 51 | return new Promise((resolve, reject) => { 52 | myFetch("/api/del/" + doc_id, {method: "DELETE"}).then(res => resolve(res)).catch(e => reject(e)) 53 | }) 54 | } 55 | 56 | export async function addAddLink(link, user) { 57 | return new Promise((resolve, reject) => { 58 | myFetch("/api/add_link", { 59 | method: "POST", 60 | body: JSON.stringify({link: link, user: user}), 61 | headers: { 62 | "Content-Type": "application/json", 63 | } 64 | }).then(res => resolve(res)).catch(e => reject(e)) 65 | }) 66 | } 67 | 68 | export async function addApikey(api_key, user) { 69 | return new Promise((resolve, reject) => { 70 | myFetch("/api/add_apikey", { 71 | method: "POST", 72 | body: JSON.stringify({apikey: api_key, user: user}), 73 | headers: { 74 | "Content-Type": "application/json", 75 | } 76 | }).then(res => resolve(res)).catch(e => reject(e)) 77 | }) 78 | } 79 | 80 | 81 | // export async function fetchApikey() { 82 | // return new Promise((resolve, reject) => { 83 | // myFetch("/api/my_apikey").then(res => resolve(res)).catch(e => reject(e)) 84 | // }) 85 | // } 86 | export async function fetchApikey(user) { 87 | return new Promise((resolve, reject) => { 88 | myFetch("/api/my_apikey", { 89 | method: "POST", 90 | body: JSON.stringify({user: user}), 91 | headers: { 92 | "Content-Type": "application/json", 93 | } 94 | }).then(res => resolve(res)).catch(e => reject(e)) 95 | }) 96 | } 97 | 98 | 99 | function apiUrl() { 100 | return 'http://localhost:8001/'; 101 | } 102 | 103 | export function postApi(pathToResource, data) { 104 | // return fetch(apiUrl() + pathToResource, { 105 | // method: 'POST', 106 | // mode: 'cors', 107 | // body: new URLSearchParams(data), 108 | // }); 109 | return fetch("/api/" + pathToResource, { 110 | method: "POST", 111 | body: new URLSearchParams(data), 112 | // headers: { 113 | // "Content-Type": "application/json", 114 | // } 115 | }) 116 | } 117 | 118 | -------------------------------------------------------------------------------- /client/src/assets/loading.svg: -------------------------------------------------------------------------------- 1 | 11 | 20 | 27 | 28 | -------------------------------------------------------------------------------- /client/src/assets/send.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /client/src/auth.js: -------------------------------------------------------------------------------- 1 | import {postApi} from './api'; 2 | 3 | const user = JSON.parse(localStorage.getItem('user')); 4 | const initialState = user 5 | ? {status: {loggedIn: true}, user} 6 | : {status: {loggedIn: false}, user: null}; 7 | 8 | export const auth = { 9 | namespaced: true, 10 | state: initialState, 11 | actions: { 12 | login({commit}, user) { 13 | return login(user).then( 14 | user => { 15 | user = localStorage.getItem('user') 16 | commit('loginSuccess', user); 17 | return Promise.resolve(user); 18 | }, 19 | error => { 20 | commit('loginFailure'); 21 | return Promise.reject(error); 22 | } 23 | ); 24 | }, 25 | logout({commit}) { 26 | logout(); 27 | commit('logout'); 28 | }, 29 | register({commit}, user) { 30 | return register(user).then( 31 | response => { 32 | commit('registerSuccess'); 33 | return Promise.resolve(response.data); 34 | }, 35 | error => { 36 | commit('registerFailure'); 37 | return Promise.reject(error); 38 | } 39 | ); 40 | } 41 | }, 42 | mutations: { 43 | loginSuccess(state, user) { 44 | console.log("in logsuccess", state, user) 45 | state.status.loggedIn = true; 46 | state.user = user; 47 | }, 48 | loginFailure(state) { 49 | state.status.loggedIn = false; 50 | state.user = null; 51 | }, 52 | logout(state) { 53 | state.status.loggedIn = false; 54 | state.user = null; 55 | }, 56 | registerSuccess(state) { 57 | state.status.loggedIn = false; 58 | }, 59 | registerFailure(state) { 60 | state.status.loggedIn = false; 61 | } 62 | }, 63 | getters: { 64 | user: state => state.user 65 | }, 66 | }; 67 | 68 | async function login(user) { 69 | // await postApi("token", user) 70 | return postApi("token", user) 71 | .then((response) => { 72 | if (response.status == 200) return response.json() 73 | else throw 'Login Failure 401' 74 | }) 75 | .then((data) => { 76 | if (data.access_token) { 77 | console.log("token data", data) 78 | localStorage.setItem('user', JSON.stringify(data)); 79 | console.log("token data-user", user) 80 | return data; // 添加返回值,返回 data 对象 81 | }else { 82 | throw 'Access token not found'; 83 | } 84 | }); 85 | } 86 | 87 | async function logout() { 88 | localStorage.removeItem('user'); 89 | } 90 | -------------------------------------------------------------------------------- /client/src/main.js: -------------------------------------------------------------------------------- 1 | import {createApp} from 'vue' 2 | import ElementPlus from 'element-plus' 3 | import 'normalize.css/normalize.css' 4 | import 'element-plus/dist/index.css' 5 | import './styles/style.css' 6 | import 'element-plus/theme-chalk/dark/css-vars.css' 7 | import App from './App.vue' 8 | 9 | import {auth} from "./auth"; 10 | import {createStore} from 'vuex'; 11 | import {createRouter, createWebHistory} from 'vue-router'; 12 | import Home from './views/Home.vue'; 13 | import chatdata from "./views/Chatdata.vue"; 14 | 15 | const router = createRouter({ 16 | history: createWebHistory(), 17 | routes: [ 18 | {path: '/', name: 'Home', component: Home}, 19 | { 20 | path: '/chat', name: "chatdata", component: chatdata 21 | } 22 | ], 23 | }) 24 | 25 | const store = createStore({ 26 | modules: { 27 | auth, 28 | }, 29 | }); 30 | 31 | const app = createApp(App) 32 | app.use(router) 33 | app.use(store) 34 | app.use(ElementPlus) 35 | app.mount('#app') 36 | -------------------------------------------------------------------------------- /client/src/router.js: -------------------------------------------------------------------------------- 1 | import { createRouter, createWebHistory } from 'vue-router' 2 | import Home from './views/Home.vue' 3 | 4 | const router = createRouter({ 5 | history: createWebHistory(), 6 | routes: [ 7 | { path: '/', name: 'Home', component: Home } 8 | ] 9 | }) 10 | 11 | export default router -------------------------------------------------------------------------------- /client/src/store.js: -------------------------------------------------------------------------------- 1 | import { docState, formatByteSize, docType, nameWithoutExt, docUrl, showLastMessage } from './utils' 2 | 3 | export const state = { 4 | docList: [], 5 | active: null, 6 | messages: [], 7 | msgLoading: false, 8 | input: '', 9 | askErr: '' 10 | } 11 | 12 | export const mutations = { 13 | setDocList(state, list) { 14 | state.docList = list 15 | }, 16 | setActive(state, doc) { 17 | state.active = doc 18 | }, 19 | setMessages(state, msgs) { 20 | state.messages = msgs 21 | }, 22 | setMsgLoading(state, loading) { 23 | state.msgLoading = loading 24 | }, 25 | setInput(state, input) { 26 | state.input = input 27 | }, 28 | setAskErr(state, err) { 29 | state.askErr = err 30 | } 31 | } 32 | 33 | export default { 34 | state, 35 | mutations 36 | } -------------------------------------------------------------------------------- /client/src/styles/chatdata.css: -------------------------------------------------------------------------------- 1 | .ellipsis { 2 | width: 300px; 3 | overflow: hidden; 4 | /*文本不会换行*/ 5 | white-space: nowrap; 6 | /*当文本溢出包含元素时,以省略号表示超出的文本*/ 7 | text-overflow: ellipsis; 8 | } 9 | 10 | .empty-info { 11 | display: flex; 12 | flex-direction: column; 13 | width: 100%; 14 | height: 100%; 15 | color: #CDD0D6; 16 | font-size: 18px; 17 | align-items: center; 18 | justify-content: center; 19 | } 20 | 21 | .container { 22 | display: flex; 23 | width: 100%; 24 | height: 100vh; 25 | } 26 | 27 | .sidebar { 28 | display: flex; 29 | width: 200px; 30 | width: 15%; 31 | flex-direction: column; 32 | /*justify-content: space-between;*/ 33 | justify-content: flex-start; 34 | } 35 | 36 | .add-doc { 37 | display: flex; 38 | padding: 15px; 39 | height: 20px; 40 | align-items: center; 41 | justify-content: space-between; 42 | margin-right: auto; 43 | border-bottom: 1px solid #EBEDF0; 44 | 45 | } 46 | 47 | .doc-list { 48 | display: flex; 49 | align-items: center; 50 | justify-content: center; 51 | } 52 | 53 | .doc-list:last-child .doc-item { 54 | border-bottom: none; 55 | } 56 | 57 | .doc-item { 58 | width: 100%; 59 | padding: 3px 10px; 60 | display: flex; 61 | flex-direction: column; 62 | border-bottom: 1px solid gray; 63 | } 64 | 65 | .doc-item-title { 66 | display: flex; 67 | font-size: 14px; 68 | height: 28px; 69 | line-height: 28px; 70 | justify-content: space-between; 71 | } 72 | 73 | .remove-icon { 74 | color: #CDD0D6; 75 | height: 100%; 76 | } 77 | 78 | .remove-icon:hover { 79 | color: #79bbff; 80 | } 81 | 82 | .doc-item-info { 83 | display: flex; 84 | font-size: 10px; 85 | color: gray; 86 | height: 10px; 87 | line-height: 10px; 88 | justify-content: space-between; 89 | } 90 | 91 | .doc-item-info-cell { 92 | margin: 0 2px; 93 | } 94 | 95 | .doc-active { 96 | background-color: #a0cfff; 97 | } 98 | 99 | .user-info { 100 | padding: 15px; 101 | height: 20px; 102 | display: flex; 103 | align-items: center; 104 | border-bottom: 1px solid #EBEDF0; 105 | margin-bottom: 1px; 106 | } 107 | 108 | .user-name { 109 | /*margin: 0 10px;*/ 110 | color: #333333; 111 | font-weight: bold; 112 | /*color: #CDD0D6;*/ 113 | font-size: 14px; 114 | margin-left: 10px; 115 | margin-right: auto; 116 | } 117 | 118 | 119 | .api-info { 120 | /*margin-bottom: -36rem;*/ 121 | padding: 15px; 122 | height: 20px; 123 | display: flex; 124 | align-items: center; 125 | border-bottom: 1px solid #EBEDF0; 126 | /*position: relative;*/ 127 | 128 | /*bottom: 60px;*/ 129 | /*left: 0;*/ 130 | /*right: 0;*/ 131 | } 132 | 133 | .api-key { 134 | /*margin: 0 20px;*/ 135 | color: #CDD0D6; 136 | font-size: 14px; 137 | margin-right: auto; 138 | } 139 | 140 | .doc { 141 | width: 55%; 142 | display: flex; 143 | border-right: 1px solid #EBEDF0; 144 | border-left: 1px solid #EBEDF0; 145 | } 146 | 147 | .chat { 148 | width: 30%; 149 | flex-direction: column; 150 | justify-content: space-between; 151 | display: flex; 152 | } 153 | 154 | .messages { 155 | display: flex; 156 | flex-direction: column; 157 | padding: 10px; 158 | overflow-y: scroll; 159 | } 160 | 161 | .message-item { 162 | border: 1px solid #CDD0D6; 163 | padding: 10px; 164 | margin: 5px 0; 165 | } 166 | 167 | .message-user { 168 | background-color: #a0cfff; 169 | } 170 | 171 | .input { 172 | margin: 10px; 173 | padding: 10px; 174 | height: 30px; 175 | line-height: 30px; 176 | border: 1px solid blue; 177 | background-image: url('../assets/send.svg'); 178 | background-repeat: no-repeat; 179 | background-position: 10px; 180 | padding-left: 40px; 181 | } 182 | 183 | .loading { 184 | display: flex; 185 | align-items: center; 186 | justify-content: center; 187 | } -------------------------------------------------------------------------------- /client/src/styles/login.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | } 5 | 6 | html { 7 | height: 100%; 8 | } 9 | 10 | body { 11 | height: 100%; 12 | } 13 | 14 | .container { 15 | height: 100%; 16 | /*background-image: linear-gradient(to right, #fbc2eb, #a6c1ee);*/ 17 | background-image: linear-gradient(to right, #e4c4f9, #b3a2ef); /* 更浅的紫色 */ 18 | } 19 | 20 | .login-wrapper { 21 | background-color: #fff; 22 | width: 358px; 23 | height: 588px; 24 | border-radius: 15px; 25 | padding: 0 50px; 26 | position: relative; 27 | left: 50%; 28 | top: 50%; 29 | transform: translate(-50%, -50%); 30 | /*align-content: center;*/ 31 | } 32 | 33 | .header { 34 | 35 | font-size: 38px; 36 | font-weight: bold; 37 | text-align: center; 38 | line-height: 200px; 39 | } 40 | 41 | .input-item { 42 | display: block; 43 | width: 100%; 44 | margin-bottom: 20px; 45 | border: 0; 46 | padding: 10px; 47 | border-bottom: 1px solid rgb(128, 125, 125); 48 | font-size: 15px; 49 | outline: none; 50 | } 51 | 52 | .input-item::placeholder { 53 | text-transform: uppercase; 54 | } 55 | 56 | .btn { 57 | text-align: center; 58 | padding: 10px; 59 | width: 100%; 60 | margin-top: 40px; 61 | /*background-image: linear-gradient(to right, #a6c1ee, #fbc2eb);*/ 62 | background-image: linear-gradient(to right, #a6c1ee, #e4c4f9); /* 更浅的蓝紫色 */ 63 | color: #fff; 64 | /*border: none;*/ 65 | /*background: none;*/ 66 | } 67 | 68 | .black-color-btn { 69 | color: #000; 70 | font-weight: bold; 71 | } 72 | 73 | .msg { 74 | text-align: center; 75 | line-height: 50px; 76 | top: 0; 77 | /*bottom: 100px;*/ 78 | margin-top: -70px; 79 | margin-bottom: 70px; 80 | color: #000000; 81 | /*font-weight: bold;*/ 82 | } 83 | 84 | a { 85 | text-decoration-line: none; 86 | color: #abc1ee; 87 | } 88 | 89 | .submit-button { 90 | text-align: center; 91 | } -------------------------------------------------------------------------------- /client/src/styles/style.css: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | height: 100%; 4 | padding: 0; 5 | margin: 0; 6 | } 7 | 8 | #app { 9 | height: 100%; 10 | padding: 0; 11 | margin: 0; 12 | } 13 | 14 | ::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */ 15 | color: #A8ABB2; 16 | opacity: 1; /* Firefox */ 17 | } 18 | 19 | :-ms-input-placeholder { /* Internet Explorer 10-11 */ 20 | color: #A8ABB2; 21 | } 22 | 23 | ::-ms-input-placeholder { /* Microsoft Edge */ 24 | color: #A8ABB2; 25 | } -------------------------------------------------------------------------------- /client/src/utils.js: -------------------------------------------------------------------------------- 1 | export function formatByteSize(byteSize) { 2 | if (byteSize == 0) { 3 | return '-' 4 | } 5 | const kilobyte = 1024; 6 | const megabyte = kilobyte * 1024; 7 | 8 | if (byteSize < kilobyte) { 9 | return byteSize + ' B'; 10 | } else if (byteSize < megabyte) { 11 | return (byteSize / kilobyte).toFixed(1) + ' KB'; 12 | } else { 13 | return (byteSize / megabyte).toFixed(1) + ' MB'; 14 | } 15 | } 16 | 17 | export function docState(state) { 18 | switch (state) { 19 | case 0: 20 | return '' 21 | case 1: 22 | return 'doing' 23 | case 2: 24 | return 'done' 25 | } 26 | } 27 | 28 | export function nameWithoutExt(name) { 29 | return name.slice(0, name.lastIndexOf('.')) 30 | } 31 | 32 | export function docType(doc) { 33 | if (doc['doc_type'] == "application/pdf") { 34 | return 'pdf' 35 | } 36 | if (doc['doc_type'] == "application/epub+zip") { 37 | return 'epub' 38 | } 39 | if (doc['doc_type'] == "text/plain") { 40 | return 'txt' 41 | } 42 | if (doc['doc_type'] == "text/markdown") { 43 | return 'md' 44 | } 45 | if (doc['doc_type'] == "application/vnd.openxmlformats-officedocument.wordprocessingml.document") { 46 | return 'docx' 47 | } 48 | if (doc['doc_type'] == "web") { 49 | return 'web' 50 | } 51 | } 52 | 53 | export function docUrl(doc) { 54 | let base = location.origin 55 | if (import.meta.env.DEV) { 56 | base = `http://${location.hostname}:8000` 57 | } 58 | 59 | if (doc['doc_type'] == "application/pdf") { 60 | return "pdfjs/web/viewer.html?file=" + decodeURIComponent(`${base}/static/${doc.doc_id}/${doc.doc_name}`) 61 | } 62 | if (doc['doc_type'] == "application/epub+zip") { 63 | return "epub/index.html?url=" + decodeURIComponent(`${base}/static/${doc.doc_id}/${doc.doc_name}`) 64 | } 65 | if (doc['doc_type'] == "text/markdown") { 66 | return "md/index.html?url=" + decodeURIComponent(`${base}/static/${doc.doc_id}/${doc.doc_name}`) 67 | } 68 | if (doc['doc_type'] == "text/plain") { 69 | return `${base}/static/${doc.doc_id}/${doc.doc_name}` 70 | } 71 | if (doc['doc_type'] == "application/vnd.openxmlformats-officedocument.wordprocessingml.document") { 72 | return "docx/index.html?url=" + decodeURIComponent(`${base}/static/${doc.doc_id}/${doc.doc_name}`) 73 | } 74 | if (doc['doc_type'] == "web") { 75 | return doc.doc_name 76 | } 77 | 78 | } 79 | 80 | export function showLastMessage(after) { 81 | setTimeout(() => { 82 | const element = document.getElementsByClassName('message-item'); 83 | element.length > 0 && element[element.length - 1].scrollIntoView({ 84 | block: 'center', // 值有start,center,end,nearest,当前显示在视图区域中间 85 | behavior: 'smooth' // 值有auto,instant,smooth,缓动动画(当前是慢速的) 86 | }) 87 | }, after || 100) 88 | } -------------------------------------------------------------------------------- /client/src/views/AddLink.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 38 | -------------------------------------------------------------------------------- /client/src/views/Apikey.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 33 | -------------------------------------------------------------------------------- /client/src/views/Home.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | -------------------------------------------------------------------------------- /client/src/views/Login.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 55 | 56 | 59 | -------------------------------------------------------------------------------- /client/src/views/Logout.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 21 | 22 | 24 | 25 | -------------------------------------------------------------------------------- /client/src/views/Upload.vue: -------------------------------------------------------------------------------- 1 | 38 | 39 | 47 | -------------------------------------------------------------------------------- /client/src/views/UserAccount.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 31 | 32 | 34 | -------------------------------------------------------------------------------- /client/start: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | pnpm i 4 | pnpm dev -------------------------------------------------------------------------------- /client/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | import svgLoader from 'vite-svg-loader' 4 | import { resolve } from 'path' 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [vue(), svgLoader()], 8 | resolve: { 9 | alias: { 10 | '@': resolve('src'), 11 | } 12 | }, 13 | server: { 14 | proxy: { 15 | "/api": { 16 | target: "http://127.0.0.1:8000", 17 | changeOrigin: true, 18 | rewrite: path => path.replace(RegExp("/api"), ''), 19 | } 20 | } 21 | } 22 | }) 23 | -------------------------------------------------------------------------------- /docs/framework.md: -------------------------------------------------------------------------------- 1 | ## Learn how to organize frameworks 2 | 3 | 1. 4 | i have a `chatdata` web project consisting of a `server` folder and `client` folder. In `server` folder, I build a api backend server in `python` code where the `fastapi` and `uvicorn` package are used. and in `client` folder, i bulid a frontend website by `node, npm, pnpm, html, vue, js`. 5 | 6 | Now the `server` of `chatdata` project is implemention by python async function , but it only single user access. when there are multiple user access, it will response same content for all user. How do you extend this project to one that responds independently to multiple users? 7 | 8 | 2. How to transform this project into a multi-user independent response content project based on the current framework (front-end: fastapi, uvicorn, etc.; back-end vue, etc., as described above) 9 | 10 | -------------------------------------------------------------------------------- /docs/install.md: -------------------------------------------------------------------------------- 1 | # Install 2 | 3 | 下载本项目 4 | ```shell 5 | git clone git@github.com:hbchen121/ChatYourData.git 6 | ``` 7 | 8 | ## 前端安装(Frontend Install) 9 | 10 | ```shell 11 | cd client 12 | ``` 13 | 14 | 安装nodejs 15 | ```shell 16 | # Linux 17 | curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - 18 | sudo apt-get install -y nodejs 19 | 20 | # MacOS 21 | brew install nodejs 22 | ``` 23 | 24 | 安装相关包,需要再client目录下 25 | ```shell 26 | sudo npm install -g pnpm 27 | sudo npm install vuex 28 | sudo npm install vue-router 29 | sudo npm install axios 30 | ``` 31 | 32 | ```shell 33 | sudo bash start 34 | ``` 35 | 36 | ## 后端安装(Backend Install) 37 | 38 | 建议先安装conda/miniconda进行python包管理(参考[miniconda_install](miniconda_install.md)),同时创建Python3.9环境 39 | ```shell 40 | conda create -n chatdata python==3.9 41 | 42 | # activate 43 | conda activate chatdata 44 | ``` 45 | 46 | ```shell 47 | cd serve 48 | 49 | pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ 50 | ``` 51 | 52 | 在`start`中修改自己的代理端口,比如我的端口是 8889,否则无法访问 OPENAI_API 53 | ```shell 54 | export HTTP_PROXY=http://127.0.0.1:8889 55 | export HTTP_PROXY=http://127.0.0.1:8889 56 | ``` 57 | 58 | 启动脚本 59 | ```shell 60 | bash sudo start 61 | ``` 62 | 63 | 访问端口 `http://0.0.0.0:5173` 或 `http://127.0.0.1:5173` 即可进入 64 | 65 | -------------------------------------------------------------------------------- /docs/miniconda_install.md: -------------------------------------------------------------------------------- 1 | # Miniconda 安装 (BY ChatGPT) 2 | 3 | 安装Miniconda是在Ubuntu上设置Python环境的一种常见方法。以下是在Ubuntu上安装Miniconda的简单教程: 4 | 5 | 1.下载Miniconda安装脚本: 6 | 前往Miniconda[官方网站](https://docs.conda.io/en/latest/miniconda.html) 下载适用于Linux的Miniconda安装脚本。根据您的系统架构选择合适的版本(通常为64位)。 7 | 8 | 2.打开终端: 9 | 在Ubuntu上打开终端应用程序。您可以通过按下Ctrl + Alt + T键盘快捷键来快速启动终端。 10 | 11 | 3.运行安装脚本: 12 | 使用以下命令在终端中运行Miniconda安装脚本。请注意,根据您下载的文件名,可能需要调整命令中的文件名。 13 | 14 | ```shell 15 | bash Miniconda3-latest-Linux-x86_64.sh 16 | ``` 17 | 按照提示进行安装: 18 | 运行安装脚本后,您将看到一系列安装提示。按照屏幕上的指示,可以通过按Enter键进行默认安装。您可以选择接受许可协议并选择安装路径。通常,使用默认选项即可。 19 | 20 | 4.初始化Conda: 21 | 安装完成后,您需要初始化Conda环境。按照终端上的提示,运行以下命令: 22 | 23 | ```shell 24 | source ~/.bashrc 25 | ``` 26 | 验证安装: 27 | 运行以下命令来验证Miniconda的安装是否成功: 28 | 29 | ```shell 30 | conda --version 31 | ``` 32 | 33 | 如果安装成功,将显示Conda的版本号。 34 | 35 | 现在,您已成功在Ubuntu上安装了Miniconda。您可以使用Conda命令来创建和管理Python环境,安装软件包以及执行其他与环境相关的任务。有关更多详细信息和使用示例,请参阅Miniconda官方文档(https://docs.conda.io/en/latest/miniconda.html)。 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /docs/todo.md: -------------------------------------------------------------------------------- 1 | ## DONE and TODO 2 | 3 | ### DONE 4 | 1. 单用户访问 5 | 2. OPENAI API KEY 外放,方便用户使用 6 | 3. 简单的文件助手交互访问 7 | 8 | ### TODO 9 | 1. 添加用户验证功能,实现多用户并行交互 10 | 1. 前端添加用户验证UI(cookies? token?) 11 | 2. 后端添加不同用户分别映射功能 12 | 2. 添加不同模式下的 DataChat 13 | 1. 后端添加不同场景下的交互接口 14 | 2. 前端添加相应的接口,暴露用户的需求 15 | 3. -------------------------------------------------------------------------------- /login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/login.png -------------------------------------------------------------------------------- /overview.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/overview.jpeg -------------------------------------------------------------------------------- /preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/preview.png -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # ChatYourData 2 | 3 | ![overview](./overview.jpeg) 4 | 5 | ChatYourData ([github](https://github.com/hbchen121/ChatYourData)) 是一个基于ChatGPT等大模型技术的数据处理网站,通过上传用户私有数据、建立索引,用户可基于私有数据与ChatGPT等大模型进行对话,使大模型具有私有数据知识先验的前提下对用户的问题进行解答。具体的原理可参考: 6 | - [如何让 ChatGPT(LLMs) 学习更多的私有数据知识?(一)](https://mp.weixin.qq.com/s/rpQMZmAeFzNFEYMBQgp_Ng) 7 | - [如何让 ChatGPT(LLMs) 学习更多的私有数据知识?(二)](https://mp.weixin.qq.com/s/2iu8x5RlcWTLu9yCR4ChRg) 8 | 9 | ## ChatYourData 特点 10 | 11 | - 网页部署地址:[link](http://101.42.32.28:5173/)(域名待续中) 12 | - 通过 ChatYourData 可以使 ChatGPT 学习到用户私有知识; 13 | - ChatYourData 需要用户使用自己的 OPEN API KEY,在无须魔法的情况下,也能与 ChatGPT 对话; 14 | 15 | ## 登录 16 | - 输入用户名和密码即可自动注册登录,用户名和密码无限制,主要是为了保护个人的配置和文件; 17 | 18 | ![login](./login.png) 19 | 20 | ## 用法 21 | 1. 登录完成后首先需要设置自己的 OPENAI API KEY,否则无法进行搜索,API KEY 获取可参考教程。设置 API KEY 后可以刷新一下页面,就能看到自己的 API KEY显示出来; 22 | 2. 将需要搜索(Chat)的数据(文件或链接)进行上传/添加: 23 | - 文件目前支持 .pdf, .epub, .md, .txt 类型文件 24 | - 链接对目标网站有要求,有些网站不能正常获取(比如github,csdn等) 25 | 3. 添加后,会出现一个文件项,同时index为 doing 状态,可以刷新下查看 index 状态变化。当状态为done时即可基于索引与数据内容进行交流。 26 | 27 | ![preview](./preview.png) 28 | 29 | ## 构建 30 | 31 | 构建自己的 ChatYourData 服务见[安装教程](./docs/install.md),你需要: 32 | - 自己的代理节点(不然无法访问OPENAI API) 33 | 34 | 基于本项目进行二次开发,你需要: 35 | - 前端:Vue + JavaScript + Html 36 | - 后端:Python + SQL + AI(可选,调接口就不需要,优化索引逻辑等可能需要,非必须) 37 | 38 | 39 | ## 合作 40 | 41 | - 本项目的前端、后端交互等主要靠 ChatGPT 和 Claude 辅助编程来debug,我是不咋会前端...有相关AI辅助编程需要的朋友也欢迎交流.. 42 | - 欢迎有对这个项目感兴趣的志同道合的朋友交流,目前网站还有许多需要优化的地方,期待大家批评交流~ 43 | 44 | ## 关于我 45 | 另外,介绍下自己,我是卷了又没卷,薛定谔的卷的AI算法工程师「陈城南」~ 46 | 担任某大厂的算法工程师,带来最新的前沿AI知识和工具,欢迎大家交流~,后续我还会分享更多 AI 有趣工具和实用玩法,包括 ChatGPT、AI绘图等。 47 | - 公众号「陈城南」 48 | - 加V「cchengnan113」备注 AI交流群 进行交流 49 | - 知乎账号「[陈城南](https://www.zhihu.com/people/cchengnan113)」 -------------------------------------------------------------------------------- /server/chatdata/__init__.py: -------------------------------------------------------------------------------- 1 | # encoding:utf-8 2 | -------------------------------------------------------------------------------- /server/chatdata/chat_test.py: -------------------------------------------------------------------------------- 1 | # encoding:utf-8 2 | import os 3 | import os.path as osp 4 | import time 5 | 6 | from llama_index import GPTSimpleVectorIndex, SimpleDirectoryReader 7 | from langchain import OpenAI 8 | import logging 9 | import sys 10 | 11 | 12 | logging.basicConfig(stream=sys.stdout, level=logging.DEBUG) 13 | logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout)) 14 | 15 | 16 | def chat_data(input_text, filename): 17 | time.sleep(3) 18 | return input_text 19 | # documents = SimpleDirectoryReader(input_files=[filename]).load_data() 20 | # os.environ['OPENAI_API_KEY'] = 'OPENAI_API_KEY' 21 | # index_file = f"cache/{osp.basename(filename)}.json" 22 | # if osp.exists(index_file): 23 | # index = GPTSimpleVectorIndex.load_from_disk(index_file) 24 | # else: 25 | # index = GPTSimpleVectorIndex.from_documents(documents) 26 | # index.save_to_disk(index_file, encoding='utf-8') 27 | # response = index.query(input_text) 28 | # return response 29 | 30 | 31 | if __name__ == '__main__': 32 | import IPython 33 | filename = 'cache/未命名文本.txt' 34 | input_text = '文章标题是什么?' 35 | rsp = chat_data(input_text, filename) 36 | print(rsp.response) 37 | IPython.embed() 38 | pass 39 | -------------------------------------------------------------------------------- /server/database/__init__.py: -------------------------------------------------------------------------------- 1 | # encoding:utf-8 2 | -------------------------------------------------------------------------------- /server/database/database.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbchen121/ChatYourData/8a378f2966d28eb160f6ccd35d0bcbd8a8934378/server/database/database.db -------------------------------------------------------------------------------- /server/database/db_docs.py: -------------------------------------------------------------------------------- 1 | import sqlite3 2 | import calendar 3 | import time 4 | 5 | 6 | class Docs: 7 | 8 | def __init__(self, username: str, uid: int, doc_id: str, doc_name: str, doc_type: str, size: int = 0, 9 | state: int = 0, create_at: int = 0, update_at: int = 0, id: int = 0, userid: int = 0): 10 | self.uid = uid 11 | self.doc_id = doc_id 12 | self.doc_name = doc_name 13 | self.doc_type = doc_type 14 | self.state = state 15 | self.size = size 16 | self.create_at = create_at 17 | self.update_at = update_at 18 | self.userid = userid 19 | self.username = username 20 | 21 | ts = calendar.timegm(time.gmtime()) 22 | if self.create_at == 0: 23 | self.create_at = ts 24 | if self.update_at == 0: 25 | self.update_at = ts 26 | 27 | self.__conn = sqlite3.connect('database.db') 28 | self.__cursor = self.__conn.cursor() 29 | 30 | # 将对象插入到数据库中 31 | def insert(self): 32 | docs = self.get_by_doc_id(self.doc_id) 33 | if docs != None: 34 | return 35 | print('size', self.size) 36 | self.__cursor.execute( 37 | 'INSERT INTO docs (uid, doc_id, doc_name, doc_type, size, state, create_at, update_at, userid, username) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', 38 | (self.uid, self.doc_id, self.doc_name, self.doc_type, self.size, self.state, self.create_at, self.update_at, 39 | self.userid, self.username)) 40 | self.__conn.commit() 41 | 42 | # 从数据库中删除对象 43 | def delete(self): 44 | self.__cursor.execute('DELETE FROM docs WHERE doc_id = ?', (self.doc_id,)) 45 | self.__conn.commit() 46 | 47 | # 更新对象在数据库中的信息 48 | def update(self): 49 | self.__cursor.execute( 50 | 'UPDATE docs SET uid = ?, doc_name = ?, doc_type = ?, size = ?, state = ?, create_at = ?, update_at = ?, userid = ?, username = ? WHERE doc_id = ?', 51 | (self.uid, self.doc_name, self.doc_type, self.size, self.state, self.create_at, self.update_at, self.userid, 52 | self.username, self.doc_id)) 53 | self.__conn.commit() 54 | 55 | # 从数据库中获取所有对象 56 | @staticmethod 57 | def get_all(): 58 | conn = sqlite3.connect('database.db') 59 | cur = conn.cursor() 60 | cur.execute('SELECT id,uid,doc_id,doc_name,doc_type,size,state,userid,username FROM docs') 61 | rows = cur.fetchall() 62 | cur.close() 63 | conn.close() 64 | return [{"id": row[0], "uid": row[1], "doc_id": row[2], "doc_name": row[3], "doc_type": row[4], 65 | "size": row[5], "state": row[6], "userid": row[7], "username": row[8]} for row in rows] 66 | 67 | @staticmethod 68 | def get_username_all(username): 69 | """ 70 | 取出指定user的所有 71 | """ 72 | conn = sqlite3.connect('database.db') 73 | cur = conn.cursor() 74 | cur.execute('SELECT id,uid,doc_id,doc_name,doc_type,size,state,userid,username FROM docs WHERE username = ?', 75 | (username,)) 76 | rows = cur.fetchall() 77 | cur.close() 78 | conn.close() 79 | return [{"id": row[0], "uid": row[1], "doc_id": row[2], "doc_name": row[3], "doc_type": row[4], 80 | "size": row[5], "state": row[6], "userid": row[7], "username": row[8]} for row in rows] 81 | 82 | # 从数据库中获取指定doc_id的对象 83 | @staticmethod 84 | def get_by_doc_id(doc_id): 85 | conn = sqlite3.connect('database.db') 86 | cur = conn.cursor() 87 | cur.execute('SELECT id,uid,doc_id,doc_name,doc_type,size,state,userid,username FROM docs WHERE doc_id = ?', 88 | (doc_id,)) 89 | row = cur.fetchone() 90 | cur.close() 91 | conn.close() 92 | if row is not None: 93 | return {"id": row[0], "uid": row[1], "doc_id": row[2], "doc_name": row[3], "doc_type": row[4], 94 | "size": row[5], "state": row[6], "userid": row[7], "username": row[8]} 95 | else: 96 | return None 97 | 98 | @staticmethod 99 | def del_by_doc_id(doc_id): 100 | conn = sqlite3.connect('database.db') 101 | cur = conn.cursor() 102 | cur.execute('DELETE FROM docs WHERE doc_id = ?', (doc_id,)) 103 | cur.close() 104 | conn.commit() 105 | conn.close() 106 | 107 | def __str__(self): 108 | return f"Doc(uid={self.uid}, doc_id='{self.doc_id}', doc_name='{self.doc_name}', doc_type='{self.doc_type}', state={self.state}, create_at={self.create_at}, update_at={self.update_at})" 109 | -------------------------------------------------------------------------------- /server/database/db_init.py: -------------------------------------------------------------------------------- 1 | import sqlite3 2 | import os 3 | 4 | os.remove("database.db") 5 | 6 | table_docs = """ 7 | create table if not exists docs 8 | ( 9 | id integer primary key autoincrement, 10 | uid integer default 0 not null, 11 | doc_id text default '' not null unique, 12 | doc_name text default '' not null, 13 | doc_type text default '' not null, 14 | state integer default 0 not null, -- 1 解析文本成功, 2 构建所有成功 15 | size integer default 0 not null, 16 | create_at integer default 0 not null, 17 | update_at integer default 0 not null, 18 | userid integer default 0 not null, 19 | username text default '' not null 20 | ); 21 | """ 22 | 23 | table_msg = """ 24 | create table if not exists messages 25 | ( 26 | id integer primary key autoincrement, 27 | uid integer default 0 not null, 28 | doc_id text default '' not null, 29 | role text default '' not null, 30 | content text default '' not null, 31 | create_at integer not null 32 | ); 33 | """ 34 | 35 | table_user = """ 36 | create table if not exists users 37 | ( 38 | id integer primary key autoincrement, 39 | userid integer default 0 not null, 40 | username text default '' not null, 41 | password text default '' not null, 42 | token text default '' not null, 43 | api_key text default '' not null, 44 | create_at integer not null 45 | ); 46 | """ 47 | 48 | con = sqlite3.connect("database.db") 49 | 50 | cur = con.cursor() 51 | 52 | cur.execute(table_docs) 53 | cur.execute(table_msg) 54 | cur.execute(table_user) 55 | 56 | res = cur.execute("SELECT name FROM sqlite_master") 57 | 58 | result = res.fetchall() 59 | 60 | print(result) -------------------------------------------------------------------------------- /server/database/db_msg.py: -------------------------------------------------------------------------------- 1 | import sqlite3 2 | import calendar 3 | import time 4 | import json 5 | 6 | class Msg: 7 | 8 | def __init__(self, uid: int, doc_id: str, role: str, content, create_at: int = 0): 9 | self.uid = uid 10 | self.doc_id = doc_id 11 | self.role = role 12 | if role == 'chatdata': 13 | self.content = content.response 14 | else: 15 | self.content = content 16 | self.create_at = create_at 17 | 18 | ts = calendar.timegm(time.gmtime()) 19 | if self.create_at == 0: 20 | self.create_at = ts 21 | 22 | self.__conn = sqlite3.connect('database.db') 23 | self.__cursor = self.__conn.cursor() 24 | 25 | # 将对象插入到数据库中 26 | def insert(self): 27 | self.__cursor.execute('INSERT INTO messages (uid, doc_id, role, content, create_at) VALUES (?, ?, ?, ?, ?)', 28 | (self.uid, self.doc_id, self.role, self.content, self.create_at)) 29 | self.__conn.commit() 30 | 31 | # 从数据库中删除对象 32 | def delete(self): 33 | self.__cursor.execute( 34 | 'DELETE FROM messages WHERE doc_id = ?', (self.doc_id,)) 35 | self.__conn.commit() 36 | 37 | # 从数据库中获取指定doc_id的对象 38 | @staticmethod 39 | def get_by_doc_id(doc_id, uid): 40 | conn = sqlite3.connect('database.db') 41 | cur = conn.cursor() 42 | cur.execute( 43 | 'SELECT uid, doc_id, role, content, create_at FROM messages WHERE doc_id = ? and uid = ?', (doc_id, uid)) 44 | rows = cur.fetchall() 45 | cur.close() 46 | conn.close() 47 | if rows is not None: 48 | return [{"uid": row[0], "doc_id": row[1], "role": row[2], "content": row[3] if row[2] == 'user' else row[3]} for row in rows] 49 | else: 50 | return None 51 | -------------------------------------------------------------------------------- /server/database/db_user.py: -------------------------------------------------------------------------------- 1 | import sqlite3 2 | import calendar 3 | import time 4 | from utils.passwords import hash 5 | 6 | 7 | class Users: 8 | def __init__(self, userid: int, username: str, password: str = '', token: str = '', api_key: str = '', 9 | create_at: int = 0, id: int = 0): 10 | self.userid = userid 11 | self.username = username 12 | self.password = password 13 | self.token = token 14 | self.api_key = api_key 15 | self.create_at = create_at 16 | 17 | ts = calendar.timegm(time.gmtime()) 18 | if self.create_at == 0: 19 | self.create_at = ts 20 | 21 | self.__conn = sqlite3.connect('database.db') 22 | self.__cursor = self.__conn.cursor() 23 | 24 | # 将对象插入到数据库中 25 | def create(self): 26 | docs = self.get_by_username(self.username) 27 | if docs is not None: 28 | return self 29 | print('create username', self.username) 30 | if self.password == '': 31 | print("password is empty") 32 | return None 33 | self.password = hash(self.password) 34 | self.__cursor.execute( 35 | 'INSERT INTO users (userid,username,password,token,api_key, create_at) VALUES (?, ?, ?, ?, ?, ?)', 36 | (self.userid, self.username, self.password, self.token, self.api_key, self.create_at)) 37 | self.__conn.commit() 38 | return self 39 | 40 | # 从数据库中删除对象 41 | def delete(self): 42 | self.__cursor.execute('DELETE FROM users WHERE username = ?', (self.username,)) 43 | self.__conn.commit() 44 | 45 | # 46 | def update(self, password='', token='', api_key=''): 47 | """ 48 | 更新对象在数据库中的信息,只能更新这三个 49 | """ 50 | db_info = self.get_by_username(self.username) 51 | if db_info is None: 52 | print(f"get {self.username} info error") 53 | return 54 | self.password = password or db_info["password"] 55 | self.token = token or db_info["token"] 56 | self.api_key = api_key or db_info["api_key"] 57 | self.__cursor.execute('UPDATE users SET password = ?, token = ?, api_key = ? WHERE username = ?', 58 | (self.password, self.token, self.api_key, self.username)) 59 | self.__conn.commit() 60 | print(f"update {self.username} success") 61 | 62 | # 从数据库中获取所有对象 63 | @staticmethod 64 | def get_all(): 65 | conn = sqlite3.connect('database.db') 66 | cur = conn.cursor() 67 | cur.execute('SELECT id,userid,username,password,token,api_key FROM users') 68 | rows = cur.fetchall() 69 | cur.close() 70 | conn.close() 71 | return [ 72 | {"id": row[0], "userid": row[1], "username": row[2], "password": row[3], "token": row[4], "api_key": row[5]} 73 | for row in rows] 74 | 75 | # 从数据库中获取指定doc_id的对象 76 | @staticmethod 77 | def get_by_username(username): 78 | conn = sqlite3.connect('database.db') 79 | cur = conn.cursor() 80 | cur.execute('SELECT id,userid,username,password,token,api_key FROM users WHERE username = ?', (username,)) 81 | row = cur.fetchone() 82 | cur.close() 83 | conn.close() 84 | if row is not None: 85 | return {"id": row[0], "userid": row[1], "username": row[2], "password": row[3], "token": row[4], 86 | "api_key": row[5]} 87 | else: 88 | return None 89 | 90 | @staticmethod 91 | def del_by_username(username): 92 | conn = sqlite3.connect('database.db') 93 | cur = conn.cursor() 94 | cur.execute('DELETE FROM users WHERE username = ?', (username,)) 95 | cur.close() 96 | conn.commit() 97 | conn.close() 98 | 99 | def __str__(self): 100 | return f"User(userid={self.userid}, username='{self.username}', password='{self.password}', token='{self.token}', api_key={self.api_key}, create_at={self.create_at}" 101 | 102 | 103 | def get_by_token(token): 104 | conn = sqlite3.connect('database.db') 105 | cur = conn.cursor() 106 | cur.execute('SELECT id,userid,username,password,token,api_key,create_at FROM users WHERE token = ?', (token,)) 107 | row = cur.fetchone() 108 | cur.close() 109 | conn.close() 110 | if row is not None: 111 | return {"id": row[0], "userid": row[1], "username": row[2], "password": row[3], "token": row[4], 112 | "api_key": row[5], "create_at": row[6]} 113 | else: 114 | return None 115 | 116 | 117 | def token2user(token): 118 | info = get_by_token(token) 119 | if info is None: 120 | return info 121 | return Users(**info) 122 | 123 | 124 | if __name__ == '__main__': 125 | a = Users(0, "test", "test") 126 | a.create() 127 | users = Users.get_all() 128 | print(users) 129 | -------------------------------------------------------------------------------- /server/download_website.py: -------------------------------------------------------------------------------- 1 | import os 2 | import shutil 3 | import requests 4 | from bs4 import BeautifulSoup 5 | 6 | url = "https://www.jianshu.com/p/474f4713753ct" 7 | response = requests.get(url) 8 | 9 | # 创建目录 10 | path = "example" 11 | if not os.path.exists(path): 12 | os.mkdir(path) 13 | 14 | # 解析 HTML 页面 15 | soup = BeautifulSoup(response.text, "html.parser") 16 | 17 | # 保存 HTML 页面 18 | with open(f"{path}/index.html", "w") as f: 19 | f.write(soup.prettify()) 20 | 21 | # 保存 CSS 文件 22 | for link in soup.find_all("link"): 23 | if link.get("rel") == ["stylesheet"]: 24 | css_url = link.get("href") 25 | css_response = requests.get(css_url) 26 | css_path = f"{path}/{css_url.split('/')[-1]}" 27 | with open(css_path, "wb") as f: 28 | f.write(css_response.content) 29 | 30 | # 保存 JavaScript 文件 31 | for script in soup.find_all("script"): 32 | if script.get("src"): 33 | js_url = script.get("src") 34 | js_response = requests.get(js_url) 35 | js_path = f"{path}/{js_url.split('/')[-1]}" 36 | with open(js_path, "wb") as f: 37 | f.write(js_response.content) 38 | 39 | # 复制所有图片文件 40 | for img in soup.find_all("img"): 41 | img_url = img.get("src") 42 | img_response = requests.get(img_url) 43 | img_path = f"{path}/{img_url.split('/')[-1]}" 44 | with open(img_path, "wb") as f: 45 | f.write(img_response.content) 46 | 47 | # 复制所有媒体文件 48 | for source in soup.find_all("source"): 49 | media_url = source.get("src") 50 | media_response = requests.get(media_url) 51 | media_path = f"{path}/{media_url.split('/')[-1]}" 52 | with open(media_path, "wb") as f: 53 | f.write(media_response.content) 54 | 55 | # 复制所有字体文件 56 | for font in soup.find_all("link"): 57 | if font.get("rel") == ["stylesheet"] and "font" in font.get("href"): 58 | font_url = font.get("href") 59 | font_response = requests.get(font_url) 60 | font_path = f"{path}/{font_url.split('/')[-1]}" 61 | with open(font_path, "wb") as f: 62 | f.write(font_response.content) 63 | 64 | # 复制所有其他文件 65 | for link in soup.find_all("link"): 66 | if not link.get("rel") == ["stylesheet"]: 67 | file_url = link.get("href") 68 | if file_url and "." in file_url: 69 | file_extension = file_url.split(".")[-1] 70 | if file_extension not in ["css", "js"]: 71 | file_response = requests.get(file_url) 72 | file_path = f"{path}/{file_url.split('/')[-1]}" 73 | with open(file_path, "wb") as f: 74 | f.write(file_response.content) 75 | -------------------------------------------------------------------------------- /server/models.py: -------------------------------------------------------------------------------- 1 | from typing import Optional 2 | from pydantic import BaseModel 3 | from sqlalchemy import (Column, PrimaryKeyConstraint, String) 4 | from sqlalchemy.ext.declarative import declarative_base 5 | 6 | Base = declarative_base() 7 | 8 | # User Accounts 9 | 10 | class UserModel(BaseModel): 11 | username: str 12 | 13 | class Config: 14 | orm_mode = True 15 | 16 | class UserWithHashModel(UserModel): 17 | password: str 18 | 19 | class UserOrm(Base): 20 | __tablename__ = 'users' 21 | username = Column(String, unique=True) 22 | password = Column(String) 23 | PrimaryKeyConstraint(username) 24 | 25 | def __repr__(self): 26 | return "".format(self.username, self.password) 27 | 28 | # Tokens 29 | 30 | class Token(BaseModel): 31 | access_token: str 32 | token_type: str 33 | 34 | class TokenData(Token): 35 | username: Optional[str] = None 36 | -------------------------------------------------------------------------------- /server/requirements.txt: -------------------------------------------------------------------------------- 1 | beautifulsoup4==4.12.0 2 | EbookLib==0.17.1 3 | epub2txt==0.1.1 4 | fastapi==0.95.0 5 | langchain==0.0.144 6 | llama_index==0.5.17.post1 7 | pydantic==1.10.7 8 | PyPDF2==3.0.1 9 | requests==2.28.2 10 | starlette==0.26.1 11 | uvicorn==0.21.1 12 | docx2txt==0.8 13 | html2text==2020.1.16 14 | ipython==8.12.2 15 | python_multipart==0.0.6 16 | python-jose==3.3.0 17 | passlib==1.7.4 18 | argon2-cffi==21.3.0 19 | ipdb=0.13.13 -------------------------------------------------------------------------------- /server/start: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | echo "Starting Python server..." 5 | mkdir -p data 6 | 7 | # set proxy port 8 | export HTTP_PROXY=http://127.0.0.1:8889 9 | export HTTPS_PROXY=http://127.0.0.1:8889 10 | 11 | 12 | #PYTHONASYNCIODEBUG=1 \ 13 | PYTHONPATH="$(dirname $0)":$PYTHONPATH \ 14 | python3 \ 15 | main.py -------------------------------------------------------------------------------- /server/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # encoding:utf-8 2 | -------------------------------------------------------------------------------- /server/utils/consts.py: -------------------------------------------------------------------------------- 1 | BASE_DIR = "data" -------------------------------------------------------------------------------- /server/utils/passwords.py: -------------------------------------------------------------------------------- 1 | # encoding:utf-8 2 | from passlib.hash import argon2 3 | 4 | 5 | def hash(password): 6 | return argon2.hash(password) 7 | 8 | 9 | def verify(password, hash): 10 | return argon2.verify(hash, password) 11 | 12 | 13 | def check(hash): 14 | return argon2.check_needs_rehash(hash) -------------------------------------------------------------------------------- /server/utils/structs.py: -------------------------------------------------------------------------------- 1 | # encoding:utf-8 2 | from pydantic import BaseModel 3 | 4 | 5 | class UserDetails(BaseModel): 6 | username: str 7 | access_token: str 8 | token_type: str 9 | 10 | 11 | class AddLink(BaseModel): 12 | link: str 13 | user: UserDetails # client / src / views / AddLink.vue: 24 14 | # user: dict # client / src / views / AddLink.vue: 24 15 | 16 | 17 | class Apikey(BaseModel): 18 | apikey: str 19 | user: UserDetails # client/src/views/Apikey.vue:23 20 | # user: dict # client/src/views/Apikey.vue:23 21 | 22 | 23 | class User(BaseModel): 24 | user: UserDetails 25 | -------------------------------------------------------------------------------- /server/utils/utils.py: -------------------------------------------------------------------------------- 1 | # encoding:utf-8 2 | --------------------------------------------------------------------------------