@live-change/db-server 0.6.23 → 0.7.2

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/server.js CHANGED
@@ -1,18 +1,20 @@
1
1
  #!/usr/bin/env node
2
- const path = require('path')
3
- const fs = require('fs')
4
- const service = require ("os-service")
5
- const Server = require('../lib/Server.js')
6
- const { client: WSClient } = require("@live-change/dao-websocket")
7
- const ReactiveDao = require('@live-change/dao')
8
- const db = require("@live-change/db")
9
- const profileOutput = require("../lib/profileOutput.js")
10
- const { performance } = require('perf_hooks')
2
+ import path from 'path'
3
+ import fs from 'fs'
4
+ import service from "os-service"
5
+ import Server from '../lib/Server.js'
6
+ import { client as WSClient } from "@live-change/dao-websocket"
7
+ import ReactiveDao from '@live-change/dao'
8
+ import * as db from "@live-change/db"
9
+ import profileOutput from "../lib/profileOutput.js"
10
+ import { performance } from 'perf_hooks'
11
+ import yargs from 'yargs'
12
+ import { fileURLToPath } from 'url'
11
13
 
12
- const {
14
+ import {
13
15
  SsrServer,
14
16
  createLoopbackDao
15
- } = require("@live-change/server")
17
+ } from "@live-change/server"
16
18
 
17
19
  process.on('unhandledRejection', (reason, p) => {
18
20
  console.log('Unhandled Rejection at: Promise', p, 'reason:', reason)
@@ -73,7 +75,7 @@ function serviceOptions(yargs) {
73
75
  })
74
76
  }
75
77
 
76
- const argv = require('yargs') // eslint-disable-line
78
+ const argv = yargs(process.argv.slice(2)) // eslint-disable-line
77
79
  .command('create', 'create database root', (yargs) => {
78
80
  storeOptions(yargs)
79
81
  }, (argv) => create(argv))
