{"_id":"tuple-database","_rev":"69-753f56df6b6481dd4e05fe8f5204d35d","name":"tuple-database","dist-tags":{"latest":"2.2.4"},"versions":{"1.0.0":{"name":"tuple-database","version":"1.0.0","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","publish":"sh build-for-publish.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","mocha":"^8.2.1","prettier":"^2.2.1","typescript":"^4.1.3"},"dependencies":{"better-sqlite3":"^7.1.2","elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.0.0","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-OwtpQbtuQoNeT7FiqT2VFisVwLt4IGXhxhNH/ogqJbQbeu4c/UqS4zDFyjZdEl1LS3wybqP9EAN95CmE9MYKgg==","shasum":"8bc65accd3e590256812bd3303ccdaee2378ea9b","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.0.0.tgz","fileCount":30,"unpackedSize":61835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6UxXCRA9TVsSAnZWagAAh2IP/ir9DtRHD/5rD+SjSRKc\nDukrizqxi/hQvyMJmLtejUtqtuGPmwg9hGi5l70YkbWmY1ADYo3eoIG9vFq1\ndQJNFHEIOS5GRuT9b7Pja0roPTEZ0jzWCzcpvElJPN+4CHmvwl/nBCjTSE0E\nXyVaZk+PvF0Wkl6KAG8UDAdBROpdnac8BU2Tu2maFGt2BhvyPDFC4STAAEa2\nh77IVbpUhxgLYwLeBFjLQhCUrCEU2bHGkSrVjTS0ikAtlmpzbBgatWwOZ7zk\npG0d7BqQvNZblPi/A2ZdQnRyzaRlHKITtzksWKk9nGRZ/caekjPbAXroWXD3\nN+TkViXHeUMlZL36LFig33SChnu7gKOf/RqQOT8wmMMLpMnuA4wFh3gm93mu\n0L1vEDnf/pPYUg3K0GgBKCjzEt8P25JLteznM32U0iM/m8KBDd6n4ZwYjcUQ\n4wFAvHxLRHMPVz4eRqBG3zNCMw2TPfR8YhEbGKqZMrC0IGHGrrgHGwJ3M0qC\nGysqljlZKcBHUl/plJ+JLaSChR17pkpkGhrHzFxaC7BWffxhTiI82TUYYw/z\nM5x+NJzTqkG5ZF/VItIlfqhz/R6ocnTVe3QulDrmvYm2LC0D17W586XsxwtM\nntgqmU+DCq5oFqctuSqu8WJ3Bi8JEb1aapd9Ctc08X+iVFSmWvFg92333XjT\noHXo\r\n=T0jA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3byGMB7k0l2zC9g4uTLiCYFy8Ptc4S7uMTUR7kK62TAIgIYEzPKwWAE+6s5eWG8wuEWV6rrSjylHBUJD/28qNFP8="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.0.0_1609124950745_0.15352610042070824"},"_hasShrinkwrap":false},"1.0.1":{"name":"tuple-database","version":"1.0.1","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","mocha":"^8.2.1","prettier":"^2.2.1","typescript":"^4.1.3"},"dependencies":{"better-sqlite3":"^7.1.2","elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.0.1","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-0iZbZPN6fPI1vNsyi2de3PMwFU2erGwXovV5mfh+EpA/DvAJ76+UCzqoFZrj/IOtWUK7QZPYtgyMcCvbso7V/A==","shasum":"c2c3f02f0037fb6cfd80ab992cfb7d86ccb92402","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.0.1.tgz","fileCount":30,"unpackedSize":61793,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6UyYCRA9TVsSAnZWagAAgmwP/RksksfgPuRyxLgkN/Ej\nyVPDAzXtwxN5vMliQk/Q1Vwd0Kjlvn6PFRP8s3b2twbxvY6o002saeiByXtm\nUHik6BgrbKgo+wGJKQhGjNG+GX9sjNxFS3X0ysxrp1DSFLa6uO4QlFgzwE9v\nY08udP+Aqya6s7Y3s/YOFdQfJ4oY27b3zCmdYW6yBWeaGCS4nGSOu3OOOfbM\nV2b+VJfJMXXpfhpqX8F61MdwUMT8UoGVuG7SdKt23OshmGh3/84eUb6oLNdo\nZjJDoi8vXFPnlFt2ZXoS549DESQmoIctauYSMLFD9zqs0rLlcD4ZzV81yTa/\nEWSsAOjJ3uybcgcvTeBj8UDHJwdcqkogIxpeRRKfAOjJKAELtbSJVVkJ2Iqf\nRQ/5IAS7Yl4DF1+GtK1ZszmTaOlP2Lm7rBNzKFps1RMhlrzHWixChIZq3gqs\npreFGV2p1y4EY9BOTAPoDzTrniELI/34t1wt5tGskPFkrfgfZNJy8fbuHGAb\ncnOksowPUzDb8fzKfYW64YDPOEeWT6P1bEfyDb2QBwNPa+NhgITgyYjFfQxo\n+N9ypTVcUa6+nePsvneb94egLwjRE7VG0sDy6LuS/X7jmggVZwGtrIEmQ6Ml\nGTwz/TgarRnZQ445d0E7+ZmVU+Gh2PSIYhMYZtla1/9p8YyKgPkMpM/uKHyC\nR5Tv\r\n=sNv3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvp4ZcT3L0orsiucJOo2o8qKVAVJZ1/e5YLlutX6We5wIgd1/o28BX6NxJTTRGFbAS4DqbMAUI1HklLyPaE3a0qk4="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.0.1_1609125016453_0.19955575704166129"},"_hasShrinkwrap":false},"1.0.2":{"name":"tuple-database","version":"1.0.2","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","mocha":"^8.2.1","prettier":"^2.2.1","typescript":"^4.1.3"},"dependencies":{"better-sqlite3":"^7.1.2","elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.0.2","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-kS9CzQ1uacF3ls3LDrKQNomvXgVuiFZmuQWoFKBxD+DUjSBiKa6zfxsQRAlkgb0Pc3j6om468/W9FfQDZRX2xQ==","shasum":"7cd6c75ddecee809ce8f21ab2eae8c7a10b81317","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.0.2.tgz","fileCount":58,"unpackedSize":74451,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6U2TCRA9TVsSAnZWagAAR94P/1Qwl5QXNZoQ81/plOvC\ni6l2718S6Ts/bHwuP2VSnAwSqBSfGmJ8SHK24b1EQFG7iEGImgD6rRp9Md/p\nFwybYBV5HwChbyuY3n27EocVjP2f2qJb+tyy+a562f9h6bckHt9sDQ+iaRtn\nBO/WdP5fZ01w7G93p0S1SS8yFpe2W3MDJHWzSIUzL+tHD0nmU4wUq3pRuI2L\nftr0j/mhfP2tZp2RfrB83mkqLUYE8b/oZ9Thkz90O/aq0ow5KaiDonW1LH4m\nJru3lWAtfnv4Wyu10/idx3jDJKV6CNuH7DVUtccnr3t1hRt4x9+UKrJIw5W4\nLsAhhn5km3q6SOt6gbK1w6iSl1nzflfNO9YhX8D8Z2Jt7zExNDBzRNtSGFNt\nbF5NDU9J7tKDq8mjKCtUnq+DuxnmFM8waV8WuheKxKmq7ARBOmUSxptto1qB\nx/SZ3y8huicHPa73z6iYA+5PJsRBP5JIcz3dn9E8W1w4u+DYKNuioYn3Sq56\nroIVsSQeNifNFshYqd4g5eN9OwICIwWTMapZkwqAqWS98nNephZ84pmrn5Df\n0Ko82hPBfsAp/ogayB4m9k/mv7NwzzX9w+nFXZAWhN4phQXQ34JDW2uqNtN5\nNiUL7sAcohrTFv+Y7f03XVy/Rz5Sc+3PYXUeFkpiF/bkBIcn5UmsXDzTNh+j\nervk\r\n=dFYN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGb6+dHKV0MmUntrY0rnAWiw+mL81Qkbl/Yyg8t6wQ1bAiBl08M0JalHv+u7kCo1wzQPJznA8NPzdY9+43klumzuww=="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.0.2_1609125267510_0.21944530312222033"},"_hasShrinkwrap":false},"1.0.3":{"name":"tuple-database","version":"1.0.3","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","better-sqlite3":"^7.1.2","mocha":"^8.2.1","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.1.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.0.3","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-prWljkpbV8aIdJ7wgS/8azvo796WNy30Mwhpx76ob0MCdwDOcIpDNrFKZ/18jfvvo5ePK5iSVLP+kQj2O9iafQ==","shasum":"7319b74ef5bb9dc968fc6fd3afcf8dc58209c748","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.0.3.tgz","fileCount":58,"unpackedSize":74562,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6U/LCRA9TVsSAnZWagAAWUMP/i0L1tu/sI7nTshHvvot\n3mzRsZssWkdsM7YsMwyk1nV6WBk/DibPn45siJ0Mp4eQde5UdRuDhomon2jl\nyzm4O3zWlZAYJJlWSJ5suYCvOlK/ifSlgOLOGazsSg6RdPtGv75RJCrqp+ym\nfoTuJ9UqNRTHZ3Icdw5WDwJC/gbBnpK1PWC1EpxQaeTNmPOGT2oG2a39N8Ct\n2OjNYIj8UCWd0xrEdN418altzvatrFxfGmqXdh/QKX+QQ/kSrP2yOFooQ43N\nWIm6WQjOwEjBtSo9IT2XUxXmQJVZBSURC0qqotwtHP9UrO35G5Zik3QwRzo+\njgyNS0BsTJTw1aoKv2o6GxLkfv0KZDNKCP9wFrh3/DeDk5159BLTflUEbzKa\n8/8o2PqPrDAdnObJrxdkgDJR6JE3/0H5V831S9+uzjtM6hInhQzm11Qv/5ht\neTMlau7c3W75/A9DXKSmtHXuvNCzjwejXJN25vsSNxYUDvUhjUitm0jDWhCr\nhWaBNK6fLjVK1SGQfZMMtjPu6bVrBHWPogP7VKh3Mjt71sej7qjKoYBvbpcm\nsHSuKfyqt7BmrOgWEb8srCYApx8TwdqQyPCAXdvXQhVYXmNpSrXnYKSdMEMt\nOItsW9OE8Za+L12EjKN3WKeEGNWyrGdEiYb8WYqVHTjDxhONiQn0aaF94hlI\ndxC4\r\n=dkjQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAhMz0vHdcrdl4473A+55An4slXPkUyCprnft5rZ/kQwIhAKpFv5kLqrzoTMLDeebBohIUg/E98iQNNI9YcyuC3sdL"}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.0.3_1609125834507_0.06140403570163677"},"_hasShrinkwrap":false},"1.0.4":{"name":"tuple-database","version":"1.0.4","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","better-sqlite3":"^7.1.2","mocha":"^8.2.1","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.1.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.0.4","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-o1g6/Kf0zhO4uLphH23V5ny4uFYflqeDj1TNgoOgmrVi7Evpfp9tu1I4VnQPzt3ag8LQohbi8xeavZdocm717w==","shasum":"9791aabcc4da0d307b22f6c8e72f075ae60cae62","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.0.4.tgz","fileCount":58,"unpackedSize":75192,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf8PYrCRA9TVsSAnZWagAAjQEP/2NB38JuTaFmiwAoOMx3\ndHo5sRY7YxHDK3ATrDDjTnYMFvJ4YZHos2N3zXMXICUhmIq62EpeQYOX3bcT\nJSwXqApJfiqoz8mhxMbot3qUeBKQfZfLf5C2KA0GCmW8IYpUhCz17VQHKXe+\nkwnqIypfum37bJ39AGBQbweT9sp6kTRVUgYWDS9lBQplnDPxzEzJExVZgxeT\ny+ndysPeMSR3LWVObRdyrpwGX9bjT0Kx9VSl0BuCbCOiu5nBD/xpiYuybqvZ\n3Uf/t6KY5XKCsLw9Xui6DdjONiPR6JUm6LROj7xZbahe44FgQ1DcENMNa9GT\nOz4hSH1gwMljZXuaIBdM5HLwAZsZCBtMEMc/gUgWFmm+UnRZFubnylatZmTj\nfujna/6so7RocWobohk2nx4qRqpM9FTlSm51rY9/c2dSp51jRZ2lUlQFlALf\no4t7i+Y6tvATW6tL1WRY8wjhKIZaWKPZ8EAFyNCNMU4vgX+b/dgAJI+1rT+H\njU4ZQnfgBOc+yML2JmD1Te/3VSQ0n9RwXkybWdod9tMaOuxSmbo6VwRCMq1i\nDewE+vJm0e+Osyog+p+asDLKWUD8pyvSP6G/3WxW/i3UXkrjkdNebKLmVtU6\nIZx/bMb3UO92+b/egP97gHSQ7erDk0991yYdDSHm0cTEJj7bYy2pQqMD+CJm\noHXy\r\n=Lgyv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB8dCm95+SF7qRIOdsTmwIgO1GbKA3PtiKfCCo3mP8JDAiBPlcpWG0bcm6EbkCWp0xB4XRxnvnDe5GE7mSbl+4JZTQ=="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.0.4_1609627179456_0.2063375632758382"},"_hasShrinkwrap":false},"1.1.0":{"name":"tuple-database","version":"1.1.0","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","better-sqlite3":"^7.1.2","mocha":"^8.2.1","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.1.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.0","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-1DiCRBvElD/mWvuawNqsijyH+NIB7h0h9gPBhYDHm7PioK4Ff8+FGABR0RSSfV2nOpfDf/KLOkTJ1W2VHppDcg==","shasum":"6399ffe78475534c727bd89933ffef97f3619adc","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.0.tgz","fileCount":62,"unpackedSize":79630,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBipzCRA9TVsSAnZWagAAiuYP/0/sFf3W5WY0DGmt6qTn\n+3eMLNk9JTj5nJjPitmQQVS5PQN2yWjAK+Ky97vXBsmEOWSV1ay/DOp/BQ93\nxcaUU93CLZcyImZGaUIL+o5R5JjptwCGdLgrk81yQh3XSmTIuPl6cyi4dYM4\n7HM/8DBeavry1Ytm0p1wwMLmgCITXAGIEYPG+V+zJRClImF3+2bb8AK4VhSb\nN940o56WS44mwMVo+CoWavmuf4QSjGHm2JrZkdr1N1IECTdjSMDLTfDgoq2X\n2New6BQp2wHoUMxvXoZcEn8WWrirxuxuM0U0FMnfbc82saHS/3PlwotpbOj2\nEH1WpN7yKQh1fifpvq8Bm8rSewmfM2UQ1Q295w3mGsAvfSA7641uQ1WwkGoh\nT6gQalebLzou/nouceiFl9zF7fLPF0kjoD4EXgeH0uZF8ggv7PZyaISrx2ay\nP9+WdBsuxHWtKfY5J8UqiiUZ0Yt69fpTQj6If8j4bCDYZ6n1Tzj8qAeX3A7z\nFYDopUZgqR26scpM068OHitIBn5DLn3RZGAJ49XWXd2KGhEqETi1j44ae2U5\nbbbsuhjS2A8yfrL78d5IXLRfYywYPwk9nsW7wdebhFT2ITHKNsEQBQpI8Ntr\n6C1x2ccodBnrJrlmoOwiPb1sZH+3knRd1MuCqY6ec6A7049s04J2S1D66tr2\noEPb\r\n=N2ny\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDugSgfdRFSyW6bDxC2/nFO54MZ656HeB4jGETxRvIehQIhANL2/vWXdPUozUwhGCxB1PAZcADV+yO2cpnILsSOecy8"}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.0_1611016818957_0.7527700174472034"},"_hasShrinkwrap":false},"1.1.1":{"name":"tuple-database","version":"1.1.1","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","better-sqlite3":"^7.1.2","mocha":"^8.2.1","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.1.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.1","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-C30V16Usc66jcErW/u2n46aJaH0osnNhpByFFVD4bAE83k1N6RsrLGT+pa9HmIZK+FgpJjCbrKkjh7u2vTzgJg==","shasum":"911f696764b3568a34452fe97884d5355d5e51e5","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.1.tgz","fileCount":62,"unpackedSize":79849,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBi0ICRA9TVsSAnZWagAAiCcP/RDraVYT8KAoGgm60tYd\nWoK4whPPsIicwQmpX4cYniaJZSXTLRzS1xgzfgdnk+PjfWL+vLdrVQtIXqA4\n9cAJSpGtynxcHONt4QUSQea2XCWGOpIWCGHDIf9VYh//WHBY3fQGTB5AoC2S\n4/DK8E3kJ5e7DTXPfkrmvGOqPp9VLFy9L/EJZ/RYkGE7diRzDSSVdLgWMML2\nOcRMwGIzqKGQ8cloJ82PfM1mcd0f+Q/lDI7EEbzZJhPeqoAm5A53wyAcgS8r\ndbTH4vH6SIMetgEP8iSD60nGYXQabUvYuxnWDbDM1wGF3+lQFK32lhHW/gRM\nTJXhJEfsQd4LIj0yEa4BhxtEsOM69r5nrMqCYghHw1RbR0VfFgnE//qYU9Yf\n7guW8pVkI1PayNLpRnPkYomshzyrh95zXFIHHT0ioolF/FZ/vFuii0fZlZ9Z\njnDasLWB1VTbhCDF7TNt91k4k41p8kmlfY8e4GhBYEZ3a4xzeu98AzgJdt4X\nXNhOH7DDmclrx/V6XgX33qyi/xF8HjF5dJW2t7vhVAk7ms97Nv+wydNuEQ0f\nP75RCqII+2vfhYm0llIfNhRd0svDDfTUA5uB+c8Mj8JDdFMMoYYV22jlPd1R\n1oCPHg/yusjRU7JmAp+V6e+q3yGSKTFIj68mPd2NTeKkQD0QBJoSNtpa/L5B\nXmJg\r\n=3940\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBPwPK3HR1JF0d4OgOLdF02dZ2RcTOwhekHLeQrRNIPtAiEAtZ9r7eMQl6nqnV56XZ0eyxnms2UqJ75jNDsG5ZmLpFo="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.1_1611017478774_0.3518720388523442"},"_hasShrinkwrap":false},"1.1.2":{"name":"tuple-database","version":"1.1.2","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","better-sqlite3":"^7.1.2","mocha":"^8.2.1","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.1.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.2","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-j8CsWP/DhzE5LP676BKWgrtgJQl87jKebKUxiUOA5WhbedFxSE5SErLc2Jk1fYWyh4zshwhF0pCPChcHk6iCpg==","shasum":"dedd6333c270d5524b8cfaab12bb394ce5d386f9","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.2.tgz","fileCount":62,"unpackedSize":80122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBjTBCRA9TVsSAnZWagAAl9AQAIYh2yjUj0MwM38cy4sY\nveEF4LiEygvWa0w+MGR76obPMrTtjLe/FVMZcrzASuCF/5tdO46AP80g/jBU\nBi++eIZxgy7WPx7g9p0tdu8J69IKGn1K6Mj9T+l8NANfbc61ZCgGOO0tNdNj\nK2QFKqYnjsIHaYr8XujOvMNoehXWiUG2lC1wTV9FujnFi7UE8Mpp08AO3RB9\nKelF+5iywHbOoDUtbt5f2c0trFUxKYzm6NsWuAbREAQ6dNrUi9cyW0Dutbr9\nAojF5I73yqFbV8dkvTBdbwuI+SNXj9EMEfexBIX5VQteYqS/tFP8ON949NNx\n7WX3afC6ZataCMoIwS4fhpCUaTn3bs8UiM4EVlqWS7Hq8fi37ZcYv3whnLxP\nHDfnFyPrl64VqILe1+NG5lV7oDbxYiTmySUIXKRbrha3qFP4oNZCtkuL1utn\n+HPyBwhz3Zw2+LQ6TzoYyLrp57//SqyiaFP+8SogqymONxqHkCuaV/9i4brx\nXaul26zMSvbuo4NUeUaqGqaIItX4K8g2Bp7EE0WXd3F71X882mXYZDLaVy6/\n0ixkmsOh9wxv9s5zwnRr10QyUFN85O2Yjl0gQvGOwKjLNUE0pgBtGC/QThWL\ns+o5JESU+00PXOurk359745K5p85SPwpET9xC8OMupVoNVmKi4v/YSKh/FDa\nECyf\r\n=sw87\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDklyCZWUnJGROYqh79hQLESzZ1B2wnbqHUdwejlpgQqgIgMaFTpWOQZSSZX223K0cMKISTRhbamLJ2SZZm4gdq9gs="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.2_1611019457145_0.10272016263529138"},"_hasShrinkwrap":false},"1.1.3":{"name":"tuple-database","version":"1.1.3","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","better-sqlite3":"^7.1.2","mocha":"^8.2.1","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.1.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.3","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-apF6zt9zTxJfQgqLO9UBCAJd+P2OnoEDi/WmA1lvxYGtMdQs1ua4Veld0jbrODrd1MtrIgwwHB0jrknsXd68Aw==","shasum":"c3e74fcf3c9456a357cbfa3d9727349e5e68bf03","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.3.tgz","fileCount":62,"unpackedSize":80323,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBjVGCRA9TVsSAnZWagAAdjUQAIzHj7lPcSp6/uA/OX39\nvRg1DwVccI3eROAGL7weW/nKIfjGZIxGIig6zLTBikdMtnj8W4ArVAyIO44i\n/ax7yBjbVr6VIdHFlnM/Qq1vBICx3Ew7TFM16zmQQuTEFaf5QKedLICP+VC9\n1nTYI02ifVZVBXP4ctwwjpP1kjNUn6SVpGieFTZHxQqUW5b1DoUoYbdroOt+\nJLSQLcLwU+GauK050GW7k73XCWBUuvoqCG9fcYeVsdgjwUUwylYyDY9mQKYp\nE97FQit2XK//4cZrNyNOIt04dbH1GQ/RUiOglEofOZlMETgPR/MmX5cnOdBY\nJj1NEFwKwEbojN+l14mNy338Wi8XjGPTRDUHU4Hh4ClTIJsUaCKFqlG7tPKe\n12FkBqBwfQvlK9Lt0Yk1G5wI7r01xQ368CI+Y5BaDbYDL3rucUnJAz69MISp\n8Uj5Qu1KmbKNjczmslMXjnCrfehcR/R+LngWXBvIlN7czFOSW58QxVHrOq4d\nOwzQ4yzxhhaGbhmRjDA2GBVKeQrX9W5ifldcRSXDnidWQJ7q+0mMvmqVerVg\nr34rHOCw2Wbj8yONilxF+lB0QoN6BNXgE3yK41Fy/Bw2fdttWlw0hg1YRp3B\n+Tps8iWBTOw+WlNFlt5hGPbLO/b2UtMHMSiDngELiOT7OKOeJ+BkGpRic7NY\n+ts0\r\n=R8Te\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFnHLdjS8S6fkZCzosxVAWQ+5TVU7HZL0e289TzQKVO0AiEA52zZBAXGQ2/k+QzlX2MobCVUgpGiEQjJkBWFLKApNZw="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.3_1611019589049_0.9160034567532733"},"_hasShrinkwrap":false},"1.1.4":{"name":"tuple-database","version":"1.1.4","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","better-sqlite3":"^7.1.2","mocha":"^8.2.1","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.1.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.4","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-qVY5hFIASDIvoaXSGmSHS0IEZI5FZWaJbHBAdokmAw8YzwM3C4ZYUEQAYhh9T9nN7BfnAJecUAinotHTR1+LOg==","shasum":"4c102399df63eb42b216cc779a103087cc0f1806","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.4.tgz","fileCount":62,"unpackedSize":80391,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGizaCRA9TVsSAnZWagAAyEgP/09olMOJKN3mEVJjwyCh\nVyyjt4uc0pzcnDO1+0Q5cgOSss/WaFPM/GplkY+cR9rxB6ghQQo6Ir5Fl+3D\ng2R6wXm+md/eYeNFpE/wWnGnMqv97vHJESnvNl53Umq/95/8xoRtmYvIEYEl\nlLnn2UPb60WS5EtosOLw7+FT4y+cHCZlYvns3aGBhpvgbWfMPMSmemjACeoo\ngYfkzjP6rXXBDB+kMAM7r0ZpL52107ElksDP7bwQwZP4sB40DKP+PN7N5YzY\nwQDouQC58EkNM1cDD0ZQ8bk/zAv9ufssS+145InSWwQZ2q9jIKh1WN7m9X0V\nA2nnbtcEe5gI/cnxhtVy6GeqS/9SHKATrdOdjDIXk26oA6K1IOlzDKQcKcJg\n5Od4nA2tazLnVcIEIDSRBfl3QOuSGZu3SG84aBW3KvaeevsQhwM6uJYhuNfm\nbcerwSCQ6xcH11SJseFB7P5xntgL7LaOkyJpiRUGuGxMT5/UGAtPtw6sA9ys\nAeJ1qoF1PRacXFKKbdVBU8ACM21uSeocwgHdLrIGKdHgSS0pdeYa0F/LaBYr\nHY8tBgom6bCJQeOY88CVQf/b/gRXLeJeqA16KydjACEi8GajdxjEuVRPla8H\nSeGkqgnSmMIDgMLFx0MvKxae0x1WEtMgfg4VpDv9RYr2c33sTgEP5T3+LbsZ\nKFe6\r\n=1cG5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdnD+D4ORfGCW7dIZogzPb2M0C16wvuQg7O58USvWnpQIgHEXVsB+9q1K5WYPmH9sBGzioiLF03RkTFVXocB5d8+4="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.4_1612328154004_0.8332194735601712"},"_hasShrinkwrap":false},"1.1.5":{"name":"tuple-database","version":"1.1.5","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","@types/react":"^17.0.1","better-sqlite3":"^7.1.2","mocha":"^8.2.1","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.1.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.5","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-lSsivldY50XUcLOweLkzcbCzB1gcTBs/MSeL+l16CqaHTFhtCtkfJkVYSBPNOwv/3gUTIK2QAT6eCqO+Ds5rSQ==","shasum":"6fd91480a209b5856707606abc6972cda6e5d787","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.5.tgz","fileCount":62,"unpackedSize":81242,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHOaqCRA9TVsSAnZWagAAyeYP/iN9Mc7oXe2omBjgbWFc\nySC0nNGt/yMjqxMGX6G1yHFp6sEdlI09rmgp8FpC0Vf6t9hRxGC+0Le+FcFB\npIY99aDusn329i8BevR8fY7AIK2rgyLDbMY86PsMJMSp7/sykw4tYsJmYvNl\nYw87r7CPAebAgxK96p4lnvCt3oHVvsMMIGlDteT4TV+sHU/Z75bcAl4lPJd0\nGDtPaKvvgYz9wyl3L99CDUom2jK2+HubPTsSkV131s6xgHxHKSQtKE6ZZnKu\nH0oqPHoDkrZC/6CIjvg+MZKyxoVdfL15HutagdVmVxJW1zsZy7dF6jZy5Zxd\nOfaoXunxFjUaZgyLqmPKlH5JhpaX64zcaBL6krxy604Kb3IDiViTeDKdypop\nvFJhghZUPoNu3uMp1nUsswgOerZiowj8Et4gNvSm1lz+qDNOGI3/V8V/BU+3\n3WV0HPAXzq0w7Io6iUANJy2y0W8ph36JCvCCzzckENBMB+oJSzpXPimSRG9h\nx2gZAH0wQgI6Eez0nbrYcRpjWmOaPCEqk0BdFw5kBzqvIsQffWi1t9vBXmV3\nzp3WYX5arMi3VyEbue+0yNH352RD8DRtKHEdL1JHUovBBF+jMoMxC5Xhdjcz\nDFM+uKvosqPgHjVbWXIvoAWY0D5C9SSCJjh+qrIroYtkcmfmnvHf30RqgMrB\nW1mP\r\n=Uwvo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNmXiZ4Y+TqlPqofIHmJ0kdfycqHbkTWgI5vDucx+rqQIhAImb7D6VAZ97vrnB0tSTXPnO6TzTBAH3y/4q4WhfFgy8"}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.5_1612506793790_0.47039027084132545"},"_hasShrinkwrap":false},"1.1.6":{"name":"tuple-database","version":"1.1.6","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","@types/react":"^17.0.1","better-sqlite3":"^7.1.2","mocha":"^8.2.1","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.1.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.6","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-e9e/h0tTzNfsDAao7nD4qdwfh99+q1bwH6WU+9hV/pvl2SaafCavOxPat3En3X2xCACcuWqS242epFLLYiQcJA==","shasum":"fb246d4856583854cc58ce8b05ab53805dbbb4ab","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.6.tgz","fileCount":62,"unpackedSize":81479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHOcBCRA9TVsSAnZWagAAmZEP/1NWNMAXTxF6pb8v4jty\nW8hUwWYVnx47naMAuMzAiJMcfIZ7PrcwHqox5xmqb+acWeVgrVuPCiG/Hs2o\ndo6POCIuyem2Zy9aeGhtG2bZRxRpCFxbYxCBOEfyf1AufoT0ZKGBWUZG0K3M\n5YtbdQ3/YjJ8ymh4OH6b9cGdId2/S8CQjXQIyv0zdhM5KKAzZsOHw1m+w4tC\nrAP6pVj+CN0f0Evl8iURF7zXJl1VhKss6bG0M/qbbZ4P7y4P48fk8sKVKFH8\nqTBFxk4HA1lyd0wPjXKTIgbuAPOfJwJ0LTnXOZCo8SW5sAWmzN9EMEOFAwzs\nHTK9D/ebNxUIK304FSGErCkRPmv/pK8I3FzxHYB6hwnPSlCrytHlPNRPNUFD\nVockdgJkuhRAleEGbpg2aKtlycFf7kCOqHBA76upKpaHKaA6p+XcwqK1Z62U\nSD8NqZFJieJyf1paVqY/YeUNF3O2vX0MWrhHJvdxsygv+LfOaURuANgYFUMf\nFxGSEQYzOTbRX1CYW8yfvBBxfhRSDRpNsH996oUgn1R9u3RaOKJF96o1x/Kf\nzeYGN5g9tN7jiBPQAc5WMwlpHgaGEV6KMKA6pUmMvlD9COq3nsSMggnW+DcR\nMhk0f+BoAvf1Zf2h2imA2IXk81A0sTwJwNMW5gvjkWQ4zjK/OUd+AY4pl7xa\nFTD8\r\n=4L2Q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICNEQj2wllW4r/k61+Vv7lT61JkKON3mvMHyG3UzaceyAiEA34i9zr3yrxUjYjtcoSNQhAQ9+bgjF7aXu6IX/7kDJT8="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.6_1612506881286_0.83569865831572"},"_hasShrinkwrap":false},"1.1.7":{"name":"tuple-database","version":"1.1.7","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","@types/react":"^17.0.1","better-sqlite3":"^7.1.2","mocha":"^8.2.1","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.1.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.7","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-RzmwznTQ669alAG9q2cX7MqwT+G9piyP0/lMHWQpqebjq/pfLACG56xn9MMMC/HJVH73EzCbOkMFsW6HBMWAhg==","shasum":"b9ac632ad5ed2ec2479da766fd1f78af21c2efad","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.7.tgz","fileCount":62,"unpackedSize":82114,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHPCHCRA9TVsSAnZWagAAw0MP/133Rw75BFA2/GzCvqt3\naHZi8VsimXjT9X4AhWWEddH/3wav5fGHyXwabXgqYPWe+0EYyQMJPVJf198j\nl/ODAk3VDsVjaSPU2WszPOHhqlG1MkXMqwyRROC/0X3qndPBAslW5gjf3PQt\n0d9cmrOASN7ViF38cPXCCr+swiNPRK3OYhR+UJDvCplpE1jZUIaq95RLEQNM\nQwKXK/t5LPATE1qrFOL7v3O52ctcybH6CePgju1J1nZbZjjHpD/QSZA2TNrm\nVe9n7RaR2BvkB7u+AbLyzD+wFRdAueTKTKmsx9d3wEuP84nOFdfNPTIB1uys\nE28dtRJSS583jMSB3YO8nVG0lMUIMCndzKrlNFKYMMtb6cL1odu1h9MFNFnX\nHKYmjVHxroKwZdK4WLwxkpAFMyZM4Bd8XHG/WLSM9d7YClKNRuPd+CjrRybU\nnQ9iKZF7rsu0By4V+VogbOsXF+inspjmYMBqTqJSFOuUv39ZU7wXMlRLGUB+\norOsIUiXj6W7zhQKArcRvk8AEIP1SrRnyGpowhyxX02Hbh2QMGr9AyzH5XOY\nXPk5mLeeZ6AqZA2sLZ9lf3ODry5b/GfK/JkJ3HOq1AN1c44B1EcQyfjzhlUb\nAeEkZIk4s2HQnJ6d5Rjv6XMSPZP4rOQ5tAOCzilrYx+TrOhGJgvcqVUqK5Kz\nvwfv\r\n=5JjY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGeSUcaPLsMOrMAQiZXe009S2OwViXq2xsyyPhu9k+uSAiAeos0WTGERlASBoSALpi/n3+ptAUB8P4Y5A2p2kgGnBw=="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.7_1612509319500_0.724839431370957"},"_hasShrinkwrap":false},"1.1.8":{"name":"tuple-database","version":"1.1.8","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","@types/react":"^17.0.1","better-sqlite3":"^7.1.2","mocha":"^8.2.1","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.1.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.8","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-9AHmeRPqisVQ0+wwVv1WaNleNYA8cUI369PoGd6/cy80nLq2YaqCD1Mf5sI+B+dh0MCA12K3tMM5xN0O7I4QVQ==","shasum":"2a7d25b2a23b77c30f03cbbb6fe6103b6d9b708b","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.8.tgz","fileCount":62,"unpackedSize":81757,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHPHTCRA9TVsSAnZWagAAI0AP/1n8nje7i2m3eUmxNxmc\nXkujmEOmE87BXSCQpz9lRyhZMtjnvnoE4RO8TwN/1pGkrPzefXa9M/+wElt9\nhI4GgOqX0nlm9sHnN9IPd8zp1UbXuFHJPqq/jcU30OPj3Z1tzVHXfmqOBAjr\n2GlKtzm1oKb+BJqE5y3BhOX3eXodUZjweIRNLJsvXrHsmuty6K4aXWJrKxZg\nISEAcCF5CqgE/XTtv/DwVPWWmaVsYIsolVsRSMft6Ru0lDIVLB7NXgb3z7Rr\nrt8Qmy2760XVv36FEtNlFO/xIFD+J4TzBdkj/xV5UIID9bzQFqQKLBoMVECX\nKPqizaEQn+LGgUgVvkiQyEOLNuOypL11VuWpEEQXbe5TLsO+vPUfUwfV2Chj\n5lEg379Pgr09JSZtvNuZIpFv0mTU+aocs6HJ24X+Oec92fLfF5mh8lL5XsC9\nIdengtV/1VPa8Px5FlHYTzyc5R3Lr2jpl9nvfqje9nXjnyQR2lmknjuW1gwQ\ndliFgLvEx/l4XcOZPOUIE+LtCbfoTTUa+s/rqWb8ZhfGSHCXW3x5RbBfwnjC\nYJGhzlhF0XdFaMo5MrN+EDQrlNb18HRs/8sFJpc0Ele6gnIv0L+2V9N/MT1q\nNn1LuAJ3JcxyEnXqYfTdlZz9SOWLqrvtO0tj6OePxMZI0mAQ7Z8u9XhhrXW1\n838U\r\n=Ol5L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrjRfpFLpwYuQL3e1eyFoKfdQADtub/YvBGvFC7I4YIgIhALRwl0oZtFiGmxsBySFMNViQgiTxFM58vNNqRleEaPjz"}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.8_1612509650922_0.44907253720025"},"_hasShrinkwrap":false},"1.1.9":{"name":"tuple-database","version":"1.1.9","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","@types/react":"^17.0.1","better-sqlite3":"^7.1.2","mocha":"^8.2.1","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.1.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.9","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-1IqlOyUWFa5w4cKaA2yLPU1qaVep667rRp15t1UeMuu6Wy7TyBmHRnPw/+wxuRRJg7wmjUskV6XL0Dke3Ta5CQ==","shasum":"136d40063e56a50b2a810444a8735d94b8a55bbb","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.9.tgz","fileCount":62,"unpackedSize":81500,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHPLtCRA9TVsSAnZWagAAyG4P/iXM8k2QsbLa7i1D8OvV\naMV5ZUHq5pGPVnYQA5JT0RdLIQ8sL86OKzUlRhujuvcvn6D5cQD3VCk+wXST\nlj6A4foT20a+rSxV1YRNjFpbhn3bFsEA65mdo+BnI+LZOGHAaCfQkQZ8Tryx\nvZRCqa3LJSrJdIHsXoyYuVSGdT94MDBlFmTAkmQtW9izfp8vpMzf5loRD5to\nGDFZObZuK6pGCUCbmRcnbxwpVLTRFENWbfT0oY90tk3t5itq24gfmQ7PWlgc\nPdN22yMemskh9vU2eGjGePuz8q/zSlGCDjl2rXOX52rJIKDHGP1YllhIOJ48\np4vgzEhULtGezngbM5/lAHUEVw8RkbNoysavhuUsszlySc+wDctC9Qwdhp3H\nQIk8pL+sOTJcRMtX0Msb8g1CfksMqR7GGHh4DBddFJHMoMn71z/TMiLSQD2R\nZ01jsTUvnnBvAFhhq+siEJn3lGorklpRwQEd87j+VsJLspYrp89SjpLs9nEk\n8z3QEq7o6hCx8QwqdoOmrgZLdSUAw1cK5xTPeyVTRyJ3ifr+GMLqTC4bx7Rm\nqONth8qUb4ZZ0CYHjPuTXdot/J1D+FlVTwd1eCFxuzNFXLDUDjXvsaP6OBni\npmRyYkvYMUCERsijSsjaYkRc7IGbslyaqCSFqTEaEWztI3zLa6Ha6aV56KFe\nVXa2\r\n=7VNR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIQDiqqStFWH0Cvgbuo66yNfIK5IYlJNgNba2sqhfLuwBhAIfKd7TYvcAlTqobqSB/jWyhT/ODl+U1yK71jcBFl/uFA=="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.9_1612509933214_0.6183608237321112"},"_hasShrinkwrap":false},"1.1.10":{"name":"tuple-database","version":"1.1.10","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","@types/react":"^17.0.1","better-sqlite3":"^7.1.2","mocha":"^8.2.1","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.1.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.10","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-oZiObTYwWhKv15mol+9Rk0yotT0vrQIZqElYCSSsmPE9NPnUBE6zPMlCwNc16T/IDLeHq4YEFI8CWg2OqYDMAA==","shasum":"23e356999273378abc0c3bc6805db84475cfa19b","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.10.tgz","fileCount":62,"unpackedSize":81642,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHP/TCRA9TVsSAnZWagAA/3QP/3LasfFW6CKIO58/Sic6\nsLN+Pri1aBpl47E3s0Rf6LuhmzB/Cdf18WKBKjjGEAPSGUO93KAEozfbiJZy\nOy4eVJsvcXNAweZc2tHDQ/t+Li2QA0lIX86NG8i9oTerD0PR/QKug0iTAF+f\niiu0I53WU3La7ybj576iC4OPeCuXMGNJebcuHlhEuNduVuEvVhVY1grVD7zO\ncpyoutdrGO0vwfjN+yB/psKMBnb3tKxBhEgSLN/RJnGY7WJdmveVo/J/xOGh\nvqVW3kcbD4lyMOno700MiEXVKdVDhR4d0gK3MimaUo3RenTmd9RwAKucEZBY\nih/k6Aav+CA1My0up3nqoz9Rch8tZlpMy2hh7ZF0wvvmJ7+DckCyJqwe1bFl\nU8PFQaYOr3usdTD1T4CUW4HLRZbOkWEKZgFSrVWSa8EZ0vGP1oZUShUnfMnG\nyT74B110gwcFw03ekjwf3yop30gK5mbpW2gdcN4E/VMSK+5tCrvT/ya0ZokB\nSPkuE+qY1jxzov7VQwFPcDYqgHD+Nus31mLTdzjmFz1ZDLSxzTm+/fqI+94B\nuKUU3o99bkl3l8LjHyXiPuQf4lCfDAyIexBzHwlW2Zp2ZoU/MT9fdugcLoVc\n/KrJCSAgGF+s6nonNQz3ie1Z4nQegQWtDalKL3X+UVL5FsoDgGiGN02N6zdG\ngCno\r\n=OjQm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRpYfeDLCZWhWHSv/HLF7KDPNBoMS1HU0ZUOOiwG3e/wIgBX82O6F5XNjymWhErVllsm47sSEmQ182fZm78WJ21lk="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.10_1612513234999_0.8012805581641265"},"_hasShrinkwrap":false},"1.1.11":{"name":"tuple-database","version":"1.1.11","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","@types/react":"^17.0.1","better-sqlite3":"^7.1.2","mocha":"^8.2.1","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.1.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.11","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-bPEpChzDZ8IeD/sCYXGQFyUV8BBAcNuM2v7MfoZaNy4/TxN5nK/iioRMBHHDYbraw0m1NrYbNEfiLurmEoKoqw==","shasum":"83d69eb90d69d6ed4723aec459e252ce046fd2b2","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.11.tgz","fileCount":66,"unpackedSize":80979,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPH3ACRA9TVsSAnZWagAAGaAP/3EavrcyZvezvnaoyZog\nXWj8cjSWP112H43h29NMFi0w/GarrHbOrHGdqFqb5G6YIzl3xXu6q7mO35pD\nIhg9p3k2fgVab2tY1HwiKEXvrjtCDC7HpVmzNetnNWZ/ANAgLKQL/Igiu3s4\n+i0N/bCl45ZJ4OTozNua3GQ4OHYFHLj9QzBoNH22qFRh5VB7DLmvYIknZefF\n5uV018tzh/H8T8JIaqIKuEEU79OmAUQjU8QarSV8tX6jy4GbvQ/b6tfiEZHv\nqHf7KRlykLsKXAv90oLjp82A9qbhCXqtcUiUftnoFqC9vJUyttLYqAKGBkoW\nhyuVYHO1eyUDA+cdqJYi4Mppf0u6e4zovIQ512S6DkP524avUZzFrZWVX8k1\n+zCvZW7YhkEeE2bxdQsW6+EglsYtlW0aDnmjJoflD4raiktQGSlIaNl4fzxT\nA5rm7zs+8XapY6mJFb0+UfAyqigzPeb9v0etgPSQyhMDSI3Jrma9febW5EFW\nogjZPqWS5kz1Pn7IJ6vS9liN2Fzy1dbXoTmZR7Pyidd5KkdPKSFvAhQh+XZe\nPsMIgN2JqrXIvJbawiVzGUbZ4B/QMD1YAKABziYms6FBKBJJ8iwFW4NU3K3Y\n2vfHHicOuI1TBi++JPNOTjy/XjUeup0Ss55fypBm3DhbQxqPb/ItxJ6qtF9+\nyMiR\r\n=Qfix\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDjzsTuCpH3vXG2lGPWbVrPJpv7QJX6KSmrYGEsjK0UdAiEAwQymYg8dkeLjrFHkrJJIISsFmfzcCK99j8McRzY9j4Q="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.11_1614577087851_0.8388835048628813"},"_hasShrinkwrap":false},"1.1.12":{"name":"tuple-database","version":"1.1.12","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.5","@types/lodash":"^4.14.165","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.14","@types/react":"^17.0.1","better-sqlite3":"^7.1.2","mocha":"^8.2.1","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.1.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.0.1","lodash":"^4.17.20","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.12","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-XAXwCXGLudm/u0siKlXoojdF7jsg5dLan4CBvRjnn7TYe9bygVMVFqPlYCiYH61tmHRdauRHyGmOnolgeSjakw==","shasum":"c9b3b00ef235cd952b879fa6b9769437ab250a33","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.12.tgz","fileCount":66,"unpackedSize":80993,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPII1CRA9TVsSAnZWagAAxioQAItbRCzeb+0HaO6hIxIA\nciS7r8ATFyveMP1FGjaAbNf50l+l9mGOuN8SBSjuhnqLHYFTldzC1MtPVzfW\nvQyNi2Q103tCSmTynlnAziJAFjLnwpO9tnNBOuS5KoalDKuju/smcFqOk0ac\n75as8GhjpF+yy1DbdLs/lvikTaTHMeQwEj2+7nlnv9XAApW6ih3ulDBUs1Va\nxKMKgTim2C+cLw2s+uDqzw4lKJEck0iGGHUHaAZuluNXy4nYwNuxCoR+1RdT\nN84XuSjNBi3cA+fRPaJ1k8pXD1WHgO3y2TsQYszm7zkCzFuI4rWm0TbKhMzc\n/0iJnisBXtPwcGPKGr6DxIh2xkECsWo4gI+WHv2oMyTnx/N6zVQr2mkjiXwJ\nWZiK/cNXsvISTMKGoHykVxar4pizOL1HEwlK4tnmPGx+m7HCApatwWv8OM3M\nqQaY86BOOt4+yVf959LlPVtOuiOABlh4/rmtKsIqqSS3CFDZbpRTEOP7KKND\n7YFoLys19gOyVxFpdV9bnibYg7FRvzLcUJ9QjEY6aEkz56Ekhd9ZgAlTGiAn\nvr6mSaIk5XKfRyyR2MiOuGQ8jMtfegj37v+d4yjhfwuCNXP91Mh7B27wOPxU\nuc90AZY6BER1x94ecBfA4BzK7vS/AF9E3z15dv8AqzFift7t6up9OrDWBEYH\nSro9\r\n=VgcG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCUp5CnK/QKAT9SaYdsFeIbbgzbimvJD2r6DpFC4rVABgIhAIVJksgNcKcPzlE9lEx2bkAUMRBIbxEtI3Eonf7SJMiL"}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.12_1614578229414_0.4311125520945476"},"_hasShrinkwrap":false},"1.1.13":{"name":"tuple-database","version":"1.1.13","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.2.2"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.13","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-2mFj91cAgfeBxk1i38dZlWn44yYbUlhFYBngJBp3o2337Fqf62is+/JzazxStjF/CiYaiGYkArE89WeTeOQwoA==","shasum":"383fdf3a1db6e06378b4ce6eb97e38d81edd653e","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.13.tgz","fileCount":70,"unpackedSize":88361,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQUfNCRA9TVsSAnZWagAA8FYQAJo4GCoD3bTpI/d4ZRxp\nvpfBp8tN8cEgxpVRbT4xUjWwjdQsFL4VR6sGbGpUScN0SS4bGRFqCvA/MGSy\n/Z1gkhBeolR6EKT2dGW/Yf+pCERDY+SD6LCdosxpdqoldNiF+izKgjOSRaZZ\nizovkfvQFtZZg8Yxg111CaYrMUHyzlEm463CUmTBpAkQX/j06itHi/dR44Pf\nclc2jIAUaSGnfWN6N34gSd7/MGsoSrK1HZmu+T+GcUmXQvwDqCs4J67EpkaA\nQ7aC8CyT4SZGII0aTsn5cYYwduvDzAXg0h+XQfoF5+1P6vNUSo9oxFEVTTiE\ndmu8R1AMpKcnxgWVTTBNkgwC+iBAkOOJKENUsj7XCjTtY3Ztgj8UEt2B/FQ8\nVCkJMs5+pdoPG6y3USyt5ofyCRU0uAAF16Lpt7TzCJfAfG7VPJwwj6sxNPSe\nN0ZclLAHD9zGIbSy2zwkck51g9P6XR7ae7KmJnaR3FzlmDkbQNny4Ie+lVuG\nv/PIXWUU3WTDMfcwPx7JF1m9ehlqUzsr7kUkHSaWqQZvbFLIrSUQs1phl1ax\nDI0oqDWqOUzgD5EFpxoRV/jYUydErhoOkVFDvhXyBQbF4sTbQNh3izKsfhuz\nhoCk3z8D8QCkD9VYRo43CfsTuEvjd1OTrx66JD3PWlUQv1aQuxV//roVpLX4\nUS1h\r\n=EBkp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9y5J93CuHx3eEoStffjSifHfrahlDyJRAp6uRerGTLAIhAInzc3yYD2cF/NOuanHxTueMaTQQ8lOgqaURnKjdm4lq"}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.13_1614890957045_0.12614533707177822"},"_hasShrinkwrap":false},"1.1.14":{"name":"tuple-database","version":"1.1.14","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.2.2"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.14","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-XXi5i2xErHGAP1A1R7UIsSRTzT6ntPCXsfCt/Z7X0uBY77XeZlkOZtE5f8ieBPuLxRoid/eADflTpFfpknsORA==","shasum":"07d247b7a7d7b746dfa92d9124942c0e596c1196","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.14.tgz","fileCount":70,"unpackedSize":88461,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQVMPCRA9TVsSAnZWagAA+RIQAI/AqV1SqflITqY8OcKQ\nWp1gQLOTYrsoUCd+B1tiINtyYFE7SeFOy0yszoSWSzvoe/6P/dmWw6uSAlsw\nZvykGRQ8QZ6OSPkiQIiegseFGV4hh+emvcnbYQleSaqylAsMC48jUS04ev/e\nEsWGi5cLZdYYDVuRVQAyK/R3zoyQJzChZutue4/rWOxEPOvSb1IhMIDwVsLn\npXqrx3Rlk2DBOvu6SNYz0MVCm+pNOJT90sxpbppNxjpyccanzoVzrw0SYNYv\nQzTwqPkV3DtcqZCQiLlir7O0ByLXjIORKmHkxSefe4BgPaw4s3v0+S8Mjfba\nvSj3IJzDVY9KQFxOnF25jiG32dUujqsg7/Yr2PUkazdbHbB+4jRxQE5kSdYj\nLUTGrtCWL6HbbRRogBxbr+oR658/cULiCC/cxnMGfNG6XmPA7Yi6+F2miwkx\nUMfqS7pLBtuH39OSPqe5/V8mSqNEdghrx31kp4wTUcUu4UN8hQVLzYaXyAw2\nbKpJmCQp/ZCFz8YrmYlbL/qQImBjjI/+uwrMZ3i17zhKa01UFlEVE18LfwuM\nSD77si6PE7Hmfjp8LZkTTjkknoZrWaA+5sB3EtgxjVzIE03MDxoQQoFPrh0W\nvAPu14Hl/rCQegURnwW+PBq2rMNl4qbhyZiXPRAbYkXqSy2KZ1cKtw6bx2J8\n/Fy5\r\n=u7ss\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXbNBz7ehSiDaIQdxMXIbpdwiCe9KcTQc9kodUchnD0gIgCpOlJ80mgg+6mvCb6hR016JJuc8FOQJPGl/AaQpT1+8="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.14_1614893838575_0.09809789719886419"},"_hasShrinkwrap":false},"1.1.15":{"name":"tuple-database","version":"1.1.15","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.2.2"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.15","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-pRqMfle0gH7RL1uLWtzslCG/IsI3TniFyC5lXjoKYQpsp1oU7YDOMJ1hCQ1IopDxOrEBaepFIsOW5MML0oYjDA==","shasum":"cced9cb96f60a1c3d1162701012aeb52a1bda837","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.15.tgz","fileCount":70,"unpackedSize":88469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQVVhCRA9TVsSAnZWagAAHlUP/RrHeN7mD0al9E8veeLf\ny7mWnsyaTAnx2EBvINFXAbBCQMucDtLjX2eMBW7F1NGrbmeSdNeY7LCfk7mh\n2v536+UsAE7jiGnzlm4G162uMuAWF6PvKqa/N3HcNdPWJBzStjmROQH+/3k3\nHYKH4w0iFssoGFhy3oWRwxvsjz3U4Xiud0gUHGtxwLkW4chjtfROcPJhs2s5\newoHm7ovQQJwQB6PkV/M4y+a1te6ljrznqAb94uHYTr/Q03niCX/RhOLOgL+\nea1uKa6Dx+Exf7pu9HhCndu45xLnNCpLPF/KWe4m85KdUhaiFmwkoG9LsgEf\nsGJN0jyiw8Yi/YyeaE7IGZ6PL2y1YHcirSYLo2Rhx+SdswjzZ6LqLS9lumtp\nASNIFX8FWTI6uI/l+fvrv1ii6uSLRYKx08PvSt5D9XHZGFZKVQynxvj6lthf\nuozgCse3vxeuOk1hSuTuN783WoRLBJVgAfGWHLy4yx7hkqCyw5x0EYudRBWB\nxXKahzIEdTG+W08MssxhpOZ9/n5N9QlWNDrJQdH6IDC4tPko6bRFMejJwlHP\nDyqEWqnTs5J9O3xkIu1U7zJqdXYDa86tSDGh4SKUp9hGJOye+jk0abg/6MUg\naAq12RBo28n/2SlNZ/MY9wukNYVpszeFXAaKf9pkT5DqvhnhV0mpvWZjTBDu\n4AQm\r\n=cLMB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmbUKqE8rSUkwJTcjvpyc72zwGvYMP8A3gYfPAzFeG2gIhAMp7fIgeQav857KAWC2RyX4MZLyPYdp9E7xgK74FbETr"}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.15_1614894432504_0.6534397274458406"},"_hasShrinkwrap":false},"1.1.16":{"name":"tuple-database","version":"1.1.16","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.2.2"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.1.16","_nodeVersion":"12.21.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-DCI2r6pz+9V95DOMQvpnDcz+0LLYzfrkMLd0AKXs0FIdOELUMeFYWaGtSxO5E7CBPXSDT9UOy6yvMTmp00rlIg==","shasum":"e4ce3f99cec78e8b571840d6d9f60f9d303dc1a1","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.1.16.tgz","fileCount":74,"unpackedSize":91240,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGrdxMUUUBzqjdSnVmDNbNUD+BGjKmmeW9wAU7iBk/bTAiEAjfEa3DdcGClwWKHGHBr9MNIxFoM0QYTN/7tqWPe9njI="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.1.16_1632721022288_0.8136309103167036"},"_hasShrinkwrap":false},"1.2.0":{"name":"tuple-database","version":"1.2.0","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.2.2"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.2.0","_nodeVersion":"12.21.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-r9trl3QslCa281fYtpNjg2xW7SaOnbCaHpvGo2ISDf4WOuC+2vU3kZiCrlJa1ZaHkut8cjCG5cFA6X1GjS48ag==","shasum":"c3d74158de485404d9199da9ad34b8fe096c309e","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.2.0.tgz","fileCount":82,"unpackedSize":97990,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID4h8gW95dQ1aeXYdGJGh+EgZUAmN4VUvBeT1T94WujwAiBqXGw4TFbOs6tolO11prkIEoQotxUvVbUffi0PDacNsw=="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.2.0_1633675177671_0.7331375521824584"},"_hasShrinkwrap":false},"1.2.1":{"name":"tuple-database","version":"1.2.1","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.2.1","_nodeVersion":"12.21.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-ThmkAd7AWj7fz1gecOJjVaWVzpVpZVTwZYVaeoCCP/8MHLdhKSgZqpn8zGJZ6TGNA0MGvqQ4BwpABv9xlWEeFA==","shasum":"41ae1c35467fe256147ef07b14f57e91dfbd2432","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.2.1.tgz","fileCount":78,"unpackedSize":101899,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDpuRM+hmBLv3MCjAIXDVCwCtSlMB/3Bclt4yhIfJYeWgIgCkjPw/e2V3ClZJI+6H1O+K+09Z9wJ4bkKfCftUQ2CNk="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.2.1_1633684781332_0.5911810960196473"},"_hasShrinkwrap":false},"1.2.2":{"name":"tuple-database","version":"1.2.2","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.2.2","_nodeVersion":"12.21.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-l68zd3//pf3/XX2qDQbKMSGc3NBtDiB5anWhH7fhs3JTFQOh0QGvGHXl1iGFiLIXw0NsY233dst6pY1VnYp89w==","shasum":"e3665d2371b32e51cd18bd2c591041d38dcde6de","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.2.2.tgz","fileCount":78,"unpackedSize":101743,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDj0WsMg4crgWduUH+7S8jiKfwFuoaj+Vvb+6/K/yU6eAiEAg5P74mfmOuVFOjTbLt9eUp493pxKYEyetfAGLjrIMzE="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.2.2_1633977313328_0.20399215377004576"},"_hasShrinkwrap":false},"1.2.3":{"name":"tuple-database","version":"1.2.3","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.2.3","_nodeVersion":"12.21.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-yX7YrYTXW3FvoJOBt7vo2B+oCWmlTH9/jYFPxI4v55G30iMQbqsFr3+SnvO5q89PvNdMueoQFsXrq+URDnX06A==","shasum":"11057fa66b053371b50535de2de263f935236b95","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.2.3.tgz","fileCount":78,"unpackedSize":102036,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFt2jcq4nEON0yHmzOvkvyll/btXY3pgfs1ywurL6rkgIgCyrBjU/AHMig9yjfMLypv4WjXgAgHcC6lrUfYSpSMu4="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.2.3_1633979344194_0.4379137291459101"},"_hasShrinkwrap":false},"1.2.4":{"name":"tuple-database","version":"1.2.4","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.2.4","_nodeVersion":"12.21.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-65f3b5PBs5BIEQEofG+WPguAl/4YeM+WNxk6aYJRq0UHfO2u5WzufE1qlE7GEoy5lf/Knv2iw/dktEFGp4eXEQ==","shasum":"196eab95dedc3107fa9405a27ffae3706c8eb185","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.2.4.tgz","fileCount":78,"unpackedSize":102134,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTRypDcMc6mqugjyQyCX+8Ti5mgBXisIhtDcRKBZbFFwIhANlczg7q6+hAbXZNVCovAPYYNUDbTx2duGBQx37eDVIV"}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.2.4_1633979658978_0.9274733056628615"},"_hasShrinkwrap":false},"1.2.5":{"name":"tuple-database","version":"1.2.5","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"tsc","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.2.5","_nodeVersion":"12.21.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-qpVd9hjCBui3IRxd5+hNk5pI0DKadIKR3eHyeLuXlh33FWt76d1KN2MdhwPShCOG39uFDtsKahm6RLykSNSsIw==","shasum":"694e2c9a1c9af5085540b8139c0df246f5cb2fa3","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.2.5.tgz","fileCount":78,"unpackedSize":103389,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2+gHCRA9TVsSAnZWagAAoaoP/jIOTmdqgbI+Qap8/Rxb\nd/8J98D9sMrEwi8pumktMBQWj5YSvdZUTT6LRwArm7ChLvEyEJoq6O5ok6rq\n35RdV8QIyv6CWXK1qifGI19LTWRoQLVjAMyIUJyLvSa6K6BrpiwGcNgj7i6G\nD6FDXB94c887g8GRzoYDAIHZNf6jLFzXiPEeaeZz4/70wJBkRXJXfODTl3L2\n+jr8Guzw76UdSEWcGVv5OWXLbuTaLmF0GaAkPSfqZqqmOOgtvBuqAxDvxGl+\nmamqFCwp4Ck45fPggnSW6FNgWJaSAipOFwP0E5XowDmZ1t/WfZMFYxXVI9Vd\nsSongOwkvwxCzVUcELdUPA8CoizMbJmWeSkP0uiVs4AQuItGu6MXmZBu66u0\nHqtOjtvByUSFcCkpsRBZBBBPTccXZJU2L9n0z/Pf9DTXTD3oZsu6HGWMaHFo\nO7jkxa2yzoRQUrjZu2hkyEwBZFZct7zqLEjeknPkpIh/pVTv9mx69WmzcKm/\noX+rMU1QM+wtOP7Tesye3ue43Foe52qsU7I6xAnssAqXAVaXdW1HlON0NfJo\nYRBSR4Ialjjn2SzrQqPS2rNJ7XTvpTh3wn0ZttNvi17bUU3TrPW4f7LTh9fq\nHm0bAE9wqfasd8vE0NkV9/hdilC+n7ebmfA7xfW+UM1qVCJq8ryEffS1nmZS\nHasy\r\n=IvUt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEn0Uy7sJ5TQU73Ucs6XfEFW/vEWvVJHzvVbvk7V0ssVAiEAz1z3kAjQCioXu0NDPbyy56nEw2diiT8sCMuWsheLJlY="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.2.5_1634171869961_0.5756561807220284"},"_hasShrinkwrap":false},"1.3.0":{"name":"tuple-database","version":"1.3.0","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","level":"^7.0.1","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"150f8606cf49bd07a84e417cc05f7f92e4188730","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.3.0","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-eChttawVM+gb6CuSAmJ04Jq4u4F5jHzisHf5pV+KEI6AaAdB4WmKbI6RYJz+XW4o5GLRs4w3m1a8EVNsJeaBmw==","shasum":"a6068e1e38250e07e2975af7c4172ef311611dbe","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.3.0.tgz","fileCount":150,"unpackedSize":345992,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiLAp7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqpQA//VKLaORQV07lD0vp7WqNtT7qmSvb+fl8okfeKtkclPSW4Guty\r\nOuXvZ8pcCuP8cnukQRUuivb6VHsudqgtQGfYQeaaSOyUMkfRQjaEIVjpIQEC\r\no640a4cuHljBSUYxp1bu5EAxcVdsVvufq3bAyywYVlbpZJSCXRHi/RsjBZ6X\r\nqN3d6F/Cyn21mI3pXIPAfjBmxJppQaKdG64ucUS+UY3vnM/TEBeJpQCyfUw/\r\nA4gBT6q+ep0zdERF1yfwW3a2uXcO1dcmEYUM6ZX7zHPLD04L2bS5ZWOKdeAL\r\n4sVwbR2Vw65U8g4MjXPDaMOY8LYHb7wWvEtob7UFEmzESxFTFchSStoS/AMa\r\nD84C+raMTQbn4E2FCCe12wOEhokuEwzwAjb2SY0U0ysol8jfORTtQhjr3mK/\r\nW4aL4ANnSzoU6KhESlW/RQkIoHrM9QedwAHW1UiXTRmvAuNYwZV/4smt83Ll\r\n1IdPRxuNdHZUzFYLXeov42oVxD1rlWc2NRf640x7ZGN6oGoAFPDjtJpIRcYk\r\nXUpYcve78Q3ROYads0rf3ePZGXtbTkhQLbfHN6z3HhB5lUmhlD76xd+HT34l\r\nH6ZONq6sC3iiR/1DTmoQLqiNI8bPG2BnOtrc4QJAwlS8pZs9G9BCVIXKwseO\r\nPw5/D5Sba+3vwFyFKQxP2auuGLw8Y+Fl1UY=\r\n=OTIT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvnb9BK3dqs0/QLNrUnxYpr68lKQaeA1nfAI9GS7ToCQIgTkcGv90d08GWh/Kr/LMbtXlpTEJCaSOUP5CRwNUfR4s="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.3.0_1647053435247_0.5300172847353177"},"_hasShrinkwrap":false},"1.3.1":{"name":"tuple-database","version":"1.3.1","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","level":"^7.0.1","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"317cf69a25e6a179c3c06dcbf2951bc7b77fba53","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.3.1","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-guNAHp11wU24+FsIrWCJNeIdUHKPVFTeGn4Ctn+G5AUI5Tn7prGEh7+cvhOfoVGAXoTPrP3VPUYAej3ng81ZTg==","shasum":"7f8cdf77781d8e1177dfd0ca3ae858197af8bcfd","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.3.1.tgz","fileCount":150,"unpackedSize":346324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiLBV7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpaDw//WTxZpHO+/pdBFy26UGKdztJS7mKL5eEbOWQ5K+9D29b9RBNi\r\n9HGzFsCQDh6ELF7go3OLnwADZrp5hd9+37H3bYq0l7R+gj8Tv9vo0iC8Jw+B\r\nbeflcKUxTRx8yLXngPkjfIR/CVu7Zw+4vPGCWdp4wrX+pp26E7RE58HalhgC\r\nLgmdpCFGY5TURRrpA4XUIVv/pckUqJAOb9nDmIUJlxGxPnlA0EnyUfMa3FgP\r\nqc5oqMJ2qYyz5l3wZuVVwFwSTIp/3LlBLhR7DGN/WP+oIEH7qxwnAzC/ZBOG\r\nzZrxkLLy9sExlJNF8NtB/WMfjPD3UjECTEOm+H1puXDFfrPQC2aS9F7AhkTD\r\nyUYTppaTW4DUkQ+sU/xK6ZqdIJuMJKtcGR2mCm80qvLknRH6SZssY2JZFE/p\r\nFaZZzKW7G3Be/gra1NoP5Ug6XzTrW8j5MWMBF3JtflsI4AFrP+udGsPDFO7S\r\nWps1LWuVi7ft3FFwyO355DHDS7G6CqBVJDzxtpqjOvyNndlnzsSMzjCz/aDf\r\n2X1SbylMYS+k43+ZTYNeaWw4rmFxn4atutJ2WtdCpbpAj5uV3/p5Qi1LNxnV\r\naaio3BHEgNt7wbUB3tZ6UJkqKmpc77Qa9pqk+jYZHeK2k1N1sWujAQEbbd9N\r\nBamOlm6AvYZHAhStb3rbBxCut4gfSu8Ewtw=\r\n=s28i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGMYsc9cy/aibiCkWAfoCbpV7KVuezrfz3nx4SUlue9kAiEAu08TfXNwZh1tWfdEiyjTHd8TBexUEi451QK1wz9c6kE="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.3.1_1647056251160_0.933981481721778"},"_hasShrinkwrap":false},"1.3.2":{"name":"tuple-database","version":"1.3.2","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","level":"^7.0.1","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"5ef35a90f27f3d1d927f21f8e48b777d86192092","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.3.2","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-acGvDT2NQhFEeMpwHF4zh+u0+4VnYLYyRXtr0d/hs36v/6lgbxR/MLHZuWYVu38CdEb4nFhucjRQ5Vilel8Psg==","shasum":"1ab1d4229b6b89eed5cc4108f461f40c0a9561ab","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.3.2.tgz","fileCount":150,"unpackedSize":346586,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiLBXEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+vQ/8CFh9CPn2oVMEl+9MTa/Vjjw5QnXLqPZFYO0HrYHHeo1M6h8B\r\nvEXGb1na6s3Xl1//AhasaduxLdFrz0cHfnny0vcBLfwgmiCRiI5txkdvFZwC\r\nc1CxKSbDCoLihu1Qf6BETYzKb0BopW6IGjVTYUiK1WZ28tGA0+jlfhpu73Qn\r\nYIFHdMWDrfPClZsrtR+IlgNYJuCC5vBC3A3pJrTRqd8iDHq2IBf7n1Ic+q0W\r\nQhk5c95ZYI1aBgzA1fvZWt6C2QL02iYmuk7xcO/fSVjGgYiydU9TAh32kbj0\r\nPIAyoY850L6C2B6vsUZbMEPTBabH9hYvToOl3l1hbLm5ZYpY6ZDtafsIZjnS\r\nNbVNtArqdDy9xKuPEnUiwWOr569FNNDC6o+DBs2KsUDosXxmnhKjL6hLis47\r\nEv7DkkJR3DOrwkSYThFdfZb9nFwm03N2zG7s2KQomgkYNo1YicX2poJCXjkm\r\noxur/xUKG9woq76XcOzQoryaf3ToC9Evma5nqqxKcI0g5ZkFqJvbkNPk1o6x\r\nE5te6gq3zo0N6+wAMYloU8SZpqEaVA50xnqtTc8XfqsF+BxlO6fYnUsL5i2t\r\nTljyREPEEHRA8Saud4FOQ692JtzacD1PfkOEsYkcTc/OQ/JqAivT9HkVIN40\r\n7pvoB+mFa30LUjjxniT+G+EJ+hx/e2ZGQ1I=\r\n=P7d8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAKAQYzMQnqEijlfyiko7nk7XpA8RaEeva9YJyFzcznTAiAiwPt9ZecRsLEMdf3MN4IvWicdCr3DR86kv1XiCWA2fw=="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.3.2_1647056323951_0.20481176033687887"},"_hasShrinkwrap":false},"1.3.3":{"name":"tuple-database","version":"1.3.3","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","level":"^7.0.1","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"24e8f10f3f42eefaa5d50babbc1fe152adf7bceb","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.3.3","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-dmftb6HQ7cHZznpwzbfm8YxIwNCVuYvoqPNE+vC1j7yAeNCO1UQrygr8aa3bzcsB8zv1owh0rzM0ZF7lYJX8GA==","shasum":"2f14b1e5984e496b700e9d0eab1de77a058b63ed","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.3.3.tgz","fileCount":150,"unpackedSize":347274,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiLBZEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmohVA/+M1VrjMM4ALQzCcPL5CKDbHCWfC0PTZt/tQFObycMsyQ65Qyt\r\nAZVr2w0pfYLZRz1DZqeFBK1UNhkrVJEPf6eumk2Htzson3Llv8HBtlhSEKXR\r\nuye3x7jNp2sNSny78wjWKzEKfsfu1r8ZR35Ju+NNaAzbvGPtgqxkuIZRSoG/\r\nbgyZOK494tbRYI3d/axpSAb0F2K6cdBHWF6iQzMCk1O8xRha2qeKTiw5BWww\r\n2YN2omUhmSx+bD+DZZFRKF6uRIBqH/eltrxfIkWEdczNyfcmxNUNuJj3apBW\r\nBi1P8c85P1aP+MN67YWWJWRgLy7Uw2/89UxSvubVqTAUgu7HfiS7eJ84vzy6\r\nhel0//xCiYYfC21qnVlPl05arNjBjDNtdm/FJF/4ewW0SN6IkV2M5/BcD5r0\r\no23SC7R+tvMLDmcL9F6PMkViGgrNAa9HxVGs51JfJ9KxeG6NxQpkVET03mVE\r\n1DXcqkQ8TAFbvi4VeOJM0o366R2kmk24rOJxXqZNeekBJ3aPldcMUrKjWyTq\r\n6nLmd6vvKDcwlyG1ftwrXEfJY7tUtGhxtKJTGmsX9IfX/ci+jHRBM4Rdp/60\r\nqFM781G+l6zXFRggfsvXostR7W3OWnnL/COMcRzSXHtydXlvVdxfcPP2UleW\r\nK67USHxCrkJtwG71VlYauigq2U8jzIWuWgI=\r\n=gJnw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEaTMkuikZzbGMR82S5dD5xWULBU4YJHSDHEn4q/Qi+QIhAOSbyDiZRdaJSj0W5omhmFuZ0EcKD7KFXH+lZPbts0CJ"}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.3.3_1647056451843_0.10557683677271523"},"_hasShrinkwrap":false},"1.3.4":{"name":"tuple-database","version":"1.3.4","description":"This database stores tuples in component-wise lexicographical sorted order.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","level":"^7.0.1","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"151def143fe458157e4f43381ceacbcc95d83395","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@1.3.4","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-zdzc8IFpS7arQfbtE5GRH5pjULvtStgnRw+c0vSjg8vDDk+pUrlZLf+zp8+QnKqjJQFx9fk8LzKF4o5vR9+96w==","shasum":"b1d686d86766f0e12c1a9fc736e970f4641841e2","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-1.3.4.tgz","fileCount":150,"unpackedSize":347608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiLC80ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoptw//YuF9ux5peNH6oF2QLp0KpO6YM0AiaWJv69JF4mYONxNyyu9Q\r\nC6ZkHQy5BcptJMicKx/CsQiZM2ROVFOPrJL++M8SxavJS39sea1slCV3wvg4\r\nOcS+op0+R77QzbkcTBZvqAySWITcjpeN0ft4NhJUjblzQpovuG17uKs/gVWl\r\nzzueEB4FTtP7g56V/nYrkM6XRMX7+bE9Gck4rOwETO9vTrFywPrIs+f4cCVh\r\nDbPH/Gx8OvWHzfG51loyNAe3ETNMU63CH1hMfeCNSBs9BZ/B4t3HPsyIC/5D\r\n/5S2gco6pSemDS3CfznYNUrVGZxCWWXWqM1EsgfK6St/A+xwR+DQT/aUHx/Y\r\nxhF5CNO3WotOmhYb6khkXWpX2jXatIB5eXAa8jqnBotdbYnF3NTPwyl0rqw2\r\nRImqaQ4tICtehbY3eCdc4npF3fnpO+jslBNc0Q4A0UCCytbnqC+6cxYpCCy7\r\ns2DttrCmdBcMcI2YDTsNMAcs0xnVbvq1yrxENhZXsGTu6qy50I/V5tx9Igcx\r\nOSg+ch8I01nQHkjyzmb4oyGYoRiCEk2J9oCM8pWGN8/VuMtZpY7Jsxwdx2gB\r\nkOdNsXzZPgj9p6oJLKDyYHuIQTlgeyp3OtTDCYeGmKME9NynVgojgt5dEe7Q\r\nXEYErMwZ+w49pnOzGOltajEsP20gXUbFHI4=\r\n=l9ku\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9QALR4yID6jpzSGeJdm4zSeLExqf8OZqm+UUtpqMFhAIgZgvLL37lU1AB9WxATk2uqoQt80sYTkc+wWF4/QfOn90="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_1.3.4_1647062835912_0.32799695595922373"},"_hasShrinkwrap":false},"2.0.0":{"name":"tuple-database","version":"2.0.0","description":"Some features of this database:","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","level":"^7.0.1","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"4f6fb5eca6f9dbc19dca1b3f241507ae7b15c75b","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.0.0","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-xzBxc1ofzxV9bAySYVuVKKeyWWoFYs6tLYQOd5HPh7WzbH9rQh6i1r/7myTpv3N2t8Zj/yzvlhwSyRnkZqGxqQ==","shasum":"1eae2b3fa2b43cde81a6ab3c03ef88f5cf39704b","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.0.0.tgz","fileCount":150,"unpackedSize":453012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiMu4AACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqF3Q/8CmVkMhxlutMkZshI4lMaflYGxP2/b7ewWN4Xw1LAjjsu3J4C\r\n6XJx4cxmsGzm+qFnsXtOKZCGYcq1a9Ii80pnNmrPMJWjTEe2g8JtXvBZy0ot\r\nnN89zR4k5PN6wag8A0TSFcojdN4ow5ClLbwbD9DrMI5i/MBy+rZrUpp/a4dE\r\nDz+8yzng5Tn0BfmEtSRVandsi2fVGTCP0f/YDEp7BpcjwoPuS2L9os1Ccapn\r\nDFYYQdfGWq9Cgp6//sHQSQHktyY9ucC9BEpn0U27Mief0Zt/bIAwC3In09C7\r\nnMZtJ2JtNYNsJY7UZ3M+iAXlmEESujA/NpdpY7nBgEdm1YZIujbPgQVWAx4Z\r\neECEIf4zx3LksTLbeyQ3kalGohnppx0Mp+pP070YCd5dXX8TxUZbcn4Ehs8y\r\nPK7RBDHpubPwsagxM6ozW0NusKL9etla76GwsNYbKhVNudYWHbt96Lg1yvqn\r\nsSFdcLuiy/a2TD1AaKbmJOWQPPn9/qaS9kk74UVu1lDl9Uu2LH8xrNdrCxr3\r\nt/ISvMrl109Hn+e79FvrJH40okF/zlWcPwN9NuRLB2mwKU7z8ynMipcAUk7a\r\nZfyk8Ytcykb6eSocP1dE03wBiXcmP4qQYrmlniMDTuxPVaDzPxjpmqD/hvIZ\r\nhuGp46CH9BIDIXFsBUI+Vk4pTvzO0YHzOe0=\r\n=lnzf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/PhHbggC/ZAeW4hL2m5s109bkcYrznBSw1M8oLVobeAIhAPjFQtcgr65KA69ILCqeUZqH03RI8LxKhoCkcY1z7alz"}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.0.0_1647504896180_0.3470148255147185"},"_hasShrinkwrap":false},"2.0.1":{"name":"tuple-database","version":"2.0.1","description":"Some features of this database:","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","level":"^7.0.1","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"3ac61936d20254cc1ca6b7c2db4c39380106ede0","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.0.1","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-+Vluj6iyh6uX27+ksSwkUplEahVi5qkseolZBvxbUr26jYoddWP6FPMDeNdEHBOcPzTed+H74cv8g1/r3daXCw==","shasum":"8ac29587087ad757328873776652021a298ebd59","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.0.1.tgz","fileCount":150,"unpackedSize":454658,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiMvmtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoa7Q//eOQ6KPN/2VuZ+f532+9+tar3SmVFYVNOV6jZOK0xMlQckDHf\r\npejQptSbH9j9qozzPIL6wGIeulSNCWYnLZLZLKzIZW+hypRwl8yJqkL9uugA\r\nYICIzQQRVvA78iJ9kr4i8830+ECsjf/nBLh++2NgIvoJOxs/KFWVal/i2TW5\r\njr/L3nbRJEIbpRerdNV+1zjDQ0uNweAX/vHT42faX0f0LnH7iHfdhcWgAbQj\r\n7oYfUz2Lbi+mQJqtbzLdAeOmx4yJ7H34jy4bEL+Vnjyt5WH1dai4KQjcJhld\r\nCk21691UlYdtiLpuJP7Y5MjeAY0ekiPrPOXDocQu9CikQL98BgasjAnx/udh\r\nDS1jsrl1nEAGcIfG5W29m/bZlXWHEX2fEbjvnEsefza2IhcMmV5Hz++JfelR\r\nmwCHIELOoqDdAQljov0JjHMKauMPfSJEiSVUiiQh3TSavGMx8ffH6FTrQ6LL\r\nFMxFQir1xd43K+oFxmqIVd22Ie1mrj89RYnzJ260LcZIMIMFbm1Lz6AyCiQn\r\nDqcavj2Y/cYrztu0OuEN16WkpqR0HNjq/3E46txMIOz6myvT3/VAnA/lvmOr\r\nMX/wXbmKdibFhshAlLpeLmoiGM2M7rX8j1hTgGsWLlA5V+DW2PfUWz2LcLdG\r\nbGNlhqyAy+SqmNJUxicxaaUSYGXvl7rDlGs=\r\n=vsjH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUBsy2uaM//Iz0jkWo+5k5dpjRC8nMDSgxUe4BvZS8gAIgMulOSvZqmCKJ/camNbtEVKX4fw5be9Y57HAHiFLrHpU="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.0.1_1647507884823_0.56742923352945"},"_hasShrinkwrap":false},"2.0.2":{"name":"tuple-database","version":"2.0.2","description":"Some features of this database:","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","level":"^7.0.1","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"f50d11cfa8e16aca3c60221bab0268bf7e5070ff","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.0.2","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-VHpJhz0EIH8+1WN+A5+yZwb7YUsTsvIwiqbNvi96z3RBPGvnAhy40iCfPnR5A373TVhQflvxsDCKJMlSkbDJzA==","shasum":"7b4f4905358612fc5b7c4ae05d8dbf42c202e56b","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.0.2.tgz","fileCount":150,"unpackedSize":462835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiM34RACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq1Zg/+ORTCloaWsPZ2sQrrxis+gEQEfVC/mv1xfQSZ8rgrNHQjYsWH\r\niWL+83/V9vIK22KbDXc9mR9s8u7CtYIgxlBjLIK8+12jtMtbE1BZze6fzBg3\r\n00JPLheqtiunwrdxaAjlQPCyj+QMvzznVPRJG79d5tyIrdqFzRbgq0Tq+Xtv\r\nuM4pjrxXJqq7LAxbI/FTRtkHi91ntQakAZc/lYXHZ1dkM22goRR/2kwOj5oI\r\n4+ht90xFaS/DlhrcBia5mDQ8ChSFkJfiqRJxWXNMv8xV2PpQq7gU5zF2mY10\r\nO2upOt2ae9jVVbGsuLJORu9PVekGkRCVPMl5w0tl5zgjneR2jaTbCX4f2tmA\r\nvt1SCOpNpv47eH1eLQrtmeMMquMtyCtCwPgXShk7NtEbEtG20IvOWI5sk5hI\r\njckeoIXwe2w8U82sBUUiz1Z8PAdluZ6ZVD0/ePnthAYG+ksjNeLJcKpEZtxH\r\nVw602usIgMJJ9WjsrXuLE/ZjJHAVhp5LqWUMoXx+KCorj6XMS4/yc0tEYZ6s\r\nFxcRK2M4Iu7oPpFT17w+GY+RL6kSQjhvZQFed/V5whs3Btc8+zCfN7q/rfLp\r\nQ2dCUYWVPdWpLdLTCWktT6F2rA4tGsNqwCCt4CHvFbuBhUeTtZyuMP1JBPV3\r\nTDZW7zkKUEfv5NGPIiYq8Pj+FvK40onSUlY=\r\n=SWCd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICSXHeW2o+AmDbWIbUgPctZZg+uMMzlAjoqNNhynYEBXAiEAzTj8bP9sJq3Ygr+/mg9RlNK8xTDNozGwXAQtP20mWbo="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.0.2_1647541777280_0.8749317321044017"},"_hasShrinkwrap":false},"2.0.4":{"name":"tuple-database","version":"2.0.4","description":"Some features of this database:","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","level":"^7.0.1","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"92496ec423f2a729c7884ea27b120675c9992035","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.0.4","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-hkaVkmZLAThMd1cJYCSX6yFd27ADN3gyEsTdC5B5TbdMgEJqDYlgOSd+5bvthw4jkJ2FUZhIKEIDGYNVbZFdNg==","shasum":"fa53830a873004d6aebe2f08b0e1f45dd3eff021","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.0.4.tgz","fileCount":166,"unpackedSize":506273,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCv34gsjjx8vtXx0/tDU/QmYJonTvvWIKB4pmCNZyUz6gIgXRG7GNw8ZX8IPii2Fx6F4fYM5ButcJKHO1cXtD4GBuU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiSONPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoXAA//clJlTI0m0z2yqe8ixGxuk6kuQ9KPwwnBOYKWGs0EznjSSUmx\r\nAGzt3dSHxNroAwhhmNuOMuZLGV0Jf9N7SIU/cw6HNCMx1h0kl5tyWaRs/T8r\r\nlECe8AEqCkkDZMgys+OG0NCT7cc2JTVoi79NryMZX+lCTI61yp+cYXK9Kcqi\r\nYvWtj5Jdh+RGRUq4KV+TSlwbNyfQS/ZaRntJW2NCVfAIsxIijpjsE2Zd7e3L\r\nH45ba04LU3hSzr+zGNbHKGnSK6hjN58w6E7FI/MBDYnov7/3hVFa4bHPpaJf\r\n5HFY12vVwtlc3Sq4UziRo+QMddc3jzv/bBX7sIlYRxb86SEbS2MPADbAlEWM\r\ncIZ4THU97Xf6BRetkjH0LezxLnhWQLllufxJN89rrJVA2hO/OpVXfIoaW+if\r\n5Sxi3cU4ByVEHucdts1tfbycWIcWmp3fQ0LRMCWKqnML33VLUsVKkRD+0Pv2\r\nZ131iNnHDoDOis6ICpM/jP8ygLkspcxQIvT4DoGXgBmND+SVuxicdzq2ucPU\r\nR6o3cxSHvpNKGqRSNiWwnQSaLKX2K7j0hPJ4ypKGLKhwjnMS5xNdwb4YJ6uX\r\nc1ZjD4TY2HKQp940aQSm6iDAYdAlPTLxJTh5481caKKliEFW+dDHmaiPMHP0\r\nQhiMhbXQD/0qkHORZvWsMjzhtesNqzVlWAs=\r\n=Xm9G\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.0.4_1648943951598_0.78332310996303"},"_hasShrinkwrap":false},"2.0.5":{"name":"tuple-database","version":"2.0.5","description":"Some features of this database:","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","level":"^7.0.1","react":"^17.0.1","react-dom":"^17.0.1"},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"88e88b792ad4db4e1cc569d63680271aacafcb2e","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.0.5","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-/YJWKa7OQKUV4N2WJ387lu+p3XfxFXTX1tgVOkXfAvhNiGL91oCaQ1BDICyXueiP5tnzl3xXvT1smTpaF9A/Sg==","shasum":"ff802d63e73ce918a70b41f302eb718dfec898d0","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.0.5.tgz","fileCount":166,"unpackedSize":506585,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDn52eGTuNX3gHrBwEfadPmixEkUWOR83HWS/bA2DV+oAIhAPtgzmU8gBj600Amek/BRTIXjVHHcaYZZVRVvL/05NVV"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiSOQnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo/rA/+PRjOB7cpIvkzCaeeDRzP5QKe1KVuA38PuGD6C6tigt9T5sVr\r\nXohD0skoUFH/s9FDm/1hxWiL+9gfesY9Uo/5nEcAvPCvPDsbM4gIq5wE9tCg\r\nm9adgb/IMAaTLis8xYSZn2wDpAtY7ZHd21wc4jURKQbkgQP8ejjgBWel9FT1\r\n1LG/IJPmvApY0H7zfFUs6DFNQxH+m/coC5QOKI6TT5SCTqpn7WlZhEaQ1b+i\r\nLkcbALzu3bfv2rpUjdr+HSW6VFoDUkcGlFEF0+sbealrKVrsx9ombR0YSOgC\r\nScK1Y0LGeVOeaGfWl7vxypaPY9Zqrjjm4Aom7KO/sG128sICrT7lrf2XNzK3\r\nfF1CZPZTIOPY5Euh5Yw3YLdvbYFWO0XB2zuQkK8DQGvSzIjAqMq0xIcnaXKL\r\ndqOLxnzPxT8+/71ZzhqsmPNLQz6wZqkYZfAax82hi0JyV4dOJWBrUsyRaRYO\r\ntzoc3qEVWonHSKXIxjzhw8/sMSw0KfeyndvbXR6c/yF6B60XanY4SO+y8kc+\r\nOn7y6Moi8Wl2hUMXhoTIqqhf0IaNumT+pIxG2GOC1d+TfA03F3nUYWhFgKgh\r\nFk69dVOr1WZFCJftBPGa168NgoSa/Ht7ryAKOQ0UmM/mrC+Zf3EyS9bwC43P\r\nZkFGWlwQdDqHS/jHdBBIfU+SXWDAzOYS5Y8=\r\n=gYV8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.0.5_1648944167117_0.7586798695969081"},"_hasShrinkwrap":false},"2.0.6":{"name":"tuple-database","version":"2.0.6","description":"Some features of this database:","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","level":"^7.0.1","react":"^17.0.1","react-dom":"^17.0.1"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"level":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"9e192de82b35b37bd1544c81bcc016a3571d8f1a","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.0.6","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-GJ9e2Xb635FVSeDrZJWmuzVnWcac5egpWOrRcWXUsGgAb8XTBDAPQ/yL/o4SYEpW1WIAgsucefIejXMz+CTmBA==","shasum":"6bee89597f58bde683fd313935eae8a56f80d23d","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.0.6.tgz","fileCount":174,"unpackedSize":512798,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAkKDUlWOiM1eskrLpJgjrNQpQaSdm5A/xyWT6KlblNAIgYcRoQQZRyQQoJxKo1jz+JSg5lXaJioWi5ur9S7RrNr0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiS2XtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/CA/+MgxvSoxPp2EarhyqXsbsE/cl5oQXlTJVzUZHo+Z2qyzRQX7h\r\ntVHjXuNrgZcPAp1Ajg8xnIIOnhh5rssw4Dpmbp6Yp+nLKqVxhCJMJQzMA4bO\r\n5IvBAO89bCN+oHW11SzKqUexfJc0FTWIY444taLWWy1vwdYzOMRogx5P41DS\r\nFAO+tSt3J5tjQdacONKU7mns93aMCZ5KGJAI5bLRXpZ8PqgCkTKLqwvxfCe9\r\nhqyO3BDztZ2pwzQxNboK3QUVRZeEgeQ66UJ9aIdBxyhMpHfTCwkJvZBoqeuA\r\nKKC9DbWSYol6Yi6Br42uLGJdzN3Yqy22R9vhYh9rYV+hgO7RKK2f1zfMyhcg\r\nvMhPP9YePrZS46/RRq3+bh7vx2U4RzRGIyG4lupXXYCHTeZWDegtm3peXCDy\r\nx+7sRaojvdw8+D+koykRF6o6SNorH25edCpKub2yDK/Y9KW1LJ1suGE0cQVN\r\nQ0g3JNxLrqjSbsFqViLYe7S5rlhBedRH0ucy0xeK8BEnY/DPU+ekB/xZ2Sv2\r\nJP2mX2YnmWk2KhYqtdRs37hR9Lyn2eTAtXSeIadOpDDcqaPN36X8WqYmvjt4\r\nEIfQYQp0e+nR+itN38jR/wSJd+CcpmDvgKff8fAmSCP7K7vZ0PVGJpjj52a+\r\nkun7gwEoI+KwGwnJiTXCBcJ/UcOpAw3ulHE=\r\n=dlWu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.0.6_1649108461078_0.32366966973702627"},"_hasShrinkwrap":false},"2.0.7":{"name":"tuple-database","version":"2.0.7","description":"Some features of this database:","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","level":"^7.0.1","react":"^17.0.1","react-dom":"^17.0.1"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"level":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"b5ddf929da6ce2429f53e96e84976b317109f8f2","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.0.7","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-uPa5DSCGbGiu4UizrA6Y80ydTFQ9wSek4cU7BnN6kT7blXsGDi863wZQZWVPuZ4VvODGUqiYgDnomH/eIVGz/A==","shasum":"eb4f3b5194532bb55c477f17d9563f0dddce0fa9","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.0.7.tgz","fileCount":174,"unpackedSize":514476,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtWKQ94zf517j2Gaen32/p9LnzTjLPUXB2yC93mgXU4gIgFagUY6m3XAKBCAYjJg163a5taeD1xU/HwNzZtJsjO54="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiS3toACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmphzg/9EgjxC4TynFWvJZZSJDHnhVDpOtu8hS6uukY/1E7kQrTM8oEn\r\nwsTAyS1IgBagtCPENXqlDFO3Rrgt/+diwgK7a5rr2kdh8UW+sQ88HiGbhnZL\r\ndfFIAvPy8GZgV2KUrmgAeIZRjiNj0yA3E/OivJT/RjdlBvRIsKN9bW5+g6yL\r\nakgcFQBXQPepPpHEWVU2l9LZXLNWkQhjtj5c5iwl+6vid4I6FtWftyaEaFAj\r\nV5axoASQLkq2FW1YrONJKyUupHiWbXgTBKSLaSrgqLLsi4J6WcNGTyp1gTZo\r\nYgoxfQ/XWZ76r6GjLd3bWho7KXjxBd6/8TK0lJzxC76c6Jrr6fFsk9GLuFzD\r\n+Ga8mVXvQmG1nYEi8ZnTGHVCVEL2DubOXcrEa1k4WatsaQD6ST57mfWyqNzx\r\nmulF+5T2tiubywOcu4EIdS4mbSexFiXnn1F3AoJHCas61M0y4I3AT5dCDL17\r\nwEeN6WyqiOpyxQWFS+L45etwXJNG67c9Fw3Gbea9ub7cLhnUbicyoU53b2jx\r\nlIFEX54LwEVGQKsdOGuZUIli11vILpDozLHKmx7oxdhGOsfYsIlXUj8D/t6n\r\nqYLPl+TGIRR7Eos1ybF+kxyJ4t0vCtokw4UELvPg6Dxke70UIXD70z3Tt3bB\r\nDNUbjZT7wPAeFT033YvHURuZnxqQ8Px5ZDc=\r\n=kVIv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.0.7_1649113960536_0.027738346793149793"},"_hasShrinkwrap":false},"2.0.8":{"name":"tuple-database","version":"2.0.8","description":"Some features of this database:","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","level":"^7.0.1","react":"^17.0.1","react-dom":"^17.0.1"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"level":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"65fd7dfbf4cb97794f5715b0938d95ba2e92574e","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.0.8","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-H3tEOKTTzLCtTFWlHodjTpAtaiaUBLUg5bKkOaC7+s9Zb8S2vaIQ4x5dW2WK7zsK+sO2/c/n+d6UdZzddM1zrg==","shasum":"6999bba547a6194ed51e640db74e1ded21c49c2b","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.0.8.tgz","fileCount":182,"unpackedSize":520869,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHvPsy9ZSsctu86j8+QkXlSgDEofEhnk6SouIT0sbmiLAiEA0NM62aWlyxcwLnZNiExUp+hoLdrIvVbQCVtkiAisvQw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiS4hkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq6sA//QvjOoPXkucngvzD0+2zENdjWqYuaFwOWzXPw/7E/27+5b2Vr\r\npnCgG2jcDApe44udrccqtJLRScnw8vau68jI5nQiZUIF4aiIrNpu7N3irex9\r\nhsz973CmvtvYXY/fcOsyexSo4ck1SBZ4pARvjo8uP8lolnOBLwQZDUK4KPoq\r\nNz6kBqkREsry6KxiOtjagir3Zc2pqcr/AIlChBKbUTkXegWZ7d23EHCeoi1A\r\nGPQjk37LF6l8FhhUvztB+faWVVoFdtuke2m8QsSMser4P02/aILVbFXlsgdM\r\nuc/VPhVqrvbZGs4Wqwv5Rl8wGM7QMiAeKiWYU/K3wz7jH8T+7Yvnkd3Dnfb3\r\nJi3LlsGp4V2cEp7NXcmRsqFW4RzXDY096cF2l4AfnoQPLp3gy3yn+PhoQaN/\r\nuy5QKqHU+rDvnajiO6aIGbFskmXsD4O3by+f01t03IyjIeuMje7XBzFyTu05\r\nt4IsO1Fc5TqxvA4pUnC8o/YpgcJwOGmpfkrj5qn91bqelqcckoliQ+QlxGWW\r\n/Yx9h5fL7bF83l1923Zj5cQ5FiBgZLCmGU4lYne7yWadLMt4mta7EisqBAhf\r\nqNNhdS1662Ub1HwwCSpIHOKldCI3mcPhUKPr+JYjq1vGBCOVNZa/2DRqe2mx\r\nTBRl33K3pVo/wqWTZYRM0rgp7F37blefdFA=\r\n=yuYo\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.0.8_1649117283850_0.8103802732300662"},"_hasShrinkwrap":false},"2.0.9":{"name":"tuple-database","version":"2.0.9","description":"Some features of this database:","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","level":"^7.0.1","react":"^17.0.1","react-dom":"^17.0.1"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"level":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"d9c55e8acaab39b5df7c0307e0a4a3f885111279","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.0.9","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-AitjGVTiqDssIpmRIqD7z+38t1BbPVGrl7cu2uLyKlLQy8294Ln7Dq/ULLXxb+rC333Eq8VhJzE3QVDVn1bM6g==","shasum":"b975b55a46dde5660af162bcd2f13f1ac32c0cc9","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.0.9.tgz","fileCount":182,"unpackedSize":520249,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFWbBZ7/L4ec/4hlbe7srsoumaPHhMHH2Mr2Cst0rgnQIgM4VYA1fqqcqul1XmdIFMMJOmqZs35wFRBFf60KucNHs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiS4nDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpdFw//edMtr6D+nNk4gdYIYkctoZt/2dp/89ddMoO+tG7jprrDCQw3\r\n1kyV4Ze/JRP1N/+KgK6sAFC7ybipdVG6fwpLWj8Exk37f5Jdga/Rg+GXxtHU\r\nW3dHmPpWbUEnVdohBMz6+2sEAIDPUOcy0MGB5m38cDEM+d0B5FNv7tJ0cAUS\r\nKqIW2bNxq/TIBqJL0vD/wMVYL454DK3FGqj5zlDibgCwWCxq0Gs1v56xIVcq\r\nuDSTPFCZKVUR1j4Nx7sMk/h7K+hTwgjmZb50MMxBUKHjUjunJMRBFxXZi9Ue\r\nSWSFpXRP6ZaI34BlY8i8qgwHk3+JA3tt94ctYF7PPX9qg+OxATfg1rR04T/0\r\n8vr2I9pCwt/XFa6oMNotSSmVyIACOY4GeHGs+KIyvoTeTQ7eh22qjos6bXhD\r\n0/TAh9OOIi/fO8zWdnwUWIGiHc9qbkGdUrJMil0XVVs4Ln2zfimW/Ngx214H\r\n98iv2O6eWopaS3n/wRFTR8Wd9QK6j0rbpZjVATBSjGx8H/LR8BPacKhxCAae\r\n/1ReRYnwLBPFTNCIyOHOoLcqSqr8cdSb5tO+WHQgbFSIy1STlNvjUUHzjua8\r\nKug1E+O2Fo65nAn5/yVJBlcjtmzayqLXFDSmZ6zQV2q2YQQhEeF3hkHfXYrX\r\nmF2qH/xVAkld8epS7nUbhhCXlJfC5NVPR2o=\r\n=LiPb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.0.9_1649117635300_0.01680022000546333"},"_hasShrinkwrap":false},"2.0.10":{"name":"tuple-database","version":"2.0.10","description":"Some features of this database:","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","react-dom":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"better-sqlite3":"^7.1.2","level":"^7.0.1","react":"^17.0.1","react-dom":"^17.0.1"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"level":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"b823f9c88ed5758d2681d2aeca5a94758a771f14","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.0.10","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-6nzNnWbNUHbF9QpazKKQpowWzIFXL1mCNoKPhb/BCLfQC5+v8s7lNyLa731eUCd98LoAbQU+Fm0+DszGTLt0qA==","shasum":"f69402babee942bd11a1b2f03aa46e29ac06d86e","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.0.10.tgz","fileCount":182,"unpackedSize":520253,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDmeez3Os5vK1rN1wBY9lFOMVzajT0hEO22zRF3gIJ2kAiEA97FA/1keFviBpHXOPD/QyyvpsLr4ad0I+2qHqvieM3g="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTjT3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrQNg//ZGB7NxQPE7d0nORvxnlrNHLSZtvuDg2qrikv/IIQ7/u7iw7c\r\nU/jZhcbdylky8ty1gxaqI3Oy1n1PwmUol0C0uzc6e/0dqCTfvseCvAlF6BVQ\r\nZQXPpLMarIfb+xcppJgPNZnhQRekG7zqUTy1fNl0qi/m15pgTcRxITEOYYs+\r\nqo32dCCWwdRv9lmvMmSuWdd1lgYfOj2RVMQ+TpoQ9jR9rsJEP+qhazMjbZDS\r\ny0DjVN+CUS9KGnN2VjivIP+pWyJLt9vtYhZ0Rb5TeOqT7wUduapZlTgCYK4a\r\nyKDN+RAQ/eOFk+xx9qCW7OzDHbexxRY5661Yy8yigvNcN6uThq+tj3/W66ay\r\nwVjIGl5sBaxi+9OoadtPslmAGhvYcdHZg2Jbyh93hZzPpg+sD8nNnXPLOnUi\r\nb8a7hJpnFHq70Zeq2LNEP1ErDdTcEViXiD1twyj5/WYgLIfR82lYZirHdUZZ\r\nXHK2hmMiElyUEcONBi5+GmlNOfoIMc8oBOOFY4OQ/nnnottouhVjbUChVOww\r\nODROJ7KiEYlnGOgCU6Er9a9GO4iQbOEyPiuOJG7x7bgaPEPOuCrDzS4n/sdF\r\nu7B0KTkWUbp77BiOX5L+zIZ2ujaJw8y6DS3qguSeQ7hPfLkiBpfRaKpRKgo4\r\nI54OQGSxieDZ7gJwWbXmqIoL1O99b9xxZ6A=\r\n=P+1B\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.0.10_1649292535047_0.07881437620625453"},"_hasShrinkwrap":false},"2.0.11":{"name":"tuple-database","version":"2.0.11","description":"Some features of this database:","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"4288bf7a8f3815474590f02f9f7638996b2fbaa0","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.0.11","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-i7DxlMxVJ79SMVdAlEv/UsMsK3LQh5ugLr3LXuyEtNK0sBnbIM7wPH0uRSnMy3zFFicr/aztlpQRJPcRJ8Zn4Q==","shasum":"356bff72dca11ee519467cde8c03ef82b6a9e505","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.0.11.tgz","fileCount":182,"unpackedSize":519988,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICMzWsQzxHoNzFn5h/1ynR1wKqvgpL209CJ5xBygdtpfAiA7l0Zy8jX3Kozy5ZliC5gqRBYEjE/s7yKPmd3E2dMS2w=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiVgtYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpr+RAAn6yCJkNd9Hm7pz9nAhn+EoxUxGWaPdMQ1qM3QqbXGQk24OdV\r\nmygx9rnJYX08fzZJK3CHs3H+9p4NmRTV2Xa9M8PkIuLR+AH/w1jCJBB2xhxz\r\nETJzk97jGouJTRD10htFPyCBvVuRcZ3jVlV08p7vi0T4008+Z0gx82+VvY20\r\n62WdlTJ/9rTJ7O4cdw22axsteCea7BOi0mZmKmwg/GEfA2sf7cCvfzGfknmK\r\nnln/jc4rKUQs3ljsWRgyRQHdN58RH/+Ia4v31RNB5T3WkcVhk5u8gFL5G8BQ\r\n7DlFVt1kjc9nZAeYiaTaEjYJgs5NWmPsLv/5r0qpSEA8R7HKxPgQnyPgKrFz\r\nt0Tex6iiG4hEa3OdlnlKIkt1o9PSHEB94KVl9hs612s+zp5UgMs+fuqUk6a1\r\nQ3YCYTlOW8Z3ioM3esv/HmpbS7vUtzu6JVXCju4+zr3fFlPf8/v7gTe/KWqy\r\neJsJBN4tDlny75xcPDHpPjYqLFa/i+f5pqaPWZ6JXgL1GzY4GT6zEPQs71Yj\r\nHXdIgSKaxeOAtDxbAbKLQrOx/8qxKfPOGSamolfAZ7hlnkKCmM7h7+0R7lrB\r\nF3cx4O0nHvIzS1ppzFioKRsDW403WMNHkeBTtqwHdgDyQyrfiz43bs7d+Z31\r\nqmtAJU2Fep9WUI54tk9KDNNUAe6/edwXwMo=\r\n=8ex3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.0.11_1649806168166_0.47257720236141165"},"_hasShrinkwrap":false},"2.0.12":{"name":"tuple-database","version":"2.0.12","description":"Some features of this database:","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"6e77d57427ab2b9d4d530761455ae5fe894584ce","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.0.12","_nodeVersion":"17.3.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-RcXYBbMHv3qa4BPP1YWh0jDRNvGFqyGi2yj6jKpqW92ihargr1HhxPh7BcTfl4y6nLk9kR1uj3mu+rVdEbEaYQ==","shasum":"777a29d40a509e7b7eb77690b210d77b36ec6d1e","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.0.12.tgz","fileCount":182,"unpackedSize":534235,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5uZSq8Zxh43iBdaSCG0VGZButLeHGqOC6kmjMOZoX8AIhAJXZGEVOWaUd1PXkCx5IzlJbSkCqMtkX9vssqlS8CwUQ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZxGaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpn/g//aztrOtfoqLlVaEiGfA3dgXThsW3Wd3Q6oGChb6F6pRVch1r0\r\nVZiUqC2UvowwVDDoQLHoAKaJTPsgRxs7RsmTwolNDl3CGuK/QF+8TtDrIQNn\r\nWy3Q+yLRi9BSvdsJfQCxG/ZjGdNdmh97T1tt7JFwSOIBpFw5EP+22OMoNd48\r\nJ1LTrI73NV2Svpe2M11mq8AjoOdFpQprNflNFqhkwh9rgEK/ubjfbmhJdYXi\r\nAbkGdkNFlXH7cmulr2sEI+ftSW1qii8r+8NsvGKeh0Hho7yioatMkklDUJ60\r\n94iCWxqSg5zsDkejY78jlyUagLTusjFQubGDDh/syXIFb4IETUUpzoXC/YzZ\r\nat8Vz6naMTlVpE3w+PNEvA8Ji2BgUxFiSHj9/VsPUNnD5RTNvx9ndelLE8/z\r\nERFf5fC4YL/wyCPApyStrS9fP6Q8xMQiwN4Q0xUKGutUdIusaFWcozI67eoR\r\nMUbGPCOghYwqTeiiqeDZqehm3RNNjgNnmEyWvaM+glQJCTxAYxZU7y1AnkIY\r\n60IOkPnY3D5CojQ/Evn1VxjOKmV+fm79pwtpnEQ/4Z8ef25XwLUzEgxQY85x\r\npaokWUh3UI0Cmi2BgtRVNX7Z3mA1gReko/j65X0XnHNcslPtBVx/wGrqwfbC\r\nhPEOmMwUrlimtroDTsU0zI2Ma5EbVmt2JVw=\r\n=54Gy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.0.12_1650921882015_0.8377014274438341"},"_hasShrinkwrap":false},"2.1.0":{"name":"tuple-database","version":"2.1.0","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"1b795fe0ea0804df096ccc2884a47c16bc387bcd","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.0","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-R1k3XY80OVjfLIjfnc3eb+aeFdgxgoGkYzN46u4KY3VBYLzB3x10bShiGzud9A6l7+li4WHG+Lm26cswu1nHKA==","shasum":"4eb2cc4fdda911a1d5d50268a5a22109f42b4686","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.0.tgz","fileCount":186,"unpackedSize":570468,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDd/k/vJC2O1T4QP5XYNnMnG73nBckWgU50s0cPV1bhsAIhAL7psJwv7PDs6qBak8s05vacudZXMcCDMi5Gr5IBTMC6"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJilBQrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr7cw/+J3sFR/IB9kGAGe9+hZs/cC3Fms+8Rwc/1J4RzZ85EoQOZoCw\r\nQ3IuyeLmMQgPRvQaH2WrvLljT2EPFZR1aplP4K8jKeAa34ucCEwafwAp2fU7\r\nqKDrzAPbR/DETupLGHJ9KebgQnUjWm02yoE4VaJFLOccD02Xf54wta46cEjj\r\n4E3iwDN44qdtbBjg2Oqvf/L9C8IK5lkzOPWh1Z7JqV880S62cY0CgOktXYjO\r\nMUejIW2amS/4gCT999vst0evd2Rw2yAhjI9DAvgwznErxZvBD9MUakYr8KUe\r\nBP48IJIXNKWtwqKgjzPyQKQDQEsLZHOzfhjLfR4y9pcdcevsKq/wScLGRr2R\r\n6nPxxW0zLsrqEknDqh3Bkepm4kRRbZmH2ubaA/BbhcKFzxP4+r0+Kr8d+IDP\r\n+0BHm8/baE1ypFjgxPJpddo2VRmv24r0iSTJp3qgd4hAuA0IPKf6Ub9wf7qt\r\n8sxtVAPNDCBlU+TsrCSIVdDo8foRRRY6GavxsoKsEezEFph2wDJUDZo7p8LN\r\nfOxAgP2PmjNsUtI0V3GdNTzFapopycbd4AQSUmIgtG4R8bAJ4pl7iIxXXhNi\r\ngAUTKerYkuUAb5sbLoVwc0Q7b+8wSfIbsOd3ULXmawAR3WJxWIp1nUqzTWfV\r\nhobJRmQHMoyuWyy5iwOU2FcVL3e+jm5+yNQ=\r\n=zbFQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.0_1653871659415_0.892177972787831"},"_hasShrinkwrap":false},"2.1.1":{"name":"tuple-database","version":"2.1.1","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"2d53bfe29d6a4f58b06147e1524ed998c98ff560","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.1","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-ZLjsecaA378mrSM4aEC6CrnR2XCoywiPQsaFsJzvtRfjjN55nwg6FKh/bsyt3ua1FwOMk1GGOwZFfkG/Yc23ug==","shasum":"fe0dae23c345421efb958e8eef2fd3a02f9928c0","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.1.tgz","fileCount":194,"unpackedSize":579844,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDoVAMH5+ock4tHCjM/1fFQE1unjMg2bz/g3RiJIE5yswIgTGNuImYkonNzp6zQvK1Q1T/P2WpYkD5VCb+mZuiYWak="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimEYjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrhMQ/+IjP+F7dBAqEmKQY8XGOUSd9ja2X4nR8eKI1pggp779XDhKVP\r\nJ1Gw85w6N5Qfw/IW5Y4kL7wRSLVzsz5HdWKQEkYmm5aOGagok/9JjYSd7vMB\r\nt0G1gycMEFbiFtLXYnYdE4l3hxsU+nfgMsQKiH7/SqEOSoxHV2fS/BtybQh3\r\nHnkeNgjDpY07mPrZ+JO9ANc92059InOz0MjMExYZr3huhwe3sstD66lMMy3w\r\nvCNuBu3QDz214QVPj5pe4sGmkIALzbjLUrc8roIzR0wEsHUM0ydqZCMua4Uv\r\nHCtzCqj+qLxFsoeJr+QWFNihs9JrqvAMr8fhz3Mum0ZdaB46IqYZzykwLI6T\r\nZTHgETJV2E/Q6On1XJNHy/FWqJvFPqOsuPfHzVGEffU5lXq83zq8K/BzA7vb\r\nN0A0zmWKgaMrhjc1SjLAER7/BS0sUDgfYzDTepxGgj00FxwdyEJVcipoyqTv\r\n5BsxcEC76+Vi786CJq5bOperzydQwcn+Y7MRLiZvbZfcm3C17Hvt5+10kiT7\r\nD1wId9kMpdb4Incrxu2dFdzYV4NFdsghTiSqGpW+V2wcbW+XXjY6C4NkGau6\r\ni1KR/LT8L9aLeEZVZooJ2+hh7ED0bfU4bIm8o1cQ26EBufsyN1ci8+z80tmK\r\nqpTeiptk2AmF9OIR+wK/EWlTp8Q/Al6u1Pg=\r\n=O9sd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.1_1654146594705_0.9678301714822801"},"_hasShrinkwrap":false},"2.1.2":{"name":"tuple-database","version":"2.1.2","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"2163809ecd6ef635f52c8ff9d3af69fbef88d26e","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.2","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-2mE49R25JE0pB/jkFHMfQ3wzkmDyVWUFNh/GT0JWdiibntZjefRXj6AfZzwbDWdkYGDz7QvZGxKEB8p6QSAUwA==","shasum":"0dde84b52efe5f694ca8a79f87e146a26c172195","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.2.tgz","fileCount":194,"unpackedSize":598556,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHdJTna85H2xDLLtvZb3h402W9t0bOMbFFYmiCc9pbWQAiBneYf1THdNNmp2ddNzpT0HVBTbhb3kdPCxrLSeXZlj6A=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimvdXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoeQQ/+K2JkJx0/4OJxjjvX8e/CEkbF9uPbMzLUTuuos+nsYxqx3Am7\r\nPFrUcZDH7SH2T5Ah+2PXgaotOrFl+B9VTbIEpomoLTLYp3KP8w8FxYz4aqLy\r\naftxSqLTvYGCEtwSBMuVbxuVsSAsSEw1hho2nb/QlVGHW8QcgiHvwbY+lfg0\r\nfkNa7rDQGUdH7PAlM7k6UJcq+DDGtBWnc+da7AY2UwenA+b7IZhNeFt36xlN\r\nKWhlzDpB6I4Ef6P3I5SUSUbyFov59Sfd9h1URSHCflSX79bkqKYh/f7Iy2wx\r\n9aDemilreJNd5a/4/YU3z6Lrumhd5ApVjydqhDKy/TTVcQ3GUFj6vnd0Y0NG\r\n13zmnXas42sAQDiko1iab0A/Wm4E1CAAs9Fgr/56KLh7Glm8qbMVj6DxI7Tu\r\n50Zf1YQPBey0G1F+f9zuR1xAfCsGm9sBQXztwnAqcQSsK+FW9AX5bbZd603S\r\nGTDLAJrKGfieVJnNgtvat+bI+j16C2LbWSWo1bIkR95pKjRyZOw/sNtChR2Y\r\nj7h4Tn2xC/SPrmhL5it2jjVcgLd/Ugw8p21Pjr4Q9paV+5uq8TF2tA1WL9G+\r\nSfYODS5ifBv9SYkCs69vVkpi+/mnxHdLekBungNaCxryootNFbra1PdK1OkJ\r\njxj5H83Oehb624lCHxpXKxvnrXYUUBbRH1M=\r\n=CuKL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.2_1654323030847_0.3683101509470592"},"_hasShrinkwrap":false},"2.1.3":{"name":"tuple-database","version":"2.1.3","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"d9018223b3ea1ac673948bc66ba17ddcb077393b","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.3","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-f945UHeLK50iUsqPlvQgJd6fryZXce3myRgkq83HExtwhWCn1f1PBsMslWgBo6Ts1DefGW/kkrlRZU2/ZiwW2w==","shasum":"441f599d4f7a8b19f550c19f88d9c614887dd105","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.3.tgz","fileCount":194,"unpackedSize":605602,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEZA9MOKLFFrMsVtklFLY4vnwJF4G1cUQy4izIhxUCcyAiB9UX3erfp8rq0WeiZADi6esRyq02Qb4AUZMv069p89Ow=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisAuKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpQAA/9ENEFnXw7MPMQzwC1600ndg066bG7yUyQ0ng+DYLtLsBvEPRm\r\nsUq0Hj+zw2yV1ZIgu/rNSA9fdovqgiJORq71M6FiU4UwrXbZ7CaY4RulAeUd\r\nRB9m4hhOGrkjNPub++7Me3NaDvGaqJr64VsoVgzAcKcj1gflGx6szMuBnLwh\r\nx4/vvEq8Xrnes7VRozbKu/wTSvYU651gk3FUHUAFC5TSOVx+yjRDX3O6a9QD\r\nYCZLmfs91b/UeFUodZAmpvbfqtqI41hdWfduvrtKI/sW7e0z48YbSTPzFoZp\r\nTsPJxLCx2v/Cc6sOjFXDs4D3K3IOnzPFgwjUwuWvo4UX+4OgmmuYVsREV1Fx\r\ng5K/Oz8/e5oTXYAALGRN10YEcix7hL4UInlahumo7y3QRihpua1GqwDDBGYd\r\nrhJG3/p4fNPOfr+w1cydnrjFm4dPvVXhHCrGhX5eiGOFfPObSxOEhPZTH/Dq\r\nvOvYsIo2obcs63kM7Zq9b6d0hW9wLppEIPA5i1Y/Lztmj1KuI7RAXNS30nyR\r\nnMR+L6wJxZZZCj04dk0AdlEvTgdJM87rPOH1feQ94BMZhR/DunZ952/iTsSl\r\nABJU8Qu+SPAsJeiqDGpHSKyFvZvo3V/jeRjD9Q2xvlqTsdKxxr01QUhYGgFn\r\nXmP1CPz3VMHSEpta6FBMjN211OcUsHKRmNg=\r\n=KXqP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.3_1655704458387_0.8217053474228337"},"_hasShrinkwrap":false},"2.1.4":{"name":"tuple-database","version":"2.1.4","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"2307ca572e336ee3cb29f99d2a28d74c88c51e57","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.4","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-dQKcmYt843lGppP7Xc7TZqPiepFuLEVPHuaos4NzaV089SyOaaRzR02IBw6QNm3lx57AcBoUu6kgt34efjzcWA==","shasum":"f0a6aeaa10b5a679e9ec876f076194a04c4ca865","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.4.tgz","fileCount":194,"unpackedSize":610143,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBMu1SAC2Wb2GkT81tfcDS9l8ZQLLJy4gIzlHQNQk76jAiB5qzA63a1MTTA+Nr5AUiNl4KfRx+/uqQJW6IzUiroUAA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiu/peACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqggRAAgSbstLL1r2j4UK3ee4w0fmFpaJl54qagRJ+KIY5zI99koFP7\r\nKkkDkofZr4HuW7RrgHR8+kgj+sk+whbZxjUS8FKJP2VGh6tew6jjEhrnE0yU\r\nIKB9ED6d4u7P+WXAJrrogDonl0hTL6TQSSdWchWC11lMX7GtDwkIm6wG4esl\r\n7eMpWb2deoK4WM0YpzP2Az1P3RslTnVMmrxNkBwIakXMD/pXoTqBalWqk7Yg\r\n1KId0ditkKTpCgrv/hOHuse4mMJ48Z7PC8BoH2w7tvKRjnLJ/re4f3sbNO7C\r\n7Rjd7Nqz+reBBTwjGpTCPkvCaM/JdlWraKRrTV7MhvNBAQ4SIHdrI0hS6S1G\r\n+MYtzjssOnwt6uSL3F4abaBzG5t5sl03LZ7j69zbnYM/EtCCTzOzHejSIjAG\r\nz5bdiVWYvdOneXYGX0k7gKlazowX5TfE1C2uh5T+47YpZFPz8YDEwbPby0fx\r\nQdm9zoeHPzQF9Gq4AO0Dngv4CLrYa3b4+OMvaWfYHrxrbtegaEPcPoPqccb1\r\n+SLYPtVjLlc66vk7ts//HdOdoFImdJlmO/bviskpyQl5xRlVhPJeKOHvt3oC\r\n3S/cHD/lRMEfxRJr/wj8hNu4qIaRFOMygHOzw1P9Jv+/jugv1pjkb93gUdqj\r\nJKX2gTnPYxeOCo1Gs8RzefmWBDRgnUl7I6k=\r\n=1boQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.4_1656486494595_0.6182344325131863"},"_hasShrinkwrap":false},"2.1.5":{"name":"tuple-database","version":"2.1.5","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"2af64f5085b42c73eeebb2a76688a73f206e929c","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.5","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-qigs+ShfNxcblLBgL4PHAd4SscPx2ANwt51ZUWGETkWV9GHWANQjktcSPPlmVf2zUKvfMIwzRoWrXXz62XQpaA==","shasum":"ad8553a016fd3d62e63be072bb8ffba523d53dd6","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.5.tgz","fileCount":194,"unpackedSize":611099,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjdNiAdPzuv53R+K1Og+rYp8ntkEjtu0fNkTniHNXSkgIgGx4qCQ/xg3awhXYbMDD1iYG9JUV6nBZ9FnkRK1rtirw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi12dYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrU1g//buJfPcMZj+QRvo8ZmcQF5tP7u+n31dWR15GiWcRW0FzJ/XEu\r\nICqpdFgJ9TzED0i3ycrL6zNZjHlm6DEgxXYglna9XfqztNKscqXhyvOnQDC+\r\nn3w9irpzdtXAcXj9+z06/9rVPJgI6wvsMVhSud6H83V59dVnbnTDrlXu1n0b\r\nNT1Lq4uHQbygfHNVYHth2bVvRyK6Aeg89vJW15UF1SoA1TznfAc1v+HRyVQp\r\nawbk9pj8lJ+0F847yZ2iLMqg8Cy7VhxKTvJS5RM1WiT3+3nuQMCEVp54VnwW\r\nhdyLYtORUMJ0CVaELEGBVMQOW2Y/xWml3mPv1nbnM28YMQ9EGC+bQOneQI6i\r\n5GF2DrlTxxquwb9A/0kWDAloH7F+OOY9BT+M3ac/OuZhDl2q8AqKnMTX9sMo\r\nRswVr8SDa/HJj9j/RbLe3VXVa6rNvsMCHNaSNyM8mXAJFAKtLDMMBLvQ4xx3\r\n5iDZX5+0xMw4xXyap9kMqQ7EAck8S8xnvgDlcsXUWaujP8JCxhh+QGUiHb1B\r\nOIit1eW2xdHxxO4bzYT+7yZOwGxRy21IHxUynzkGPJqZsJ693Pq+VuINRGk/\r\nxEl/U92JyDZbrut0kDccCucgTv9NwkIgFCd1yCKGsi5Camw+lGtLo+leCM5D\r\niUhvw1fzb3iVE3JssWS8CoZoMe/nrSLR1UU=\r\n=t6Fh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.5_1658283864459_0.17643960182605745"},"_hasShrinkwrap":false},"2.1.6":{"name":"tuple-database","version":"2.1.6","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"7389a256128f3cfdb2d7aca5ff66bba0ac9df53c","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.6","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-w09l12vxB7u+A0iF6n+j7v7BCRKG1gMxgPBccYZMztTvkVI26ZrHiRQrLZ/m2VqkeffhftJdbRB8/eTcjTvLzg==","shasum":"56d560a63e164be9db750e41215f9ca4f38d0de6","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.6.tgz","fileCount":253,"unpackedSize":836892,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRyQ09GplnTwnAkSHC/bNgr/ic7IjvbmdnyTjGa2f/KgIgPcRIqdBxjnm4zScO0ZIlpwVwSyyJlwxis+Q4NMG8+Gs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4ySJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqjVg/+JtGxgJW9LlOotsRelLut6svoyzxjaY2t3csS7C5u6/tuI/UY\r\n+1vsfLSq6WuhKaaln66WQ1DonbGJrqNqyYSOpRoRG6zNqssNSdCRRNWjYocu\r\n2gJzzFbN3do83weBr2Xw2gn3oirxmXLstCna7K4FRo+t+pMQ59/b78PnVdtV\r\nyxWVMR706tKH1e497oTkd0t/G3cUzpUIxUAh+MkCmEaLeDXUBdz6vvIETMS5\r\nN/nrIaJZRE+467WMxrMtzDknfhdwlCyd3pz1T09ENDxM6zPwet6EtSb3htb+\r\nGy/fIa9P496wq8aRPALnYa4nf6myZDZXLZK/kjj8skr/ZQ6Pr/wKL6XGeuvE\r\n5pnOHQk+2mq4wzP6iKdZHUtyky3iVo4RSTtpiJYudZleEv9B9ZDTc/WnvanV\r\nqTWgzzztLvqLb5tpYAjDdKEtQQD7Dfcwv2nGqTzdFhZbiWlaDiQSN9tOUcwC\r\nHZUHRlMX4w899cEWtNRzz/HRAncL2SWSA+YM/nuDSi6QwC4IorF9IzMCsII1\r\ncEBsYxOfyJ9oPnOW0TVJ6bnOfoZlvIOMDlntLmDry5BP5yvtOI7+u/wtXg8y\r\neG3OLl+P26ck6GD7QoNTpe7vQh6eiKfiEO9VLTQp4+ffpKrUFGwvWIUUk6U9\r\n5KVkbWbQD8S9o9XD++YHc8il++bPc6itzl4=\r\n=Krde\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.6_1659053192797_0.33396633063774717"},"_hasShrinkwrap":false},"2.1.7":{"name":"tuple-database","version":"2.1.7","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"a8f552ed42c4dd36c898061aaf3cd02608d38ce6","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.7","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-anZ2bX6pHX3UU8etKoi1ZaFhj6v0PXpQpsOPeXElSUmGFqK4oWKtx3uLalcysO9dikXESlw18fe1yyXGPgrr+g==","shasum":"f0fe833c9cf8aa776597027b7a9efaeba0cbd160","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.7.tgz","fileCount":194,"unpackedSize":611819,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjAvLlKp1YqfWPIcA5sy4C7OshEdPaUI7rRzMwnPXIAQIgGcaKYnF/he69pdITAYDFsfj/Bps37DV8ORpE+M8NH8I="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4yfAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr09xAAnV9yAFdcUwTDIoofQWhZvPN1kGVvyqx2PZyD+HvxYG2RcX6M\r\nDk/HZ4RUoukQ8XcAPDPUEWG1UfiXfNJkQKaTS0YYVe/RaRsyGhwdkutiS6sp\r\ntDtgnr77FbllQVjhrvbvwW7O8dGKt3PK/ekoWWecd6+LlH0g3oMYB0ibDgnA\r\nui3EzjI429GCrbq4NqMxMj6lwkVKdUzoJY/3NJOF58aPGVhKAmMb5bnMq/yF\r\nPXe6xBwGvFM2kMhz9iXuFwJEg6ozmsoOvCHmFcX1Zl3XXczaZXJg8TPJiScb\r\ntlyfRJM6Xsbd5Y3+3YHkEVJNtCFilHKw2CVskQgL9SHvvDPsMHt7WCO+h3qF\r\niY9upGcFM+GIpm6KqJxlwBypDr1s0tfdmhcMhkRqx2JTmczx/TzoDUs/3UPQ\r\nDf72RJfbM5uCYGObLJk+fn0M7muQjqzSCjV8O9/+hRkrMv4nVLqgMX1j90oJ\r\nEIdx+YE6XWz/NaYKtFxaW/BApTufvPgmcVwt+QngVKPlBgb3nUBRyNoV8GBZ\r\nppi0bmOE2iWhXcPSo2F75Uy0LZimwPhOPA8YThPPLsR0g+eqqvCyV7QmzGUV\r\nmn4PqS4Kc1A5yJ2/5GPSG5J9mV2TSAWX7k4m/92K1w3N3pw4OhE0FeSoby7Q\r\nI5FuobR0DgfEQ2lSpLrooUVE4hZ+4cE1aG4=\r\n=o+cQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.7_1659054014983_0.07905048605190657"},"_hasShrinkwrap":false},"2.1.9":{"name":"tuple-database","version":"2.1.9","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"3c586248156a79f8aed35f8878b626c31b6a6e03","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.9","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-Sbgjxk33UIvaJTU9+Ud2YORKRe5jwo0syd71yh4PG67LRBitKVyy/7+gnLSal9mD4waYrHqmnx/ECmsn566jVw==","shasum":"d427a2a3a56ec705aac33709bc6ab569a5cab2c0","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.9.tgz","fileCount":218,"unpackedSize":623112,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvqrCJBAa9eyGRi63IW3kz5AmM1xP8GMzDf+qkBcsEgQIgOjL9H5JMF0J/hBbAxEGI+roJjaNyKhsLASc6R25Zcl0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi40SiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmolDBAAmXh5kMqsWT6KF6ET19RQNgDsKx29lSi8Qc6EoOwwq676iYZA\r\ncuTCKbkPOlLw7itG/b4eDyqSM8gaBja2k3Xh4oDW3cCB33k5Kj9ngM1ey8a1\r\nTm0jfDMXwY1VMPVk8dH0a8EVnj/Su7KnzLC3EEDfTU51EageKoxaEKOREchZ\r\n8yBM51R41noyXrWPQrUjACi9HiEdrAWlmvEDIYZpw4f3TyZPWzVfUUjzPozT\r\n+sjd6kydJ/E/jWGn40uan2XWsvKHY1PJ2lNKWh0PuTsuwwLh6SXs1Q/FII8Z\r\nw37tQeYwAnK6F9MyR+LlA5jMWWN/iLugj3dzJBO+biVuANxow9arnAcdtiyD\r\noLXJkYFWmh3GUq6/4F7mhrosXb7Sols/Jy9tzhFPgrELNarKifZp1hZ6KAJj\r\nBb/DsIF2a2AKgIwewgy45BwO72CZNC2kBAHKi+nRdn2DDHSm9WaIQxiQkTmf\r\nw4WFLI/C8UoWyD8oljhpH2g4TD5rZdJmxLRsg7amzzcDG32KhpbzEHUPozW6\r\n+WtuxdWlMPqvy4j2l7+jbstdIG433ajLw5z3TDOd6iOn5s+UwuiOINsHm8tF\r\n71e08v0YCDZZuEyM1VvVt5wSSt6P2wPBEpg/+e1mAVzSnQu5CXPE5FZqMULy\r\nmry/AIZGNZjEUbwn8R5kdcmlRv/V4b70SB0=\r\n=M7B2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.9_1659061409894_0.6391073505446265"},"_hasShrinkwrap":false},"2.1.10":{"name":"tuple-database","version":"2.1.10","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"68ebc30ff246002e2be9bf51a9c1c953f20425ba","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.10","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-fnNfWvmodDAjVw3pKcge1Z3MATbr0ME7tkccgTp38eoTKfdl7mF87Xk46K4JerYkZoqcS6KrO+G0LjZeVRdVew==","shasum":"6ed2fafa4e1b3acc7afba9a8084c2d18b17c9d4f","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.10.tgz","fileCount":218,"unpackedSize":623871,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFgBYLJxW11Y/Q6rL8n+ythWUzFi6wTGxKRoeC9K4KZBAiEA6o83DJA2n9Pf/J7vSnecjF27oVCy03HtGb14A2u2mV8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi40lRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq4Hw/+PnQBfChLboPb54mOfVIIfs5YNdj/NjoisRq894fe7Rsgo6ey\r\nUYNQPzL4jFp0Q/E0xUj+4gX0hE+4TAWL5G0IPFFoNN2hofT63agpi/WmFV9Q\r\nDVnmWHC2p+yjonYoiebL/SdTKxP9n5v6laCfwqvViAhffPLXUziVznMNVJvs\r\n1pEMBchnHVt4lUabayGNzEG8T9XfxUBC/MUsuLtpmBpv5xIA2On4WDx3udWj\r\nN0YJJ/HuHyKRiiiGIfTExFkTpN4vpFdfZ8S2mTCGPELOT87RQlf89Ou+l5dn\r\neWAIH/TdCL/MByrIYOFF5iWfxKz26wKCzngHSVWZbcKBvqyLm2ebouQUL6dK\r\nSPIoiFNGu3wjvHUc/XWNTjTEWiZABnItm9TtiG8+nxG4I1Sp9VqTDq7NZq6l\r\nrccQ+1Tyn1j9zW0GaKJy9RJZD3u7AQu8Z7dLucIUr9qgkjRDbQX+vCbsXqG6\r\n6osfLkwIaq0QP3Fp7T4Q/KWHBOxX8653H3DmfRcc9K8jzU/pDqJmIYc4exIp\r\nDZtmmngrcgnVa17DPkuIfQaAZnwy55YZKomIq4pasavnhyZJ+V03KuqVIYYn\r\nYQ0sGVSMJP6Bwy19bq+iqlBiEFTPV3ekG6I0SvUh70qNeOtq/mQhY/R1nK9u\r\n9daVP0H1rKC+WLXL7cj43CqQoqBTMyRq/88=\r\n=RlCW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.10_1659062608619_0.8334272868001813"},"_hasShrinkwrap":false},"2.1.11":{"name":"tuple-database","version":"2.1.11","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"61968cde3446b2772e40b6c0b8c53b28b1a063e1","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.11","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-DP0G8GX4c9/Hkbfwc5slkXbwSDMB8BV27LNWj0vi3o1hiLAXPtbmpXgYJBrrutThbtLPw0lA8WumFX5KYDlOmA==","shasum":"9d8abdaecda01d9e36b9ecfa98db536197cc2056","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.11.tgz","fileCount":218,"unpackedSize":643686,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCD59BiM4WPZevsLmhl/UXcTxA4Wxjf72F4aR9dzRTewQIhALZlhL/55h4vx38iPRcmriMJq0bjL5uw55/8CvwxFiIz"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi40mVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+fA/+K1QD6C0c+0klsUWjG63Bfh0jBlfr+c8Xf9P3QYhrwh8omxpQ\r\nUAFhqAKUF2k0GdGtzK/ZB1zCkmmZ6rkb2Gh4XA971jWECNBTL3PgVamRjZJc\r\n2/dWVpzz04sNnyFEL0KY0PPh+/TXb28nm9hFMZtOMtrwOTrm+g9/yRtLE4bu\r\nRl2Ke1d7EYfOwprJk/siHgp8A66ZSdZWhfLMAYhycxZtEY6tr+XXZPEMzfJT\r\nCh4vS5cWbEEugVFHPp2pg2yLXlkEIPeswTN0mtWeo0VGI9wlR8zgTSEnFKWZ\r\ny2i9AMMfHTXDddJy950Pjjq5E46nN1bXUGNr5+MTfvmqrPGCWciTRnvGMr1I\r\nZI2cqu8eX59gFTlxfPkigNChc2EqUhcsbk4TkZwfm9uMC4f/wnROcGas1XK8\r\nnyE8qPWrvXppmnFPshNq5gQCP3eNW6YJOHj2JbG8k6W3J/Zy5VYTwGfte/Pe\r\nWFoZb9aSyCO4rgLuSMkOg0JdM9Cy0/o+Xnl+wvRDdy8bYTvdXaugVpnlBE7O\r\n25u5p0m5s4v63e9o+ASuRIM0Dztv6o2bp9OGDnS7otRv5TjAaD2AQCMNczmU\r\nXw8au3jPLiItXhpvqOXz9KbeSq5D9wUwpkzuwEQmjwllCa80feoY1e1EmcY6\r\novRqstzhWejAVgnyuUC5UBKTwWDR+Vk3hh0=\r\n=Ixct\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.11_1659062676833_0.4860207689932705"},"_hasShrinkwrap":false},"2.1.12":{"name":"tuple-database","version":"2.1.12","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"020294297e26d4f1446c627b3c9e475b0aba5f02","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.12","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-AF8gPxKv6Yoj3Ikxxj6i7/nMrRk20PjpWDGHYnr+qI1l4lT0VMWya6gaSTwgRx4x5wcTmUMMUK3O/dNWfD414g==","shasum":"dbbf3eac4875db4781e61d937a4b1f60f1fc97d9","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.12.tgz","fileCount":218,"unpackedSize":643734,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYLLEdRiB+H/w8Mi3PYeG1NGWD8p/hUHiAFSRYhdML+wIgFxNDcipzmi1Ibyw0hHxW/CNXXRUdcDTmq8o160zLdfw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi40rxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrzLw//W/eaCvogh5RVWftln+TWXVQrAo7H8V4Bnt+98ugnsgm1wxDj\r\nc3/Yogkbx3ORKPelct9oHJmiCv7/aNiurwW4oPOYJf+ekRNeoUwKThFImhq/\r\ncTLDUFD8Ef/+3rcsQn5TvFzompgs9WXnM1yGszidEoK8zcg130q3t6gKdwtF\r\n+n6J1y6R9L1JwDLbEZFL8lMCNlcQKbG0K1s0kUm2kvZ6xPLkUmGCnqvggqc9\r\nVMfhg6vPhcNOhsGH6iDSMXG/I6Bd3PD2tZSAc2M6J2hSaOwZa8+1INYRNe+/\r\n39KsQjoWLlfKqAuqgByxrIBrU1yHqxzVh9WOsragta38qgS4Qt31gbUp5Jgi\r\nyCGAowsHWICPG3Mhmi1AzmE6OmrDWZKAiyWPNlfw0opJQslrCjmCAlzw0gVh\r\nfTOZq+/WxE1q6dmNuU1Vg4xYYU0Vqkzl5p8SJ3tJjfle7lpLVGBbsdEF3x18\r\n9jClyLI8ut8Z4xUo5K9nLH5sYMR5/Doz964VdOIdyjIGAxGA4S5Cotxl5atY\r\ntStQV/9IEFq+z10FNrTXLtbsy/iYz3ElfSqzLaD84t1awARY1jrIeqrEjLXv\r\nz3eMR6m0Ov/t8zLhHAs/Q+wRCbFggNyfHEk5cVUO23VWw06FQ05yMr30q6uJ\r\nlqrGxTpMh/gyY94vl3jvUzS1KcuyDXMJwCc=\r\n=bg9+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.12_1659063025152_0.34861461436409047"},"_hasShrinkwrap":false},"2.1.13":{"name":"tuple-database","version":"2.1.13","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"fc2e2aa5a921e4211292cec1d4f4b33ce0a5d30a","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.13","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-KxWfvVUvHzzpf2RtZPDJYr2H3aCRnx/Si72IExV9Y2T1GJw/KFZh6JHfzY4u72rAZhJY2AlfOQVW53itxzXDrw==","shasum":"8b4cb897abc80cc5ecb4667b84b1e78843924858","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.13.tgz","fileCount":218,"unpackedSize":643731,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEfve4HcLJC8vKyylVVP2lv3gLM8/BZhMY3K7Kpu1gouAiBi/nEHS9xkvV4QWICxDO1X+ZXCT5ZuLoZzfcRjYonEhQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi40tcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrA1Q//UvpLOCrhdxag1AwPvQg3qk28XlvyqWUvGIs2xCDh9f7lZzWQ\r\nGXXbZqINoh6Q1WvPe82plTXS7ruC688Ct0Kltwo+y7x2UZkHnL4OlLN895sH\r\nLInKovHVmdesenvrMexH5rYNZuw0qqGrGRFAr65UTfnNSx9V2LTBVf6ukjis\r\nD2k2JPw6Vm520+geSFjSU+DMlJ79FFot2JUdOTqk2ZbDRQDW4KdEOZlkG4Dk\r\nUrwVQO5IHvS5SbyU6HOUc6rdPHbFy5uqF+MHknp+TV4a9MLV+LpdiIzqtDbt\r\nFaIOZjzqgegrGERhw3UoGWw7PlWv9IMxyDkoTF7Q55ZLt8UCQslcZTYW6YX3\r\nJ6XatMvtZwQzQnrGQlACPlEDOYYIKycIMa2ZU+Vuii+DCRJhUiEQmtvxNC6P\r\njmVDlvGIGw48vtR6k9Jib7LKw3Zfp3fmNnwUAucAHWcSKN4iHtf/j4RdtKPT\r\nY/iI4oRO1IAMJExAdq4f7OOjq2slsNQJJkCgNp+SUfihZDxPqrU1D48YevyZ\r\nUXsiGSzeq6h+eAFyarXOwU5QS+LWF7PVB+nke/fqGM6qRyO1k0WWXufNevXT\r\nm2s370Bz+hfaD5uMEUqSvucvU7t1+RyJJDP5cVT202T7lMTa66gYjFzrg3Rs\r\ne95waZLjsnvuc9rhRAU0pkBdwsf4mEmnFgU=\r\n=KRin\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.13_1659063132728_0.3647303624452618"},"_hasShrinkwrap":false},"2.1.14":{"name":"tuple-database","version":"2.1.14","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"e77b6044107f478b10775c125a199af9210c919e","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.14","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-YlBz/GsI2SaoT19MdxmCbjQXXNsKIoH1B5FsoR7Cy3SVu2DAoN1A4nRzQPLwHMgIiITEQ/psxU7XDVJ3nbeTmg==","shasum":"593c9e5a1f923a12d3883f8d6c567c0d58b4a2e5","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.14.tgz","fileCount":218,"unpackedSize":643827,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSwIt1wrV5IF55qY0DrrETosMXtQQyJF86W9vRN7RgIgIgEoLxLBlIzmphsGp+XbVMD12Wzf9111j/C1094AsZxMM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi5EEiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqrnBAAjlku233C/XQbU0BsNz0EFVuSegGsHwPjnPsLR9HqdMtjNBA4\r\nnSom+n0ncj5lrZ+kVMmGYHFAKUYkfV124I3cH+nsiAyszjSkokLRx4f0IuIO\r\neczuSG5SG+2iUpHBzaZyvqDenBUTKbX0H2IzNtPQ1t7UArsmWviDymeeMTKH\r\nhalZ9/o2Mj3wdE/OGgZXq2BmW6w3E7W3QlXlnCFzpXmdOQpWPu4kZCpckeaK\r\nETLfh75EGSu2utBpOewHppONDyDoEBagHPu7DxPrMdMlID1m7TUwjWrrk4Kv\r\nJeff2oaO7T1h7ABT2qkGGwWqF+jfQafh19vCSEFvo0kMv1TABQ5quAJpccxn\r\nH1CZt7tPZCZ/sZ3Tvu5X30x/wKCAp0+jTQgmENj+3ZVApUUvQ756C8xgir6E\r\nLGTO1Uf2eHX/ZW6oj0HFsV3QHAXmrj/rqzxtl7wKl1djrWPpZl/1ST4jf92b\r\nPyQwRMptXaqE/E6iiKrBCC/Lm3CERlrgN+YvAAtRekzt+FunxcWXt5xzUHi9\r\nARM1JSFA0nsLNTTbOy/TmKdAtC9wpkVGhODw45iLuaMBkcN8+lC5RhVYUbzV\r\nSmn1lriJxUprrS/8mayvgQBt389ADnR1vdfwXKSCkvEFfk4+zSPcbPHgu/Lm\r\ntg0qQa224JIOJeYsEArPFYs32Jx+sSNFrM0=\r\n=9oFD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.14_1659126050303_0.5856197749982104"},"_hasShrinkwrap":false},"2.1.15":{"name":"tuple-database","version":"2.1.15","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"78a9da7811855177d58f5db0cdd7bbbb77dadf30","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.15","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-gv6U98EyWWvVb6MDKFdCmEbd3rQ16r4Zd4Ae4LHmfcyIQFogZO3XbHy5r0OXCO3TL2TidmdghvhlnWMJl1aIFw==","shasum":"8e726a070c6c8bfe7534b2e1aa62b305c9f039c6","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.15.tgz","fileCount":222,"unpackedSize":649233,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMrQxtxLwKxkm02BcXhNUs627a0RVUBfWVwkNiEwSuBAIhAJUsIVDHxWEdC+CopIZMLfpO9bqFyTK1r+iXdRYmrDLP"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6rS0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrzHw/7BAagnC/YfrZbtYs0KHp+OxMCO+UqWRb0Wg4btMLJ5LIuusQt\r\n5B836iRn7tSRBY7xti9zAYEBsDwRpXr7XvagcIxcUo6dUgBZwkfv28jEES71\r\nJ8gvfqtJZqAdmh7KFdJxpPP7ItdL3WvopvS6MkTe9EsUV/AZAVHEajN2GjKq\r\nS03wzyFPPupiN4nUvp8fZ+V7Cskm+WPw+apBwsG/eyj+TCSFEXvQabYnulS1\r\npro+H9bw0h4yRdOUCKQIBs/TdnVb2IfMMZyudvTwiPUy2xqvBNn2+wwMnd23\r\n+e88qDudjDMOypYHGSMxqnASkKrHyNAlzELz4GvNpBViYOCWO8KimiuveOSz\r\nACwpr41AZ9tcpEnnxXxuNC5Z9i48vS5B9RSDC5axYFn7WKZ+oFNPF7turlA2\r\nMOHspe8tJwWslVkQh6aLdHV1Z5H8GAIAPkpnNKPaSrWQI0HS/NP6CoVNwFjs\r\nNNVYoEp4aqmQEUP9kqX1SRGHSEBh319QgpGyNR7zganOdVLdfq7Plh+30gZh\r\nuOe7luNz4EEccjGJuDxdYd1bFy+ZAHwTMi/GzkbqNKMxb3MUHVl5atd5HD7N\r\nAprbWa5zBNA/ikpyPGNVfJCGji2CfdxqORrN6u2jjYlHYC48KfurRSvfhEuH\r\nhAzUm619g/FCKfRRHsIrQyYTZBSVMkwUth8=\r\n=nSIa\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.15_1659548852595_0.6952925934314729"},"_hasShrinkwrap":false},"2.1.16":{"name":"tuple-database","version":"2.1.16","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"57903119bee02c4f1c9ebf8f9d06be6a1ccdc781","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.16","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-BfG/1BcxvIum5AX0FVGwAaqNFzKpASnJJD2y2rhwKRLfoq2YduEq6LRCGL+pbvf7dBFO+GzYvhZp/Pq+h6fweA==","shasum":"e7c7b345aa8275374cc7aba528d1542a66a93c70","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.16.tgz","fileCount":222,"unpackedSize":649623,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDCJdb/abGlw3y+iE/WyX09obNM7SNuwf0OyfMjAGx25AiA5ivowPb8We0kpGj/60cuSPI0T6mL1y8E/7BLDaAM4HQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6rmlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoYlg/8CLCfiOUXcIOaDZr1tONY6Yufa5Y0kPNT+DTbU0PLEMtXY0NB\r\nvPYug1rYY6RsyLc6+dEWKoRW8lKZCMaTRwPQFSyn4XcXE2uU1hA7n+1XXwiV\r\n6PTMUZ3NxZKny+I4JG/+s4pW+rbjOCER69mcpiXG4H+yVdXnzON83PIt9fil\r\nBtU6opomva+dDXHVmQoP0GOfUen03l1+AOmR/jgbSKt5QfqW4Hpzz3Zrt3eC\r\nMO4ilyWtkHnwh3v96mYfbM152f4K33dTwqoMqAGbb6sQWidM18MXGvcwXdwf\r\nFxep6l1bkRyCq3R5wlEOu9cN26sCaxPZK6Va3ZUUr1l39xDHbBLJ1KIWoaKV\r\nqbnhRGEp4+g5QRh2tufR0iT8gVY6quQiQozHcbn7NYedBzwsF0bJxKSpoDbM\r\nv+Rb5vsg+QTBWdJpt6tslXDvXdabi9UfaG3woFyaBtTt3cEUQZ+QSoUnrD3C\r\n7AygtivK29+RMriRrbzZGMAD1LcrLgOjck3i6t66bV0DfcmWkhxKlrDLfDvc\r\nNVfRjVsP3w0k+P/wVWkvsyvbHbE1dIO0M0bz0WF8vC3qLU5gEH9ek1WxJV5H\r\nafkzX/pEJ//XCdlufQHyL7x9bXUnxUL7Sc9+V6f4ryPeXJMljJzsv5QoUmmw\r\nIowWoR8sLfaN3xVTYvkWjteqHsV5NiLqwRo=\r\n=jMZU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.16_1659550117520_0.4798585575564607"},"_hasShrinkwrap":false},"2.1.17":{"name":"tuple-database","version":"2.1.17","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"7870dcf71d625aa8e245bf38fe285801407368dd","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.17","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-7eqpPSwmWQbu2izyaWm3zZ+PL9ay6sDn4yEZho6f6+ZiSy2yX5Pc1CL1QYuXDdrFskUdhG/GSWP/WxWu2Vr9rA==","shasum":"969b94a1a4f4aa3af79591bd21841760b3857b2f","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.17.tgz","fileCount":230,"unpackedSize":667981,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCadXmEjQprvjHIQTBu9so4AZrhAYpY4n+yDfY8vLVquAIgaP4/Y8vxBDnFctrjPofFt7OaxPtgg1BWEybzjAwjVrM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjIMyPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqY6A/+I5cOJEOlCdJ3ABtKZ98bfhduNlYNEqL2RduzCggYpcQm4sqK\r\neGyIlk3l9GzLKy5MhnCnDxLIviDxmMT1kW+PZEmgm2cVIqC83vn+sW4NaWUw\r\nxamAgvnB99N1k21IbE149w7auzGRSTnCbaIGRrOPHwQuxBYqCmENEpdzgFmO\r\nDggAwNvpsyA2VlTSLkl/VCNwz4pJRXIrBho+yyI2GBVk94b1+CExKIzSdRNO\r\njzfA4WpURo7B6BlQX1dAsdh2dulkQGI10/sxzUraRscx9Bl9Z/cT5WS8Yo3z\r\n3g9ubsIeHCbrvbJT7FepmqA7YkKyCBhR1VJamBH8G5lHRrlMV2vTYpMjXmrC\r\n3+zIm3eHP6EC/7qT/0pZ8us+5YYKEp5ZdoRawlAHJv4NtmlPFwbE8dDAmpBH\r\nrX4lT9VzShjJlBEfoD/bUggViV/qpCLBrqwCxO9r0qnYZh86QiYYy512NXyM\r\nxNVUu0MU9ysKM5pOMy+LgCqic3ctz9B/eBSBXL212Q2sqx5Qh+GmtHRnnWt3\r\n0MVzi/xZBqiCqIRMVC4pkuOx48UicKRVZ95kACNz0eHkPAcp4Rz5/N4y9Vmy\r\nUmAV2pfRYqFNX0itKQfpt+dayuLG5cNo9qtNf53DIX2aBtRB+jKd7YCixrTx\r\nqHrsaUi//F+mq1ugpDiLph8ek86Q5fp453U=\r\n=uM+q\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.17_1663093902737_0.03356378122623305"},"_hasShrinkwrap":false},"2.1.18":{"name":"tuple-database","version":"2.1.18","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^5.4.1","@types/fs-extra":"^9.0.8","@types/level":"^6.0.0","@types/lodash":"^4.14.168","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^14.14.31","@types/react":"^17.0.2","better-sqlite3":"^7.1.2","fake-indexeddb":"^3.1.7","idb":"^7.0.1","level":"^7.0.1","mocha":"^8.3.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.9.0","prettier":"^2.2.1","react":"^17.0.1","ts-node":"^9.1.1","typescript":"^4.4.3"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^1.2.1","fs-extra":"^9.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^8.3.2"},"types":"./main.d.ts","gitHead":"e7a8fafcf8babcbc512aaabf405664cbee459825","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.18","_nodeVersion":"18.11.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-AbqeQ1NNVlarn4Rg9f/W03KZ6LTlVsGjrqd4YzjfCArYv5Rg6zJ5znmMGzdH1UNGz6Jktzh7dnA79FlhKc1X1Q==","shasum":"26c98929d46d9ab807161ab0edf06f353fd6c070","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.18.tgz","fileCount":230,"unpackedSize":667734,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDjqNC6vPoM0fK5mric0HfdJZNBF29r4Yv3I52A0+nZAAiAVjan++1jz013gu5WurcO9YGUJL+pU8+wqFARxn5FjGg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjoLwIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoA6RAAoLJiDMIflb97j011IU3jdd+U8YX0Wmt1XimoOiHVimgiy99Z\r\naYlV6/9KkWjsImI8qV+yj7kzpyJ2hGKU/c+k69AKPsQPnKSEBRhln3LaJ1/B\r\nFSwSjhkffOHG6y2BWXXTjtxzPYbIqnCL5H4kq6QJWJH8C6H0V2Y4XrkIyr/q\r\nFeelSlc77Qg+sz2pLWTTl7poU/x1gFjwvJabtTl2jdtN+oxB8UVQO0DZyHKH\r\nL5l0veGBZqG3TWv2eInhy2/HqYaKYOlSxd8UHKol9xkLZGs0PMMIGzw4S71Y\r\nsPvfi86xB15vUA0F+//W7+0fIYVFQlwRYBc0qV/Rvvnp9y9rmb8LeLdO+iSv\r\n3k+DTFy0KdVy9sWbC8JCjn7dz9peSeYCIhHELHHQRiUJiacM2CF3ci0KbZ9r\r\nfLzvSsaYIMhkg7qsAect/K+U4Vr5XKV0rRo8OcyO9g2Gl9Lguc+UFpJ+VzKr\r\njgBrPQunFIG1cSxEaj4KKJiph0A8WG6riJNbi/bY+1f7AUIppIs66r1+qKVV\r\nLoG0b1cGiKdbJgEhQEJeecCxCQz/IYwLvoVh6EIWgeGHzVYShpTa6XM+XKt7\r\nm4CV0hE/1qQLgHIsS+PQoaseRsgdm2aqiEQGv5sXf9701hKawOUOk+owkLEg\r\nypwPQqHWooKLYp3qYZyxWBXAXRHxvG6880Q=\r\n=uIkj\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.18_1671478279937_0.06316457042510915"},"_hasShrinkwrap":false},"2.1.19":{"name":"tuple-database","version":"2.1.19","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^7.6.3","@types/fs-extra":"^11.0.1","@types/level":"^6.0.1","@types/lodash":"^4.14.191","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^18.11.18","@types/react":"^18.0.26","better-sqlite3":"^8.0.1","fake-indexeddb":"^4.0.1","idb":"^7.1.1","level":"^8.0.0","mocha":"^10.2.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.10.0","prettier":"^2.8.2","react":"^18.2.0","ts-node":"^10.9.1","typescript":"^4.9.4"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^3.1.0","fs-extra":"^11.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^9.0.0"},"types":"./main.d.ts","gitHead":"5a6708d08d23498aa758cc30a332e7f792938934","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.1.19","_nodeVersion":"19.3.0","_npmVersion":"9.2.0","dist":{"integrity":"sha512-q8+8UXlyV/lUos1eNkcXd1oblTyTmH+Jy15PVbulZnVX7eG9im5n6NdvtisGhGmh0gdZvNVurzbuHHSzbiO1eg==","shasum":"ae0eefaab84140929c51839bd0e151ce0308993e","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.1.19.tgz","fileCount":234,"unpackedSize":672395,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAT9mCsqBrH/CI31ouN/T3Q7LdXLy7dAqse9uCua5FReAiALJcAfA6Djy9IJ18JxstGWhbo/vqarexLxbilOeC2zJQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvgkbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo52Q//YvDDtcv6PD5foBrO5TNj5hwgJ8xXkvc5iW0QLgELilQ572+T\r\nIeSHK22HlJ5mKgCwG92Jd7ueSb36oKgK/TIImlvGaDwEcMOQqEUfd2l6QRdQ\r\nvPk6j/Kp4ezFDhdO48+noZ4t616NcDvUqzRmV+mOHJ5jHohVpKX0VVes4dSC\r\n3ZKsqY3ba9DVVaMmhyzOmtn17IL8mEUNblwyNNpT2MHOH813mcm5/toBowbs\r\nxNWBYu3ZNiSRpKitXzc3Fu+VcEjuetAojCCIr9MSKbmbA9robLrAQTOkNAQS\r\n+738sCMzWOo3FVO+KFPDEVyf2oIZrWbZAqkt1svMhGMspqSccB0exBxPCmfI\r\nSQ6HuYWyawF6DyjYEQt/05Li67VeBhSXLyXEu2kAyBco7jD1TTWdldYlje9A\r\nVo0Rnlo9psdzw7Tkjpvh622eG+XFZwV2KWwCXBoxXMkryEHsKMKvML9wDEoa\r\nCNhlWGZ4Egz+dmn9knVlF4YzWLky9OyjIt57q8L38Fv+sFpoFPuNIDWBraG7\r\nNWHFiI9KkLB032JcjEJYkkHeqXV9nDSVMS0cf4R6ak5289S2fR4ga/N+C09q\r\nrMvcN8iMblD21CRA/JClUrH2ACA0luJeUXBoQ8Vc6zXynodksMSCb68tLsT1\r\n8ETuJbAUkdBFCfKjxGNhUvW/fKLT90UZ/S8=\r\n=NaWw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.1.19_1673398555662_0.2473476835015651"},"_hasShrinkwrap":false},"2.2.0":{"name":"tuple-database","version":"2.2.0","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^7.6.3","@types/fs-extra":"^11.0.1","@types/level":"^6.0.1","@types/lodash":"^4.14.191","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^18.11.18","@types/react":"^18.0.26","better-sqlite3":"^8.0.1","fake-indexeddb":"^4.0.1","idb":"^7.1.1","level":"^8.0.0","mocha":"^10.2.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.10.0","prettier":"^2.8.2","react":"^18.2.0","ts-node":"^10.9.1","typescript":"^4.9.4"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^3.1.0","fs-extra":"^11.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^9.0.0"},"license":"MIT","types":"./main.d.ts","gitHead":"3dccb12e7a1527d3a06d18745c50df0661f362ae","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_id":"tuple-database@2.2.0","_nodeVersion":"19.4.0","_npmVersion":"9.2.0","dist":{"integrity":"sha512-sovO193K6NhAXmuc/1eFpfZ0iZSPf4NMi1X4bfK1Q//9DrBICRL1Cn3tOSjLsWYIG5wqOzhM7voUfne7RmSkdA==","shasum":"93ac61968720401cec701db38e89a42b22f988ee","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.2.0.tgz","fileCount":234,"unpackedSize":675824,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdySIgwnN0NQUV5SS7CW/rZ3ruIxUJyQhfok1FZNbEwgIgQ/+TSPZZ7gtM+D4godVM37GkwVgCysAtQxv5H3618CY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIyrpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmodlRAAgsW1BhS43J+/dd1sRiXFPv1bMazaW2PuNiPyPtgGezNAg4ed\r\nEWa+Ef/5B96eLtzfw7C0xZ6J/RKimG9iPoiBJE3OASHpB8R36kBk4J7pN2Sw\r\ntj+zUPAwAfJcHgPuY34QJJdZQ0kmxWsl7/hDkFpov0m+AeXAVNGkxQ8Gx/d7\r\nB1IAOV5uRfHAmHI75gll4gtZVca/bnDagCg94lZLM8wkb7F0UI1Oxv+UmA43\r\nAPCw7xjNcefbbt96AUjaRtCB4x7BOwQEQviUnJ8mb7yTgq2IhqK8HXyzfI12\r\nK9l+OjoHjZqjc0veTMS9IuamGehkfdrI/EDyEkIB5ytez3jZbd1mJaIDSI37\r\ngg6Vncnu8iOqeaonfeMRCgvY4uPHKnNoV1f8uT7S5VgUq00/NoT2kdnyz11L\r\nXbWoaUQJcBCfat673gPpUQGX1+BxZsxMJO+OmPTWnB5fFjwQt6AEMns+hIhb\r\nIZrkzU43evYxmoXGEreSk71TONpL9kQhciheTq3Ive5Ygg80W4NhIXgMF0A4\r\nBGYN+xN01dUxnnivUOUGjsfLLuuhGUHrTyG39v5plfw+qlAYyNos6086k8Tj\r\n5Z8xi7XHV+7qbc9JdZm5LXHpTWg8wJ6+lGZwgXNTFU8TgJDp8KDCb/ZkcGB/\r\nZwgELRVi2flQG6DzRlmhfD4FPosmFy3wQL8=\r\n=8f4M\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.2.0_1680026345423_0.6927772489116253"},"_hasShrinkwrap":false},"2.2.2":{"name":"tuple-database","version":"2.2.2","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^7.6.3","@types/fs-extra":"^11.0.1","@types/level":"^6.0.1","@types/lodash":"^4.14.191","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^18.11.18","@types/react":"^18.0.26","better-sqlite3":"^8.0.1","fake-indexeddb":"^4.0.1","idb":"^7.1.1","level":"^8.0.0","mocha":"^10.2.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.10.0","prettier":"^2.8.2","react":"^18.2.0","ts-node":"^10.9.1","typescript":"^4.9.4"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^3.1.0","fs-extra":"^11.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^9.0.0"},"license":"MIT","_id":"tuple-database@2.2.2","gitHead":"9fd3c16630dd96313a58ac52abad974b7f8faad7","types":"./main.d.ts","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_nodeVersion":"20.5.0","_npmVersion":"9.8.0","dist":{"integrity":"sha512-mvniSPf8RnkXIvqCPaPaO+j+JmWYsq9vjxuDtG9e9Z8ECNt5IQJcJ7uV9yeDO5qg2X11/fwaHUu+8YHQIjy4Wg==","shasum":"edbb54e25f09853719a4110df604fab55bf221bc","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.2.2.tgz","fileCount":246,"unpackedSize":682344,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDnEj8eFbzMqVBNjLP0kH7yFiIz87jC1j5EKHKi5rxPAAIhAPmHgZ/IZ3xbmGhztHBggfYIB1+IwezTQitFG8WrS3nz"}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.2.2_1691619965938_0.08845653588372016"},"_hasShrinkwrap":false},"2.2.3":{"name":"tuple-database","version":"2.2.3","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^7.6.3","@types/fs-extra":"^11.0.1","@types/level":"^6.0.1","@types/lodash":"^4.14.191","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^18.11.18","@types/react":"^18.0.26","better-sqlite3":"^8.0.1","fake-indexeddb":"^4.0.1","idb":"^7.1.1","level":"^8.0.0","mocha":"^10.2.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.10.0","prettier":"^2.8.2","react":"^18.2.0","ts-node":"^10.9.1","typescript":"^4.9.4"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^3.1.0","fs-extra":"^11.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^9.0.0"},"license":"MIT","_id":"tuple-database@2.2.3","gitHead":"aa18612e57fe4946df99866e7f3e7bf40cbe87b8","types":"./main.d.ts","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_nodeVersion":"20.5.0","_npmVersion":"9.8.0","dist":{"integrity":"sha512-EciKUzsMwA4ez3SfiNmETY3ikCq9NQxbCUR7uc3S1l11APkGi+SdnysjUzfqFQ3Bnkph4swgkc7AjX32IlN6yQ==","shasum":"ab725203c3c73a7f58ecce14bc79e4a1fbc93713","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.2.3.tgz","fileCount":246,"unpackedSize":682668,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDZBtyX2rgUzwpXXwiFwlnz74lvGRB9/B3Nt4dXxAG6TAiAEwyITud17AJD0dOgAaV1F6EqEougD97ccdRZCtdIvsg=="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.2.3_1691620131891_0.23956769078118123"},"_hasShrinkwrap":false},"2.2.4":{"name":"tuple-database","version":"2.2.4","description":"> The local-first, \"*end-user database*\" database.","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"main":"./main.js","scripts":{"build":"run-s build:macros build:tsc","build:tsc":"tsc","build:macros":"ts-node src/tools/compileMacros.ts","watch":"tsc -w","test":"npm run test:clean && mocha -r ts-node/register './src/**/*.test.ts' --verbose","test:clean":"rm -rf tmp","test:watch":"npm test -- --watch --watch-extensions ts","typecheck":"tsc --project tsconfig.json --noEmit","prettier":"prettier -w src","release":"./release.sh"},"devDependencies":{"@types/better-sqlite3":"^7.6.3","@types/fs-extra":"^11.0.1","@types/level":"^6.0.1","@types/lodash":"^4.14.191","@types/mocha":"github:whitecolor/mocha-types","@types/node":"^18.11.18","@types/react":"^18.0.26","better-sqlite3":"^8.0.1","fake-indexeddb":"^4.0.1","idb":"^7.1.1","level":"^8.0.0","mocha":"^10.2.0","npm-run-all":"^4.1.5","organize-imports-cli":"^0.10.0","prettier":"^2.8.2","react":"^18.2.0","ts-node":"^10.9.1","typescript":"^4.9.4"},"peerDependencies":{"react":"*"},"peerDependenciesMeta":{"react":{"optional":true}},"dependencies":{"elen":"^1.0.10","fractional-indexing":"^3.1.0","fs-extra":"^11.1.0","lodash":"^4.17.21","md5":"^2.3.0","uuid":"^9.0.0"},"license":"MIT","_id":"tuple-database@2.2.4","gitHead":"ea9e181dbf10c20b0d26a1e296aeeeced0e5fa70","types":"./main.d.ts","bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"homepage":"https://github.com/ccorcos/tuple-database#readme","_nodeVersion":"20.5.0","_npmVersion":"9.8.0","dist":{"integrity":"sha512-BZK1D5XtJiNRnQRR2C11RUd4O8gX68ZUqgO3CG14zWbMlCPRbOOi6P7o8KOOk2KEtXVis6IJBNK41JTKrBNlDA==","shasum":"767b094d322a6b811db947edf7abf7ec64a7d061","tarball":"https://registry.npmjs.org/tuple-database/-/tuple-database-2.2.4.tgz","fileCount":242,"unpackedSize":681293,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMovYVXoryfpPjUNliHSm0Tf3zO8045TdPqykmaHzznQIgdaO0kvuFpk7Hv+j1rIGwhGfNz0QZSRTdYz+hY2Wrs9o="}]},"_npmUser":{"name":"ccorcos","email":"ccorcos@gmail.com"},"directories":{},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tuple-database_2.2.4_1691620742954_0.20468964295275316"},"_hasShrinkwrap":false}},"time":{"created":"2020-12-28T03:09:10.745Z","1.0.0":"2020-12-28T03:09:11.001Z","modified":"2023-08-09T22:39:03.508Z","1.0.1":"2020-12-28T03:10:16.631Z","1.0.2":"2020-12-28T03:14:27.667Z","1.0.3":"2020-12-28T03:23:54.732Z","1.0.4":"2021-01-02T22:39:39.586Z","1.1.0":"2021-01-19T00:40:19.114Z","1.1.1":"2021-01-19T00:51:18.946Z","1.1.2":"2021-01-19T01:24:17.302Z","1.1.3":"2021-01-19T01:26:29.178Z","1.1.4":"2021-02-03T04:55:54.176Z","1.1.5":"2021-02-05T06:33:13.951Z","1.1.6":"2021-02-05T06:34:41.438Z","1.1.7":"2021-02-05T07:15:19.732Z","1.1.8":"2021-02-05T07:20:51.059Z","1.1.9":"2021-02-05T07:25:33.423Z","1.1.10":"2021-02-05T08:20:35.171Z","1.1.11":"2021-03-01T05:38:07.988Z","1.1.12":"2021-03-01T05:57:09.559Z","1.1.13":"2021-03-04T20:49:17.268Z","1.1.14":"2021-03-04T21:37:18.744Z","1.1.15":"2021-03-04T21:47:12.769Z","1.1.16":"2021-09-27T05:37:02.453Z","1.2.0":"2021-10-08T06:39:37.811Z","1.2.1":"2021-10-08T09:19:41.526Z","1.2.2":"2021-10-11T18:35:13.537Z","1.2.3":"2021-10-11T19:09:04.417Z","1.2.4":"2021-10-11T19:14:19.359Z","1.2.5":"2021-10-14T00:37:50.241Z","1.3.0":"2022-03-12T02:50:35.596Z","1.3.1":"2022-03-12T03:37:31.294Z","1.3.2":"2022-03-12T03:38:44.127Z","1.3.3":"2022-03-12T03:40:52.059Z","1.3.4":"2022-03-12T05:27:16.026Z","2.0.0":"2022-03-17T08:14:56.453Z","2.0.1":"2022-03-17T09:04:45.020Z","2.0.2":"2022-03-17T18:29:37.444Z","2.0.4":"2022-04-02T23:59:11.787Z","2.0.5":"2022-04-03T00:02:47.302Z","2.0.6":"2022-04-04T21:41:01.232Z","2.0.7":"2022-04-04T23:12:40.767Z","2.0.8":"2022-04-05T00:08:03.982Z","2.0.9":"2022-04-05T00:13:55.499Z","2.0.10":"2022-04-07T00:48:55.216Z","2.0.11":"2022-04-12T23:29:28.350Z","2.0.12":"2022-04-25T21:24:42.236Z","2.1.0":"2022-05-30T00:47:39.619Z","2.1.1":"2022-06-02T05:09:55.014Z","2.1.2":"2022-06-04T06:10:31.075Z","2.1.3":"2022-06-20T05:54:18.639Z","2.1.4":"2022-06-29T07:08:14.837Z","2.1.5":"2022-07-20T02:24:24.673Z","2.1.6":"2022-07-29T00:06:33.074Z","2.1.7":"2022-07-29T00:20:16.266Z","2.1.9":"2022-07-29T02:23:30.148Z","2.1.10":"2022-07-29T02:43:28.971Z","2.1.11":"2022-07-29T02:44:37.065Z","2.1.12":"2022-07-29T02:50:25.361Z","2.1.13":"2022-07-29T02:52:12.896Z","2.1.14":"2022-07-29T20:20:50.492Z","2.1.15":"2022-08-03T17:47:32.782Z","2.1.16":"2022-08-03T18:08:37.845Z","2.1.17":"2022-09-13T18:31:42.987Z","2.1.18":"2022-12-19T19:31:20.150Z","2.1.19":"2023-01-11T00:55:55.847Z","2.2.0":"2023-03-28T17:59:05.620Z","2.2.2":"2023-08-09T22:26:06.200Z","2.2.3":"2023-08-09T22:28:52.091Z","2.2.4":"2023-08-09T22:39:03.212Z"},"maintainers":[{"name":"ccorcos","email":"ccorcos@gmail.com"}],"description":"> The local-first, \"*end-user database*\" database.","homepage":"https://github.com/ccorcos/tuple-database#readme","repository":{"type":"git","url":"git+https://github.com/ccorcos/tuple-database.git"},"bugs":{"url":"https://github.com/ccorcos/tuple-database/issues"},"readme":"# Tuple Database\n\n> The local-first, \"*end-user database*\" database.\n\n> The embedded FoundationDb.\n\n> The reactive indexable graph database.\n\n**Features**\n\n- Embedded, designed for [Local-First Software](https://www.inkandswitch.com/local-first/).\n- All queries are reactive.\n- Schemaless — schemas are enforced by the application, not the database.\n- Transactional read/writes written in TypeScript.\n- Directly read/write indexes with the ability to index graph/relational queries.\n- Works with synchronous and asynchronous storage including SQLite or LevelDb.\n- Suitable for frontend state management.\n\n**Table of Contents**\n- [Quick Start](#Quick-Start)\n- [Motivation](#Motivation)\n- [Background](#Background)\n- [Documentation](#Documentation)\n- [Examples](#Examples)\n\n# Quick Start\n\n1. Install from NPM:\n\n\t```sh\n\tnpm install tuple-database\n\t```\n\n2. Define your schema.\n\n\tFor example a contacts app in SQL might be defined as:\n\n\t```sql\n\tCREATE TABLE user (\n\t\tid UUID PRIMARY KEY,\n\t\tfirst_name TEXT,\n\t\tlast_name TEXT,\n\t\tage INT\n\t)\n\n\tCREATE INDEX age ON user (age);\n\tCREATE INDEX name ON user (last_name, first_name);\n\t```\n\n\tBut for this database, you would write:\n\n\t```ts\n\ttype User = {\n\t\tid: string,\n\t\tfirst_name: string,\n\t\tlast_name: string,\n\t\tage: number\n\t}\n\n\ttype UserIndex = {\n\t\tkey: [\"user\", {id: string}],\n\t\tvalue: User\n\t}\n\n\ttype AgeIndex = {\n\t\tkey: [\"userByAge\", {age: number}, {id: string}],\n\t\tvalue: null\n\t}\n\n\ttype NameIndex = {\n\t\tkey: [\"userByName\", {last_name: string}, {first_name: string}, {id: string}],\n\t\tvalue: null\n\t}\n\n\ttype Schema = UserIndex | AgeIndex | NameIndex\n\t```\n\n3. Construct your database (see [Documentation](#Documentation) for more storage options).\n\n\t```ts\n\timport {\n\t\tTupleDatabaseClient,\n\t\tTupleDatabase,\n\t\tInMemoryTupleStorage\n\t} from \"tuple-database\"\n\tconst db = new TupleDatabaseClient<Schema>(new TupleDatabase(new InMemoryTupleStorage()))\n\t```\n\n4. Define read and write queries:\n\n\t```ts\n\timport { transactionalReadWrite } from \"tuple-database\"\n\n\tconst removeUser = transactionalReadWrite<Schema>()((tx, id: string) => {\n\t\tconst existing = tx.get([\"user\", {id}])\n\t\tif (!existing) return\n\n\t\tconst {first_name, last_name, age} = existing\n\t\ttx.remove([\"user\", {id}])\n\t\ttx.remove([\"userByAge\", {age}, {id}])\n\t\ttx.remove([\"userByName\", {last_name}, {first_name}, {id}])\n\t\treturn existing\n\t})\n\n\tconst insertUser = transactionalReadWrite<Schema>()((tx, user: User) => {\n\t\tconst {id, first_name, last_name, age} = user\n\t\ttx.set([\"user\", {id}], user)\n\t\ttx.set([\"userByAge\", {age}, {id}], null)\n\t\ttx.set([\"userByName\", {last_name}, {first_name}, {id}], null)\n\t})\n\n\tconst upsertUser = transactionalReadWrite<Schema>()((tx, user: User) {\n\t\tremoveUser(tx, user.id)\n\t\tinsertUser(tx, user)\n\t})\n\n\tfunction getOldestUser(db: ReadOnlyTupleDatabaseClientApi<Schema>) {\n\t\t\treturn db.scan({prefix: [\"userByAge\"], reverse: true, limit: 1})\n\t\t\t\t.map(({key, value}) => key)\n\t\t\t\t.map(namedTupleToObject)[0]\n\t}\n\t```\n\n5. Use this database, for example, in your React application:\n\n\t```tsx\n\timport { useTupleDatabase } from \"tuple-database/useTupleDatabase\"\n\n\tfunction init({db}) {\n\t\tupsertUser(db, {id: \"1\", first_name: \"Chet\", last_name: \"Corcos\", age: 31})\n\t\tupsertUser(db, {id: \"2\", first_name: \"Tanishq\", last_name: \"Kancharla\", age: 22})\n\t}\n\n\tfunction App({db}) {\n\t\tconst oldestUser = useTupleDatabase(db, getOldestUser, [])\n\t\treturn <div>The oldest user is age: {oldestUser.age}</div>\n\t}\n\t```\n\n\n# Motivation\n\nI designed this database with lots of fairly niche constraints in mind.\n\n1. Local-First\n\n\tI endorse to all of the motivations listed in the [Local-First Software](https://www.inkandswitch.com/local-first/) article. But the more acute reason for me is that it **frees developers from the endless maintenance** of a gigantic multi-tenant system. When users own all of their data on their devices, it's a natural way of sharding a database and scaling up a platform.\n\n\tAs a constraint, this means that I'm interested in building an embedded database, like SQLite or LevelDb, that runs in process and is intended to be single tenant. That means we don't need to worry about certain kinds of scale or clustering / replicas.\n\n2. Reactive Queries\n\n\tPolished applications these days require realtime reactivity. And it's not just for collaboration — reactivity necessary when a user has multiple windows or tabs showing the same data.\n\n\tMany systems have record-level or table-level reactivity, but I want **all queries to be reactive**. I'm tired of having to engineer custom solutions on top of databases with brittle logic where a developer might forget to emit an update event.\n\n3. Schemaless\n\n\tIt took me some time to realize the the value of maintaining schemas in the application rather than the database. This was motivated by two use-cases I had in mind:\n\n\t- It's incredibly difficult to **sync data peer-to-peer** when clients may have different versions of a schema that are strictly enforced by the database. Instead, a schemaless database should be flexible enough to accept incoming data and allow the application to resolve conflicts or schema issues.\n\n\t- I want to build apps like Notion and Airtable where **end-users define their own schemas**. I call this an \"end-user database\". Granted, you can use SQLite and run `ALTER TABLE` commands, but this becomes pretty difficult to keep track of, especially once we start to consider indexing and many-to-many relationships. A schemaless database provides the flexibility necessary to create an object with a dynamic property that can also get indexed.\n\n4. Directly Manipulate Indexes\n\n\tI've spent way to much time in Postgres manually denormalizing data and constructing elaborate indexes that perfectly complement a complex query with the goal of `EXPLAIN` outputting `INDEX ONLY SCAN` for optimal performance. This dance is a tiresome incidental complexity for application development.\n\n\tThe query optimizer is the most valuable part about SQL, leveraging a variety of indexes to answer a wide variety of queries as efficiently as possible. This makes sense for business intelligence where you run a wide variety of different queries. But typical applications tend to ask a few unchanging queries many times. Thus the query optimizer is a useless indirection for a developer trying to design for a specific set of queries. I want to bypass the query optimizer altogether to **read and write directly to/from indexes**.\n\n\tSo long as we can **transactionally read and write indexes** using arbitrary logic ([like you can with FoundationDb](https://apple.github.io/foundationdb/developer-guide.html#transaction-basics)), then we can drop down to a lower level of abstraction and deal with indexes directly instead of using DDL.\n\n\t- Many-to-many relationships are incredibly common in applications today. Many users can belong to many group chats; many pages and have many tags; many users can follow many users.\n\n\t\tYet SQL does not provide a way of indexing queries that involve a `JOIN`. Social apps that want to query \"what are all the posts of all the people I follow ordered in time\" must design their own systems because SQL cannot index that query (SQL will need to load all of the posts of all the people you follow over all time, and sort them in memory!).\n\n\t\t**Indexing any-to-many relationships** is a use-case we get for free as a consequence of being able to directly manipulate indexes.\n\n5. Asynchonous or Synchronous, Persisted or In-Memory Storage\n\n\tObviously, I want to be able to persist data. And most persistence layers are asynchronous: LevelDb or even a cloud database. But even when persistence is synchronous, like SQLite, you might have to asynchronously cross a process boundary, such as an Electron window interacting with a database on the main process.\n\n\tBut a non-trivial use-case is that I want to use a **synchronous in-memory database for frontend state management** in my application. I'm building apps using React.js and web technologies these days, so synchronous updates are necessary for certain kinds of interactions. For example, effects like opening a link must occur in the same event loop as the user interaction, otherwise the browser won't respond.\n\n\n# Background\n\nThe architecture of this database draws inspiration from a bunch of different places (although, primarily from FoundationDb). And it took a lot of reading only to find out that pretty much every database has similar abstractions under the hood — an ordered list (or tree) of tuples and binary search. This is why DynamoDb and FoundationDb can have [frontend abstractions](https://apple.github.io/foundationdb/layer-concept.html) that are compatible with Postgres or [MongoDb](https://github.com/FoundationDB/fdb-document-layer).\n\nSuppose we have the following SQL schema.\n\n```sql\nCREATE TABLE user (\n\tid UUID PRIMARY KEY,\n\tfirst_name TEXT,\n\tlast_name TEXT,\n\tage INT\n)\n\nCREATE INDEX age ON user (age);\nCREATE INDEX name ON user (last_name, first_name);\n```\n\nWe've defined three different indexes here (including the primary key index). The name index has what is called a \"composite key\" — that's a tuple right there!\n\nWith `tuple-database`, we'd represent this schema as follows (using TypeScript):\n\n```ts\ntype User = {id: string, first_name: string, last_name: string, age: number}\n\ntype UserIndex = {\n\tkey: [\"user\", {id: string}],\n\tvalue: User\n}\n\ntype AgeIndex = {\n\tkey: [\"userByAge\", {age: number}, {id: string}],\n\tvalue: null\n}\n\ntype NameIndex = {\n\tkey: [\"userByName\", {last_name: string}, {first_name string}, {id: string}],\n\tvalue: null\n}\n\ntype Schema = UserIndex | AgeIndex | NameIndex\n```\n\nI said this database is *schemaless* and *it is schemaless* because the database does not enforce any kind of schema. But it's still useful to use types to define the kinds of things we *expect* in the database.\n\nTo create some users and write to the database, we simply create a transaction and manipulate the indexes ourselves.\n\n```ts\nimport {\n\tTupleDatabaseClient,\n\tTupleDatabase,\n\tInMemoryTupleStorage\n} from \"tuple-database\"\n\nconst db = new TupleDatabaseClient<Schema>(new TupleDatabase(new InMemoryTupleStorage()))\n\nfunction upsertUser(db: TupleDatabaseClient<Schema>, user: User) {\n\tconst tx = db.transact()\n\n\tconst existing = tx.get([\"user\", {id: user.id}])\n\tif (existing) {\n\t\tconst {id, first_name, last_name, age} = existing\n\t\ttx.remove([\"user\", {id}])\n\t\ttx.remove([\"userByAge\", {age}, {id}])\n\t\ttx.remove([\"userByName\", {last_name}, {first_name}, {id}])\n\t}\n\n\tconst {id, first_name, last_name, age} = user\n\ttx.set([\"user\", {id}], user)\n\ttx.set([\"userByAge\", {age}, {id}], null)\n\ttx.set([\"userByName\", {last_name}, {first_name}, {id}], null)\n\n\ttx.commit()\n}\n\nupsertUser(db, {id: \"1\", first_name: \"Chet\", last_name: \"Corcos\", age: 31})\nupsertUser(db, {id: \"2\", first_name: \"Tanishq\", last_name: \"Kancharla\", age: 22})\n```\n\nNotice that we're transactionally reading and writing to the the database. And we can execute whatever kinds of code we want in this transaction — we're not limited to some esoteric query syntax. And so while it might seem painful to manually write all of this code, you have the full expressive capabilities of TypeScript to compose functions together to make it all happen.\n\nFor example, here's a fairly straightforward refactor:\n\n```ts\nfunction removeUser(tx: TupleDatabaseTransaction<Schema>, id: string) {\n\tconst existing = tx.get([\"user\", {id}])\n\tif (!existing) return\n\n\tconst {id, first_name, last_name, age} = existing\n\ttx.remove([\"user\", {id}])\n\ttx.remove([\"userByAge\", {age}, {id}])\n\ttx.remove([\"userByName\", {last_name}, {first_name}, {id}])\n\treturn existing\n}\n\nfunction insertUser(tx: TupleDatabaseTransaction<Schema>, user: User) {\n\tconst {id, first_name, last_name, age} = user\n\ttx.set([\"user\", {id}], user)\n\ttx.set([\"userByAge\", {age}, {id}], null)\n\ttx.set([\"userByName\", {last_name}, {first_name}, {id}], null)\n}\n\n// Very expressive composition :)\nfunction upsertUser(tx: TupleDatabaseTransaction<Schema>, user: User) {\n\tremoveUser(tx, user.id)\n\tinsertUser(tx, user)\n}\n\n// All in one transaction :)\nconst tx = db.transact()\nupsertUser(tx, {id: \"1\", first_name: \"Chet\", last_name: \"Corcos\", age: 31})\nupsertUser(tx, {id: \"2\", first_name: \"Tanishq\", last_name: \"Kancharla\", age: 22})\ntx.commit()\n```\n\nSo that's how you write to the database.\n\nNow, how about querying the database? Suppose you want to lookup a user by last name:\n\n```sql\nSELECT id, first_name FROM user\nWHERE last_name = $lastName\n```\n\nThe query planner under the hood will use the name index and use binary search to jump to that last name and read out all the users with that given last name off of the index.\n\nWith `tuple-database` you do something very similar, except by directly reading the index:\n\n```ts\nfunction getUsersWithLastName(db: TupleDatabaseClient<Schema>, lastName: string) {\n\treturn db.scan({prefix: [\"userByName\", {last_name: lastName}]})\n\t\t// => Array<{key: [\"userByName\", {last_name: string}, {first_name: string}, {id: string}], value: null}>\n\t\t.map(({key, value}) => key)\n\t\t// => Array<[\"userByName\", {last_name: string}, {first_name: string}, {id: string}]>\n\t\t.map(namedTupleToObject)\n\t\t// => Array<{last_name: string, first_name: string, id: string}>\n}\n```\n\nThe important thing to realize here is that all we've done is dropped down to a lower level of abstraction. The logic we've written here for the `tuple-database` code is *exactly* what any SQL database is doing under the hood.\n\nAnd now that you understand how databases fundamentally uses tuples under the hood, you can discover how this database can do much more than SQL by reading through the [examples](#Examples).\n\n# Documentation\n\nThere are **three layers** to this database that you need to compose together. But first, we need to cover some terminology.\n\n## Terminology / Types\n\n- A `Value` is any valid JSON.\n- A `Tuple` is an array of `Value`s.\n- A `key` is a `Tuple`.\n- A `KeyValuePair` is `{key: Tuple, value: any}`. And `value` is `any` because in-memory storage doesn't have to serialize the value.\n\n## TupleStorage\n\n`TupleStorage` is the lowest level abstraction.\n\nThere's one method for reading and one method for writing.\n\n- `write` for batch adding / removing key-value pairs:\n\t```ts\n\twrite({\n\t\tset?: KeyValuePair[],\n\t\tremove?: Tuple[]\n\t}):  void\n\t```\n\n- `scan` for reading a range of key-value pairs:\n\t```ts\n\tscan({\n\t\tgt?: Tuple, gte?: Tuple,\n\t\tlt?: Tuple, lte?: Tuple,\n\t\treverse?: boolean,\n\t\tlimit?: number\n\t}): KeyValuePair[]\n\t```\n\nHere's a simple example of how the storage API works:\n\n```ts\nconst storage = new InMemoryTupleStorage()\n\nstorage.commit({\n\tset: [\n\t\t{ key: [\"chet\", \"corcos\"], value: 0 },\n\t\t{ key: [\"jon\", \"smith\"], value: 2 },\n\t\t{ key: [\"jonathan\", \"smith\"], value: 1 },\n\t],\n})\n\nconst result = storage.scan({ gte: [\"j\"], lt: [\"k\"] })\n\nassert.deepEqual(result, [\n\t{ key: [\"jon\", \"smith\"], value: 2 },\n\t{ key: [\"jonathan\", \"smith\"], value: 1 },\n])\n```\n\nThere are several different options for the storage layer.\n\n1. InMemoryTupleStorage\n\t```ts\n\timport { InMemoryTupleStorage } from \"tuple-database\"\n\tconst storage = new InMemoryTupleStorage()\n\t```\n\tI'd highly recommend [reading the code](./src/storage/InMemoryTupleStorage.ts) to understand how `InMemoryTupleStorage` works. It's really quite simple and just uses binary search to maintain an ordered associative array.\n\n2. FileTupleStorage\n\t```ts\n\timport { FileTupleStorage } from \"tuple-database/storage/FileTupleStorage\"\n\tconst storage = new FileTupleStorage(__dirname + \"/app.db\")\n\t```\n\n3. LevelTupleStorage\n\t```ts\n\timport level from \"level\"\n\timport { LevelTupleStorage } from \"tuple-database/storage/LevelTupleStorage\"\n\tconst storage = new LevelTupleStorage(level(__dirname + \"/app.db\"))\n\t```\n\n4. SQLiteTupleStorage\n\t```ts\n\timport sqlite from \"better-sqlite3\"\n\timport { SQLiteTupleStorage } from \"tuple-database/storage/SQLiteTupleStorage\"\n\tconst storage = new SQLiteTupleStorage(sqlite(__dirname + \"/app.db\"))\n\t```\n\n5. BrowserTupleStorage\n\n\tThis holds the whole database in-memory and persists it to localStorage.\n\n\t```ts\n\timport { BrowserTupleStorage } from \"tuple-database/storage/BrowserTupleStorage\"\n\tconst storage = new BrowserTupleStorage(\"localStorageKey\")\n\t```\n\n6. IndexedDbTupleStorage\n\n\t```ts\n\timport { IndexedDbTupleStorage } from \"tuple-database/storage/IndexedDbTupleStorage\"\n\tconst storage = new IndexedDbTupleStorage(\"objectStoreName\")\n\t```\n\n\nYou can also create your own storage layer by implementing `TupleStorageApi` or `AsyncTupleStorageApi` interfaces.\n\n```ts\nimport { TupleStorageApi } from \"tuple-database\"\nclass CustomTupleStorage implements TupleDatabaseApi {\n\t/* ... */\n}\n```\n\n### Sort Order\n\nStrings and numbers should be ordered as you might expect.\n\n- `\"a\"` < `\"b\"`\n- `\"a\"` < `\"apple\"`\n- `2` < `10`\n\nBut since a `Value` is any valid JSON, we need to arbitrarily decide how to sort types. And we've arbitrarily decided that:\n\n```ts\nnull < object < array < number < string < boolean\n```\n\nThus, every number is less than every string:\n- `12` < `\"apple\"`\n\nArrays are \"compound sorted\", also called \"composite keys\" in SQL. This is the same concept as \"sort contacts by first *then* last name\".\n- `[\"adam\"]` < `[\"adam\", \"smith\"]`\n- `[\"jon\", \"smith\"]` < `[\"jonathan\", \"smith\"]`\n\nIt is important understand that we aren't simply concatenating the strings (`\"jonathansmith\"` < `\"jonsmith\"`), and instead we are comparing each item component-wise.\n\nObjects are interpreted as ordered dictionaries — an array of key-value pairs sorted by key.\n- `{b: 2, a: 1} => [[\"a\", 1], [\"b\", 2]]`\n\nI have not discovered a particularly useful reason to use objects in the tuple key. Comparing objects like this just doesn't seem that valuable. I also arbitrarily chose to order objects as pairs rather than zipping (e.g. `{b: 2, a: 1} => [[\"a\", \"b\"], [1, 2]]` ).\n\nThat said, we often use objects with a single key as a \"named key\" for developer convenience since the ordering will be the same. For example, a key might be `[\"favoriteColor\", {person: string}, {color: string}]` which is less ambiguous than `[\"favoriteColor\", string, string]` for developers to work with.\n\n### Lexicographical Encoding\n\nThe tuple storage layer operates at the level of tuples and values. But most existing ordered key-value storage options will only accept bytes as keys. It's non-trivial to convert a tuple into a byte-string that maintains a consistent order. For example `2` < `11` but `\"2\"` > `\"11\"`.\n\nFor numbers, we use the [`elen` library](https://www.npmjs.com/package/elen) which encodes signed float64 numbers into strings.\n\nFor arrays, we join elements using a null byte `\\x00` and escape null bytes with `\\x00 => \\x01\\x00` as well as escaping the escape bytes `\\x01 => \\x01\\x01`. Thus, `[\"jon\", \"smith\"] => \"jon\\x00smith\"` and `[\"jonathan\", \"smith\"] => \"jonathan\\x00smith\"`.\n\nLastly, we use a single byte to encode the type of the value which allows us to enforce the type order.\n\nPlease [read the source code](./src/helpers/codec.ts) for a better understanding of how this codec works. And check out the existing storage implementations to see how it is used.\n\n### Prefix Scanning\n\nOne tricky thing about the scan API is how to you get all tuples with a given prefix? Given a tuple of `[firstName, lastName]`, how do you look up everyone with first name \"Jon\"?\n\n- We can try something arbitrary like `scan({gt: [\"Jon\"], lte: [\"Jon\", \"ZZZZ\"]})`, but this will miss a potential result: `[\"Jon\", \"ZZZZZZZZ\"]`.\n- We can increment the byte so the upper bound is `[\"Jom\"]`.\n\tThis works, but it's trickier when dealing with numbers. What if we want a prefix of `[1]`? Would the upper bound be `[1.000000000000001]`?\n\nIdeally, we'd be able to specify a minimum and maximum value. It turns out this is pretty easy because of the way our types are ordered with `null` as the smallest value and `true` as the largest value.\n\nThus, we can get all tuples prefixed by `\"Jon\"` with `scan({gt: [\"Jon\"], lt: [\"Jon\", true]})`.\n\nAnd for convenience, we've exported `MIN` and `MAX` which are aliased `null` and `true` respectively. It is recommended to use these variables when it makes semantic sense: `scan({gt: [\"Jon\"], lt: [\"Jon\", MAX]})`.\n\n## TupleDatabase\n\n`TupleDatabase` is the middle layer which implements [reactivity](#Reactivity) and [concurrency control](#Concurrency-Control).\n\n```ts\nimport { InMemoryTupleStorage, TupleDatabase } from \"tuple-database\"\nconst storage = new InMemoryTupleStorage()\nconst db = new TupleDatabase(storage)\n```\n\nIf you're using the an async storage layer, you'll need to use `AsyncTupleDatabase`.\n\n\n```ts\nimport { InMemoryTupleStorage, AsyncTupleDatabase } from \"tuple-database\"\nconst storage = new InMemoryTupleStorage()\nconst db = new AsyncTupleDatabase(storage)\n```\n\nYou will almost always be using this database through a `TupleDatabaseClient` so we won't talk about the TupleDatabase API here. Just understand that this layer is the central process for managing reactivity and concurrency.\n\n\n## TupleDatabaseClient\n\n`TupleDatabaseClient` is the highest level layer that you will primarily be using to interact with the database.\n\nThe client layer provides convenient methods and types on top of the TupleDatabase.\n\n```ts\nimport {\n\tTupleDatabaseClient,\n\tTupleDatabase,\n\tInMemoryTupleStorage\n} from \"tuple-database\"\nconst storage = new InMemoryTupleStorage()\nconst db = new TupleDatabase(storage)\nconst client = new TupleDatabaseClient(db)\n```\n\nIf you're using async storage, then you need to use an async client. However you can also use the async client with synchronous storage.\n\n```ts\nimport {\n\tAsyncTupleDatabaseClient,\n\tAsyncTupleDatabase,\n\tInMemoryTupleStorage\n} from \"tuple-database\"\nconst storage = new InMemoryTupleStorage()\nconst db = new AsyncTupleDatabase(storage)\nconst client = new AsyncTupleDatabaseClient(db)\n```\n\n### `client.scan`\n\nThis is the same method as `storage.scan` but has a convenient `prefix` argument. Note that the prefix argument is prepended to the rest of the bounds.\n\nThus `{prefix: [\"a\"], gt: [\"b\"]}` will unravel into `{gt: [\"a\", \"b\"], lte: [\"a\", MAX]}`\n\n### `client.get`\n\nThis method will scan for a single tuple and return its value if it exists.\n\n### Typed Schema\n\nThe client layer introduces Typescript types to describe the schema of the database. Note that this schema is not enforced at runtime and is simply a developer convenience — this database fundamentally is schemaless.\n\nA schema is just a union type of `KeyValuePair`s. For example:\n\n```ts\ntype Schema =\n\t| { key: [\"score\", string]; value: number }\n\t| { key: [\"total\"]; value: number }\n```\n\nAnd using this schema allows TypeScript to typecheck and infer types.\n\n```ts\nconst client = new TupleDatabaseClient<Schema>(\n\tnew TupleDatabase(new InMemoryTupleStorage())\n)\n\nconst scores = client.scan({ prefix: [\"score\"] })\n\n// TypeScript will infer the result based on the prefix.\n// typeof scores = { key: [\"score\", string]; value: number }[]\n```\n\n### Subspace\n\nSubspaces represent the same database narrowed in on a specific prefix.\n\n```ts\nconst gameDb = client.subspace([\"score\"])\n// typeof gameDb => TupleDatabaseClientApi<{ key: [string]; value: number }>\n\nconst score = gameDb.get([\"chet\"])\n// typeof score = number\n```\n\nSubspaces are especially useful for composing logic for nested subspaces.\n\nFor example, maybe we defined a bunch of business logic for a specific schema, such as `setScore` for a schema with a single game.\n\n```ts\ntype GameSchema =\n\t| { key: [\"score\", string]; value: number }\n\t| { key: [\"total\"]; value: number }\n\nfunction setScore(db: TupleDatabaseClientApi<GameSchema>, person: string, score: number) {\n\t/* ... */\n}\n```\n\nNow suppose we decide that we want to be able to keep track of multiple games. Rather than make `setScore` aware of the `gameId`, we can simply use a subspace.\n\n```ts\ntype Game = {id: string, name: string, players: string[]}\n\ntype Schema =\n\t| {key: [\"game\", string], value: Game}\n\t| SchemaSubspace<[\"gameState\", string], GameSchema>\n\t// SchemaSubspace will prepend the given prefix to every key in the subspace schenma.\n\nconst client = new TupleDatabaseClient<Schema>(new TupleDatabase(new InMemoryTupleStorage()))\n\n// Using a subspace to narrow in on a specific game to re-use the game state logic.\nsetScore(client.subspace([\"gameState\", \"game1\"]), \"chet\", 2)\n```\n\nAs an aside, it's interesting to consider how Apple uses this same abstraction with FoundationDb in administering iCloud. You can imagine users get an entire subspace, and specific apps get a subspace within that user's subspace. 🤔\n\n### `client.transact`\n\nThis is how you can transactionally read and write to the database.\n\n```ts\nconst tx = client.transact()\ntx.set(tuple, value)\ntx.scan(bounds)\ntx.remove(tuple)\ntx.commit()\n```\n\nNote that when you read through the transaction, the results will be modified by any mutations in the transaction that are waiting to be committed.\n\nWhen there is a conflicting concurrent transaction, then `commit()` with throw a `ReadWriteConflictError`.\n\nJust to be clear, this is a simple example of how a conflict might happen.\n\n```ts\nconst chet = client.transact()\nconst meghan = client.transact()\n\n// Meghan sets her score, then updates the total\nMeghan: {\n\tmeghan.set([\"score\", \"meghan\"], 2)\n\tconst items = meghan.scan({ prefix: [\"score\"] })\n\tconst total = items.map(({ value }) => value).reduce((a, b) => a + b, 0)\n\tmeghan.set([\"total\"], total)\n}\n\nChet: {\n\t// Meanwhile, Chet writes his score and updates the total.\n\tchet.set([\"score\", \"chet\"], 5)\n\tconst items = meghan.scan({ prefix: [\"score\"] })\n\tconst total = items.map(({ value }) => value).reduce((a, b) => a + b, 0)\n\tmeghan.set([\"total\"], total)\n}\n\n// Chet commits his writes first conflicting with Meghan's transaction.\nchet.commit()\n\n// Meghan commits but we get a conflict error.\nassert.throws(() => meghan.commit())\n```\n\nTo better understand the underlying mechanics of how concurrency control works, please [read the Concurreny Control section](#Concurreny-Control) of this documentation.\n\n### `transactionalReadWrite`\n\nWhenever there is a `ReadWriteConflictError`, all we have to do is keep retrying the transaction until it works without a conflict. Thus is is important that this retry logic is idempotent. We have a convenient helper function for creating these idempotent transactions which will retry when there are conflicts and also has some convenient abstractions for composing transactions.\n\n```ts\nconst setScore = transactionalReadWrite<GameSchema>()((tx, person: string, score: number) => {\n\t\ttx.set([\"score\", person], score)\n\t\tupdateTotal(tx)\n})\n\nconst updateTotal = transactionalReadWrite<GameSchema>()((tx) => {\n\tconst items = tx.scan({ prefix: [\"score\"] })\n\tconst total = items.map(({ value }) => value).reduce((a, b) => a + b, 0)\n\ttx.set([\"total\"], total)\n\treturn total\n})\n\nsetScore(client, \"chet\", 12)\n```\n\nYou'll notice there seems to be an extra `()` in there: `transactionalReadWrite<GameSchema>()((tx, person: string, ...`. That's because we want to tell TypeScript the schema that we're working with, but we want TypeScript also to infer the rest of the arguments as well as the return value. So this is just a TypeScript idiosyncrasy.\n\n`transactionalReadWrite` can accept a client or a transation as its first argument. When the first argument is a client, then it will open and commit a transaction, and retry if there if a conflict. But if the first argument is a transaction, it will simply pass it through without commiting the transaction. This allows these transactional queries to be composed as you can see with `setScore` calling `updateTotal`.\n\nYou can also see that `updateTotal` reads *through* the transaction. This means that it will see the updated score from `setScore` and compute the correct total.\n\nYou can use `transactionalReadWrite` not just to writes, but also for transactional reads!\n\n### `client.subscribe`\n\nYou can listen to any range of tuples and the callback argument will have a list of all sets and removes associated with that range.\n\n```ts\n\nconst unsubscribe = client.subscribe({prefix: [\"score\"]},\n\t(writes) => {\n\t\tconsole.log(writes)\n\t\t// => {\n\t\t// \tset: [{ key: [\"score\", \"chet\"], value: 2 }],\n\t\t// \tremove: [],\n\t\t// }\n\t}\n)\n\nsetScore(client, \"chet\", 2)\n```\n\nNote that this will ignore any `limit` in your subscription. To efficiently listen to paginated updates, it is recommended to use key bounds instead of limits.\n\n### `subscribeQuery`\n\nSometimes you need to listen to multiple ranges to derive some information. It can be cumbersome to use `client.subscribe` in these circumstances and for this we can use `subscribeQuery` which keeps track of all ranges and subscriptions for you.\n\n```ts\nfunction getScoreFractionOfTotal(db: ReadOnlyDatabaseClientApi<GameSchema>, person: string) {\n\tconst score = db.get([\"score\", person]) || 0\n\tconst total = db.get([\"total\"]) || 0\n\treturn score/total\n}\n\nconst { result: initialResult, destroy } = subscribeQuery(\n\tclient,\n\tgetScoreFractionOfTotal,\n\t[\"chet\"],\n\t(newResult) => {\n\t\t// ...\n\t}\n)\n```\n\n### `useTupleDatabase`\n\nIf you're using React, we've wrapped up `subscribeQuery` into a hook you can use within your application\n\n```ts\nimport { useTupleDatabase } from \"tuple-database/useTupleDatabase\"\n\nfunction App({gameDb, person}) {\n\tconst fraction = useTupleDatabase(gameDb, getScoreFractionOfTotal, [person])\n\t// ...\n}\n```\n\n## Comparison with FoundationDb\n\nThis database works very similar to FoundationDb. In fact, I've created some abstractions modeled after their API. I've implemented the [class scheduling tutorial](https://apple.github.io/foundationdb/class-scheduling.html) from FoundationDb [as a test in this project](./src/test/classScheduling.test.ts).\n\nHowever, there are some crucial differences with FoundationDb.\n\n- This database is meant to be embedded, not a mutli-node cluster in the cloud.\n- This database also has reactive queries, similar to Firebase.\n- FoundationDb relies on the serialization process for running range queries. They do this by simply adding  `\\0x00` and `0xff` bytes to the end of a serializied tuple prefix. This is really convenient, but it doesn't work for an in-memory database that does not serialize the data. Serialization for an in-memory database is just an unnecessary performance hit.\n\n# Examples\n\n- [Building a social app with indexes feeds.](./src/examples/socialApp.test.ts) While you probably won't use this database for a social app like Twitter, we can demonstrate the power of this abstraction to index feeds — something you cannot so with SQL. And if you wanted to build a social app, all of these abstractions are transferable to FoundationDb.\n- [Building an end-user database with dynamic properties and indexing.](./src/examples/endUserDatabase.test.ts) If you want to build product like Notion or Airtable with indexes database views, then this is the way to do it. (P.S. I built Notion 😉).\n- [Using a database for frontend state management.](https://github.com/ccorcos/game-counter/blob/master/src/app/GameDb.ts) When you build a sufficiently complex application, state management runs into many of the same problems as databases — normalization, denormalization, indexing, and reactivity. So wouldn't it be great if we could use a proper database for state management?\n\n# Development\n\n\n## Reactivity\n\nReactivity is fundamentally a spatial query problem. We have a set of ranges (scan tuple bounds) `[min, max][]` and we want to find all the ranges that intersect with a value (each tuple in a write).\n\nYou cannot efficiently solve this problem in a general way with a basic binary search tree. Instead, you need to use something like a [Segment tree](https://en.wikipedia.org/wiki/Segment_tree). In case the reader is unfamiliar with spatial indexes, a [Interval tree](https://en.wikipedia.org/wiki/Interval_tree) is a more general form of a segment tree allowing you to query with a range, returning overlapping ranges. But a [Range tree](https://en.wikipedia.org/wiki/Range_tree) (a.k.a. rtree) is the general solution for an arbitrary number of dimensions and is typically what is used in, for example, Postgres or SQLite.\n\nSpatial indexes is one of the reasons that calendars are hard to build! However, if you need to build an index for a calendar without access to an rtree index, an acceptible solution is called \"space partitioning\". And this gives us some insight into a little trick we can use for fairly efficient reactivity using a binary tree.\n\nWhen you subscribe to a range, e.g. `{gt: [1, 2, 3], lt: [1, 2, 4]}`, we look for a common prefix: `[1, 2]` and use that as a listener key. Then when we write some data, e.g. `[1, 2, 3, 4]`, we iterate through every prefix of that tuple: `[1]`, `[1, 2]`, `[1, 2, 3]` and we lookup listeners on those keys. If we find a listener, we double-check that it within the bounds before we emit and update.\n\nThis is a fairly simple performant approach, but at some point, we're going to want to implement a proper rtree index anyways and we'll migrate this over. In the meantime, you can [check out the code](./src/database/async/AsyncReactivityTracker.ts) to get a better understanding of how it works.\n\n## Concurreny Control\n\nConcurreny control is surprisingly simple. Whenever we get a read or a write, we keep track of that in a ConcurrencyLog.\n\nThen on commit, we scan through the log looking for reads on this transaction, and looking for conflicting writes that happened after the read.\n\n```ts\nconst log = new ConcurrencyLog()\n\n// Someone reads all the scores.\nlog.read(\"tx1\", { gt: [\"score\"], lte: [\"score\", MAX] })\n\n// At the same time, someone writes a score.\nlog.write(\"tx2\", [\"score\", \"chet\"])\n\n// Keeping track of concurrent reads/writes.\nassert.deepEqual(log.log, [\n\t{\n\t\ttxId: \"tx1\",\n\t\ttype: \"read\",\n\t\tbounds: {\n\t\t\tgt: [\"score\"],\n\t\t\tlte: [\"score\", MAX],\n\t\t},\n\t},\n\t{\n\t\ttxId: \"tx2\",\n\t\ttype: \"write\",\n\t\ttuple: [\"score\", \"chet\"],\n\t},\n])\n\n// Check for conflicts.\nlog.commit(\"tx2\")\nassert.throws(() => log.commit(\"tx1\"))\n```\n\nMost of the logic has to do with cleaning up the log to keep it from growing unbounded. But the [code is pretty simple](./src/database/ConcurrencyLog.ts). It's also worth mentioning that looking for conflicting writes can be formulated as a spatial query as well so we have some performance benefits here when we build an rtree index abstraction.\n\n## Sync/Async APIs\n\nOne thing that's been pretty annoying is building async and sync storage abstractions in parallel. That's why `npm run build:macros` will compile async code into sync code for us.\n\nIdeally we'd use a proper TypeScript parser rather than a home-grown regex.\n\n## Brenchmark\n\nWe have a simple benchmark that read and writes a bunch. Mostly so we can compare between storage engines. This benchmark currenly does 11000 operations. 10000 reads and 1000 writes. So we're looking at fractions of a millisecond per operation.\n\n```\nAsyncTupleDatabase(InMemoryTupleStorage)):initialize 24.359458923339844\nAsyncTupleDatabase(InMemoryTupleStorage)):readRemoveWrite 1289.2781257629395\nAsyncTupleDatabase(SQLiteTupleStorage)):initialize 198.56974983215332\nAsyncTupleDatabase(SQLiteTupleStorage)):readRemoveWrite 9325.776041984558\nAsyncTupleDatabase(LevelTupleStorage)):initialize 61.02045822143555\nAsyncTupleDatabase(LevelTupleStorage)):readRemoveWrite 2224.8067083358765\n```\n\n## Future Work\n\n- Seeing as how LevelDb is about 4x faster than SQLite, it seems like a reasonable idea to build a custom storage engine in a memory managed language (like C, Zig, or Rust). We would also be able to avoid the encoding cost and I can imagine a 10x performance boost from a fairly simple implementation. That said, SQLite is a gold standard for flat-file storage.\n\n- It's only a matter of time before we will spatial queries. Maybe it's coordinates on a map, an infinite canvas drawing app, or a calendar app. But it's going to happen. And we could already use it to improve reactivity performance. Plan is to implement an rtree abstraction.\n\n- It would be nice if we could replicate / sync this database. Maybe we only want to replicate some subspaces p2p with another client, or maybe we just want to have a backup somewhere.\n\n> 👋 If you're interested in working on this project with me, [send me an email](mailto:ccorcos@gmail.com)!\n","readmeFilename":"README.md","license":"MIT"}