@live-change/server 0.1.14 → 0.1.18
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/SsrServer.js +19 -3
- package/lib/setupApiServer.js +10 -1
- package/lib/setupApiSockJs.js +6 -3
- package/package.json +12 -11
package/lib/SsrServer.js
CHANGED
|
@@ -2,6 +2,7 @@ const cookie = require('cookie')
|
|
|
2
2
|
const path = require('path')
|
|
3
3
|
const serveStatic = require('serve-static')
|
|
4
4
|
const crypto = require('crypto')
|
|
5
|
+
const expressStaticGzip = require("express-static-gzip")
|
|
5
6
|
|
|
6
7
|
const serverDao = require('./serverDao.js')
|
|
7
8
|
const { hashCode, encodeNumber, uidGenerator } = require('@live-change/uid')
|
|
@@ -32,7 +33,22 @@ class SsrServer {
|
|
|
32
33
|
this.express.use(this.renderer.vite.middlewares)
|
|
33
34
|
} else {
|
|
34
35
|
const staticPath = path.resolve(this.root, 'dist/client')
|
|
35
|
-
this.express.use(
|
|
36
|
+
this.express.use('/', expressStaticGzip(staticPath, {
|
|
37
|
+
//enableBrotli: true,
|
|
38
|
+
index: false,
|
|
39
|
+
customCompressions: [{
|
|
40
|
+
encodingName: 'br',
|
|
41
|
+
fileExtension: 'br'
|
|
42
|
+
},{
|
|
43
|
+
encodingName: 'gzip',
|
|
44
|
+
fileExtension: 'gz'
|
|
45
|
+
},{
|
|
46
|
+
encodingName: 'deflate',
|
|
47
|
+
fileExtension: 'zz'
|
|
48
|
+
}],
|
|
49
|
+
orderPreference: ['br', 'gzip', 'deflate']
|
|
50
|
+
}))
|
|
51
|
+
//this.express.use(serveStatic(staticPath, { index: false }))
|
|
36
52
|
}
|
|
37
53
|
|
|
38
54
|
await this.setupSsr()
|
|
@@ -49,7 +65,7 @@ class SsrServer {
|
|
|
49
65
|
this.settings.sessionExpires ? new Date(Date.now() + this.settings.sessionExpires).toUTCString() : null
|
|
50
66
|
if(credentials.sessionKey) {
|
|
51
67
|
res.set({
|
|
52
|
-
'Set-Cookie': `sessionKey=${credentials.sessionKey}; Path
|
|
68
|
+
'Set-Cookie': `sessionKey=${credentials.sessionKey}; Path=/; HttpOnly`
|
|
53
69
|
+ (cookieExpireDate ? `; Expires=${cookieExpireDate}` : '')
|
|
54
70
|
})
|
|
55
71
|
}
|
|
@@ -86,7 +102,7 @@ class SsrServer {
|
|
|
86
102
|
res.end(html)
|
|
87
103
|
} catch (e) {
|
|
88
104
|
this.renderer.fixStackTrace(e)
|
|
89
|
-
console.error("RENDERING ERROR", e.stack)
|
|
105
|
+
console.error("RENDERING ERROR", e.stack || e)
|
|
90
106
|
res.status(500).end(e.stack)
|
|
91
107
|
}
|
|
92
108
|
})
|
package/lib/setupApiServer.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
const cookie = require("cookie")
|
|
1
2
|
const Dao = require("@live-change/dao")
|
|
3
|
+
const { connection } = require("websocket")
|
|
2
4
|
const Services = require('../lib/Services.js')
|
|
3
5
|
const app = require("@live-change/framework").app()
|
|
4
6
|
|
|
@@ -41,7 +43,14 @@ async function setupApiServer(settings) {
|
|
|
41
43
|
},
|
|
42
44
|
shareDefinition: true,
|
|
43
45
|
logErrors: true,
|
|
44
|
-
createSessionOnUpdate: true /// deprecated - moved to session-service settings
|
|
46
|
+
createSessionOnUpdate: true, /// deprecated - moved to session-service settings
|
|
47
|
+
fastAuth: settings.fastAuth /* && ((connection) => {
|
|
48
|
+
const cookies = cookie.parse(connection.headers.cookie || '')
|
|
49
|
+
return {
|
|
50
|
+
sesionId: cookies.sessionId,
|
|
51
|
+
sessionKey: cookies.sessionKey
|
|
52
|
+
}
|
|
53
|
+
}) */
|
|
45
54
|
}
|
|
46
55
|
|
|
47
56
|
const apiServer = await app.createLiveApiServer(apiServerConfig)
|
package/lib/setupApiSockJs.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
const sockjs = require('sockjs')
|
|
1
|
+
const sockjs = require('@live-change/sockjs')
|
|
2
2
|
|
|
3
3
|
function setupApiSockJs(httpServer, apiServer) {
|
|
4
|
-
const sockJsServer = sockjs.createServer({
|
|
4
|
+
const sockJsServer = sockjs.createServer({
|
|
5
|
+
prefix: '/api/sockjs',
|
|
6
|
+
transports: [ 'websocket', 'websocket-raw', 'xhr-polling', 'xhr-streaming' ]
|
|
7
|
+
})
|
|
5
8
|
sockJsServer.on('connection', function (conn) {
|
|
6
9
|
if(!conn) {
|
|
7
10
|
console.error("NULL SOCKJS connection")
|
|
@@ -10,7 +13,7 @@ function setupApiSockJs(httpServer, apiServer) {
|
|
|
10
13
|
console.log("SOCKJS connection")
|
|
11
14
|
apiServer.handleConnection(conn)
|
|
12
15
|
})
|
|
13
|
-
sockJsServer.
|
|
16
|
+
sockJsServer.attach(httpServer)
|
|
14
17
|
|
|
15
18
|
return sockJsServer
|
|
16
19
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@live-change/server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18",
|
|
4
4
|
"description": "Live Change Framework - server",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -21,20 +21,21 @@
|
|
|
21
21
|
},
|
|
22
22
|
"homepage": "https://github.com/live-change/server",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@live-change/dao": "^0.3.
|
|
25
|
-
"@live-change/dao-sockjs": "^0.2.
|
|
26
|
-
"@live-change/db-server": "^0.4.
|
|
27
|
-
"@live-change/framework": "^0.5.
|
|
28
|
-
"@live-change/vue3-ssr": "^0.1.
|
|
24
|
+
"@live-change/dao": "^0.3.12",
|
|
25
|
+
"@live-change/dao-sockjs": "^0.2.1",
|
|
26
|
+
"@live-change/db-server": "^0.4.82",
|
|
27
|
+
"@live-change/framework": "^0.5.10",
|
|
28
|
+
"@live-change/vue3-ssr": "^0.1.7",
|
|
29
29
|
"@live-change/uid": "^0.1.3",
|
|
30
|
-
"http-proxy-middleware": "2.0.
|
|
31
|
-
"dotenv": "^
|
|
30
|
+
"http-proxy-middleware": "2.0.1",
|
|
31
|
+
"dotenv": "^10.0.0",
|
|
32
32
|
"express": "^4.17.1",
|
|
33
33
|
"resolve": "^1.20.0",
|
|
34
34
|
"segfault-handler": "^1.3.0",
|
|
35
|
-
"serialize-javascript": "^
|
|
36
|
-
"sockjs": "^0.
|
|
35
|
+
"serialize-javascript": "^6.0.0",
|
|
36
|
+
"@live-change/sockjs": "^0.4.0-rc.1",
|
|
37
37
|
"websocket": "^1.0.34",
|
|
38
|
-
"yargs": "^17.0
|
|
38
|
+
"yargs": "^17.3.0",
|
|
39
|
+
"express-static-gzip": "2.1.1"
|
|
39
40
|
}
|
|
40
41
|
}
|