{"_id":"@anthrax63/typeorm-adapter","name":"@anthrax63/typeorm-adapter","dist-tags":{"latest":"1.4.0"},"versions":{"1.4.0":{"name":"@anthrax63/typeorm-adapter","version":"1.4.0","description":"TypeORM adapter for Casbin","main":"lib/index.js","typings":"lib/index.d.ts","scripts":{"precommit":"lint-staged","prepublish":"yarn run lint && yarn build","build":"rimraf lib && tsc","coverage":"jest --coverage","lint":"tslint \"src/**/*.ts\"","fix":"tslint \"src/**/*.ts\" --fix","test":"jest --runInBand","release":"npx -p semantic-release -p @semantic-release/git -p @semantic-release/changelog semantic-release","prepare":"npm run build"},"devDependencies":{"@types/jest":"^23.3.5","@types/node":"^10.11.7","coveralls":"^3.0.2","husky":"^1.1.2","jest":"^23.6.0","lint-staged":"^7.3.0","mysql2":"^2.1.0","pg":"^8.4.2","rimraf":"^2.6.2","ts-jest":"22.4.6","tslint":"^5.11.0","typescript":"^4.7.3"},"dependencies":{"casbin":"^5.11.5","typeorm":"^0.3.6"},"homepage":"https://casbin.org","repository":{"type":"git","url":"git+https://github.com/node-casbin/typeorm-adapter.git"},"keywords":["casbin","node-casbin","adapter","typeorm","access-control","authorization","auth","authz","acl","rbac","abac","orm"],"author":{"name":"Node-Casbin"},"licenses":[{"type":"Apache-2.0","url":"http://www.apache.org/licenses/LICENSE-2.0"}],"bugs":{"url":"https://github.com/node-casbin/typeorm-adapter/issues"},"lint-staged":{"*.{ts,js}":["tslint --fix","git add"]},"jest":{"testURL":"http://localhost","transform":{"^.+\\.(ts|tsx)$":"ts-jest"},"testMatch":["**/test/*.test.+(ts|tsx)"],"moduleFileExtensions":["ts","tsx","js","jsx","json","node"]},"gitHead":"aa43de8efe4159908c81fa1c30ea6d571d01e8a9","_id":"@anthrax63/typeorm-adapter@1.4.0","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-JmsQhrhZBfNeSW2q/i1cXLQx8fKDCsklku/2oMcnvWqLjTlQCrpaSyaR3dM9aRNGQre0bt1CeMT+NOeBFQlwjQ==","shasum":"7ad3fbff7824f3f106cd66d9f858c629860b4437","tarball":"https://registry.npmjs.org/@anthrax63/typeorm-adapter/-/typeorm-adapter-1.4.0.tgz","fileCount":13,"unpackedSize":38895,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHZJ1ePvBJ44ndqq4Y/9kBmtBbAQ+vU2cvgrkTFdG30hAiA30S1Zz+jXvMpV+f9C18Ghpi/AUn0L1R4lkGV50gldnA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqJjwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoLvQ//VEmpZs6E/UQbXM1L37SXEwWVOSJcdYJp5lgAq1n30J3m+O+o\r\nEWxczUsYo2P+kbkHewGHVNoBCmZqYsDM+JY7puVNye1HuZkSKSPtZqDLf0A8\r\n8UJIJ41fwGNGgJwz3lzizTWHKWNAeSFY+gmGMcskModyKV4MucwwIoWLSKDk\r\nXbXgXYmibSitfIjsNb84VSDOB3T81yXpreXmCA1fqnGPpc7BzlBC5ziZE4J+\r\nre3EOjqDpoH7Raau6IEqcTzAkeJofF9RbHQDHPPuWRxlZ/6o5GezKKXRJwjF\r\nQgzq3n4GgaXASc2AHOEjERrh2jAPb/wQM/MKnUWym/JYGbmxM+2Y5XzZPdzK\r\nY2miBMoYRZgMVZ8+3oWv7aIjh8mBadc4pwFLNvsE9hvxI/9oz58BsXvozZQD\r\ncNgcr/MdDOxlDJz3qOEN7rsRweqyUcfxnuZGYsA/huEvHswJ599VcQ922ysd\r\nfxrlrHGnwSgK89JMktkaqn32vYylKnXsmvseZxSUcpjjnR7zZvGn9myyVJlH\r\nn/wNS0uGsaI6gBlKQzG2na21TQk6yZXRk1g7+Jqt2WPuTCA5/XQZ/1zA5+Js\r\niEO0Jg0Y9lxdWSFE9b+l23UdU09zowBTZUV/BUyND3N2tjI15gaWa1lQNFg8\r\n/lcSexlgElhGTbbuzGt+fy0tjO3pOBVowic=\r\n=lgDz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"denisbezrukov","email":"denis.bezrukov@aggregion.com"},"directories":{},"maintainers":[{"name":"denisbezrukov","email":"denis.bezrukov@aggregion.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typeorm-adapter_1.4.0_1655216368735_0.7010124995704075"},"_hasShrinkwrap":false}},"time":{"created":"2022-06-14T14:19:28.686Z","1.4.0":"2022-06-14T14:19:28.943Z","modified":"2022-06-14T14:19:29.111Z"},"maintainers":[{"name":"denisbezrukov","email":"denis.bezrukov@aggregion.com"}],"description":"TypeORM adapter for Casbin","homepage":"https://casbin.org","keywords":["casbin","node-casbin","adapter","typeorm","access-control","authorization","auth","authz","acl","rbac","abac","orm"],"repository":{"type":"git","url":"git+https://github.com/node-casbin/typeorm-adapter.git"},"author":{"name":"Node-Casbin"},"bugs":{"url":"https://github.com/node-casbin/typeorm-adapter/issues"},"readme":"TypeORM Adapter\n====\n[![NPM version][npm-image]][npm-url]\n[![NPM download][download-image]][download-url]\n[![codebeat badge](https://codebeat.co/badges/7b938f17-ac89-4ee9-b3cc-787b5e94720d)](https://codebeat.co/projects/github-com-node-casbin-typeorm-adapter-master)\n[![CI](https://github.com/node-casbin/typeorm-adapter/actions/workflows/ci.yml/badge.svg)](https://github.com/node-casbin/typeorm-adapter/actions/workflows/ci.yml)\n[![Coverage Status](https://coveralls.io/repos/github/node-casbin/typeorm-adapter/badge.svg?branch=master)](https://coveralls.io/github/node-casbin/typeorm-adapter?branch=master)\n[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/casbin/lobby)\n\n[npm-image]: https://img.shields.io/npm/v/typeorm-adapter.svg?style=flat-square\n[npm-url]: https://npmjs.org/package/typeorm-adapter\n[download-image]: https://img.shields.io/npm/dm/typeorm-adapter.svg?style=flat-square\n[download-url]: https://npmjs.org/package/typeorm-adapter\n\nTypeORM Adapter is the [TypeORM](https://github.com/typeorm/typeorm) adapter for [Node-Casbin](https://github.com/casbin/node-casbin). With this library, Node-Casbin can load policy from TypeORM supported database or save policy to it.\n\nBased on [Officially Supported Databases](http://typeorm.io), the current supported databases are:\n\n- MySQL\n- PostgreSQL\n- MariaDB\n- SQLite\n- MS SQL Server\n- Oracle\n- WebSQL\n- MongoDB \n\n\nYou may find other 3rd-party supported DBs in TypeORM website or other places.\n\n## Installation\n\n    npm install typeorm-adapter\n\n## Simple Example\n\n```typescript\nimport { newEnforcer } from 'casbin';\nimport TypeORMAdapter from 'typeorm-adapter';\n\nasync function myFunction() {\n    // Initialize a TypeORM adapter and use it in a Node-Casbin enforcer:\n    // The adapter can not automatically create database.\n    // But the adapter will automatically and use the table named \"casbin_rule\".\n    // I think ORM should not automatically create databases.  \n    const a = await TypeORMAdapter.newAdapter({\n        type: 'mysql',\n        host: 'localhost',\n        port: 3306,\n        username: 'root',\n        password: '',\n        database: 'casbin',\n    });\n\n\n    const e = await newEnforcer('examples/rbac_model.conf', a);\n\n    // Load the policy from DB.\n    await e.loadPolicy();\n\n    // Check the permission.\n    await e.enforce('alice', 'data1', 'read');\n\n    // Modify the policy.\n    // await e.addPolicy(...);\n    // await e.removePolicy(...);\n\n    // Save the policy back to DB.\n    await e.savePolicy();\n}\n```\n\n## Simple Filter Example\n\n```typescript\nimport { newEnforcer } from 'casbin';\nimport TypeORMAdapter from 'typeorm-adapter';\n\nasync function myFunction() {\n    // Initialize a TypeORM adapter and use it in a Node-Casbin enforcer:\n    // The adapter can not automatically create database.\n    // But the adapter will automatically and use the table named \"casbin_rule\".\n    // I think ORM should not automatically create databases.  \n    const a = await TypeORMAdapter.newAdapter({\n        type: 'mysql',\n        host: 'localhost',\n        port: 3306,\n        username: 'root',\n        password: '',\n        database: 'casbin',\n    });\n\n\n    const e = await newEnforcer('examples/rbac_model.conf', a);\n\n    // Load the filtered policy from DB.\n    await e.loadFilteredPolicy({\n        'ptype': 'p',\n        'v0': 'alice'\n    });\n\n    // Check the permission.\n    await e.enforce('alice', 'data1', 'read');\n\n    // Modify the policy.\n    // await e.addPolicy(...);\n    // await e.removePolicy(...);\n\n    // Save the policy back to DB.\n    await e.savePolicy();\n}\n```\n## Getting Help\n\n- [Node-Casbin](https://github.com/casbin/node-casbin)\n\n## License\n\nThis project is under Apache 2.0 License. See the [LICENSE](LICENSE) file for the full license text.\n","readmeFilename":"README.md"}