{"_id":"@20i/firestore-models","_rev":"60-71ef9203b78862a5f24d3c952ecc15df","name":"@20i/firestore-models","dist-tags":{"latest":"1.1.8"},"versions":{"1.0.24":{"name":"@20i/firestore-models","version":"1.0.24","author":{"name":"wolf"},"license":"ISC","_id":"@20i/firestore-models@1.0.24","maintainers":[{"name":"and0r","email":"akoch@twentyideas.com"},{"name":"dan20i","email":"dan@twentyideas.com"},{"name":"mesqueeb","email":"mesqueeb@gmail.com"},{"name":"mckelveygreg","email":"mckelveygreg@gmail.com"},{"name":"cavemanagz","email":"alex@twentyideas.com"},{"name":"laurelbenson","email":"laurel@twentyideas.com"},{"name":"vvolfster","email":"shahan@zabaat.com"},{"name":"keith20i","email":"keith@twentyideas.com"},{"name":"zabaat","email":"brett@zabaat.com"}],"dist":{"shasum":"909fe72f46bf7b10e31dc3638442ad26405f0002","tarball":"https://registry.npmjs.org/@20i/firestore-models/-/firestore-models-1.0.24.tgz","fileCount":23,"integrity":"sha512-whcpKN9pGpYWSORAGzcNA1GyQiypQEvnr4Xbv4FRwNnJEXvSCXEqtkqwqXZ2lB9zJXnDvVv+AylRYUEoxklv4w==","signatures":[{"sig":"MEYCIQD1DiD8un/dwd4EfhDnTZP6kkax/ZtUhWn5tbiSMEJwKwIhAPsdk/B6n0FOD9jlCkC4iPvrP9qozKQpaVFHqcKGCzrB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70014,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKPBWCRA9TVsSAnZWagAAhNwQAKCYTm0pzZbyOlCngmw3\n50GdLpdBtBfpMlDjBTLsYq8orRv6FeO9WzuXH/TxZ04EkxVui0K/4Hh32YcX\n3R0daMLO7oGe/5nrlMdpLetc4PdNLHP7CQj6mn/9fQtYr6IOPKuPm9DSwEH5\nFKAA0t/jOaUNpIu+0EFU2cvwUX/fVvTZ67oMehFrwqo6JDQ6IW+5Lfr3r5Ka\n4q3XiJqj5vwcTHeavVT5ibt9EBrqJDn0nNj6wROXhXGgGuBgFhhdV40IaTPG\n6Uk06xVfTpLYSTuzOZqjzV2nAAZ22KTj9uxlA/M9WAeA+BUvsn9PL1FdYRXv\nVWcW22wuHJ9RsMJ18OoIJkteB5JJGqOQpu+1mmuWz1PsiUZTS7xnRcaGv7E+\nu+i1MlYldKOGuBdmRm6RYEW5Tuun8cfPVrrKEiA55EK1NVKBcrwhi44nGZih\njTFNt1CfsTYkSSCgZHdBFH0C+sgi4DufP3DZ8JqD8cIJCMROzBlnuXgh7c5K\n77J2tQ5y98d2eLF4vsqL/cfM7EsNG58ctvHC+mpAYdFRUwMwUMc/JFm3L8d5\nrsAWdZfT/mxXrL6fUPCzeGV7GHUv6E/e6vmgx2Yz+i748G3BkSw3qG/dtz5Z\nxXri9E5A0seXh8uNO9juAgt6DIbw2yDqq+N5fIibQEjciOGRT8TbO5anG4Jq\nopzR\r\n=xRmd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","gitHead":"8ccf40ab18c6a7ebdc75499e975fe6e5ae96c718","scripts":{"dev":"npx tsc -w","build":"npx tsc"},"_npmUser":{"name":"vvolfster","email":"shahan@zabaat.com"},"_npmVersion":"lerna/3.19.0/node@v12.13.0+x64 (win32)","description":"Easily manipulate firestore collections in a standardized way","directories":{},"_nodeVersion":"12.13.0","dependencies":{"lodash":"^4.17.15","firebase":"7.6.1","firebase-admin":"8.9.0","@20i/exceptions":"^1.0.24"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/firestore-models_1.0.24_1579741270129_0.539898979054217","host":"s3://npm-registry-packages"}},"1.0.25":{"name":"@20i/firestore-models","version":"1.0.25","author":{"name":"wolf"},"license":"ISC","_id":"@20i/firestore-models@1.0.25","maintainers":[{"name":"and0r","email":"akoch@twentyideas.com"},{"name":"cavemanagz","email":"alex@twentyideas.com"},{"name":"dan20i","email":"dan@twentyideas.com"},{"name":"keith20i","email":"keith@twentyideas.com"},{"name":"laurelbenson","email":"laurel@twentyideas.com"},{"name":"mckelveygreg","email":"mckelveygreg@gmail.com"},{"name":"mesqueeb","email":"mesqueeb@gmail.com"},{"name":"vvolfster","email":"shahan@zabaat.com"},{"name":"zabaat","email":"brett@zabaat.com"}],"dist":{"shasum":"828d2c4a165a19163183a2dff10526b267335cbb","tarball":"https://registry.npmjs.org/@20i/firestore-models/-/firestore-models-1.0.25.tgz","fileCount":23,"integrity":"sha512-rgdJwHJss6T5kNJeTANMf8FXxB5cKn/uPiCZQ5KT7GP5C9VzzNT2kgsyeaXVFvs8JCTtPTPhymWCnsKWqObMtQ==","signatures":[{"sig":"MEUCIEhuhd0hFxUdzJSFgBR7DTocdEMNBHt+OFXPXC0JUNAyAiEA7RcDTh9BYbLY8ijzO35vmcSBAq+qkLrQmhNjocxnXNs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKU2dCRA9TVsSAnZWagAAwm4P/3WmQLPH62HEybcYN9iC\no4BaFlFjlOoqjRjL6Y90dOu+loT3oV4EwPny2Lu5sboSKSySdc5pbBmXQZTA\nl9p5g+pOb/CuX9zhMrbwKiA6xqOC2QYdDuTwW6hao8uugC1XScDvkZyeMHCf\nrSiswnOk8GOgcmJ5cdyVSYqP0ifJWPFHB8TsUK1gwLG4tst3yajK0tXr8fP4\nXb2z0DKSBnn+45PdoRhG2aNz3a4W7bMAt0kFaWsgvWULiDIDkSNLLjvvOh/4\nPUKz9EdSs5d2+REDjUNU7xU8M+k8Y9r4Mmpv12rzhx/CFvBLXricXMClhKpn\n3JdGQRmpiilyw6EHMhM9sXR3SQYnS5vMwjvjJAdDRFJ8zuUQQe3q7fOV6uha\n/1dT60DCwrlgo1fWfQaM85mEENnBSK3L9ZjAxU5isy9ZNf/XIdFEJQMC+PGO\n75gibycnVe+nA45+PtUiJFXkOjuVFRBcBOZSKzw+b6N0YOZqHtAepD4jeKj/\nX30mgw8MfPWPPcDm3xsKFwlRDoApdMrAsA7k3DLPlPfLb4caD1E4A2XKjfeA\nKcWsY2lrvlOU+jCAlFXffBThRNj1NoFk7xFte2P+ExJQ+WqjHVI+fLNzPZLJ\nfiIbZu4Xv6fwLgYdfG/545VSZUtMTuHTWU5mUI+FZOQlBi6ZRUHl/SAcnnn1\nVN1/\r\n=Sjnc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","gitHead":"cb07517834efa3d7bf6f8ce81c7dcdf0481ee640","scripts":{"dev":"npx tsc -w","build":"npx tsc"},"_npmUser":{"name":"vvolfster","email":"shahan@zabaat.com"},"_npmVersion":"lerna/3.19.0/node@v12.13.0+x64 (win32)","description":"Easily manipulate firestore collections in a standardized way","directories":{},"_nodeVersion":"12.13.0","dependencies":{"lodash":"^4.17.15","firebase":"7.6.1","firebase-admin":"8.9.0","@20i/exceptions":"^1.0.24"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/firestore-models_1.0.25_1579765148610_0.07716372341427546","host":"s3://npm-registry-packages"}},"1.0.40":{"name":"@20i/firestore-models","version":"1.0.40","author":{"name":"wolf"},"license":"ISC","_id":"@20i/firestore-models@1.0.40","maintainers":[{"name":"and0r","email":"akoch@twentyideas.com"},{"name":"cavemanagz","email":"alex@twentyideas.com"},{"name":"dan20i","email":"dan@twentyideas.com"},{"name":"keith20i","email":"keith@twentyideas.com"},{"name":"laurelbenson","email":"laurel@twentyideas.com"},{"name":"mckelveygreg","email":"mckelveygreg@gmail.com"},{"name":"mesqueeb","email":"mesqueeb@gmail.com"},{"name":"nedson","email":"nedson@ori.org"},{"name":"trevordilley","email":"trevor.lee.dilley@gmail.com"},{"name":"vvolfster","email":"shahan@zabaat.com"},{"name":"wilblack","email":"wil@twentyideas.com"},{"name":"zabaat","email":"brett@zabaat.com"}],"dist":{"shasum":"f15edc46572836a1cbc4d662a7e473eaea2c3eca","tarball":"https://registry.npmjs.org/@20i/firestore-models/-/firestore-models-1.0.40.tgz","fileCount":17,"integrity":"sha512-BCT0AL7xn0mExijZ3VpEatQefuScGKk2Iu08xr+5QGF1T/0ja9WT57WDxCqJ41aD0joAgl4YQB5jBrh8njdkbA==","signatures":[{"sig":"MEUCIQCfi8+sjGxr+9YDktfVkorF2sualmJrUxv5edddP4dT9wIgMCkNepfW3U3QNmYDwjOUVwCqY4DPdZWTiERRBXKogqU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45955,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJel4liCRA9TVsSAnZWagAAF7sP/2+m9U1SDnhlE90w8kCE\nzfQNbpMJWgCvVUGUat0TlnyvH+zyNraiuPx85Z/Bl/n57hmQt2phbBVYY8Zh\nEcDBIyDOxqtPh5VunnI5PVp/JPVVEB84ZfyalMcMnX9N0YHIkPguAq89mAWQ\nrH1Sr5kLAfyhmDxU3dIZiYp/QHBfbhJvL8dOf/plEfx2JtOgJrB9WJBzArSG\ngoTJR6WVt2eaKpGtkfFZ7MfKFXG9KtzpiwFqegEh+rg8iccQq0I4aB1ByXtf\n8rBsUfAoUIB5hT8E5dzYrtS1cRD/Sry3ReVfkL7P2Nb4QOMHwWrFoNb+qn+y\no6BToqZ11uIBnTLDF4NbKr+CeZHb/OyWqeuTjUXmwjKdHa0YPHWG5OWZb0zt\n4HWKunyQbJjhVQrUhSQzsMuxWDjV8gwi0v8bZMxJjBYyaFK0WEZpKi03Zktt\n7rG0nW1+SNYJT+VKG5+DCnKVr9JfuXZFgI6/rj5uaNmJTF37kddTza1MXXOh\nkNfszYVpsY4qAJpC2zN7vAuvH9hsr3xAa1ElyKb5cW4S2cz2J7Y3rPFsE/tR\nuBOYypJjlTl/AbER4OlUwK8vSwd9y9ez61QIP8xG1k7KJOX7Pzhx1Kwj88UJ\n59d+qBmrF63aoDDYwe0yZDgUNVFC4Qzzf6+gObt81WcCXF8DWYQJzy8GgFdX\nlzI/\r\n=CjyZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","gitHead":"d9168f795fd765398d87859b95fe62889bbbc234","scripts":{"dev":"npx tsc -w","build":"npx tsc"},"_npmUser":{"name":"mckelveygreg","email":"mckelveygreg@gmail.com"},"_npmVersion":"lerna/3.19.0/node@v12.13.0+x64 (darwin)","description":"Easily manipulate firestore collections in a standardized way","directories":{},"_nodeVersion":"12.13.0","dependencies":{"lodash":"^4.17.15","firebase":"7.6.1","firebase-admin":"8.9.0","@20i/exceptions":"^1.0.24"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/firestore-models_1.0.40_1586989410416_0.5058843102488764","host":"s3://npm-registry-packages"}},"1.0.41":{"name":"@20i/firestore-models","version":"1.0.41","author":{"name":"wolf"},"license":"ISC","_id":"@20i/firestore-models@1.0.41","maintainers":[{"name":"and0r","email":"akoch@twentyideas.com"},{"name":"cavemanagz","email":"alex@twentyideas.com"},{"name":"dan20i","email":"dan@twentyideas.com"},{"name":"keith20i","email":"keith@twentyideas.com"},{"name":"laurelbenson","email":"laurel@twentyideas.com"},{"name":"mckelveygreg","email":"mckelveygreg@gmail.com"},{"name":"mesqueeb","email":"mesqueeb@gmail.com"},{"name":"nedson","email":"nedson@ori.org"},{"name":"trevordilley","email":"trevor.lee.dilley@gmail.com"},{"name":"vvolfster","email":"shahan@zabaat.com"},{"name":"wilblack","email":"wil@twentyideas.com"},{"name":"zabaat","email":"brett@zabaat.com"}],"dist":{"shasum":"d1fbc660bdb12624b99d16606a3f907f972d4c2c","tarball":"https://registry.npmjs.org/@20i/firestore-models/-/firestore-models-1.0.41.tgz","fileCount":23,"integrity":"sha512-uNI+nIHO6knYiHmg/y8e8v8Gu4IkOOvV9OeGmmGhyKT+MXVWeodi10deWHcz5uY2TG8wmmG6eAjqVdDXwTZ2Pg==","signatures":[{"sig":"MEQCIGKsf+Xdr7uHAqVSQk7MNDn7B0PzT7zE3zDb9IzQ4vFPAiBvwp/Ye8x0PpPvY9hTP17CJOispNqy0w+QprRaDQU+gg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeofI/CRA9TVsSAnZWagAAPOoQAKOnpyI12ts+g7yu5PR2\nu8FretIeaLPD/rgDFa+lj06Wcq1BRvDa09EAE8+TZUUwc0ixiD0Emy+NhCXN\nfy12n7PKTgIz6eIG3zqsSzS2iXBaYJA+KELJF6CtlSraM+dY6G/tsP8GnhMs\nTj+6MO3SG+s6wnq7CiU8mk9HQ7PKMEBCwDC0n3kS7s0PoffmdJPmjJUC9KA5\nIR7lVzrzuUoOio6vGu6GjSMEOtH28gSOxQ6rkSiVZX2tFoG+xvYKVVSAQErh\nA3cXA4sYNsyzm9LgbRa0ed9sOx9NSoXsxGYKwl9PMayGbVNBcL8/a52/vCQs\nuCQYZVo4QPeZ4b8cY7vwFbWl0GlL2UXNsc8+9AhUNDEzC63emPg20RJ5gKI8\n0y2kBnq7dt5xgRmyQfD9jyBg6R/hJoaJJFA5DKB/QU6a3jBTHI8v6GUC+vGz\noxnfK4f2ATYXy/FhxFIt7PCuHs1YG5tunklAdxwYERNajkJtblZlZLCo5Zxz\nzMLe58noOsZxPLhyasrtbCxLHYgzF3ij7B9fke0ZAwKL01MKkdamujchqDLJ\nn67M4/HGA938ChotBZO2CXG7+07GVc2RPrEtnk+ZN1eRS9EONjbEJuJXgfuX\ncFoEQxG+Ks2W4NJf1ZzNBrPeAZ4nyyzqWdw2Q+NknAGhfgLOTJ9+65CqpN7W\nEsGE\r\n=ravi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","gitHead":"abb90c4e5489a979d18f6995b2b27c9157052b96","scripts":{"dev":"npx tsc -w","build":"npx tsc"},"_npmUser":{"name":"vvolfster","email":"shahan@zabaat.com"},"_npmVersion":"lerna/3.19.0/node@v12.13.0+x64 (win32)","description":"Easily manipulate firestore collections in a standardized way","directories":{},"_nodeVersion":"12.13.0","dependencies":{"lodash":"^4.17.15","firebase":"7.6.1","firebase-admin":"8.9.0","@20i/exceptions":"^1.0.24"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/firestore-models_1.0.41_1587671614548_0.768208595702262","host":"s3://npm-registry-packages"}},"1.0.50":{"name":"@20i/firestore-models","version":"1.0.50","author":{"name":"wolf"},"license":"ISC","_id":"@20i/firestore-models@1.0.50","maintainers":[{"name":"aeryne","email":"awright@ori.org"},{"name":"and0r","email":"akoch@twentyideas.com"},{"name":"cavemanagz","email":"alex@twentyideas.com"},{"name":"dan20i","email":"dan@twentyideas.com"},{"name":"keith20i","email":"keith@twentyideas.com"},{"name":"laurelbenson","email":"laurel@twentyideas.com"},{"name":"mckelveygreg","email":"mckelveygreg@gmail.com"},{"name":"mesqueeb","email":"mesqueeb@gmail.com"},{"name":"nedson","email":"nedson@ori.org"},{"name":"trevordilley","email":"trevor.lee.dilley@gmail.com"},{"name":"vvolfster","email":"shahan@zabaat.com"},{"name":"wilblack","email":"wil@twentyideas.com"},{"name":"zabaat","email":"brett@zabaat.com"}],"dist":{"shasum":"c19893fe451b5cc9c18b38e8ec31c2b98153bc93","tarball":"https://registry.npmjs.org/@20i/firestore-models/-/firestore-models-1.0.50.tgz","fileCount":23,"integrity":"sha512-nBEdEvMNQObiEPgsmT+R+PTiSCFhNhI9aGgPe2Lxj2vV+UtVxYD3S5nbEaxafcXVKWWRhF4Z74C+NStj2J3Qgw==","signatures":[{"sig":"MEQCIFxnz0CS2jNEerQ0GGAu7WHGVFD+54R1hw5zLTf/7lLnAiA1k4DSVYENP+akjHYipDCt4nVRQwj3w7Hd/HtdWY0J/A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":83144,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeyExXCRA9TVsSAnZWagAA5E4P/i2Yl3XEyXgKTIC+O1qR\nMhHchrztKRrXBUfuLvprMSL9YHvPi/k1qZKwfQ/ux/vwyZDxf9Ro8Ab3kziS\nIJo9NQLWULNEgSmrEuBX9zQcNUNkg2SR7skKYAyLy03tgfFAa1Qtq2giOMcL\nPkQV/krZF2XNBUxmb19ZzeRx5kteVs2e+V8Ler/TwwuSvGbhOsdSvWkFLufj\nIYcOy8Lc+93Qu0Fax8SEYnpE0aoxE/phSffgENjVsjCXJQ0Wyiu5/MfS8RVq\nBhP+1nn5kHE78vkRfC/F71JRzoqdxQ7t5P29Oig9Wwc6NZ9fwyMesRsX9v+x\nDZmkmmo2yukdv0DYDqJ9GJxt2+iILFYddqpjelTegaOS9XCPoy9uZ2XNnz36\nfUxiPRMecvPsVwRUVaW8Vo8vXgRUbscaN8jOuCE+AEIYRHkP2NCUj6pguX4K\n9V90hReDPqR86/BCdgCuDQ3rZQSrjo4ttibXsRStvPj1c2J1bsCNS4yUgzvV\n7VgKYe5gHmPm1EUIRiLjpGrf8rWN1NH3QdAbAsoXgrSLpA2xRHm0/zT+DVcE\n/MxsKoSFk6GW0CpRiTxoTGX1JjfEWyGI+PCEO+Q8FI8n6bBAVFXrtlgnrMvm\nXZBeMPiv7UOzJDJ+atrx8I9aStbGYVK0O1WLboq67r0oK/PGlndO77BOn4iY\nq7aR\r\n=h4lk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","gitHead":"c23c5aa70df64fd7add389ef53b68ad7482cf625","scripts":{"dev":"npx tsc -w","build":"npx tsc"},"_npmUser":{"name":"vvolfster","email":"shahan@zabaat.com"},"_npmVersion":"lerna/3.19.0/node@v12.13.0+x64 (win32)","description":"Easily manipulate firestore collections in a standardized way","directories":{},"_nodeVersion":"12.13.0","dependencies":{"lodash":"^4.17.15","firebase":"7.6.1","firebase-admin":"8.9.0","@20i/exceptions":"^1.0.24"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/firestore-models_1.0.50_1590185046683_0.3701927663164488","host":"s3://npm-registry-packages"}},"1.0.51":{"name":"@20i/firestore-models","version":"1.0.51","author":{"name":"wolf"},"license":"ISC","_id":"@20i/firestore-models@1.0.51","maintainers":[{"name":"aeryne","email":"awright@ori.org"},{"name":"and0r","email":"akoch@twentyideas.com"},{"name":"cavemanagz","email":"alex@twentyideas.com"},{"name":"dan20i","email":"dan@twentyideas.com"},{"name":"keith20i","email":"keith@twentyideas.com"},{"name":"laurelbenson","email":"laurel@twentyideas.com"},{"name":"mckelveygreg","email":"mckelveygreg@gmail.com"},{"name":"mesqueeb","email":"mesqueeb@gmail.com"},{"name":"nedson","email":"nedson@ori.org"},{"name":"nikki-20i","email":"nikki@twentyideas.com"},{"name":"trevordilley","email":"trevor.lee.dilley@gmail.com"},{"name":"vvolfster","email":"shahan@zabaat.com"},{"name":"wilblack","email":"wil@twentyideas.com"},{"name":"zabaat","email":"brett@zabaat.com"}],"dist":{"shasum":"ce1d91d0e22f018f714d2280153092c1d260a57b","tarball":"https://registry.npmjs.org/@20i/firestore-models/-/firestore-models-1.0.51.tgz","fileCount":23,"integrity":"sha512-CtnlOrWDSXMFF0z0nxt7CjCT0BNwq+NDcYfaXS5NCX5cf86ZlDsFvyQ7BQP9r6H/z+DuhVYvkVEdB/QrLzFPWg==","signatures":[{"sig":"MEUCIQDhWl+GP7exwB9CIY1NRjxbByY+Q4uK9PY5Tb6rCUBvjwIgDhIivmIzpS+r+MdZuYtLtHMwlChqibDdXv/nV5K9g9w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":83175,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0MEyCRA9TVsSAnZWagAANRcQAJo/YyI8pfCp50yKa3Jz\n39rR2RoI6I8w+WUT52kqE/teLmoBUOH7cr5ac7Lt+QSvqpzy2BSsr+RTPNNL\no5zDmB8BE++mD0IhsPA6apE2gUuOi8HSOG0hWZHrSmRoPk6jQNm4im4OJYys\nxha0CdtwXfmbn8cmyQ9hYpctkwTlJ1qwgH6r47QAQqMWtll+Tlo7xiJ6Fwur\nLmj62tbCcMUQ7d4h+2eFmBnqsJfJQB/ONPdH6o4FwdEKTuHWbXBXXHW3zdn3\nEJ98lijrhzQZTIhTRflcLjGAF1aOk8DSsW1MIAd/xlY1gXs/fY01oZGK5kdJ\nDMfyrelEvWyESV11GtRrl/kdOHWmGsU8HBDwoCDlDRQ/tNvSaShhu26GUC+j\ntoEqWzIw74bYcsfRlyDWd2MqcgnegwdZ9azaw2Xp53lh5dEftK++6SuVCOcK\nbr1Nm7RGnxxSqbpEp1NV42N7RdcAMddGx7qRR1kf0gvIahpG2XPO/uMmZybl\nP8PVIcNkQLHVkwxv78PWmHiLiC9EUOfKhxBHVXc4y4bMm1AEAl4mSiIjhTfH\n2JwHJVwf3nXGAEg3wCPmODtRJNdatXbFYXKwx9eIVCxKU6giQVnBStg1AmFq\nAtfCM0X3YQ2aPIGKDctwn3FhmhY8aZf/jjYN0N5sonP9EHDdCG/2Xxf1Ebmz\nXs1a\r\n=7/nj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","gitHead":"49f0884ce5e64203a6be0e8141d743d6b3f0db46","scripts":{"dev":"npx tsc -w","build":"npx tsc"},"_npmUser":{"name":"vvolfster","email":"shahan@zabaat.com"},"_npmVersion":"lerna/3.19.0/node@v12.13.0+x64 (win32)","description":"Easily manipulate firestore collections in a standardized way","directories":{},"_nodeVersion":"12.13.0","dependencies":{"lodash":"^4.17.15","@20i/exceptions":"^1.0.24"},"_hasShrinkwrap":false,"devDependencies":{"firebase":"7.6.1","firebase-admin":"8.9.0"},"_npmOperationalInternal":{"tmp":"tmp/firestore-models_1.0.51_1590739250238_0.17962554691348132","host":"s3://npm-registry-packages"}},"1.0.52":{"name":"@20i/firestore-models","version":"1.0.52","author":{"name":"wolf"},"license":"ISC","_id":"@20i/firestore-models@1.0.52","maintainers":[{"name":"aeryne","email":"awright@ori.org"},{"name":"and0r","email":"akoch@twentyideas.com"},{"name":"cavemanagz","email":"alex@twentyideas.com"},{"name":"dan20i","email":"dan@twentyideas.com"},{"name":"keith20i","email":"keith@twentyideas.com"},{"name":"laurelbenson","email":"laurel@twentyideas.com"},{"name":"mckelveygreg","email":"mckelveygreg@gmail.com"},{"name":"mesqueeb","email":"mesqueeb@gmail.com"},{"name":"nedson","email":"nedson@ori.org"},{"name":"nikki-20i","email":"nikki@twentyideas.com"},{"name":"trevordilley","email":"trevor.lee.dilley@gmail.com"},{"name":"vvolfster","email":"shahan@zabaat.com"},{"name":"wilblack","email":"wil@twentyideas.com"},{"name":"zabaat","email":"brett@zabaat.com"}],"dist":{"shasum":"95d90ae5b63c5001de6c73b1d1a7d3204c3e2fda","tarball":"https://registry.npmjs.org/@20i/firestore-models/-/firestore-models-1.0.52.tgz","fileCount":23,"integrity":"sha512-uMxak37H32FQyFmGZnRVh67xb6GCmndufayti/LHQkCrX84K4zd95f7Qx++Qv3JjUqk+cb4BcoV8JetIAuvNKA==","signatures":[{"sig":"MEQCIDhMwLRGChFfb85T04z34r+zXs5c/mJ+pmnDjrsGA9ahAiAPKDBFup5SkF1KFnFjdYGvhNT3ChYXqm0deuERYCx9nQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":83424,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe2EetCRA9TVsSAnZWagAAjd0P/A2jyk93htsUhS+H4dG4\ndZjkNPlcQmISmSto6PMlw0TsJv3fdAjKC67dJlO7+EbZbGTKeCEwQNIefz6f\n8i65E9QlMnbwNEOX4O0NF75VFiQTA1JA+RThA7cTDe4c98tmYlX4rN5Q+t/X\nUYhaXUYFMSO84Mbmqso6cH9Opf7FrgGlZSgQ6ZnBfS6FOgsA1WWH6sVonW9k\n54RhxZuDrqWPnb0X2/FiC2p9GJdzKACmHu6re4Ur+3J0GivTz8LbGip5WDvx\nwe8RtF7+H1aJ50z+rTQACFBT/Wt4JsldCMUXJoTnzH4kDiftKe/hoBSDAZx+\nXc8J+ldtW14NcdAe0KV/OGafUzAQNr6f54zi9xrwiEEFUdIjhyG2/F+i9MRm\n1Ph7yIsaEp5Ize0PahhDQcbC46jzzOLs19VOjMJUYs+5zSVLO+GWlbpKpnJE\n/qLbfDMeK/XAOj5G5sMWeIRv7dbxq9vJmRHiM5vo8GAaYVYlYn2OIrnvCYuv\nlCLIVPeNMid6Fw4xDvSYvZSKLZ4v9aX0SmdZ0uwdZl6CRR+kkfEH1O6OVR08\nU5Op5zW3/1+dDiq6SwkLgsPYuExIQZ+9xgP2oGpULojNlWkx6YgI7+0h/wTh\nC4nIEnWuP93aEbJzOYQtx343aJ0C14KmfUAuB71YfrDFVdV5fB3VTluf+bym\nNobF\r\n=x8m/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","gitHead":"f61183974d31fbaecf101711ae9bfdb4914ec9a0","scripts":{"dev":"npx tsc -w","build":"npx tsc"},"_npmUser":{"name":"vvolfster","email":"shahan@zabaat.com"},"_npmVersion":"lerna/3.19.0/node@v12.13.0+x64 (win32)","description":"Easily manipulate firestore collections in a standardized way","directories":{},"_nodeVersion":"12.13.0","dependencies":{"lodash":"^4.17.15","@20i/exceptions":"^1.0.24"},"_hasShrinkwrap":false,"devDependencies":{"firebase":"7.6.1","firebase-admin":"8.9.0"},"_npmOperationalInternal":{"tmp":"tmp/firestore-models_1.0.52_1591232428983_0.6571598519182043","host":"s3://npm-registry-packages"}},"1.1.6":{"name":"@20i/firestore-models","version":"1.1.6","author":{"name":"wolf"},"license":"ISC","_id":"@20i/firestore-models@1.1.6","maintainers":[{"name":"aeryne","email":"awright@ori.org"},{"name":"and0r","email":"akoch@twentyideas.com"},{"name":"cavemanagz","email":"alex@twentyideas.com"},{"name":"dan20i","email":"dan@twentyideas.com"},{"name":"keith20i","email":"keith@twentyideas.com"},{"name":"laurelbenson","email":"laurel@twentyideas.com"},{"name":"mckelveygreg","email":"mckelveygreg@gmail.com"},{"name":"mesqueeb","email":"mesqueeb@gmail.com"},{"name":"nedson","email":"nedson@ori.org"},{"name":"nikki-20i","email":"nikki@twentyideas.com"},{"name":"trevordilley","email":"trevor.lee.dilley@gmail.com"},{"name":"vvolfster","email":"shahan@zabaat.com"},{"name":"wilblack","email":"wil@twentyideas.com"},{"name":"zabaat","email":"brett@zabaat.com"}],"dist":{"shasum":"5b69337645706ad779e3c27bbccb09fc4d18146e","tarball":"https://registry.npmjs.org/@20i/firestore-models/-/firestore-models-1.1.6.tgz","fileCount":23,"integrity":"sha512-nLudn9HakPnVAxrt7LvhBPUM+KAIvT7QyLHxRy2/lKm5QuE6yA9BsaM18TJFg7diTyEBWn8AGsoU2G8lTcqamQ==","signatures":[{"sig":"MEQCIAwC0ek2jYuN5JGGYfy/1Ikh7sZoeVZnE1oQ2SIfiAtrAiA5HyMYYG/9P6RsJrVqFOu4r9KFsaJSLpAURsw08aus4Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":90972,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe5PLpCRA9TVsSAnZWagAAOl0P/jVphVhW9APmRzCglHs1\nvBAYf4WybMH6fDQwCWivbBhlWbXoeJyvMjdMuYuvhc0dsmUAnQg5dWbz4Igf\nJcCUIIavEMcowy/GrKDgOp8GS8wyqHbYyHDZiR2e2/Nj1SuG7Dj6orcoZMgX\nfKp/XTNAWpQPIrfUfj3vp1FxYI9yIdrVJBxh1u8z0oVdQukWMw7RKHw6CduI\nPkaxszQraNkjgUezxSTLinAeDmEYUgaryPBbzhFAmofIrkYh5OJGewtroezY\nZIZgwsWl5NZ6kIukSzdL06mGCXv5U7yulMluRCEXjJ6AsFvHBt5+Za8SXJ0y\navxIbNjrQtLg6A5VRpsNdEe69rVPUT8eaZijO9JXGBl0fUazfpTZ8J+585Va\n+Mn+WABh3xYBKd0HQujJD3YFrcfKDO4MH5cSAPMl/9rXXWsZwj4+yYX7VMEB\n+r9btoNGyJXfSgxXef8SG6bGNXBFL0ViPuJLEuOnUFmqLwAuh+SR1wf9MUjW\no4Ax7BLWEtCjDjmj2mrVhgDqF3/6Qy1XFQD3ptxdp3OZqXGffLF+5sIAYCqv\nbNE58NclF2xmLiIYn4w+Sar+ap8g4awrVFlCdUVkUhqQ+bF/zbXwVsvQvTJ/\ngeRBPUGv/olP4VYKzaGYxQYDuOu48uxltXlWOqC09lyrkbTsfFM3WjZMNM9N\nOUIK\r\n=DqS6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","gitHead":"61afc09ca19e6d9e5e3aefd7f0972830887f3439","scripts":{"dev":"npx tsc -w","build":"npx tsc"},"_npmUser":{"name":"vvolfster","email":"shahan@zabaat.com"},"_npmVersion":"lerna/3.19.0/node@v12.13.0+x64 (win32)","description":"Easily manipulate firestore collections in a standardized way","directories":{},"_nodeVersion":"12.13.0","dependencies":{"lodash":"^4.17.15","@20i/exceptions":"^1.0.24"},"_hasShrinkwrap":false,"devDependencies":{"firebase":"7.6.1","firebase-admin":"8.9.0"},"_npmOperationalInternal":{"tmp":"tmp/firestore-models_1.1.6_1592062697015_0.5427219182336667","host":"s3://npm-registry-packages"}},"1.1.8":{"name":"@20i/firestore-models","version":"1.1.8","author":{"name":"wolf"},"license":"ISC","_id":"@20i/firestore-models@1.1.8","maintainers":[{"name":"aeryne","email":"awright@ori.org"},{"name":"and0r","email":"akoch@twentyideas.com"},{"name":"cavemanagz","email":"alex@twentyideas.com"},{"name":"dan20i","email":"dan@twentyideas.com"},{"name":"keith20i","email":"keith@twentyideas.com"},{"name":"laurelbenson","email":"laurel@twentyideas.com"},{"name":"mckelveygreg","email":"mckelveygreg@gmail.com"},{"name":"mesqueeb","email":"mesqueeb@gmail.com"},{"name":"nedson","email":"nedson@ori.org"},{"name":"nikki-20i","email":"nikki@twentyideas.com"},{"name":"trevordilley","email":"trevor.lee.dilley@gmail.com"},{"name":"vvolfster","email":"shahan@zabaat.com"},{"name":"wilblack","email":"wil@twentyideas.com"},{"name":"zabaat","email":"brett@zabaat.com"}],"dist":{"shasum":"c79cdab8a6a9d09094b8dde46eec1a4762327f4f","tarball":"https://registry.npmjs.org/@20i/firestore-models/-/firestore-models-1.1.8.tgz","fileCount":23,"integrity":"sha512-GNZ8+z6CYFZlNcmj3aE5TdyYcszQueiif6OVgaJ5+hnVIAfWG6wzDG/K7EsreedUBHaPI52JtoBlp7xb849mFg==","signatures":[{"sig":"MEUCIAGpKSfeIpEmlAfmBHr0kwzgAYFFEpmHYrUlB0npEsS8AiEA+/8y1f3HK33nIVcuRmzfmIqxwSieNLzPY0FwRw//rw8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":96115,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe5aeDCRA9TVsSAnZWagAAqaEQAIFrwcnU1icfTVOaFSyL\nyKpbammVCCfTOcNKxX+ooTe2ENoAuicEVtx3DRnViX6iK7hHnv2jjQ2/cHaS\nFm6ZtTElh9PXJeJdXkzbGOlFGbLjrl95GxcxdMYCBpFOzTQYfSwxtabTTqHi\n9NRUe3qA4ap2Hmt1Sd+lq3YQLtqSXmCVA62c5ZP/stRkCMFOOV6+gWGp7vrh\nkYo12It3l8i8i+dpf9zxqoyVaf8NVTCnMhlHUE672yyM3S5dVVcws+tEdgcS\nlcMvhOYOhg6A/MMvKFp+ZHVgRAaWxSVI0d06BmiW8k0RBuQztCbC/MDKvzex\nJnM51pq3F55cjsFOBBoC4q8CPMbXvB/5+xIagv9v0JAknUWijTjECwBXagv+\noI0iiFfIWihXIxulMPWYFhIKPjL5TbJFl1McGlHXJG3vJ1xbjFmCDeoKCiFM\nf5C9XowfI9m5Mq+R7oGC0ECulK+3ZZ+I/o3VIgXvNzE41M7E3m+wZ0vjg202\nyomzTlTTEVi1OYP20vdpA5AgvGaZoIw51+zWfmMHf0bAyvIeup74Hn16fnBq\nw/EUgx9JNU13t3URUDqDAQBmFJTFgTxA9oPYH7MGEo1p1hibjY1qknApaCiC\nmO6EmnSeNZ35J1WSL0x7WCXO6MP4m4iIbL552CqHwep3iVpGnpMezD3xnSip\nQBYs\r\n=/W8r\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","gitHead":"fe0157152c63097569182e7c832fbaa416c8f391","scripts":{"dev":"npx tsc -w","build":"npx tsc"},"_npmUser":{"name":"vvolfster","email":"shahan@zabaat.com"},"_npmVersion":"lerna/3.19.0/node@v12.13.0+x64 (win32)","description":"Easily manipulate firestore collections in a standardized way","directories":{},"_nodeVersion":"12.13.0","dependencies":{"lodash":"^4.17.15","@20i/exceptions":"^1.0.24"},"_hasShrinkwrap":false,"devDependencies":{"firebase":"7.6.1","firebase-admin":"8.9.0"},"_npmOperationalInternal":{"tmp":"tmp/firestore-models_1.1.8_1592108930618_0.7173018075825361","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-01-23T01:01:10.129Z","modified":"2025-09-04T21:03:48.931Z","1.0.24":"2020-01-23T01:01:10.302Z","1.0.25":"2020-01-23T07:39:08.771Z","1.0.40":"2020-04-15T22:23:30.544Z","1.0.41":"2020-04-23T19:53:34.754Z","1.0.50":"2020-05-22T22:04:06.786Z","1.0.51":"2020-05-29T08:00:50.400Z","1.0.52":"2020-06-04T01:00:29.108Z","1.1.6":"2020-06-13T15:38:17.236Z","1.1.8":"2020-06-14T04:28:50.770Z"},"author":{"name":"wolf"},"license":"ISC","description":"Easily manipulate firestore collections in a standardized way","maintainers":[{"email":"wil@twentyideas.com","name":"wilblack"},{"email":"trevor.lee.dilley@gmail.com","name":"trevordilley"},{"email":"greyson@twentyideas.com","name":"wasredacted"},{"email":"james@twentyideas.com","name":"james-20i"},{"email":"npm-service@twentyideas.com","name":"20i-npm-service"},{"email":"hiddnist@gmail.com","name":"hiddn"},{"email":"keeto@twentyideas.com","name":"keeto-20i"},{"email":"gelferstone@gmail.com","name":"gelfer"},{"email":"tony@twentyideas.com","name":"tony20i"},{"email":"mook@twentyideas.com","name":"mook-20i"},{"email":"orianna@twentyideas.com","name":"orianna-20i"}],"readme":"# @20i/firestore-models\r\nGives standard functions to interact and manipulate collections.\r\nCompatible with both firebase and firebase-admin packages.\r\nYou must initialize this library with a valid firebase app or firebase-admin app first.\r\n\r\n1) Init (firebase client library)\r\n```\r\nimport { init } from (\"@20i/firestore-models\")\r\nimport * as Firebase from \"firebase/app\"\r\n\r\nconst fbConfig = {\r\n    apiKey: \"YOUR-API-KEY\",\r\n    authDomain: \"YOUR AUTH DOMAIN\",\r\n    databaseURL: \"YOUR DATABASE URL\",\r\n    projectId: \"YOUR PROJECT ID\",\r\n    storageBucket: \"YOUR STORAGE BUCKET\",\r\n    messagingSenderId: \"YOUR MESSAGING SENDER ID\",\r\n    appId: \"YOUR APP ID\"\r\n}\r\n\r\nconst app = Firebase.initializeApp(getFbConfig())\r\ninit(app)\r\n```\r\n\r\n2) Init (firebase-admin library)\r\n```\r\nimport { init } from \"@20i/firestore-models\"\r\nimport * as Firebase from \"firebase/app\"\r\nimport admin, { initializeApp } from \"firebase-admin\"\r\n\r\nconst serviceAccount: admin.ServiceAccount = {\r\n    clientEmail: process.env.CLIENT_EMAIL,\r\n    projectId: process.env.PROJECT_ID,\r\n    privateKey: (process.env.PRIVATE_KEY || \"\").replace(/\\\\n/g, \"\\n\")\r\n}\r\n\r\nconst adminApp = await initializeApp({\r\n    credential: admin.credential.cert(serviceAccount),\r\n    databaseURL: process.env.DATABASE_URL\r\n})\r\n\r\ninit(adminApp)\r\n```\r\n\r\n3) Simple Usage\r\n```\r\nimport Firebase from \"firebase\"\r\nimport { FirestoreModels, baseRecord, FirebaseModelFns } from \"@20i/firestore-models\";\r\n\r\nexport interface User extends FirestoreModels.BaseRecord {\r\n    name: string\r\n    email: string\r\n}\r\n\r\nconst BlankUser = (partial?: Partial<User>): User => {\r\n    return {\r\n        ...baseRecord(),\r\n        name: \"\",\r\n        email: \"\",\r\n        ...partial\r\n    }\r\n}\r\n\r\n// tell the library that under the collection name of \"user\", we want to deal with the User interface/type\r\nexport const user = new FirebaseModelFns<User>(\"user\", BlankUser)\r\n\r\n// now we can use the following functions on the exported user collection\r\nasync function callFnsOnUser() {\r\n    const authUser = Firebase.auth().currentUser\r\n\r\n    const newUser = await user.create(authUser, { name: \"wolf \"})\r\n    await user.exists(authUser, newUser.id)\r\n    await user.find(authUser, [[\"name\", \"==\", newUser.name]])\r\n    await user.findOne(authUser, [[\"name\", \"==\", newUser.name]])\r\n    \r\n    await user.get(authUser, \"123\")\r\n    await user.remove(authUser, \"123\")\r\n    await user.update(authUser, { id: \"123\", name: \"wolfpack\" })\r\n    await user.updateOrCreate(authUser, { id: \"123\", name: \"wolfpack\" })\r\n    \r\n    // subscribe to user with id 123\r\n    const unsubFn = user.subscribe(\"123\", user => console.log(\"User changed\", user))\r\n}\r\n```\r\n\r\n4) Add validation rules on methods\r\n```\r\nimport Firebase, { User as FbAuthUser } from \"firebase\"\r\nimport { FirestoreModels, baseRecord, FirebaseModelFns } from \"@20i/firestore-models\"\r\n\r\nexport interface User extends FirestoreModels.BaseRecord {\r\n    name: string\r\n    email: string\r\n}\r\n\r\nconst BlankUser = (partial?: Partial<User>): User => {\r\n    return {\r\n        ...baseRecord(),\r\n        name: \"\",\r\n        email: \"\",\r\n        ...partial\r\n    }\r\n}\r\n\r\nconst validate = {\r\n    isLoggedIn(currentUser: FbAuthUser | undefined, payload: FirestoreModels.BaseRecord, cannotDo = `Cannot perform action`) {\r\n        if (!currentUser) {\r\n            throw new Error(`${cannotDo} because you are not logged in`)\r\n        }\r\n    },\r\n    payloadHasId(currentUser: FbAuthUser | undefined, payload: FirestoreModels.BaseRecord, cannotDo: string) {\r\n        if (!payload.id) {\r\n            throw new Error(`${cannotDo} because no id is provided`)\r\n        }\r\n    },\r\n    isAuthor(currentUser: FbAuthUser | undefined, payload: FirestoreModels.BaseRecord, cannotDo: string) {\r\n        if (payload.userIdCreated && payload.userIdCreated !== currentUser?.uid) {\r\n            throw new Error(`${cannotDo} because you are not the author`)\r\n        }\r\n    },\r\n}\r\n\r\nconst userValidation = {\r\n    create: async (payload: LessonType, currentUser?: FbAuthUser) => {\r\n        const cannotDo = `Cannot create user`\r\n        return new Promise((resolve) => setTimeout(resolve, 100))\r\n    },\r\n    update: (payload: User, currentUser?: FbAuthUser) => {\r\n        const cannotDo = `Cannot update user`\r\n        validate.isLoggedIn(currentUser, payload, cannotDo)\r\n        validate.payloadHasId(currentUser, payload, cannotDo)\r\n        validate.isAuthor(currentUser, payload, cannotDo)\r\n    },\r\n    remove: (payload: User, currentUser?: FbAuthUser) => {\r\n        const cannotDo = `Cannot remove user`\r\n        validate.isLoggedIn(currentUser, payload, cannotDo)\r\n        validate.payloadHasId(currentUser, payload, cannotDo)\r\n        validate.isAuthor(currentUser, payload, cannotDo)\r\n    }\r\n}\r\n\r\nexport const user = new FirebaseModelFns<User>(\"user\", BlankUser, userValidation)\r\n\r\n// now we can use the following functions on user collection\r\nasync function callFnsOnUser() {\r\n    const authUser = Firebase.auth().currentUser\r\n\r\n    const newUser = await user.create(authUser, { name: \"wolf \"})\r\n    await user.exists(authUser, newUser.id)\r\n    await user.find(authUser, [[\"name\", \"==\", newUser.name]])\r\n    await user.findOne(authUser, [[\"name\", \"==\", newUser.name]])\r\n    \r\n    await user.get(authUser, \"123\")\r\n    await user.remove(authUser, \"123\")\r\n    await user.update(authUser, { id: \"123\", name: \"wolfpack\" })\r\n    await user.updateOrCreate(authUser, { id: \"123\", name: \"wolfpack\" })\r\n    \r\n    // subscribe to user with id 123\r\n    const unsubFn = user.subscribe(\"123\", user => console.log(\"User changed\", user))\r\n}\r\n\r\n```","readmeFilename":"README.MD"}