{"_id":"@arcblock/app-agent-storage","_rev":"3-86323984e97a97e771ea532c3fc27b1b","name":"@arcblock/app-agent-storage","dist-tags":{"latest":"0.40.9"},"versions":{"0.40.9":{"name":"@arcblock/app-agent-storage","description":"Storage interface for delegated did-auth between application and wallet","version":"0.40.9","author":{"name":"wangshijun","email":"shijun@arcblock.io","url":"https://ocap.arcblock.io"},"bugs":{"url":"https://github.com/ArcBlock/forge-js/issues","email":"shijun@arcblock.io"},"publishConfig":{"access":"public"},"contributors":[{"name":"wangshijun","email":"shijun@arcblock.io","url":"https://ocap.arcblock.io"}],"devDependencies":{"j2d":"^1.0.3-dev","jest":"^23.5.0","remark-cli":"^5.0.0","remark-preset-github":"^0.0.9"},"remarkConfig":{"plugins":["preset-github",["validate-links",{"repository":"ArcBlock/forge-js"}]]},"homepage":"https://github.com/ArcBlock/forge-js/tree/master/did/app-agent-storage","keywords":["forge","blockchain","arcblock","sdk","nodejs"],"license":"Apache-2.0","main":"./lib/index.js","repository":{"type":"git","url":"https://github.com/ArcBlock/forge-js/tree/master/did/app-agent-storage"},"scripts":{"lint":"eslint lib tests","docs":"yarn generate-dts && yarn generate-docs && yarn cleanup-docs && yarn format-docs","cleanup-docs":"node ../../tools/cleanup-docs.js docs/README.md $npm_package_name","generate-docs":"jsdoc2md lib/index.js > docs/README.md","generate-dts":"j2d lib/index.js","format-docs":"remark . -o","precommit":"CI=1 yarn test","prepush":"CI=1 yarn test","test":"npm run lint && node tools/jest.js","coverage":"npm run lint && yarn test -- --coverage"},"gitHead":"87990c8b5e215107fc587c1ced0d6b3e2cd2483e","_id":"@arcblock/app-agent-storage@0.40.9","_nodeVersion":"12.4.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-mEC3qcuUu55Pe2CAQZ3ZQwGIv7YztgB8LOlAJMvy9CoB7eet4svIJUTPSl0qH0A+I4upajImLEF0NTcyfv4RUA==","shasum":"674f355a50bcceb7a010d75ce24300af41c15e00","tarball":"https://registry.npmjs.org/@arcblock/app-agent-storage/-/app-agent-storage-0.40.9.tgz","fileCount":5,"unpackedSize":6304,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdx2UFCRA9TVsSAnZWagAA0dAQAIL8sVGKOvgaWdj/tvYU\n8BDEwfA9eCf2wsHRseieq5G7ojeOOLcB4H0MGNhga/nVVUqkRpyvWRKZurh0\nTOnmOPAIKkwYLEL6ghI2XA3OOu2vW1CzQV7UmzZS94AznqLgLkQkKgPD9F3E\n1CU2dJaybP6MSrh3F03+JHIIW9zJ0gQP8Hf3djEbG6xXMx8LZGdM0tb1r3H2\n16//YWOSp2KZAPHyfd6QTyho8n2+trzlQmmyVfLNYKUOpfmj49n+yC1dxCQy\nhaczcgvJxbZRSHmokz3ZEB9HBtxUThe17f30Xlf5tvr9/zKn8EsbqKmGnJ36\nmtxkKPkwbwv4fF1CP4lsZ0WLHyGqL4qX4/GwkzF6FDrUvep4nL/YbOwjxAjU\n3lPf00IXk/kEr88UtXW8JXf3I7RJO4Sif/f1DcBC/QwezRnqkqldE4DkYcfQ\n8+jLUsD9YS1FGrX9btbpJQ3aUlSnu6uplZ7GcY6AArK7gl76XBIHv1hWmp4/\n6xJoIVoNKUA9hTYHuEYzN/tQGQYwk/eRiGc09jJh0JgswHOUNb+c6cW6IgKt\nsmhev2haghzn6SfqBWSkGIpqcm731hlSrbIwo8K/IwGjrQCfNomVSEBpWvm5\nAm67Ph+c90YtJUF6+gTtn5pzg4Axg8SwAUjUmjwg+7CtjRr0Sn67mZNvusBK\nO+zP\r\n=qrkn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFJENd1cKz8W/jcqhvx33JF7SYW4n59Q4LIg70GpsziDAiACW3Iu6X0dxonzpZ56oJnph+kyCcC30KqKF5uJe4ZrJA=="}]},"maintainers":[{"name":"polunzh","email":"polunzh@gmail.com"},{"name":"wangshijun","email":"wangshijun2010@gmail.com"}],"_npmUser":{"name":"wangshijun","email":"wangshijun2010@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-agent-storage_0.40.9_1573348612611_0.7054129318879292"},"_hasShrinkwrap":false}},"time":{"created":"2019-11-10T01:16:52.555Z","0.40.9":"2019-11-10T01:16:52.778Z","modified":"2022-04-04T15:16:41.263Z"},"maintainers":[{"email":"840501291@qq.com","name":"gxw"},{"email":"rob@arcblock.io","name":"mave99a"},{"email":"polunzh@gmail.com","name":"polunzh"},{"email":"wangshijun2010@gmail.com","name":"wangshijun"}],"description":"Storage interface for delegated did-auth between application and wallet","homepage":"https://github.com/ArcBlock/forge-js/tree/master/did/app-agent-storage","keywords":["forge","blockchain","arcblock","sdk","nodejs"],"repository":{"type":"git","url":"https://github.com/ArcBlock/forge-js/tree/master/did/app-agent-storage"},"contributors":[{"name":"wangshijun","email":"shijun@arcblock.io","url":"https://ocap.arcblock.io"}],"author":{"name":"wangshijun","email":"shijun@arcblock.io","url":"https://ocap.arcblock.io"},"bugs":{"url":"https://github.com/ArcBlock/forge-js/issues","email":"shijun@arcblock.io"},"license":"Apache-2.0","readme":"# [**@arcblock/app-agent-storage**](https://github.com/arcblock/forge-js)\n\n[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n\n> Interface for define a storage class that can be used by [@arcblock/did-auth].\n\n## Table of Contents\n\n- [Motivation & Spec](#motivation--spec)\n- [Install](#install)\n- [Usage](#usage)\n- [Contributors](#contributors)\n\n## Motivation & Spec\n\n### Fields\n\nPossible fields to exist in a did-agent storage record\n\n- `authorizeId`: Primary key\n- `ownerDid`: Owner DID\n- `agentDid`: Agent DID\n- `appDid`: Application DID\n- `appPk`: Application public key\n- `appName`: Application name\n- `appDescription`: Application description\n- `appLogo`: Application logo\n- `certificate`: Application authorize certificate\n\n### APIs\n\nBasic APIs that a did-agent storage should support:\n\n- `create(authorizeId, payload)`: 创建记录\n- `update(authorizeId, updates)`: 更新记录\n- `read(authorizeId)`：按 authorizeId 查询\n- `delete(authorizeId)`：删除记录\n- `listByApp(appDid)`: 按应用查询\n- `listByOwner(ownerDid)`: 按所有者查询\n\n## Install\n\n```sh\nnpm install @arcblock/app-agent-storage\n// or\nyarn add @arcblock/app-agent-storage\n```\n\n## Usage\n\n```js\nconst StorageInterface = require('@arcblock/app-agent-storage');\n\nmodule.exports = class KeystoneStorage extends StorageInterface {\n  constructor() {\n    this.model = keystone.list('LoginToken').model;\n  }\n\n  create(token, status = 'created') {\n    const LoginToken = this.model;\n    const item = new LoginToken({ token, status });\n    return item.save();\n  }\n\n  read(token) {\n    return this.model.findOne({ token });\n  }\n\n  update(token, updates) {\n    return this.model.findOneAndUpdate({ token }, updates);\n  }\n\n  delete(token) {\n    return this.model.remove({ token });\n  }\n\n  exist(token, did) {\n    return this.model.findOne({ token, did });\n  }\n};\n```\n\n## Contributors\n\n| Name           | Website                    |\n| -------------- | -------------------------- |\n| **wangshijun** | <https://ocap.arcblock.io> |\n","readmeFilename":"README.md"}