{"_id":"@ansdomain/ans-avatar","_rev":"1-c265bf3842942f111dbbd29a17076fe7","name":"@ansdomain/ans-avatar","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.5":{"version":"0.1.5","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=12"},"scripts":{"start":"watch","build":"build","build:demo":"node ./example/build.js","test":" test","lint":" lint","size":"size-limit"},"husky":{"hooks":{"pre-commit":"yarn lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"jest":{"testTimeout":20000},"name":"@ansdomain/ans-avatar","author":{"name":"Muhammed Tanrıkulu","email":"muhammed@ans.domains"},"module":"dist/ans-avatar.esm.js","size-limit":[{"path":"dist/ans-avatar.cjs.production.min.js","limit":"200 KB","ignore":["jsdom"]},{"path":"dist/ans-avatar.esm.js","limit":"150 KB","ignore":["jsdom"]}],"devDependencies":{"@size-limit/preset-small-lib":"^7.0.5","@types/dompurify":"^2.3.3","@types/jsdom":"^16.2.14","@types/url-join":"^4.0.1","dotenv":"^16.0.0","esbuild":"^0.14.21","husky":"^7.0.4","nock":"^13.2.2","size-limit":"^7.0.5","tsdx":"^0.14.1","tslib":"^2.3.1","typescript":"^4.5.5"},"dependencies":{"@ethersproject/contracts":"^5.5.0","@ethersproject/providers":"^5.5.2","assert":"^2.0.0","axios":"^0.25.0","axios-cache-interceptor":"^0.9.3","buffer":"^6.0.3","dompurify":"^2.3.5","is-svg":"^4.3.2","multiformats":"^9.6.2","url-join":"^4.0.1"},"volta":{"node":"16.14.0"},"description":"Avatar resolver library for both nodejs and browser.","_id":"@ansdomain/ans-avatar@0.1.5","_nodeVersion":"16.13.1","_npmVersion":"8.3.1","dist":{"integrity":"sha512-cL/MXaA3t2mhOJ0XZxalyDOxaCRQ4cJ+It4OIFnrxW1ZsAyPBB3LKl8MHn4OH0aSuHWjNI6mecA/6To3Qtjnew==","shasum":"d4ecc39b44d2878307edb6a391cb921a72d427e4","tarball":"https://registry.npmjs.org/@ansdomain/ans-avatar/-/ans-avatar-0.1.5.tgz","fileCount":20,"unpackedSize":347309,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHnrxpvFe9WNrNdolM6HxlU7eE6il+s6DVGNNuK2j7mVAiATpwibRwvbZAu47+MQXQx+WMoaNACGkf6ejqfgF0PEmA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjMx5+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrzXxAAjSiva04gjeZZKunp9pMKaVy7H3qBy/13KoWysKbchGJ2u9yP\r\nzyNke79M8BcvNQ7y3jGlGRB0vW9KSeS8k08v+cVceaiFPyzgEKstUqi4W0+T\r\neIfkQz+g4hXm64GWMifRYKlKdSoz01DrS6ezijc8O3DdA1YyU8H3vlSgZPi5\r\nfiBGShHZA/9tRY2RkfKxK1OSsFdhY2HQ8LftA6dRS3+P2B20DVgMD5x8oGJk\r\nKWY7njYky5CQueTnN0bkWvPrJylzn9Y3CA5PIENF4iQ5BplGoeLGjibFgksj\r\nK8e6EQcJLRDuxZshkiSHkzDI3sOnrLXquCTtdeg2vBvkA6oYWUpX6FfcESHc\r\nHzDhQEQyr3O8jk3JwBCq0uloV4IlmM9ehPV+dWFoVdQ1Q3Z2CKPScJFukOKL\r\nHrZSpTbbTI7JjEIPwDOjfCNxs7FxDFK6n7GhnyxRoWPdJlFy/37Cwn6jigxD\r\nTBIiojg90+Q3Vm0a1avXP1QN9ZXuMB+A5SCqNlBWVKwvroqFX9rBxRHxjpZh\r\neXumaM2FXtNKVAqS6VqhohUDYpaRpH16q07UYWLRgcdwgFlm17ZI/7P3CSNR\r\niZV1IeNfz4vnFItXoQfUdmrBJSc4DAYHmOk2mk1XbBcP3Zdmu8eFwUfeQE8p\r\nMbKRcsW7RDFD2VDZnhCNoSbZwqfCjTDaf7g=\r\n=FSaN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"arbitrumdomains","email":"arbitrumdns@gmail.com"},"directories":{},"maintainers":[{"name":"arbitrumdomains","email":"arbitrumdns@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ans-avatar_0.1.5_1664294526312_0.8088086496011639"},"_hasShrinkwrap":false}},"time":{"created":"2022-09-27T16:02:06.189Z","0.1.5":"2022-09-27T16:02:06.519Z","modified":"2022-10-26T13:33:50.328Z"},"maintainers":[{"email":"dev.koold@gmail.com","name":"devilla"},{"email":"arbitrumdns@gmail.com","name":"arbitrumdomains"}],"description":"Avatar resolver library for both nodejs and browser.","author":{"name":"Muhammed Tanrıkulu","email":"muhammed@ans.domains"},"license":"MIT","readme":"# ens-avatar\n\nAvatar resolver library for both nodejs and browser.\n\n## Getting started\n\n### Prerequisites\n- Have your web3 provider ready (web3.js, ethers.js)\n- [Only for node env] Have jsdom installed.\n\nAnd good to go!\n\n### Installation\n\n```bash\n# npm\nnpm i @ensdomains/ens-avatar\n# yarn\nyarn add @ensdomains/ens-avatar\n```\n\n### Usage\n\n```js\nimport { StaticJsonRpcProvider } from '@ethersproject/providers';\nimport { AvatarResolver, utils: avtUtils } from '@ensdomains/ens-avatar';\n\n// const { JSDOM } = require('jsdom'); on nodejs\n// const jsdom = new JSDOM().window; on nodejs\n\nconst provider = new StaticJsonRpcProvider(\n    ...\n  );\n...\nasync function getAvatar() {\n    const avt = new AvatarResolver(provider);\n    const avatarURI = await avt.getAvatar('tanrikulu.eth', { /* jsdomWindow: jsdom (on nodejs) */ });\n    // avatarURI = https://ipfs.io/ipfs/QmUShgfoZQSHK3TQyuTfUpsc8UfeNfD8KwPUvDBUdZ4nmR\n}\n\nasync function getAvatarMetadata() {\n    const avt = new AvatarResolver(provider);\n    const avatarMetadata = await avt.getMetadata('tanrikulu.eth');\n    // avatarMetadata = { image: ... , uri: ... , name: ... , description: ... }\n    const avatarURI = avtUtils.getImageURI({ metadata /*, jsdomWindow: jsdom (on nodejs) */ });\n    // avatarURI = https://ipfs.io/ipfs/QmUShgfoZQSHK3TQyuTfUpsc8UfeNfD8KwPUvDBUdZ4nmR\n}\n```\n\n## Supported avatar specs\n\n### NFTs\n- ERC721\n- ERC1155\n\n### URIs\n- HTTP\n- Base64\n- IPFS\n\n## Options\n\n### Cache _(Default: Disabled)_\n```js\nconst avt = new AvatarResolver(provider, { cache: 300 }); // 5 min response cache in memory\n```\n\n### Custom IPFS Gateway _(Default: https://ipfs.io)_\n```js\nconst avt = new AvatarResolver(provider, { ipfs: 'https://dweb.link' });\n```\n\n## Demo\n- Create .env file with INFURA_KEY env variable\n- Build the library\n\n- Node example\n```bash\nnode example/node.js ENS_NAME\n```\n\n- Browser example\n```bash\nyarn build:demo\nhttp-server example\n```\n","readmeFilename":"README.md"}