isite 2024.9.2 → 2024.10.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/lib/routing.js CHANGED
@@ -192,7 +192,7 @@ module.exports = function init(____0) {
192
192
  if ((response = ____0.sharedList.find((s) => s.host == req.host && s.filePath == route.path && s.url == req.url))) {
193
193
  res.headers = response.headers;
194
194
  res.code = response.code;
195
- res.set('x-shared','-count=' + ____0.sharedList.length + ' -port=' + ____0.options.port + ' -host=' + req.host);
195
+ res.set('x-shared', '-host=' + req.host + ' -port=' + ____0.options.port + ' -index=' + ____0.sharedList.length + ' -count=' + route.count);
196
196
  return res.end(response.content, response.encode);
197
197
  }
198
198
 
@@ -593,6 +593,7 @@ module.exports = function init(____0) {
593
593
  };
594
594
 
595
595
  _0xrrxo.handleRoute = async function (req, res, route) {
596
+
596
597
  if (route.lang) {
597
598
  req.session.language = { id: route.lang };
598
599
  }
@@ -689,12 +690,15 @@ module.exports = function init(____0) {
689
690
  res.end(503);
690
691
  }
691
692
  });
693
+
692
694
  req.addFeature = function (name) {
693
695
  req.features.push(name);
694
696
  };
697
+
695
698
  req.hasFeature = function (name) {
696
699
  return req.features.some((f) => f.like(name));
697
700
  };
