{"_id":"@awesomepermissions/mongoose","_rev":"1-b7db274361d96dc8fd7bd057b808271f","name":"@awesomepermissions/mongoose","dist-tags":{"dev":"1.0.2","latest":"1.0.1"},"versions":{"1.0.1":{"name":"@awesomepermissions/mongoose","version":"1.0.1","description":"Awesome permissions library for mongoose","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"keywords":["permissions","mongoose"],"scripts":{"dev":"nodemon test.js"},"author":{"name":"Awesome permissions","email":"info@awesomepermissions.com","url":"https://awesomepermissions.com/"},"main":"lib/index.js","license":"MIT","dependencies":{"@awesomepermissions/sdk":"^1.0.10"},"devDependencies":{"mongoose":"^8.0.3","nodemon":"^2.0.22"},"_id":"@awesomepermissions/mongoose@1.0.1","gitHead":"4f98b978c2642dbbd665cbf607b18b7fddb7149e","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-SV3ho4Yb4x6kkEKn4f/aVZtk7ao6Wp5ogfXkzebWl7JTWbzXWKb7ThMRZ1Via9FIV5XAir5HwWIqiB9N8kOn+A==","shasum":"4b241459fe9c33fa159193afb89650e37a6d8122","tarball":"https://registry.npmjs.org/@awesomepermissions/mongoose/-/mongoose-1.0.1.tgz","fileCount":24,"unpackedSize":31637,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDi/4AB0VnBI57sQ66liUY3FKiX43ilL3wdNOKX5tdZyAiEA13vGZlE09R9kKc2yqzpXaChEh6Gx0jH1yhGuwBXfysI="}]},"_npmUser":{"name":"awesomepermissionsadmin","email":"awesomepermissions@gmail.com"},"directories":{},"maintainers":[{"name":"awesomepermissionsadmin","email":"awesomepermissions@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mongoose_1.0.1_1705100787724_0.238213688964255"},"_hasShrinkwrap":false},"1.0.2":{"name":"@awesomepermissions/mongoose","version":"1.0.2","description":"Awesome permissions library for mongoose","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"keywords":["permissions","mongoose"],"scripts":{"dev":"nodemon test.js"},"author":{"name":"Awesome permissions","email":"info@awesomepermissions.com","url":"https://awesomepermissions.com/"},"main":"lib/index.js","license":"MIT","dependencies":{"@awesomepermissions/sdk":"^1.0.10"},"devDependencies":{"mongoose":"^8.0.3","nodemon":"^2.0.22"},"_id":"@awesomepermissions/mongoose@1.0.2","readme":"# Awesome Permissions Mongoose\n\n[![NPM](https://img.shields.io/npm/l/@awesomepermissions/mongoose)](https://github.com/awesomepermissions/mongoose/blob/main/LICENSE)\n[![GitHub contributors](https://img.shields.io/github/contributors/AwesomePermissions/mongoose)](https://github.com/AwesomePermissions/mongoose/graphs/contributors)\n[![npm](https://img.shields.io/npm/v/@awesomepermissions/mongoose)](https://www.npmjs.com/package/@awesomepermissions/mongoose)\n[![npm](https://img.shields.io/npm/dm/@awesomepermissions/mongoose)](https://www.npmjs.com/package/@awesomepermissions/mongoose)\n\nCurrently in progress.\n\nWebsite: [`https://www.awesomepermissions.com`](https://www.awesomepermissions.com)\n\n## Installation\n```shell\nnpm install @awesomepermissions/mongoose\n```\n\n## Usage\n```javascript\nconst MongooseAwesomePermissions = require(\"@awesomepermissions/mongoose\");\nconst mongoose = require(\"mongoose\");\n\nconst mawp = new MongooseAwesomePermissions('rsCC6jwc74VxH6VScO2SwBDVvLFvS3JjljUZ6oGYzXU7V6Syh4_VSVi6qXQmYNks');\n\nawait mongoose.connect('mongodb://127.0.0.1:27017/mongoose-awp-test');\n\nconst gameSchema = new mongoose.Schema({ title: String });\nconst userSchema = new mongoose.Schema({ name: String });\ngameSchema.plugin(mawp.loadSchema());\nuserSchema.plugin(mawp.loadSchema());\n\nconst Game = mongoose.model('Game', gameSchema);\nconst User = mongoose.model('User', userSchema);\n\nconst game = new Game({ title: 'Game 1' });\nconst user = new User({ name: 'User 1' });\n\nawait game.save();\nawait user.save();\n\nawait user.addViewPermissionsToItems(game);\nconst hasPermission = await user.hasViewPermissionToItem(game);\nconsole.log('hasPermission', hasPermission);\nconst itemsWithPermissions = await user.getItemsWithViewPermission();\nconsole.log('itemsWithPermissions', itemsWithPermissions);\n\nawait Game.deleteOne({_id: game._id});\nawait User.findByIdAndDelete(user._id);\n```\n\n## New mongoose model functions\n\n- addPermissionsToItems(mongoDocument/s, {actions, ignoreDuplicateErrors});\n- addViewPermissionsToItems(mongoDocument/s, {ignoreDuplicateErrors});\n- addCreatePermissionsToItems(mongoDocument/s, {ignoreDuplicateErrors});\n- addUpdatePermissionsToItems(mongoDocument/s, {ignoreDuplicateErrors});\n- addDeletePermissionsToItems(mongoDocument/s, {ignoreDuplicateErrors});\n- addAdminPermissionsToItems(mongoDocument/s, {ignoreDuplicateErrors});\n- hasPermissionToItem(mongoDocument, {actions, actionsType = \"or\" || \"and\"});\n- hasViewPermissionToItem(mongoDocument, {actions, actionsType = \"or\" || \"and\"});\n- hasCreatePermissionToItem(mongoDocument);\n- hasUpdatePermissionToItem(mongoDocument);\n- hasDeletePermissionToItem(mongoDocument);\n- hasAdminPermissionToItem(mongoDocument);\n- getItemsWithPermission({itemTypes, actions, actionsType = \"or\" || \"and\"});\n- getItemsWithViewPermission({itemTypes});\n- getItemsWithCreatePermission({itemTypes});\n- getItemsWithUpdatePermission({itemTypes});\n- getItemsWithDeletePermission({itemTypes});\n- getItemsWithAdminPermission({itemTypes});\n- getItemPermissions({raw})\n\n## Contributors\n\n<a href=\"https://github.com/AwesomePermissions/mongoose/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=AwesomePermissions/mongoose\" />\n</a>\n\n## License\n\nMIT","readmeFilename":"readme.md","gitHead":"12883da5afb22f3c7e4d09b90c02f3ee5245456d","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-ziSRcASAfRR5wJi/YzZuiYZnNH48KZH1UOC5ymaiUelZFligidO0XwPqwq9HSrVNOw70IT6TE5twtyszq+JNFg==","shasum":"c2edcd24e082abab891c818534f883e8d67567d2","tarball":"https://registry.npmjs.org/@awesomepermissions/mongoose/-/mongoose-1.0.2.tgz","fileCount":28,"unpackedSize":28886,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDs+THtz24npGnp5f5eyOs0/4+6GnlZGWpkA8AQF99/bQIhAKTfNpsP3HLr7n1sVgJgCfb7QEhmN7dV/jFuEFIU7Z+k"}]},"_npmUser":{"name":"awesomepermissionsadmin","email":"awesomepermissions@gmail.com"},"directories":{},"maintainers":[{"name":"awesomepermissionsadmin","email":"awesomepermissions@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mongoose_1.0.2_1705101112921_0.4001627427825538"},"_hasShrinkwrap":false}},"time":{"created":"2024-01-12T23:06:27.613Z","1.0.1":"2024-01-12T23:06:27.905Z","modified":"2024-01-12T23:11:53.386Z","1.0.2":"2024-01-12T23:11:53.136Z"},"maintainers":[{"name":"awesomepermissionsadmin","email":"awesomepermissions@gmail.com"}],"description":"Awesome permissions library for mongoose","keywords":["permissions","mongoose"],"author":{"name":"Awesome permissions","email":"info@awesomepermissions.com","url":"https://awesomepermissions.com/"},"license":"MIT","readme":"","readmeFilename":""}