telos-server 1.0.12 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "telos-server",
3
- "version": "1.0.12",
3
+ "version": "1.0.14",
4
4
  "description": "An Extensible CMS Server for Telos Origin.",
5
5
  "main": "telosServer.json",
6
6
  "dependencies": {
package/serverUtils.js CHANGED
@@ -1,5 +1,5 @@
1
- var fs = require("fs");
2
1
  var path = require("path");
2
+ var virtualSystem = require("virtual-system");
3
3
 
4
4
  var extensionTypes = {
5
5
  'txt': 'text/plain',
@@ -30,6 +30,40 @@ var fileTypes = [
30
30
  'mp4'
31
31
  ];
32
32
 
33
+ function getAllFiles(directory) {
34
+
35
+ let items = { };
36
+
37
+ if(Array.isArray(directory)) {
38
+
39
+ directory.forEach(value => {
40
+ Object.assign(items, getAllFiles(value));
41
+ });
42
+
43
+ return items;
44
+ }
45
+
46
+ directory = directory.split(":\\").join("://").split("\\").join("/");
47
+
48
+ let contents = virtualSystem.getResource(directory);
49
+
50
+ if(!Array.isArray(contents))
51
+ return;
52
+
53
+ contents[0].forEach(item => {
54
+ Object.assign(items, getAllFiles(directory + path.sep + item));
55
+ });
56
+
57
+ contents[1].forEach(item => {
58
+
59
+ item = directory + path.sep + item;
60
+
61
+ items[item] = getFileData(item);
62
+ });
63
+
64
+ return items;
65
+ }
66
+
33
67
  function getFile(uri, directories) {
34
68
 
35
69
  try {
@@ -47,37 +81,42 @@ function getFile(uri, directories) {
47
81
  directories
48
82
  ).map(file => {
49
83
 
50
- let type = file.includes(".") ?
51
- file.substring(file.lastIndexOf(".") + 1) : null;
84
+ let data = getFileData(file);
52
85
 
53
- let result = {
54
- file: file,
55
- folder: fs.lstatSync(file).isDirectory(),
56
- meta: file.split(/[\/\\]/).map(item =>
57
- item.split(".").slice(1).reduce(
58
- (value, item) => {
86
+ return data.meta.private == null ? data : null;
87
+ })[0];
88
+ }
59
89
 
60
- item = item.split("-");
90
+ catch(error) {
91
+ return null;
92
+ }
93
+ }
61
94
 
62
- let key = item[0].toLowerCase()
95
+ function getFileData(file) {
63
96
 
64
- if(key != type)
65
- value[key] = item.slice(1).join("-");
97
+ let type = file.includes(".") ?
98
+ file.substring(file.lastIndexOf(".") + 1) : null;
66
99
 
67
- return value;
68
- },
69
- { }
70
- )
71
- ).reduce((value, item) => Object.assign(value, item), { }),
72
- type: type
73
- }
100
+ return {
101
+ file: file,
102
+ folder: Array.isArray(virtualSystem.getResource(file)),
103
+ meta: file.split(/[\/\\]/).map(item =>
104
+ item.split(".").slice(1).reduce(
105
+ (value, item) => {
74
106
 
75
- return result.meta.private == null ? result : null;
76
- })[0];
77
- }
107
+ item = item.split("-");
78
108
 
79
- catch(error) {
80
- return null;
109
+ let key = item[0].toLowerCase()
110
+
111
+ if(key != type)
112
+ value[key] = item.slice(1).join("-");
113
+
114
+ return value;
115
+ },
116
+ { }
117
+ )
118
+ ).reduce((value, item) => Object.assign(value, item), { }),
119
+ type: type
81
120
  }
82
121
  }
83
122
 
