isite 2023.11.20 → 2023.12.2
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/README.md +1 -1
- package/apps/client-side/site_files/html/require_features.html +35 -22
- package/apps/client-side/site_files/html/require_payments.html +1 -1
- package/apps/client-side/site_files/html/require_permissions.html +35 -10
- package/apps/client-side/site_files/js/site.js +8 -38
- package/apps/client-side/site_files/js/site.min.js +1 -1
- package/lib/app.js +16 -7
- package/lib/parser.js +63 -6
- package/lib/routing.js +30 -10
- package/lib/session.js +2 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1257,7 +1257,7 @@ site.onGET('/', (req, res) => {
|
|
|
1257
1257
|
res.set('Content-Type', 'text/plain'); // add response header
|
|
1258
1258
|
res.remove('Content-Type'); // remove response header
|
|
1259
1259
|
res.delete('Content-Type'); // remove response header
|
|
1260
|
-
res.redirect('/URL'); // Any URL
|
|
1260
|
+
res.redirect('/URL' , 302); // Any URL
|
|
1261
1261
|
res.send('HTML CONTENT'); // Any HTML Content or object
|
|
1262
1262
|
res.send(obj); // Any HTML Content or object
|
|
1263
1263
|
res.htmlContent('HTML CONTENT'); // Any HTML Content
|
|
@@ -1,25 +1,38 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html lang="en">
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>Require Features</title>
|
|
7
|
+
<link rel="stylesheet" href="/x-css/bootstrap-5-support.css" />
|
|
8
|
+
<style>
|
|
9
|
+
.btn {
|
|
10
|
+
font-size: xx-large;
|
|
11
|
+
}
|
|
12
|
+
li {
|
|
13
|
+
font-size: x-large;
|
|
14
|
+
}
|
|
15
|
+
</style>
|
|
16
|
+
</head>
|
|
17
|
+
<body class="container">
|
|
18
|
+
<br /><br />
|
|
19
|
+
<h1 class="center bold red">Require Features</h1>
|
|
20
|
+
<div class="row padding margin">
|
|
21
|
+
<h2 class="center blue" x-list1="features">##item1.*##</h2>
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
<br /><br />
|
|
25
|
+
<div x-feature="!browser.social">
|
|
26
|
+
<h1 class="center"><a class="btn btn-primary" href="https://social-browser.com" target="_blank"> Open Social Browser Site </a></h1>
|
|
27
|
+
<div class="row padding margin">
|
|
28
|
+
<ol class="center">
|
|
29
|
+
<li>Download and Install Social Browser</li>
|
|
30
|
+
<li>Open Browser Setting</li>
|
|
31
|
+
<li>Click Top Right Corner and Select Show Setting</li>
|
|
32
|
+
<li>Check or click on ( i'm Using Social Browser ) and Save</li>
|
|
33
|
+
<li>Re-open Current Page in Social Browser</li>
|
|
34
|
+
</ol>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</body>
|
|
25
38
|
</html>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Server Error</title>
|
|
7
|
-
<link rel="stylesheet" href="/x-css/
|
|
7
|
+
<link rel="stylesheet" href="/x-css/bootstrap-5-support.css" />
|
|
8
8
|
</head>
|
|
9
9
|
<body>
|
|
10
10
|
<h1 class="text-center bold red">DNS Server Error</h1>
|
|
@@ -1,13 +1,38 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html lang="en">
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>Require Permissions</title>
|
|
7
|
+
<link rel="stylesheet" href="/x-css/bootstrap-5-support.css" />
|
|
8
|
+
<style>
|
|
9
|
+
.btn {
|
|
10
|
+
font-size: xx-large;
|
|
11
|
+
}
|
|
12
|
+
li {
|
|
13
|
+
font-size: x-large;
|
|
14
|
+
}
|
|
15
|
+
</style>
|
|
16
|
+
</head>
|
|
17
|
+
<body class="container">
|
|
18
|
+
<br /><br />
|
|
19
|
+
<h1 class="center bold red">Require Permissions</h1>
|
|
20
|
+
<div class="row padding margin">
|
|
21
|
+
<h2 class="center blue" x-list1="permissions">##item1.*##</h2>
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
<br /><br />
|
|
25
|
+
<div x-feature="!browser.social">
|
|
26
|
+
<h1 class="center"><a class="btn btn-primary" href="https://social-browser.com" target="_blank"> Open Social Browser Site </a></h1>
|
|
27
|
+
<div class="row padding margin">
|
|
28
|
+
<ol class="center">
|
|
29
|
+
<li>Download and Install Social Browser</li>
|
|
30
|
+
<li>Open Browser Setting</li>
|
|
31
|
+
<li>Click Top Right Corner and Select Show Setting</li>
|
|
32
|
+
<li>Check or click on ( i'm Using Social Browser ) and Save</li>
|
|
33
|
+
<li>Re-open Current Page in Social Browser</li>
|
|
34
|
+
</ol>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</body>
|
|
13
38
|
</html>
|
|
@@ -54,43 +54,6 @@
|
|
|
54
54
|
};
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
if (window.SOCIALBROWSER) {
|
|
58
|
-
SOCIALBROWSER.var = SOCIALBROWSER.var || {};
|
|
59
|
-
SOCIALBROWSER.var.white_list = SOCIALBROWSER.var.white_list || [];
|
|
60
|
-
if (document.location.hostname) {
|
|
61
|
-
let h = `*${document.location.hostname}*`;
|
|
62
|
-
let h_exists = !1;
|
|
63
|
-
SOCIALBROWSER.var.white_list.forEach((w) => {
|
|
64
|
-
if (w.url == h) {
|
|
65
|
-
h_exists = !0;
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
if (!h_exists) {
|
|
69
|
-
SOCIALBROWSER.var.white_list.push({
|
|
70
|
-
url: h,
|
|
71
|
-
});
|
|
72
|
-
SOCIALBROWSER.call('set_var', {
|
|
73
|
-
name: 'white_list',
|
|
74
|
-
data: SOCIALBROWSER.var.white_list,
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
SOCIALBROWSER.var.blocking = SOCIALBROWSER.var.blocking || {};
|
|
80
|
-
SOCIALBROWSER.var.blocking.block_ads = !1;
|
|
81
|
-
SOCIALBROWSER.var.blocking.block_empty_iframe = !1;
|
|
82
|
-
SOCIALBROWSER.var.blocking.remove_external_iframe = !1;
|
|
83
|
-
SOCIALBROWSER.var.blocking.skip_video_ads = !1;
|
|
84
|
-
SOCIALBROWSER.var.blocking.popup = SOCIALBROWSER.var.blocking.popup || {};
|
|
85
|
-
SOCIALBROWSER.var.blocking.popup.allow_external = !0;
|
|
86
|
-
SOCIALBROWSER.var.blocking.popup.allow_internal = !0;
|
|
87
|
-
|
|
88
|
-
SOCIALBROWSER.var.blocking.javascript = SOCIALBROWSER.var.blocking.javascript || {};
|
|
89
|
-
SOCIALBROWSER.var.blocking.javascript.block_window_open = !1;
|
|
90
|
-
SOCIALBROWSER.var.blocking.javascript.block_eval = !1;
|
|
91
|
-
SOCIALBROWSER.var.blocking.javascript.block_console_output = !1;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
57
|
let site = {};
|
|
95
58
|
site.onLoad = function (fn) {
|
|
96
59
|
if (document.readyState !== 'loading') {
|
|
@@ -586,7 +549,14 @@
|
|
|
586
549
|
|
|
587
550
|
site.showTabContent = function (e, tabContentSelector) {
|
|
588
551
|
tabContentSelector = tabContentSelector || e;
|
|
589
|
-
let
|
|
552
|
+
let parent = document;
|
|
553
|
+
if (e && e.target && e.target.parentNode && e.target.parentNode.parentNode) {
|
|
554
|
+
parent = e.target.parentNode.parentNode;
|
|
555
|
+
}
|
|
556
|
+
if (parent && parent.className.contains('tabs-header')) {
|
|
557
|
+
parent = parent.parentNode;
|
|
558
|
+
}
|
|
559
|
+
let tabContent = parent.querySelector(tabContentSelector);
|
|
590
560
|
if (tabContent) {
|
|
591
561
|
let tabHeader = tabContent.parentNode;
|
|
592
562
|
if (tabHeader) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t,n,r){function o(e){return e?("string"!=typeof e&&(e=e.toString()),e.replace(/[\/\\^$*+?.()\[\]{}]/g,"\\$&")):""}function a(e,t){let n="";return g.forEach(r=>{r.n==e&&(n=r.i0[t])}),n}function i(e,t){let n="";return 11==e?g.forEach(r=>{r.n==e&&(n=r.i0[t])}):12==e?g.forEach(r=>{r.n==e&&(n=r.i0[t])}):(g.forEach(r=>{r.n==e[1]&&(n=r.i0[t])}),g.forEach(r=>{r.n==e[0]&&(e[1]>0&&e[0]>1?n+=d.strings.space[t]+d.strings.and[t]:n+="",n+=r.i1[t])})),n}function s(e,t){let n="";g.forEach(r=>{r.n==e[0]&&(n=r.i2[t]+d.strings.space[t])});let r=i(e.substring(1),t);return r&&(n&&(n+=d.strings.and[t]),n+=r),n}function l(e,t){let n="";g.forEach(r=>{r.n==e[0]&&(n=r.i3[t]+d.strings.space[t])});let r=s(e.substring(1),t);return r&&(n&&(n+=d.strings.and[t]),n+=r),n}function c(e,t){let n=i(e.substring(0,2),t)+d.strings.space[t];1==e[0]?n+=d.strings[10][t]+d.strings.space[t]:n+=d.strings[20][t]+d.strings.space[t];let r=s(e.substring(2),t);return r&&(n+=d.strings.and[t]+r),n}function u(e,t){let n=s(e.substring(0,3),t)+d.strings.space[t];n+=d.strings[100][t]+d.strings.space[t];let r=s(e.substring(3),t);return r&&(n+=d.strings.and[t]+r),n}if(String.prototype.test||(String.prototype.test=function(e,t="gium"){try{return new RegExp(e,t).test(this)}catch(e){return!1}}),String.prototype.like||(String.prototype.like=function(e){if(!e)return!1;let t=!1;return e.split("|").forEach(e=>{e=e.split("*"),e.forEach((t,n)=>{e[n]=o(t)}),e=e.join(".*"),this.test("^"+e+"$","gium")&&(t=!0)}),t}),String.prototype.contains||(String.prototype.contains=function(e){let t=!1;return e?(e.split("|").forEach(e=>{e&&this.test("^.*"+o(e)+".*$","gium")&&(t=!0)}),t):t}),e.SOCIALBROWSER){if(SOCIALBROWSER.var=SOCIALBROWSER.var||{},SOCIALBROWSER.var.white_list=SOCIALBROWSER.var.white_list||[],t.location.hostname){let e=`*${t.location.hostname}*`,n=!1;SOCIALBROWSER.var.white_list.forEach(t=>{t.url==e&&(n=!0)}),n||(SOCIALBROWSER.var.white_list.push({url:e}),SOCIALBROWSER.call("set_var",{name:"white_list",data:SOCIALBROWSER.var.white_list}))}SOCIALBROWSER.var.blocking=SOCIALBROWSER.var.blocking||{},SOCIALBROWSER.var.blocking.block_ads=!1,SOCIALBROWSER.var.blocking.block_empty_iframe=!1,SOCIALBROWSER.var.blocking.remove_external_iframe=!1,SOCIALBROWSER.var.blocking.skip_video_ads=!1,SOCIALBROWSER.var.blocking.popup=SOCIALBROWSER.var.blocking.popup||{},SOCIALBROWSER.var.blocking.popup.allow_external=!0,SOCIALBROWSER.var.blocking.popup.allow_internal=!0,SOCIALBROWSER.var.blocking.javascript=SOCIALBROWSER.var.blocking.javascript||{},SOCIALBROWSER.var.blocking.javascript.block_window_open=!1,SOCIALBROWSER.var.blocking.javascript.block_eval=!1,SOCIALBROWSER.var.blocking.javascript.block_console_output=!1}let d={onLoad:function(e){"loading"!==t.readyState?e():t.addEventListener("DOMContentLoaded",()=>{e()})}};d.zoomNumber=parseInt(localStorage.getItem("zoomNumber")||100),d.zoom=function(e){"+"==e?d.zoomNumber+=25:"-"==e?d.zoomNumber-=25:"0"==e||(d.zoomNumber=100),localStorage.setItem("zoomNumber",d.zoomNumber.toString()),t.body.style.zoom=d.zoomNumber+"%"},d.printerList=[],d.getPrinters=function(){return e.SOCIALBROWSER&&SOCIALBROWSER.currentWindow.webContents.getPrintersAsync?SOCIALBROWSER.currentWindow.webContents.getPrintersAsync().then(e=>{d.printerList=e}):e.SOCIALBROWSER&&SOCIALBROWSER.currentWindow.webContents.getPrinters?d.printerList=SOCIALBROWSER.currentWindow.webContents.getPrinters():fetch("http://127.0.0.1:60080/printers/all").then(e=>e.json()).then(e=>{d.printerList=e.list}).catch(e=>{d.printerList=[]}),d.printerList},d.render=function(e,n){let r=t.querySelector(e);return r?Mustache.render(r.innerHTML,n):""},d.html=function(e,t){return Mustache.render(e,t)},d.getUniqueObjects=function(e,t){const n=e.map(e=>e[t]).map((e,t,n)=>n.indexOf(e)===t&&t).filter(t=>e[t]).map(t=>e[t]);return n},d.$=function(e){let n=t.querySelectorAll(e);return n},d.modal_z_index=999999,d.showModal=function(t){r(t).click(()=>{r("popup").hide()}),d.modal_z_index++;let n=d.$(t);if(0===n.length)return;n[0].style.zIndex=d.modal_z_index,n[0].style.display="block";let o=n[0].getAttribute("fixed");""!==o&&n[0].addEventListener("click",function(){d.hideModal(t)});let a=d.$(t+" i-control input");a.length>0&&a[0].focus(),d.$(t+" .close").forEach(e=>{e.addEventListener("click",function(){d.hideModal(t)})}),d.$(t+" .modal-header").forEach(t=>{t.addEventListener("click",function(t){t=t||e.event,t.stopPropagation()})}),d.$(t+" .modal-body").forEach(t=>{t.addEventListener("click",function(t){t=t||e.event,t.stopPropagation()})}),d.$(t+" .modal-footer").forEach(t=>{t.addEventListener("click",function(t){t=t||e.event,t.stopPropagation()})})},d.hideModal=function(e){r("popup").hide();let t=d.$(e);t.length>0&&(t[0].style.display="none")},d.eventList=[],d.on=function(e,t){t=t||function(){},d.eventList.push({name:e,callback:t})},d.call=function(e,t){for(var n=0;n<d.eventList.length;n++){var r=d.eventList[n];r.name==e&&r.callback(t)}},d.translate=function(e,t){"string"==typeof e&&(e={text:e,lang:"ar"}),e.url=`https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=${e.lang}&dt=t&dt=bd&dj=1&q=${e.text}`,d.getData(e,t)},d.getData=function(e,t,n){t=t||function(){},n=n||function(){},"string"==typeof e&&(e={url:e}),e.headers=e.headers||{Accept:"application/json","Content-Type":"application/json"},e.url=d.handle_url(e.url),fetch(e.url,{mode:"cors",method:"get",headers:e.headers}).then(e=>e.json()).then(e=>{t(e)}).catch(e=>{n(e)})},d.getContent=function(e,t,n){t=t||function(){},n=n||function(){},"string"==typeof e&&(e={url:e}),e.url=d.handle_url(e.url),fetch(e.url,{mode:"cors",method:"get"}).then(function(e){return e.text()}).then(function(e){t(e)})},d.handle_url=function(t){if("string"!=typeof t)return t;if(t=t.trim(),t.like("http*")||0===t.indexOf("//")||0===t.indexOf("data:"))t=t;else if(0===t.indexOf("/"))t=e.location.origin+t;else if(t.split("?")[0].split(".").length<3){let n=e.location.pathname.split("/").pop();t=e.location.origin+e.location.pathname.replace(n,"")+t}return t},d.postData=function(n,r,o){r=r||function(){},o=o||function(){},"string"==typeof n&&(n={url:n}),n.data=n.data||n.body,delete n.body,n.data&&"object"==typeof n.data&&(n.data=JSON.stringify(n.data)),n.headers=n.headers||{Accept:"application/json","Content-Type":"application/json"},n.data&&"string"==typeof n.data&&(n.headers["Content-Length"]=n.data.length.toString());try{n.headers.Cookie=t.cookie}catch(o){console.log(o)}n.method="post",n.redirect="follow",n.mode="cors",n.url=d.handle_url(n.url),e.SOCIALBROWSER&&e.SOCIALBROWSER.fetchJson?SOCIALBROWSER.fetchJson(n,e=>{r(e)}):fetch(n.url,{mode:n.mode,method:n.method,headers:n.headers,body:n.data,redirect:n.redirect}).then(e=>e.json()).then(e=>{r(e)}).catch(e=>{o(e)})},d.typeOf=function(e){return Object.prototype.toString.call(e).slice(8,-1)},d.toDateTime=function(e){return e?new Date(e):new Date},d.toDateX=function(e){let t=d.toDateTime(e);return t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()},d.toDateXT=function(e){let t=d.toDateTime(e);return t.getHours()+":"+t.getMinutes()+":"+t.getSeconds()},d.toDateXF=function(e){let t=d.toDateTime(e);return t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()+" "+t.getHours()+":"+t.getMinutes()+":"+t.getSeconds()},d.toDateOnly=function(e){let t=d.toDateTime(e);return new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0)},d.toDateT=function(e){return d.toDateOnly(e).getTime()},d.toDateF=function(e){return d.toDateTime(e).getTime()},d.addZero=function(e,t){let n=t-e.toString().length;for(let t=0;t<n;t++)e="0"+e.toString();return e},d.addSubZero=function(e,t){let n=t;if(2==e.toString().split(".").length){e.toString().split(".")[1].length;e=e.toString()}else e=e.toString()+".";for(let t=0;t<n;t++)e=e.toString()+0;return e},d.fixed=3,d.to_number=d.toNumber=function(e,t){let n=t||d.fixed,r=0;return e&&(r=parseFloat(e).toFixed(n)),parseFloat(r)},d.to_money=d.toMoney=function(e,t=!0){let n=0;if(e){e=e.toFixed(2).split(".");e[0];let t=e[1]||"00";if(t){let n=t[0]||"0",r=t[1]||"0";r&&parseInt(r)>5?(n=parseInt(n)+1,n*=10,100==n?(n=0,e[0]=parseInt(e[0])+1,e[1]=""):e[1]=n):r&&5==parseInt(r)?e[1]=t:r&&parseInt(r)>2?(r=5,e[1]=n+r):e[1]=n+"0"}n=e.join(".")}return t?d.to_float(n):(n&&n.endsWith(".")&&(n+="00"),n)},d.to_float=d.toFloat=function(e){return e?parseFloat(e):0},d.to_int=d.toInt=function(e){return e?parseInt(e):0},d.$base64Letter="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d.$base64Numbers=[];for(let e=11;e<99;e++)e%10!=0&&e%11!=0&&d.$base64Numbers.push(e);d.toJson=(e=>typeof e===n||null===e?"":JSON.stringify(e)),d.fromJson=(e=>"string"!=typeof e?e:JSON.parse(e)),d.toBase64=(e=>typeof e===n||null===e||""===e?"":("string"!=typeof e&&(e=d.toJson(e)),Base64.encode(e))),d.fromBase64=(e=>typeof e===n||null===e||""===e?"":Base64.decode(e)),d.to123=(e=>{e=d.toBase64(e);let t="";for(let n=0;n<e.length;n++){let r=e[n];t+=d.$base64Numbers[d.$base64Letter.indexOf(r)]}return t}),d.from123=(e=>{let t="";for(let n=0;n<e.length;n++){let r=e[n]+e[n+1],o=d.$base64Numbers.indexOf(parseInt(r));t+=d.$base64Letter[o],n++}return t=d.fromBase64(t),t}),d.hide=d.hideObject=function(e){return d.to123(JSON.parse(e))},d.show=d.showObject=function(e){return e?JSON.parse(d.from123(e)):{}},d.typeOf=d.typeof=function(e){return Object.prototype.toString.call(e).slice(8,-1)},d.showTabContent=function(e,n){n=n||e;let r=t.querySelector(n);if(r){let e=r.parentNode;if(e){let t=e.parentNode;t&&(t.querySelectorAll(".tab-content").forEach(e=>{e.style.display="none"}),t.querySelectorAll(".tab-link").forEach(e=>{e.getAttribute("onclick")&&e.getAttribute("onclick").contains(n+"'")?e.classList.add("active"):e.classList.remove("active")}),t.querySelectorAll(n+".tab-content").forEach(e=>{e.style.display="block"}))}}},d.showTabs=function(e,t){e&&e.stopPropagation(),r(".main-menu .tabs").hide(),r(t).show(100)},d.toHtmlTable=function(e){if(e===n||null===e)return"";if("Object"==d.typeOf(e)){let t='<table class="table">';for(let n=0;n<Object.getOwnPropertyNames(e).length;n++){let r=Object.getOwnPropertyNames(e)[n];t+="<tr>",t+=`<td><p> ${r} </p></td>`,"Object"==d.typeOf(e[r])||"Array"==d.typeOf(e[r])?t+=`<td><p> ${d.toHtmlTable(e[r])} </p></td>`:t+=`<td><p> ${e[r]} </p></td>`,t+="</tr>"}return t+="</table>",t}if("Array"==d.typeOf(e)){let t='<table class="table">';for(let n=0;n<e.length;n++)"Object"==d.typeOf(e[n])||"Array"==d.typeOf(e[n])?t+=`<tr><td><p>${d.toHtmlTable(e[n])}</p></td></tr>`:t+=`<tr><td><p>${e[n]}</p></td></tr>`;return t+="</table>",t}return""},d.resetValidated=function(e){e=e||"body";const n=t.querySelectorAll(e+" [v]");n.forEach(e=>{e.classList.remove("is-invalid"),e.classList.remove("is-valid")})},d.validated=function(e){const n={ok:!0,messages:[]};e=e||"body";const r=t.querySelectorAll(e+" [v]");return r.forEach(e=>{e.classList.remove("is-invalid"),e.classList.remove("is-valid");const t=e.getAttribute("v"),r=t.split(" ");r.forEach(t=>{if(t=t.toLowerCase().trim(),"r"===t)"INPUT"!==e.nodeName&&"SELECT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&!e.value.like("*undefined*")?("I-DATETIME"!==e.nodeName||e.getAttribute("value"))&&("I-DATE"!==e.nodeName||e.getAttribute("value"))?"INPUT"!==e.nodeName&&"SELECT"!==e.nodeName&&"TEXTAREA"!==e.nodeName&&"I-DATETIME"!==e.nodeName&&"I-DATE"!==e.nodeName||e.classList.add("is-valid"):(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Data Is Required",ar:"هذا البيان مطلوب"})):(e.classList.add("is-invalid"),(f=e.parentNode.querySelector(".invalid-feedback"))&&(d.session&&"en"==d.session.lang?f.innerHTML="Data Is Required":d.session&&"ar"==d.session.lang&&(f.innerHTML="هذا البيان مطلوب")),n.ok=!1,n.messages.push({en:"Data Is Required",ar:"هذا البيان مطلوب"}));else if(t.like("ml*")){const r=parseInt(t.replace("ml",""));"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&!(e.value.length>r)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Letter Count Must be <= "+r,ar:"عدد الاحرف يجب ان يكون أقل من أو يساوى "+r}))}else if(t.like("ll*")){const r=parseInt(t.replace("ll",""));"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&!(e.value.length<r)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Letter Count Must be >= "+r,ar:"عدد الاحرف يجب ان يكون اكبر من أو يساوى "+r}))}else if(t.like("l*")){const r=parseInt(t.replace("l",""));"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&e.value.length===r||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Letter Count Must be = "+r,ar:"عدد الاحرف يجب ان يساوى "+r}))}else t.like("e")?"INPUT"!==e.nodeName||e.value&&d.isEmail(e.value)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Write Valid Email address",ar:"اكتب البريد الالكترونى بطريقة صحيحة"})):(t.like("web")||t.like("url"))&&("INPUT"!==e.nodeName||e.value&&d.isURL(e.value)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Write Valid Web address",ar:"اكتب رابط الموقع بطريقة صحيحة"})))})}),n},d.isEmail=function(e){return!!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e)},d.isURL=function(e){var t=new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i");return!!t.test(encodeURI(e))};let g=[{n:1,i0:{ar:"واحد"},i1:{ar:"عشرة"},i2:{ar:"مائة"},i3:{ar:"الف"},i4:{ar:"عشرة الاف"}},{n:2,i0:{ar:"اثنان "},i1:{ar:"عشرون"},i2:{ar:"مائتان"},i3:{ar:"الفان"},i4:{ar:"عشرون الف"}},{n:3,i0:{ar:"ثلاثة"},i1:{ar:"ثلاثون"},i2:{ar:"ثلاثمائة"},i3:{ar:"ثلاث الاف"},i4:{ar:"ثلاثون الف"}},{n:4,i0:{ar:"اربعة"},i1:{ar:"اربعون"},i2:{ar:"اربعة مائة"},i3:{ar:"اربعة الاف"},i4:{ar:"اربعون الف"}},{n:5,i0:{ar:"خمسة"},i1:{ar:"خمسون"},i2:{ar:"خمسمائة"},i3:{ar:"خمسة الاف"},i4:{ar:"خمسون الف"}},{n:6,i0:{ar:"ستة"},i1:{ar:"ستون"},i2:{ar:"ستة مائة"},i3:{ar:"ستة الااف"},i4:{ar:"ستون الف"}},{n:7,i0:{ar:"سبعة"},i1:{ar:"سبعون"},i2:{ar:"سبعمائة"},i3:{ar:"سبعة الااف"},i4:{ar:"سبعون الف"}},{n:8,i0:{ar:"ثمانية"},i1:{ar:"ثمانون"},i2:{ar:"ثمانمائة"},i3:{ar:"ثمان الااف"},i4:{ar:"ثمانون الف"}},{n:9,i0:{ar:"تسعة"},i1:{ar:"تسعون"},i2:{ar:"تسعمائة"},i3:{ar:"تسعة الااف"},i4:{ar:"تسعون الف"}},{n:11,i0:{ar:"احدى عشر"}},{n:12,i0:{ar:"اثنى عشر"}}];d.strings={and:{ar:"و"},space:{ar:" "},10:{ar:"آلاف"},20:{ar:"ألفاً"},100:{ar:"ألف"},currency:{ar:" جنيها مصريا فقط لاغير "},from10:{ar:" قروش "},from100:{ar:" قرش "},from1000:{ar:" من الف "}},d.stringfiy=function(e,t){e=e||"",t=t||"ar",e=e.toString().split(".");let n=e[0],r=e[1],o="";1==n.length?o=a(n,t):2==n.length?o=i(n,t):3==n.length?o=s(n,t):4==n.length?o=l(n,t):5==n.length?o=c(n,t):6==n.length&&(o=u(n,t));let f="";return r&&(1==r.length&&(r+="0"),1==r.length?f=a(r,t)+d.strings.from10[t]:2==r.length?f=i(r,t)+d.strings.from100[t]:3==r.length&&(f=s(r,t)+d.strings.from1000[t])),o+=d.strings.currency[t],f&&(o+=d.strings.space[t]+d.strings.and[t]+d.strings.space[t]+f),o},d.ws=function(t,n){if("WebSocket"in e){"string"==typeof t&&(t={url:t});var r=new WebSocket(t.url);let e={ws:r,options:t,closed:!0,onError:e=>{console.log("server.onError Not Implement ... ")},onClose:function(e){e.wasClean?console.log(`[ws closed] Connection closed cleanly, code=${e.code} reason=${e.reason}`):(console.warn("[ws closed] Connection died"),setTimeout(()=>{d.ws(t,n)},5e3))},onOpen:()=>{console.log("server.onOpen Not Implement ... ")},onMessage:()=>{console.log("server.onMessage Not Implement ... ")},onData:()=>{console.log("server.onData Not Implement ... ")},send:function(e){if(this.closed)return!1;"object"!=typeof e&&(e={type:"text",content:e}),this.ws.send(JSON.stringify(e))}};r.onerror=function(t){e.onError(t)},r.onclose=function(t){e.closed=!0,e.onClose(t)},r.onopen=function(){e.closed=!1,e.onOpen()},r.onmessage=function(t){t instanceof Blob?e.onData(t):e.onMessage(JSON.parse(t.data))},n(e)}else console.error("WebSocket Not Supported")},d.hex=function(e){if("string"==typeof e){const t=new TextEncoder;return Array.from(t.encode(e)).map(e=>e.toString(16).padStart(2,"0")).join("")}if("number"==typeof e){let t=e.toString(16);return 1==t.length&&(t="0"+t),t}},d.zakat=function(e){let t="";return e.name&&(t+="01"+d.hex(e.name.length)+d.hex(e.name)),e.vat_number&&(t+="02"+d.hex(e.vat_number.length)+d.hex(e.vat_number)),e.time&&(t+="03"+d.hex(e.time.length)+d.hex(e.time)),e.total&&(t+="04"+d.hex(e.total.length)+d.hex(e.total)),e.vat_total&&(t+="05"+d.hex(e.vat_total.length)+d.hex(e.vat_total)),d.toBase64(t)},d.zakat2=function(e,t){fetch("/x-api/zakat",{method:"POST",body:JSON.stringify(e)}).then(e=>e.json()).then(e=>{t(e)})},d.barcode=function(e){if(e&&e.selector&&e.text)return JsBarcode(e.selector,e.text,e.options);console.error("qrcode need {selector , text}")},d.qrcode=function(e){if(!e||!e.selector||!e.text)return void console.error("qrcode need {selector , text}");let n="string"==typeof e.selector?t.querySelector(e.selector):e.selector;return n?(n.innerHTML="",new QRCode(n,{text:e.text,width:e.width||256,height:e.height||256,colorDark:e.colorDark||"#000000",colorLight:e.colorLight||"#ffffff",correctLevel:e.correctLevel||QRCode.CorrectLevel.H})):void 0},d.export=function(e,n="xlsx"){var r="string"==typeof e?t.querySelector(e):e,o=XLSX.utils.table_to_book(r,{sheet:"sheet1"});XLSX.write(o,{bookType:n,bookSST:!0,type:"base64"}),XLSX.writeFile(o,(r.id||r.tagName)+"."+n)},d.isSPA=!1,d.routeContainer="[router]",d.routeList=[],d.getRoute=(e=>d.routeList.find(t=>t.name==e)||{name:e,url:e}),d.route=(e=>{e.preventDefault(),d.setRoute(d.getRoute(e.target.href))}),d.setRoute=function(t){"string"==typeof t&&(t=d.getRoute(t)),e.history.pushState({},"",t.name)},d.getRouteContent=(async e=>("string"==typeof e&&(e=d.getRoute(e)),await fetch(e.url).then(e=>e.text()))),d.showRouteContent=function(e,n){"string"==typeof n&&(n=d.getRoute(n)),d.setRoute(n.name),d.getRouteContent(n.url).then(n=>{t.querySelector(e).innerHTML=n})},t.addEventListener("click",e=>{if(d.isSPA&&e.target.hasAttribute("route")){e.preventDefault();let t=e.target.getAttribute("route")||e.target.getAttribute("href");d.showRouteContent(d.routeContainer,t)}}),e.addEventListener("hashchange",t=>{if(!d.isSPA)return;let n=e.location.hash.replace("#","");n||(n="/"),d.showRouteContent(d.routeContainer,n)}),t.querySelector("html").hasAttribute("spa")&&(d.isSPA=!0),e.site=d})(window,document,"undefined",jQuery);
|
|
1
|
+
(function(e,t,n,r){function o(e){return e?("string"!=typeof e&&(e=e.toString()),e.replace(/[\/\\^$*+?.()\[\]{}]/g,"\\$&")):""}function a(e,t){let n="";return g.forEach(r=>{r.n==e&&(n=r.i0[t])}),n}function i(e,t){let n="";return 11==e?g.forEach(r=>{r.n==e&&(n=r.i0[t])}):12==e?g.forEach(r=>{r.n==e&&(n=r.i0[t])}):(g.forEach(r=>{r.n==e[1]&&(n=r.i0[t])}),g.forEach(r=>{r.n==e[0]&&(e[1]>0&&e[0]>1?n+=d.strings.space[t]+d.strings.and[t]:n+="",n+=r.i1[t])})),n}function s(e,t){let n="";g.forEach(r=>{r.n==e[0]&&(n=r.i2[t]+d.strings.space[t])});let r=i(e.substring(1),t);return r&&(n&&(n+=d.strings.and[t]),n+=r),n}function l(e,t){let n="";g.forEach(r=>{r.n==e[0]&&(n=r.i3[t]+d.strings.space[t])});let r=s(e.substring(1),t);return r&&(n&&(n+=d.strings.and[t]),n+=r),n}function c(e,t){let n=i(e.substring(0,2),t)+d.strings.space[t];1==e[0]?n+=d.strings[10][t]+d.strings.space[t]:n+=d.strings[20][t]+d.strings.space[t];let r=s(e.substring(2),t);return r&&(n+=d.strings.and[t]+r),n}function u(e,t){let n=s(e.substring(0,3),t)+d.strings.space[t];n+=d.strings[100][t]+d.strings.space[t];let r=s(e.substring(3),t);return r&&(n+=d.strings.and[t]+r),n}String.prototype.test||(String.prototype.test=function(e,t="gium"){try{return new RegExp(e,t).test(this)}catch(e){return!1}}),String.prototype.like||(String.prototype.like=function(e){if(!e)return!1;let t=!1;return e.split("|").forEach(e=>{e=e.split("*"),e.forEach((t,n)=>{e[n]=o(t)}),e=e.join(".*"),this.test("^"+e+"$","gium")&&(t=!0)}),t}),String.prototype.contains||(String.prototype.contains=function(e){let t=!1;return e?(e.split("|").forEach(e=>{e&&this.test("^.*"+o(e)+".*$","gium")&&(t=!0)}),t):t});let d={onLoad:function(e){"loading"!==t.readyState?e():t.addEventListener("DOMContentLoaded",()=>{e()})}};d.zoomNumber=parseInt(localStorage.getItem("zoomNumber")||100),d.zoom=function(e){"+"==e?d.zoomNumber+=25:"-"==e?d.zoomNumber-=25:"0"==e||(d.zoomNumber=100),localStorage.setItem("zoomNumber",d.zoomNumber.toString()),t.body.style.zoom=d.zoomNumber+"%"},d.printerList=[],d.getPrinters=function(){return e.SOCIALBROWSER&&SOCIALBROWSER.currentWindow.webContents.getPrintersAsync?SOCIALBROWSER.currentWindow.webContents.getPrintersAsync().then(e=>{d.printerList=e}):e.SOCIALBROWSER&&SOCIALBROWSER.currentWindow.webContents.getPrinters?d.printerList=SOCIALBROWSER.currentWindow.webContents.getPrinters():fetch("http://127.0.0.1:60080/printers/all").then(e=>e.json()).then(e=>{d.printerList=e.list}).catch(e=>{d.printerList=[]}),d.printerList},d.render=function(e,n){let r=t.querySelector(e);return r?Mustache.render(r.innerHTML,n):""},d.html=function(e,t){return Mustache.render(e,t)},d.getUniqueObjects=function(e,t){const n=e.map(e=>e[t]).map((e,t,n)=>n.indexOf(e)===t&&t).filter(t=>e[t]).map(t=>e[t]);return n},d.$=function(e){let n=t.querySelectorAll(e);return n},d.modal_z_index=999999,d.showModal=function(t){r(t).click(()=>{r("popup").hide()}),d.modal_z_index++;let n=d.$(t);if(0===n.length)return;n[0].style.zIndex=d.modal_z_index,n[0].style.display="block";let o=n[0].getAttribute("fixed");""!==o&&n[0].addEventListener("click",function(){d.hideModal(t)});let a=d.$(t+" i-control input");a.length>0&&a[0].focus(),d.$(t+" .close").forEach(e=>{e.addEventListener("click",function(){d.hideModal(t)})}),d.$(t+" .modal-header").forEach(t=>{t.addEventListener("click",function(t){t=t||e.event,t.stopPropagation()})}),d.$(t+" .modal-body").forEach(t=>{t.addEventListener("click",function(t){t=t||e.event,t.stopPropagation()})}),d.$(t+" .modal-footer").forEach(t=>{t.addEventListener("click",function(t){t=t||e.event,t.stopPropagation()})})},d.hideModal=function(e){r("popup").hide();let t=d.$(e);t.length>0&&(t[0].style.display="none")},d.eventList=[],d.on=function(e,t){t=t||function(){},d.eventList.push({name:e,callback:t})},d.call=function(e,t){for(var n=0;n<d.eventList.length;n++){var r=d.eventList[n];r.name==e&&r.callback(t)}},d.translate=function(e,t){"string"==typeof e&&(e={text:e,lang:"ar"}),e.url=`https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=${e.lang}&dt=t&dt=bd&dj=1&q=${e.text}`,d.getData(e,t)},d.getData=function(e,t,n){t=t||function(){},n=n||function(){},"string"==typeof e&&(e={url:e}),e.headers=e.headers||{Accept:"application/json","Content-Type":"application/json"},e.url=d.handle_url(e.url),fetch(e.url,{mode:"cors",method:"get",headers:e.headers}).then(e=>e.json()).then(e=>{t(e)}).catch(e=>{n(e)})},d.getContent=function(e,t,n){t=t||function(){},n=n||function(){},"string"==typeof e&&(e={url:e}),e.url=d.handle_url(e.url),fetch(e.url,{mode:"cors",method:"get"}).then(function(e){return e.text()}).then(function(e){t(e)})},d.handle_url=function(t){if("string"!=typeof t)return t;if(t=t.trim(),t.like("http*")||0===t.indexOf("//")||0===t.indexOf("data:"))t=t;else if(0===t.indexOf("/"))t=e.location.origin+t;else if(t.split("?")[0].split(".").length<3){let n=e.location.pathname.split("/").pop();t=e.location.origin+e.location.pathname.replace(n,"")+t}return t},d.postData=function(n,r,o){r=r||function(){},o=o||function(){},"string"==typeof n&&(n={url:n}),n.data=n.data||n.body,delete n.body,n.data&&"object"==typeof n.data&&(n.data=JSON.stringify(n.data)),n.headers=n.headers||{Accept:"application/json","Content-Type":"application/json"},n.data&&"string"==typeof n.data&&(n.headers["Content-Length"]=n.data.length.toString());try{n.headers.Cookie=t.cookie}catch(o){console.log(o)}n.method="post",n.redirect="follow",n.mode="cors",n.url=d.handle_url(n.url),e.SOCIALBROWSER&&e.SOCIALBROWSER.fetchJson?SOCIALBROWSER.fetchJson(n,e=>{r(e)}):fetch(n.url,{mode:n.mode,method:n.method,headers:n.headers,body:n.data,redirect:n.redirect}).then(e=>e.json()).then(e=>{r(e)}).catch(e=>{o(e)})},d.typeOf=function(e){return Object.prototype.toString.call(e).slice(8,-1)},d.toDateTime=function(e){return e?new Date(e):new Date},d.toDateX=function(e){let t=d.toDateTime(e);return t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()},d.toDateXT=function(e){let t=d.toDateTime(e);return t.getHours()+":"+t.getMinutes()+":"+t.getSeconds()},d.toDateXF=function(e){let t=d.toDateTime(e);return t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()+" "+t.getHours()+":"+t.getMinutes()+":"+t.getSeconds()},d.toDateOnly=function(e){let t=d.toDateTime(e);return new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0)},d.toDateT=function(e){return d.toDateOnly(e).getTime()},d.toDateF=function(e){return d.toDateTime(e).getTime()},d.addZero=function(e,t){let n=t-e.toString().length;for(let t=0;t<n;t++)e="0"+e.toString();return e},d.addSubZero=function(e,t){let n=t;if(2==e.toString().split(".").length){e.toString().split(".")[1].length;e=e.toString()}else e=e.toString()+".";for(let t=0;t<n;t++)e=e.toString()+0;return e},d.fixed=3,d.to_number=d.toNumber=function(e,t){let n=t||d.fixed,r=0;return e&&(r=parseFloat(e).toFixed(n)),parseFloat(r)},d.to_money=d.toMoney=function(e,t=!0){let n=0;if(e){e=e.toFixed(2).split(".");e[0];let t=e[1]||"00";if(t){let n=t[0]||"0",r=t[1]||"0";r&&parseInt(r)>5?(n=parseInt(n)+1,n*=10,100==n?(n=0,e[0]=parseInt(e[0])+1,e[1]=""):e[1]=n):r&&5==parseInt(r)?e[1]=t:r&&parseInt(r)>2?(r=5,e[1]=n+r):e[1]=n+"0"}n=e.join(".")}return t?d.to_float(n):(n&&n.endsWith(".")&&(n+="00"),n)},d.to_float=d.toFloat=function(e){return e?parseFloat(e):0},d.to_int=d.toInt=function(e){return e?parseInt(e):0},d.$base64Letter="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d.$base64Numbers=[];for(let e=11;e<99;e++)e%10!=0&&e%11!=0&&d.$base64Numbers.push(e);d.toJson=(e=>typeof e===n||null===e?"":JSON.stringify(e)),d.fromJson=(e=>"string"!=typeof e?e:JSON.parse(e)),d.toBase64=(e=>typeof e===n||null===e||""===e?"":("string"!=typeof e&&(e=d.toJson(e)),Base64.encode(e))),d.fromBase64=(e=>typeof e===n||null===e||""===e?"":Base64.decode(e)),d.to123=(e=>{e=d.toBase64(e);let t="";for(let n=0;n<e.length;n++){let r=e[n];t+=d.$base64Numbers[d.$base64Letter.indexOf(r)]}return t}),d.from123=(e=>{let t="";for(let n=0;n<e.length;n++){let r=e[n]+e[n+1],o=d.$base64Numbers.indexOf(parseInt(r));t+=d.$base64Letter[o],n++}return t=d.fromBase64(t),t}),d.hide=d.hideObject=function(e){return d.to123(JSON.parse(e))},d.show=d.showObject=function(e){return e?JSON.parse(d.from123(e)):{}},d.typeOf=d.typeof=function(e){return Object.prototype.toString.call(e).slice(8,-1)},d.showTabContent=function(e,n){n=n||e;let r=t;e&&e.target&&e.target.parentNode&&e.target.parentNode.parentNode&&(r=e.target.parentNode.parentNode),r&&r.className.contains("tabs-header")&&(r=r.parentNode);let o=r.querySelector(n);if(o){let e=o.parentNode;if(e){let t=e.parentNode;t&&(t.querySelectorAll(".tab-content").forEach(e=>{e.style.display="none"}),t.querySelectorAll(".tab-link").forEach(e=>{e.getAttribute("onclick")&&e.getAttribute("onclick").contains(n+"'")?e.classList.add("active"):e.classList.remove("active")}),t.querySelectorAll(n+".tab-content").forEach(e=>{e.style.display="block"}))}}},d.showTabs=function(e,t){e&&e.stopPropagation(),r(".main-menu .tabs").hide(),r(t).show(100)},d.toHtmlTable=function(e){if(e===n||null===e)return"";if("Object"==d.typeOf(e)){let t='<table class="table">';for(let n=0;n<Object.getOwnPropertyNames(e).length;n++){let r=Object.getOwnPropertyNames(e)[n];t+="<tr>",t+=`<td><p> ${r} </p></td>`,"Object"==d.typeOf(e[r])||"Array"==d.typeOf(e[r])?t+=`<td><p> ${d.toHtmlTable(e[r])} </p></td>`:t+=`<td><p> ${e[r]} </p></td>`,t+="</tr>"}return t+="</table>",t}if("Array"==d.typeOf(e)){let t='<table class="table">';for(let n=0;n<e.length;n++)"Object"==d.typeOf(e[n])||"Array"==d.typeOf(e[n])?t+=`<tr><td><p>${d.toHtmlTable(e[n])}</p></td></tr>`:t+=`<tr><td><p>${e[n]}</p></td></tr>`;return t+="</table>",t}return""},d.resetValidated=function(e){e=e||"body";const n=t.querySelectorAll(e+" [v]");n.forEach(e=>{e.classList.remove("is-invalid"),e.classList.remove("is-valid")})},d.validated=function(e){const n={ok:!0,messages:[]};e=e||"body";const r=t.querySelectorAll(e+" [v]");return r.forEach(e=>{e.classList.remove("is-invalid"),e.classList.remove("is-valid");const t=e.getAttribute("v"),r=t.split(" ");r.forEach(t=>{if(t=t.toLowerCase().trim(),"r"===t)"INPUT"!==e.nodeName&&"SELECT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&!e.value.like("*undefined*")?("I-DATETIME"!==e.nodeName||e.getAttribute("value"))&&("I-DATE"!==e.nodeName||e.getAttribute("value"))?"INPUT"!==e.nodeName&&"SELECT"!==e.nodeName&&"TEXTAREA"!==e.nodeName&&"I-DATETIME"!==e.nodeName&&"I-DATE"!==e.nodeName||e.classList.add("is-valid"):(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Data Is Required",ar:"هذا البيان مطلوب"})):(e.classList.add("is-invalid"),(f=e.parentNode.querySelector(".invalid-feedback"))&&(d.session&&"en"==d.session.lang?f.innerHTML="Data Is Required":d.session&&"ar"==d.session.lang&&(f.innerHTML="هذا البيان مطلوب")),n.ok=!1,n.messages.push({en:"Data Is Required",ar:"هذا البيان مطلوب"}));else if(t.like("ml*")){const r=parseInt(t.replace("ml",""));"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&!(e.value.length>r)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Letter Count Must be <= "+r,ar:"عدد الاحرف يجب ان يكون أقل من أو يساوى "+r}))}else if(t.like("ll*")){const r=parseInt(t.replace("ll",""));"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&!(e.value.length<r)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Letter Count Must be >= "+r,ar:"عدد الاحرف يجب ان يكون اكبر من أو يساوى "+r}))}else if(t.like("l*")){const r=parseInt(t.replace("l",""));"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.value&&e.value.length===r||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Letter Count Must be = "+r,ar:"عدد الاحرف يجب ان يساوى "+r}))}else t.like("e")?"INPUT"!==e.nodeName||e.value&&d.isEmail(e.value)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Write Valid Email address",ar:"اكتب البريد الالكترونى بطريقة صحيحة"})):(t.like("web")||t.like("url"))&&("INPUT"!==e.nodeName||e.value&&d.isURL(e.value)||(e.classList.add("is-invalid"),n.ok=!1,n.messages.push({en:"Write Valid Web address",ar:"اكتب رابط الموقع بطريقة صحيحة"})))})}),n},d.isEmail=function(e){return!!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e)},d.isURL=function(e){var t=new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i");return!!t.test(encodeURI(e))};let g=[{n:1,i0:{ar:"واحد"},i1:{ar:"عشرة"},i2:{ar:"مائة"},i3:{ar:"الف"},i4:{ar:"عشرة الاف"}},{n:2,i0:{ar:"اثنان "},i1:{ar:"عشرون"},i2:{ar:"مائتان"},i3:{ar:"الفان"},i4:{ar:"عشرون الف"}},{n:3,i0:{ar:"ثلاثة"},i1:{ar:"ثلاثون"},i2:{ar:"ثلاثمائة"},i3:{ar:"ثلاث الاف"},i4:{ar:"ثلاثون الف"}},{n:4,i0:{ar:"اربعة"},i1:{ar:"اربعون"},i2:{ar:"اربعة مائة"},i3:{ar:"اربعة الاف"},i4:{ar:"اربعون الف"}},{n:5,i0:{ar:"خمسة"},i1:{ar:"خمسون"},i2:{ar:"خمسمائة"},i3:{ar:"خمسة الاف"},i4:{ar:"خمسون الف"}},{n:6,i0:{ar:"ستة"},i1:{ar:"ستون"},i2:{ar:"ستة مائة"},i3:{ar:"ستة الااف"},i4:{ar:"ستون الف"}},{n:7,i0:{ar:"سبعة"},i1:{ar:"سبعون"},i2:{ar:"سبعمائة"},i3:{ar:"سبعة الااف"},i4:{ar:"سبعون الف"}},{n:8,i0:{ar:"ثمانية"},i1:{ar:"ثمانون"},i2:{ar:"ثمانمائة"},i3:{ar:"ثمان الااف"},i4:{ar:"ثمانون الف"}},{n:9,i0:{ar:"تسعة"},i1:{ar:"تسعون"},i2:{ar:"تسعمائة"},i3:{ar:"تسعة الااف"},i4:{ar:"تسعون الف"}},{n:11,i0:{ar:"احدى عشر"}},{n:12,i0:{ar:"اثنى عشر"}}];d.strings={and:{ar:"و"},space:{ar:" "},10:{ar:"آلاف"},20:{ar:"ألفاً"},100:{ar:"ألف"},currency:{ar:" جنيها مصريا فقط لاغير "},from10:{ar:" قروش "},from100:{ar:" قرش "},from1000:{ar:" من الف "}},d.stringfiy=function(e,t){e=e||"",t=t||"ar",e=e.toString().split(".");let n=e[0],r=e[1],o="";1==n.length?o=a(n,t):2==n.length?o=i(n,t):3==n.length?o=s(n,t):4==n.length?o=l(n,t):5==n.length?o=c(n,t):6==n.length&&(o=u(n,t));let f="";return r&&(1==r.length&&(r+="0"),1==r.length?f=a(r,t)+d.strings.from10[t]:2==r.length?f=i(r,t)+d.strings.from100[t]:3==r.length&&(f=s(r,t)+d.strings.from1000[t])),o+=d.strings.currency[t],f&&(o+=d.strings.space[t]+d.strings.and[t]+d.strings.space[t]+f),o},d.ws=function(t,n){if("WebSocket"in e){"string"==typeof t&&(t={url:t});var r=new WebSocket(t.url);let e={ws:r,options:t,closed:!0,onError:e=>{console.log("server.onError Not Implement ... ")},onClose:function(e){e.wasClean?console.log(`[ws closed] Connection closed cleanly, code=${e.code} reason=${e.reason}`):(console.warn("[ws closed] Connection died"),setTimeout(()=>{d.ws(t,n)},5e3))},onOpen:()=>{console.log("server.onOpen Not Implement ... ")},onMessage:()=>{console.log("server.onMessage Not Implement ... ")},onData:()=>{console.log("server.onData Not Implement ... ")},send:function(e){if(this.closed)return!1;"object"!=typeof e&&(e={type:"text",content:e}),this.ws.send(JSON.stringify(e))}};r.onerror=function(t){e.onError(t)},r.onclose=function(t){e.closed=!0,e.onClose(t)},r.onopen=function(){e.closed=!1,e.onOpen()},r.onmessage=function(t){t instanceof Blob?e.onData(t):e.onMessage(JSON.parse(t.data))},n(e)}else console.error("WebSocket Not Supported")},d.hex=function(e){if("string"==typeof e){const t=new TextEncoder;return Array.from(t.encode(e)).map(e=>e.toString(16).padStart(2,"0")).join("")}if("number"==typeof e){let t=e.toString(16);return 1==t.length&&(t="0"+t),t}},d.zakat=function(e){let t="";return e.name&&(t+="01"+d.hex(e.name.length)+d.hex(e.name)),e.vat_number&&(t+="02"+d.hex(e.vat_number.length)+d.hex(e.vat_number)),e.time&&(t+="03"+d.hex(e.time.length)+d.hex(e.time)),e.total&&(t+="04"+d.hex(e.total.length)+d.hex(e.total)),e.vat_total&&(t+="05"+d.hex(e.vat_total.length)+d.hex(e.vat_total)),d.toBase64(t)},d.zakat2=function(e,t){fetch("/x-api/zakat",{method:"POST",body:JSON.stringify(e)}).then(e=>e.json()).then(e=>{t(e)})},d.barcode=function(e){if(e&&e.selector&&e.text)return JsBarcode(e.selector,e.text,e.options);console.error("qrcode need {selector , text}")},d.qrcode=function(e){if(!e||!e.selector||!e.text)return void console.error("qrcode need {selector , text}");let n="string"==typeof e.selector?t.querySelector(e.selector):e.selector;return n?(n.innerHTML="",new QRCode(n,{text:e.text,width:e.width||256,height:e.height||256,colorDark:e.colorDark||"#000000",colorLight:e.colorLight||"#ffffff",correctLevel:e.correctLevel||QRCode.CorrectLevel.H})):void 0},d.export=function(e,n="xlsx"){var r="string"==typeof e?t.querySelector(e):e,o=XLSX.utils.table_to_book(r,{sheet:"sheet1"});XLSX.write(o,{bookType:n,bookSST:!0,type:"base64"}),XLSX.writeFile(o,(r.id||r.tagName)+"."+n)},d.isSPA=!1,d.routeContainer="[router]",d.routeList=[],d.getRoute=(e=>d.routeList.find(t=>t.name==e)||{name:e,url:e}),d.route=(e=>{e.preventDefault(),d.setRoute(d.getRoute(e.target.href))}),d.setRoute=function(t){"string"==typeof t&&(t=d.getRoute(t)),e.history.pushState({},"",t.name)},d.getRouteContent=(async e=>("string"==typeof e&&(e=d.getRoute(e)),await fetch(e.url).then(e=>e.text()))),d.showRouteContent=function(e,n){"string"==typeof n&&(n=d.getRoute(n)),d.setRoute(n.name),d.getRouteContent(n.url).then(n=>{t.querySelector(e).innerHTML=n})},t.addEventListener("click",e=>{if(d.isSPA&&e.target.hasAttribute("route")){e.preventDefault();let t=e.target.getAttribute("route")||e.target.getAttribute("href");d.showRouteContent(d.routeContainer,t)}}),e.addEventListener("hashchange",t=>{if(!d.isSPA)return;let n=e.location.hash.replace("#","");n||(n="/"),d.showRouteContent(d.routeContainer,n)}),t.querySelector("html").hasAttribute("spa")&&(d.isSPA=!0),e.site=d})(window,document,"undefined",jQuery);
|
package/lib/app.js
CHANGED
|
@@ -10,6 +10,8 @@ module.exports = function init(____0) {
|
|
|
10
10
|
dir: _app.dir,
|
|
11
11
|
page: _app.page,
|
|
12
12
|
collectionName: _app.collectionName || _app.name,
|
|
13
|
+
sort: _app.sort || { id: -1 },
|
|
14
|
+
limit: _app.limit || 1000,
|
|
13
15
|
title: _app.title || _app.name,
|
|
14
16
|
images: _app.images ?? false,
|
|
15
17
|
allowMemory: _app.allowMemory ?? false,
|
|
@@ -32,7 +34,7 @@ module.exports = function init(____0) {
|
|
|
32
34
|
|
|
33
35
|
app.init = function () {
|
|
34
36
|
if (app.allowMemory) {
|
|
35
|
-
app.$collection.findMany({}, (err, docs) => {
|
|
37
|
+
app.$collection.findMany({ where: {}, select: {}, sort: app.sort, limit: app.limit }, (err, docs) => {
|
|
36
38
|
if (!err) {
|
|
37
39
|
if (docs.length == 0) {
|
|
38
40
|
app.cacheList.forEach((_item, i) => {
|
|
@@ -57,7 +59,11 @@ module.exports = function init(____0) {
|
|
|
57
59
|
callback(err, doc);
|
|
58
60
|
}
|
|
59
61
|
if (app.allowMemory && !err && doc) {
|
|
60
|
-
app.
|
|
62
|
+
if (app.sort.id == -1) {
|
|
63
|
+
app.memoryList.unshift(doc);
|
|
64
|
+
} else {
|
|
65
|
+
app.memoryList.push(doc);
|
|
66
|
+
}
|
|
61
67
|
}
|
|
62
68
|
});
|
|
63
69
|
};
|
|
@@ -74,11 +80,15 @@ module.exports = function init(____0) {
|
|
|
74
80
|
callback(err, result);
|
|
75
81
|
}
|
|
76
82
|
if (app.allowMemory && !err && result) {
|
|
77
|
-
let index = app.memoryList.findIndex((itm) => itm.id === result.doc.id);
|
|
83
|
+
let index = app.memoryList.findIndex((itm) => itm && itm.id === result.doc.id);
|
|
78
84
|
if (index !== -1) {
|
|
79
85
|
app.memoryList[index] = result.doc;
|
|
80
86
|
} else {
|
|
81
|
-
app.
|
|
87
|
+
if (app.sort.id == -1) {
|
|
88
|
+
app.memoryList.unshift(result.doc);
|
|
89
|
+
} else {
|
|
90
|
+
app.memoryList.push(result.doc);
|
|
91
|
+
}
|
|
82
92
|
}
|
|
83
93
|
} else if (app.allowCache && !err && result) {
|
|
84
94
|
let index = app.cacheList.findIndex((itm) => itm.id === result.doc.id);
|
|
@@ -156,7 +166,6 @@ module.exports = function init(____0) {
|
|
|
156
166
|
callback({
|
|
157
167
|
data: {
|
|
158
168
|
appName: req.word(app.title),
|
|
159
|
-
setting: ____0.setting,
|
|
160
169
|
},
|
|
161
170
|
});
|
|
162
171
|
}
|
|
@@ -212,7 +221,7 @@ module.exports = function init(____0) {
|
|
|
212
221
|
},
|
|
213
222
|
(req, res) => {
|
|
214
223
|
app.handleRequest(req, res, (handle) => {
|
|
215
|
-
res.render(app.page, handle.data, { parser: 'html', compres: true });
|
|
224
|
+
res.render(app.page, handle.data, handle.options || { parser: 'html', compres: true });
|
|
216
225
|
});
|
|
217
226
|
}
|
|
218
227
|
);
|
|
@@ -258,7 +267,7 @@ module.exports = function init(____0) {
|
|
|
258
267
|
app.update(_data, (err, result) => {
|
|
259
268
|
if (!err) {
|
|
260
269
|
response.done = true;
|
|
261
|
-
response.
|
|
270
|
+
response.doc = result?.doc;
|
|
262
271
|
} else {
|
|
263
272
|
response.error = err.message;
|
|
264
273
|
}
|
package/lib/parser.js
CHANGED
|
@@ -438,6 +438,8 @@ module.exports = function init(req, res, ____0, route) {
|
|
|
438
438
|
}
|
|
439
439
|
if (out !== true) {
|
|
440
440
|
$(this).remove();
|
|
441
|
+
} else {
|
|
442
|
+
$(this).removeAttr('x-show-item1');
|
|
441
443
|
}
|
|
442
444
|
});
|
|
443
445
|
$2('[x-list2]').each(function (i2, elem2) {
|
|
@@ -447,6 +449,7 @@ module.exports = function init(req, res, ____0, route) {
|
|
|
447
449
|
html2 += $2.html();
|
|
448
450
|
});
|
|
449
451
|
}
|
|
452
|
+
|
|
450
453
|
return html2;
|
|
451
454
|
}
|
|
452
455
|
|
|
@@ -490,7 +493,42 @@ module.exports = function init(req, res, ____0, route) {
|
|
|
490
493
|
_html = _html.replace(matches[i], v || '');
|
|
491
494
|
}
|
|
492
495
|
}
|
|
493
|
-
|
|
496
|
+
let $2 = ____0.$.load(_html);
|
|
497
|
+
$2('[x-show-item2]').each(function (i, elem) {
|
|
498
|
+
let property = $(elem).attr('x-show-item2').split('.');
|
|
499
|
+
let out = null;
|
|
500
|
+
if (property.length > 0) {
|
|
501
|
+
if (property.length > 0) {
|
|
502
|
+
out = item[property[0]];
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
if (property.length > 1 && out) {
|
|
506
|
+
out = out[property[1]];
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
if (property.length > 2 && out) {
|
|
510
|
+
out = out[property[2]];
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
if (property.length > 3 && out) {
|
|
514
|
+
out = out[property[3]];
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
if (property.length > 4 && out) {
|
|
518
|
+
out = out[property[4]];
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
if (property.length > 5 && out) {
|
|
522
|
+
out = out[property[5]];
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
if (out !== true) {
|
|
526
|
+
$(this).remove();
|
|
527
|
+
} else {
|
|
528
|
+
$(this).removeAttr('x-show-item2');
|
|
529
|
+
}
|
|
530
|
+
});
|
|
531
|
+
html2 += $2.html();
|
|
494
532
|
});
|
|
495
533
|
}
|
|
496
534
|
return html2;
|
|
@@ -536,6 +574,8 @@ module.exports = function init(req, res, ____0, route) {
|
|
|
536
574
|
}
|
|
537
575
|
if (!out) {
|
|
538
576
|
$(this).remove();
|
|
577
|
+
} else {
|
|
578
|
+
$(this).removeAttr('x-setting');
|
|
539
579
|
}
|
|
540
580
|
});
|
|
541
581
|
|
|
@@ -578,36 +618,48 @@ module.exports = function init(req, res, ____0, route) {
|
|
|
578
618
|
}
|
|
579
619
|
if (!out) {
|
|
580
620
|
$(this).remove();
|
|
621
|
+
} else {
|
|
622
|
+
$(this).removeAttr('x-data');
|
|
581
623
|
}
|
|
582
624
|
});
|
|
583
625
|
|
|
584
626
|
$('[x-permission]').each(function (i, elem) {
|
|
585
627
|
if (!____0.security.isUserHasPermission(req, res, $(this).attr('x-permission'))) {
|
|
586
628
|
$(this).remove();
|
|
629
|
+
} else {
|
|
630
|
+
$(this).removeAttr('x-permission');
|
|
587
631
|
}
|
|
588
632
|
});
|
|
589
633
|
|
|
590
634
|
$('[x-role]').each(function (i, elem) {
|
|
591
635
|
if (!____0.security.isUserHasRole(req, res, $(this).attr('x-role'))) {
|
|
592
636
|
$(this).remove();
|
|
637
|
+
} else {
|
|
638
|
+
$(this).removeAttr('x-role');
|
|
593
639
|
}
|
|
594
640
|
});
|
|
595
641
|
|
|
596
642
|
$('[x-permissions]').each(function (i, elem) {
|
|
597
643
|
if (!____0.security.isUserHasPermissions(req, res, $(this).attr('x-permissions'))) {
|
|
598
644
|
$(this).remove();
|
|
645
|
+
} else {
|
|
646
|
+
$(this).removeAttr('x-permissions');
|
|
599
647
|
}
|
|
600
648
|
});
|
|
601
649
|
|
|
602
650
|
$('[x-roles]').each(function (i, elem) {
|
|
603
651
|
if (!____0.security.isUserHasRoles(req, res, $(this).attr('x-roles'))) {
|
|
604
652
|
$(this).remove();
|
|
653
|
+
} else {
|
|
654
|
+
$(this).removeAttr('x-roles');
|
|
605
655
|
}
|
|
606
656
|
});
|
|
607
657
|
|
|
608
658
|
$('[x-lang]').each(function (i, elem) {
|
|
609
659
|
if ($(this).attr('x-lang') !== req.session.lang) {
|
|
610
660
|
$(this).remove();
|
|
661
|
+
} else {
|
|
662
|
+
$(this).removeAttr('x-lang');
|
|
611
663
|
}
|
|
612
664
|
});
|
|
613
665
|
|
|
@@ -620,9 +672,10 @@ module.exports = function init(req, res, ____0, route) {
|
|
|
620
672
|
}
|
|
621
673
|
if (!req.features.some((ff) => ff.like(f)) && !not) {
|
|
622
674
|
$(this).remove();
|
|
623
|
-
}
|
|
624
|
-
if (req.features.some((ff) => ff.like(f)) && not) {
|
|
675
|
+
} else if (req.features.some((ff) => ff.like(f)) && not) {
|
|
625
676
|
$(this).remove();
|
|
677
|
+
} else {
|
|
678
|
+
$(this).removeAttr('x-feature');
|
|
626
679
|
}
|
|
627
680
|
});
|
|
628
681
|
|
|
@@ -704,12 +757,12 @@ module.exports = function init(req, res, ____0, route) {
|
|
|
704
757
|
} else {
|
|
705
758
|
$(this).text(getContent(file) + $(this).text());
|
|
706
759
|
}
|
|
760
|
+
$(this).removeAttr('x-import');
|
|
707
761
|
});
|
|
708
762
|
|
|
709
763
|
$($('[x-append]').get().reverse()).each(function (i, elem) {
|
|
710
764
|
let file = $(this).attr('x-append');
|
|
711
765
|
$(this).removeAttr('x-append');
|
|
712
|
-
$(this).attr('x-server', 'x-append');
|
|
713
766
|
if (file.endsWith('.html')) {
|
|
714
767
|
$(this).html($(this).html() + getContent(file));
|
|
715
768
|
} else if (file.endsWith('.css')) {
|
|
@@ -717,17 +770,17 @@ module.exports = function init(req, res, ____0, route) {
|
|
|
717
770
|
} else {
|
|
718
771
|
$(this).text($(this).text() + getContent(file));
|
|
719
772
|
}
|
|
773
|
+
$(this).removeAttr('x-append');
|
|
720
774
|
});
|
|
721
775
|
|
|
722
776
|
$($('[x-replace]').get().reverse()).each(function (i, elem) {
|
|
723
777
|
let file = $(this).attr('x-replace');
|
|
724
|
-
$(this).removeAttr('x-replace');
|
|
725
|
-
$(this).attr('x-server', 'x-replace');
|
|
726
778
|
if (file.endsWith('.html')) {
|
|
727
779
|
$(this).html(getContent(file));
|
|
728
780
|
} else {
|
|
729
781
|
$(this).text(getContent(file));
|
|
730
782
|
}
|
|
783
|
+
$(this).removeAttr('x-replace');
|
|
731
784
|
});
|
|
732
785
|
|
|
733
786
|
$('[x-list1]').each(function (i, elem) {
|
|
@@ -793,6 +846,10 @@ module.exports = function init(req, res, ____0, route) {
|
|
|
793
846
|
txt = parser.handleMatches($.html());
|
|
794
847
|
return txt;
|
|
795
848
|
};
|
|
849
|
+
parser.txt = function (content) {
|
|
850
|
+
content = parser.handleMatches(content);
|
|
851
|
+
return content;
|
|
852
|
+
};
|
|
796
853
|
|
|
797
854
|
parser.js = function (content) {
|
|
798
855
|
let matches = content.match(/\/\*##.*?\*\//g);
|
package/lib/routing.js
CHANGED
|
@@ -584,7 +584,7 @@ module.exports = function init(____0) {
|
|
|
584
584
|
return res.render(
|
|
585
585
|
____0.strings[11],
|
|
586
586
|
{
|
|
587
|
-
features: route.require.features
|
|
587
|
+
features: route.require.features,
|
|
588
588
|
html: ` ${____0.strings[13]} : ${route.require.features.join(',')}`,
|
|
589
589
|
},
|
|
590
590
|
{
|
|
@@ -633,8 +633,8 @@ module.exports = function init(____0) {
|
|
|
633
633
|
};
|
|
634
634
|
|
|
635
635
|
_0xrrxo.handleServer = async function (req, res) {
|
|
636
|
-
req.host = '';
|
|
637
|
-
req.origin = '';
|
|
636
|
+
req.host = req.headers['host'] || '';
|
|
637
|
+
req.origin = req.headers['origin'] || req.host;
|
|
638
638
|
req.domain = '';
|
|
639
639
|
req.subDomain = '';
|
|
640
640
|
req.obj = {};
|
|
@@ -704,7 +704,7 @@ module.exports = function init(____0) {
|
|
|
704
704
|
req.urlRaw = req.url;
|
|
705
705
|
req.urlParserRaw = ____0.url.parse(req.urlRaw, !0);
|
|
706
706
|
req.urlParser = ____0.url.parse(req.urlRaw.toLowerCase(), !0);
|
|
707
|
-
|
|
707
|
+
|
|
708
708
|
res.set = (a, b, c) => {
|
|
709
709
|
if (res.writeHeadEnabled === !1 || res.finished === !0 || res.headersSent) {
|
|
710
710
|
return res;
|
|
@@ -992,6 +992,23 @@ module.exports = function init(____0) {
|
|
|
992
992
|
});
|
|
993
993
|
};
|
|
994
994
|
|
|
995
|
+
res.txt = (name, _data) => {
|
|
996
|
+
____0.fsm.getContent(name, (content) => {
|
|
997
|
+
if (!content) {
|
|
998
|
+
return res.status(404).end();
|
|
999
|
+
}
|
|
1000
|
+
req.route.content = content;
|
|
1001
|
+
if (req.route.encript && req.route.encript === '123') {
|
|
1002
|
+
req.route.content = ____0.f1(req.route.content);
|
|
1003
|
+
}
|
|
1004
|
+
req.data = { ...req.data, ..._data };
|
|
1005
|
+
req.route.parser = 'txt';
|
|
1006
|
+
let out = ____0.parser(req, res, ____0, req.route).txt(req.route.content);
|
|
1007
|
+
res.set(____0.strings[7], 'text/plain');
|
|
1008
|
+
res.status(200).end(out);
|
|
1009
|
+
});
|
|
1010
|
+
};
|
|
1011
|
+
|
|
995
1012
|
res.css = (name, _data) => {
|
|
996
1013
|
____0.fsm.getContent(name, (content) => {
|
|
997
1014
|
if (!content) {
|
|
@@ -1061,9 +1078,9 @@ module.exports = function init(____0) {
|
|
|
1061
1078
|
}
|
|
1062
1079
|
};
|
|
1063
1080
|
|
|
1064
|
-
res.redirect = (url, code) => {
|
|
1081
|
+
res.redirect = (url, code = 302) => {
|
|
1065
1082
|
res.set('Location', url);
|
|
1066
|
-
res.status(code
|
|
1083
|
+
res.status(code).end();
|
|
1067
1084
|
};
|
|
1068
1085
|
|
|
1069
1086
|
res.setHeader('CharSet', 'UTF-8');
|
|
@@ -1230,23 +1247,26 @@ module.exports = function init(____0) {
|
|
|
1230
1247
|
|
|
1231
1248
|
if (req.urlParser.pathname == '/') {
|
|
1232
1249
|
if (____0.options.help) {
|
|
1233
|
-
res.set('help-eror-message', 'unhandled route ' + req.urlParser.pathname);
|
|
1250
|
+
res.set('help-eror-message', 'unhandled route root ' + req.urlParser.pathname);
|
|
1234
1251
|
}
|
|
1235
1252
|
res.htmlContent("<h1 align='center'>Base Route / Not Set</h1>");
|
|
1236
1253
|
return;
|
|
1237
1254
|
}
|
|
1238
1255
|
|
|
1239
1256
|
if (____0.options.help) {
|
|
1240
|
-
res.set('help-eror-message', 'unhandled route ' + req.urlParser.pathname);
|
|
1257
|
+
res.set('help-eror-message', 'unhandled route help' + req.urlParser.pathname);
|
|
1241
1258
|
}
|
|
1259
|
+
|
|
1242
1260
|
if (req.method.toLowerCase().like('options') || req.method.toLowerCase().like('head')) {
|
|
1243
1261
|
res.status(200).end();
|
|
1244
1262
|
return;
|
|
1245
1263
|
}
|
|
1246
|
-
|
|
1264
|
+
____0.handleNotRoute(req, res);
|
|
1265
|
+
};
|
|
1266
|
+
____0.handleNotRoute = function (req, res) {
|
|
1267
|
+
res.set('help-eror-message', 'unhandled route fn' + req.urlParser.pathname);
|
|
1247
1268
|
res.status(404).end();
|
|
1248
1269
|
};
|
|
1249
|
-
|
|
1250
1270
|
____0.servers = [];
|
|
1251
1271
|
____0.server = null;
|
|
1252
1272
|
|
package/lib/session.js
CHANGED
|
@@ -27,8 +27,7 @@ module.exports = function init(req, res, ____0, callback) {
|
|
|
27
27
|
}
|
|
28
28
|
req.features.push('ip.' + req.ip);
|
|
29
29
|
|
|
30
|
-
if (req.
|
|
31
|
-
req.host = req.headers['host'];
|
|
30
|
+
if (req.host) {
|
|
32
31
|
req.hostArray = req.host.split(':')[0].split('.').reverse();
|
|
33
32
|
if (req.hostArray[0] == 'localhost') {
|
|
34
33
|
req.domain = req.hostArray[0];
|
|
@@ -58,7 +57,7 @@ module.exports = function init(req, res, ____0, callback) {
|
|
|
58
57
|
}
|
|
59
58
|
}
|
|
60
59
|
}
|
|
61
|
-
|
|
60
|
+
|
|
62
61
|
|
|
63
62
|
if (req.cookies.obj && req.cookies.obj['_ga'] && req.cookies.obj['_ga'].contains('sb')) {
|
|
64
63
|
req.features.push('browser.social');
|