├── 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 |
12 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/annotation-comment.svg:
--------------------------------------------------------------------------------
1 |
2 |
17 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/annotation-help.svg:
--------------------------------------------------------------------------------
1 |
2 |
27 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/annotation-insert.svg:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/annotation-key.svg:
--------------------------------------------------------------------------------
1 |
2 |
12 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/annotation-newparagraph.svg:
--------------------------------------------------------------------------------
1 |
2 |
12 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/annotation-noicon.svg:
--------------------------------------------------------------------------------
1 |
2 |
8 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/annotation-note.svg:
--------------------------------------------------------------------------------
1 |
2 |
43 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/annotation-paperclip.svg:
--------------------------------------------------------------------------------
1 |
4 |
7 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/annotation-paragraph.svg:
--------------------------------------------------------------------------------
1 |
2 |
17 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/annotation-pushpin.svg:
--------------------------------------------------------------------------------
1 |
4 |
8 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/cursor-editorFreeText.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/cursor-editorInk.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/findbarButton-next.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/findbarButton-previous.svg:
--------------------------------------------------------------------------------
1 |
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 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/secondaryToolbarButton-firstPage.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/secondaryToolbarButton-handTool.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/secondaryToolbarButton-lastPage.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/secondaryToolbarButton-rotateCcw.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/secondaryToolbarButton-rotateCw.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/secondaryToolbarButton-scrollHorizontal.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/secondaryToolbarButton-scrollPage.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/secondaryToolbarButton-scrollVertical.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/secondaryToolbarButton-scrollWrapped.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/secondaryToolbarButton-selectTool.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/secondaryToolbarButton-spreadEven.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/secondaryToolbarButton-spreadNone.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/secondaryToolbarButton-spreadOdd.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-bookmark.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-currentOutlineItem.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-download.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-editorFreeText.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-editorInk.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-menuArrow.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-openFile.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-pageDown.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-pageUp.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-presentationMode.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-print.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-search.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-secondaryToolbarToggle.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-sidebarToggle.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-viewAttachments.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-viewLayers.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-viewOutline.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-viewThumbnail.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-zoomIn.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/client/public/pdfjs/web/images/toolbarButton-zoomOut.svg:
--------------------------------------------------------------------------------
1 |
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 |
2 |
3 |
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 |
--------------------------------------------------------------------------------
/client/src/assets/send.svg:
--------------------------------------------------------------------------------
1 |
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 |
2 | 链接
3 |
4 |
5 |
38 |
--------------------------------------------------------------------------------
/client/src/views/Apikey.vue:
--------------------------------------------------------------------------------
1 |
2 | 设置
3 |
4 |
5 |
33 |
--------------------------------------------------------------------------------
/client/src/views/Home.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/client/src/views/Login.vue:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
55 |
56 |
59 |
--------------------------------------------------------------------------------
/client/src/views/Logout.vue:
--------------------------------------------------------------------------------
1 |
2 | 注销
3 |
4 |
5 |
21 |
22 |
24 |
25 |
--------------------------------------------------------------------------------
/client/src/views/Upload.vue:
--------------------------------------------------------------------------------
1 |
38 |
39 |
40 |
42 |
43 | 文件
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/client/src/views/UserAccount.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Show user account details
4 |
5 |
6 | Token: {{ user?.access_token || "null" }}
7 |
8 |
9 | User: {{ user?.username || "null" }}
10 |
11 |
12 |
13 |
14 |
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 | 
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 | 
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 | 
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 |
--------------------------------------------------------------------------------