flexbiz-server 12.0.22 → 12.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -3
- package/server/modules/lists/ls-file.js +16 -17
- package/server/route.js +3 -5
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "flexbiz-server",
|
|
3
3
|
"main": "./server/app.js",
|
|
4
4
|
"description": "Flexible Server",
|
|
5
|
-
"version": "12.0.
|
|
5
|
+
"version": "12.0.23",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Van Truong Pham",
|
|
8
8
|
"email": "invncur@gmail.com"
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"async": "^3.2.0",
|
|
22
22
|
"axios": "^0.20.0",
|
|
23
23
|
"body-parser": "^1.19.0",
|
|
24
|
-
"
|
|
24
|
+
"bwip-js": "^3.1.0",
|
|
25
25
|
"cheerio": "^1.0.0-rc.10",
|
|
26
26
|
"compression": "^1.7.4",
|
|
27
27
|
"compression-webpack-plugin": "^3.0.0",
|
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
"fluent-ffmpeg": "^2.1.2",
|
|
39
39
|
"gm": "^1.23.1",
|
|
40
40
|
"google-translate": "^3.0.0",
|
|
41
|
-
"jsbarcode": "^3.11.5",
|
|
42
41
|
"jsonwebtoken": "^8.5.1",
|
|
43
42
|
"jspdf": "^2.1.1",
|
|
44
43
|
"jszip": "^3.1.5",
|
|
@@ -5,20 +5,19 @@ $extension_root$$=configs.paths.images;$extension_root$$||($extension_root$$=__d
|
|
|
5
5
|
$error$$=10*$value$$.width/100;watermark.embed({type:"image",source:$file_name$$,logo:$file_logo$$,destination:$file_name_watermark$$,position:{logoX:$value$$.width-$error$$-10,logoY:10,logoHeight:$error$$,logoWidth:$error$$}},function($status$$){1===$status$$.status?$resolve$$($file_name_watermark$$):(console.log("status set watermark",$status$$),$resolve$$($file_name$$))})})}):(console.log("file logo watermark is not exists",$file_logo$$),$file_name$$)},configResizeImage=async($_size_file_name_resize$$,
|
|
6
6
|
$file_name$$,$extension$$,$recache$$)=>{let $size$$,$cache$$;if($_size_file_name_resize$$)switch($_size_file_name_resize$$.toString().toUpperCase()){case "64":case "X":$size$$=64;$cache$$=!0;break;case "256":$size$$=256;$cache$$=!0;break;case "S":case "320":$size$$=320;$cache$$=!0;break;case "512":case "M":$size$$=512;$cache$$=!0;break;case "1024":case "L":$size$$=1024;$cache$$=!0;break;case "1080":case "FULLHD":$size$$=1080;$cache$$=!0;break;case "1440":case "2K":$size$$=1440;$cache$$=!0;break;default:try{$size$$=
|
|
7
7
|
Number($_size_file_name_resize$$)}catch($e$$){console.log("size param must be X or S or M or L or a number")}}return $size$$?($_size_file_name_resize$$=`${$file_name$$}.${$size$$}.${$extension$$}`,!$recache$$&&fs.existsSync($_size_file_name_resize$$)?{file_name_resize:$_size_file_name_resize$$,exist:!0}:{cache:$cache$$,size:$size$$,file_name_resize:$_size_file_name_resize$$}):{file_name_resize:$file_name$$}};
|
|
8
|
-
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"file",{sort:{ten_file:1},onView:($user$$,$items$$,$next$$)=>{$items$$.forEach($item$$=>{$item$$.file&&(delete $item$$.file.encoding,delete $item$$.file.mimetype,delete $item$$.file.path,$item$$.id_app&&configs.api_url&&($item$$.download_link=`${configs.api_url||""}/${$item$$.id_app}/file/download/${$item$$._id.toString()}`))});$next$$(null,$items$$)}});$contr_router$$.creating=async function($file_name$jscomp$
|
|
9
|
-
$obj$$,$fn$$){if($obj$$.file&&$obj$$.read_image){$file_name$jscomp$
|
|
10
|
-
|
|
11
|
-
$obj
|
|
12
|
-
|
|
13
|
-
$output
|
|
14
|
-
$
|
|
15
|
-
|
|
16
|
-
($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
path.
|
|
20
|
-
$
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
fs.createReadStream($output$jscomp$2_rs$$);$readStream$$.on("open",function(){$readStream$$.pipe($res$$)});$readStream$$.on("error",function($err$$){$res$$.end($err$$)})}else $res$$.status(400).send("File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i")}else $res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y")})})})})};
|
|
8
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"file",{sort:{ten_file:1},onView:($user$$,$items$$,$next$$)=>{$items$$.forEach($item$$=>{$item$$.file&&(delete $item$$.file.encoding,delete $item$$.file.mimetype,delete $item$$.file.path,$item$$.id_app&&configs.api_url&&($item$$.download_link=`${configs.api_url||""}/${$item$$.id_app}/file/download/${$item$$._id.toString()}`))});$next$$(null,$items$$)}});$contr_router$$.creating=async function($file_name$jscomp$2_input_user$$,
|
|
9
|
+
$obj$$,$fn$$){if($obj$$.file&&$obj$$.read_image){$file_name$jscomp$2_input_user$$=$obj$$.file.name;var $extension$jscomp$2_root$$=$obj$$.file.extension.toLowerCase();if(0<=["png","jpg"].indexOf($extension$jscomp$2_root$$)&&($extension$jscomp$2_root$$=configs.paths.uploads,$extension$jscomp$2_root$$||($extension$jscomp$2_root$$=__dirname,$extension$jscomp$2_root$$=path.dirname($extension$jscomp$2_root$$),$extension$jscomp$2_root$$=path.dirname($extension$jscomp$2_root$$),$extension$jscomp$2_root$$=
|
|
10
|
+
path.join($extension$jscomp$2_root$$,"uploads")),$file_name$jscomp$2_input_user$$=path.join($extension$jscomp$2_root$$,$file_name$jscomp$2_input_user$$),fs.existsSync($file_name$jscomp$2_input_user$$))){$extension$jscomp$2_root$$=require("node-tesseract-ocr");const $config$$={lang:"vie+eng"};try{const $text$$=await $extension$jscomp$2_root$$.recognize($file_name$jscomp$2_input_user$$,$config$$);$obj$$.text_from_image=$text$$}catch($error$$){return console.error($error$$),$fn$$($error$$.message)}}}$fn$$(null,
|
|
11
|
+
$obj$$)};$contr_router$$.created=function($file_name$jscomp$3_user$$,$obj$$,$fn$$){if($obj$$.file){$file_name$jscomp$3_user$$=$obj$$.file.name;var $extension$jscomp$3_input$jscomp$1_root$$=$obj$$.file.extension.toLowerCase();if(0<=["mp4","mov","avi"].indexOf($extension$jscomp$3_input$jscomp$1_root$$)){$extension$jscomp$3_input$jscomp$1_root$$=configs.paths.uploads;$extension$jscomp$3_input$jscomp$1_root$$||($extension$jscomp$3_input$jscomp$1_root$$=__dirname,$extension$jscomp$3_input$jscomp$1_root$$=
|
|
12
|
+
path.dirname($extension$jscomp$3_input$jscomp$1_root$$),$extension$jscomp$3_input$jscomp$1_root$$=path.dirname($extension$jscomp$3_input$jscomp$1_root$$),$extension$jscomp$3_input$jscomp$1_root$$=path.join($extension$jscomp$3_input$jscomp$1_root$$,"uploads"));$extension$jscomp$3_input$jscomp$1_root$$=path.join($extension$jscomp$3_input$jscomp$1_root$$,$file_name$jscomp$3_user$$);let $output$$=configs.paths.videos;$output$$||($output$$=__dirname,$output$$=path.dirname($output$$),$output$$=path.dirname($output$$),
|
|
13
|
+
$output$$=path.join($output$$,"videos"));fs.existsSync($output$$)||fs.mkdirSync($output$$);$output$$=path.join($output$$,$obj$$._id.toString());fs.existsSync($output$$)||fs.mkdirSync($output$$);$output$$=path.join($output$$,$file_name$jscomp$3_user$$);convertVideo($extension$jscomp$3_input$jscomp$1_root$$,$output$$).catch($e$$=>{console.error("Can't convert video. Error:",$e$$)})}}else console.log("file not exists",$obj$$);$fn$$(null,$obj$$)};$contr_router$$.deleted=function($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$,
|
|
14
|
+
$rs$$,$next$$){if($rs$$.file){$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=$rs$$.file.name;let $root$$=configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=path.join($root$$,$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$);fs.existsSync($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$)&&fs.unlink($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$,
|
|
15
|
+
function($e$$){$e$$&&console.error($e$$)});$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=$rs$$.file.extension.toLowerCase();0<=["mp4","mov","avi"].indexOf($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$)&&($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=configs.paths.videos,$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$||($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=__dirname,$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=
|
|
16
|
+
path.dirname($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$),$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=path.dirname($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$),$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=path.join($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$,"videos")),$extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$=path.join($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$,$rs$$._id.toString()),
|
|
17
|
+
fs.existsSync($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$)&&deleteFolderRecursive($extension$jscomp$4_file_name$jscomp$4_output$jscomp$1_user$$))}else console.log("file not exists",$rs$$);$next$$(null,$rs$$)};$contr_router$$.route(function($router$$){$router$$.route("/:id_app/file/download/:id").get(function($req$$,$res$$){let $id$$=$req$$.params.id,$size$$=$req$$.query.size||$req$$.query.resize||"FULLHD";app.findOne({_id:$req$$.user.current_id_app}).lean().exec(function($e$$,$app_info$$){if($e$$||
|
|
18
|
+
!$app_info$$)return $res$$.status(400).send("Kh\u00f4ng th\u1ec3 t\u1ea3i file n\u00e0y");model.findOne({_id:$id$$}).lean().exec(async($e$jscomp$4_file_name$$,$rs$$)=>{if($e$jscomp$4_file_name$$)return $res$$.status(400).send($e$jscomp$4_file_name$$);if($rs$$){$e$jscomp$4_file_name$$=$rs$$.file.name;let $extension$$=$rs$$.file.extension,$root$$=configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$e$jscomp$4_file_name$$=
|
|
19
|
+
path.join($root$$,$e$jscomp$4_file_name$$);if(fs.existsSync($e$jscomp$4_file_name$$))if(0<=["png","jpg","jpeg"].indexOf($extension$$)){let $_new_file$$=await setWaterMark4Image($app_info$$,$e$jscomp$4_file_name$$,$extension$$,$req$$.query.recache),$_resize_conf$$=await configResizeImage($size$$,$_new_file$$,$extension$$,$req$$.query.recache);if($_resize_conf$$.exist)return gm($_resize_conf$$.file_name_resize).stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)});let $_gm$$=gm($_new_file$$);$_gm$$.size(function($error$jscomp$0$$,
|
|
20
|
+
$orgin_file_size$$){$orgin_file_size$$&&$_resize_conf$$.size&&$_resize_conf$$.size<$orgin_file_size$$.width&&$_resize_conf$$.size<$orgin_file_size$$.height&&($_gm$$=$_gm$$.resize($_resize_conf$$.size));$_resize_conf$$.cache?setImmediate(()=>{$_gm$$.write($_resize_conf$$.file_name_resize,function($error$$){if($error$$)console.error("save resize image:",$error$$.message),setImmediate(()=>{$res$$.sendFile($_new_file$$)});else return gm($_resize_conf$$.file_name_resize).stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)})})}):
|
|
21
|
+
$_gm$$.stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)})})}else $res$$.download($e$jscomp$4_file_name$$,$rs$$.file.originalname);else $res$$.status(400).send("File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i")}else $res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y")})})});$router$$.route("/:id_app/file/stream/:id/:file").get(function($req$$,$res$$){let $id$$=$req$$.params.id;app.findOne({_id:$req$$.user.current_id_app}).lean().exec(function($e$$,$app_info$$){if($e$$||!$app_info$$)return $res$$.status(400).send("Kh\u00f4ng th\u1ec3 stream file n\u00e0y");
|
|
22
|
+
model.findOne({_id:$id$$}).lean().exec(async($e$jscomp$6_file_name$$,$output$jscomp$2_rs$$)=>{if($e$jscomp$6_file_name$$)return $res$$.status(400).send($e$jscomp$6_file_name$$);if($output$jscomp$2_rs$$){$e$jscomp$6_file_name$$=$output$jscomp$2_rs$$.file.name;var $file$jscomp$1_root$$=$req$$.params.file;".ts"==$file$jscomp$1_root$$.substr(-3)&&($e$jscomp$6_file_name$$=$file$jscomp$1_root$$);$file$jscomp$1_root$$=configs.paths.videos;$file$jscomp$1_root$$||($file$jscomp$1_root$$=__dirname,$file$jscomp$1_root$$=
|
|
23
|
+
path.dirname($file$jscomp$1_root$$),$file$jscomp$1_root$$=path.dirname($file$jscomp$1_root$$),$file$jscomp$1_root$$=path.join($file$jscomp$1_root$$,"videos"));$output$jscomp$2_rs$$=path.join($file$jscomp$1_root$$,$output$jscomp$2_rs$$._id.toString(),$e$jscomp$6_file_name$$);if(fs.existsSync($output$jscomp$2_rs$$)){const $readStream$$=fs.createReadStream($output$jscomp$2_rs$$);$readStream$$.on("open",function(){$readStream$$.pipe($res$$)});$readStream$$.on("error",function($err$$){$res$$.end($err$$)})}else $res$$.status(400).send("File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i")}else $res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y")})})})})};
|
package/server/route.js
CHANGED
|
@@ -25,8 +25,6 @@ $app$$.use("/public",$public_router$$);const $funcs_public_inited$$={};configs.p
|
|
|
25
25
|
path.join(__dirname,"images"),$imgPath$$=path.join($root_dir$$,$req$$.params.folder,$req$$.params.filename);if(fs.existsSync($imgPath$$)){let $size$$,$cache$$;if($req$$.query.size||$req$$.query.resize)switch(String($req$$.query.size||$req$$.query.resize).toUpperCase()){case "64":case "X":$size$$=64;$cache$$=!0;break;case "128":$size$$=128;$cache$$=!0;break;case "320":case "S":$size$$=320;$cache$$=!0;break;case "512":case "M":$size$$=512;$cache$$=!0;break;case "1024":case "L":$size$$=1024;$cache$$=
|
|
26
26
|
!0;break;default:try{$size$$=Number($req$$.query.size||$req$$.query.resize)}catch($e$$){console.log("size param must be X or S or M or L or a number")}}if($size$$){let $file_name_resize$$=path.join($root_dir$$,$req$$.params.folder,String($size$$)+"."+$req$$.params.filename);if(fs.existsSync($file_name_resize$$))return gm($file_name_resize$$).stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)});$cache$$?gm($imgPath$$).resize($size$$,null).write($file_name_resize$$,function($error$$){if($error$$)console.log("Can't resize image \n"+
|
|
27
27
|
$error$$),$res$$.sendFile($imgPath$$);else return gm($file_name_resize$$).stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)})}):gm($imgPath$$).resize($size$$,null).stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)})}else $res$$.sendFile($imgPath$$)}else $res$$.sendFile(path.join(__dirname,"images","others","noimage.png"))});const $Labelinfo$$=global.getModel("labelinfo");$app$$.get("/labels/:labelid",$createRateLimiterMiddleware_limiter_others$$,function($labelid_req$$,$res$$){$labelid_req$$=
|
|
28
|
-
$labelid_req$$.params.labelid.toUpperCase();$Labelinfo$$.find({labelid:$labelid_req$$}).lean().exec(($e$$,$labels$$)=>{if($e$$)return $res$$.status(400).send($e$$);let $_labels$$={};$labels$$.forEach($l$$=>{$_labels$$[$l$$.textid]=$l$$});$res$$.send($_labels$$)})});const $qr$$=require("qr-image");$app$$.get("/qrcode",$createRateLimiterMiddleware_limiter_others$$,function($req$$,$res$$){let $report$$=$req$$.query.report;$report$$||($report$$=$req$$.query.data)&&($report$$=
|
|
29
|
-
if(!$report$$)return $res$$.status(400).send("miss parameter 'report'");setImmediate(()=>{const $code$$=$qr$$.image($report$$,{type:"svg"});$res$$.type("svg");$code$$.pipe($res$$)})});
|
|
30
|
-
|
|
31
|
-
$app$$.post("/sendmail",function($req$$,$res$$){setImmediate(()=>{let $msg$$=$req$$.body;if("KHGFIUWPPC"!==$msg$$.secretKey)return $res$$.status(400).send("Not allow");if(!$msg$$.to||!$msg$$.subject||!$msg$$.message)return $res$$.status(400).send("Msg is not valid");$nodemailer$$.createTransport({host:"mail.flexbiz.app",port:25,secure:!1,auth:{user:"info",pass:""},tls:{rejectUnauthorized:!1},name:$msg$$.name}).sendMail({from:"info@flexbiz.app",to:$msg$$.to,subject:$msg$$.subject,text:$msg$$.message,
|
|
32
|
-
html:$msg$$.message},$e$$=>{if($e$$)return $res$$.status(400).send($e$$);$res$$.send("OK")})})})}$cb$$()};
|
|
28
|
+
$labelid_req$$.params.labelid.toUpperCase();$Labelinfo$$.find({labelid:$labelid_req$$}).lean().exec(($e$$,$labels$$)=>{if($e$$)return $res$$.status(400).send($e$$);let $_labels$$={};$labels$$.forEach($l$$=>{$_labels$$[$l$$.textid]=$l$$});$res$$.send($_labels$$)})});if(configs.has_api_barcode){const $qr$$=require("qr-image");$app$$.get("/qrcode",$createRateLimiterMiddleware_limiter_others$$,function($req$$,$res$$){let $report$$=$req$$.query.report;$report$$||($report$$=$req$$.query.data)&&($report$$=
|
|
29
|
+
Buffer.from($report$$,"base64").toString("utf8"));if(!$report$$)return $res$$.status(400).send("miss parameter 'report'");setImmediate(()=>{const $code$$=$qr$$.image($report$$,{type:"svg"});$res$$.type("svg");$code$$.pipe($res$$)})});const $bwipjs$$=require("bwip-js"),$stream$$=require("stream");$app$$.get("/barcode",$createRateLimiterMiddleware_limiter_others$$,function($height_req$$,$res$$){let $code$$=$height_req$$.query.code||"code128",$data$$=$height_req$$.query.data;$height_req$$=Number($height_req$$.query.height||
|
|
30
|
+
10);if(!$data$$)return $res$$.status(400).send({error:"Thi\u1ebfu c\u00e1c tham s\u1ed1 data"});$bwipjs$$.toBuffer({bcid:$code$$,text:$data$$,scale:3,height:$height_req$$,includetext:!0,textxalign:"center"},function($bufferStream_e$$,$png$$){$bufferStream_e$$?(console.error($bufferStream_e$$,$code$$,$data$$),$res$$.status(400).send({error:$bufferStream_e$$.message||$bufferStream_e$$.error||$bufferStream_e$$})):($bufferStream_e$$=new $stream$$.PassThrough,$bufferStream_e$$.end($png$$),$bufferStream_e$$.pipe($res$$))})})}}$cb$$()};
|