{"_id":"nanodb","_rev":"26-f9681dada504fcd9d5927eaa0e3a0f7d","name":"nanodb","dist-tags":{"latest":"2019.8.20"},"versions":{"0.0.1":{"name":"nanodb","version":"0.0.1","_id":"nanodb@0.0.1","scripts":{},"_shasum":"821c5c34de55e19f1b2c68d40d78629060ecae54","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"dist":{"shasum":"821c5c34de55e19f1b2c68d40d78629060ecae54","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-0.0.1.tgz","integrity":"sha512-gcwmEy6vQGOe3Z8kWaAqJHsj6msf7gx63+ZOzuAPqO8GwskTDSuHvv916sUKz18az18RufkhT9gQ1UHCFTKSBw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGhbNh/7vVuT8Ql/Tv0OdQE8CF6tX2sim58XuBvicPlOAiAjYbc75Dw0toqS0xVc1NmzLsN/oGXkNwgHIVgY6BSzVw=="}]},"maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/nanodb-0.0.1.tgz_1480250168272_0.9908620016649365"},"directories":{}},"2017.2.2":{"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"description":"this zero-dependency package will provide a persistent, in-browser database","devDependencies":{"electron-lite":"github:kaizhu256/node-electron-lite#alpha","utility2":"github:kaizhu256/node-utility2#alpha"},"engines":{"node":">=4.0"},"homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["browser","db","indexeddb","localstorage","mongo","mongodb","nedb","no-sql","nosql","persist","persistence","persistent","ttl","ttl-cache","web-sql","websql"],"license":"MIT","main":"lib.db.js","name":"nanodb","nameAlias":"db","nameOriginal":"db-lite","os":["darwin","linux"],"repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"scripts":{"build-ci":"utility2 shRun shReadmeBuild","env":"env","heroku-postbuild":"npm install 'kaizhu256/node-utility2#alpha' && utility2 shRun shDeployHeroku","postinstall":"if [ -f lib.db-lite.npm-scripts.sh ]; then ./lib.db-lite.npm-scripts.sh postinstall; fi","publish-alias":"VERSION=$(npm info $npm_package_name version); for ALIAS in browserdb cachedb microdb nanodb netdb swaggerdb swggdb udb; do utility2 shRun shNpmPublish $ALIAS $VERSION; utility2 shRun shNpmTestPublished $ALIAS || exit $?; done","start":"export PORT=${PORT:-8080} && export npm_config_mode_auto_restart=1 && utility2 shRun shIstanbulCover test.js","test":"export PORT=$(utility2 shServerPortRandom) && utility2 test test.js"},"version":"2017.2.2","bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"_id":"nanodb@2017.2.2","_shasum":"6bd5998037a6831496b8e7e37baaf8255d1f185b","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.4","_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"dist":{"shasum":"6bd5998037a6831496b8e7e37baaf8255d1f185b","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-2017.2.2.tgz","integrity":"sha512-SWtzrNM4Rw/7/s++F9yristisQ2n1vYovMgQvC1bvpAf5NYCeJjwdl7t2IQJ66Sbvr4babDNGHhL/F5k7lC0AA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCoCX3seZuLoHIrotZvJKfizrY2mTC+0Se52oTyHId5SQIhAIqsDZhw1LiXCXzA1uXNtvBP666weyytvklSoYpyIEzq"}]},"maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/nanodb-2017.2.2.tgz_1487910100313_0.964941703248769"},"directories":{}},"2017.3.16":{"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"description":"this zero-dependency package will provide a persistent, in-browser database","devDependencies":{"electron-lite":"github:kaizhu256/node-electron-lite#alpha","utility2":"github:kaizhu256/node-utility2#alpha"},"engines":{"node":">=4.0"},"homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["browser","db","indexeddb","localstorage","mongo","mongodb","nedb","no-sql","nosql","persist","persistence","persistent","ttl","ttl-cache","web-sql","websql"],"license":"MIT","main":"lib.db.js","name":"nanodb","nameAlias":"db","nameOriginal":"db-lite","os":["darwin","linux"],"readmeParse":"1","repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"scripts":{"build-ci":"utility2 shReadmeTest build_ci.sh","env":"env","heroku-postbuild":"(set -e; npm install 'kaizhu256/node-utility2#alpha'; utility2 shDeployHeroku)","postinstall":"if [ -f lib.db-lite.npm_scripts.sh ]; then ./lib.db-lite.npm_scripts.sh postinstall; fi","publish-alias":"VERSION=$(npm info $npm_package_name version); for ALIAS in browser-db browserdb cachedb db_lite microdb nanodb netdb swaggerdb swggdb udb; do utility2 shNpmPublishAs . $ALIAS $VERSION; eval utility2 shNpmTestPublished $ALIAS || exit $?; done","start":"(set -e; export PORT=${PORT:-8080}; utility2 start test.js)","test":"(set -e; export PORT=$(utility2 shServerPortRandom); utility2 test test.js)"},"version":"2017.3.16","bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"_id":"nanodb@2017.3.16","_shasum":"22e7ff48fd97a22b4b03d7ed796a61127452daec","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.7.3","_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"dist":{"shasum":"22e7ff48fd97a22b4b03d7ed796a61127452daec","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-2017.3.16.tgz","integrity":"sha512-UgK1h4SVcI1kP3NsBPchbjAuj4prjiG6OHeetwlNR24Sh3Ph921yQIMnsrd0hPJUFrgoISNtcgfiDUasy/6Zkg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCC7v/KHpiFOSg19kpNbD5C0dG9OC8ZaCtPLRkkCjKp7wIgI3pnX2FiVWEsRm6e2bmrUB41/Rwrqi/73SxQrX15S7A="}]},"maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/nanodb-2017.3.16.tgz_1489698609314_0.8771279375068843"},"directories":{}},"2017.3.17":{"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"dependencies":{},"description":"this package is deprecated and superseded by [db-lite](https://www.npmjs.com/package/db-lite)","devDependencies":{"electron-lite":"github:kaizhu256/node-electron-lite#alpha","utility2":"github:kaizhu256/node-utility2#alpha"},"directories":{},"dist":{"shasum":"062194e540f5352fac742cec861ce9af753bf955","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-2017.3.17.tgz","integrity":"sha512-MIgfRB/I6hWUbqXZFcn8lZnjUbZO9Ew3VwWsxjdUT1P0UuEZszBjOYKO1m7+1G4ZxuGdNPpGTWtvvPxHf/vGtQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG1WQq8fBzY/ZT5Qb9IVlvsFfPPGjvLAn7mpm4VDmpeiAiAZ3UYoi/Sb9ZaWEWEuCwLVmYieKJeZ8q0nNtL2o7Tj8Q=="}]},"engines":{"node":">=4.0"},"homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["browser","db","indexeddb","localstorage","mongo","mongodb","nedb","no-sql","nosql","persist","persistence","persistent","ttl","ttl-cache","web-sql","websql"],"license":"MIT","main":"lib.db.js","maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"name":"nanodb","nameAlias":"db","nameOriginal":"db-lite","optionalDependencies":{},"os":["darwin","linux"],"readmeParse":"1","repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"scripts":{"build-ci":"utility2 shReadmeTest build_ci.sh","env":"env","heroku-postbuild":"(set -e; npm install 'kaizhu256/node-utility2#alpha'; utility2 shDeployHeroku)","postinstall":"if [ -f lib.db-lite.npm_scripts.sh ]; then ./lib.db-lite.npm_scripts.sh postinstall; fi","publish-alias":"VERSION=$(npm info $npm_package_name version); for ALIAS in browser-db browserdb cachedb db_lite microdb nanodb netdb swaggerdb swggdb udb; do utility2 shNpmPublishAs . $ALIAS $VERSION; eval utility2 shNpmTestPublished $ALIAS || exit $?; done","start":"(set -e; export PORT=${PORT:-8080}; utility2 start test.js)","test":"(set -e; export PORT=$(utility2 shServerPortRandom); utility2 test test.js)"},"version":"2017.3.17","_id":"nanodb@2017.3.17","_shasum":"062194e540f5352fac742cec861ce9af753bf955","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.1","_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/nanodb-2017.3.17.tgz_1490883394725_0.43003560486249626"}},"2017.5.25":{"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"description":"this zero-dependency package will provide a persistent, in-browser database","devDependencies":{"electron-lite":"github:kaizhu256/node-electron-lite#alpha","utility2":"github:kaizhu256/node-utility2#alpha"},"engines":{"node":">=4.0"},"homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["browser","db","indexed-db","indexeddb","localstorage","lru","lru-cache","mongo","mongodb","nedb","no-sql","nosql","persist","persistence","persistent","ttl","ttl-cache","web-sql","websql"],"license":"MIT","main":"lib.db.js","name":"nanodb","nameAlias":"db","nameAliasPublish":"nanodb nedb2","nameOriginal":"db-lite","os":["darwin","linux"],"repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"scripts":{"build-ci":"utility2 shReadmeTest build_ci.sh","env":"env","heroku-postbuild":"(set -e; npm install \"kaizhu256/node-utility2#alpha\"; utility2 shDeployHeroku)","postinstall":"if [ -f npm_scripts.sh ]; then ./npm_scripts.sh postinstall; fi","start":"(set -e; export PORT=${PORT:-8080}; utility2 start test.js)","test":"(set -e; export PORT=$(utility2 shServerPortRandom); utility2 test test.js)"},"version":"2017.5.25","bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"_id":"nanodb@2017.5.25","_shasum":"1462076b4a10f419b8e125d5ea6e3c6dfe5ce036","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"dist":{"shasum":"1462076b4a10f419b8e125d5ea6e3c6dfe5ce036","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-2017.5.25.tgz","integrity":"sha512-L+X7i8qHR3exp36pOI+aBIYAw9pcheGRcB0N88T1xLLmwG3VFWyJ2BrDuw2w08cf/bKdqsqOLoRO15bY845etQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLW8vUMf63Nch0kQH+aQd1YD41gS9KISmL6wFotDbbVQIhAMTNGOJ7Vb1m9xbO+9/MPERjavVUtUkMGb4O/l6LjrjM"}]},"maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nanodb-2017.5.25.tgz_1495773148847_0.41303499578498304"},"directories":{}},"2017.7.24":{"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"description":"this zero-dependency package will provide a persistent, in-browser database","devDependencies":{"electron-lite":"github:kaizhu256/node-electron-lite#alpha","utility2":"github:kaizhu256/node-utility2#alpha"},"engines":{"node":">=4.0"},"homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["browser-database","database","datastore","indexeddb","mongodb","nedb","no-sql","persistence"],"license":"MIT","main":"lib.db.js","name":"nanodb","nameAlias":"db","nameAliasPublish":"nanodb nedb2","nameOriginal":"db-lite","os":["darwin","linux"],"repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"scripts":{"build-ci":"utility2 shReadmeTest build_ci.sh","env":"env","heroku-postbuild":"npm uninstall utility2 2>/dev/null; npm install kaizhu256/node-utility2#alpha && utility2 shDeployHeroku","postinstall":"[ ! -f npm_scripts.sh ] || ./npm_scripts.sh postinstall","start":"PORT=${PORT:-8080} utility2 start test.js","test":"PORT=$(utility2 shServerPortRandom) utility2 test test.js"},"version":"2017.7.24","bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"_id":"nanodb@2017.7.24","_shasum":"2dfa118e8cfac271b118494966156684f728318b","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.1","_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"dist":{"shasum":"2dfa118e8cfac271b118494966156684f728318b","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-2017.7.24.tgz","integrity":"sha512-EqBF6JuUJYfxCAz/lJMIX2ULJ5eppN+f+AfE0uUVhPSjWypLbV642Lw64squeOSOu18ZT6fd/o0050GU4CikkA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEJGrNNk+54GlGEtOmgszGniAgMbIeaK8JANNvuKEF1CAiEAhX/vSeDoBGAbHJsjzko83+xr4W276zLjT3BuB/5XAEE="}]},"maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nanodb-2017.7.24.tgz_1500966117369_0.5816879151389003"},"directories":{}},"2017.9.16":{"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"bin":{"db-lite":"lib.db.js"},"description":"this zero-dependency package will provide a persistent, in-browser database","devDependencies":{"electron-lite":"github:kaizhu256/node-electron-lite#alpha","utility2":"github:kaizhu256/node-utility2#alpha"},"engines":{"node":">=4.0"},"homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["browser","database","embedded","indexeddb","mongodb","nedb","persistent"],"license":"MIT","main":"lib.db.js","name":"nanodb","nameAlias":"db","nameAliasPublish":"nanodb nedb2","nameOriginal":"db-lite","os":["darwin","linux"],"repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"scripts":{"build-ci":"utility2 shReadmeTest build_ci.sh","env":"env","heroku-postbuild":"npm uninstall utility2 2>/dev/null; npm install kaizhu256/node-utility2#alpha && utility2 shDeployHeroku","postinstall":"[ ! -f npm_scripts.sh ] || ./npm_scripts.sh postinstall","start":"PORT=${PORT:-8080} utility2 start test.js","test":"PORT=$(utility2 shServerPortRandom) utility2 test test.js"},"version":"2017.9.16","bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"_id":"nanodb@2017.9.16","_shasum":"9bcee5e9881971ab7790e34538241064b675785e","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.3","_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"dist":{"shasum":"9bcee5e9881971ab7790e34538241064b675785e","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-2017.9.16.tgz","integrity":"sha512-nM1THGOt7f/VIjTccl6Glis4qN2nkBsmzMeFsT0NbgGQqsJboqRmZJWUVBX7ZB05dMHdJuwAZbahwQEndPlNlg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVNBzwWM2RoSRQxmwOgSAxvGorFipvnaUt3SSAlOi++gIhAJnuvZdp87Gaf5s5fF4JZuZ+j7Bz9qU7zoulGvKAE/Vn"}]},"maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nanodb-2017.9.16.tgz_1505664999389_0.2683800640515983"},"directories":{}},"2017.11.7":{"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"bin":{"db-lite":"lib.db.js"},"description":"this zero-dependency package will provide a persistent, in-browser database, with a working web-demo","devDependencies":{"electron-lite":"github:kaizhu256/node-electron-lite#alpha","utility2":"github:kaizhu256/node-utility2#alpha"},"engines":{"node":">=4.0"},"homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["database","embedded","indexeddb","nedb"],"license":"MIT","main":"lib.db.js","name":"nanodb","nameAliasPublish":"elasticdb-lite esdb nanodb nedb2","nameLib":"db","nameOriginal":"db-lite","os":["darwin","linux"],"repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"scripts":{"build-ci":"utility2 shReadmeTest build_ci.sh","env":"env","heroku-postbuild":"npm uninstall utility2 2>/dev/null; npm install kaizhu256/node-utility2#alpha && utility2 shDeployHeroku","postinstall":"[ ! -f npm_scripts.sh ] || ./npm_scripts.sh postinstall","start":"PORT=${PORT:-8080} utility2 start test.js","test":"PORT=$(utility2 shServerPortRandom) utility2 test test.js"},"version":"2017.11.7","bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"_id":"nanodb@2017.11.7","_shasum":"7c7ced56b0c4c528f151fab311c3275843b5e8fe","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.5","_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"dist":{"shasum":"7c7ced56b0c4c528f151fab311c3275843b5e8fe","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-2017.11.7.tgz","integrity":"sha512-IpomKcRLlPuN73R9mJPyvT5xc9JaxwftyofEXNzN+vUOyvLLmrK1d4WufTX1WfaQYf3EXAk/mVDG0S+fbX+nLQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF2Nnp9TM9hvTQB3ooT/wW5EokXNhyPjS78wJ2Y01PWjAiEAp1nYQ8UzWG0niAEjNgPlhE/FghJhM6xDAVU6pPz/1pE="}]},"maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nanodb-2017.11.7.tgz_1510074038341_0.3649117876775563"},"directories":{}},"2017.12.4":{"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"bin":{"db-lite":"lib.db.js"},"description":"this zero-dependency package will provide a persistent, in-browser database, with a working web-demo","devDependencies":{"electron-lite":"github:kaizhu256/node-electron-lite#alpha","utility2":"github:kaizhu256/node-utility2#alpha"},"engines":{"node":">=4.0"},"homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["database","embedded","indexeddb","nedb"],"license":"MIT","main":"lib.db.js","name":"nanodb","nameAliasPublish":"elasticdb-lite esdb nanodb nedb2","nameLib":"db","nameOriginal":"db-lite","os":["darwin","linux"],"repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"scripts":{"build-ci":"utility2 shReadmeTest build_ci.sh","env":"env","heroku-postbuild":"npm uninstall utility2 2>/dev/null; npm install kaizhu256/node-utility2#alpha && utility2 shDeployHeroku","postinstall":"[ ! -f npm_scripts.sh ] || ./npm_scripts.sh postinstall","start":"PORT=${PORT:-8080} utility2 start test.js","test":"PORT=$(utility2 shServerPortRandom) utility2 test test.js"},"version":"2017.12.4","bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"_id":"nanodb@2017.12.4","_shasum":"fae9a355ea8a4415d55bb3e04d1956caeacbe389","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.12.0","_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"dist":{"shasum":"fae9a355ea8a4415d55bb3e04d1956caeacbe389","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-2017.12.4.tgz","integrity":"sha512-OnCPdjfqOvDJNZ5RB5BSNZ4nnBmvWwYEvW1s+SPR3IYfTBda+aWiNqYsEmy7hodop4ch0hOcl6xJfR9Z2t7g5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGYWC2bqxd3lnLZ8cChiouwaNj0l5kPiM/ToYqfpWjOXAiEAtGms24GS+IUAZm1OkDfbcgD3+JgRg7Bd4G5H79ZLYPI="}]},"maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nanodb-2017.12.4.tgz_1512410265149_0.7152422056533396"},"directories":{}},"2018.2.16":{"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"bin":{"db-lite":"lib.db.js"},"description":"this zero-dependency package will provide a persistent, in-browser database, with a working web-demo","devDependencies":{"electron-lite":"github:kaizhu256/node-electron-lite#alpha","utility2":"github:kaizhu256/node-utility2#alpha"},"engines":{"node":">=4.0"},"homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["database","embedded","indexeddb","nedb"],"license":"MIT","main":"lib.db.js","name":"nanodb","nameAliasPublish":"elasticdb-lite esdb nanodb nedb2","nameLib":"db","nameOriginal":"db-lite","os":["darwin","linux"],"repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"scripts":{"apidocRawCreate":"[ ! -f npm_scripts.sh ] || ./npm_scripts.sh shNpmScriptApidocRawCreate","apidocRawFetch":"[ ! -f npm_scripts.sh ] || ./npm_scripts.sh shNpmScriptApidocRawFetch","build-ci":"utility2 shReadmeTest build_ci.sh","env":"env","heroku-postbuild":"npm uninstall utility2 2>/dev/null; npm install kaizhu256/node-utility2#alpha && utility2 shDeployHeroku","nameAliasPublish":"","postinstall":"[ ! -f npm_scripts.sh ] || ./npm_scripts.sh shNpmScriptPostinstall","start":"PORT=${PORT:-8080} utility2 start test.js","test":"PORT=$(utility2 shServerPortRandom) utility2 test test.js"},"version":"2018.2.16","bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"_id":"nanodb@2018.2.16","_shasum":"bacfa1764a0a9c8e3416076d271fa202fbeaafd1","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.13.0","_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"dist":{"shasum":"bacfa1764a0a9c8e3416076d271fa202fbeaafd1","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-2018.2.16.tgz","fileCount":5,"unpackedSize":163603,"integrity":"sha512-hL7Xal1UimA3rKnPMefdHrDhkrRoh7scyaMjcDv4mIKtsNzqiXUjRFEOAV6jdU0t7F6aZLL95TsLqersafQ97w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFAfETjJVzg8RbHx9DDxJHAvGGNE8aXtZFPtg8A/w+fkAiEA1XrT9UO94Nmr6Nytyk7JRI81M1EcOAhxuS9eHMTL1T0="}]},"maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nanodb_2018.2.16_1518828250101_0.9767743928828378"},"_hasShrinkwrap":false},"2018.4.23":{"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"bin":{"db-lite":"lib.db.js"},"description":"this zero-dependency package will provide a persistent, in-browser database, with a working web-demo","devDependencies":{"electron-lite":"github:kaizhu256/node-electron-lite#alpha","utility2":"github:kaizhu256/node-utility2#alpha"},"engines":{"node":">=4.0"},"homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["database","embedded","indexeddb","nedb"],"license":"MIT","main":"lib.db.js","name":"nanodb","nameAliasPublish":"elasticdb-lite esdb nanodb nedb2","nameLib":"db","nameOriginal":"db-lite","os":["darwin","linux"],"repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"scripts":{"apidocRawCreate":"[ ! -f npm_scripts.sh ] || ./npm_scripts.sh shNpmScriptApidocRawCreate","apidocRawFetch":"[ ! -f npm_scripts.sh ] || ./npm_scripts.sh shNpmScriptApidocRawFetch","build-ci":"utility2 shReadmeTest build_ci.sh","env":"env","heroku-postbuild":"npm install kaizhu256/node-utility2#alpha --prefix . && utility2 shDeployHeroku","postinstall":"[ ! -f npm_scripts.sh ] || ./npm_scripts.sh shNpmScriptPostinstall","start":"PORT=${PORT:-8080} utility2 start test.js","test":"PORT=$(utility2 shServerPortRandom) utility2 test test.js"},"version":"2018.4.23","bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"_id":"nanodb@2018.4.23","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"dist":{"integrity":"sha512-7dWhSvuypjxYrSY5xgUq2ZhMGpwrq4bY2q5D/lLBBajegHyvx2d05m4XPwjiV3itXeTzet83ABT2Y9IuQxpb9w==","shasum":"497374b621f0b08b9231948a38fc55b07c15e66d","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-2018.4.23.tgz","fileCount":5,"unpackedSize":167253,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa3FFdCRA9TVsSAnZWagAAJtIQAJuFlxINEK+WhF9dTGWw\nj8baUlaFWDtomousd0Z0/gyG7EoHINU5Rn51s11Q0ORHGK8k6glzzEiNrFhb\nI/mEvqI2hc3uRf+ZlgzDeT9aTlMBLwqjqMnFVtDrrEjbSH4hkQlpi3AZ3wgi\nRq9E7L54mTSOGI7RkzuFAlq4HVRQJij4WW/6uyX2evctHMqlqb9UmJMe0uRl\nAXz+BFxqymcUNIyYxpXN2NBNy3hIms3IirTTXZjxYdj5uDLDUBO5iQax+QSn\ntcO4NFg8GEdP0J+p1aDlxGbVjVi2pFtLxfA97IHzUJCkhOdYrmgyA/sioTsi\nst+ei+WEjG2VYesdNibLtoqZPpdforPwn74JRpiWwmajxRMLf94Quk02bBit\nKnQbdXaxpwp657ptLRxFfgaJTY07/NXDdPJRLTUi6EOjM+SFXD3UlRdt7CVg\nu7X/s7dFw3k5j4gOVtClJXAGGIbhO8DiWTkeBPTA4LEFNltwZKUL9TfEOW04\n4GqivbXNR+snxs3iLsZdbiGrgC6LMvny0T8/BhHgk4gDAMbUaHRoXJX6WGJv\n7InPMpQtiGe+IqPDGXpl5Z1vAum2K/FqSBSSZNW0wie3k4mt9db57/2Ayapy\n/T0MYXdRx+yfqPV4zM+PKXv/hmWwitNiU4glDusqFcum1hWJcTzJ/qAdoL//\nyB4r\r\n=w/93\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZR2UOfsQFahFS+EE9/a9dMGLvItyxtvPFtBgZUaZvHAIgKltaNTWH1ftlkfIWofb4fMPCt3ZtzfLH+jQVV+Autk8="}]},"maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nanodb_2018.4.23_1524388187687_0.04266130921255318"},"_hasShrinkwrap":false},"2018.8.5":{"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"bin":{"db-lite":"lib.db.js"},"description":"this zero-dependency package will provide a persistent, in-browser database, with a working web-demo","devDependencies":{"electron-lite":"github:kaizhu256/node-electron-lite#alpha","utility2":"github:kaizhu256/node-utility2#alpha"},"engines":{"node":">=4.0"},"homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["database","embedded","indexeddb","nedb"],"license":"MIT","main":"lib.db.js","name":"nanodb","nameAliasPublish":"esdb nanodb nedb2","nameLib":"db","nameOriginal":"db-lite","os":["darwin","linux"],"repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"scripts":{"build-ci":"./npm_scripts.sh","env":"env","eval":"./npm_scripts.sh","heroku-postbuild":"./npm_scripts.sh","postinstall":"./npm_scripts.sh","start":"./npm_scripts.sh","test":"./npm_scripts.sh","utility2":"./npm_scripts.sh"},"version":"2018.8.5","bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"_id":"nanodb@2018.8.5","_npmVersion":"6.2.0","_nodeVersion":"10.8.0","_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"dist":{"integrity":"sha512-Vh68stC202xcUBMfVhp7XpiUVHsfBFGfLPcHnkzsgvQsxxYJHUadlRzQ6ZR4MSmy7fqzxnVBLq4EgFpkdqS8Lw==","shasum":"e9f44743551bcd6e971e6ec765988098d8265ba7","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-2018.8.5.tgz","fileCount":6,"unpackedSize":171955,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbZ1JACRA9TVsSAnZWagAAZh0P/16K9kqDOKtCRiI7Tvrt\n9qux8rpwcJnvtNeCvhMdIu9qTBV1qjkLynNPGXzMD0Lu6j+erFtm5HhJl9ub\n6/CNG6ezIdcXRuXbTMPD+tBRMEffL7GnxDCVHEEyI3TIKR4QXDbIqGy7w9Nf\ntH5u9MEoS0UuRrlJCgFfN0rLhxBQv7PEXZPA8Nb5N/t2gYUZaLKslLf8uUwE\nO9apFosrO9Y4SDFy5fpFUEE3Al0uTj3xaowqJI+AgwoDBXtu7ypvU9t+qnyl\nJCkVEOINDt3CMtZ7H7dAp/YFI4eOzrSFfGoNmJGgJ8xzh07jbNg7JJ6k9BsY\n+shmhjxItLWFwuPIOZrLksQkLhuSLyqS1/PRC181iA2FkTIA7qA0tDfmugL1\njUfmn+1cVHBw+jhLeojxqqFs6y10YvCLFoK3oOfnjQaVN4vyRzqGO6EWOiZ8\nTfTmow2cGiwtaGLNzTljrqkOTd6TdwsoRTMX2lJSS2FpUnFDoljWmBL8t+kz\noroe0CVmPyhoM9nz79xW+4sh03tXoZTQRxC4DfVn3WHM2xAT1gCO2smA7E/T\nZ3+KNF2B1cAuKxcasWUqrmRJh9eTooFk32ytrKkyzKeh+nbtfLORzllBadgk\nrNWE+YFLQ3pRKwT8NIloT1Rh8Xt1eOt/EAMrQlotSahIQWHU+Dc74yRikHah\nu1v0\r\n=Ykx5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyAgWTt+c6N/dNtuIDBNYLc+viRmfIhXwQkjoRBYclVAIhALCl8qA7azdHEKOh7iy+dRg0J3bp6mpQQgLIjx2RQmQT"}]},"maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nanodb_2018.8.5_1533497919710_0.6694582955440209"},"_hasShrinkwrap":false},"2018.9.1":{"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"bin":{"db-lite":"lib.db.js"},"description":"this zero-dependency package will provide a persistent, in-browser database, with a working web-demo","devDependencies":{"electron-lite":"github:kaizhu256/node-electron-lite#alpha","utility2":"github:kaizhu256/node-utility2#alpha"},"engines":{"node":">=4.0"},"homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["database","embedded","indexeddb","nedb"],"license":"MIT","main":"lib.db.js","name":"nanodb","nameAliasPublish":"esdb nanodb nedb2","nameLib":"db","nameOriginal":"db-lite","os":["darwin","linux"],"repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"scripts":{"build-ci":"./npm_scripts.sh","env":"env","eval":"./npm_scripts.sh","heroku-postbuild":"./npm_scripts.sh","postinstall":"./npm_scripts.sh","start":"./npm_scripts.sh","test":"./npm_scripts.sh","utility2":"./npm_scripts.sh"},"version":"2018.9.1","bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"_id":"nanodb@2018.9.1","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"dist":{"integrity":"sha512-dk+BS08/0LAl4gVehw0P+5JqaPn0mlqTi1zAglKCv3qjQAf80Nm3VtRn4ywVDt9fGjn8aOquQ0hQPxVkjI6odQ==","shasum":"e287119ff9b899f1841905f47b04c42758cad103","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-2018.9.1.tgz","fileCount":6,"unpackedSize":175792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbie43CRA9TVsSAnZWagAALBkQAIkvDGbgPT+v7ijW1nUn\noALO9/5oDIfvKurd3E9dsmc6HE2aUZkyTidXbL0A+j7kgX9ya2hf4b2JIsWD\nnynk8d8mCJ1sKnFBwgAg+BgeUZHl6UMmgAJ6aW6hi9s1de30zxjgZaGw6DhP\nsEcSwmRiUjZZKzlqvFWdGVx/d14i3CiRIwgKrbV89f+3DvRTzu8iFteZ/n3q\nHtsVPj3wxYB3S8/to6SGlGnRFUkesp65nK/noKjMNujbJvdqbZrzQcSP/a9R\nczTMUtC20gnW+N0P/YN+xKxQlWcRiSpUeoeC3p3KFf9NmIq6NILZnRecH8vr\nQYUZCYutLwD7qXsttYQYowXAmq43gkD9x6HdwJyvgSESkbDL+TU7nEcEpg6R\nJnkk2Nw8IGfqM4ViH2c0+2ntWBU38KMxUzNbavQDQRnl3XE/5qU8u8YGCw8h\nBSUzL3oONmMZ8Hx/NTv9eOQmBvCSZiQWsvkT/rqxmxBraH3tUV59XQXzTH3u\nFY9AXBkLx3zf+uzFuWyV69K2z9tW+esgHYWEQVhOG9gUVL5CT7Wcc8uVWD2o\nGLfYNTfQczFS+GEqfbtLTcCPs+cn89fEXhgc0Hv408JIc7xyv97od7Fx/VjK\n9iyJMmTmCTkqIYTAa1Z341reu4ehPJNeDBDKSnQvTm+PtmZdC70kudh0biBb\nPHoZ\r\n=W9Rf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFbWr9E9M2k4Jm8Sdl2wEj0T9KCdpfOo9nsCbXAZUHftAiEApi6kZ8geA0BN/9bYuMtDY8rjTvAHH80prLi03PqFRNw="}]},"maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nanodb_2018.9.1_1535766070324_0.42073335763685105"},"_hasShrinkwrap":false},"2018.12.29":{"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"bin":{"db-lite":"lib.db.js"},"description":"this zero-dependency package will provide a persistent, in-browser database, with a working web-demo","devDependencies":{"electron-lite":"github:kaizhu256/node-electron-lite#alpha","utility2":"github:kaizhu256/node-utility2#alpha"},"engines":{"node":">=8.0"},"homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["database","embedded","indexeddb","nedb"],"license":"MIT","main":"lib.db.js","name":"nanodb","nameAliasPublish":"esdb nanodb nedb2","nameLib":"db","nameOriginal":"db-lite","os":["darwin","linux"],"repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"scripts":{"build-ci":"./npm_scripts.sh","env":"env","eval":"./npm_scripts.sh","heroku-postbuild":"./npm_scripts.sh","postinstall":"./npm_scripts.sh","start":"./npm_scripts.sh","test":"./npm_scripts.sh","utility2":"./npm_scripts.sh"},"version":"2018.12.29","bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"_id":"nanodb@2018.12.29","_npmVersion":"6.5.0-next.0","_nodeVersion":"11.6.0","_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"dist":{"integrity":"sha512-ohNedch6eO3/vC9at7O+ZS6HyihWKmiUNhW5BA8gaROaKf+mzsGvZjDiLESCIinkZnaMs9915Tn7qirzcYNHjg==","shasum":"ec22c5a9f7c2085bda84fdbf8576a1d902afe997","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-2018.12.29.tgz","fileCount":6,"unpackedSize":164974,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcKA9gCRA9TVsSAnZWagAAMjUP/R00dkqr33099IxgBQ8Q\nZJLOwNVjxg+KkWYILehSAzaov9OiKqaQixzBYsfc2dYs7MPW+80o/wfVeZdt\ncGxEkxUn16NsQUq24SvmHHGX3SSTzDBUimNqkadUWvb9Ah4iSUQ+HOIH10cc\nbt77yF+Dwz3MERIlwLkMEWiRK0202gfro27HyzA+2wpU8mdoXSX9U4hrjklp\nTly1hJi0uLOe8DpSrZLIXfs9OSbXZ0nNN+QcnCUHC2ZEC71Ztn01RnwrP3I+\nqwW9I18S9wXElS8c4/tfI0xR5TncR4Q24p2V5lCFVGHiic+dYQVNU8JblgUg\nAmQIQtOrVUHi/BtFjbnQb42lPPmb4xUyH9MQkL0HY8w6fdlA0Xz00+Pf/X2O\ni1QtaL9g7ADhcn0SwOat3IzPKwuwRRVcETh5bIfw2fW50vDLj/i/8A1BVoNY\nTofnP+pUDsjJrGJtNWMatmiWZpMScGYLG5eKw/iW6I4ksH0SPb9zDr4MNxw9\nFiNFmDYuE5/R8S3b/7tbXxzmvH8HzqJw3NuMbksQXbQ1fkYF1nJqHzwL5CWk\numEkKeMH2lTnBWKqrDksWulzxC3PGDbTY4SGHW/DPucM4K1bBqDePH0FAL4Z\nBPh1I7PJrQxwpk7i1WnOnDAqmJmLtHS/3D2tr2cVBVr/0Xgty5ZKMYArq/te\nMwzJ\r\n=fAHU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWDBy4Gmn96lpOqcAhqIY2BzHlr7vYjV2zPCRlKoJR8AIgIfzqU0JbeMNEhiwczb/NDoalemptKhZ/HjCPGuwDi9g="}]},"maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nanodb_2018.12.29_1546129247570_0.5976139838961769"},"_hasShrinkwrap":false},"2018.12.30":{"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"bin":{"db-lite":"lib.db.js"},"description":"this zero-dependency package will provide a persistent, in-browser database, with a working web-demo","devDependencies":{"electron-lite":"github:kaizhu256/node-electron-lite#alpha","utility2":"github:kaizhu256/node-utility2#alpha"},"engines":{"node":">=8.0"},"homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["database","embedded","indexeddb","nedb"],"license":"MIT","main":"lib.db.js","name":"nanodb","nameAliasPublish":"esdb nanodb nedb2","nameLib":"db","nameOriginal":"db-lite","os":["darwin","linux"],"repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"scripts":{"build-ci":"./npm_scripts.sh","env":"env","eval":"./npm_scripts.sh","heroku-postbuild":"./npm_scripts.sh","postinstall":"./npm_scripts.sh","start":"./npm_scripts.sh","test":"./npm_scripts.sh","utility2":"./npm_scripts.sh"},"version":"2018.12.30","bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"_id":"nanodb@2018.12.30","_npmVersion":"6.5.0-next.0","_nodeVersion":"11.6.0","_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"dist":{"integrity":"sha512-ZMGvVQG6u+GkV5FWMr0e3OVfsJxZ2x5nA/urVP6tiD3qdk5HP6FslvYD1CpPcog6lzLBbScNjK3hTzqHUfLAZg==","shasum":"e92b2356fc8ef08308a39be8d91114d664279fa4","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-2018.12.30.tgz","fileCount":6,"unpackedSize":165298,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcKIHbCRA9TVsSAnZWagAA9CAP/jQBuvgoS42dSFZahiho\nqGIllk+FCOrJSqutFJoGjZ1UbIEemKsb8CRIrK/1etUTqTBlFqaXoPhH8q7r\nXPYLQSJQr/NkKqEak+NnRaW5Ftaz+sRN6ENtQyoZ9II3BF/617nHWkJ39vGw\nNgLh3oWY4SnwhuoZiXAreRD4uqOqlrYZ/yQO2aCY2g+VUOP35ym7NsUMf2tN\nWLFt+QHSV63iOlMerN2VJkOcBVOf0qV2zThcMDlPIrMMrY4A9bdLIhX1Ltub\nJNwlZarTqdl9yPn6VMvKhJ2Kwx4g5uV6/4EzXEPP6lxQP1qPy1gWZIMlCi1K\nhsm87HjK6PmWBPCEATW1G/ee/O4keG3wEzHrX1uagcisG+KE9CQ987Uh6lRg\nND5wabRgvCrHNLL/LQDr8Bonz2GolNDDVGz9LgzkDvl5CiTDSThId9mhL5i7\njSkSawcyvfp/zjKv//uAU109EZMVOyO/nw6mcO1VPK+gYfQhxDIl8sAJHc0a\nm5fAKbmu4AjM8xr1coKcUdglIAz5p/gfR2FeCfm+ZATAg2PV4H/aQyu4jqJb\nx1Z8THi3+e4QrDwsTuTt3pLcOJZa3BABNCd7HY9VCdsSZ/cfWPRCjt87Qeri\nzvVjksYL+dLsvpz+jpLLjihwoDtQCGhDmQCOpadtquZEvr6+pEFVym3UG9EZ\nzjUG\r\n=Bppe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBmyVLPJP/iAFSEF6H9lZKJOrck/835vHyFCQqwO62mtAiEAvJe0lv4Fsz7DG0cmv0lhTr+iLq4eMystbw8voZPXJDo="}]},"maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nanodb_2018.12.30_1546158555012_0.48522986495056597"},"_hasShrinkwrap":false},"2019.8.20":{"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"bin":{"db-lite":"lib.db.js"},"description":"this zero-dependency package will provide a persistent, in-browser database, with a working web-demo","devDependencies":{"electron-lite":"github:kaizhu256/node-electron-lite#alpha","utility2":"github:kaizhu256/node-utility2#alpha"},"engines":{"node":">=10.0"},"homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["database","embedded","indexeddb","nedb"],"license":"MIT","main":"lib.db.js","name":"nanodb","nameAliasPublish":"esdb nanodb","nameLib":"db","nameOriginal":"db-lite","os":["darwin","linux"],"repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"scripts":{"build-ci":"./npm_scripts.sh","env":"env","eval":"./npm_scripts.sh","heroku-postbuild":"./npm_scripts.sh","postinstall":"./npm_scripts.sh","start":"./npm_scripts.sh","test":"./npm_scripts.sh","utility2":"./npm_scripts.sh"},"version":"2019.8.20","bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"_id":"nanodb@2019.8.20","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-NiMZGdzdiBnx8bZRrXigC6/h/kO0r5NU6J6acGQHbmrMlTSyV04K4/xJETYocQ+bFg0edcuS74SpNbyEQjf4SQ==","shasum":"157e3d471e0c44df2f05cc606f96134f118357f3","tarball":"https://registry.npmjs.org/nanodb/-/nanodb-2019.8.20.tgz","fileCount":6,"unpackedSize":166952,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdXkfTCRA9TVsSAnZWagAADkAP/00QzMnp1EzUJzD0Irii\nT5w21UvbouIai85oqcb68QI4rFyVfFyBne63MtB7nNpaSV6UB3e5tiu6toJM\nlDEZoSWzCDjkw3kA4cBHTXnHuRlbfoXLbAYJ5eT0kTh4QFF1ujccCCh3Wlkd\njBvReoExLITo+vLs1/gjXtXYA02sEuckZifyitCVkjWvQysmgMDPmIeLtMtn\n9GdrCbxXUeC4H0sNaDFig2qVhiraQOrs5iC50ANvwjtUSiz3oghob6AdfxFI\nqHW1GVNGfSC3lgWw0SpsBdb5rR0Y9kXWpv4si6ZtnagNaYDXIspPdixvjOT0\nZjamPJQG7W5aWlSSK+jmJ7ya84cnYQFB4aX2XiZY3JYvqI1QxFs4sLXIxp90\naZnvz1E2ki/9E7aw11J6BAi4qjDdsMrhXccKsnCEpzogPWf+KWW3F6wYuAEK\nVDl+JkCriWKGrwcm4/q3Pd1JPuUOAYUZEijZBMqI7TbPqPqW1+cdIWcX41CB\ng3k/h5lvejvH9Z2SfVw02cWc3gKqb6t70MHYm9doQDEjc5B4PdFip4U0XPtk\nEzHXFTvxd+GlBQitryrDkZ1BdHtjBBEl+7Q70b98qPZ9ZM9YzQbYw0IB2ce3\nadmt8DD6ZbHlbc4/cH+D+B64lGL0emjgIrLgzNXWpp8CZFv9wz2JG5rN4YJr\nu3UD\r\n=v5WU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVAMLuJ658uZGfb/o7EqUMlNZdawuu+U24naB2lpxjtwIgKrC/V2oWsLSvLLEtlJZQXpR4HCaLJoU6eOn2906AYwQ="}]},"maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"_npmUser":{"name":"kaizhu","email":"kaizhu256@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nanodb_2019.8.20_1566459858231_0.3427582347669751"},"_hasShrinkwrap":false}},"readme":"# db-lite\nthis zero-dependency package will provide a persistent, in-browser database, with a working web-demo\n\n# live web demo\n- [https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/app](https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/app)\n\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployGithub.browser.%252Fnode-db-lite%252Fbuild%252Fapp.png)](https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/app)\n\n\n\n[![travis-ci.org build-status](https://api.travis-ci.org/kaizhu256/node-db-lite.svg)](https://travis-ci.org/kaizhu256/node-db-lite) [![coverage](https://kaizhu256.github.io/node-db-lite/build/coverage.badge.svg)](https://kaizhu256.github.io/node-db-lite/build/coverage.html/index.html)\n\n[![NPM](https://nodei.co/npm/db-lite.png?downloads=true)](https://www.npmjs.com/package/db-lite)\n\n[![build commit status](https://kaizhu256.github.io/node-db-lite/build/build.badge.svg)](https://travis-ci.org/kaizhu256/node-db-lite)\n\n| git-branch : | [master](https://github.com/kaizhu256/node-db-lite/tree/master) | [beta](https://github.com/kaizhu256/node-db-lite/tree/beta) | [alpha](https://github.com/kaizhu256/node-db-lite/tree/alpha)|\n|--:|:--|:--|:--|\n| test-server-github : | [![github.com test-server](https://kaizhu256.github.io/node-db-lite/GitHub-Mark-32px.png)](https://kaizhu256.github.io/node-db-lite/build..master..travis-ci.org/app) | [![github.com test-server](https://kaizhu256.github.io/node-db-lite/GitHub-Mark-32px.png)](https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/app) | [![github.com test-server](https://kaizhu256.github.io/node-db-lite/GitHub-Mark-32px.png)](https://kaizhu256.github.io/node-db-lite/build..alpha..travis-ci.org/app)|\n| test-server-heroku : | [![heroku.com test-server](https://kaizhu256.github.io/node-db-lite/heroku-logo.75x25.png)](https://h1-db-master.herokuapp.com) | [![heroku.com test-server](https://kaizhu256.github.io/node-db-lite/heroku-logo.75x25.png)](https://h1-db-beta.herokuapp.com) | [![heroku.com test-server](https://kaizhu256.github.io/node-db-lite/heroku-logo.75x25.png)](https://h1-db-alpha.herokuapp.com)|\n| test-report : | [![test-report](https://kaizhu256.github.io/node-db-lite/build..master..travis-ci.org/test-report.badge.svg)](https://kaizhu256.github.io/node-db-lite/build..master..travis-ci.org/test-report.html) | [![test-report](https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/test-report.badge.svg)](https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/test-report.html) | [![test-report](https://kaizhu256.github.io/node-db-lite/build..alpha..travis-ci.org/test-report.badge.svg)](https://kaizhu256.github.io/node-db-lite/build..alpha..travis-ci.org/test-report.html)|\n| coverage : | [![coverage](https://kaizhu256.github.io/node-db-lite/build..master..travis-ci.org/coverage.badge.svg)](https://kaizhu256.github.io/node-db-lite/build..master..travis-ci.org/coverage.html/index.html) | [![coverage](https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/coverage.badge.svg)](https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/coverage.html/index.html) | [![coverage](https://kaizhu256.github.io/node-db-lite/build..alpha..travis-ci.org/coverage.badge.svg)](https://kaizhu256.github.io/node-db-lite/build..alpha..travis-ci.org/coverage.html/index.html)|\n| build-artifacts : | [![build-artifacts](https://kaizhu256.github.io/node-db-lite/glyphicons_144_folder_open.png)](https://github.com/kaizhu256/node-db-lite/tree/gh-pages/build..master..travis-ci.org) | [![build-artifacts](https://kaizhu256.github.io/node-db-lite/glyphicons_144_folder_open.png)](https://github.com/kaizhu256/node-db-lite/tree/gh-pages/build..beta..travis-ci.org) | [![build-artifacts](https://kaizhu256.github.io/node-db-lite/glyphicons_144_folder_open.png)](https://github.com/kaizhu256/node-db-lite/tree/gh-pages/build..alpha..travis-ci.org)|\n\n[![npmPackageListing](https://kaizhu256.github.io/node-db-lite/build/screenshot.npmPackageListing.svg)](https://github.com/kaizhu256/node-db-lite)\n\n![npmPackageDependencyTree](https://kaizhu256.github.io/node-db-lite/build/screenshot.npmPackageDependencyTree.svg)\n\n\n\n# table of contents\n1. [cdn download](#cdn-download)\n1. [documentation](#documentation)\n1. [quickstart standalone app](#quickstart-standalone-app)\n1. [quickstart example.js](#quickstart-examplejs)\n1. [extra screenshots](#extra-screenshots)\n1. [package.json](#packagejson)\n1. [changelog of last 50 commits](#changelog-of-last-50-commits)\n1. [internal build script](#internal-build-script)\n1. [misc](#misc)\n\n\n\n# cdn download\n- [https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/app/assets.db.js](https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/app/assets.db.js)\n\n\n\n# documentation\n#### cli help\n![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.npmPackageCliHelp.svg)\n\n#### api doc\n- [https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/apidoc.html](https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/apidoc.html)\n\n[![apidoc](https://kaizhu256.github.io/node-db-lite/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png)](https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/apidoc.html)\n\n#### todo\n- fix IndexedDB in edge\n- deprecate and remove unnecessary stable-sort\n- none\n\n#### changelog 2019.8.20\n- npm publish 2019.8.20\n- fix demo\n- jslint - remove allow-method-chain-newline hack\n- jslint - refactor files to 80 chr column-limit\n- rename var request to req, response to res, local.errorDefault to local.errDefault, error to err, option to opt, event to evt, nextMiddleware to next\n- revamp ui event-handling with window.domOnEventDelegateDict\n- update build\n- none\n\n#### this package requires\n- darwin or linux os\n\n\n\n# quickstart standalone app\n#### to run this example, follow instruction in script below\n- [assets.app.js](https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/app/assets.app.js)\n```shell\n# example.sh\n\n# this shell script will download and run a web-demo of db-lite as a standalone app\n\n# 1. download standalone app\ncurl -O https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/app/assets.app.js\n# 2. run standalone app\nPORT=8081 node ./assets.app.js\n# 3. open a browser to http://127.0.0.1:8081 and play with web-demo\n# 4. edit file assets.app.js to suit your needs\n```\n\n#### output from browser\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.testExampleSh.browser.%252F.png)](https://kaizhu256.github.io/node-db-lite/build/app/assets.example.html)\n\n#### output from shell\n![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.testExampleSh.svg)\n\n\n\n# quickstart example.js\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.testExampleJs.browser.%252F.png)](https://kaizhu256.github.io/node-db-lite/build/app/assets.example.html)\n\n#### to run this example, follow instruction in script below\n- [example.js](https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/example.js)\n```javascript\n/*\nexample.js\n\nthis script will run a web-demo of db-lite\n\ninstruction\n    1. save this script as example.js\n    2. run shell-command:\n        $ npm install db-lite && PORT=8081 node example.js\n    3. open a browser to http://127.0.0.1:8081 and play with web-demo\n    4. edit this script to suit your needs\n*/\n\n\n\n/* istanbul instrument in package db */\n/* istanbul ignore next */\n/* jslint utility2:true */\n(function (globalThis) {\n    \"use strict\";\n    var consoleError;\n    var local;\n    // init globalThis\n    (function () {\n        try {\n            globalThis = Function(\"return this\")(); // jslint ignore:line\n        } catch (ignore) {}\n    }());\n    globalThis.globalThis = globalThis;\n    // init debug_inline\n    if (!globalThis[\"debug\\u0049nline\"]) {\n        consoleError = console.error;\n        globalThis[\"debug\\u0049nline\"] = function () {\n        /*\n         * this function will both print <arguments> to stderr\n         * and return <arguments>[0]\n         */\n            var argList;\n            argList = Array.from(arguments); // jslint ignore:line\n            // debug arguments\n            globalThis[\"debug\\u0049nlineArguments\"] = argList;\n            consoleError(\"\\n\\ndebug\\u0049nline\");\n            consoleError.apply(console, argList);\n            consoleError(\"\\n\");\n            // return arg0 for inspection\n            return argList[0];\n        };\n    }\n    // init local\n    local = {};\n    local.local = local;\n    globalThis.globalLocal = local;\n    // init isBrowser\n    local.isBrowser = (\n        typeof window === \"object\"\n        && window === globalThis\n        && typeof window.XMLHttpRequest === \"function\"\n        && window.document\n        && typeof window.document.querySelector === \"function\"\n    );\n    // init function\n    local.assertThrow = function (passed, message) {\n    /*\n     * this function will throw err.<message> if <passed> is falsy\n     */\n        var err;\n        if (passed) {\n            return;\n        }\n        err = (\n            // ternary-operator\n            (\n                message\n                && typeof message.message === \"string\"\n                && typeof message.stack === \"string\"\n            )\n            // if message is errObj, then leave as is\n            ? message\n            : new Error(\n                typeof message === \"string\"\n                // if message is a string, then leave as is\n                ? message\n                // else JSON.stringify message\n                : JSON.stringify(message, null, 4)\n            )\n        );\n        throw err;\n    };\n    local.functionOrNop = function (fnc) {\n    /*\n     * this function will if <fnc> exists,\n     * them return <fnc>,\n     * else return <nop>\n     */\n        return fnc || local.nop;\n    };\n    local.identity = function (value) {\n    /*\n     * this function will return <value>\n     */\n        return value;\n    };\n    local.nop = function () {\n    /*\n     * this function will do nothing\n     */\n        return;\n    };\n    local.objectAssignDefault = function (target, source) {\n    /*\n     * this function will if items from <target> are\n     * null, undefined, or empty-string,\n     * then overwrite them with items from <source>\n     */\n        target = target || {};\n        Object.keys(source || {}).forEach(function (key) {\n            if (\n                target[key] === null\n                || target[key] === undefined\n                || target[key] === \"\"\n            ) {\n                target[key] = target[key] || source[key];\n            }\n        });\n        return target;\n    };\n    // require builtin\n    if (!local.isBrowser) {\n        local.assert = require(\"assert\");\n        local.buffer = require(\"buffer\");\n        local.child_process = require(\"child_process\");\n        local.cluster = require(\"cluster\");\n        local.crypto = require(\"crypto\");\n        local.dgram = require(\"dgram\");\n        local.dns = require(\"dns\");\n        local.domain = require(\"domain\");\n        local.events = require(\"events\");\n        local.fs = require(\"fs\");\n        local.http = require(\"http\");\n        local.https = require(\"https\");\n        local.net = require(\"net\");\n        local.os = require(\"os\");\n        local.path = require(\"path\");\n        local.querystring = require(\"querystring\");\n        local.readline = require(\"readline\");\n        local.repl = require(\"repl\");\n        local.stream = require(\"stream\");\n        local.string_decoder = require(\"string_decoder\");\n        local.timers = require(\"timers\");\n        local.tls = require(\"tls\");\n        local.tty = require(\"tty\");\n        local.url = require(\"url\");\n        local.util = require(\"util\");\n        local.vm = require(\"vm\");\n        local.zlib = require(\"zlib\");\n    }\n}(this));\n\n\n\n(function (local) {\n\"use strict\";\n\n\n\n// run shared js-env code - init-before\n(function () {\n// init local\nlocal = (\n    globalThis.utility2_rollup\n    || globalThis.utility2_db\n    || require(\"db-lite\")\n);\n// init exports\nglobalThis.local = local;\n}());\n\n\n\n/* istanbul ignore next */\n// run browser js-env code - init-test\n(function () {\nif (!local.isBrowser) {\n    return;\n}\n// log stderr and stdout to #outputStdout1\n[\"error\", \"log\"].forEach(function (key) {\n    var argList;\n    var elem;\n    var fnc;\n    elem = document.querySelector(\n        \"#outputStdout1\"\n    );\n    if (!elem) {\n        return;\n    }\n    fnc = console[key];\n    console[key] = function () {\n        argList = Array.from(arguments); // jslint ignore:line\n        fnc.apply(console, argList);\n        // append text to #outputStdout1\n        elem.textContent += argList.map(function (arg) {\n            return (\n                typeof arg === \"string\"\n                ? arg\n                : JSON.stringify(arg, null, 4)\n            );\n        }).join(\" \").replace((\n            /\\u001b\\[\\d*m/g\n        ), \"\") + \"\\n\";\n        // scroll textarea to bottom\n        elem.scrollTop = elem.scrollHeight;\n    };\n});\nlocal.objectAssignDefault(local, globalThis.domOnEventDelegateDict);\nglobalThis.domOnEventDelegateDict = local;\nlocal.onEventDomDb = local.db && local.db.onEventDomDb;\nlocal.testRunBrowser = function (evt) {\n/*\n * this function will run browser-tests\n */\n    switch (\n        !evt.ctrlKey\n        && !evt.metaKey\n        && (\n            evt.modeInit\n            || (evt.type + \".\" + (evt.target && evt.target.id))\n        )\n    ) {\n    // custom-case\n    case \"dbExportButton1\":\n    case \"dbImportButton1\":\n    case \"dbImportInput1\":\n    case \"dbResetButton1\":\n        local.db.onEventDomDb(event);\n        break;\n    case \"click.buttonEval1\":\n    case true:\n        // try to eval input-code\n        globalThis.domOnEventDelegateDict.domOnEventResetOutput();\n        try {\n            eval( // jslint ignore:line\n                document.querySelector(\"#inputTextarea1\").value\n            );\n        } catch (errCaught) {\n            console.error(errCaught);\n        }\n        break;\n    // run browser-tests\n    default:\n        if (\n            (evt.target && evt.target.id) !== \"testRunButton1\"\n            && !(evt.modeInit && (\n                /\\bmodeTest=1\\b/\n            ).test(location.search))\n        ) {\n            return;\n        }\n        // show browser-tests\n        if (document.querySelector(\n            \"#testReportDiv1\"\n        ).style.maxHeight === \"0px\") {\n            globalThis.domOnEventDelegateDict.domOnEventResetOutput();\n            local.uiAnimateSlideDown(document.querySelector(\n                \"#testReportDiv1\"\n            ));\n            document.querySelector(\n                \"#testRunButton1\"\n            ).textContent = \"hide internal test\";\n            local.modeTest = 1;\n            local.testRunDefault(local);\n            return;\n        }\n        // hide browser-tests\n        local.uiAnimateSlideUp(document.querySelector(\n            \"#testReportDiv1\"\n        ));\n        document.querySelector(\n            \"#testRunButton1\"\n        ).textContent = \"run internal test\";\n    }\n};\n\nlocal.testRunBrowser({\n    modeInit: true\n});\n}());\n\n\n\n/* istanbul ignore next */\n// run node js-env code - init-test\n(function () {\nif (local.isBrowser) {\n    return;\n}\n// init exports\nmodule.exports = local;\n/* validateLineSortedReset */\n// init assets\nlocal.assetsDict = local.assetsDict || {};\n[\n    \"assets.index.template.html\",\n    \"assets.swgg.swagger.json\",\n    \"assets.swgg.swagger.server.json\"\n].forEach(function (file) {\n    file = \"/\" + file;\n    local.assetsDict[file] = local.assetsDict[file] || \"\";\n    if (local.fs.existsSync(local.__dirname + file)) {\n        local.assetsDict[file] = local.fs.readFileSync(\n            local.__dirname + file,\n            \"utf8\"\n        );\n    }\n});\n/* jslint ignore:start */\nlocal.assetsDict[\"/assets.index.template.html\"] = '\\\n<!doctype html>\\n\\\n<html lang=\"en\">\\n\\\n<head>\\n\\\n<meta charset=\"utf-8\">\\n\\\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\\n\\\n<!-- \"assets.utility2.template.html\" -->\\n\\\n<title>{{env.npm_package_name}} ({{env.npm_package_version}})</title>\\n\\\n<style>\\n\\\n/* jslint utility2:true */\\n\\\n/*csslint\\n\\\n*/\\n\\\n/* csslint ignore:start */\\n\\\n*,\\n\\\n*:after,\\n\\\n*:before {\\n\\\n    box-sizing: border-box;\\n\\\n}\\n\\\n/* csslint ignore:end */\\n\\\n@keyframes uiAnimateShake {\\n\\\n0%,\\n\\\n50% {\\n\\\n    transform: translateX(10px);\\n\\\n}\\n\\\n100% {\\n\\\n    transform: translateX(0);\\n\\\n}\\n\\\n25%,\\n\\\n75% {\\n\\\n    transform: translateX(-10px);\\n\\\n}\\n\\\n}\\n\\\n@keyframes uiAnimateSpin {\\n\\\n0% {\\n\\\n    transform: rotate(0deg);\\n\\\n}\\n\\\n100% {\\n\\\n    transform: rotate(360deg);\\n\\\n}\\n\\\n}\\n\\\na {\\n\\\n    overflow-wrap: break-word;\\n\\\n}\\n\\\nbody {\\n\\\n    background: #eef;\\n\\\n    font-family: Arial, Helvetica, sans-serif;\\n\\\n    font-size: small;\\n\\\n    margin: 0 40px;\\n\\\n}\\n\\\nbody > div,\\n\\\nbody > form > div,\\n\\\nbody > form > input,\\n\\\nbody > form > pre,\\n\\\nbody > form > .button,\\n\\\nbody > form > .textarea,\\n\\\nbody > input,\\n\\\nbody > pre,\\n\\\nbody > .button,\\n\\\nbody > .textarea {\\n\\\n    margin-bottom: 20px;\\n\\\n    margin-top: 0;\\n\\\n}\\n\\\nbody > form > input,\\n\\\nbody > form > .button,\\n\\\nbody > input,\\n\\\nbody > .button {\\n\\\n    width: 20rem;\\n\\\n}\\n\\\nbody > form > .textarea,\\n\\\nbody > .textarea {\\n\\\n    height: 10rem;\\n\\\n    width: 100%;\\n\\\n}\\n\\\nbody > .readonly {\\n\\\n    background: #ddd;\\n\\\n}\\n\\\ncode,\\n\\\npre,\\n\\\n.textarea {\\n\\\n    font-family: Consolas, Menlo, monospace;\\n\\\n    font-size: smaller;\\n\\\n}\\n\\\npre {\\n\\\n    overflow-wrap: break-word;\\n\\\n    white-space: pre-wrap;\\n\\\n}\\n\\\n.button {\\n\\\n    background: #ddd;\\n\\\n    border: 1px solid #999;\\n\\\n    color: #000;\\n\\\n    cursor: pointer;\\n\\\n    display: inline-block;\\n\\\n    padding: 2px 5px;\\n\\\n    text-align: center;\\n\\\n    text-decoration: none;\\n\\\n}\\n\\\n.button:hover {\\n\\\n    background: #bbb;\\n\\\n}\\n\\\n.colorError {\\n\\\n    color: #d00;\\n\\\n}\\n\\\n.textarea {\\n\\\n    background: #fff;\\n\\\n    border: 1px solid #999;\\n\\\n    border-radius: 0;\\n\\\n    cursor: auto;\\n\\\n    overflow: auto;\\n\\\n    padding: 2px;\\n\\\n}\\n\\\n.uiAnimateShake {\\n\\\n    animation-duration: 500ms;\\n\\\n    animation-name: uiAnimateShake;\\n\\\n}\\n\\\n.uiAnimateSlide {\\n\\\n    overflow-y: hidden;\\n\\\n    transition: max-height ease-in 250ms, min-height ease-in 250ms, padding-bottom ease-in 250ms, padding-top ease-in 250ms;\\n\\\n}\\n\\\n.utility2FooterDiv {\\n\\\n    text-align: center;\\n\\\n}\\n\\\n.zeroPixel {\\n\\\n    border: 0;\\n\\\n    height: 0;\\n\\\n    margin: 0;\\n\\\n    padding: 0;\\n\\\n    width: 0;\\n\\\n}\\n\\\n</style>\\n\\\n</head>\\n\\\n<body>\\n\\\n<div id=\"ajaxProgressDiv1\" style=\"background: #d00; height: 2px; left: 0; margin: 0; padding: 0; position: fixed; top: 0; transition: background 500ms, width 1500ms; width: 0%; z-index: 1;\"></div>\\n\\\n<div class=\"uiAnimateSpin\" style=\"animation: uiAnimateSpin 2s linear infinite; border: 5px solid #999; border-radius: 50%; border-top: 5px solid #7d7; display: none; height: 25px; vertical-align: middle; width: 25px;\"></div>\\n\\\n<a class=\"zeroPixel\" download=\"db.persistence.json\" href=\"\" id=\"dbExportA1\"></a>\\n\\\n<input class=\"zeroPixel\" data-onevent=\"onEventDomDb\" data-onevent-db=\"dbImportInput\" type=\"file\">\\n\\\n<script>\\n\\\n/* jslint utility2:true */\\n\\\n// init domOnEventWindowOnloadTimeElapsed\\n\\\n(function () {\\n\\\n/*\\n\\\n * this function will measure and print time-elapsed for window.onload\\n\\\n */\\n\\\n    \"use strict\";\\n\\\n    if (window.domOnEventWindowOnloadTimeElapsed) {\\n\\\n        return;\\n\\\n    }\\n\\\n    window.domOnEventWindowOnloadTimeElapsed = Date.now() + 100;\\n\\\n    window.addEventListener(\"load\", function () {\\n\\\n        setTimeout(function () {\\n\\\n            window.domOnEventWindowOnloadTimeElapsed = (\\n\\\n                Date.now()\\n\\\n                - window.domOnEventWindowOnloadTimeElapsed\\n\\\n            );\\n\\\n            console.error(\\n\\\n                \"domOnEventWindowOnloadTimeElapsed = \"\\n\\\n                + window.domOnEventWindowOnloadTimeElapsed\\n\\\n            );\\n\\\n        }, 100);\\n\\\n    });\\n\\\n}());\\n\\\n\\n\\\n\\n\\\n\\n\\\n// init domOnEventDelegateDict\\n\\\n(function () {\\n\\\n/*\\n\\\n * this function will handle delegated dom-event\\n\\\n */\\n\\\n    \"use strict\";\\n\\\n    var timerTimeoutDict;\\n\\\n    if (window.domOnEventDelegateDict) {\\n\\\n        return;\\n\\\n    }\\n\\\n    window.domOnEventDelegateDict = {};\\n\\\n    timerTimeoutDict = {};\\n\\\n    window.domOnEventDelegateDict.domOnEventDelegate = function (evt) {\\n\\\n        evt.targetOnEvent = evt.target.closest(\\n\\\n            \"[data-onevent]\"\\n\\\n        );\\n\\\n        if (\\n\\\n            !evt.targetOnEvent\\n\\\n            || evt.targetOnEvent.dataset.onevent === \"domOnEventNop\"\\n\\\n            || evt.target.closest(\\n\\\n                \".disabled, .readonly\"\\n\\\n            )\\n\\\n        ) {\\n\\\n            return;\\n\\\n        }\\n\\\n        // rate-limit high-frequency-event\\n\\\n        switch (evt.type) {\\n\\\n        case \"keydown\":\\n\\\n        case \"keyup\":\\n\\\n            // filter non-input keyboard-event\\n\\\n            if (!evt.target.closest(\\n\\\n                \"input, option, select, textarea\"\\n\\\n            )) {\\n\\\n                return;\\n\\\n            }\\n\\\n            if (timerTimeoutDict[evt.type] !== true) {\\n\\\n                timerTimeoutDict[evt.type] = timerTimeoutDict[\\n\\\n                    evt.type\\n\\\n                ] || setTimeout(function () {\\n\\\n                    timerTimeoutDict[evt.type] = true;\\n\\\n                    window.domOnEventDelegateDict.domOnEventDelegate(evt);\\n\\\n                }, 50);\\n\\\n                return;\\n\\\n            }\\n\\\n            timerTimeoutDict[evt.type] = null;\\n\\\n            break;\\n\\\n        }\\n\\\n        switch (evt.targetOnEvent.tagName) {\\n\\\n        case \"BUTTON\":\\n\\\n        case \"FORM\":\\n\\\n            evt.preventDefault();\\n\\\n            break;\\n\\\n        }\\n\\\n        evt.stopPropagation();\\n\\\n        window.domOnEventDelegateDict[evt.targetOnEvent.dataset.onevent](\\n\\\n            evt\\n\\\n        );\\n\\\n    };\\n\\\n    window.domOnEventDelegateDict.domOnEventResetOutput = function () {\\n\\\n        document.querySelectorAll(\\n\\\n            \".onevent-reset-output\"\\n\\\n        ).forEach(function (elem) {\\n\\\n            switch (elem.tagName) {\\n\\\n            case \"INPUT\":\\n\\\n            case \"TEXTAREA\":\\n\\\n                elem.value = \"\";\\n\\\n                break;\\n\\\n            case \"PRE\":\\n\\\n                elem.textContent = \"\";\\n\\\n                break;\\n\\\n            default:\\n\\\n                elem.innerHTML = \"\";\\n\\\n            }\\n\\\n        });\\n\\\n    };\\n\\\n    // init event-handling\\n\\\n    [\\n\\\n        \"change\",\\n\\\n        \"click\",\\n\\\n        \"keydown\",\\n\\\n        \"submit\"\\n\\\n    ].forEach(function (eventType) {\\n\\\n        document.addEventListener(\\n\\\n            eventType,\\n\\\n            window.domOnEventDelegateDict.domOnEventDelegate\\n\\\n        );\\n\\\n    });\\n\\\n}());\\n\\\n\\n\\\n\\n\\\n\\n\\\n// init timerIntervalAjaxProgressUpdate\\n\\\n(function () {\\n\\\n/*\\n\\\n * this function will increment ajax-progress-bar\\n\\\n * until webpage has loaded\\n\\\n */\\n\\\n    \"use strict\";\\n\\\n    var ajaxProgressDiv1;\\n\\\n    var ajaxProgressState;\\n\\\n    var ajaxProgressUpdate;\\n\\\n    if (\\n\\\n        window.timerIntervalAjaxProgressUpdate\\n\\\n        || !document.querySelector(\\n\\\n            \"#ajaxProgressDiv1\"\\n\\\n        )\\n\\\n    ) {\\n\\\n        return;\\n\\\n    }\\n\\\n    ajaxProgressDiv1 = document.querySelector(\\n\\\n        \"#ajaxProgressDiv1\"\\n\\\n    );\\n\\\n    setTimeout(function () {\\n\\\n        ajaxProgressDiv1.style.width = \"25%\";\\n\\\n    });\\n\\\n    ajaxProgressState = 0;\\n\\\n    ajaxProgressUpdate = (\\n\\\n        window.local\\n\\\n        && window.local.ajaxProgressUpdate\\n\\\n    ) || function () {\\n\\\n        ajaxProgressDiv1.style.width = \"100%\";\\n\\\n        setTimeout(function () {\\n\\\n            ajaxProgressDiv1.style.background = \"transparent\";\\n\\\n            setTimeout(function () {\\n\\\n                ajaxProgressDiv1.style.width = \"0%\";\\n\\\n            }, 500);\\n\\\n        }, 1000);\\n\\\n    };\\n\\\n    window.timerIntervalAjaxProgressUpdate = setInterval(function () {\\n\\\n        ajaxProgressState += 1;\\n\\\n        ajaxProgressDiv1.style.width = Math.max(\\n\\\n            100 - 75 * Math.exp(-0.125 * ajaxProgressState),\\n\\\n            ajaxProgressDiv1.style.width.slice(0, -1) | 0\\n\\\n        ) + \"%\";\\n\\\n    }, 1000);\\n\\\n    window.addEventListener(\"load\", function () {\\n\\\n        clearInterval(window.timerIntervalAjaxProgressUpdate);\\n\\\n        ajaxProgressUpdate();\\n\\\n    });\\n\\\n}());\\n\\\n\\n\\\n\\n\\\n\\n\\\n// init domOnEventSelectAllWithinPre\\n\\\n(function () {\\n\\\n/*\\n\\\n * this function will limit select-all within <pre tabIndex=\"0\"> elements\\n\\\n * https://stackoverflow.com/questions/985272/selecting-text-in-an-element-akin-to-highlighting-with-your-mouse\\n\\\n */\\n\\\n    \"use strict\";\\n\\\n    if (window.domOnEventSelectAllWithinPre) {\\n\\\n        return;\\n\\\n    }\\n\\\n    window.domOnEventSelectAllWithinPre = function (evt) {\\n\\\n        var range;\\n\\\n        var selection;\\n\\\n        if (\\n\\\n            evt\\n\\\n            && evt.key === \"a\"\\n\\\n            && (evt.ctrlKey || evt.metaKey)\\n\\\n            && evt.target.closest(\\n\\\n                \"pre\"\\n\\\n            )\\n\\\n        ) {\\n\\\n            range = document.createRange();\\n\\\n            range.selectNodeContents(evt.target.closest(\\n\\\n                \"pre\"\\n\\\n            ));\\n\\\n            selection = window.getSelection();\\n\\\n            selection.removeAllRanges();\\n\\\n            selection.addRange(range);\\n\\\n            evt.preventDefault();\\n\\\n        }\\n\\\n    };\\n\\\n    // init event-handling\\n\\\n    document.addEventListener(\\n\\\n        \"keydown\",\\n\\\n        window.domOnEventSelectAllWithinPre\\n\\\n    );\\n\\\n}());\\n\\\n</script>\\n\\\n<h1>\\n\\\n<!-- utility2-comment\\n\\\n    <a\\n\\\n        {{#if env.npm_package_homepage}}\\n\\\n        href=\"{{env.npm_package_homepage}}\"\\n\\\n        {{/if env.npm_package_homepage}}\\n\\\n        target=\"_blank\"\\n\\\n    >\\n\\\nutility2-comment -->\\n\\\n        {{env.npm_package_name}} ({{env.npm_package_version}})\\n\\\n<!-- utility2-comment\\n\\\n    </a>\\n\\\nutility2-comment -->\\n\\\n</h1>\\n\\\n<h3>{{env.npm_package_description}}</h3>\\n\\\n<!-- utility2-comment\\n\\\n<a class=\"button\" download href=\"assets.app.js\">download standalone app</a><br>\\n\\\n<button class=\"button\" data-onevent=\"testRunBrowser\" id=\"testRunButton1\">run internal test</button><br>\\n\\\n<div class=\"uiAnimateSlide\" id=\"testReportDiv1\" style=\"border-bottom: 0; border-top: 0; margin-bottom: 0; margin-top: 0; max-height: 0; padding-bottom: 0; padding-top: 0;\"></div>\\n\\\nutility2-comment -->\\n\\\n\\n\\\n\\n\\\n\\n\\\n<button class=\"button\" data-onevent=\"onEventDomDb\" data-onevent-db=\"dbReset\">reset database</button><br>\\n\\\n<button class=\"button\" data-onevent=\"onEventDomDb\" data-onevent-db=\"dbExport\">export database -&gt; file</button><br>\\n\\\n<button class=\"button\" data-onevent=\"onEventDomDb\" data-onevent-db=\"dbImport\">import database &lt;- file</button><br>\\n\\\n<label>edit or paste script below to\\n\\\n    <a\\n\\\n        href=\"https://kaizhu256.github.io/node-db-lite/build..beta..travis-ci.org/apidoc.html\"\\n\\\n        target=\"_blank\"\\n\\\n    >eval</a>\\n\\\n</label>\\n\\\n<textarea class=\"textarea\" data-onevent=\"testRunBrowser\" id=\"inputTextarea1\">\\n\\\n/*jslint browser: true, node: true*/\\n\\\n\"use strict\";\\n\\\nvar dbTable1, gotoState, gotoNext;\\n\\\ngotoState = 0;\\n\\\ngotoNext = function (err, data) {\\n\\\n    gotoState = err\\n\\\n        ? Infinity\\n\\\n        : gotoState + 1;\\n\\\n    switch (gotoState) {\\n\\\n    case 1:\\n\\\n        dbTable1 = window.dbTable1 = window.utility2_db.dbTableCreateOne({\\n\\\n            name: \"dbTable1\"\\n\\\n        }, gotoNext);\\n\\\n        break;\\n\\\n    case 2:\\n\\\n        dbTable1.idIndexCreate({ name: \"field1\" }, gotoNext);\\n\\\n        break;\\n\\\n    case 3:\\n\\\n        dbTable1.crudSetOneById({ field1: \"aa\", field2: 1, field3: \"foo\" }, gotoNext);\\n\\\n        break;\\n\\\n    case 4:\\n\\\n        dbTable1.crudSetOneById({ field1: \"bb\", field2: 2, field3: \"bar\" }, gotoNext);\\n\\\n        break;\\n\\\n    case 5:\\n\\\n        dbTable1.crudSetOneById({ field1: \"cc\", field2: 3, field3: \"baz\" }, gotoNext);\\n\\\n        break;\\n\\\n    case 6:\\n\\\n        dbTable1.crudRemoveOneById({ field1: \"aa\" }, gotoNext);\\n\\\n        break;\\n\\\n    case 7:\\n\\\n        dbTable1.crudUpdateOneById({ field1: \"bb\", field2: -1 }, gotoNext);\\n\\\n        break;\\n\\\n    case 8:\\n\\\n        dbTable1.crudSetOneById({ field2: Math.random() }, gotoNext);\\n\\\n        break;\\n\\\n    case 9:\\n\\\n        dbTable1.crudGetManyByQuery({\\n\\\n            limit: Infinity,\\n\\\n            query: { field2: { $gte: -Infinity, $lte: Infinity } },\\n\\\n            skip: 0,\\n\\\n            sort: [{ fieldName: \"_timeUpdated\", idDescending: true }]\\n\\\n        }, gotoNext);\\n\\\n        break;\\n\\\n    case 10:\\n\\\n        console.error(data);\\n\\\n        dbTable1.crudCountAll(gotoNext);\\n\\\n        break;\\n\\\n    case 11:\\n\\\n        console.error(\"number of rows: \" + data);\\n\\\n        break;\\n\\\n    default:\\n\\\n        console.error(err.stack);\\n\\\n    }\\n\\\n};\\n\\\ngotoNext();\\n\\\n</textarea>\\n\\\n<button class=\"button\" data-onevent=\"testRunBrowser\" id=\"buttonEval1\">eval script</button><br>\\n\\\n<label>stderr and stdout</label>\\n\\\n<pre class=\"onevent-reset-output readonly textarea\" id=\"outputStdout1\" tabindex=\"0\"></pre>\\n\\\n<!-- utility2-comment\\n\\\n{{#if isRollup}}\\n\\\n<script src=\"assets.app.js\"></script>\\n\\\n{{#unless isRollup}}\\n\\\nutility2-comment -->\\n\\\n<script src=\"assets.utility2.rollup.js\"></script>\\n\\\n<script>window.utility2_onReadyBefore.counter += 1;</script>\\n\\\n<script src=\"jsonp.utility2.stateInit?callback=window.utility2.stateInit\"></script>\\n\\\n<script src=\"assets.db.js\"></script>\\n\\\n<script src=\"assets.example.js\"></script>\\n\\\n<script src=\"assets.test.js\"></script>\\n\\\n<script>window.utility2_onReadyBefore();</script>\\n\\\n<!-- utility2-comment\\n\\\n{{/if isRollup}}\\n\\\nutility2-comment -->\\n\\\n<div class=\"utility2FooterDiv\">\\n\\\n    [ this app was created with\\n\\\n    <a href=\"https://github.com/kaizhu256/node-utility2\" target=\"_blank\">utility2</a>\\n\\\n    ]\\n\\\n</div>\\n\\\n</body>\\n\\\n</html>\\n\\\n';\n/* jslint ignore:end */\n/* validateLineSortedReset */\n/* jslint ignore:start */\nlocal.assetsDict[\"/assets.db.js\"] =\n    local.assetsDict[\"/assets.db.js\"] ||\n    local.fs.readFileSync(local.__dirname + \"/lib.db.js\", \"utf8\"\n).replace((/^#!\\//), \"// \");\n/* jslint ignore:end */\n/* validateLineSortedReset */\nlocal.assetsDict[\"/\"] = local.assetsDict[\n    \"/assets.index.template.html\"\n].replace((\n    /\\{\\{env\\.(\\w+?)\\}\\}/g\n), function (match0, match1) {\n    switch (match1) {\n    case \"npm_package_description\":\n        return \"the greatest app in the world!\";\n    case \"npm_package_name\":\n        return \"db-lite\";\n    case \"npm_package_nameLib\":\n        return \"db\";\n    case \"npm_package_version\":\n        return \"0.0.1\";\n    default:\n        return match0;\n    }\n});\nlocal.assetsDict[\"/assets.example.html\"] = local.assetsDict[\"/\"];\nlocal.assetsDict[\"/index.html\"] = local.assetsDict[\"/\"];\n// init cli\nif (module !== require.main || globalThis.utility2_rollup) {\n    return;\n}\n/* validateLineSortedReset */\nlocal.assetsDict[\"/assets.example.js\"] = (\n    local.assetsDict[\"/assets.example.js\"]\n    || local.fs.readFileSync(__filename, \"utf8\")\n);\nlocal.assetsDict[\"/favicon.ico\"] = local.assetsDict[\"/favicon.ico\"] || \"\";\n// if $npm_config_timeout_exit exists,\n// then exit this process after $npm_config_timeout_exit ms\nif (Number(process.env.npm_config_timeout_exit)) {\n    setTimeout(process.exit, Number(process.env.npm_config_timeout_exit));\n}\n// start server\nif (globalThis.utility2_serverHttp1) {\n    return;\n}\nprocess.env.PORT = process.env.PORT || \"8081\";\nconsole.error(\"http-server listening on port \" + process.env.PORT);\nlocal.http.createServer(function (req, res) {\n    req.urlParsed = local.url.parse(req.url);\n    if (local.assetsDict[req.urlParsed.pathname] !== undefined) {\n        res.end(local.assetsDict[req.urlParsed.pathname]);\n        return;\n    }\n    res.statusCode = 404;\n    res.end();\n}).listen(process.env.PORT);\n}());\n}());\n```\n\n#### output from browser\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.testExampleJs.browser.%252F.png)](https://kaizhu256.github.io/node-db-lite/build/app/assets.example.html)\n\n#### output from shell\n![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.testExampleJs.svg)\n\n\n\n# extra screenshots\n1. [https://kaizhu256.github.io/node-db-lite/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png](https://kaizhu256.github.io/node-db-lite/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png)\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png)](https://kaizhu256.github.io/node-db-lite/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fapidoc.html.png)\n\n1. [https://kaizhu256.github.io/node-db-lite/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fcoverage.lib.html.png](https://kaizhu256.github.io/node-db-lite/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fcoverage.lib.html.png)\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fcoverage.lib.html.png)](https://kaizhu256.github.io/node-db-lite/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Fcoverage.lib.html.png)\n\n1. [https://kaizhu256.github.io/node-db-lite/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Ftest-report.html.png](https://kaizhu256.github.io/node-db-lite/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Ftest-report.html.png)\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Ftest-report.html.png)](https://kaizhu256.github.io/node-db-lite/build/screenshot.buildCi.browser.%252Ftmp%252Fbuild%252Ftest-report.html.png)\n\n1. [https://kaizhu256.github.io/node-db-lite/build/screenshot.deployGithub.browser.%252Fnode-db-lite%252Fbuild%252Fapp%252Fassets.swgg.html.png](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployGithub.browser.%252Fnode-db-lite%252Fbuild%252Fapp%252Fassets.swgg.html.png)\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployGithub.browser.%252Fnode-db-lite%252Fbuild%252Fapp%252Fassets.swgg.html.png)](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployGithub.browser.%252Fnode-db-lite%252Fbuild%252Fapp%252Fassets.swgg.html.png)\n\n1. [https://kaizhu256.github.io/node-db-lite/build/screenshot.deployGithub.browser.%252Fnode-db-lite%252Fbuild%252Fapp.png](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployGithub.browser.%252Fnode-db-lite%252Fbuild%252Fapp.png)\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployGithub.browser.%252Fnode-db-lite%252Fbuild%252Fapp.png)](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployGithub.browser.%252Fnode-db-lite%252Fbuild%252Fapp.png)\n\n1. [https://kaizhu256.github.io/node-db-lite/build/screenshot.deployGithubTest.browser.%252Fnode-db-lite%252Fbuild%252Fapp.png](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployGithubTest.browser.%252Fnode-db-lite%252Fbuild%252Fapp.png)\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployGithubTest.browser.%252Fnode-db-lite%252Fbuild%252Fapp.png)](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployGithubTest.browser.%252Fnode-db-lite%252Fbuild%252Fapp.png)\n\n1. [https://kaizhu256.github.io/node-db-lite/build/screenshot.deployHeroku.browser.%252Fassets.swgg.html.png](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployHeroku.browser.%252Fassets.swgg.html.png)\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployHeroku.browser.%252Fassets.swgg.html.png)](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployHeroku.browser.%252Fassets.swgg.html.png)\n\n1. [https://kaizhu256.github.io/node-db-lite/build/screenshot.deployHeroku.browser.%252F.png](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployHeroku.browser.%252F.png)\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployHeroku.browser.%252F.png)](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployHeroku.browser.%252F.png)\n\n1. [https://kaizhu256.github.io/node-db-lite/build/screenshot.deployHerokuTest.browser.%252F.png](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployHerokuTest.browser.%252F.png)\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployHerokuTest.browser.%252F.png)](https://kaizhu256.github.io/node-db-lite/build/screenshot.deployHerokuTest.browser.%252F.png)\n\n1. [https://kaizhu256.github.io/node-db-lite/build/screenshot.npmTest.browser.%252F.png](https://kaizhu256.github.io/node-db-lite/build/screenshot.npmTest.browser.%252F.png)\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.npmTest.browser.%252F.png)](https://kaizhu256.github.io/node-db-lite/build/screenshot.npmTest.browser.%252F.png)\n\n1. [https://kaizhu256.github.io/node-db-lite/build/screenshot.testExampleJs.browser.%252F.png](https://kaizhu256.github.io/node-db-lite/build/screenshot.testExampleJs.browser.%252F.png)\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.testExampleJs.browser.%252F.png)](https://kaizhu256.github.io/node-db-lite/build/screenshot.testExampleJs.browser.%252F.png)\n\n1. [https://kaizhu256.github.io/node-db-lite/build/screenshot.testExampleSh.browser.%252F.png](https://kaizhu256.github.io/node-db-lite/build/screenshot.testExampleSh.browser.%252F.png)\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.testExampleSh.browser.%252F.png)](https://kaizhu256.github.io/node-db-lite/build/screenshot.testExampleSh.browser.%252F.png)\n\n\n\n# package.json\n```json\n{\n    \"author\": \"kai zhu <kaizhu256@gmail.com>\",\n    \"bin\": {\n        \"db-lite\": \"lib.db.js\"\n    },\n    \"description\": \"this zero-dependency package will provide a persistent, in-browser database, with a working web-demo\",\n    \"devDependencies\": {\n        \"electron-lite\": \"kaizhu256/node-electron-lite#alpha\",\n        \"utility2\": \"kaizhu256/node-utility2#alpha\"\n    },\n    \"engines\": {\n        \"node\": \">=10.0\"\n    },\n    \"homepage\": \"https://github.com/kaizhu256/node-db-lite\",\n    \"keywords\": [\n        \"database\",\n        \"embedded\",\n        \"indexeddb\",\n        \"nedb\"\n    ],\n    \"license\": \"MIT\",\n    \"main\": \"lib.db.js\",\n    \"name\": \"db-lite\",\n    \"nameAliasPublish\": \"esdb nanodb\",\n    \"nameLib\": \"db\",\n    \"nameOriginal\": \"db-lite\",\n    \"os\": [\n        \"darwin\",\n        \"linux\"\n    ],\n    \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/kaizhu256/node-db-lite.git\"\n    },\n    \"scripts\": {\n        \"build-ci\": \"./npm_scripts.sh\",\n        \"env\": \"env\",\n        \"eval\": \"./npm_scripts.sh\",\n        \"heroku-postbuild\": \"./npm_scripts.sh\",\n        \"postinstall\": \"./npm_scripts.sh\",\n        \"start\": \"./npm_scripts.sh\",\n        \"test\": \"./npm_scripts.sh\",\n        \"utility2\": \"./npm_scripts.sh\"\n    },\n    \"version\": \"2019.8.20\"\n}\n```\n\n\n\n# changelog of last 50 commits\n[![screenshot](https://kaizhu256.github.io/node-db-lite/build/screenshot.gitLog.svg)](https://github.com/kaizhu256/node-db-lite/commits)\n\n\n\n# internal build script\n- build_ci.sh\n```shell\n# build_ci.sh\n\n# this shell script will run the build for this package\n\nshBuildCiAfter () {(set -e\n    # shDeployCustom\n    shDeployGithub\n    shDeployHeroku\n    shReadmeTest example.sh\n)}\n\nshBuildCiBefore () {(set -e\n    shNpmTestPublished\n    shReadmeTest example.js\n)}\n\n# run shBuildCi\neval \"$(utility2 source)\"\nshBuildCi\n```\n\n\n\n# misc\n- this package was created with [utility2](https://github.com/kaizhu256/node-utility2)\n","maintainers":[{"name":"kaizhu","email":"kaizhu256@gmail.com"}],"time":{"modified":"2022-06-20T20:10:46.539Z","created":"2016-11-27T12:36:08.503Z","0.0.1":"2016-11-27T12:36:08.503Z","2017.2.2":"2017-02-24T04:21:40.562Z","2017.3.16":"2017-03-16T21:10:10.066Z","2017.3.17":"2017-03-30T14:16:35.421Z","2017.5.25":"2017-05-26T04:32:30.053Z","2017.7.24":"2017-07-25T07:01:58.628Z","2017.9.16":"2017-09-17T16:16:40.982Z","2017.11.7":"2017-11-07T17:00:39.513Z","2017.12.4":"2017-12-04T17:57:46.476Z","2018.2.16":"2018-02-17T00:44:10.148Z","2018.4.23":"2018-04-22T09:09:47.759Z","2018.8.5":"2018-08-05T19:38:39.812Z","2018.9.1":"2018-09-01T01:41:10.465Z","2018.12.29":"2018-12-30T00:20:47.701Z","2018.12.30":"2018-12-30T08:29:15.191Z","2019.8.20":"2019-08-22T07:44:18.494Z"},"readmeFilename":"README.md","description":"this zero-dependency package will provide a persistent, in-browser database, with a working web-demo","homepage":"https://github.com/kaizhu256/node-db-lite","keywords":["database","embedded","indexeddb","nedb"],"repository":{"type":"git","url":"git+https://github.com/kaizhu256/node-db-lite.git"},"author":{"name":"kai zhu","email":"kaizhu256@gmail.com"},"bugs":{"url":"https://github.com/kaizhu256/node-db-lite/issues"},"license":"MIT"}