@@ -157,7 +159,9 @@ async function serve(argv) {
157
159
  if(verbose) console.info(`database initialized!`)
158
160
  if(verbose) console.info(`listening on: ${argv.host}:${argv.port}`)
159
161
 
160
- const ssrRoot = path.dirname(require.resolve("@live-change/db-admin/front/vite.config.js"))
162
+ const ssrRoot = path.dirname(
163
+ fileURLToPath(import.meta.resolve("@live-change/db-admin/front/vite.config.js"))
164
+ )
161
165
 
162
166
  const http = await server.getHttp()
163
167
  const { app } = http
@@ -165,7 +169,9 @@ async function serve(argv) {
165
169
  const dev = await fs.promises.access(path.resolve(ssrRoot, './dist'), fs.constants.R_OK)
166
170
  .then(r => false).catch(r => true)
167
171
  if(dev) console.log("STARTING ADMIN IN DEV MODE!")
168
- const manifest = dev ? null : require(path.resolve(ssrRoot, 'dist/client/ssr-manifest.json'))
172
+ const manifest = (dev || argv.spa)
173
+ ? null
174
+ : JSON.parse(fs.readFileSync((path.resolve(ssrRoot, 'dist/client/.vite/ssr-manifest.json'))))
169
175
  const admin = new SsrServer(app, manifest, {
170
176
  dev,
171
177
  fastAuth: true,
package/index.js CHANGED
@@ -1 +1,3 @@
1
- module.exports = require('./lib/Server.js')
1
+ import Server from './lib/Server.js'
2
+
3
+ export default Server
package/lib/Replicator.js CHANGED
@@ -371,4 +371,4 @@ class Replicator { // synchronizes database list
371
371
  }
372
372
  }
373
373
 
374
- module.exports = Replicator
374
+ export default Replicator
package/lib/Server.js CHANGED
@@ -1,23 +1,21 @@
1
- const fs = require('fs')
2
- const path = require('path')
3
- const http = require("http")
4
- const express = require("express")
5
- const sockjs = require('@live-change/sockjs')
6
- const WebSocketServer = require('websocket').server
7
- const ReactiveDaoWebsocketServer = require("@live-change/dao-websocket").server
8
- const ReactiveDaoWebsocketClient = require("@live-change/dao-websocket").client
9
- const ScriptContext = require('@live-change/db/lib/ScriptContext.js')
10
- const dbDao = require('./dbDao.js')
11
- const storeDao = require('./storeDao.js')
12
- const createBackend = require("./backend.js")
13
- const Replicator = require("./Replicator.js")
14
- const { profileLog } = require("@live-change/db")
1
+ import fs from 'fs'
2
+ import path from 'path'
3
+ import http from 'http'
4
+ import express from 'express'
5
+ import sockjs from '@live-change/sockjs'
6
+ import { server as WebSocketServer } from 'websocket'
7
+ import { server as ReactiveDaoWebsocketServer, client as ReactiveDaoWebsocketClient } from '@live-change/dao-websocket'
8
+ import ScriptContext from '@live-change/db/lib/ScriptContext.js'
9
+ import * as dbDao from './dbDao.js'
10
+ import * as storeDao from './storeDao.js'
11
+ import createBackend from './backend.js'
12
+ import Replicator from './Replicator.js'
13
+ import { profileLog } from '@live-change/db'
14
+ import { Database } from '@live-change/db'
15
+ import ReactiveDao from '@live-change/dao'
15
16
 
16
- const ReactiveDao = require("@live-change/dao")
17
-
18
- const Database = require('@live-change/db').Database
19
-
20
- const debug = require('debug')('db-server')
17
+ import Debug from 'debug'
18
+ const debug = Debug('db-server')
21
19
 
22
20
  class DatabaseStore {
23
21
  constructor(path, backends, options) {
@@ -131,7 +129,8 @@ class Server {
131
129
  }
132
130
  }
133
131
  createDao(session) {
134
- const packageInfo = require('@live-change/db-server/package.json')
132
+
133
+ const packageInfo = eval('import("@live-change/db-server/package.json"'+', { assert: { type: "json" } })')
135
134
 
136
135
  const store = { /// Low level data access
137
136
  type: 'local',
@@ -153,11 +152,11 @@ class Server {
153
152
  methods: {},
154
153
  values: {
155
154
  version: {
156
- observable() {
157
- return new ReactiveDao.ObservableValue(packageInfo.version)
155
+ async observable() {
156
+ return new ReactiveDao.ObservableValue((await packageInfo).version)
158
157
  },
159
158
  async get() {
160
- return packageInfo.version
159
+ return (await packageInfo).version
161
160
  }
162
161
  }
163
162
  }
@@ -432,4 +431,4 @@ class Server {
432
431
  }
433
432
  }
434
433
 
435
- module.exports = Server
434
+ export default Server
package/lib/backend.js CHANGED
@@ -1,6 +1,8 @@
1
- const fs = require('fs')
2
- const path = require('path')
3
- const rimraf = require("rimraf-promise")
1
+ import fs from 'fs'
2
+ import { rimraf } from "rimraf"
3
+ import lmdb from 'node-lmdb'
4
+ import lmdbStore from'@live-change/db-store-lmdb'
5
+ import rbTreeStore from'@live-change/db-store-rbtree'
4
6
 
5
7
  function createBackend({ name, url, maxDbs, mapSize }) {
6
8
  if(name == 'leveldb') {
@@ -92,7 +94,7 @@ function createBackend({ name, url, maxDbs, mapSize }) {
92
94
  }
93
95
  } else if(name == 'mem' || name == 'memory') {
94
96
  return {
95
- Store: require('@live-change/db-store-rbtree'),
97
+ Store: rbTreeStore,
96
98
  createDb(path, options) {
97
99
  const db = {}
98
100
  db.path = path
@@ -112,8 +114,8 @@ function createBackend({ name, url, maxDbs, mapSize }) {
112
114
  }
113
115
  } else if(name == 'lmdb') {
114
116
  return {
115
- lmdb: require('node-lmdb'),
116
- Store: require('@live-change/db-store-lmdb'),
117
+ lmdb,
118
+ Store: lmdbStore,
117
119
  createDb(path, options) {
118
120
  fs.mkdirSync(path, { recursive: true })
119
121
  const env = new this.lmdb.Env()
@@ -192,4 +194,4 @@ function createBackend({ name, url, maxDbs, mapSize }) {
192
194
  } else throw new Error("Unknown backend " + name)
193
195
  }
194
196
 
195
- module.exports = createBackend
197
+ export default createBackend
package/lib/dbDao.js CHANGED
@@ -1,4 +1,4 @@
1
- const ReactiveDao = require("@live-change/dao")
1
+ import ReactiveDao from "@live-change/dao"
2
2
 
3
3
  function localRequests(server, scriptContext) {
4
4
  return {
@@ -848,7 +848,7 @@ function localReads(server, scriptContext) {
848
848
  }
849
849
  }
850
850
 
851
- module.exports = {
851
+ export {
852
852
  localRequests,
853
853
  remoteRequests,
854
854
  localReads
@@ -1,5 +1,5 @@
1
- const fs = require('fs')
2
- const { once } = require('events')
1
+ import fs from 'fs'
2
+ import { once } from 'events'
3
3
 
4
4
  function profileOutput(path) {
5
5
  const profileLogStream = fs.createWriteStream(path)
@@ -23,4 +23,4 @@ function profileOutput(path) {
23
23
  return write
24
24
  }
25
25
 
26
- module.exports = profileOutput
26
+ export default profileOutput
package/lib/storeDao.js CHANGED
@@ -54,7 +54,7 @@ function localReads(server) {
54
54
  }
55
55
  }
56
56
 
57
- module.exports = {
57
+ export {
58
58
  localRequests,
59
59
  localReads
60
60
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@live-change/db-server",
3
- "version": "0.6.23",
3
+ "version": "0.7.2",
4
4
  "description": "Database with observable data for live queries",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -24,30 +24,30 @@
24
24
  "url": "https://github.com/live-change/live-change-db/issues"
25
25
  },
26
26
  "homepage": "https://github.com/live-change/live-change-db",
27
+ "type": "module",
27
28
  "devDependencies": {
28
- "tape": "^5.3.2"
29
+ "tape": "^5.7.4"
29
30
  },
30
31
  "dependencies": {
31
- "@live-change/dao": "0.5.22",
32
- "@live-change/dao-message": "0.5.22",
33
- "@live-change/dao-sockjs": "0.5.22",
34
- "@live-change/dao-websocket": "0.5.22",
35
- "@live-change/db": "^0.6.23",
36
- "@live-change/db-admin": "^0.6.23",
37
- "@live-change/db-client": "^0.6.23",
38
- "@live-change/db-store-level": "^0.6.23",
39
- "@live-change/db-store-lmdb": "^0.6.23",
40
- "@live-change/db-store-observable-db": "^0.6.23",
41
- "@live-change/db-store-rbtree": "^0.6.23",
32
+ "@live-change/dao": "0.6.0",
33
+ "@live-change/dao-message": "0.6.0",
34
+ "@live-change/dao-sockjs": "0.6.0",
35
+ "@live-change/dao-websocket": "0.6.0",
36
+ "@live-change/db": "^0.7.2",
37
+ "@live-change/db-admin": "^0.7.2",
38
+ "@live-change/db-client": "^0.7.2",
39
+ "@live-change/db-store-level": "^0.7.2",
40
+ "@live-change/db-store-lmdb": "^0.7.2",
41
+ "@live-change/db-store-observable-db": "^0.7.2",
42
+ "@live-change/db-store-rbtree": "^0.7.2",
42
43
  "@live-change/sockjs": "0.4.1",
43
44
  "express": "^4.18.2",
44
45
  "line-reader": "^0.4.0",
45
46
  "node-interval-tree": "^1.3.3",
46
47
  "os-service": "^2.2.0",
47
- "rimraf": "^3.0.2",
48
- "rimraf-promise": "^2.0.0",
48
+ "rimraf": "^5.0.5",
49
49
  "websocket": "^1.0.34",
50
- "yargs": "^17.5.1"
50
+ "yargs": "^17.7.2"
51
51
  },
52
- "gitHead": "0998da21c5082239a24d631110b33a5b00310a07"
52
+ "gitHead": "36d5b8a4430d82526b8b63290c44209e6187da96"
53
53
  }
@@ -1,28 +1,32 @@
1
- const rimraf = require("rimraf")
2
- const fs = require('fs')
3
- const Server = require('../lib/Server.js')
4
- const ReactiveDao = require('@live-change/dao')
1
+ import { rimrafSync } from 'rimraf'
2
+ import fs from 'fs'
3
+ import Server from '../lib/Server.js'
4
+ import ReactiveDao from '@live-change/dao'
5
5
 
6
- serverPromise = (async () => {
7
- rimraf.sync('test.db')
8
- await fs.promises.mkdir('test.db')
9
- const server = new Server({
10
- backend: process.env.DB_BACKEND || 'lmdb',
11
- dbRoot: 'test.db'
12
- })
13
- await server.initialize()
14
- server.connect = (sessionId, delay = 50) => new Promise((resolve, reject) => {
15
- const client = new ReactiveDao.LoopbackConnection(sessionId, server.apiServer, {
16
- onConnect: () => resolve(client),
17
- delay
18
- })
19
- })
20
- return server
21
- })()
6
+ let serverPromise = null
22
7
 
23
8
  process.on('unhandledRejection', (reason, p) => {
24
9
  console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
25
10
  // application specific logging, throwing an error, or other logic here
26
11
  })
27
12
 
28
- module.exports = serverPromise
13
+ export default function getServer() {
14
+ if(serverPromise) return serverPromise
15
+ serverPromise = (async () => {
16
+ rimrafSync('test.db')
17
+ await fs.promises.mkdir('test.db')
18
+ const server = new Server({
19
+ backend: process.env.DB_BACKEND || 'lmdb',
20
+ dbRoot: 'test.db'
21
+ })
22
+ await server.initialize()
23
+ server.connect = (sessionId, delay = 50) => new Promise((resolve, reject) => {
24
+ const client = new ReactiveDao.LoopbackConnection(sessionId, server.apiServer, {
25
+ onConnect: () => resolve(client),
26
+ delay
27
+ })
28
+ })
29
+ return server
30
+ })()
31
+ return serverPromise
32
+ }
package/tests/index.js CHANGED
@@ -1,4 +1,5 @@
1
- const test = require('tape')
1
+ import test from 'tape'
2
+ import getServer from './getServer.js'
2
3
 
3
4
  let users = [
4
5
  { id: '1', name: 'david' },
@@ -33,7 +34,7 @@ test("index", t => {
33
34
 
34
35
  t.test('connect to server and create database', async t => {
35
36
  t.plan(1)
36
- server = await require('./getServer.js')
37
+ server = await getServer()
37
38
  client = await server.connect(1)
38
39
  await client.request(['database', 'createDatabase'], 'index.test')
39
40
  t.pass('opened')