├── .gitignore ├── LICENSE ├── Projects ├── ServerPro │ ├── .gitignore │ ├── .npmrc │ ├── package.json │ ├── src │ │ ├── com │ │ │ ├── DBTool │ │ │ │ ├── DBConnectTool.js │ │ │ │ ├── DBConnectTool.js.map │ │ │ │ ├── DBConnectTool.ts │ │ │ │ ├── DBTool.js │ │ │ │ ├── DBTool.js.map │ │ │ │ ├── DBTool.ts │ │ │ │ ├── Sqlite3Promise.js │ │ │ │ ├── Sqlite3Promise.js.map │ │ │ │ ├── Sqlite3Promise.ts │ │ │ │ ├── schema.js │ │ │ │ ├── schema.js.map │ │ │ │ └── schema.ts │ │ │ ├── configTool.js │ │ │ ├── configTool.js.map │ │ │ ├── configTool.ts │ │ │ ├── log │ │ │ │ ├── log4.js │ │ │ │ ├── log4.js.map │ │ │ │ └── log4.ts │ │ │ └── webSocketTool │ │ │ │ ├── webSocketTool.js │ │ │ │ ├── webSocketTool.js.map │ │ │ │ └── webSocketTool.ts │ │ ├── index.js │ │ ├── index.js.map │ │ ├── index.ts │ │ ├── lib │ │ │ ├── ContentTypeTool.js │ │ │ ├── ContentTypeTool.js.map │ │ │ ├── ContentTypeTool.ts │ │ │ ├── CryptoUtil.js │ │ │ ├── CryptoUtil.js.map │ │ │ ├── CryptoUtil.ts │ │ │ ├── FSTool │ │ │ │ ├── calcFileInfo.js │ │ │ │ ├── calcFileInfo.js.map │ │ │ │ ├── calcFileInfo.ts │ │ │ │ ├── compressible.js │ │ │ │ ├── compressible.js.map │ │ │ │ ├── compressible.ts │ │ │ │ ├── createDirectory.js │ │ │ │ ├── createDirectory.js.map │ │ │ │ ├── createDirectory.ts │ │ │ │ ├── createFile.js │ │ │ │ ├── createFile.js.map │ │ │ │ ├── createFile.ts │ │ │ │ ├── createFileAsync.js │ │ │ │ ├── createFileAsync.js.map │ │ │ │ ├── createFileAsync.ts │ │ │ │ ├── deleteFile.js │ │ │ │ ├── deleteFile.js.map │ │ │ │ ├── deleteFile.ts │ │ │ │ ├── fileMd5.js │ │ │ │ ├── fileMd5.js.map │ │ │ │ ├── fileMd5.ts │ │ │ │ ├── getFileInfoList │ │ │ │ │ ├── fiveThreadFileInfoList │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.js.map │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── threadCore.js │ │ │ │ │ │ ├── threadCore.js.map │ │ │ │ │ │ └── threadCore.ts │ │ │ │ │ ├── index.js │ │ │ │ │ ├── index.js.map │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── phasedFileInfoList.js │ │ │ │ │ ├── phasedFileInfoList.js.map │ │ │ │ │ ├── phasedFileInfoList.ts │ │ │ │ │ ├── randomAsync.js │ │ │ │ │ ├── randomAsync.js.map │ │ │ │ │ ├── randomAsync.ts │ │ │ │ │ ├── simpleFileInfoList.js │ │ │ │ │ ├── simpleFileInfoList.js.map │ │ │ │ │ └── simpleFileInfoList.ts │ │ │ │ ├── getFilePathList.js │ │ │ │ ├── getFilePathList.js.map │ │ │ │ ├── getFilePathList.ts │ │ │ │ ├── getPathInfo.js │ │ │ │ ├── getPathInfo.js.map │ │ │ │ ├── getPathInfo.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.js.map │ │ │ │ ├── index.ts │ │ │ │ ├── pathSplit.js │ │ │ │ ├── pathSplit.js.map │ │ │ │ ├── pathSplit.ts │ │ │ │ ├── readFileAsync.js │ │ │ │ ├── readFileAsync.js.map │ │ │ │ ├── readFileAsync.ts │ │ │ │ ├── stringMd5.js │ │ │ │ ├── stringMd5.js.map │ │ │ │ ├── stringMd5.ts │ │ │ │ ├── zlibPromise.js │ │ │ │ ├── zlibPromise.js.map │ │ │ │ └── zlibPromise.ts │ │ │ ├── GISServer │ │ │ │ ├── CesiumTerrain │ │ │ │ │ ├── CesiumTerrain.js │ │ │ │ │ ├── CesiumTerrain.js.map │ │ │ │ │ ├── CesiumTerrain.ts │ │ │ │ │ ├── access_token.js │ │ │ │ │ ├── access_token.js.map │ │ │ │ │ └── access_token.ts │ │ │ │ ├── MapboxTile │ │ │ │ │ ├── MapboxTile.js │ │ │ │ │ ├── MapboxTile.js.map │ │ │ │ │ ├── MapboxTile.ts │ │ │ │ │ ├── access_token.js │ │ │ │ │ ├── access_token.js.map │ │ │ │ │ └── access_token.ts │ │ │ │ ├── OSMTile │ │ │ │ │ ├── OSMTile.js │ │ │ │ │ ├── OSMTile.js.map │ │ │ │ │ └── OSMTile.ts │ │ │ │ └── Util │ │ │ │ │ ├── initDB.js │ │ │ │ │ ├── initDB.js.map │ │ │ │ │ ├── initDB.ts │ │ │ │ │ ├── readFromDB.js │ │ │ │ │ ├── readFromDB.js.map │ │ │ │ │ ├── readFromDB.ts │ │ │ │ │ ├── readFromDisk.js │ │ │ │ │ ├── readFromDisk.js.map │ │ │ │ │ ├── readFromDisk.ts │ │ │ │ │ ├── readFromNet.js │ │ │ │ │ ├── readFromNet.js.map │ │ │ │ │ ├── readFromNet.ts │ │ │ │ │ ├── saveToDB.js │ │ │ │ │ ├── saveToDB.js.map │ │ │ │ │ ├── saveToDB.ts │ │ │ │ │ ├── saveToFile.js │ │ │ │ │ ├── saveToFile.js.map │ │ │ │ │ └── saveToFile.ts │ │ │ ├── ProgressBar │ │ │ │ ├── ProgressBar.js │ │ │ │ ├── ProgressBar.js.map │ │ │ │ └── ProgressBar.ts │ │ │ ├── RSATool.js │ │ │ ├── RSATool.js.map │ │ │ ├── RSATool.ts │ │ │ ├── TileTool │ │ │ │ ├── CheckLackTile.js │ │ │ │ ├── CheckLackTile.js.map │ │ │ │ ├── CheckLackTile.ts │ │ │ │ ├── GetMapTile.js │ │ │ │ ├── GetMapTile.js.map │ │ │ │ ├── GetMapTile.ts │ │ │ │ ├── TileImpl │ │ │ │ │ ├── Tile.js │ │ │ │ │ ├── Tile.js.map │ │ │ │ │ ├── Tile.ts │ │ │ │ │ ├── TileBox.js │ │ │ │ │ ├── TileBox.js.map │ │ │ │ │ ├── TileBox.ts │ │ │ │ │ ├── VectorTile.js │ │ │ │ │ ├── VectorTile.js.map │ │ │ │ │ ├── VectorTile.ts │ │ │ │ │ ├── mvtTileBox.js │ │ │ │ │ ├── mvtTileBox.js.map │ │ │ │ │ └── mvtTileBox.ts │ │ │ │ ├── TileSet.js │ │ │ │ ├── TileSet.js.map │ │ │ │ ├── TileSet.ts │ │ │ │ ├── TileUtil.js │ │ │ │ ├── TileUtil.js.map │ │ │ │ ├── TileUtil.ts │ │ │ │ ├── TileUtil3857.js │ │ │ │ ├── TileUtil3857.js.map │ │ │ │ ├── TileUtil3857.ts │ │ │ │ ├── TileUtil4326.js │ │ │ │ ├── TileUtil4326.js.map │ │ │ │ ├── TileUtil4326.ts │ │ │ │ ├── multiThreadGet.js │ │ │ │ ├── multiThreadGet.js.map │ │ │ │ ├── multiThreadGet.ts │ │ │ │ ├── simplifyGeoJson.js │ │ │ │ ├── simplifyGeoJson.js.map │ │ │ │ ├── simplifyGeoJson.ts │ │ │ │ ├── twoPolygonRelation.js │ │ │ │ ├── twoPolygonRelation.js.map │ │ │ │ ├── twoPolygonRelation.ts │ │ │ │ ├── unionGeoJson.js │ │ │ │ ├── unionGeoJson.js.map │ │ │ │ └── unionGeoJson.ts │ │ │ ├── YaoDo │ │ │ │ ├── Source │ │ │ │ │ ├── ArrTool.js │ │ │ │ │ ├── ArrTool.js.map │ │ │ │ │ ├── ArrTool.ts │ │ │ │ │ ├── AsyncTool.js │ │ │ │ │ ├── AsyncTool.js.map │ │ │ │ │ ├── AsyncTool.ts │ │ │ │ │ ├── BOMTool.js │ │ │ │ │ ├── BOMTool.js.map │ │ │ │ │ ├── BOMTool.ts │ │ │ │ │ ├── ColorTool.js │ │ │ │ │ ├── ColorTool.js.map │ │ │ │ │ ├── ColorTool.ts │ │ │ │ │ ├── DateTool.js │ │ │ │ │ ├── DateTool.js.map │ │ │ │ │ ├── DateTool.ts │ │ │ │ │ ├── GISTool.js │ │ │ │ │ ├── GISTool.js.map │ │ │ │ │ ├── GISTool.ts │ │ │ │ │ ├── HTTPTool.js │ │ │ │ │ ├── HTTPTool.js.map │ │ │ │ │ ├── HTTPTool.ts │ │ │ │ │ ├── MathTool.js │ │ │ │ │ ├── MathTool.js.map │ │ │ │ │ ├── MathTool.ts │ │ │ │ │ ├── SafeTool.js │ │ │ │ │ ├── SafeTool.js.map │ │ │ │ │ ├── SafeTool.ts │ │ │ │ │ ├── StringTool.js │ │ │ │ │ ├── StringTool.js.map │ │ │ │ │ ├── StringTool.ts │ │ │ │ │ ├── TreeTool.js │ │ │ │ │ ├── TreeTool.js.map │ │ │ │ │ ├── TreeTool.ts │ │ │ │ │ ├── Utils.js │ │ │ │ │ ├── Utils.js.map │ │ │ │ │ └── Utils.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.js.map │ │ │ │ └── index.ts │ │ │ ├── arrChunk.js │ │ │ ├── arrChunk.js.map │ │ │ ├── arrChunk.ts │ │ │ ├── awaitWrap.js │ │ │ ├── awaitWrap.js.map │ │ │ ├── awaitWrap.ts │ │ │ ├── createAesAPair.js │ │ │ ├── createAesAPair.js.map │ │ │ ├── createAesAPair.ts │ │ │ ├── getServerInfo.js │ │ │ ├── getServerInfo.js.map │ │ │ ├── getServerInfo.ts │ │ │ ├── portIsOccupied.js │ │ │ ├── portIsOccupied.js.map │ │ │ ├── portIsOccupied.ts │ │ │ ├── randomString.js │ │ │ ├── randomString.js.map │ │ │ ├── randomString.ts │ │ │ ├── sleep.js │ │ │ ├── sleep.js.map │ │ │ └── sleep.ts │ │ ├── middleware │ │ │ ├── clientMiddleWare.js │ │ │ ├── clientMiddleWare.js.map │ │ │ ├── clientMiddleWare.ts │ │ │ ├── lib │ │ │ │ ├── errHandler.js │ │ │ │ ├── errHandler.js.map │ │ │ │ └── errHandler.ts │ │ │ ├── manaMiddleWare.js │ │ │ ├── manaMiddleWare.js.map │ │ │ ├── manaMiddleWare.ts │ │ │ └── proxy │ │ │ │ ├── portProxy.js │ │ │ │ ├── portProxy.js.map │ │ │ │ ├── portProxy.ts │ │ │ │ ├── resourcesProxy.js │ │ │ │ ├── resourcesProxy.js.map │ │ │ │ ├── resourcesProxy.ts │ │ │ │ ├── serverProxy.js │ │ │ │ ├── serverProxy.js.map │ │ │ │ └── serverProxy.ts │ │ ├── routes │ │ │ ├── AppFileRoutes.js │ │ │ ├── AppFileRoutes.js.map │ │ │ ├── AppFileRoutes.ts │ │ │ ├── CacheRoutes.js │ │ │ ├── CacheRoutes.js.map │ │ │ ├── CacheRoutes.ts │ │ │ ├── DBRoutes.js │ │ │ ├── DBRoutes.js.map │ │ │ ├── DBRoutes.ts │ │ │ ├── EncryptRoutes.js │ │ │ ├── EncryptRoutes.js.map │ │ │ ├── EncryptRoutes.ts │ │ │ ├── ManaRoutes.js │ │ │ ├── ManaRoutes.js.map │ │ │ └── ManaRoutes.ts │ │ └── service │ │ │ └── GISServer │ │ │ ├── CesiumTerrain │ │ │ ├── CesiumTerrain.js │ │ │ ├── CesiumTerrain.js.map │ │ │ ├── CesiumTerrain.ts │ │ │ ├── access_token.js │ │ │ ├── access_token.js.map │ │ │ └── access_token.ts │ │ │ ├── MapboxTile │ │ │ ├── MapboxTile.js │ │ │ ├── MapboxTile.js.map │ │ │ ├── MapboxTile.ts │ │ │ ├── access_token.js │ │ │ ├── access_token.js.map │ │ │ └── access_token.ts │ │ │ ├── OSMTile │ │ │ ├── OSMTile.js │ │ │ ├── OSMTile.js.map │ │ │ └── OSMTile.ts │ │ │ └── Util │ │ │ ├── initDB.js │ │ │ ├── initDB.js.map │ │ │ ├── initDB.ts │ │ │ ├── readFromDB.js │ │ │ ├── readFromDB.js.map │ │ │ ├── readFromDB.ts │ │ │ ├── readFromNet.js │ │ │ ├── readFromNet.js.map │ │ │ ├── readFromNet.ts │ │ │ ├── saveToDB.js │ │ │ ├── saveToDB.js.map │ │ │ ├── saveToDB.ts │ │ │ ├── saveToFile.js │ │ │ ├── saveToFile.js.map │ │ │ └── saveToFile.ts │ ├── tsconfig.json │ ├── www │ │ ├── Resources │ │ │ └── framework │ │ │ │ ├── Bootstrap │ │ │ │ └── ^3.4.1 │ │ │ │ │ ├── css │ │ │ │ │ ├── bootstrap-theme.css │ │ │ │ │ ├── bootstrap-theme.css.map │ │ │ │ │ ├── bootstrap-theme.min.css │ │ │ │ │ ├── bootstrap-theme.min.css.map │ │ │ │ │ ├── bootstrap.css │ │ │ │ │ ├── bootstrap.css.map │ │ │ │ │ ├── bootstrap.min.css │ │ │ │ │ └── bootstrap.min.css.map │ │ │ │ │ ├── fonts │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ │ └── js │ │ │ │ │ ├── bootstrap.js │ │ │ │ │ ├── bootstrap.min.js │ │ │ │ │ └── npm.js │ │ │ │ └── jQuery │ │ │ │ └── ^2.1.4 │ │ │ │ └── jquery-2.1.4.min.js │ │ ├── favicon.png │ │ └── index.html │ ├── 帮助文档.md │ └── 重置环境-右键管理员运行.bat └── WinUI │ ├── .gitignore │ ├── .npmrc │ ├── main.js │ ├── package.json │ ├── src │ ├── mainRenderer │ │ ├── WindowMana.js │ │ └── components │ │ │ ├── FileSystem.js │ │ │ └── WebServer.js │ └── webRenderer │ │ ├── WebUI │ │ ├── index.html │ │ └── static │ │ │ ├── bg.webp │ │ │ ├── css │ │ │ ├── app.beff8d725cc1a41962b1a01160a38f67.css │ │ │ └── app.ca0a83253941f5332fa23da7ccb568aa.css │ │ │ ├── fonts │ │ │ ├── element-icons.535877f.woff │ │ │ └── element-icons.732389d.ttf │ │ │ ├── framework │ │ │ ├── Bootstrap │ │ │ │ └── ^3.4.1 │ │ │ │ │ ├── css │ │ │ │ │ ├── bootstrap-theme.css │ │ │ │ │ ├── bootstrap-theme.css.map │ │ │ │ │ ├── bootstrap-theme.min.css │ │ │ │ │ ├── bootstrap-theme.min.css.map │ │ │ │ │ ├── bootstrap.css │ │ │ │ │ ├── bootstrap.css.map │ │ │ │ │ ├── bootstrap.min.css │ │ │ │ │ └── bootstrap.min.css.map │ │ │ │ │ ├── fonts │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ │ └── js │ │ │ │ │ ├── bootstrap.js │ │ │ │ │ ├── bootstrap.min.js │ │ │ │ │ └── npm.js │ │ │ ├── ReconnectingWebSocket │ │ │ │ └── reconnecting-websocket.js │ │ │ ├── axios │ │ │ │ └── ^0.26.1 │ │ │ │ │ ├── axios.js │ │ │ │ │ ├── axios.map │ │ │ │ │ ├── axios.min.js │ │ │ │ │ └── axios.min.map │ │ │ ├── jQuery │ │ │ │ └── ^2.1.4 │ │ │ │ │ └── jquery-2.1.4.min.js │ │ │ └── jsrsasign │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── lib │ │ │ │ ├── footer.js │ │ │ │ ├── header.js │ │ │ │ ├── jsrsasign-all-min.js │ │ │ │ ├── jsrsasign-jwths-min.js │ │ │ │ ├── jsrsasign-rsa-min.js │ │ │ │ ├── jsrsasign.js │ │ │ │ └── lib.js │ │ │ │ ├── package.json │ │ │ │ └── test │ │ │ │ ├── t_base64x.js │ │ │ │ ├── t_rsasign.js │ │ │ │ └── t_sig_rsasha1.js │ │ │ ├── icon.ico │ │ │ ├── img │ │ │ ├── 3DTiles.1807df3.png │ │ │ ├── bg.68ba3b6.png │ │ │ └── computer.d8f584b.png │ │ │ ├── js │ │ │ ├── 0.4f2bcbed03ad3c277c4d.js │ │ │ ├── 0.f44ba0ac774c279fe33d.js │ │ │ ├── 1.1e1c9d3dd43c48947a0d.js │ │ │ ├── 1.6385cf33dfbe3e1f25e0.js │ │ │ ├── 2.437d7310967cb5e43f3b.js │ │ │ ├── 2.6b077cf83bb9ce24750f.js │ │ │ ├── 3.4c80b4ce725d41667d51.js │ │ │ ├── 3.5644eafc691b6b1574ed.js │ │ │ ├── app.4251b2e79f1281bedb15.js │ │ │ ├── app.b0f28a80960ef18b9a6a.js │ │ │ ├── manifest.c83a2d50ed835b4f6505.js │ │ │ ├── manifest.e8b3d0a6546a023ccd3f.js │ │ │ ├── vendor.6e4082ce344205a8da31.js │ │ │ └── vendor.a07a007c22949bdb2201.js │ │ │ └── 入门指南 │ │ │ ├── 入门指南.assets │ │ │ ├── image-20221223150830432.png │ │ │ ├── 优化.gif │ │ │ ├── 分组.gif │ │ │ └── 界面简介-16717792087372.gif │ │ │ └── 入门指南.html │ │ └── index.html │ ├── 帮助文档.md │ └── 文档 │ ├── 入门指南.assets │ ├── image-20221223150830432.png │ ├── 优化.gif │ ├── 分组.gif │ ├── 界面简介-16717792087372.gif │ └── 界面简介.gif │ ├── 入门指南.md │ └── 收费标准.md ├── README.md └── Release └── sqlite3 ├── Linux ├── sqlite3.rar └── sqlite3 │ ├── LICENSE │ ├── README.md │ ├── binding.gyp │ ├── deps │ ├── common-sqlite.gypi │ ├── extract.js │ ├── sqlite-autoconf-3390300.tar.gz │ └── sqlite3.gyp │ ├── lib │ ├── binding │ │ └── napi-v6-linux-glibc-x64 │ │ │ └── node_sqlite3.node │ ├── sqlite3-binding.js │ ├── sqlite3.d.ts │ ├── sqlite3.js │ └── trace.js │ ├── package.json │ └── src │ ├── async.h │ ├── backup.cc │ ├── backup.h │ ├── database.cc │ ├── database.h │ ├── gcc-preinclude.h │ ├── macros.h │ ├── node_sqlite3.cc │ ├── statement.cc │ ├── statement.h │ └── threading.h └── Windows └── sqlite3 ├── LICENSE ├── README.md ├── binding.gyp ├── deps ├── common-sqlite.gypi ├── extract.js ├── sqlite-autoconf-3390300.tar.gz └── sqlite3.gyp ├── lib ├── binding │ └── napi-v6-win32-unknown-x64 │ │ └── node_sqlite3.node ├── sqlite3-binding.js ├── sqlite3.d.ts ├── sqlite3.js └── trace.js ├── package.json └── src ├── async.h ├── backup.cc ├── backup.h ├── database.cc ├── database.h ├── gcc-preinclude.h ├── macros.h ├── node_sqlite3.cc ├── statement.cc ├── statement.h └── threading.h /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea/ 2 | /Unit/ 3 | /Release/Server-win-x64 4 | /Release/WinUI-win32-x64 5 | 6 | -------------------------------------------------------------------------------- /Projects/ServerPro/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | node_modules/ 3 | 4 | conf/ 5 | temp/ 6 | compile/ 7 | -------------------------------------------------------------------------------- /Projects/ServerPro/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock = false 2 | -------------------------------------------------------------------------------- /Projects/ServerPro/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "app", 3 | "version": "1.9.0", 4 | "bin": "./src/index.js", 5 | "scripts": { 6 | "start": "node ./src/index.js", 7 | "dev": "nodemon ./src/index.js", 8 | "compile": "./node_modules/.bin/babel ./src --out-dir ./compile", 9 | "build": "pkg . --out-path=../../Release/Server" 10 | }, 11 | "pkg": { 12 | "targets": [ 13 | "node18-win-x64", 14 | "node18-linux-x64", 15 | "node18-macos-x64" 16 | ] 17 | }, 18 | "author": "wangshan010", 19 | "license": "ISC", 20 | "dependencies": { 21 | "@turf/turf": "^6.5.0", 22 | "axios": "^0.27.2", 23 | "cesium": "^1.101.0", 24 | "colors-console": "^1.0.3", 25 | "crypto-js": "^4.1.1", 26 | "fdir": "^5.2.0", 27 | "fs-promise": "^2.0.3", 28 | "http-proxy": "^1.18.1", 29 | "jsrsasign": "^10.5.27", 30 | "koa": "^2.13.4", 31 | "koa-bodyparser": "^4.3.0", 32 | "koa-compress": "^5.1.0", 33 | "koa-mount": "^4.0.0", 34 | "koa-proxy-middleware": "^2.0.2", 35 | "koa-router": "^10.1.1", 36 | "koa-static": "^5.0.0", 37 | "koa2-cors": "^2.0.6", 38 | "node-machine-id": "^1.1.12", 39 | "single-line-log": "^1.1.2", 40 | "sqlite3": "^5.1.1", 41 | "ws": "^8.6.0" 42 | }, 43 | "devDependencies": { 44 | "ts-node": "^10.9.1", 45 | "typescript": "^4.9.5", 46 | "core-js": "^3.25.0", 47 | "@babel/polyfill": "^7.12.1", 48 | "@babel/cli": "^7.18.10", 49 | "@babel/core": "^7.18.13", 50 | "@babel/preset-env": "^7.18.10", 51 | "@types/node": "^18.11.8", 52 | "nodemon": "^2.0.19" 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/com/DBTool/schema.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"schema.js","sourceRoot":"","sources":["schema.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,IAAI,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqJZ,CAAC;IAGF,OAAS,MAAM,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/com/log/log4.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | const path = require('path'); 3 | const configTool = require('../configTool.js'); 4 | const log4js = require('koa-log4'); 5 | const log4jsConf = { 6 | appenders: { 7 | out: { 8 | type: 'console' 9 | }, 10 | access: { 11 | type: 'dateFile', 12 | pattern: '-yyyy-MM-dd.log', 13 | alwaysIncludePattern: true, 14 | encoding: 'utf-8', 15 | filename: path.join(configTool.appBasePath, './logs/http/access') 16 | }, 17 | application: { 18 | type: 'dateFile', 19 | pattern: '-yyyy-MM-dd.log', 20 | alwaysIncludePattern: true, 21 | encoding: 'utf-8', 22 | filename: path.join(configTool.appBasePath, './logs/http/application') 23 | } 24 | }, 25 | categories: { 26 | default: { appenders: ['out'], level: 'info' }, 27 | access: { appenders: ['access'], level: 'info' }, 28 | application: { appenders: ['application'], level: 'WARN' } 29 | } 30 | }; 31 | log4js.configure(log4jsConf); 32 | exports.accessLogger = () => log4js.koaLogger(log4js.getLogger('access')); 33 | exports.systemLogger = log4js.getLogger('application'); 34 | //# sourceMappingURL=log4.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/com/log/log4.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"log4.js","sourceRoot":"","sources":["log4.ts"],"names":[],"mappings":";AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEnC,MAAM,UAAU,GAAG;IACf,SAAS,EAAE;QACP,GAAG,EAAE;YACD,IAAI,EAAE,SAAS;SAClB;QAED,MAAM,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,iBAAiB;YAC1B,oBAAoB,EAAE,IAAI;YAC1B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,oBAAoB,CAAC;SACpE;QAED,WAAW,EAAE;YACT,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,iBAAiB;YAC1B,oBAAoB,EAAE,IAAI;YAC1B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,yBAAyB,CAAC;SACzE;KACJ;IACD,UAAU,EAAE;QACR,OAAO,EAAE,EAAC,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAC;QAC5C,MAAM,EAAE,EAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAC;QAC9C,WAAW,EAAE,EAAC,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAC;KAC3D;CACJ,CAAC;AAEF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAE7B,OAAO,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1E,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/com/log/log4.ts: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const configTool = require('../configTool.js'); 3 | const log4js = require('koa-log4'); 4 | 5 | const log4jsConf = { 6 | appenders: { 7 | out: { 8 | type: 'console' 9 | }, 10 | // 访问日志 11 | access: { 12 | type: 'dateFile', 13 | pattern: '-yyyy-MM-dd.log', //通过日期来生成文件 14 | alwaysIncludePattern: true, //文件名始终以日期区分 15 | encoding: 'utf-8', 16 | filename: path.join(configTool.appBasePath, './logs/http/access') //生成文件路径和文件名 17 | }, 18 | // 系统日志 19 | application: { 20 | type: 'dateFile', 21 | pattern: '-yyyy-MM-dd.log', //通过日期来生成文件 22 | alwaysIncludePattern: true, //文件名始终以日期区分 23 | encoding: 'utf-8', 24 | filename: path.join(configTool.appBasePath, './logs/http/application') //生成文件路径和文件名 25 | } 26 | }, 27 | categories: { 28 | default: {appenders: ['out'], level: 'info'}, 29 | access: {appenders: ['access'], level: 'info'}, 30 | application: {appenders: ['application'], level: 'WARN'} 31 | } 32 | }; 33 | 34 | log4js.configure(log4jsConf); 35 | 36 | exports.accessLogger = () => log4js.koaLogger(log4js.getLogger('access')); //记录所有访问级别的日志 37 | exports.systemLogger = log4js.getLogger('application'); //记录所有应用级别的日志 38 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/com/webSocketTool/webSocketTool.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | let webSocketTool = { 12 | ws: null, 13 | listenMap: new Map(), 14 | start: function (wss) { 15 | let that = this; 16 | wss.on('connection', (ws) => { 17 | that.ws = ws; 18 | console.log('客户端连接成功!'); 19 | ws.on('message', function (msg) { 20 | that.listenMap.forEach(function (func) { 21 | if (typeof func === 'function') { 22 | msg = JSON.parse(msg.toString()); 23 | func(msg); 24 | } 25 | }); 26 | }); 27 | }); 28 | }, 29 | addListen: function (mark, func) { 30 | this.listenMap.set(mark, func); 31 | }, 32 | send: function (msg) { 33 | if (this.ws) { 34 | this.ws.send(msg, (err) => { 35 | if (err) 36 | console.log(`服务器错误: ${err}`); 37 | }); 38 | } 39 | } 40 | }; 41 | return webSocketTool; 42 | }); 43 | //# sourceMappingURL=webSocketTool.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/com/webSocketTool/webSocketTool.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"webSocketTool.js","sourceRoot":"","sources":["webSocketTool.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,IAAI,aAAa,GAAG;QAChB,EAAE,EAAE,IAAW;QACf,SAAS,EAAE,IAAI,GAAG,EAAE;QAEpB,KAAK,EAAE,UAAU,GAAQ;YACrB,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAO,EAAE,EAAE;gBAC7B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAGxB,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,GAAW;oBAClC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,IAAc;wBAC3C,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;4BAC5B,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;4BACjC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACb;oBACL,CAAC,CAAC,CAAC;gBAEP,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAED,SAAS,EAAE,UAAU,IAAS,EAAE,IAAS;YACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,EAAE,UAAU,GAAW;YACvB,IAAI,IAAI,CAAC,EAAE,EAAE;gBACT,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAQ,EAAE,EAAE;oBAC3B,IAAI,GAAG;wBAAE,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC;aACN;QACL,CAAC;KACJ,CAAC;IAGF,OAAS,aAAa,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/com/webSocketTool/webSocketTool.ts: -------------------------------------------------------------------------------- 1 | let webSocketTool = { 2 | ws: null as any, // 只允许一个客户端连接 3 | listenMap: new Map(), 4 | // 启动服务 5 | start: function (wss: any) { 6 | let that = this; 7 | wss.on('connection', (ws: any) => { 8 | that.ws = ws; 9 | console.log('客户端连接成功!'); 10 | 11 | // 接收到数据,触发监听 12 | ws.on('message', function (msg: string) { 13 | that.listenMap.forEach(function (func: Function) { 14 | if (typeof func === 'function') { 15 | msg = JSON.parse(msg.toString()); 16 | func(msg); 17 | } 18 | }); 19 | 20 | }); 21 | }); 22 | }, 23 | // 添加监听,监听客户端传给后台的数据 24 | addListen: function (mark: any, func: any) { 25 | this.listenMap.set(mark, func); 26 | }, 27 | // 向客户端发生消息 28 | send: function (msg: string) { 29 | if (this.ws) { 30 | this.ws.send(msg, (err: any) => { 31 | if (err) console.log(`服务器错误: ${err}`); 32 | }); 33 | } 34 | } 35 | }; 36 | 37 | 38 | export = webSocketTool; 39 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/CryptoUtil.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const CryptoJS = require('crypto-js'); 12 | class CryptoUtil { 13 | static Encrypt(dataStr, key) { 14 | return CryptoJS.AES.encrypt(dataStr, key).toString(); 15 | } 16 | static Decrypt(ciphertext, key) { 17 | let bytes = CryptoJS.AES.decrypt(ciphertext, key); 18 | return bytes.toString(CryptoJS.enc.Utf8); 19 | } 20 | } 21 | return CryptoUtil; 22 | }); 23 | //# sourceMappingURL=CryptoUtil.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/CryptoUtil.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"CryptoUtil.js","sourceRoot":"","sources":["CryptoUtil.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEtC,MAAM,UAAU;QACZ,MAAM,CAAC,OAAO,CAAC,OAAc,EAAE,GAAU;YACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,UAAiB,EAAE,GAAU;YACxC,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAClD,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;KACJ;IAGD,OAAS,UAAU,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/CryptoUtil.ts: -------------------------------------------------------------------------------- 1 | const CryptoJS = require('crypto-js'); 2 | 3 | class CryptoUtil { 4 | static Encrypt(dataStr:string, key:string) { 5 | return CryptoJS.AES.encrypt(dataStr, key).toString(); 6 | } 7 | 8 | static Decrypt(ciphertext:string, key:string) { 9 | let bytes = CryptoJS.AES.decrypt(ciphertext, key); 10 | return bytes.toString(CryptoJS.enc.Utf8); 11 | } 12 | } 13 | 14 | 15 | export = CryptoUtil; 16 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/calcFileInfo.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"calcFileInfo.js","sourceRoot":"","sources":["calcFileInfo.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAGhD,KAAK,UAAU,QAAQ,CAAC,IAAY;QAChC,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO;YAChC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,KAAU,EAAE,IAAY;gBAChD,IAAI,KAAK,EAAE;oBAEP,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC5B;qBAAM;oBACH,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAQD,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,GAAG,IAAI;QACxE,IAAI,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,IAAI,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE;YACpC,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvC,YAAY,GAAG,MAAM,CAAC;SACzB;QAED,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3E,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QAEzB,OAAO;YACH,QAAQ;YACR,YAAY;YACZ,QAAQ;YACR,MAAM;YACN,YAAY;YACZ,GAAG;YACH,IAAI;SACP,CAAC;IACN,CAAC;IAGD,OAAS,YAAY,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/compressible.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const path = require('path'); 12 | function compressible(filePath) { 13 | let ext = path.extname(filePath).toLowerCase(); 14 | let boolean = true; 15 | let fileExtList = [ 16 | '.png', 17 | '.jpg', 18 | '.jpeg', 19 | '.zip', 20 | '.rar', 21 | '.mp3', 22 | '.mp4', 23 | '.avi', 24 | '.gif' 25 | ]; 26 | fileExtList.forEach(e => e === ext && (boolean = false)); 27 | return boolean; 28 | } 29 | return compressible; 30 | }); 31 | //# sourceMappingURL=compressible.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/compressible.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"compressible.js","sourceRoot":"","sources":["compressible.ts"],"names":[],"mappings":";;;;;;;;;;IACA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAG7B,SAAS,YAAY,CAAC,QAAgB;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,OAAO,GAAG,IAAI,CAAC;QAGnB,IAAI,WAAW,GAAG;YACd,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;SACT,CAAC;QAEF,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC;QAEzD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAS,YAAY,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/compressible.ts: -------------------------------------------------------------------------------- 1 | // 可压缩 2 | const path = require('path'); 3 | 4 | // 判断文件是否适合进行压缩, 5 | function compressible(filePath: string) { 6 | let ext = path.extname(filePath).toLowerCase(); 7 | let boolean = true; // 可压缩 8 | 9 | // 不可压缩的文件类型 10 | let fileExtList = [ 11 | '.png', 12 | '.jpg', 13 | '.jpeg', 14 | '.zip', 15 | '.rar', 16 | '.mp3', 17 | '.mp4', 18 | '.avi', 19 | '.gif' 20 | ]; 21 | 22 | fileExtList.forEach(e => e === ext && (boolean = false)); 23 | 24 | return boolean; 25 | } 26 | 27 | export = compressible; 28 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/createDirectory.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const fs = require('fs'); 12 | function createDirectory(path) { 13 | const dirCache = {}; 14 | const arr = path.replace(/\\/g, '/').split('/'); 15 | let dir = arr[0]; 16 | for (let i = 1; i < arr.length; i++) { 17 | if (!dirCache[dir] && !fs.existsSync(dir)) { 18 | dirCache[dir] = true; 19 | fs.mkdirSync(dir); 20 | } 21 | dir = dir + '/' + arr[i]; 22 | } 23 | } 24 | return createDirectory; 25 | }); 26 | //# sourceMappingURL=createDirectory.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/createDirectory.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"createDirectory.js","sourceRoot":"","sources":["createDirectory.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAOzB,SAAS,eAAe,CAAC,IAAY;QACjC,MAAM,QAAQ,GAAG,EAAS,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACvC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBACrB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aACrB;YACD,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;SAC5B;IACL,CAAC;IAKD,OAAS,eAAe,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/createDirectory.ts: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | 3 | /** 4 | * 创建空文件夹 5 | * 注意:理解末尾要带上:【\】 6 | * @param path 7 | */ 8 | function createDirectory(path: string) { 9 | const dirCache = {} as any; 10 | const arr = path.replace(/\\/g, '/').split('/'); 11 | let dir = arr[0]; 12 | for (let i = 1; i < arr.length; i++) { 13 | if (!dirCache[dir] && !fs.existsSync(dir)) { 14 | dirCache[dir] = true; 15 | fs.mkdirSync(dir); 16 | } 17 | dir = dir + '/' + arr[i]; 18 | } 19 | } 20 | 21 | // 示例 22 | // createDirectory('H:\\30天临时\\临时文件\\') 23 | 24 | export = createDirectory; 25 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/createFile.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const fs = require('fs'); 12 | const path = require('path'); 13 | const createDirectory = require('./createDirectory.js'); 14 | function createFile(filePath, data) { 15 | let dirPath = path.dirname(filePath) + '\\'; 16 | createDirectory(dirPath); 17 | if (fs.existsSync(filePath)) { 18 | } 19 | else { 20 | fs.writeFileSync(filePath, data); 21 | } 22 | } 23 | return createFile; 24 | }); 25 | //# sourceMappingURL=createFile.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/createFile.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"createFile.js","sourceRoot":"","sources":["createFile.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,eAAe,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAIxD,SAAS,UAAU,CAAC,QAAgB,EAAE,IAAY;QAC9C,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QAE5C,eAAe,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;SAE5B;aAAM;YACH,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SACpC;IACL,CAAC;IAKD,OAAS,UAAU,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/createFile.ts: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | const createDirectory = require('./createDirectory.js'); 4 | 5 | 6 | // 创建文件 7 | function createFile(filePath: string, data: Buffer) { 8 | let dirPath = path.dirname(filePath) + '\\'; 9 | 10 | createDirectory(dirPath); 11 | if (fs.existsSync(filePath)) { 12 | // console.warn('文件已存在'); 13 | } else { 14 | fs.writeFileSync(filePath, data); 15 | } 16 | } 17 | 18 | // 示例 19 | // createFile('D:\\VGEServer\\vge-software-resources\\jiaxing\\DOM\\0\\test.txt', 'sssss'); 20 | 21 | export = createFile; 22 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/createFileAsync.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const fs = require('fs'); 12 | const path = require('path'); 13 | const createDirectory = require('./createDirectory.js'); 14 | async function createFileAsync(filePath, data) { 15 | let dirPath = path.dirname(filePath) + '\\'; 16 | createDirectory(dirPath); 17 | if (fs.existsSync(filePath)) { 18 | return false; 19 | } 20 | else { 21 | return new Promise((resolve, reject) => { 22 | fs.writeFile(filePath, data, (err) => { 23 | if (err) { 24 | resolve(false); 25 | } 26 | else { 27 | resolve(true); 28 | } 29 | }); 30 | }); 31 | } 32 | } 33 | return createFileAsync; 34 | }); 35 | //# sourceMappingURL=createFileAsync.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/createFileAsync.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"createFileAsync.js","sourceRoot":"","sources":["createFileAsync.ts"],"names":[],"mappings":";;;;;;;;;;IAEA,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,eAAe,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAIxD,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,IAAY;QACzD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QAE5C,eAAe,CAAC,OAAO,CAAC,CAAC;QAEzB,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YAEzB,OAAO,KAAK,CAAC;SAChB;aAAM;YACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,GAA0B,EAAE,EAAE;oBACxD,IAAI,GAAG,EAAE;wBACL,OAAO,CAAC,KAAK,CAAC,CAAC;qBAClB;yBAAM;wBACH,OAAO,CAAC,IAAI,CAAC,CAAC;qBACjB;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,OAAS,eAAe,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/createFileAsync.ts: -------------------------------------------------------------------------------- 1 | import ErrnoException = NodeJS.ErrnoException; 2 | 3 | const fs = require('fs'); 4 | const path = require('path'); 5 | const createDirectory = require('./createDirectory.js'); 6 | 7 | 8 | // 创建文件 9 | async function createFileAsync(filePath: string, data: Buffer) { 10 | let dirPath = path.dirname(filePath) + '\\'; 11 | 12 | createDirectory(dirPath); 13 | 14 | if (fs.existsSync(filePath)) { 15 | // 文件已存在 16 | return false; 17 | } else { 18 | return new Promise((resolve, reject) => { 19 | fs.writeFile(filePath, data, (err: ErrnoException | null) => { 20 | if (err) { 21 | resolve(false); 22 | } else { 23 | resolve(true); 24 | } 25 | }); 26 | }); 27 | } 28 | } 29 | 30 | export = createFileAsync; 31 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/deleteFile.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const fs = require('fs'); 12 | function deleteFile(path) { 13 | let result = true; 14 | try { 15 | fs.unlinkSync(path); 16 | } 17 | catch (e) { 18 | result = false; 19 | console.warn('文件删除失败', path); 20 | } 21 | return result; 22 | } 23 | return deleteFile; 24 | }); 25 | //# sourceMappingURL=deleteFile.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/deleteFile.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"deleteFile.js","sourceRoot":"","sources":["deleteFile.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGzB,SAAS,UAAU,CAAC,IAAY;QAC5B,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI;YACA,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACvB;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,GAAG,KAAK,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SAChC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAGD,OAAS,UAAU,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/deleteFile.ts: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | 3 | // 删除文件 4 | function deleteFile(path: string) { 5 | let result = true; 6 | try { 7 | fs.unlinkSync(path); 8 | } catch (e) { 9 | result = false; 10 | console.warn('文件删除失败', path); 11 | } 12 | return result; 13 | } 14 | 15 | 16 | export = deleteFile; 17 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/fileMd5.js: -------------------------------------------------------------------------------- 1 | var __importDefault = (this && this.__importDefault) || function (mod) { 2 | return (mod && mod.__esModule) ? mod : { "default": mod }; 3 | }; 4 | (function (factory) { 5 | if (typeof module === "object" && typeof module.exports === "object") { 6 | var v = factory(require, exports); 7 | if (v !== undefined) module.exports = v; 8 | } 9 | else if (typeof define === "function" && define.amd) { 10 | define(["require", "exports", "fs"], factory); 11 | } 12 | })(function (require, exports) { 13 | "use strict"; 14 | const fs_1 = __importDefault(require("fs")); 15 | async function fileMd5(path) { 16 | const buffer = fs_1.default.readFileSync(path); 17 | return require('crypto').createHash('md5').update(buffer).digest('hex'); 18 | } 19 | return fileMd5; 20 | }); 21 | //# sourceMappingURL=fileMd5.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/fileMd5.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"fileMd5.js","sourceRoot":"","sources":["fileMd5.ts"],"names":[],"mappings":";;;;;;;;;;;;;IAAA,4CAAoB;IAGpB,KAAK,UAAU,OAAO,CAAC,IAAY;QAC/B,MAAM,MAAM,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED,OAAS,OAAO,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/fileMd5.ts: -------------------------------------------------------------------------------- 1 | import fs from 'fs'; 2 | 3 | // 计算文件的 MD5 值 4 | async function fileMd5(path: string) { 5 | const buffer = fs.readFileSync(path); 6 | return require('crypto').createHash('md5').update(buffer).digest('hex'); 7 | } 8 | 9 | export = fileMd5; 10 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/getFileInfoList/fiveThreadFileInfoList/threadCore.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | const calcFileInfo = require('../../calcFileInfo.js'); 3 | async function popData(fileInfoList) { 4 | process.send({ message: 'popData', data: fileInfoList }); 5 | } 6 | process.on('message', async function ({ threadPathList, rootPath }) { 7 | let maxMemory = 50 << 10; 8 | let md5List = []; 9 | let ProgressNumber = Math.floor(threadPathList.length / 10); 10 | let reportProgress = 0; 11 | let bufferTotal = 0; 12 | let count = threadPathList.length; 13 | for (let i = 0; i < count; i++) { 14 | let filePath = threadPathList[i]; 15 | let fileInfo = await calcFileInfo(filePath, rootPath); 16 | md5List.push(fileInfo); 17 | reportProgress++; 18 | if (reportProgress === ProgressNumber) { 19 | reportProgress = 0; 20 | process.send({ message: 'Progress', data: ProgressNumber }); 21 | } 22 | bufferTotal += fileInfo.size; 23 | if (typeof maxMemory === 'number' && bufferTotal > maxMemory) { 24 | bufferTotal = 0; 25 | await popData(md5List); 26 | md5List.length = 0; 27 | } 28 | } 29 | await popData(md5List); 30 | threadPathList.length = 0; 31 | md5List.length = 0; 32 | process.send({ message: 'Progress', data: reportProgress }); 33 | process.send({ message: 'Complete', data: [] }); 34 | }); 35 | //# sourceMappingURL=threadCore.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/getFileInfoList/fiveThreadFileInfoList/threadCore.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"threadCore.js","sourceRoot":"","sources":["threadCore.ts"],"names":[],"mappings":";AAAA,MAAM,YAAY,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAEtD,KAAK,UAAU,OAAO,CAAC,YAAmB;IAEtC,OAAO,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAC,CAAC,CAAC;AAC3D,CAAC;AAUD,OAAO,CAAC,EAAE,CAAC,SAAS,EAChB,KAAK,WAAW,EAAC,cAAc,EAAE,QAAQ,EAAC;IACtC,IAAI,SAAS,GAAG,EAAE,IAAI,EAAE,CAAC;IAGzB,IAAI,OAAO,GAAG,EAAE,CAAC;IAGjB,IAAI,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC5D,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;IAGlC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5B,IAAI,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAIvB,cAAc,EAAE,CAAC;QACjB,IAAI,cAAc,KAAK,cAAc,EAAE;YACnC,cAAc,GAAG,CAAC,CAAC;YAEnB,OAAO,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAC,CAAC,CAAC;SAC7D;QAGD,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC;QAC7B,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,WAAW,GAAG,SAAS,EAAE;YAC1D,WAAW,GAAG,CAAC,CAAC;YAChB,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;YAEvB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;SACtB;KACJ;IACD,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAGvB,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAInB,OAAO,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAC,CAAC,CAAC;IAI1D,OAAO,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAC,CAAC,CAAC;AAClD,CAAC,CACJ,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/getFileInfoList/index.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;IAUA,MAAM,UAAU,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACzD,MAAM,kBAAkB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChD,MAAM,kBAAkB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC9D,MAAM,sBAAsB,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAW5E,KAAK,UAAU,eAAe,CAAC,EAAC,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAM;QACxF,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QAExB,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,MAAM,GAAG,IAAI,EAAE;YACrC,IAAI,GAAG,QAAQ,CAAC;SACnB;aAAM,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,MAAM,GAAG,KAAK,EAAE;YAC7C,IAAI,GAAG,QAAQ,CAAC;SACnB;aAAM,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,GAAG,YAAY,CAAC;SACvB;QAED,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC;QAChC,YAAY,GAAG,YAAY,IAAI,IAAI,CAAC;QACpC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;QAE1B,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,QAAQ,IAAI,EAAE;YACV,KAAK,QAAQ;gBACT,YAAY,GAAG,MAAM,kBAAkB,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;gBAC9E,MAAM;YACV,KAAK,QAAQ;gBACT,YAAY,GAAG,MAAM,kBAAkB,CAAC,EAAC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAC,CAAC,CAAC;gBAC5F,MAAM;YACV,KAAK,YAAY;gBACb,YAAY,GAAG,MAAM,sBAAsB,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;gBAC9F,MAAM;YACV,KAAK,aAAa;gBACd,YAAY,GAAG,MAAM,WAAW,CAAC,EAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAC,CAAC,CAAC;gBACzE,MAAM;SACb;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;IAGD,OAAS,eAAe,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/getFileInfoList/phasedFileInfoList.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"phasedFileInfoList.js","sourceRoot":"","sources":["phasedFileInfoList.ts"],"names":[],"mappings":";;;;;;;;;;IACA,MAAM,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEnD,KAAK,UAAU,kBAAkB,CAAC,EAAC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAM;QACrF,IAAI,aAAa,GAAG,GAAG,IAAI,EAAE,CAAC;QAC9B,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,IAAI,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC;QAC3C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;QACnG,IAAI,cAAc,GAAG,CAAC,CAAC;QAGvB,IAAI,OAAO,GAAG,EAAE,CAAC;QAGjB,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC;YAClC,IAAI,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEvB,eAAe,IAAI,QAAQ,CAAC,IAAI,CAAC;YAGjC,KAAK,EAAE,CAAC;YACR,cAAc,EAAE,CAAC;YACjB,IAAI,cAAc,KAAK,cAAc,EAAE;gBACnC,cAAc,GAAG,CAAC,CAAC;gBACnB,OAAO,YAAY,KAAK,UAAU,IAAI,YAAY,CAC9C,EAAC,WAAW,EAAE,0BAA0B,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAC,CACvF,CAAC;aACL;YAED,IAAI,eAAe,GAAG,aAAa,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;gBACrE,eAAe,GAAG,CAAC,CAAC;gBACpB,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC1B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;aACtB;SACJ;QAED,OAAO,YAAY,KAAK,UAAU,IAAI,YAAY,CAC9C,EAAC,WAAW,EAAE,0BAA0B,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAC,CACvF,CAAC;QAGF,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;YAClC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;SACtB;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAS,kBAAkB,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/getFileInfoList/randomAsync.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"randomAsync.js","sourceRoot":"","sources":["randomAsync.ts"],"names":[],"mappings":";;;;;;;;;;IACA,MAAM,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEnD,KAAK,UAAU,WAAW,CAAC,EAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAM;QAElE,IAAI,OAAO,GAAG,EAAc,CAAC;QAE7B,IAAI,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC;QAC3C,IAAI,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;QACnG,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,IAAI,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC;YAElC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC9C,IAAI,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACtD,IAAI,QAAQ,EAAE;oBACV,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC1B;gBACD,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC,CAAC;YACJ,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE;gBACnB,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aAClD;iBAAM,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aACjD;YAED,cAAc,EAAE,CAAC;YACjB,IAAI,cAAc,KAAK,cAAc,EAAE;gBACnC,cAAc,GAAG,CAAC,CAAC;gBACnB,OAAO,YAAY,KAAK,UAAU,IAAI,YAAY,CAAC;oBAC/C,WAAW,EAAE,UAAU;oBACvB,SAAS,EAAE,gBAAgB,GAAG,YAAY,CAAC,MAAM;oBACjD,KAAK,EAAE,gBAAgB;iBAC1B,CAAC,CAAC;aACN;SACJ;QAED,OAAO,YAAY,KAAK,UAAU,IAAI,YAAY,CAC9C,EAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAC,CAClF,CAAC;QAEF,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAS,WAAW,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/getFileInfoList/simpleFileInfoList.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"simpleFileInfoList.js","sourceRoot":"","sources":["simpleFileInfoList.ts"],"names":[],"mappings":";;;;;;;;;;IACA,MAAM,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEnD,KAAK,UAAU,kBAAkB,CAAC,YAAsB,EAAE,YAAsB,EAAE,QAAgB;QAE9F,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,IAAI,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC;QAC3C,IAAI,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;QACnG,IAAI,cAAc,GAAG,CAAC,CAAC;QAGvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC;YAClC,IAAI,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEvB,cAAc,EAAE,CAAC;YACjB,IAAI,cAAc,KAAK,cAAc,EAAE;gBACnC,cAAc,GAAG,CAAC,CAAC;gBACnB,OAAO,YAAY,KAAK,UAAU,IAAI,YAAY,CAAC;oBAC/C,WAAW,EAAE,UAAU;oBACvB,SAAS,EAAE,CAAC;oBACZ,KAAK,EAAE,gBAAgB;iBAC1B,CAAC,CAAC;aACN;SACJ;QACD,OAAO,YAAY,KAAK,UAAU,IAAI,YAAY,CAC9C,EAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAC,CAClF,CAAC;QAEF,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAS,kBAAkB,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/getFileInfoList/simpleFileInfoList.ts: -------------------------------------------------------------------------------- 1 | // 单进程计算 文件数组 的 MD5 2 | const calcFileInfo = require('../calcFileInfo.js'); 3 | 4 | async function simpleFileInfoList(filePathList: string[], progressFunc: Function, rootPath: string) { 5 | // 最终运行成果,先准备一个空数值 6 | let md5List = []; 7 | // 全部需要运算的【文件路径列表】长度 8 | let allFileListCount = filePathList.length; 9 | let ProgressNumber = Math.floor(allFileListCount / 50) < 1 ? 1 : Math.floor(allFileListCount / 50); 10 | let reportProgress = 0; // 避免过度频繁的通信 11 | 12 | // 根据 Buffer 计算 MD5 值 13 | for (let i = 0; i < allFileListCount; i++) { 14 | let filePath = filePathList.pop(); 15 | let fileInfo = await calcFileInfo(filePath, rootPath); 16 | md5List.push(fileInfo); 17 | 18 | reportProgress++; 19 | if (reportProgress === ProgressNumber) { 20 | reportProgress = 0; 21 | typeof progressFunc === 'function' && progressFunc({ 22 | description: '【扫描 MD5】', 23 | completed: i, 24 | total: allFileListCount 25 | }); 26 | } 27 | } 28 | typeof progressFunc === 'function' && progressFunc( 29 | {description: '【扫描 MD5】', completed: allFileListCount, total: allFileListCount} 30 | ); 31 | 32 | return md5List; 33 | } 34 | 35 | export = simpleFileInfoList; 36 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/getFilePathList.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const { fdir } = require('fdir'); 12 | async function getFilePathList(parentPath) { 13 | const api = new fdir().withFullPaths().crawl(parentPath); 14 | return await api.withPromise(); 15 | } 16 | return getFilePathList; 17 | }); 18 | //# sourceMappingURL=getFilePathList.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/getFilePathList.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"getFilePathList.js","sourceRoot":"","sources":["getFilePathList.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,EAAC,IAAI,EAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAO/B,KAAK,UAAU,eAAe,CAAC,UAAkB;QAC7C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzD,OAAO,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAGD,OAAS,eAAe,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/getFilePathList.ts: -------------------------------------------------------------------------------- 1 | const {fdir} = require('fdir'); 2 | 3 | 4 | /*** 5 | * 获取目录下全部子文件列表,fdir 速度无与伦比。它可以在不到1秒的时间内轻松检索包含一百万个文件的目录! 6 | * @param parentPath 子文件夹的绝对路径 7 | */ 8 | async function getFilePathList(parentPath: string) { 9 | const api = new fdir().withFullPaths().crawl(parentPath); 10 | return await api.withPromise(); 11 | } 12 | 13 | 14 | export = getFilePathList; 15 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/getPathInfo.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const fs = require('fs'); 12 | async function getPathInfo(path, calcMd5 = true) { 13 | return new Promise(function (resolve) { 14 | fs.stat(path, (err, stats) => { 15 | let info = null; 16 | if (err) { 17 | } 18 | else { 19 | info = { 20 | isDirectory: !!stats && stats.isDirectory(), 21 | size: stats.size / 1000, 22 | md5: null 23 | }; 24 | if (calcMd5 && !info.isDirectory) { 25 | info.md5 = require('crypto').createHash('md5').update(fs.readFileSync(path)).digest('hex'); 26 | } 27 | } 28 | resolve(info); 29 | }); 30 | }); 31 | } 32 | return getPathInfo; 33 | }); 34 | //# sourceMappingURL=getPathInfo.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/getPathInfo.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"getPathInfo.js","sourceRoot":"","sources":["getPathInfo.ts"],"names":[],"mappings":";;;;;;;;;;IAGA,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGzB,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,OAAO,GAAG,IAAI;QACnD,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO;YAChC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAmB,EAAE,KAAY,EAAE,EAAE;gBAChD,IAAI,IAAI,GAAG,IAAI,CAAC;gBAChB,IAAI,GAAG,EAAE;iBACR;qBAAM;oBACH,IAAI,GAAG;wBACH,WAAW,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE;wBAC3C,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;wBACvB,GAAG,EAAE,IAAI;qBACZ,CAAC;oBAEF,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;wBAC9B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;qBAC9F;iBACJ;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAGD,OAAS,WAAW,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/getPathInfo.ts: -------------------------------------------------------------------------------- 1 | import ErrnoException = NodeJS.ErrnoException; 2 | import {Stats} from 'fs'; 3 | 4 | const fs = require('fs'); 5 | 6 | // 获取文件信息:【大小、是否为文件夹、md5】 7 | async function getPathInfo(path: string, calcMd5 = true) { 8 | return new Promise(function (resolve) { 9 | fs.stat(path, (err: ErrnoException, stats: Stats) => { 10 | let info = null; 11 | if (err) { 12 | } else { 13 | info = { 14 | isDirectory: !!stats && stats.isDirectory(), 15 | size: stats.size / 1000, 16 | md5: null 17 | }; 18 | 19 | if (calcMd5 && !info.isDirectory) { 20 | info.md5 = require('crypto').createHash('md5').update(fs.readFileSync(path)).digest('hex'); 21 | } 22 | } 23 | resolve(info); 24 | }); 25 | }); 26 | } 27 | 28 | 29 | export = getPathInfo; 30 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/index.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const fs = require('fs'); 12 | const zlibPromise = require('./zlibPromise.js'); 13 | const calcFileInfo = require('./calcFileInfo.js'); 14 | const createFile = require('./createFile.js'); 15 | const createFileAsync = require('./createFileAsync.js'); 16 | const deleteFile = require('./deleteFile.js'); 17 | const getFilePathList = require('./getFilePathList.js'); 18 | const getPathInfo = require('./getPathInfo.js'); 19 | const getFileInfoList = require('./getFileInfoList/index.js'); 20 | const compressible = require('./compressible.js'); 21 | const pathSplit = require('./pathSplit.js'); 22 | const readFileAsync = require('./readFileAsync.js'); 23 | const Index = { 24 | zlibPromise: zlibPromise, 25 | calcFileInfo: calcFileInfo, 26 | compressible: compressible, 27 | deleteFile, 28 | getPathInfo, 29 | getFilePathList, 30 | getFileInfoList, 31 | createFile, 32 | createFileAsync, 33 | pathSplit, 34 | readFileAsync, 35 | readFileSync: fs.readFileSync, 36 | writeFileSync: fs.writeFileSync 37 | }; 38 | return Index; 39 | }); 40 | //# sourceMappingURL=index.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/index.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEpD,MAAM,KAAK,GAAG;QACV,WAAW,EAAE,WAAW;QACxB,YAAY,EAAE,YAAY;QAC1B,YAAY,EAAE,YAAY;QAC1B,UAAU;QACV,WAAW;QACX,eAAe;QACf,eAAe;QACf,UAAU;QACV,eAAe;QACf,SAAS;QAGT,aAAa;QAEb,YAAY,EAAE,EAAE,CAAC,YAAY;QAC7B,aAAa,EAAE,EAAE,CAAC,aAAa;KAClC,CAAC;IAEF,OAAS,KAAK,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/index.ts: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const zlibPromise = require('./zlibPromise.js'); 3 | const calcFileInfo = require('./calcFileInfo.js'); 4 | const createFile = require('./createFile.js'); 5 | const createFileAsync = require('./createFileAsync.js'); 6 | const deleteFile = require('./deleteFile.js'); 7 | const getFilePathList = require('./getFilePathList.js'); 8 | const getPathInfo = require('./getPathInfo.js'); 9 | const getFileInfoList = require('./getFileInfoList/index.js'); 10 | const compressible = require('./compressible.js'); 11 | const pathSplit = require('./pathSplit.js'); 12 | const readFileAsync = require('./readFileAsync.js'); 13 | 14 | const Index = { 15 | zlibPromise: zlibPromise, 16 | calcFileInfo: calcFileInfo, 17 | compressible: compressible, 18 | deleteFile, 19 | getPathInfo, 20 | getFilePathList, 21 | getFileInfoList, 22 | createFile, 23 | createFileAsync, 24 | pathSplit, 25 | 26 | // 异步读取文件 27 | readFileAsync, 28 | // 同步读取文件 29 | readFileSync: fs.readFileSync, 30 | writeFileSync: fs.writeFileSync 31 | }; 32 | 33 | export = Index; 34 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/pathSplit.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const path = require('path'); 12 | function pathSplit(filePath) { 13 | let pathList = []; 14 | let pathSplit = filePath.replaceAll('/', '\\').split(''); 15 | for (let i = 0; i < pathSplit.length; i++) { 16 | if (pathSplit[i] === '\\' || i === pathSplit.length) { 17 | pathList.push(pathSplit.slice(0, i + 1).join('')); 18 | } 19 | } 20 | return pathList; 21 | } 22 | return pathSplit; 23 | }); 24 | //# sourceMappingURL=pathSplit.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/pathSplit.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"pathSplit.js","sourceRoot":"","sources":["pathSplit.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAY7B,SAAS,SAAS,CAAC,QAAgB;QAC/B,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE;gBACjD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aACrD;SACJ;QAGD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,OAAS,SAAS,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/pathSplit.ts: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | /** 4 | * 分解路径 5 | * @param filePath :'\\Administrator\\Desktop\\test\\test.txt' 6 | * @returns 7 | * [ 8 | * '\\Administrator\\', 9 | * '\\Administrator\\Desktop\\', 10 | * '\\Administrator\\Desktop\\test\\' 11 | * ] 12 | */ 13 | function pathSplit(filePath: string) { 14 | let pathList = []; 15 | let pathSplit = filePath.replaceAll('/', '\\').split(''); 16 | for (let i = 0; i < pathSplit.length; i++) { 17 | if (pathSplit[i] === '\\' || i === pathSplit.length) { 18 | pathList.push(pathSplit.slice(0, i + 1).join('')); 19 | } 20 | } 21 | 22 | 23 | return pathList; 24 | } 25 | 26 | export = pathSplit; 27 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/readFileAsync.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const fs = require('fs'); 12 | function readFileAsync(filePath, encoding) { 13 | return new Promise((resolve, reject) => { 14 | fs.readFile(filePath, encoding, (err, data) => { 15 | if (err) { 16 | resolve([err, null]); 17 | } 18 | else { 19 | resolve([null, data]); 20 | } 21 | }); 22 | }); 23 | } 24 | return readFileAsync; 25 | }); 26 | //# sourceMappingURL=readFileAsync.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/readFileAsync.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"readFileAsync.js","sourceRoot":"","sources":["readFileAsync.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB,SAAS,aAAa,CAAC,QAAgB,EAAE,QAAa;QAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAQ,EAAE,IAAY,EAAE,EAAE;gBACvD,IAAI,GAAG,EAAE;oBACL,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;iBACxB;qBAAM;oBACH,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;iBACzB;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAGD,OAAS,aAAa,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/readFileAsync.ts: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | 3 | function readFileAsync(filePath: string, encoding: any) { 4 | return new Promise((resolve, reject) => { 5 | fs.readFile(filePath, encoding, (err: any, data: Buffer) => { 6 | if (err) { 7 | resolve([err, null]); 8 | } else { 9 | resolve([null, data]); 10 | } 11 | }); 12 | }); 13 | } 14 | 15 | 16 | export = readFileAsync; 17 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/stringMd5.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | async function stringMd5(str) { 12 | return require('crypto').createHash('md5').update(Buffer.from(str)).digest('hex'); 13 | } 14 | return stringMd5; 15 | }); 16 | //# sourceMappingURL=stringMd5.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/stringMd5.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"stringMd5.js","sourceRoot":"","sources":["stringMd5.ts"],"names":[],"mappings":";;;;;;;;;;IACA,KAAK,UAAU,SAAS,CAAC,GAAW;QAChC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IAGD,OAAS,SAAS,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/stringMd5.ts: -------------------------------------------------------------------------------- 1 | // 计算字符串的 MD5 2 | async function stringMd5(str: string) { 3 | return require('crypto').createHash('md5').update(Buffer.from(str)).digest('hex'); 4 | } 5 | 6 | 7 | export = stringMd5; 8 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/zlibPromise.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const zlib = require('zlib'); 12 | const zlibPromise = { 13 | zip: async function (data) { 14 | return new Promise(function (resolve, reject) { 15 | zlib.gzip(data, function (err, buffer) { 16 | resolve(buffer); 17 | }); 18 | }); 19 | }, 20 | unzip: async function (buffer) { 21 | return new Promise(function (resolve, reject) { 22 | if (!buffer) { 23 | resolve(['input needs to be a Buffer', null]); 24 | } 25 | else { 26 | zlib.unzip(buffer, function (err, buffer) { 27 | resolve(buffer); 28 | }); 29 | } 30 | }); 31 | } 32 | }; 33 | return zlibPromise; 34 | }); 35 | //# sourceMappingURL=zlibPromise.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/zlibPromise.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"zlibPromise.js","sourceRoot":"","sources":["zlibPromise.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7B,MAAM,WAAW,GAAG;QAEhB,GAAG,EAAE,KAAK,WAAW,IAAqB;YACtC,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM;gBAExC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,GAAiB,EAAE,MAAc;oBACvD,OAAO,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAGD,KAAK,EAAE,KAAK,WAAW,MAAc;YACjC,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM;gBACxC,IAAI,CAAC,MAAM,EAAE;oBACT,OAAO,CAAC,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC,CAAC;iBACjD;qBAAM;oBACH,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,GAAiB,EAAE,MAAc;wBAC1D,OAAO,CAAC,MAAM,CAAC,CAAC;oBACpB,CAAC,CAAC,CAAC;iBACN;YACL,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IAGF,OAAS,WAAW,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/FSTool/zlibPromise.ts: -------------------------------------------------------------------------------- 1 | const zlib = require('zlib'); 2 | 3 | const zlibPromise = { 4 | // 参数一表示要压缩的数据,可以是string或buffer 5 | zip: async function (data: Buffer | string) { 6 | return new Promise(function (resolve, reject) { 7 | //buffer就是压缩后的数据 8 | zlib.gzip(data, function (err: Error | null, buffer: Buffer) { 9 | resolve(buffer); 10 | }); 11 | }); 12 | }, 13 | 14 | // 对buffer数据进行解压 15 | unzip: async function (buffer: Buffer) { 16 | return new Promise(function (resolve, reject) { 17 | if (!buffer) { 18 | resolve(['input needs to be a Buffer', null]); 19 | } else { 20 | zlib.unzip(buffer, function (err: Error | null, buffer: Buffer) { 21 | resolve(buffer); 22 | }); 23 | } 24 | }); 25 | } 26 | }; 27 | 28 | 29 | export = zlibPromise; 30 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/CesiumTerrain/access_token.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const Cesium = require('cesium/Build/Cesium/index.cjs'); 12 | let access_token = Cesium.Ion.defaultAccessToken; 13 | return access_token; 14 | }); 15 | //# sourceMappingURL=access_token.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/CesiumTerrain/access_token.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"access_token.js","sourceRoot":"","sources":["access_token.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAExD,IAAI,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAEjD,OAAS,YAAY,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/CesiumTerrain/access_token.ts: -------------------------------------------------------------------------------- 1 | const Cesium = require('cesium/Build/Cesium/index.cjs'); 2 | 3 | let access_token = Cesium.Ion.defaultAccessToken; 4 | 5 | export = access_token; 6 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/MapboxTile/access_token.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | let access_token = 'pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXFhYTA2bTMyeW44ZG0ybXBkMHkifQ.gUGbDOPUN1v1fTs5SeOR4A'; 12 | return access_token; 13 | }); 14 | //# sourceMappingURL=access_token.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/MapboxTile/access_token.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"access_token.js","sourceRoot":"","sources":["access_token.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,IAAI,YAAY,GAAG,0FAA0F,CAAC;IAE9G,OAAS,YAAY,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/MapboxTile/access_token.ts: -------------------------------------------------------------------------------- 1 | let access_token = 'pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXFhYTA2bTMyeW44ZG0ybXBkMHkifQ.gUGbDOPUN1v1fTs5SeOR4A'; 2 | 3 | export = access_token; 4 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/initDB.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const DBTool = require('../../../com/DBTool/DBTool.js'); 12 | async function initDB(DBName) { 13 | if (!await DBTool.HasDB(DBName)) { 14 | let dbTool = new DBTool(DBName); 15 | await dbTool.connect(); 16 | await dbTool.close(); 17 | } 18 | } 19 | return initDB; 20 | }); 21 | //# sourceMappingURL=initDB.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/initDB.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"initDB.js","sourceRoot":"","sources":["initDB.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAExD,KAAK,UAAU,MAAM,CAAC,MAAc;QAChC,IAAI,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC7B,IAAI,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;SACxB;IACL,CAAC;IAED,OAAS,MAAM,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/initDB.ts: -------------------------------------------------------------------------------- 1 | const DBTool = require('../../../com/DBTool/DBTool.js'); 2 | 3 | async function initDB(DBName: string) { 4 | if (!await DBTool.HasDB(DBName)) { 5 | let dbTool = new DBTool(DBName); 6 | await dbTool.connect(); 7 | await dbTool.close(); 8 | } 9 | } 10 | 11 | export = initDB; 12 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/readFromDB.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const { openDB } = require('../../../com/DBTool/DBConnectTool.js'); 12 | const DBTool = require('../../../com/DBTool/DBTool.js'); 13 | async function readFromDB({ DBName, relativePath, err, buffer, dataSource }) { 14 | if (!buffer) { 15 | let file; 16 | if (await DBTool.HasDB(DBName)) { 17 | let dbTool = await openDB(DBName); 18 | file = await dbTool.getFileByFullPath(relativePath); 19 | } 20 | if (file) { 21 | err = null; 22 | buffer = file.file_data; 23 | dataSource = 'DB'; 24 | } 25 | } 26 | return [err, buffer, dataSource]; 27 | } 28 | return readFromDB; 29 | }); 30 | //# sourceMappingURL=readFromDB.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/readFromDB.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"readFromDB.js","sourceRoot":"","sources":["readFromDB.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,EAAC,MAAM,EAAC,GAAG,OAAO,CAAC,sCAAsC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAExD,KAAK,UAAU,UAAU,CAAC,EAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAM;QAC1E,IAAI,CAAC,MAAM,EAAE;YACT,IAAI,IAAI,CAAC;YAET,IAAI,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;gBAC5B,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;gBAClC,IAAI,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;aACvD;YAED,IAAI,IAAI,EAAE;gBACN,GAAG,GAAG,IAAI,CAAC;gBACX,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;gBACxB,UAAU,GAAG,IAAI,CAAC;aACrB;SACJ;QAED,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,OAAS,UAAU,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/readFromDB.ts: -------------------------------------------------------------------------------- 1 | const {openDB} = require('../../../com/DBTool/DBConnectTool.js'); 2 | const DBTool = require('../../../com/DBTool/DBTool.js'); 3 | 4 | async function readFromDB({DBName, relativePath, err, buffer, dataSource}: any) { 5 | if (!buffer) { 6 | let file; 7 | 8 | if (await DBTool.HasDB(DBName)) { 9 | let dbTool = await openDB(DBName); 10 | file = await dbTool.getFileByFullPath(relativePath); 11 | } 12 | 13 | if (file) { 14 | err = null; 15 | buffer = file.file_data; 16 | dataSource = 'DB'; 17 | } 18 | } 19 | 20 | return [err, buffer, dataSource]; 21 | } 22 | 23 | export = readFromDB; 24 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/readFromDisk.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const readFileAsync = require('../../FSTool/readFileAsync.js'); 12 | async function readFromDisk({ fileSavePath, err, buffer, dataSource }) { 13 | if (!buffer) { 14 | [err, buffer] = await readFileAsync(fileSavePath); 15 | dataSource = 'Disk'; 16 | } 17 | return [err, buffer, dataSource]; 18 | } 19 | return readFromDisk; 20 | }); 21 | //# sourceMappingURL=readFromDisk.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/readFromDisk.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"readFromDisk.js","sourceRoot":"","sources":["readFromDisk.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,aAAa,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAE/D,KAAK,UAAU,YAAY,CAAC,EAAC,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAM;QACpE,IAAI,CAAC,MAAM,EAAE;YACT,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,CAAC;YAClD,UAAU,GAAG,MAAM,CAAC;SACvB;QAED,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,OAAS,YAAY,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/readFromDisk.ts: -------------------------------------------------------------------------------- 1 | const readFileAsync = require('../../FSTool/readFileAsync.js'); 2 | 3 | async function readFromDisk({fileSavePath, err, buffer, dataSource}: any) { 4 | if (!buffer) { 5 | [err, buffer] = await readFileAsync(fileSavePath); 6 | dataSource = 'Disk'; 7 | } 8 | 9 | return [err, buffer, dataSource]; 10 | } 11 | 12 | export = readFromDisk; 13 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/readFromNet.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const axios = require('axios'); 12 | async function readFromNet({ url, headers, err, buffer, dataSource }) { 13 | if (!buffer) { 14 | await axios.get(url, { 15 | headers: headers || {}, 16 | responseType: 'arraybuffer' 17 | }).then((res) => { 18 | dataSource = 'Net'; 19 | buffer = res.data; 20 | err = null; 21 | }).catch((reqErr) => { 22 | err = reqErr; 23 | }); 24 | } 25 | return [err, buffer, dataSource]; 26 | } 27 | return readFromNet; 28 | }); 29 | //# sourceMappingURL=readFromNet.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/readFromNet.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"readFromNet.js","sourceRoot":"","sources":["readFromNet.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/B,KAAK,UAAU,WAAW,CAAC,EAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAM;QACnE,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;gBACjB,OAAO,EAAE,OAAO,IAAI,EAAE;gBACtB,YAAY,EAAE,aAAa;aAC9B,CAAC,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACjB,UAAU,GAAG,KAAK,CAAC;gBACnB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC;gBAClB,GAAG,GAAG,IAAI,CAAC;YACf,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAW,EAAE,EAAE;gBACrB,GAAG,GAAG,MAAM,CAAC;YACjB,CAAC,CAAC,CAAC;SACN;QACD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;IAGD,OAAS,WAAW,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/readFromNet.ts: -------------------------------------------------------------------------------- 1 | const axios = require('axios'); 2 | 3 | async function readFromNet({url, headers, err, buffer, dataSource}: any) { 4 | if (!buffer) { 5 | await axios.get(url, { 6 | headers: headers || {}, 7 | responseType: 'arraybuffer' 8 | }).then((res: any) => { 9 | dataSource = 'Net'; 10 | buffer = res.data; 11 | err = null; 12 | }).catch((reqErr: any) => { 13 | err = reqErr; 14 | }); 15 | } 16 | return [err, buffer, dataSource]; 17 | } 18 | 19 | 20 | export = readFromNet; 21 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/saveToDB.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"saveToDB.js","sourceRoot":"","sources":["saveToDB.ts"],"names":[],"mappings":";;;;;;;;;;;;;IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAC,MAAM,EAAC,GAAG,OAAO,CAAC,sCAAsC,CAAC,CAAC;IACjE,wFAA6D;IAE7D,KAAK,UAAU,QAAQ,CAAC,EAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAM,EAAE,YAAY,GAAG,KAAK;QAC7E,IAAI,MAAM,IAAI,YAAY,IAAI,MAAM,EAAE;YAClC,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAElC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,wBAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/D,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;oBACrB,YAAY,EAAE,YAAY;oBAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;oBACrC,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oBACxC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBACrE,IAAI,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;SAC7B;IACL,CAAC;IAED,OAAS,QAAQ,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/saveToDB.ts: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const {openDB} = require('../../../com/DBTool/DBConnectTool.js'); 3 | import zlibPromise from '../../../lib/FSTool/zlibPromise.js'; 4 | 5 | async function saveToDB({DBName, relativePath, buffer}: any, needCompress = false) { 6 | if (DBName && relativePath && buffer) { 7 | let dbTool = await openDB(DBName); 8 | 9 | buffer = needCompress ? await zlibPromise.zip(buffer) : buffer; 10 | await dbTool.insertData([{ 11 | relativePath: relativePath, 12 | fileName: path.basename(relativePath), 13 | buffer: buffer, 14 | compressType: needCompress ? 'gzip' : '', 15 | md5: require('crypto').createHash('md5').update(buffer).digest('hex'), 16 | size: buffer.length 17 | }], null, 'large', false); 18 | } 19 | } 20 | 21 | export = saveToDB; 22 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/saveToFile.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const fsPromises = require('fs-promise'); 12 | const path = require('path'); 13 | const fs = require('fs'); 14 | async function saveToFile(fileSavePath, buffer) { 15 | if (fileSavePath && buffer) { 16 | await fsPromises.ensureDir(path.dirname(fileSavePath)); 17 | fs.writeFileSync(fileSavePath, buffer); 18 | } 19 | } 20 | return saveToFile; 21 | }); 22 | //# sourceMappingURL=saveToFile.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/saveToFile.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"saveToFile.js","sourceRoot":"","sources":["saveToFile.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB,KAAK,UAAU,UAAU,CAAC,YAAoB,EAAE,MAAc;QAC1D,IAAI,YAAY,IAAI,MAAM,EAAE;YACxB,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;YACvD,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;SAC1C;IACL,CAAC;IAED,OAAS,UAAU,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/GISServer/Util/saveToFile.ts: -------------------------------------------------------------------------------- 1 | const fsPromises = require('fs-promise'); 2 | const path = require('path'); 3 | const fs = require('fs'); 4 | 5 | async function saveToFile(fileSavePath: string, buffer: Buffer) { 6 | if (fileSavePath && buffer) { 7 | await fsPromises.ensureDir(path.dirname(fileSavePath)); 8 | fs.writeFileSync(fileSavePath, buffer); 9 | } 10 | } 11 | 12 | export = saveToFile; 13 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/RSATool.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const rs = require('jsrsasign'); 12 | let RSATool = { 13 | createKey(b = 2048) { 14 | let rsaKeypair = rs.KEYUTIL.generateKeypair('RSA', b); 15 | let publicDer = rs.KEYUTIL.getPEM(rsaKeypair.pubKeyObj); 16 | let privateDer = rs.KEYUTIL.getPEM(rsaKeypair.prvKeyObj, 'PKCS8PRV'); 17 | return { privateDer, publicDer }; 18 | }, 19 | encrypt(message, pubKey) { 20 | let pub = rs.KEYUTIL.getKey(pubKey); 21 | return rs.KJUR.crypto.Cipher.encrypt(message, pub); 22 | }, 23 | decrypt(encryptTxt, privateK) { 24 | let pub = rs.KEYUTIL.getKey(privateK); 25 | return rs.KJUR.crypto.Cipher.decrypt(encryptTxt, pub); 26 | } 27 | }; 28 | return RSATool; 29 | }); 30 | //# sourceMappingURL=RSATool.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/RSATool.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"RSATool.js","sourceRoot":"","sources":["RSATool.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEhC,IAAI,OAAO,GAAG;QAKV,SAAS,CAAC,CAAC,GAAG,IAAI;YACd,IAAI,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAEtD,IAAI,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACxD,IAAI,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACrE,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,CAAC;QACnC,CAAC;QAED,OAAO,CAAC,OAAe,EAAE,MAAc;YACnC,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,CAAC,UAAkB,EAAE,QAAgB;YACxC,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;KACJ,CAAC;IAEF,OAAS,OAAO,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/RSATool.ts: -------------------------------------------------------------------------------- 1 | const rs = require('jsrsasign'); 2 | 3 | let RSATool = { 4 | /** 5 | * 获取秘钥 6 | * @returns {{priKey: *, pubKey: *}} 7 | */ 8 | createKey(b = 2048) { 9 | let rsaKeypair = rs.KEYUTIL.generateKeypair('RSA', b); 10 | // 密钥对象获取 pem 格式的密钥 11 | let publicDer = rs.KEYUTIL.getPEM(rsaKeypair.pubKeyObj); 12 | let privateDer = rs.KEYUTIL.getPEM(rsaKeypair.prvKeyObj, 'PKCS8PRV'); 13 | return {privateDer, publicDer}; 14 | }, 15 | 16 | encrypt(message: string, pubKey: string) { 17 | let pub = rs.KEYUTIL.getKey(pubKey); 18 | return rs.KJUR.crypto.Cipher.encrypt(message, pub); 19 | }, 20 | 21 | decrypt(encryptTxt: string, privateK: string) { 22 | let pub = rs.KEYUTIL.getKey(privateK); 23 | return rs.KJUR.crypto.Cipher.decrypt(encryptTxt, pub); 24 | } 25 | }; 26 | 27 | export = RSATool; 28 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/GetMapTile.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"GetMapTile.js","sourceRoot":"","sources":["GetMapTile.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAGlD,SAAS,UAAU,CAAC,UAAkB,EAAE,UAAkB,EAAE,cAAsB,EAAE,cAAsB,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE;QACjI,IAAI,QAAQ,GAAG,YAAY,CAAC;QAC5B,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,OAAO,KAAK,CAAC,EAAE;YACf,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QACD,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;gBACpD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;SACJ;QAED,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC,MAAM,EAAE;YACjB,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YAChE,IAAI,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;YAC5E,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBACrD,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;oBACrD,UAAU,CAAC,IAAI,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAC,CAAC,CAAC;iBACjC;aACJ;SACJ;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAGD,OAAS,UAAU,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/GetMapTile.ts: -------------------------------------------------------------------------------- 1 | const TileUtil3857 = require('./TileUtil3857.js'); 2 | 3 | // 获取地图瓦片几何 4 | function GetMapTile(leftTopLon: number, leftTopLat: number, rightBottomLon: number, rightBottomLat: number, minZoom = 0, maxZoom = 22) { 5 | let TileUtil = TileUtil3857; 6 | const zooms = []; 7 | if (minZoom === 0) { 8 | zooms.push(0); 9 | } 10 | for (let i = minZoom; i <= maxZoom; i++) { 11 | let l = TileUtil.getTileXYZ(leftTopLon, leftTopLat, i); 12 | let r = TileUtil.getTileXYZ(rightBottomLon, rightBottomLat, i); 13 | if (l.xTile - r.xTile !== 0 && l.yTile - r.yTile !== 0) { 14 | zooms.push(i); 15 | } 16 | } 17 | // 根据有瓦片数据的地方下载瓦片 18 | let imgListAll = []; 19 | while (zooms.length) { 20 | let zoom = zooms.shift(); 21 | let leftTop = TileUtil.getTileXYZ(leftTopLon, leftTopLat, zoom); 22 | let rightBottom = TileUtil.getTileXYZ(rightBottomLon, rightBottomLat, zoom); 23 | for (let x = leftTop.xTile; x <= rightBottom.xTile; x++) { 24 | for (let y = leftTop.yTile; y <= rightBottom.yTile; y++) { 25 | imgListAll.push({x, y, zoom}); 26 | } 27 | } 28 | } 29 | return imgListAll; 30 | } 31 | 32 | 33 | export = GetMapTile; 34 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/TileImpl/Tile.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | class Tile { 12 | x; 13 | y; 14 | zoom; 15 | constructor(x, y, zoom) { 16 | this.x = x; 17 | this.y = y; 18 | this.zoom = zoom; 19 | } 20 | } 21 | return Tile; 22 | }); 23 | //# sourceMappingURL=Tile.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/TileImpl/Tile.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"Tile.js","sourceRoot":"","sources":["Tile.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,IAAI;QACC,CAAC,CAAS;QACV,CAAC,CAAS;QACV,IAAI,CAAS;QAEpB,YAAY,CAAS,EAAE,CAAS,EAAE,IAAY;YAC1C,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;KACJ;IAED,OAAS,IAAI,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/TileImpl/Tile.ts: -------------------------------------------------------------------------------- 1 | class Tile { 2 | public x: number; 3 | public y: number; 4 | public zoom: number; 5 | 6 | constructor(x: number, y: number, zoom: number) { 7 | this.x = x; 8 | this.y = y; 9 | this.zoom = zoom; 10 | } 11 | } 12 | 13 | export = Tile; 14 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/TileImpl/TileBox.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | class TileBox { 12 | xmin = 0; 13 | ymin = 0; 14 | xmax = 0; 15 | ymax = 0; 16 | constructor() { 17 | } 18 | } 19 | return TileBox; 20 | }); 21 | //# sourceMappingURL=TileBox.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/TileImpl/TileBox.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"TileBox.js","sourceRoot":"","sources":["TileBox.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,OAAO;QACF,IAAI,GAAW,CAAC,CAAC;QACjB,IAAI,GAAW,CAAC,CAAC;QACjB,IAAI,GAAW,CAAC,CAAC;QACjB,IAAI,GAAW,CAAC,CAAC;QAExB;QACA,CAAC;KACJ;IAED,OAAS,OAAO,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/TileImpl/TileBox.ts: -------------------------------------------------------------------------------- 1 | class TileBox { 2 | public xmin: number = 0; 3 | public ymin: number = 0; 4 | public xmax: number = 0; 5 | public ymax: number = 0; 6 | 7 | constructor() { 8 | } 9 | } 10 | 11 | export = TileBox; 12 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/TileImpl/VectorTile.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | class VectorTile { 3 | id; 4 | name; 5 | geom; 6 | tile; 7 | constructor() { 8 | this.id = null; 9 | this.name = null; 10 | this.geom = null; 11 | this.tile = []; 12 | } 13 | } 14 | exports.VectorTile = VectorTile; 15 | //# sourceMappingURL=VectorTile.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/TileImpl/VectorTile.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"VectorTile.js","sourceRoot":"","sources":["VectorTile.ts"],"names":[],"mappings":";AAAA,MAAM,UAAU;IACL,EAAE,CAAO;IACT,IAAI,CAAO;IACX,IAAI,CAAO;IACX,IAAI,CAAQ;IAEnB;QACI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;CACJ;AAED,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/TileImpl/VectorTile.ts: -------------------------------------------------------------------------------- 1 | class VectorTile { 2 | public id: null; 3 | public name: null; 4 | public geom: null; 5 | public tile: any[]; 6 | 7 | constructor() { 8 | this.id = null; 9 | this.name = null; 10 | this.geom = null; 11 | this.tile = []; 12 | } 13 | } 14 | 15 | exports.VectorTile = VectorTile; 16 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/TileImpl/mvtTileBox.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | class MvtTileBox { 3 | xmin; 4 | ymin; 5 | xmax; 6 | ymax; 7 | tableName; 8 | layerPickName; 9 | constructor() { 10 | this.xmin = null; 11 | this.ymin = null; 12 | this.xmax = null; 13 | this.ymax = null; 14 | this.tableName = null; 15 | this.layerPickName = null; 16 | } 17 | } 18 | exports.TileBox = MvtTileBox; 19 | //# sourceMappingURL=mvtTileBox.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/TileImpl/mvtTileBox.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"mvtTileBox.js","sourceRoot":"","sources":["mvtTileBox.ts"],"names":[],"mappings":";AAAA,MAAM,UAAU;IACL,IAAI,CAAO;IACX,IAAI,CAAO;IACX,IAAI,CAAO;IACX,IAAI,CAAO;IACX,SAAS,CAAO;IAChB,aAAa,CAAO;IAE3B;QACI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,CAAC;CACJ;AAED,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/TileImpl/mvtTileBox.ts: -------------------------------------------------------------------------------- 1 | class MvtTileBox { 2 | public xmin: null; 3 | public ymin: null; 4 | public xmax: null; 5 | public ymax: null; 6 | public tableName: null; 7 | public layerPickName: null; 8 | 9 | constructor() { 10 | this.xmin = null; 11 | this.ymin = null; 12 | this.xmax = null; 13 | this.ymax = null; 14 | this.tableName = null; 15 | this.layerPickName = null; 16 | } 17 | } 18 | 19 | exports.TileBox = MvtTileBox; 20 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/TileSet.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"TileSet.js","sourceRoot":"","sources":["TileSet.ts"],"names":[],"mappings":";;;;;;;;;;;;;IACA,2DAAmC;IAEnC,MAAM,OAAO;QACF,OAAO,CAAM;QAEpB;YACI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACtB,CAAC;QAED,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,IAAY;YAClC,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,EAAE;gBACP,IAAI,GAAG,EAAE,CAAC;gBACV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;aAC7B;YACD,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,EAAE;gBACP,IAAI,GAAG,EAAE,CAAC;gBACV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;aAChC;YACD,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,MAAM,CAAC,CAAS,EAAE,CAAS,EAAE,IAAY;YACrC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACzC,CAAC;QAED,MAAM;YACF,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;gBAC7B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAChC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;wBACnC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;4BACnC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBAC7D;qBACJ;oBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;iBAC9B;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aAC3B;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;KACJ;IAED,OAAS,OAAO,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/TileSet.ts: -------------------------------------------------------------------------------- 1 | // 容纳七千万个瓦片 2 | import Tile from './TileImpl/Tile'; 3 | 4 | class TileSet { 5 | public tileObj: any; 6 | 7 | constructor() { 8 | this.tileObj = {}; 9 | } 10 | 11 | add(x: number, y: number, zoom: number) { 12 | let zObj = this.tileObj[zoom]; 13 | if (!zObj) { 14 | zObj = {}; 15 | this.tileObj[zoom] = zObj; 16 | } 17 | let xObj = this.tileObj[zoom][x]; 18 | if (!xObj) { 19 | xObj = {}; 20 | this.tileObj[zoom][x] = xObj; 21 | } 22 | xObj[y] = true; 23 | } 24 | 25 | delete(x: number, y: number, zoom: number) { 26 | if (this.tileObj[zoom] && this.tileObj[zoom][x] && this.tileObj[zoom][x][y]) 27 | this.tileObj[zoom][x][y] = false; 28 | } 29 | 30 | getAll() { 31 | let result = []; 32 | for (const zoom in this.tileObj) { 33 | for (const x in this.tileObj[zoom]) { 34 | for (const y in this.tileObj[zoom][x]) { 35 | if (this.tileObj[zoom][x][y] === true) { 36 | result.push(new Tile(Number(x), Number(y), Number(zoom))); 37 | } 38 | } 39 | this.tileObj[zoom][x] = {}; 40 | } 41 | this.tileObj[zoom] = {}; 42 | } 43 | return result; 44 | } 45 | } 46 | 47 | export = TileSet; 48 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/multiThreadGet.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"multiThreadGet.js","sourceRoot":"","sources":["multiThreadGet.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAG7C,KAAK,UAAU,cAAc,CAAC,OAAiB,EAAE,KAAK,GAAG,EAAE;QAEvD,IAAI,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC5B,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QACzB,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;SAC3C;QAGD,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE;YAC7C,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YACpB,IAAI,QAAQ,GAAG,CAAC,CAAC;YAEjB,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,WAAW,EAAE;gBAC7B,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACtB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC5C,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBACxB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAChB,IAAI,QAAQ,GAAG,GAAG,KAAK,CAAC,EAAE;4BACtB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;yBACtE;oBACL,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;wBACV,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;wBAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAChB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBAC7B,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEL,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,EAAE;wBACnB,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;qBAChD;oBACD,QAAQ,EAAE,CAAC;iBACd;aACJ;YACD,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC/C;IACL,CAAC;IAGD,OAAS,cAAc,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/multiThreadGet.ts: -------------------------------------------------------------------------------- 1 | const axios = require('axios'); 2 | const awaitWrap = require('../awaitWrap.js'); 3 | 4 | 5 | async function multiThreadGet(urlList: string[], count = 10) { 6 | 7 | let responseMap = new Map(); 8 | let sum = urlList.length; 9 | while (urlList.length > 0) { 10 | responseMap.set(urlList.pop(), 'await'); 11 | } 12 | 13 | // 尝试发起 三 轮请求 14 | for (let tryIndex = 0; tryIndex < 3; tryIndex++) { 15 | let map = new Map(); 16 | let getIndex = 0; 17 | 18 | for (const [url] of responseMap) { 19 | if (responseMap.get(url)) { 20 | map.set(url, awaitWrap(axios.get(url).then(() => { 21 | responseMap.delete(url); 22 | map.delete(url); 23 | if (getIndex % 100 === 0) { 24 | console.log('已完成', getIndex, '/', sum, getIndex / sum * 100 + '%'); 25 | } 26 | }).catch(() => { 27 | responseMap.set(url, 'Err'); 28 | map.delete(url); 29 | console.log('请求失败', url); 30 | }))); 31 | 32 | if (map.size >= count) { 33 | await Promise.race(Array.from(map.values())); 34 | } 35 | getIndex++; 36 | } 37 | } 38 | await Promise.all(Array.from(map.values())); 39 | } 40 | } 41 | 42 | 43 | export = multiThreadGet; 44 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/simplifyGeoJson.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const turf = require('@turf/turf'); 12 | function simplifyGeoJson(geoJson, bufferLength = 20) { 13 | let resGeoJson = turf.flatten(geoJson); 14 | while (resGeoJson.type === 'FeatureCollection' && resGeoJson.features.length > 5) { 15 | resGeoJson = turf.buffer(resGeoJson, bufferLength, { units: 'kilometers' }); 16 | resGeoJson = turf.combine(resGeoJson); 17 | resGeoJson = turf.union(resGeoJson.features[0], resGeoJson.features[0]); 18 | resGeoJson = turf.flatten(resGeoJson); 19 | } 20 | resGeoJson = turf.simplify(resGeoJson, { tolerance: 0.1, highQuality: false }); 21 | return resGeoJson; 22 | } 23 | return simplifyGeoJson; 24 | }); 25 | //# sourceMappingURL=simplifyGeoJson.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/simplifyGeoJson.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"simplifyGeoJson.js","sourceRoot":"","sources":["simplifyGeoJson.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAGnC,SAAS,eAAe,CAAC,OAAY,EAAE,YAAY,GAAG,EAAE;QACpD,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvC,OAAO,UAAU,CAAC,IAAI,KAAK,mBAAmB,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9E,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,EAAC,KAAK,EAAE,YAAY,EAAC,CAAC,CAAC;YAC1E,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACzC;QAED,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAC,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAC,CAAC,CAAC;QAC7E,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,OAAS,eAAe,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/simplifyGeoJson.ts: -------------------------------------------------------------------------------- 1 | const turf = require('@turf/turf'); 2 | 3 | // 将 含有大量碎片化多边形的 GeoJson 进行缓冲区合并精简 4 | function simplifyGeoJson(geoJson: any, bufferLength = 20) { 5 | let resGeoJson = turf.flatten(geoJson); 6 | 7 | while (resGeoJson.type === 'FeatureCollection' && resGeoJson.features.length > 5) { 8 | resGeoJson = turf.buffer(resGeoJson, bufferLength, {units: 'kilometers'}); 9 | resGeoJson = turf.combine(resGeoJson); 10 | resGeoJson = turf.union(resGeoJson.features[0], resGeoJson.features[0]); 11 | resGeoJson = turf.flatten(resGeoJson); 12 | } 13 | 14 | resGeoJson = turf.simplify(resGeoJson, {tolerance: 0.1, highQuality: false}); 15 | return resGeoJson; 16 | } 17 | 18 | export = simplifyGeoJson; 19 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/twoPolygonRelation.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const turf = require('@turf/turf'); 12 | function twoPolygonRelation(tilePolygon, customPolygon) { 13 | let relation = null; 14 | if (relation === null && turf.booleanContains(tilePolygon, customPolygon)) { 15 | relation = 'within'; 16 | } 17 | if (relation === null && turf.booleanContains(customPolygon, tilePolygon)) { 18 | relation = 'partIn'; 19 | } 20 | if (relation === null && turf.booleanDisjoint(tilePolygon, customPolygon)) { 21 | relation = 'disjoint'; 22 | } 23 | if (relation === null && turf.booleanOverlap(tilePolygon, customPolygon)) { 24 | relation = 'crosses'; 25 | } 26 | return relation; 27 | } 28 | return twoPolygonRelation; 29 | }); 30 | //# sourceMappingURL=twoPolygonRelation.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/twoPolygonRelation.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"twoPolygonRelation.js","sourceRoot":"","sources":["twoPolygonRelation.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAGnC,SAAS,kBAAkB,CAAC,WAAgB,EAAE,aAAkB;QAC5D,IAAI,QAAQ,GAAG,IAAI,CAAC;QAGpB,IAAI,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE;YACvE,QAAQ,GAAG,QAAQ,CAAC;SACvB;QAGD,IAAI,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE;YACvE,QAAQ,GAAG,QAAQ,CAAC;SACvB;QAGD,IAAI,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE;YACvE,QAAQ,GAAG,UAAU,CAAC;SACzB;QAGD,IAAI,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE;YACtE,QAAQ,GAAG,SAAS,CAAC;SACxB;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,OAAS,kBAAkB,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/twoPolygonRelation.ts: -------------------------------------------------------------------------------- 1 | const turf = require('@turf/turf'); 2 | 3 | // 传入瓦片的矩形 polygon 、自定义多边形的 polygon,判断它们之间的关系 4 | function twoPolygonRelation(tilePolygon: any, customPolygon: any) { 5 | let relation = null; 6 | 7 | // customPolygon 完全位于 tilePolygon 中 8 | if (relation === null && turf.booleanContains(tilePolygon, customPolygon)) { 9 | relation = 'within'; 10 | } 11 | 12 | // tilePolygon 完全位于 customPolygon 中 13 | if (relation === null && turf.booleanContains(customPolygon, tilePolygon)) { 14 | relation = 'partIn'; 15 | } 16 | 17 | // 当这两个矢量相离时 18 | if (relation === null && turf.booleanDisjoint(tilePolygon, customPolygon)) { 19 | relation = 'disjoint'; 20 | } 21 | 22 | // 当这两个矢量相交时 23 | if (relation === null && turf.booleanOverlap(tilePolygon, customPolygon)) { 24 | relation = 'crosses'; 25 | } 26 | 27 | return relation; 28 | } 29 | 30 | export = twoPolygonRelation; 31 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/unionGeoJson.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const turf = require('@turf/turf'); 12 | function unionGeoJson(geoJson) { 13 | let sourceGeoJson = turf.flatten(geoJson); 14 | let resGeoJson; 15 | turf.featureEach(sourceGeoJson, function (currentFeature, featureIndex) { 16 | if (featureIndex === 0) { 17 | resGeoJson = currentFeature; 18 | } 19 | else { 20 | resGeoJson = turf.union(resGeoJson, currentFeature); 21 | } 22 | }); 23 | return turf.flatten(resGeoJson); 24 | } 25 | return unionGeoJson; 26 | }); 27 | //# sourceMappingURL=unionGeoJson.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/unionGeoJson.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"unionGeoJson.js","sourceRoot":"","sources":["unionGeoJson.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEnC,SAAS,YAAY,CAAC,OAAY;QAC9B,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,UAAe,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,cAAmB,EAAE,YAAoB;YAC/E,IAAI,YAAY,KAAK,CAAC,EAAE;gBACpB,UAAU,GAAG,cAAc,CAAC;aAC/B;iBAAM;gBACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;aACvD;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,OAAS,YAAY,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/TileTool/unionGeoJson.ts: -------------------------------------------------------------------------------- 1 | const turf = require('@turf/turf'); 2 | 3 | function unionGeoJson(geoJson: any) { 4 | let sourceGeoJson = turf.flatten(geoJson); 5 | 6 | let resGeoJson: any; 7 | turf.featureEach(sourceGeoJson, function (currentFeature: any, featureIndex: number) { 8 | if (featureIndex === 0) { 9 | resGeoJson = currentFeature; 10 | } else { 11 | resGeoJson = turf.union(resGeoJson, currentFeature); 12 | } 13 | }); 14 | 15 | return turf.flatten(resGeoJson); 16 | } 17 | 18 | export = unionGeoJson; 19 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/AsyncTool.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const awaitWrap = (promise) => { 12 | return promise 13 | .then(data => [null, data]) 14 | .catch(err => [err, null]); 15 | }; 16 | return awaitWrap; 17 | }); 18 | //# sourceMappingURL=AsyncTool.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/AsyncTool.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"AsyncTool.js","sourceRoot":"","sources":["AsyncTool.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,SAAS,GAAG,CAAC,OAAqB,EAAE,EAAE;QACxC,OAAO,OAAO;aACT,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAC1B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,OAAS,SAAS,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/AsyncTool.ts: -------------------------------------------------------------------------------- 1 | const awaitWrap = (promise: Promise) => { 2 | return promise 3 | .then(data => [null, data]) 4 | .catch(err => [err, null]); 5 | }; 6 | 7 | export = awaitWrap; 8 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/BOMTool.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | let BOMTool = { 12 | GetUA: function () { 13 | let u = navigator.userAgent; 14 | return u; 15 | }, 16 | toClipboard: async function (text) { 17 | const textarea = document.createElement('textarea'); 18 | textarea.readOnly = true; 19 | textarea.style.position = 'absolute'; 20 | textarea.style.left = '-9999px'; 21 | textarea.value = text; 22 | document.body.appendChild(textarea); 23 | textarea.select(); 24 | textarea.setSelectionRange(0, textarea.value.length); 25 | document.execCommand('Copy'); 26 | document.body.removeChild(textarea); 27 | } 28 | }; 29 | return BOMTool; 30 | }); 31 | //# sourceMappingURL=BOMTool.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/BOMTool.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"BOMTool.js","sourceRoot":"","sources":["BOMTool.ts"],"names":[],"mappings":";;;;;;;;;;IAIA,IAAI,OAAO,GAAG;QACV,KAAK,EAAE;YACH,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC;YAE5B,OAAO,CAAC,CAAC;QACb,CAAC;QACD,WAAW,EAAE,KAAK,WAAW,IAAY;YAErC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAEpD,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;YACzB,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;YACrC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;YAEhC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;YAEtB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEpC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACrD,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;KACJ,CAAC;IAEF,OAAS,OAAO,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/BOMTool.ts: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | 名称:常用工具函数集合 - 浏览器类 3 | 作者:冯功耀 4 | ****************************************************************************/ 5 | let BOMTool = { 6 | GetUA: function () { 7 | let u = navigator.userAgent; 8 | // let u2 = navigator.userAgent.toLowerCase(); 9 | return u; 10 | }, 11 | toClipboard: async function (text: string) { 12 | // 动态创建 textarea 标签 13 | const textarea = document.createElement('textarea'); 14 | // 将该 textarea 设为 readonly 防止 iOS 下自动唤起键盘,同时将 textarea 移出可视区域 15 | textarea.readOnly = true; 16 | textarea.style.position = 'absolute'; 17 | textarea.style.left = '-9999px'; 18 | // 将要 copy 的值赋给 textarea 标签的 value 属性 19 | textarea.value = text; 20 | // 将 textarea 插入到 body 中 21 | document.body.appendChild(textarea); 22 | // 选中值并复制 23 | textarea.select(); 24 | textarea.setSelectionRange(0, textarea.value.length); 25 | document.execCommand('Copy'); 26 | document.body.removeChild(textarea); 27 | } 28 | }; 29 | 30 | export = BOMTool; 31 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/ColorTool.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | let ColorTool = { 12 | getRandomColor() { 13 | const rgb = []; 14 | for (let i = 0; i < 3; ++i) { 15 | let color = Math.floor(Math.random() * 256).toString(16); 16 | color = color.length === 1 ? '0' + color : color; 17 | rgb.push(color); 18 | } 19 | return '#' + rgb.join(''); 20 | }, 21 | hexToRGB(hex) { 22 | const extendHex = (shortHex) => '#' + shortHex.slice(shortHex.startsWith('#') ? 1 : 0).split('').map(x => x + x).join(''); 23 | const extendedHex = hex.slice(hex.startsWith('#') ? 1 : 0).length === 3 ? extendHex(hex) : hex; 24 | return `rgb(${parseInt(extendedHex.slice(1), 16) >> 16}, ${(parseInt(extendedHex.slice(1), 16) & 0x00ff00) >> 8}, ${parseInt(extendedHex.slice(1), 16) & 0x0000ff})`; 25 | }, 26 | RGBToHex(r, g, b) { 27 | let hex = ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0'); 28 | return hex; 29 | } 30 | }; 31 | return ColorTool; 32 | }); 33 | //# sourceMappingURL=ColorTool.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/ColorTool.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"ColorTool.js","sourceRoot":"","sources":["ColorTool.ts"],"names":[],"mappings":";;;;;;;;;;IAIA,IAAI,SAAS,GAAG;QAGZ,cAAc;YACV,MAAM,GAAG,GAAG,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;gBACxB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACzD,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;gBACjD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACnB;YACD,OAAO,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;QAID,QAAQ,CAAC,GAAW;YAChB,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClI,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/F,OAAO,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC;QACzK,CAAC;QAID,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;YACpC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACnE,OAAO,GAAG,CAAC;QACf,CAAC;KACJ,CAAC;IAEF,OAAS,SAAS,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/ColorTool.ts: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | 名称:常用工具函数集合 - 颜色类 3 | 作者:冯功耀 4 | ****************************************************************************/ 5 | let ColorTool = { 6 | 7 | // 生成随机十六进制颜色值(hex) 8 | getRandomColor() { 9 | const rgb = []; 10 | for (let i = 0; i < 3; ++i) { 11 | let color = Math.floor(Math.random() * 256).toString(16); 12 | color = color.length === 1 ? '0' + color : color; 13 | rgb.push(color); 14 | } 15 | return '#' + rgb.join(''); 16 | }, 17 | 18 | // hexToRGB: 将 十六进制颜色值(hex) 转换为rgb()字符串 19 | // 使用按位右运算符和掩码位与&(and) 运算符将十六进制颜色代码 (前缀为#) 转换为具有 RGB 值的字符串。如果它是一个3位数的 colorcode, 那么用 extendHex () 函数 (ref.extendHex代码段) 扩展的6位 colorcode 进行相同的处理 20 | hexToRGB(hex: string) { 21 | const extendHex = (shortHex: string) => '#' + shortHex.slice(shortHex.startsWith('#') ? 1 : 0).split('').map(x => x + x).join(''); 22 | const extendedHex = hex.slice(hex.startsWith('#') ? 1 : 0).length === 3 ? extendHex(hex) : hex; 23 | return `rgb(${parseInt(extendedHex.slice(1), 16) >> 16}, ${(parseInt(extendedHex.slice(1), 16) & 0x00ff00) >> 8}, ${parseInt(extendedHex.slice(1), 16) & 0x0000ff})`; 24 | }, 25 | 26 | // RGBToHex: 将 RGB 组件的值转换为 colorcode。 27 | // 使用按位左移位运算符 (<<) 和toString(16)将给定的 RGB 参数转换为十六进制字符串, 然后padStart(6,'0')以获取6位十六进制值 28 | RGBToHex(r: number, g: number, b: number) { 29 | let hex = ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0'); 30 | return hex; 31 | } 32 | }; 33 | 34 | export = ColorTool; 35 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/GISTool.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | let GISTool = { 12 | calcTriangleArea(s1, s2, s3) { 13 | if (s1 < 0 || s2 < 0 || s3 < 0) { 14 | return 0; 15 | } 16 | if (!((s1 + s2 > s3) && (s1 + s3 > s2) && (s2 + s3 > s1))) { 17 | return 0; 18 | } 19 | if (!((s1 - s2 < s3) && (s2 - s1 < s3) && (s1 - s3 < s2) && (s3 - s1 < s2) && (s2 - s3 < s1) && (s3 - s2 < s1))) { 20 | return 0; 21 | } 22 | let s = (s1 + s2 + s3) / 2; 23 | return Math.sqrt(s * (s - s1) * (s - s2) * (s - s3)); 24 | }, 25 | VecAngle(X1, Y1, X2, Y2) { 26 | let deltaX, deltaY; 27 | deltaX = X2 - X1; 28 | deltaY = Y2 - Y1; 29 | return this.NormalizeVecAngle(Math.atan2(deltaY, deltaX)); 30 | }, 31 | NormalizeVecAngle(angle) { 32 | let count = ~~(angle / (2 * Math.PI)); 33 | return (angle - count * (2 * Math.PI)); 34 | }, 35 | GeoAlgorithm(direct1, direct2) { 36 | return this.NormalizeVecAngle(direct2 - direct1); 37 | } 38 | }; 39 | return GISTool; 40 | }); 41 | //# sourceMappingURL=GISTool.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/GISTool.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"GISTool.js","sourceRoot":"","sources":["GISTool.ts"],"names":[],"mappings":";;;;;;;;;;IAIA,IAAI,OAAO,GAAG;QAEV,gBAAgB,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU;YAE/C,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;gBAC5B,OAAO,CAAC,CAAC;aACZ;YAED,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;gBACvD,OAAO,CAAC,CAAC;aACZ;YAED,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;gBAC7G,OAAO,CAAC,CAAC;aACZ;YACD,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;QAGD,QAAQ,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;YAKnD,IAAI,MAAM,EAAE,MAAM,CAAC;YACnB,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;YACjB,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,CAAC;QAGD,iBAAiB,CAAC,KAAa;YAE3B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACtC,OAAO,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;QASD,YAAY,CAAC,OAAe,EAAE,OAAe;YACzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;QACrD,CAAC;KAEJ,CAAC;IAEF,OAAS,OAAO,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/HTTPTool.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | let HTTPTool = { 12 | setCookie: function (name, value, iDay) { 13 | let oDate = new Date(); 14 | oDate.setDate(oDate.getDate() + iDay); 15 | document.cookie = name + '=' + value + ';expires=' + oDate; 16 | }, 17 | getCookie: function (name) { 18 | let arr = document.cookie.split('; '); 19 | for (let i = 0; i < arr.length; i++) { 20 | let arr2 = arr[i].split('='); 21 | if (arr2[0] === name) { 22 | return arr2[1]; 23 | } 24 | } 25 | return ''; 26 | }, 27 | removeCookie: function (name) { 28 | this.setCookie(name, '1', -1); 29 | }, 30 | currentURL: () => window.location.href, 31 | isPc: () => !navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i) 32 | }; 33 | return HTTPTool; 34 | }); 35 | //# sourceMappingURL=HTTPTool.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/HTTPTool.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"HTTPTool.js","sourceRoot":"","sources":["HTTPTool.ts"],"names":[],"mappings":";;;;;;;;;;IAIA,IAAI,QAAQ,GAAG;QAGP,SAAS,EAAE,UAAU,IAAY,EAAE,KAAa,EAAE,IAAY;YAC1D,IAAI,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YACtC,QAAQ,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,WAAW,GAAG,KAAK,CAAC;QAC/D,CAAC;QAGD,SAAS,EAAE,UAAU,IAAY;YAC7B,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;oBAClB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;iBAClB;aACJ;YAED,OAAO,EAAE,CAAC;QACd,CAAC;QAGD,YAAY,EAAE,UAAU,IAAY;YAChC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QAkCD,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI;QAEtC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,iJAAiJ,CAAC;KAE5L,CACJ;IAED,OAAS,QAAQ,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/SafeTool.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"SafeTool.js","sourceRoot":"","sources":["SafeTool.ts"],"names":[],"mappings":";;;;;;;;;;IAIA,IAAI,QAAQ,GAAG;QAMX,YAAY,CAAC,GAAW;YACpB,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;YACf,IAAI,MAAM,GAAG,kDAAkD,CAAC;YAEhE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC1B,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;aAC5D;YACD,OAAO,GAAG,CAAC;QACf,CAAC;QAMD,YAAY;YACR,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,IAAI,GAAG,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;gBAC1E,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC1C,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvB,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QAChB,CAAC;QAGD,QAAQ,EAAE,UAAU,GAAW;YAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChB,OAAO,KAAK,CAAC;aAChB;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACnB,KAAK,EAAE,CAAC;aACX;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACnB,KAAK,EAAE,CAAC;aACX;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACnB,KAAK,EAAE,CAAC;aACX;YACD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACtB,KAAK,EAAE,CAAC;aACX;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;KACJ,CAAC;IAEF,OAAS,QAAQ,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/TreeTool.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"TreeTool.js","sourceRoot":"","sources":["TreeTool.ts"],"names":[],"mappings":";;;;;;;;;;;;IAIA,SAAS,UAAU,CAAC,EAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,WAAW,GAAG,WAAW,EAAE,SAAS,GAAG,UAAU,EAAM;QAC3F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO;QAC/C,IAAI,GAAG,GAAQ,EAAE,CAAC;QAClB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAE7C,IAAI,KAAK,GAAU,EAAE,CAAC;QACtB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACf,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACtC,IAAI,MAAM,EAAE;gBACR,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9D;iBAAM;gBACH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpB;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACjB,CAAC;IAcO,gCAAU;IAZlB,SAAS,WAAW,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,GAAG,IAAI,EAAE,WAAW,GAAG,WAAW,EAAE,SAAS,GAAG,UAAU,EAAM;QACjG,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,IAAI,CAAC,OAAO,CAAC,UAAU,IAAS;YAC5B,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;gBAChB,CAAC,GAAG,IAAI,CAAC;aACZ;iBAAM,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1E,CAAC,GAAG,WAAW,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAC,CAAC,CAAC;aAC/E;QACL,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,CAAC;IACb,CAAC;IAEmB,kCAAW"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/Source/TreeTool.ts: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | 名称:常用工具函数集合 - 树与数组的互转 3 | 作者:冯功耀 4 | ****************************************************************************/ 5 | function array2Tree({arr, idKey = 'id', parentIdKey = 'parent_id', groupName = 'children'}: any) { 6 | if (!Array.isArray(arr) || !arr.length) return; 7 | let map: any = {}; 8 | arr.forEach(item => map[item[idKey]] = item); 9 | 10 | let roots: any[] = []; 11 | arr.forEach(item => { 12 | const parent = map[item[parentIdKey]]; 13 | if (parent) { 14 | (parent[groupName] || (parent[groupName] = [])).push(item); 15 | } else { 16 | roots.push(item); 17 | } 18 | }); 19 | 20 | return roots; 21 | } 22 | 23 | function treeGetByID({Tree, id, idKey = 'id', parentIdKey = 'parent_id', groupName = 'children'}: any) { 24 | let o = {}; 25 | Tree.forEach(function (item: any) { 26 | if (item.id === id) { 27 | o = item; 28 | } else if (typeof item[groupName] === 'string' && item[groupName].length > 0) { 29 | o = treeGetByID({Tree: item[groupName], id, idKey, parentIdKey, groupName}); 30 | } 31 | }); 32 | return o; 33 | } 34 | 35 | export {array2Tree, treeGetByID}; 36 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/index.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;IAKA,qEAA0C;IAC1C,yEAA8C;IAC9C,qEAA0C;IAC1C,yEAA8C;IAC9C,uEAA4C;IAC5C,qEAA0C;IAC1C,uEAA4C;IAC5C,uEAA4C;IAC5C,uEAA4C;IAC5C,2EAAgD;IAEhD,iEAAqC;IAErC,IAAI,KAAK,GAAG;QACR,OAAO,EAAP,oBAAO;QACP,SAAS,EAAT,sBAAS;QACT,OAAO,EAAP,oBAAO;QACP,SAAS,EAAT,sBAAS;QACT,QAAQ,EAAR,qBAAQ;QACR,OAAO,EAAP,oBAAO;QACP,QAAQ,EAAR,qBAAQ;QACR,QAAQ,EAAR,qBAAQ;QACR,QAAQ,EAAR,qBAAQ;QACR,UAAU,EAAV,uBAAU;QACV,IAAI,EAAJ,kBAAI;KACP,CAAC;IAGF,OAAS,KAAK,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/YaoDo/index.ts: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | 名称:常用工具函数集合 3 | 作者:冯功耀 4 | 最后修改时间:2021 年 3 月 13 日 5 | ****************************************************************************/ 6 | import ArrTool from './Source/ArrTool.js'; 7 | import awaitWrap from './Source/AsyncTool.js'; 8 | import BOMTool from './Source/BOMTool.js'; 9 | import ColorTool from './Source/ColorTool.js'; 10 | import DateTool from './Source/DateTool.js'; 11 | import GISTool from './Source/GISTool.js'; 12 | import HTTPTool from './Source/HTTPTool.js'; 13 | import MathTool from './Source/MathTool.js'; 14 | import SafeTool from './Source/SafeTool.js'; 15 | import StringTool from './Source/StringTool.js'; 16 | import {array2Tree, treeGetByID} from './Source/TreeTool.js'; 17 | import Util from './Source/Utils.js'; 18 | 19 | let YaoDo = { 20 | ArrTool, 21 | awaitWrap, 22 | BOMTool, 23 | ColorTool, 24 | DateTool, 25 | GISTool, 26 | HTTPTool, 27 | MathTool, 28 | SafeTool, 29 | StringTool, 30 | Util 31 | }; 32 | 33 | 34 | export = YaoDo; 35 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/arrChunk.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | function chunk(arr, size) { 12 | let result = []; 13 | for (let i = 0, len = arr.length; i < len; i += size) { 14 | result.push(arr.slice(i, i + size)); 15 | } 16 | return result; 17 | } 18 | return chunk; 19 | }); 20 | //# sourceMappingURL=arrChunk.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/arrChunk.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"arrChunk.js","sourceRoot":"","sources":["arrChunk.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,SAAS,KAAK,CAAC,GAAO,EAAE,IAAY;QAChC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;YAClD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;SACvC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,OAAS,KAAK,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/arrChunk.ts: -------------------------------------------------------------------------------- 1 | function chunk(arr: [], size: number) { 2 | let result = []; 3 | for (let i = 0, len = arr.length; i < len; i += size) { 4 | result.push(arr.slice(i, i + size)); 5 | } 6 | return result; 7 | } 8 | 9 | export = chunk; 10 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/awaitWrap.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const awaitWrap = (promise) => { 12 | return promise 13 | .then(data => [null, data]) 14 | .catch(err => [err, null]); 15 | }; 16 | return awaitWrap; 17 | }); 18 | //# sourceMappingURL=awaitWrap.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/awaitWrap.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"awaitWrap.js","sourceRoot":"","sources":["awaitWrap.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,SAAS,GAAG,CAAC,OAAqB,EAAE,EAAE;QACxC,OAAO,OAAO;aACT,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAC1B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,OAAS,SAAS,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/awaitWrap.ts: -------------------------------------------------------------------------------- 1 | const awaitWrap = (promise: Promise) => { 2 | return promise 3 | .then(data => [null, data]) 4 | .catch(err => [err, null]); 5 | }; 6 | 7 | export = awaitWrap; 8 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/createAesAPair.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | let NodeRSA = require('node-rsa'); 12 | function createAesAPair(b = 1024) { 13 | const key = new NodeRSA({ b }); 14 | const publicDer = key.exportKey('pkcs8-public-pem'); 15 | const privateDer = key.exportKey('pkcs8-private-pem'); 16 | return { privateDer, publicDer }; 17 | } 18 | return createAesAPair; 19 | }); 20 | //# sourceMappingURL=createAesAPair.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/createAesAPair.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"createAesAPair.js","sourceRoot":"","sources":["createAesAPair.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,IAAI,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAGlC,SAAS,cAAc,CAAC,CAAC,GAAG,IAAI;QAC5B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAMtD,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,CAAC;IACnC,CAAC;IAED,OAAS,cAAc,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/createAesAPair.ts: -------------------------------------------------------------------------------- 1 | let NodeRSA = require('node-rsa'); 2 | 3 | 4 | function createAesAPair(b = 1024) { 5 | const key = new NodeRSA({b}); //生成512, 1024, 2048位的密钥 6 | const publicDer = key.exportKey('pkcs8-public-pem'); //公钥 7 | const privateDer = key.exportKey('pkcs8-private-pem');//私钥 8 | // 'pkcs1' — public key starts from '-----BEGIN RSA PUBLIC KEY-----' header and private key starts from '-----BEGIN RSA PRIVATE KEY-----' header 9 | // 'pkcs8' — public key starts from '-----BEGIN PUBLIC KEY-----' header and private key starts from '-----BEGIN PRIVATE KEY-----' header 10 | // 'pem'— 带有页眉和页脚的 Base64 编码字符串。默认使用。 11 | // 'der' — 二进制编码的密钥数据。 12 | 13 | return {privateDer, publicDer}; 14 | } 15 | 16 | export = createAesAPair; 17 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/getServerInfo.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const os = require('os'); 12 | const { machineId, machineIdSync } = require('node-machine-id'); 13 | function getServerInfo() { 14 | return { 15 | 'arch': os.arch(), 16 | 'PCName': os.hostname(), 17 | 'memorySize': Math.ceil(os.totalmem() / 1024 / 1024 / 1024) + 'GB', 18 | 'operatingSystem': os.type(), 19 | 'CPU': os.cpus()[0].model + ' X ' + os.cpus().length, 20 | 'machineId': machineIdSync({ original: true }) 21 | }; 22 | } 23 | return getServerInfo; 24 | }); 25 | //# sourceMappingURL=getServerInfo.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/getServerInfo.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"getServerInfo.js","sourceRoot":"","sources":["getServerInfo.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,EAAC,SAAS,EAAE,aAAa,EAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE9D,SAAS,aAAa;QAClB,OAAO;YACH,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE;YACjB,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI;YAClE,iBAAiB,EAAE,EAAE,CAAC,IAAI,EAAE;YAC5B,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM;YACpD,WAAW,EAAE,aAAa,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;SAC/C,CAAC;IACN,CAAC;IAGD,OAAS,aAAa,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/getServerInfo.ts: -------------------------------------------------------------------------------- 1 | const os = require('os'); 2 | const {machineId, machineIdSync} = require('node-machine-id'); 3 | 4 | function getServerInfo() { 5 | return { 6 | 'arch': os.arch(), 7 | 'PCName': os.hostname(), 8 | 'memorySize': Math.ceil(os.totalmem() / 1024 / 1024 / 1024) + 'GB', 9 | 'operatingSystem': os.type(), 10 | 'CPU': os.cpus()[0].model + ' X ' + os.cpus().length, 11 | 'machineId': machineIdSync({original: true}) 12 | }; 13 | } 14 | 15 | 16 | export = getServerInfo; 17 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/portIsOccupied.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const net = require('net'); 12 | const colors = require('colors-console'); 13 | async function portIsOccupied(port, log = true) { 14 | const server = net.createServer().listen(port); 15 | return new Promise((resolve, reject) => { 16 | server.on('listening', () => { 17 | log && console.log(colors('green', `您可以使用该端口: ${port}`)); 18 | server.close(); 19 | resolve(port); 20 | }); 21 | server.on('error', async (err) => { 22 | if (err.code === 'EADDRINUSE') { 23 | resolve(await portIsOccupied(port + 1, log)); 24 | log && console.log(colors('red', `端口已被占用: ${port}`)); 25 | } 26 | else { 27 | reject(err); 28 | } 29 | }); 30 | }); 31 | } 32 | return portIsOccupied; 33 | }); 34 | //# sourceMappingURL=portIsOccupied.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/portIsOccupied.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"portIsOccupied.js","sourceRoot":"","sources":["portIsOccupied.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEzC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,GAAG,GAAG,IAAI;QAClD,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;gBACxB,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;gBACzD,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;gBAClC,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE;oBAC3B,OAAO,CAAC,MAAM,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAE7C,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;iBACxD;qBAAM;oBACH,MAAM,CAAC,GAAG,CAAC,CAAC;iBACf;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAS,cAAc,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/portIsOccupied.ts: -------------------------------------------------------------------------------- 1 | const net = require('net'); 2 | const colors = require('colors-console'); 3 | 4 | async function portIsOccupied(port: number, log = true) { 5 | const server = net.createServer().listen(port); 6 | return new Promise((resolve, reject) => { 7 | server.on('listening', () => { 8 | log && console.log(colors('green', `您可以使用该端口: ${port}`)); 9 | server.close(); 10 | resolve(port); 11 | }); 12 | 13 | server.on('error', async (err: any) => { 14 | if (err.code === 'EADDRINUSE') { 15 | resolve(await portIsOccupied(port + 1, log)); 16 | // 占用端口号+1 17 | log && console.log(colors('red', `端口已被占用: ${port}`)); 18 | } else { 19 | reject(err); 20 | } 21 | }); 22 | }); 23 | } 24 | 25 | export = portIsOccupied; 26 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/randomString.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | function randomString(min, max) { 12 | let str = ''; 13 | let arr = [ 14 | '!', '@', '#', '$', '%', '&', '*', '(', ')', '_', 15 | '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 16 | 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 17 | 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 18 | 'w', 'x', 'y', 'z', 19 | 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 20 | 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 21 | 'W', 'X', 'Y', 'Z' 22 | ]; 23 | let range = Math.round(Math.random() * (max - min)) + min; 24 | for (let i = 0; i < range; i++) { 25 | let pos = Math.round(Math.random() * (arr.length - 1)); 26 | str += arr[pos]; 27 | } 28 | return str; 29 | } 30 | return randomString; 31 | }); 32 | //# sourceMappingURL=randomString.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/randomString.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"randomString.js","sourceRoot":"","sources":["randomString.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,SAAS,YAAY,CAAC,GAAW,EAAE,GAAW;QAC1C,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,GAAG;YACN,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YAChD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YAChD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YACrD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YACrD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YAClB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YACrD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YACrD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;SACrB,CAAC;QAEF,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACvD,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;SACnB;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAS,YAAY,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/randomString.ts: -------------------------------------------------------------------------------- 1 | function randomString(min: number, max: number) { 2 | let str = ''; 3 | let arr = [ 4 | '!', '@', '#', '$', '%', '&', '*', '(', ')', '_', 5 | '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 6 | 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 7 | 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 8 | 'w', 'x', 'y', 'z', 9 | 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 10 | 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 11 | 'W', 'X', 'Y', 'Z' 12 | ]; 13 | 14 | let range = Math.round(Math.random() * (max - min)) + min; 15 | for (let i = 0; i < range; i++) { 16 | let pos = Math.round(Math.random() * (arr.length - 1)); 17 | str += arr[pos]; 18 | } 19 | return str; 20 | } 21 | 22 | export = randomString; 23 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/sleep.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | function sleep(ms = 100) { 12 | return new Promise(resolve => setTimeout(resolve, ms)); 13 | } 14 | return sleep; 15 | }); 16 | //# sourceMappingURL=sleep.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/sleep.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"sleep.js","sourceRoot":"","sources":["sleep.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,SAAS,KAAK,CAAC,KAAa,GAAG;QAC3B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,OAAS,KAAK,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/lib/sleep.ts: -------------------------------------------------------------------------------- 1 | function sleep(ms: number = 100) { 2 | return new Promise(resolve => setTimeout(resolve, ms)); 3 | } 4 | 5 | export = sleep; 6 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/clientMiddleWare.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"clientMiddleWare.js","sourceRoot":"","sources":["clientMiddleWare.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEnD,SAAS,gBAAgB,CAAC,GAAQ;QAC9B,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAGtB,UAAU,CAAC,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAEhD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAC,EAAE,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;QAE/B,cAAc,CAAC,GAAG,CAAC,CAAC;QACpB,SAAS,CAAC,GAAG,CAAC,CAAC;QAGf,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAGtB,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QAGnE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QAChC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,OAAS,gBAAgB,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/clientMiddleWare.ts: -------------------------------------------------------------------------------- 1 | const cors = require('koa2-cors'); 2 | const compress = require('koa-compress'); 3 | const bodyParser = require('koa-bodyparser'); 4 | const resourcesProxy = require('./proxy/resourcesProxy.js'); 5 | const portProxy = require('./proxy/portProxy.js'); 6 | const errHandler = require('./lib/errHandler.js'); 7 | const appFileRoutes = require('../routes/AppFileRoutes.js'); 8 | const cacheRoutes = require('../routes/CacheRoutes.js'); 9 | const DBRoutes = require('../routes/DBRoutes.js'); 10 | const EncryptRoutes = require('../routes/EncryptRoutes.js'); 11 | const configTool = require('../com/configTool.js'); 12 | 13 | function clientMiddleWare(app: any) { 14 | app.use(errHandler()); 15 | 16 | // 允许跨域请求 17 | configTool.config.clientCORS && app.use(cors()); 18 | 19 | app.use(compress({br: false})); 20 | 21 | resourcesProxy(app); 22 | portProxy(app); 23 | 24 | // 最后再进行 post 请求格式化 25 | app.use(bodyParser()); 26 | 27 | // 数据转发缓存服务 28 | configTool.config.CacheSave.state && app.use(cacheRoutes.routes()); 29 | 30 | 31 | app.use(appFileRoutes.routes()); 32 | app.use(DBRoutes.routes()); 33 | app.use(EncryptRoutes.routes()); 34 | } 35 | 36 | export = clientMiddleWare; 37 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/lib/errHandler.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | function errHandler() { 12 | return async (ctx, next) => { 13 | try { 14 | await next(); 15 | } 16 | catch (error) { 17 | console.log('服务器异常', error); 18 | ctx.response.body = { 19 | code: '00000', message: '服务器异常', desc: error.message 20 | }; 21 | } 22 | if (parseInt(ctx.status) === 404) { 23 | ctx.response.body = { 24 | code: '404', message: '404', desc: ctx.response.message 25 | }; 26 | } 27 | }; 28 | } 29 | return errHandler; 30 | }); 31 | //# sourceMappingURL=errHandler.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/lib/errHandler.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"errHandler.js","sourceRoot":"","sources":["errHandler.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,SAAS,UAAU;QACf,OAAO,KAAK,EAAE,GAAQ,EAAE,IAAc,EAAE,EAAE;YACtC,IAAI;gBACA,MAAM,IAAI,EAAE,CAAC;aAChB;YAAC,OAAO,KAAU,EAAE;gBACjB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC5B,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG;oBAChB,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO;iBACvD,CAAC;aACL;YAGD,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE;gBAC9B,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG;oBAChB,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO;iBAC1D,CAAC;aACL;QACL,CAAC,CAAC;IACN,CAAC;IAGD,OAAS,UAAU,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/lib/errHandler.ts: -------------------------------------------------------------------------------- 1 | function errHandler() { 2 | return async (ctx: any, next: Function) => { 3 | try { 4 | await next(); 5 | } catch (error: any) { 6 | console.log('服务器异常', error); 7 | ctx.response.body = { 8 | code: '00000', message: '服务器异常', desc: error.message 9 | }; 10 | } 11 | 12 | 13 | if (parseInt(ctx.status) === 404) { 14 | ctx.response.body = { 15 | code: '404', message: '404', desc: ctx.response.message 16 | }; 17 | } 18 | }; 19 | } 20 | 21 | 22 | export = errHandler; 23 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/manaMiddleWare.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const errHandler = require('./lib/errHandler'); 12 | const cors = require('koa2-cors'); 13 | const bodyParser = require('koa-bodyparser'); 14 | const ManaRoutes = require('../routes/ManaRoutes.js'); 15 | function manaMiddleWare(app) { 16 | app.use(errHandler()); 17 | app.use(cors()); 18 | app.use(bodyParser()); 19 | app.use(ManaRoutes.routes()); 20 | } 21 | return manaMiddleWare; 22 | }); 23 | //# sourceMappingURL=manaMiddleWare.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/manaMiddleWare.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"manaMiddleWare.js","sourceRoot":"","sources":["manaMiddleWare.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAGtD,SAAS,cAAc,CAAC,GAAQ;QAC5B,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACtB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAChB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAEtB,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;IAGD,OAAS,cAAc,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/manaMiddleWare.ts: -------------------------------------------------------------------------------- 1 | const errHandler = require('./lib/errHandler'); 2 | const cors = require('koa2-cors'); 3 | const bodyParser = require('koa-bodyparser'); 4 | const ManaRoutes = require('../routes/ManaRoutes.js'); 5 | 6 | 7 | function manaMiddleWare(app: any) { 8 | app.use(errHandler()); 9 | app.use(cors()); 10 | app.use(bodyParser()); 11 | 12 | app.use(ManaRoutes.routes()); 13 | } 14 | 15 | 16 | export = manaMiddleWare; 17 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/proxy/portProxy.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const Proxy = require('koa-proxy-middleware'); 12 | const configTool = require('../../com/configTool.js'); 13 | function portProxy(app) { 14 | let resources = configTool.config.prefixHTTPList || []; 15 | for (let i = 0; i < resources.length; i++) { 16 | const proxy = new Proxy({ 17 | proxies: [{ host: resources[i].path, context: resources[i].route.replaceAll('/', '') }] 18 | }); 19 | app.use(proxy); 20 | console.log(`【HTTP 转发代理】:URL:【${resources[i].route}】,磁盘路径:【${resources[i].path}】`); 21 | } 22 | } 23 | return portProxy; 24 | }); 25 | //# sourceMappingURL=portProxy.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/proxy/portProxy.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"portProxy.js","sourceRoot":"","sources":["portProxy.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEtD,SAAS,SAAS,CAAC,GAAQ;QACvB,IAAI,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC;QACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;gBACpB,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,EAAC,CAAC;aACxF,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,oBAAoB,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;SACtF;IACL,CAAC;IAGD,OAAS,SAAS,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/proxy/portProxy.ts: -------------------------------------------------------------------------------- 1 | const Proxy = require('koa-proxy-middleware'); 2 | const configTool = require('../../com/configTool.js'); 3 | 4 | function portProxy(app: any) { 5 | let resources = configTool.config.prefixHTTPList || []; 6 | for (let i = 0; i < resources.length; i++) { 7 | const proxy = new Proxy({ 8 | proxies: [{host: resources[i].path, context: resources[i].route.replaceAll('/', '')}] 9 | }); 10 | app.use(proxy); 11 | console.log(`【HTTP 转发代理】:URL:【${resources[i].route}】,磁盘路径:【${resources[i].path}】`); 12 | } 13 | } 14 | 15 | 16 | export = portProxy; 17 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/proxy/resourcesProxy.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const koaStatic = require('koa-static'); 12 | const koaMount = require('koa-mount'); 13 | const path = require('path'); 14 | const configTool = require('../../com/configTool.js'); 15 | function resourcesProxy(app) { 16 | console.log('configTool.wwwPath: ' + configTool.wwwPath); 17 | app.use(koaStatic(configTool.wwwPath), { defer: true }); 18 | app.use(koaMount('/.well-known/pki-validation', koaStatic(path.join(configTool.wwwPath, '/.well-known/pki-validation')))); 19 | app.use(koaMount('/cacheServer', koaStatic(path.join(configTool.appBasePath, '/temp/fileOut')))); 20 | } 21 | return resourcesProxy; 22 | }); 23 | //# sourceMappingURL=resourcesProxy.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/proxy/resourcesProxy.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"resourcesProxy.js","sourceRoot":"","sources":["resourcesProxy.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEtD,SAAS,cAAc,CAAC,GAAQ;QAC5B,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACzD,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;QAEtD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,6BAA6B,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1H,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IACrG,CAAC;IAGD,OAAS,cAAc,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/proxy/resourcesProxy.ts: -------------------------------------------------------------------------------- 1 | const koaStatic = require('koa-static'); 2 | const koaMount = require('koa-mount'); 3 | const path = require('path'); 4 | const configTool = require('../../com/configTool.js'); 5 | 6 | function resourcesProxy(app: any) { 7 | console.log('configTool.wwwPath: ' + configTool.wwwPath); 8 | app.use(koaStatic(configTool.wwwPath), {defer: true}); 9 | // 支持读取 app.zerossl.com 颁发的 https 证书 10 | app.use(koaMount('/.well-known/pki-validation', koaStatic(path.join(configTool.wwwPath, '/.well-known/pki-validation')))); 11 | app.use(koaMount('/cacheServer', koaStatic(path.join(configTool.appBasePath, '/temp/fileOut')))); 12 | } 13 | 14 | 15 | export = resourcesProxy; 16 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/proxy/serverProxy.js: -------------------------------------------------------------------------------- 1 | var __importDefault = (this && this.__importDefault) || function (mod) { 2 | return (mod && mod.__esModule) ? mod : { "default": mod }; 3 | }; 4 | (function (factory) { 5 | if (typeof module === "object" && typeof module.exports === "object") { 6 | var v = factory(require, exports); 7 | if (v !== undefined) module.exports = v; 8 | } 9 | else if (typeof define === "function" && define.amd) { 10 | define(["require", "exports", "../../routes/AppFileRoutes.js", "../../routes/CacheRoutes.js", "../../routes/DBRoutes.js"], factory); 11 | } 12 | })(function (require, exports) { 13 | "use strict"; 14 | const AppFileRoutes_js_1 = __importDefault(require("../../routes/AppFileRoutes.js")); 15 | const CacheRoutes_js_1 = __importDefault(require("../../routes/CacheRoutes.js")); 16 | const DBRoutes_js_1 = __importDefault(require("../../routes/DBRoutes.js")); 17 | function serverProxy(app) { 18 | app.use(AppFileRoutes_js_1.default.routes()); 19 | app.use(CacheRoutes_js_1.default.routes()); 20 | app.use(DBRoutes_js_1.default.routes()); 21 | } 22 | return serverProxy; 23 | }); 24 | //# sourceMappingURL=serverProxy.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/proxy/serverProxy.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"serverProxy.js","sourceRoot":"","sources":["serverProxy.ts"],"names":[],"mappings":";;;;;;;;;;;;;IAAA,qFAA0D;IAC1D,iFAAsD;IACtD,2EAAgD;IAGhD,SAAS,WAAW,CAAC,GAAQ;QACzB,GAAG,CAAC,GAAG,CAAC,0BAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QAChC,GAAG,CAAC,GAAG,CAAC,wBAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9B,GAAG,CAAC,GAAG,CAAC,qBAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/B,CAAC;IAGD,OAAS,WAAW,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/middleware/proxy/serverProxy.ts: -------------------------------------------------------------------------------- 1 | import appFileRoutes from '../../routes/AppFileRoutes.js'; 2 | import cacheRoutes from '../../routes/CacheRoutes.js'; 3 | import DBRoutes from '../../routes/DBRoutes.js'; 4 | 5 | 6 | function serverProxy(app: any) { 7 | app.use(appFileRoutes.routes()); 8 | app.use(cacheRoutes.routes()); 9 | app.use(DBRoutes.routes()); 10 | } 11 | 12 | 13 | export = serverProxy; 14 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/CesiumTerrain/access_token.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const Cesium = require('cesium/Build/Cesium/index.cjs'); 12 | let access_token = Cesium.Ion.defaultAccessToken; 13 | return access_token; 14 | }); 15 | //# sourceMappingURL=access_token.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/CesiumTerrain/access_token.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"access_token.js","sourceRoot":"","sources":["access_token.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAExD,IAAI,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAEjD,OAAS,YAAY,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/CesiumTerrain/access_token.ts: -------------------------------------------------------------------------------- 1 | const Cesium = require('cesium/Build/Cesium/index.cjs'); 2 | 3 | let access_token = Cesium.Ion.defaultAccessToken; 4 | 5 | export = access_token; 6 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/MapboxTile/access_token.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | let access_token = 'pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXFhYTA2bTMyeW44ZG0ybXBkMHkifQ.gUGbDOPUN1v1fTs5SeOR4A'; 12 | return access_token; 13 | }); 14 | //# sourceMappingURL=access_token.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/MapboxTile/access_token.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"access_token.js","sourceRoot":"","sources":["access_token.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,IAAI,YAAY,GAAG,0FAA0F,CAAC;IAE9G,OAAS,YAAY,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/MapboxTile/access_token.ts: -------------------------------------------------------------------------------- 1 | let access_token = 'pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXFhYTA2bTMyeW44ZG0ybXBkMHkifQ.gUGbDOPUN1v1fTs5SeOR4A'; 2 | 3 | export = access_token; 4 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/Util/initDB.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const DBTool = require('../../../com/DBTool/DBTool.js'); 12 | async function initDB(DBName) { 13 | if (!await DBTool.HasDB(DBName)) { 14 | let dbTool = new DBTool(DBName); 15 | await dbTool.connect(); 16 | await dbTool.close(); 17 | } 18 | } 19 | return initDB; 20 | }); 21 | //# sourceMappingURL=initDB.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/Util/initDB.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"initDB.js","sourceRoot":"","sources":["initDB.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAExD,KAAK,UAAU,MAAM,CAAC,MAAc;QAChC,IAAI,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC7B,IAAI,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;SACxB;IACL,CAAC;IAED,OAAS,MAAM,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/Util/initDB.ts: -------------------------------------------------------------------------------- 1 | const DBTool = require('../../../com/DBTool/DBTool.js'); 2 | 3 | async function initDB(DBName: string) { 4 | if (!await DBTool.HasDB(DBName)) { 5 | let dbTool = new DBTool(DBName); 6 | await dbTool.connect(); 7 | await dbTool.close(); 8 | } 9 | } 10 | 11 | export = initDB; 12 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/Util/readFromDB.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const { openDB } = require('../../../com/DBTool/DBConnectTool.js'); 12 | const DBTool = require('../../../com/DBTool/DBTool.js'); 13 | async function readFromDB({ DBName, relativePath, err, buffer, dataSource }) { 14 | if (!buffer) { 15 | let file; 16 | if (await DBTool.HasDB(DBName)) { 17 | let dbTool = await openDB(DBName); 18 | file = await dbTool.getFileByFullPath(relativePath); 19 | } 20 | if (file) { 21 | err = null; 22 | buffer = file.file_data; 23 | dataSource = 'DB'; 24 | } 25 | } 26 | return [err, buffer, dataSource]; 27 | } 28 | return readFromDB; 29 | }); 30 | //# sourceMappingURL=readFromDB.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/Util/readFromDB.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"readFromDB.js","sourceRoot":"","sources":["readFromDB.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,EAAC,MAAM,EAAC,GAAG,OAAO,CAAC,sCAAsC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAExD,KAAK,UAAU,UAAU,CAAC,EAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAM;QAC1E,IAAI,CAAC,MAAM,EAAE;YACT,IAAI,IAAI,CAAC;YAET,IAAI,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;gBAC5B,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;gBAClC,IAAI,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;aACvD;YAED,IAAI,IAAI,EAAE;gBACN,GAAG,GAAG,IAAI,CAAC;gBACX,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;gBACxB,UAAU,GAAG,IAAI,CAAC;aACrB;SACJ;QAED,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,OAAS,UAAU,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/Util/readFromDB.ts: -------------------------------------------------------------------------------- 1 | const {openDB} = require('../../../com/DBTool/DBConnectTool.js'); 2 | const DBTool = require('../../../com/DBTool/DBTool.js'); 3 | 4 | async function readFromDB({DBName, relativePath, err, buffer, dataSource}: any) { 5 | if (!buffer) { 6 | let file; 7 | 8 | if (await DBTool.HasDB(DBName)) { 9 | let dbTool = await openDB(DBName); 10 | file = await dbTool.getFileByFullPath(relativePath); 11 | } 12 | 13 | if (file) { 14 | err = null; 15 | buffer = file.file_data; 16 | dataSource = 'DB'; 17 | } 18 | } 19 | 20 | return [err, buffer, dataSource]; 21 | } 22 | 23 | export = readFromDB; 24 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/Util/readFromNet.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const axios = require('axios'); 12 | async function readFromNet({ url, headers, err, buffer, dataSource }) { 13 | if (!buffer) { 14 | await axios.get(url, { 15 | headers: headers || {}, 16 | responseType: 'arraybuffer' 17 | }).then((res) => { 18 | dataSource = 'Net'; 19 | buffer = res.data; 20 | err = null; 21 | }).catch((reqErr) => { 22 | err = reqErr; 23 | }); 24 | } 25 | return [err, buffer, dataSource]; 26 | } 27 | return readFromNet; 28 | }); 29 | //# sourceMappingURL=readFromNet.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/Util/readFromNet.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"readFromNet.js","sourceRoot":"","sources":["readFromNet.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/B,KAAK,UAAU,WAAW,CAAC,EAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAM;QACnE,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;gBACjB,OAAO,EAAE,OAAO,IAAI,EAAE;gBACtB,YAAY,EAAE,aAAa;aAC9B,CAAC,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACjB,UAAU,GAAG,KAAK,CAAC;gBACnB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC;gBAClB,GAAG,GAAG,IAAI,CAAC;YACf,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAW,EAAE,EAAE;gBACrB,GAAG,GAAG,MAAM,CAAC;YACjB,CAAC,CAAC,CAAC;SACN;QACD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;IAGD,OAAS,WAAW,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/Util/readFromNet.ts: -------------------------------------------------------------------------------- 1 | const axios = require('axios'); 2 | 3 | async function readFromNet({url, headers, err, buffer, dataSource}: any) { 4 | if (!buffer) { 5 | await axios.get(url, { 6 | headers: headers || {}, 7 | responseType: 'arraybuffer' 8 | }).then((res: any) => { 9 | dataSource = 'Net'; 10 | buffer = res.data; 11 | err = null; 12 | }).catch((reqErr: any) => { 13 | err = reqErr; 14 | }); 15 | } 16 | return [err, buffer, dataSource]; 17 | } 18 | 19 | 20 | export = readFromNet; 21 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/Util/saveToDB.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"saveToDB.js","sourceRoot":"","sources":["saveToDB.ts"],"names":[],"mappings":";;;;;;;;;;;;;IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAC,MAAM,EAAC,GAAG,OAAO,CAAC,sCAAsC,CAAC,CAAC;IACjE,wFAA6D;IAE7D,KAAK,UAAU,QAAQ,CAAC,EAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAM,EAAE,YAAY,GAAG,KAAK;QAC7E,IAAI,MAAM,IAAI,YAAY,IAAI,MAAM,EAAE;YAClC,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAElC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,wBAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/D,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;oBACrB,YAAY,EAAE,YAAY;oBAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;oBACrC,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oBACxC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBACrE,IAAI,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;SAC7B;IACL,CAAC;IAED,OAAS,QAAQ,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/Util/saveToDB.ts: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const {openDB} = require('../../../com/DBTool/DBConnectTool.js'); 3 | import zlibPromise from '../../../lib/FSTool/zlibPromise.js'; 4 | 5 | async function saveToDB({DBName, relativePath, buffer}: any, needCompress = false) { 6 | if (DBName && relativePath && buffer) { 7 | let dbTool = await openDB(DBName); 8 | 9 | buffer = needCompress ? await zlibPromise.zip(buffer) : buffer; 10 | await dbTool.insertData([{ 11 | relativePath: relativePath, 12 | fileName: path.basename(relativePath), 13 | buffer: buffer, 14 | compressType: needCompress ? 'gzip' : '', 15 | md5: require('crypto').createHash('md5').update(buffer).digest('hex'), 16 | size: buffer.length 17 | }], null, 'large', false); 18 | } 19 | } 20 | 21 | export = saveToDB; 22 | -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/Util/saveToFile.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof module === "object" && typeof module.exports === "object") { 3 | var v = factory(require, exports); 4 | if (v !== undefined) module.exports = v; 5 | } 6 | else if (typeof define === "function" && define.amd) { 7 | define(["require", "exports"], factory); 8 | } 9 | })(function (require, exports) { 10 | "use strict"; 11 | const fsPromises = require('fs-promise'); 12 | const path = require('path'); 13 | const fs = require('fs'); 14 | async function saveToFile(fileSavePath, buffer) { 15 | if (fileSavePath && buffer) { 16 | await fsPromises.ensureDir(path.dirname(fileSavePath)); 17 | fs.writeFileSync(fileSavePath, buffer); 18 | } 19 | } 20 | return saveToFile; 21 | }); 22 | //# sourceMappingURL=saveToFile.js.map -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/Util/saveToFile.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"saveToFile.js","sourceRoot":"","sources":["saveToFile.ts"],"names":[],"mappings":";;;;;;;;;;IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB,KAAK,UAAU,UAAU,CAAC,YAAoB,EAAE,MAAc;QAC1D,IAAI,YAAY,IAAI,MAAM,EAAE;YACxB,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;YACvD,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;SAC1C;IACL,CAAC;IAED,OAAS,UAAU,CAAC"} -------------------------------------------------------------------------------- /Projects/ServerPro/src/service/GISServer/Util/saveToFile.ts: -------------------------------------------------------------------------------- 1 | const fsPromises = require('fs-promise'); 2 | const path = require('path'); 3 | const fs = require('fs'); 4 | 5 | async function saveToFile(fileSavePath: string, buffer: Buffer) { 6 | if (fileSavePath && buffer) { 7 | await fsPromises.ensureDir(path.dirname(fileSavePath)); 8 | fs.writeFileSync(fileSavePath, buffer); 9 | } 10 | } 11 | 12 | export = saveToFile; 13 | -------------------------------------------------------------------------------- /Projects/ServerPro/www/Resources/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/ServerPro/www/Resources/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /Projects/ServerPro/www/Resources/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/ServerPro/www/Resources/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /Projects/ServerPro/www/Resources/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/ServerPro/www/Resources/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /Projects/ServerPro/www/Resources/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/ServerPro/www/Resources/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /Projects/ServerPro/www/Resources/framework/Bootstrap/^3.4.1/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js'); 3 | require('../../js/alert.js'); 4 | require('../../js/button.js'); 5 | require('../../js/carousel.js'); 6 | require('../../js/collapse.js'); 7 | require('../../js/dropdown.js'); 8 | require('../../js/modal.js'); 9 | require('../../js/tooltip.js'); 10 | require('../../js/popover.js'); 11 | require('../../js/scrollspy.js'); 12 | require('../../js/tab.js'); 13 | require('../../js/affix.js'); 14 | -------------------------------------------------------------------------------- /Projects/ServerPro/www/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/ServerPro/www/favicon.png -------------------------------------------------------------------------------- /Projects/ServerPro/www/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Web 服务器 6 | 7 | 8 | 9 | 10 | 11 | 19 | 20 | 21 |
22 |
23 |

Web 资源服务器启动成功!

24 |

在部署机器上,可通过 25 | WinUI-win32-x64 26 | 程序对资源库进行管理

27 |

了解更多 28 |

29 |
30 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /Projects/ServerPro/重置环境-右键管理员运行.bat: -------------------------------------------------------------------------------- 1 | net stop http -------------------------------------------------------------------------------- /Projects/WinUI/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | -------------------------------------------------------------------------------- /Projects/WinUI/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock = false 2 | -------------------------------------------------------------------------------- /Projects/WinUI/main.js: -------------------------------------------------------------------------------- 1 | // app 模块,它控制应用程序的事件生命周期。 2 | // BrowserWindow 模块,它创建和管理应用程序 窗口。 3 | const {app, BrowserWindow} = require('electron'); 4 | const WindowMana = require('./src/mainRenderer/WindowMana.js'); 5 | 6 | async function main() { 7 | // 当 Linux 和 Windows 应用在没有窗口打开时退出了,macOS 应用通常即使在没有打开任何窗口的情况下也继续运行,并且在没有窗口可用的情况下激活应用时会打开新的窗口。 8 | await app.whenReady(); 9 | await WindowMana.createWindow(); 10 | app.on('activate', function () { 11 | if (BrowserWindow.getAllWindows().length === 0) WindowMana.createWindow(); 12 | }); 13 | 14 | // 在Windows和Linux上,关闭所有窗口通常会完全退出一个应用程序。 15 | app.on('window-all-closed', function () { 16 | app.quit(); 17 | }); 18 | } 19 | 20 | main().then(); 21 | -------------------------------------------------------------------------------- /Projects/WinUI/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "winui", 3 | "version": "1.0.0", 4 | "description": "管理硬盘海量零碎文件的一个 Windows 客户端软件。 使用SQLite 的 BLOB 类型 存储 图片、文档、音乐等文件。", 5 | "main": "main.js", 6 | "scripts": { 7 | "dev": "chcp 65001 && npm run start", 8 | "start": "electron .", 9 | "build": "electron-packager . WinUI --win --out ../../Release --arch=x64 --overwrite --electron-version 23.2.1" 10 | }, 11 | "dependencies": { 12 | "koa": "^2.13.4", 13 | "koa-router": "^10.1.1", 14 | "koa-static": "^5.0.0", 15 | "koa2-cors": "^2.0.6" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Projects/WinUI/src/mainRenderer/WindowMana.js: -------------------------------------------------------------------------------- 1 | // 窗口管理器 2 | const {BrowserWindow, globalShortcut, Menu} = require('electron'); 3 | const WebServer = require('./components/WebServer.js'); 4 | 5 | 6 | let WindowMana = { 7 | mainWin: null, 8 | createWindow: async function () { 9 | this.mainWin = new BrowserWindow({ 10 | width: 1000, 11 | height: 600, 12 | resizable: false, 13 | webPreferences: {} 14 | }); 15 | 16 | // 启动内置 Web 服务器 17 | await WebServer.run(); 18 | 19 | // 载入页面 20 | await this.mainWin.loadFile('./src/webRenderer/index.html'); 21 | this.initShortcut(); 22 | Menu.setApplicationMenu(null); 23 | }, 24 | openDevTools: function () { 25 | this.mainWin.webContents.openDevTools(); 26 | }, 27 | getVersion: function () { 28 | let arr = []; 29 | for (const dependency of ['chrome', 'node', 'electron']) { 30 | arr.push(`${dependency}-version`, process.versions[dependency]); 31 | } 32 | return arr; 33 | }, 34 | initShortcut: function () { 35 | globalShortcut.register('ctrl+d', () => { 36 | WindowMana.openDevTools({mode: 'bottom'}); 37 | }); 38 | } 39 | }; 40 | 41 | 42 | module.exports = WindowMana; 43 | -------------------------------------------------------------------------------- /Projects/WinUI/src/mainRenderer/components/FileSystem.js: -------------------------------------------------------------------------------- 1 | const dialog = require('electron').dialog; 2 | const exec = require('child_process').exec; 3 | let FileSystemTool = {}; 4 | 5 | // 文件夹选取框 6 | FileSystemTool.choosePathDialog = async function () { 7 | let paths = await dialog.showOpenDialog({properties: ['openDirectory']}); 8 | let path = paths.filePaths.pop(); 9 | return path; 10 | }; 11 | 12 | // 文件选择器,加载 .sqlite3 文件 13 | FileSystemTool.chooseFileDBDialog = async function () { 14 | let paths = await dialog.showOpenDialog({ 15 | title: '打开数据库文件', 16 | filters: [{ 17 | name: 'sqlite3', 18 | extensions: ['sqlite3'] 19 | }] 20 | }); 21 | let filePath = paths.filePaths.pop(); 22 | return filePath; 23 | }; 24 | 25 | // 打开文件夹 26 | FileSystemTool.openCatalogue = async function (path) { 27 | exec(`explorer.exe /select,${path}`); 28 | }; 29 | 30 | 31 | 32 | module.exports = FileSystemTool; 33 | -------------------------------------------------------------------------------- /Projects/WinUI/src/mainRenderer/components/WebServer.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const FileSystem = require('./FileSystem.js'); 3 | const Koa = require('koa'); 4 | const koaStatic = require('koa-static'); 5 | const cors = require('koa2-cors'); 6 | const router = require('koa-router'); 7 | 8 | const hostname = '127.0.0.1'; 9 | const port = 3002; 10 | const APP = new Koa(); 11 | 12 | 13 | const sysFileRoutes = new router({prefix: '/sysFile'}); 14 | 15 | sysFileRoutes 16 | .get('/choosePath', async (ctx, next) => { 17 | ctx.set('Content-Type', 'application/json;charset=utf-8'); 18 | let choosePath = await FileSystem.choosePathDialog(); 19 | ctx.status = choosePath ? 200 : 500; 20 | ctx.body = JSON.stringify({path: choosePath}); 21 | }) 22 | .get('/openCatalogue', async (ctx, next) => { 23 | let {path:pathToOpen} = ctx.request.query; 24 | if (pathToOpen) { 25 | await FileSystem.openCatalogue(pathToOpen); 26 | ctx.status = 200; 27 | ctx.body =JSON.stringify({path: pathToOpen}); 28 | }else { 29 | ctx.status = 500; 30 | ctx.body =JSON.stringify({path: 'Error'}); 31 | } 32 | }); 33 | 34 | 35 | let WebServer = { 36 | run: async function () { 37 | APP.listen(port, function () { 38 | APP.use(koaStatic(path.join(__dirname, '../../webRenderer/')), {defer: true}); 39 | APP.use(cors()); 40 | APP.use(sysFileRoutes.routes()); 41 | console.log(`服务器运行在 http://${hostname}:${port}/`); 42 | }); 43 | } 44 | }; 45 | 46 | 47 | module.exports = WebServer; 48 | -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/index.html: -------------------------------------------------------------------------------- 1 | SQLiteFileMana 图形化操作界面
-------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/bg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/src/webRenderer/WebUI/static/bg.webp -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/fonts/element-icons.535877f.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/src/webRenderer/WebUI/static/fonts/element-icons.535877f.woff -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/fonts/element-icons.732389d.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/src/webRenderer/WebUI/static/fonts/element-icons.732389d.ttf -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/src/webRenderer/WebUI/static/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/src/webRenderer/WebUI/static/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/src/webRenderer/WebUI/static/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/src/webRenderer/WebUI/static/framework/Bootstrap/^3.4.1/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/framework/Bootstrap/^3.4.1/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/framework/jsrsasign/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | echo aaa 3 | 4 | aaa: 5 | cat \ 6 | lib/header.js \ 7 | ../jsrsasign-all-min.js \ 8 | lib/footer.js \ 9 | > lib/jsrsasign.js 10 | 11 | -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/framework/jsrsasign/lib/header.js: -------------------------------------------------------------------------------- 1 | 2 | var navigator = {}; 3 | navigator.userAgent = false; 4 | 5 | var window = {}; 6 | -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/framework/jsrsasign/lib/lib.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/src/webRenderer/WebUI/static/framework/jsrsasign/lib/lib.js -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/framework/jsrsasign/test/t_base64x.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var rs = require('../lib/jsrsasign.js'); 3 | 4 | describe("base64x", function() { 5 | describe("hextorstr", function() { 6 | it('should return aaa', function() { 7 | assert.equal("aaa", rs.hextorstr("616161")); 8 | }); 9 | }); 10 | describe("utf8tob64u, b64utoutf8", function() { 11 | it('utf8tob64u', function() { 12 | assert.equal(rs.utf8tob64u("あ"), "44GC"); 13 | assert.equal(rs.utf8tob64u("aaa"), "YWFh"); 14 | }); 15 | it('b64utoutf8', function() { 16 | assert.equal(rs.b64utoutf8("44GC"), "あ"); 17 | assert.equal(rs.b64utoutf8("YWFh"), "aaa"); 18 | }); 19 | }); 20 | }); 21 | -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/src/webRenderer/WebUI/static/icon.ico -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/img/3DTiles.1807df3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/src/webRenderer/WebUI/static/img/3DTiles.1807df3.png -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/img/bg.68ba3b6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/src/webRenderer/WebUI/static/img/bg.68ba3b6.png -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/img/computer.d8f584b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/src/webRenderer/WebUI/static/img/computer.d8f584b.png -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/js/2.437d7310967cb5e43f3b.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([2],{AqyC:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"authErr"}},[n("div",{staticClass:"jumbotron"},[n("h2",{staticStyle:{color:"#e5a13c"}},[t._v("版本过低,请升级!")]),t._v(" "),n("p",{staticStyle:{"margin-top":"20px","font-size":"20px"}},[t._v("请到码云下载最新版\n "),n("a",{attrs:{href:"https://sqlite-file-mana.oss-cn-hangzhou.aliyuncs.com/Release/WinUI-win32-x64.rar"}},[t._v("WinUI-win32-x64.exe")]),t._v("|\n "),n("a",{attrs:{href:"https://sqlite-file-mana.oss-cn-hangzhou.aliyuncs.com/Release/Server-win-x64.rar"}},[t._v("Server-win-x64.exe")]),t._v("\n ,或联系作者购买 "),n("a",{attrs:{href:"#"},on:{click:function(e){t.QQShow=!t.QQShow}}},[t._v("专业版")]),t._v(" 。\n ")]),t._v(" "),t.QQShow?n("p",[t._v("作者:望山,QQ:2394837320")]):t._e(),t._v(" "),t._m(0)])])},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("p",[e("a",{staticClass:"btn btn-primary btn-lg pull-right",attrs:{target:"_blank",href:"https://gitee.com/WangShan010/SQLiteFileMana",role:"button"}},[this._v("了解更多")])])}]};var r=n("VU/8")({name:"authErr",data:function(){return{QQShow:!1}}},a,!1,function(t){n("mzyk")},"data-v-3a3a19d5",null);e.default=r.exports},mzyk:function(t,e){}}); -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/js/2.6b077cf83bb9ce24750f.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([2],{AqyC:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"authErr"}},[n("div",{staticClass:"jumbotron"},[n("h2",{staticStyle:{color:"#e5a13c"}},[t._v("版本过低,请升级!")]),t._v(" "),n("p",{staticStyle:{"margin-top":"20px","font-size":"20px"}},[t._v("请到码云下载最新版\n "),n("a",{attrs:{href:"https://sqlite-file-mana.oss-cn-hangzhou.aliyuncs.com/Release/WinUI-win32-x64.rar"}},[t._v("WinUI-win32-x64.exe")]),t._v("|\n "),n("a",{attrs:{href:"https://sqlite-file-mana.oss-cn-hangzhou.aliyuncs.com/Release/Server-win-x64.rar"}},[t._v("Server-win-x64.exe")]),t._v("\n ,或联系作者购买 "),n("a",{attrs:{href:"#"},on:{click:function(e){t.QQShow=!t.QQShow}}},[t._v("专业版")]),t._v(" 。\n ")]),t._v(" "),t.QQShow?n("p",[t._v("作者:望山,QQ:2394837320")]):t._e(),t._v(" "),t._m(0)])])},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("p",[e("a",{staticClass:"btn btn-primary btn-lg pull-right",attrs:{target:"_blank",href:"https://gitee.com/WangShan010/SQLiteFileMana",role:"button"}},[this._v("了解更多")])])}]};var r=n("owSs")({name:"authErr",data:function(){return{QQShow:!1}}},a,!1,function(t){n("KNR1")},"data-v-7b0199ca",null);e.default=r.exports},KNR1:function(t,e){}}); -------------------------------------------------------------------------------- /Projects/WinUI/src/webRenderer/WebUI/static/js/manifest.c83a2d50ed835b4f6505.js: -------------------------------------------------------------------------------- 1 | !function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,a){for(var i,u,f,s=0,l=[];s 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Projects/WinUI/帮助文档.md: -------------------------------------------------------------------------------- 1 | # WinUI 操作面板 2 | 3 | 4 | 5 | ## 一、说明 6 | 7 | 8 | 9 | ## 二、用户手册 10 | 11 | ### 1、基本配置 12 | 13 | 14 | 15 | ### 2、源码目录结构 16 | 17 | 18 | 19 | ## 三、二次开发手册 20 | 21 | 22 | 23 | ## 1、环境准备 24 | 25 | 需要全局安装 pkg ,才可以进行程序打包 26 | 27 | ```powershell 28 | cnpm i --save-dev electron -g 29 | 30 | cnpm i --save-dev electron-packager -g 31 | ``` 32 | 33 | 34 | 35 | ### 2、打包其他平台 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | ## 四、🎉技术支持收费标准 44 | 45 | 本项目是个人在业余时间开发的,服务端核心代码已完全开源。其他开发者可以将代码下载后,以 **接口调用** 的方式使用本项目的全部功能! 46 | 47 | 为便于运维人员使用,额外开发了一套易用的 UI 用户界面程序用于数据管理,该 UI 程序用免费使用期为 2 个月,如有需要可购买。 48 | 49 | 50 | 51 | | 收费项目 | 收费标准 | 52 | | -------------------------------------- | -------- | 53 | | WinUI 程序(一年使用权) | 500 元 | 54 | | WinUI 程序(两年使用权) | 800 元 | 55 | | WinUI 程序(永久使用) | 2000 元 | 56 | | Windows 平台,部署技术支持(远程协助) | 500 元 | 57 | | Linux 平台,部署技术支持(远程协助) | 800 元 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /Projects/WinUI/文档/入门指南.assets/image-20221223150830432.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/文档/入门指南.assets/image-20221223150830432.png -------------------------------------------------------------------------------- /Projects/WinUI/文档/入门指南.assets/优化.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/文档/入门指南.assets/优化.gif -------------------------------------------------------------------------------- /Projects/WinUI/文档/入门指南.assets/分组.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/文档/入门指南.assets/分组.gif -------------------------------------------------------------------------------- /Projects/WinUI/文档/入门指南.assets/界面简介-16717792087372.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/文档/入门指南.assets/界面简介-16717792087372.gif -------------------------------------------------------------------------------- /Projects/WinUI/文档/入门指南.assets/界面简介.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Projects/WinUI/文档/入门指南.assets/界面简介.gif -------------------------------------------------------------------------------- /Projects/WinUI/文档/入门指南.md: -------------------------------------------------------------------------------- 1 | ## 一、软件介绍 2 | 3 | 本软件是使用 Election 开发的一个用户操作面板界面,主要用于对 SQLiteFileMana 服务端的资源库进行管理。 4 | 5 | 开源库地址:https://gitee.com/WangShan010/SQLiteFileMana 6 | 7 | 8 | 9 | ## 二、我可以不使用这个软件吗? 10 | 11 | **当然可以**,这个软件的定位是给运维人员提供一个简单易用的用户面板,并额外提供资源库优化功能。而服务端代码已经 **完全开源** ,如果您具备一定的开发能力,可以阅读服务端源码后直接以 **接口调用** 的方式使用本软件的全部功能! 12 | 13 | 14 | 15 | ## 三、使用教程 16 | 17 | ### 1、界面介绍 18 | 19 | 打开软件后可点击【开始使用】,进入虚拟磁盘路径。 20 | 21 | - 点击空白区域可查看本机的【硬件信息】 22 | - 选择任意一个【资源库】可以在右侧查看资源库详情,双击资源库,可以进入资源库的文件目录。 23 | - 进入资源库目录后可对文件夹进行增、删、复制文件URL路径。 24 | 25 | ![界面简介](入门指南.assets/界面简介-16717792087372.gif) 26 | 27 | 28 | 29 | ### 2、新建资源库 30 | 31 | 点击【建库】按钮后可对硬盘上的资源文件进行建库。 32 | 33 | ![image-20221223150830432](入门指南.assets/image-20221223150830432.png) 34 | 35 | 36 | 37 | ### 3、资源库分组整理 38 | 39 | 当资源库个数有七八个甚至更多时,我们可以对资源库进行分组整理。 40 | 41 | ![分组](入门指南.assets/分组.gif) 42 | 43 | 44 | 45 | ### 4、优化资源库 46 | 47 | 描述:我们有一个 **1.43GB** 的资源库,当我们通过手动删掉某些资源文件后,sqlite 文件并不会自动释放存储空间。 48 | 49 | 可以看到资源库大小没有任何变化,这是 sqlite 数据文件的特性。 50 | 51 | - 点击【高级】,进行资源库优化 52 | - 第一步,先清空悬空文件 53 | - 然后,释放存储空间 54 | 55 | 等待执行完成后,资源库大小变为了 **489.02MB** 56 | 57 | ![优化](入门指南.assets/优化.gif) 58 | 59 | 60 | 61 | ### 5、激活软件 62 | 63 | 可在登录界面,点击变更授权码 64 | 65 | - 加作者 QQ:2394837320 66 | 67 | - 提供本机机器码后,可获得专业版授权码 68 | -------------------------------------------------------------------------------- /Projects/WinUI/文档/收费标准.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ## 这个用户面板软件收费吗? 5 | 6 | **收费**,本项目是个人在业余时间开发的,服务端核心代码已完全开源。 7 | 8 | 其他开发者可以将代码下载后,以 **接口调用** 的方式使用本项目的全部功能! 9 | 10 | 为便于运维人员使用,额外开发了一套易用的 UI 用户界面程序用于数据管理,该 UI 程序用免费使用期为 3 个月,如有需要可购买。 11 | 12 | | 收费项目 | 收费标准 | 13 | | -------------------------------------------------- | -------- | 14 | | WinUI 程序(一年使用权) | 500 元 | 15 | | WinUI 程序(两年使用权) | 800 元 | 16 | | WinUI 程序(永久使用,支持升级到未来发布的新版本) | 2000 元 | 17 | | Windows 平台,部署技术支持(远程协助) | 500 元 | 18 | | Linux 平台,部署技术支持(远程协助) | 800 元 | 19 | 20 | 21 | 22 | | 功能模块 | 付费专业版 | 免费公测版 | 23 | | ------------------ | ---------- | ----------------- | 24 | | 新建资源库 | √ | 有限制,5W 个文件 | 25 | | 文件搜索功能 | √ | × | 26 | | 免费升级、技术支持 | √ | × | 27 | -------------------------------------------------------------------------------- /Release/sqlite3/Linux/sqlite3.rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Release/sqlite3/Linux/sqlite3.rar -------------------------------------------------------------------------------- /Release/sqlite3/Linux/sqlite3/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) MapBox 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, 5 | are permitted provided that the following conditions are met: 6 | 7 | - Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | - Redistributions in binary form must reproduce the above copyright notice, this 10 | list of conditions and the following disclaimer in the documentation and/or 11 | other materials provided with the distribution. 12 | - Neither the name "MapBox" nor the names of its contributors may be 13 | used to endorse or promote products derived from this software without 14 | specific prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 20 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 23 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /Release/sqlite3/Linux/sqlite3/deps/common-sqlite.gypi: -------------------------------------------------------------------------------- 1 | { 2 | 'variables': { 3 | 'sqlite_version%':'3390300', 4 | "toolset%":'', 5 | }, 6 | 'target_defaults': { 7 | 'default_configuration': 'Release', 8 | 'conditions': [ 9 | [ 'toolset!=""', { 10 | 'msbuild_toolset':'<(toolset)' 11 | }] 12 | ], 13 | 'configurations': { 14 | 'Debug': { 15 | 'defines!': [ 16 | 'NDEBUG' 17 | ], 18 | 'cflags_cc!': [ 19 | '-O3', 20 | '-Os', 21 | '-DNDEBUG' 22 | ], 23 | 'xcode_settings': { 24 | 'OTHER_CPLUSPLUSFLAGS!': [ 25 | '-O3', 26 | '-Os', 27 | '-DDEBUG' 28 | ], 29 | 'GCC_OPTIMIZATION_LEVEL': '0', 30 | 'GCC_GENERATE_DEBUGGING_SYMBOLS': 'YES' 31 | }, 32 | 'msvs_settings': { 33 | 'VCCLCompilerTool': { 34 | 'ExceptionHandling': 1, # /EHsc 35 | } 36 | } 37 | }, 38 | 'Release': { 39 | 'defines': [ 40 | 'NDEBUG' 41 | ], 42 | 'xcode_settings': { 43 | 'OTHER_CPLUSPLUSFLAGS!': [ 44 | '-Os', 45 | '-O2' 46 | ], 47 | 'GCC_OPTIMIZATION_LEVEL': '3', 48 | 'GCC_GENERATE_DEBUGGING_SYMBOLS': 'NO', 49 | 'DEAD_CODE_STRIPPING': 'YES', 50 | 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES' 51 | }, 52 | 'msvs_settings': { 53 | 'VCCLCompilerTool': { 54 | 'ExceptionHandling': 1, # /EHsc 55 | } 56 | } 57 | } 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /Release/sqlite3/Linux/sqlite3/deps/extract.js: -------------------------------------------------------------------------------- 1 | const tar = require("tar"); 2 | const path = require("path"); 3 | const tarball = path.resolve(process.argv[2]); 4 | const dirname = path.resolve(process.argv[3]); 5 | 6 | tar.extract({ 7 | sync: true, 8 | file: tarball, 9 | cwd: dirname, 10 | }); 11 | -------------------------------------------------------------------------------- /Release/sqlite3/Linux/sqlite3/deps/sqlite-autoconf-3390300.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Release/sqlite3/Linux/sqlite3/deps/sqlite-autoconf-3390300.tar.gz -------------------------------------------------------------------------------- /Release/sqlite3/Linux/sqlite3/lib/binding/napi-v6-linux-glibc-x64/node_sqlite3.node: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Release/sqlite3/Linux/sqlite3/lib/binding/napi-v6-linux-glibc-x64/node_sqlite3.node -------------------------------------------------------------------------------- /Release/sqlite3/Linux/sqlite3/lib/sqlite3-binding.js: -------------------------------------------------------------------------------- 1 | const binary = require('@mapbox/node-pre-gyp'); 2 | const path = require('path'); 3 | const binding_path = binary.find(path.resolve(path.join(__dirname,'../package.json'))); 4 | const binding = require(binding_path); 5 | module.exports = exports = binding; 6 | -------------------------------------------------------------------------------- /Release/sqlite3/Linux/sqlite3/lib/trace.js: -------------------------------------------------------------------------------- 1 | // Inspired by https://github.com/tlrobinson/long-stack-traces 2 | const util = require('util'); 3 | 4 | function extendTrace(object, property, pos) { 5 | const old = object[property]; 6 | object[property] = function() { 7 | const error = new Error(); 8 | const name = object.constructor.name + '#' + property + '(' + 9 | Array.prototype.slice.call(arguments).map(function(el) { 10 | return util.inspect(el, false, 0); 11 | }).join(', ') + ')'; 12 | 13 | if (typeof pos === 'undefined') pos = -1; 14 | if (pos < 0) pos += arguments.length; 15 | const cb = arguments[pos]; 16 | if (typeof arguments[pos] === 'function') { 17 | arguments[pos] = function replacement() { 18 | const err = arguments[0]; 19 | if (err && err.stack && !err.__augmented) { 20 | err.stack = filter(err).join('\n'); 21 | err.stack += '\n--> in ' + name; 22 | err.stack += '\n' + filter(error).slice(1).join('\n'); 23 | err.__augmented = true; 24 | } 25 | return cb.apply(this, arguments); 26 | }; 27 | } 28 | return old.apply(this, arguments); 29 | }; 30 | } 31 | exports.extendTrace = extendTrace; 32 | 33 | 34 | function filter(error) { 35 | return error.stack.split('\n').filter(function(line) { 36 | return line.indexOf(__filename) < 0; 37 | }); 38 | } 39 | -------------------------------------------------------------------------------- /Release/sqlite3/Linux/sqlite3/src/gcc-preinclude.h: -------------------------------------------------------------------------------- 1 | // http://web.archive.org/web/20140401031018/http://rjpower9000.wordpress.com:80/2012/04/09/fun-with-shared-libraries-version-glibc_2-14-not-found/ 2 | 3 | #if defined(__linux__) 4 | 5 | #define _GNU_SOURCE 6 | #include 7 | #undef _GNU_SOURCE 8 | 9 | #if defined(__USE_GNU) 10 | 11 | #if defined(__x86_64__) 12 | __asm__(".symver memcpy,memcpy@GLIBC_2.2.5"); 13 | __asm__(".symver exp,exp@GLIBC_2.2.5"); 14 | __asm__(".symver log,log@GLIBC_2.2.5"); 15 | __asm__(".symver pow,pow@GLIBC_2.2.5"); 16 | __asm__(".symver fcntl64,fcntl@GLIBC_2.2.5"); 17 | #endif 18 | 19 | #if defined(__aarch64__) || defined(_M_ARM64) 20 | __asm__(".symver memcpy,memcpy@GLIBC_2.17"); 21 | __asm__(".symver exp,exp@GLIBC_2.17"); 22 | __asm__(".symver log,log@GLIBC_2.17"); 23 | __asm__(".symver pow,pow@GLIBC_2.17"); 24 | __asm__(".symver fcntl64,fcntl@GLIBC_2.17"); 25 | #endif 26 | 27 | #endif 28 | #endif 29 | -------------------------------------------------------------------------------- /Release/sqlite3/Linux/sqlite3/src/threading.h: -------------------------------------------------------------------------------- 1 | #ifndef NODE_SQLITE3_SRC_THREADING_H 2 | #define NODE_SQLITE3_SRC_THREADING_H 3 | 4 | #define NODE_SQLITE3_MUTEX_t uv_mutex_t mutex; 5 | #define NODE_SQLITE3_MUTEX_INIT uv_mutex_init(&mutex); 6 | #define NODE_SQLITE3_MUTEX_LOCK(m) uv_mutex_lock(m); 7 | #define NODE_SQLITE3_MUTEX_UNLOCK(m) uv_mutex_unlock(m); 8 | #define NODE_SQLITE3_MUTEX_DESTROY uv_mutex_destroy(&mutex); 9 | 10 | #endif // NODE_SQLITE3_SRC_THREADING_H 11 | -------------------------------------------------------------------------------- /Release/sqlite3/Windows/sqlite3/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) MapBox 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, 5 | are permitted provided that the following conditions are met: 6 | 7 | - Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | - Redistributions in binary form must reproduce the above copyright notice, this 10 | list of conditions and the following disclaimer in the documentation and/or 11 | other materials provided with the distribution. 12 | - Neither the name "MapBox" nor the names of its contributors may be 13 | used to endorse or promote products derived from this software without 14 | specific prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 20 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 23 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /Release/sqlite3/Windows/sqlite3/deps/common-sqlite.gypi: -------------------------------------------------------------------------------- 1 | { 2 | 'variables': { 3 | 'sqlite_version%':'3390300', 4 | "toolset%":'', 5 | }, 6 | 'target_defaults': { 7 | 'default_configuration': 'Release', 8 | 'conditions': [ 9 | [ 'toolset!=""', { 10 | 'msbuild_toolset':'<(toolset)' 11 | }] 12 | ], 13 | 'configurations': { 14 | 'Debug': { 15 | 'defines!': [ 16 | 'NDEBUG' 17 | ], 18 | 'cflags_cc!': [ 19 | '-O3', 20 | '-Os', 21 | '-DNDEBUG' 22 | ], 23 | 'xcode_settings': { 24 | 'OTHER_CPLUSPLUSFLAGS!': [ 25 | '-O3', 26 | '-Os', 27 | '-DDEBUG' 28 | ], 29 | 'GCC_OPTIMIZATION_LEVEL': '0', 30 | 'GCC_GENERATE_DEBUGGING_SYMBOLS': 'YES' 31 | }, 32 | 'msvs_settings': { 33 | 'VCCLCompilerTool': { 34 | 'ExceptionHandling': 1, # /EHsc 35 | } 36 | } 37 | }, 38 | 'Release': { 39 | 'defines': [ 40 | 'NDEBUG' 41 | ], 42 | 'xcode_settings': { 43 | 'OTHER_CPLUSPLUSFLAGS!': [ 44 | '-Os', 45 | '-O2' 46 | ], 47 | 'GCC_OPTIMIZATION_LEVEL': '3', 48 | 'GCC_GENERATE_DEBUGGING_SYMBOLS': 'NO', 49 | 'DEAD_CODE_STRIPPING': 'YES', 50 | 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES' 51 | }, 52 | 'msvs_settings': { 53 | 'VCCLCompilerTool': { 54 | 'ExceptionHandling': 1, # /EHsc 55 | } 56 | } 57 | } 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /Release/sqlite3/Windows/sqlite3/deps/extract.js: -------------------------------------------------------------------------------- 1 | const tar = require("tar"); 2 | const path = require("path"); 3 | const tarball = path.resolve(process.argv[2]); 4 | const dirname = path.resolve(process.argv[3]); 5 | 6 | tar.extract({ 7 | sync: true, 8 | file: tarball, 9 | cwd: dirname, 10 | }); 11 | -------------------------------------------------------------------------------- /Release/sqlite3/Windows/sqlite3/deps/sqlite-autoconf-3390300.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Release/sqlite3/Windows/sqlite3/deps/sqlite-autoconf-3390300.tar.gz -------------------------------------------------------------------------------- /Release/sqlite3/Windows/sqlite3/lib/binding/napi-v6-win32-unknown-x64/node_sqlite3.node: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WangShan010/SQLiteFileMana/9a7f8585b7e5d101535e6c4a8f741ec5dc853d17/Release/sqlite3/Windows/sqlite3/lib/binding/napi-v6-win32-unknown-x64/node_sqlite3.node -------------------------------------------------------------------------------- /Release/sqlite3/Windows/sqlite3/lib/sqlite3-binding.js: -------------------------------------------------------------------------------- 1 | const binary = require('@mapbox/node-pre-gyp'); 2 | const path = require('path'); 3 | const binding_path = binary.find(path.resolve(path.join(__dirname,'../package.json'))); 4 | const binding = require(binding_path); 5 | module.exports = exports = binding; 6 | -------------------------------------------------------------------------------- /Release/sqlite3/Windows/sqlite3/lib/trace.js: -------------------------------------------------------------------------------- 1 | // Inspired by https://github.com/tlrobinson/long-stack-traces 2 | const util = require('util'); 3 | 4 | function extendTrace(object, property, pos) { 5 | const old = object[property]; 6 | object[property] = function() { 7 | const error = new Error(); 8 | const name = object.constructor.name + '#' + property + '(' + 9 | Array.prototype.slice.call(arguments).map(function(el) { 10 | return util.inspect(el, false, 0); 11 | }).join(', ') + ')'; 12 | 13 | if (typeof pos === 'undefined') pos = -1; 14 | if (pos < 0) pos += arguments.length; 15 | const cb = arguments[pos]; 16 | if (typeof arguments[pos] === 'function') { 17 | arguments[pos] = function replacement() { 18 | const err = arguments[0]; 19 | if (err && err.stack && !err.__augmented) { 20 | err.stack = filter(err).join('\n'); 21 | err.stack += '\n--> in ' + name; 22 | err.stack += '\n' + filter(error).slice(1).join('\n'); 23 | err.__augmented = true; 24 | } 25 | return cb.apply(this, arguments); 26 | }; 27 | } 28 | return old.apply(this, arguments); 29 | }; 30 | } 31 | exports.extendTrace = extendTrace; 32 | 33 | 34 | function filter(error) { 35 | return error.stack.split('\n').filter(function(line) { 36 | return line.indexOf(__filename) < 0; 37 | }); 38 | } 39 | -------------------------------------------------------------------------------- /Release/sqlite3/Windows/sqlite3/src/gcc-preinclude.h: -------------------------------------------------------------------------------- 1 | // http://web.archive.org/web/20140401031018/http://rjpower9000.wordpress.com:80/2012/04/09/fun-with-shared-libraries-version-glibc_2-14-not-found/ 2 | 3 | #if defined(__linux__) 4 | 5 | #define _GNU_SOURCE 6 | #include 7 | #undef _GNU_SOURCE 8 | 9 | #if defined(__USE_GNU) 10 | 11 | #if defined(__x86_64__) 12 | __asm__(".symver memcpy,memcpy@GLIBC_2.2.5"); 13 | __asm__(".symver exp,exp@GLIBC_2.2.5"); 14 | __asm__(".symver log,log@GLIBC_2.2.5"); 15 | __asm__(".symver pow,pow@GLIBC_2.2.5"); 16 | __asm__(".symver fcntl64,fcntl@GLIBC_2.2.5"); 17 | #endif 18 | 19 | #if defined(__aarch64__) || defined(_M_ARM64) 20 | __asm__(".symver memcpy,memcpy@GLIBC_2.17"); 21 | __asm__(".symver exp,exp@GLIBC_2.17"); 22 | __asm__(".symver log,log@GLIBC_2.17"); 23 | __asm__(".symver pow,pow@GLIBC_2.17"); 24 | __asm__(".symver fcntl64,fcntl@GLIBC_2.17"); 25 | #endif 26 | 27 | #endif 28 | #endif 29 | -------------------------------------------------------------------------------- /Release/sqlite3/Windows/sqlite3/src/threading.h: -------------------------------------------------------------------------------- 1 | #ifndef NODE_SQLITE3_SRC_THREADING_H 2 | #define NODE_SQLITE3_SRC_THREADING_H 3 | 4 | #define NODE_SQLITE3_MUTEX_t uv_mutex_t mutex; 5 | #define NODE_SQLITE3_MUTEX_INIT uv_mutex_init(&mutex); 6 | #define NODE_SQLITE3_MUTEX_LOCK(m) uv_mutex_lock(m); 7 | #define NODE_SQLITE3_MUTEX_UNLOCK(m) uv_mutex_unlock(m); 8 | #define NODE_SQLITE3_MUTEX_DESTROY uv_mutex_destroy(&mutex); 9 | 10 | #endif // NODE_SQLITE3_SRC_THREADING_H 11 | --------------------------------------------------------------------------------