@@ -95,7 +134,16 @@ function getFiles(items, paths) {
95
134
 
96
135
  try {
97
136
 
98
- fs.readdirSync(file).forEach(item => {
137
+ file = file.split(":\\").join("://").split("\\").join("/");
138
+
139
+ let contents = virtualSystem.getResource(file);
140
+
141
+ if(!Array.isArray(contents))
142
+ return;
143
+
144
+ contents = contents[0].concat(contents[1]);
145
+
146
+ contents.forEach(item => {
99
147
 
100
148
  if(item.toLowerCase().startsWith(alias.toLowerCase()))
101
149
  files.push(file + path.sep + item);
@@ -113,8 +161,17 @@ function getFiles(items, paths) {
113
161
  paths.forEach(file => {
114
162
 
115
163
  try {
116
-
117
- fs.readdirSync(file).forEach(item => {
164
+
165
+ file = file.split(":\\").join("://").split("\\").join("/");
166
+
167
+ let contents = virtualSystem.getResource(file);
168
+
169
+ if(!Array.isArray(contents))
170
+ return;
171
+
172
+ contents = contents[0].concat(contents[1]);
173
+
174
+ contents.forEach(item => {
118
175
 
119
176
  if(item.toLowerCase().startsWith("index"))
120
177
  files.push(file + path.sep + item);
@@ -242,7 +299,9 @@ function processRequest(request, protocol, callback) {
242
299
  module.exports = {
243
300
  extensionTypes,
244
301
  fileTypes,
302
+ getAllFiles,
245
303
  getFile,
304
+ getFileData,
246
305
  getFiles,
247
306
  isHTTPJSON,
248
307
  processRequest
package/telosEngine.js ADDED
@@ -0,0 +1,40 @@
1
+ var busNet = use("bus-net");
2
+
3
+ var telosEngine = {
4
+ initialization: null,
5
+ interval: null,
6
+ query: (packet) => {
7
+
8
+ try {
9
+
10
+ packet = JSON.parse(packet);
11
+
12
+ if(packet.tags.includes("telos-origin") &&
13
+ packet.tags.includes("initialize")) {
14
+
15
+ telosEngine.initialization = packet;
16
+
17
+ telosEngine.interval = setInterval(
18
+ () => { busNet.call(`{"tags":["telos-engine"]}`); },
19
+ 1000 / 60
20
+ );
21
+
22
+ return;
23
+ }
24
+
25
+ if(packet.tags.includes("telos-configuration") &&
26
+ packet.tags.length == 1) {
27
+
28
+ return telosEngine.initialization = packet;
29
+ }
30
+ }
31
+
32
+ catch(error) {
33
+ return;
34
+ }
35
+ },
36
+ tags: ["telos-origin", "telos-engine"]
37
+ }
38
+
39
+ if(typeof module == "object")
40
+ module.exports = telosEngine;
@@ -1,6 +1,5 @@
1
- var fs = use("fs");
2
- var path = use("path");
3
1
  var pup = require("universal-preprocessor");
2
+ var virtualSystem = require("virtual-system");
4
3
 
5
4
  let extensionTypes = {
6
5
  'txt': 'text/plain',
@@ -49,23 +48,14 @@ function middlewareFolder(packet, file) {
49
48
 
50
49
  if(file.type != "folder")
51
50
  return;
52
-
53
- let result = [[], []];
54
-
55
- fs.readdirSync(file.file).forEach(item => {
56
-
57
- result[
58
- fs.lstatSync(
59
- file.file + path.sep + item
60
- ).isDirectory() ? 0 : 1
61
- ].push(item);
62
- })
63
51
 
64
52
  return {
65
53
  headers: {
66
54
  "Content-Type": "text/json"
67
55
  },
68
- body: JSON.stringify(result, null, "\t")
56
+ body: JSON.stringify(
57
+ virtualSystem.getResource(file.file), null, "\t"
58
+ )
69
59
  }
70
60
  }
71
61
 
@@ -109,7 +99,10 @@ function middlewareJS(packet, file) {
109
99
  <script>
110
100
 
111
101
  ${preprocess(
112
- fs.readFileSync(file.file, "utf-8")
102
+ virtualSystem.getResource(
103
+ file.file.
104
+ split(":\\").join("://").split("\\").join("/")
105
+ )
113
106
  )}
114
107
 
115
108
  </script>
@@ -129,11 +122,10 @@ function middlewareJS(packet, file) {
129
122
  var vision = use("kaeon-united")("vision");
130
123
 
131
124
  vision.extend(JSON.parse("${
132
- JSON.stringify(
133
- preprocess(
134
- fs.readFileSync(file.file, "utf-8")
135
- )
136
- )
125
+ JSON.stringify(preprocess(virtualSystem.getResource(
126
+ file.file.
127
+ split(":\\").join("://").split("\\").join("/")
128
+ )))
137
129
  }");
138
130
 
139
131
  </script>
@@ -152,7 +144,9 @@ function middlewareText(packet, file) {
152
144
  "Content-Type": extensionTypes[file.type]
153
145
  },
154
146
  body: preprocess(
155
- fs.readFileSync(file.file, "utf-8")
147
+ virtualSystem.getResource(
148
+ file.file.split(":\\").join("://").split("\\").join("/")
149
+ )
156
150
  )
157
151
  }
158
152
  }
package/telosRouter.js CHANGED
@@ -1,6 +1,7 @@
1
1
  var apint = require("apint");
2
2
  var path = require("path");
3
3
  var serverUtils = require("./serverUtils.js");
4
+ var virtualSystem = require("virtual-system");
4
5
 
5
6
  var telosRouter = {
6
7
  config: {
@@ -16,6 +17,53 @@ var telosRouter = {
16
17
 
17
18
  packet = JSON.parse(packet);
18
19
 
20
+ if(packet.tags != null) {
21
+
22
+ if(packet.tags.length == 1 &&
23
+ (packet.tags[0] == "telos-engine" ||
24
+ packet.tags[0] == "telos-engine-refresh")) {
25
+
26
+ telosRouter.tasks = (
27
+ telosRouter.tasks != null &&
28
+ packet.tags[0] == "telos-engine"
29
+ ) ?
30
+ telosRouter.tasks :
31
+ Object.values(
32
+ serverUtils.getAllFiles(
33
+ telosRouter.config.directories
34
+ )
35
+ ).filter(
36
+ item => item != null
37
+ ).filter(
38
+ item =>
39
+ Object.keys(item.meta).includes("task") &&
40
+ item.type == "js"
41
+ ).map(
42
+ item => item.file
43
+ );
44
+
45
+ if(packet.tags[0] == "telos-engine-refresh")
46
+ return;
47
+
48
+ telosRouter.tasks.forEach(item => {
49
+
50
+ try {
51
+
52
+ use(
53
+ virtualSystem.getResource(item),
54
+ { dynamic: true }
55
+ )();
56
+ }
57
+
58
+ catch(error) {
59
+ console.log(error);
60
+ }
61
+ });
62
+
63
+ return;
64
+ }
65
+ }
66
+
19
67
  let middleware = [];
20
68
 
21
69
  apint.queryUtilities(
@@ -58,7 +106,7 @@ var telosRouter = {
58
106
  }
59
107
 
60
108
  catch(error) {
61
-
109
+ console.log(error);
62
110
  }
63
111
  }
64
112
 
@@ -119,6 +167,7 @@ var telosRouter = {
119
167
  `
120
168
  };
121
169
  },
170
+ tasks: null,
122
171
  tags: ["telos-origin", "telos-router"]
123
172
  };
124
173
 
package/telosServer.js CHANGED
@@ -3,6 +3,7 @@ var fs = require("fs");
3
3
  var http = require("http");
4
4
  var https = require("https");
5
5
  var busNet = use("bus-net");
6
+ var virtualSystem = require("virtual-system");
6
7
 
7
8
  var telosServer = {
8
9
  process: ((request, response) => {
@@ -149,6 +150,8 @@ var telosServer = {
149
150
  return;
150
151
  }
151
152
 
153
+ virtualSystem.initiateVirtualSystemDefault();
154
+
152
155
  let options = packet.content.options.options;
153
156
 
154
157
  if(options.port != false) {
package/telosServer.json CHANGED
@@ -1,5 +1,11 @@
1
1
  {
2
2
  "utilities": {
3
+ "telosEngine": {
4
+ "source": "telos-server/telosEngine.js",
5
+ "properties": {
6
+ "type": "bus-module"
7
+ }
8
+ },
3
9
  "telosServer": {
4
10
  "source": "telos-server/telosServer.js",
5
11
  "properties": {