isite 2022.8.3 → 2022.8.6

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.
Files changed (53) hide show
  1. package/README.md +7 -7
  2. package/apps/client-side/app.js +255 -182
  3. package/apps/client-side/site_files/css/bootstrap5-addon.css +87 -4
  4. package/apps/client-side/site_files/css/bootstrap5.css +1 -1
  5. package/apps/client-side/site_files/css/bootstrap5.css.map +1 -0
  6. package/apps/client-side/site_files/css/dropdown.css +22 -4
  7. package/apps/client-side/site_files/css/effect.css +342 -283
  8. package/apps/client-side/site_files/css/images.css +10 -7
  9. package/apps/client-side/site_files/css/layout.css +37 -44
  10. package/apps/client-side/site_files/css/modal.css +1 -1
  11. package/apps/client-side/site_files/css/normalize.css +146 -0
  12. package/apps/client-side/site_files/css/scrollbar.css +9 -5
  13. package/apps/client-side/site_files/css/table.css +3 -3
  14. package/apps/client-side/site_files/html/directive/i-button.html +5 -0
  15. package/apps/client-side/site_files/html/directive/i-checkbox.html +4 -0
  16. package/apps/client-side/site_files/html/directive/i-checklist.html +6 -0
  17. package/apps/client-side/site_files/html/directive/i-control.html +5 -0
  18. package/apps/client-side/site_files/html/directive/i-date.html +24 -0
  19. package/apps/client-side/site_files/html/directive/i-datetime.html +31 -0
  20. package/apps/client-side/site_files/html/{sub/i-file.content.html → directive/i-file.html} +3 -5
  21. package/apps/client-side/site_files/html/directive/i-image.html +7 -0
  22. package/apps/client-side/site_files/html/directive/i-list.html +20 -0
  23. package/apps/client-side/site_files/html/directive/i-radio.html +4 -0
  24. package/apps/client-side/site_files/html/directive/i-textarea.html +4 -0
  25. package/apps/client-side/site_files/html/directive/i-treenode.html +20 -0
  26. package/apps/client-side/site_files/html/directive/i-treeview.html +13 -0
  27. package/apps/client-side/site_files/html/directive/i-upload.html +5 -0
  28. package/apps/client-side/site_files/html/directive-core/i-date.html +64 -0
  29. package/apps/client-side/site_files/html/directive-core/i-list.html +22 -0
  30. package/apps/client-side/site_files/images/no.jpg +0 -0
  31. package/apps/client-side/site_files/js/bootstrap-5-directive.js +278 -998
  32. package/apps/client-side/site_files/js/bootstrap.js.map +1 -0
  33. package/apps/client-side/site_files/js/directive.js +1865 -2044
  34. package/apps/client-side/site_files/js/directive.min.js +2 -2
  35. package/apps/client-side/site_files/js/site.js +19 -3
  36. package/apps/security/site_files/html/login_modal.html +18 -26
  37. package/index.js +277 -278
  38. package/isite_files/images/no.jpg +0 -0
  39. package/lib/cookie.js +3 -5
  40. package/lib/email.js +108 -0
  41. package/lib/integrated.js +10 -26
  42. package/lib/parser.js +519 -509
  43. package/lib/routing.js +23 -15
  44. package/lib/security.js +1109 -1081
  45. package/lib/sessions.js +182 -247
  46. package/object-options/index.js +24 -4
  47. package/object-options/lib/fn.js +6 -3
  48. package/package.json +5 -3
  49. package/pull.bat +3 -0
  50. package/push.bat +2 -5
  51. package/apps/client-side/site_files/html/sub/i-date2.content.html +0 -64
  52. package/apps/client-side/site_files/html/sub/i-list.content.html +0 -31
  53. package/apps/client-side/site_files/html/sub/i-list2.content.html +0 -22
