-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
1 lines (1 loc) · 16.4 KB
/
app.js
File metadata and controls
1 lines (1 loc) · 16.4 KB
1
(()=>{"use strict";var e={903:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=n(r(312));console.log("\n _________\n / _____/ ____ _____ ______ ___________\n \\_____ \\_/ __ \\\\__ \\ \\____ \\_/ __ \\_ __ \\\n / \\ ___/ / __ \\ | |_ > >___/ | |\\/\n /_______ /\\___ >____ / __/ \\___ >__|\n \\/ \\/ \\/|__| \\/\n====================================================\n<-- Seaper Server Manager Powered By Xiaoyi311 --\x3e\nVersion: %s\nAuthor: Xiaoyi311\nStudio: SkyWorldStudio\n====================================================",a.default.package().version);var o=n(r(17)),i=n(r(147));i.default.existsSync(o.default.resolve(process.cwd(),"public/"))||(console.log("[Development Mode] Hei! You Shouldn't Do This! This is Development Mode!"),console.log("[Development Mode] Please Download Seaper Production On https://seaper.skyworldstudio.top!"),console.log('[Development Mode] If You Want Run Seaper in Development Mode, Please Create "public" folder in project folder!'),process.exit());var s=o.default.resolve(process.cwd(),"data/");i.default.existsSync(s)||i.default.mkdirSync(s);var u=n(r(413));a.default.initConfig();var l=a.default.get("app",new u.default);n(r(998)).default.initI18n(l.lang,Number.parseInt(a.default.package().version.replace(".",""))),n(r(514)).default.initLogger(),n(r(907)).default.initUser(l.loginStopTime,l.loginTryTime),n(r(770)).default.initServer(l.port)},311:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=n(r(998));t.default=function(e,t,r,n){return"SEAPER_PARAMS_ERROR"==e.message?(r.status(400),r.locals.data=a.default.msg("errorStatus.400"),void n()):"SEAPER_PERMISSION_ERROR"==e.message?(r.status(403),r.locals.data=a.default.msg("errorStatus.403"),void n()):(r.status(500),r.locals.data=e.message,void n())}},992:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=n(r(907));t.default=function(e){return function(t,r,n){var o=a.default.getUserFromSession(t.session);if(null!=o){r.locals.user=o;var i=e.permission.filter((function(e){return o.permissions.every((function(t){return t!=e}))}));if(0!=i.length){for(var s=[],u=0;u<o.permissions.length;u++)if((f=o.permissions[u]).endsWith("*")){if("*"==f)return void n();s.push(f.replace(".*",""))}var l=!0;for(u=0;u<e.permission.length;u++){for(var f=e.permission[u],d=!1,c=0;c<s.length;c++){var g=s[u];if(f.startsWith(g)){d=!0;break}}if(!d){l=!1;break}}n(l?void 0:new Error("SEAPER_PERMISSION_ERROR"))}else n()}else n(new Error("SEAPER_PERMISSION_ERROR"))}}},865:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){t.json({status:t.statusCode,time:(new Date).getTime(),data:t.locals.data}),r()}},897:(e,t)=>{function r(e,t){if(e){for(var r in t){var n=t[r];if(null==e[r]||""===e[r])return!1;if(n!==Number)if(n!==String)if(n!==Date){if(n===Array&&!(e[r]instanceof Array)){var a=JSON.parse(e[r]);if(!(a instanceof Array))return!1;e[r]=a}if(n===Object&&!e[r])return!1}else{var o=new Date(e[r]).toString();if("Invalid Date"==o||null==o)return!1;e[r]=new Date(e[r])}else e[r]=String(e[r]);else if(e[r]=Number(e[r]),isNaN(e[r]))return!1}return!0}return!1}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t,n,a){try{var o=!0;if(e.params&&!r(t.params,e.params)&&(o=!1),e.query&&!r(t.query,e.query)&&(o=!1),e.body&&!r(t.body,e.body)&&(o=!1),o)return a()}catch(e){}a(new Error("SEAPER_PARAMS_ERROR"))}}},413:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.default=function(){this.port=8088,this.lang="zh_CN",this.loginStopTime=3600,this.loginTryTime=5}},381:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=r(113),a=function(){function e(e,t,r,a,o){this.uuid=null==a?(0,n.randomUUID)():a,this.username=e,this.password=t,this.registerTime=null==o?(new Date).getTime():o,this.permissions=null==r?[]:r}return e.fromJSON=function(t){return new e(t.username,t.password,t.permissions,t.uuid,t.registerTime)},e}();t.default=a},613:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=n(r(860)),o=n(r(907)),i=n(r(998)),s=a.default.Router();s.post("/init",(function(e,t,r){return o.default.users.size>0?(t.locals.data=i.default.msg("user.initiated"),void r()):i.default.langData.has(e.body.lang)?(i.default.set(e.body.lang,o.default.system),t.locals.data="OK",void r()):(t.locals.data=i.default.msg("lang.notFound"),void r())})),s.get("/get",(function(e,t,r){t.locals.data=i.default.frontLang(),r()})),s.get("/list",(function(e,t,r){t.locals.data=i.default.langList(),r()})),t.default=s},183:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=n(r(860)),o=n(r(613)),i=n(r(180)),s=a.default.Router();s.use("/lang",o.default),s.use("/user",i.default),t.default=s},180:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=n(r(860)),o=n(r(907)),i=n(r(998)),s=n(r(381)),u=n(r(57)),l=n(r(897)),f=n(r(992)),d=a.default.Router();d.post("/init",(0,l.default)({body:{username:String,password:String}}),(function(e,t,r){if(o.default.users.size>0)return t.locals.data=i.default.msg("user.initiated"),void r();var n=new s.default(e.body.username,e.body.password,["*"]);o.default.create(n,o.default.system),t.locals.data="OK",r()})),d.get("/init",(function(e,t,r){t.locals.data=o.default.users.size>0,r()})),d.get("/info",(0,f.default)({permission:["user.info"]}),(function(e,t,r){t.locals.data=t.locals.user,r()})),d.use("/auth",u.default),t.default=d},57:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=n(r(860)),o=n(r(381)),i=n(r(998)),s=n(r(907)),u=n(r(897)),l=a.default.Router();l.post("/login",(0,u.default)({body:{username:String,password:String}}),(function(e,t,r){var n=new o.default(e.body.username,e.body.password);t.locals.data=s.default.login(n,e.session,"127.0.0.2")?"OK":i.default.msg("user.loginRefuse"),r()})),l.get("/logout",(function(e,t,r){e.session.destroy((function(){})),t.locals.data="OK",r()})),t.default=l},907:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=n(r(381)),o=n(r(147)),i=n(r(17)),s=n(r(514)),u=n(r(998));t.default=new(function(){function e(){this.USER_PATH=i.default.resolve(process.cwd(),"data/users/"),this.system=new a.default("SeaperSystem","none",[],"!!-Seaper-System-User-!!"),this.users=new Map,this.loginBadTime=new Map,this.loginBad=new Map,this.loginStopTime=3600,this.loginTryTime=5}return e.prototype.initUser=function(e,t){s.default.log(u.default.msg("console.init.user-start"),"UserManager"),o.default.existsSync(this.USER_PATH)||o.default.mkdirSync(this.USER_PATH);for(var r=o.default.readdirSync(this.USER_PATH),n=0;n<r.length;n++)if(r[n].endsWith(".json")){var i=a.default.fromJSON(this.getUserFromUUID(r[n].replace(".json",""),!0));this.users.set(i.username,i.uuid)}this.loginStopTime=e,this.loginTryTime=t,s.default.log(u.default.msg("console.init.user-over",this.users.size),"UserManager")},e.prototype.getUserFromUsername=function(e){var t=this.users.get(e);if(null!=t)return this.getUserFromUUID(t.valueOf())},e.prototype.getUserFromSession=function(e){var t=e.auth;if(t&&(t=t.uuid),t)return this.getUserFromUUID(t)},e.prototype.getUserFromUUID=function(e,t){var r=i.default.resolve(this.USER_PATH,e+".json");if(o.default.existsSync(r))return JSON.parse(o.default.readFileSync(r,"utf-8"))},e.prototype.create=function(e,t){this.set(e,t),this.users.set(e.uuid,e.username)},e.prototype.set=function(e,t){var r=i.default.resolve(this.USER_PATH,e.uuid+".json");o.default.existsSync(r)||s.default.log(u.default.msg("console.createUser",t.uuid,t.username,e.uuid,e.username),"UserManager"),o.default.writeFileSync(r,JSON.stringify(e))},e.prototype.login=function(e,t,r){if(!this.ipCheck(r,!1))return this.ipBad(r,!0),!1;var n=this.getUserFromUsername(e.username);return n?n.password!=e.password?(this.ipBad(r,!1),!1):(t.auth={login:!0,uuid:n.uuid,username:n.username,password:n.password},t.resetMaxAge(),s.default.log(u.default.msg("console.loginUser",n.uuid,n.username),"UserManager"),!0):(this.ipBad(r,!1),!1)},e.prototype.ipCheck=function(e,t){if(""==e)return s.default.warn(u.default.msg("user.cantGetIP"),"UserManager-Secure"),!1;if("::1"==e||"127.0.0.1"==e)return!0;if(!t){var r=this.loginBadTime.get(e);r&&r+1e3*this.loginStopTime<(new Date).getTime()&&(this.loginBadTime.delete(e),this.loginBad.delete(e));var n=this.loginBad.get(e),a=n&&n>=this.loginTryTime;if(this.loginTryTime>0&&a)return n==this.loginTryTime&&s.default.warn(u.default.msg("user.loginTimeOut",e),"UserManager-Secure"),!1}return!0},e.prototype.ipBad=function(e,t){if(this.ipCheck(e,!0)){var r=this.loginBad.get(e);r=r||0,r++,this.loginBad.set(e,r),t&&r&&r>=this.loginTryTime&&this.loginBadTime.set(e,(new Date).getTime())}},e}())},312:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=n(r(514)),o=n(r(147)),i=n(r(17));t.default=new(function(){function e(){this.CONFIG_PATH=i.default.resolve(process.cwd(),"data/configs/")}return e.prototype.initConfig=function(){console.log("[ConfigManager] Initiating Config..."),o.default.existsSync(this.CONFIG_PATH)||(console.log("Create Config Folder"),o.default.mkdirSync(this.CONFIG_PATH)),console.log("[ConfigManager] Config Initiated!")},e.prototype.get=function(e,t){var r=i.default.resolve(this.CONFIG_PATH,e+".json");return o.default.existsSync(r)||(a.default.logger.log("Create Config ["+e+".json]"),o.default.writeFileSync(r,JSON.stringify(t))),JSON.parse(o.default.readFileSync(r,"utf-8"))},e.prototype.package=function(){return JSON.parse(o.default.readFileSync(i.default.resolve(process.cwd(),"package.json"),"utf-8"))},e}())},998:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=n(r(147)),o=n(r(17)),i=n(r(514));t.default=new(function(){function e(){this.I18N_PATH=o.default.resolve(process.cwd(),"data/langs/"),this.langData=new Map}return e.prototype.initI18n=function(e,t){console.log("[I18nManager] Initiating I18n..."),a.default.existsSync(this.I18N_PATH)||(console.log("[I18nManager] Create I18n Folder"),a.default.mkdirSync(this.I18N_PATH));for(var r=a.default.readdirSync(this.I18N_PATH),n=0;n<r.length;n++){var o=r[n].replace(".json","");this.langData.set(o,this.get(o)),o==e&&(this.lang=this.get(o),console.log("<======== Seaper Lang Information ========>\nName: %s\nAuthor: %s\nVersion: %s\n<======== Seaper Lang Information ========>",this.lang.Name,this.lang.Author,this.lang.Version),this.lang.Version<t&&console.warn("WARRING! LANG VERSION LOW!!!!!"))}null==this.lang&&console.warn("[I18nManager] WARRING! NO LANG USED NOW!!!!!!!!!"),console.log("[I18nManager] I18n Initiated!")},e.prototype.get=function(e){return JSON.parse(a.default.readFileSync(o.default.resolve(this.I18N_PATH,e+".json"),"utf-8"))},e.prototype.msg=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];for(var n=e.split("."),a=this.lang.backend,o=0;o<n.length;o++)a=a[n[o]];for(o=0;o<t.length;o++)a=a.replace("{"+o+"}",t[o]);return a},e.prototype.set=function(e,t){this.lang=this.get(e),i.default.log(this.msg("console.langChange",t.uuid,t.username,e),"I18nManager")},e.prototype.frontLang=function(){return this.lang.front},e.prototype.langList=function(){var e=new Array;return this.langData.forEach((function(t,r){e.push({code:r,name:t.Name})})),e},e}())},514:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var s=i(r(17)),u=o(r(94)),l=i(r(998));t.default=new(function(){function e(){this.logger=u.getLogger()}return e.prototype.initLogger=function(){console.log("[Logger] "+l.default.msg("console.init.logger-start")),u.configure({appenders:{console:{type:"stdout",layout:{type:"pattern",pattern:"%[[%d{yyyy/MM/dd hh:mm:ss}] [%p] [%X{class}]%]: %m"}},file:{type:"dateFile",pattern:"yyyy-MM-dd.log",filename:s.default.resolve(process.cwd(),"data/logs/seaper"),alwaysIncludePattern:!0}},categories:{default:{appenders:["console","file"],level:"info",enableCallStack:!0}}}),this.log(l.default.msg("console.init.logger-over"),"LoggerManager")},e.prototype.log=function(e,t){this.logger.addContext("class",t),this.logger.log(e)},e.prototype.warn=function(e,t){this.logger.addContext("class",t),this.logger.warn(e)},e}())},770:function(e,t,r){var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(a,o){function i(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,s)}u((n=n.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var r,n,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(s){return function(u){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(i=0)),i;)try{if(r=1,n&&(a=2&s[0]?n.return:s[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,s[1])).done)return a;switch(n=0,a&&(s=[2&s[0],a.value]),s[0]){case 0:case 1:a=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,n=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!((a=(a=i.trys).length>0&&a[a.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!a||s[1]>a[0]&&s[1]<a[3])){i.label=s[1];break}if(6===s[0]&&i.label<a[1]){i.label=a[1],a=s;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(s);break}a[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e],n=0}finally{r=a=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,u])}}},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(r(17)),s=o(r(998)),u=o(r(514)),l=o(r(860)),f=o(r(508)),d=o(r(865)),c=o(r(183)),g=o(r(986)),p=o(r(269)),_=o(r(311));t.default=new(function(){function e(){this.server=(0,l.default)()}return e.prototype.initServer=function(e){var t=this;u.default.log(s.default.msg("console.init.server-start"),"WebServerManager"),this.server.use(l.default.static(i.default.resolve(process.cwd(),"public/"))),this.server.use(g.default.json()),this.server.use((0,f.default)({name:"seaper",secret:"SEAPER_SESSION_"+(0,p.default)(16,{numbers:!0}),saveUninitialized:!1,resave:!1,cookie:{maxAge:6048e5}})),this.server.use("/api",c.default),this.server.use((function(e,t,r){null==t.locals.data&&(t.status(404),t.locals.data=s.default.msg("errorStatus.404")),r()})),this.server.use(_.default),this.server.use(d.default),this.server.listen(e,(function(){return n(t,void 0,void 0,(function(){return a(this,(function(t){return u.default.log(s.default.msg("console.init.server-over",e),"WebServerManager"),[2]}))}))}))},e}())},986:e=>{e.exports=require("body-parser")},860:e=>{e.exports=require("express")},508:e=>{e.exports=require("express-session")},94:e=>{e.exports=require("log4js")},269:e=>{e.exports=require("string-random")},113:e=>{e.exports=require("crypto")},147:e=>{e.exports=require("fs")},17:e=>{e.exports=require("path")}},t={};!function r(n){var a=t[n];if(void 0!==a)return a.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}(903)})();