telos-server 1.0.8 → 1.0.10

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 (2) hide show
  1. package/README.md +30 -5
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## 1 - Abstract
4
4
 
5
+ ***To Serve Code***
6
+
5
7
  Telos Server is a server built on [Telos Origin](https://github.com/Telos-Project/Telos-Origin),
6
8
  which operates on a declarative file system based CMS.
7
9
 
@@ -9,13 +11,13 @@ which operates on a declarative file system based CMS.
9
11
 
10
12
  ### 2.1 - Content
11
13
 
12
- The Telos Server shall source its content and endpoints from a folder on disk, which by default
13
- shall be called "telos", and shall be stored in the same directory the server process runs from.
14
+ Telos Server shall source its content and endpoints from a folder on disk, which by default shall
15
+ be called "telos", and shall be stored in the same directory the server process runs from.
14
16
 
15
17
  File names in the telos folder shall have their names segmented into chunks by periods, with the
16
18
  first chunk specifying the name of the file, the last chunk specifying the extension, and each
17
19
  intermediate chunk specifying a property. If a property chunk contains a hyphen, the part preceding
18
- the hyphen shall specify the name of the property, and the part following the hypen shall specify
20
+ the hyphen shall specify the name of the property, and the part following the hyphen shall specify
19
21
  the value of the property.
20
22
 
21
23
  Folder names may be split the same way, though in folders the final chunk will also be a property
@@ -83,5 +85,28 @@ the following command before uploading your project:
83
85
 
84
86
  #### 2.2.2 - Configuration
85
87
 
86
- The defualt port can be reconfigured with a Telos Config utility with the desired port specified as
87
- a numerical field in the properties with the alias "port".
88
+ The default port can be reconfigured with a Telos Config utility with the desired port specified as
89
+ a numerical field in the properties with the alias "port".
90
+
91
+ #### 2.2.3 - Middleware
92
+
93
+ Telos Server may be extended through middleware referenced in the Telos Origin APInt.
94
+
95
+ The utilities which reference such middleware shall have the "type" property specified as
96
+ "telos-server-middleware", and shall reference as their source a CommonJS module which exports an
97
+ object with a "middleware" field containing a list of middleware functions.
98
+
99
+ A middleware function shall take two arguments, the first being the HTTP request which invoked it
100
+ it the form of an HTTP JSON object, and the second being a file metadata object specifying
101
+ information about the file on disk which matches the request URI. Said metadata object shall have
102
+ the fields "file", containing a string specifying the full file path, "meta", containing an object
103
+ specifying the properties derived from the file path as shown in section 2.1.1, and "type",
104
+ containing a string specifying the file type.
105
+
106
+ The function may return an HTTP JSON response object representing the response to be returned to
107
+ the client. Additional fields may be added to the response object for certain behaviors. Ideally,
108
+ only one middleware function should return a response for each request, but in the event that there
109
+ are multiple responses, a "priority" field containing a number may be added to indicate how the
110
+ response should be weighed relative to others. If the response is to return a filestream rather
111
+ than a text response, the body of the response shall be set to the path to the streamed resource,
112
+ and the response object shall have the field "file", containing a boolean value of true.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "telos-server",
3
- "version": "1.0.8",
3
+ "version": "1.0.10",
4
4
  "description": "An Extensible CMS Server for Telos Origin.",
5
5
  "main": "telosServer.json",
6
6
  "dependencies": {