{"_id":"typesaurus","_rev":"155-267a5df2b35fe290dcae2814b714e61b","name":"typesaurus","dist-tags":{"latest":"10.7.0","next":"10.0.0-rc.11"},"versions":{"0.0.0":{"name":"typesaurus","version":"0.0.0","description":"Firestore ORM, definitely typed","main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","jest":"^24.8.0","nanoid":"^2.0.3","prettier":"^1.17.1","sinon":"^7.3.2","typescript":"^3.6.0-dev.20190713"},"dependencies":{"@google-cloud/firestore":"^2.2.3","firebase":"^6.2.4","firebase-admin":"^8.2.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@0.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-2D/MyfSAFepfmra98hkooH5WHiWKJI0XLiK04PTNjJZ8hr0ZRucoozm9z3iHIwC+VVj1BCCbwPt5wQ+kg2/GsQ==","shasum":"25a4bd03eb3468d70d2e72c228935c46c130f20b","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-0.0.0.tgz","fileCount":78,"unpackedSize":75273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNZtVCRA9TVsSAnZWagAA4bMP/jf1AAU3MwJjD8MPw9df\nq2Ljau/SpEe7wug2m7Z72Y2bBmpjIsYlIAp2AIjfLoxMAZBzn6XGvBfgIeNM\npMvrxlG7vRZA8J/hT8B79GlkZ1BOpGNNe0xN64e2nn4+P9+YcOHMv7Ew+oIm\n6+8+kWiSHRUYTeWSHRKUhQGSCZXeiIB7e/zgb2hwMRa4IDQlfIt2y6wdoQeN\nHsxh18ATKaugZ4rRqCuPpavphEmK8bYV2y9R5dVP/9SR8vYxJHgEWydORj/6\nBtupzSV8j5+gYhpktG+wt2Avc95jM1ukOfiHaWh1G8E4tVBKjnKAAu/KvFN2\nL8vZjQF0dagKMhJzp5F8LLXt/shSpEYE1PBBGUu/fj3INSwP4y5LluRcwHDH\nB+hsbSyH/eQCpbk4bTC1eBKMqj/dvGrBvt6lUxOxYaRZsbVDQL8A9OR6NwCB\n3uDJMDxK41ilRbH1H4O0NqS0UkRQfjhv9oyhWooxgL02r4lMs2HfcsgvN1/k\njKM6ar52wStSemP1RkS9GEUgOvLnNzu4Qa4c0syelACRt5Fv0ZAXU4xVpOWL\nITWyQX1SIGkKVMWAN5jLt3X7Z3VuynsUnaobE/D7xsmB4rT3XXS73uYwJ8SL\nYc9l3wFnwDM+FtRcd8bmFI0OCEan1FkqsKgWzLgfyxGZBGJlv/hyCW3r5AJY\nrIve\r\n=BzSx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEahH+JHIbNpWKA0H7BdrsjGHG1ivvD6wzMgJHQeHGFUAiEAoFR5m6Vrfc+fxpRTqGjRyzbKuw55svQRzRahsjOO3wg="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_0.0.0_1563794260758_0.5343692575786196"},"_hasShrinkwrap":false},"0.1.0":{"name":"typesaurus","version":"0.1.0","description":"Firestore ORM, definitely typed","main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"dependencies":{"@google-cloud/firestore":"^2.2.3","firebase":"^6.2.4","firebase-admin":"^8.2.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@0.1.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-FE+xOHh8kgMLBhPXa8LxNqEINgk7UtHbl0XESWRbliqRUoK94l3cYxelie+HlCaRJ3UIdHIDpiNHIImJEzSx8g==","shasum":"500435a6fd28abc4af24370ad1f140e3ba6c5ce9","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-0.1.0.tgz","fileCount":93,"unpackedSize":96985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdP9zmCRA9TVsSAnZWagAA1OQP/iNV8OSikvaJyg4RcsFD\nxgZ0bPHZYoRizOJ29f2CaNz730WxAIhWgqZ657SMPWSWT2IOwJdkPKzWFF/o\naEIRUGMPVCblZrQPeD/leb01CpL74wMXipFDaT+IqmnidMdQFYwATcSjutmw\nv8oElLqDtEkyTHPo1D1FtR65ibBXm/Hor2dgj7DsyrS/zAIdBv9p6ohZFxon\nv0ajFhFoAFMQlv5iipXRcjzOlH/SDmE507wxCP7XYlLBdZZ2vGHen0qDDqG3\nV52wkjExA4kEexpS1fv5FwBecoYmmKzt/SRkhtEISQZoJOQ6+90nQBNgMKHm\ny9z3/5E0qBCE3GFcR7w0kWwFSS7sU4qad+oI44TjBMLAt8oXgWzKXtS9wN7s\nvJI9MZAyWcQVSZsHg9u0Ll8puxRqR1U77iYpCEhAw8gPQlkejlDTyU7t4m9g\nq/Vd26/ivIAeOoZqg+3xQZdiTGH+lLMXV8RNtAjazk3qQZP4H8aNt8oacI6P\npMtkBheZOq7G6iqHXmoTvSoLgGm1+uU6VmSH3BbU9JfRR9bHIyufS7jLVqPS\nc6jX19T+MY0vYlRstgiwErNdcTOUrjZ6wG8ux764OwcSjABdAIRnHhf1Ydfe\nWSAnZgpjk+qv/8SMQMV4Eg23qWRVL9Kcmsgoa/JCrnH0gv46JRzx/hCDPRNm\ncBiQ\r\n=OVwz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFjxGWqQFxuy1vkW3NXSPY5zBbr8IFMLMXagnG3aoHuIAiEAtqdURoZKupA2c88CfdpkcHdmTNctPsAUBJMWLRWo4yE="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_0.1.0_1564466405545_0.5900430589481187"},"_hasShrinkwrap":false},"0.1.1":{"name":"typesaurus","version":"0.1.1","description":"Firestore ORM, definitely typed","main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"dependencies":{"@google-cloud/firestore":"^2.2.3","firebase":"^6.2.4","firebase-admin":"^8.2.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@0.1.1","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-r4kEemg9qzjFbxntP6NsB/U0hw3oHCyBRnrTLXPdgXryy9DXeDy9VS92eIuiESWCd8izxVrzGYCLu1meqiha0A==","shasum":"6fc6783009149173b8e5b88ef676fe76aa9294be","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-0.1.1.tgz","fileCount":86,"unpackedSize":91169,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdP+VGCRA9TVsSAnZWagAALNEP/iRITbw6KXpfVoQsx5Mf\nWuwtrAdXy6wUhE1fHBB0JTZiUrjKVg+Hl94aI6eNDKs5tPwBZu1evkOopUlQ\nvcZZ3H4wNVUiUnH55ZPtTnFfeCGxCihum1hdiBAMWdvO5mloyWgRni3gOGUr\nku3wnssD2NAIFaRyZj6G/sO69x54ojzZlPhJOQ+5pOTPj44VwTxFrurOox+t\nP5zGRJBsjzzrapwP7VPZZcSeqq6gUJ4nnJE6xnnyoFdd7ZtXjNqN52XYOo3W\nlq+UABtWTM9UNRjCmiCsaIhFD6uqOHg5BL5Fc+g1+Ql1cE/NQqsACuonq897\nTbZRmWHlQK4+lDzq4QfAJa/oV31Tkk3+nuCAu1C8lXd5W01WRr7F4iybaPAa\nhGG39AZymb0BbjV6GRzoWJydbHGtGvNZoOcGtxxZEXTym0iwbXDg0i1WrHsZ\nRRaJsxbL0wbXBlcGDEo9ZlxPxVac9L5Y6QNx/tav0IUIuPL0F0JgycgiOJ7F\nPVRM4y1ar6JfW2w0L6lDduJEhT+gdgve751tnqSOliOxwSHHZrJGJ9APKXx0\n5NUrz/mwkE4Hc+JSG5GMzRi9vqQtJGAeYuhzfF6YiSSD/rj3AkfkCOXrf/pS\nTMYWDRfGGz6+M9PtgyfXK+NXmj0NCjDnGbFkn1c6Iw1uAr9HJAolOX62FFEp\naMx2\r\n=l2te\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEqQ2ft3q7oFfWSn9R2myrMyv0E66MAawFRl2Y4E42gPAiEA49U0mPea2TJ3tThGIbeOIQMeATRrQ81HxKqyWavtEE0="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_0.1.1_1564468549527_0.3676143465316255"},"_hasShrinkwrap":false},"0.2.0":{"name":"typesaurus","version":"0.2.0","description":"Firestore ORM, definitely typed","main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"dependencies":{"@google-cloud/firestore":"^2.2.3","firebase":"^6.2.4","firebase-admin":"^8.2.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@0.2.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-ioKfokYtRe144WSyFN7x2rZ+7nn3M9MznmZQrffadafqCRJ22XUNZH22jEs+PN4KGGyrsBwjmqRkbQAK4veilQ==","shasum":"9bb9616009e4e04d3e18a8478a74a79f73f19e21","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-0.2.0.tgz","fileCount":86,"unpackedSize":91692,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQq1ZCRA9TVsSAnZWagAAsscP/j0ye17wK6dRwPVfvoBx\nts8jsqZpaBAKKziVmXopOXAgwXU2aBkvPYSWhXh//QzNAka5+yBLTpCt+/Vs\ng+csdWwIb9zCQrO2WiZOhpjo0pUXOnbXuXkWuPivkXEU0Zzdv0HP8+ShFIlA\nFhwjC9f7qUOY7+tNuGNWps/fiw+iN6nuPC31jPEy9o7rK3McUauBxBEB8KrU\n0AHY8RDnzrOnqcqKPLt10gZ0lVHIrPUv/JWjgIEZP+7WU2qBQyZTsKZuhOjj\ntbOOC0Ng8J5sPFWQ2T36VylaRN2dGXUwAU01Y5bE4yZsfqwjE7rHb+LXg2g/\nTbIJtJC5DT9X32FNBMHEVXnsO18CXsEII66skuyp9ZPRWm6m0uGZFvZHNfY0\ncbBJ/7TGB+dAkszt2a8kqBnlqa85H2rlL8KM/JCGAkQKW9cixrNREU0xEhRh\nDd/dizs1En/8Vsm6v7tqZIQs+mqD2U8+zfW+0yy6x9WqvrKvcHAOUacd94FA\nHkHJBLu8f8/XE9NK0oBYfpkPhrVVC1KHPkkKUhYGeCFYJ6IzPP/7YOlk5T4e\nKOC8ZE4O9bBCLeC023zNTSgj7N3OrGP7HEqwDDS2bYDPgegjYVM9xj3x3wVx\nc7mfJ1TzMFpe94OGC8PWlI/guTA4Sc3e81Zg2dpHMYqSJaIr7T1ktjf2hHzs\n4T23\r\n=QwIS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFCrVhO5W8p9B0dBnBAjCRESEW9XqlHfKGNk2baqXYiGAiEAvRt7Zh+oG+CgZ7UMjstV0WwfF7hhQWtD7ia5lzM7zt8="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_0.2.0_1564650840738_0.5706206942954795"},"_hasShrinkwrap":false},"0.2.1":{"name":"typesaurus","version":"0.2.1","description":"Firestore ORM, definitely typed","main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"dependencies":{"@google-cloud/firestore":"^2.2.3","firebase":"^6.2.4","firebase-admin":"^8.2.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@0.2.1","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-2K0oc6HVYwE7ZKPrKdS3GDaz3/Q9INjYgUp9ubjoliglu0GaVJnWyMPw95XmFrhPfNw2bhCeVl7IOdypbY8bhQ==","shasum":"2820fe00cf70b36528b361160f5025a041220cb6","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-0.2.1.tgz","fileCount":86,"unpackedSize":91781,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSDVaCRA9TVsSAnZWagAAxiAP/2S+JP7nbkFXcEM4JW/O\nushPUXhMo6x5cyhn/rb0Ahzhanz2aWoHAPec7u0DHEUxQmmsDwxCNTES5Nk7\nvZlKvF3Ethp7dhXwtQ8htQ02B1kJWzNnmE7xmtT5oo+IaThIuk9zrNj8AkMR\nz2Mj+JhuCLkwSRqMnQGMT0/Bc0qM4rj6QlR1Mfu4eHL7C2rh+wED4FDf28HL\nW+ZBGnSjEkOQsDpvYUN0gFICB4If0KVkeelODqtUb9X9j34OvhKSzk4lWLfJ\nTZnPsTNsJR+K8x5mo/azlI+RwrIFUqBjhMT6OlwbqfPpfyzZ7CHNgo/QecfR\npEXZ4YG+QfAiHtks6O3wBRKuitc6bySiqOtrMvLQQMzeXcqfgN5yJTQ8cr4q\npiluAWL+h2CjH3pwTPrNcJwmXXkEpnMy72+96PWmOB0oQQp7JvWFlUsxpxXS\nWpQwCZwIrnKm8Rmc+/HmamimTjPuuovHtVw07hD5T1L+MR0QQps/qdnyFs2G\nH+JUizFEgYJIw4H0fQkeUHuzGpV0I8t7Bj428xEZdLGqHw/5Z5pMVeKOfXun\nNcZfHJGabI1gzO386b2SB96MAcahm1iff+aP7bZAiwAmk66PbTrouectxMdu\ni+JocwQzjULtDRElloFNTg3Pf0D8ShQ63GN3/3UwrmDivhrMwYUovqdsORSc\noLDP\r\n=oWc3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFkkqn9ZmJzmDmV2CNpDdbcsnvkmvElrYHfm5Hf2+MiAIga/Xui91k4DOBXbVqwQSnxqUvQb5jaji7QqxtXLcvkxM="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_0.2.1_1565013338261_0.9925869822089481"},"_hasShrinkwrap":false},"0.3.0":{"name":"typesaurus","version":"0.3.0","description":"Firestore ORM, definitely typed","main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"dependencies":{"@google-cloud/firestore":"^2.2.3","firebase":"^6.2.4","firebase-admin":"^8.2.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@0.3.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-hMIt/iV8JCVhg38Lx9Q1tn1G9yCbZJngdBZD2Kd4AgY+QwDRVjdPUFNeY4di2Xf8jMSoX5IlAomS8w1Mu3JDpQ==","shasum":"e4835016ef5f4ecf53cf979ff94d6204c20c2e11","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-0.3.0.tgz","fileCount":86,"unpackedSize":92311,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSE70CRA9TVsSAnZWagAAh5UP/Aw+I/0sJ9zJBM4sI/qz\ntYdVpaVprvaqqZNKsp+wzAjWoZdhHIjY43V0pmbYh4cuzF4yjnKX53oGL7CZ\nG/Joc1vlAmYRx09rk652ZQVW1XJz+0rJKe+jYzc8o0QYyhqhiiDClpqkKiJg\n7ybxBltUAZD2sE36TDfwUraNoEiYkM0oPfW6Nt5fbP44aaic9ggWGpaWlg2F\njxVR2GhhOP6EV68uKraP4XpBv03h3i1EEmEkZpO/NHFjGA3TRK9UityOdXKL\nk0cFrIKKXp/EjjVb2dRJXUpPG6BMuEMQf+V5vVwTEJssDT75whDbF7xhKcRH\nJ+699wzR4IUn0gA+pmY9ZW4GMik9SAOVsREBOiXsQZooZXjcip8VmVVMTlQF\nQysUO+en3OSwc2zTIVU+PhzCJ+UFgOtGiOLdZ1W4rfcTOURaQay0O2nFJjMQ\nIA/fIzE9EuwvWxwVKM+z9dzjWTWqYw9UavU0BRec7AdpS8YfGZ4EFUkSNptI\n5vOsbMXO7PmTO605ABphJuL2boUwup/4uRu/DlSs7sif/zPCxT10DLV0YYX0\n7B22ty6XLFYp8Ai1kAgnvPx52LfP/EWZhQXSw+ySHPPPqhdh3wzFXBByNcCT\nj0lC2eq+YnSROqv8sxyCfy82UHuyPQZE3vXaal68aJFegMkT+TopyaqX7XF0\nmQHU\r\n=5JKt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIARD8VzrcZZ19v0UBPp1xZKSy4NAVLx9xryvCvc52USLAiEAtW+0AJZxdSreTcHXkbK3gZDbl9spv4I3Po4oQSPD7lw="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_0.3.0_1565019892082_0.26518880264379585"},"_hasShrinkwrap":false},"0.3.1":{"name":"typesaurus","version":"0.3.1","description":"Firestore ORM, definitely typed","main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"dependencies":{"@google-cloud/firestore":"^2.2.3","firebase":"^6.2.4","firebase-admin":"^8.2.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@0.3.1","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-AnoylvN3Hh7N3J6m+/XoxKivpd67C5Or0nt25qYUwTtfndB/mjXaO51ZEWHFvDEk+pPNXHQlBn+G+SMdQnVWww==","shasum":"d3b9e07bda8a5a2d443af5eb0d566ad3ec82852b","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-0.3.1.tgz","fileCount":86,"unpackedSize":92200,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSFoeCRA9TVsSAnZWagAA3hAP/jKt6uhQS9FSGNlPVUoL\nzHrirNVVb5S3/0T+nmFwhvPdZU6ZzQNe2BKSGjlhAljOsD8UVo81ZOhTG2ph\nPVOTCzBBNCGg8dtQ4hbJJkZEhpgS98aN9KObVJJ2Hj1zBMbK10ty44PHil0u\n2WDEcNqu7+pgzUjHnPfqRozYte7OYtdQdUirhM+e8A4XIECi2w/pyxUr7wfJ\nTtWvObbtrs5O9Mm2s0Obf7BEaGPXpcY5sEO7R2MhAi/6oPfV2h4R97rekoDa\nlmfRDEcZsrgNe3Q2dgq52kwZzAI21FKOAOF2Fhsw578boDN5u2yBkuoBlrwa\ntt7jDXdIAFXjvzaxBE2oGFbADX4sdGNpHIlAGJFfTL90uZRP70RxOmJOFGg2\nV/1mNgRjbutGI25IUsclwa9QPiRboUkFoxflSUToqBsLWpC3a0CjYeZFNJGb\nyJXTyLux71s5FZLUPUa+6+6WyoOTPJcorq+faBUZ1hSRcAcQp3TXr+vbz5Qh\neVI85et05Ygtkp6M3SrTJtgNpjrRSJRsUrjSWsoa2pnQ3hmesILN61+a3H90\nweFgtwVly00lsQpc5Yh+eyemoQnjhMgET66An7tZA4rehyay83kPWNCQpNgL\n8l3+Afgwbqu7UUjqyb8YNSJg0dZkL97k41vqPDKTyLrMMMvIVIzCk3pQ5cJ8\nwd1X\r\n=8LHS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGaFf+WPIJXGrRzab5OAbLHxDwHCkZHCdrH3w62cO6/zAiBGokoQ27b9TZ4NI5un/HiC6SK+24He0pxRl6S8XuoZCA=="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_0.3.1_1565022750233_0.9000835267000726"},"_hasShrinkwrap":false},"0.3.2":{"name":"typesaurus","version":"0.3.2","description":"Firestore ORM, definitely typed","main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"dependencies":{"@google-cloud/firestore":"^2","firebase":"^6","firebase-admin":"^8"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@0.3.2","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-4KSbQXyJs86ixkHxRgHrj5tIfwTBPzvH2BOVr3wQHfcwxgUD43lzbkEYermBavMbI6CkCJqIq33RczSkuw6vDQ==","shasum":"48cddcef746bf158735e791210ba4dae9113a0eb","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-0.3.2.tgz","fileCount":86,"unpackedSize":92188,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSF9FCRA9TVsSAnZWagAAh4AP/2H50RH5GOS3xua5jjIU\n+/mf72Uvb3Y/wjfTof7Kl21vukKJ8mZ8n0SUk0tNzl/65aKuomBCDaOVfuyP\nEWHizMEkdGNl97QQNufFsSHweZia7/vKD8wNUBI33sFKd+iC0r0AUFJl9fF4\n6JPOBRaQqbI4Q+RhELiV15OMp8ZWxf3kb1kU62Om5r1FcI7HZQ6nZ65Sns/c\n+BH6y3xHhKapJDkyb7E7CgTIVlj/iN/Li4v0Ll+m4j0EpPlLJysqa9vckLha\nKLXuzbtA/hltlbx+fLqstrLe5Ph+GdiP7p0oIDDAmEilD2ZbgedRr4oWzDXA\n1QSAw+NWSJrfjbPGlEMtr40OlKnJQUbrb0C9fFWLVfK6ZAtRjWRGOsTP5SdU\nOnyRpOMPZnvq6ogpnc2+horlSsDz6SbY099RrBzL6R25rUv2y0wB8Vs+sAc5\nyprM1GYpxx8i198eFXW7CFnp5pD+x3woeLvUuJEjYu7ENfDY/xrVyyt9aiKw\nLwyyFjXfcPMbdtD2moRjgbvcSfo7pwekUgm/zAVrRY4c3+C8dMinRVbiBgRp\nSNUqb2bSiaa1xV14QL7+vBLIaDQOGSvsa7I0YPXvxKDBiWBiGgX/IC1n1Zu9\nC2JbT9qBYUz2b6Hyw08mVxb5BwISzKR5eYFWx77WFvR+g7o4S1qyHL5NQ0VJ\nhLN3\r\n=C37o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBODKjjKNPUXY2Qom0YfxGratk32yPP5YEKn90Z8LUeZAiBYnR9KlG973a134w6HEVwcMkqzi9/ccGclGsYkywtAKA=="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_0.3.2_1565024068922_0.7542244804858114"},"_hasShrinkwrap":false},"1.0.0":{"name":"typesaurus","version":"1.0.0","description":"Type-safe ORM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"dependencies":{"@google-cloud/firestore":"^2","firebase":"^6","firebase-admin":"^8"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@1.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-U+89Kt5ov0TbKcpv2Qb+CJ2EOX6Q3t3cMR5CiX1BmaJxPOLAUoHUxdmMMCGL6BQ2P3rbcqtY+sWgjB4YiSgz0w==","shasum":"110b35aa99753dacd37e2c8a7291b381ec789b59","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-1.0.0.tgz","fileCount":86,"unpackedSize":131412,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdUsOWCRA9TVsSAnZWagAAYvEP/RknfOzgam1wNXuZSU6E\nDQK80MQ+MZN2YCaCsNfPadgdowsxxaTlN1XZP2Hjn4k1aGSxTrJBZqYexaIB\njx+oPoG2sf0CH56HY00snykl24c2eJMmBgZPrMYEtwC0rJCiAGJ+j50UVjkD\npCNWhErrrLSPHFc+/crnRVepLUtbGzkiNlMKuhUeWiva5L8Zu+u6ySiivMxT\nzFdgqMxvYYUX3jd4HkF/8HCpf1OD0GiMPAhsnocZDICR3g1ZvhJ1/x2nobsO\nvEn5C0YlAbJieEdHqtI395MAwsP/67kmaXMDaIwsGm8XWQXl4IO3n8dhYTNw\nuX80LqEDG/5YyOEx4uEI1dHZggR4wQXGgf/dwOSboZsmCeeF1LsEN/5l+2Eo\nqnGHKwUvJDT1a7nvhARgiW00TJ/sn1zYfA8SN57Bfd1ZY2rPWGtgbpQRzhnl\nwDUe1MuME0M4G5nJ/+OH4ei7om6isWbtTTLNFL2vNB7CusCdElU9HLvht+Wc\nHyejp7E9cQonelNhHWD2Qk5snk/3guY3r3LKvEuglwAgHr+jgvplrbTnJgbB\nVhS4fmTMMRF9Tw6gK9FEKEZJ0qEr1jPqOsGTMwTGAgtPd1lK0yUBrNCMa7MF\nQZAgkmwdUdVdeEhEupsDl33izA+PqNtiMC5jbmJO7NggbfWseeOBVmi0seoP\njqvC\r\n=mscZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFI9CS8XhcgFrQzzoEWAHzbKU+NCGy3Z7f+u6LM9GGBAIhANFrmR7xzxTzq723Y/hFRnB3DkDBG8Och30OtJn5Qcm1"}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_1.0.0_1565705109738_0.19865856145074723"},"_hasShrinkwrap":false},"1.1.0":{"name":"typesaurus","version":"1.1.0","description":"Type-safe ORM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"dependencies":{"@google-cloud/firestore":"^2","firebase":"^6","firebase-admin":"^8"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@1.1.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Q0GupGteMJKHt7EddZFn/2lo1HFjezxXgHB36TQ+YSX4Y+06T/EkAQpqkSJFG86+uRAYLEctWjYVbAkMih4t6A==","shasum":"f7bad3a47600e0a23e9f2e7515b606adcb4f1215","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-1.1.0.tgz","fileCount":89,"unpackedSize":134818,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdWBXmCRA9TVsSAnZWagAAPKwP/0LrchV6WEhClwxMPAhh\nW/JOzY3nuS0TI3pm1BU+dKT6O0/1NnXZrjBr/agw+zhLoec9BGxjKse0htht\nOnlE/ry134PnilsWtUJjGS2GSO3Z8kXbEe3h5Q+Mr0JvZA7jtVKJdZBRpaX1\nUX1QrvPLL+WCuNE1drNv9ttklouopvH9MvUFyc1ud31kIWB8Cuvp/IiNyVkO\n0YI0FBka13eFCOJ+AFaP8R/7q8Vw7T7jgJraf5Yd7kHpE/UcVotmbd8JUayl\ns4nvzSVrka7qtJ5HfRamGvYejIM23/B8QS1Yj/B+2n3E2hBLcqFfdQAqGN7j\n7t83tSwv+UiP9SDGBlHadSO9gd+qrgMZhvMX0hGo87ajdAdWmrk6Yy2d0ORI\nTCindUKkdajYnfKVOKuF2zxuFvzXkVKxwPZ5OcMCyExx7YGog7C4lBAfp1qU\n14yjbQv/1dRfF76gnAClGQ//Gf/rm8czkZmDCWhRPdDEG4XQT8BKPZYthOxp\n1ZTAhVDDL0KTo3d73mKgrhCBlgYo3yA5//CcRaPuOQQQdHObjiFG4gA+029W\nFyW6+ML3K+NjYpHOgfwNA/GZttsa/WLl7xY6gOCWaiDeDU162nhpSrDQpaQf\nU7Tgq8y52O2Sufy1v4OXVq31rlYHW132SKM+IuuoguOS/vHw9lMYMj/+TXbS\nQSyK\r\n=GU+j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFjksoAG7rDSaQoM3ya9ljP+qGturXvVr2bdhHHMGp/BAiEA1NBvGreEFq9eF4Q2Jn5WHq3s8XOo68roTxOF2IiKqkw="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_1.1.0_1566053861923_0.04639071183344323"},"_hasShrinkwrap":false},"1.2.0":{"name":"typesaurus","version":"1.2.0","description":"Type-safe ORM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"dependencies":{"@google-cloud/firestore":"^2","firebase":"^6","firebase-admin":"^8"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@1.2.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-h11u2Rz0tdQBdZEFWGVWcJgizZQYyuzKptFFgm1ZS4ZXWbuZm1FEOseGIOyEEk5pKkJrFdH9tZJxTOkwlWW3Hw==","shasum":"8e583d5dcf875abe556ab2ec3db273dc0eed6e1d","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-1.2.0.tgz","fileCount":89,"unpackedSize":135920,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdbXkWCRA9TVsSAnZWagAAcDgP/A9H6L0dKqFvdUYHGUH2\nt2uaYXL2SaPeKY4vXz5t8SrIk3hlgjqfH7BNVh8vMVt7YYP+X+LNuBjOJ0cu\nTOPXsRPgxCOpk+dV2dbALhSktSanmBi7sJ4pOKGKX/OjjJlpff01wui0GLCq\nAu4RMLGpR4mvwzMKhsMPxVQt3yQAP7l1dD3ibn3G+Q/y9EeJIa92rugAPRvE\nlv4hYudGJvI9pto6OWbnylDB0hg4wZ8i57wQWRQdO1f14BG1QDhffv/TO3Q8\nymGbHBPWQnv9sUBSD/uv8wP5sN7Z6Jmu6YKE+hZiWNuE3IExlggP35IcSTdo\nPDV390nShVtzLnORXvsnAPnSHMxsGDPtaZYtmxqtoWu33VzVVcbhCsTZstcn\nYS2m9jaWbD2FBNZHuibfonbuxiSaBKoKogPVSKdHW3IR3gq8iLXTo4fNogkJ\nErF+Sh9HfVeP1snYEm3t/IuaLimGzq0WgfckafPCgv1zw7yMYPCWzIvGAOOb\njLKoLlesLzUx9fmjgC1+Rqgeycb1aSzWg72Y36rCr0M2KV5V5DOe0fNNQEEw\n4QKVcx7N78Ur03BwjLAZZhGxfk5XBRpajmXjL6g/z4e3H7D46GFoPltmVzLf\n2LTOj+mFRQlTrhXDWkEhdlBD8s1fKehYcPimfxyKaKcfWYqBWP8UOu+fYHJE\ntX+1\r\n=faXK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCM5Go7u8EZoD3PROPDFxqmedeN0Ysa2ycMVZ/UAmvPMAIhAKBbwwvxlSnOnrA5AnISJvwJg+DXwQqMAissjw19O+W7"}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_1.2.0_1567455509892_0.2991213358914542"},"_hasShrinkwrap":false},"2.0.0":{"name":"typesaurus","version":"2.0.0","description":"Type-safe ORM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@google-cloud/firestore":"^2.3.0","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"^6.6.2","firebase-admin":"^8.6.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"peerDependencies":{"@google-cloud/firestore":"^2","firebase":"^6","firebase-admin":"^8"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@2.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-J65ets+Ma44wqK9T2ri7Z/LCX/Cjc29b25sCGtq0YPsInXfd1TEyRfm+vQRVrF18vGkbsILucZpuvctA3WZRtg==","shasum":"9be73286c076d0be5859f54541ee970ad71e8834","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-2.0.0.tgz","fileCount":89,"unpackedSize":136634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdiyt0CRA9TVsSAnZWagAAVq4P/A1c+P4Qm4w3jK0lK+5m\nN6IaynOKwx/Otr0B5PVUv72T14bbrQRHZN6epT6p4hAzSA9n9aFHo3TUACxx\n5abzOorkkzyiT8N6He2n1oNV7G2QRWuprp2ZGxLmxrmrbyHBw7D18AK7RVV0\nx2E8U1hBRcMAQst2mu7MHFdOGRvFtXFkQbTpvva6CdIR+kSvTS1TDPrtF45t\nYQ4Ls2594kWhgUkA1qBViJmOO4Cep4rBndlNlVE5hYFG3/+37ExXBPu61h84\niTVtYoWrAOkTDLApAwAvbRCWCAIjXqEoRgmw535fuStwU38bkIS0dwMj4Kwn\nRU+CQZ8eqYyC1MQLrx0pssIhoBFvBMaOXee6Bp9P+ztY/ootM6lA3Mv6z9CR\nEvxkkhkACm9IrtKx5x9Gbhuwc7yxiDjUVu3K580jFwro5WJ12h742KQ1ebEb\nAvXX6FEOvp8SvXyheH+cUexjDGvCd/Q1/LyZ/T5J7/yQ3kn2oJq0T/JJaUqL\nsSNqloYs+odRFX2aqMHYMCT7p6wNkWpEcxN7i/BrFZJLf6Crxf6eZKyHbvaR\np7y7N7dsn4V+j6yIqJ8oaup6+mO093WIpwVn3t/Q/b5KnniitjoZP+ZQ3vaW\n9KwNj/9Xz0T9/Uml4SaDeKVhY651AdpwpzeD8YOjfHCvEIcdtZI+r/y0+IbS\n4nVc\r\n=KlBJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCHw9WzCQdwDlw1rnqe89HeFr9ma319TJeQd7Vicz02k4CIQDUq1xTd/ObIUeIz3YHwGJFuMlU3RawpJKmQwjk6n7fTg=="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_2.0.0_1569401716223_0.12698398280426804"},"_hasShrinkwrap":false},"2.1.0":{"name":"typesaurus","version":"2.1.0","description":"Type-safe ORM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@google-cloud/firestore":"^2.3.0","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"^6.6.2","firebase-admin":"^8.6.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"peerDependencies":{"@google-cloud/firestore":">=2","firebase":">=6","firebase-admin":">=8"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@2.1.0","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-zFRsrqk+lOGjCZrKglkJ0hnI4lZ0OOswdeopcSWmJ2kza/HjLH3aUigN2BhHUlTNa37TLktxqiBJl4WNkxNexQ==","shasum":"3299794062bc4cf1187d999ae01906348ae041b8","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-2.1.0.tgz","fileCount":92,"unpackedSize":139213,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwM+3CRA9TVsSAnZWagAAw/YP+wXIlJP3wgIBize48K4k\nMOhfJVrv3C6L8pSwd/xJL84sKD/JLB5kjklRxA6X6OWEbsvCXofRAh75DaA4\nVy1nTAyhBCAHo7VfkotwkCIvkBk0UtoL3Ju/AUN1lH7ILPcCZQXpmyTu7w3W\n9FKx4q/nYCdgobDP4xLtlFIrfH9yg2X6XgdulyD3V8lWh9ind7vqY2cMP5o2\nJd3DztBObMEepIvBIsAItLgVE1jXLcycxOZlC7FaNnAvUdsk6rlxoVQaPBL5\nx7L+2OweK3CmOdU9yJpS5zHfqpx+/lV7nRWTjtfTiJ5rQ7ECnp3eeeXECJvA\n3hAxG2l3IlSQRq3fnl35VXm+qH2671X9hj6lUg7TogJlxswhLiVR2lZUOrWR\nrdgwM45cWTEUObyFT7ApENSh+Wc1fG1CLxI2LLZFh9BIfi7MFnDoRiK58ywD\nADeGNiz/6XAzvpy9Efu7l3zt4SRLKHwXijH4J4h1IFVH+I/F3MabX/PgU7FD\ny83k9oCzouv4oxuAcxMfmL8kf8ZjN+0cHLlxTCiPNqJ4Q3507Kmf/v5Vbrkh\nw5srqFtccEjaitePNrrZ+yDvLuq+2yBdY5qyekXhKRcfr8Wi6vOp04SGgdP/\n49w/XLTnoncCAUfNalmdA/opZIxO/ySDlxYmD7IIkjSqTgha1d6m9uAo3GmI\nXp11\r\n=c5aD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID0FB5wSv/eMZ/Xmoxy5ajZDw30M/ziknzo92U9wxmx6AiEA6hqFbj9KYB5hi2HuC6GCLmi38+Xut27mPA0rdcQt8g4="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_2.1.0_1572917175245_0.0344517654024723"},"_hasShrinkwrap":false},"3.0.0":{"name":"typesaurus","version":"3.0.0","description":"Type-safe ORM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@google-cloud/firestore":"^2.3.0","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"^6.6.2","firebase-admin":"^8.6.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"peerDependencies":{"@google-cloud/firestore":">=2","firebase":">=6","firebase-admin":">=8"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@3.0.0","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-wbz3IXAAMIUDnqdOVJqlC/Xn4TLoy6RjaZCtFnJ7ySNiNLR0wFhNjW0dlkVnfT7sxk1rgBKP51rTn6ltI5ysBA==","shasum":"0b3df513b5c8ca10e8fcdf7cc0383844c09889ad","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-3.0.0.tgz","fileCount":89,"unpackedSize":139470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyOBoCRA9TVsSAnZWagAA+SwP+QCc3GjvfAA6cfCOPMDr\n1fftPdSVw6EwTXBhGReSACjdPugCwuEfXXt6nsl+8NK5XBT4rmOh8cfUOfF3\nQSzcyXBcFZxVtnQZuajcMrAeA/7mgQTUv2Tb4T+okBHF8g8mNkVyI4HM9jsG\n3PCMSiirk6cmogCtU7PuT518WUSiCCqs61CWNGBOQe1iyrZyavkw+0sr8udx\n6U3UEQZJnJEvDFIBY5oYXNbHdMWInJvFS0QkmZLKFf7s7fcLlhOg8casD4Qi\nujYNaAgkwu6BUma3r1AijLxBqfBRyy2n2cCTR9g3nzWeIaBdjlt28duGfqjR\nAUmxRCbduRJYCA4ZeLJDzQMYSEE0dqDtdMC8BQinPGmrLeCRRQkxIYyNm7UY\naKwF4DtGUelbrLpKMaL6qgp8dbi7eTLS9mX+4NpykpkkdUbHg+Kn+4AZDqmc\nYzUV2xLv0HH2yhCNjhXM7QnbzOqEq/tOHP/87v2sPi3NqCiVhiZu80spGEVa\nI3Ur8zEZSq/W/uGk1Mvl/tkaLDATQipNkdl20wpIptsnqYLm0mZbJ8es3j+x\np6/mVmIVqoE19Vy6irc/hdBSqq2Ueup33dkyI4ALXKJnR8M4ro19FyH4++1z\nLnm7zCYbxU2C9Ls9kzNfDK9geEAc/rnr+Vcmar1PZSLSmhvTS2Ib8lW/P2BI\n7yiW\r\n=88yL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6e5x/ZwNWpDtFSJ6ov34lL78Hih5hGAnc1L4ihyVwvAIgFW+pIPJbzevS5g/8FW3Wmf04PzcNQXtuKOuV5NKiO5s="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_3.0.0_1573445735850_0.5584138162421237"},"_hasShrinkwrap":false},"4.0.0":{"name":"typesaurus","version":"4.0.0","description":"Type-safe ORM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@google-cloud/firestore":"2.6.0","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.5.0","firebase-admin":"8.8.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"peerDependencies":{"@google-cloud/firestore":">=2.6.0","firebase":">=7.5.0","firebase-admin":">=8.8.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@4.0.0","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-px2dkFHai7j4nZKh0ALOexBhHlmjV3//S1m762yYPTeP///WHUYwQ+uG20TKjhL1qF+I8mYgJoWjVjLT1N60cg==","shasum":"25becfa7e2d450e3fc76381165422b579cacb1aa","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-4.0.0.tgz","fileCount":89,"unpackedSize":146837,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd9OBXCRA9TVsSAnZWagAAkIEP/3vCCVy/NlGFD0bmFr63\nmmhfjIaEyTmOkQTnIE5IUPAoAWHOCiCosfY+Q7TcAc81TKw8mfJ8QbxA97Tb\nQbsotQUpm9H7lXXRe4TevvrudnYyPPX3ZE5SuVVz6bnh1R4E37ZbB5J1p9Ql\n4v29S7684ZUM678WNM+fCs3Fmd3wwrd9H+5+OxkztU9HfuAtjStAxHj/cyjZ\nejY0QoT0DCmsWGSaoqBmOk9yQgYHD6PzSXssQp088q7qsP0fYGV64E+FuU5j\nHz94nG9M9R6pDsh0O0Qmg2pWIc4YoRm0c9PvzdqFl1LiEtsBzfFMQNbSCF2T\nfMXVnRS+YDu99EZXKI8wSGspPV9C9DL63HGIfuRMHQOqpyqUxGmFXpAkkpwU\nk485xzQooRQQsAeI/jc5WwbOtctic4zaGrpGTNHIOM2/TWvQTQtRthY1sts6\nD8bUJOrhiI4CHMkug2MVBPNUfkjzCLI+JaqCDt9x+TmojMuogJXUHdEgMsTg\nlHJLbTPwroKIX70dDFZx2iJdl4ZwCX+mNuw0k0ZLM83fZMhZjbed8SutBFmM\n/9k9Z/M4r0b9GOhtWlqSOv9cd/bpziBhm8I2MIK5wx0D4eb/i4xRALni54N2\nthzlZKg8uT8ZhXg84+7XvBvrCv3HujwrlvJB9jjiF4mPx6kYBXJXrQASnfgT\null7\r\n=wKB3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDk/e2bnQfBh7JavUaN2gPYqzgDkGKjTmcjfYkabhwmzQIhAJXd+hbKGKOTnMUe5yetW9PyeoEvKj7vUyvqgjNi/9Cw"}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_4.0.0_1576329303031_0.28353827466231385"},"_hasShrinkwrap":false},"4.0.1":{"name":"typesaurus","version":"4.0.1","description":"Type-safe ORM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@google-cloud/firestore":"2.6.0","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.5.0","firebase-admin":"8.8.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"peerDependencies":{"@google-cloud/firestore":">=2.6.0","firebase":">=7.5.0","firebase-admin":">=8.8.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@4.0.1","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-L7fq9gq1xRmtRkktQSqbameZscxurVMhZ/UsoAyvIVT5Ykh+Qpk4LRv2dGbepMbHxhwc6FDMzP/Od72+PNbBVQ==","shasum":"60fb3ce63ad3719e744d4e4bd855eb49fe55df6f","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-4.0.1.tgz","fileCount":89,"unpackedSize":146981,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/DtgCRA9TVsSAnZWagAA3hEP/2jlhFYngp9iawUTq/dY\nHQMhbl8Rk7X4xEjc546PUw6+EZF9Bt2+NFl5TF4yacFx524h5HjdXyGilXrZ\nAvXT+20rC/8wojVua2jy282vSRPYEq0nnjoZKMvUhR9cTa5LXbzxCcHW43HF\nHmx0HyqD2xKbc0T0+GOHzT7Xwvwfmv/N0G1Nc6FCo8WlK8/rLYGk+SQfNmy3\nny8aL9pP/pA5V933IDXQg9DaXsBKhA+FuewwId5MvPn7sCjrBxULhK+EDTk0\n/edV7Mo6E/jl2UpWEF6ihvl4Kcd4HaVlwkYK/KuRNh5FxV1uB4EKv9LK5+4V\n9QJCfUBg7nzp+Zsql1EuxpDaiTJkHtSjlrmwLO8dESoQFKb9LNQW+E/D7Aaj\n/2Ob4DxWxWaX+K+LZ0e/yL+qnt9vrmC6fP/xHQZd3hRNXeyNTDmbiOb9FT23\nwp9n4iIiOlGhrPtgTINugJ4GGVZIC2kedNKru860MMC/slCIk5d0mUM50UlN\nBObH7YVlt6Y6HKiPVY2fKNzoV7AjHYFVFkeGAfFQnbfm0jGXcLW955vOmCmP\n52DHCb5mWY3+lzhLrBNGKjyyh9kgA4szn+JYlPLjEUd1ImSMp7V04FjnHwXF\n9GKmDVlB4yiHjNzaIiiwtdZKAJCIRC9frTW/Qb+yIQmMHVmdnN0EdfKSAXvS\n4I2g\r\n=0AkE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFloAHkOf1x4puuM4f+ndsxeDzHEhRBn1ZbRb5nI/QEbAiEAuWbbzduUlv3ygpAkzliGZL5SRyMOKeb8FebgVW1RrfA="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_4.0.1_1576811359750_0.7076756855670003"},"_hasShrinkwrap":false},"4.1.0-beta":{"name":"typesaurus","version":"4.1.0-beta","description":"Type-safe ORM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@google-cloud/firestore":"2.6.0","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.5.0","firebase-admin":"8.8.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"peerDependencies":{"@google-cloud/firestore":">=2.6.0","firebase":">=7.5.0","firebase-admin":">=8.8.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ORM for Firestore.\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus @google-cloud/firestore firebase firebase-admin --save\n# or with yarn\nyarn add typesaurus @google-cloud/firestore firebase firebase-admin\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `@google-cloud/firestore` with `firebase-admin` to work in Node.js. These packages are listed in the peer dependencies and won't install automatically along with the Typesaurus package._\n\n## Get started\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@4.1.0-beta","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Y/XVwtopbhuYprFjMQnEq5mvJfNymRLO/TrWI6o+quGBfpYDg2hAhGWhM+dsJ/pTeKXjNctyy2gG8s9GGNPsqQ==","shasum":"86b97b3fc84408565e1bdfc1505991376a9ccd22","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-4.1.0-beta.tgz","fileCount":89,"unpackedSize":147805,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeCOYZCRA9TVsSAnZWagAAKZgQAJ2dY9z23WyaJGoEplIj\nWW3ngxTmdnuCIc0KBPP7BAjJZV0SSlhhf/0CuI1DCq+xOTVfQ8Y53EN0aVvg\n/lsEow7t9LKxykuhnbrE6fg+Ayjc/78m9EDFe2BW7zuIDRTk21iPj1+Ght/R\nahKUQnrbYaYje4JPviD+syJW9ETThvnF7qKEcvjvW992dgwiSjEiG9ZHyhMU\nel8macrbme1GUtpEg+JGqI66klREs6dEc4PA9VFZ8gNpfBAIv9Kiiw7+DQAe\nwio3Mt8NUJzE+py41kf6hf3hpcoOxQLRYYus/s5ALYchcfIk8BD82gy8E4gb\nT6fdDJv/fZRu0WUjUOgwo0FxqconAZxOJpYEdIl8yTs2e29Clxknxk+BCpoC\ny0pqoNeU1BlILWLCdHNks10Je3AYxMdVXzdX1VxIogosyLh+DocvtGCBG+4Y\nUtsj26F2mDOQJtxjjuPWMD8BeO1Gl1zT7RGoMZfsCxkwAloHOT3qmWb/b3+U\n0BzgQAozdMh70d7l5RbTEAHqETG64SRopRcOZdNMFDrkpdiHROqivRROFsJe\nXZtorH0ASQHgfXb1LuW6akgTgpfqTIXuc1ntekIA4au+h6zU7juf842CZTlP\nIxTMSaB7kCmKW5tEbDVcP4hSDzYpFzF8ZWPWA3xReSzvD1WPDu9fhWqg9JMN\nw0DX\r\n=X7IZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrDpgGz2LxkW/4Cbg92ICHnxDpA69hLBI/ZiHGvNn/7gIhAIX8gS7XZ9G8ASc8AyWHEsElrrMA56xeJCpzmVHc4m/D"}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_4.1.0-beta_1577641497133_0.2836977808887573"},"_hasShrinkwrap":false},"4.1.0":{"name":"typesaurus","version":"4.1.0","description":"Type-safe ORM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@google-cloud/firestore":"2.6.0","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.5.0","firebase-admin":"8.8.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.6.0-beta","webpack":"^4.37.0"},"peerDependencies":{"@google-cloud/firestore":">=2.6.0","firebase":">=7.5.0","firebase-admin":">=8.8.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@4.1.0","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-AZodwk7gRiT/C/IjngP9cgCNqSFWbtJjjA8JUb6ZkJrqkqdhThIkTwE+/lK83l+QQy/IJoWjf8N2K4MUvhmI6g==","shasum":"b6259705f8dcbc8eadc02776610b3d1a03f340b5","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-4.1.0.tgz","fileCount":89,"unpackedSize":148597,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeDLNPCRA9TVsSAnZWagAAq/EP/Ro/GCXNyCraFMCNDlO4\n9SkEin9K9e7oftpuW8OW2fcse9IRE5VuMQ01KfLnunOquZUAqbN9PWIB3vyI\ncoRvgtIHpGG7ymxxmKwt85VvLwenJj7VCMY/IM50nxKI0njs7MNMO0hob6rS\nPp4EeFHIsNG6OYN0eHo70anf3Cu075xzo1OVoy085H8Z3RVRkDrtIlFcCxxi\nh2CbfSk9X3CfhxXMAS2M3uTQAlCXfTGGOHN69dKlVfxdwfgYFpooevvAUqtJ\nzovntYU2VBZOLcrHgk74pwadV+jWe8xhjlRZ2cXQ/ZmE9192t7ki2zFWJOJb\nicxrFa7jsnGXimg7OMFS999uGEfG+EM60+9DiYfsk0jk7flHEOaYHxc7jDuC\ngdMeyfdEoCYo4CE+h9yNjOyL/Y/ilhDSTDkLpcSrS8nWmPtpKMZ39FipSpmI\n32kzJMJkDzlIlVOWHKmCndwjw9UlvfPIMIY7/TMA0VfrRhWPoboAzSpQd8Lx\ncGtburYfc8SLi0hXQ1ETm0Vr8ZKqt57thqVesqHE4OKEPUgKUD1udOr3qfKQ\n+MG1QL2QDVwYazeX8/Ox0dfIswbSGP4RV8cIakaY23S6tMnUyySwyApMuAXL\nyLtFLRJ9iZV/QY7wuxD9dqdXqXeS4+qkalMdnjQto5sS4tkdxkwlDJMgRWsd\ngkBm\r\n=0YJp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEN1Vmx2zxm5rzxhUapvuzSoPcHXn/Tc4+nr6x2YChTyAiB8v05hEuQ2z4gn/P9zG9tJfcmv5EzZWkatzs2kmHCqPw=="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_4.1.0_1577890639453_0.28733151970364457"},"_hasShrinkwrap":false},"5.0.0":{"name":"typesaurus","version":"5.0.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.7.4","webpack":"^4.37.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@5.0.0","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-cDYyrEylmR0iRjtQGemYPjBlyzxVQWnqUiCVYceIkA4BDAh20utPIZHCb9ludL7EgJN5Q9b8zsJ5pwSq94gWHA==","shasum":"3a2402d07338ec6f4678f9dec756620024676b3d","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-5.0.0.tgz","fileCount":89,"unpackedSize":159136,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeDfuGCRA9TVsSAnZWagAAYi4P+QF9yKL6E9SgxHFNUpVx\n/k3auViR3tViNho52CxmjvZlpOoxxi8gi2rPRXIBugUzPIP7Sn/aQPaztD5x\nz4+NOp/MdMw48RWPol7xFOcFiBXKQb3K35WkaQV6VJXVNNioW5Q5EgIW7PfI\nqCmHkc11W1HznVIYke2PRmy6P3dEAh2Nra7UAKu2jaR0iMZcvJv8Yw323NW9\nY6EiNF6SOY5JdD+ombWbX96Iu7U3N3FMNpctHiXib7U6zZBH2/jQmEkk/a7W\nQDSGAvA7Yyt0TIXHpRcxjbZ0p8HZkmp3uSsFYsDd558XM24GT1BBhbG0ed3u\njmvTgAKBQ6oo1RtrUSXaKayocZw7zSTJhg0ahDIF5jMQPsnLI6gcgFcGHitE\nqRP9iVn6UG8EGiWCAZf+bXI2RpfNOlOOZxBa5VVupZJoP+MG8ZCx1ykX7qZJ\n5bLQT9AFHwCUgnF/MrqJpYDJuFxft3JkemZFsJYYnuTnK+O53H2L+tGnHitZ\nmRkDSgu6UaEdZwKS/9vTQyI1bRD2H3CLoErPwZ1biKTX9crDdtCh4fPzpdzM\nVOBtZ3xInW4GoetPFzMMyE/xBmX7khUrrpft8AF4kkoRrBGk8YwujVyDSZeG\nrF6MDLQxYXvd+MPojydNuyJHAcpOX+LyLejfpFUVLdu9QTyUClGEQ7N6wA8j\nC7hm\r\n=AS8K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6sZEA5AQWYH8mpBHkPN66+2EhiECMkDfXmTnk3DpcRgIgPXGfq082OE+MRERr0gSZKdDF7Vdl6nC7RRtMD1/cgLc="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_5.0.0_1577974662040_0.5873257033139359"},"_hasShrinkwrap":false},"5.1.0":{"name":"typesaurus","version":"5.1.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.7.4","webpack":"^4.37.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@5.1.0","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-bOHvT2XfIH8BL0rsb4+iTF7DMws+FoQCTuGKYwW3NoLBnlsp6e1xDusdznbMVNFUR7pXXHf3Koak5g0nuJ1lVg==","shasum":"c661c551da214f634fae3db7efa7b7bbc1635a54","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-5.1.0.tgz","fileCount":89,"unpackedSize":160764,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeLp1UCRA9TVsSAnZWagAARq0P/jdG8FieWxJlSerw2GyH\nSVJx0xSF4ohy0Z9djMALT/I87qNbhIGT39pRdY3xnvb43atxO3iR+Hach124\nXEQs4i7h6pW/X5fbu+9GMFwCTcRNk+mXh1btABIo8miYyxexRvQx4/1pEhtU\nMU21qeV9UBgi7EvA3fobpCmxeSjeVSXlvbdIybf9eBORx3Vr1uVlnAILoqKl\nMN0oD1caMoW32S3A4BNhD1azl9D+n8YbtTJFttdrrnNLrEkcy3/FPbrqNHij\noZ4J3vZF0PC/+26T5d3K2zq3OjVcnv6AC1QzbusNos7jyJhvQ/A8TurB4WvC\nW1BPIiZ69UqnqfUsQstROL/KIL2X89L3PZZV73ERBBGaj4miq0hdUo7WEGAK\nX2mwj12ojxvuAMI+l7fTohn/fRXXS3eGBiHHxA8BW31+ecKstAAMAdLOo+KN\nhhv4n6GUiGJj3mSjxzrWzwDAn0ZJ0No53vo81mMfHHZxuMwoCVKF1dd+o+7h\nDLibxCDHTSMMKKybXV+35Nk5GeRFXnC3BMxQMEwJtZfJ5sYrCfQ+R341wAx1\ntfNZhWOAPm4O/75gS4s0JvqSeloI4CIhOoG3wxzccPKSvIG4VeHLUKrFiz7F\nT+y2Aoe+Beki1c4eQ5vG7slt1yTNzNT/DWThx12z9/nU0bmllMUF0FGoB0Fx\ndsRi\r\n=wBfg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgh8ubymXoy+gMkN2+kaa2YF7zqfDT8DErCvOxYAlrpQIhAOsMWVKjgaaJfT6QPoIoWjtC51dOaK0ekgfSAUu88iK3"}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_5.1.0_1580113236374_0.10105473244846053"},"_hasShrinkwrap":false},"5.2.0-beta.1":{"name":"typesaurus","version":"5.2.0-beta.1","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.7.4","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Reactopod](https://github.com/kossnocorp/reactopod)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@5.2.0-beta.1","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-lBQAV0d3aq8Z6sqqgBsdne78AiWOQX71O5mQRPDo6MKIGfYKdQK9eH85U0N3H951SOp4vWPGpI9BdHPEPxlZOw==","shasum":"4af81d44c4536e49e17f32ff1d7f6d5e37123f2f","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-5.2.0-beta.1.tgz","fileCount":95,"unpackedSize":164720,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeNEDxCRA9TVsSAnZWagAASNYP/jXBmcZNOGqLYCiss/d2\nEs5zfn2FBqO1v6joHa+cA3Ibw6IRqHVKhNshvywnbFIjiFScjf7f9zcjK/TA\n+7MuO522wQgHvYYgsSfBbGuRMYYKbVqBd8FdHkGm4Tj+nh2g9EHlP4HGczf5\nhxrk4z3aytWNpL3pwzCXJHJ6NYPjIKy36c3EAk2E+71qNktJsZ5YBqPyD5fO\nRNoLGtAJvEPCsuogvjhPzQrvJ1VzJH0fRhEkYO2qDK6PFVCL1hC942yjBgLE\nzSGy/A5o/dcCdW//8fKsHTpPEZshMtNe+4kt8FwG+Bq3PgCa7GtVORr+ylpy\n7HRVKOKo4z7HtSI1O7oE/oop3+CX1XNVu1SzdOOhkhBdLBFWXiJ/R4FetrA+\nMRGZyCbOiVNb5IObhWlOO7YEVb5nSEWGYrfUUwrToJHlkMUCKdGyQZbgI5F2\nUezGzCJn98pti5ZzpOzYiAWGVWjnEN3PcTAokcDLjB4X6bSP5NZBVSEYDvxy\nSPihsFHdhFeQ8xVFRVhTSH/V49Ri+gXoEv3DZgcr1esZo2Yg4NZahggLIqno\nzcbf+30GlXEdVCiYjtCaI/BxoJ28Vd11Fn3R9wth7Yd5/68looLbjTI60N13\nPEgd5rKM1l/rT0c7B1XXB8zeKipXHbBzyye8Vt2geEY9OwbFI8FUfekMjGBu\nntai\r\n=RE9Q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5uvr2unFzhBq4YIVO7dSj74iiljdmkmuDTH56FvraJQIgai+2CiQQtPCBN+HlVnRTIBEnbJdH2GM4S/FHMs7eNOs="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_5.2.0-beta.1_1580482800986_0.3701177934397877"},"_hasShrinkwrap":false},"5.2.0":{"name":"typesaurus","version":"5.2.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.7.4","webpack":"^4.37.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@5.2.0","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-KkpL79/7/j1nXGvFlaJYDVWu9HPhrQkgJC4kMkZmVLGtSk2bGhXUi+CDqA92LIR5pjYEhWUg/60cmepdxP5wMQ==","shasum":"6d99ae5590d109798e56ff2f89000b552143256e","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-5.2.0.tgz","fileCount":95,"unpackedSize":168431,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOSh8CRA9TVsSAnZWagAAIewP/i3d6ubpxW+oz5Q0svk9\nlLMGEMkB4PpEJqufIFrochiRkVHVMQBPN27RqoUrIVVatHTixdoE2K6d2vYU\nBwQRxPANh3ho1llRJpDcDMo8yBxmcR9+86tAgKFfy6SR0a9/uzBRfFKU0N9v\nQMcw1kPrWqt8asmcCiAwLJBvgAqyYi/SSYwxeUvkbWd+HeIS4cSs4kEaCIqR\nbXxza+ivyhMHL7GAcwOJmGNy6lFT6Ce3gTYijr+aWBkmfnHUvck61F4JRzwj\n7a3GqqzKRnXfr8H84+AdCwq5MeKlgtT3oVEfgoRt2+d5LJRuWZdE2q9kccHe\nsIjSdsQ7n2DtL5rtPcP0cIvyuQSxxKESkrmqGhOaurnt6rX0OcV96tzsyw74\nDMrb00WxEtK1hLY3Vdm1qLXFh5ahWBJyTN8Hyt/jTLbExuV7ttbwqVJx4uZN\n56gusW7WcBxiHvdC8e6t0wFX/gU7lI+W0mGeRYyogmHv5vtJ+dtfeUBHsBxf\nPxiA/54Kb3G0PDr6IRlNhB3vl/EODirfOvbR99sC+7AFS1Erm8Lk4JeBEQjH\n7NQrcNDOmrR0Di9v9cA11bW3DjujTt21HbSfVVRQDXgi4UFf0JXrb7b0cbN5\na8cVF4EGEhT5oAqbIIK7i/HyP64FIargjGPwhSUK6Nyo6vyAaj4UZBvn2zdr\ntxai\r\n=ZLMa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVrf3yhztOE9pNGuLklWR4mIfyx+HYOfcRou8TZJthmQIhAOiauf7GtlZi1DkMXRk8e376ii15NxI02krzbyhHbmOM"}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_5.2.0_1580804219327_0.986683669316923"},"_hasShrinkwrap":false},"5.3.0-beta.1":{"name":"typesaurus","version":"5.3.0-beta.1","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.7.4","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Reactopod](https://github.com/kossnocorp/reactopod)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@5.3.0-beta.1","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-LsNgpcYRTTYx45ljowT1AokI1pgKeXP6+B3kE/j55wXkgY34rpTbpibvg8TbgPviaDtnaCTxG59Ktej4fBJx2g==","shasum":"2658c13bf44d0e30d2c415f235eb20aa4674c235","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-5.3.0-beta.1.tgz","fileCount":98,"unpackedSize":170970,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTmwECRA9TVsSAnZWagAA6LMQAIDgw3PbcPNCJEnGrOsn\nPDI79zatuMxcwm+UhQO51M2MNhZernpI6QHDtD2K33mvfK+qwYsmrI61EcPG\nGcYenfNPk0hfUGG0di6gb+J8ytNbLULchgQ9KYFisPRVMq+K5+N+u2MR09Li\nNQXsG8iMAXvJJihJUajsRT5hq889KpqHwYRvhHJPlYd6eTRhFAHROq+rKBif\nhqfrWrngD8FBfAL3fcSkrvs1mY+ZKY+oghzLniP9wskXx9Db6Li/Nt4XYPi5\nQH3FM3kOJoUS5OXJ/zdXBJxjyNaVYUf8pmyXaWVNvfFfhogTEN1+96BtQeoX\nN79p8oYrS8rvdLzug13pYCqoqdErG/71sRbauIiVIwcD/Kbf6vlyPWJE5/4o\ntftHKaeaqpLQr/NLuy4mJWJkQobyzerlM4V+LsVjxH9ZBOjCcfqPs8lFAEBD\nHoTrpx68U+psh3fHa55ggKIElSsZtMB9TNd6SEgUkQtrvoIQageaJOEha3TG\n0Mnoi16ZLRWUzxpJ6NBQigg/QHu/S9xtuyae4tqLl02KPVA6Y8/YyT+0WkeL\nQUdqpzAoxhRbtMES6Ic3Vrn1jwNsSP2ohE0fYdfkU36qiQLDyur3pk4C+nqN\nsLGSoMe19xtUQxz9DPQTeGT4FSfV9NHOIB4TL4vg4sE4tFBUR6OylhkzQa68\nJKbk\r\n=MwwS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrApSp9jmWWtJ7KZlZUVA1ReFK9tLwC/nRGZtTBWWW2wIhAJoxJTbIt3EcKc55BziC5sQtjJ0NRG/eibp1iiCjVuEh"}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_5.3.0-beta.1_1582197764164_0.7444662214166466"},"_hasShrinkwrap":false},"5.3.0":{"name":"typesaurus","version":"5.3.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.7.4","webpack":"^4.37.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@5.3.0","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-LgqME6q2pCRX4xuMF1DRb9fNxtJwed3VHvmBzlduMxPijAXFksQS1heAM9iINcaeNCHkoqWwA1aW4LwcVURvMw==","shasum":"f3c8c3d0d99090ea2c2e0f0de01d7e8efc1cb603","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-5.3.0.tgz","fileCount":98,"unpackedSize":172430,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTpMQCRA9TVsSAnZWagAAPY0P/1C9BwHMu44toYxQ/F+W\nAxgRG0GDpXGVvgTOecV8V+V5AOQk9ih9tO2D/XV7Dt76NuXk9NXai8RGxBhW\nCjWHzbuY7FykwJG7Fi6059Y0qVALNIXOTf14LvXPulaFl+m+wJhMjRZdVpE5\naGZexN/WeHKvmB8NouUXQ/hHcz9QLD1KehHHXYfvAcEXbzNJ9YjYuXayP2Vj\nRdnRnZOVd+fE5K+Ai0aevhOg3n+sDkNhMlfmY+V1iV7kCOPmnt3fQABmoRkv\nj6sOxoX4bCdZMMIqivQ6IrOal8z0UJHgZ/8Rh307g7czHankMBgDk9LZ+O5R\nzs4BjaBY6BCd63yyRcMM3A+5xFcpZz1s+eXYWfiQUwNu1NPHMQ6sbxPtyUSC\nzbQCxXAi85Wl7D5Zh0oaPX6GcyAg+yXQe2ob1Dr/zisk/bmYLjj6KtHj/TlD\n8GTz/vvRAoFI1OiGHYcFqJqf+Aa9hrDQbTVJ8rob1tHUtGymI3EjQO10wBxs\n+P/XPUJaqWh0YrEeKuj/UHsn46rDsIEJbAsvr1MXmFTRrSLQai9P+1xo+nrQ\npFr+2O/zyPxWekKSTkN4V3/sd4yA5Y/XGYL+4y/LTTzrRCj60DmafYS+lbVR\nrHV4UcabQyqfIMlQyfe180DrVG8WPIalUQ/NQ9oXP1ZZtGUH9HywWp8SEmKg\nbZqc\r\n=SGMm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9JmCzgTyZGlghBpzVDq682IhVR2frKochURFlpyLHJwIgDvQVG/NtVPhifj1bsKgkggFNvxDqr+z205ydI40Hbto="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_5.3.0_1582207759567_0.16962005447856732"},"_hasShrinkwrap":false},"5.4.0":{"name":"typesaurus","version":"5.4.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^1.17.1","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.7.4","webpack":"^4.37.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@5.4.0","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-iuDVF8YDoaKNKbvJwiTj3Fj3KXVC/tFVfw5kAOt0WI8qwwJIoFxQBcPYk4JkO4U31Aejqpipm0gXq68GIx9A3A==","shasum":"edc67836e25d5aa58ab99e1b40114a2c6c6951a0","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-5.4.0.tgz","fileCount":98,"unpackedSize":173575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeldN1CRA9TVsSAnZWagAAjFQP/i+rgJ1FZ3UmsWZ/4pxH\nDK+7peGlqPTtkwhwGD034/kpsYdtvkgXgUNUt0SXTaytcn8HSriRxZ6Bn4On\nP3ephEudk9qw+Ikd5Yrg5TcFXhJ+Ja6rZ6T2isIwJ53oR7Cc/DSN+C8COzqq\n2rCGMKqbl+8BQumqYisr6aa9ztJtKpl4Oli1f+R7s5Y4wHLH0K1gEE09PWh8\nJwKDrawoyqmeFlINnJDoaMq783i6d73eNTNOLRDtFjWaMhVSf8hYyMO/HZfb\nkuG92XB+j7K5HmPodJYGjGcWNxN5gdpT8h7Qv0rWoCQO+b//Y+91U2VK1Sli\nhRy7QqQOGem0zloh/LY6uso1fylwgu7d23SctbGnn4rtr6/Ei6eqKsXIXSHl\nDCmIP+hLoqrveY/kgDfu1oYdyJ7Z15tUP9/NhGn040pkc4kXAsKmZwtTv+jo\n0paxgNoTeQxx6RcXtXGhkexgCEL0lI321flZc4guxjvkANXkBgozFm1Suf08\nNxEJLD4+mlq/Ef604TBH/vxUvOH1Tad8t4sv90kt1LRZr1OQtAXZX+YgHb3c\nF7lS/yoq6uTMw6IHsb7mKFHFoaQg/DJ6AAGBP2T44zxuk+4DQ+XMGVHu0Onh\nXHogFzGgukaxq/ALJfrKR9KG3vFQUkvfktmPicUb5WtQCRUaof//vua5nXgE\nGW3s\r\n=VLl+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCV8sTV/YpHz8uslut0PxxB9iWCrYC5dk1WbHJ+rsByiwIgZZDKYCfzJmcGSO4tlbIi9PUNMyMViuim1jaI0aWiPSc="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_5.4.0_1586877299946_0.9207710201207342"},"_hasShrinkwrap":false},"6.0.0-alpha.1":{"name":"typesaurus","version":"6.0.0-alpha.1","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","sideEffects":false,"module":"esm/index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.8.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@6.0.0-alpha.1","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-qcjwObq4l/qPlas4z6qiZCZZ0XM253kBsUNhouvJDafXric0Shm2w4DTY8N4bHlI/WBGogUh1LGQPHIrEtxQSA==","shasum":"6e74c7b9db57ad689df1b209ebb50707289d6731","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-6.0.0-alpha.1.tgz","fileCount":259,"unpackedSize":540276,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemGDJCRA9TVsSAnZWagAAqTQP/0ZUjfrVwGEIT7Zhh2W5\nSeMWujFqg17eLLu52P4FEGzWYOJWC0Vee7Cl+iUP+lmb6EhLY1gs1dEEfE9d\nEshE9/XIbTa7fM1CPtUcfjfsYSGTdhuJR+XtGNTvMbdsjsFWAvnLeugwHNIL\nnO9tiXd9UrHl0blYO+eQAJuyGSD2wP/bN8OmYAWLKU3eTmKUcBuMKUPWLzXJ\nYWsTVOblzr4qYFxRK4dSTxBgactTcidIEkh22nRQkNUOZY59zRyUy6YmmV1l\nXeQwGhpvcJBBCUZpMNTnF2VIGt+v+khLvc66jLSdvsJtIma2gTJJ8nzX7n0v\nLMmve1tmqL4xFzr1by/OoOArM7JdMxl1447abgiI5r4PM+NupKgOnsMrSAUp\naNNnbAcmdh79CSndfI0l0PDWCSnD2dHKDpyHjpH5qqS27kFBNRynzjlV9Gbx\nUeyfJr+77o3ZLGtjjJgNdkU7TSyMam+cLc7DaZ6FFmOah6I/sA/I5i13aW6L\nnW6aMuZhhBheqoTJApb2A2vTDh0cV8Pev1sW/9fPAcYYfZRG/VVHQNFOPC4q\nGKHyzPjrow9PIxqfhNGy6+XlxHMplBCNtUEpyq2Iy4NAXDXuGJ5wMsGWoEkq\n5E6MYH41Ki30Ls/l5uF20cD1YTowSN3Znb3wOORB3T2i56pobTtc323vsbfm\nxgCi\r\n=DtHJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE1g7fY3GYof/5ZwRjtvnEp8ukr1x5oqH65WrPDRixoIAiBH2vdt4Rn4PEy+xKyPwTveUv2eNJ9UJbNF9CeaSqFimA=="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_6.0.0-alpha.1_1587044552981_0.3406723434827259"},"_hasShrinkwrap":false},"6.0.0-alpha.2":{"name":"typesaurus","version":"6.0.0-alpha.2","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","sideEffects":false,"module":"esm/index.js","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.8.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@6.0.0-alpha.2","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-qf6letG01PUB1f88m/bgOm/7cjo6oXjSV4R1/XdTgWk8MuRH7oK03gqB7lOHdXvP/1WasLz9Hq9sZTHEa4xHeg==","shasum":"cc74e486a39b765ee1a52c4fa28b57ebf878c4fe","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-6.0.0-alpha.2.tgz","fileCount":258,"unpackedSize":540219,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemGGOCRA9TVsSAnZWagAAfssQAJ8+y4RGB99w+T/U6nmG\n8dZiI/yJQisD8/aJK8GXc+fx2+veAyaJ6abYrw0Fm4P8UN+23ErXjczHztpy\nCTEelCz3VZ8F7hBgmJ+Xn+EZXfeHuD0I4JzDFEpew3mDPGAHuk67zvjv8jeI\n3IdKMEniBYYPrpirWsr5NqE87Ch7wFXMFRPeNbvTZHG2aS+yQuHIr4+gO8Oq\nFx253i7r8F9eo6ywb7XutHmpbZMc4EdpUCo/289A6TPDt/8tdffhmT9z2b63\nxcBns/LgmQnv9XVPHFFRDjeimfzOt6P62QMgmNbLavYNswLXGa7nTQaQWxHP\nvX71yrzdnc/y0yc/hMHIGEqRF7zodTt6PLn09B9LUuF1QXZie6WcF10e+jNJ\nXwAYC7PZa7/+XRfIfyIIpvZFRL3kBNVPo2E3txqqNAbgXPkt1p0WY8Hodydw\nZ5MBWuUh9YN2BtgYmVqqszFB1tFZ6dY/D44CC48ZeDrrVmoqqnlDU5qkJDRU\n6p/LmIVXePth8watnB/eCTig+rqE8hqsVOGH9spUqSsB1ri+3xJ8diJ4dI5E\nld3hvCjm9hqPAeXXYOE1KiJg0/9YSRkbKGvpIxY7UJF01FczTuAYuDP9+xuy\n9OVwGHAulj7XcL83I5wiBATzGLKbCeED/gfHdC8FOQY07AItsovBOCrZ9azT\niMAH\r\n=0/l6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtsp86OAubdmORf8vRNbKjDn87NcXGRtGyAMrm/k6dYwIhAPo8dEEyKW83kH57h5cIBJ/Vqg7xCrVJiiE94T/5B4Vp"}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_6.0.0-alpha.2_1587044750354_0.11545782910271019"},"_hasShrinkwrap":false},"6.0.0-alpha.3":{"name":"typesaurus","version":"6.0.0-alpha.3","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.8.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@6.0.0-alpha.3","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-4pVUISwEf/tix2BfAgPuz3FCXdDhyRcHHSvjZMNGt4EYTrVwvgee1RYBTvSsYEC7jWvA0enmJFRXw2sFuO2Ogw==","shasum":"74b4c828f9f22e5bc5ad1a30f013dd3df8bcc58c","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-6.0.0-alpha.3.tgz","fileCount":233,"unpackedSize":353787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemG+TCRA9TVsSAnZWagAA2OEP/RgTezLMFcCewQ8Waex+\nfbWfQNfO+Ckgi8zSKOSDq61oPNnHFtGtwQBoOSsbvAPZoz7ngodCA9yhjYGM\nP4dRfKWQ7204kiAg1r7ivLBOYuPHytAKV5qLgHgLPrVmtAG74DXI7+e07Q1y\n2BxyZVLfwKsyNrr/IH96IThIYYm3h3v7JbOgtWw0zutVBKlAj+GEK3a1OS4v\nfjqoCBwzlJsCNRmOG4H9dlBg//c9b3UW4nhohEea9hCBOEtVkk1QykQ1S7qp\nA/oquhQl34cgRNTU5vCt4fRwXkFEw2HlIzOmmjXHmqiAiEHeOHLZm1K/DqUj\n9SB4e4n+Gt3NL1+M9Buok8NZo27A+tQQ4euI9uraE4XLtW3fs9Pr0u1c8qQC\nf1vvOs7THmICtxm89G3xLeh0Hi2slBg66Gjyv53e5QGiI31FtQBfpw/iG5K7\nYAu0GaL5rU3HLEPuBaE4HdnuKwV+Dfqhx+yePMvs4S+YuRN7NVIiYtABWyQC\ns8VtQzLYCOW87NGYhHe0DkBk+VbpB447lbIqxXK/igXY/PSedYI1LywZ6tM9\ncjm6CdBQ4uiPhr+taIUEZxZG81R4U9Q/N6+VquYrqHMMeFE5EklgIHfz5Eph\nZvF8HR5OfxUUpnqdo567/0yR1JmyPwZK0YbYKgIy6yMnX//6cE0XR4N88vs5\nThXn\r\n=DIYY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCL2ZfqCvuoRDbEayob9NqVJ0osf9TggNM7lxAHGlyEUwIhAKtDrKBEYjYXRatalBUu0vtXyDcygxMB60CsUAN2QFy0"}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_6.0.0-alpha.3_1587048338657_0.7809404393678219"},"_hasShrinkwrap":false},"6.0.0-alpha.4":{"name":"typesaurus","version":"6.0.0-alpha.4","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.8.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@6.0.0-alpha.4","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-8B3ITA8ov1Bcas/5KH3qHmFnbFdyeqpw6Se/3+lk2488J6YUv+NsV5fdguZ/XYQH7W9z1UT/gYwrIY+QiBLg8A==","shasum":"3941d3b7a19f0f1e77bfbbdb87bbc223cdd68950","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-6.0.0-alpha.4.tgz","fileCount":233,"unpackedSize":353351,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemHQhCRA9TVsSAnZWagAAGGcP/iAxNBmsXjmS+REkFnxf\ntBTyMPSLVM178oq58IJOxeyDW72ggwmnMMvQPpLgT1R2i6P5sevhFm0QIO89\nSI6KYT9RwxU93mnzo3cEj9tV/r0PdNqILMkdxQ7T+n3Lc+yRjQU09JYNkwar\nUKCt0oOqFInIORtfc5ZX6QHMyHcsjl+oa6m+NNXWF05MYdUFD7X2ejNb4Cs0\nQepZeR9G4+pmAEqgwyUDmQxEtnCwlZgvckLScYbXrmRWCunlFbLcwhOEZ4Bg\n5aykI2Ue9/tq20rp95XH0t/sLCw7pRSHuL7IkJXpWkhr4rMeJRTIW9Afv9O/\nOXX3X13zfj8afVMvU5rnQ4tnXw6S+JFDrlzySx6M9S73BPVfsUzLvIUAcp5O\nVCxHuXOk4d8jiD06kPSMnq8XTR2e9P4fpj+Zo46YgIA3Yw1mSzUqq64CzOh4\nAS0/zeetRlZJ4lvOPWelcFlX7SF38Kgk9W6jG1JB23iiEthjAAcMEuWwIGnm\niC5++YhqX3gaSL98Zo8DoMgLNhAE+o5twKeSuqBVMmI0tZF+XNZX2ROUhITP\npI5Szcv6rSfvsCsFtevQqJ3WMQaOVCd+XkbJeGR/LIn0PR4WJ+cs7vP9yKNY\nt/XD7ghLEez5TwAo/pNUyVMNQn3VBCjk6yUlsczHi+siYRQMqqDud42mORGS\nntqK\r\n=ueDp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBkFrEBgWarUpUTlR5D65X9CaGPmNWTkGa6/2RWAidoJAiA2m/aViTfXeDKKd/ZyJohRvzS1mIk2W/zsI5yCYt/sSA=="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_6.0.0-alpha.4_1587049504987_0.3161617494727622"},"_hasShrinkwrap":false},"6.0.0":{"name":"typesaurus","version":"6.0.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.8.3","webpack":"^4.37.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@6.0.0","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-N4Hw0cJ4exL4Ga+d9RApH/B4rswhVCTJ+gxsRyZubrbnPEASJa8MgFsYb25FzEGUcXuSLSAsaxSczDAKmUshkQ==","shasum":"25d05223f8427712fa34f4b3b42edfa2ff97339c","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-6.0.0.tgz","fileCount":233,"unpackedSize":353255,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemLBrCRA9TVsSAnZWagAAQjQP/jZoNAZCG5do9e603GQ7\nQyvpNHrzjnHlfzdGlm+WjIUTSyYqg6nEmxRhl3E2Un+eJhlo4dD9z4kznhhp\nYCFjBaQ8bjYWaqbds/M41o2Daa5Yumpe1nEZjIskdbZReoZD2dG8BABt/6N+\nig58n9iZTbqSKJtg5R1wYlsZf/ec+3kadA0/uvTEVNkJJsUWPPZ4gVujXBww\npzcRxBGvMbQF0U60k7D846Lujks0Aojw5Bm3a44GmMLHceXc6bZ8NqDWCo9J\naCwVqhXosnB3yKPjAqrbzxhZDQElbkTuGhFHMZazqq4rNkUqmM7zZo62/NfT\ni3zZcKGtxEpXsdinKLkWWSlwms+REAkM3dNr8HqX7eDCleru0KjzjaBg/Zrz\nEWPWDAyro9RZkv1YjSP0aY7X1CadC69F0sed1CAoPGTEDNXTSt+c3QrvJ3NG\nD1P4Lf/XopiqqmIVoUC2etcWWFYBe8pcgkYbkMBIIfizUwbpvsBBrmAGTkmo\nbEw20DtrzPfwbnV47IKBHeX6kB6SjtGb4VOwn8pMHqISq8phvQGBEaOyMB7x\nmEgARud3wbrIqfLA5oDf1UCKUtWgOo5GM/Zaf1Y7nYkLlxZLx+nhw5h1yHq/\n1ao/q1wM5YmZWxnei5UbVglK9YspyL07tmuu3C0V4mEP1cV/0Iww9rHphswc\n0ZAr\r\n=80yx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGqAuRe7PM+dNjLjKzrcofpfGaf/uQiIU8t33v1gUShLAiBWi7Pw3jmhKaW0vRYfDWJ6KDwpgegyKcoq/A4jFfKSBw=="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_6.0.0_1587064939050_0.6963648267245324"},"_hasShrinkwrap":false},"6.1.0-alpha.1":{"name":"typesaurus","version":"6.1.0-alpha.1","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@react-native-firebase/app":"^6.4.0","@react-native-firebase/firestore":"^6.4.0","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.8.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@6.1.0-alpha.1","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-xJQu9Ad89yZ9NtSQK3afm0VjnqY3Lt/wHzlDeQGySAkO5O8RwOpz9ziIKNWtYJU0J7zxy0NAhKOL+N60oa1/lQ==","shasum":"84f8c0918c695fe5fcc12c15b3cd8f79bc76aa76","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-6.1.0-alpha.1.tgz","fileCount":239,"unpackedSize":360034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoAFmCRA9TVsSAnZWagAAiL4P/0lX0aQdotgai2veWsvm\nbSso1eTVN6LqBH1PapzcUqZZJyVLZLkPB+parAAlxgfsYAgMcFDyZ9M9ynnh\nh0Jw2Jnu2YbYbiWzJV61AHXBbQqoc8AK4KxuFapMSNCD7M9DwQhcUei2oNof\n95MWjNf18tghtwC1ytknPQKgDjlj2p3jApugBg/Et/T60uG1WnoGkhUhRefW\nqxMvqEthhqLntp67ePCYOYiHbMQjszcSrbv1YYMGXMGrqA253RHMR6w2XHxt\nn885UEGztpzdExDLap71E5o4vsfkeFdgtsZ0P0ruyqAJRiTWePI+QhItfb7W\nR4O+1DP6FQsS6wMwSkOWHERRJP3xpEWuMD04NlA5Ch9+HHTXsG1mu3dP0+ni\ndw33SF7unZG+NAkHc/tG1eWEw2WiVMFYaZtDbjrD6DUmc4iVpZSFlhBM9iCC\nFBy8ZLqLjvkb6FWYrF1A5AXd99G9he3gcHqIgGGOp9fewvrI55nAW8nAcKpW\nEBTlg25vPtt8AHxOfj70IBElf2AjI3zCoKzPA5U7rMhHQS0UsB4BOEVvu21e\nOM4aUw5uKYgdupV+cSdQOk9obU2YcX+AOralpViHi/9Hue1b+RRqctSSvXSg\nSQl+vWg2Wger6s/U6uAZ2pzth+zLOyN0GWrz7RpFNvIryLPCUGZxX4RYaS8k\ncyIp\r\n=9/cp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHbONMQRw6NwnvKtp+bwMlKNZpTlEFNNW6BZSOC51kKcAiBrfg+mB1YSlln7/51PKZYzES8fSJeCMzR5qIa/TjFlBQ=="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_6.1.0-alpha.1_1587544422317_0.4092692522954944"},"_hasShrinkwrap":false},"6.1.0-alpha.2":{"name":"typesaurus","version":"6.1.0-alpha.2","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@react-native-firebase/app":"^6.4.0","@react-native-firebase/firestore":"^6.4.0","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.8.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@6.1.0-alpha.2","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-923uUPXeqlVAqSwWBgS+ygPikJGOOffJMbdWvWx7Gh5cnJNZBNx/BrmG3NSYWnNZPx36XF+DxX5VjiyabgF43w==","shasum":"e54e7b921b5d79b1ec4920d15c3cb317d4618d15","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-6.1.0-alpha.2.tgz","fileCount":239,"unpackedSize":359830,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoAnzCRA9TVsSAnZWagAALwsP/32CMk+B6gzFcAjT2Q1z\nVQHMdHWXuA1NBPbeOrw1FgFq9BLIyMjXvzUWzhxP6wQo0IYSZLzFkxN+qmRp\n8/h+bXchxyNOS+f6fgMGvspCPIvb7/xcOxz9YwYIs0ka9hugKx75I+g66kr4\nX+4PyRn0gKXi033Zh9vkvsVFDjeU9yzMjdmuDkE+05Jow2hRpV9y39osHm+0\nKsjoFTeCL6KtguTw3qUtLEfptsuHFBifYm/mmc+CP87fjmqhz+ER6MWsZTcW\ngW+dS05jovSGieUcdzze7/t8UYBYnFOfqG3tUrwY4Pxx2k8W2LtNUpTJa81z\nRrPb20BxPYTAMfxibZniEKxfWP4F5gwchJqGdSPNp+x41vUKmOADB+lRJcEG\njSlvDPXy6byNf91/nbQhBsT02AVYGc/C02yJ4Tvlqd3Fu3MdqO0ceELg8aWI\n6T3SBOF0WaV+1FwWLaFp2jqyX0ZTeqUMeWTstt+jERoetnlVqZV+h0+S6/nA\nFh9zDHQmmdrI35+pDYf8aO/HQdMEVsnfJcRunx2zTQJ9Jb4ZaLaNQwm+jK6F\nP72BhUSaAMddlPi7tp+13HcIhukk8Kw2lnqZ/Rx11tUz82QzT05p6feORL11\nCj4omAFilP8BM6UhMj7XjZQz916dbzjtHIvgcNMZDGTLD9aoEv0vWIkqWaPp\nmFRm\r\n=m8WP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB1G+Ts1+ciPufcqohN5gpJw/zVkDOWxkjarYAovB4s+AiEAjHMHm1/K7sEinpZ2J8Fl9PooV2IoanYggvESVsnAVpM="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_6.1.0-alpha.2_1587546611209_0.275548979605055"},"_hasShrinkwrap":false},"7.0.0-alpha.1":{"name":"typesaurus","version":"7.0.0-alpha.1","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.9.5","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@7.0.0-alpha.1","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-baGyFu7JoVWchfiVcp53GodJL07NX+52kh8FTopepXn1X21YbfMpOligdreMZssfebkFlgqzVUZ8zUsnF3KlxQ==","shasum":"ee158e91ef8e03476f762d181c4fd9cc56b64595","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-7.0.0-alpha.1.tgz","fileCount":233,"unpackedSize":360822,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3SqUCRA9TVsSAnZWagAApOcP/09dfQXm0+8ENDw5k67s\n/1GmkYApk+4puX8DLWDOVuTdbz7vePsC1RE2YMuIoy1AnyuoPOIDWr8bpaWE\nMElyLl/dGJxNyA2gKEvZFhdgSswVhB45KQ6R7Tb3yvjpZFlxATtrFBewrzx2\nMhly2557Bgf05YxzeaZ8pmlPpSa5uV4j9Cz36IxQ66eTOh8ECmZu6Xejq3eO\nkc6rnhklHATBFjHyornFb7hAJUS6N1VYAgyagEZKwB/UA2o6EkvoM6WKUetw\ntPdIaIkUapGKasHkE42yBHw2SMqHY/q4Q69xveLCBTHPQuezkWCidEhuI094\njUBEPwBBYUU8/AuG3gd5S7d6BFblEZYu3yyD+peCPsqfs3xKIRAx0tG8kZ0S\n+658L0pfiLHMbdTwCb3BNzpgi4JFsKgCP6IHpoXtZSLijVoo6Qfidd1wXh+t\nCg934Ok9WCWKCeSeN+vEBpccYqyFlMwitN+K/5LXlRXQtBXHe45n/vR3Bo2M\naL/HslmLk8gMN4Ae3CAvuLg/Yiitp//6BzTbQrDm4zCpkliwig1iadRECXYs\nnHRa+xxOvR/bYqtw7bHbTjpbRNUjsLxhZZt/CVPAwIVXeZBau5+D6z4XzBAz\nJndMW4jqfv21hSixyHO2VrmQtOKmE6yEV4O2+xYS+Nl5k7IcW8jHETVXICVc\nEKa8\r\n=kLJ1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDdWI/jDxWUlukJDuigkGfQwmu6cUcn12lOjBdEWSgGNAIgYxjzMxvnGNjPORgrC8Jkk6F9cPm83Gutv2hBva/WRz0="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_7.0.0-alpha.1_1591552660445_0.1974246300265874"},"_hasShrinkwrap":false},"7.0.0-alpha.2":{"name":"typesaurus","version":"7.0.0-alpha.2","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.9.5","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@7.0.0-alpha.2","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-WBGozm0arL/xYKBKJzPJtg4NMsiVGcerZJn6cHuctIaIOzWDeYPm70qE4BffZDTHUp6jLiCNiGmROeFsydp4cQ==","shasum":"bf486b900a3bdbfe658de01a6b4dfbaf9168c76e","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-7.0.0-alpha.2.tgz","fileCount":233,"unpackedSize":361187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3S0YCRA9TVsSAnZWagAADigP/0gNIkea2yFgF4Kq2cK6\nXevaZuj2XC4v5a+tGmfHEpohJpY6h8lWCuRRpzAyXdFO65fmFGKAOlZqqjdP\n1KXR/0TNarYRfm/StCtjKu560et0sIWXBBsb5WbmW3jFyM6ULk/voJZApxa5\nJZuXpY+7YR5wThwQZJS/v5hFFbTxYv/Vpmq9UuSCw7dJ/L1Az3i4dhFZK8uc\nXU8Ia/3OaSrsu3BQIoXpnhSQEdmGAF8F96EDq+Z6NDiy9g3tvVQWf+ObAo3s\nKKLCHuI5sCPgCDIYtYBX0Xwl3+6Xi0aICzM6Odc/neDvNkI0DpqWZff9aCyF\nbuFJUEL2s3iHU0WoLoREy0a4mmYIANMzRgIObdqdtHYm2VH/Q3tb8zXl6LdY\nE5BOaaJ8Wr0v4Lj6eM1aWsdwxL47yxStQof+qFGQh9mRWV29/yuSXMeidMI6\nXSMRSrFHQcMokmRZ4LriKIoSPPfpywnGdQhyP0fmITW+HGkM+bdzt8zc9VVc\nODXej98rCoOamXAUZM4KtrG4ezNoovNfRdRDEUh3cF3R/aSN0gR2ZibraAeu\nVK9ihtNjMnR4bZD7n/B0kJXWtRLZH1SwqjQqdcddYYeMF7y4SRERZTy4OGiM\n0fyFMd8ny9yVUTMpioh3i1Kd+dvEWMQ1VjFI1xW51BhIcGhWrDTIBngRQt37\n6ad2\r\n=FOLj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3mMBOnK+CIrhK/TLLjeI+Qfp4/bw2nbN9derAFgAG2AIgO2VQsqUOjndJ/i9iJPROxF/fohOav90IvmH1PtLTGdU="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_7.0.0-alpha.2_1591553303724_0.20541363119171185"},"_hasShrinkwrap":false},"7.0.0-alpha.3":{"name":"typesaurus","version":"7.0.0-alpha.3","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.9.5","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@7.0.0-alpha.3","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-39WeYnFcnO6HXVaTflAvvzosg+VI6Os65AHq/AzkerA7q36AhlRageCsG/SByM61jtwQQe7gt6gjY+RxwTlM5A==","shasum":"fd13a2bfb792ea4ee28a91561e344cc85e1ae1c6","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-7.0.0-alpha.3.tgz","fileCount":233,"unpackedSize":360860,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3S+tCRA9TVsSAnZWagAAGpsP/2CdnGFazP8iwGiy03ie\nozIWERoN00XRuaZJ3XGINo8UkMug3U2TFeKx1HAmhcFrmu57JteSqR26Wta2\n4SqQFPSXricew/jHC20424H9IyR7u2mchnd3Qfy92UeAY+xjkFll94CLu7Is\nYDj/q82FG5Dzndmj+zKERmjf1uCVulOeIbfbzVfDKLc1ngI5Tu/HE7mAx73a\nlvDZjxJ8WvCIULeIimlh9Djvrzx0xtSpjR0bwx5VKgKDAgFIdby2J5VuOmY7\n8nMmeUsSawm9EH3TYrwrvE2ZX0VIrw2fVDHJW09pkwKQWAhMZr/RnFqBTqW7\n6fdwuGAJvp5zVHuYZLnk5V4m/sZO+bH6rxNlatCOByXBT7BBk+U0Bj28fCA2\nfGwUC0fKbOkbXZlvtUSu2fwiq8RlkgXsSxwGEd3ePIl+rrCJIZyNgETYqa8Q\nXwR7qUFvRKErNg7x0tQGnLi+ci06/Ram7eGRRo5LXlxTTy3Ntsqmz/vmKLJV\n72uPJ0MyA7cuxJsGGI6Ph4tcwBtmZ5Z27KAGK/vW1FeAVLCi8lHkPTdsSbeM\n78Gy8tLOfXghdR6BsMn+dtjHHldRfCiN+zHISt+AFQOzBL8sob1g7x39iROQ\n0GlwEbJZdvNiYirc67kC6wwbTdXqPNSIqJrAyGZHr432EGm4izeQUW7/Og5J\nex7h\r\n=KM+4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3B/PAf46oN/79FK+C1vEKooyowGCZMD/tnUgboLY8YwIgGidkMTD8x3Ppa6DU6h8u/P5+yQ6xyG3Z0unr9u5thkY="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_7.0.0-alpha.3_1591553965178_0.8344279264281731"},"_hasShrinkwrap":false},"7.0.0-alpha.4":{"name":"typesaurus","version":"7.0.0-alpha.4","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.9.5","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@7.0.0-alpha.4","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-wYak1qrmkmBFATIW98f0y+Q3ANOBZlPnZoU2S81MjxxeMzxXvZEDeCHEz+m/nmw4pyM3iSY0bMNs3uGdnK1srQ==","shasum":"a4c1094be0496ce31fe67a23b5f2ace8221cc37f","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-7.0.0-alpha.4.tgz","fileCount":233,"unpackedSize":361462,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3gSHCRA9TVsSAnZWagAAQmAP/ijNTWmSGZwhuikoVEIi\nrMWXeS9FZ6fzQx1RrQ5X9H/SoGMj9XTR0GO+DddHXe7mNM4OB51D3vg6UKNG\nrsR3Qtl4fE5vEjBNS3kcddhTjlcpRJZE4Gn5ZV3ACQUOwc3aOWoRpRBlVm22\n1vFXy4vZcMqLzxoT4a+DL+2GSLuhG0JxZGRZGM1FVdl6oiKbB+F/PjHaRt/I\niI1wVXQCpcasE54XrcttH9ZO/OKLvrJyveHYvrThbGumYDj8fjgVAP6AUwU0\n/4uczuvg73mgg9FjEYJhAtgvdrvUNfrQuvO1VVWBhs1XizCTW5ToxJxNZ92b\n6oKfOOhiMH6g2TWwz/KIYnDeUZ6aCFU56u2xFt/XKom8dIgeyLSaPNIGM+BP\nsZn9J4SVKLKuQXMz21CYe8x8wQSckP0QvEuqQRX30E66AfqlJ2+3rGd1N8Ds\ngBl1ZF/fm4IEToGQHYt16JB8MgRcScV39m8C0Y4FlDuOiHeNT3ae5J2PsJPh\ns6V0Bt0JVBxkkva8e/VA8lyvbfcAggMahJ9GSUW0TBAjHmAI6PIKRC2Z+O9B\nbHobx80sHXlz2dl8oVRXa/jxYaEElEOOoohjIPpi/ZVq6489ga8aM+qDsO3R\njFd/K/kBNwufBXVuliar3hiL6vAX1kTSMc2Wvy56Y4AwBxrW8oSz0yB8P9ZD\ns713\r\n=g7N/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBNvYRIHOVaK6BG32N5VFK9MHke5q4/DNOfTnOhkKnFLAiEAsYjyXm6ZTFMcEKX7Eq3b64dONjsve1rMCJKyvQlVZG8="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_7.0.0-alpha.4_1591608455024_0.5095288415393946"},"_hasShrinkwrap":false},"6.1.0":{"name":"typesaurus","version":"6.1.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.8.3","webpack":"^4.37.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@6.1.0","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-0eMn3BI/uAuL9jLEoqsRQg1nycEUc1ZxjwPaHvXIz6oJsIMO+PSCr+FTwjYfXIeJcGbklHuRCOeHwT/uesTv5g==","shasum":"0de4e632068c94ae866adc5ca1226feb05d3676b","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-6.1.0.tgz","fileCount":233,"unpackedSize":356163,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHo/bCRA9TVsSAnZWagAAPNMP+gM/KR1mft3zZNkziuaC\nCuVFDLCDely8oh36fXBw+2YFm2W4euDfLrUxJDzwOm2mbezpovGAlKLha4iK\ngCSJCULKr9a1pKTHMBuU8JUhlYQUpBM+BmHnicYZlx+BMDV2Y3cDUZhzcQ/B\n7zWkpDXgjJb9JWGVrlMMl+7rvYoikHefWQXJ24R2wE4Uod1ktvzSGISYyVUq\n3gKfZm0MFlMvs9ExhANaZMJ4EA+7K0y+CLCyWLKixnJF89vJySDgdokGjnSj\nDaTeVgDm9Z5wc+85h2XNuM7B2sx59Gk1SmLEPpL2IpLKd/muQSDSwxhbYaDa\nNPt8vUvlGoLdIYvsuexss8hB44uqLrwW+AG2eOF6kGuCiIt1Y7k5BnL0tsYt\nTH7nKaBO3RFDG+FcGkv+cG4YWUQKAk2tB9zFLM7c0ULhMrUwzTwhIDLildPt\nbuNEABQDtglEjxytOoEcEPEou0DQJcNB/i/XvVI1LjAnrUAsaRiHzVZF2JW/\nWCx6Opeb/78fx904WR7m2uHfTLnnkSyOomEGuXy0GL8JRD+sJHQ0iNfCvdAX\nE3ojqWbXeR5jR1F0Au33fSsDKFeUEdQqnQk+6ayjPs4v5/zYbmZokUM9Wixk\n22K1jh1EEF//sOjB7p/YB0rsOdi4zoY52J0+2zjMm9tHQ/Vwrr+AdXBWJCaI\nV61H\r\n=VRqX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEq10Ufv9mHIsVRMxUrlH1AU7xmmTNd19JczM/vW9reMAiBkyEbsizjCRGSV7jmFqLmbDtPZIsW8ETTMTuMW+CVwpw=="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_6.1.0_1595838426700_0.3816279354242178"},"_hasShrinkwrap":false},"7.0.0-alpha.5":{"name":"typesaurus","version":"7.0.0-alpha.5","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.9.5","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@7.0.0-alpha.5","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-xCMOMj1WdPFjyPYJDz3QednLGcBEAuch1zplxON4IUjwvG56+Jdq4QP7sVJ8yHmjvYwCZFCpnMaUhhR1XCXIWg==","shasum":"356afd449c2d126933365f4b713bae9175965d07","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-7.0.0-alpha.5.tgz","fileCount":233,"unpackedSize":363566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHpKACRA9TVsSAnZWagAAU/UP/RL/sIjoEMhc7Xdw/5LT\nJlrH5anZmArvtCKs8TLRJqG6yXXTw3WBf1I6gdARvF0ImbjY8JRP9StBKrwX\n3q5uVz1DSwKFWgdYEk1sDC0wQFvH3y49ChvxQFZmHcQrb0ENbyRYt6HgZ9g3\njICNQFovLXNrq3UhDqZnng/m81BRzsbWQ4IGuXn9UwYl09iPNkbuvRq7en/s\nOozBXvOHTL8SJO0o1t1PGEpdA+2ESZFQfsn4y+iMnLczpFkeyQkAMTh2v4Nt\nOJbpsfFwwNoH8pLMEiqxmanAdbAnRV3qaqGP4gJpiiwPpVaui+X2iwv+hJaZ\nZIJyMjH0CdR0yuHikN8yDD+hZKPn3ptrTGjqJVYIf7tG2KiqYIvaGBNipvAW\nNkKTkoOaYuxxermVsCso4eWvCWyPgjn4VhfF3wXCVfNYus6/So9OjptIuNLu\n86Ma14BV+nJm6armshYz/2rHEcuDFbJ/yUKYVZo9+tSqIr83CGNLvX/qLqZl\nhtMo0qjoYG7CtZw3pmGVwXivBti6AoZCWNIeynyaCGfaBwlX8j7TxrUMjA6+\n1TKiqBF/25h6yoOUlhRA2GsIkFbqE/Z47z5LL9ElQh46CVkIwTPoMwssvbJu\nVUsZA96OD7WH8bKa6QWpHq03r2Ts/4jJd/MRLWIucXng4bybPM53oMGNMgAY\nvSmq\r\n=MVU/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFP5uvFTY4gKttE6h3aD/jPMJrYUxAE54SDc4V9YEWimAiAqtzlz6b6E8HJ8vtFe0qq0uJ6K3LM9Vv6ijGVnFWSthw=="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_7.0.0-alpha.5_1595839104295_0.3532201897610381"},"_hasShrinkwrap":false},"6.2.0":{"name":"typesaurus","version":"6.2.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.8.3","webpack":"^4.37.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@6.2.0","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-hgYHvD3nN823TrFrGYmuQ7ibzswr4xHLozbmq+/vPY4mU75cFlWixC4TDVI89jcQ4clQ5o0z5fdrYpy+vGUU6Q==","shasum":"62869d4b9bce1f8951652c11b44db6e015f74d70","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-6.2.0.tgz","fileCount":240,"unpackedSize":370072,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQ7KgCRA9TVsSAnZWagAA6sgP/RrP8V79eXs4e0H75bnZ\n1LBrl7MX8DGQY8vx2p3jY4H5J/hMdbzFvwytQl5QDizADanZNQj+U4H0Fl2K\n2SmAdVI72gisBTqp0uXK61/DOSv9S99gM0w3c7GCQ1sVommmPQ+mWgM9nFs9\nKNxoD5915x5/r1uXord5J0Jlkcv3670Bdh0U1m0POQgfWJrRpH+qhWowkIWL\nns9V3VuWuRRZHpVIfARXu8gmHUTlXoklknhr6baGVVZFX7djOYiLDj8x9bbX\nJswtZiS2ui5NJmF2MG8r8tlM0Yw2kHVowh45PTdNPIDGMT9R8+A4UqCqFQUe\nh94tXxkGSpwHFgT0e1875ZR32H9J0sCC3Y4qrt5TkQam4S6NBt2dQC6Bn4R2\neZL1UtzYyqlUmuyWP9NTD7XX8MUIXtFRb+9IMKCjlkacdzTDUsEClsdE482v\nlqZ6crb+1Yx7K2p9VFui0sQEKsXxpB6/opZhwnDT+nLW5Bx/5SHz3X0fY4DM\n8h907JDVYe3iFNXLa8PYj2yrm864AIsU4A7vszKhSDlw6oia2uhp09Ag9T3e\nVWnahm+0kjz+SEEmRKUi8jXah2XR4hoYl+HHYpMtjlpdY43dnnFDn/f3MIfg\nAearOMLVna43FSgohUazAjaseqLEyS6N+0pDUFJAj0RWrDmcllr8fQH1rWxv\nhqZW\r\n=cpvh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFvN+GeYwCfq2cFWF5y2lTmk0tJQyvoWlGcW7hvj7ZEpAiEAwK1XuEq5yqbVZZ54UmpSyxFUQ4FOws/iS+5wpO5oO/I="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_6.2.0_1598272159998_0.23439267730021363"},"_hasShrinkwrap":false},"6.3.0-alpha.1":{"name":"typesaurus","version":"6.3.0-alpha.1","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.8.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@6.3.0-alpha.1","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-WazPsXpHy0pFC+eHqu9eMGaVVtwUJJeImA1fFH0S0BE3JIQXv/hJ4unQyiunYiiwZJ0uJ629Cek2z77XqS80JA==","shasum":"28fd67385d7310566db4fb2f3d0708cc9e56c5eb","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-6.3.0-alpha.1.tgz","fileCount":233,"unpackedSize":357686,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSODDCRA9TVsSAnZWagAA50cP/0/qGa8a+NV/9E9+8GY4\nk9vWxuYiLf9Bv62YqP0FvA5D5Vzg9CupRYDqqhX3WjsHozN6UdjOh/UO4fro\n/NyxVWithnb8kzGSND4MHcvfORp0zKohSNe4IuVLPRmDDAOKWKishPVT6CZW\nn76tR/DRWLfcyS/QkSVn0rU4a4J5Hva9WsBbkzSS3TfhQuJKT1Gxf72oC96M\nHT3k+ctyfFio7KOmBnS/3QXPT6k2og5rp+4VC8p+6BOstDfNJ5QiZ7CVJ6zl\nmVX00otJGNh3hau5j6mDtx1HNkKtmZkrutgZlSWv4hP9EDun2qw1vauMC0ui\nIf+GjVPkde8wzPyB+K5bXXBSCMM2PVrX+W5DvVpaI6SAjml9dL51hggPFD1o\nvLFDPWoLZpFqsMjyViRm2rgEXRnrlO7Mgl5SgzuLpnb0eceWOCEWYu/LIeEl\na/kRDltVKo++EncXWmag0xcoJFk2sVNlhpHo42LD1KZDFpFLL3uXBpIb8BLE\nr2Qj1mnJt55agiKq4KrOHYhkEpNuQSMq+DyfXpJpz+kybtV2yaiT+TJhmMfS\nqM+mQoGicYjlbA136n8BGrHIarH35FvXWzwmS6zzs5Zi0dljDeyFT/ELj4Rg\nV6OU6SpP8/3nUQCmrrZU8CuPvdKRfdwZQUUm2LUoE6vv33+9p17+IKsSqRrK\nxXL6\r\n=dlr0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBsg1jdhH7iVEcp7dzYDXUy/dBGXoCyEaixjAEzybzasAiEAhC2bpm4Oi45xgHpuUhw31XdtC9VMRTjZuN7x92nXueE="}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_6.3.0-alpha.1_1598611650883_0.3891563005742511"},"_hasShrinkwrap":false},"6.3.0-alpha.2":{"name":"typesaurus","version":"6.3.0-alpha.2","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.8.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@6.3.0-alpha.2","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-gycclNbRyfAP5c5+agfIU4ZmiWuIVjXs7ekd6RKNi3ddPthuE7CAk4F2/SFedTqQkLP5CyHUk31CvVQM94dD7Q==","shasum":"69321a397dc259a4f076c9364131414cd2f98ec3","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-6.3.0-alpha.2.tgz","fileCount":240,"unpackedSize":366065,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSPJPCRA9TVsSAnZWagAAKs8P/3l7V9oyJhAIYVFZvuKA\niRd4XXL84H6jwPUD/+Zmd4xO1DGP7catWr/eeCBLCq6FGm17CaxRCG6YJTfv\nHV/wHdss/H+8d1E4gC9TESOB8V13J1X1k0wsRH5aqp3FGf4muAofIaW9h3ok\nDCPWDnYUU896WRKUjltAYo1ZF5nA7Qx/jWj3hRfbqs5Y0IuC8Jw3RkOIoinG\nqSZ8C5g6491h+tFx0Ed+nBURXuveJHP3xfHMGD/NidvXJW2jVMmfPSr+lznF\nOQH+u2Ub4m+C1/1YksD0m/du9esXd3EP66a3DcoFcZcwBoHP3QFtAcRe3Vjl\nQsLE5d+N6YHGr9AGuVAFEolGCCk3g6jB9KbKWUBTmJkQJ1QXvvS8VR+XUL3I\n390UdQC5FQ2RpKo4tJ58n2qyCtbLO5WmBbLbPZENXRgIMY+9ngwk36bitjni\n/etDOgS7sycmhYQWda+VFZMSZPD4ktcfM2AdNcVVqpa0t4YHq9yhQ0X5PgZk\nI0cSH4zPVQSA5UjnUmo/FRDt4OX4QSk6zJkRSb2e0aq9cNbz1hB35KGRQW/W\nWA3YOPHaigYXjmgkAFPqChzoVI1EOwGY5McAarkzpXWiKNXwzGt3WbAagMys\nGyXVk8+faod7HPwXzcL6OxVQC1qMBl5pUX0NdKA+h+VryTd0iC4xbFdgOCXp\nHPPG\r\n=0q5T\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwxno1kNjl/WDfQNNdkMqCxxxwU5zixvzDaNf6vDuroAIhAK9MGXxOrDLAjWyM2dBvmWbtN3XKqXQPDMssCuiUz+n5"}]},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_6.3.0-alpha.2_1598616142699_0.5005752360793716"},"_hasShrinkwrap":false},"7.0.0":{"name":"typesaurus","version":"7.0.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.8.3","webpack":"^4.37.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@7.0.0","_nodeVersion":"10.20.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-neH/8PHPzYpx6UVT5xb9xGaquki5e6ScZWqyFGv9FYDmqmmtArgmpUdGeSVSVeIQhYiQWhvR1OKYsVaAWNtlow==","shasum":"ae762969c85a4eb5b2035783d0438a57a5a0517a","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-7.0.0.tgz","fileCount":246,"unpackedSize":376141,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzxxvCRA9TVsSAnZWagAAVQoP/0vvcG9SivPKz5LQh4oT\n8tAAgV71A5YcdCnGnqGeY/kz6LPwg87EXmwlL/YXbVpqmDqW1NnomoqU110k\nyNQ/5iNWapqnc4SHyK+2tl/KZHyrEwZcY4mcCivkYMpjZzlfg0R/YF5wiTpI\nFWQamZJkiDV3RCVLRAmRAKwl6J4A9S961JVlVtOP2vZfIL9kyJx2otrJpdcc\nKzq5+RWvyV10f0zY0IgW0t2V0B4g0Dw3r6C0DHxs06IwmtudabzTmMlePrMn\nUqdYNvxkIB1JqgQtjS2CmA1TJdqXQwJViCSNJCMvwg3C+5funj/EgJ4OB7HN\nmOyu/D9GV0DufqQwinXn/EF+88V7HUqUCIOOuSlevYBv7PgonQR4DLIb/SWh\nIWuvyow0FZU7d7nD61kiyHGRGDpXWi/ykXQS2GuQSsuusMYyR9+Gqb0bqqvk\n/7YcokZjOrfvzVOwdq+qtdWkkLW1qsrG9KcFicT74TvSIM3/RlUdtwq0vQ2n\ncxC/VXIZtE3cjyUPER64mq/QnlN5XeEBJkczuTW+nJamK9j5BkxcQ/MH59vk\nIJHxvO2/7uwHgEfwxEhlxb3za0yIAZDWa+SG4QSzxHnCrtQk7VVski4kjmi0\nCFFQiLT76KIqo2OP4F1lY3WiuV5sUmAQopmLzTMUJ2P94Ca8G3URKgFRnv6P\nmT5t\r\n=zqIH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGNq+j6NxQj9/JSMffpSDn588jkzfFZ/mi12YIfkVYiQIhALjK18bXdk1p5pHjBlPODgUkUYZxUZksWo8SUpvjLNXI"}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_7.0.0_1607408751374_0.5342907473310039"},"_hasShrinkwrap":false},"8.0.0-alpha.1":{"name":"typesaurus","version":"8.0.0-alpha.1","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.9.5","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.1","_nodeVersion":"10.20.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-TWMtgFNdxT5SrLdDYIw70zqPHi1rvSioma/E4ZhCmcvBnS8HQlf76YpiYEqZO9dv8ktz14R5fm7n5HYeEbfzaA==","shasum":"cef947991d24a5ee0a41d809d67191fe707d4a35","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.1.tgz","fileCount":246,"unpackedSize":378264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzx0GCRA9TVsSAnZWagAAvqsQAI+aXhQlzO2oV1Vl0gO5\ntHAYOxHTx29TZsp1Y1ceJtXS8oYlpCYfN7LuC7tOsGEBfloHiK+EHb6ueLUk\nEjzWGeCV+3TynPJVdmI5x06KO5dsG8oO28m2iMAB3hWIqBcK/nE2a72wuCFz\nASVL7QQYw6y/aQ3zF8v95vwMbz9MfKSUQqZ0bBq6rgLTubebdyh1wl0gWXGs\n6q97qcWqsya2QXDzLPwyV5a8vL8thl2fpv5mn6OK206er+VvC7D6PqyrolRz\nAyYRQ3lZLqvPGYO1OruJAHtA/7RD2DhJdiqcj2vsfQV1vw8ZsLv+w45klb6A\nAltUgd4n6AahiDUX7zOIa7u3Xrp5/Bv1y+f3/j741I2DJXVHDV2YvDoB0ua0\narljVmdC3wfrMTqyjvB/cflGhDX4+n6LsFVvMonnMj8zVa+nzOK6EQSJDshm\n3J7ffb2OkJWz8/8LPamrgCMVPYijQCCqKXwzSLA+pRDCObCabc9+VEJDDREH\nijdfemUWIrF4Rbkx0X4m1EDda5N9kWuiQUjC+8aK34EQzgFN8RIvvLm8dlsm\nDOS+RcW4LCORwl6b+XoiIFEm9j+qgBO0HPxn9LCPjars5pfFwSU5nkFZO7+4\nE5BjIQGywn1LU3lqZ8lcePvAN5GZVE1+2Kmbb3syTL0EPvU3tadldhwa1jpZ\nkN9z\r\n=MxsU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDu6+ElMvjQ44kUgsajjubuXrHwO/v83qNWW2EGauiEmAIhAMaLgX4ZGv/WH3JRUIS2glyN4Rss+nWADhUqkvLLWrJ+"}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.1_1607408901904_0.8376750086313971"},"_hasShrinkwrap":false},"7.1.0":{"name":"typesaurus","version":"7.1.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.8.3","webpack":"^4.37.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@7.1.0","_nodeVersion":"10.20.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-2Az/QN4FprxtT/6Grr3gFb8v6dY1NkSkGvEt6l0b4/cY28p6HmNY/VaZP9p9wQP2GdU8lAbOi+Ip6j1gehCarA==","shasum":"f030083a201f6e4d02e7f3287bec271d84fba229","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-7.1.0.tgz","fileCount":246,"unpackedSize":376250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0HCTCRA9TVsSAnZWagAANywP/jr7ZIscX3rdPVPFo32d\nCQcJMkFKEflorEPsmbqliCTNNcUCQSpfz8eeo24B3eGoubg0ayl3IIMR0EJ5\nB3XiKQR19LuZtg94hO+SI6TRQk607+Fnc9MqULXYyohqyaU02qmjD6hGQsnH\ni5lqrx5a6QcV11ltMAFzpL2vWqb9zW9p+v59N5hAxqEuP9Sh3uOmyxnhGehF\n1WWqeuNkTvVnTthuZqBWDJtzgxguIv+5DLv/Vw/fJAc+edhitocKvYyh0kg5\nzSrDcXKhc0q+iDD+E7LR2rAHtASjrrcXyaGEqritBkN0hd0s26XOivyiEL5S\nT6KvAZ3naF7JYSDE0rGeLLPSrjSp+oCjPylfNA21ANyBXv/EFWAJuasbeCVA\n/znrcmhh39hx2Ns6zPmcCk0de+bDtPIqHAhBWueCB7QggXreFJR4hE/bJ5gx\nPSU7C62225nf4iQr/jGwOGcHhKNoYUuu1XslOfMX0m5ml0raHwKMhZ4Klpbz\n0x6SPMP2dUJMzA4YwDZKVAsld8pZc4ABfpI/dZEKIyQRNNS0BDSIVrB58EI+\n0QAFWTZnBIAqzxeIhbcQOgAe9pUJqqT8wxqMYvnrmOymeHhJtsF+TWKVcyHf\nsi+TPp/wcEQ55lUqmmP9NskoVuG7yiYWbcoXeSWDpCCmlZEZrQZKmjDBOMMx\nQskx\r\n=bNO3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8kIvBhMLfm0Dmjh4o7pDV8YhUtu0YWvMyfWSf+lXDBwIhAJdG2iTbN8WTyo8UpkVFZC+gBgu0+V8AG4bT0RK/ZvcU"}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_7.1.0_1607495826483_0.018189411554709656"},"_hasShrinkwrap":false},"8.0.0-alpha.2":{"name":"typesaurus","version":"8.0.0-alpha.2","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.9.5","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.2","_nodeVersion":"10.20.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-1sOtQ8mAEKwDujfay5QLxCY41i6W2oQZLTwDLDQChAuKDV2PSjO6kNOh7bfZU7zKv2MyXlR+UaQEUn4pqygv/Q==","shasum":"35ceae57accdb1c970a0fc72060ec519928484e5","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.2.tgz","fileCount":246,"unpackedSize":378373,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0HJzCRA9TVsSAnZWagAA/54QAJtPl1SL3gbgemJkkgYb\ngQ6MfIiPvX7wfhoPaZDB+tTzfw9nSAc38ZpWHfF5O8vNsPEHL2ymUUqaAPlC\n5Jd3riBOGgqxs8EuONL9g4+iI7BvY6gsLxYHT8Q3Nvv+0u9WJ+drIPbFKiqz\nAxiXxBo1mZs9as2qe1bQN7SlpPaMmEYR/V8l0cu7gJLmA3EtGYPNuRBTMhG5\nHhS15V2OCAC/EoEMUTZ9YI6og+W3bbKe33v3n0rA9uvO6s+kKheYmMxZ3NnD\nEWFtj5nZ8HSGBE9acMn1NZwV/WyF6TuCMScqVHdBDbK0HDzy3gdOUU24Gc+F\nR/A14a7kH4PnaPNfDf2HF8ikipXte/uEBpCq7wN7L2JYTlf+w1D9nhIzK9/i\noyYxtG1Ze7plYRAbz+N3TY4exDurMWygAg+wYDeCpl6Sx7GCkNP39d4tlfHY\nN+Hs2dHdjGRm8G1fquTy0YpFJCOiGDna98tCJ1l34qmhNjKDFaOaxV1MeCOQ\n9+8ph5JZWiytZ7vAn8BBJyOPFICa++uxn6qVcUKeTkuSBlRRJfMDaF6XuFGq\n1yiBxk7dfLTOqf2vQ8kdd1v0ZlXNXESU9yaKa3Sz7ic+DutdGcQDkvyD0Z6H\nMHzOJxgZ2RIlaS7DAN/UPc11CSk7bfC7uVT9d75oLIbAVbWanaWFXn50POQ8\nOQ68\r\n=o2oX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCntMeND0sOOioV6687tsttkh/huE3y4MexuVbfv/yNJAIhANSMnAFTpjfJCFYsyB8bjH063xhS28uDlHDj/aMy+fab"}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.2_1607496306715_0.7623583383875681"},"_hasShrinkwrap":false},"8.0.0-alpha.3":{"name":"typesaurus","version":"8.0.0-alpha.3","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^4.1.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.3","_nodeVersion":"10.20.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-5bwq/H0he/a7D3O55K6YR5De0Je6IEK5n7gzG3HZmgKqSJxAFmbgHxqeNDq/wcrMp+eqkOslE65mteBFsxNFFQ==","shasum":"ccf794ec5706581fa0f81b2e8426e6ff2eb3ea4e","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.3.tgz","fileCount":252,"unpackedSize":403944,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEsJACRA9TVsSAnZWagAAM7sP/R8fKvp/eimrazcbr3XI\ncIuTD7Cm5Xh/CWO0qHXKFTkE1R360+pI5XXesBJib96gjVow4AMTqxv+Ay2Q\nCze1elaYiF452N6eyBg/Om72jlvVDh8HGWljSEu/HMCAHONWpTepZR6ACDoa\nvsU4hibw8tcYIS7ip93xRLgTttNK5UvmSvCIytWipDvihgqp3k7PYxEOkw4H\nqo5BUgaaFLNt6OdN0VGSqV83hKThuQu1jrx84NIVYwNkz7pM3HkfQC6GI9dt\nJLvruyQEA6FEdy7FIF4m2l7qxf9OZSriNLAP7psl25KEn+3OU0NIx2Ox6yAP\nLHrKiTUHDOU7blVcMZOEVM0i68UwBoxTqvJyvyAIPCmPy0zn3c9crE6mmO4c\ngE4ilAgWnbygoMAPdq7gknUsEnS8uuS/ZKnbcIFAUfjQLklChegCnTqD5CZb\nyfh5cyid4ZZSIbd7db5n/WvnA7XlWUEX8RE2DCs9BHTlypSBws+i59neu3bI\nwzJXLX96CdC6RE7ONT1VQKn7OTRjiegKht6cj4iTJzS6IPNIHE0y3ofl3Ffm\nzQC+paIXBlKbnXXL9YeDPnzrYzlSRRJW8n8DuQ62/pQ7QKJ5QCAI/AbjOf+t\n4RWslwuGNCbLzrGjLZTeKifw8eET9XNfhXNfRP/1FvQl+v84XofsWyoug70/\nfHbA\r\n=y0JA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHEVHnRFHAUfuXY8jMEHNFSPHsrsUTyV+OUno5N5AL3rAiEAzqPaaxYap3NHHqahFqk8uuJ4XormRINJ8PbU34De0DE="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.3_1611842111295_0.1477947518074174"},"_hasShrinkwrap":false},"8.0.0-alpha.4":{"name":"typesaurus","version":"8.0.0-alpha.4","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^4.1.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.4","_nodeVersion":"10.20.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-jodvi7MLl+Oj2oZ7RTCO69Q7q/PvmDgRiNFz0D4POZ+qTLId4HFX65UiQcXGW8jB2tQQYApNNR3cTmQNzzlsZg==","shasum":"e92bc959719f2f243205f4f59cad61cf4f38357c","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.4.tgz","fileCount":252,"unpackedSize":405040,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEt1DCRA9TVsSAnZWagAATTEQAJMkG8kkWO6pONSfQMLZ\n1WNqWrSD1Q2Fah7ST7li6afJRALJMxr42XpNyVyulttOWHHqgBbBpcucuXup\nxYS8CCg8tAslna7g5CmCVplJyQeP25gVzAD4RwpCHTujaiPJwgQ91sJDuQpB\nyJQUwlFrfJz5ilJNe82D4gstbsZF+WzfYk5+PsYBgepHV4Qu0YLqISWC5Sn/\nsUTGWte1qJwsPxeC58EwOYKz7W77ffAI1P33JKrdol0oHKyYH4BxYJnzQK2P\nvNC1E28xqbLMyoH39fRxQszMYHkzuPnW3X/ezsVtZy8kkCWM8o8B/MiseRJq\nws4+MaLiGY6iD04oBaZkVmO4xPXup0RMet4Ww9ckc8GdWLwWXT3LyH+VAWNJ\niAlBRsJSoxE3OXxPNFW5evpbrG+y8POdyiu1T4reU//UQfFS+Mb4/lM2jF9R\nfxZCTWka70flh7FBx4PFIn4binErlXtC8dUJkDUip7tHtw2c0kVse5v/WfME\nivNzYA5PxrdZCF9ynS7pnFShX0+AvsEkSvRTjVCUfDuDYKMnff1Mgu8SysAx\nPD/nibBojqRtDlWj7CrJxpQ9+HrWkfZI+gmXxGqu/Hd09exAOU56P6/qGCeM\n/rFneox883ooVyqBkKwt5OCMFOEBZEGe0FXmGOdIpxsD8xkeSWw+httbmAFx\nnD+y\r\n=CvK3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvcKEC0gkGm2nFOHWAN01bewC/VekHzhJQXypuBqFNmQIgQwtU4h/yNzvq3QSFBZGTcoEHFMuM647byQaDyUcDWoM="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.4_1611849027385_0.32676035038001316"},"_hasShrinkwrap":false},"8.0.0-alpha.5":{"name":"typesaurus","version":"8.0.0-alpha.5","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^4.1.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.5","_nodeVersion":"10.20.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-WLEGanoyQycdtZOSvajc45ywIV7kWl16ioyrZSg7BFP/4aRPZExdstFr+KdnC4wT7pjnxQrkho2GWJXE+5h3pA==","shasum":"86879243e3043a981fe998ee84109eadf59505a4","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.5.tgz","fileCount":252,"unpackedSize":405194,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEuCSCRA9TVsSAnZWagAAN+UP/0G34gqbDXIa7YJNTjT8\nQivuIVreG33IAxQZZXlpg+nRZ9CpEb745mFHWH9egEMY7/WLZD61zvlu51wZ\nLMcKrNvTa26NvbpFqn5950GNf22b6XYArknNv31Qvg9EbJOISqFUgbvGSoyo\nErQiqiYW/vfoY9O6vcYIAli6RvA9q1vp/CEgGANFsKg7ull2X/abDrqjaz3S\nm2YZPrxRqjQSgy4LGT3jhR0GYLFP84mi945egBFCdmMtgeeejCxFmTYxmCRJ\n+njBr5Doxgu2bXfAkfMeFGYtTuPDi6djJZCmNz3x2KJVzjzT6OnWwHQfJUtI\nNNAbjHc7wOahsgxX4SM/b0B7vpX/bZkC4wRztjw9THWpTxNWzH7eEJGeQX1e\nOW/9revV0ndmIO5EVgVnh3CqI6N/vf3ZQNpTpTuOj6+Wb+opWMr3EW0B0eNA\nPqdU4hXARb4Tkv+cETSPvhU0t5hMY+i3GQbo/ofMeZOd8ZAFcsHSMuIixcxk\nOKkUMdyavDW6FWl/sAI5M1qSGKp1hRBSjKhBGT5c8aH77y2NlpWAEsaKNIDu\nA/DX4TX992WPB3IuyMRrmkV2dAGAkYks0ncoJU6mTJ5JzsDVrs6DI3SiRvZV\nRM5CrbbN2oNCBSQN1D6JCe8E2Haqd/KzURlyUAfxMYNAWCZEFEoYRrSJ+/AN\nyhqD\r\n=h/yA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPT6W++ONnjByR1jeMC4+MrsFAGhFXl81C2LLXrlw/0wIgNqWN1G2r76tT5UmFDOh0XtMuaBg+7edRjxk/Nmrcj5I="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.5_1611849873637_0.9021390353461007"},"_hasShrinkwrap":false},"8.0.0-alpha.6":{"name":"typesaurus","version":"8.0.0-alpha.6","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^4.1.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.6","_nodeVersion":"10.20.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-rDuq/433tPHH8Mg8Gs6e7tjzG3XjxoGgWuel7qIRqkuWMYFT4PTId9hw0HJM5BDlSMPhRnR2iat0VihHlgNHnw==","shasum":"407802785c469c1ae34d34101f86960503a83882","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.6.tgz","fileCount":252,"unpackedSize":405218,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEuI/CRA9TVsSAnZWagAAybUP/3ZGn1lbXO8Sv/u/xzlh\nbdW1b0Vj5wPRNnwVhz152vSa1qs5HXlxLX5UbH/qMDXe+hS1o7OUx3w3A4yS\nrfXHjuBGCwJV2mq9pSh5zzZBT8S8KhIRuZRnKObiwzJ5ZJhZ9z/E0xY++mGo\ng3yvEV+gk9l5I3Z3EqQ7aBh+l6u6XTVpIhBvvVzGIQIL+khO3e4hGGnsdbLJ\nxDSwxLMIZAzlmMBq52vUCsPI0tHzZ+q3vXUNdGyOBlFGuBrbASVCXVfporUv\n51D6A0q1awiUPONGc8bs35AI+9szSj0aZnwh7keKd+awbNynj/EqmunUy5SK\nWZeIurRAdpesq+ewvGW92wMMm0ZZZfyEphl0LOKckI9hQ9wYKLwuMYXOgLTP\n+d/MJauM3UxoqDfwJx7paEl9eZuThu68mrb9t9bcc1WYeXdZwONDvGnLbVKR\nzvqOPyg9ohdWxKdwLFRAJ/ryftpgTmAI5P52Qp1kTW2PWBGB5mxp1Yk7vQri\nJWP2jtSZvGRfRynBaa0ui5iS972Me57ur7zN9hTA6wfIb/znIhVajnXBMtlV\nBpOPC5b7fCQRnxeV3AF5BceHO2/6uKT86B6c8Cg9+trhA2zpTfnnj0qUCKP1\nzzISH4dirYO3xoSCdCxnjmHi91RDnQaHfOMGCqYa8SSESUC2J2Ns+TXwYO+6\nViAM\r\n=GOeO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAZgj0ghGZeSWcs/XhcP8xwsnoQBVDtN0+5tipjXEP07AiEA5VQcBuFE4wKHBtOtEHu8/XmlekyQkYX+Y6xUeOH/33E="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.6_1611850303006_0.6868778078629965"},"_hasShrinkwrap":false},"8.0.0-alpha.7":{"name":"typesaurus","version":"8.0.0-alpha.7","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^4.1.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.7","_nodeVersion":"10.20.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-JPMgYEc0OvS72wG5PHJYi0hMPRx/zLOeSk/SH7xPqajdcnqT1XKjJTiqqMjK5+nGVHUbhIWnaSQi68Maiy5asg==","shasum":"c1cf5d53817e59932849411528bb846aa23d1f4a","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.7.tgz","fileCount":252,"unpackedSize":410118,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgE5P5CRA9TVsSAnZWagAANgYP/jvkrTZlo7d4YlhTbqnh\nn2ZMPmcIlm/H5YbOxENDQW3GmjyA88WY4S+jG0KjsVHjpXhZ/LQiw+ILQf7G\nmMOW9fQw1jx48/iMcLlXxtC8VHAXfNbKHnVIFM+0+XrTHGMI0n8q0+h7cA5/\nZ7bi2geQIXczrnq/z7pvezPmV3ar/1fGtaehDF4WShxFFt5ZRP2srWKOAHrb\n6yozMf8rFo6KY9KrK/JERQ+YxM0zLTqfLRlCZ932B2SF64VBc+K4OYwha6Dl\nf9bbzbS3lrz1MxOf+gjeC6VJorWr+3CltKbbCKmx+NB9sQ93/x7Focc8icY0\nVKgUJP63WWX/ol4Pfi4pMu5tm5aquO9RNDUdhsRxs1IzcbwpnfYJrOZa4sy9\nVICOkeo62zcv2SXNKcN/Nk5Sm9STnVXhMJFfYHpIxRw3IKUf+bW2gxpZAE/E\na35MKpOMKChtMRqSuXM8n3esufp33thOes3wpWYeMCL+Ae1vFa96zmRHGafY\nvz8X6qm+X7hCwfCkU7bzWh0zd/nH/Vx5VCQZaRgyMQ8dtmDo/faWkjbTj1RG\nb5UWEG/z9Ob6eeX84YuZFcTUtxjiEqF0a2F9IDBviEt4jW68SmQoD3VrrwDK\n+7Fgg8t1vCCqF74SjV+N+ohrSTSKeGBGiCz7gygziZN/+ilfc96UeleQOUSo\nE2di\r\n=MlfH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+aHqVi4M2uEXX/VgEvu1zllyupIeOE0HBqkkM8PHAMAIgFkHyBFTB2lq76b5AuUlJNaUm7TRnBOuDoxDX83orcIs="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.7_1611895801341_0.3482950563812661"},"_hasShrinkwrap":false},"8.0.0-alpha.8":{"name":"typesaurus","version":"8.0.0-alpha.8","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^4.1.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.8","_nodeVersion":"10.20.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-EINU/ZGIPFGOVaZCTORzcc8FUdmNicmyEul4WbPGy+OoGcvL1HK94FxWP+2GEdf41UX0RiJO/zM+ZS6MQpburA==","shasum":"2b52ee9ee3dac5a54d682e25d879baa88a079c62","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.8.tgz","fileCount":252,"unpackedSize":410262,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgE5TDCRA9TVsSAnZWagAA3vQP/is0v9FmxIrO2XIglfAN\n8o91QGEe3OTPjb9Y2OTUqxCE9brhYPHgNeuHwJcF7Vq0JMFMhCwxciiNaXhr\nMSs06av4n3TlsIFnYW2Ggngz6Kba2x3tVcmieGLJXuQMkRwPPhV7J+oDQhnm\nRifce0MB5xcsiV78XLlc2lVZ3CQnYAMlvDBmBCW23dDv1qwerbvHkJtukIQ1\nv5vsXn8FzydyeQhKiAQk61FM90qoY/f/SV6HJo6H0D5ZR/79FPeXR8qCKYft\nyl/L9tgzlxHIb0SGJJQc/1RkdYqPa2TbcE52n5wxz+UryhAMAsIHzI5zYdMX\nYdP4lPHnjkayylAGQnPPmeOhRDiFIWEGDKbe6m/0ytiOR4YJjd/Obdf5MOwD\nNZ8gTZOFE1T8hx1YBXIgwhbFC+hhiiHyFTVIKSOn1QQ2Ux7Dy1w4drGH/Tf9\nfUWNx3ObKGe8GOvi7KaQ4PP8dOZfnlD/138V6zGMab0fsUh7lD9RbCJNiBqW\nomF880LiJjp/je3utQtVqqoWH0H4bXO/PVS/fsMLb/mhK4tb9123lrLOsoxQ\nOIsanysmtfy98Aaw5b6CLgElidLkb0TA8BEjn77CyQEcRqf6O3aKqpMn2nq8\nBw/lIgku1jOG+v63HAYq72616LLqEm2f6pxva6qjzy1Q+/hvgIeDXk7kjaRm\n8Bka\r\n=TqKU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcsjN2vrGeKFIPTAD42KcBAVG2P6rVylLOwsdODFlmswIhALt7e8je+3vfMKAyZ3/RE1lNISmMFjBMlomJQGlbpKVt"}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.8_1611896002574_0.26003357600654065"},"_hasShrinkwrap":false},"8.0.0-alpha.9":{"name":"typesaurus","version":"8.0.0-alpha.9","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^4.1.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.9","_nodeVersion":"10.20.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-GTxbMcQ+AHloNMkwnkm3GqwrybX5JGYqW9c4QqxDEY9oW4Vkgw+2pKZDX4hUUd/GpuGipJH0V2lzSi12iponUQ==","shasum":"d4ed121dd4481d7907d93d80877a8c46adf9bd88","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.9.tgz","fileCount":252,"unpackedSize":410288,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgE5f6CRA9TVsSAnZWagAAKvQP/2+bwV3Gbmvvyuzahixe\nxn1v08EhXkLkcQPBU0IPQKx0YLdmZ97gK1zfUWNKbhwo7lociiNKt2T65aLP\nvLU43tycdUsLz550ejBiwJIYwFuxUVEgrE1HUDOrEAdaQiUJY1RFgMDcrAje\npxAnmPg1Taoj7LoWo1T+NOe9z/1czXcriDMrnQIW1bB06DD7BR6KIaMA9TC0\nHLPWYsu+eoBQ7zSbPGsATJ2cqcJHMAq7mwwlGf3BEw5oncCkCBSnQa1Hw16V\n1y12jaQama6+2se7/TCebBiHLHeVIoGNo9uUnM/huLs1dt+vewJqUyTUTRUp\nRTGzUd5b3XMHpln5LeQHQlQIEa/CmzuTbiRRdhZDTlzzXGeqje6oo82IwbxC\n+6I+cetkkDBKS3Tng2THd8ROtB+LEiLZkJuEdWHeh2QnYgKonZKoHN23nNYe\nMPOh9lZP+1xvFvUfmbXFsbNusTbXXGV7X8SoIIfpXgct6vagbdYrsxHYCRlr\nHkVjL0ud7WkHf+t264PSLLASYiQB/Ff4TjYeF9qeFYc7Zo9dJdZvgeKEsmyI\nlsisjZ4+D2kj1GcwbMFNBxZ1nSHcUY7343c+x6VHy5viZ8W2sKQbpbuEE6Vc\ni1zAN3v4YVp8CoB5EEf2CJ1/rszPsK9DOZ71z7SKxmLyCsYBMcI4BmrCCCm7\nC9Ff\r\n=LDlS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCboieduPqDwD4zAmyzcPx7a7W0v1KKSoJS1KwSXLSFgAIhAK0lIVzt/8xJyWfpNdg8O1u9sJjYzEti+LKPxl1tMj62"}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.9_1611896825763_0.6132270035682272"},"_hasShrinkwrap":false},"8.0.0-alpha.10":{"name":"typesaurus","version":"8.0.0-alpha.10","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^4.1.3","webpack":"^4.37.0","@babel/plugin-proposal-optional-chaining":"^7.8.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.10","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-3AEeJjj02kg9hSY1b/HpYexuWWMBhN58fhtI/UeYgoBsrCtSN11bfVSCMK2BRupe9doNdgiZATfPlMvpB7hoKg==","shasum":"56fc09ddfbd96261d49558d80c126938a46babc6","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.10.tgz","fileCount":252,"unpackedSize":410392,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgFpbTCRA9TVsSAnZWagAATvEP/iCT78iAqIgWPhjrTnrE\nsqKsQk+dwZuG4aPmpKKnz89e+HB6jVu5VXQU1yQrqPp4I3f+PLspCZ0JYEV3\n5reCxvU+5sgbXUjxpXGyJTixHZUut2XWz9FL6RbtFoEvFY69CbijnEENs1LH\n7CmrZVplGpdg7MEbPXXc/C8xVhrOQLgwGzJbHwWrgZcsdimN/m/wHYrDKmSJ\nkZLfuRM8TtCQxv05WFBz5YyqaeKuxr2ALCwbCHPv1FKF/7WaAW4hdL78/N0h\n3xjznOPZT7EMJpicGgAfrWXCIImxe2/jZyPkBV5FM7LkN3leeIH+VDyKSDvl\nRadZSbZnYOPmd/HrpfT+vhshGumOJ0PSOiKry58s/HslefSqAW2HbMyKI7d+\nstN1en/eMecgWFFpXVB0VMlUPzce83RUwrYWyC9qYaUKsE9skAP2F2iCJNlP\nCAoRL6JMc/j4+g8iXHhc3Dxqo6QYWMKtBrm9gYJWn8eGJ85Hakf8ysI9FYqp\nBsSElixUoXL8uYYRFbwAxcbAAShtD+ZsJ9zSuDQZpGYMJTupxHfGzj1Xb8H5\npIjLAuNdYmiCXoUDcAesD+RV/ZO9oCz7hPqgXqKCkB6JH87QfP4GNQqmDr41\n0q5pu80ybZtq9gFp8DxMHqiLfXxhtj+JXoSCqkNwLmM1I9LSe1rkF3RX/RmI\n2WU6\r\n=4ZJU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGew2qHyUQdshuvnwmYnl5xkzQgHzh4jJSRtaH3U3qMZAiEAihY2r5mR3j8OeXiK6bBvm5Qxa4/yQnm36K4aQcW5A9g="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.10_1612093138403_0.3325272980345406"},"_hasShrinkwrap":false},"8.0.0-alpha.11":{"name":"typesaurus","version":"8.0.0-alpha.11","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"4.1.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.11","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-gUVQd2ZHfzns4rHV1fSx0R0P65iI6Yoe8sQTYUpknaggKjCe928Hoe9sF5Fc+lvNOAWgB30vCz97kuRYhiwV9g==","shasum":"8d20d002f25a35ad70cc25289cca55746f218608","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.11.tgz","fileCount":252,"unpackedSize":413381,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgF7KDCRA9TVsSAnZWagAAahsP/Rcvk/mZj4u1XUA2LYRv\n1qVyMlWraDd67cAZCWBsSIp3b6BlnH46jjYVjO7JXSVU7XvB0e8r32q8ZrBo\nDKjfyY8mnt9RpRX8jAPhBY8d/zp3MqfN3ZOWuLZDm0Au5YR2xmJqhlT26oVQ\nD1mOfmR07xR6KAV257bvG/2Eru10Ib8UT66MbEkScIhiSSt1bhjUU/tikJXU\nK4nsbXKf/ilgPJLwcyAFsoBEjBsQ64NPPBmZrzzCwbkJCeSbX3T7OW4Sx5um\nMbK7Xa1vOUkFbRo0gwD5ZTJxG6uUBDRdlf1vNDOmuVVluqv4lB8rwyC8cXTV\nwfrICOFFcFsppWZkWbG9WBA1/yMphtmt+DdT8y/GfN21dnK7inZYrbaovic7\nzygku9z80sCzy8JT8NMYST6MVDzv6VLCQKx9azTcJ2St5Xsy8kqSU7R7zytp\nVbKPZEgcYU1XAUu2UArrPzSRfpAwk9m1p5u8tiagLQT4ORE89gAMlvZEzb2i\nyPFi3xMBkWQxSHXu760kn36r6QF0nIHeC9cdzqye7VJKy/UMGIgd7wKVu1Y/\nt+yYGphEyg2WZDbNcZl08nvwii2FwzbMNdg1jkQZd6jD6gJc4rnW0CAGcXez\n17JlTHcGV38KKiSIRtLpW9ZXVUoURfVPaZDsNjXBL3cqaDcds/uxxrVos3gs\nf8az\r\n=29ln\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfBuOii8P139ETJTZ/nA/zNtWHbYaM7tzrYR6reKRfcgIgE0x2cCrWYvQjQFUjjHmdmdmBBNzdWHNZU7W15xSjDHA="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.11_1612165762275_0.001607794705577037"},"_hasShrinkwrap":false},"8.0.0-alpha.12":{"name":"typesaurus","version":"8.0.0-alpha.12","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"4.1.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.12","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-TWQLr3KukGfXqSwoQ6nwGdwDwrxEQGvGFVbU6Bu+Ijd5wXSA6rf/i+Z/Pbl3mtOdzrJJCs05zStfs1ieErXGoQ==","shasum":"f5326ff24de9e750e2d7a1ce03a9109491fb5dd8","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.12.tgz","fileCount":252,"unpackedSize":413155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgF7UzCRA9TVsSAnZWagAAyQQQAKLTtpVHX0s3lKNnVT0T\nY/o8DG+lToejMsaE4aQGPZ9d1oZswNDLNvgyV2pHhY5ZPz1LWObVhvUr8kgY\nXx7jQQCNVuYIQcl/gw4FFFZEO++k4Axg80uFuWKo5Jlyvz5tNGEwgwvY8FaF\nIzpA5b7pBA+VnC0Hl/q0bPJr9iiQt3tS4txpgOsyxHYew23RzDPjDbPiT5Ad\nmwFA4i8TvloBvUAGFdudXAEzGazllSQmvVZX8ZHzojvO4Zae30Jm0bv0T6Yx\nzhROs/AkbhpJPUgTGbKMUeKtRCt2NEiL0mcie0+yiJkFoLeZSKLv5nAz+IHc\nLAeIcyO2rUgyQ0CkKBPhsSG5zhsz5z/wtjO0PlDjLL27lcjCsj8FzGgF5KyW\nzsWD39HONY+JkYDxboXvgH5dSa+hlJ01uvrkOmaAlyIK5XpRuNwLlmc1ZeSv\noozvJIYmOeMTp/f6Er4ErJIu1Lk0+gjmel9wgODyU5HLi1/1GF0Dun54XY4i\nXPAHLpm9Eryl9QzZ5nj7Ups9tZC7cwuzJg2aCJUyDkwOt+Gyz4Som+8787UY\nfnbbvPUJyi3jHye/lqrSxd6EP4LoJ4Lqac6I5mA+atbdO5Kg68WpDbCB6kZU\nyEWf3D3Y2fQ1UJtZhlZV1K7z43HoBVptet1HSElQ0iFKUJfxiSLzY8nR2gBD\nz5lL\r\n=PnIw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCgqbTJyBmFC3Mb0ErKR/ryUHbK2BqEQhtlACg92R3HQIhANAyN9Dx3SLm+9M0ZsyEmt6tTdXIkX3l4S82SHqRDJ8b"}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.12_1612166451338_0.5802496326167004"},"_hasShrinkwrap":false},"8.0.0-alpha.13":{"name":"typesaurus","version":"8.0.0-alpha.13","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"4.1.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.13","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-Y+JHm7dGB47LL0f3/Cw6XMcd0fKaJq/hR+n/YRkO4w6GbZc2w0GYwJZie7iPaqMdy+1m3OowNrviK8a+Y/ZrcA==","shasum":"d7c9672bebae73bfeab4ab526549e93e300fa5d9","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.13.tgz","fileCount":252,"unpackedSize":413175,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgF7ZVCRA9TVsSAnZWagAAjuoP/2cGvL+RYDPE/n5LDnK9\neM0BfUfgW6X6Q6vDYjefDjYZ0KfSLz2mhQHwk97KhyQb2YW42LHpFPxG5MVH\nk+WSU7rZMLWcbwYrn2QLfmQbk1/R1NcBJkR/xyxuLezAxNAIylnU0IfQ3myp\n2fu34rDgLBWtKsooJuf2fgIJ9H0ZY4Oto3yNqLXmbtfoNtz7gxLklHNRESvW\nyHc6GYuWdWzeEFUNKDZGBcBhdLcR7dttlh50nckxSPqO0yYNHTlHyCXPc/kJ\noT1qPQkCNln2TJpXO0rf8Qw0Imt+uYtFYj3E+Wi2RBGWJk7zPGcN16zOPPhX\nSmc1f1vcWhpvpDSm5tLDrJIWd3fhVf7VDEmoOUuatXJ87jdCb4RyBbwi6ulC\nMjFkR52+aARS1aYBuCTTxD05n1vI4iZ45gRjN0Dn+7cUEF0H5sahqWGnJQAG\nJX28HNb2+K/3P0/x6hdb3DjIc2DXEmYgz5VDiJN2PqmztmDExLrPlej9SWmE\n+BeA9JUreE6x24LuXPzepKVeHLlc/vK3w6MMzx/RsS/F4/N25M1NGLevhrcU\n9wGYKGMStZfhD5BuQ+Rtah4AV6Q9LZIOgtW+xhDPH5KOVYSXx1QKaJuSXTyx\n1ut1vdNCuxlionPWsbfu5kZG84YmZiI0w9G/8qHBZeEhKlnMBA4j7PeHiLP5\nOIck\r\n=omhp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFsLMXhSB+LLVwdIiiVbyzDrpI4I8wMUapABH/xO2rzzAiEAvsZGtYrX2sQ/pOsC8Fkjygd1FhgvMgTCYaP2/lx69pQ="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.13_1612166740581_0.1514439306412716"},"_hasShrinkwrap":false},"8.0.0-alpha.14":{"name":"typesaurus","version":"8.0.0-alpha.14","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"4.1.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.14","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-eWSe9+nsPmv2csmGeNdsQ0Seu1Krw7TuIBaiKCQrDJpc/xbFBjx6HWf3cjtqpCXzlC5282RcvxqkAISbaxO5pA==","shasum":"33b5522e006140438a1943c183e83fe8cc57518c","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.14.tgz","fileCount":264,"unpackedSize":415716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgF8w+CRA9TVsSAnZWagAA6RQP/0+TILO3ZafwKHVCOvQE\n0xxphjy7NJ98MiunBbcyIdvt0oTTCEXKke9w/hfA6/Yx83Ao6qg1u0ZDj+PA\nrY/4MP+Gn8VkFcwLP9CHqK9j0VF/jjf6oagryjcJGtk/SH2NGp/M2FY0RMjN\n9pIN9Jwe/98HaJjPwORcoUvfFjeYQAusIUCm35l0PaFijw5DJ3x/l9L9uq3v\nPOo57LD7fkeR5+MQpBSXpkPv725hSHVXJa/DsBMLdZb9eqIBYik3tZPxpg/R\n+qjKWGs8sWQs2QfZe0yJKiYChuDwj6hlls//ME3S1Sire5/UEqBd4BRHGx4s\nkGdquvu9CaqpZhKwm2F8chaLhfya2kJ+X0ZKERPLYYW6j3f9he8OYG13JJxz\nxnI+i1PAWkvO2m9AzVEyBcehrjbkAp6ylnOlYcXpWoruHdKfROx9VI1ldzit\n4THKPGBp4cUzfVolj8SsgaHIqHpbuzbnhnUzMBJhoCCvdztYszGPDrEsMSKq\n8FVTNMu5MYEOrjHvhtioMRQYsJ30FP/pFF3f9xu0zySNDO9w/tdoxZ0/Uhzf\nbkEfA9HlgvkqNuplaPvCyGl5emI6LaEa1OFX+u37A136DvP/97t2vfQoBHMm\nVDScg/lSmVPI0Pj2jjuXXgTP1jEmmXnBWOzkwnkbj9tpJx1jdbdxCt3/o7Ov\nc0Oi\r\n=GrCN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBvGMgaUQDwGxMuRoZcMBobYgXO4GPRTO6JEFP/Kv07MAiEAitfdwStq/pwBftlk5Svfo6lCIp+fCYcbUFhWxbrLKWA="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.14_1612172350047_0.09965036654455384"},"_hasShrinkwrap":false},"8.0.0-alpha.15":{"name":"typesaurus","version":"8.0.0-alpha.15","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"4.1.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.15","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-MZbn+HLcw7iFKPwDc5Qe92+E2i+7ckL/UuUxkKBKbGTLYIpzXLghCrLmBm3k01KjxuuO2sUEFXutMjJkNqRKNQ==","shasum":"3c804641f35ef384975bb49fa385c40f00cae19e","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.15.tgz","fileCount":264,"unpackedSize":428730,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGQxwCRA9TVsSAnZWagAAGiAP/3c60ixPNh4kzQI9di8J\nXXZbu9JVCeECAbdQIZyvBLcy20kfhkEX9aCsSq0XPYs4Eheu5kZAnScbq8R8\nD//+/iWXWZTBsXl9J+0TCVoVR+73YTIcfF6xXq/FldZSMU7ylpdDBMPGfWxj\nw9wtAlDf1ouOeWl0BLXQolpKB3sLt5dmSjAoCmDefACZKNGUt83Fc7jOef4m\n2u8983NRewo90fqPhJ5qI+Fmompd0A1A79yLdeO5xEy7vzy/aUPbeAWPC2wI\ndZxQfA7kCR5m+b7JrKse7sgvZ3EkipwZDgdzWAcoyAz4q3k+Z5ldxwmwjPoM\n3lAFkt8yQ77Qv2V3UzYf65WjI99gKz8kUCwSnasIwgULyz/50TQobulC/xBv\nJ/jpQo8IWYPeHqg80vgDk1uThAzEW4tqbPgRCqPbwHnf7QP20jOBWKOI76+z\nYnrKwlSk2L6H50LnBgRmST6bhSi6C7P6VbUu0Ru9jevX5n5bBzb6+70I9JhA\ncvEzLtXMHrAHKIztrpaxgDq1zy5m4SkKfxaH9j+rQBMLXjYrSzg4MsGgVY4x\n297djhi0nv2eFcweQ0lIrAr05vP9zVylwiRWPRvvQ9O6SyS/zmQGUViTq39K\njuCdb2OfsnyIwpoMB9R1jnARDmPlNSEyGvQMVY/agVJElYrGfCTWa4UGBYCD\nwoQQ\r\n=XNAu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvBYPPsGbvfUr2E/cQermNoerA3fh8ZQRFC85th5hlUQIhALlqRLsZMY0X7Ud0U5Ipvj7wilSzhNhS6c2NmCvIyuVa"}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.15_1612254319647_0.4628055087975629"},"_hasShrinkwrap":false},"8.0.0-alpha.16":{"name":"typesaurus","version":"8.0.0-alpha.16","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"4.1.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.16","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-s1lwQAA3wScg/q/e4rwProNZzi0ndW6jWWEZDBKoaNOKiPr751kPklNe6LvL77CBUXuEuhTut+49rfywyL1UPg==","shasum":"708c6ff57291cf45afb1c5f10022ac62ce6dbf91","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.16.tgz","fileCount":264,"unpackedSize":428883,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGQ/HCRA9TVsSAnZWagAA0BsP/3lbrUcD1RfgZLxJwad/\nApjPmMN445gFtiJDbPuS1AWZWFYYNdqZim2NkFHDlBiKcnUpJhk9n1kCxJ9C\nnOS9aVd3BUrdbNepM7XMS+2t2y8PDaBYVAfj5h+oQTOgGS86de0ec1JB/msz\nQ1qxihRT1qFtrjFbt9GiGliAaSPEDdkWlYN3AUBQzNdEG98eAXBRQXLNKZfG\ngrb9VnRTJ0G4vGM/xplK8gLuuimerdZYiWovSZS7DwwYdgjNrCB5R9ckcWdU\n81mKpJavK77MKCE4Kmn50MHFo2HJko8D+pjbHDlkKSV8v1LAA8XUv3lwRXg4\n/3Ica0qGYD3vUl++wlrchUKkRbgXOdDPlWcvynB8He2cCJSv2E30Re7vLkNH\nEnHhj2iALad1QFJG1xR2YLhJIxc6Y40clb872hY9vJ6ldtiXZQDivqRAH3LV\nOlBGUZtWgJXuT1Henb3PP3Tgh7VzSTJqtiLC5Rs3+u8bR7ckM4iH7a7BqNdV\n57g9b+mhBjSRdS7eL1Mk2PsGX3ca0a9y3HH1os3+1el+/8eIuGZGDqBrO9Rv\n/+OZvXSwUQ1zJ1CGptiBh8aXESu34utohQaPWOehfW73XJmL8thrT3LmVrVe\ngO2HlorEOYlz+O0BnZbCPUG7HUJaAU4gXKRaBRdcMkmaDZ3aGSM7dZNA9oPT\nCuO2\r\n=RU6x\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHyD7J51Ktb6rluPcZdShDauVfMnyrQnvv0YcC6aHxreAiEA/nMzugc8XKH7FxGw8WcGR9l/UScNGAQIgt0ey3xJwKc="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.16_1612255174840_0.9823655675028948"},"_hasShrinkwrap":false},"8.0.0-alpha.17":{"name":"typesaurus","version":"8.0.0-alpha.17","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/testing":"^0.16.7","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"4.1.3","webpack":"^4.37.0"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.17","_nodeVersion":"10.16.3","_npmVersion":"6.13.6","dist":{"integrity":"sha512-/VoXeNMGZk3LQnoIEjeXffr9ePIQi6dfea8pSjvRGMvJe3JXeofhIjfBt8C50OSeTO0F8qhqj8edIRxvnUoZyg==","shasum":"118dfb7e1f6df230a6b550a7163d3f9add9cb129","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.17.tgz","fileCount":264,"unpackedSize":428941,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGRHUCRA9TVsSAnZWagAAvLsP/jxUa808yNarAN5Mymkn\nCul5i3GDUr05P74+TqASlH+qBXMRcE9BY4aVDit8zRA5mQhYgqLOonR8akfE\nkib3KrNsIL/v0H59Jk8wqE00ewqZJHB9jatLGANoYL8JL5CHJZ+rAwjdfQ5v\nrb1YX451js3qPml/P6uZpR0WmFFIoUo2ghKuekptPUlPSXpHQ3pV+92JOT6p\n1PmZeDVWlc9UyECZUkPpZp74mfF3IpJxTy0kc+KeKngpFj9mmDw3vnJcAZXk\nKbyUwklmeBjgQm4EByrGv6h5NTP6gXgTVMFZtFHGJFqznNfJOTfM8vonSMHb\n14xnyC9RrJnEGLqDfArwLUHg8e8HEs8g0zLHQypCneEZCwd2ndd5yDu7mZql\nHbsPlV41Pk2iSXNUycpbOC43tdfqnwVaIZPyb+NrokNOpyT1A57wml46BBTG\nmIaZojdD1HO+tbF/Vy+lCi8IbTIYivlHcrjls13VFii3YdbP128CUt3DdOtq\ndSVw3Qa0GFYBpvXfQqEz/B9iQR7BbDPZkxNyMgB4SBdCuaiXfIZsz7cv4Dpm\n/j1hqEfQrc6yjo1ucRlc6NHE4EclFtt8YmJeTJM2Eipw7BNkMUCXWMEfAX4b\nWMvCRfbQ7oMVboDpPeuV5BM+TSa/Q9AGmJcZq9An+k9a4cgsTX1m++ZYYhDh\n8scD\r\n=o3U5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD6pG4rxydcKpIDkG8vlT27PKCtsfSxPjwPeEZ+T/d9qQIgd3iozzPS+sp9tatHBsxktYRNMVqAijjIEKvZS8FQ4DA="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.17_1612255699678_0.12281064810562503"},"_hasShrinkwrap":false},"8.0.0-alpha.18":{"name":"typesaurus","version":"8.0.0-alpha.18","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/testing":"^0.20.11","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8.2.5","firebase-admin":"9.4.2","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"4.1.3","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.18","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-GH7jRbkNO+BxC6NzXXKpeH4RpdTgcJbCtzirTzkO2zSu/Wtq/LnEspdMZ6/wTzuCeTxyL+Fd2ElrWlKMYnnpGQ==","shasum":"bc1f655ae3765f9463a74a8ed106495916ceca28","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.18.tgz","fileCount":264,"unpackedSize":430985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGmRZCRA9TVsSAnZWagAAteYP/0J7Rw6DE2hbJ+m354Kx\nJ2akR02C3Ea6/B0BXvTQ3dLNaVSCQ51lM7ud1HZR7ozQ8qpf97I3XdnmoKHe\nmlsTKotA7OAhj2fuA3ViZo/GvGgESyzxrmNnKMBsLntdUGExNN7HQHFu1YHm\njCK2xAfjGSYrJ0zJYnqwIEfw8m8U5pK4/4LjTN6b0Jk/UOYnoBwdMuBUSZQ0\nPA2f0tdxOYFubzE6G06NcEJVvtzFdzcFGj5EBYxgSkTdVDTFFuVhoQlfNa2K\nsKlBOkae+yWQfc9Fn+OfYDJ9UrR5f32pFualfKKLOr3lWI0LTF0JdVZwcMUI\n7v5UcBsDBaxM6OuKhdHgbxhwmNriydi9c9UogR1wlkr7Y59pTj/bjVmlC8lA\n+WXP5oZlEGUHMb9gyCKaVdE7UPJ5aiVpFT6aSlR9E+Omi8YbZgFDINGizf/z\ndgVkzklEHhY8js8LbH5O9mn0tkhDUMW6kmm0aAucN7u8mGtuqLakGvMt3fUH\n8poF+BQzg0izRVCV2+Fjgmr9lL3GtmQogrK5tlZXyQtW675gi0eEHorGvUMH\n/M68qIpmA9dNbAU0gnC3fYKTU9tdetGYZmZntGk5Wuy8y8SMgBLjZ/pjmXZV\nEryHGGY72kqZQNhTJcBAKoQgar196z2QofsJAwrJcP8yz891xVugcbbdz4wB\n/KJc\r\n=5yED\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3Yy8SAEIwc4DFflyGkFVbFgHfSysldqMbuYzfYtUnQQIgCBJlk8QYqaCgNjhJnXxEqaC95+Gz7FqMCaNn1AHsQWw="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.18_1612342361276_0.0769938726448196"},"_hasShrinkwrap":false},"8.0.0-alpha.19":{"name":"typesaurus","version":"8.0.0-alpha.19","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/testing":"^0.20.11","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8.2.5","firebase-admin":"9.4.2","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"4.1.3","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.19","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-GenzvIQaXgOVSX55MRCMF/L8gSKeTLBDa6hEcrrcunKXtxmcJ6UdQppV0CxfwoBc60jJITWRlmsvLFz1tWxnPA==","shasum":"d10c4a190de289c5f31ab4b91c5cb96bb46900da","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.19.tgz","fileCount":264,"unpackedSize":435476,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgG3plCRA9TVsSAnZWagAAmYAQAIP4ZPn9GXZqsAY5hQn0\nQDJ5330JN3jFbLYbZLSzlGhtU1j1n55P+8akzjNzvqdo9rlVVjslDWCtjtls\n1Gtw81w65ds05hy0Rcc7XRn4/Yb4whEoRPECRNbfEVvLIaALD/tDjwwFxXqR\nFOEuiZKg0+zMvBaGgAd+Gfln4Lfru1GtQPR1nVHNLtZVH13X+dF6r//Ybr8j\nCVcSVsWyMA2quY3harkxRXayN9DEPP0rM5GvB64RQAwDOBZ2iSnVftsD/hWT\nfTC5czB/iP6Zq/oH3b8r68ggYAKm9aqPi4FycttiugslXuk7iQecQxXNxuNe\nnjOAjod+sdbDKdkaeaCFSLfygeukXvTybIp/sZFHZzo1vCM4ftM9Z332jK/I\naPrduRztv86pHYjVnxdr6VNEW0zKNoiRGWxHzIvwW8ViDUQYEri/KQ5E1F63\ndv3Ia6nYNpLa6gtviIwTYu03x1XnON1uIWjX0EF5a3vb9ySPKpVA4HcJbNEh\nrGIRKRvFuB+LaqzsT7mR+4WyNYEqcHAF0tP+k1opFnkvgGdIdF1gSQ6HogAb\nIMD+mjY6g9xPobAWgcNBbcr6tPenTyu+OgbzcWFP+2P66e3yLa+Q+gMsspNg\nfyBZSeY7AqQZcZDWjXI6wx6sJUyMrJa/lVguskaSatt+BdKERubMuhYtPRm6\ni8A1\r\n=QC2p\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwb1it2i/fECWLzbnL8B0hQ4HB5WsrBv6DTL8xkGewlAIgUjA2YkBdiIBwLmXdkpL98z4NpeV4xwYSpI6HWfUmwW0="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.19_1612413540664_0.09128662697613832"},"_hasShrinkwrap":false},"8.0.0-alpha.20":{"name":"typesaurus","version":"8.0.0-alpha.20","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/testing":"^0.20.11","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8.2.5","firebase-admin":"9.4.2","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"4.1.3","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.20","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-85Q1uHKgOJ0jp1aY6z1AKnY46CkrXm421g9Y+lwuGOij4zJoGi5pyLmwBLWmLMw1YD4KePfHCfVvBZLY+jY8vw==","shasum":"2e4e235efdd873d5c16578ea2fdbafbb281985f8","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.20.tgz","fileCount":264,"unpackedSize":436146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgG3t4CRA9TVsSAnZWagAAKTYP/A7lMl3NwGg59KoIvFEY\nDpJXLhOgEJzCRWrmhG5ds6iSI/La9OXrkMfxn6OBN6w8/ZJ/sEEe/rI9z71t\njb68W9fJUMl5hZeE70qhrt0FpeWLluAMNyybvdNLzUb8X5q2NIGyib5Mxr/N\nKTy3V7En75JThzY3mTYDq1EhlmUN2tQ7BQ5hN3LnCkLeKsS5iCg7kY2Di1x2\ne72HGJkzuWC6qq/t6mvtEAkgDBZsH6ESSlrUXacekW/HjiTWsEZ3r7hY3SO9\n1q40TZcY/JPjmgmDoM9FceY6DyjUdARDBfdIaiu/Mc5tBq6BFl+1GX295OdU\n6SsoWGaTEHbu0PF8D+U9oEGE2MaTBxRaUOUiKkdN6xVxBj+BQxsK74SlVnLK\nM/Ibpd6s3+L4pOS6JO7r6swrSJ/yGoeib3Dbx9JmJFOLaNbNALA7MgtfR3ZP\n1kC9i8VynbxJFvBtqzGYdSTXJPv4VcH9Zkp6sAikutnaoYGlR4LX6h7mQHsO\ncRrGxTOMa5QqjS7qDy9Ko2KvZO5XaxlGxTWRI7j0MTXFDHjEeWs6nc0t1gt3\nyqwaWWd9JusgE4Wo+26d06veXioFA10wyu1Q7uQZIJAEunRBCO1iNJjXPPiU\nyBnqwezCTrTRtP4j7pNj4ZumkXFdivim2y4GVNReiDJWdrwYgjbLXP2OJuxa\nC0Es\r\n=4sbW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCO/9yuoQjDcLW/YONulA0lFTgtTbPdgAPx3fQRrK64rQIhAKgGgco108l5Zq04cczUPtLv571rjA9LmoG3yEekzGhW"}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.20_1612413816421_0.6388905897988659"},"_hasShrinkwrap":false},"8.0.0-alpha.21":{"name":"typesaurus","version":"8.0.0-alpha.21","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/testing":"^0.20.11","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8.2.5","firebase-admin":"9.4.2","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"4.1.3","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.21","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-sv5D7zqijK0ip6lmt2Z3wRsMz99ijv5tWnd5JR/Yx2HXl8Ul1x7hvSosmaFDiqIop+s9jgaWO+xNkCKub2ztbw==","shasum":"ee182f60a3c7c581dbf493d23ef29d9e90bd619c","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.21.tgz","fileCount":264,"unpackedSize":436216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNKdZCRA9TVsSAnZWagAApf4QAJ34Ra7hEiRgD59XYH2y\n4Z6hJuGyumQiaU6mzZCLKvyr5XZrfhRxGo9PmG+h14KyUr63GjybXpIWp4I/\nOGmS1Rh8ykw4N9VMlIz9dw98hAxaiPvxyklOmh8DLD8Fz7KFvhxW4x2yVpyi\nHJLjx1+lGr13frFknk6zIU5C6GRTAVAZyW8U7FmeLpR68SiZMqv+kwSCv7Df\nhdaTSM0W88PvCrDyP3kqCS1mM3ojnZOzzy1kFZExfUQUpuzgzurxQkXuVcCN\nEjBg1F52OrI8F0ACHi5sJTViLOFo3/TNHTj6eXjURBUJrtizAFwqx4zCdUtV\n83HtKupr0NbwgQe3QI0huwdUSfuYd3EedzPSzwal7uNEqg+FtdI8soeOKZwq\nIvYCQphj8eiKjcKuw+411XOtZMXcsONuAQu5HKtw21Rng5LV4le9bFVL4CwC\nZY0MstS7b2Lq9964iRgeUo/K/sNwL79mhBALaJf/uzUxRw5Dz6GzYqHUuaFx\nlPAH5uIimBj7+rbrVotyZvag2YX9P6rQxvKA+W0rvp0wH/CU2tLKO8gg3RDc\neUo5uQi8gHJrI2+zjRbS5jklqA+ZXHaOUlyhRew2qZATHo4ACaljlY3fkFWR\nLBcekbt7MR1CT3hSirpbQa2c6EFTjV/f7gfrvjEwfVJLgk0f5N8hln9IuNAV\nP1bW\r\n=sbXM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBCC3GVQOKSzIa6zvDEIHAGv2BjEM783SLasCXHuDmS7AiEA2yEQGT1Co4tQsVyOoZgNcTwdskyQmJmLBCYZResnuAY="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.21_1614063449058_0.012898714792369592"},"_hasShrinkwrap":false},"8.0.0-alpha.22":{"name":"typesaurus","version":"8.0.0-alpha.22","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/testing":"^0.20.11","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8.2.5","firebase-admin":"9.4.2","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"4.1.3","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.22","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-klrpjaOGa119fQAhvdgjjH28lBiyCZeR+T7hd/afHgx1YITOh3bFz9rG+lEEaU3wHr0TeZGOWzHiAoMetP8pnA==","shasum":"1471fb59163b5b422d0dd97a4e3336aa42fd0b8f","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.22.tgz","fileCount":264,"unpackedSize":437385,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVYzGCRA9TVsSAnZWagAAE/oP/0C21oyChCQ3+7dZv3SF\nlvmJB59F/Q88vWxJgaUfc7TglpbIS3BYyYiyXlMFEgzO0flSilAS+ZEl/LIm\nJU5WA/eeK4PPCDQ2KOq5Hm8kTa3cWY2Z3D/okWMUtOeZh0p4q2p4EhIvmY77\nvK+gBHnx6VTK71SQ+RqTQ4/AUxcyIHIzuIpWpQK1CJMW2F4zObdLpQGsMwGw\ns9qHQsh5cbtGRgno7DGwLBp/Evm4bJbgQdqPUZBxPN8e6olSZNFL8Nw/PfFA\n3h/q5QvSvht6MEAAM1NIN5ZBg0IdoUsFesls4E3vNULihaaBrXv3Ft7lUnou\nSfCPC8ZOnhnuhwDU54knziNUm7CF5g26oGXyu6wWpFoRGlg19JN8K5ugxBxJ\n/mdKzMfCVYnBsDZOa8TYapPTlCmmKwcrnaSdpaPQmbxX+w6wfaOK38qPWV08\nQ0aL0AQvMjJYLoFyiNu/mEaWeHUCCSdNULgj8MI47Dys3zZaQxUb9FUQLc2y\nOrYdJkB4ALppfjhoT51hqDhqUMgPqf7zakDwSAEPnNjnN2fN9ZXncBuWORNb\nxWXwUDQX2PTZ9fmJ8ZPplucgg3ynnLSQUquBeXZ3i9DqFOEQmqhSwmFAVe26\nXTmJXv9z1qJrEk9fFMg2CCTUcO6pLF0MV6Ta56OZeBQp9BF0wAKDhNgUomOp\nCfON\r\n=acoM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIApszyk2NmeFQ/KEIxnc1OUDezTIm4F25g92D9mzUVIUAiEA5FprkT0IGbRdFFJxc6LLp5rueFQtIbxhYXf0gOsrfl4="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.22_1616219333452_0.6061719725744865"},"_hasShrinkwrap":false},"7.2.0":{"name":"typesaurus","version":"7.2.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.4.5","@babel/preset-env":"^7.4.5","@babel/preset-typescript":"^7.3.3","@firebase/rules-unit-testing":"^1.2.10","@types/jest":"^24.0.13","@types/node":"^12.0.4","@types/sinon":"^7.0.13","@types/webpack-env":"^1.14.0","babel-loader":"^8.0.6","babel-preset-power-assert":"^3.0.0","firebase":"7.6.1","firebase-admin":"8.9.0","firebase-tools":"^7.11.0","jest":"^24.8.0","karma":"^4.2.0","karma-chrome-launcher":"^3.0.0","karma-jasmine":"^2.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^4.0.2","mocha":"^6.2.0","nanoid":"^2.0.3","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^1.19.0","sinon":"^7.3.2","typedoc":"^0.15.0","typescript":"^3.8.3","webpack":"^4.37.0"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@7.2.0","_nodeVersion":"10.20.1","_npmVersion":"7.6.0","dist":{"integrity":"sha512-qngW0ECsnEoPmX/nI2hNarmkQKGDH7R48InIZWsxmQa07NHVICutUZUkY2HdJX4LvcdDWZdcBedh0wudNMu1NA==","shasum":"e0d581b27000f0af728b8b9e07be18f67dda08e7","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-7.2.0.tgz","fileCount":246,"unpackedSize":376581,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrGW9CRA9TVsSAnZWagAAXJkP/2WWo5gVVTs1QcAlWCTu\npSmVR//Si9CsL5vGX4qefV25iO/nzLXDuO6GgcXroKBF8AKwTdk+q4p48RhS\njE/UP0khP1N2IKZV6jZabOy/addYwAjlfBu1N3PkhZCcYKC/65xlQ7FKWgU6\nlRrpyNhsPOHTagAoRl2BFRqh/YREfcwPtC5NEQyN+khr9g146xlngFz1P4Fs\nuvfBMiC4P77OBCv0zT+PGKthetaybMB+x182oEK4F9DcYvW+Qnc+WIMQHgxX\nwcyW0BGq8YeZGkxltCS7dJivmcQ90V0LwmskvcBVhiXw9AIC3bWdykT/vTcS\nkTmF2fhYSnLTr0qAP63DLZkdOrwtjdsnHF7oZ0MU+IbrElpq0nZRqSHWlTQE\nNI/cXmfTYJBjtSObXfIvz3SWqg+wPsYFwJczZ5eMvYm9ldRkjutZPD07jAt6\nyLFNxkyJgFM2/5rXT2oc1ka9GZmOYHBHYa2z+na6aROcKRae5k8KfT1/IUN5\nswLtVI27pErlKbzltHuNJvDIqD7uQL98e1XLmpOxAeoZidWUuc1khCkW3d0D\nqv9dn8YlgzlyQ3od4jdOXTxpEwyfsT8jGZdaFt76s/dX13REivprY3ihzJTt\nsQyX57lE9C1M0N8dDMpTVCKD3hmD8skk/Puw/9iI4AtdLyj1bv19mO3Jw1oi\nQjr5\r\n=gzpJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHCgsdMM22rguJXq+zpI7eb68HAIWnJImKD01cIBJLKhAiB/NcKW3cX4LihwI3jANtItHrF+yEHNspJajyj0TRMDEg=="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_7.2.0_1621910972621_0.5198402652714584"},"_hasShrinkwrap":false},"8.0.0-alpha.23":{"name":"typesaurus","version":"8.0.0-alpha.23","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/testing":"^0.20.11","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8","firebase-admin":"9.4.2","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","lazyfire":"^0.2.0","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"4.1.3","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler, you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, initialize Firebase normally.\n\nIn the web environment ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Project configuration\n})\n```\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the diven document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.23","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-51YzNcmLjexHfVk2c2+2ZHUwxIpKtOzPQrrhHtLgxIbdF+skPls95aUsAkLiXWvMBiP2lDVL40pGpwycEtHI0w==","shasum":"0f697a74a4e47e3c588f92a2d7c19b7c382caeb6","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.23.tgz","fileCount":264,"unpackedSize":437443,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvzYuCRA9TVsSAnZWagAAmscQAJ06cVq+Ly5kRoDR5oX8\nMDWNqRj7WJL4rfh1EtvEHax2+OAOz7cD0ioosIOYlO2PqABVnIyz0yaDRFts\neos1iUYVYYwsOGx04ji9O5B3l+41DBlAJHHmPIt+K4JOdDQWa8XF0VdCO++y\nEUwn3D38nPCUwHIatB8hlF1ITuSrpGcB5NdzF8Zit4f/CK7hTFETwLYRdybk\nRoSMLl86HgIgctP3wF84PsySZiZ3/XTjHS25pJZfR2dyJj0zw3qRUrWwsFD6\nlLqB6eW/AEGkK/3bQMp8Qz8Iob6vEKeKHBje2G7YNOpzeJSmEX6TsBwaZRhT\n3Ebr5MIKZEIv45V7j2hCjoNabQ+mmstJh071I//qFd9DaoZvyX9wQxoCpfg5\no/mxGYWGMexrtbaFU/g0YDz0709dj9DSWOeTbxUJZalzn9S1MaxquzUIKqkQ\nJlXLP/wBsSGscS/Ifh2zDfLNg0lOhVJPVoPpW2RiLntwtWt/f8kmtSoEpTu6\nwRhKWNv4Sy6/t5HPwg28pMvh+gSaX4+KkIv2RCrfx0yPefxSEbmU+ID7mWYC\nULPXipA29hg9xIvlH23ph1ZxeiM9rqP4FKKLlYCnsrDiSh99fT8KDtPRivH8\nskhUdc+xM2UX/gpd/tea0vuR4OTccoppb9DY+9TLWMV1T49+Fx25BLo9S+U9\n6aao\r\n=KlBz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCG8QVEqxpERTL9M+euWUqcXYYqcKgXOwWse3cXwUfl+AIhAL1lLcrLuDox0BHaLlSENc+691Gg8KdwPT/4Xk1VFmun"}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.23_1623143982145_0.23725242127318125"},"_hasShrinkwrap":false},"8.0.0-alpha.24":{"name":"typesaurus","version":"8.0.0-alpha.24","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/rules-unit-testing":"^1.2.10","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8","firebase-admin":"9.4.2","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","lazyfire":"^0.2.0","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"4.4.0-beta","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\nAdditionally, when using with ESM-enabled bundler (like webpack), you'll need to install `lazyfire` that enables asynchronous importing of Firebase modules in the web environment:\n\n```sh\nnpm install lazyfire --save\n# Or using Yarn:\nyarn add lazyfire\n```\n\n[Read more about Lazy Fire](https://github.com/kossnocorp/lazyfire).\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler (like webpack), you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code.\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, you'll need to initialize Firebase.\n\n#### Web environment\n\nIn the web environment when using ESM-enabled bundler (like webpack), use [Lazy Fire](https://github.com/kossnocorp/lazyfire) to configure the Firebase application:\n\n```ts\nimport { configureApp } from 'lazyfire'\n\nconfigureApp({\n  // Firebase app configuration\n})\n```\n\n#### Legacy web environment\n\nIn the web environment with ESM-disabled ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Firebase app configuration\n})\n```\n\n#### Node.js environment\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the given document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/rules-unit-testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.24","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-SFiTjk8GqBs6LyCQp4tgUESr8NnYHqkJ8KzdZDOTxAyMmNkDeyu2sRhq347UGzuDkAYWftcxWMV/CzsUHo9J8Q==","shasum":"a09e08369e37a2407efb0c5568793d755e9005ff","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.24.tgz","fileCount":264,"unpackedSize":439814,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9h+BCRA9TVsSAnZWagAAkk0P/iTU8d7lOqDBPjScPQJP\nruRoOJN7cHkbHctRciuZr6qRr+FJLchiYVzxYVKmBkJOPlaljoKPkB6LZB0a\ng7ka3M4UmKs6dH5QPzTtJuY5UfoO53NnflGM+GlGnnqZGP46XO+ylECHfLCS\ntf78ZBnJaQM5DIhNr7IVhMY5hOIr/H9yE+VrzIaXcxyQ1fx6bpa1m9ZEH2iU\nbOj8thvE8S9eNL82e2Q9tr0d6vzToOhYM7y07aSquUZQlElpA9Oakz1TvhHV\nk8fOjO2tAtzgppTSbDFLebMfhB524AK9jgd5h6bJ7ECDtUdS+Ywq17qI7DUX\nDLzK8jymNwGJ2zM7aLNVQBIpXo+wGle2pM9XGa6MY746+L07cU8mH2STPXD2\n7HeNYhhVqJjdqSIzn9GfizSovPkwxw0/f6skSDGoTm2sBeCidjDPq6BB8VR8\nBZcTB4V6SxhKybYZv2k2IWKA4cDmds7VoPj0r7CRCOKc5WY/Yb1O2VwPkVBq\nDT/+XtQZ8OhAmpCeWCUKdk2d3Vk151O+ubyFMWmo1Avokj0aii0/wKyQ6IBt\nJ05+mXJUFCYCk8Q0wchooQfTCsbO7ZZpgkw/sW8LiX0Np8hzP2WfqPvWwvrt\na654kwQ3kaz6LG8UssF9DLhTtezh3mREuUr4WmEEarDpFow42vkRb4C9uwl0\nXlkE\r\n=1pz2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHXq+VmJNzZ1k9fgyxKxHYNTcRriHZrojm/tXipYY0/UAiEArz9pMaxfYD7s6NM2nNeEIboBAi1kWtP6cD9WZs+VP34="}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.24_1626742656820_0.6414046373526279"},"_hasShrinkwrap":false},"8.0.0-alpha.25":{"name":"typesaurus","version":"8.0.0-alpha.25","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/rules-unit-testing":"^1.2.10","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8","firebase-admin":"9.4.2","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","lazyfire":"^0.2.0","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"4.4.0-beta","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\nAdditionally, when using with ESM-enabled bundler (like webpack), you'll need to install `lazyfire` that enables asynchronous importing of Firebase modules in the web environment:\n\n```sh\nnpm install lazyfire --save\n# Or using Yarn:\nyarn add lazyfire\n```\n\n[Read more about Lazy Fire](https://github.com/kossnocorp/lazyfire).\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler (like webpack), you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code.\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, you'll need to initialize Firebase.\n\n#### Web environment\n\nIn the web environment when using ESM-enabled bundler (like webpack), use [Lazy Fire](https://github.com/kossnocorp/lazyfire) to configure the Firebase application:\n\n```ts\nimport { configureApp } from 'lazyfire'\n\nconfigureApp({\n  // Firebase app configuration\n})\n```\n\n#### Legacy web environment\n\nIn the web environment with ESM-disabled ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Firebase app configuration\n})\n```\n\n#### Node.js environment\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the given document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/rules-unit-testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.25","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-7dyC+ZKLk+2r5hEF+HXM0wjoWf3NO1lSkWLLVQPuBE4TElCk1QJt9VhYPFnZWhZYs+KaYSGETeDhGcIr7QA+VQ==","shasum":"11a3d321f30a8628798bee607c7e928e911c902c","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.25.tgz","fileCount":264,"unpackedSize":445633,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg94ofCRA9TVsSAnZWagAAvqIQAJMs6lxWScdndZpTDeq1\nt4ou1cPannkmoMfnNA1/jWU9PDLPTvLiuZdWh5pfi9zqalSaIZyeAl6XmWuW\ntQsJriZMX7+sA/BlfMBdD4bspbRWpvokRQ4vrG1brnoqjoFDjSMjOmuR8uv8\nHuGBoGJ/ARf00CUyM7S7ncNjV4NWLr8/FnjPB02pgMtJvbvJ+Mtq20rnea6b\nu1hbAbE7Ag8d6/BsXAIoR2/654ylKce2jBSZGG/D7kxjymoYZqa4x98Fj9M3\nN6Szn9WNsJ9V2oJqnWuVqQ/J14mI1A8GGr9R7Om6ZHG8zz+xnBSSbS1+WUP9\n5f+m9O47Ve/c0J5ZP1CUoPO6WjbunPRI7FY6RxgEI4Vc0k0MpmYMDPKDYBYO\ntKK9nGehuqQOr8LXZ69II8sKeBztXJYlKMbQGo/HEkbRlgqVb2yLccWrlfeN\n05JcBr3G6OIxOfgBjxzbHxlNh24ctNdktRjQ/WvB168hCz/lg0bOx668eKr3\nthZ/s3YrKzRZ6Y3Yvm0pWM77wgfLbCBWB1CoObmofvXyRampsb4IPu9fTNaw\n/mDInOoNh0wMEt4s2cMM3DLgmQrYIqU7/Q3tuphbv9GRpi4PBjjup4WsT6OJ\n49+wJg5oAA2yfIoI0lJSK3R8UD43AgTHIZNmTykmOIPi9U0d7jjF1imPItlj\nq9tF\r\n=KQgP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9w9oQMpKoO5hhDlPlh6gGEFhTh+EtqNBG5zf/uOyh3QIhANwb3KS5Nr/6DDyGW6CJk8vMm2ltK310u+ZTBpdPUN41"}]},"_npmUser":{"name":"kossnocorp","email":"kossnocorp@gmail.com"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"kossnocorp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.25_1626835487690_0.8981573355753758"},"_hasShrinkwrap":false},"8.0.0-alpha.26":{"name":"typesaurus","version":"8.0.0-alpha.26","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/rules-unit-testing":"^1.2.10","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8","firebase-admin":"9.4.2","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","lazyfire":"^0.2.0","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"4.4.0-beta","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\nAdditionally, when using with ESM-enabled bundler (like webpack), you'll need to install `lazyfire` that enables asynchronous importing of Firebase modules in the web environment:\n\n```sh\nnpm install lazyfire --save\n# Or using Yarn:\nyarn add lazyfire\n```\n\n[Read more about Lazy Fire](https://github.com/kossnocorp/lazyfire).\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler (like webpack), you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code.\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, you'll need to initialize Firebase.\n\n#### Web environment\n\nIn the web environment when using ESM-enabled bundler (like webpack), use [Lazy Fire](https://github.com/kossnocorp/lazyfire) to configure the Firebase application:\n\n```ts\nimport { configureApp } from 'lazyfire'\n\nconfigureApp({\n  // Firebase app configuration\n})\n```\n\n#### Legacy web environment\n\nIn the web environment with ESM-disabled ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Firebase app configuration\n})\n```\n\n#### Node.js environment\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the given document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/rules-unit-testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.26","_nodeVersion":"14.15.4","_npmVersion":"6.14.15","dist":{"integrity":"sha512-0BWVZCRsjt351chp1qJeJeJ+4k3AWS6dTj9538h47EUDDxDYye5P8hEnWv79vnVTDPCu/M/f5eOpBRxR+foniA==","shasum":"02b8a7ed5c7a5114073128ff7ea8424c2d5b4aca","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.26.tgz","fileCount":264,"unpackedSize":447365,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiFFrtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqUYw//fWXOAXjoRfNRFtaMNh2E/eKtOVeksVc8pyuAiE7ySGX+8Flo\r\nCGlZOiZGNoPsn06jG+MsgroGI3GsKe34ny9S2zmYHSix6UFXB1n680wzeAhF\r\nmYIJndlE4HAkhEUjojF/84KkS0kPycacV46+55y8WsjU5Hj4BnX5sNERRMtc\r\n2YHvWhBbG7TQPq1ieEpwdIVyLwIech/1pxhVZ1fq3BxvmUAVHgOk66CtrB0R\r\nVen26k4NvYM2JwAw0Yb2DKH2F3hfdM+Bel4LnpsF0PjtwiuEUjfrgAbubzpG\r\nTH6ePsrj5Z7NqsCN4u7nOvoFU0VrU/fqed2R4YhRKJQ29jAL1Wl2ptnBrQza\r\nzhJ58a/lITMcOW/zwXIdynt63YZlbYWf1HTtBZrsnd0vZktDaWj5Tg5gZ9yU\r\nm6h6JNRQCrBnOvtgt0MYDff/OeERz38secVrl5NljWSqXCwKC3/JEL9rSwQA\r\n7lT2xMI6gteQ1Aa0LYcLR18JF+zvPoAqxu7Rd9mRF/5l1IANDTdzCioJtsc3\r\ncszpMpVR/O4QPqc+Zi+aAeIYudA12zLNhXmiwpGqrPeWFitlF06TCbFkOw+9\r\np3tpYgCsC5gztKEn3G9kh3W+YX7VGaiUGyLT9H+Sw7rUHWeqGE/pZpyTuCw1\r\nyyJAe7WK92p4xmcGiXcnhLZTr9Oan27AEFQ=\r\n=1+n+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHZL347mCc6zh3rB4BeEXl2b0jvKpfXM3nvkrcdLEM4wIgDyP8vh2FLtvSLGQjJZVgrijSfxmji1JTIu7pSTfzroY="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.26_1645501165201_0.22475751905838348"},"_hasShrinkwrap":false},"8.0.0-alpha.27":{"name":"typesaurus","version":"8.0.0-alpha.27","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/rules-unit-testing":"^1.2.10","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8","firebase-admin":"9.4.2","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","lazyfire":"^0.2.0","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"4.4.0-beta","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\nAdditionally, when using with ESM-enabled bundler (like webpack), you'll need to install `lazyfire` that enables asynchronous importing of Firebase modules in the web environment:\n\n```sh\nnpm install lazyfire --save\n# Or using Yarn:\nyarn add lazyfire\n```\n\n[Read more about Lazy Fire](https://github.com/kossnocorp/lazyfire).\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler (like webpack), you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code.\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, you'll need to initialize Firebase.\n\n#### Web environment\n\nIn the web environment when using ESM-enabled bundler (like webpack), use [Lazy Fire](https://github.com/kossnocorp/lazyfire) to configure the Firebase application:\n\n```ts\nimport { configureApp } from 'lazyfire'\n\nconfigureApp({\n  // Firebase app configuration\n})\n```\n\n#### Legacy web environment\n\nIn the web environment with ESM-disabled ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Firebase app configuration\n})\n```\n\n#### Node.js environment\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the given document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/rules-unit-testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.27","_nodeVersion":"14.15.4","_npmVersion":"6.14.15","dist":{"integrity":"sha512-lFVDAkLfgmHFxceG+0VzOKE+iZ55OkUSV4kau2+Si+6hy55Zf2aAhwwTCJAN/D5SvdR6xYJdmlKfzAyw4qE/yA==","shasum":"0c66fc24f161c0e234744a9705ec05031e7f9dd9","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.27.tgz","fileCount":264,"unpackedSize":446853,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiFFxdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmowJRAAmvQJLrPzVRmOTvU5ji8Imck+lcKxcQATMT/VZT8d9UV2GqGX\r\nKZObV7U8zAugGpQTz78ZuimDP+thAz7ZPSoRJpSydpBeVC465ppvDKdMK8EG\r\nYncW5okNrURyE2Q4KAyC4BOlMKhtV9fPci2AfchpyZPUPxBtBu9CN4QZwKPE\r\ndu0gxK4vHjhVmL49JQ0HTiPG4Wp43hhgs1aeOyR48K8B854QCk4W1PicQiqx\r\nzxCuIxT2IEYUYiMFO9eUu6YBHEzF47CnkhStoW+lv5ZDAJyQb0S5+EqVgYnU\r\nivIg7NEba4AdQdfOQBmM3emZSrgs8TWlKUPOTsq7BTIvEqcRTgMmvMOBRQ42\r\nFV+ayL/bGUHP0hyHsAyqsg+tQITLcum/IMf4Fp22dQu/C6ejoG0NizCniJJn\r\nNWU49P3jF+ZIlF63ULXjqrMMw1Ik+JucrGUsfuELaWaIpNgKl3VYO7+9CCXx\r\nuW2wC1OT5bxGtCcgzrkxUyrcPqXfRlPwewlwHwUMnlPGqst965CHUcqbr7KC\r\nyJ9MJog5dPN6yoAy891is7CIm1nn0ynp1KakZk7eNhzLppuplGOdlme6IuQh\r\nTuiSWPFHNmhholjkkPznq/WQgju7+vGi2H1thZmG1KeLZ3W74ZfAeB0dT9bR\r\n07Ild3CigZdlbwECbkrrJ7veAgj7lLvJFfg=\r\n=tN8S\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICImSBgmXDzvuKqDi7A2etjHYH+W8SeAZZMnVdA7amKPAiEAydMzx+UrK8n6KkCRsrtjSAYq/2iBTa+4410MY8pBRbg="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.27_1645501533213_0.7633853106144"},"_hasShrinkwrap":false},"8.0.0-alpha.28":{"name":"typesaurus","version":"8.0.0-alpha.28","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/rules-unit-testing":"^1.2.10","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8","firebase-admin":"9.4.2","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","lazyfire":"^0.2.0","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"4.4.0-beta","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\nAdditionally, when using with ESM-enabled bundler (like webpack), you'll need to install `lazyfire` that enables asynchronous importing of Firebase modules in the web environment:\n\n```sh\nnpm install lazyfire --save\n# Or using Yarn:\nyarn add lazyfire\n```\n\n[Read more about Lazy Fire](https://github.com/kossnocorp/lazyfire).\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler (like webpack), you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code.\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, you'll need to initialize Firebase.\n\n#### Web environment\n\nIn the web environment when using ESM-enabled bundler (like webpack), use [Lazy Fire](https://github.com/kossnocorp/lazyfire) to configure the Firebase application:\n\n```ts\nimport { configureApp } from 'lazyfire'\n\nconfigureApp({\n  // Firebase app configuration\n})\n```\n\n#### Legacy web environment\n\nIn the web environment with ESM-disabled ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Firebase app configuration\n})\n```\n\n#### Node.js environment\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the given document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/rules-unit-testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.28","_nodeVersion":"14.15.4","_npmVersion":"6.14.15","dist":{"integrity":"sha512-OBvcuqUtv8n67TY5vi360cmuAZ6vOKwbDmAw/CYT8bmdCzQLPJXQf37bJHt6FHvMVoSE6Bn9npE+X3lCC87/mQ==","shasum":"7c42bd8839a6341ce76daf96067807e0ac6fa230","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.28.tgz","fileCount":264,"unpackedSize":450687,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiFcRsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmph8Q//d2+LCfUPCvDbNvKr0qb/eqhNDm//YijFXnPD0SQUnAPaX5VL\r\nQVaMDKD7F6OUp5+g/pxQPt9U+3nA0hL3pkoOO3NQnhI9RuaJ3AHPyXrfD7c1\r\nNE/YSTtgcK8lfG6hBZl3Hh4bpIDf+q2xEQXEjdDl4WJP1ZCg67YuQOFQ0JXr\r\n20vZ89Yx2wMdWq/AReuMt5h9eZ/YZMRbbIJBuBpupi8QRuqDIIucXtWCX2VO\r\nCK0sS6N77fTftjtz2lDDWsD8VPeQ470okQGyyl1aP3w/LqdlcVh3xiGa2rd+\r\nKn5/LmLIlLWgdrEPZHVmlbsNiHgr1MJlsFgaqrRHGsg62OqnxI2AWQUeGm67\r\nvr/akx/u4ufbTOP+akKW39vWxetX8tPQAsuEy9O5NkG7l7LMdx9aHyEEJeQg\r\n5NiOqXc1lgxUfDtUf6cIp45srlkHNRsQz1b6rZIdsIM68xDz0rrWER06mxGU\r\n8ceudTw0FMoaAG+qgvJ6GlpVKdrQnWEIIZqQ88dRhL6XqRb5Y4CQDBwCx4Za\r\n/Ek7FGKupzCCihsqHOD854Jkpb/SoLvecPSfYhn4eUDZ0J+4+mifnDY9DEDx\r\nxM3CbD9epf1lU+XciCMzHFQF1kfKY/GEPAmKU5pSb3DTutycqagrZkQeARo1\r\nJPWukYE3p+d34UTjOzLUT72qkbjGnsN7BwM=\r\n=s3el\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIADeXlNcS2cqiZXYkg0p8D9frZtI2HgsgvqFMogIowGPAiAHkBlcCtQQD2+TUjdhqm5qpErC0d3gxICU8eD8JyTMZQ=="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.28_1645593708684_0.9891790917037147"},"_hasShrinkwrap":false},"8.0.0-alpha.29":{"name":"typesaurus","version":"8.0.0-alpha.29","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/rules-unit-testing":"^1.2.10","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8","firebase-admin":"9.4.2","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","lazyfire":"^0.2.0","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"4.4.0-beta","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\nAdditionally, when using with ESM-enabled bundler (like webpack), you'll need to install `lazyfire` that enables asynchronous importing of Firebase modules in the web environment:\n\n```sh\nnpm install lazyfire --save\n# Or using Yarn:\nyarn add lazyfire\n```\n\n[Read more about Lazy Fire](https://github.com/kossnocorp/lazyfire).\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler (like webpack), you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code.\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, you'll need to initialize Firebase.\n\n#### Web environment\n\nIn the web environment when using ESM-enabled bundler (like webpack), use [Lazy Fire](https://github.com/kossnocorp/lazyfire) to configure the Firebase application:\n\n```ts\nimport { configureApp } from 'lazyfire'\n\nconfigureApp({\n  // Firebase app configuration\n})\n```\n\n#### Legacy web environment\n\nIn the web environment with ESM-disabled ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Firebase app configuration\n})\n```\n\n#### Node.js environment\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the given document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/rules-unit-testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.29","_nodeVersion":"14.15.4","_npmVersion":"6.14.15","dist":{"integrity":"sha512-4j6+I6Cs1vo79rv1WY8OV9HPreRdk/qSkGNTUouaHkBPk+XLxJGU9hL8Yv5Ds1s3xAYkjMc1eew81mmUjq3Dlg==","shasum":"a2d37d0aa79354d165fd88a0383bc52788b29651","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.29.tgz","fileCount":264,"unpackedSize":452400,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiFdYFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQxhAAiMBsxtH3xxjAUhFdwh2jSZVfm4S0BPt/mP4Gh2kP5HJFkjIS\r\nLlaq1+gkuF4NQ8B9UBQKgEi/GRTTekpww+vbnC2j0cDBPa7M0+cKuN5GJVAb\r\n7nbACU76SxCb4w5QE87ANwzi0/YscuAp8VdTeQWDlqlQ+3yFuhnOBzoc3GRI\r\nCVhha1MZOV4kt5g0/aWnoKSw1FpVue7Mk1lnXXRPFga4XwUTHVSVtjerpo1F\r\nOdDgzrcfzr7mLB225IhXc617V2GNrvFpvvACnFSZ/8lqbXUJLP1BHlAVvSsP\r\n4LAFBIEwLc1VvVn4zftoJjz9Kc3wY7TXnHPC0o2AOiDQCJLf59+3wcGmkT2B\r\nZFLtBGjebAFDcj4ojs1K2tHjEI/m3rIb8aAvXjdKwEJqlrTAa3WT4o8okTQb\r\nGC4duJNfWI7JznGTelCRsxX3qeUd8nW/C07Wq0RlwS0J4aF0gQRiYk70mEbn\r\n2yoFgsZrIYDPT3JkjabMA7TX4jXfsrQ9SGi2ycTmIlgOMmhW5N7ixOmoM6Rx\r\ntikFLdR/302d9++Ez8alnfDwDIHV8bbzstFC5i/TFqlRuwFpr86Q/VsCukxz\r\neexEVngqR8F2Q9RdyvkAKUtRopJhrNUFQL5sF+9IQilCdG6SQVUnl18xRNkM\r\nXGH5QxVORM5NMMMwJ6qdez8DDsTZPFQu1GU=\r\n=o51m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDEdXFplE/NeV9Zhbs5hhKpiSBYnhn/Upr0BlpRPYzJXAiEAuabUKFMZi/n4mvEYlIyylOjChwRnSW8FddJA9rMhYpI="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.29_1645598213597_0.5499565479508497"},"_hasShrinkwrap":false},"8.0.0-alpha.30":{"name":"typesaurus","version":"8.0.0-alpha.30","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/rules-unit-testing":"^1.2.10","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8","firebase-admin":"9.4.2","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","lazyfire":"^0.2.0","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"4.4.0-beta","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\nAdditionally, when using with ESM-enabled bundler (like webpack), you'll need to install `lazyfire` that enables asynchronous importing of Firebase modules in the web environment:\n\n```sh\nnpm install lazyfire --save\n# Or using Yarn:\nyarn add lazyfire\n```\n\n[Read more about Lazy Fire](https://github.com/kossnocorp/lazyfire).\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler (like webpack), you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code.\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, you'll need to initialize Firebase.\n\n#### Web environment\n\nIn the web environment when using ESM-enabled bundler (like webpack), use [Lazy Fire](https://github.com/kossnocorp/lazyfire) to configure the Firebase application:\n\n```ts\nimport { configureApp } from 'lazyfire'\n\nconfigureApp({\n  // Firebase app configuration\n})\n```\n\n#### Legacy web environment\n\nIn the web environment with ESM-disabled ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Firebase app configuration\n})\n```\n\n#### Node.js environment\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the given document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/rules-unit-testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.30","_nodeVersion":"14.15.4","_npmVersion":"6.14.15","dist":{"integrity":"sha512-x+jMc5k4Me0RfMZ4O5uJNFC2+/pQmoNwz7HUDTQD3QmJU4dIUvUcziJTE+rL/5PFSmN31+zeIt8W6IiqF/yn4A==","shasum":"1c4631538f669a89be6bdf85052ccad0f7b7d3cc","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.30.tgz","fileCount":264,"unpackedSize":452510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiHOvkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqwOw//W0UPuLHNM4HOtuWzTj8sRhqNCOMagwAr1y/OrTgxhhEW74fK\r\nHdeDJSkAfOfKsX+wz+oYxS0rkQNG1eOoONQusGztP92zELBWiHdg9sRWEjK0\r\nNgsewwTwzXj70nXY54LBzKA3rFdP271OxOdAxngtMi1ySkpnBXZHEsSvDyfs\r\n/ZbBWj/X/g5sNzDDS/UsIoN5S01gUmrMNztQSykqENv0/Ljsa2HgaopkBE3+\r\ndQ4+hnN2ZQRAfxoBwvcVdEJU87yfcJugGO3aiyT1tUYJ3RkYlsWGrSFeH3bY\r\nR0FmRVI5ZLJZbKqpKaNiWJM4Fzg473FIM2QYgB08GunbnrQM8kYiWVtdXHFg\r\nYBDMttf10blxE1YVDJkhpdGYOxm8doxgZHlgUMNQRfgNCFCtntV24TpwiGBI\r\ngzuTJNM3cwy0bLyeXNLHPIDK438IiA6hJ9ndgDQEUnsleXB9aqNrhDafwV5J\r\nzV8ccjbmrAYH4SF1/D6GEW348n7VHPUTlRjhDewU7AiausAM60nBvcKTpU+k\r\nJRotOgDdVkRoTTl9keIqh1sgJQK5+VRzbwKSxh0Y+FZIa0m48vdtQSDczbp5\r\nHg3naECRSfQ8pqpwTJre82XwbtwIF8DFsfR0gKJOTm4TV90/h5jYahvjAOzs\r\nbHoQ4J+hc7Wi8rB8WvdOi5z3ZwFi2O9hWFw=\r\n=Lorg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDONPCNx1ZiyHP4TMEQXJQOJqrmz4Vyk7SGPbPYdlpbqAIhAMKWZWdBzgyt5wlzv2J3mXr0+cBuWQLyUEDyO6UvwGq/"}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.30_1646062564395_0.07986665136014404"},"_hasShrinkwrap":false},"8.0.0-alpha.31":{"name":"typesaurus","version":"8.0.0-alpha.31","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/rules-unit-testing":"^1.2.10","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8","firebase-admin":"9.4.2","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","lazyfire":"^0.2.0","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"4.4.0-beta","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\nAdditionally, when using with ESM-enabled bundler (like webpack), you'll need to install `lazyfire` that enables asynchronous importing of Firebase modules in the web environment:\n\n```sh\nnpm install lazyfire --save\n# Or using Yarn:\nyarn add lazyfire\n```\n\n[Read more about Lazy Fire](https://github.com/kossnocorp/lazyfire).\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler (like webpack), you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code.\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, you'll need to initialize Firebase.\n\n#### Web environment\n\nIn the web environment when using ESM-enabled bundler (like webpack), use [Lazy Fire](https://github.com/kossnocorp/lazyfire) to configure the Firebase application:\n\n```ts\nimport { configureApp } from 'lazyfire'\n\nconfigureApp({\n  // Firebase app configuration\n})\n```\n\n#### Legacy web environment\n\nIn the web environment with ESM-disabled ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Firebase app configuration\n})\n```\n\n#### Node.js environment\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the given document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/rules-unit-testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.31","_nodeVersion":"14.15.4","_npmVersion":"6.14.15","dist":{"integrity":"sha512-TgPbU/n7rRrRfAxFQML0b77R8Lx/Zr8QTNfGpJ+zd09lr/iMki3U+SwoFoqAGKimxHnGfTPn18WImCAdMW7J2w==","shasum":"78851ba0fb9cc512c58baa9687abdc162131ffe6","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.31.tgz","fileCount":264,"unpackedSize":453053,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDavI8qk8ypEltUj+6YFWuUJ7iBMgZMFv3bD4ezm4mYSQIgTp1lYHh5P3p7KRlV1wHxE2322t7VClLQXc/GRZsDy40="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYPGhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq1cQ/+PxcfPD55Oc33QrXity/F1aEOQLmKRhIMuhNzI89UjCv+Dzky\r\nlaRT7FwhEEWFGa1DFEQmDkVlJhaKOqOFxQIbSQt6Zr/l7fvvLKAayxmd1Uaw\r\n1b2mBMY9sX6atIHHKMJ0SIJu6pzMeXf7c3MuYGEnrnst6vxcBT+jyKyXI+U/\r\nELOA9cN0Zsr4l9HniUWZXeUgC4/ubflMMmkuj/piuL10Q6yKsEcXDryco1N+\r\nORBwhqGGKB007Qm3kX83sOpiPOT+m+fEKiHVWWqbZtPWudpU2x4xbjdKfrpv\r\nY/JeIIg0EAYl2WhZZ2ocFn4KPjU2/s86XmIN3SrDyCYal1hQgYWN+zusiylg\r\nkz+l2Pq5tQbN5amjeWLoYSkaA2Byo13MjVxrzzmUt3gBOyswN4g5G5i0e6Or\r\nEZr0WfNjxK88lR2WnYvwG/unZy+94Pml3jBw0CHLTENE/U3e6FAQ5DHF0DUS\r\nFQRXF+p5Dh8s6mQ1B0TCQvapu8jS0EVGtHlnhMi+tTmAW8d63W0UvfxYWRFh\r\nIM9cAZuzYVe86uw1bBHaNdklq/1vgxjHk6d4qBgs0Y8+gO0xUhDTWivythOb\r\nKPU8nUVGbctGm2LHZUP9wLBD2IpAUq/JyzLkCmvVB0P5hEAMOy+PcpnovFyJ\r\nKXpBeKYKmv3/L6cwlLSd7vMAj80fDFYL2O4=\r\n=oY6f\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.31_1650520481030_0.042320439448870095"},"_hasShrinkwrap":false},"8.0.0-alpha.32":{"name":"typesaurus","version":"8.0.0-alpha.32","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/rules-unit-testing":"^1.2.10","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8","firebase-admin":"9.4.2","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","lazyfire":"^0.2.0","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"^4.7.4","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\nAdditionally, when using with ESM-enabled bundler (like webpack), you'll need to install `lazyfire` that enables asynchronous importing of Firebase modules in the web environment:\n\n```sh\nnpm install lazyfire --save\n# Or using Yarn:\nyarn add lazyfire\n```\n\n[Read more about Lazy Fire](https://github.com/kossnocorp/lazyfire).\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler (like webpack), you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code.\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, you'll need to initialize Firebase.\n\n#### Web environment\n\nIn the web environment when using ESM-enabled bundler (like webpack), use [Lazy Fire](https://github.com/kossnocorp/lazyfire) to configure the Firebase application:\n\n```ts\nimport { configureApp } from 'lazyfire'\n\nconfigureApp({\n  // Firebase app configuration\n})\n```\n\n#### Legacy web environment\n\nIn the web environment with ESM-disabled ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Firebase app configuration\n})\n```\n\n#### Node.js environment\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the given document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/rules-unit-testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.32","_nodeVersion":"14.15.4","_npmVersion":"6.14.15","dist":{"integrity":"sha512-a5QMHyP6hHC+0mIdDx2BEgf+FonYKNSX4q4m5EazQyPRmlhF3gpteVu3ca+GlKXBfkZUVfV54rzUH5zVeQO6qg==","shasum":"ee2e98d7f0163ec812da3ef2fed868d001b6abe2","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.32.tgz","fileCount":264,"unpackedSize":456970,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEb0z0bS4GCB4S6n84da1xfEK5MUUzqZyIbAkdmiRzIYAiEA8k1bXukS1kL0nEka4JqFv+yNHHiLruxvvoIcNaSk0cA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1V43ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoW3w//bmTrmolhN5gkI3nZxElpM8FKnsAy5v3qUfHKNtymMWpZZmjx\r\nWmeRsBN58hhSHXj0mSDfkRbhJ4rWWir8UppO3+J2DE51P5lXd+9Amq7QnX/7\r\nbQZHOhIrppwnJFhP5uWPAXMQnj9sVN6U2u8aq3xAFPlmOFXGIngq85UKNgJ5\r\nVNkBxpUhmmKgTu5aVcO4/1ZVHy956r0BFGzalAfQBNBH6KTG7NCsTryN5KpU\r\nAvARkkBhTlDbiLb/QNrZwNRxo8qeCNNMCsmyGN0vexQBT4IQUSqhH81yXXYr\r\nETwfevhOnnO16VHWPVh+DvCo4Jzj1WZ178BeB/ZICjBuWhlqNsNAhCcdPzrV\r\nPlKl5T9Dqs1tQn7lwYsA8jLgiqsyl/Nv3PvkdpX2SM2V444Qdy5rI4Jcx/Vs\r\nSDCpM18l2znG4FEXCw547CNvl/aWSZepQHTYhk14kaMKJXZaynWnjeBOrOeo\r\nHv+xs5PB8YmFbDovEDRQyrsg8/ACBpoWLcCUhnkhe9jskn8bQdO+B0D1PI05\r\niK3UvVeyNR7n04xqg9hjfyD9XNqj3PNzsOxhjM7cj+6FrVKWE+VuYr1+AGaf\r\nfWAyA5tm/H6kF9koQljjmsKsV0rmUyZ4y8fOgb4W1XdkL6ocvE+DO3xEwbUy\r\nHErVBKknGm8DRPT3neN/bTlB2AdJm6bTL/Y=\r\n=JFod\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.32_1658150455478_0.657450808626546"},"_hasShrinkwrap":false},"10.0.0-alpha.1":{"name":"typesaurus","version":"10.0.0-alpha.1","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@firebase/rules-unit-testing":"^2.0.2","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.16.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^10.2.0","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","mocha":"^6.2.0","nanoid":"^3.3.4","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.0-beta","webpack":"4"},"gitHead":"454680b3982041d2a20419bf6fb1f4be60fadccd","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.1","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-o5y6yd3zSe3oid83JzU1Bnnj6bZvs/WPtMF47qcxnLCtpav8doVyml5SI3TXb0wWO8Z1ebmJlC6CJkNSiYR0pA==","shasum":"8b9dccf243a72cab8b8ebf3e59baae58b1f3a0a8","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.1.tgz","fileCount":31,"unpackedSize":174435,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH/t93FtgMv7u3p2mqt37Zr+nVYGgRE99UZe9uCCr0A5AiA0Mtt25bNOQPAAzMe4YG9932DlvCe0BZk22qmWPm1KBw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjAdyqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoNzhAAorllvvi03BS+HIA/tpgQun3x8St/s9edF0d8w6cG3i0yE2JW\r\nGmYvo/y6U8W9YR3YziS5ZgXGTLbCVukOrP5lgWONogoEIAxQ6wt7cGYurwkA\r\n9fwU5s05X9OLfw4Y6lssHBqDel2sABO2XWVxETUGLc+Y9Kj4YOFVCmfHhJZo\r\nFSQcaNuZuiGv/t7fLsteFw9qqptncUxKFdDlIiTNYXED3IKA2cWN0Fzzt4xb\r\nTNG59YG/b4Fv2DHa5vXPYeKTHyUbl5dbkKBG5KrY7W4grrJCI259zhO2cn+2\r\newpqb6TuZOdAesAO3rIVKqSxzmNiGnEv2oosb/6bS9wL4965mO7oi4lmviQa\r\nYer1yuplYZOBQxLWWL4NgXKE0PKpPh7rEXxY/oYeZ372OvIhq+7swi3Ms8ux\r\nZ7yU+pM22qEJ+VwrUTduF3Lbazqpny27EC6nL5mQwiOF+HvjayDqTF6V+qzL\r\ns2oy7CbCI3U5TwR1LgY7Qlcti6l9+iplWtIZbQQB1svWSi4EFrzPp3HDjPfw\r\n9bmHJt3pGJ9EoPMjcETUoNrso7DFjLyRa7i/+g78dUS/KSxWsJr0BYvvUYu+\r\nz6bRed9TVJDiKbYE3/cKdsRIXxvDuhN/yijjXm/AfSFtY+HX+ULSmJnCJx0C\r\njPRdJrRHyLUDm6LlYEauXnX7IlMMN/L10tM=\r\n=ofG+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.1_1661066410285_0.8627699819825008"},"_hasShrinkwrap":false},"10.0.0-alpha.2":{"name":"typesaurus","version":"10.0.0-alpha.2","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@firebase/rules-unit-testing":"^2.0.2","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.16.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^10.2.0","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","mocha":"^6.2.0","nanoid":"^3.3.4","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.0-beta","webpack":"4"},"gitHead":"454680b3982041d2a20419bf6fb1f4be60fadccd","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.2","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-f1XeO/3AzV9KYhEoN0qtR4/04jq0dgWLbPkKbLnBjcpX6FJ8j10kTV7GfqyqixA97dXvHskhHGLtsG74T+14Ng==","shasum":"d4e5371a0be749c6ea76f9da17a3f6b96e7f377e","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.2.tgz","fileCount":31,"unpackedSize":174530,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIANMx6lmY6QEML9fbzXJwOUn28Fu24ng59oq/ANRzcB2AiAMj7AIxKnndwLGgjLStPT6gpMvrOMN7J/j0vW0JJKifw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjAuDPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrNxg/+Mxu2eeLs9HdkF7r+KbExAtN2m4FEnSAoZYDYmcUdbUlSsx8w\r\nnw13jdl/qC75BsEO/xDJphq1U5PGRaj8CwYq3hnHJbLf5qe+P1IFwv51p+Ct\r\nbxsCs0+lP59oqoDbp3v7uW7/F2g1Ty1fZkpMzX/7QCsUEi2ZFHNPhRMRCkqP\r\nY5N5rArcbwyxQwePVWVpXusvYpO3uwzj/zZtriJnM+lnVP4F2jJ4/3oEye+m\r\nYzi6urYlossyM1u3EHu5bjkX9aUpjomT6KY1Sc8oE37ADl8Qxan3BLrOJFZW\r\nA3OjeKQTA2mUdb115ps5K6hXSsyQdTDbpcKVjbLrhfz3IgDgWYdre1JjNUzl\r\nPtvHSe8EaskDs6m9M+GSQgE+UoNjLisu7XIDmnFqjyyswXMn2UQryaXh8o+Y\r\nxhmNxFvoWztyRb8Qcxl5okI53K9K4iWEwZApTOjBFaCW430jfBp6+YAp3Cf6\r\nVaO9PnBfeGLh1MgYFVx2DSO0TF0i/YGVc0lCgZmKLESu3bw2j7mKWZ1SwqNy\r\n+6lI1Z4vHly7oSj0juPqQVsoEw9azM0wef9JNjLnq0toF09Anbbp/Al5G2Ut\r\ngFGaQL+vaxDZ4KtoVfm1rgHX9u0FkHTlq0Bkt3SPDfedfIlVDL7aE1woE0o5\r\nIX3vOLGBlRL2Z1jdKZ/OhhgDLdoTqDAVD1s=\r\n=x7QY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.2_1661133006922_0.3651173318488623"},"_hasShrinkwrap":false},"10.0.0-alpha.3":{"name":"typesaurus","version":"10.0.0-alpha.3","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","nanoid":"^3.3.4","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.0-beta","webpack":"^5.74.0"},"gitHead":"3287a79ae5df52b8301d05adcd95fbb12791192d","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.3","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-qfQpNB5wVwbrEaug7RluoXPo2TKt+I8EvsbHPluqjMyKx2cAmfVIb8Yhdx3Ktd07IPKi1hnlOgFsSKhIWAFcTA==","shasum":"ccc62d3829ffd5c1adb44420cb03829490aa3f60","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.3.tgz","fileCount":31,"unpackedSize":177073,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2YRH177gpQAQVF7u7rvhz5FNmfnPw+5rE2nK1eFlqwgIhAKhEo4SoOJgEqHrvEAKCuWAN9WmNWazNuBwNr5odXouH"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjAv/VACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpQYQ/9E3Rv+hxsPgdDVueMAQ4mgX7cyBi2IOntL0t8wHXXQeLIpaLg\r\nvySv2sKFWZIRvd3yiBGFm6IyDogUJ1SYqsyHnBSdEwJ53omW33espzTBO2ZB\r\n+F35ZMQGv3e0BCXQQ308dCUErDbJZv7QUZrqVo6D61rOObdMiURjh89QcctB\r\n6BZqhMbr7RseQuzW7MWBLJHLNljdhtQFLNXT/5w0i5hFt/ec9icyh10+blKP\r\n6Dk/bACOklOxpTRN1aij1GdUoZCBOijt3fDVZYG0GJuEcTd6KSNSP1yG2dAf\r\n2P4ov+M3VjmpKNG+AZdM17uA4LTHDhF6/qGbdWikQoJ4W8YO++XUrt5wbiMb\r\nyw+IGFoa7rKjKIejB/5jmRwsHt2aP9muALAGxT6l5VNIUUsJmDmPXmagsPyv\r\nU42NKCyOWxfHH8ZhFzVrkn8SMKt6sfXT1Z3SiRpTXSjLYi6GjQsXyz6pPGem\r\nsBmxtyD8c4ckhUdMa13GQDAevzcSy0xPZkhhWlEgd1mTpBwoqj9bAK02e0Ib\r\nptFlNnl4SATouOV4FRo/VtBiSPJj+XYPuBYsRPbIZCQx2WZ+d7slFQp64Q8X\r\n6Av3rrdjiMtdA9J0LkjaHwCtnyw5jPSaFoerDIwZZIr9FuKgKYzBA4IJTSic\r\nkmTumGGRu7L1RR4cRMRJvfAXR6k6w38nY84=\r\n=OgOn\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.3_1661140949612_0.03342986491834243"},"_hasShrinkwrap":false},"10.0.0-alpha.4":{"name":"typesaurus","version":"10.0.0-alpha.4","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","nanoid":"^3.3.4","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.0-beta","webpack":"^5.74.0"},"gitHead":"3287a79ae5df52b8301d05adcd95fbb12791192d","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.4","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-QEhuoczIWHr54szyN5lDm1X5qoU0HTQOFjlEEZG6fUNS7IMu5xR9jfVte7+m/luETZfPujTC9OBmgnPjVgdCJg==","shasum":"4d1b90d4e6cb46d0cb8ff251685263be4bf0aaec","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.4.tgz","fileCount":31,"unpackedSize":177354,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1gQA+NXLg0eHV5+jDa2y+vu0oaDmRD5RpngtGFw+YnQIgGKbDi13mIHoz2k/qT96HCqNclbboGBUv1/4N95KnqU4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjAwrrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpSZQ//fJyappGm74wqcN7HdzrfoTPYA7J7/6BUTh7I5yRDdsLYMeAq\r\nTZv7w0F2z2l0ASU7irGIhgu3eqfCx+dO0JC/7EGqho0UgsMbQTba+0s+zIkx\r\nWvjN3aoWoo16LwOF7XmzIQWvMTG94Up0aaJPjdHX7lNKYSUnPMT0rqcJU5Um\r\nM4+4dHs4fjz4udW3BCCSq/gkFj9thS0HOLRMN/osO1fDaTyGhx0SpUCwnzal\r\nj4WSOu4UuhThbthj1jVfjCJG505tp7/IU3taFQuZZLHfUG+wgPKP0wUR+UT4\r\nSJR+ZvII9BmfEdKLLWhAfs4xqdqZr8O0/qtPT0FlnBUpSa0EOsvTwQkoJMDc\r\nHqpwIT3LD7CLkCPGtC9PmVWD2kTcr5nm620+hwwqorx7EUSj8OVnQL4FJ8M0\r\nwWRnZXAf+h+tdL8S6RZ5owFESDCHXz1kgUL8e62GmeKX4rMZGK5+/UlmYODm\r\nQQVK3QSJnyhDZQo6Sm89hWWpW0juaPrMHnmAUKV9s9595Uh665VGDnRaopNG\r\ndjHCqu54ggmhrJvOlRhtd4o8zgJL2m2HPeUBuhVBx+ux0PJfpEV4gCVBjW3h\r\nuKlM5CM1fePj0aBV//hGg9NPguYufbdxBh/91FapP2iEgWVWAuxfTVya2Tx2\r\nOLDpbjkTDB9883d64av5MEsNLRM0JaghDJU=\r\n=e10z\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.4_1661143787556_0.988597714474218"},"_hasShrinkwrap":false},"10.0.0-alpha.5":{"name":"typesaurus","version":"10.0.0-alpha.5","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","nanoid":"^3.3.4","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.0-beta","webpack":"^5.74.0"},"gitHead":"3287a79ae5df52b8301d05adcd95fbb12791192d","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.5","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-YsqWe+u9ULL/bYNgOjttMwsxdLTzn1NBtrrx+lBIumWeYhNBVmnlRSNSUhAq6agcKxBWySBclnWtwTi8GrRLnQ==","shasum":"c48dd950ec3bf53769b1d4567a07c5ff365ca2d1","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.5.tgz","fileCount":31,"unpackedSize":177521,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGwfoDmoPu35VNg6WWBXVm7XqF5LNxKkBfh0k5kQycfRAiEAgtdgmud7f+/9xTv0nlTMgCev8TlFp6u1Ex7pQWYdIco="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjAxybACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmowPA/8CEjtguAmpGrKnvhwEeqOqI5wszcug8yjPA1W2b3KczQtbFaj\r\n5HsBNU4wnEHkPLngH7NdJETP8NpiSXaeF0s2Lh1ZWsrL4md8g4IK7yNFDbNa\r\n8fDpIaK2nCYMi77Q0WZsDggp+bcmOES/iUiDWwoj+aJxl/5AcLhD8k8xNbPJ\r\n6IiloAPLyCN4YyKFK83aMph/zoVEPIQ88VOar5OaYqzcHDGnUx4ITLTMBFL8\r\nOmYuFsxtTNPSuF55/c5m8AQi3Fq+SfO1WD2nVU615euYAmFdI7OcWmdyfkpD\r\nb//ncOdWWqY8c1QMQ0unEodqxmnA6r/s1eJ9xly7qyNvlSv3RLszM8yxreC4\r\nxAIXMdq0YbsgK47Aa5aK4VebZPi+V5jFfepjCNRMqD0k6aE8UwMyLxXUPVu8\r\n41MF9vgZFF0F2L//aacoG6t6XkEDgRyQErMwBjWfhFDnE8TRlSH34DAxVGJ6\r\nyl2nMcqCY+xZxnsLMmE66zjH2QaefVBa8RnnZu57uiwyVbo+iZ7RVWVifFkA\r\n+t1yMp0O8XZP3mMBpq0KIsre7EXXRtr8Y1R/xLT41OcE4RCVM7K8CkStw9xT\r\nv7ahds+427y3n+v1GucJfveP2JJ9eFj2IJZY8djWztCZqs/MARS0p0sotM/6\r\ndv8NqCWlY5Tv/TfOtpruKblhsF+Kf6VikcY=\r\n=QoAI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.5_1661148315018_0.16959166268068326"},"_hasShrinkwrap":false},"10.0.0-alpha.6":{"name":"typesaurus","version":"10.0.0-alpha.6","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","nanoid":"^3.3.4","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.0-beta","webpack":"^5.74.0"},"gitHead":"359c7dfcba38f9e2780d578233f318502f990783","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.6","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-J/UtP0JXNPT9/I/4qnuEyb1h9FYxjpYWwmfyK6JPaApj0Vv2YLA+XnuCcBxXV6rp8rP1cG+/Swqq1UMhOP8Z/A==","shasum":"ad1850e39f8752d6ffa89358becfb6d4e05c6ade","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.6.tgz","fileCount":31,"unpackedSize":178256,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFuPZsqtdyuAArO3+n3fkalbL0iYfHpG/0HwCnMuwzOgIgJuhtNGcT3kCCcpEhamCtbZmp6OHZlhV9QJi+0MhRQz8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjA0k4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqW3w//Rnx5ACQGWzerznZBIP7aDNeSDxCoN54CCefj01kteDYbPJOK\r\n4g0WTBpG0Y1AvF/DFocaM637mmrIl3MwWFuekSOfFzpRjoHudb3TK1MR6l6I\r\nCtUDGWiKMLuJ4xYdRqhBi7fSgOU/DFencI3bsbyFznG5eZymAH0sCnn7H8l6\r\nshMnwFfn0c4eIT8+56jiq26tV/Ysukd/Yp7eqSSvU5/lgVLViT5jCHhI1U42\r\nkiYZbP9fcZBf4tT1WjtslTZ6IkkWZXzhshjNLPQ/gKmBELsCZPWrqHtdXHFd\r\nWR/HC+nWdvDRwxAyOgIgACEPjbdUoPHLAXRUBrPR6935v9hF/zf850vruSDW\r\nD2VlXWrT/yKrh/jA1zap6eSNumbVG7+lUwM/tpVAea1aRkGZg1QVL5jAWjZ/\r\nPTkb9H6OOUgM217bxinf07jzQTPvrAYifvSdm22XCBeAYa6nWPCQt9BBbzIU\r\nT8pibBNrEFXjJzpmiAsmd2XjewbxuuOO2vXNuMG5uY1w7bJ83c1oRI4oKIia\r\nHSmbgPtDOgCOUvor6rjqTMpu/hTU2y5j1G0t00SfIcYTLTwklMJ5yBrW6I+d\r\nUQ3vV4+a4HcS5EiNYEv9rFIhbxbj3go8liPYqRjhC6LQtErprywtS5YsdxWh\r\n4NnIEenwWCV9420CLwEAlWOUA2+C2vFLzlo=\r\n=X0GK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.6_1661159736725_0.7663919103960426"},"_hasShrinkwrap":false},"10.0.0-alpha.7":{"name":"typesaurus","version":"10.0.0-alpha.7","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","nanoid":"^3.3.4","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.0-beta","webpack":"^5.74.0"},"gitHead":"126605445948023b9ee7cca67a49cb2fd60ca3b9","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.7","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-qVKUICzYAaQZ2Rlya/Ah9GSG7PZ4FLdaUGFKNfr3YJObn+Nm0GPr1HFz2zbmGhNJjZ0UHjzUJEqX2zfQw6cbMQ==","shasum":"a94660a4216f3bd75dee4e9e6e1c3106957cfbbc","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.7.tgz","fileCount":31,"unpackedSize":178837,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDMntTbT/s1dBIWDMGy/+fxcuIQ2vJtl81IvKZ449XU9AiEA8T0mMM4emRz0BSYrkqets2IxC+8Togg67nrdVZRj9JI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjA1nHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpP+xAAkfbUT9gur8WXB7wwlr3/gb4VlV4HZ7lVw1qrzKUo0QP4QQgy\r\nTB7658ZFU8rAAdX5ub6U2WBXS1cO3QneNZrlNNkTa2hP2ITsAOZIav6APvtg\r\nRP2J2pZh8jvzPm/za3QuJWQvuikZ9glH1KnbFuSZ7ncozf5ZOJqY9prEiiJg\r\n/TU1T0q5XPiwYNTt9maBd7KTgG0A+nSv3vx8UT/QIkRgNcpcG+DzOochatoy\r\nvymRttQslBhPml2Nogk0J+7AJroGuSZT3nkMTDmiU43+6hRK8Hkf7CcCfyhi\r\nAJJ5e8r8PZazyV+m6goamR4Tm0ar5+KuPgf8q4Xa4Xjfx0jqaCKH7ZU9jKD7\r\nM9/PzpJBWwzR8H4ujWgLJUfb403YOYNBe1349DWuvEvLFM6YzKtoszxsBA5V\r\nXbyOSViAKPTif4z5IjEkx/o1xwAw7r1Y+Uv5ofs+8HnFX6TlX4ZiBDzSgJZN\r\nN1CAyhbavvf6BAEiqdvXCfRCjZNPnfyinHoiWPFJ1a25m2UmDSjfCJiHWzX3\r\nRDUK8HbpP1Mn+OMhOT+F5bChiqVGErjGqeH64J3OFqboksgRDnik5y8fSSOM\r\n8mNEsRWzSTv7NrtM+0gYZH+D5Rm0F+v5lFUTIUle0qpbkX8vt7+GBM7e3OeJ\r\nAdMSfrhAZIeOM/UCe2amWk3daItwU9kYXYU=\r\n=Vsk/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.7_1661163975134_0.15146541387821855"},"_hasShrinkwrap":false},"10.0.0-alpha.8":{"name":"typesaurus","version":"10.0.0-alpha.8","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","nanoid":"^3.3.4","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.0-beta","webpack":"^5.74.0"},"gitHead":"a075f650179f633223417289c1219aa39dbb3f32","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.8","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-Vreyt47EE6qyDIYzpnXM7N9ohlJF7m1tsQoyDWb41YQowy/nbk24kLIfZEY2vsyvta7h7jHgB/uAzqM30cDAiw==","shasum":"4f5dc41a42ef08cafaab80acc71ce02b7c86d75a","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.8.tgz","fileCount":31,"unpackedSize":182181,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgsgvhwD0bnEA7yDESPojaypUW02bxllEE/LfkIA0CGAIgM9kMvTU/q1juBWQ4MB/EEB7JCn4DrE6cNNOaV7VZF+I="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjCD7kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpdKA//drvCFS4UekOR2CFtovvhbKJodTvjzA+90d2zU/Q8OiYRitVy\r\nmQ0PybUV0t9GD8a03xKQ2S0RroroxS9qVutboAb7Cw0j6zB/vTnpEd7/Lg/B\r\nyLebIFKSOmBTUzAA1L+/Whf7sKqgEdEVSylEeTNwut8XhG5tA9sEZO/wi/tt\r\nnd2X1+Kz9Abd2PnCsgzqE/4YTOpt+z/RooVZ1TMOhm2q5N/qz9SIioBS3hD8\r\nmxrDaaiVLl3d+cyD515aWz/8eZCGP+2sX4+Th5n/WCUSp089QTDzRevJkp2N\r\ngMM2qfMnoIuGLL7xjybYmh1zDkUkfkI6bi3t/SOp96qVDCsApBMhr1DoIdAU\r\nm9BxQAYXcH29iaoYnES/Tx4Jdnd62WcTYs+RnJ/TvumBXqLyuwAj0gma/Eav\r\nf9QtoFUY+uQYtmJ7leXp2KVoWUlkz8Qhiem1wNNzJye7eOlOLeviOzNQidvN\r\nKySH3+bPsNCiFOx/pSnwklP5YGTw6o9uvATInngRvPpKmuOZDzvY8xWTPu1b\r\ns/9gwMt9JZlpl2txnwT+7K/I9fwpqzMT/Unhq80ni+N/zqLTjLMRHLNZAXUP\r\nyb9vERo3lJbOUq/i3/xh7bfUAqCJxHNGEHxBCFErT8wts7UNn9w5dqTrCt7E\r\nvhd98c9o2yLgBHZklmtMaYcpJYeXjMc8mSk=\r\n=vSJg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.8_1661484772201_0.6739669837319424"},"_hasShrinkwrap":false},"10.0.0-alpha.9":{"name":"typesaurus","version":"10.0.0-alpha.9","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","nanoid":"^3.3.4","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.0-beta","webpack":"^5.74.0"},"gitHead":"bc5ddad08d814795a696ce6b5a4fbc7a210877ef","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.9","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-GtP/oEv7cSZJC+9p+fRdeKKrm9CzDPzMRW2KTyY4wBmmXyHlrWfiwWsD75RHAbvpajpV5OH7F3UfifYYEiFnsA==","shasum":"0156fd37fe92c30326ccb209cae56d57f87403b8","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.9.tgz","fileCount":32,"unpackedSize":191467,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAyHeYuSUWWcTd0SENZ5YpCQjVaLQpDmmnQYAmckSSchAiAIVERklS9HynXIi8OyZWePwYboRWgjdEaL6Cui5SkKBw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjC0H7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqA4A//apU3vluxF2CCP0tgZkK9QVHWNsfI/Z2dHkJESu76cmJsosLK\r\nHpk2RqtBdbMM4RZFtGbAEeIu7dld76Mc+Oh3IXyV0LK7STtqRwaOYccCA0NJ\r\nL2BcR3rMAgDRCoqz+KG/Y0Pf1+q+z98d2/kGEz6GO0ut4nqyEIso+ZLDLZey\r\nXjzeYWjSkwWTICkAexXH40D9qEqD3vKGvngDiBK63K1Tpxh0dfV/oHFxQkKn\r\nmAFZfWOcpdbsrPcgjqHo6vzRFedLQBg1iYAkWiL+Om/f53hgpnc7vXi1dNzR\r\nXHr7djuQTVo18WnZHS3pzfKhyRlLJsQN/H5+k27Gq/CJyS5qEXdjvlnEV2FA\r\nDFqVxqXdc0UjzKwCXULbhPGKwONqHRKFPNwoJkUzaQVevOgn1vAgt/F0IcFe\r\nVSiEdyfabt97CoVPjUZPTMOVmbi1X9bjU+04SG/qSuawVy1mHU2z+++J8EaK\r\nSNmKWxQprYQMrl2wGwZPDvvrl+7Id+ERJIGetP7DssXyyCCq25MbMKaJ4t6d\r\nZS+GYShXaCXeiF0LmzAfBdVEcIr3gib5yxlnuVxJ3QgN6gPNhTuL5i4y+wtz\r\nKQvGvEPM7Qff63t0bAF6lZoVNpWfbTMk4gXlWxsj7lIimnAMUwKpWnYpeQRe\r\n7f6TugFw0z06qD37YlMU3wtLyuAZ5f1JC74=\r\n=oO3g\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.9_1661682170979_0.1474943055737601"},"_hasShrinkwrap":false},"10.0.0-alpha.10":{"name":"typesaurus","version":"10.0.0-alpha.10","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","nanoid":"^3.3.4","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.0-beta","webpack":"^5.74.0"},"gitHead":"b8ddd2554eeb148a6225e761fbb638b22adc0fe8","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.10","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-g606euuYvTaQCtYs4FyS/pEOZababWvYWIpNxFJL9GOZdvlZNSISllPolgmGgLmt9HxN+fHFEmgcO79SJ5Rxeg==","shasum":"0abccd2cd37c2ae2c8030e8c2fed2fa4c57cde10","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.10.tgz","fileCount":34,"unpackedSize":182799,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwGlRavr2rG3gK5hY0/U/UYvbKHcOtEf/fYXv+ZRd6nwIhANybR64jyod2TwIYft3dquU3DPYauo1e2ean7AR6+b7P"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjC29TACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoINQ/9G8RgNCwwO9jrDm6xAtTUdCUsyBmSDkEYLnAVSJ7cKCb4lrZI\r\nNDZbnh25UXJqScOKfjOsEGbWf5OYY1dymhp5RN4g3936YIV6eZMNy4Y1Sk0D\r\nkFvnvIGbN1U7ekRLHpZk6sryT4SzJdPus5dAXRRk+KM3SXouuxsE7bgSdb1r\r\n3URZ7mBGLPfqqKz993cRTQsfIGIPG3jhb4kWQb3zbDEkNOpZDen8vbpa+U7e\r\nGCIGTZ61cOBbk1DLBnp26IlWO0RD+QyeGLc6Yt9hjZ8u3UkYKU62Du3hXQxR\r\nu8SjKR5tKwxuZ3+SfXwkinHyGw+ijBJi1biu6l0pWeIHuUVBySeNrs17dFj4\r\nuLhPB/86rq35XqAuQH51MfDZS6pgyvxky1dF52kEckJNMAmiNdiSs7YclTfe\r\nq6kPd0H3jGjE/xZRu3MPrX0MS+sWCImt0zh/Gd6NwcLtJ/47OxO8LxykSYMP\r\nqpJojvvsFtVEyzE7NlIOugGcXipJBzarIymumivhxyNP6Z/bStGZXBphphhG\r\n8KkCy5WK0J2p5DWd1KCIPQY3z+NaTIn6P5NwVBB6Cz7aJFPNlJhBAe1rXiG6\r\nCWLdMPreEPir21IcyOg2oobpAAdTti34xIvHnJ9sKAiwIPERabZj62ZVLEmj\r\npvkAE38oXpSQrIm/BRb0MYM/4qp+79kTZ5o=\r\n=bgD0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.10_1661693779150_0.39894058795733334"},"_hasShrinkwrap":false},"10.0.0-alpha.11":{"name":"typesaurus","version":"10.0.0-alpha.11","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.2","webpack":"^5.74.0"},"gitHead":"6f600b425f0b5899fb78480c7eea5fc7d5e0ecc6","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.11","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-Vq+O6EejHLukeonNtoFioagoQPEU+/Z6opFbx1HiKrkroSjSyux6iGrpgzRLUtSicGzJQ93Kk0jlEwZH1T0VWA==","shasum":"41f89a0417f2dc166f7adf6ce08633b9f2ac41d4","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.11.tgz","fileCount":34,"unpackedSize":191003,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTYbhkfRWVit6R7kli8czogn0ktv4q8TleYk9abw/GwQIhAPfw1R3M/WH4JwBTU94iBMN4/bTV6t9iHFw7lTy7MIfq"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjELHXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo4ew//WKyX5d59D0I++UYKwF8yzu1zHrLTx4F9nTLAoXHlEJTHtnfQ\r\nxbKaK8FACrSBJCi2XgtSOD4+oPIYpAng3mrMrf8TwB6Oxr58mzLqT36tF6hX\r\npqo1sYs5QFbCB4EbnN58IF4ZF4RwpNCxPGIg/DfeYoI/L0MaN+ayvwgb0vjc\r\noOJNAniz0sLvrGKZVPB88R6+lqfCAmO39u905tvnkyLMfXWEpifC5BZQwOMh\r\nrHxCnjc3awAKyEgp5S76BWcsI9mFN8SM0Ik1yB4lFrDPq7VKe3ig+QpGJn69\r\nqCKerj23WIi0m+Oi1BiiFQLt32c9ZM/jrhdghxqt+qs0tSyV/mYekQFkrryv\r\niVATWl05KJjdizecJ9UZhJuJ2GKR9WVukmY0IEokkElBnUJ4GUBSw7Myophc\r\n2bd4EWvqXU8CjXNa9ISwbceddefFMiX+38qbFGQXx1FQ5KX2a0vlw2WTwF63\r\nyBXk27ebwPG+4x0JfEi4EknVz01deyUHOIc1e9+09EbfEF/ZZTxA3qHMZrqX\r\nVbKTh1rYxuDmnnu0ruP0cE0mtDn+nrOMKHGdXKGb1wToRGX+CTINcmn2jemt\r\nqAGQ/dp4FYFjYugtiZ1uEHd2qs+m+PbMwWkjEqZPolJ5H8ImBhrN+9EYRJQ0\r\n4xuLRiwVV9SzJrH6/jiN55QCUR3HgnN/zJY=\r\n=Yfow\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.11_1662038487193_0.32443037700107547"},"_hasShrinkwrap":false},"10.0.0-alpha.12":{"name":"typesaurus","version":"10.0.0-alpha.12","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.2","webpack":"^5.74.0"},"gitHead":"6f600b425f0b5899fb78480c7eea5fc7d5e0ecc6","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.12","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-OG3KWey9kuMcwqod02ACFvHZbt1QT8j3Hk0cVKpazVxljkVFd5a7s66XPZzwoD7dBaiJ7y/coji1Pvqt92fvUA==","shasum":"81527becea76a670dcf8d8db293d9a4557d8910e","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.12.tgz","fileCount":34,"unpackedSize":191022,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5c92i/Sfv0kUlo8cZg+SD7bU6UqiFWa3Ll3556+8LCwIgRgUJ6HwhWGC0O3PDA8CbyYl4db1Pc+rUE1GgKxHb9/c="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjELVoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpsSQ/7B/EHZEShLDvL4oKTNCy+TVJTNxvYd/iiG4sGKG1cc7EyW2zs\r\nHy7BKd+7ehUAjL+0V9FZj3dqt6pTXT1aIZQ8SKcr3mIifrsWraA/y9YKJhUl\r\nC3uJgC5u3ixWtC39G3ToX4qCce4A3mKZe/sgrTCQqiy0SdWDkGrc3BFhYmh4\r\nqv5kR5vkOPB+eale5P9OQgh7RGGcIrsccTC5uKAwdU6z6ET4PSLnWU7DP2yU\r\n4COShFh7Q3FqxdrfSOcQd4pW8tN0W/Aek7h2gr6P6VNmWorZJDIdgfRwsGLZ\r\nakeo3G/DwzXouSaLbf+VASIHGvI2+4R1q0C21of1yQQc6QlM4vtbdJEwxIZx\r\npnouTGWx84t17695LoB/MozRy6n92ypGYF6P59irPaw9tWG6PHLOp1QvRwyb\r\n2U0cvGWppaVEk5+pS5avC/acT+XC5VaV2PSrhV9mkfdSHD/u4gDd1X8+GMFu\r\nvqn4xiwhe6DpAucFhpElQRzdSuwxEQokMNgfwhfYM4bfoEwqsw/oeROy4fQe\r\nbrmDMIZ1oXNhRY4uEOCANdqKXP4hh7diXLZ3REQju1AQxYafgNphP11+ts1c\r\ndZM0uwSEGeDzUq8a7O6fmg9Z6JXjS23Tcj6Xyoovsz5iDSzj7iR0BQlgM7ch\r\nq7IuheRzAgELfp9sNssyXeNBQ3fSjPbl/es=\r\n=wWkz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.12_1662039400019_0.7139564067316018"},"_hasShrinkwrap":false},"10.0.0-alpha.13":{"name":"typesaurus","version":"10.0.0-alpha.13","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.2","webpack":"^5.74.0"},"gitHead":"402b2419c16e4d7c0cae7d01913ee3737a6bbb8c","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.13","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-5JSR97XEVaP6v1iMANeinqBqDrH6rkWLvu25ykb8hb7+MYVt4e6NuFMJztnXbMgUIKrj9yuQZj7sJa2Hz+ZOWA==","shasum":"fbaabc18b03a26f85cf97356a9b130f7462bd278","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.13.tgz","fileCount":34,"unpackedSize":191262,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB3RxuqcuWLq+BOvkOOpwjsTB49LGJTpv8lXjz1C9BB4AiAFqRNbcoiUX/3cqkhmSApsxqkGCVsaRdLgRMHHF8JP3w=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjEW0CACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpKBw/+LORIzlC1gyLsqInz7003muISSzxlKRYSkNh+z5vvtJlPO6dV\r\nIkaXcNpWWEtEGPQWy9lrvmHKgDGI3nVk3AEFu+LpLvuPuXTDzIygOxDORN36\r\ncd2O16BmAD/aVk4Wta7chmfulbRLKub5I4io5oRugVkqpaHlWAknv4HDzWes\r\nZ96NsEB86tBJpNzTvrjq9eaPjBs4BAwUvQaJ8otnFAj8d5urROS5BL+Jiqm+\r\nNFJv4rdAR02kary4lpBo/0PE7dGgncL+eB1kRqTaNEmuvZpEIYDthWtw+g5b\r\nvrq7W54zm6HD9+6QuwV30j4oNn8T1scHgfzCP/3+csYg1U53NMXPVb0Qns6s\r\nRX1nfEN3L2mU6J6wD+Mjtw53n7nt1S6UT8I8B2ifLhj3JG5OtWMuTSPju33W\r\nWEGdtXknWGDOK/u6/eVr8grmxTysssEzfEhGFn8Dskvnqm4qsdcY6/WCJMTX\r\nP3/leAG7I/dhQi9PRVxHPAwBY/8JM9pDHjzVgdeOf+jt2Y0et1+RX7IikZQR\r\nsYa5clO5QTRsc4mD1BHVPDbhI1rkdGGOrdJjGYrLPIC1npWF0VRF2UuQ4tth\r\nDC0rZFDqar+14NsXXLiWR86OoBD7+UTKQwPkJWYPXuNSzqPJ1wrztt30/+1O\r\nWFlEcbEYxqL9mOnL/U6FCWEjqJdQrumuaFg=\r\n=PNbK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.13_1662086401923_0.575469719051461"},"_hasShrinkwrap":false},"10.0.0-alpha.14":{"name":"typesaurus","version":"10.0.0-alpha.14","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.2","webpack":"^5.74.0"},"gitHead":"402b2419c16e4d7c0cae7d01913ee3737a6bbb8c","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.14","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-a8UGnNJ7oGnRzk1nYo/qfbePDbNs29AmENj11PJ8gXdmqeayA1DlcUiWvvIpPyuEjdcvyYyNDLzdaGH6/O4xvQ==","shasum":"5502a59806bf2fa0b7d114d1ec95d0511dfe3471","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.14.tgz","fileCount":34,"unpackedSize":191253,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDTgbikxHLkvoSwEV8VQvlrm40DCAjQwBpaGQQLEZzkoAiEAo5nSaGonOgzO3hP2iOD9H6UX0tKwsC7fh5eqtFsmx6s="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjErO0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpq1g//TVOi8zuADKs6uCaxuaYTjYOWcQT2ym51e2MHFt7y1Q73z0bY\r\n35nDsm4H5CjccFkvJyziOv2qKiKNCz08PeVqvSrYpeAkzUpUB+gf+yw1gzRo\r\n9akH3IMpt+Qjfs2foJHto1cbBN767TpceNw+qcYnCHJHy2rbOdOiuCE+/Zvw\r\nPTV5nSkoVvLHgUfiwLhx/Ycm9tO+WmKj8DBBJcX92B4+Ra7MEc/HNNRpFZsP\r\nvVoHQCGsbwKhNQ72culFWMlI71lFCPgXWlU3SjnYdDLSTXekYMJgIeUBKf8m\r\nYJnkQy3D60h2PMFPZTq9QhvwQX7moRgnZpkOgIcSje0hQvXD0wKU9ramcHl7\r\n6cmgbo+ZHIryGvsVm+L559QkP3+yurjh8Lt+P93Xwo2SjPQo1lDBpkD5/PXz\r\nirYmZSJ/IjoJ8ZJYkteHl3INkddpZKmjuvcccsPLxvvTlxAB9zcv14PJbCis\r\nb74TV1iAC2aQKtRZT4GKpl7nE46TDasQWlMZUaKxRQAI6JwWtVZdpXHD1YnW\r\nqLmi+hmooyaAA5LNM3sut8Q6uYj7ybTg4646W5J7nXn/qvcnpOb0RB/GQZ4x\r\n+H/5Pptq8fZe9N4Mw1yMAMaFBHio56jpYfhAexStwdhkvnT2vyDObNr2ZUL2\r\nfWs8PlmBJRB8v4PYCsA1FQTe0FB5nwJYAvk=\r\n=zH+f\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.14_1662170036256_0.8890199178197185"},"_hasShrinkwrap":false},"10.0.0-alpha.15":{"name":"typesaurus","version":"10.0.0-alpha.15","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"abae60ea251d76bafe4c20c176275069f1106765","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.15","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-f/CB7zKjt7cucqfYDETESVqumawoQR9o6b3Q4J32sHNKTyeWXJCDesfZQhAE50+54UdpF1n3liWwXSqJe3qNZA==","shasum":"29e02df13bcdaa87dd0416233a89f5e0cdc6e66d","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.15.tgz","fileCount":34,"unpackedSize":267779,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDC5RmmU2kwLCxaRA5DO7MoRxMgIx9Q+HkjvxOF9DjtnQIhAMHuoSYwSq/mu6t9jcoVC/oU7216yyp7C7Zj+cRgrkXV"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjIu09ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoR5g/9GmVkprFJOOKdILOmwm7+cPAeqQEnCZvXIJ7ZqvAIfsisD6UT\r\nkc7t/UYwGe9ugami/HYWz5gdwgu9xqojG5HRPFyzvLjfZaEKR81QEc9P3bEJ\r\n+zVeXY+IVR4+mjd62Vs6zILUXXA602xnv5gj1j9DpvO5n+r9iySWHUk9j8BJ\r\nFFmSRaOtT7RYuRfqO30xJVqjmmmYr5adoietl0y3WoebQBcrPyCY+xRT0htd\r\nXrQYuOcxvNkeJGHJmpf7Crgcv/ELWtLqJfCRb9nmfEzGZZ7sVVgUwCbnCmAz\r\nHtmL1PRhIi7WYqJfOcOvcfu5Xbkw58qJfG1/KA/y75oZE+wJP7lhHrtiijhb\r\nFmBE4FDC5xfqCYx2fJUHqiQSK9aIToyhH2l12kzEB45SOl5TzfFxxAFGtQNI\r\nzDVEzA2gSdLK7qxBr2bViWCQ4A/y4dm1BMuEe970OTdtTJyhlx08z7BJ6S14\r\nk5cW74XHXbaVk4RItN+JMcffiukHN05VhY6m822huu2TlRYF6PTuPnGuY1Gr\r\nrhzzuV8aEhabW2/ZoY7M0LAJdapWGboTjtgT+6pVJZKQB8dN4VlEiNxjr4Nl\r\nyBgyWu0huCt7ZKjZwxCTkfU5MoBV1PJbHqBqV7fbxPomD3HUSVyJXpPPp3wn\r\nzknyo+eyV7RDzlGsd4Go44Wqxra7TC0kGbg=\r\n=lLRs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.15_1663233341698_0.6494104492764716"},"_hasShrinkwrap":false},"10.0.0-alpha.16":{"name":"typesaurus","version":"10.0.0-alpha.16","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"43d176684b015e2bbb06ae362c2cb2cbb03cbd65","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.16","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-IhLRXxzT/rHHduuBM1L9emjNqzqPhmslnJTWX9OZ8K4NCb0s/FJMWyniSB0zVkWYHOi/C9tvhKDl+V6hMIFEgw==","shasum":"8e72b446a2443e328c1002d304576817c19d1b2c","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.16.tgz","fileCount":34,"unpackedSize":272690,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEOJfDJvqfLGnHMEJhq5mnkBpaMJ3CBb+E3zy1fWlZA5AiEAxLAzSk4xpAF2bddJVaYRu6zbHYZ/FuPYEpspOOd1X+c="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjIv6mACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpZ4RAAldkevzcLbH/aiCF89XYyclVdkr8P7oH3GJ7krPGiVbCIarF8\r\nagKJ1EYrX4RvOZ3dWzB98YvyR7qWoaE8cKs8rHvHqNHvCXq4bKD4sIVWu6LJ\r\n2PGX2lN17qUcxG9/G5GhD+1EbVo4peoJFcCKtcAkMjz8YVw5IRFFqI4jqqhq\r\n8DpatNFDIXkSBRuw35OWstdUAma2AZs3HAZizlDclkc7dSAIDmOaHDjsqeYi\r\nH/z5lwYDhz6pD6FKLXGneBb4s2FRAE2Z7AbAuT9Vhi+t4rXFQ2Q+KSt93BDO\r\nH2j8/EIVjyUzQBMVfdUDi/2GqgWWGpwClwdY6Li+EVrETSK4ECpEyB9zDQkH\r\n+D+OeMwAdkH6TYtpH8WZArXS9gMLjHWRdWfBzXylRmpiVba1alZ58MLsoUm/\r\nxT/fPQznefxId4kQJfyEna+zO7/3FjsZn+L06d8Ih+rYpbX3pa1pFPcfYy4g\r\nOd5teoqW1zrZKGYqKofl3jTVFzikW60cKN8KpNqBb5pWXH3FVnn9OrToEvOz\r\nWhQjy1wU80oGwsymJjHpoZ4n4oi2PTsfAbhGIX8bQjISkmycu3MIpsPT/i39\r\nJhDJEntPK0J0GQVvniJ8ORub9aXJ4w+f32n5wK3u3f027qXBPUNVmJoZoDqO\r\nPyLUhPeM0p92LvIkbHQmoljmx1/pkoQsaiw=\r\n=f1C8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.16_1663237798277_0.12143100726748801"},"_hasShrinkwrap":false},"10.0.0-alpha.17":{"name":"typesaurus","version":"10.0.0-alpha.17","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"a2e7914a89bca2c621196c3b9e1b5832bd11d371","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.17","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-wInwY+Xjp4ppxAaBjzsSNs+I+916BtPnE/gnwyvXi7NLdScXe1Yx9hj/ttGzHCQmHHZPUe2lSrvdUZoM7DfzuA==","shasum":"712046d8499969a55147b2e3b4f676f9011b85ba","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.17.tgz","fileCount":34,"unpackedSize":276646,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDm0/Gw34zrCyMfZY6GAUDPC+IeHG+xI+FF1Dlvz9VwwAiEAiBiCOCHkiremSpGpo2dhg3doW/yfUCo+N1ggWtZIsGI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjI/HCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqM6g//byqGNzg1I8m1LCKCVc4agU2ODvOO2ZBU84yruoO8ATvYauDj\r\nKVtVoaknRljRoYq4AXA76UGXH1rNPuGetWZhKeGmXsLJ+ibWpcmXCzzSnjbY\r\nxNQoDTH0mAXy1clG+gURxI0mCHOD3Vzl7+DiNLv2s223B9mM0Kr4CCdJsAY+\r\nr9Pqw6V0z5IqiNycxQf9Z+itYm3hs2Ec34GqiFNJx0FXVHTJHnoeppLb4mZC\r\ndtxkespKul5dnZ3h570PjY1l+hyf01Ll0PG+6+yfb8iptT0XoIuQsROfvv6J\r\nGnUrswsWfOug564N3IzQXR2UtrEBsTtW/Mx6iwDYEpQm54noOhtjJuwHYUtb\r\ntJdLy+JEz5OfAYnHNvJXCqOwc0yCTfmpZFZMPNc7PTVR2MLm4vqKuH7uBVkf\r\nN3f/zl7wIa83pkguoXx32+us/AnMa76EfuI40MLa8/yw0QMxySwBWXwW4/5l\r\nzlJB/MF5TZXNnJBdyVpHs+GCLlzQ9sMT+PVCjukf2dh4Zk5kNpH6igYi2EMX\r\nakqb51kVB7XcSKZAqS/GYCC0Yu7aIb05PTucD3B2DbGS4At0Y9pn3vnW1sbB\r\nmWRsB78QvOoAbWyBFmgIGJpUMlXJbmBt87TBSoRUdKxprJXKzaxH9um3vW14\r\nm2pCdndoWSaywdLY0KLJ7nxeRht4VP935I8=\r\n=8gN4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.17_1663300034201_0.33537536292417647"},"_hasShrinkwrap":false},"10.0.0-alpha.18":{"name":"typesaurus","version":"10.0.0-alpha.18","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"e9a212499751fa91bba52a61a3e35060c82daf6f","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.18","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-b9S/j+B+Oxm3bu5mJUxXUHzkfBzELxAJ7nxptebBq3k31njFD7J2kjOOzbPHwc71tF0QRpaa0Z0SnB/8uSU78A==","shasum":"d59258a73cd94384dd0bfd7d531d9debb22ea5f0","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.18.tgz","fileCount":34,"unpackedSize":275371,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGdbBj6lwNU/mOf8x3XidOQtMBa22K6AhWiaZhaFlIKZAiEA2OFXRnOtrdd7AWIOdh2H1z7zHHpoi9g+A/kFZibXYPM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjI/QZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpFUA//RJxLidCjsjGXMuRx187Zyh7bHhmtmmMx1unufL4hOM1F4StJ\r\nWa+AoOFjKYImzgjF6ZzequVEgIZ2XTxn8wxE7GTYyFWA8HKpw/X7gsCS53zr\r\nAwmbVllihSJhR16d/WnmezGLEdTo2C4Av4QwSdIA6o9lhpMluwprBcbbdW1n\r\nBw4P896AYLDVmlRVjz3As34C1I/HAYJOlPxmGQkV6HcZsKvw1NWnGLbdYhd3\r\n7Cav2UjsUG2CLVAACvYJv/o1TtfakoPFx+ttUrbGVCvv6rCgVyILK6BEysZK\r\nAit09J0Sbwal3oRj1FrJ8j1tlSVziX1qxmyF872luvS9Msc1WX0uNMKoXESh\r\nNJEbl6y9FNXoXlsWLjtRk48gcKUrPeIL0zaBgiTJaw5WGH32Iyh0GqFi/2ET\r\n9I4X68wqNnCv9Ybj6Uu6ZLoEQS212ESTkILz27MHGD5m2yE4yGHeqcw7zoaL\r\nbcQvNrVyiN1GunuxEEGKHxy+eBJWcXKE/Bj32rVa3PcZuLa+LxUo+Kcair3K\r\naKOBso5YsRCXHXaKzXsQpg6h9g5pLcHHuAetj2DwCqJSAbxPfY0wKQkNXX8u\r\nOy+HnSdisBSLuSohF7j/9IJPTK0s8ADKQrQ+Nm+6vGA9dYk+VEAicYqia++u\r\nW+iiZ80/rjBlR2mD4FXn9RL1OoYKGtIrt54=\r\n=qRJO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.18_1663300632984_0.5189729093196644"},"_hasShrinkwrap":false},"10.0.0-alpha.19":{"name":"typesaurus","version":"10.0.0-alpha.19","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"3fd0e725bd9bc72cbcf325d7b6e2eb5efffc3528","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.19","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-LrhaoYIiA5JBnM03EfRujbuDwbZfHd3za8BPOn5fmN5W1dB2K2GeMPI0rDBxFWwq5sy1v3HHD+vBeQo9NOz1Rw==","shasum":"f927eb9837f54657034624debef0a0871bb078d3","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.19.tgz","fileCount":34,"unpackedSize":277175,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1/zYSgFrdQAsZ5DOYluhVobd1iKgR9pdVNqwNrBHiRgIgX2xIEb/HqSL7IGdx/NqwkM+d6JAUw0zv92mlRahpB1Q="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJWQKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq1UxAAjpAKrwTHpyzo65hUghefAChVkGWyYOXT2YAbMQi0HYiSoK3f\r\nMaoeucugGmWrbT4i1YHEpVLaH/Qnzdng6NQflNd3hETd/vlIxt+KEK8Yovut\r\nU9EAyjqyKeqdpQKQFzGqFV0hgzYYatlva6KLH+5kCLZJOLykW7YTwVL72ALT\r\n11KxW8bEytsSg7XS2VmreNCN9cvEDZV3K8CQy9Xk6jYdTOssu9HNquSFkkJD\r\nhCCKkB0Adv6yNk3GQ0H5ZezvzpTjuhCuuHJ6CDz7v18myvHVvQgYo53viunC\r\nA96UTBNcO2L6hVEbRSxe3Y05jUPVt9D4UT3ujWk7STUY6KR3hZD6LqyaRL0W\r\ndQR8qq7WSKR58uvekBqsgw3WGgjfCKeYadQf5UUSluEu4AReYgDpxIJIVT2d\r\npZ+/LbaydkptghGsgdi+RfKz2lIhR35vvegMXBrH+6WapJ5ofv8OjEImgrz/\r\nH9n4fd5lbYzluQ0Af4SiyR1IFEHrcuEJe0JAbq1pdfmXCb/7Nr7+Rd4gQfLk\r\nWe5deqvmXN+TVvCLnhwoYbWXkXi+OyXIWWZTIAQSliVORB3ZEdbDSKq/7l7O\r\nPwExP0XMt7pMVqbRu709HqGN10jG6h3tsEYdVQ81Fhs1AtfNwd9N7y7sbZBP\r\n8s1wcw4OmUM/m2PpwbecF2vlSxPVPPCGq2I=\r\n=YoX3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.19_1663394825981_0.16085489583834778"},"_hasShrinkwrap":false},"10.0.0-alpha.20":{"name":"typesaurus","version":"10.0.0-alpha.20","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"05a7829e116b7bf7e245636d2404f304b1df4ad6","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.20","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-1o/PN4alKtoM+aTKknHlJ9/UDWQ4u6YxG8adnjkg3WwMXN9jmOkLNBrnWwNKkRu9nRK7CRzAWywAymCmgXxMwQ==","shasum":"6e09ad18757f294a9bd82e89c5bc877a7d94b757","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.20.tgz","fileCount":34,"unpackedSize":293369,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGl116X16dfsCngSbJAuD1VSbC+YdZU4Zmgg+ny2e3TEAiBA49wr8N7biRn3zgl2Tjw6yGH/LbWawbhbK5xwRLCujQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJ8NfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqXEA//XN8mUYESZ4vvegMuuyneN1a9qrTqyFY+gcckBaZmTx0rUdBn\r\nwC1w7fnyVZXRV0kH/UAXlaCL3Mq3f8sIW3gxKoO6HYINEhQl7NHsLSfyx9QF\r\n/xKitZdTIrhBoPwcpPtIJ1ka1xJQqTWU1gNoS4zEwu6IGnryTkQ32yrRfTlE\r\nkQXAxvbZ0gBeYOlLmbS9GRZ4Xht/RAD5o13NCR01DCTZ6CxWh6GIZehFHykE\r\nebwDCsLWqp0jAsq2c7UK1DCObeza/FMbHle9bxgE3qWQhmB3+T9ujvbUxtRK\r\nOlEOY67h4ZEQBdhDaqRI8b8W8B7+gbrPBuwKAFYX7rKN7/e0lxSnBnT+bpgf\r\nI8Jo9ym37M/4oICI+Wz4lSH6GzRX1+y6aw3oauSr7CWJxInhPQEdia7UArL/\r\n5LqYeBCDdvrkon00jDixAxIhheGDZX9SmmHAB9mXjFcUhpj2aDCwYhFF0HDD\r\n3ICjm+dkTF7euZ83hgOs6iWlSh6F3bcQIulv+jdw5C9ZYXlaPOzx4+1y9xii\r\nns/5xFQzOZ64K+77Sg33Amz3Z0PThbc/WPBgosriLmrUl8DriF1GoMQ9VoTj\r\nzxKvXORy/I3Seg2dVwWk9kJzryzaUBI6kb5dNF6w/L/nXB/ygC2pYZ5j2mnt\r\n/PRqnvy+aXz91AbPvXn9UKey2RtQXowHUZM=\r\n=rwKL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.20_1663550303238_0.06006910770267804"},"_hasShrinkwrap":false},"10.0.0-alpha.21":{"name":"typesaurus","version":"10.0.0-alpha.21","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"42be4529c49d8cebe4346caa88f983ea87b9eb2f","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.21","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-LuZTx1SayCS1D8nYK4C2QwWebJSXxoRmJaH/aGuhB86oOzI0mPCmpLLqX06MCtk7VsoKP7piAhq3kG397BDh6g==","shasum":"2b651ce22659e19138b0a2445cfb52598823fddd","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.21.tgz","fileCount":34,"unpackedSize":294033,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEWQ1sPR5ncOjcZTx7q+SdpcZ3Gxcf5nnnFq91wkN1wuAiEAvNrC6qnRukVhygJco4LAl2ru4TLXsAKmsq5tk8LfJpo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKRocACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoDDA//Q9g76+lcGrXLdu3tZSGb8mjEh1uSyT1t8vs6NSd9kj6vSKB6\r\nLSMCf8HA2AcZ2m10LhigR0n6M5kiW0ssELcgsTqWRNmXkXiOezvmZ1yFhTGJ\r\nKkGIqbeQD0ddnvYU8EkgJtXxIVWwI8RTHta802EU3e5pPytfozJ0NtP8SSQ8\r\n/3Qw9OhA19PDJ5F7eHeMVgsJeJaL5NXqnn5baQdbKXm3RXI3VFTdHJrfMLtk\r\nGgw1iuW/0r8AIX6tI01/hAzuTqPYrUc1AQgTJfiQazya9AgqaGcaB4E/MmdC\r\n/Ksq2LDfeWzB3s3jD/svuLBEV4KgLtVSipTsVbj3899hunbTNjmvVDr1byEw\r\nq6pRoI8HBPTQ7Jyy/piU8q4koPVM7eDOAoKvoFDWr28w68t6B3AdHxenxHCU\r\nC7pWPdJ6g8SM9HAQoMfciFKDLf6RT6CXh7hasH3sB7bEWT4ufK5dMiHBSIhw\r\n/cW0ufbYrED1OrFGec+Es0rADMBQbZjpNoj2sHv5cKr+5k2RPYRJ20/LcbSf\r\niOG8tsHKMwTyICE7ESExhcQk/DeMG3ito0ywRhICd6ANt2RkHnII8lOeYDi+\r\np9ByZ+FHsGfkkq/mDhscccrRl5wxARgKM+u1AeM5wjjAystscfebI+QWSVP6\r\nTtpz2smI3QRLwyZMqLFXKWktmV0m4NgOPl0=\r\n=uxLb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.21_1663638044402_0.2892330986581215"},"_hasShrinkwrap":false},"10.0.0-alpha.22":{"name":"typesaurus","version":"10.0.0-alpha.22","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./retry":{"require":"./retry/index.js","import":"./retry/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"cc099c29a476fa2a3fdb561f79803a3edb322175","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.22","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-Jl1+MZpKvm5J9P4oY6PpbDVPFb7ddoLOImZQsgDVyC8tJaSeuv1AovvRJqP26NLazFaP568sV3jdcYi3M3HryA==","shasum":"2c72563b267717069dd8b965cc7648ef5f49a89a","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.22.tgz","fileCount":38,"unpackedSize":297793,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCahMme9IStbzK22ymCUcLzIiZF8uMFaGtbgRR4PSnNuwIgMkvpcPsx5jL48sQrfXm8SbDQrdWGJ8/XJhJHDoW31YM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjLDWFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmomlg/+J4I992JEHgTc5WgYVyziZ9rk0tT2P1b/yCO6kL80cii4rHv6\r\nmY2anKP5xCAgYh+JtvGB5FaDfzPQqKt9BB+b34Rg0a182Fz5VTvvs4G+81Pk\r\nl7N3s1HAbklL/+r2B1sjRZa3qZQsGklHhmieudgrZaCu2xw3xA89G4eAcTme\r\nv3nABqcPWACsvMGVRHZOU4eonVmOPk0bdxkm4pEoZ42iG++TLXpVZxhL7DGB\r\n5JNYAR2y+9BA5pDJPN56YINidA947QJzfJqH6BL/cLMQ3vbtbv6uH+jAEPZI\r\n4I+Tij57sN5lXdZBIZMzD1PpubUnFrRQvGiyq1o5Du6OvjL6I8zjde5JFSQo\r\nFP0Pru6PCaIF+UB/JjjrBixoeHA04r0v7oW50ZmA+uRnnChRYud0p584ImY/\r\n/2azxDpVxVPK5e+74OazyKH7CplhpldLCnpUfGho6B9d5gtu2IXbcAsP9lT4\r\nkR6OdNofusS+rr01EClzGE2B3p98Szo8b3pkM86DbIAJSWnrDruETNysTllt\r\nm5e+Qck+QP7a8/fvK9cHvoAi2NeJoourIjPZQOv5x2O4C9+w3i49J7cdW5Sa\r\nSnpPi/q+a24C8TYPHMh939ZBhsga9tapKxGkEio5V4YBN46aNRIITqHjmMrc\r\ngMXgM+9br1rHkHUo3S9WT9odpVY6txvoJkI=\r\n=x5gA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.22_1663841669113_0.5446101141640107"},"_hasShrinkwrap":false},"10.0.0-alpha.23":{"name":"typesaurus","version":"10.0.0-alpha.23","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./retry":{"require":"./retry/index.js","import":"./retry/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"d1518b736cf996ca61ff37ef91c7d10bafe35d20","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.23","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-L/i4SQQrdb8zsZ7+PkulDAmLxVpZV6qpF+0uV3Upj7qJiLcHAxkirjsHoZJNTksACygsKXT9gv/s5NbYhXIkUA==","shasum":"718cd1c1215beb90189cfb1f57bcce1963665a1f","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.23.tgz","fileCount":38,"unpackedSize":297826,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCDmeFToeRac0Uibg9sUxY+sdaLkysmOv0ExeKqE44/JQIgL5CkbUg7i8eLSNXoZxffElZrIIuPGkp1NObIzAF16fw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjLDbfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoxdA/9FUxwJwgFD3ZaMyZhQTDYD6l0eT3PKEBEz/JG6HER8d8D8pgV\r\n2upQ+GOT0Lh6qa42FFOlUo843xDpDkkJ+m+0LexO2ZiQPVUvk+U2zLh9tRqJ\r\nCttUFnaZ8X1Nh79wAu6dCU4bIevs1DyiPkpcwxJ+Pek265PHXQbSmozALdGH\r\nwcyX4Wte5RhxFWbJbPLBGj0bzCjG4/uIerY0lMenjVq7yq/Ebl+lmy1i7tEU\r\nhrEdKCXwUKhr+3IBC3Cy2RiXHvXuH66pR2ArgA26DbNgniMXT6dA4Vm/iPKa\r\nQnKXADowVCQLv79le8WkbyfWkMQYVxJnNy/jjb6y+pOn/VGpEWdmAd1Frwrb\r\nuxFZFWahK5OcOyhhlS045MfadTNj6C0VF5EYv67lwg1w6ERK4Ld/YC+kQOf8\r\nqfKxl88h7JZoLLjWzhoYHWUYb+sdBDptKLAVMkCuxJxbK6G29Yf6a3MTdZZp\r\nw2IQRCISQhTD1oW+vKn+UsJ0lVVBsKZceKCWbDuMutgIlDZVCmTqwSsNyzH5\r\nytzXy6/WgFqJYFaCtlNfjSpjiq11vvkD593qE4A2vO4R8JBHfuuEqsaFboHH\r\nj4giltrP4wsc0RIVfYDWrJIvtHAbZvcVdK6jnFnkVPXX51PTHpW5Rj3JP842\r\n6vcWCR7mzBoyxuA2BMNP81ZcdftWnS6LkI0=\r\n=cpAm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.23_1663842015021_0.9930409178939392"},"_hasShrinkwrap":false},"10.0.0-alpha.24":{"name":"typesaurus","version":"10.0.0-alpha.24","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./retry":{"require":"./retry/index.js","import":"./retry/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"ae0659dfa536c99bddd52f61a221124d5b4f48d5","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.24","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-S61ptNciLKx3iC+WN6d8lbxVFV+Vcssx+6p7qA/tvMuCTw1Amgn+bj1YrhTkXMcLWh6WeRG/Rao145f8lleXEA==","shasum":"4b3fab6cc91dd3327354e509829632d3f319cfae","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.24.tgz","fileCount":38,"unpackedSize":298365,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHwbE+77uqZwCvw9tzYVmKqLVBFDFugbnqzxiePfKDCsAiAnK3uQAv1tQdjaKHT33HsfzvSC4TWAaKKWWoF72jUSyw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjLYomACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqrxg/+LCW/bXVFv6zRJjv8FRz7TNvxsgvB/pCKjrWCC4PaonjkynJo\r\nX+Y3iqT38DGphncAlsLdXKJhO8jK8NCW50xa04P2J8qmf5UAK5N6y3UL7WxM\r\nQL1pbQcQ/ACWYOhHT3/cL8RYm9UrMzzedLt51kwGVBM8yz5BVNJLQGY7mlEA\r\ndYvE/2HaZcEKp6LjabJmO4Je2g1aeW6YK1Aexc4zJIhVBnCEEjcf9u9kSHic\r\nzB5bLh+oZCLu+DPwROXMBibv9tY5uXeagWzcU5VuWO5Qmq1JpAJWNtXZYehf\r\ncKVuroXxrXNACl82KIALLsCaVFy5NQPVpqo7OED87sbvkigr5vO8M98OQ95r\r\nTqdZ4z38CAdDCXg+24MEI29qF0p1fcrhVzdGcxcOCGQ6kp7Oje4ZXnfdaXEp\r\nsnZbL+zrDPlbi47JuouUPOlapusiI0ohGeqVP0IjNvcIvrepedQYF3TmPpLI\r\niv4zLYpEK+r0ywCw6Gj1NiZC4s9bmp6B4tRlC2SR5HOnbZ5/pFsgGhMo8PqR\r\nsd3Ug2nyaeogaYPDkR2QLtIcemnOwkRGjyvlXHybbNnNEEyLvHj6ac8KSjwA\r\ny6E1m51h/t4Bty48h7UaZuRnXlBHZxLWX9Z1HUOIc8FnnyauJ114jhoGMiUb\r\nSkWf5qCByKed7ifstAuXUb/OI1SjR3vWnyc=\r\n=zlj2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.24_1663928870100_0.587341168279212"},"_hasShrinkwrap":false},"10.0.0-alpha.25":{"name":"typesaurus","version":"10.0.0-alpha.25","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./retry":{"require":"./retry/index.js","import":"./retry/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"ca667721e608b8334a6d2e3ab2d46ecc51cbdf95","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.25","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-PU5ALorlTgUnFG0WNARIfkfhyuTu5Pn9ObsmmvjMLU0utAByR6c2klhFgdulnPXAGtqt5GUiz8ejPc71isQEkQ==","shasum":"6741c198c10482f922566f2320a323366a967adc","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.25.tgz","fileCount":38,"unpackedSize":301043,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDattQ0E1krmAms576w1/IlrtsQWSHbcGj09VIxtO7lJgIhAKdHk2N1Qh6m5t6C9UoqZVYmiaU3XGhSdAQsdqcD6SeE"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjLmvjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqT6g/9FA4DoFIvfGSIC09c1RCBF+yIDRsn9MbltEcnDWowolaKMivc\r\nDJOkXVvTkUvJRCdkt5IwOpANx1yMbGU2tEFBD9YtuOYnWzS1XHdYQiWveZ7J\r\nNq735NdWIK17RZbCzUrGumSxA0bU7aLnSjntcE7jcOG5MK4ZQWyF9xZh+sFY\r\nTLaMTcbKM9ndpzYCvccTgaHD2B2SyZ4AiKNi+Y2Qc7PtJiygLsLzZKv/+MSO\r\nVUL/DnG7G+QBIl9V8PovDF+L9Qu1KzlZdrxbP3BMI/Ji+Gs6hd388LLkGb1z\r\nzMkeDq6nSL1XmP244nHZ+962u6VFTMmUoSDfN6/BCey5WBrFNA49LdyGR+vo\r\nLXjVYQfatDa64fim1ussE8hhYkyeW4FsJblLur7oYsg9g7D3WqbH4RP7TNHA\r\n1hGaXLo3k8XuxQ7RwZfh6lcLe9pfgVLUxNIFU4Js1f9EWoRAOr+iNbGbPMRn\r\nhQ9hkjD/zSvqvH2g7RSxqyLje1cKMLVHuMui8oZLm1HJmY+GWNFmjI82T/S9\r\nNrTvh8rrbC9M1oAO0cBz9uMX81KF4IFMDwz289rrLYtZ1QqchCaNpdWqEag3\r\n/saHLtBA+ut8rxXORnQ+bqkpz26Kb/WwIacAYYPrYAaLt7bV8msjc9/tNvJR\r\nf8YOuoXQRL+6CAHEQK8drsO6L/TZ/JmEZ8I=\r\n=TvcD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.25_1663986659526_0.5432079609672218"},"_hasShrinkwrap":false},"10.0.0-alpha.26":{"name":"typesaurus","version":"10.0.0-alpha.26","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./retry":{"require":"./retry/index.js","import":"./retry/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"fa62f2445516ed4f11a17beb642e05d4401711c1","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.26","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-uxZw0xyFPL5NfyHx398PmAk/50e7HbXlfSyPFnFiFLcSiFkfkqM1Y3oUE6HRsEMGeAjZYI64Nml92BhGoNAo6Q==","shasum":"f2fef452bcfe30c273257b185a187ab1eef86c92","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.26.tgz","fileCount":38,"unpackedSize":301996,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdtZf370ABXliEABLzI2uOCBVF9HvbP26o0WtKbrSIbAIhAIuE4bw6ttIA8/7jKE4v5IrfLXtN5Y+82t330Rkm/r3W"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjMPltACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmocMRAAkZzq6/XBBgcoSlVPK6nSmgd42wmmcSI2jAHy68b8lmxSMCzx\r\nN0NW4Epyia5U+Bpp7dcr20rilk30ckOdKLAmlbyP2gQCcovv5W/GErGdEM+h\r\nMc+YEsb98wu35eh29sTlCOMXzFuauNuS06lrJVYAlAlSA4bua9i9s50x4kW8\r\nM1kaeVa4zopXIqaKRk2UkeWFNX2Zu7M+4feqUs7643tVF0KA/20BILeCVlyR\r\nzlBZSUcaE29owhaxibrDKX6I1M3zbxXRAderwjPENgf9Ob4qu9ZeHYYTRdKc\r\nnHRfLT8UnmYvcIjZJbSQlc3jkCdZkJQfxpWQwxEmfSfGyWmOxmQFqHp8sZci\r\nVErOQ8eXfaJb9XDG7LmhA/a6RN5DcQSrGk5Z+ND2ZpJvyHrmbr03FTfnuFuK\r\n1VnjIDq88Kno9ZA8h+VxzHAex0dAkFU59h6Vb8XQE9uQsn/GSigesqV1dSj3\r\n7bGhPjL6/G53W2ggkXcyQortmqPi/CmeOcg+ffBEjk7hpo68OE3v8DVKDBNw\r\nmqQoi3tGP0zFis9Oa96IGgcvg6O+xVE7JXRFsQ1hvhbQ31ypPwjlor4lb9Qj\r\ndSsjaKy4R3UJUHV+EwnG/RPqcwt97RoZmDM+C51DM/5MQZG4t0MTXVm/cCKF\r\nvmznS2EjlBQswHd23gqAssCz4hoFpOIaE3s=\r\n=5lud\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.26_1664153964963_0.7406806576475273"},"_hasShrinkwrap":false},"10.0.0-alpha.27":{"name":"typesaurus","version":"10.0.0-alpha.27","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"db142baabfbbda8e07652e11397f87071a6bc6df","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.27","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-ur6LRiBFhGYnDMimAibyN4pXFeWd4P1f7bgiBUamY86mTM1pypeFay4h3EcpTzqJLrBqjy/BTbrh8uk9bWvdZA==","shasum":"b0d15d2956b1ca34976326dafcd19cc7d3838561","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.27.tgz","fileCount":40,"unpackedSize":304266,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAPsv8JnL/Xc32I+GZvsc8SQalDpWlSedN1uOawVzxBgIgDmRHRdUGrefe055RrxfhBjUDzXgcP9AKROHocNYdpsM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjMSoiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrqdg/8C69jemF1OwqeePZjIDldm3D5ermI42F5kF4KtqbIyqmFcacV\r\nACuaDse6T8Y6HBzUHVBonfSC5FAYaHubEJ1Q3fnOTaxKpi7oA+sfvBFWWlk8\r\nR/Jl3AFL+uEDelAz5IVB5/Dk3LMSMlSqAx37g5+8yDe41fRWtaLuSXFm6Luq\r\ndCnkK719j2d68Khfrufkv/OaN2LfN1BwoJhsblNczqmxOps4yYqSc4wvUyx1\r\ntBheAjrRi6DppR/+IlM3/PeiWdWZ1SvM1sLAVnA62ZxW+TytXQBzFcXG8/cY\r\nJKKerGzorIes9iy2csDk0NSC5VKCrAEput+Ql6ji3mZeK4Po607ZqzkhBTwa\r\n52833/Q+t4b16qv+WykE554+1BIM9cgWyAbOwbxxdOSuaYuS+xLOhrHybHk1\r\nosP7IZWQUx/CQ8DQ4qjEBpgFoC6pOlDiRS6BxjP35niiebLypDbcWUFL9oDB\r\nPh2ArtwLMKJrg3+qpziX3qaUCDZUN+8G+hJZ3lYXGo6Xj/JcHJgn+qi7jihi\r\nXFDamQTVC04wxs+sEPSNd+E8qZjgxSH68W51qj2uQXN3M6G5YiMy9xA750JW\r\nggcjtzv6sEJzIA7YcqsUECNP/jK33EC7yQLOL9aedeQWo039V722wCY9kAhX\r\nt7C9G0/uIeiLvbvpc6NXJLmryQGbpOaexfo=\r\n=3jPG\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.27_1664166434516_0.9112478415155465"},"_hasShrinkwrap":false},"10.0.0-alpha.28":{"name":"typesaurus","version":"10.0.0-alpha.28","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"ed572be1ff42735df87369dd15cd07b9708d3be5","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.28","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-02WE1zXknCiXO0flP3Ixqoy+MzSShODvHIohPa+9NdEVAksGeRltdmMWDBSHZ8y12ljw//MLLh+UvwO0ihe3SA==","shasum":"9a75d0329d13ea722ce41caeb1ad986f50663698","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.28.tgz","fileCount":41,"unpackedSize":311569,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAfnFjLbHJETbTYFMLEOuA+NnESwWgiehApZp4AiyA36AiA5+htKTv+6SyamfNk/ggFEIS7LnGajZVhPBsPMxering=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjOmNsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoFlA/+Opmaqngus4gqwQoPqoCniFVmrQi4H08nIkiAgCq6g+IYsCXs\r\nox6t0ULHr3vC1SUUwOPZq1d8PSiUUPT+rFxxBpc55NCIYsxjSFJZgMfnK3u5\r\n9T0WyzTvD9CQGuhpzFHgjBIrp3WqpXvwMwEEJbAfA35mu5PStWqesYqwp+Rf\r\ncM3/vTdDUgT9jN4FcOjvP6B6YUZ+Ien382er37ayEgKjSlZsd6q4kSYqoPvr\r\nH9BDqT3juGcH2XedXTbGgGPKl5sB+W5uQUW9rZYSLg5dpxKjouy1rlDSzls4\r\n35jsuF5/dPIEa/E/bkou+elosA2vzSA0w4DlvIwmMNpGumxGuFrhee/MFb3w\r\nQ6K/IKq3bpOChN9wMIlRsE4TEDJiB7X3P/rIw5wTimUji4jI5kssAgq1xd+u\r\nRWtTLZQk00k3amBnHegMKchS28SEEZsOmbrVuOI8jYiW0QrfPFBYSKBsCX9w\r\n4V8ghD9ethj2601VPJNjgR2TLWzxaNRRm048pDj54gCShcGxBf/aQmwUSIG9\r\nhTTtriaI9gH8zosS7Dj1xi88jDRJcZ+6dRcxJxzXrvaOeRQnP41bIp5kMWnt\r\nBsDeMZbd1YZftJvTxVT3JNiFCd3G40/EsKJDUokJY02Gub1Bn8cA0O06drkA\r\nV1dN4zJUCTrBK3jXlRpF8Cu+ScgDbT3qIUc=\r\n=1wY9\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.28_1664770924192_0.9906677669213293"},"_hasShrinkwrap":false},"10.0.0-alpha.29":{"name":"typesaurus","version":"10.0.0-alpha.29","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"ed572be1ff42735df87369dd15cd07b9708d3be5","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.29","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-9fsiCJQe1KWxiRf6R9yGl/ytbSohAbC+aQquGgJ9VGEFc3nijqgzfTrgURvnjLET4EmjJzgeFi/CntdH9tHSjQ==","shasum":"2dba386bff622d62a142a821c1245dcee137e46c","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.29.tgz","fileCount":41,"unpackedSize":311568,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrSvt3ICzEaLc+2fjiEjZxiKEhKxx1wH0CYKOHyB1AFQIhAKQ7pZl2VUfD/A8b9vUrMX2+4/Imocmq5PkL5NfY4cNT"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjOo4CACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqqKg//T/QySSPV3C+b1CZkc/d2KYDNkqKuexo27AS4dPWKFrm/Tz/O\r\nnJzUJWHc2NuVEx/Czkv5mE0bNq5VMthF0hrqPqut1QkfXN/XOEHxcwWq3WTb\r\nGyUEjDeTn4DhcDkFnQ9Ol9uPEPrBY+AgidJrC1olzSxb/wJw2FtbpdRs6wim\r\ntNSv46zxwUkPw9qXbeMWR9ioYkk86imh/kPqp1a+YgSRzQllA66jMCPSt5Ac\r\nUQhITOpVCrtfcRTBe40iia1xKKyxXNAMaFYmBwSNcSf19NQSKkdl2WtZE+pU\r\nZUuPGv8wiSMf4igav6JFU1sAwdHgRakkcw9RQ67QkwPYuGTf9TrDYpUqQpYD\r\nDdkkjdT+AFs7i69+GaZoWp6gpsOlkFbzgJ+TI5VKucmpQaFXnx5Th2ZgsBNa\r\nQIz324LeEeG+LLW5ZfoyuaTBXvOCt7WR0WDX3ZQwUXthLdgrRufulQSDS4jA\r\nOAIijoMTjxSpzl7QJct/80Hp5DbF7apkJb+lCFptswYK5mPr1TSuRMr8qWpC\r\noUf4tuEbpphj2NzXR66/9bls4zcFwPEYS61HecjxRKZ8WSPrZD3NoHyqB7af\r\n5DsKCPV/bRz9rLv836ikkkEjVSck6hT0uDjBEIVSpUvZYOvRRXTWf3IaNY3o\r\nPxGeE/w/X1NkDEOrRjL2i2ffYr9A9fORai0=\r\n=CWak\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.29_1664781826744_0.8469908333514582"},"_hasShrinkwrap":false},"10.0.0-alpha.30":{"name":"typesaurus","version":"10.0.0-alpha.30","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"8cc50f812e946461afc19c34523471671bbc37aa","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.30","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-V0bCzZS5SV1hcxuOAqDSSeXIbygLTZ8vfycQhr9qw8afxZGZfkvfnWlZLn2ULTxM8X/wKx+NU8+x/xcq8gcM9A==","shasum":"b264b84774ad0d67dd52d96a15f697d507d0bb05","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.30.tgz","fileCount":41,"unpackedSize":311570,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmdru63n7pjFrcG9RudxSREj9qczg5zs+zbOiwkV+9hgIgctnpYhraVsa17Qui3lGOYyxne6UOMBuj6ZaA7/dJtR4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjPP2eACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrTSw/+JiauVUvCk5M1aPO9idzSGmkvAFQhy7a9iFXa7vJNPRn/vg+k\r\nVNS+q3KovMeAbUe1YSmqExfrGmBmeSWBmrsq7olwZA4NH8PcOiP6hI6zp94x\r\nEhqr1ZbCE6J2Xjb25WqPAhze0bdVQ/tUn8nwSja7jxRnWfpm3LFHlnB8NfKy\r\nrtN7IvxuivhMrQQCVme9i9BwyoqyyX1JzJWeL09u1lmdHO14RXkJxvzphAkv\r\njFPllEh8rZ3TgXxUBwUJfXJNV6Cb8CQx/gNnOsNlPyE4UCLViWcrhQzDhry7\r\nUhcuItziBg4VM3sD5c89iobjWd4rbe79+qVvLQVw3fmxxjpmqsY6LPG9GDyX\r\nU+48g+9TMsKU8OQ/XG/8cmEWfWs/BgcH/y2+utj/Byh/6FbisgeRiUWSzKJL\r\n7f+WdHiGi7z00hlJQ2zDode/tIVsevzACYe0CxWRNN03EfmGCQutiV5dDR1u\r\nLDvUjCo50haclAZbLCmuFR8bUK3hC9IA0wTwT5otI/YkZ9znM1PWrlm2eHb3\r\nanuiGVf62RQa2bnatnO9G2ew6VdFPQc1zKylAuNkpjLmGeA9BwZvH8L66ELr\r\nciAfFTigwGiMzjEi9vnShJuiEGHR1HVGz1ks6tExzh1UtVhO1Y6CEXDFIjQS\r\niGHux6RZlqojFesGYmBDMTiLkEk47mQ8LFM=\r\n=vUic\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.30_1664941469821_0.3755779634504315"},"_hasShrinkwrap":false},"10.0.0-alpha.31":{"name":"typesaurus","version":"10.0.0-alpha.31","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"56bf40aa24532a117dbc5ddcb42363ac0843512a","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.31","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-HtKpcsK8pmK+nDlNmKx/h0N0PhdvstVVjNwSSmn/GoslDlDr3XY98APsaQiTjBAHiumjFbmbYsuam3mh2Ucl0g==","shasum":"1431b280687d44a7e0311acae8ee257cdf0880f6","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.31.tgz","fileCount":41,"unpackedSize":311482,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHo3B+nBvhkc84wveAfaNnWEuricbgn21Ot9LHph9UU0AiEAr5ouI+e3+XxaHLn7NODdi1zS7GkCIyY825wYiy+P7xM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjPlTDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpabhAAi1o9V01++buo9/TREHgrZIEAFndpPiw8NrH5f+OuvWWtuRrW\r\nh1wYPVw5W/R1aIJkLCfud/bYSJbCrgOFHS5Uo9B1LrJ8Lj3NQuTsNBwpq1ac\r\ntbrS4wH9HeLyAuNyQfhiuCUngnUjHH/6cmvcqYg7GEMkcIvD2JB6Do0++r0Q\r\nEaP5Pfm+PDpNludFYyX8jTtPP3GqHN9So8iPWoMqFLCWJcbuODzMAtp9sR4N\r\n72th+LaOxaq9fhbzE851hPXSYVjWNOY9DQIfx2XaT1wg7ZPTkKyqHYi/HFq7\r\ngGvOTYrkzbprgGF7dbBP0SzpxCt5BhuKjiS0HEBD8IP+qWIJyGX6nGUq4+1s\r\nF/js8FaIKeJMqp7mZNEJWGeyE7W4vOQqL23OIr4tsRVXPvUZ9q/i1VFlvAza\r\nQhfz3McrfZTKAqUIfPKXyFuXXDZlL8Ay7lBinFGnwXfU2pmM6td2MpYKp2Xp\r\nwicO/Z830ViEKImrK5xsjdytFcF6cDZb/uCv+gAJcmLC0I7HImO1pmb1zs9q\r\nAelrBdj2eVcJpp6m6pWhGCO4sMazbXSnrS2SfUrZ52xu87QFkHptAblF+zTY\r\nAvPyN2W4JzY1dipMusp0ur4FLTnC9CyYmGJ4YP7+q4IGxlZRhA8Ck+V6b9IV\r\nHWdWU90Yefyi8OrDkY44pJuZO3T4EchFeaw=\r\n=JlDV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.31_1665029315029_0.43438158220004364"},"_hasShrinkwrap":false},"10.0.0-alpha.32":{"name":"typesaurus","version":"10.0.0-alpha.32","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"d5e67bddba6bb29d3ca226d9829c4344079b9bf5","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.32","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-gZgd998y57zgbqzLJ+8D4C2iv8CeaOIkCrACQmqP87d+VGx8TvAzXjdNHrZweKTp9pCtSYpV2ShsmukuB0x6eg==","shasum":"69545413315b0e2b688b6a4bb17a2b2c69956c1f","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.32.tgz","fileCount":41,"unpackedSize":311882,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEQMOgIbxLVUmY8ATiag4hGnQs2wtSkAA9JxCp2f8ErfAiB5dgvi96cxVpj5s3wnZ0Gg2zDnIPuU0ZjYmVGHB88XcA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjPv7TACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpntg//Va5kqicL/zwr9P165JkCONmxg6cTlJ3zjfZQzHZVIgo+iuAp\r\nIf0iQ862mxctRVkP461nypItIg1ku17wAfOcr8wCWCBC9BTAb1UacWFxZN6K\r\n9r7SJ/2+4odaDKuw8RTuYQFrJakX8t0q+8aoVyfCFHVZWWIEOujJwlF2KR5y\r\na1xIvgsnIQtWMYsJqKJOiDUddmoeWeS9DvNJTTIy/Q+AgvVEtUXBCzGXG4I6\r\nr4piZnFkIdCCEpQ2BqR3TC6igX2zO4hKsS7f8n2THFsUn4B09Vpil7ouOUf2\r\n1BtPNHeLZstNATp+CdmkX/U1sbAiqFRW6B5xyOxHYFHS0c582ABaMUpcsNcv\r\nF3XyLWa5w6PnUYhr58jU9QoJ6tDoXjDqNb6XbCeGo1M6A8ow2NQTVceyFSwI\r\neZQrgGOsCSIQ3WMB2P5SBKfmyOFGxeS2Ela41DOhpVqh12mEviFiUpOX4B8r\r\nXGb7woVuC2Zr0e/EZnQVH2xx4Ok5YhYwQXVYYkO3FiaAmq0uzyeN86UZQ+MO\r\nIIreF3nQVTyqqRDopAhm0YUteIdk2mlssw3BpTzr+WErOugW5zfzXLWhTrwo\r\nm9bPQqpoLF0wwIk+5358b5k8UyHsFsjNoT21WpIW0gGxBACzSidgOxRM/IMi\r\nxo3rgivN2VNrNvruaQmR4pvltjxM+gdts0k=\r\n=9VXw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.32_1665072851494_0.0073822330580102236"},"_hasShrinkwrap":false},"10.0.0-alpha.33":{"name":"typesaurus","version":"10.0.0-alpha.33","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"},"./data":{"require":"./data/index.js","import":"./data/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"4fe9156839bd071c099d5f30aaf4074725acc767","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.33","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-qRsvtI2UNh6aqLKp6xo0LtPnrBNA4RZ7aK6MekaWoDsx52zMqqtPcCDpO5dExyUsFWeCvtvhzYL0B41R6tvzMA==","shasum":"ef986c7927e210c3251331a31a4a151f32bb2443","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.33.tgz","fileCount":47,"unpackedSize":313589,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5h4wv0IJ/RtgvAcpJQJz9H4uSc7xgSsDYKEA6wkIl+AIgaLf67D2pH4ik9ohMv+9AYyfhe+985NmIsw2MlZAYMiE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRB+CACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrEmA//S4WM/BdqPYWA3VG41C6eLQrjGFDGZrn717CFubEjjSfh+6IF\r\nFY/kOlnw9BSQ3adpOn5zHIV+sewL5z9lgXgoNQJUUD8Bta7VtlsXyTKG+uh4\r\niVlj/zBAPCbAExRt7MYEcaxBkzpiOFvKH6EbvYyvQ5RBvFcYV5Z5c0DBTgJQ\r\nHEq3iTCMFrF07KFjQbIm3KUUkwUZXuvKrVNEXd/DG99ToOe4NzSxZ0UFZoKT\r\nH2LDjPloTal37xvtdxDBO4aqPIfNWs5n/h0mGn2LpOTont2GZqjketMwnNmO\r\nRst4AL+7p6GHDxb9S+uGxyg8eYJIsV1Q8gcpqsnyHFt1N9bC9F2572aAlAd8\r\ncrV+06pZO9IttOxw6gNKz4B6GGwiJjhYtfHcv0QzHuJrFeVlqFXWF7p0/hpb\r\nwTtQl+YGzs2Nv3qDxfrK/yC1nGI9sM/vp/x46qBGGMk9RhGL0WhaR9UeKUU0\r\njZsirFbSa68oOoqezZ9YXac6HSSr5gZmKfm4f5f1hv2OORrwMkcfThephIqf\r\n8DnuPrmPKwMYUZqIjAKyMzNc/7yuFOvSS1lq74xFBOmfFwy8AsQuTCZdSfGc\r\n6lx8RJL8v6XmUv7lMU29GJm1FV/Ubjz8LPeRpBfvfU4b+74TPsROK0a3VF0e\r\nyk9bUkz8KTSWYKbjKSI3T+TRZzOyGibbzi0=\r\n=7gqs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.33_1665408898401_0.9637307692363952"},"_hasShrinkwrap":false},"10.0.0-alpha.34":{"name":"typesaurus","version":"10.0.0-alpha.34","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"c509bbaf10aac731b74fbfcc78f4b41697bcbb4f","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.34","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-iQCt0VuubfZfZ9VEXHDLgYhoMFPgibWIIjO61I3oqj4PWGHe/IYtJ0MVMWABg7OtemD2d76LSszVHh9IiN3UjQ==","shasum":"63104a2062f7bb41298097e62e61c735ffc80ebd","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.34.tgz","fileCount":41,"unpackedSize":310829,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDaPhDWUikWyNiXCld4a4BLwZbIpKLFVfkMtf1XI1qOSAiEAo+w/fTYgK/OooslSIPAXSPbrtCqvOLeFz2zzIqKfapM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRSeJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpWTBAAlD10TVevIojd+L+XoQmX+0JlXrMvx2nb0NgfI5kWx6avlyUR\r\nynGgND7Gpf/ysVtCf4uxuwHqCoJRPUzpRForGiXwaGvePlxuRGinZCsLaoYJ\r\nUDdzHmEPn5ZinE+0rilmsYPAHi8o950/D9WeYPAG7UeClAFd+FIA54u2/SzO\r\nC2U1Ncv6iXSWoBjUb+YpePIeJm5ExseuIoQEsSDWOOfkkIq1ayihr0tn6TXf\r\nj6PGKx0uhTjpaqucF8BwUGLUlsTaiKJyPOToagtxerp1ldtAWVAluYWDJnFB\r\nTuBvG5LF5USso4bqlG3XfhLewALrSO3n1UL1rI+psQwlk1dWofgNou52go5W\r\nPUp5QeIAi82QkLaU/TshbnvflmVk9UnZY23XvnbTodWyX9fKczx0ncH3bHAl\r\n/yjIRLArORjWl1egNRwaklWSALLtx2csHn0s5OuvJ/u/G2uKedqn3Fm+ZFw1\r\nHWhPVGakkg7IPmaNm5k5lfwn/a5PXgtsAVpzKFIRSMJga7iLhiNQloqcNsei\r\no5pPY+8uIWt/Alw1yFGondkvsvR+s4kQvrnWs7pXxCo7MDWIxjAvd0kj4kU2\r\nxllq62I2arLSA+XHJXL8HKF/dg7pfSzfso4rzhnwRgWHYw90QNzbiVxBWtod\r\nv3wYvY8gn1DrYUG+r6yarak6gHTUrnI7WTs=\r\n=56m5\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.34_1665476489584_0.7131060967619243"},"_hasShrinkwrap":false},"10.0.0-alpha.35":{"name":"typesaurus","version":"10.0.0-alpha.35","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"5bb5e6d5555cccaf87f748bfabe57de5a1d51830","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.35","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-fKqM7OinKxnJAMtRb+c2DRoAfu0eZPUo5OpkC8HFW0YNg0DuHnKgDZC2qKdBfXJGTSL4BtBEViyDvrXix1xFDQ==","shasum":"a96a35b83321187cd4278df446e4ff751d9f0c86","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.35.tgz","fileCount":41,"unpackedSize":310980,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAcQSnbVzodozHB1N769wjgOq/etFuOXzNTLTkBlG5AEAiEA9houbmJ0ZEXIwcZOxIdWSKfmiUjFJKZOYlh25Hsuf7Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjR8FCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp5GxAAmk9vvbRz/AKA5+t33zhFzpmoT2h/7uIf2hN0glZ1iEU3uKWb\r\nNOx0QON70S/BbUW6SgSWm5jCFiD/hVdcGYA7Ie+ROjJkJO02MfJRDGNgh9Yr\r\nulHMTQ4eB0O45jsmVKdBhVvApMUKYD/CMxdFdQU9u8CUsE6VmSlGib5bvGxz\r\nyMUDLRW7pPqs3XS4Ow3gy2KqeOSKaMLKcfU1ZMgWWEKYxqSblMogVd1qCtf6\r\nzZnL0kZpjvmbdeRv0kl2w8eAs+7GMXON9cT+hK2oVLXy5YuFjU23AM8vVPvL\r\nu60ah0UMO0m4BcjntpippvVfDNzU16VS1r7ShyPQ88Ztq+Pa2dAnXGPFot99\r\n2N5H+It+qjHf9UUtMr27e853PEf5OQGOOgbYtUA/DuQ7Q9cKptC0hlg+M8P3\r\n7K86VwXhE6XgS9Kd7kfLHSxok7X5wFApmaTCL7SKd6FFZn/TCk5Wx1wG4to7\r\nKhaGqjuX3Hj57T4PXwEeg//SKyfYBRvCNZvtBe83j/mAjXf4/xSQvU6OdbD1\r\nieC26XJLpLlVmIa2Rm5Wo3GlnJQ9Pmr/tEMWB5ha39/QND45JIYlCiaWRC4C\r\nN5MdlxAIFFImFZeMYdHwXygp4vWuTCJAZH07ujqvLhB46F5eePg/OR1SmLm7\r\nx6rKKnxDffpOi5ESQYyDhg7ymrRiTS5IJv8=\r\n=u913\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.35_1665646914322_0.6120508634923734"},"_hasShrinkwrap":false},"10.0.0-alpha.36":{"name":"typesaurus","version":"10.0.0-alpha.36","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"48368bd9079d29dff26d3a77d69c018bb892b431","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.36","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-yNjveCK9470Tbu8JtMFRKvmy4/4wfgL4TZvBSfkaSz2mDfomKzDzuBjLqvl1BTaaxjM+3EOtBw1KDGvXvAeg7g==","shasum":"210c006f9a10f64d1265faa427e05c91e5f02010","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.36.tgz","fileCount":41,"unpackedSize":316124,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHFVzFKBhCLiICO3y8UlumNcxBXsaF7BKGRJNHfli+4UAiBZxLx2GXN0TLJytGKmKszqACD10Taqgj3tKhxp0DQICQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjR89CACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr/rQ//evUGVsDiNRRCww74XSSqHDmL1YoGInwH5C1aRJRuKRzE9Pvr\r\nK21lI8CObfDGpPsgqRyWPyCYacDwGWExb7cbvKvqL+58Jf/aD9BIxvV8eFnd\r\n7Cw3JGj9gLm53SBzR2d9ZeYvQir4x/0zzYrA7Q0aDrisc5P/He2ywu+vz1RS\r\nxdgyY13UycgpxhGU38ne4bncwbgrepESjmq08eQ+C2wWpBrn0XXwAotAM7yd\r\nw29F1dp3Ugwb0WvN2kFbyGJVDDJbtMcMLt1voruWH7z6UM99x/c9B71hkltI\r\n9mmG+6HHgsz//Ln2H3pPbKb9jkhVFxBKHeZCFrAYQWGdZiQ+KsHfHZGLeOnd\r\nnGRQFY4cyD4D3QFTSZyMl3DJ871w3QkgdX+S7Pe+h+Vthcu+oN165y7uoq00\r\nEarXAJSF3wq3KVqlAuctdJJ5mTxKKjTTUXzMLTaNNjmJ/0cq55jMQmCFwuBw\r\nzZ+Smv+3c5ORz2TDf6uxOQiBfI/JAtZI0kJobGK6GawL4mhBRyGpMUPq+nRQ\r\nlFI/49EsjshFzdpR0CgJt23krCETyvrkdso2c4t7HskkMTdA1gI//LrnJTce\r\nKUxZR7YF7DZVacnYV+znm+Fqyrvnvi4jRhC4fZE7F2IHWXd6oKDR0wWAa4UE\r\nEqVuQOFj7gKsE2IWSlv9yq1YwfQYLPBF+ZY=\r\n=gjKb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.36_1665650498742_0.5200167319127094"},"_hasShrinkwrap":false},"10.0.0-alpha.37":{"name":"typesaurus","version":"10.0.0-alpha.37","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"5d141077771f6a5ac18dc8cf20222b943780feb8","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.37","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-w4q1SSVqADYVSECE4/iRUlOM1PGZ7GH0LPztaEJLhQf+quSCp9v/oLYScmzPLVij4oi87A7ayqQIq6A+D2i6Rw==","shasum":"cb456ca7c9c9a5f335e685b4660ec778f730ffd8","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.37.tgz","fileCount":45,"unpackedSize":320386,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCIONNDNfM4RJLPtXdMu9nwatZbaZz4aCpqnT0oL/jr8QIhAMvpwSIIV2uAwByz36ptgRDr/DqFkyTqp5wgspC1dnTI"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjSTcuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmri7BAAg/5xHIfzA4BuELWTxBvVHG2OaKaFW+16vRxq0ziwGo3nIJJY\r\n5fDKJ7vpVrqV6uIIyY/t2nGSfHw7pbUpR5wuT9T8i/wje21FKaapJV7mOxZH\r\nnPMmVY/l3PCayZ9nVVKNaF6cKEoc6lmK3e8irf/mC9iSrqSilME0LTX5UjdF\r\n4GewEhJI+o3XoJQ9IEjQ+mGkwKh8Nc52IaQld/+RCeIV1eXGh0clG3N1IaGq\r\ns6gM//pzXGUqnrSBS7jelUuBoP+fRKrXaUSOOotT266ldZUYAigfkPAfrnca\r\nVHalz6n05cJVn+44nX+09ZJDY2KT53hH4rUU0vKO25phu99Gl6kklT7dHyTE\r\nCSy4bS1zOQl5WWxvggP/+j+m0rNn55AWD1hjPb7ubGvwPy5BpiutSPRH9mpF\r\nBlLjlg9D2jn1xy5jQcToLN5lRJmIUx+zsZHf8okgCq1oYNk1I+6Bri6XnMDF\r\nlheDnm3thgxwZ9E2sIGeaaWWJMXASlPk1LRYosiwJSUcDY1BqQYhYgKmiKM+\r\nSHMTvY3n07xcW3FswZhXoHOGzjVxmLO4vxAyV6emVFFNx2QcQ19vnclzCnNo\r\nGAL3+NnN0tZb0GVLszEMuuCzgOA2L3YLMqG4bn971DZkNkC/kMQ5m1rT4jjU\r\noIxqVVcjkHWuuXX6Gq5I/UBpkx+x7l9/8UE=\r\n=6kbd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.37_1665742638406_0.8323819735884952"},"_hasShrinkwrap":false},"10.0.0-alpha.38":{"name":"typesaurus","version":"10.0.0-alpha.38","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"03fb3592470f62ed56211fa130a50d6462be14f5","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.38","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-0bmqa/U5epYa+6QGLUKMCCBgGDEbE0G4D9MVwGsslJNp/wCdO3BuY+0DEL3O4uRO5CIgZhCJLQWEkwG9eQDX+A==","shasum":"6bdf2b739843a4ceca7fac5aff42b0473bc530aa","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.38.tgz","fileCount":45,"unpackedSize":326433,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8Fkl4QzjrCh1c+nbXZ1MFZIbmKZX1pc3M1YAHxI7LUwIhAL//myikFk/IjaxBy8WrPTwjsX8Yl0GBBonH5CnF4Ha5"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjWe+SACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpdiQ//WsTkG+JBos05SWv4A33xsAh52rSOv0pEqNgGQuOdEvcPgLee\r\nWNmqrcOTCDyJCN3mf+koAqOENaNK1vLEdhHVD3ooNWMLe21pXJkvxwaXQU9n\r\ne1p8k8K9nH6D0rUp2i+LVDT3tPNvNG1brlsrNCRSZoMobHzj4GUHc6VZAZK5\r\n8vdJIzjndKkEUNRM8HBQGKgeda5N0gYem+xGijfcSTKiw834xBKdNUgI1RzO\r\n2rj7e0xBkZdCYTYZ+Tq/Rn0o2afNhZkDD5O/+c/OljHA2cLpNaD+1A+wDuC9\r\nT7ZUV4Gfh3a2QNaCPS+1e84MXACJGORMwCewZ6SHVacuUdCC6NB5sYV0EDwa\r\nWPw1yiUXXYjXVzGrjNxhpY1H+rIrh2dnq4Z1BfyQW0Z2oyoxFjTNg2+qLYFg\r\n5oSFCFYuvSgwGhqJxKhqRfkCPlR3gbVGtaJBhn01c+eDIGQ8UjtxxFxuCqS/\r\n0uWauSELdennj6v0/7j6/Y2T95kfOWv2AHTLTaA59DLfQvhxCWJX+TnMOQ6q\r\n+B1TUM4k8WtTuRd3lNt5yPKEGve8i0kJElESlOECegyZEAoBFy9J0lI3Tkkz\r\nl8Naq+Ss/0H2+9KFSU0Grys4YrsI/3TMg/WlqjyX362FpZAZ14Qgpt3OsVwZ\r\nV2pvaBOLq/ftUWEV2hYvclbUkXR3m4gQ0vE=\r\n=5Zmt\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.38_1666838418662_0.4733012348890129"},"_hasShrinkwrap":false},"10.0.0-alpha.39":{"name":"typesaurus","version":"10.0.0-alpha.39","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"d20abd2a9537a96e508d6e18b0497a909fc9d0ee","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.39","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-kQzO5m5gl6KmwU29ehZuDeAFtLXik4ZkJHq2si2/e6QdDvsQuZNd50r+0+4RTNxXNkLpGOgLyk4cJ3AP3gNXQQ==","shasum":"9c5d7d1f188611a57b2b919d94b033e1e5829ea3","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.39.tgz","fileCount":45,"unpackedSize":326847,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEaP1oO8+jmCzOxZUByR5yNuXW1PJ3IFaM2wSLpxZTRJAiEAyEQPBBZEh/W0YlpKi8Ii7bG4UEWbSn8vgyu3pmZSnk0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjWpcdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp7jw/+NV8WXMeuEYEgY2OFqvPgrTJUEf3f0XtGLDzLEswArAZ3wFqA\r\nu7z6JAsaep7ErI8FC5YTnzDffYdrFc42pBUJnCVCjEgwfg62F44di685q9JJ\r\nM31TlT7ziHfT/ncScyCQOZ+CjcA3/ITp6B3E63jLXz4GCNj4euxbE1r1aZik\r\nOJB+mN7GRyYjbu/b+PK4IZyu9izfrTveiqjkEJmWgA8C5LIjrlX4YtLDqJJG\r\n3+J1oEVorQmcrzeofjs6b1Sb8ERoGcT4GUxtQG1OQiZiMA2APS0lVAAliVV4\r\nxHVILNrzBB+YdxqD+ep9chjYdpqfG+GG0YuEJUkSvdg20KcxXoCwzFEPiQbz\r\nrl9aa6mKPlpeC4ei7odlSMAfvcdYp/0dx1kNHz79WrXgqX7c2W+WvMss/yth\r\nfrjKLKk3MmtXKwLZoLgq5q8Imigwwc3wSKqh6Rqw5dXdPKVsouRJHImJbAa8\r\nHZM+xPH49OtKs6PhkNsp874ZQWSlv0Hc0Pw5OsVlpQva0vB7IEqAhSu9qw2S\r\nwGLiImOfMZijklB9fRHdWQq6eJaj1gYVZUWa+wJtv9ry0NCVPbAyh1vcD4vq\r\nLxKnGUgcbtzNrCygqKfUI69FbGZCtVt4WcvkOdlCWGlWVedQhGC/Nb2mQEAQ\r\ne/u+0AeJgHUQ3QkeGlVgMDk+ME1c5v9lpYg=\r\n=iyYA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.39_1666881309377_0.6150239697891522"},"_hasShrinkwrap":false},"8.0.0-alpha.33":{"name":"typesaurus","version":"8.0.0-alpha.33","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"main":"index.js","module":"esm/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/core":"^7.12.10","@babel/plugin-proposal-optional-chaining":"^7.12.7","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.12.7","@firebase/rules-unit-testing":"^1.2.10","@types/jest":"^26.0.20","@types/node":"^12.0.4","@types/sinon":"^9.0.10","@types/webpack-env":"^1.16.0","babel-jest":"^26.6.3","babel-loader":"^8.2.2","babel-preset-power-assert":"^3.0.0","firebase":"8","firebase-admin":"^11.2.1","firebase-tools":"^9.3.0","jest":"^26.6.3","js-fns":"^2.5.1","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"4","lazyfire":"^0.2.0","mocha":"^6.2.0","nanoid":"^3.1.20","power-assert":"^1.6.1","prettier":"^2.0.4","puppeteer":"^6.0.0","sinon":"^9.2.4","typedoc":"^0.15.0","typescript":"^4.7.4","webpack":"4"},"readme":"# 🦕 Typesaurus\n\nTypeScript-first ODM for Firestore.\n\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\n\n**Why?**\n\n- Designed with TypeScript's type inference in mind\n- Universal code (browser & Node.js)\n- Functional API\n- Maximum type-safety\n- Autocomplete\n- Say goodbye to `any`!\n- Say goodbye to exceptions!\n\n<hr>\n<div align=\"center\">\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\n</div>\n<hr>\n\n## Installation\n\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\nTo install Typesaurus run:\n\n```sh\nnpm install typesaurus --save\n# Or using Yarn:\nyarn add typesaurus\n```\n\n_Note that Typesaurus requires `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies,\nso that they won't install automatically along with the Typesaurus package._\n\nAdditionally, when using with ESM-enabled bundler (like webpack), you'll need to install `lazyfire` that enables asynchronous importing of Firebase modules in the web environment:\n\n```sh\nnpm install lazyfire --save\n# Or using Yarn:\nyarn add lazyfire\n```\n\n[Read more about Lazy Fire](https://github.com/kossnocorp/lazyfire).\n\n## Configuration\n\nTypesaurus does not require additional configuration, however **when using with ESM-enabled bundler (like webpack), you should transpile `node_modules`**. TypeScript preserves many modern languages features when it compiles to ESM code. So if you have to support older browsers, use Babel to process the dependencies code.\n\n## Get started\n\n### Initialization\n\nTo start working with Typesaurus, you'll need to initialize Firebase.\n\n#### Web environment\n\nIn the web environment when using ESM-enabled bundler (like webpack), use [Lazy Fire](https://github.com/kossnocorp/lazyfire) to configure the Firebase application:\n\n```ts\nimport { configureApp } from 'lazyfire'\n\nconfigureApp({\n  // Firebase app configuration\n})\n```\n\n#### Legacy web environment\n\nIn the web environment with ESM-disabled ([see Firebase docs](https://firebase.google.com/docs/web/setup#add-sdks-initialize)):\n\n```ts\nimport * as firebase from 'firebase/app'\nimport 'firebase/firestore'\n\nfirebase.initializeApp({\n  // Firebase app configuration\n})\n```\n\n#### Node.js environment\n\nIn Node.js ([see Firebase docs](https://firebase.google.com/docs/admin/setup#initialize-sdk)):\n\n```ts\nimport * as admin from 'firebase-admin'\n\nadmin.initializeApp()\n```\n\n### Add data\n\n```ts\nimport { collection, add, set, update } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Add a document to a collection with auto-generated id\nadd(users, { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Set or overwrite a document with given id\nset(users, '42', { name: 'Sasha' })\n//=> Promise<Doc<User>>\n\n// Update a document with given id\nupdate(users, '42', { name: 'Sasha' })\n//=> Promise<void>\n```\n\n### Read data\n\n```ts\nimport { collection, get, all, query, where } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Get a document with given id\nget(users, '42')\n//=> Promise<Doc<User> | null>\n\n// Get all documents in a collection\nall(users)\n//=> Promise<Doc<User>[]>\n\n// Query collection\nquery(users, [where('name', '===', 'Sasha')])\n//=> Promise<Doc<User>[]>\n```\n\n### Remove data\n\n```ts\nimport { collection, remove } from 'typesaurus'\n\ntype User = { name: string }\nconst users = collection<User>('users')\n\n// Remove a document with given id\nremove(users, '42')\n//=> Promise<void>\n```\n\n## API Reference\n\n### Query data\n\n- [`all`](https://typesaurus.com/modules/_all_index_.html#all) - Returns all documents in a collection.\n- [`get`](https://typesaurus.com/modules/_get_index_.html#get) - Retrieves a document from a collection.\n- [`getMany`](https://typesaurus.com/modules/_getmany_index_.html#getMany) - Retrieves multiple documents from a collection.\n- [`query`](https://typesaurus.com/modules/_query_index_.html#query-1) - Queries passed collection using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\nQuery helpers:\n\n- [`order`](https://typesaurus.com/modules/_order_index_.html#order) - Creates order query object with given field, ordering method and pagination cursors.\n- [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit) - Creates a limit query object. It's used to paginate queries.\n- [`where`](https://typesaurus.com/modules/_where_index_.html#where) - Creates where query with array-contains filter operation.\n- [`docId`](https://typesaurus.com/modules/_docId_index_.html#docId) - Constant-helper that allows to sort or order by the document ID.\n\nPagination helpers:\n\n- [`endAt`](https://typesaurus.com/modules/_cursor_index_.html#endat) - Ends the query results on the given value.\n- [`endBefore`](https://typesaurus.com/modules/_cursor_index_.html#endbefore) - Ends the query results before the given value.\n- [`startAfter`](https://typesaurus.com/modules/_cursor_index_.html#startafter) - Start the query results after the given value.\n- [`startAt`](https://typesaurus.com/modules/_cursor_index_.html#startat) - Start the query results on the given value.\n\nReal-time:\n\n- [`onAll`](https://typesaurus.com/modules/_onall_index_.html#onall) - Subscribes to all documents in a collection.\n- [`onGet`](https://typesaurus.com/modules/_onget_index_.html#onget) - Subscribes to the given document.\n- [`onGetMany`](https://typesaurus.com/modules/_ongetmany_index_.html#ongetmany) - Subscribes to multiple documents from a collection.\n- [`onQuery`](https://typesaurus.com/modules/_onquery_index_.html#onquery) - Subscribes to a collection query built using query objects ([`order`](https://typesaurus.com/modules/_order_index_.html#order), [`where`](https://typesaurus.com/modules/_where_index_.html#where), [`limit`](https://typesaurus.com/modules/_limit_index_.html#limit)).\n\n### Operations\n\n- [`add`](https://typesaurus.com/modules/_add_index_.html#add) - Adds a new document with a random id to a collection.\n- [`set`](https://typesaurus.com/modules/_set_index_.html#set) - Sets a document to the given data.\n- [`update`](https://typesaurus.com/modules/_update_index_.html#update) - Updates a document.\n- [`upset`](https://typesaurus.com/modules/_upset_index_.html#upset) - Updates or sets a document.\n- [`remove`](https://typesaurus.com/modules/_remove_index_.html#remove) - Removes a document.\n\nOperation helpers:\n\n- [`field`](https://typesaurus.com/modules/_field_index_.html#field-1) - Creates a field object. It's used to update nested maps.\n- [`value`](https://typesaurus.com/modules/_value_index_.html#value) - Creates a value object. It's used to update map values using special operations i.e. `arrayRemove`, `serverDate`, `increment`, etc.\n\n### Constructors\n\n- [`collection`](https://typesaurus.com/modules/_collection_index_.html#collection-1) - Creates a collection object.\n- [`subcollection`](https://typesaurus.com/modules/_subcollection_index_.html#subcollection-1) - Creates a subcollection function which accepts parent document reference and returns the subcollection transformed into a collection object.\n- [`group`](https://typesaurus.com/modules/_group_index_.html#group) - Creates a collection group object.\n- [`doc`](https://typesaurus.com/modules/_doc_index_.html#doc-1) - Creates a document object.\n- [`ref`](https://typesaurus.com/modules/_ref_index_.html#ref-1) - Creates reference object to a document in given collection with given id.\n\n### Transactions and batched writes\n\n- [`batch`](https://typesaurus.com/modules/_batch_index_.html#batch) - Inits batched writes.\n- [`transaction`](https://typesaurus.com/modules/_transaction_index_.html#transaction) - Performs transaction.\n\n### Testing\n\nFunctions to be used with [`@firebase/rules-unit-testing`](https://firebase.google.com/docs/rules/unit-tests#run_local_tests):\n\n- [`injectTestingAdaptor`](https://typesaurus.com/modules/_testing_index_.html#injecttestingadaptor) - Injects the testing adaptor and sets the given app to be used for Firestore operations.\n- [`injectApp`](https://typesaurus.com/modules/_testing_index_.html#setapp) - Sets the given app to be used for Firestore operations.\n\n## Changelog\n\nSee [the changelog](./CHANGELOG.md).\n\n## License\n\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@8.0.0-alpha.33","_nodeVersion":"14.15.4","_npmVersion":"6.14.15","dist":{"integrity":"sha512-uMVnlqmX1zL58qIHYyfF2Z/Idc0AURHFImB70bkFpo32ct/ZkuvnbdObJdk/GqYBsazgCJsGJJJBQsLcNFcdgQ==","shasum":"71982919ee3f312b7105052b4f8e9e3b4e799b53","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-8.0.0-alpha.33.tgz","fileCount":264,"unpackedSize":455969,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDB7pbkjFWCrStUrK4ioa3iwwzkxdTr7qgMUmafacyZSQIhAL6ZRo8cqsCwpRwMA+NZUm9XOOn1iFShOq5fNyhxVv+s"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjceCPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmprPw//fCQxxOLRV10BNlZzAi2SUm6H0Y58fd3T1KffvcXtNdX8ux+M\r\nBDlGxl5xGsi8TLCeBj6Bm9yuJ6nvWSYLL2e5qqdgsp+DMvLXZ3f131oSEUxi\r\nPNUBrptEfoKM8jo9xA0KVc3a+JgRkQiXVdXkxfeb71ApiW2Kj+iaOy4O+sOO\r\narI+/Bo+AUauK66pEJdyQBHEZry9iEUSYoDnZ/7msQR6MeZCq5Xlfb8rdJCl\r\nt5p3ADAAErmJml9Z55/AGD4zfVW3xagZbLz+6yFcqjOwNEO3NGKJqaJAYTsU\r\nKi9ufIISx9UrLPIyzaJh8xGGajE3mpQ61Q1IuUOhUcCX4KnFejrsyqGdm4Or\r\nM8BxP6jX7jDSMyN7VcGD0uD0W0fHJug3y6ZT3qKGmadjgjqjaNfmLchhryD3\r\n/onlhs8Ijmyk/aENJo64PR9PoHnPxr1SV2wwb0InT1Uin40Cd3mBDPW0Wmw2\r\nHypbsHUg1HlZ1u/GcenWkPdjbS3KSb1UaSydgZH3sR52a9dmims3as9Scund\r\nTSK4rMJc4GUHboTjAMuc9B/N7RIzP1tU3kQ6tK9PMiSzMvgDOJ1XlTU/47B8\r\nDoRXUX+Eu9TDj8zIBSOmsRR314PifgcU90s3Coy4Spkt7V/CKebEvIAl3c8Y\r\nfcyeVfDMd83ulzx1YcKhfS9BAw8SIcZz2ds=\r\n=mAum\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_8.0.0-alpha.33_1668407439519_0.8051384640720571"},"_hasShrinkwrap":false},"10.0.0-alpha.40":{"name":"typesaurus","version":"10.0.0-alpha.40","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"b7349245302f6bb28a4ea424f2b568ff37bb376d","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.40","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-tzfcGzXOJmOXvPBie8MZVCvbf0qV5vKZgOiYtaZkGJW0SmAZmzQeuxItcS7O9/T+AtBYOzwuhRCqKUIHN4u5VA==","shasum":"022bb1a90a01cc4ee05a35c1c6ccadbd1232afae","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.40.tgz","fileCount":45,"unpackedSize":326957,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEOHkVXx8qv35DWDapIZayQq6YRd7a0jCn2oVbBw16MYAiBL77KtFjPFe2AYYBzDWiFsNm1XesZQ/NXshkpIDQFufA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrO39ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqLgA//YXO+EakvldgNNbujx02jMIkUr6G//0sRMN+OAqysfsb96lI1\r\n46zPFM8l9TSLaCo8aKPAmZutEgLMgWtWQjiXYaKpRyRb0FC4kk5HTTI2Clbw\r\nK7Dps0MuGw6f3ilXVrj0JSDIwLYcM0ZXSUGeQozo7Tqr60D9K47Y5AJmMt98\r\n7Fjm3qoy6Nb7spZG+cBNzR1EscaARdSrCPfV7yENH78g4BrUMM3rWXMjVaJW\r\nwTizs2z5c5nJIyJB9rQpT+w0t2A9jUTFkLMVZnFYXvddf67PVFcSOvlqnb1J\r\niXpP88EZisK0HjVWo3IEmzoB46Uh0aAG8AO9W/H9HuUU0nHuIeCCyHmYYmnB\r\nJ6YNV7Co+ulykdp8cyttokpsDJKNhAfyCZmg6JXDybhbHXopbKEAnh6+Lq9K\r\nMtrZ3/1ro7QC6upapBmxHHPWXnVRRQRXkeHYsL3QPJyzuavbBtOJxTqBObBt\r\nrJAFku/dF+a/uRj2PEMLBMvGZZuMxK/mAej0RJLwY8Lxia6YrbNCZs+kptM0\r\nxLQ7PWyy/j+EwyhMxL2ojoRkyXvRwWqy//o9Irt7GiNo6rGWqtuq1Lkd4EL3\r\nFnbbfI8cCoH1mLqymqEzN4q8YPf9zDi7lZu8v8G2xYxBZryZYsUoF9GZcoA1\r\nHTZlLQitvDrz2PDfJX0j+RpsmcuxKzA7Y9g=\r\n=1N4X\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.40_1672277501798_0.46452311917254585"},"_hasShrinkwrap":false},"10.0.0-alpha.41":{"name":"typesaurus","version":"10.0.0-alpha.41","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"browser":{"require":"./adapter/web/index.js","import":"./adapter/web/index.mjs"},"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"browser":{"require":"./adapter/web/batch.js","import":"./adapter/web/batch.mjs"},"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"browser":{"require":"./adapter/web/groups.js","import":"./adapter/web/groups.mjs"},"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"browser":{"require":"./adapter/web/transaction.js","import":"./adapter/web/transaction.mjs"},"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.0.1","firebase-tools":"^10.8.0","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"0fed4ba36c66104a98d1ed900fddd32a9f6036c7","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.41","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-K3c8pwpkzMiSG8joVLcRcgZTxe20QDObdKP2eJNU8P+bRpDIvF5y3jDkz+teUoqtAp6CAlO1ZXucl9gQhwK3DA==","shasum":"c6c9dffedbf06f7b6375c7ff01720f01e952c635","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.41.tgz","fileCount":45,"unpackedSize":327439,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpUINPKjSGci2TNI4LAsFgBF2hhWrP+zzDkP2ahzlv7QIhAI8vWKcYGQtCRkOQrpeyxmtu/UewcD3GYHyzKlEIVgoQ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrPafACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrPvA//VPWVS69HWcEjFM+YbP0bXuhosDJVyOKRb3ENeWhVjHBSlLww\r\nHuwZn4otrBpsKaw/NLOx6t/CkAP9SBxBFIfmxTB7kQuLEDyNjEzo7AbOTxEs\r\nGJqSJTMmsBC9TX3c51zWoRmMYnLEMPsSWt/Uc61+7nMIF+zSF9Thfld0jYQ4\r\nu6qAD5djak7Z0508l0fCGc7gMlM8Bk2L5K7ddniVQ/ioxKvcf+B8elrT+zLd\r\nb02OKhn9aYd0PgGlczaMQ/HrMmk7nZF0P6zJozMQ5qwrYjQYIlCZNlijDbyS\r\nin1YpvvZDEat0xXiL/uEbIdfp8PmOI6l4fDh4fKz2vTN0rS0MVsXUXZb76mC\r\nifynxR/POO6yXWnQeJNFEFs+CMlookGZSx/4JVfUfNNqOhgbEfRvQ7yU2IfE\r\naFlVpqLm4EBt+R17vbOzdZtR1iYyIngq9Yr5jxVg7YyWCxxnDOzD+ORGTrCF\r\nXqkCC1bYLoJ7yEK22YQaMKM1PriEkcTo2f9T+iodC2W9J044fN5FbMpj3pgl\r\nKIPDcgCf9bvTrHMDJKH5QxheSewbDCwpI4/zq9740W0WjMNiDvoo8rrAAEcx\r\nLPUN1MsMFR2Uh23ODK3eQSAixZpvk5UCLpNvfJFcauKn5kqNyeRpceRRTAZK\r\ntMQbbC0RqnBVeE3WnKCeMLz6Y8KrfS7K5sA=\r\n=Y8Q4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.41_1672279710957_0.9315350338187851"},"_hasShrinkwrap":false},"10.0.0-alpha.42":{"name":"typesaurus","version":"10.0.0-alpha.42","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.5.0","firebase-tools":"^11.23.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"cf6f4f9b46a450cceccccd510e8461ebf2f126e5","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.42","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-sEmH1a0ueTyN8AScDeFYMKRtNDNwqrGxtglB4FSWpgQgkdCtCG5+eZzquW0qFRLavPDyhU0p5pMCjyjx+aNX6g==","shasum":"6c1384ff053a4c3e45277a0db96ab8ebde1c7dcd","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.42.tgz","fileCount":45,"unpackedSize":327106,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA63LJPIbqlspDo2lSceq+eIj0WQM7OUS/ofCn3W5XDAAiAnPON1TPftXziyZCI15O9Zd3mrLqnzbxqA3IRCae5feg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7ZJXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpuVg//ZOz41B+OBmmHDYNdC82a7GwY4AWLOLJosLU74bEVQUE6y1bl\r\nZMuLbLaSYL4dFGM+XdAHz/BxSkLg0RvblJLU7BYnKWBO9hz3PvLUQOn5ivEy\r\nPipNGsB/cRwfYb8k/OlBSlGDiQxY/bxpExB96Ir7vsRel0NcgG3tKny62B5q\r\n+Ho4itUil7aqZkrJqQ00ULarWTR7yn01tYkComOtYa3RmxKidWDnR1vGSEbu\r\nL0b1AK9lSwfV8mLYX8gMPf4ZLn+jab+duMi7Ov3+NP+uTDqXVEcdPnd7PCwS\r\nvF8tgt/y9FmlybXXCWtDj1SsYFYJGMK+9bELN9sAVGEx33CW6AjM/JHwJjAD\r\n/L6UeuCF244WBHy2c4OxEBAGUcTSKacLvXX9gKkZDAFYCKKiLctHssjzdT/q\r\nTnCoa7Kj1kNPVCk62bRQkGaCwEYVv+EswHRGVMZeyzNo8crqxbC7JWmHqvZ8\r\nFZKALBRP3yW22eYqdZOjsA9FarwMR75rfyXt4KVhst12nH4SwpCp4a1TwanV\r\nD9Pw2zsk6hwtD0623d4CsivwqNysGtWKE2JxAH3E0SaXW1CamXOFZnmzWr2a\r\n6Pqss1ihvhXquaIAQzPECLOX7rbcXYGIaxIuRgKxub2xM9+UB1GqjlEE6A3P\r\necwen8+IYUoOfLTXcpnmjVB18BkxnWec3dM=\r\n=x9GL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.42_1676513879709_0.6993627019041313"},"_hasShrinkwrap":false},"10.0.0-alpha.43":{"name":"typesaurus","version":"10.0.0-alpha.43","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"},"./adapter/next":"./adapter/web/index.mjs"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.5.0","firebase-tools":"^11.23.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"179caca487b29af76defa929fcd440207d39aec3","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.43","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-kPDdbWzB7Geo8qlxzYoep5urtfglYM3Q1u+CHO+OYyQP5iuE2SFRfQnq6cCx1M9sJDuHpK2MDjNe76PZvce2XQ==","shasum":"1b6ffdf7e3e7eedeb1a5b7edd3a68b23c6640892","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.43.tgz","fileCount":45,"unpackedSize":327156,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDg3hxixf8v9b+UcPvoEcNdkv56z6N0tf8VE/kJIOr5VgIhAKIGxOCoyL8L9iapXrWlAex+ULzqmjtwKtT1aC2nfJhD"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7hbjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpcxA//Usuu7/R5GPd6aQySQRAW7qO6i2y2WOixP9QxLT2N6ylMO/Cs\r\nUbkaP/niTzJhn6JbBlmuKOkCcfh6gDL50TpXfYXyHjAC6rYoq/8D9RalA6EX\r\n1CaxN1kgId9+jYCqWfXPR9J6lyMMBAp0p7shXPE9HHtrZDXOEmg6I7eQJB3u\r\nOU0fENoRUiO3vaPq8if6nexCk0/15h5RuNGj/t46+RzAWaQhk/6Vb9Sw7w+q\r\npTVMMFlcRJ7xuBvCiT2tAXs4otlZrNaTfot0Hb034KEBwqwIvGqFQ5mGE6NQ\r\nAgtEMCfIoK7m2okNcMSkKWPHYLAMlmb8zaew/uw+nyCQGDp3+UCQoUCd2zCV\r\nPOKDunyJADCHP/G1h7Q6WNNXqP7vHcCpcCiyCJpxPSpFNdqbW0NsB32w84cV\r\n7bM1RwLlS/986npF7D4ENBd0nXePmCMwYh1qu9rMvzh0SSXH05avhOcA8fn2\r\nhwxDi6C9UYagqmOGeo0VO+JWMnz5UjuI2zTDvpikECY/sO8zaNLHbZEyAWqF\r\n05EpdPXV1OEkKY0W6WIsaLYdgqkLRRe7ff9Dsbfy4HyOYnFbG639gluMMcBQ\r\nZnoLSX7kvITXOtnf+GHV77HIUDxVjX+1Lqq8+6cRtFJu2CHIh+/Qeb+go1Bp\r\nXvRtMBEurEeDAt6+mM8IScdUo2txF3O2E4k=\r\n=fG5+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.43_1676547811225_0.9197139321099339"},"_hasShrinkwrap":false},"10.0.0-alpha.44":{"name":"typesaurus","version":"10.0.0-alpha.44","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"},"./adapter/next":"./adapter/web/index.mjs"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.5.0","firebase-tools":"^11.23.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"5c08f24faba182ee04391327102f9f9d317d41a9","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.44","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-Q0JNqQlG9OPD4rDFsGcXAGr/dIHLQHtEF2cubyicWNDHJfmph+/tRGca1Y1GRnxZOVEdFw8hU8VkP8lc+ryNmQ==","shasum":"7968297a6150701cb108b8a125af28337f51e46b","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.44.tgz","fileCount":45,"unpackedSize":327148,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDs6C+W3oph7LZfa8xkJqZfLWZNxLScbsqnMB0TjaxvWwIgZ+ZYm4TQcsNZUnogBWVoLoWwOtI3UvL6NNd+yJPFkD8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAWVOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpnAA/+LVtwNFX6YUWmbC1P491LLrHOdqwtoBF7f1OH0bq6IkfrFzr+\r\n6IAspVlZHQx18QuqzBxcaA0KVMgQNS7e1akYq02GZOTL3vANWDe/N8xkRzWF\r\nCQ6AzF+4z7ZuWvJXeMe5bOP4XLBLmQIA8Yfj97rDjcPu1cgCHodw4YE6QadW\r\n+LG5ga0jUwM12r/JJYil1P7fNYQUp1L3Fg5u+UDgXVOWgKYbeayVxuyRpUBd\r\neuuj09Z8Zxbf30R68U0YOuIi8YLBylFU/OKgkZw++18pFyv8aIEoKmKfVqTt\r\nxF4SagBdyp1YcEcWe9Npbx0LyT3FCPR14t5ugIJxV6p5w4mfOQWe/kmZbIOn\r\n6zucwyY3WpXKId2S6GSh5h1VLhuekIrVGbSO7avV03st9M2Ox/iyeZ9g/lPh\r\nq8cYlbLoppXUks1E4yVZiNCc3zwgjsUlNYHw7DMLwWuFbLDWWRcAV9z1sUgb\r\nQOwTqOzd/H3+ocAD6V9f+igTXzPv+Oh/JGvfROMP0Nr3Ig4CxdGF+m+PwG8k\r\n/UW/zm6aYbtDzeWaEHN42C+PZUXgBVJbxMgnvYDxcbFC2yB1xWh1yMVc7KVG\r\nQHDX1X1qAcEgK+7o/H9uo7ntgia4dlXxzrY3E8efxtdiCL1fgDtyGB/kLUl/\r\nHHBDjc6uWjBkNFbtfwiOl88COr60/AQA52Y=\r\n=Or0r\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.44_1677813070331_0.3885878865762935"},"_hasShrinkwrap":false},"10.0.0-alpha.45":{"name":"typesaurus","version":"10.0.0-alpha.45","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"},"./adapter/next":"./adapter/web/index.mjs"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.5.0","firebase-tools":"^11.23.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"96495c62f7b1eb5a6cc55339fb2d9dc4d63f9ec3","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-alpha.45","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-hv0rVA6fzQioNKKwctI/uP1/yQOBn74lw1lIl2T08K6G3TmD3HQyKusq+rYh84U17aMSksoekOKHgr1KDvA34g==","shasum":"d7c7930ec4963a1ce0e9922f0e502a2acb99c31c","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-alpha.45.tgz","fileCount":45,"unpackedSize":327841,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3grSLKrHtas9B/40daT0jlkfFfSUpDkhpbwUkP25cYwIhAIzcLLKIZnLwK/39E2lBs87RXaxI3ux+MgFR6vBPxoqj"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBqFsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqs5w/9FGbHjQSZ7FvuNppo2Cxzcc7tMj1Abmm9nuWSqckNoFR0nd7P\r\n44NWykgGbA1V5+xKe9QxFln+H+Mwn+6d3F7p0bKw7xitnErha4Fe1xQTI/rh\r\nUFVRgS+pjqYgwCp2VZkze3dz6vWK/p88bunJS2MV8eG2Z6xHzMMVHFx9I79K\r\nBvP+QYklOjl8Exb0OWfN9hcGpoclYkhStMQl85wL+nq6CO3rF3mnRV6uGGpD\r\nWyBGNcRYeb69J6+VWp4SyjsnUNf958OSGmGevNA8OS0QlstSLzwN94f6VlpA\r\n/5uvwJZkeTUEQCNJ9la1z+vDfkL7AZokgVvRCzCNMDyJssws9CiXJoz+alHG\r\nQv42I4E/5yVso1/JDvlRpgG97LRnOH2Be26Xd97VaC1ThQs2wGMI23ai/zpS\r\nK/A8EW5VmdAlyckCdqSIebClfHLsW1IHniBv8lS778uzMySEtQPd1T2tWluc\r\nHuYCogkFTYDiW6pKNrvpPbTfNdkctAvnJ+avGQ0qRH4pPcUajFNc3TrJWjYX\r\n8xc1OLpCksjtoUru0qZMBZQdOHvCx6393IoJVzPH7vo7IhWXwT3AxJskXFyO\r\nOvmcYNW9TtJDDyselv87NBC1qFkW6QTuXniq5BNYYIgH/XkmLrKH2/gm0w2B\r\nosk4H4t8kiY2EjkQ+U6wvGWiybaoNoMUDZQ=\r\n=5qjo\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-alpha.45_1678156140294_0.12063644611078761"},"_hasShrinkwrap":false},"10.0.0-beta.1":{"name":"typesaurus","version":"10.0.0-beta.1","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"},"./adapter/next":"./adapter/web/index.mjs"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.5.0","firebase-tools":"^11.23.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"766162e23a64d42cb6fffe8d5e824e2415fe22ec","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-beta.1","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-tCHfyRBmXaCFh6Ufc7TbPdapsSvl1M6Ssdqbd8jQvu5Ol/ALi9AFz8Bh7njjI2DlpSxiObEkeLspkRZ2ALwOVg==","shasum":"06dc25b39a7e91e2f61a62fec2982ab16a373700","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-beta.1.tgz","fileCount":45,"unpackedSize":327195,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgstS6qII/GODif+oYb8vw0kYCTc7vqL6v6bg7EIvqdgIgCa7afsVuS6B9eA2Loep+0cXtjJCkjG2v36nxIXsrV9o="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkB8UIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrB9g//R0+A0bycOhpyddpGLL9c1MidRPBDSNGeG8O3PZfYp76hGCwY\r\nxHxxWqQ7swxmW5an2L8HLA2qQPfSKKNfD7AfMURhQ0odsCm4EBDOBQTVsTTA\r\nRVBB4NmvL2xU0gtWmhtp7yDaSlngo1jmQpa1eE1FXS6P9En1E1lWNYQ+RSnE\r\nbIuhBmeHyoBVsHz6m6JXJ4lohWI38PSvVFHrIIj/aTUkfPvryizgw5AhGUQC\r\n0iLcDCarogXPvY71ZfjowsxKOXaMSdD6C+UaZvsOcPhYRyaDLhqZ/ce6v6w+\r\nSp7JNA7UTy9pljepR8qGIZ7GaIcsKCdftPsIIU8fA5omuMyiME75c5OJQP2M\r\nhrX2+J669vjqBESP05qMGqrHsWfJm1qoey0aRfe6VVAwDWzRZHL+lz4q7nPF\r\n3RDMsTwH2efL1TKuZ+/irbzn9MJa/DgrMLvqiX83u7Dye/hUPgOaeRFTekWg\r\nYOi6GqQO0i8nuzG1v1+kHIQRWNwmYJHGi/IQiK7Y0WncrYgmEHcMgghUyLXa\r\nuaUXZrnKLeC+1WB9gPOMHaaczMfa5OVcPmRzpiuU1pfU3tqmdHF+jQjadG0R\r\n2Rs5snGF5m5UcQNNGb178QjqYxNrD0fcTLGlyf1Q7q/1cyPhKgjsIOedstWr\r\njCcpIoESau5HgRj9aH6eVxTOqnieC6SzZNc=\r\n=Cnez\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-beta.1_1678230792686_0.740199838419491"},"_hasShrinkwrap":false},"10.0.0-beta.2":{"name":"typesaurus","version":"10.0.0-beta.2","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"},"./adapter/next":"./adapter/web/index.mjs"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.5.0","firebase-tools":"^11.23.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"c503bf9eda3b43b5e4cddaa55387e91b44ec3d7a","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-beta.2","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-5ynche0I+C2JRZDVF0pz3thS327txIPQCqVd2zHcKLtTmeBfPhSF+W2pJxL9QHrX3pQU2bBcPTcm8fwlt7QYvg==","shasum":"714d574ce742ed38b3b4e6f551486404fbc054b0","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-beta.2.tgz","fileCount":45,"unpackedSize":329634,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfQDExfQT1a7pL8u1A8vkOBbY9/G6DUs6X+ZYedjccgAIhAMycvvG+sSfT+xoEgkQAp5QJ3A7GYVEerV81Vmph+EBD"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCGnIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp5FxAAiZQfJjSJhAPo7cDPB8igZ8b9aCuoDi1vCwJdcpinw6WOG/ZE\r\nd+j3nuvP//2EbE9VoAu1o8tesVFBUQ6SB9ZmC1Mrg8WkKRc3Nngg0lX52lCR\r\nDTYMdlzQ4jLKsW3xf7TFh8Odnh0MmXtLQdX81qvhXP678veAWw0tSwYslEip\r\nuEwX6tIYouMiTdnMqmT+ZWbQoohxKtUIScL510XSgJM2rb5LtM03Mc5sscnh\r\nW8IEuS/vPz9s1t7SLebXEpqiAWy+mYsUI/f3gXN8WKGcC3foKEZ/J1rbt2Bu\r\nvJyA7PbP54yIV+esgBP0LIt9cBOswUaJ4+sjM/kQVOenLE4GgtcUbqnXVPQ1\r\nRocPYNBeLQYTVcOS6ZXOKsiyDij5A3FP+VAOqroG8v0oETyir3KISZqA8Uj2\r\nSYh7bq27hVBJZG2eNIBuOfu6RjMj2NJENYwzqBtwwPIED62M3qfVkG2nUYwq\r\n7V7vv4GpzlGDOKqjCKDBnZ+EkbSsFBoE1lQ+U709uAzQsEX52AYTtkCsBSAD\r\nWkJ4fDc907o1w/pFaMJx/+rLnFGTpAVJPoR6XMg+j9uGF3PPxRfo5QpsZ5RT\r\neYrVLvJpeSEDAja/o1MXLOz71J9RmfSNpPbX0Q+iyZQ3tCWDrhlJfzXivrKp\r\n03li682KpjsqaC5U/ezULeM+k2zs5WuAkPI=\r\n=1Bp8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-beta.2_1678272968480_0.6175344593551997"},"_hasShrinkwrap":false},"10.0.0-beta.3":{"name":"typesaurus","version":"10.0.0-beta.3","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"},"./adapter/next/admin":"./adapter/admin/index.mjs","./adapter/next/web":"./adapter/web/index.mjs"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.5.0","firebase-tools":"^11.23.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^4.8.3","webpack":"^5.74.0"},"gitHead":"3179baea07b815a1d9414eb3e374260ad27b7a8e","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-beta.3","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-fQOzEC181oOjj8+oziURACfldRMkUJdr7RLr7c+nfWYHIh078ykdxn2NJyeARLd/dRtyUVbazZZ126+c/sLxQw==","shasum":"77006bad664c6784fb485f0b4c096a3142689222","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-beta.3.tgz","fileCount":45,"unpackedSize":329696,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0kVG0RD5jizfbQChptxu0pwlAOyDwFQLff8ALCyIneAIhAPulJOzZ0YLA+18zh8WFJpnmK3jpLJH34Tc+HaXKhX7j"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDquuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmooDg//TH7IrG2Bs7ADCMsgXE7vUvy5WEX4NXf4p5JaCB6S8Lt17JUK\r\ns/a4gGpHavbJ+nsxQWE+SQq/7Q5T/aKFtEA6HwPnsQhvjZAz2yKjbAGfMux5\r\npGUBoOxOqN0YD2C9zkMCp1HWoOKpufB2cEMaXaaFhhjctQLxdo8dZbRpknqB\r\njqu/Hhdncg0W4PMawwPItOLT8q/fn0rF9/TXtNPIr694unO2wjKmLZTOj652\r\nF/bmAoqYyFkIBm6l4kKXkzD7uGMFBjb0YFvsrBITCVOCEcotofHXQz4GgLJT\r\nloMU14LkybAH4GE6HsknMxiCILBsSuOLRqQu37Wmb4g3ley/yMUQIFf/1bM6\r\nf4wVrJuDLOQZqUs5NKaOFsDyqwRF5zvPj0c/BJ7h2T6ktqZLmRZwHPEVdWeA\r\nUQd++qq8A8pc1fofMsai/LvEbfPVCQ0uns9NNR/20x5jBHNeixB/OHFOXcb0\r\n6nAeCLUWfN+axJY3o0uol4Ars+GY/TPPLnHRtcgrh1HJ84zPVfDeIGGtm9up\r\n3Mq106gR30Vm8wv5/8H7q8HGlTXTR+hM+mcJt4r+zanW+AzrKF4Njr3KhEyI\r\ngtqMLandVntWY+hJY5hW9J5Q5lieY3z69qWc7HnRqz5bi/e/MorgFV7N3XRT\r\nIfyttlN/a4GctDrjor0oXpSezi9n2NI+feA=\r\n=2Ca8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-beta.3_1678683054584_0.5733166502827312"},"_hasShrinkwrap":false},"10.0.0-beta.4":{"name":"typesaurus","version":"10.0.0-beta.4","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"},"./adapter/next/admin":"./adapter/admin/index.mjs","./adapter/next/web":"./adapter/web/index.mjs"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.5.0","firebase-tools":"^11.23.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^5.0.2","webpack":"^5.74.0"},"gitHead":"2d1b1164858274bd2ba7b956ec43d1e03cce6447","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-beta.4","_nodeVersion":"18.14.0","_npmVersion":"9.3.1","dist":{"integrity":"sha512-RMni+OHdUQsaw2kBfAdZw1kdQILT/XDBrtKckkKasRBUOzWuP6tM1uqTwuDU4ATB+p+0NkXTAa72cta6z5zw7A==","shasum":"c0eeb8f39bacfe4d09b23872bc55b2fd2927176d","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-beta.4.tgz","fileCount":45,"unpackedSize":333780,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFdbOJjkzu4DtZ8laWyeqS7NX3NGmUizw0yS3+iTM6wyAiASDKphoYZvZO7ML34I0GbFAUyrqcckzTI9pr/OxlfItQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkK6V3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo1/hAAhrwXz4bLTdk5jaBYPN+o4xJrT0/RBhErbXMoWEf3K7ehgbCe\r\nHLhY3Egf8kGlujfqkVQSW/udtlM1e/iRXfxO4mL3dwEd/R1dwj/U58esVnYK\r\nLUOZAPiEsgiZ6zThU2PH96pHn2TyiGxGyJu3YgLQXfMlyxoegndIeSk87Kwp\r\nHdTxpKcAW+Sli0ASLT6cgAFK7+SrXuExRbyplQmRDohjI0aPH1QaHYXeSkbW\r\nyhXENVY5T5d0Lwry4lIAqD6qRDAVK13fIRSxOTtye5aun9RW3QgcSDf66bl3\r\n7sgOIArW2YYZtqyL+U5z6hrU/W5E13Lv88ZQOjiDtQbTwEHMOmEIKw/5aa5m\r\npTS5/oDvHs00NfHOrZ63d0oPWIQQZL3OFBuL+SpWcovHZ2BXkOif2PA1S+Te\r\nf93lPENhqBnUp659MfVVLRu79NmAJf8a6odf5LhL+L8m9Lsi2AQ7Y1wbq7Vu\r\ngukgKMQOV+KdLvt4KvQptwlac85oDJyg1vPZB4NAmHIlWksFOykjetrDU9ED\r\nXaEH4gWXrm+1OwVTSMssWKNtybyJviOnKc0B+wZcjucUucaDeigeIb5zrPn2\r\nB+s/VNr/JLCG9wR/LVWJ7JuFSfvLBWqHYL67nJdEkX+22IM8QqDQiHIduUgh\r\nI+7vSF+/Es7QkaFo9YoVL3SWb8wOifJfd2s=\r\n=yTqp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-beta.4_1680582007374_0.5873120907142926"},"_hasShrinkwrap":false},"10.0.0-beta.5":{"name":"typesaurus","version":"10.0.0-beta.5","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"},"./adapter/next/admin":"./adapter/admin/index.mjs","./adapter/next/web":"./adapter/web/index.mjs"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.5.0","firebase-tools":"^11.23.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^5.0.2","webpack":"^5.74.0"},"gitHead":"ff8605868fb224cbdb1c5022ceb9df8c02b0fee4","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-beta.5","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-dGAO4pmwqjzVmEln6gMmA/fdw721u/tS/3Gob6jxJBhEdMMU1IA3z0juz9borHgU1/DI2FuvE+dM8f3a3naFzQ==","shasum":"c75d12141362db4f00f69b61b6daf97f5451927e","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-beta.5.tgz","fileCount":45,"unpackedSize":333915,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBfoN+4iV+di4dPftkDZyfMUvqz7GlhVUlmYkFbq0fyzAiEAptEJr5f/Z+SHqEKuB7tni9wyTT/Ow+PzJSNYtY8aEtk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkP293ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqhOw//ZeYT8sm4uG9K4uUztdk5oHE++W1wnvZ/07LJrhPkzJTnSrr1\r\nQTZo3i76MBfFGq4+hvpx+n7HfFQXszDjMJfmzgOmrpQxi873+fALKiCIaY6R\r\n8nJQ1CXq1iwRHroRFhm+0ARZgTOYY4feg1Ds8vvIvRIIwDOcWGEDru8Dn5D4\r\nldR7Qbprkq6cVddeke/qre40o6L6GXFAVbX2NV+zTNt0qtqWSXelkHHCzm9j\r\nz1IwvUHpPWq/Ij6X4675yHSCCCJYJmTzIgD585G0kpg6akk+A5nJ2oT4hiA8\r\nLZ2l/Cuf72uPZvkh373mdw8gAZeMoIPuRQ4rxWWIVWFQ9FKOYvnxpk2pU6i5\r\nVo1CbT5QKlrQR4HLzfFCcwelSlHdNmYaHphP+Qz4dZw7+llzkZ0IMt2dhJjX\r\nRa8CYrGik4Ae700qzfaL0t35BE9+GhuoI3OCw+O/djyFldBghPAtDd7E0Xqf\r\nlaqEI2XYm4CWIw3U3Eq9RypNcbTKqxt9ek5e+ebFn2qmBzhTyWPCxzfNpb0d\r\nGBJl5ym270EtYdCjzPby1vThr0vKBO+l+FCNmg87iKFcfQLvC5SD8X9STEMg\r\nncYbHSR7oB2/kKCPhDJqWibtCx7JHa2IiuTn0mBFI0Ppb8yB3QY/OdBF7CO9\r\ne6TOzCYFLqG3F/XDp0TLOxK5gzBgQdiMZwc=\r\n=s242\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-beta.5_1681878902883_0.9859480536493552"},"_hasShrinkwrap":false},"10.0.0-beta.6":{"name":"typesaurus","version":"10.0.0-beta.6","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"},"./adapter/next/admin":"./adapter/admin/index.mjs","./adapter/next/web":"./adapter/web/index.mjs"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.7.0","firebase-admin":"^11.5.0","firebase-tools":"^11.23.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^5.0.2","webpack":"^5.74.0"},"gitHead":"b030599649c8df05b3125384487c1797c166dcaa","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-beta.6","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-aQWIsfqa+p5YyObVq4/t4A/1Ccjdbon8qllQrsqe01NHCLJN5JGSlAUMpA/NdmCAuFNQ/56Yd56BzfNVteepCQ==","shasum":"d7883e5e7a29984b47154df15508ce796dd1b2f4","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-beta.6.tgz","fileCount":45,"unpackedSize":333906,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA99lai5+RJo8SgPaoFYgsoHhAOc+0b0p5QB1hdlSAraAiEA7ukDnvptn5CSZLd68HD24kE+0xo9cRPxXBP4cRXQYBg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkP47AACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGbw//ZBZMHY4f1pkdV1xPLtviDEJvCM3p1pzEBhEZ+Mt2as+05JD+\r\nJMeQ58GDFXRd+gAMyBqg5dS0nOWFqYvmen5CzcMZGtw8g/WNOWAs4hvFsSPq\r\nHccZLlzfN/NOY6p5sp47dm5QgRFHleYKCxLJ4DIlDStbZ5X92dd1lO+Citcv\r\nAfd+q/XnNuOSVDTHhfDRPehoWQ/dj1PV3dtDMAkXMYKHES0slHdZMWa/CmYo\r\nnhbGQVCmyT5kDRA/PhVX8Vnb9r5udVGJBTy/aDP7BdFA7pOeyWQTpErPGkbI\r\nRfocuGmfOEdQq3R9kM16K++M9ugB81DEpt1oL961gg87Ly0MNPFUnjJVzDbW\r\n/nT7KnJopPtBD1zqL2bA25Z5zzr6UnkpGFAF1AVjQy16AdWenWz+EF89Z3O1\r\nMRg4LVsloD2A2aNPgkQdiH4xBFp/7da7M+E6LoH/jWiVyy6w4wkvGR3HRwhq\r\nqiN6bqzpamEx/MAcnhb5VzxNvCQBc8niTqwQMlWyGMWcZQkj0e+EWNDkNFH7\r\nFcPdfAQLA04fPTnQO8bWCNkdnjbQqAMKKAPs0gGuLx3thOh3iWkWyuMMfwju\r\ncjHtTLN8axbahwiVYBIPjYv8gDNP55RzGtdlE0flBvkN0asfxq5disGwHKUm\r\nDX0ML+LSHaD9rhjV7dnfJGVVzm9V+939UHU=\r\n=2QSd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-beta.6_1681886912576_0.8546158296565385"},"_hasShrinkwrap":false},"10.0.0-beta.7":{"name":"typesaurus","version":"10.0.0-beta.7","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"},"./adapter/next/admin":"./adapter/admin/index.mjs","./adapter/next/web":"./adapter/web/index.mjs"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.22.1","firebase-admin":"^11.5.0","firebase-tools":"^11.23.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^5.0.2","webpack":"^5.74.0"},"gitHead":"3b61905988415b093eade26fd1ceaf682396994b","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-beta.7","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-XcE12ee0zXXf3/gHzuC1D6rl8s0ps8jbeKytTsCWejvjZwuL47IMmUvIn7AJxQyrJ/Y567PXZ1KD7GuJcB3M+g==","shasum":"60a5920c17428c37fe746ec981dca014833d89ff","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-beta.7.tgz","fileCount":45,"unpackedSize":334189,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFtnoIosy9ni9FQygPA6plqZtSnBjfgrivmITlq7fCNSAiEA+yV7TkDGNcmbCLKb6DhARSu/NX6zOIVvhIu4qjYiGGc="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-beta.7_1686127123179_0.7854582130474543"},"_hasShrinkwrap":false},"10.0.0-beta.8":{"name":"typesaurus","version":"10.0.0-beta.8","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"browser":"./adapter/web/index.mjs","require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"browser":"./adapter/web/batch.mjs","require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"browser":"./adapter/web/groups.mjs","require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"browser":"./adapter/web/transaction.mjs","require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"},"./adapter/next/admin":"./adapter/admin/index.mjs","./adapter/next/web":"./adapter/web/index.mjs"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.22.1","firebase-admin":"^11.5.0","firebase-tools":"^11.23.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^5.0.2","webpack":"^5.74.0"},"gitHead":"547936a6df84083c4c0edf0c19c84650e023e293","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-beta.8","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-pP4ROPq8OVDKbRc7g9U4Jdh9q2kKlXTJrBYSQ+/OvbycaktZV7GOstr1eOY5mKJUYDqAzqzz1GAca1IRvhxOGA==","shasum":"5f0e81c91b29a215cbbb60eef58702283ae60fae","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-beta.8.tgz","fileCount":45,"unpackedSize":334376,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8FhRH6DgRzUq12nRjUEj80OQVMCr7nRGio7O07Jz/PAIhAMRrgIB6sDJ8FfLMb6cpW9lEgOkL58hnNIo655IPMp/V"}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-beta.8_1686213805304_0.46350418652150527"},"_hasShrinkwrap":false},"10.0.0-beta.9":{"name":"typesaurus","version":"10.0.0-beta.9","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"browser":"./adapter/web/index.mjs","require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"browser":"./adapter/web/batch.mjs","require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"browser":"./adapter/web/groups.mjs","require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"browser":"./adapter/web/transaction.mjs","require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"},"./adapter/next/admin":"./adapter/admin/index.mjs","./adapter/next/web":"./adapter/web/index.mjs"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.22.1","firebase-admin":"^11.5.0","firebase-tools":"^11.23.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^5.0.2","webpack":"^5.74.0"},"gitHead":"91f8d5ee16f2eb5b3e89c039ae2e498a0cbfa97e","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-beta.9","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-+uxtYNNGUBgZQOEFygAjGsnkQWU6qS4+Du0az/Fpvzz/QaVuL3Zn1bBBD9JAI7YPpd9RgEz1t5s82W+xZyp/lg==","shasum":"54e3a0f4ab3cbc1c965b59a8b393a7dd5d68ef25","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-beta.9.tgz","fileCount":45,"unpackedSize":334610,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA9mBE6BlvsWiTGbYAdtID6dbBjRb6l2JAYBsjWn8eZwAiEA1fI0ab6Ez17oag8f0VII/O+q9LCFM8PoxXn53AvO0Vc="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-beta.9_1686798099985_0.4346428013839847"},"_hasShrinkwrap":false},"10.0.0-beta.10":{"name":"typesaurus","version":"10.0.0-beta.10","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"browser":"./adapter/web/index.mjs","require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"browser":"./adapter/web/batch.mjs","require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"browser":"./adapter/web/groups.mjs","require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"browser":"./adapter/web/transaction.mjs","require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"},"./adapter/next/admin":"./adapter/admin/index.mjs","./adapter/next/web":"./adapter/web/index.mjs"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.22.1","firebase-admin":"^11.5.0","firebase-tools":"^11.23.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^5.0.2","webpack":"^5.74.0"},"gitHead":"db000232cb3381c37b27dd4f33a073d92634f0bc","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-beta.10","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-mxa0LWXC4nSTApiOl00piLy2xhSEO+qhgC1hMTzHIyWr715Fn9Mf0AFZ+EL/Nh+PGggeWDzEK0sG2eHPT3NKmw==","shasum":"5884aceadef0ed958132ad3d00a840b436f1f71c","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-beta.10.tgz","fileCount":45,"unpackedSize":334597,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGJxl0M4f32wThdbQIrRci5sdumxlKmJdluuv4Xa2MeAAiBcC5rJq68p0n1yoR+qVxh/4ZlAo/f1WJ33LR12dcziqA=="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-beta.10_1696571642443_0.570778083356458"},"_hasShrinkwrap":false},"10.0.0-beta.11":{"name":"typesaurus","version":"10.0.0-beta.11","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{".":{"browser":"./adapter/web/index.mjs","require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs"},"./batch":{"browser":"./adapter/web/batch.mjs","require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs"},"./groups":{"browser":"./adapter/web/groups.mjs","require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs"},"./transaction":{"browser":"./adapter/web/transaction.mjs","require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs"},"./helpers":{"require":"./helpers/index.js","import":"./helpers/index.mjs"},"./adapter/next/admin":"./adapter/admin/index.mjs","./adapter/next/web":"./adapter/web/index.mjs"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^12.0.4","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^9.22.1","firebase-admin":"^11.5.0","firebase-tools":"^11.23.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^5.0.2","webpack":"^5.74.0"},"gitHead":"d140e483a7cfb7c70d67a3284f67cd58609ab88a","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-beta.11","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-0L36EhgtrE9e+hkBoAKFhSMRojH34SnUAAPlI9QmKLTXCLYC2ulHZRRAlidrhjq3HxvfgCU0ikvRDEK7yTZf1Q==","shasum":"06268d9bf1b0d8d80eb8207e026932b934494efd","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-beta.11.tgz","fileCount":45,"unpackedSize":338277,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHmT8/soX8ve83ap6Z5qDLM8UVniEGtmug6GjPs+Syg3AiEAvN4NgHUXnLM5Pb/te3NLfwLBA1UXSvHymyjxJ2OSTkY="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-beta.11_1696914308887_0.9437280126559535"},"_hasShrinkwrap":false},"10.0.0-beta.12":{"name":"typesaurus","version":"10.0.0-beta.12","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"browser":"./adapter/web","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","types":"./index.d.ts","exports":{".":{"browser":"./adapter/web/index.mjs","require":"./adapter/admin/index.js","import":"./adapter/admin/index.mjs","types":"./index.d.ts"},"./batch":{"browser":"./adapter/web/batch.mjs","require":"./adapter/admin/batch.js","import":"./adapter/admin/batch.mjs","types":"./batch/index.d.ts"},"./groups":{"browser":"./adapter/web/groups.mjs","require":"./adapter/admin/groups.js","import":"./adapter/admin/groups.mjs","types":"./groups/index.d.ts"},"./transaction":{"browser":"./adapter/web/transaction.mjs","require":"./adapter/admin/transaction.js","import":"./adapter/admin/transaction.mjs","types":"./transaction/index.d.ts"},"./helpers":{"browser":"./helpers/index.mjs","require":"./helpers/index.js","import":"./helpers/index.mjs","types":"./helpers/index.d.ts"},"./adapter/next/admin":{"default":"./adapter/admin/index.mjs","types":"./index.d.ts"},"./adapter/next/web":{"default":"./adapter/web/index.mjs","types":"./index.d.ts"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/jest":"^28.1.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@types/webpack-env":"^1.18.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.7.0","firebase-admin":"^11.11.1","firebase-tools":"^12.9.1","jest":"^28.1.3","karma":"^6.0.4","karma-chrome-launcher":"^3.1.0","karma-jasmine":"^4.0.1","karma-mocha":"^1.3.0","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^5.0.0","mocha":"^6.2.0","prettier":"^2.0.4","puppeteer":"^16.2.0","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typedoc":"^0.15.0","typescript":"^5.3.2","webpack":"^5.74.0"},"gitHead":"3399294f95c956bbdf3ee0bbe452189dd3158ff6","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"readme":"ERROR: No README data found!","homepage":"https://github.com/kossnocorp/typesaurus#readme","_id":"typesaurus@10.0.0-beta.12","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-fsY+QATrDy5L514nJO3XJpkATXJwdx6v1Oq26cevj4zv/exmF3WeYxpDupBasbAyaDmeH1FW+fPdTwyisUAinA==","shasum":"42bee028d6278793ed04fd627b8ed9ea240b34ac","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-beta.12.tgz","fileCount":49,"unpackedSize":344774,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+sdr2T8BigjEHi6KQdxJm0pvqcxmsRgxlFxdMNiwyigIgOyDVEz6eR+xaeEcIT/n7WXQaCiyU1PP0SC3W5iJ1Mds="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-beta.12_1701418420986_0.4359400067591832"},"_hasShrinkwrap":false},"10.0.0-rc.1":{"name":"typesaurus","version":"10.0.0-rc.1","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","default":"./adapter/admin/index.js","browser":"./adapter/web/index.js"},"import":{"types":"./index.d.mts","default":"./adapter/admin/index.mjs","browser":"./adapter/web/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","default":"./adapter/admin/batch.js","browser":"./adapter/web/batch.js"},"import":{"types":"./types/batch.d.mts","default":"./adapter/admin/batch.mjs","browser":"./adapter/web/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","default":"./adapter/admin/groups.js","browser":"./adapter/web/groups.js"},"import":{"types":"./types/groups.d.mts","default":"./adapter/admin/groups.mjs","browser":"./adapter/web/groups.mjs"}},"./transaction":{"require":{"browser":"./adapter/web/transaction.js","types":"./types/transaction.d.ts","default":"./adapter/admin/transaction.js"},"import":{"browser":"./adapter/web/transaction.mjs","types":"./types/transaction.d.mts","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}},"./adapter/next/admin":{"default":"./adapter/admin/index.mjs","types":"./index.d.ts"},"./adapter/next/web":{"default":"./adapter/web/index.mjs","types":"./index.d.ts"}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@vitest/browser":"^1.1.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.7.0","firebase-admin":"^11.11.1","firebase-tools":"^12.9.1","playwright":"^1.40.1","prettier":"^3.1.1","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.3.3","vitest":"^1.1.0"},"_id":"typesaurus@10.0.0-rc.1","readme":"⚠️ **Warning**: the current `main` represents Typesaurus X pre-release version of the library. [See `v7` branch](https://github.com/kossnocorp/typesaurus/tree/v7) for the stable version.\r\n\r\n# 🦕 Typesaurus\r\n\r\nTypeScript-first ODM for Firestore.\r\n\r\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\r\n\r\n**Why?**\r\n\r\n- Designed with TypeScript's type inference in mind\r\n- Universal code (browser & Node.js)\r\n- Uncompromised type-safety\r\n- Code autocomplete\r\n- Say goodbye to any!\r\n- Say goodbye to exceptions!\r\n- [Ready to start? Follow this guide](https://typesaurus.com/get-started).\r\n\r\n<hr>\r\n<div align=\"center\">\r\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\r\n</div>\r\n<hr>\r\n\r\n## Installation\r\n\r\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\r\nTo install Typesaurus, run:\r\n\r\n```sh\r\nnpm install --save typesaurus firebase firebase-admin\r\n```\r\n\r\n_Note that Typesaurus requires the `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies, so they won't install automatically with the Typesaurus package._\r\n\r\n## Features\r\n\r\n- **Universal package**: reuse the same code on the client and server.\r\n- **JavaScript-native**: converts Firestore data types, i.e. timestamp, to native JS types, i.e. `Date`.\r\n- **Build size-efficiency**: optimized build-size for web.\r\n- **Advanced type-safety**: uncompromised type-safety, includes Firestore quirks.\r\n- **Typed ids**: all document ids are types, so you'll never mix up a user id with an account id.\r\n- **Centralized schema**: easy to define, read and update.\r\n- **Single-import principle**: single import to define, single import to use.\r\n\r\nWant to read about features in detail? [Go to Key Features](https://typesaurus.com/get-started/further-reading/features/).\r\n\r\n## Changelog\r\n\r\nSee [the changelog](./CHANGELOG.md).\r\n\r\n## License\r\n\r\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\r\n","readmeFilename":"README.md","gitHead":"4db3d5afd73278d8fc1e8cecf17ea53ec59c98b5","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-PORfSHWcceBsSQf/lSMsw8Z4GFXBqY7ePjp50wKl1SPR+KB7y7YgBl8UwYgwkisCUp0UmP90z/109zn/eI3OFg==","shasum":"72f4b4604a39d421234423c19a1ef5d376fb7478","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-rc.1.tgz","fileCount":61,"unpackedSize":489762,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCemQRIahGMmR3MFhEBguZ8kCJMO99jjS0IwLdB54QXUwIhAIQJsPIU3erMdWOxFTCOf3vz0C2a7Cdb4By4UW9TQuyF"}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-rc.1_1703496005949_0.7822438109241332"},"_hasShrinkwrap":false},"10.0.0-rc.2":{"name":"typesaurus","version":"10.0.0-rc.2","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","default":"./adapter/admin/index.js","browser":"./adapter/web/index.js"},"import":{"types":"./index.d.mts","default":"./adapter/admin/index.mjs","browser":"./adapter/web/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","default":"./adapter/admin/batch.js","browser":"./adapter/web/batch.js"},"import":{"types":"./types/batch.d.mts","default":"./adapter/admin/batch.mjs","browser":"./adapter/web/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","default":"./adapter/admin/groups.js","browser":"./adapter/web/groups.js"},"import":{"types":"./types/groups.d.mts","default":"./adapter/admin/groups.mjs","browser":"./adapter/web/groups.mjs"}},"./transaction":{"require":{"browser":"./adapter/web/transaction.js","types":"./types/transaction.d.ts","default":"./adapter/admin/transaction.js"},"import":{"browser":"./adapter/web/transaction.mjs","types":"./types/transaction.d.mts","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}},"./adapter/next/admin":{"default":"./adapter/admin/index.mjs","types":"./index.d.ts"},"./adapter/next/web":{"default":"./adapter/web/index.mjs","types":"./index.d.ts"}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@vitest/browser":"^1.1.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.7.0","firebase-admin":"^11.11.1","firebase-tools":"^12.9.1","playwright":"^1.40.1","prettier":"^3.1.1","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.3.3","vitest":"^1.1.0"},"_id":"typesaurus@10.0.0-rc.2","readme":"⚠️ **Warning**: the current `main` represents Typesaurus X pre-release version of the library. [See `v7` branch](https://github.com/kossnocorp/typesaurus/tree/v7) for the stable version.\r\n\r\n# 🦕 Typesaurus\r\n\r\nTypeScript-first ODM for Firestore.\r\n\r\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\r\n\r\n**Why?**\r\n\r\n- Designed with TypeScript's type inference in mind\r\n- Universal code (browser & Node.js)\r\n- Uncompromised type-safety\r\n- Code autocomplete\r\n- Say goodbye to any!\r\n- Say goodbye to exceptions!\r\n- [Ready to start? Follow this guide](https://typesaurus.com/get-started).\r\n\r\n<hr>\r\n<div align=\"center\">\r\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\r\n</div>\r\n<hr>\r\n\r\n## Installation\r\n\r\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\r\nTo install Typesaurus, run:\r\n\r\n```sh\r\nnpm install --save typesaurus firebase firebase-admin\r\n```\r\n\r\n_Note that Typesaurus requires the `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies, so they won't install automatically with the Typesaurus package._\r\n\r\n## Features\r\n\r\n- **Universal package**: reuse the same code on the client and server.\r\n- **JavaScript-native**: converts Firestore data types, i.e. timestamp, to native JS types, i.e. `Date`.\r\n- **Build size-efficiency**: optimized build-size for web.\r\n- **Advanced type-safety**: uncompromised type-safety, includes Firestore quirks.\r\n- **Typed ids**: all document ids are types, so you'll never mix up a user id with an account id.\r\n- **Centralized schema**: easy to define, read and update.\r\n- **Single-import principle**: single import to define, single import to use.\r\n\r\nWant to read about features in detail? [Go to Key Features](https://typesaurus.com/get-started/further-reading/features/).\r\n\r\n## Changelog\r\n\r\nSee [the changelog](./CHANGELOG.md).\r\n\r\n## License\r\n\r\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\r\n","readmeFilename":"README.md","gitHead":"2688631b16441526bf3f635f45b2a7b4d60c7c11","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-UcpWXuxQfw9yz/ffGRQ/9AsarwQlv8jhHKbHXdN+OSg6dZNLBieOlegpatZhVn2IMT4mvWpK4aJ99/j0eB+LBg==","shasum":"498e95a9a0937326cef1e006a1295d4e85c32e12","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-rc.2.tgz","fileCount":56,"unpackedSize":493966,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfrrAHlgpnDiP4WYOTvq6TFr2+jUpb1Tzt9CpqlytTJwIhAO+iZ4mcgs5WZp7gfo6B8DfGttD0VLT4fvtOXYlPnvLM"}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-rc.2_1703661101917_0.40991574712387546"},"_hasShrinkwrap":false},"10.0.0-rc.3":{"name":"typesaurus","version":"10.0.0-rc.3","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","default":"./adapter/admin/index.js","browser":"./adapter/web/index.js"},"import":{"types":"./index.d.mts","default":"./adapter/admin/index.mjs","browser":"./adapter/web/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","default":"./adapter/admin/batch.js","browser":"./adapter/web/batch.js"},"import":{"types":"./types/batch.d.mts","default":"./adapter/admin/batch.mjs","browser":"./adapter/web/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","default":"./adapter/admin/groups.js","browser":"./adapter/web/groups.js"},"import":{"types":"./types/groups.d.mts","default":"./adapter/admin/groups.mjs","browser":"./adapter/web/groups.mjs"}},"./transaction":{"require":{"browser":"./adapter/web/transaction.js","types":"./types/transaction.d.ts","default":"./adapter/admin/transaction.js"},"import":{"browser":"./adapter/web/transaction.mjs","types":"./types/transaction.d.mts","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}},"./adapter/next/admin":{"default":"./adapter/admin/index.mjs","types":"./index.d.ts"},"./adapter/next/web":{"default":"./adapter/web/index.mjs","types":"./index.d.ts"}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@vitest/browser":"^1.1.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.7.0","firebase-admin":"^11.11.1","firebase-tools":"^12.9.1","playwright":"^1.40.1","prettier":"^3.1.1","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.3.3","vitest":"^1.1.0"},"_id":"typesaurus@10.0.0-rc.3","readme":"⚠️ **Warning**: the current `main` represents Typesaurus X pre-release version of the library. [See `v7` branch](https://github.com/kossnocorp/typesaurus/tree/v7) for the stable version.\r\n\r\n# 🦕 Typesaurus\r\n\r\nTypeScript-first ODM for Firestore.\r\n\r\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\r\n\r\n**Why?**\r\n\r\n- Designed with TypeScript's type inference in mind\r\n- Universal code (browser & Node.js)\r\n- Uncompromised type-safety\r\n- Code autocomplete\r\n- Say goodbye to any!\r\n- Say goodbye to exceptions!\r\n- [Ready to start? Follow this guide](https://typesaurus.com/get-started).\r\n\r\n<hr>\r\n<div align=\"center\">\r\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\r\n</div>\r\n<hr>\r\n\r\n## Installation\r\n\r\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\r\nTo install Typesaurus, run:\r\n\r\n```sh\r\nnpm install --save typesaurus firebase firebase-admin\r\n```\r\n\r\n_Note that Typesaurus requires the `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies, so they won't install automatically with the Typesaurus package._\r\n\r\n## Features\r\n\r\n- **Universal package**: reuse the same code on the client and server.\r\n- **JavaScript-native**: converts Firestore data types, i.e. timestamp, to native JS types, i.e. `Date`.\r\n- **Build size-efficiency**: optimized build-size for web.\r\n- **Advanced type-safety**: uncompromised type-safety, includes Firestore quirks.\r\n- **Typed ids**: all document ids are types, so you'll never mix up a user id with an account id.\r\n- **Centralized schema**: easy to define, read and update.\r\n- **Single-import principle**: single import to define, single import to use.\r\n\r\nWant to read about features in detail? [Go to Key Features](https://typesaurus.com/get-started/further-reading/features/).\r\n\r\n## Changelog\r\n\r\nSee [the changelog](./CHANGELOG.md).\r\n\r\n## License\r\n\r\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\r\n","readmeFilename":"README.md","gitHead":"63913d6a7b4070c6f2fd18cb786a8fbced25f0d1","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-3ji21BXVnlbwZ7sgFm17dT3BYgHpV1d9iZDUsR+Gnp97rilTRj/mjZTRREGN+RqpaDEQwVkNnNXlbxGkQsisnQ==","shasum":"0517b42fbadbd251ad7157a330d7bc494f3ac394","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-rc.3.tgz","fileCount":61,"unpackedSize":494686,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCc6ceXGZn+nUmQ/x/acjRW2D+e0Fdb9j9mm3K0AFMrOAIgdXEw5MdkhASwXP/VR6KtM36ytxQGD1qOy5iuMx4VbSA="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-rc.3_1703663180023_0.8654886007404585"},"_hasShrinkwrap":false},"10.0.0-rc.4":{"name":"typesaurus","version":"10.0.0-rc.4","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","default":"./adapter/admin/index.js","browser":"./adapter/web/index.js"},"import":{"types":"./index.d.mts","default":"./adapter/admin/index.mjs","browser":"./adapter/web/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","default":"./adapter/admin/batch.js","browser":"./adapter/web/batch.js"},"import":{"types":"./types/batch.d.mts","default":"./adapter/admin/batch.mjs","browser":"./adapter/web/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","default":"./adapter/admin/groups.js","browser":"./adapter/web/groups.js"},"import":{"types":"./types/groups.d.mts","default":"./adapter/admin/groups.mjs","browser":"./adapter/web/groups.mjs"}},"./transaction":{"require":{"browser":"./adapter/web/transaction.js","types":"./types/transaction.d.ts","default":"./adapter/admin/transaction.js"},"import":{"browser":"./adapter/web/transaction.mjs","types":"./types/transaction.d.mts","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}},"./adapter/next/admin":{"default":"./adapter/admin/index.mjs","types":"./index.d.ts"},"./adapter/next/web":{"default":"./adapter/web/index.mjs","types":"./index.d.ts"}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@vitest/browser":"^1.1.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.7.0","firebase-admin":"^11.11.1","firebase-tools":"^12.9.1","playwright":"^1.40.1","prettier":"^3.1.1","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.3.3","vitest":"^1.1.0"},"_id":"typesaurus@10.0.0-rc.4","readme":"⚠️ **Warning**: the current `main` represents Typesaurus X pre-release version of the library. [See `v7` branch](https://github.com/kossnocorp/typesaurus/tree/v7) for the stable version.\r\n\r\n# 🦕 Typesaurus\r\n\r\nTypeScript-first ODM for Firestore.\r\n\r\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\r\n\r\n**Why?**\r\n\r\n- Designed with TypeScript's type inference in mind\r\n- Universal code (browser & Node.js)\r\n- Uncompromised type-safety\r\n- Code autocomplete\r\n- Say goodbye to any!\r\n- Say goodbye to exceptions!\r\n- [Ready to start? Follow this guide](https://typesaurus.com/get-started).\r\n\r\n<hr>\r\n<div align=\"center\">\r\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\r\n</div>\r\n<hr>\r\n\r\n## Installation\r\n\r\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\r\nTo install Typesaurus, run:\r\n\r\n```sh\r\nnpm install --save typesaurus firebase firebase-admin\r\n```\r\n\r\n_Note that Typesaurus requires the `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies, so they won't install automatically with the Typesaurus package._\r\n\r\n## Features\r\n\r\n- **Universal package**: reuse the same code on the client and server.\r\n- **JavaScript-native**: converts Firestore data types, i.e. timestamp, to native JS types, i.e. `Date`.\r\n- **Build size-efficiency**: optimized build-size for web.\r\n- **Advanced type-safety**: uncompromised type-safety, includes Firestore quirks.\r\n- **Typed ids**: all document ids are types, so you'll never mix up a user id with an account id.\r\n- **Centralized schema**: easy to define, read and update.\r\n- **Single-import principle**: single import to define, single import to use.\r\n\r\nWant to read about features in detail? [Go to Key Features](https://typesaurus.com/get-started/further-reading/features/).\r\n\r\n## Changelog\r\n\r\nSee [the changelog](./CHANGELOG.md).\r\n\r\n## License\r\n\r\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\r\n","readmeFilename":"README.md","gitHead":"fba7c166de3be90db6c140f23e694f4f499b7dab","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-d8xxlsKMTQYA4S5q+feLCaRJBMOy4Vg7bpsWVgQV/Rw3tiTRAjptmTFDS+mLSq9E2GqMCacrBMfaK4ZzedRxfA==","shasum":"9a30c9f6ad74d18157ce51bbcf25e0c232701da5","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-rc.4.tgz","fileCount":61,"unpackedSize":494672,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICZoJR1CyP0Sf1sX8wYfOLnE75BOvcNyD7XyfqPpp0APAiEAuU+aElKTM9A/TOtesFErBuehMstBUeJ118gnD1JKrwA="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-rc.4_1703737990915_0.30417242119170984"},"_hasShrinkwrap":false},"10.0.0-rc.5":{"name":"typesaurus","version":"10.0.0-rc.5","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","default":"./adapter/admin/index.js","browser":"./adapter/web/index.js"},"import":{"types":"./index.d.mts","default":"./adapter/admin/index.mjs","browser":"./adapter/web/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","default":"./adapter/admin/batch.js","browser":"./adapter/web/batch.js"},"import":{"types":"./types/batch.d.mts","default":"./adapter/admin/batch.mjs","browser":"./adapter/web/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","default":"./adapter/admin/groups.js","browser":"./adapter/web/groups.js"},"import":{"types":"./types/groups.d.mts","default":"./adapter/admin/groups.mjs","browser":"./adapter/web/groups.mjs"}},"./transaction":{"require":{"browser":"./adapter/web/transaction.js","types":"./types/transaction.d.ts","default":"./adapter/admin/transaction.js"},"import":{"browser":"./adapter/web/transaction.mjs","types":"./types/transaction.d.mts","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}},"./adapter/next/admin":{"default":"./adapter/admin/index.mjs","types":"./index.d.ts"},"./adapter/next/web":{"default":"./adapter/web/index.mjs","types":"./index.d.ts"}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@vitest/browser":"^1.1.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.7.0","firebase-admin":"^11.11.1","firebase-tools":"^12.9.1","playwright":"^1.40.1","prettier":"^3.1.1","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.3.3","vitest":"^1.1.0"},"_id":"typesaurus@10.0.0-rc.5","readme":"⚠️ **Warning**: the current `main` represents Typesaurus X pre-release version of the library. [See `v7` branch](https://github.com/kossnocorp/typesaurus/tree/v7) for the stable version.\r\n\r\n# 🦕 Typesaurus\r\n\r\nTypeScript-first ODM for Firestore.\r\n\r\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\r\n\r\n**Why?**\r\n\r\n- Designed with TypeScript's type inference in mind\r\n- Universal code (browser & Node.js)\r\n- Uncompromised type-safety\r\n- Code autocomplete\r\n- Say goodbye to any!\r\n- Say goodbye to exceptions!\r\n- [Ready to start? Follow this guide](https://typesaurus.com/get-started).\r\n\r\n<hr>\r\n<div align=\"center\">\r\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\r\n</div>\r\n<hr>\r\n\r\n## Installation\r\n\r\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\r\nTo install Typesaurus, run:\r\n\r\n```sh\r\nnpm install --save typesaurus firebase firebase-admin\r\n```\r\n\r\n_Note that Typesaurus requires the `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies, so they won't install automatically with the Typesaurus package._\r\n\r\n## Features\r\n\r\n- **Universal package**: reuse the same code on the client and server.\r\n- **JavaScript-native**: converts Firestore data types, i.e. timestamp, to native JS types, i.e. `Date`.\r\n- **Build size-efficiency**: optimized build-size for web.\r\n- **Advanced type-safety**: uncompromised type-safety, includes Firestore quirks.\r\n- **Typed ids**: all document ids are types, so you'll never mix up a user id with an account id.\r\n- **Centralized schema**: easy to define, read and update.\r\n- **Single-import principle**: single import to define, single import to use.\r\n\r\nWant to read about features in detail? [Go to Key Features](https://typesaurus.com/get-started/further-reading/features/).\r\n\r\n## Changelog\r\n\r\nSee [the changelog](./CHANGELOG.md).\r\n\r\n## License\r\n\r\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\r\n","readmeFilename":"README.md","gitHead":"7063d29069e6fb191a0125346d4167267221766f","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-S4tVEx9+nzYFbWZLp032uim4t8je2mBlCCtTBx8tB0K8o+J6tL1OZJ+/mjHGfvSYxXLDVApEAuxLw0GY5c2ypg==","shasum":"72273a32baf72fcd3ccb5ccab66b264cad22090d","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-rc.5.tgz","fileCount":61,"unpackedSize":497620,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICsAcwn5g66ainCoJG/8cU6Qf/QyYRcoCk2woHHaz3ANAiBgs9Zv1YUpBO+l4qtHc+WYJGrKejWxnWW/4z+bAcYV6w=="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-rc.5_1703764689681_0.276659012029995"},"_hasShrinkwrap":false},"10.0.0-rc.6":{"name":"typesaurus","version":"10.0.0-rc.6","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","default":"./adapter/admin/index.js","browser":"./adapter/web/index.js"},"import":{"types":"./index.d.mts","default":"./adapter/admin/index.mjs","browser":"./adapter/web/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","default":"./adapter/admin/batch.js","browser":"./adapter/web/batch.js"},"import":{"types":"./types/batch.d.mts","default":"./adapter/admin/batch.mjs","browser":"./adapter/web/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","default":"./adapter/admin/groups.js","browser":"./adapter/web/groups.js"},"import":{"types":"./types/groups.d.mts","default":"./adapter/admin/groups.mjs","browser":"./adapter/web/groups.mjs"}},"./transaction":{"require":{"browser":"./adapter/web/transaction.js","types":"./types/transaction.d.ts","default":"./adapter/admin/transaction.js"},"import":{"browser":"./adapter/web/transaction.mjs","types":"./types/transaction.d.mts","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}},"./adapter/next/admin":{"default":"./adapter/admin/index.mjs","types":"./index.d.ts"},"./adapter/next/web":{"default":"./adapter/web/index.mjs","types":"./index.d.ts"}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@vitest/browser":"^1.1.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.7.0","firebase-admin":"^11.11.1","firebase-tools":"^12.9.1","playwright":"^1.40.1","prettier":"^3.1.1","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.3.3","vitest":"^1.1.0"},"_id":"typesaurus@10.0.0-rc.6","readme":"⚠️ **Warning**: the current `main` represents Typesaurus X pre-release version of the library. [See `v7` branch](https://github.com/kossnocorp/typesaurus/tree/v7) for the stable version.\r\n\r\n# 🦕 Typesaurus\r\n\r\nTypeScript-first ODM for Firestore.\r\n\r\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\r\n\r\n**Why?**\r\n\r\n- Designed with TypeScript's type inference in mind\r\n- Universal code (browser & Node.js)\r\n- Uncompromised type-safety\r\n- Code autocomplete\r\n- Say goodbye to any!\r\n- Say goodbye to exceptions!\r\n- [Ready to start? Follow this guide](https://typesaurus.com/get-started).\r\n\r\n<hr>\r\n<div align=\"center\">\r\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\r\n</div>\r\n<hr>\r\n\r\n## Installation\r\n\r\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\r\nTo install Typesaurus, run:\r\n\r\n```sh\r\nnpm install --save typesaurus firebase firebase-admin\r\n```\r\n\r\n_Note that Typesaurus requires the `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies, so they won't install automatically with the Typesaurus package._\r\n\r\n## Features\r\n\r\n- **Universal package**: reuse the same code on the client and server.\r\n- **JavaScript-native**: converts Firestore data types, i.e. timestamp, to native JS types, i.e. `Date`.\r\n- **Build size-efficiency**: optimized build-size for web.\r\n- **Advanced type-safety**: uncompromised type-safety, includes Firestore quirks.\r\n- **Typed ids**: all document ids are types, so you'll never mix up a user id with an account id.\r\n- **Centralized schema**: easy to define, read and update.\r\n- **Single-import principle**: single import to define, single import to use.\r\n\r\nWant to read about features in detail? [Go to Key Features](https://typesaurus.com/get-started/further-reading/features/).\r\n\r\n## Changelog\r\n\r\nSee [the changelog](./CHANGELOG.md).\r\n\r\n## License\r\n\r\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\r\n","readmeFilename":"README.md","gitHead":"bb6f0efe8e4bf791ee0ade102048ccd1318e8521","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-5npchrpYqypN8hK+drXHA7XyqzNNcMI9NDhLMZG/3HD1+Z5+bf97g+jouOfiRcOf/g2xaj1trgb1W2Uedu5+aQ==","shasum":"19e5b707ad48bdc540814829b27f2e125ace187e","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-rc.6.tgz","fileCount":61,"unpackedSize":497880,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKzTCdISiwPigESPqkVhTAS62mHDHFHfZrrWeS1HzaogIhAI5R13BuQFqJEWzvsnb/V3exAy9R9Mh3gR7ZR1xXP/mp"}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-rc.6_1703908685614_0.797290035464113"},"_hasShrinkwrap":false},"10.0.0-rc.7":{"name":"typesaurus","version":"10.0.0-rc.7","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","browser":"./adapter/web/index.js","default":"./adapter/admin/index.js"},"import":{"types":"./index.d.mts","browser":"./adapter/web/index.mjs","default":"./adapter/admin/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","browser":"./adapter/web/batch.js","default":"./adapter/admin/batch.js"},"import":{"types":"./types/batch.d.mts","browser":"./adapter/web/batch.mjs","default":"./adapter/admin/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","browser":"./adapter/web/groups.js","default":"./adapter/admin/groups.js"},"import":{"types":"./types/groups.d.mts","browser":"./adapter/web/groups.mjs","default":"./adapter/admin/groups.mjs"}},"./transaction":{"require":{"browser":"./adapter/web/transaction.js","default":"./adapter/admin/transaction.js","types":"./types/transaction.d.ts"},"import":{"browser":"./adapter/web/transaction.mjs","default":"./adapter/admin/transaction.mjs","types":"./types/transaction.d.mts"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}},"./adapter/next/admin":{"default":"./adapter/admin/index.mjs","types":"./index.d.ts"},"./adapter/next/web":{"default":"./adapter/web/index.mjs","types":"./index.d.ts"}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@vitest/browser":"^1.1.0","babel-loader":"^8.2.5","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.7.0","firebase-admin":"^11.11.1","firebase-tools":"^12.9.1","playwright":"^1.40.1","prettier":"^3.1.1","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.3.3","vitest":"^1.1.0"},"_id":"typesaurus@10.0.0-rc.7","readme":"⚠️ **Warning**: the current `main` represents Typesaurus X pre-release version of the library. [See `v7` branch](https://github.com/kossnocorp/typesaurus/tree/v7) for the stable version.\r\n\r\n# 🦕 Typesaurus\r\n\r\nTypeScript-first ODM for Firestore.\r\n\r\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\r\n\r\n**Why?**\r\n\r\n- Designed with TypeScript's type inference in mind\r\n- Universal code (browser & Node.js)\r\n- Uncompromised type-safety\r\n- Code autocomplete\r\n- Say goodbye to any!\r\n- Say goodbye to exceptions!\r\n- [Ready to start? Follow this guide](https://typesaurus.com/get-started).\r\n\r\n<hr>\r\n<div align=\"center\">\r\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\r\n</div>\r\n<hr>\r\n\r\n## Installation\r\n\r\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\r\nTo install Typesaurus, run:\r\n\r\n```sh\r\nnpm install --save typesaurus firebase firebase-admin\r\n```\r\n\r\n_Note that Typesaurus requires the `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies, so they won't install automatically with the Typesaurus package._\r\n\r\n## Features\r\n\r\n- **Universal package**: reuse the same code on the client and server.\r\n- **JavaScript-native**: converts Firestore data types, i.e. timestamp, to native JS types, i.e. `Date`.\r\n- **Build size-efficiency**: optimized build-size for web.\r\n- **Advanced type-safety**: uncompromised type-safety, includes Firestore quirks.\r\n- **Typed ids**: all document ids are types, so you'll never mix up a user id with an account id.\r\n- **Centralized schema**: easy to define, read and update.\r\n- **Single-import principle**: single import to define, single import to use.\r\n\r\nWant to read about features in detail? [Go to Key Features](https://typesaurus.com/get-started/further-reading/features/).\r\n\r\n## Changelog\r\n\r\nSee [the changelog](./CHANGELOG.md).\r\n\r\n## License\r\n\r\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\r\n","readmeFilename":"README.md","gitHead":"975e5775a34451ab854d8376ff7003295cce45af","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-1g5wKsxktm0hsKKUx7q77Nr8mUI9N3vcEc/XTfQlsQI61DYnNMWn9W/fM4L1z1VdjBVVWS+qKryGf3et57rPvg==","shasum":"7fbbf007d1d117b89133a35d837335db4965d9b3","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-rc.7.tgz","fileCount":61,"unpackedSize":497880,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC39RGcMM4JglW+zSYWwqDjp4UnD8koxudyxp2MIYNUGQIgJ8ZOX8h4p3NfxZbro8hbz3QBvSpd5deJeGFUJntInPo="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-rc.7_1704163219639_0.6421140892671067"},"_hasShrinkwrap":false},"10.0.0-rc.8":{"name":"typesaurus","version":"10.0.0-rc.8","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","browser":"./adapter/web/index.js","default":"./adapter/admin/index.js"},"import":{"types":"./index.d.mts","browser":"./adapter/web/index.mjs","default":"./adapter/admin/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","browser":"./adapter/web/batch.js","default":"./adapter/admin/batch.js"},"import":{"types":"./types/batch.d.mts","browser":"./adapter/web/batch.mjs","default":"./adapter/admin/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","browser":"./adapter/web/groups.js","default":"./adapter/admin/groups.js"},"import":{"types":"./types/groups.d.mts","browser":"./adapter/web/groups.mjs","default":"./adapter/admin/groups.mjs"}},"./transaction":{"require":{"types":"./types/transaction.d.ts","browser":"./adapter/web/transaction.js","default":"./adapter/admin/transaction.js"},"import":{"types":"./types/transaction.d.mts","browser":"./adapter/web/transaction.mjs","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@vitest/browser":"^1.1.0","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.7.0","firebase-admin":"^11.11.1","firebase-tools":"^12.9.1","playwright":"^1.40.1","prettier":"^3.1.1","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.3.3","vitest":"^1.1.0"},"_id":"typesaurus@10.0.0-rc.8","readme":"⚠️ **Warning**: the current `main` represents Typesaurus X pre-release version of the library. [See `v7` branch](https://github.com/kossnocorp/typesaurus/tree/v7) for the stable version.\r\n\r\n# 🦕 Typesaurus\r\n\r\nTypeScript-first ODM for Firestore.\r\n\r\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\r\n\r\n**Why?**\r\n\r\n- Designed with TypeScript's type inference in mind\r\n- Universal code (browser & Node.js)\r\n- Uncompromised type-safety\r\n- Code autocomplete\r\n- Say goodbye to any!\r\n- Say goodbye to exceptions!\r\n- [Ready to start? Follow this guide](https://typesaurus.com/get-started/).\r\n\r\n<hr>\r\n<div align=\"center\">\r\n🔥🔥🔥 <strong>The project is sponsored by <a href='https://backupfire.dev/'>Backup Fire</a>, backup service for Firebase</strong> 🔥🔥🔥\r\n</div>\r\n<hr>\r\n\r\n## Installation\r\n\r\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\r\nTo install Typesaurus, run:\r\n\r\n```sh\r\nnpm install --save typesaurus firebase firebase-admin\r\n```\r\n\r\n_Note that Typesaurus requires the `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies, so they won't install automatically with the Typesaurus package._\r\n\r\n## Features\r\n\r\n- **Universal package**: reuse the same code on the client and server.\r\n- **JavaScript-native**: converts Firestore data types, i.e. timestamp, to native JS types, i.e. `Date`.\r\n- **Build size-efficiency**: optimized build-size for web.\r\n- **Advanced type-safety**: uncompromised type-safety, includes Firestore quirks.\r\n- **Typed ids**: all document ids are types, so you'll never mix up a user id with an account id.\r\n- **Centralized schema**: easy to define, read and update.\r\n- **Single-import principle**: single import to define, single import to use.\r\n\r\nWant to read about features in detail? [Go to Key Features](https://typesaurus.com/about/features//).\r\n\r\n## Changelog\r\n\r\nSee [the changelog](./CHANGELOG.md).\r\n\r\n## License\r\n\r\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\r\n","readmeFilename":"README.md","gitHead":"d1781fdbd6cb1569f8c29849e33203d19633d362","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-aZNCUi85qAJ6YciUofmi7lBRNvkZLKHqOR50Z3l6n1nxuktnYcv655uCpnZ+qOkYOugYYVyRuI33grDxSrPD5g==","shasum":"3476c18074e708d2ccf99feeaf1a13ee7594ba63","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-rc.8.tgz","fileCount":61,"unpackedSize":498073,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHgcNHZAa3o3MNJPCdoDxsSExJNi7QQ2p60R/wVpJeRiAiEA0/m6wjF3vUS45jAkQhx5O9L607v9E65vFF4JJl8lw1w="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-rc.8_1704421990641_0.6098461831531572"},"_hasShrinkwrap":false},"10.0.0-rc.9":{"name":"typesaurus","version":"10.0.0-rc.9","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","browser":"./adapter/web/index.js","default":"./adapter/admin/index.js"},"import":{"types":"./index.d.mts","browser":"./adapter/web/index.mjs","default":"./adapter/admin/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","browser":"./adapter/web/batch.js","default":"./adapter/admin/batch.js"},"import":{"types":"./types/batch.d.mts","browser":"./adapter/web/batch.mjs","default":"./adapter/admin/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","browser":"./adapter/web/groups.js","default":"./adapter/admin/groups.js"},"import":{"types":"./types/groups.d.mts","browser":"./adapter/web/groups.mjs","default":"./adapter/admin/groups.mjs"}},"./transaction":{"require":{"types":"./types/transaction.d.ts","browser":"./adapter/web/transaction.js","default":"./adapter/admin/transaction.js"},"import":{"types":"./types/transaction.d.mts","browser":"./adapter/web/transaction.mjs","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@vitest/browser":"^1.1.0","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.7.0","firebase-admin":"^11.11.1","firebase-tools":"^12.9.1","playwright":"^1.40.1","prettier":"^3.1.1","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.3.3","vitest":"^1.1.0"},"_id":"typesaurus@10.0.0-rc.9","readme":"⚠️ **Warning**: the current `main` represents Typesaurus X pre-release version of the library. [See `v7` branch](https://github.com/kossnocorp/typesaurus/tree/v7) for the stable version.\r\n\r\n# 🦕 Typesaurus\r\n\r\nTypeScript-first ODM for Firestore.\r\n\r\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\r\n\r\n**Why?**\r\n\r\n- Designed with TypeScript's type inference in mind\r\n- Universal code (browser & Node.js)\r\n- Uncompromised type-safety\r\n- Code autocomplete\r\n- Say goodbye to any!\r\n- Say goodbye to exceptions!\r\n- [Ready to start? Follow this guide](https://typesaurus.com/get-started/).\r\n\r\n## Installation\r\n\r\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\r\nTo install Typesaurus, run:\r\n\r\n```sh\r\nnpm install --save typesaurus firebase firebase-admin\r\n```\r\n\r\n_Note that Typesaurus requires the `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies, so they won't install automatically with the Typesaurus package._\r\n\r\n## Features\r\n\r\n- **Complete type-safety**: uncompromised type-safety, includes Firestore quirks.\r\n- **Universal package**: reuse the same code on the client and server.\r\n- **JavaScript-native**: converts Firestore data types, i.e. timestamp, to native JS types, i.e. `Date`.\r\n- **Build size-efficiency**: optimized build-size for web.\r\n- **Typed ids**: all document ids are types, so you'll never mix up a user id with an account id.\r\n- **Centralized schema**: easy to define, read and update.\r\n- **Single-import principle**: single import to define, single import to use.\r\n\r\n<!-- TODO: Do it one day\r\nWant to read about features in detail? [Go to Key Features](https://typesaurus.com/about/features/). -->\r\n\r\n## Changelog\r\n\r\nSee [the changelog](./CHANGELOG.md).\r\n\r\n## License\r\n\r\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\r\n","readmeFilename":"README.md","gitHead":"6e571c114398e8044573947c23a85ad0d5012812","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-mCz6vRsZqB/Ehr+A/spQwErYeNs8ttSmIXdbXZbh9oMDMh6WjL8GinNVz5rasZQjKKRpNXZKG58WA+acKNmOcw==","shasum":"82e5c4827e9065da5e937cd60a3fc7020a7b2e06","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-rc.9.tgz","fileCount":61,"unpackedSize":499920,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICOAb0TpPgU+/OOeUZxpflMofA4c0FVHk/r462mW+PwqAiAX77ylUDCtYz/gbq5Ju0OKfsIa4L/ijNy14nBbsk5oLQ=="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-rc.9_1705324071824_0.5159021488616966"},"_hasShrinkwrap":false},"10.0.0-rc.10":{"name":"typesaurus","version":"10.0.0-rc.10","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","browser":"./adapter/web/index.js","default":"./adapter/admin/index.js"},"import":{"types":"./index.d.mts","browser":"./adapter/web/index.mjs","default":"./adapter/admin/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","browser":"./adapter/web/batch.js","default":"./adapter/admin/batch.js"},"import":{"types":"./types/batch.d.mts","browser":"./adapter/web/batch.mjs","default":"./adapter/admin/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","browser":"./adapter/web/groups.js","default":"./adapter/admin/groups.js"},"import":{"types":"./types/groups.d.mts","browser":"./adapter/web/groups.mjs","default":"./adapter/admin/groups.mjs"}},"./transaction":{"require":{"types":"./types/transaction.d.ts","browser":"./adapter/web/transaction.js","default":"./adapter/admin/transaction.js"},"import":{"types":"./types/transaction.d.mts","browser":"./adapter/web/transaction.mjs","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@typescript/analyze-trace":"^0.10.1","@vitest/browser":"^1.1.0","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.7.0","firebase-admin":"^11.11.1","firebase-tools":"^12.9.1","playwright":"^1.40.1","prettier":"^3.2.4","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.3.3","vitest":"^1.1.0"},"_id":"typesaurus@10.0.0-rc.10","readme":"⚠️ **Warning**: the current `main` represents Typesaurus X pre-release version of the library. [See `v7` branch](https://github.com/kossnocorp/typesaurus/tree/v7) for the stable version.\r\n\r\n# 🦕 Typesaurus\r\n\r\nTypeScript-first ODM for Firestore.\r\n\r\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\r\n\r\n**Why?**\r\n\r\n- Designed with TypeScript's type inference in mind\r\n- Universal code (browser & Node.js)\r\n- Uncompromised type-safety\r\n- Code autocomplete\r\n- Say goodbye to any!\r\n- Say goodbye to exceptions!\r\n- [Ready to start? Follow this guide](https://typesaurus.com/get-started/).\r\n\r\n## Installation\r\n\r\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\r\nTo install Typesaurus, run:\r\n\r\n```sh\r\nnpm install --save typesaurus firebase firebase-admin\r\n```\r\n\r\n_Note that Typesaurus requires the `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies, so they won't install automatically with the Typesaurus package._\r\n\r\n## Features\r\n\r\n- **Complete type-safety**: uncompromised type-safety, includes Firestore quirks.\r\n- **Universal package**: reuse the same code on the client and server.\r\n- **JavaScript-native**: converts Firestore data types, i.e. timestamp, to native JS types, i.e. `Date`.\r\n- **Build size-efficiency**: optimized build-size for web.\r\n- **Typed ids**: all document ids are types, so you'll never mix up a user id with an account id.\r\n- **Centralized schema**: easy to define, read and update.\r\n- **Single-import principle**: single import to define, single import to use.\r\n\r\n<!-- TODO: Do it one day\r\nWant to read about features in detail? [Go to Key Features](https://typesaurus.com/about/features/). -->\r\n\r\n## Changelog\r\n\r\nSee [the changelog](./CHANGELOG.md).\r\n\r\n## License\r\n\r\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\r\n","readmeFilename":"README.md","gitHead":"35a9be6f4e77e896a53e9918d09b72961c2c8977","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-KSrABIZdRvy5MTcyaiP2+s/BT5GZMoT9YB1hZSHHitZ7S4gfJvOeQ5zUFMhaJQbqVX8KI533S+JbsW5EfMQ9oA==","shasum":"4db7cede1e818557ff980f58b9cb68fb193b4743","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-rc.10.tgz","fileCount":61,"unpackedSize":512451,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGDsNv+j4xp9oEKGOdJ8TcEMIfEINWZ5B9GMFaSgt8TIAiEAuAzmlIYijhgFKP7unu4e10uX+mkokxFQWGJ0ZXmrHeI="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-rc.10_1706152984153_0.02624271052341176"},"_hasShrinkwrap":false},"10.0.0-rc.11":{"name":"typesaurus","version":"10.0.0-rc.11","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","browser":"./adapter/web/index.js","default":"./adapter/admin/index.js"},"import":{"types":"./index.d.mts","browser":"./adapter/web/index.mjs","default":"./adapter/admin/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","browser":"./adapter/web/batch.js","default":"./adapter/admin/batch.js"},"import":{"types":"./types/batch.d.mts","browser":"./adapter/web/batch.mjs","default":"./adapter/admin/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","browser":"./adapter/web/groups.js","default":"./adapter/admin/groups.js"},"import":{"types":"./types/groups.d.mts","browser":"./adapter/web/groups.mjs","default":"./adapter/admin/groups.mjs"}},"./transaction":{"require":{"types":"./types/transaction.d.ts","browser":"./adapter/web/transaction.js","default":"./adapter/admin/transaction.js"},"import":{"types":"./types/transaction.d.mts","browser":"./adapter/web/transaction.mjs","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@typescript/analyze-trace":"^0.10.1","@vitest/browser":"^1.1.0","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.7.0","firebase-admin":"^11.11.1","firebase-tools":"^12.9.1","playwright":"^1.40.1","prettier":"^3.2.4","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.3.3","vitest":"^1.1.0"},"_id":"typesaurus@10.0.0-rc.11","readme":"⚠️ **Warning**: the current `main` represents Typesaurus X pre-release version of the library. [See `v7` branch](https://github.com/kossnocorp/typesaurus/tree/v7) for the stable version.\r\n\r\n# 🦕 Typesaurus\r\n\r\nTypeScript-first ODM for Firestore.\r\n\r\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\r\n\r\n**Why?**\r\n\r\n- Designed with TypeScript's type inference in mind\r\n- Universal code (browser & Node.js)\r\n- Uncompromised type-safety\r\n- Code autocomplete\r\n- Say goodbye to any!\r\n- Say goodbye to exceptions!\r\n- [Ready to start? Follow this guide](https://typesaurus.com/get-started/).\r\n\r\n## Installation\r\n\r\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\r\nTo install Typesaurus, run:\r\n\r\n```sh\r\nnpm install --save typesaurus firebase firebase-admin\r\n```\r\n\r\n_Note that Typesaurus requires the `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies, so they won't install automatically with the Typesaurus package._\r\n\r\n## Features\r\n\r\n- **Complete type-safety**: uncompromised type-safety, includes Firestore quirks.\r\n- **Universal package**: reuse the same code on the client and server.\r\n- **JavaScript-native**: converts Firestore data types, i.e. timestamp, to native JS types, i.e. `Date`.\r\n- **Build size-efficiency**: optimized build-size for web.\r\n- **Typed ids**: all document ids are types, so you'll never mix up a user id with an account id.\r\n- **Centralized schema**: easy to define, read and update.\r\n- **Single-import principle**: single import to define, single import to use.\r\n\r\n<!-- TODO: Do it one day\r\nWant to read about features in detail? [Go to Key Features](https://typesaurus.com/about/features/). -->\r\n\r\n## Changelog\r\n\r\nSee [the changelog](./CHANGELOG.md).\r\n\r\n## License\r\n\r\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\r\n","readmeFilename":"README.md","gitHead":"6626491d80decbc0978e9429c9586f33bc6c38b9","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-3PNwZnQNp6NVW16rPE/6zY1RhhWl6FJ64huDamWDFWb3DFUOqdb8X6CFa/7xNkAFR3N/bIpshoE9BwT6R7E4Xw==","shasum":"48d20aa650c21976c362a894007bdae95a06d337","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0-rc.11.tgz","fileCount":61,"unpackedSize":512469,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG+0HHF/+KretV8LrWBgFBpGF78qeqTrFRAmd/f7Nw1HAiEAhBxZYWGG4bqFs9Icwb0ZBWhWMofBr41Xi6QcgdJc5U8="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0-rc.11_1706162570401_0.20158004556285403"},"_hasShrinkwrap":false},"10.0.0":{"name":"typesaurus","version":"10.0.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","browser":"./adapter/web/index.js","default":"./adapter/admin/index.js"},"import":{"types":"./index.d.mts","browser":"./adapter/web/index.mjs","default":"./adapter/admin/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","browser":"./adapter/web/batch.js","default":"./adapter/admin/batch.js"},"import":{"types":"./types/batch.d.mts","browser":"./adapter/web/batch.mjs","default":"./adapter/admin/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","browser":"./adapter/web/groups.js","default":"./adapter/admin/groups.js"},"import":{"types":"./types/groups.d.mts","browser":"./adapter/web/groups.mjs","default":"./adapter/admin/groups.mjs"}},"./transaction":{"require":{"types":"./types/transaction.d.ts","browser":"./adapter/web/transaction.js","default":"./adapter/admin/transaction.js"},"import":{"types":"./types/transaction.d.mts","browser":"./adapter/web/transaction.mjs","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@typescript/analyze-trace":"^0.10.1","@vitest/browser":"^1.1.0","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.7.0","firebase-admin":"^11.11.1","firebase-tools":"^12.9.1","playwright":"^1.40.1","prettier":"^3.2.4","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.3.3","vitest":"^1.1.0"},"_id":"typesaurus@10.0.0","gitHead":"2da4ba5eb22e87e4831051673464ce6ed037ed2e","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-ydxNwPryWG15keurndjDS9QVXxpGWjzD3Zqrhmn2sCTVZ0MNv/YeHe5qwBhjugiXXphwz7LHiJR1f8xB+edHPA==","shasum":"7cbfd9a61af9552d914afafe4bdbd8934e09fbb7","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.0.tgz","fileCount":61,"unpackedSize":512358,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDBJDNX4Hgw8fUTP3w+THzz4MslhlibaHjozylGDUM5/AiBiBcq36PQDLJNrEFigX9S9xfvY54oHtj/NjLA8xXYvzQ=="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.0_1706419685935_0.5058066586886381"},"_hasShrinkwrap":false},"10.0.1":{"name":"typesaurus","version":"10.0.1","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","browser":"./adapter/web/index.js","default":"./adapter/admin/index.js"},"import":{"types":"./index.d.mts","browser":"./adapter/web/index.mjs","default":"./adapter/admin/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","browser":"./adapter/web/batch.js","default":"./adapter/admin/batch.js"},"import":{"types":"./types/batch.d.mts","browser":"./adapter/web/batch.mjs","default":"./adapter/admin/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","browser":"./adapter/web/groups.js","default":"./adapter/admin/groups.js"},"import":{"types":"./types/groups.d.mts","browser":"./adapter/web/groups.mjs","default":"./adapter/admin/groups.mjs"}},"./transaction":{"require":{"types":"./types/transaction.d.ts","browser":"./adapter/web/transaction.js","default":"./adapter/admin/transaction.js"},"import":{"types":"./types/transaction.d.mts","browser":"./adapter/web/transaction.mjs","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@typescript/analyze-trace":"^0.10.1","@vitest/browser":"^1.1.0","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.7.0","firebase-admin":"^11.11.1","firebase-tools":"^12.9.1","playwright":"^1.40.1","prettier":"^3.2.4","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.3.3","vitest":"^1.1.0"},"_id":"typesaurus@10.0.1","gitHead":"6177e23e95d5c94e681ba31041f600afa0cd6a81","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-57abzyAIIiZy68EBztVNMebadRJYrOCYjld/KqCxuTC5IL0/uMAVAIKNR8Qe+USOnzUIvt43yjBP7HuAJ/3SLg==","shasum":"00d65d54abe7946fba3ba22464e2129be0ad19aa","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.0.1.tgz","fileCount":61,"unpackedSize":512648,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEz9pCB4GXKJYjjT1bNWvgMGA89GCoXESASdOOebf5XmAiAKqNYb3p8fswFnFdLEIXruktBjsJRBHF/OrzpAiaQf7Q=="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.0.1_1706667848052_0.1822603967462244"},"_hasShrinkwrap":false},"10.1.0":{"name":"typesaurus","version":"10.1.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","browser":"./adapter/web/index.js","default":"./adapter/admin/index.js"},"import":{"types":"./index.d.mts","browser":"./adapter/web/index.mjs","default":"./adapter/admin/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","browser":"./adapter/web/batch.js","default":"./adapter/admin/batch.js"},"import":{"types":"./types/batch.d.mts","browser":"./adapter/web/batch.mjs","default":"./adapter/admin/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","browser":"./adapter/web/groups.js","default":"./adapter/admin/groups.js"},"import":{"types":"./types/groups.d.mts","browser":"./adapter/web/groups.mjs","default":"./adapter/admin/groups.mjs"}},"./transaction":{"require":{"types":"./types/transaction.d.ts","browser":"./adapter/web/transaction.js","default":"./adapter/admin/transaction.js"},"import":{"types":"./types/transaction.d.mts","browser":"./adapter/web/transaction.mjs","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@typescript/analyze-trace":"^0.10.1","@vitest/browser":"^1.1.0","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.8.0","firebase-admin":"^12.0.0","firebase-tools":"^13.1.0","playwright":"^1.40.1","prettier":"^3.2.5","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.3.3","vitest":"^1.1.0"},"_id":"typesaurus@10.1.0","gitHead":"9ea7c34b870368f2e1a4ea8826e7e808aa4bec54","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-WElabfyr4e1OPe4fgmZVAXjLf0MdAsGQ/sO9Rw2ktZKlnRnnGIH89FiMOeqO99YBJb3zSNN7hAt/Em+BmXJkHg==","shasum":"72055871b3213b21e920890e4dbd4acc6881b91f","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.1.0.tgz","fileCount":61,"unpackedSize":518028,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAwCJtGxWUccUkt0c/+BKFL5suPBwKq8i0gG0Pfw5YQRAiEA/4mXkf71fHV8/pEHqZCcxRKEnVXtTtuNVrh38SP7J+0="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.1.0_1707108686099_0.052509344775047984"},"_hasShrinkwrap":false},"10.2.0":{"name":"typesaurus","version":"10.2.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","browser":"./adapter/web/index.js","default":"./adapter/admin/index.js"},"import":{"types":"./index.d.mts","browser":"./adapter/web/index.mjs","default":"./adapter/admin/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","browser":"./adapter/web/batch.js","default":"./adapter/admin/batch.js"},"import":{"types":"./types/batch.d.mts","browser":"./adapter/web/batch.mjs","default":"./adapter/admin/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","browser":"./adapter/web/groups.js","default":"./adapter/admin/groups.js"},"import":{"types":"./types/groups.d.mts","browser":"./adapter/web/groups.mjs","default":"./adapter/admin/groups.mjs"}},"./transaction":{"require":{"types":"./types/transaction.d.ts","browser":"./adapter/web/transaction.js","default":"./adapter/admin/transaction.js"},"import":{"types":"./types/transaction.d.mts","browser":"./adapter/web/transaction.mjs","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@typescript/analyze-trace":"^0.10.1","@vitest/browser":"^1.1.0","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.8.0","firebase-admin":"^12.0.0","firebase-tools":"^13.1.0","playwright":"^1.40.1","prettier":"^3.2.5","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.3.3","vitest":"^1.1.0"},"_id":"typesaurus@10.2.0","gitHead":"b70d38280b5a855a8225616cd94fcdee10896f06","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-+7pte6MpaBlpDYHz/QUAuXk1lOfMTmCVgO0zETSxJVPoyeOQiYwbBGQqYakq5mGCanyCwSIUN6gv0bmo8whJoA==","shasum":"d506561955042f3fcb4b830347cc5a0dff9bff8d","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.2.0.tgz","fileCount":61,"unpackedSize":517812,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE41QYV+jn3U1Is4seYWjKG8xbomQFdL9rZrtO0Z7dqEAiEA+47aFAl64Tm+FERnpnMw8SDOXuECAqfN/HAJ+AwMRHQ="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.2.0_1709792735324_0.956209022641419"},"_hasShrinkwrap":false},"10.3.0":{"name":"typesaurus","version":"10.3.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","browser":"./adapter/web/index.js","default":"./adapter/admin/index.js"},"import":{"types":"./index.d.mts","browser":"./adapter/web/index.mjs","default":"./adapter/admin/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","browser":"./adapter/web/batch.js","default":"./adapter/admin/batch.js"},"import":{"types":"./types/batch.d.mts","browser":"./adapter/web/batch.mjs","default":"./adapter/admin/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","browser":"./adapter/web/groups.js","default":"./adapter/admin/groups.js"},"import":{"types":"./types/groups.d.mts","browser":"./adapter/web/groups.mjs","default":"./adapter/admin/groups.mjs"}},"./transaction":{"require":{"types":"./types/transaction.d.ts","browser":"./adapter/web/transaction.js","default":"./adapter/admin/transaction.js"},"import":{"types":"./types/transaction.d.mts","browser":"./adapter/web/transaction.mjs","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@typescript/analyze-trace":"^0.10.1","@vitest/browser":"^1.1.0","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.8.0","firebase-admin":"^12.0.0","firebase-tools":"^13.1.0","playwright":"^1.40.1","prettier":"^3.2.5","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.4.2","vitest":"^1.1.0"},"_id":"typesaurus@10.3.0","gitHead":"aa1d0438e63683bd2618fb475b4f16310f5cd727","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-NMNUBlpnT8l7UuumvSJqB2vCYwO/moplBHOCZ7XpmWKcNXSPARY5T4SKEbfLCNpdzKPr4aX6y9cUaWP2sxJ/HQ==","shasum":"eb759efbcd72ea7e53a7ee0598c18f8a4eaa5d5a","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.3.0.tgz","fileCount":63,"unpackedSize":533181,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBC6Wpte37jGL9aSfpEpWkK8GRD6otf5/WGXD1FS1LypAiEAnSPh8moYjD8c6D6dHYUdjC25aD5Y7nBUlY92tCFzkMc="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.3.0_1710900538716_0.09102824939283094"},"_hasShrinkwrap":false},"10.4.0":{"name":"typesaurus","version":"10.4.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","browser":"./adapter/web/index.js","default":"./adapter/admin/index.js"},"import":{"types":"./index.d.mts","browser":"./adapter/web/index.mjs","default":"./adapter/admin/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","browser":"./adapter/web/batch.js","default":"./adapter/admin/batch.js"},"import":{"types":"./types/batch.d.mts","browser":"./adapter/web/batch.mjs","default":"./adapter/admin/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","browser":"./adapter/web/groups.js","default":"./adapter/admin/groups.js"},"import":{"types":"./types/groups.d.mts","browser":"./adapter/web/groups.mjs","default":"./adapter/admin/groups.mjs"}},"./transaction":{"require":{"types":"./types/transaction.d.ts","browser":"./adapter/web/transaction.js","default":"./adapter/admin/transaction.js"},"import":{"types":"./types/transaction.d.mts","browser":"./adapter/web/transaction.mjs","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}},"./adapter/admin":{"require":{"default":"./adapter/admin/index.js"},"import":{"default":"./adapter/admin/index.mjs"}},"./adapter/admin/batch":{"require":{"default":"./adapter/admin/batch.js"},"import":{"default":"./adapter/admin/batch.mjs"}},"./adapter/admin/core":{"require":{"default":"./adapter/admin/core.js"},"import":{"default":"./adapter/admin/core.mjs"}},"./adapter/admin/firebase":{"require":{"default":"./adapter/admin/firebase.js"},"import":{"default":"./adapter/admin/firebase.mjs"}},"./adapter/admin/groups":{"require":{"default":"./adapter/admin/groups.js"},"import":{"default":"./adapter/admin/groups.mjs"}},"./adapter/admin/transaction":{"require":{"default":"./adapter/admin/transaction.js"},"import":{"default":"./adapter/admin/transaction.mjs"}},"./adapter/web":{"require":{"default":"./adapter/web/index.js"},"import":{"default":"./adapter/web/index.mjs"}},"./adapter/web/batch":{"require":{"default":"./adapter/web/batch.js"},"import":{"default":"./adapter/web/batch.mjs"}},"./adapter/web/core":{"require":{"default":"./adapter/web/core.js"},"import":{"default":"./adapter/web/core.mjs"}},"./adapter/web/firebase":{"require":{"default":"./adapter/web/firebase.js"},"import":{"default":"./adapter/web/firebase.mjs"}},"./adapter/web/groups":{"require":{"default":"./adapter/web/groups.js"},"import":{"default":"./adapter/web/groups.mjs"}},"./adapter/web/transaction":{"require":{"default":"./adapter/web/transaction.js"},"import":{"default":"./adapter/web/transaction.mjs"}}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@typescript/analyze-trace":"^0.10.1","@vitest/browser":"^1.1.0","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.8.0","firebase-admin":"^12.0.0","firebase-tools":"^13.1.0","playwright":"^1.40.1","prettier":"^3.2.5","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.4.4","vitest":"^1.1.0"},"_id":"typesaurus@10.4.0","gitHead":"dfe11ad0106a05c3f2cbc10a3f0b007aa5874967","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-2P3/NNTv1JjVMK8eAfKHrFL9g/LtB885FPxxvN/vTNXmZbCq6gJn28C5hXgCyQF999+7JGLHhWUZM0T+JuI0Mw==","shasum":"60a15d941118a6c485052a1d23a40d5910d60219","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.4.0.tgz","fileCount":63,"unpackedSize":535739,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDymSvz8psqTdy1ZnpB+YiEnTm/qTrKCf/mmDyDTwLPDQIgRTuaclKpAzxtY18u6CyF9YV3mmvX4JZ1VKm4NdcCu00="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.4.0_1712820986099_0.577198995919679"},"_hasShrinkwrap":false},"10.5.0":{"name":"typesaurus","version":"10.5.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","browser":"./adapter/web/index.js","default":"./adapter/admin/index.js"},"import":{"types":"./index.d.mts","browser":"./adapter/web/index.mjs","default":"./adapter/admin/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","browser":"./adapter/web/batch.js","default":"./adapter/admin/batch.js"},"import":{"types":"./types/batch.d.mts","browser":"./adapter/web/batch.mjs","default":"./adapter/admin/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","browser":"./adapter/web/groups.js","default":"./adapter/admin/groups.js"},"import":{"types":"./types/groups.d.mts","browser":"./adapter/web/groups.mjs","default":"./adapter/admin/groups.mjs"}},"./transaction":{"require":{"types":"./types/transaction.d.ts","browser":"./adapter/web/transaction.js","default":"./adapter/admin/transaction.js"},"import":{"types":"./types/transaction.d.mts","browser":"./adapter/web/transaction.mjs","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}},"./adapter/admin":{"require":{"default":"./adapter/admin/index.js"},"import":{"default":"./adapter/admin/index.mjs"}},"./adapter/admin/batch":{"require":{"default":"./adapter/admin/batch.js"},"import":{"default":"./adapter/admin/batch.mjs"}},"./adapter/admin/core":{"require":{"default":"./adapter/admin/core.js"},"import":{"default":"./adapter/admin/core.mjs"}},"./adapter/admin/firebase":{"require":{"default":"./adapter/admin/firebase.js"},"import":{"default":"./adapter/admin/firebase.mjs"}},"./adapter/admin/groups":{"require":{"default":"./adapter/admin/groups.js"},"import":{"default":"./adapter/admin/groups.mjs"}},"./adapter/admin/transaction":{"require":{"default":"./adapter/admin/transaction.js"},"import":{"default":"./adapter/admin/transaction.mjs"}},"./adapter/web":{"require":{"default":"./adapter/web/index.js"},"import":{"default":"./adapter/web/index.mjs"}},"./adapter/web/batch":{"require":{"default":"./adapter/web/batch.js"},"import":{"default":"./adapter/web/batch.mjs"}},"./adapter/web/core":{"require":{"default":"./adapter/web/core.js"},"import":{"default":"./adapter/web/core.mjs"}},"./adapter/web/firebase":{"require":{"default":"./adapter/web/firebase.js"},"import":{"default":"./adapter/web/firebase.mjs"}},"./adapter/web/groups":{"require":{"default":"./adapter/web/groups.js"},"import":{"default":"./adapter/web/groups.mjs"}},"./adapter/web/transaction":{"require":{"default":"./adapter/web/transaction.js"},"import":{"default":"./adapter/web/transaction.mjs"}}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@typescript/analyze-trace":"^0.10.1","@vitest/browser":"^1.1.0","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.8.0","firebase-admin":"^12.0.0","firebase-tools":"^13.1.0","playwright":"^1.40.1","prettier":"^3.2.5","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.4.4","vitest":"^1.1.0"},"_id":"typesaurus@10.5.0","gitHead":"07bf5e083c9c9b9a65e2e6108cf0eef6316493a0","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-zq5pdj1nt6rsvPBe32hQzE3g8uxbovy03NE8mPLfDcYcBtuKH9oPTLoNJJBhynI0ePFyWvFnSwAoREjemJ88+g==","shasum":"f25696c8bb6e7c16c383487d95c4a898a6f4cff9","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.5.0.tgz","fileCount":63,"unpackedSize":537738,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICGqbWFZPT0BlQSTBOxb/aLw3134ArGQKH0sFgrWS/L4AiAdosChXMa12LFHVA/9gFeCT3RwIQAHHBhfg2pUufIRTw=="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.5.0_1712898735085_0.4459612462946745"},"_hasShrinkwrap":false},"10.6.0":{"name":"typesaurus","version":"10.6.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","browser":"./adapter/web/index.js","default":"./adapter/admin/index.js"},"import":{"types":"./index.d.mts","browser":"./adapter/web/index.mjs","default":"./adapter/admin/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","browser":"./adapter/web/batch.js","default":"./adapter/admin/batch.js"},"import":{"types":"./types/batch.d.mts","browser":"./adapter/web/batch.mjs","default":"./adapter/admin/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","browser":"./adapter/web/groups.js","default":"./adapter/admin/groups.js"},"import":{"types":"./types/groups.d.mts","browser":"./adapter/web/groups.mjs","default":"./adapter/admin/groups.mjs"}},"./transaction":{"require":{"types":"./types/transaction.d.ts","browser":"./adapter/web/transaction.js","default":"./adapter/admin/transaction.js"},"import":{"types":"./types/transaction.d.mts","browser":"./adapter/web/transaction.mjs","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}},"./adapter/admin":{"require":{"default":"./adapter/admin/index.js"},"import":{"default":"./adapter/admin/index.mjs"}},"./adapter/admin/batch":{"require":{"default":"./adapter/admin/batch.js"},"import":{"default":"./adapter/admin/batch.mjs"}},"./adapter/admin/core":{"require":{"default":"./adapter/admin/core.js"},"import":{"default":"./adapter/admin/core.mjs"}},"./adapter/admin/firebase":{"require":{"default":"./adapter/admin/firebase.js"},"import":{"default":"./adapter/admin/firebase.mjs"}},"./adapter/admin/groups":{"require":{"default":"./adapter/admin/groups.js"},"import":{"default":"./adapter/admin/groups.mjs"}},"./adapter/admin/transaction":{"require":{"default":"./adapter/admin/transaction.js"},"import":{"default":"./adapter/admin/transaction.mjs"}},"./adapter/web":{"require":{"default":"./adapter/web/index.js"},"import":{"default":"./adapter/web/index.mjs"}},"./adapter/web/batch":{"require":{"default":"./adapter/web/batch.js"},"import":{"default":"./adapter/web/batch.mjs"}},"./adapter/web/core":{"require":{"default":"./adapter/web/core.js"},"import":{"default":"./adapter/web/core.mjs"}},"./adapter/web/firebase":{"require":{"default":"./adapter/web/firebase.js"},"import":{"default":"./adapter/web/firebase.mjs"}},"./adapter/web/groups":{"require":{"default":"./adapter/web/groups.js"},"import":{"default":"./adapter/web/groups.mjs"}},"./adapter/web/transaction":{"require":{"default":"./adapter/web/transaction.js"},"import":{"default":"./adapter/web/transaction.mjs"}}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@typescript/analyze-trace":"^0.10.1","@vitest/browser":"^1.1.0","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.8.0","firebase-admin":"^12.0.0","firebase-tools":"^13.1.0","playwright":"^1.40.1","prettier":"^3.2.5","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.4.4","vitest":"^1.1.0"},"_id":"typesaurus@10.6.0","gitHead":"7976747ddfa726350d751e7b31894d31f76f3646","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-X6hGPfFvOsUEsMvw7r+K10I8eETdNXYeAT/Om8QHqEevv0iuSVmWQrZZIc7iQw1ln9s0sFci2o31LjnWQVkL/A==","shasum":"d118fbcb1a8413413db3e95c453f2fe9323dbb23","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.6.0.tgz","fileCount":63,"unpackedSize":539922,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnNEHatKMeXtC4usBtbUZ0j0G721SoJjh34lri0jdIXQIgau68PVwdo8kfznXRXoXs96tclWYYG2So8NMYriFIazc="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.6.0_1712906367813_0.21196775577188975"},"_hasShrinkwrap":false},"10.7.0":{"name":"typesaurus","version":"10.7.0","description":"Type-safe ODM for Firestore","keywords":["Firebase","Firestore","TypeScript"],"sideEffects":false,"browser":"./adapter/web/index","main":"./adapter/admin/index.js","module":"./adapter/admin/index.mjs","exports":{"./package.json":"./package.json",".":{"require":{"types":"./index.d.ts","browser":"./adapter/web/index.js","default":"./adapter/admin/index.js"},"import":{"types":"./index.d.mts","browser":"./adapter/web/index.mjs","default":"./adapter/admin/index.mjs"}},"./batch":{"require":{"types":"./types/batch.d.ts","browser":"./adapter/web/batch.js","default":"./adapter/admin/batch.js"},"import":{"types":"./types/batch.d.mts","browser":"./adapter/web/batch.mjs","default":"./adapter/admin/batch.mjs"}},"./groups":{"require":{"types":"./types/groups.d.ts","browser":"./adapter/web/groups.js","default":"./adapter/admin/groups.js"},"import":{"types":"./types/groups.d.mts","browser":"./adapter/web/groups.mjs","default":"./adapter/admin/groups.mjs"}},"./transaction":{"require":{"types":"./types/transaction.d.ts","browser":"./adapter/web/transaction.js","default":"./adapter/admin/transaction.js"},"import":{"types":"./types/transaction.d.mts","browser":"./adapter/web/transaction.mjs","default":"./adapter/admin/transaction.mjs"}},"./helpers":{"require":{"types":"./helpers/index.d.ts","default":"./helpers/index.js"},"import":{"types":"./helpers/index.d.mts","default":"./helpers/index.mjs"}},"./sp":{"require":{"types":"./sp/index.d.ts","default":"./sp/index.js"},"import":{"types":"./sp/index.d.mts","default":"./sp/index.mjs"}},"./adapter/admin":{"require":{"default":"./adapter/admin/index.js"},"import":{"default":"./adapter/admin/index.mjs"}},"./adapter/admin/batch":{"require":{"default":"./adapter/admin/batch.js"},"import":{"default":"./adapter/admin/batch.mjs"}},"./adapter/admin/core":{"require":{"default":"./adapter/admin/core.js"},"import":{"default":"./adapter/admin/core.mjs"}},"./adapter/admin/firebase":{"require":{"default":"./adapter/admin/firebase.js"},"import":{"default":"./adapter/admin/firebase.mjs"}},"./adapter/admin/groups":{"require":{"default":"./adapter/admin/groups.js"},"import":{"default":"./adapter/admin/groups.mjs"}},"./adapter/admin/transaction":{"require":{"default":"./adapter/admin/transaction.js"},"import":{"default":"./adapter/admin/transaction.mjs"}},"./adapter/web":{"require":{"default":"./adapter/web/index.js"},"import":{"default":"./adapter/web/index.mjs"}},"./adapter/web/batch":{"require":{"default":"./adapter/web/batch.js"},"import":{"default":"./adapter/web/batch.mjs"}},"./adapter/web/core":{"require":{"default":"./adapter/web/core.js"},"import":{"default":"./adapter/web/core.mjs"}},"./adapter/web/firebase":{"require":{"default":"./adapter/web/firebase.js"},"import":{"default":"./adapter/web/firebase.mjs"}},"./adapter/web/groups":{"require":{"default":"./adapter/web/groups.js"},"import":{"default":"./adapter/web/groups.mjs"}},"./adapter/web/transaction":{"require":{"default":"./adapter/web/transaction.js"},"import":{"default":"./adapter/web/transaction.mjs"}}},"repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"license":"MIT","devDependencies":{"@babel/cli":"^7.18.10","@babel/core":"^7.18.10","@babel/plugin-transform-modules-commonjs":"^7.18.6","@babel/preset-env":"^7.12.11","@babel/preset-typescript":"^7.18.6","@types/node":"^18.19.0","@types/sinon":"^10.0.13","@typescript/analyze-trace":"^0.10.1","@vitest/browser":"^1.1.0","babel-plugin-add-import-extension":"^1.6.0","firebase":"^10.8.0","firebase-admin":"^12.0.0","firebase-tools":"^13.1.0","playwright":"^1.40.1","prettier":"^3.2.5","sinon":"^14.0.0","size-limit":"^8.0.0","size-limit-preset-node-lib":"^0.1.0","typescript":"^5.4.4","vitest":"^1.1.0"},"_id":"typesaurus@10.7.0","gitHead":"38a5f02e28d28118127728cc228c35a768794b26","bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"homepage":"https://github.com/kossnocorp/typesaurus#readme","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-1kPF9jIAbgi8ahk/KSI+r/AYs5mC50usGacBHSJbTqaMk4d5zGHyqqm3WFIgvn8W+g4nVw5QUGIlAnyLHFzKcw==","shasum":"7f1dc6c502eb79463a2c2f62830bb7bb32e75846","tarball":"https://registry.npmjs.org/typesaurus/-/typesaurus-10.7.0.tgz","fileCount":63,"unpackedSize":546147,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDgYZfLtl81JAPLE2+bao5RVjZDrCAcOdhQaq8WypOQXAiEA2gfZFOykMcKJ3y3rbbEwNmnAV6VhcgLvV495weBv3Tg="}]},"_npmUser":{"name":"kossnocorp","email":"koss@nocorp.me"},"directories":{},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typesaurus_10.7.0_1713845918414_0.9333413644260655"},"_hasShrinkwrap":false}},"time":{"created":"2019-07-22T11:17:40.558Z","0.0.0":"2019-07-22T11:17:40.877Z","modified":"2024-04-23T04:18:38.861Z","0.1.0":"2019-07-30T06:00:05.665Z","0.1.1":"2019-07-30T06:35:49.750Z","0.2.0":"2019-08-01T09:14:00.846Z","0.2.1":"2019-08-05T13:55:38.426Z","0.3.0":"2019-08-05T15:44:52.244Z","0.3.1":"2019-08-05T16:32:30.389Z","0.3.2":"2019-08-05T16:54:29.062Z","1.0.0":"2019-08-13T14:05:09.867Z","1.1.0":"2019-08-17T14:57:42.044Z","1.2.0":"2019-09-02T20:18:30.053Z","2.0.0":"2019-09-25T08:55:16.391Z","2.1.0":"2019-11-05T01:26:15.485Z","3.0.0":"2019-11-11T04:15:36.008Z","4.0.0":"2019-12-14T13:15:03.209Z","4.0.1":"2019-12-20T03:09:19.857Z","4.1.0-beta":"2019-12-29T17:44:57.242Z","4.1.0":"2020-01-01T14:57:19.569Z","5.0.0":"2020-01-02T14:17:42.184Z","5.1.0":"2020-01-27T08:20:36.522Z","5.2.0-beta.1":"2020-01-31T15:00:01.130Z","5.2.0":"2020-02-04T08:16:59.641Z","5.3.0-beta.1":"2020-02-20T11:22:44.286Z","5.3.0":"2020-02-20T14:09:19.780Z","5.4.0":"2020-04-14T15:15:00.072Z","6.0.0-alpha.1":"2020-04-16T13:42:33.210Z","6.0.0-alpha.2":"2020-04-16T13:45:50.555Z","6.0.0-alpha.3":"2020-04-16T14:45:38.829Z","6.0.0-alpha.4":"2020-04-16T15:05:05.112Z","6.0.0":"2020-04-16T19:22:19.287Z","6.1.0-alpha.1":"2020-04-22T08:33:42.533Z","6.1.0-alpha.2":"2020-04-22T09:10:11.399Z","7.0.0-alpha.1":"2020-06-07T17:57:40.640Z","7.0.0-alpha.2":"2020-06-07T18:08:23.866Z","7.0.0-alpha.3":"2020-06-07T18:19:25.314Z","7.0.0-alpha.4":"2020-06-08T09:27:35.276Z","6.1.0":"2020-07-27T08:27:06.914Z","7.0.0-alpha.5":"2020-07-27T08:38:24.453Z","6.2.0":"2020-08-24T12:29:20.152Z","6.3.0-alpha.1":"2020-08-28T10:47:31.043Z","6.3.0-alpha.2":"2020-08-28T12:02:22.809Z","7.0.0":"2020-12-08T06:25:51.529Z","8.0.0-alpha.1":"2020-12-08T06:28:22.147Z","7.1.0":"2020-12-09T06:37:06.700Z","8.0.0-alpha.2":"2020-12-09T06:45:06.900Z","8.0.0-alpha.3":"2021-01-28T13:55:11.435Z","8.0.0-alpha.4":"2021-01-28T15:50:27.524Z","8.0.0-alpha.5":"2021-01-28T16:04:33.809Z","8.0.0-alpha.6":"2021-01-28T16:11:43.198Z","8.0.0-alpha.7":"2021-01-29T04:50:01.559Z","8.0.0-alpha.8":"2021-01-29T04:53:22.751Z","8.0.0-alpha.9":"2021-01-29T05:07:06.032Z","8.0.0-alpha.10":"2021-01-31T11:38:58.557Z","8.0.0-alpha.11":"2021-02-01T07:49:22.618Z","8.0.0-alpha.12":"2021-02-01T08:00:51.478Z","8.0.0-alpha.13":"2021-02-01T08:05:40.765Z","8.0.0-alpha.14":"2021-02-01T09:39:10.163Z","8.0.0-alpha.15":"2021-02-02T08:25:19.781Z","8.0.0-alpha.16":"2021-02-02T08:39:34.990Z","8.0.0-alpha.17":"2021-02-02T08:48:19.816Z","8.0.0-alpha.18":"2021-02-03T08:52:41.485Z","8.0.0-alpha.19":"2021-02-04T04:39:00.834Z","8.0.0-alpha.20":"2021-02-04T04:43:36.592Z","8.0.0-alpha.21":"2021-02-23T06:57:29.303Z","8.0.0-alpha.22":"2021-03-20T05:48:53.763Z","7.2.0":"2021-05-25T02:49:32.838Z","8.0.0-alpha.23":"2021-06-08T09:19:42.301Z","8.0.0-alpha.24":"2021-07-20T00:57:37.053Z","8.0.0-alpha.25":"2021-07-21T02:44:47.821Z","8.0.0-alpha.26":"2022-02-22T03:39:25.346Z","8.0.0-alpha.27":"2022-02-22T03:45:33.451Z","8.0.0-alpha.28":"2022-02-23T05:21:48.882Z","8.0.0-alpha.29":"2022-02-23T06:36:53.788Z","8.0.0-alpha.30":"2022-02-28T15:36:04.536Z","8.0.0-alpha.31":"2022-04-21T05:54:41.322Z","8.0.0-alpha.32":"2022-07-18T13:20:55.628Z","10.0.0-alpha.1":"2022-08-21T07:20:10.453Z","10.0.0-alpha.2":"2022-08-22T01:50:07.097Z","10.0.0-alpha.3":"2022-08-22T04:02:29.864Z","10.0.0-alpha.4":"2022-08-22T04:49:47.740Z","10.0.0-alpha.5":"2022-08-22T06:05:15.221Z","10.0.0-alpha.6":"2022-08-22T09:15:36.913Z","10.0.0-alpha.7":"2022-08-22T10:26:15.301Z","10.0.0-alpha.8":"2022-08-26T03:32:52.391Z","10.0.0-alpha.9":"2022-08-28T10:22:51.150Z","10.0.0-alpha.10":"2022-08-28T13:36:19.373Z","10.0.0-alpha.11":"2022-09-01T13:21:27.314Z","10.0.0-alpha.12":"2022-09-01T13:36:40.195Z","10.0.0-alpha.13":"2022-09-02T02:40:02.161Z","10.0.0-alpha.14":"2022-09-03T01:53:56.515Z","10.0.0-alpha.15":"2022-09-15T09:15:41.864Z","10.0.0-alpha.16":"2022-09-15T10:29:58.411Z","10.0.0-alpha.17":"2022-09-16T03:47:14.405Z","10.0.0-alpha.18":"2022-09-16T03:57:13.203Z","10.0.0-alpha.19":"2022-09-17T06:07:06.183Z","10.0.0-alpha.20":"2022-09-19T01:18:23.471Z","10.0.0-alpha.21":"2022-09-20T01:40:44.580Z","10.0.0-alpha.22":"2022-09-22T10:14:29.307Z","10.0.0-alpha.23":"2022-09-22T10:20:15.240Z","10.0.0-alpha.24":"2022-09-23T10:27:50.305Z","10.0.0-alpha.25":"2022-09-24T02:30:59.804Z","10.0.0-alpha.26":"2022-09-26T00:59:25.236Z","10.0.0-alpha.27":"2022-09-26T04:27:14.782Z","10.0.0-alpha.28":"2022-10-03T04:22:04.393Z","10.0.0-alpha.29":"2022-10-03T07:23:46.946Z","10.0.0-alpha.30":"2022-10-05T03:44:30.011Z","10.0.0-alpha.31":"2022-10-06T04:08:35.268Z","10.0.0-alpha.32":"2022-10-06T16:14:11.710Z","10.0.0-alpha.33":"2022-10-10T13:34:58.614Z","10.0.0-alpha.34":"2022-10-11T08:21:29.801Z","10.0.0-alpha.35":"2022-10-13T07:41:54.486Z","10.0.0-alpha.36":"2022-10-13T08:41:38.947Z","10.0.0-alpha.37":"2022-10-14T10:17:18.596Z","10.0.0-alpha.38":"2022-10-27T02:40:18.862Z","10.0.0-alpha.39":"2022-10-27T14:35:09.551Z","8.0.0-alpha.33":"2022-11-14T06:30:39.730Z","10.0.0-alpha.40":"2022-12-29T01:31:41.965Z","10.0.0-alpha.41":"2022-12-29T02:08:31.228Z","10.0.0-alpha.42":"2023-02-16T02:17:59.862Z","10.0.0-alpha.43":"2023-02-16T11:43:31.505Z","10.0.0-alpha.44":"2023-03-03T03:11:10.509Z","10.0.0-alpha.45":"2023-03-07T02:29:00.472Z","10.0.0-beta.1":"2023-03-07T23:13:12.884Z","10.0.0-beta.2":"2023-03-08T10:56:08.634Z","10.0.0-beta.3":"2023-03-13T04:50:54.765Z","10.0.0-beta.4":"2023-04-04T04:20:07.566Z","10.0.0-beta.5":"2023-04-19T04:35:03.158Z","10.0.0-beta.6":"2023-04-19T06:48:32.771Z","10.0.0-beta.7":"2023-06-07T08:38:43.345Z","10.0.0-beta.8":"2023-06-08T08:43:25.531Z","10.0.0-beta.9":"2023-06-15T03:01:40.206Z","10.0.0-beta.10":"2023-10-06T05:54:02.701Z","10.0.0-beta.11":"2023-10-10T05:05:09.150Z","10.0.0-beta.12":"2023-12-01T08:13:41.235Z","10.0.0-rc.1":"2023-12-25T09:20:06.146Z","10.0.0-rc.2":"2023-12-27T07:11:42.071Z","10.0.0-rc.3":"2023-12-27T07:46:20.185Z","10.0.0-rc.4":"2023-12-28T04:33:11.071Z","10.0.0-rc.5":"2023-12-28T11:58:09.853Z","10.0.0-rc.6":"2023-12-30T03:58:05.773Z","10.0.0-rc.7":"2024-01-02T02:40:19.805Z","10.0.0-rc.8":"2024-01-05T02:33:10.790Z","10.0.0-rc.9":"2024-01-15T13:07:52.000Z","10.0.0-rc.10":"2024-01-25T03:23:04.299Z","10.0.0-rc.11":"2024-01-25T06:02:50.595Z","10.0.0":"2024-01-28T05:28:06.167Z","10.0.1":"2024-01-31T02:24:08.218Z","10.1.0":"2024-02-05T04:51:26.259Z","10.2.0":"2024-03-07T06:25:35.527Z","10.3.0":"2024-03-20T02:08:58.945Z","10.4.0":"2024-04-11T07:36:26.277Z","10.5.0":"2024-04-12T05:12:15.325Z","10.6.0":"2024-04-12T07:19:27.961Z","10.7.0":"2024-04-23T04:18:38.674Z"},"maintainers":[{"name":"kossnocorp","email":"koss@nocorp.me"}],"description":"Type-safe ODM for Firestore","homepage":"https://github.com/kossnocorp/typesaurus#readme","repository":{"type":"git","url":"git+https://github.com/kossnocorp/typesaurus.git"},"author":{"name":"Sasha Koss","email":"koss@nocorp.me"},"bugs":{"url":"https://github.com/kossnocorp/typesaurus/issues"},"license":"MIT","readme":"🎉️ NEW: [Typesaurus X is out](https://blog.typesaurus.com/typesaurus-x-is-out/)!\r\n\r\n![](https://raw.githubusercontent.com/kossnocorp/typesaurus/main/promo.gif)\r\n\r\n# 🦕 Typesaurus\r\n\r\nTypeScript-first ODM for Firestore.\r\n\r\n_Looking for **React** adaptor?_ Check [Typesaurus React](https://github.com/kossnocorp/typesaurus-react)!\r\n\r\n**Why?**\r\n\r\n- Designed with TypeScript's type inference in mind\r\n- Universal code (browser & Node.js)\r\n- Uncompromised type-safety\r\n- Code autocomplete\r\n- Say goodbye to any!\r\n- Say goodbye to exceptions!\r\n- [Ready to start? Follow this guide](https://typesaurus.com/get-started/).\r\n\r\n## Installation\r\n\r\nThe library is available as an [npm package](https://www.npmjs.com/package/typesaurus).\r\nTo install Typesaurus, run:\r\n\r\n```sh\r\nnpm install --save typesaurus firebase firebase-admin\r\n```\r\n\r\n_Note that Typesaurus requires the `firebase` package to work in the web environment and `firebase-admin` to work in Node.js. These packages aren't listed as dependencies, so they won't install automatically with the Typesaurus package._\r\n\r\n## Features\r\n\r\n- **Complete type-safety**: uncompromised type-safety, includes Firestore quirks.\r\n- **Universal package**: reuse the same code on the client and server.\r\n- **JavaScript-native**: converts Firestore data types, i.e. timestamp, to native JS types, i.e. `Date`.\r\n- **Build size-efficiency**: optimized build-size for web.\r\n- **Typed ids**: all document ids are types, so you'll never mix up a user id with an account id.\r\n- **Centralized schema**: easy to define, read and update.\r\n- **Single-import principle**: single import to define, single import to use.\r\n\r\n<!-- TODO: Do it one day\r\nWant to read about features in detail? [Go to Key Features](https://typesaurus.com/about/features/). -->\r\n\r\n## Changelog\r\n\r\nSee [the changelog](./CHANGELOG.md).\r\n\r\n## License\r\n\r\n[MIT © Sasha Koss](https://kossnocorp.mit-license.org/)\r\n","readmeFilename":"README.md","keywords":["Firebase","Firestore","TypeScript"]}