isite 2024.9.2 → 2024.10.1

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,16 @@ 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.storage === 'mongodb') {
40
+ sessions.$collection.deleteAll({ createdTime: { $lt: new Date().getTime() - 1000 * 60 * ____0.options.session.timeout } });
41
+ sessions.$collection.deleteAll({ where: { createdTime: { $exists: false } } });
42
+ }
43
+ };
44
+
35
45
  sessions.saveAll = function (callback) {
36
46
  callback =
37
47
  callback ||
@@ -47,63 +57,45 @@ module.exports = function init(____0) {
47
57
  });
48
58
  return;
49
59
  }
60
+ sessions.handleSessions();
50
61
 
51
62
  if (____0.options.session.storage === 'mongodb') {
52
63
  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);
64
+ if (s.id) {
65
+ sessions.$collection.update(s, (err, result) => {
66
+ if (!err && result && result.doc) {
67
+ sessions.list[i] = result.doc;
68
+ }
69
+ });
59
70
  } 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
- }
71
+ sessions.$collection.insert(s, (err, doc) => {
72
+ if (!err && doc) {
73
+ sessions.list[i] = doc;
74
+ }
75
+ });
73
76
  }
74
77
  });
75
78
  } 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
79
  ____0.writeFile(sessions.path, JSON.stringify(sessions.list), () => {
88
80
  callback(null, sessions.list);
89
- console.log(' ... sessions Saved to ...' + sessions.path);
81
+ console.log(' /// sessions Saved to ///' + sessions.path);
90
82
  });
91
83
  }
92
84
 
93
85
  return;
94
86
  };
95
87
 
96
- ____0.getSession = sessions.attach = function (session, callback) {
88
+ ____0.getSession = sessions.attach = function (req, callback) {
89
+ let session = { accessToken: req.headers['Access-Token'] || req.headers['access-token'] || req.query['access-token'] || req.cookie('access_token') };
90
+
97
91
  callback = callback || function () {};
98
- session.$exists = !1;
99
92
 
100
93
  if (session.accessToken) {
101
94
  let index = sessions.list.findIndex((s) => s && s.accessToken && s.accessToken === session.accessToken);
102
- if (index > -1) {
95
+ if (index !== -1) {
96
+ sessions.list[index].$time = new Date().getTime();
103
97
  sessions.list[index].requestesCount++;
104
98
  sessions.list[index].language = sessions.list[index].language || ____0.options.language;
105
- session.$exists = !0;
106
- session.$index = index;
107
99
  callback(sessions.list[index]);
108
100
  } else {
109
101
  if (____0.options.session.storage === 'mongodb') {
@@ -111,14 +103,11 @@ module.exports = function init(____0) {
111
103
  { accessToken: session.accessToken },
112
104
  (err, doc) => {
113
105
  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]);
106
+ doc.$time = new Date().getTime();
107
+ doc.requestesCount++;
108
+ doc.language = doc.language || ____0.options.language;
109
+ sessions.list.push(doc);
110
+ callback(sessions.list[sessions.list.findIndex((s) => s.accessToken == session.accessToken)]);
122
111
  } else {
123
112
  session.$new = !0;
124
113
  session.language = ____0.options.language;
@@ -127,9 +116,9 @@ module.exports = function init(____0) {
127
116
  session.data = [];
128
117
  session.requestesCount = 1;
129
118
  session.createdTime = new Date().getTime();
130
- session.$index = sessions.list.length;
119
+ session.$time = new Date().getTime();
131
120
  sessions.list.push(session);
132
- callback(sessions.list[session.$index]);
121
+ callback(sessions.list[sessions.list.findIndex((s) => s.accessToken == session.accessToken)]);
133
122
  }
134
123
  },
135
124
  true
@@ -142,9 +131,9 @@ module.exports = function init(____0) {
142
131
  session.data = [];
143
132
  session.requestesCount = 1;
144
133
  session.createdTime = new Date().getTime();
145
- session.$index = sessions.list.length;
134
+ session.$time = new Date().getTime();
135
+ callback(session);
146
136
  sessions.list.push(session);
147
- callback(sessions.list[session.$index]);
148
137
  }
149
138
  }
150
139
  } else {
@@ -155,60 +144,21 @@ module.exports = function init(____0) {
155
144
  session.data = [];
156
145
  session.requestesCount = 1;
157
146
  session.createdTime = new Date().getTime();
158
- session.$index = sessions.list.length;
147
+ session.$time = new Date().getTime();
148
+ session.accessToken = req.host + req.ip + new Date().getTime().toString() + '_' + Math.random();
149
+ session.accessToken = ____0.x0md50x(session.accessToken);
159
150
  sessions.list.push(session);
160
- callback(sessions.list[session.$index]);
151
+ callback(sessions.list[sessions.list.findIndex((s) => s && s.accessToken == session.accessToken)]);
161
152
  }
162
153
  };
163
154
 
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);
155
+ ____0.saveSession = sessions.save = function (session) {
156
+ let index = sessions.list.findIndex((s) => s && s.accessToken && s.accessToken == session.accessToken);
168
157
  if (index !== -1) {
169
- sessions.list[index] = { ...sessions.list[index], ...session };
170
- callback(sessions.list[index]);
171
- return sessions.list[index];
158
+ sessions.list[index] = session;
172
159
  }
173
160
  };
174
161
 
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
162
  ____0.on('[any][saving data]', function () {
213
163
  sessions.saveAll();
214
164
  });
@@ -217,8 +167,7 @@ module.exports = function init(____0) {
217
167
  req.session.language = req.data;
218
168
  req.session.lang = req.session.language?.id || req.data.name;
219
169
  req.session.langDir = req.session.language?.dir;
220
-
221
- ____0.saveSession(req.session);
170
+ req.session.$save();
222
171
  res.json({
223
172
  done: true,
224
173
  lang: req.data.name,
@@ -259,5 +208,8 @@ module.exports = function init(____0) {
259
208
  if (!____0.options.session.storage === 'mongodb') {
260
209
  sessions.loadAll();
261
210
  }
211
+
212
+ sessions.handleSessions();
213
+
262
214
  return sessions;
263
215
  };
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.01",
4
4
  "description": "Create High Level Multi-Language Web Site [Fast and Easy] ",
5
5
  "main": "index.js",
6
6
  "repository": {