{"_id":"arweave-bundles","_rev":"4-818fde7d530982ff79ace7529a768ab0","name":"arweave-bundles","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"arweave-bundles","version":"1.0.0","description":"This library contains routines to create, read, and verify Arweave bundled data.","main":"lib/index.js","scripts":{"build":"tsc","lint":"tslint -p tsconfig.json","test":"jest src/__tests__/tests.spec.ts","format":"prettier --write \"src/**/*.ts\"","prepare":"npm run build","prepublishOnly":"npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src","postversion":"git push && git push --tags"},"keywords":["arweave","ans-102","bundled data"],"author":{"name":"ArweaveTeam","email":"https://arweave.org"},"license":"MIT","dependencies":{"arweave":"^1.9.1"},"devDependencies":{"@types/jest":"^26.0.15","@types/node":"^14.11.8","expect":"^25.2.7","jest":"^26.6.0","prettier":"^2.1.2","ts-jest":"^26.4.1","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^3.8.3"},"gitHead":"a80f556e6d946b91e10e6f603a8a83606f45ec02","_id":"arweave-bundles@1.0.0","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-J0oM/C/+H6CFGmsM+1w0Q0MQSnLUHuEaWpGcHuIe+nMnwEYuTChgT4PGavYZ/HJH5m2XdKxwSJBUDZedJxRuaw==","shasum":"244d22c58c805ba57804988909066d968c5fa73f","tarball":"https://registry.npmjs.org/arweave-bundles/-/arweave-bundles-1.0.0.tgz","fileCount":22,"unpackedSize":30659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjyPGCRA9TVsSAnZWagAAXysP/ReoDAtS4Y35HAlcAt/S\nZeGcirFSWtAzQ2VnsW631J12acwFcpytb9nqDhgkra9z5sZwkP7qaeu0MwP/\n+A3NskjZtdwaQbk6i8EqOzJ20s37LwvDcMPaTs2UdH0b9ahTtKm0TXzHgvNl\ng5ATiMG5+qAsUBmfdXBKumf7pWhV52dN1DDfJ7M/iDM9Eex7GEA7FByvgezC\nVZC/d0GBVkSBtQ0wzad9HnVYWrgtoBCqb71I8anXQH00tR41X1/QYMXfdFc6\n/nNbXvpluKsoTpgpybJl0J6Z75ixG/9b0IWXm2VZVsCJp7tl0SY4BCZaSisQ\nz8sxtheytYrrDeaQpv26P0GBEqeA0UCsOHqU5eNCxBbWFNJh3fhadkXsNR9l\nrHE47KY1b3fBI7rDxEWpuOIOlzr6SNBpUJAVTE9UC3n1VuBlyjGMMhf5GuW4\nswUDs6aFYXAaivuYNKpOxHeZNifK+xIo/lPhYSHFnSMVPRJYhJ/oDfTY7Tq/\nQX67Vwaa/hM6c+y96XDYYFuiSswXAea9dmdnmeBpsv7kor4ggnmo2jGvdTvk\nxaVB75foWfRSjDJYq0z0ASuJOQDVbGHkHTIF3PWOnCjktqngBQwb5+90DhJd\nvGeuLpm0iZoRUmo6TBM+JEs1JLvSccv3VEXGKq29xeauVY4nG+OXNfHq28Nv\nI/k9\r\n=4ySM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8m8bKyRjUKfbZVnOfUpz8IB7J6rUZtFPCrYykFZ11AQIgTqw9VEyEJH9r8fO6XY05pMPu9s+MudkpNGqdGVXgowQ="}]},"maintainers":[{"name":"cedriking","email":"cedriking@gmail.com"}],"_npmUser":{"name":"cedriking","email":"cedriking@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/arweave-bundles_1.0.0_1603216325551_0.9737308091055248"},"_hasShrinkwrap":false},"1.0.1":{"name":"arweave-bundles","version":"1.0.1","description":"This library contains routines to create, read, and verify Arweave bundled data.","main":"lib/index.js","scripts":{"build":"tsc","lint":"tslint -p tsconfig.json","test":"jest src/__tests__/tests.spec.ts","format":"prettier --write \"src/**/*.ts\"","prepare":"npm run build","prepublishOnly":"npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src","postversion":"git push && git push --tags"},"keywords":["arweave","ans-102","bundled data"],"author":{"name":"ArweaveTeam","email":"https://arweave.org"},"license":"MIT","dependencies":{"arweave":"^1.10.3"},"devDependencies":{"@types/jest":"^26.0.20","@types/node":"^14.14.22","expect":"^26.6.2","jest":"^26.6.3","prettier":"^2.2.1","ts-jest":"^26.5.0","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^4.1.3"},"gitHead":"aa0427d0ce94d7a4443ffc6b964d0ae0a30bd016","_id":"arweave-bundles@1.0.1","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-uCkRxakAqPOI+TDJoym6xdqxcjGVcPLmxoUnOJ8U0BKb2I97zAaagpfHF96EqRmVrlMNKmpzdOmkOA8lOTYF3g==","shasum":"f342da9bf0937384a9add6a96f48c1da9821199f","tarball":"https://registry.npmjs.org/arweave-bundles/-/arweave-bundles-1.0.1.tgz","fileCount":22,"unpackedSize":30910,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGZNdCRA9TVsSAnZWagAAhU0QAJlCj+S3ZIM15wOMGy1G\nKuYc4bT2JcahB6GRLSGRoGzN5eECD6Yrb3lLNuDSzwdedghF8zvhJZSV6myC\nTyDWT0AVOrXS1kFZJog8cvU5/zeskvilpNkZ+bkmVtZwo4zayDQfoSVY+DwC\nnf2OR4yHvtYkYVNhRYGs9yU1ZSg17MNQHTqL7i3kFgvyOYTxYsCZwEd0ZR5I\nY2wk3QXIHW6aReI76y7QhYttTfncAA6te2eyXK0ho5VlK2VDxXyNwPwHs1Cr\nHpL7MbpYGaRAgM5IimX0/8kGKMKLExcyRpRhBgOJLdhX4meiRW4i4OVyYDSC\nctqXd700x3MhT5FWizUotOyCibMqEkLf7hMauqYrjyR//Lv3NdqHSt9CL60g\n3SRk15WPKyD6/hjVPlWBfMNFSFQxQfBnIgcKN7KOeBL314EuMXkKGF4ZHibQ\nGW25BjyM3pGtR438RM7R0ct/wrMtdTjyjMtFuQ63MXje9S8s3PnUpkxt0q26\nBj2aDNaOL6wgk5CYlMeflBa24un834Gg+G7/JkHe6+kjFrwBqgxO2cNJokpT\nWOPO4Ofk6AR2YMrkFuBwo5x0LU8pGpvvNPjERDDSwYaYu/17VLBrnreVdubi\nt5L71Y8YJEp81mckZLdpaU5vESBwv4M5hBPotjpshG/dyfXyTKncarnUM8Or\nU9e3\r\n=hehq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIChTF2kBZ2wbnZRvnggpZgCodkPniiK++JnJ5zDwwm5UAiB1aNNynY0SpdRn1WY9TxOcwIuJ2+F/X82i2XrG8SPaVA=="}]},"_npmUser":{"name":"cedriking","email":"cedriking@gmail.com"},"directories":{},"maintainers":[{"name":"cedriking","email":"cedriking@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/arweave-bundles_1.0.1_1612288860970_0.09249764890673617"},"_hasShrinkwrap":false},"1.0.2":{"name":"arweave-bundles","version":"1.0.2","description":"This library contains routines to create, read, and verify Arweave bundled data.","main":"lib/index.js","scripts":{"build":"tsc","lint":"tslint -p tsconfig.json","test":"jest src/__tests__/tests.spec.ts","format":"prettier --write \"src/**/*.ts\"","prepare":"npm run build","prepublishOnly":"npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src","postversion":"git push && git push --tags"},"keywords":["arweave","ans-102","bundled data"],"author":{"name":"ArweaveTeam","email":"https://arweave.org"},"license":"MIT","dependencies":{"arweave":"^1.10.4"},"devDependencies":{"@types/jest":"^26.0.20","@types/node":"^14.14.22","expect":"^26.6.2","jest":"^26.6.3","prettier":"^2.2.1","ts-jest":"^26.5.0","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^4.1.3"},"gitHead":"a135ac2874f5b1a7ba2e2a04097dd5e527ffddf2","_id":"arweave-bundles@1.0.2","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-IEdo5yHAv6SmcUU1fhXmvu74KJAVFVqgWame5Ur3q/l9jEI3KDkyEcykee/KaSObfdOxUVUyQX1OA7OoBQJfGw==","shasum":"265cf8f3348ff2512ec1c22a8f9074aa0cb45ee9","tarball":"https://registry.npmjs.org/arweave-bundles/-/arweave-bundles-1.0.2.tgz","fileCount":22,"unpackedSize":30910,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGd7VCRA9TVsSAnZWagAA9oMP/12xCfW4m77k+g0g+Rvq\nVwFxpo4e0CXLK4ZstSQ/8jzVI44OQKgQhjkG2UxDM4O3a1RMftbztesg0nFs\ns9hZTPh2o+J/3Da6x7NPoLyIdpevBQfuwHwzR+QY1R3637njKCXCwUO30rQP\nJF+usEa0i9bC3uj3jmHn7FBnG2rY8EZ3mJaUSrQBg2EruJIQ2I/SefYEyaX7\nXSudiQi5wRsDpZ3Ojabu6hn2HAmOxgBvZkStnS5u5B47EWchvkqXeNU9qeUT\n8R0wH7wOdTgXZvrg2MzUiXPLEy2rUkbdbXKeSceirmSCyBCEXB8IVhS3+pyN\nlD7nuN+DVg6ave6ptrWj5qCuBka21XaUtxRDkCCmaFo7AgXMsksZCBH6usGX\noBdfCYdYPCjADDK1IUNqSu/NW/2vK4uoimC/nQrgDeanvgT7EIjoqoHj4pNm\nXlD6hJg4HmdR+DDl8VlGLQVOxGpneNEh4HjTiCX2YfWngx9IfmBsn+E/S7E8\nD3hQOHweDDOapM51HXucnjSTdmY4lIzSBC7rOn+tNg+aYo+OJB9pxUBSGetb\n1kQRxw6l5eGoUQ7zCuexBMz9O6nzwjStHlT36kfVUPgLpmfubWTedQetkf5M\naC4UTPVjOnMf/JU8MP6JTH5RQqCEw+uwmbMAJRxuitH3cUoFf2YT/wNiSjuI\njn5L\r\n=6lb1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdZIcOyry6jDy6mXUkqY6PZhcTCfbuFS6pwbVE/4SEogIhALTFTEwaQCnCXB8gVut4y0rPbHFZL0nMSk3JPV17AU66"}]},"_npmUser":{"name":"cedriking","email":"cedriking@gmail.com"},"directories":{},"maintainers":[{"name":"cedriking","email":"cedriking@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/arweave-bundles_1.0.2_1612308181327_0.6049578698232043"},"_hasShrinkwrap":false},"1.0.3":{"name":"arweave-bundles","version":"1.0.3","description":"This library contains routines to create, read, and verify Arweave bundled data.","main":"lib/index.js","scripts":{"build":"tsc","lint":"tslint -p tsconfig.json","test":"jest src/__tests__/tests.spec.ts","format":"prettier --write \"src/**/*.ts\"","prepare":"npm run build","prepublishOnly":"npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src","postversion":"git push && git push --tags"},"keywords":["arweave","ans-102","bundled data"],"author":{"name":"ArweaveTeam","email":"https://arweave.org"},"license":"MIT","dependencies":{"arweave":"^1.10.5"},"devDependencies":{"@types/jest":"^26.0.20","@types/node":"^14.14.22","expect":"^26.6.2","jest":"^26.6.3","prettier":"^2.2.1","ts-jest":"^26.5.0","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^4.1.3"},"gitHead":"b72060aba8177a671b5ba5fb54654a3abdc29843","_id":"arweave-bundles@1.0.3","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-AhHCJ5+vfAv1NtK4saV/D9yzCm/aJS+s5EQMXGPFW7u3Q4TLLYwFCUAp7J11aBph0xYKWN04dLoubBrtvQBX3g==","shasum":"568f99c603be2375263341db7fc664ac2bb1846b","tarball":"https://registry.npmjs.org/arweave-bundles/-/arweave-bundles-1.0.3.tgz","fileCount":22,"unpackedSize":30910,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGeblCRA9TVsSAnZWagAArIQP/0D18pU2/OL8+HQgT8xM\nLVNaYul94Uh32yvi5u3twFCOzJztsddVW68JysZfbs8VaGxR7bpNw2+Jn10l\nKbZ1kfGtB+zsX4tOwusJVe1h3I7CuuaMxN7mo8XYbt8nLAZWAC8PjAlU2WGS\nZLCoHlu8Kaig+pPqT9BTyUxnEPLCaw8QmyG+X8JKFtNpPEC+OnSWo/aHeADt\nEFSAKbQmCR8oz2B3cQuLZaixzhx8Xhq/LQryPUalGAWkRNoUwUtN7BnaYPLI\nldz37eckh6Ngsh+apnqxhXn0zAaqMpwnqThwBYV5c3uGdQkLTsf9fD+gU4mW\nTn3Q4L/Lfr5f4kFxd5ALErtYF1goPXmneVAfEzrFw9QQAkxp3yBgA7/HwdGb\nzOmeZ2GSkyqqygbhDbd5J7YjYl8/YJ3ZvemVtMPrORdw2Y/o3fvKwiSShmRe\nE91ZMZTiUxIIyY2Uyy3CbAXVd+hgKhiXJE1q147LSDv8C0gWiBI2rqhgfUsa\nCkTd+Y5lXq6zR2Vk8A9v/8NcosA97q09KYZ3JxQkNBIMpIbW3OqYi7cCJdVq\nJ35jUGYeuGiYtU+cPkrHmJLDr7JwMjLk6w4hPsKQwEwHdOrhCMVcy8SXC9gQ\ng34ZRXY9ODCflGfejdVSRLFK+lp0jrTpPq42O4hqcMSfTn07lCH/a6mYW5Wh\ngVZR\r\n=0s8W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBgw0PzQXXaaspTmcsssFLmAxi41rYk+ruQf9Nr9qdnMAiB8u4hkiS1VRNqH03z5z0u0oCbGBpJkgs+H48GS3JrPqg=="}]},"_npmUser":{"name":"cedriking","email":"cedriking@gmail.com"},"directories":{},"maintainers":[{"name":"cedriking","email":"cedriking@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/arweave-bundles_1.0.3_1612310245165_0.7329326762011801"},"_hasShrinkwrap":false}},"time":{"created":"2020-10-20T17:52:05.551Z","1.0.0":"2020-10-20T17:52:05.678Z","modified":"2022-04-11T15:16:29.589Z","1.0.1":"2021-02-02T18:01:01.144Z","1.0.2":"2021-02-02T23:23:01.446Z","1.0.3":"2021-02-02T23:57:25.315Z"},"maintainers":[{"name":"cedriking","email":"cedriking@gmail.com"}],"description":"This library contains routines to create, read, and verify Arweave bundled data.","keywords":["arweave","ans-102","bundled data"],"author":{"name":"ArweaveTeam","email":"https://arweave.org"},"license":"MIT","readme":"# Arweave-Bundles (ANS-102)\r\n\r\nThis library contains routines to create, read, and verify Arweave bundled data.\r\n\r\nSee [ANS-102](https://github.com/ArweaveTeam/arweave-standards/blob/master/ans/ANS-102.md) for more details.\r\n\r\n## Installing the library\r\nYou need to first have NodeJS and NPM installed. Then you can run:\r\n```\r\nnpm install arweave-bundles\r\n```\r\n\r\n## Initializing the library\r\n\r\nThis is a self-contained library, so we need to initialize the API with a couple of dependencies:\r\n\r\n```javascript\r\nimport Arweave from 'arweave';\r\nimport deepHash from 'arweave/node/lib/deepHash';\r\nimport ArweaveBundles from 'arweave-bundles';\r\n\r\nconst deps = {\r\n  utils: Arweave.utils,\r\n  crypto: Arweave.crypto,\r\n  deepHash: deepHash,\r\n}\r\n\r\nconst arBundles = ArweaveBundles(deps);\r\n```\r\n\r\n## Unbundling from a Transaction containing DataItems\r\n\r\n```javascript\r\n\r\nconst txData = myTx.get('data', { decode: true, string: true });\r\n\r\n// Will extract and verify items, returning an array of valid \r\n// DataItems.\r\nconst items = await ArweaveBundles.unbundleData(txData);\r\n\r\n```\r\n\r\n## Reading data and tags from a DataItem\r\n\r\n```javascript\r\n\r\nconst item = items[1]; // get a single item out of the array returned in the previous step.\r\n\r\n// get data as Uint8Array.\r\nconst data = await arBundles.decodeData(item, { string: false });\r\n// get data as utf8 string.\r\nconst data = await arBundles.decodeData(item, { string: true });\r\n\r\n// get id, owner, target, signature, nonce\r\nconst id = item.id\r\nconst owner = item.owner\r\nconst target = item.taget\r\nconst signature = item.signature\r\nconst nonce = item.none\r\n\r\n\r\nfor (let i = 0; i < item.tags.length; i++) {\r\n  const tag = await arBundles.decodeTag(item.tag)\r\n  // tag.name\r\n  // tag.value\r\n}\r\n\r\n\r\n```\r\n\r\n## Creating a DataItem\r\n\r\n```javascript\r\n\r\nconst myTags = [\r\n  { name: 'App-Name', value: 'myApp' },\r\n  { name: 'App-Version', value: '1.0.0' }\r\n];\r\n\r\nlet item = await arBundles.createData({ to: 'awalleet', data: 'somemessage', tags: myTags }, wallet);\r\n\r\n// Add some more tags after creation.\r\narBundles.addTag(item, 'MyTag', 'value1');\r\narBundles.addTag(item, 'MyTag', 'value2');\r\n\r\n// Sign the data, ready to be added to a bundle\r\ndata = await arBundles.sign(item, wallet);\r\n\r\n```\r\n\r\n## Bundling up DataItems and writing a transaction\r\n\r\n```javascript\r\n\r\nconst items = await makeManyDataItems();\r\n\r\n// Will ensure all items are valid and have been signed,\r\n// throwing if any are not\r\nconst myBundle = await arBundles.bundleData(items);\r\n\r\nconst myTx = await arweave.createTransaction({ data: myBundle }, wallet);\r\n\r\nmyTx.addTag('Bundle-Format', 'json');\r\nmyTx.addTag('Bundle-Version', '1.0.0');\r\nmyTx.addTag('Content-Type', 'application/json');\r\n\r\nawait arweave.transactions.sign(tx, wallet);\r\nawait arweave.transactions.post(tx);\r\n\r\n```\r\n\r\n","readmeFilename":"README.md"}