@live-change/cli 0.7.39 → 0.8.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/bin/lcli.js CHANGED
@@ -1,321 +1,6 @@
1
1
  #!/usr/bin/env node
2
- require('dotenv').config()
3
- const express = require("express")
4
- const path = require('path')
5
- const http = require("http")
6
- const { createProxyMiddleware } = require('http-proxy-middleware')
7
- const { readFile } = require('fs').promises
8
2
 
9
- const app = require("@live-change/framework").app()
3
+ import { starter } from '@live-change/cli'
10
4
 
11
- const {
5
+ starter()
12
6
 
13
- SsrServer,
14
-
15
- createLoopbackDao,
16
- setupApiServer,
17
- setupApiSockJs,
18
- setupApiWs,
19
- setupApp,
20
- setupApiEndpoints
21
-
22
- } = require("@live-change/server")
23
-
24
- process.on('unhandledRejection', (reason, p) => {
25
- console.log('Unhandled Rejection at: Promise', p, 'reason:', reason)
26
- })
27
-
28
- process.on('uncaughtException', function (err) {
29
- console.error(err.stack)
30
- })
31
-
32
- function startOptions(yargs) {
33
- yargs.option('withServices', {
34
- type: 'boolean',
35
- description: 'start all services'
36
- })
37
- yargs.options('updateServices', {
38
- type: 'boolean',
39
- description: 'update all services'
40
- })
41
- yargs.option('withDb', {
42
- type: 'boolean',
43
- description: 'start local database'
44
- })
45
- yargs.option('dbBackend', {
46
- type: 'string',
47
- description: 'select db backend engine ( lmdb | leveldb | rocksdb | memdown | mem )',
48
- default: 'lmdb'
49
- })
50
- yargs.option('dbBackendUrl', {
51
- type: 'string',
52
- description: 'database backend url parameter'
53
- })
54
- yargs.option('dbRoot', {
55
- type: 'string',
56
- description: 'database root directory',
57
- default: 'tmp.db'
58
- })
59
- yargs.option('createDb', {
60
- type: 'boolean',
61
- description: 'create database if not exists'
62
- })
63
- yargs.option('dbAccess', {
64
- type: 'boolean',
65
- description: 'give database access to frontend(only for development and db-admin)'
66
- })
67
- }
68
-
69
- function apiServerOptions(yargs) {
70
- yargs.option('apiPort', {
71
- describe: 'api server port',
72
- type: 'number',
73
- default: process.env.API_SERVER_PORT || 8002
74
- })
75
- yargs.option('apiHost', {
76
- describe: 'api server bind host',
77
- type: 'string',
78
- default: process.env.API_SERVER_HOST || '0.0.0.0'
79
- })
80
- yargs.option('services', {
81
- describe: 'services config',
82
- type: 'string',
83
- default: 'server/services.config.js'
84
- })
85
- yargs.option('initScript', {
86
- description: 'run init script',
87
- type: 'string'
88
- })
89
- }
90
-
91
- function ssrServerOptions(yargs) {
92
- yargs.option('ssrRoot', {
93
- describe: 'frontend root directory',
94
- type: 'string',
95
- default: './front'
96
- })
97
- yargs.option('ssrPort', {
98
- describe: 'port to bind on',
99
- type: 'number',
100
- default: process.env.SSR_SERVER_PORT || 8001
101
- })
102
- yargs.option('ssrHost', {
103
- describe: 'bind host',
104
- type: 'string',
105
- default: process.env.SSR_SERVER_HOST || '0.0.0.0'
106
- })
107
- yargs.option('withApi', {
108
- describe: 'start internal api server',
109
- type: 'boolean'
110
- })
111
- yargs.option('serverEntry', {
112
- describe: 'front ssr entry file',
113
- type: 'string'
114
- })
115
- yargs.option('templatePath', {
116
- describe: 'front ssr entry file',
117
- type: 'string'
118
- })
119
- yargs.option('version', {
120
- describe: 'server version',
121
- type: 'string'
122
- })
123
- yargs.option('versionFile', {
124
- describe: 'server version file',
125
- type: 'string'
126
- })
127
- yargs.option('plugin', {
128
- describe: 'start in plugin mode - without ssr, and with vite mode plugin',
129
- type: 'boolean'
130
- })
131
- yargs.option('mode', {
132
- describe: 'vite mode',
133
- type: 'string'
134
- })
135
- }
136
-
137
- const argv = require('yargs') // eslint-disable-line
138
- .command('apiServer', 'start server', (yargs) => {
139
- apiServerOptions(yargs)
140
- startOptions(yargs)
141
- }, async (argv) => {
142
- await setupApp({ ...argv, uidBorders: '[]' })
143
- await apiServer(argv)
144
- })
145
- .command('devApiServer', 'shortcut for apiServer --withServices --updateServices', (yargs) => {
146
- apiServerOptions(yargs)
147
- startOptions(yargs)
148
- }, async (argv) => {
149
- argv = {
150
- ...argv,
151
- withServices: true, updateServices: true
152
- }
153
- await setupApp({ ...argv, uidBorders: '[]' })
154
- await apiServer(argv)
155
- })
156
- .command('memApiServer', 'shortcut for devApiServer --withDb --dbBackend mem --createDb', (yargs) => {
157
- apiServerOptions(yargs)
158
- startOptions(yargs)
159
- }, async (argv) => {
160
- argv = {
161
- ...argv,
162
- withApi: true, withServices: true, updateServices: true,
163
- withDb: true, dbBackend: 'mem', createDb: true
164
- }
165
- await setupApp({ ...argv, uidBorders: '[]' })
166
- await apiServer(argv)
167
- })
168
- .command('ssrServer', 'start ssr server', (yargs) => {
169
- ssrServerOptions(yargs)
170
- apiServerOptions(yargs)
171
- startOptions(yargs)
172
- }, async (argv) => {
173
- await setupApp({ ...argv, uidBorders: '[]' })
174
- await server({ ...argv, uidBorders: '[]' }, false)
175
- })
176
- .command('server', 'start server', (yargs) => {
177
- ssrServerOptions(yargs)
178
- apiServerOptions(yargs)
179
- startOptions(yargs)
180
- }, async (argv) => {
181
- await setupApp({ ...argv, uidBorders: '[]' })
182
- await server({ ...argv, uidBorders: '[]' }, false)
183
- })
184
- .command('ssrDev', 'start ssr server in development mode', (yargs) => {
185
- ssrServerOptions(yargs)
186
- apiServerOptions(yargs)
187
- startOptions(yargs)
188
- }, async (argv) => {
189
- await setupApp({ ...argv, uidBorders: '[]' })
190
- await server({ ...argv, uidBorders: '[]' }, true)
191
- })
192
- .command('dev', 'shortcut for ssrDev --withApi --withServices --updateServices --createDb', (yargs) => {
193
- ssrServerOptions(yargs)
194
- apiServerOptions(yargs)
195
- startOptions(yargs)
196
- }, async (argv) => {
197
- argv = {
198
- ...argv,
199
- withApi: true, withServices: true, updateServices: true, createDb: true,
200
- }
201
- await setupApp({ ...argv, uidBorders: '[]' })
202
- await server({ ...argv, uidBorders: '[]' }, true)
203
- })
204
- .command('memDev', 'shortcut for dev --withDb --dbBackend mem --createDb', (yargs) => {
205
- ssrServerOptions(yargs)
206
- apiServerOptions(yargs)
207
- startOptions(yargs)
208
- }, async (argv) => {
209
- argv = {
210
- ...argv,
211
- withApi: true, withServices: true, updateServices: true,
212
- withDb: true, dbBackend: 'mem', createDb: true
213
- }
214
- await setupApp({ ...argv, uidBorders: '[]' })
215
- await server({ ...argv, uidBorders: '[]' }, true)
216
- })
217
- .command('localDev', 'shortcut for dev --withDb --createDb', (yargs) => {
218
- ssrServerOptions(yargs)
219
- apiServerOptions(yargs)
220
- startOptions(yargs)
221
- }, async (argv) => {
222
- argv = {
223
- ...argv,
224
- withApi: true, withServices: true, updateServices: true,
225
- withDb: true, createDb: true
226
- }
227
- await setupApp({ ...argv, uidBorders: '[]' })
228
- await server({ ...argv, uidBorders: '[]' }, true)
229
- })
230
- .option('verbose', {
231
- alias: 'v',
232
- type: 'boolean',
233
- description: 'Run with verbose logging'
234
- }).argv
235
- /// TODO api.gen.js generation command
236
-
237
- async function apiServer(argv) {
238
- const { apiPort, apiHost } = argv
239
-
240
- const apiServer = await setupApiServer(argv)
241
-
242
- const expressApp = express()
243
-
244
- await setupApiEndpoints(expressApp, apiServer)
245
-
246
- const httpServer = http.createServer(expressApp)
247
-
248
- setupApiWs(httpServer, apiServer)
249
- setupApiSockJs(httpServer, apiServer)
250
-
251
- httpServer.listen(apiPort, apiHost)
252
- console.log('Listening on port ' + apiPort)
253
- }
254
-
255
- async function server(argv, dev) {
256
- const { ssrRoot, ssrPort, ssrHost, apiHost, apiPort } = argv
257
-
258
- const fastAuth = true
259
-
260
- const expressApp = express()
261
-
262
- //expressApp.use('/static', express.static(path.resolve(ssrRoot, 'public')))
263
-
264
- const manifest = (dev || argv.spa) ? null : require(path.resolve(ssrRoot, 'dist/client/ssr-manifest.json'))
265
-
266
- if(!argv.version) argv.version = process.env.VERSION
267
- if(argv.versionFile) argv.version = await readFile(argv.versionFile, 'utf8')
268
-
269
- if(!argv.withApi) {
270
- const apiServerHost = (argv.apiHost == '0.0.0.0' ? 'localhost' : argv.apiHost) + ':' + argv.apiPort
271
- const target = `http://${apiServerHost}/`
272
- const apiProxy = createProxyMiddleware({
273
- target,
274
- changeOrigin: true,
275
- ws: true
276
- })
277
- expressApp.use('/api', apiProxy)
278
- console.log("PROXY /api to", target)
279
- }
280
-
281
- let apiServer
282
- if(argv.withApi) {
283
- apiServer = await setupApiServer({ ...argv, fastAuth })
284
- await setupApiEndpoints(expressApp, apiServer)
285
- }
286
-
287
- console.log("ENDPOINTS INSTALLED! CREATING WEB SERVER!")
288
-
289
- const ssrServer = new SsrServer(expressApp, manifest, {
290
- ...argv,
291
- dev,
292
- fastAuth,
293
- root: ssrRoot || '.',
294
- ...(apiServer
295
- ? {
296
- daoFactory: async (credentials, ip) => {
297
- return await createLoopbackDao(credentials, () => apiServer.daoFactory(credentials, ip))
298
- }
299
- }
300
- : {
301
- apiHost, apiPort
302
- }
303
- )
304
- })
305
- await ssrServer.start()
306
-
307
-
308
- console.log("SSR INSTALLED! CREATING HTTP SERVER!")
309
-
310
- const httpServer = http.createServer(expressApp)
311
- if(argv.withApi) {
312
- setupApiWs(httpServer, apiServer)
313
- setupApiSockJs(httpServer, apiServer)
314
- }
315
-
316
- console.log("HTTP SERVER CREATED! INSTALLING!")
317
-
318
- httpServer.listen(ssrPort, ssrHost)
319
-
320
- console.log("LISTENING ON ",`${ssrHost}:${ssrPort} link: http://${ssrHost}:${ssrPort}/`)
321
- }
package/index.js CHANGED
@@ -0,0 +1,2 @@
1
+ import starter from './lib/starter.js'
2
+ export { starter }
package/lib/starter.js ADDED
@@ -0,0 +1,338 @@
1
+ #!/usr/bin/env node
2
+ import dotenv from 'dotenv'
3
+ dotenv.config()
4
+ import express from 'express'
5
+ import path from 'path'
6
+ import http from 'http'
7
+ import fs from 'fs'
8
+ import yargs from 'yargs'
9
+
10
+ import { createProxyMiddleware } from 'http-proxy-middleware'
11
+ import { readFile } from 'fs/promises'
12
+ import App from '@live-change/framework'
13
+ const app = App.app()
14
+
15
+ import {
16
+
17
+ SsrServer,
18
+
19
+ createLoopbackDao,
20
+ setupApiServer,
21
+ setupApiSockJs,
22
+ setupApiWs,
23
+ setupApp,
24
+ setupApiEndpoints
25
+
26
+ } from "@live-change/server"
27
+
28
+ process.on('unhandledRejection', (reason, p) => {
29
+ console.log('Unhandled Rejection at: Promise', p, 'reason:', reason)
30
+ })
31
+
32
+ process.on('uncaughtException', function (err) {
33
+ console.error(err.stack)
34
+ })
35
+
36
+ function startOptions(yargs) {
37
+ yargs.option('withServices', {
38
+ type: 'boolean',
39
+ description: 'start all services'
40
+ })
41
+ yargs.options('updateServices', {
42
+ type: 'boolean',
43
+ description: 'update all services'
44
+ })
45
+ yargs.option('withDb', {
46
+ type: 'boolean',
47
+ description: 'start local database'
48
+ })
49
+ yargs.option('dbBackend', {
50
+ type: 'string',
51
+ description: 'select db backend engine ( lmdb | leveldb | rocksdb | memdown | mem )',
52
+ default: 'lmdb'
53
+ })
54
+ yargs.option('dbBackendUrl', {
55
+ type: 'string',
56
+ description: 'database backend url parameter'
57
+ })
58
+ yargs.option('dbRoot', {
59
+ type: 'string',
60
+ description: 'database root directory',
61
+ default: 'tmp.db'
62
+ })
63
+ yargs.option('createDb', {
64
+ type: 'boolean',
65
+ description: 'create database if not exists'
66
+ })
67
+ yargs.option('dbAccess', {
68
+ type: 'boolean',
69
+ description: 'give database access to frontend(only for development and db-admin)'
70
+ })
71
+ }
72
+
73
+ function apiServerOptions(yargs) {
74
+ yargs.option('apiPort', {
75
+ describe: 'api server port',
76
+ type: 'number',
77
+ default: process.env.API_SERVER_PORT || 8002
78
+ })
79
+ yargs.option('apiHost', {
80
+ describe: 'api server bind host',
81
+ type: 'string',
82
+ default: process.env.API_SERVER_HOST || '0.0.0.0'
83
+ })
84
+ yargs.option('services', {
85
+ describe: 'services config',
86
+ type: 'string',
87
+ default: 'server/services.config.js'
88
+ })
89
+ yargs.option('initScript', {
90
+ description: 'run init script',
91
+ type: 'string'
92
+ })
93
+ }
94
+
95
+ function ssrServerOptions(yargs) {
96
+ yargs.option('ssrRoot', {
97
+ describe: 'frontend root directory',
98
+ type: 'string',
99
+ default: './front'
100
+ })
101
+ yargs.option('ssrPort', {
102
+ describe: 'port to bind on',
103
+ type: 'number',
104
+ default: process.env.SSR_SERVER_PORT || 8001
105
+ })
106
+ yargs.option('ssrHost', {
107
+ describe: 'bind host',
108
+ type: 'string',
109
+ default: process.env.SSR_SERVER_HOST || '0.0.0.0'
110
+ })
111
+ yargs.option('withApi', {
112
+ describe: 'start internal api server',
113
+ type: 'boolean'
114
+ })
115
+ yargs.option('serverEntry', {
116
+ describe: 'front ssr entry file',
117
+ type: 'string'
118
+ })
119
+ yargs.option('templatePath', {
120
+ describe: 'front ssr entry file',
121
+ type: 'string'
122
+ })
123
+ yargs.option('version', {
124
+ describe: 'server version',
125
+ type: 'string'
126
+ })
127
+ yargs.option('versionFile', {
128
+ describe: 'server version file',
129
+ type: 'string'
130
+ })
131
+ yargs.option('plugin', {
132
+ describe: 'start in plugin mode - without ssr, and with vite mode plugin',
133
+ type: 'boolean'
134
+ })
135
+ yargs.option('mode', {
136
+ describe: 'vite mode',
137
+ type: 'string'
138
+ })
139
+ }
140
+
141
+ let globalServicesConfig
142
+
143
+ export default function starter(servicesConfig = null) {
144
+ globalServicesConfig = servicesConfig
145
+ yargs(process.argv.slice(2))
146
+ .command('apiServer', 'start server', (yargs) => {
147
+ apiServerOptions(yargs)
148
+ startOptions(yargs)
149
+ }, async (argv) => {
150
+ await setupApp({...argv, uidBorders: '[]'})
151
+ await apiServer(argv)
152
+ })
153
+ .command('devApiServer', 'shortcut for apiServer --withServices --updateServices', (yargs) => {
154
+ apiServerOptions(yargs)
155
+ startOptions(yargs)
156
+ }, async (argv) => {
157
+ argv = {
158
+ ...argv,
159
+ withServices: true, updateServices: true
160
+ }
161
+ await setupApp({...argv, uidBorders: '[]'})
162
+ await apiServer(argv)
163
+ })
164
+ .command('memApiServer', 'shortcut for devApiServer --withDb --dbBackend mem --createDb', (yargs) => {
165
+ apiServerOptions(yargs)
166
+ startOptions(yargs)
167
+ }, async (argv) => {
168
+ argv = {
169
+ ...argv,
170
+ withApi: true, withServices: true, updateServices: true,
171
+ withDb: true, dbBackend: 'mem', createDb: true
172
+ }
173
+ await setupApp({...argv, uidBorders: '[]'})
174
+ await apiServer(argv)
175
+ })
176
+ .command('ssrServer', 'start ssr server', (yargs) => {
177
+ ssrServerOptions(yargs)
178
+ apiServerOptions(yargs)
179
+ startOptions(yargs)
180
+ }, async (argv) => {
181
+ await setupApp({...argv, uidBorders: '[]'})
182
+ await server({...argv, uidBorders: '[]'}, false)
183
+ })
184
+ .command('server', 'start server', (yargs) => {
185
+ ssrServerOptions(yargs)
186
+ apiServerOptions(yargs)
187
+ startOptions(yargs)
188
+ }, async (argv) => {
189
+ await setupApp({...argv, uidBorders: '[]'})
190
+ await server({...argv, uidBorders: '[]'}, false)
191
+ })
192
+ .command('ssrDev', 'start ssr server in development mode', (yargs) => {
193
+ ssrServerOptions(yargs)
194
+ apiServerOptions(yargs)
195
+ startOptions(yargs)
196
+ }, async (argv) => {
197
+ await setupApp({...argv, uidBorders: '[]'})
198
+ await server({...argv, uidBorders: '[]'}, true)
199
+ })
200
+ .command('dev', 'shortcut for ssrDev --withApi --withServices --updateServices --createDb', (yargs) => {
201
+ ssrServerOptions(yargs)
202
+ apiServerOptions(yargs)
203
+ startOptions(yargs)
204
+ }, async (argv) => {
205
+ argv = {
206
+ ...argv,
207
+ withApi: true, withServices: true, updateServices: true, createDb: true,
208
+ }
209
+ await setupApp({...argv, uidBorders: '[]'})
210
+ await server({...argv, uidBorders: '[]'}, true)
211
+ })
212
+ .command('memDev', 'shortcut for dev --withDb --dbBackend mem --createDb', (yargs) => {
213
+ ssrServerOptions(yargs)
214
+ apiServerOptions(yargs)
215
+ startOptions(yargs)
216
+ }, async (argv) => {
217
+ argv = {
218
+ ...argv,
219
+ withApi: true, withServices: true, updateServices: true,
220
+ withDb: true, dbBackend: 'mem', createDb: true
221
+ }
222
+ await setupApp({...argv, uidBorders: '[]'})
223
+ await server({...argv, uidBorders: '[]'}, true)
224
+ })
225
+ .command('localDev', 'shortcut for dev --withDb --createDb', (yargs) => {
226
+ ssrServerOptions(yargs)
227
+ apiServerOptions(yargs)
228
+ startOptions(yargs)
229
+ }, async (argv) => {
230
+ argv = {
231
+ ...argv,
232
+ withApi: true, withServices: true, updateServices: true,
233
+ withDb: true, createDb: true
234
+ }
235
+ await setupApp({...argv, uidBorders: '[]'})
236
+ await server({...argv, uidBorders: '[]'}, true)
237
+ })
238
+ .option('verbose', {
239
+ alias: 'v',
240
+ type: 'boolean',
241
+ description: 'Run with verbose logging'
242
+ }).argv
243
+ /// TODO api.gen.js generation command
244
+ }
245
+
246
+
247
+ async function apiServer(argv) {
248
+ if(globalServicesConfig) argv.services = globalServicesConfig
249
+
250
+ const { apiPort, apiHost } = argv
251
+
252
+ const apiServer = await setupApiServer(argv)
253
+
254
+ const expressApp = express()
255
+
256
+ await setupApiEndpoints(expressApp, apiServer)
257
+
258
+ const httpServer = http.createServer(expressApp)
259
+
260
+ setupApiWs(httpServer, apiServer)
261
+ setupApiSockJs(httpServer, apiServer)
262
+
263
+ httpServer.listen(apiPort, apiHost)
264
+ console.log('Listening on port ' + apiPort)
265
+ }
266
+
267
+ async function server(argv, dev) {
268
+
269
+ if(globalServicesConfig) argv.services = globalServicesConfig
270
+
271
+ const { ssrRoot, ssrPort, ssrHost, apiHost, apiPort } = argv
272
+
273
+ const fastAuth = true
274
+
275
+ const expressApp = express()
276
+
277
+ //expressApp.use('/static', express.static(path.resolve(ssrRoot, 'public')))
278
+
279
+ const manifest = (dev || argv.spa)
280
+ ? null
281
+ : JSON.parse(fs.readFileSync((path.resolve(ssrRoot, 'dist/client/.vite/ssr-manifest.json'))))
282
+
283
+ if(!argv.version) argv.version = process.env.VERSION
284
+ if(argv.versionFile) argv.version = await readFile(argv.versionFile, 'utf8')
285
+
286
+ if(!argv.withApi) {
287
+ const apiServerHost = (argv.apiHost == '0.0.0.0' ? 'localhost' : argv.apiHost) + ':' + argv.apiPort
288
+ const target = `http://${apiServerHost}/`
289
+ const apiProxy = createProxyMiddleware({
290
+ target,
291
+ changeOrigin: true,
292
+ ws: true
293
+ })
294
+ expressApp.use('/api', apiProxy)
295
+ console.log("PROXY /api to", target)
296
+ }
297
+
298
+ let apiServer
299
+ if(argv.withApi) {
300
+ apiServer = await setupApiServer({ ...argv, fastAuth })
301
+ await setupApiEndpoints(expressApp, apiServer)
302
+ }
303
+
304
+ console.log("ENDPOINTS INSTALLED! CREATING WEB SERVER!")
305
+
306
+ const ssrServer = new SsrServer(expressApp, manifest, {
307
+ ...argv,
308
+ dev,
309
+ fastAuth,
310
+ root: ssrRoot || '.',
311
+ ...(apiServer
312
+ ? {
313
+ daoFactory: async (credentials, ip) => {
314
+ return await createLoopbackDao(credentials, () => apiServer.daoFactory(credentials, ip))
315
+ }
316
+ }
317
+ : {
318
+ apiHost, apiPort
319
+ }
320
+ )
321
+ })
322
+ await ssrServer.start()
323
+
324
+
325
+ console.log("SSR INSTALLED! CREATING HTTP SERVER!")
326
+
327
+ const httpServer = http.createServer(expressApp)
328
+ if(argv.withApi) {
329
+ setupApiWs(httpServer, apiServer)
330
+ setupApiSockJs(httpServer, apiServer)
331
+ }
332
+
333
+ console.log("HTTP SERVER CREATED! INSTALLING!")
334
+
335
+ httpServer.listen(ssrPort, ssrHost)
336
+
337
+ console.log("LISTENING ON ",`${ssrHost}:${ssrPort} link: http://${ssrHost}:${ssrPort}/`)
338
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@live-change/cli",
3
- "version": "0.7.39",
3
+ "version": "0.8.1",
4
4
  "description": "Live Change Framework - command line interface",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -22,22 +22,23 @@
22
22
  "bugs": {
23
23
  "url": "https://github.com/live-change/live-change-framework/issues"
24
24
  },
25
+ "type": "module",
25
26
  "homepage": "https://github.com/live-change/live-change-framework",
26
27
  "dependencies": {
27
- "@live-change/dao": "0.5.22",
28
- "@live-change/dao-sockjs": "0.5.22",
29
- "@live-change/dao-websocket": "0.5.22",
30
- "@live-change/db-server": "0.6.23",
31
- "@live-change/framework": "^0.7.39",
32
- "@live-change/server": "^0.7.39",
33
- "dotenv": "^16.0.3",
28
+ "@live-change/dao": "0.6.0",
29
+ "@live-change/dao-sockjs": "0.6.0",
30
+ "@live-change/dao-websocket": "0.6.0",
31
+ "@live-change/db-server": "0.7.3",
32
+ "@live-change/framework": "^0.8.1",
33
+ "@live-change/server": "^0.8.1",
34
+ "dotenv": "^16.4.4",
34
35
  "express": "^4.18.2",
35
36
  "http-proxy-middleware": "2.0.6",
36
- "resolve": "^1.22.1",
37
- "serialize-javascript": "^6.0.1",
37
+ "resolve": "^1.22.8",
38
+ "serialize-javascript": "^6.0.2",
38
39
  "sockjs": "^0.3.24",
39
40
  "websocket": "^1.0.34",
40
- "yargs": "^17.5.1"
41
+ "yargs": "^17.7.2"
41
42
  },
42
- "gitHead": "9e9cd47f2fb1c3c82b20fdddbc5505c99e1e1c68"
43
+ "gitHead": "d26056b63edb7fecb98c6b9ee14eba859360f900"
43
44
  }