{"_id":"@adicitus/morrigan.utils.datastore","_rev":"3-a5bb8a2fef6ec4dcf3fd2293b5637427","name":"@adicitus/morrigan.utils.datastore","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@adicitus/morrigan.utils.datastore","version":"0.1.0","description":"Data storage utility used to provide a connection to MongoDB and manage access MongoDB collections.","main":"DataStore.js","scripts":{"test":"mocha --exit"},"repository":{"type":"git","url":"git+https://github.com/Adicitus/js-morrigan.utils.datastore-pkg.git\".git"},"keywords":["morrigan","datastore"],"author":{"name":"joakim.olsson@adicitus.cloud"},"license":"ISC","bugs":{"url":"https://github.com/Adicitus/js-morrigan.utils.datastore-pkg.git\"/issues"},"homepage":"https://github.com/Adicitus/js-morrigan.utils.datastore-pkg.git\"#readme","devDependencies":{"mocha":"^10.2.0","mongodb-memory-server":"^8.11.4"},"dependencies":{"mongodb":"^5.0.1"},"gitHead":"88813cf01382b3fad12980a9724d3dbe0dc18567","_id":"@adicitus/morrigan.utils.datastore@0.1.0","_nodeVersion":"18.4.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-yj16rncVrw7zhF1mB/Q+ps6N00BFMJhnTI8YmRVpxj+zegGY4rTpEcIfv02bwT78SfflP+VK5DIsCgDeaHGIDQ==","shasum":"4b8bde25085fb79179540d21ab78f545097a64a3","tarball":"https://registry.npmjs.org/@adicitus/morrigan.utils.datastore/-/morrigan.utils.datastore-0.1.0.tgz","fileCount":6,"unpackedSize":25206,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICgHx4PVY+rry02IxwyOtnJ182zC76F/8GPSPB1Iz8gEAiEAg6qLclAXUPfCT4ggyg2OrLzZorK1q8wijGSNRYRjbac="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5nO3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrCWQ//Thn8EpGXA+wR3g76D0NU0mOQlP7boOLbPluojnTztFHbiDrE\r\nKibfbkVykJ3E7eMGTpiG5pLMD42KWZlH5vl36QO5SrbMHTfa6bWVcJb9Qky+\r\nN3Xiug9MQQ/RmNT++N1iaszVzSWZxHU47ZqGF/pfu/aEy/QDgoXKISAEw0bH\r\nvCG1nD7S2Ci9vq9O9OkwWQ3ytVvV6wNmpfzpXTFFchexQPrQMMJRFHZ+X8y7\r\n2rQ6hZFMdq26d0iSej+HUWaOQpfG5Op74+bTD2e1uJqMK4XZ/5aBOJqLHhr3\r\ndoRd/51GXjqBxXMeL8c4vwo65iM47n+SmQ6HciHwSEz9nR3ErOjE2945gJQr\r\nbco343K+FvGHqjK9YRC/r1G+8hLEZLMkWvgcNgbUC12ixHVhnh/7aCxJ1CLb\r\neh1muJSBJGw2DXkQYDDmcbO0HVLolY20MPw09+b9fi1vfCrjuTijs7yj0L2n\r\nFXLKzMau6z1X3RZsprhsZK4nsz44SWlMtW3At8mJPEWo0UaRZQNWokSQYyHs\r\nYYyylIgZ4ixkXnF9xnMRIwusqA58xpZEN3ZmHXuxuoOAZhcepq5/IeoapQC9\r\nvfwtKYwoogmRE2dMGlxIVbczFmshgggL4TXCwpTLgbwYZXBjBA7fE05AB0SN\r\nE596mVWWHmP6qmyMlwWucC2vxQqyEtu45Uk=\r\n=Ay/C\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"adicitus","email":"joakim.olsson@adicitus.cloud"},"directories":{},"maintainers":[{"name":"adicitus","email":"joakim.olsson@adicitus.cloud"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/morrigan.utils.datastore_0.1.0_1676047287050_0.914766828451079"},"_hasShrinkwrap":false},"0.1.1":{"name":"@adicitus/morrigan.utils.datastore","version":"0.1.1","description":"Data storage utility used to provide a connection to MongoDB and manage access MongoDB collections.","main":"DataStore.js","scripts":{"test":"mocha --exit"},"repository":{"type":"git","url":"git+https://github.com/Adicitus/js-morrigan.utils.datastore-pkg.git\".git"},"keywords":["morrigan","datastore"],"author":{"name":"joakim.olsson@adicitus.cloud"},"license":"ISC","bugs":{"url":"https://github.com/Adicitus/js-morrigan.utils.datastore-pkg.git\"/issues"},"homepage":"https://github.com/Adicitus/js-morrigan.utils.datastore-pkg.git\"#readme","devDependencies":{"mocha":"^10.2.0","mongodb-memory-server":"^8.11.4"},"dependencies":{"mongodb":"^5.0.1"},"gitHead":"62ebfd63a0357d00f5c0730aca983816f48c7574","_id":"@adicitus/morrigan.utils.datastore@0.1.1","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-fW59s1SX1mOUcP+QZKc5TBPljSW9YTzc18onsjCb2dpVok+AtVpu1Wwbsk9ngRINIcZXplPbwQ6N4HsniicPDQ==","shasum":"23326dd541c9a93923e92a85e6d8fc3528a34ac2","tarball":"https://registry.npmjs.org/@adicitus/morrigan.utils.datastore/-/morrigan.utils.datastore-0.1.1.tgz","fileCount":6,"unpackedSize":26775,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYLBrZZKcP2AKO3YMMg6HFIdjFV8oGT/4Hc5Vq6o7ADgIhANuQ/kW4okJ/SiUnrCnkkXkFJryBUynD9ex9BAuiNmaU"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj6jsbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrRaA//Y6Zl+NSpt/lA1f+hLMM2OM7sUpQQQbx5DoG3ARQHvvy8+rtk\r\nrhXRBYaF4sgDNy7A9+XEYXIS12VjQoQrDnDX3HVts4Y0PWjTsx+04lDDbikG\r\nz2k1CKUOEHiyOlBSe3doMo3a5zD515/iZgit6gseOjwnKYeZ4/Z+raQcrc8y\r\n34uPWDibBiMJlVVtmueWQbyuUr+9Lw5tvSruFwEwcxKcvYOEKZOttXelgvlJ\r\n7RNGL7CUNuLODd6SnoIw2KX7b72CrvCwxVZ7fAn0Qbhz8zAbjBhHOZH0kN7K\r\nY3BPgFEucoH0mfONtzpWoAoL/fip5EqTnp3cLrCn5qbJSjjAL7YHAOcG9pSX\r\nS6bEkJNLc0aaLPAbOMLBS99Jd0ziYSuSP6kFKBnkjRPD5CSXuuEmW1wXl6dU\r\nYr/ZIAPYT+qrZCgZncPCgnF3mMignA2OFENkXwpqts4OmUoZuvEE0Puzo/25\r\nAsFMKtAtdHT6R7VpEzhNqYX2Cd+7Lg5qJnFWdS60ayDlNiYQo8Ck4ETsen18\r\nXNZ9uSAifHPIx0lnHuNLMRm8/9dBE/4S/x/AvN8DX6+FKlH30hJEtvTE3dy1\r\nXaRo1C1NetAMHnE6uNc3/AhsYSxRtU4lBLSj09DAKaXfTeE2pfZs8pBG/8NY\r\nK7z7TKvlLgR4UKdCCGoj32n0J5ZmYzNuTlI=\r\n=whLm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"adicitus","email":"joakim.olsson@adicitus.cloud"},"directories":{},"maintainers":[{"name":"adicitus","email":"joakim.olsson@adicitus.cloud"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/morrigan.utils.datastore_0.1.1_1676294939340_0.04938063136368509"},"_hasShrinkwrap":false},"0.2.0":{"name":"@adicitus/morrigan.utils.datastore","version":"0.2.0","description":"Data storage utility used to provide a connection to MongoDB and manage access MongoDB collections.","main":"DataStore.js","scripts":{"test":"mocha --exit"},"repository":{"type":"git","url":"git+https://github.com/Adicitus/js-morrigan.utils.datastore-pkg.git\".git"},"keywords":["morrigan","datastore"],"author":{"name":"joakim.olsson@adicitus.cloud"},"license":"ISC","bugs":{"url":"https://github.com/Adicitus/js-morrigan.utils.datastore-pkg.git\"/issues"},"homepage":"https://github.com/Adicitus/js-morrigan.utils.datastore-pkg.git\"#readme","devDependencies":{"mocha":"^10.2.0","mongodb-memory-server":"^8.11.4"},"dependencies":{"mongodb":"^5.0.1"},"gitHead":"90cc5c8927852d6b8b02001ca7d2b43d319bdc6e","_id":"@adicitus/morrigan.utils.datastore@0.2.0","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-DRAq6ieIHPjBAxO8eFuy4XsBGwqnpbv0kWl0AjxpSl8ZRgMwzYNcxdTG7s8lac4FQpwCwAdRtKkweI0IfS2tFw==","shasum":"e764f0010a92eda176fb61a9360b24fbaa7ff657","tarball":"https://registry.npmjs.org/@adicitus/morrigan.utils.datastore/-/morrigan.utils.datastore-0.2.0.tgz","fileCount":6,"unpackedSize":27015,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHDOfAIhrRm1o6PVG20Y/toB+UjfdA4g8tAHGxEF8ltQAiADk+xG7MDPhR7hT/GJi1Y0L5BXuF7uDfk4ZbOMAS7tmw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7JyxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvBQ/9H3MrA8d1IvUvBjWOico6zbNySf7atfKcXApgZ0YXtfCwWLfF\r\npHNUCNk1R6nvGQXeMQ4TCfRUo1VmYEMV/DSgvBhm6JlxnQtMem2mwR4rzgKp\r\n7o/4SVjMApjaVH389UjW7iumLZd7KHozD+r+seZQD0bn108NdX5cRYVig5I9\r\nc/f9rwtS5zrFf0R4S3fow2vsXbnAGPH/AtL1r0bata0rl6WDLf1mPExliVfa\r\nc/1+NbQaKoVdcpvs2XAEKu4Hf37IRrZ+pGMl4A1VAaX6HsHLZH3iAJnDulBh\r\nKJF3LXABhhhGi/uRCWNUimTNkXUFRK/wcvxhwK1bI+opI05KWOUoVaTPpRh6\r\nnxRxkawZ3UefQyBA1L3+cyGhrlLzN1MtuaqakMbc58rkvzTkBVUAn5ok3QOS\r\nJknuaXV8EFD7MgTzNbZPBSaL+0tYr1yYpsEJI5IiUm8IxqFTu5KH7ooQxN0B\r\n/qmz1+Gs4G41grFBNd2tXdFgLYTpLkmiCsoDCtchuSDKbYN3ldugpnMiwVxC\r\n1sAYzx0VO9T73c/l3n7GgxLafEdeFTXHq51IYVWbZfdjdwniEbYWRhCQ8agK\r\ntwucsFri2GBgy/MDY5H1F84TsyS39yC4PLwnnwqEJpORDTMBTnBTb++kJ1W7\r\nheJrRCTn9u7xuZjZggpD1M8pxz87omFt/VM=\r\n=G49E\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"adicitus","email":"joakim.olsson@adicitus.cloud"},"directories":{},"maintainers":[{"name":"adicitus","email":"joakim.olsson@adicitus.cloud"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/morrigan.utils.datastore_0.2.0_1676450992823_0.2412183584920995"},"_hasShrinkwrap":false},"0.2.1":{"name":"@adicitus/morrigan.utils.datastore","version":"0.2.1","description":"Data storage utility used to provide a connection to MongoDB and manage access MongoDB collections.","main":"DataStore.js","scripts":{"test":"mocha --exit"},"repository":{"type":"git","url":"git+https://github.com/Adicitus/js-morrigan.utils.datastore-pkg.git\".git"},"keywords":["morrigan","datastore"],"author":{"name":"joakim.olsson@adicitus.cloud"},"license":"ISC","bugs":{"url":"https://github.com/Adicitus/js-morrigan.utils.datastore-pkg.git\"/issues"},"homepage":"https://github.com/Adicitus/js-morrigan.utils.datastore-pkg.git\"#readme","devDependencies":{"mocha":"^10.2.0","mongodb-memory-server":"^8.11.4"},"dependencies":{"mongodb":"^5.0.1"},"gitHead":"593066aa90fbdb9a1de8a52c5cb8e366bce2d020","_id":"@adicitus/morrigan.utils.datastore@0.2.1","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-WKVRNZ/oOVsHIrdVw20o+PTPc8uXFaa/7MUYFjm215Q3LU3qKkSEaF5EKTJdU0sEQgQa0tuGOuOwDwTD9qJ5Lg==","shasum":"98b5e4df47a4b48f6845fcab99e04a8cb0591072","tarball":"https://registry.npmjs.org/@adicitus/morrigan.utils.datastore/-/morrigan.utils.datastore-0.2.1.tgz","fileCount":6,"unpackedSize":27026,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCekt7Wj9DBgLc8gImmMagRxIm97KO64Ren1lWf3+rAzAIhAOqa6gUlDu+emEwThLX8r4RdtIxDqwO1LoZMs810Ltfs"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7NVaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp/bA//W2NI5A5IkHSTDmK1DXjaQGDEesYkeGQsU5Xnyr+nvMvOUiXh\r\nydEVYBC1YC1hPKsYybLKldfT9xA3LPlQn28YfdO1sDsEVVSdC470AYlhBGdP\r\nGYnmWbNsAwb1tuPIwVpfTDebpVW7JJNFPnSlnUgdNXLs7wMC4oAEW7v9b0gW\r\nwpqMGxezA1VD0qufEJEnLKcKdA1yKEIvibQRDeGlajl3r0VP+x94+F+CO1Z8\r\nJGq1+VOdZBJx6bconnjm2vuYeeH1vMiNt3S3fGkXDmy+6+KwawwF0o2ReEhK\r\n2Kg8qU1dKUz9sBkv38kIHkCMxGkTR5WW4rTGC9QWV7OK66M4TJfr3cvP21KG\r\ntzul5DQ2udfEjCUx2r+3VwJRyrpZ4kFrOrPmRqLgm3/Hxe5/EeCiKHfVGiEx\r\niNkrGhSP3RTXtjlJ5+Mu98wYZ55IzILph7zJht4aYLOoe/L/y0XkiBYrtLCc\r\nbqrTu41qPdWZ2lzs76vQPECecm3mmQYwiWb7THE5CemBur4Ag872GETylj/O\r\nFkviPRtwVsYp8e349TjGPQLdp7znITSyCzzgcfA4129/XIa/rPQTuektHPbI\r\nVi2kqAMty3X/eayD86y8YLBt4iUwc12W+36p1kHjxxYN8/bITM3LjrRNmk1h\r\neeGUVQ7tTY3r70oVFS/PZ1Ns/jcvsUIbhiM=\r\n=DQ78\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"adicitus","email":"joakim.olsson@adicitus.cloud"},"directories":{},"maintainers":[{"name":"adicitus","email":"joakim.olsson@adicitus.cloud"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/morrigan.utils.datastore_0.2.1_1676465498574_0.4141416857645539"},"_hasShrinkwrap":false}},"time":{"created":"2023-02-10T16:41:26.908Z","0.1.0":"2023-02-10T16:41:27.327Z","modified":"2023-02-15T12:51:38.885Z","0.1.1":"2023-02-13T13:28:59.532Z","0.2.0":"2023-02-15T08:49:52.974Z","0.2.1":"2023-02-15T12:51:38.739Z"},"maintainers":[{"name":"adicitus","email":"joakim.olsson@adicitus.cloud"}],"description":"Data storage utility used to provide a connection to MongoDB and manage access MongoDB collections.","homepage":"https://github.com/Adicitus/js-morrigan.utils.datastore-pkg.git\"#readme","keywords":["morrigan","datastore"],"repository":{"type":"git","url":"git+https://github.com/Adicitus/js-morrigan.utils.datastore-pkg.git\".git"},"author":{"name":"joakim.olsson@adicitus.cloud"},"bugs":{"url":"https://github.com/Adicitus/js-morrigan.utils.datastore-pkg.git\"/issues"},"license":"ISC","readme":"# Morrigan DataStore Utility (/morrigan.utils.datastore/)\n\nUtility module to manage the connection to MongoDB and provides namespace based access-control to collections.\n\n## Installation\n\nInstall using npm:\n\n```\nnpm install @adicitus/morrigan.utils.datastore\n```\n\n## Usage\n\nStart by requiring the module and initializing it:\n\n```\nconst serverConnectionString = <Connection string to you MongoDB server>\nconst DataStore = require('@adicitus/morrigan.utils.datastore')\nconst rootDataStore = await DataStore(serverConnectionString)\n```\n\nThe module exports a function that will initialize the module by connecting using the provided connection string.\n\nIf the initializaation succeeds it will return the root DataStore instance. You NEED to capture and store this object to use the utility.\n\nOnce you have the root DataStore object, you can use the `getDataStore` method to create create child dataStores for other components of the system:\n\n```\nlet childStore = await rootDataStore.getDataStore('A')\n\n\nconsole.log(rootStore.getNamespace()) // global\nconsole.log(childStore.getNamespace()) // global.A\n\nlet collection1Name = 'coll1'\nlet collection2Name = 'coll2'\n\nconsole.log((await rootStore.getCollection(collection1Name)).s.namespace.collection) // global.Coll1\nconsole.log((await childStore.getCollection(collection2Name)).s.namespace.collection) // global.A.Coll1\n\n```\n\nCollections names are limited to the characters a-z (case sensitive), 0-9, '_' and '-'.\n\nIn this way, any given DataStore is unable to access collections belonging to any other DataStore.\n\n## Scopes\n\nYou can limit the amount of functionality in a DataStore object by specifying a scope when creating it:\n\n```\nlet childDataStore1 = aawait rootDataStore.getDataStore('child1', 'delegate')\nlet childDataStore2 = aawait rootDataStore.getDataStore('child2', 'collectionsOnly')\n\n// This will work\nlet childDataStore1a = await childDataStore1.getDataStore('child1a')\nconsole.log(childDataStore1a.getNamespace()) // global.child1.child1a\n\n// This will throw an Error, as the 'collectionsOnly' scope means that the DataStore will be created without the `getDataStore` method:\nlet childDataStore2a = await childDataStore1.getDataStore('child2a')\n\n```\n\nThe scopes available at the moment are:\n- 'delegate': Allows the creation of subsequent child DataStores (see: `DataStore.SCOPE_DELEGATE`)\n- 'collectionsOnly': Only provides access to collection methods (see: `DataStore.SCOPE_COLLECTIONSONLY`)\n","readmeFilename":"README.md"}