package/README.md CHANGED
@@ -88,8 +88,8 @@ site = isite({
88
88
  apps: !0,
89
89
  apps_dir: process.cwd() + '/apps',
90
90
  name: 'Your Site',
91
- dynamic: false, // (auto set )dynamic db & prot based on folder name [ smart-pos-3000 ]
92
- savingTime: 60,
91
+ dynamic: false, // (auto set )dynamic db & prot based on folder name [ smart-Your Site-3000 ]
92
+ savingTime: 60 // 60 minutes then save sessions and site data,
93
93
  log: !0,
94
94
  lang: 'ar',
95
95
  theme: 'default',
@@ -99,8 +99,8 @@ site = isite({
99
99
  enabled: false,
100
100
  port: null,
101
101
  ports: [],
102
- key: null,
103
- cert: null,
102
+ key: null // path or will use default,
103
+ cert: null // path or will use default,
104
104
  },
105
105
  mongodb: {
106
106
  enabled: !0,
@@ -124,7 +124,7 @@ site = isite({
124
124
  session: {
125
125
  timeout: 60 * 24 * 30,
126
126
  enabled: !0,
127
- storage: 'mongodb',
127
+ storage: 'file' || 'mongodb',
128
128
  db: null,
129
129
  collection: 'users_sessions',
130
130
  },
@@ -1043,8 +1043,8 @@ $scope.uploadFile = function (files) {
1043
1043
  site.onPOST('uploadFile', (req, res) => {
1044
1044
  var response = { done: !0 };
1045
1045
  var file = req.files.fileToUpload;
1046
- var newpath = site.dir + '/../../uploads/' + file.name;
1047
- site.mv(file.path, newpath, function (err) {
1046
+ var newpath = site.dir + '/../../uploads/' + file.originalFilename;
1047
+ site.mv(file.filepath, newpath, function (err) {
1048
1048
  if (err) {
1049
1049
  response.error = err;
1050
1050
  response.done = false;
@@ -1,270 +1,343 @@
1
1
  module.exports = function (site) {
2
- site.date = require(__dirname + '/site_files/js/hijri.js');
2
+ site.date = require(__dirname + "/site_files/js/hijri.js");
3
3
 
4
- site.post({ name: '/api/get_hijri_date', public: true }, (req, res) => {
4
+ site.post({ name: "/api/get_hijri_date", public: true }, (req, res) => {
5
5
  res.json({
6
6
  done: !0,
7
- hijri: site.date(req.data.date, 'YYYY/MM/DD').format('iYYYY/iMM/iDD'),
7
+ hijri: site.date(req.data.date, "YYYY/MM/DD").format("iYYYY/iMM/iDD"),
8
8
  });
9
9
  });
10
10
 
11
- site.post({ name: '/api/get_normal_date', public: true }, (req, res) => {
11
+ site.post({ name: "/api/get_normal_date", public: true }, (req, res) => {
12
12
  res.json({
13
13
  done: !0,
14
- date: site.date(req.data.hijri, 'iYYYY/iMM/iDD').format('YYYY/MM/DD'),
14
+ date: site.date(req.data.hijri, "iYYYY/iMM/iDD").format("YYYY/MM/DD"),
15
15
  });
16
16
  });
17
17
 
18
18
  site.get({
19
- name: '/x-js',
20
- path: __dirname + '/site_files/js',
19
+ name: "/x-images",
20
+ path: __dirname + "/site_files/images",
21
21
  public: true,
22
- parser: 'js',
23
22
  });
24
23
 
25
24
  site.get({
26
- name: ['/x-js/all.js'],
25
+ name: "/x-js",
26
+ path: __dirname + "/site_files/js",
27
27
  public: true,
28
- parser: 'js',
28
+ parser: "js",
29
+ });
30
+
31
+ site.get({
32
+ name: ["/x-js/all.js"],
33
+ public: true,
34
+ parser: "js",
29
35
  path: [
30
- __dirname + '/site_files/js/first.js',
31
- __dirname + '/site_files/js/jquery.js',
32
- __dirname + '/site_files/js/mustache.js',
33
- __dirname + '/site_files/js/base64.js',
34
- __dirname + '/site_files/js/site.js',
35
- __dirname + '/site_files/js/dom-to-image.js',
36
- __dirname + '/site_files/js/barcode.js',
37
- __dirname + '/site_files/js/qrcode.js',
38
- __dirname + '/site_files/js/angular.js',
39
- __dirname + '/site_files/js/app.js',
40
- __dirname + '/site_files/js/directive.js',
41
- __dirname + '/site_files/js/last.js',
36
+ __dirname + "/site_files/js/first.js",
37
+ __dirname + "/site_files/js/jquery.js",
38
+ __dirname + "/site_files/js/mustache.js",
39
+ __dirname + "/site_files/js/base64.js",
40
+ __dirname + "/site_files/js/site.js",
41
+ __dirname + "/site_files/js/dom-to-image.js",
42
+ __dirname + "/site_files/js/barcode.js",
43
+ __dirname + "/site_files/js/qrcode.js",
44
+ __dirname + "/site_files/js/angular.js",
45
+ __dirname + "/site_files/js/app.js",
46
+ __dirname + "/site_files/js/directive-core.js",
47
+ __dirname + "/site_files/js/directive.js",
48
+ __dirname + "/site_files/js/last.js",
42
49
  ],
43
50
  });
44
51
  site.get({
45
- name: ['/x-js/all.min.js'],
52
+ name: ["/x-js/all.min.js"],
46
53
  public: true,
47
- parser: 'js',
54
+ parser: "js",
48
55
  path: [
49
- __dirname + '/site_files/js/first.js',
50
- __dirname + '/site_files/js/jquery.js',
51
- __dirname + '/site_files/js/mustache.js',
52
- __dirname + '/site_files/js/base64.js',
53
- __dirname + '/site_files/js/site.min.js',
54
- __dirname + '/site_files/js/dom-to-image.min.js',
55
- __dirname + '/site_files/js/barcode.js',
56
- __dirname + '/site_files/js/qrcode.min.js',
57
- __dirname + '/site_files/js/angular.min.js',
58
- __dirname + '/site_files/js/app.js',
59
- __dirname + '/site_files/js/directive.min.js',
60
- __dirname + '/site_files/js/last.js',
56
+ __dirname + "/site_files/js/first.js",
57
+ __dirname + "/site_files/js/jquery.js",
58
+ __dirname + "/site_files/js/mustache.js",
59
+ __dirname + "/site_files/js/base64.js",
60
+ __dirname + "/site_files/js/site.min.js",
61
+ __dirname + "/site_files/js/dom-to-image.min.js",
62
+ __dirname + "/site_files/js/barcode.js",
63
+ __dirname + "/site_files/js/qrcode.min.js",
64
+ __dirname + "/site_files/js/angular.min.js",
65
+ __dirname + "/site_files/js/app.js",
66
+ __dirname + "/site_files/js/directive-core.js",
67
+ __dirname + "/site_files/js/directive.min.js",
68
+ __dirname + "/site_files/js/last.js",
61
69
  ],
62
70
  });
63
71
  site.get({
64
- name: ['/x-js/bootstrap-5-support.js'],
72
+ name: ["/x-js/bootstrap-5-support.js"],
65
73
  public: true,
66
- parser: 'js',
74
+ parser: "js",
67
75
  path: [
68
- __dirname + '/site_files/js/first.js',
69
- __dirname + '/site_files/js/jquery.js',
70
- __dirname + '/site_files/js/mustache.js',
71
- __dirname + '/site_files/js/base64.js',
72
- __dirname + '/site_files/js/site.js',
73
- __dirname + '/site_files/js/dom-to-image.js',
74
- __dirname + '/site_files/js/barcode.js',
75
- __dirname + '/site_files/js/qrcode.js',
76
- __dirname + '/site_files/js/angular.js',
77
- __dirname + '/site_files/js/app.js',
78
- __dirname + '/site_files/js/directive-core.js',
79
- __dirname + '/site_files/js/bootstrap-5-directive.js',
80
- __dirname + '/site_files/js/last.js',
81
- __dirname + '/site_files/js/bootstrap5.js',
82
- __dirname + '/site_files/js/bootstrap-5-addon.js',
76
+ __dirname + "/site_files/js/first.js",
77
+ __dirname + "/site_files/js/jquery.js",
78
+ __dirname + "/site_files/js/mustache.js",
79
+ __dirname + "/site_files/js/base64.js",
80
+ __dirname + "/site_files/js/site.js",
81
+ __dirname + "/site_files/js/dom-to-image.js",
82
+ __dirname + "/site_files/js/barcode.js",
83
+ __dirname + "/site_files/js/qrcode.js",
84
+ __dirname + "/site_files/js/angular.js",
85
+ __dirname + "/site_files/js/app.js",
86
+ __dirname + "/site_files/js/directive-core.js",
87
+ __dirname + "/site_files/js/bootstrap-5-directive.js",
88
+ __dirname + "/site_files/js/last.js",
89
+ __dirname + "/site_files/js/bootstrap5.js",
90
+ __dirname + "/site_files/js/bootstrap-5-addon.js",
83
91
  ],
84
92
  });
85
93
  site.get({
86
- name: '/x-css',
87
- path: __dirname + '/site_files/css',
94
+ name: "/x-css",
95
+ path: __dirname + "/site_files/css",
88
96
  public: true,
89
97
  });
90
98
  site.get({
91
- name: '/x-semantic-themes',
92
- path: __dirname + '/site_files/semantic-themes',
99
+ name: "/x-semantic-themes",
100
+ path: __dirname + "/site_files/semantic-themes",
93
101
  public: true,
94
102
  });
95
103
 
96
104
  site.get({
97
- name: '/x-fonts',
98
- path: __dirname + '/site_files/fonts',
105
+ name: "/x-fonts",
106
+ path: __dirname + "/site_files/fonts",
99
107
  public: true,
100
108
  });
101
109
  site.get({
102
- name: '/x-css/x-fonts',
103
- path: __dirname + '/site_files/fonts',
110
+ name: "/x-css/x-fonts",
111
+ path: __dirname + "/site_files/fonts",
104
112
  public: true,
105
113
  });
106
114
  site.get({
107
- name: '/webfonts',
108
- path: __dirname + '/site_files/webfonts',
115
+ name: "/webfonts",
116
+ path: __dirname + "/site_files/webfonts",
109
117
  public: true,
110
118
  });
111
119
  site.get({
112
- name: ['/x-css/all.css', '/x-css/site.css'],
113
- parser: 'css2',
120
+ name: ["/x-css/all.css", "/x-css/site.css"],
121
+ parser: "css2",
114
122
  public: true,
115
123
  compress: !0,
116
124
  path: [
117
- __dirname + '/site_files/css/theme.css',
118
- __dirname + '/site_files/css/layout.css',
119
- __dirname + '/site_files/css/scrollbar.css',
120
- __dirname + '/site_files/css/progress.css',
121
- __dirname + '/site_files/css/treeview.css',
122
- __dirname + '/site_files/css/main-menu.css',
123
- __dirname + '/site_files/css/images.css',
124
- __dirname + '/site_files/css/navbar.css',
125
- __dirname + '/site_files/css/form.css',
126
- __dirname + '/site_files/css/selector.css',
127
- __dirname + '/site_files/css/dropdown.css',
128
- __dirname + '/site_files/css/btn.css',
129
- __dirname + '/site_files/css/checkbox.css',
130
- __dirname + '/site_files/css/radio.css',
131
- __dirname + '/site_files/css/modal.css',
132
- __dirname + '/site_files/css/fixed_menu.css',
133
- __dirname + '/site_files/css/color.css',
134
- __dirname + '/site_files/css/fonts.css',
135
- __dirname + '/site_files/css/font-droid.css',
136
- __dirname + '/site_files/css/effect.css',
137
- __dirname + '/site_files/css/table.css',
138
- __dirname + '/site_files/css/tabs.css',
139
- __dirname + '/site_files/css/help.css',
140
- __dirname + '/site_files/css/print.css',
141
- __dirname + '/site_files/css/ui.css',
142
- __dirname + '/site_files/css/tableExport.css',
143
- __dirname + '/site_files/css/theme_paper.css',
144
- __dirname + '/site_files/css/font-awesome.css',
125
+ __dirname + "/site_files/css/normalize.css",
126
+ __dirname + "/site_files/css/theme.css",
127
+ __dirname + "/site_files/css/layout.css",
128
+ __dirname + "/site_files/css/scrollbar.css",
129
+ __dirname + "/site_files/css/progress.css",
130
+ __dirname + "/site_files/css/treeview.css",
131
+ __dirname + "/site_files/css/main-menu.css",
132
+ __dirname + "/site_files/css/images.css",
133
+ __dirname + "/site_files/css/navbar.css",
134
+ __dirname + "/site_files/css/form.css",
135
+ __dirname + "/site_files/css/selector.css",
136
+ __dirname + "/site_files/css/dropdown.css",
137
+ __dirname + "/site_files/css/btn.css",
138
+ __dirname + "/site_files/css/checkbox.css",
139
+ __dirname + "/site_files/css/radio.css",
140
+ __dirname + "/site_files/css/modal.css",
141
+ __dirname + "/site_files/css/fixed_menu.css",
142
+ __dirname + "/site_files/css/color.css",
143
+ __dirname + "/site_files/css/fonts.css",
144
+ __dirname + "/site_files/css/font-droid.css",
145
+ __dirname + "/site_files/css/effect.css",
146
+ __dirname + "/site_files/css/table.css",
147
+ __dirname + "/site_files/css/tabs.css",
148
+ __dirname + "/site_files/css/help.css",
149
+ __dirname + "/site_files/css/print.css",
150
+ __dirname + "/site_files/css/ui.css",
151
+ __dirname + "/site_files/css/tableExport.css",
152
+ __dirname + "/site_files/css/theme_paper.css",
153
+ __dirname + "/site_files/css/font-awesome.css",
145
154
  ],
146
155
  });
147
156
 
148
157
  site.get({
149
- name: ['/x-css/bootstrap-5-support.css', '/x-css/bootstrap-support.css'],
150
- parser: 'css2',
158
+ name: ["/x-css/bootstrap-5-support.css", "/x-css/bootstrap-support.css"],
159
+ parser: "css2",
151
160
  public: true,
152
161
  compress: !0,
153
162
  path: [
154
- __dirname + '/site_files/css/theme.css',
155
- __dirname + '/site_files/css/layout.css',
156
- __dirname + '/site_files/css/modal.css',
157
- __dirname + '/site_files/css/color.css',
158
- __dirname + '/site_files/css/images.css',
159
- __dirname + '/site_files/css/dropdown.css',
160
- __dirname + '/site_files/css/fonts.css',
161
- __dirname + '/site_files/css/font-droid.css',
162
- __dirname + '/site_files/css/effect.css',
163
- __dirname + '/site_files/css/table.css',
164
- __dirname + '/site_files/css/tabs.css',
165
- __dirname + '/site_files/css/help.css',
166
- __dirname + '/site_files/css/print.css',
167
- __dirname + '/site_files/css/tableExport.css',
168
- __dirname + '/site_files/css/theme_paper.css',
169
- __dirname + '/site_files/css/bootstrap5.css',
170
- __dirname + '/site_files/css/bootstrap5-addon.css',
163
+ __dirname + "/site_files/css/normalize.css",
164
+ __dirname + "/site_files/css/theme.css",
165
+ __dirname + "/site_files/css/layout.css",
166
+ __dirname + "/site_files/css/modal.css",
167
+ __dirname + "/site_files/css/color.css",
168
+ __dirname + "/site_files/css/images.css",
169
+ __dirname + "/site_files/css/dropdown.css",
170
+ __dirname + "/site_files/css/fonts.css",
171
+ __dirname + "/site_files/css/font-droid.css",
172
+ __dirname + "/site_files/css/effect.css",
173
+ __dirname + "/site_files/css/scrollbar.css",
174
+ __dirname + "/site_files/css/table.css",
175
+ __dirname + "/site_files/css/tabs.css",
176
+ __dirname + "/site_files/css/help.css",
177
+ __dirname + "/site_files/css/print.css",
178
+ __dirname + "/site_files/css/tableExport.css",
179
+ __dirname + "/site_files/css/theme_paper.css",
180
+ __dirname + "/site_files/css/bootstrap5.css",
181
+ __dirname + "/site_files/css/bootstrap5-addon.css",
171
182
  ],
172
183
  });
173
184
 
174
- site.createDir(site.dir + '/../../uploads');
185
+ site.createDir(site.dir + "/../../uploads");
175
186
 
176
- site.post({ name: '/x-api/upload/image', public: true }, (req, res) => {
177
- site.createDir(site.options.upload_dir + '/' + req.headers['folder'], () => {
178
- site.createDir(site.options.upload_dir + '/' + req.headers['folder'] + '/images', () => {
179
- let response = {
180
- image: {},
181
- done: !0,
182
- };
183
- let file = req.files.fileToUpload;
184
- if (file) {
185
- let newName = 'image_' + (new Date().getTime().toString() + Math.random()).replaceAll('.', '_') + site.path.extname(file.originalFilename);
186
- let newpath = site.path.resolve(site.options.upload_dir + '/' + req.headers['folder'] + '/images/' + newName);
187
- site.mv(file.filepath, newpath, function (err) {
188
- if (err) {
189
- response.error = err;
190
- response.done = !1;
187
+ site.post({ name: "/x-api/upload/image", public: true }, (req, res) => {
188
+ site.createDir(
189
+ site.options.upload_dir + "/" + req.headers["folder"],
190
+ () => {
191
+ site.createDir(
192
+ site.options.upload_dir + "/" + req.headers["folder"] + "/images",
193
+ () => {
194
+ let response = {
195
+ image: {},
196
+ done: !0,
197
+ };
198
+ let file = req.files.fileToUpload;
199
+ if (file) {
200
+ let newName =
201
+ "image_" +
202
+ (new Date().getTime().toString() + Math.random()).replaceAll(
203
+ ".",
204
+ "_"
205
+ ) +
206
+ site.path.extname(file.originalFilename);
207
+ let newpath = site.path.resolve(
208
+ site.options.upload_dir +
209
+ "/" +
210
+ req.headers["folder"] +
211
+ "/images/" +
212
+ newName
213
+ );
214
+ site.mv(file.filepath, newpath, function (err) {
215
+ if (err) {
216
+ response.error = err;
217
+ response.done = !1;
218
+ } else {
219
+ response.image.name = file.originalFilename;
220
+ response.image.path = newpath;
221
+ response.image.url =
222
+ "/x-api/image/" + req.headers["folder"] + "/" + newName;
223
+ response.image.size = file.size;
224
+ }
225
+ res.json(response);
226
+ });
191
227
  } else {
192
- response.image.path = newpath;
193
- response.image.url = '/x-api/image/' + req.headers['folder'] + '/' + newName;
194
- response.image.size = file.size;
228
+ response.error = "no file";
229
+ response.done = !1;
230
+ res.json(response);
195
231
  }
196
- res.json(response);
197
- });
198
- } else {
199
- response.error = 'no file';
200
- response.done = !1;
201
- res.json(response);
202
- }
203
- });
204
- });
232
+ }
233
+ );
234
+ }
235
+ );
205
236
  });
206
237
 
207
- site.get({ name: '/x-api/image/:category/:name', public: true }, (req, res) => {
208
- res.set('Cache-Control', 'public, max-age=2592000');
209
- res.download(site.options.upload_dir + '/' + req.params.category + '/images/' + req.params.name);
210
- });
238
+ site.get(
239
+ { name: "/x-api/image/:category/:name", public: true },
240
+ (req, res) => {
241
+ res.set("Cache-Control", "public, max-age=2592000");
242
+ res.download(
243
+ site.options.upload_dir +
244
+ "/" +
245
+ req.params.category +
246
+ "/images/" +
247
+ req.params.name
248
+ );
249
+ }
250
+ );
211
251
 
212
- site.post({ name: '/x-api/upload/file', public: true }, (req, res) => {
213
- site.createDir(site.options.upload_dir + '/' + req.headers['folder'], () => {
214
- site.createDir(site.options.upload_dir + '/' + req.headers['folder'] + '/files', () => {
215
- let response = {
216
- file: {},
217
- done: !0,
218
- };
219
- let file = req.files.fileToUpload;
220
- if (!file) {
221
- response.done = !1;
222
- response.error = 'no file uploaded';
223
- res.json(response);
224
- return;
225
- }
226
- let newName = 'file_' + (new Date().getTime().toString() + Math.random()).replaceAll('.', '_') + site.path.extname(file.originalFilename);
227
- let newpath = site.path.resolve(site.options.upload_dir + '/' + req.headers['folder'] + '/files/' + newName);
228
- site.mv(file.filepath, newpath, function (err) {
229
- if (err) {
230
- response.error = err;
231
- response.done = !1;
252
+ site.post({ name: "/x-api/upload/file", public: true }, (req, res) => {
253
+ site.createDir(
254
+ site.options.upload_dir + "/" + req.headers["folder"],
255
+ () => {
256
+ site.createDir(
257
+ site.options.upload_dir + "/" + req.headers["folder"] + "/files",
258
+ () => {
259
+ let response = {
260
+ file: {},
261
+ done: !0,
262
+ };
263
+ let file = req.files.fileToUpload;
264
+ if (!file) {
265
+ response.done = !1;
266
+ response.error = "no file uploaded";
267
+ res.json(response);
268
+ return;
269
+ }
270
+ let newName =
271
+ "file_" +
272
+ (new Date().getTime().toString() + Math.random()).replaceAll(
273
+ ".",
274
+ "_"
275
+ ) +
276
+ site.path.extname(file.originalFilename);
277
+ let newpath = site.path.resolve(
278
+ site.options.upload_dir +
279
+ "/" +
280
+ req.headers["folder"] +
281
+ "/files/" +
282
+ newName
283
+ );
284
+ site.mv(file.filepath, newpath, function (err) {
285
+ if (err) {
286
+ response.error = err;
287
+ response.done = !1;
288
+ }
289
+ response.file.name = file.originalFilename;
290
+ response.file.path = newpath;
291
+ response.file.url =
292
+ "/x-api/file/" + req.headers["folder"] + "/" + newName;
293
+ response.file.size = file.size;
294
+ res.json(response);
295
+ });
232
296
  }
233
- response.file.path = newpath;
234
- response.file.url = '/x-api/file/' + req.headers['folder'] + '/' + newName;
235
- response.file.size = file.size;
236
- res.json(response);
237
- });
238
- });
239
- });
297
+ );
298
+ }
299
+ );
240
300
  });
241
301
 
242
- site.get({ name: '/x-api/file/:category/:name', public: true }, (req, res) => {
243
- res.download(site.options.upload_dir + '/' + req.params.category + '/files/' + req.params.name);
244
- });
302
+ site.get(
303
+ { name: "/x-api/file/:category/:name", public: true },
304
+ (req, res) => {
305
+ res.download(
306
+ site.options.upload_dir +
307
+ "/" +
308
+ req.params.category +
309
+ "/files/" +
310
+ req.params.name
311
+ );
312
+ }
313
+ );
245
314
 
246
315
  site.getTLV = function (name, value) {
247
- return Buffer.concat([Buffer.from([name], 'utf8'), Buffer.from([value.length], 'utf8'), Buffer.from(value, 'utf8')]);
316
+ return Buffer.concat([
317
+ Buffer.from([name], "utf8"),
318
+ Buffer.from([value.length], "utf8"),
319
+ Buffer.from(value, "utf8"),
320
+ ]);
248
321
  };
249
- site.onPOST('/x-api/zakat', (req, res) => {
322
+ site.onPOST("/x-api/zakat", (req, res) => {
250
323
  let obj = req.data || {};
251
324
  let value = [];
252
325
  if (obj.name) {
253
- value.push(site.getTLV('1', obj.name));
326
+ value.push(site.getTLV("1", obj.name));
254
327
  }
255
328
  if (obj.vat_number) {
256
- value.push(site.getTLV('2', obj.vat_number));
329
+ value.push(site.getTLV("2", obj.vat_number));
257
330
  }
258
331
  if (obj.time) {
259
- value.push(site.getTLV('3', obj.time));
332
+ value.push(site.getTLV("3", obj.time));
260
333
  }
261
334
  if (obj.total) {
262
- value.push(site.getTLV('4', obj.total));
335
+ value.push(site.getTLV("4", obj.total));
263
336
  }
264
337
  if (obj.vat_total) {
265
- value.push(site.getTLV('5', obj.vat_total));
338
+ value.push(site.getTLV("5", obj.vat_total));
266
339
  }
267
- value = Buffer.concat([...value]).toString('base64');
340
+ value = Buffer.concat([...value]).toString("base64");
268
341
  res.json({
269
342
  done: true,
270
343
  value: value,