@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 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(serveStatic(staticPath, { index: false }))
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
  })
@@ -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)
@@ -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.installHandlers(httpServer, { prefix: '/api/sockjs' })
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.14",
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.3",
25
- "@live-change/dao-sockjs": "^0.2.0",
26
- "@live-change/db-server": "^0.4.80",
27
- "@live-change/framework": "^0.5.0",
28
- "@live-change/vue3-ssr": "^0.1.0",
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.0",
31
- "dotenv": "^9.0.2",
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": "^5.0.1",
36
- "sockjs": "^0.3.21",
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.1"
38
+ "yargs": "^17.3.0",
39
+ "express-static-gzip": "2.1.1"
39
40
  }
40
41
  }