{
  "name": "@nxdb/nxdb",
  "description": "A local-first realtime NoSQL Database for JavaScript applications - https://nxpkg.github.io/nxdb/",
  "version": "14.17.2",
  "author": "nxpkg",
  "repository": {
    "type": "git",
    "url": "https://github.com/nxpkg/nxdb"
  },
  "homepage": "https://nxpkg.github.io/nxdb/",
  "keywords": [
    "db",
    "database",
    "offline-first",
    "local-first",
    "nosql",
    "no-sql",
    "jsonschema",
    "schema",
    "rxjs",
    "pwa",
    "progessive web app",
    "hybrid app",
    "localstorage",
    "indexeddb",
    "storage",
    "react-native",
    "encryption",
    "encrypted",
    "firestore",
    "firebase",
    "couchdb",
    "pouchdb",
    "nats",
    "websql",
    "sqlite",
    "query",
    "live-query",
    "realtime query",
    "reactive",
    "replication",
    "realtime",
    "realtime database",
    "local database",
    "embedded database",
    "in-memory",
    "memory",
    "memory database",
    "local database",
    "embedded",
    "embed",
    "electron database",
    "mongodb",
    "lokijs",
    "JSON",
    "angular database",
    "react database",
    "capacitor database",
    "node.js database",
    "document",
    "file database",
    "json database",
    "key value database",
    "database driver",
    "database abstraction layer",
    "document database",
    "graph database",
    "mock database",
    "cross-database",
    "asyncstorage",
    "localforage",
    "mongoose",
    "migrate database",
    "websocket database",
    "database-client",
    "dbms",
    "database engine",
    "datastore"
  ],
  "license": "Apache-2.0",
  "main": "./dist/lib/index.js",
  "jsnext:main": "./dist/es/index.js",
  "module": "./dist/es/index.js",
  "types": "./dist/types/index.d.ts",
  "sideEffects": false,
  "exports": {
    ".": {
      "types": "./dist/types/index.d.ts",
      "node": "./dist/lib/index.js",
      "require": "./dist/lib/index.js",
      "es2015": "./dist/es/index.js",
      "default": "./dist/es/index.js"
    },
    "./plugins/core": {
      "types": "./dist/types/core/index.d.ts",
      "node": "./dist/lib/core/index.js",
      "require": "./dist/lib/core/index.js",
      "es2015": "./dist/es/core/index.js",
      "default": "./dist/es/core/index.js"
    },
    "./plugins/utils": {
      "types": "./dist/types/plugins/utils/index.d.ts",
      "node": "./dist/lib/plugins/utils/index.js",
      "require": "./dist/lib/plugins/utils/index.js",
      "es2015": "./dist/es/plugins/utils/index.js",
      "default": "./dist/es/plugins/utils/index.js"
    },
    "./plugins/backup": {
      "types": "./dist/types/plugins/backup/index.d.ts",
      "node": "./dist/lib/plugins/backup/index.js",
      "require": "./dist/lib/plugins/backup/index.js",
      "es2015": "./dist/es/plugins/backup/index.js",
      "default": "./dist/es/plugins/backup/index.js"
    },
    "./plugins/cleanup": {
      "types": "./dist/types/plugins/cleanup/index.d.ts",
      "node": "./dist/lib/plugins/cleanup/index.js",
      "require": "./dist/lib/plugins/cleanup/index.js",
      "es2015": "./dist/es/plugins/cleanup/index.js",
      "default": "./dist/es/plugins/cleanup/index.js"
    },
    "./plugins/crdt": {
      "types": "./dist/types/plugins/crdt/index.d.ts",
      "node": "./dist/lib/plugins/crdt/index.js",
      "require": "./dist/lib/plugins/crdt/index.js",
      "es2015": "./dist/es/plugins/crdt/index.js",
      "default": "./dist/es/plugins/crdt/index.js"
    },
    "./plugins/dev-mode": {
      "types": "./dist/types/plugins/dev-mode/index.d.ts",
      "node": "./dist/lib/plugins/dev-mode/index.js",
      "require": "./dist/lib/plugins/dev-mode/index.js",
      "es2015": "./dist/es/plugins/dev-mode/index.js",
      "default": "./dist/es/plugins/dev-mode/index.js"
    },
    "./plugins/storage-dexie": {
      "types": "./dist/types/plugins/storage-dexie/index.d.ts",
      "node": "./dist/lib/plugins/storage-dexie/index.js",
      "require": "./dist/lib/plugins/storage-dexie/index.js",
      "es2015": "./dist/es/plugins/storage-dexie/index.js",
      "default": "./dist/es/plugins/storage-dexie/index.js"
    },
    "./plugins/electron": {
      "types": "./dist/types/plugins/electron/index.d.ts",
      "node": "./dist/lib/plugins/electron/index.js",
      "require": "./dist/lib/plugins/electron/index.js",
      "es2015": "./dist/es/plugins/electron/index.js",
      "default": "./dist/es/plugins/electron/index.js"
    },
    "./plugins/flutter": {
      "types": "./dist/types/plugins/flutter/index.d.ts",
      "node": "./dist/lib/plugins/flutter/index.js",
      "require": "./dist/lib/plugins/flutter/index.js",
      "es2015": "./dist/es/plugins/flutter/index.js",
      "default": "./dist/es/plugins/flutter/index.js"
    },
    "./plugins/storage-foundationdb": {
      "types": "./dist/types/plugins/storage-foundationdb/index.d.ts",
      "node": "./dist/lib/plugins/storage-foundationdb/index.js",
      "require": "./dist/lib/plugins/storage-foundationdb/index.js",
      "es2015": "./dist/es/plugins/storage-foundationdb/index.js",
      "default": "./dist/es/plugins/storage-foundationdb/index.js"
    },
    "./plugins/local-documents": {
      "types": "./dist/types/plugins/local-documents/index.d.ts",
      "node": "./dist/lib/plugins/local-documents/index.js",
      "require": "./dist/lib/plugins/local-documents/index.js",
      "es2015": "./dist/es/plugins/local-documents/index.js",
      "default": "./dist/es/plugins/local-documents/index.js"
    },
    "./plugins/storage-lokijs": {
      "types": "./dist/types/plugins/storage-lokijs/index.d.ts",
      "node": "./dist/lib/plugins/storage-lokijs/index.js",
      "require": "./dist/lib/plugins/storage-lokijs/index.js",
      "es2015": "./dist/es/plugins/storage-lokijs/index.js",
      "default": "./dist/es/plugins/storage-lokijs/index.js"
    },
    "./plugins/storage-memory": {
      "types": "./dist/types/plugins/storage-memory/index.d.ts",
      "node": "./dist/lib/plugins/storage-memory/index.js",
      "require": "./dist/lib/plugins/storage-memory/index.js",
      "es2015": "./dist/es/plugins/storage-memory/index.js",
      "default": "./dist/es/plugins/storage-memory/index.js"
    },
    "./plugins/storage-mongodb": {
      "types": "./dist/types/plugins/storage-mongodb/index.d.ts",
      "node": "./dist/lib/plugins/storage-mongodb/index.js",
      "require": "./dist/lib/plugins/storage-mongodb/index.js",
      "es2015": "./dist/es/plugins/storage-mongodb/index.js",
      "default": "./dist/es/plugins/storage-mongodb/index.js"
    },
    "./plugins/migration": {
      "types": "./dist/types/plugins/migration/index.d.ts",
      "node": "./dist/lib/plugins/migration/index.js",
      "require": "./dist/lib/plugins/migration/index.js",
      "es2015": "./dist/es/plugins/migration/index.js",
      "default": "./dist/es/plugins/migration/index.js"
    },
    "./plugins/query-builder": {
      "types": "./dist/types/plugins/query-builder/index.d.ts",
      "node": "./dist/lib/plugins/query-builder/index.js",
      "require": "./dist/lib/plugins/query-builder/index.js",
      "es2015": "./dist/es/plugins/query-builder/index.js",
      "default": "./dist/es/plugins/query-builder/index.js"
    },
    "./plugins/replication": {
      "types": "./dist/types/plugins/replication/index.d.ts",
      "node": "./dist/lib/plugins/replication/index.js",
      "require": "./dist/lib/plugins/replication/index.js",
      "es2015": "./dist/es/plugins/replication/index.js",
      "default": "./dist/es/plugins/replication/index.js"
    },
    "./plugins/replication-firestore": {
      "types": "./dist/types/plugins/replication-firestore/index.d.ts",
      "node": "./dist/lib/plugins/replication-firestore/index.js",
      "require": "./dist/lib/plugins/replication-firestore/index.js",
      "es2015": "./dist/es/plugins/replication-firestore/index.js",
      "default": "./dist/es/plugins/replication-firestore/index.js"
    },
    "./plugins/replication-graphql": {
      "types": "./dist/types/plugins/replication-graphql/index.d.ts",
      "node": "./dist/lib/plugins/replication-graphql/index.js",
      "require": "./dist/lib/plugins/replication-graphql/index.js",
      "es2015": "./dist/es/plugins/replication-graphql/index.js",
      "default": "./dist/es/plugins/replication-graphql/index.js"
    },
    "./plugins/replication-p2p": {
      "types": "./dist/types/plugins/replication-p2p/index.d.ts",
      "node": "./dist/lib/plugins/replication-p2p/index.js",
      "require": "./dist/lib/plugins/replication-p2p/index.js",
      "es2015": "./dist/es/plugins/replication-p2p/index.js",
      "default": "./dist/es/plugins/replication-p2p/index.js"
    },
    "./plugins/replication-websocket": {
      "types": "./dist/types/plugins/replication-websocket/index.d.ts",
      "node": "./dist/lib/plugins/replication-websocket/index.js",
      "require": "./dist/lib/plugins/replication-websocket/index.js",
      "es2015": "./dist/es/plugins/replication-websocket/index.js",
      "default": "./dist/es/plugins/replication-websocket/index.js"
    },
    "./plugins/storage-remote": {
      "types": "./dist/types/plugins/storage-remote/index.d.ts",
      "node": "./dist/lib/plugins/storage-remote/index.js",
      "require": "./dist/lib/plugins/storage-remote/index.js",
      "es2015": "./dist/es/plugins/storage-remote/index.js",
      "default": "./dist/es/plugins/storage-remote/index.js"
    },
    "./plugins/storage-remote-websocket": {
      "types": "./dist/types/plugins/storage-remote-websocket/index.d.ts",
      "node": "./dist/lib/plugins/storage-remote-websocket/index.js",
      "require": "./dist/lib/plugins/storage-remote-websocket/index.js",
      "es2015": "./dist/es/plugins/storage-remote-websocket/index.js",
      "default": "./dist/es/plugins/storage-remote-websocket/index.js"
    },
    "./plugins/attachments": {
      "types": "./dist/types/plugins/attachments/index.d.ts",
      "node": "./dist/lib/plugins/attachments/index.js",
      "require": "./dist/lib/plugins/attachments/index.js",
      "es2015": "./dist/es/plugins/attachments/index.js",
      "default": "./dist/es/plugins/attachments/index.js"
    },
    "./plugins/attachments-compression": {
      "types": "./dist/types/plugins/attachments-compression/index.d.ts",
      "node": "./dist/lib/plugins/attachments-compression/index.js",
      "require": "./dist/lib/plugins/attachments-compression/index.js",
      "es2015": "./dist/es/plugins/attachments-compression/index.js",
      "default": "./dist/es/plugins/attachments-compression/index.js"
    },
    "./plugins/encryption-crypto-js": {
      "types": "./dist/types/plugins/encryption-crypto-js/index.d.ts",
      "node": "./dist/lib/plugins/encryption-crypto-js/index.js",
      "require": "./dist/lib/plugins/encryption-crypto-js/index.js",
      "es2015": "./dist/es/plugins/encryption-crypto-js/index.js",
      "default": "./dist/es/plugins/encryption-crypto-js/index.js"
    },
    "./plugins/json-dump": {
      "types": "./dist/types/plugins/json-dump/index.d.ts",
      "node": "./dist/lib/plugins/json-dump/index.js",
      "require": "./dist/lib/plugins/json-dump/index.js",
      "es2015": "./dist/es/plugins/json-dump/index.js",
      "default": "./dist/es/plugins/json-dump/index.js"
    },
    "./plugins/key-compression": {
      "types": "./dist/types/plugins/key-compression/index.d.ts",
      "node": "./dist/lib/plugins/key-compression/index.js",
      "require": "./dist/lib/plugins/key-compression/index.js",
      "es2015": "./dist/es/plugins/key-compression/index.js",
      "default": "./dist/es/plugins/key-compression/index.js"
    },
    "./plugins/leader-election": {
      "types": "./dist/types/plugins/leader-election/index.d.ts",
      "node": "./dist/lib/plugins/leader-election/index.js",
      "require": "./dist/lib/plugins/leader-election/index.js",
      "es2015": "./dist/es/plugins/leader-election/index.js",
      "default": "./dist/es/plugins/leader-election/index.js"
    },
    "./plugins/replication-couchdb": {
      "types": "./dist/types/plugins/replication-couchdb/index.d.ts",
      "node": "./dist/lib/plugins/replication-couchdb/index.js",
      "require": "./dist/lib/plugins/replication-couchdb/index.js",
      "es2015": "./dist/es/plugins/replication-couchdb/index.js",
      "default": "./dist/es/plugins/replication-couchdb/index.js"
    },
    "./plugins/replication-nats": {
      "types": "./dist/types/plugins/replication-nats/index.d.ts",
      "node": "./dist/lib/plugins/replication-nats/index.js",
      "require": "./dist/lib/plugins/replication-nats/index.js",
      "es2015": "./dist/es/plugins/replication-nats/index.js",
      "default": "./dist/es/plugins/replication-nats/index.js"
    },
    "./plugins/update": {
      "types": "./dist/types/plugins/update/index.d.ts",
      "node": "./dist/lib/plugins/update/index.js",
      "require": "./dist/lib/plugins/update/index.js",
      "es2015": "./dist/es/plugins/update/index.js",
      "default": "./dist/es/plugins/update/index.js"
    },
    "./plugins/validate-ajv": {
      "types": "./dist/types/plugins/validate-ajv/index.d.ts",
      "node": "./dist/lib/plugins/validate-ajv/index.js",
      "require": "./dist/lib/plugins/validate-ajv/index.js",
      "es2015": "./dist/es/plugins/validate-ajv/index.js",
      "default": "./dist/es/plugins/validate-ajv/index.js"
    },
    "./plugins/validate-is-my-json-valid": {
      "types": "./dist/types/plugins/validate-is-my-json-valid/index.d.ts",
      "node": "./dist/lib/plugins/validate-is-my-json-valid/index.js",
      "require": "./dist/lib/plugins/validate-is-my-json-valid/index.js",
      "es2015": "./dist/es/plugins/validate-is-my-json-valid/index.js",
      "default": "./dist/es/plugins/validate-is-my-json-valid/index.js"
    },
    "./plugins/validate-z-schema": {
      "types": "./dist/types/plugins/validate-z-schema/index.d.ts",
      "node": "./dist/lib/plugins/validate-z-schema/index.js",
      "require": "./dist/lib/plugins/validate-z-schema/index.js",
      "es2015": "./dist/es/plugins/validate-z-schema/index.js",
      "default": "./dist/es/plugins/validate-z-schema/index.js"
    },
    "./package.json": "./package.json"
  },
  "scripts": {
    "postinstall": "node scripts/postinstall.js || echo \"ignore\"",
    "test": "npm run test:node && npm run test:browser",
    "// test:fast": "run tests in the fast-mode. Most of them will run in parrallel, skips tests that are known slow",
    "test:fast": "npm run test:fast:memory && npm run test:fast:lokijs && npm run test:fast:dexie",
    "test:fast:memory": "npm run transpile && cross-env DEFAULT_STORAGE=memory NODE_ENV=fast mocha --config ./config/.mocharc.js ./test_tmp/unit.test.js",
    "test:fast:memory-validation": "npm run transpile && cross-env DEFAULT_STORAGE=memory-validation NODE_ENV=fast mocha --config ./config/.mocharc.js ./test_tmp/unit.test.js",
    "test:fast:lokijs": "npm run transpile && cross-env DEFAULT_STORAGE=lokijs NODE_ENV=fast mocha --config ./config/.mocharc.js ./test_tmp/unit.test.js",
    "test:fast:dexie": "npm run transpile && cross-env DEFAULT_STORAGE=dexie NODE_ENV=fast mocha --config ./config/.mocharc.js ./test_tmp/unit.test.js",
    "test:fast:foundationdb": "npm run transpile && cross-env DEFAULT_STORAGE=foundationdb NODE_ENV=fast mocha --config ./config/.mocharc.js ./test_tmp/unit.test.js",
    "test:fast:mongodb": "npm run transpile && cross-env DEFAULT_STORAGE=mongodb NODE_ENV=fast mocha --config ./config/.mocharc.js ./test_tmp/unit.test.js",
    "// test:fast:loop": "runs tests in the fast-mode in a loop. Use this to debug tests that only fail sometimes",
    "test:fast:loop": "npm run test:fast && npm run test:fast:loop",
    "test:fast:loop:lokijs": "npm run test:fast:lokijs && npm run test:fast:loop:lokijs",
    "test:fast:loop:memory": "npm run test:fast:memory && npm run test:fast:loop:memory",
    "test:fast:loop:dexie": "npm run test:fast:dexie && npm run test:fast:loop:dexie",
    "test:fast:loop:mongodb": "npm run test:fast:mongodb && npm run test:fast:loop:mongodb",
    "test:node": "npm run test:node:lokijs && npm run test:node:dexie",
    "test:node:memory": "npm run transpile && cross-env DEFAULT_STORAGE=memory mocha --expose-gc --config ./config/.mocharc.js ./test_tmp/unit.test.js",
    "test:node:memory-validation": "npm run transpile && cross-env DEFAULT_STORAGE=memory-validation mocha --expose-gc --config ./config/.mocharc.js ./test_tmp/unit.test.js",
    "test:node:lokijs": "npm run transpile && cross-env DEFAULT_STORAGE=lokijs mocha --expose-gc --config ./config/.mocharc.js ./test_tmp/unit.test.js",
    "test:node:dexie": "npm run transpile && cross-env DEFAULT_STORAGE=dexie mocha --expose-gc --config ./config/.mocharc.js ./test_tmp/unit.test.js",
    "test:bun:dexie": "npm run transpile && cross-env DEFAULT_STORAGE=dexie NODE_ENV=fast bun run ./node_modules/mocha/bin/mocha test_tmp/unit.test.js --bail",
    "test:node:foundationdb": "npm run transpile && cross-env DEFAULT_STORAGE=foundationdb mocha --expose-gc --config ./config/.mocharc.js ./test_tmp/unit.test.js",
    "test:node:mongodb": "npm run transpile && cross-env DEFAULT_STORAGE=mongodb mocha --expose-gc --config ./config/.mocharc.js ./test_tmp/unit.test.js",
    "test:node:remote": "npm run transpile && cross-env DEFAULT_STORAGE=remote mocha --expose-gc --config ./config/.mocharc.js ./test_tmp/unit.test.js",
    "test:node:lokijs:loop": "npm run test:node:lokijs && npm run test:node:lokijs:loop",
    "test:node:memory:loop": "npm run test:node:memory && npm run test:node:memory:loop",
    "test:node:dexie:loop": "npm run test:node:dexie && npm run test:node:dexie:loop",
    "test:node:foundationdb:loop": "npm run test:node:foundationdb && npm run test:node:foundationdb:loop",
    "test:node:custom": "npm run transpile && cross-env DEFAULT_STORAGE=custom mocha --expose-gc --config ./config/.mocharc.js ./test_tmp/unit.test.js",
    "// test:node:loop": "runs tests in node in a loop. Use this to debug tests that only fail sometimes",
    "test:node:loop": "npm run test:node && npm run test:node:loop",
    "test:browser:loop": "npm run test:browser && npm run test:browser:loop",
    "test:browser:lokijs": " npm run transpile && cross-env CI=true DEFAULT_STORAGE=lokijs  karma start ./config/karma.conf.js --single-run",
    "test:browser:memory": " npm run transpile && cross-env CI=true DEFAULT_STORAGE=memory  karma start ./config/karma.conf.js --single-run",
    "test:browser:dexie": "  npm run transpile && cross-env CI=true DEFAULT_STORAGE=dexie   karma start ./config/karma.conf.js --single-run",
    "test:browser:remote": "  npm run transpile && cross-env CI=true DEFAULT_STORAGE=remote karma start ./config/karma.conf.js --single-run",
    "test:browser:custom": " npm run transpile && cross-env CI=true DEFAULT_STORAGE=custom  karma start ./config/karma.conf.js --single-run",
    "test:replication-firestore": "npm run transpile && firebase emulators:exec \"cross-env DEFAULT_STORAGE=dexie mocha --expose-gc --config ./config/.mocharc.js ./test_tmp/replication-firestore.test.js\" --only firestore --project 'nxdb-test'",
    "test:replication-couchdb": "npm run transpile && concurrently \"npm run couch:start\" \"cross-env NATIVE_COUCHDB=5984 DEFAULT_STORAGE=dexie mocha --config ./config/.mocharc.js ./test_tmp/unit/replication-couchdb.test.js\" --success first --kill-others",
    "test:replication-nats": "npm run transpile && concurrently \"npm run nats:start\" \"cross-env DEFAULT_STORAGE=dexie mocha --config ./config/.mocharc.js ./test_tmp/replication-nats.test.js\" --success first --kill-others",
    "test:core": "npm run transpile && mocha ./test_tmp/unit/core.node.js",
    "test:full": "npm run transpile && mocha ./test_tmp/unit/full.node.js",
    "test:typings": "tsc --noEmit --lib \"ES2021,DOM\" ./test/typings.test.ts",
    "test:deps": "npm run build && dependency-check ./package.json ./dist/lib/index.js ./dist/lib/plugins/validate-is-my-json-valid/index.js ./dist/lib/plugins/attachments-compression/index.js ./dist/lib/plugins/validate-ajv/index.js ./dist/lib/plugins/update/index.js ./dist/lib/plugins/key-compression/index.js ./dist/lib/plugins/dev-mode/index.js ./dist/lib/plugins/encryption-crypto-js/index.js ./dist/lib/plugins/replication-graphql/index.js ./dist/lib/plugins/replication-p2p/index.js ./dist/lib/plugins/replication-websocket/index.js ./dist/lib/plugins/replication-firestore/index.js ./dist/lib/plugins/replication-nats/index.js ./dist/lib/plugins/validate-z-schema/index.js ./dist/lib/plugins/storage-lokijs/index.js ./dist/lib/plugins/storage-dexie/index.js ./dist/lib/plugins/storage-memory/index.js ./dist/lib/plugins/storage-mongodb/index.js --no-dev --ignore-module util --ignore-module url --ignore-module ws --ignore-module graphql --ignore-module as-typed --ignore-module \"@types/*\"",
    "test:circular": "npm run build && madge --circular ./dist/es/index.js && madge --circular ./dist/es/plugins/storage-dexie/index.js",
    "test:performance:lokijs:browser": "npm run transpile && cross-env DEFAULT_STORAGE=lokijs CI=true karma start ./config/karma.performance.conf.js --single-run",
    "test:performance:lokijs:node": "npm run transpile && cross-env DEFAULT_STORAGE=lokijs mocha --config ./config/.mocharc.js ./test_tmp/performance.test.js --unhandled-rejections=strict --expose-gc",
    "test:performance:dexie": "npm run transpile && cross-env DEFAULT_STORAGE=dexie CI=true karma start ./config/karma.performance.conf.js --single-run",
    "test:performance:memory:browser": "npm run transpile && cross-env DEFAULT_STORAGE=memory CI=true karma start ./config/karma.performance.conf.js --single-run",
    "test:performance:memory:node": "npm run transpile && cross-env DEFAULT_STORAGE=memory mocha --config ./config/.mocharc.js ./test_tmp/performance.test.js --unhandled-rejections=strict --expose-gc",
    "test:performance:memory:bun": "npm run transpile && cross-env DEFAULT_STORAGE=memory bun run ./node_modules/mocha/bin/mocha test_tmp/performance.test.js --bail",
    "test:performance:foundationdb": "npm run transpile && cross-env DEFAULT_STORAGE=foundationdb mocha --config ./config/.mocharc.js ./test_tmp/performance.test.js --unhandled-rejections=strict --expose-gc",
    "test:performance:mongodb": "npm run transpile && cross-env DEFAULT_STORAGE=mongodb mocha --config ./config/.mocharc.js ./test_tmp/performance.test.js --unhandled-rejections=strict --expose-gc",
    "test:performance:custom:browser": "npm run transpile && cross-env DEFAULT_STORAGE=custom CI=true karma start ./config/karma.performance.conf.js --single-run",
    "test:performance:custom:node": "npm run transpile && cross-env DEFAULT_STORAGE=custom mocha --config ./config/.mocharc.js ./test_tmp/performance.test.js --unhandled-rejections=strict --expose-gc",
    "test:performance": "npm run build && npm run test:performance:lokijs:browser && npm run test:performance:lokijs:node && npm run test:performance:dexie && npm run test:performance:memory:browser && npm run test:performance:memory:node && npm run test:performance:foundationdb",
    "couch:start": "docker run -p 5984:5984 -e COUCHDB_USER=root -e COUCHDB_PASSWORD=root --rm --name nxdb-couchdb couchdb:3.3.1",
    "couch:stop": "docker rm -f nxdb-couchdb",
    "mongodb:start": "docker run -p 27017:27017 -p 27018:27018 -p 27019:27019 --rm --name nxdb-mongodb mongo:7.0.1",
    "mongodb:stop": "docker rm -f nxdb-mongodb",
    "nats:start": "docker run --rm --name nxdb-nats -p 4222:4222 nats:2.9.17 -js",
    "nats:stop": "docker rm -f nxdb-nats",
    "dockertest": "docker run -it -v $(pwd):/usr/src/app markadams/chromium-xvfb-js:latest-onbuild",
    "profile": "npm run transpile && rm -f isolate-* && cross-env STORAGE=memory NODE_ENV=fast NODE_PROF=true mocha --config ./config/.mocharc.js ./test_tmp/performance.test.js --v8-prof --expose-gc && node scripts/profile.js",
    "clear": "rimraf -rf test_tmp/ && rimraf -rf dist/ && rimraf .transpile_state.json",
    "lint": "eslint . --ext .js,.ts --cache",
    "lint:fix": "eslint --fix . --ext .js,.ts",
    "lint:debug:files": "DEBUG=eslint:cli-engine eslint --ext .js,.ts,.json .",
    "lint:debug:time": "TIMING=1 eslint --ext .js,.ts,.json .",
    "check-types": "tsc",
    "transpile": "npm run build:version && node scripts/transpile.js",
    "build:version": "node ./scripts/update-version-variable.js",
    "build:es": "npm run build:version && rimraf -rf --max-retries=3 dist/es && cross-env NODE_ENV=es6 babel src --out-dir dist/es --source-maps --extensions \".ts,.js\"",
    "build:types": "npm run build:version && rimraf -rf --max-retries=3 ./dist/types && tsc --project ./config/tsconfig.types.json && cp -r ./src/types ./dist/types/types",
    "build": "npm run clear && npm run build:version && concurrently \"npm run transpile\" \"npm run build:es\" \"npm run build:types\" \"npm run build:plugins\" && browserify dist/lib/browserify.index.js > dist/nxdb.browserify.js && terser --compress --mangle --output dist/nxdb.browserify.min.js -- dist/nxdb.browserify.js",
    "build:plugins": "node ./scripts/generate-plugins-package-json.js",
    "build:min": "npm run transpile && browserify dist/lib/browserify.index.js > dist/nxdb.browserify.js && terser --compress --mangle --output dist/nxdb.browserify.min.js -- dist/nxdb.browserify.js",
    "build:webpack": "npm run build && cross-env NODE_ENV=build webpack --config ./config/webpack.config.js",
    "build:rollup": "npm run build && rollup --config ./config/rollup.config.mjs",
    "build:size": "npm run build:webpack && echo \"Build-Size (minified+gzip):\" && gzip-size --raw ./test_tmp/webpack.bundle.js",
    "// docs": "TODO move away from gitbook so we are not forced to use node.js version 13 to build the docs",
    "docs:install": "gitbook install docs-src",
    "docs:landingpage:dev": "webpack-dev-server --mode development --config ./config/landingpage.webpack.config.js",
    "docs:landingpage:build": "npm run build && webpack --config ./config/landingpage.webpack.config.js",
    "docs:landingpage:copy": "rm -f ./docs/index.html && cp ./docs-src/index.html ./docs/index.html",
    "// docs:serve": "start a local server to watch the docs. Served at http://localhost:4000/",
    "docs:serve": "gitbook serve docs-src",
    "docs:build": "gitbook install docs-src && gitbook build docs-src docs && cp docs-src/files/logo/icon.png docs/gitbook/images/apple-touch-icon-precomposed-152.png && cp docs-src/files/logo/icon.ico docs/gitbook/images/favicon.ico && npm run docs:copy && npm run docs:remove:time",
    "docs:copy": "cp -r docs-src/files docs/files && npm run docs:landingpage:copy",
    "docs:remove:time": "node ./scripts/docs-remove-time.js",
    "disc": "npm run transpile && npm run build:es && cross-env NODE_ENV=disc webpack --config ./config/webpack.config.js",
    "preversion": "npm run lint && npm run test",
    "dev": "watch 'npm run test:node:memory' src/ test/",
    "dev:example": "watch 'npm run transpile:src && echo \"done\"' src/ test/"
  },
  "pre-commit": [
    "lint"
  ],
  "peerDependencies": {
    "rxjs": "^7.8.0"
  },
  "dependencies": {
    "@babel/runtime": "7.22.15",
    "@types/clone": "2.1.2",
    "@types/cors": "2.8.14",
    "@types/express": "4.17.18",
    "@types/lokijs": "1.5.10",
    "@types/simple-peer": "9.11.5",
    "@types/ws": "8.5.5",
    "ajv": "8.12.0",
    "array-push-at-sort-position": "3.0.0",
    "as-typed": "1.3.2",
    "broadcast-channel": "5.3.0",
    "crypto-js": "4.1.1",
    "custom-idle-queue": "3.0.1",
    "dexie": "4.0.0-alpha.4",
    "event-reduce-js": "3.1.2",
    "firebase": "9.23.0",
    "get-graphql-from-jsonschema": "8.1.0",
    "graphql": "15.8.0",
    "graphql-ws": "5.14.0",
    "is-my-json-valid": "2.20.6",
    "isomorphic-ws": "5.0.0",
    "js-base64": "3.7.5",
    "jsonschema-key-compression": "1.6.1",
    "lokijs": "1.5.12",
    "mingo": "6.4.4",
    "modifyjs": "0.3.1",
    "mongodb": "6.1.0",
    "nats": "2.17.0",
    "oblivious-set": "1.1.1",
    "ohash": "1.1.3",
    "pako": "2.1.0",
    "reconnecting-websocket": "4.4.0",
    "simple-peer": "9.11.1",
    "socket.io-client": "4.7.2",
    "unload": "2.4.1",
    "util": "0.12.5",
    "ws": "8.14.2",
    "z-schema": "6.0.1"
  },
  "devDependencies": {
    "@types/node": "18.17.19",
    "@babel/cli": "7.22.15",
    "@babel/core": "7.22.20",
    "@babel/plugin-external-helpers": "7.22.5",
    "@babel/plugin-proposal-class-properties": "7.18.6",
    "@babel/plugin-proposal-object-rest-spread": "7.20.7",
    "@babel/plugin-transform-literals": "7.22.5",
    "@babel/plugin-transform-member-expression-literals": "7.22.5",
    "@babel/plugin-transform-modules-commonjs": "7.22.15",
    "@babel/plugin-transform-property-literals": "7.22.5",
    "@babel/plugin-transform-runtime": "7.22.15",
    "@babel/plugin-transform-spread": "7.22.5",
    "@babel/plugin-transform-template-literals": "7.22.5",
    "@babel/plugin-transform-typescript": "7.22.15",
    "@babel/polyfill": "7.12.1",
    "@babel/preset-env": "7.22.20",
    "@babel/preset-typescript": "7.22.15",
    "@babel/types": "7.22.19",
    "@faker-js/faker": "7.6.0",
    "@rollup/plugin-commonjs": "24.1.0",
    "@rollup/plugin-node-resolve": "15.2.1",
    "@types/assert": "1.5.7",
    "@types/core-js": "2.5.6",
    "@types/cors": "2.8.14",
    "@types/crypto-js": "4.1.2",
    "@types/mocha": "10.0.1",
    "@types/pako": "2.0.1",
    "@types/request": "2.48.8",
    "@types/request-promise-native": "1.0.18",
    "@typescript-eslint/eslint-plugin": "5.62.0",
    "@typescript-eslint/parser": "5.62.0",
    "assert": "2.1.0",
    "async-test-util": "2.1.1",
    "babel-loader": "9.1.3",
    "babel-plugin-transform-class-properties": "6.24.1",
    "brfs": "2.0.2",
    "browserify": "17.0.0",
    "child-process-promise": "2.2.1",
    "clone": "2.1.2",
    "concurrently": "8.2.1",
    "copy-webpack-plugin": "11.0.0",
    "cors": "2.8.5",
    "cross-env": "7.0.3",
    "delete": "1.1.0",
    "dependency-check": "4.1.0",
    "detect-browser": "5.3.0",
    "disc": "1.3.3",
    "eslint": "8.50.0",
    "eslint-plugin-import": "2.28.1",
    "eslint-plugin-jsdoc": "43.2.0",
    "exists-file": "3.0.2",
    "express": "4.18.2",
    "express-graphql": "0.12.0",
    "express-pouchdb": "4.2.0",
    "fake-indexeddb": "4.0.2",
    "firebase-tools": "11.30.0",
    "get-port": "5.1.1",
    "gitbook-cli": "2.3.2",
    "graphql-subscriptions": "2.0.0",
    "gzip-size-cli": "5.1.0",
    "html-webpack-plugin": "5.5.3",
    "karma": "6.4.2",
    "karma-babel-preprocessor": "8.0.2",
    "karma-chrome-launcher": "3.2.0",
    "karma-coverage": "2.2.1",
    "karma-detect-browsers": "2.3.3",
    "karma-firefox-launcher": "2.1.2",
    "karma-ie-launcher": "1.0.0",
    "karma-mocha": "2.0.1",
    "karma-opera-launcher": "1.0.0",
    "karma-safari-launcher": "1.0.0",
    "karma-sourcemap-loader": "0.4.0",
    "karma-spec-reporter": "0.0.36",
    "karma-webpack": "5.0.0",
    "leveldown": "6.1.1",
    "madge": "6.1.0",
    "memdown": "6.1.1",
    "mini-css-extract-plugin": "2.7.6",
    "mocha": "10.2.0",
    "mocha.parallel": "0.15.6",
    "nconf": "0.12.0",
    "node-pre-gyp": "0.17.0",
    "pouchdb": "8.0.1",
    "pre-commit": "1.2.2",
    "random-int": "3.0.0",
    "readline": "1.3.0",
    "rimraf": "5.0.1",
    "rollup": "3.29.2",
    "rxjs": "7.8.1",
    "shelljs": "0.8.5",
    "socket.io": "4.7.2",
    "source-map-support": "0.5.21",
    "stream": "0.0.2",
    "terser": "5.20.0",
    "terser-webpack-plugin": "5.3.9",
    "ts-loader": "9.4.4",
    "ts-mocha": "10.0.0",
    "ts-node": "10.9.1",
    "typescript": "5.2.2",
    "walk-sync": "3.0.0",
    "watch": "1.0.2",
    "webpack": "5.88.2",
    "webpack-bundle-analyzer": "4.9.1",
    "webpack-cli": "5.1.4",
    "webpack-dev-server": "4.15.1"
  }
}