701
+
698
702
  req.removeFeature = function (name) {
699
703
  req.features.forEach((f, i) => {
700
704
  if (f.like(name)) {
@@ -724,6 +728,7 @@ module.exports = function init(____0) {
724
728
 
725
729
  return userFinger;
726
730
  };
731
+
727
732
  req.word = function (name) {
728
733
  let w = ____0.word(name);
729
734
  if (!w.hostList) {
@@ -764,9 +769,11 @@ module.exports = function init(____0) {
764
769
  res.setHeader(a, b, c);
765
770
  return res;
766
771
  };
772
+
767
773
  res.delete = res.remove = res.removeHeader;
768
774
  res.writeHead0 = res.writeHead;
769
775
  res.writeHeadEnabled = !0;
776
+
770
777
  res.writeHead = (code, obj) => {
771
778
  if (res.writeHeadEnabled === !1 || res.finished === !0) {
772
779
  return res;
@@ -931,7 +938,7 @@ module.exports = function init(____0) {
931
938
  if ((response = ____0.sharedList.find((s) => s.host == req.host && s.filePath == filePath && s.url == req.url))) {
932
939
  res.headers = response.headers;
933
940
  res.code = response.code;
934
- res.set('x-shared','-count=' + ____0.sharedList.length + ' -port=' + ____0.options.port + ' -host=' + req.host);
941
+ res.set('x-shared', '-host=' + req.host + ' -port=' + ____0.options.port + ' -index=' + ____0.sharedList.length+ ' -count=' + req.route.count);
935
942
  return res.end(response.content, response.encode);
936
943
  }
937
944
  ____0.fsm.getContent(filePath, (content) => {
@@ -1224,6 +1231,7 @@ module.exports = function init(____0) {
1224
1231
 
1225
1232
  let findRouteIndex = _0xrrxo.list.findIndex((r) => req.method.toLowerCase().like(r.method.toLowerCase()) && req.urlParser.pathname.like(r.name));
1226
1233
  if (findRouteIndex !== -1) {
1234
+
1227
1235
  if (!_0xrrxo.list[findRouteIndex].count) {
1228
1236
  _0xrrxo.list[findRouteIndex].count = 0;
1229
1237
  }
@@ -1248,6 +1256,12 @@ module.exports = function init(____0) {
1248
1256
  req.paramsRaw[map.name] = req.urlParserRaw.arr[map.index];
1249
1257
  }
1250
1258
  }
1259
+ req.session = {
1260
+ $save: () => {},
1261
+ accessToken: 'SHARED',
1262
+ language: ____0.options.language || { id: 'en', dir: 'ltr' },
1263
+ lang: ____0.options.language?.id || ____0.options.lang || 'en',
1264
+ };
1251
1265
 
1252
1266
  req.query = req.urlParser.query;
1253
1267
  req.queryRaw = req.urlParserRaw.query;
package/lib/security.js CHANGED
@@ -490,7 +490,8 @@ module.exports = function init(____0) {
490
490
  if ($req) {
491
491
  $req.session.user = _user;
492
492
  $req.session.user_id = _user.id;
493
- ____0.saveSession($req.session);
493
+ $req.session.$save();
494
+
494
495
  }
495
496
  callback(null, _user);
496
497
  ____0.call('user login', {
@@ -518,7 +519,8 @@ module.exports = function init(____0) {
518
519
  if ($req) {
519
520
  $req.session.user = doc;
520
521
  $req.session.user_id = doc.id;
521
- ____0.saveSession($req.session);
522
+ $req.session.$save();
523
+
522
524
  }
523
525
 
524
526
  callback(null, doc);
@@ -583,7 +585,8 @@ module.exports = function init(____0) {
583
585
  if ($req) {
584
586
  $req.session.user = doc;
585
587
  $req.session.user_id = doc.id;
586
- ____0.saveSession($req.session);
588
+ $req.session.$save();
589
+
587
590
  }
588
591
  ____0.call('user register', {
589
592
  db: ____0.$users.db,
@@ -607,9 +610,7 @@ module.exports = function init(____0) {
607
610
 
608
611
  if (security.isUserLogin(req, res)) {
609
612
  let _user = req.session.user;
610
- ____0.call('[session][delete]', {
611
- accessToken: req.session.accessToken,
612
- });
613
+
613
614
 
614
615
  ____0.call('user logout', {
615
616
  db: ____0.$users.db,
package/lib/session.js CHANGED
@@ -1,18 +1,17 @@
1
1
  module.exports = function init(req, res, ____0, callback) {
2
- ____0.getSession({ accessToken: req.headers['Access-Token'] || req.headers['access-token'] || req.query['access-token'] || req.cookie('access_token') }, (session) => {
2
+ ____0.getSession(req, (session) => {
3
3
  session.$save = function () {
4
4
  ____0.saveSession(session);
5
5
  };
6
- if (!session.accessToken) {
7
- session.accessToken = req.host + new Date().getTime().toString() + '_' + Math.random();
8
- session.accessToken = ____0.x0md50x(session.accessToken);
6
+
7
+ if (session.$new) {
8
+ session.$new = !1;
9
9
  res.cookie('access_token', session.accessToken);
10
10
  res.set('Access-Token', session.accessToken);
11
11
  }
12
12
 
13
13
  session.ip = req.ip;
14
14
  session.modifiedTime = new Date().getTime();
15
- ____0.saveSession(session);
16
15
 
17
16
  function AssignFeatures() {
18
17
  ____0.options.defaults.features.forEach((f) => {
@@ -135,13 +134,15 @@ module.exports = function init(req, res, ____0, callback) {
135
134
  if (session.user) {
136
135
  req.features.push('login');
137
136
  }
138
- ____0.saveSession(session);
137
+
139
138
  callback(session);
139
+ session.$save();
140
140
  }
141
141
  }
142
142
  );
143
143
  } else {
144
144
  callback(session);
145
+ session.$save();
145
146
  }
146
147
  });
147
148
  };
package/lib/sessions.js CHANGED
@@ -22,7 +22,7 @@ module.exports = function init(____0) {
22
22
  try {
23
23
  ss = JSON.parse(ss);
24
24
  callback(null, ss);
25
- console.log(' ... sessions Loaded From ...' + sessions.path);
25
+ console.log(' /// sessions Loaded From /// ' + sessions.path);
26
26
  } catch (err) {
27
27
  console.log(err.message);
28
28
  }
@@ -32,6 +32,15 @@ module.exports = function init(____0) {
32
32
  return;
33
33
  };
34
34
 
35
+ sessions.handleSessions = function () {
36
+ sessions.list = sessions.list.filter((s) => s && new Date().getTime() - s.createdTime < 1000 * 60 * ____0.options.session.timeout);
37
+ sessions.list = sessions.list.filter((s) => s && new Date().getTime() - s.$time < 1000 * 60 * ____0.options.session.memoryTimeout);
38
+
39
+ if (____0.options.session.enabled && ____0.options.session.storage === 'mongodb') {
40
+ sessions.$collection.deleteAll({ createdTime: { $lt: new Date().getTime() - 1000 * 60 * ____0.options.session.timeout } });
41
+ }
42
+ };
43
+
35
44
  sessions.saveAll = function (callback) {
36
45
  callback =
37
46
  callback ||
@@ -47,63 +56,45 @@ module.exports = function init(____0) {
47
56
  });
48
57
  return;
49
58
  }
59
+ sessions.handleSessions();
50
60
 
51
61
  if (____0.options.session.storage === 'mongodb') {
52
62
  sessions.list.forEach((s, i) => {
53
- if (!s) {
54
- return false;
55
- }
56
- if (new Date().getTime() - s.createdTime > 1000 * 60 * ____0.options.session.timeout) {
57
- sessions.list.splice(i, 1);
58
- sessions.$collection.delete(s);
63
+ if (s.id) {
64
+ sessions.$collection.update(s, (err, result) => {
65
+ if (!err && result && result.doc) {
66
+ sessions.list[i] = result.doc;
67
+ }
68
+ });
59
69
  } else {
60
- if (s.id) {
61
- sessions.$collection.update(s, (err, result) => {
62
- if (!err && result) {
63
- sessions.list[i] = result.doc;
64
- }
65
- });
66
- } else {
67
- sessions.$collection.insert(s, (err, doc) => {
68
- if (!err && doc) {
69
- sessions.list[i] = doc;
70
- }
71
- });
72
- }
70
+ sessions.$collection.insert(s, (err, doc) => {
71
+ if (!err && doc) {
72
+ sessions.list[i] = doc;
73
+ }
74
+ });
73
75
  }
74
76
  });
75
77
  } else {
76
- sessions.list.forEach((s, i) => {
77
- if (!s) {
78
- return false;
79
- }
80
- let online = new Date().getTime() - s.createdTime;
81
- let timeout = 1000 * 60 * ____0.options.session.timeout;
82
- if (online > timeout) {
83
- sessions.list.splice(i, 1);
84
- }
85
- });
86
-
87
78
  ____0.writeFile(sessions.path, JSON.stringify(sessions.list), () => {
88
79
  callback(null, sessions.list);
89
- console.log(' ... sessions Saved to ...' + sessions.path);
80
+ console.log(' /// sessions Saved to ///' + sessions.path);
90
81
  });
91
82
  }
92
83
 
93
84
  return;
94
85
  };
95
86
 
96
- ____0.getSession = sessions.attach = function (session, callback) {
87
+ ____0.getSession = sessions.attach = function (req, callback) {
88
+ let session = { accessToken: req.headers['Access-Token'] || req.headers['access-token'] || req.query['access-token'] || req.cookie('access_token') };
89
+
97
90
  callback = callback || function () {};
98
- session.$exists = !1;
99
91
 
100
92
  if (session.accessToken) {
101
93
  let index = sessions.list.findIndex((s) => s && s.accessToken && s.accessToken === session.accessToken);
102
- if (index > -1) {
94
+ if (index !== -1) {
95
+ sessions.list[index].$time = new Date().getTime();
103
96
  sessions.list[index].requestesCount++;
104
97
  sessions.list[index].language = sessions.list[index].language || ____0.options.language;
105
- session.$exists = !0;
106
- session.$index = index;
107
98
  callback(sessions.list[index]);
108
99
  } else {
109
100
  if (____0.options.session.storage === 'mongodb') {
@@ -111,14 +102,11 @@ module.exports = function init(____0) {
111
102
  { accessToken: session.accessToken },
112
103
  (err, doc) => {
113
104
  if (!err && doc) {
114
- session.$exists = !0;
115
- session = { ...session, ...doc };
116
- session.requestesCount++;
117
- session.$index = sessions.list.length;
118
- session.language = session.language || ____0.options.language;
119
-
120
- sessions.list.push(session);
121
- callback(sessions.list[session.$index]);
105
+ doc.$time = new Date().getTime();
106
+ doc.requestesCount++;
107
+ doc.language = doc.language || ____0.options.language;
108
+ sessions.list.push(doc);
109
+ callback(sessions.list[sessions.list.findIndex((s) => s.accessToken == session.accessToken)]);
122
110
  } else {
123
111
  session.$new = !0;
124
112
  session.language = ____0.options.language;
@@ -127,9 +115,9 @@ module.exports = function init(____0) {
127
115
  session.data = [];
128
116
  session.requestesCount = 1;
129
117
  session.createdTime = new Date().getTime();
130
- session.$index = sessions.list.length;
118
+ session.$time = new Date().getTime();
131
119
  sessions.list.push(session);
132
- callback(sessions.list[session.$index]);
120
+ callback(sessions.list[sessions.list.findIndex((s) => s.accessToken == session.accessToken)]);
133
121
  }
134
122
  },
135
123
  true
@@ -142,9 +130,9 @@ module.exports = function init(____0) {
142
130
  session.data = [];
143
131
  session.requestesCount = 1;
144
132
  session.createdTime = new Date().getTime();
145
- session.$index = sessions.list.length;
133
+ session.$time = new Date().getTime();
134
+ callback(session);
146
135
  sessions.list.push(session);
147
- callback(sessions.list[session.$index]);
148
136
  }
149
137
  }
150
138
  } else {
@@ -155,60 +143,21 @@ module.exports = function init(____0) {
155
143
  session.data = [];
156
144
  session.requestesCount = 1;
157
145
  session.createdTime = new Date().getTime();
158
- session.$index = sessions.list.length;
146
+ session.$time = new Date().getTime();
147
+ session.accessToken = req.host + req.ip + new Date().getTime().toString() + '_' + Math.random();
148
+ session.accessToken = ____0.x0md50x(session.accessToken);
159
149
  sessions.list.push(session);
160
- callback(sessions.list[session.$index]);
150
+ callback(sessions.list[sessions.list.findIndex((s) => s && s.accessToken == session.accessToken)]);
161
151
  }
162
152
  };
163
153
 
164
- ____0.saveSession = sessions.save = function (session, callback) {
165
- callback = callback || function () {};
166
- session.$exists = !1;
167
- let index = sessions.list.findIndex((s) => s.accessToken && s.accessToken == session.accessToken);
154
+ ____0.saveSession = sessions.save = function (session) {
155
+ let index = sessions.list.findIndex((s) => s && s.accessToken && s.accessToken == session.accessToken);
168
156
  if (index !== -1) {
169
- sessions.list[index] = { ...sessions.list[index], ...session };
170
- callback(sessions.list[index]);
171
- return sessions.list[index];
157
+ sessions.list[index] = session;
172
158
  }
173
159
  };
174
160
 
175
- ____0.on('[session][update]', (session) => {
176
- sessions.list.forEach((s) => {
177
- if (s.accessToken == session.accessToken) {
178
- for (let key in session) {
179
- if (session.hasOwnProperty(key) && key !== 'accessToken') {
180
- key = key.toLowerCase();
181
- for (let i = 0; i < s.data.length; i++) {
182
- let obj = s.data[i];
183
- if (obj.key === key) {
184
- s.data[i] = {
185
- key: key,
186
- value: session[key],
187
- };
188
- }
189
- }
190
- s.data.push({
191
- key: key,
192
- value: session[key],
193
- });
194
- }
195
- }
196
- }
197
- });
198
- });
199
- ____0.on('[session][delete]', (session) => {
200
- let index = sessions.list.findIndex((s) => s.accessToken && s.accessToken == session.accessToken);
201
- if (index !== -1) {
202
- sessions.list.splice(index, 1);
203
- }
204
- });
205
- ____0.on('[session][user][update]', (user) => {
206
- let index = sessions.list.findIndex((s) => s.user && s.user == session.user);
207
- if (index !== -1) {
208
- sessions.list[index].user = user;
209
- }
210
- });
211
-
212
161
  ____0.on('[any][saving data]', function () {
213
162
  sessions.saveAll();
214
163
  });
@@ -217,8 +166,7 @@ module.exports = function init(____0) {
217
166
  req.session.language = req.data;
218
167
  req.session.lang = req.session.language?.id || req.data.name;
219
168
  req.session.langDir = req.session.language?.dir;
220
-
221
- ____0.saveSession(req.session);
169
+ req.session.$save();
222
170
  res.json({
223
171
  done: true,
224
172
  lang: req.data.name,
@@ -259,5 +207,8 @@ module.exports = function init(____0) {
259
207
  if (!____0.options.session.storage === 'mongodb') {
260
208
  sessions.loadAll();
261
209
  }
210
+
211
+ sessions.handleSessions();
212
+
262
213
  return sessions;
263
214
  };
package/lib/ws.js CHANGED
@@ -107,6 +107,9 @@ module.exports = function init(____0) {
107
107
  onData: function (data) {
108
108
  console.log('client.onData Not Implement ...', data);
109
109
  },
110
+ onText: function (data) {
111
+ console.log('client.onText Not Implement ...', data);
112
+ },
110
113
  onError: function (e) {
111
114
  console.log('client.onError Not Implement ...', e);
112
115
  },
@@ -140,6 +143,8 @@ module.exports = function init(____0) {
140
143
  let index = ____0.ws.clientList.findIndex((_client) => _client.uuid == client.uuid);
141
144
  if (index !== -1) {
142
145
  ____0.ws.clientList.splice(index, 1);
146
+ ____0.call('[ws-clientList-remove-client]');
147
+ ____0.call('[ws-clientList-changed]');
143
148
  }
144
149
  let index2 = ____0.ws.supportedClientList.findIndex((_client) => _client.uuid == client.uuid);
145
150
  if (index2 !== -1) {
@@ -148,21 +153,23 @@ module.exports = function init(____0) {
148
153
  client.onClose();
149
154
  });
150
155
 
151
- ws.on('message', (data, isBinary) => {
156
+ client.ws.on('message', (data, isBinary) => {
152
157
  client.lastTime = new Date().getTime();
153
158
  if (isBinary) {
154
159
  client.onData(data);
155
160
  } else {
156
161
  let obj = ____0.fromJson(Buffer.from(data).toString('utf8'));
157
- if (obj.type == 'pong') {
158
- client.lastTime = new Date().getTime();
159
- } else {
162
+ if (Object.keys(obj).length) {
160
163
  client.onMessage(obj);
164
+ } else {
165
+ client.onText(Buffer.from(data).toString('utf8'));
161
166
  }
162
167
  }
163
168
  });
164
169
 
165
170
  ____0.ws.clientList.push(client);
171
+ ____0.call('[ws-clientList-add-client]');
172
+ ____0.call('[ws-clientList-changed]');
166
173
  ____0.ws.routeList[index].callback(client);
167
174
 
168
175
  client.onMessage({ type: 'connected' });
@@ -94,6 +94,7 @@ function setOptions(_options, ____0) {
94
94
  },
95
95
  session: {
96
96
  timeout: 60 * 24 * 30,
97
+ memoryTimeout : 60,
97
98
  enabled: !0,
98
99
  storage: 'mongodb',
99
100
  db: null,
@@ -265,6 +266,7 @@ function setOptions(_options, ____0) {
265
266
  _x0oo.session = _x0oo.session || template.session;
266
267
  _x0oo.session.enabled = _x0oo.session.enabled ?? template.session.enabled;
267
268
  _x0oo.session.timeout = _x0oo.session.timeout ?? template.session.timeout;
269
+ _x0oo.session.memoryTimeout = _x0oo.session.memoryTimeout ?? template.session.memoryTimeout;
268
270
  _x0oo.session.storage = _x0oo.session.storage || template.session.storage;
269
271
  _x0oo.session.db = _x0oo.session.db || _x0oo.mongodb.db;
270
272
  _x0oo.session.collection = _x0oo.session.collection || template.session.collection;
@@ -191,7 +191,7 @@ exports = module.exports = function init(____0) {
191
191
  };
192
192
 
193
193
  fn.getDateTime = fn.toDateTime = function (_any) {
194
- let d = _any ? new Date(_any) : new Date();
194
+ let d = _any ? new Date(_any) : new Date();
195
195
  return new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds()));
196
196
  };
197
197
 
@@ -366,7 +366,7 @@ exports = module.exports = function init(____0) {
366
366
  if (obj === undefined || obj === null) {
367
367
  return '';
368
368
  }
369
- return JSON.stringify(obj);
369
+ return JSON.stringify(____0.removeRefObject(obj));
370
370
  };
371
371
 
372
372
  fn._0xpttxo = function () {
@@ -429,14 +429,37 @@ exports = module.exports = function init(____0) {
429
429
  return newData;
430
430
  };
431
431
 
432
- ____0.hide = (data) => {
432
+ ____0.hide = ____0.hideObject = (data) => {
433
433
  if (data === undefined) {
434
434
  return '';
435
435
  }
436
436
  return fn.to123(data);
437
437
  };
438
- ____0.ul = ____0.show = (data) => {
439
- return fn.fromJson(fn.from123(data));
438
+ ____0.ul =
439
+ ____0.show =
440
+ ____0.showObject =
441
+ (data) => {
442
+ return fn.fromJson(fn.from123(data));
443
+ };
444
+
445
+ ____0.removeRefObject = function (obj) {
446
+ const seen = new Set();
447
+ const recurse = (obj) => {
448
+ seen.add(obj, true);
449
+ for (let [k, v] of Object.entries(obj)) {
450
+ if (k !== '_id') {
451
+ if (v && typeof v == 'object') {
452
+ if (seen.has(v)) {
453
+ delete obj[k];
454
+ } else {
455
+ recurse(v);
456
+ }
457
+ }
458
+ }
459
+ }
460
+ return obj;
461
+ };
462
+ return recurse(obj);
440
463
  };
441
464
 
442
465
  ____0.fn = fn;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isite",
3
- "version": "2024.09.02",
3
+ "version": "2024.10.02",
4
4
  "description": "Create High Level Multi-Language Web Site [Fast and Easy] ",
5
5
  "main": "index.js",
6
6
  "repository": {