{"_id":"@polywrap/client-config-builder-js","_rev":"33-d307819240fce71feb260be9374bf65d","name":"@polywrap/client-config-builder-js","dist-tags":{"latest":"0.12.2","pre":"0.12.0-pre.1"},"versions":{"0.5.0":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.5.0","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.5.0","@polywrap/ens-resolver-plugin-js":"0.5.0","@polywrap/ethereum-plugin-js":"0.5.0","@polywrap/fs-plugin-js":"0.5.0","@polywrap/fs-resolver-plugin-js":"0.5.0","@polywrap/graph-node-plugin-js":"0.5.0","@polywrap/http-plugin-js":"0.5.0","@polywrap/ipfs-plugin-js":"0.5.0","@polywrap/ipfs-resolver-plugin-js":"0.5.0","@polywrap/logger-plugin-js":"0.5.0","@polywrap/sha3-plugin-js":"0.5.0","@polywrap/tracing-js":"0.5.0","@polywrap/uts46-plugin-js":"0.5.0","@polywrap/wrap-manifest-types-js":"0.5.0"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.0.7"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"_id":"@polywrap/client-config-builder-js@0.5.0","dist":{"shasum":"f909ab9df8f641f6253358ac266111990a65d938","integrity":"sha512-hwZRcYOPasjw9AvhfUMIG683CuzTsVDQyIx6bSFQsRwYKYVBh+H1LvuZWr+AuBzC+K/rUNHSfFxqunHSBZZIYw==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.5.0.tgz","fileCount":21,"unpackedSize":32999,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA4UcVvKbvHN8V2q4KsC3IYJKLDdY+KKzWT4QWdI8HK4AiASHKNO9R1rPpynvT8Js+vPxIxi0Mp7fzOUPTuW9NSPcg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjCU6KACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqtxg/+LUempaf0lUnBsVQLajvKlspltZ7ikQuDg3bJ/TNA4BUUuCbm\r\nDeMsbiDi6mWCTksBdMui4t6pqRYtqVVsNkXFVzBvheiVLsxUpC2q8IF9/Asp\r\nARsx3sFPdlyaFo+ETvbYkgPkttrR+yaQ/QlnjmCGTDSYctd6roSTbGHyw0NW\r\nWsRyDC8lu/eSG8xVKoSL+PMq35FCc8frJr+uCpo/4ByzWhoW69wsMElzmcBA\r\nMARWin5OxVSRY/oqYLnLx+aKtd1cpVRd6fnHxO+KMW1KSL+QQaGPaXuPSmae\r\nNNZjzIh3yysYkzGgmjLWtNmWb7AopgWKRDNuNahXGxOXpXLXQN/pY+j4Nvdh\r\nCFa6eQ8hQO7NI4exB5UfIQQv0vchVUbF1+KsPRqEYofm7wD6uP81MI0wQfpb\r\n7uw5urdp3BREh+V7QiCtrQskF/zBflVM9Wl6jvzCoiWs7BpQjoTBOltiTBcY\r\nscnSef+X6Kwg/FdtS2iZ4AFwxurjNij69yoUkmCb5LJMFdvJfa5uUpApvBC5\r\nXY3mxnl0yhbI8LtwVUPn59xauR2gmAViZBjd6oQ2su9PumDv92VWmofJo52l\r\ncnomryzjNDM/01G63qLQuVq0A0XYwdEKv9vRMQy56IahrhwGxdKILW89f3W7\r\nPt9Ownn2A5ZwXCaMXpjN/B/Qr5HSdkoJSL8=\r\n=Hizs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.5.0_1661554314294_0.8851504272043527"},"_hasShrinkwrap":false},"0.6.0":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.6.0","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.6.0","@polywrap/ens-resolver-plugin-js":"0.6.0","@polywrap/ethereum-plugin-js":"0.6.0","@polywrap/fs-plugin-js":"0.6.0","@polywrap/fs-resolver-plugin-js":"0.6.0","@polywrap/graph-node-plugin-js":"0.6.0","@polywrap/http-plugin-js":"0.6.0","@polywrap/ipfs-plugin-js":"0.6.0","@polywrap/ipfs-resolver-plugin-js":"0.6.0","@polywrap/logger-plugin-js":"0.6.0","@polywrap/sha3-plugin-js":"0.6.0","@polywrap/tracing-js":"0.6.0","@polywrap/uts46-plugin-js":"0.6.0","@polywrap/wrap-manifest-types-js":"0.6.0"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.0.7"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"_id":"@polywrap/client-config-builder-js@0.6.0","dist":{"shasum":"60680b68f49c4c126b670d904d25e44ff0fdcaff","integrity":"sha512-tPqOifX1xjZ8HQof20W9Tl/jS++fPygMej5f0S78Ms4l06HdgiQr7p53jZsP6fYv5EGulXIOUQKKiqjAW79Ohg==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.6.0.tgz","fileCount":21,"unpackedSize":32999,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFHeXb7YE5nkUzZcICKv8o0UuxqiqLsiQGT8M+26FDuGAiEA7wz2Ky1MQfsi/FJKyAbFpk+Lw29ToL9Z5ZXYEuKzmts="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjEil/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqMLw//c6P561k1IVnJQ3SkEudHiq+fx6AnyDulF3oEs+8GLnL8dwWD\r\nQv4hX861vwJfuqJJaP87tq+eCfLYTA5CC6AfuLy+KGc7t054rOdNNEeCQ0nd\r\n/5kMmuwGnrAc4nLied8S73Vgzs0/0aYXjaN90Z94W65WfBcajO8ZpCaBeYyC\r\nwT3tnyPFpczq7IpzZi/wN3jvCOACYRXCeWOeaqG9alGwWpWKhY5GedCCwa/3\r\nu81RV3kL+7qv80ubi0E9GMSIWQRtsu+FHUHcCnurCGsJugF/eE3DOSvHcjJc\r\n7qUss5a6SwVjHQDaPsK2T846Wt38wlKQ2mVNMt8+3RNnu2Ue72veqFiCaLS5\r\nz2824CQkaum4UD++zX77tGxv5Fo4pbWgbI7PVB78VmPTAW5gGT8VtAJJXYfT\r\nQO78Sw9AbCIFQCEiV8zisoW17EMZmmnpahETiBb0wglGW2Ct/qUeNp5zjT4k\r\npDZeskjWmqBTj4FNOs9FVWPZ38agzmYFO9QJt8+B8pGI/WsnIIbIYNp7F2R3\r\nsfja3JoJO5BEC+vnzbHBRfII2kQhk8B2IKFtT2n/+R+L0NxJPYpGDUP/7zDM\r\nFxdV5p9s3yFwGCT25NqGRUeFJYCn23OllrPwZKg1klG1SryhhwbT0wKK75IA\r\nPC0aCM1M/O+Q0xmvWN4SzExPbBEStXfiMNI=\r\n=ixxx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.6.0_1662134655207_0.7217962218610015"},"_hasShrinkwrap":false},"0.7.0":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.7.0","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.7.0","@polywrap/ens-resolver-plugin-js":"0.7.0","@polywrap/ethereum-plugin-js":"0.7.0","@polywrap/fs-plugin-js":"0.7.0","@polywrap/fs-resolver-plugin-js":"0.7.0","@polywrap/http-plugin-js":"0.7.0","@polywrap/ipfs-plugin-js":"0.7.0","@polywrap/ipfs-resolver-plugin-js":"0.7.0","@polywrap/logger-plugin-js":"0.7.0","@polywrap/tracing-js":"0.7.0","@polywrap/wrap-manifest-types-js":"0.7.0"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.0.7"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"_id":"@polywrap/client-config-builder-js@0.7.0","dist":{"shasum":"fa5b4d14b5a83baba65946fb7805f1307eaf1697","integrity":"sha512-TLafOkoAjcsE1M/0vY3G5lU/J+CDQXhHgK1if7SQeLv8TcMpWoddgZY4811ugTUVr/6ZiZ8AoJKckL1euzb86Q==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.7.0.tgz","fileCount":21,"unpackedSize":33649,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7f6Z8AoTtmvd7LFo/xcvqcJNe13XMpca2VnhYcd8yXgIhAJBwI3eUMFFcR4b0b9ZaOGl1x2Gu8v0+u1SY5Pq5ZoSy"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGhk3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr7OBAAmRHElmoQxVfW+HjqKsh7KkcdFQHOCnkXrvtyUgZs7LgI6kue\r\nm/uOjRaio0oByKOsqViVtsO/VCHAlZt4h1PQiaVwI2g941/ocw0o3c6UAZQS\r\n2PzrHThRdki8NdDq5pLtpbw6HEaqD2SPS9eRNn2bb+3xFfwyTd7UbOxWcumF\r\ng0EjieTKcxczpniPa5YpJPxSI9SNry23lbq1dho3YEOKX2WT8xz1C1pixDbS\r\nVt7Eh5IB1okXfU+/HCOK90yAia9iGNE5slwhDwo1EzEEHG0Sw5pENDAl1lkj\r\nQFhKCQ4nJ0JqeWXbTveURRVUvwrAv7VKHmj799hGfGGzFsSPdm35UYw2+Oyb\r\nh4P2vNR5PxLNLevpexT2vHk4xefbFHHbA41uwZw3NNLUsn1zs/h1y4eqrhI/\r\nSoYRqTHr6X1mip4PJrrzz5IgnS4E+P0hx4WUj6jsXEDc+RAbgO4eiyUzAKSV\r\nEsS4kIryRA0MqcmoNGoxybBFPocNvQ5EtmCHUTU5MOJ+fRgOOvaF7w+n5OYG\r\n0HREsEB1hv7QMO6Mn+HEnAeAP6qEqGLj5oA1aMQTiFvhrYVO1E7Hn3T/QnxA\r\niOnUIlP2WR83Jul9Xk8Yii0f/cOhF3wN8ged1RyHEhyzXNnWVQ61JxBio36p\r\nqeV4VI2Xo0KnerqN11wUhuzmBoKn/w4ag9g=\r\n=i+IV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.7.0_1662654775531_0.010136142765996503"},"_hasShrinkwrap":false},"0.8.0":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.8.0","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.8.0","@polywrap/ens-resolver-plugin-js":"0.8.0","@polywrap/ethereum-plugin-js":"0.8.0","@polywrap/fs-plugin-js":"0.8.0","@polywrap/fs-resolver-plugin-js":"0.8.0","@polywrap/http-plugin-js":"0.8.0","@polywrap/http-resolver-plugin-js":"0.8.0","@polywrap/ipfs-plugin-js":"0.8.0","@polywrap/ipfs-resolver-plugin-js":"0.8.0","@polywrap/logger-plugin-js":"0.8.0","@polywrap/tracing-js":"0.8.0","@polywrap/uri-resolver-extensions-js":"0.8.0","@polywrap/uri-resolvers-js":"0.8.0","@polywrap/wasm-js":"0.8.0","@polywrap/wrap-manifest-types-js":"0.8.0"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.0.7"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"_id":"@polywrap/client-config-builder-js@0.8.0","dist":{"shasum":"14e3eba99b459a94f036c88786e61b0834b01528","integrity":"sha512-mClf0k1GQZ2Mdouy248yaw5Wsey69U36QcOPKk/XZa8k4if85J2iimQ8Z98VL09tqzds8Amk9cRwYzqblEjBcQ==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.8.0.tgz","fileCount":17,"unpackedSize":33609,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDp6+bynajZThk+XEe9tKbxivhPDvqHll3puxpCMLm+EQIhAN/ads1OAM7Bgr+PLIy/PYMLAHOfBVMhTjQBvXPSXFyK"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjL0z6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoztw/+KW2HSoqMfox+y3y/K5QR8u0hPImPYTU7WyeAt1+AV8sqZO/N\r\naSkpGQi6uKVEL2VXZasCdW0wA1Z2Rl0uDsQyoaQ5xxVInJMAJ+BCm3A5lqrL\r\nsP50oGtyTaC4ZllrPiOl0Dy4kG/NLTNKk5Xf2OVL7YEmTzGdVg5b1VaT6+1g\r\nDfC17aSm125hcuJUfajXKb41eJZ9Bsi+MuISFT8i17d/+AV/D3ystpv0GLHi\r\nFm2FqN5ux1T4H+ObYv8dEVHvipvDVMkLcclMuglaoN1NnuTdd8rNHqW6xo86\r\nhE2lBCZL7Oxxx8f2bGb4FFRewEwm5FFXX5fBBIZn6trHC2XtFqQ8xU8Cc10C\r\ndgbaTPVy9nYAYafbNKIVthMFpJgBGT52TT2bFmBE+lvLwMPFa0/1y+a2ThSs\r\neduD+RfiBr1xy635Zi9ptcsuqCWU9wtOIzHs8OXYcsKpfh7uMbNsgLu20euX\r\n9Td7YOBfQxQBrhferzSyw/FbNhwFVr8MFpOD5rvjjfp1r56cridZjpfhxqo3\r\ne4I2rEmByyRfXS/XR3L+gMvNmNBrp/UL5w68wHSYlFCNyiB2kGpR/360aUrS\r\nabGox+9dRJLIAfLBR998Kya2+eNU4zqjzbIUKIzBWHT4QDOurXGC8Ah0dqKW\r\ngV2NgxOxHvN3L5qpAaKgRwO1Y2Jdri5kbBA=\r\n=fXVu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.8.0_1664044282525_0.868767949490507"},"_hasShrinkwrap":false},"0.9.0":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.9.0","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.9.0","@polywrap/ens-resolver-plugin-js":"0.9.0","@polywrap/ethereum-plugin-js":"0.9.0","@polywrap/fs-plugin-js":"0.9.0","@polywrap/fs-resolver-plugin-js":"0.9.0","@polywrap/http-plugin-js":"0.9.0","@polywrap/http-resolver-plugin-js":"0.9.0","@polywrap/ipfs-plugin-js":"0.9.0","@polywrap/ipfs-resolver-plugin-js":"0.9.0","@polywrap/logger-plugin-js":"0.9.0","@polywrap/tracing-js":"0.9.0","@polywrap/uri-resolver-extensions-js":"0.9.0","@polywrap/uri-resolvers-js":"0.9.0","@polywrap/wasm-js":"0.9.0","@polywrap/wrap-manifest-types-js":"0.9.0"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.0.7"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"_id":"@polywrap/client-config-builder-js@0.9.0","dist":{"shasum":"a5dd2e049d7f01b1b884a9bd3f0725de1745dd8c","integrity":"sha512-eJ/jPfTBHt2XMa1b5xpy7aUAo06HBgGZOU52mGJ13vxpU8w/RRwzdhu7ImjOJzQZ6fxawy4fRBaZtZA5kV8uJg==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.9.0.tgz","fileCount":17,"unpackedSize":33609,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYQUuprjdFI0nlTmFuesLnQvvgYHY/AYnEg+xd/zzPAgIgYcdmhTRBAXRGbZ7l9d0ACQ4Gn8ipj5wl2r3NI5GPqow="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjQ+mOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp0hg/9EOiqj4wP7kzYrKZRyStsBKBTIlOO8OeEeC411UoFDjwgTnIM\r\nlYDjgGMpBpnw9pB4Vf6RboaU9qJQbOZoFXxnqKLTkAUE3iq6tygwvWYu99/3\r\n9PWyv1ckTi9o2zCmFr/x2qJLLW7OkI++k0NnnbALbIwZ1kfHD7XpMUvNiZ6P\r\nvIxklFIacD5ZRut7z4csSkuL3+DvQtVo9CkvniXW0md0WX3dD0NhgMBNWvMX\r\n6BS8psoe+N3MD+3uxvm+mD/nekjbcSgkbCqIF8pBycnKqkkheZY4zZ3a1EvB\r\nYktCR/z0Dk0qNxcoBToJRpIVZTm4T+prHexUj3mfOQmVsrsDtKI8XWTwmoHI\r\n54vE1KqPhMtfFXPesIvye3Z7VRN94vuFEIW9x745cFpOj6Q++tMcC0oqeczV\r\ny3A+HCOKQZy7jPurGZE0xdTQ8KX32Jlmm45rb0ZRZjWi+yJVi/84cGqx2z4B\r\nVej1ziaorWcKnHt40FJDiF8uAKIbBH+27aBLfVIb94VlkvCadJ0bhTB5H/dw\r\n3eb2srpYk5Set1FXa4i9rOjtvJyhVuWuxjhb8/EYY02Ysb76bQXSgN/9SnsT\r\ntafNQXqpD/rYMAM0pt447i6XZR/WhoPWMCvBr4XYD74e5ACcqL7II8BgRp93\r\n1Pa3RF+9pbAdtsFW3OGLmB2jvdwV5kNOt6s=\r\n=xEC3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.9.0_1665395085815_0.03773259731357692"},"_hasShrinkwrap":false},"0.9.1":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.9.1","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.9.1","@polywrap/ens-resolver-plugin-js":"0.9.1","@polywrap/ethereum-plugin-js":"0.9.1","@polywrap/fs-plugin-js":"0.9.1","@polywrap/fs-resolver-plugin-js":"0.9.1","@polywrap/http-plugin-js":"0.9.1","@polywrap/http-resolver-plugin-js":"0.9.1","@polywrap/ipfs-plugin-js":"0.9.1","@polywrap/ipfs-resolver-plugin-js":"0.9.1","@polywrap/logger-plugin-js":"0.9.1","@polywrap/tracing-js":"0.9.1","@polywrap/uri-resolver-extensions-js":"0.9.1","@polywrap/uri-resolvers-js":"0.9.1","@polywrap/wasm-js":"0.9.1","@polywrap/wrap-manifest-types-js":"0.9.1"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.1.6"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"_id":"@polywrap/client-config-builder-js@0.9.1","dist":{"shasum":"cb73d2e8e89741cc88a6950f8e93c38556af7576","integrity":"sha512-7V67DmQ7WMVLMfEUfLBMoA0GOlNQ72Mp0jRVIIIBQVWegbnFtyuYWutLJRXxRZZxI9lhfit2rCiR3kulZ0VTAA==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.9.1.tgz","fileCount":17,"unpackedSize":33688,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFtnNlvYYaSky15xYcYa2j02YCpTNySiI1s06QMwQlflAiBmUMtN+7PkN2I7OBH3aAEEECzGcu9tXle5btZzCXLR6Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjR0EUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmppLA/6A+5Ijf/i72/BZ41Wf1albIO9ceGa078fBWVhSMRRyY0Kx9ka\r\nzG/bTtyH5XTxn8h2Nj5t0ds6EqapdAMATKj1cPhwfU4DhkY4LJ3y10VOBXRC\r\npE/4gJZVMwdbGEOWVCthMXgPqDLLLPTzgkP77kSYbUWqN0bMeCKHkYmxHkJY\r\nYBZBBr56oKNjynX01mYhGUiGyoClAToHaOohuU4sWdgEFrd8PT/Qrydj9VYg\r\nvvoZPWgY0o4Hlr4QpvyKry9zWoe9YrId+++rwgK/nxzbHqsiD0R2dSZSQRih\r\nCsAC0BB9r5jxE6AcK3iPzHiVaW5nf61Sl/nDiDQkCX5zUirjmDgIU/506yrc\r\nSfBDOvbA5XWW6MlB5xxVepBwR+RsVBUyuaFZ/svezmcC7N0AlYEpwpE9RK5p\r\ngmwHSnOCDXNA/a4opTQB3AmVG6BV5+Gi5sG8sub833DkEU4Qg2mzUKujSjyD\r\nAL9IySXPA7gWENIi5HqTw44rLDPKXFhoZ/vBp61HgCHRjcxnESQZokkB4Z3T\r\nvOrQA7rzpJIZ8n8r1kaelU4l4v7GoCZgEmWUFVqHAwTAsnG1gw6Z0VpCoMjG\r\nJAjeEC7Lvu4iHYgG5GjOK2qB4K0qmc39JO/Miq7aOvmUJQ+6I5Ql1ulWFM43\r\ntx1YPlP9ZsT1rf4APJZITrpf5wbEBZnPGUw=\r\n=W3XV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.9.1_1665614099813_0.1008086844237599"},"_hasShrinkwrap":false},"0.9.2":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.9.2","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.9.2","@polywrap/ens-resolver-plugin-js":"0.9.2","@polywrap/ethereum-plugin-js":"0.9.2","@polywrap/fs-plugin-js":"0.9.2","@polywrap/fs-resolver-plugin-js":"0.9.2","@polywrap/http-plugin-js":"0.9.2","@polywrap/http-resolver-plugin-js":"0.9.2","@polywrap/ipfs-plugin-js":"0.9.2","@polywrap/ipfs-resolver-plugin-js":"0.9.2","@polywrap/logger-plugin-js":"0.9.2","@polywrap/tracing-js":"0.9.2","@polywrap/uri-resolver-extensions-js":"0.9.2","@polywrap/uri-resolvers-js":"0.9.2","@polywrap/wasm-js":"0.9.2","@polywrap/wrap-manifest-types-js":"0.9.2"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.1.6"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"_id":"@polywrap/client-config-builder-js@0.9.2","dist":{"shasum":"3a7590d5e774a23ea2f864a387ddabfc6f1b9fd5","integrity":"sha512-wyhkwO4w71vIWz3JgLCtJMHKhVzM/Wv/Phu7FkQztDFi20mBTGJN8/s0HgXYaebIwYqyiubJWHYpjTkV+5OBpw==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.9.2.tgz","fileCount":17,"unpackedSize":33688,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBHpIj0hUBhT15BTm8pmuEEpzdq7k7CovY6K2YP76hOHAiEA8RCz7p/xIyxA3XaE4e11k6E3mcnyzzR+6GR//vRslSU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjSJOxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmouJA/7BBLmOT2NQn3mIJmqosmLo8kP+FiFYOnzo/vRnjUfXRFaTYPI\r\nYnqPwaRJ1+xqjm10B8A8RBvTpcE5veiCvCjJ1/HQZ0qXfUFmfmVyZK+OZ/uR\r\nVYSp7MZN6AMH0fxdGDSqQ0XkOmBielnmpMAjC/fVdENbjc+isY2rTiVUUAor\r\n57Di+Bf3fXJcb9JkCVcrMOYzzCrmGjVgOgS7YaMR0UKmJWf7C7iAY1ipoy9B\r\nOxDxnnfG8mYvKueZPAAV0Svr5qXetwNfOJ2PxX1GkWe7Kh8JNqRTGbXfbJMa\r\nZaCqdm8wfckj/EzcIeUh9j8kD8L2Dh6wLKSBmg8RnV6DPm6EQ6Q3eM1hMPfA\r\nz+GNV5vu6vTiyy+9ttaX9CSrM+QCGMUzZ5e0XmsoxVIyMPTSUb2moBYK0zuQ\r\n7F+bE061CBAwMncxP38QcD+W8FC2CFfoKnV55AgIgQPM9VpimYKw++dAXcSe\r\n5OgocMU4aU4oFgwgJjEnoUVwy7jB0xuNkdFgYLcxk/wFszkBO0LZEGgCCL6b\r\nmnHk1+N3D8C0y8cJTGLpzs3H6lX7Cj95mSQ3wrh8rmJJuFEBpYOqlflTuhOm\r\nLMSWEzY9te2VHHbLhfmFpKvtqrwsG9sNo1uhqHYlzVv1g/WNJ1Df7W72+6YS\r\na4AMjB4YgmdHA2yyunx8yTujmExL6tE2jwA=\r\n=fnCH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.9.2_1665700785372_0.5127361127703565"},"_hasShrinkwrap":false},"0.9.3":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.9.3","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.9.3","@polywrap/ens-resolver-plugin-js":"0.9.3","@polywrap/ethereum-plugin-js":"0.9.3","@polywrap/fs-plugin-js":"0.9.3","@polywrap/fs-resolver-plugin-js":"0.9.3","@polywrap/http-plugin-js":"0.9.3","@polywrap/http-resolver-plugin-js":"0.9.3","@polywrap/ipfs-plugin-js":"0.9.3","@polywrap/ipfs-resolver-plugin-js":"0.9.3","@polywrap/logger-plugin-js":"0.9.3","@polywrap/tracing-js":"0.9.3","@polywrap/uri-resolver-extensions-js":"0.9.3","@polywrap/uri-resolvers-js":"0.9.3","@polywrap/wasm-js":"0.9.3","@polywrap/wrap-manifest-types-js":"0.9.3"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.1.6"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"_id":"@polywrap/client-config-builder-js@0.9.3","dist":{"shasum":"4481168454a8d27acf9e7b3200776aea0ca9fb46","integrity":"sha512-ECCFV1+pr04LD1r562Ezu27TFfcAzbpEOtZz62fHD7QNZfIlVhCXbRU5x1jEj0keL4JDcS+lIfaqfyoIc8AHVA==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.9.3.tgz","fileCount":17,"unpackedSize":33688,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEaR6n4UOBDFXyOWPR+qOxmz5UU7KKKf+mDyNgiUczQ6AiEAs8rjhmlSH/nhK3J7DALV1NwvXEe7wUH7szHVa1tFUgc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUSP0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqfYQ//ftW9BbaefzfEMyA3grjSZ/pVExfa6o29a3sBb/jhNsF4bvBo\r\nSrIaCPvOqmG49Ac4RBguEJZSAip8QYzY4ZnVAaK7V0CDFzfjNgQ1sJiz4zlM\r\n2ib7JrPrcgJXowyePCHMFBjPc94f3lA4DI9tzH1uszDnW5250AIdekq8Rpip\r\nTU/SVUrk+So26+kZiMcZ5pkWKHmDUYEVdYrpTJFVNZfEMcf0gcGIz7ln52UO\r\nYHlnZjZAn/iMJbWKKv+kKjOzmlH0HijDWYWa7X3yRvJ9e0ISKBn0sfPAMi4A\r\n45CZveRmPJEog25hGW2x6URjzK7nJSwVDz0qr8aqH2rS/poNASgfFUOEPMYX\r\ndA0ewrMujfPNzNT+BCHk3ujtOfzRqWZu98tNqdLcrQmMUAOmjOGxwd+/84Cz\r\n0MyKMlCZ0WYcnHswsCxXTuCa9+4l49zf6ivewzj+LCRdbO26ygZ/x9WCxpZj\r\ntznuMv9bRTjnlbMDdJ8ugHg+M4HlQvaJIU/wZLM8uNwasQBy9eiZKt1NrOq+\r\nnb0VYxu8eskFxqZXBfw5oQXLjsr+xnNkz93vCPycoUPZHbpSCHrX8jTiANw8\r\ny/UDeVxXtNRsCMRGTfoKnGqma89rp5XBxXUYWlN9QoC9QJ88D2Qm1zwLs895\r\noP28VI6qUe4wtbBvjCSmWBI04+JpRPozHAw=\r\n=XcUh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.9.3_1666262004241_0.20971686737856698"},"_hasShrinkwrap":false},"0.9.4":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.9.4","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.9.4","@polywrap/ens-resolver-plugin-js":"0.9.4","@polywrap/ethereum-plugin-js":"0.9.4","@polywrap/fs-plugin-js":"0.9.4","@polywrap/fs-resolver-plugin-js":"0.9.4","@polywrap/http-plugin-js":"0.9.4","@polywrap/http-resolver-plugin-js":"0.9.4","@polywrap/ipfs-plugin-js":"0.9.4","@polywrap/ipfs-resolver-plugin-js":"0.9.4","@polywrap/logger-plugin-js":"0.9.4","@polywrap/tracing-js":"0.9.4","@polywrap/uri-resolver-extensions-js":"0.9.4","@polywrap/uri-resolvers-js":"0.9.4","@polywrap/wasm-js":"0.9.4","@polywrap/wrap-manifest-types-js":"0.9.4"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.1.6"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"_id":"@polywrap/client-config-builder-js@0.9.4","dist":{"shasum":"227aadf6da73e27b82f994e86d39d1f32f622320","integrity":"sha512-yjHLf56KUmHR3rRUEzf8UVY3ulUpmd5CbsbHFO1Ml+9JeNbmvXbred6TdY3t9xmDspai2FxPJC5WuG3iQmJ3Jw==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.9.4.tgz","fileCount":17,"unpackedSize":33688,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBx63RwplZIZjDEyBY5sBhcF/KNl3TnN/EGz/uggKcZfAiALVAqP6DusflmGhyfgWpduguqyU3Uul06DGsTv5M01sQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZG9dACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq2RA/+IPAP5vcmuuUVYQFLFzMQFis6JJx+lwczDYO+WlPYK9K8JSEY\r\nG+Y5bdl5wUjzpCX38ktMy9r66bVHIH2ANNUSQfuvYmtOOx5CmoUBBOQMcmXt\r\nEYRhZPoXCfAOWiTL1ogYRPL76r9L32/dGGNfHhJ9CcXDSPS6wdQTNLju78dq\r\nkJoReKOOs3OHNtMe0KfyINw/Boeij+0OpcHc4G+4WnJXH3NziA8h4YXye07p\r\n7GcdpCMrX7LytwX8LsCyOKQ311k/O+IDp4qHpRUZSgJxf+FQMSZaAtuSB6QT\r\ndvyPhfZbZc9BThh4LhnhL0GgUgYKO5sqWqV/AFlD2URLR06AiVnmlfgDb0aH\r\nKZ0OSnkP0A/Kjk29V8Yo9n9m6WyqyH4/Zb7KJkt4h0lDBRfY/pyLozNqE+bt\r\nmgH22fDHeArYBsHPvKPrXOfJn8tU7A6BaC62GPdthU0H2mUfTV8YnFztefd3\r\nuFn3RhZH7qntYuYimOjjlL0dzGws6D8QLp7uFp0ixqdq/A6cv0fxZxcHE9zq\r\nuIH7z/Ukr2M60cCyiq7RQBUVBap3CodYcitqVqsNYECN3qKVZ4eRE9vnKTwg\r\nrb0slgIIjgkQu9L1NKawIorvIdQXd2UDNzfesfRgeub5BB4xYckOWVm+FY5A\r\ndODZp8lETSMOchUXvcmvaezIKFBevc1oZMQ=\r\n=vMXf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.9.4_1667526493325_0.11792971909536965"},"_hasShrinkwrap":false},"0.10.0-pre.0":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.10.0-pre.0","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.10.0-pre.0","@polywrap/ens-resolver-plugin-js":"0.10.0-pre.0","@polywrap/ethereum-plugin-js":"0.10.0-pre.0","@polywrap/fs-plugin-js":"0.10.0-pre.0","@polywrap/fs-resolver-plugin-js":"0.10.0-pre.0","@polywrap/http-plugin-js":"0.10.0-pre.0","@polywrap/http-resolver-plugin-js":"0.10.0-pre.0","@polywrap/ipfs-plugin-js":"0.10.0-pre.0","@polywrap/ipfs-resolver-plugin-js":"0.10.0-pre.0","@polywrap/logger-plugin-js":"0.10.0-pre.0","@polywrap/uri-resolver-extensions-js":"0.10.0-pre.0","@polywrap/uri-resolvers-js":"0.10.0-pre.0"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.1.6"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"_id":"@polywrap/client-config-builder-js@0.10.0-pre.0","dist":{"shasum":"56b8b063e823ec65404dbc482b98b0f37b7c1fae","integrity":"sha512-nkG16SkUsqjS+qtdwnzwaxEF3x9uj+N4cLMao1kCQBbBAOP6XIFj8l0UUBQySD3iKfpX+eaagW7MUfFDAKaoOw==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0-pre.0.tgz","fileCount":26,"unpackedSize":45631,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC29sr9ULrIRZewRWun5eLEwvQTagzylfaKgl07OKnL7gIgIFRaWO8ANqrgh+MciscI8xk8csPx8Y7qo5TvsDi0LjQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZg+lACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpsKw//YiwvXidum4CsHQb5meHOLuu54iCj4Ok25TDSGm+qWwF7GnYG\r\nTtT+pHAth3TMlMn5lldAaZUhhpWWujJgYTrt/Q4wfU4no6CQLqMtYkuhqn/6\r\nOrHb1qfFNwOBZvb1sL/N4oP6XJJnylqhkVnTIO1aULZVw0bLEQ3rH5HXx5IZ\r\n6S6FEeqnRzOjbLvfEZmwVm5kV53TyYo/ovKRwBk67J67ESvTmFvsm38vucfa\r\ngznnVFyXS3AQLIbg/wZh7U788xf/w8gMlKKmDDj7CJsS7bIx77zM6R/Z2XhV\r\nAo55H7o1Ns/MKzmfBWKdVslEwOcY5ivKwVNZ1P86yK8eFWLdOMWWQLyBEeRH\r\n4iZv+sIoBvtO6z3NUtHkuUsQc7a6tNvqzIYFCMIbC/pwuD54pB16yPzukz7U\r\nUSxoatP7+0b30VoX7LLlRGtdGexnlNsg+QWa6oplBYZoi2wQiSLQMsJQo+9G\r\nS/FvzVzH3AjAzT+60jDm16o8/XUrBqJ3j2Sex6tqFjDF5+gQNHG6pnEBi9Q/\r\nQgQQWJVkPmq1KI2iB3dSuL2AvS2bz3SCXxCPfnpfrj9gb2el+yBCY/a7L9y+\r\nN/LofCfh43DwT7nWiLyPVVYxzt8h1NIl7M/xCp5aiyeU02ohiSiib3nscqlj\r\nte8S47NztIB9eoRjKJsVinaLK9NtJAC9gkY=\r\n=I3nB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.10.0-pre.0_1667633061251_0.7700894642465328"},"_hasShrinkwrap":false},"0.10.0-pre.1":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.10.0-pre.1","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.10.0-pre.1","@polywrap/ens-resolver-plugin-js":"0.10.0-pre.1","@polywrap/ethereum-plugin-js":"0.10.0-pre.1","@polywrap/fs-plugin-js":"0.10.0-pre.1","@polywrap/fs-resolver-plugin-js":"0.10.0-pre.1","@polywrap/http-plugin-js":"0.10.0-pre.1","@polywrap/http-resolver-plugin-js":"0.10.0-pre.1","@polywrap/ipfs-plugin-js":"0.10.0-pre.1","@polywrap/ipfs-resolver-plugin-js":"0.10.0-pre.1","@polywrap/logger-plugin-js":"0.10.0-pre.1","@polywrap/uri-resolver-extensions-js":"0.10.0-pre.1","@polywrap/uri-resolvers-js":"0.10.0-pre.1"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.1.6"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"_id":"@polywrap/client-config-builder-js@0.10.0-pre.1","dist":{"shasum":"9eb6651fe67dc60ffbdac7a7e71f253513bc6c2f","integrity":"sha512-7+82M5Taw3MFCk8oMc+VF9v0nwsakk1FVr9hyBG0vJh4wbXGubQw3LjDWYsi+qz6YI9I3NhV8JP9NQqCHVxMgA==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0-pre.1.tgz","fileCount":26,"unpackedSize":45828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDubctlsK2OJivpk777HxaFXLQDswtZR2h6o6tMuSzkBAIhAJHTrGd+ZOUHvjDZ4Cdpl4r5IV977diLB7vBL10Fy41N"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjb9+CACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoDIQ//edjve6tFgD41QGC1MOqw/V+q9KTEE40AfYQrFJ/5Q+cC3Dyj\r\nQvV0OM5XezI4d7ONL7I2NL5yTyfZVFUnstOUG1vjUrb4dccQI4fka37ExGCZ\r\nibkCVf1Uqr/DyWYSkKehogF58zBZnyOW+0KGxor0KW+ORjFQr2+LAW1SfkHL\r\nYOKGwzle4WWlTLI7tJV5Ap3RTb9sDEds7m31kebxLgiqZxdSvFNNClvc7QCZ\r\nGfTXm4CpOWvKHW9jA0h/56UZiDwzYEMnrka2kEo7lOLdHYoeoCYWC3wZ71WB\r\n53Rlt8XbNhq2akOSYhhtWGYeGElm23cO0ThQ3T3qJz2IHxMq0/lLu3C72k+9\r\n5OVt5Sree7PUI/v4+nlHUuE0OqSZAkInD5TvyvFVCyDOFQG1OU6Pq5diokmb\r\nE9xgTXJyh2yOCx8ELB0DyMAWmryids5FSaoedsQBfeXzsnshiSFEgYPCrPPO\r\nyZ2wtXhSHsjWagYJwDf+gr9syNMTPFoOOJQg4wyrjOPFODxJFC9XeKV5zCqr\r\nd/1urY/Brqm6bsq55VUAaJJ3V8qgaMiZnfC4MX9WItVv06e+G5yTc1JLCbBs\r\nLfgj7R2oyhCZOr6ubNXMjmFAGk5hpTUHlmYviwwExvLgzOWwEsi0p7MUmphP\r\nesvne7cZeKsRFPbM9O7OyrzjZ1asrTo8W1U=\r\n=b2Em\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.10.0-pre.1_1668276098220_0.7439981419844903"},"_hasShrinkwrap":false},"0.10.0-pre.3":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.10.0-pre.3","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.10.0-pre.3","@polywrap/ens-resolver-plugin-js":"0.10.0-pre.3","@polywrap/ethereum-plugin-js":"0.10.0-pre.3","@polywrap/fs-plugin-js":"0.10.0-pre.3","@polywrap/fs-resolver-plugin-js":"0.10.0-pre.3","@polywrap/http-plugin-js":"0.10.0-pre.3","@polywrap/http-resolver-plugin-js":"0.10.0-pre.3","@polywrap/ipfs-plugin-js":"0.10.0-pre.3","@polywrap/ipfs-resolver-plugin-js":"0.10.0-pre.3","@polywrap/logger-plugin-js":"0.10.0-pre.3","@polywrap/uri-resolver-extensions-js":"0.10.0-pre.3","@polywrap/uri-resolvers-js":"0.10.0-pre.3"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.1.6"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"readmeFilename":"README.md","readme":"# PolywrapClient Config Builder\n\nA DSL for building the PolywrapClient config object. \n\nSupports building configs using method chaining or imperatively.\n\n```typescript=\nimport { ClientConfigBuilder } from \"@polywrap/client-config-builder-js\";\nimport { PolywrapClient } from \"@polywrap/client-js\";\n\nconst config = new ClientConfigBuilder()\n  .add({\n    envs: [/*...*/],\n    interfaces: [/*...*/],\n    redirects: [/*...*/],\n    wrappers: [/*...*/],\n    packages: [/*...*/],\n    resolvers: [/*...*/],\n  })\n  .add({/*...*/})\n  .build();\n\n// ...\n\nconst builder = new ClientConfigBuilder();\n\nbuilder.addDefaults();\n\nbuilder.add({\n  packages: [/*...*/]\n});\n\nbuilder.add({\n  envs: [/*...*/]\n});\n\nconst config = builder.build();\n\n\n// ...\n\nlet client = new PolywrapClient(config);\n```\n\n## Methods\n\nThe config builder currently supports 3 methods:\n\n#### `add(config: Partial<ClientConfig>)`\nAppends each property of the supplied config object to the corresponding array of the builder's config.\n\n#### `addDefaults()`\nAdds the `defaultClientConfig` object.\n\n#### `build()`\nReturns a sanitized config object from the builder's config.\n","_id":"@polywrap/client-config-builder-js@0.10.0-pre.3","dist":{"shasum":"d371fe5d83beefd2b9065c9bf574a27029770ff2","integrity":"sha512-nl5+LMFwy1uTa6ZBXPw5y33ycfRlh/PKKknJVHl0EJbgzzEQMS5YB1Y6V+ln6+fQu6kaL0Umcn2IzoVn1Gokvg==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0-pre.3.tgz","fileCount":26,"unpackedSize":45828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCuhgkinKHPC6h+IXCD8dSyP04/ubdQvGhKMtHoVCEFvgIhAPVXogLeR6tHpQEl5KTBBPl/SDRnpNLEDTR2kMKrGzen"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjcDyTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6kA//S8G0a5730M980L+Sb1Ekw6+Gu8gQ0ya3slPLMS4kHco5c44H\r\ncb4B/+0M7dwBEv0VR9lx3hlIcTxwASnkcKbe6VOTPkY2sVrSoW1r8Vnpu1BP\r\ngBeJd/lSEYNOL3pF0UJus2XE/QurPXSuBiri8pj5ARlUBTVvwZxGm/h7jnfh\r\nLza5uO1csqbwFs7EKKDaSGqMo7sBapuNamE1fgzH15CISsYjgTkfsYkF1cqt\r\nUWcz6SKVM3R410y+sDugu9iUg9Kthuvo2ueuLv/j2dD8Q3iCpAowMGqTIHNy\r\nS8e4vSKpyr0O2sVUb4UOi4pPyK+4M1BlyiEprB06RD7/99CWDY6MabtHttXJ\r\n5OZVBincZmfO9ECzvGDrYnrtEmQDip8qFiCIW5SMFCFfRBuAs2yjxugPBrDJ\r\nJJAP1aAkgfo3XLIFIjNy3lvYzFbfuhAsyAhokO0HuUjqahqcgHnpcBLVjALa\r\nOixQ1DXtldKfAxWymgy5APeMKGHWfcwOCNGduYKz+fqllXptylJmQtK1gIt+\r\nOz3ra2eH/jsWj1nGKE1Rs/HCUKXnb6d7n5XTTMb/oOa0bnVC77EwqhxXShXP\r\ni438jSGyR7RVRt/IKVG9SRfU36AgNV9IgltjEASYx8Oqr9mV6O20L0ASL+r4\r\nZWraEwFUSXPy3G5ISmowcXoabzmpM1Af5SY=\r\n=202v\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.10.0-pre.3_1668299922942_0.8973097391256062"},"_hasShrinkwrap":false},"0.10.0-pre.4":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.10.0-pre.4","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.10.0-pre.4","@polywrap/ens-resolver-plugin-js":"0.10.0-pre.4","@polywrap/ethereum-plugin-js":"0.10.0-pre.4","@polywrap/fs-plugin-js":"0.10.0-pre.4","@polywrap/fs-resolver-plugin-js":"0.10.0-pre.4","@polywrap/http-plugin-js":"0.10.0-pre.4","@polywrap/http-resolver-plugin-js":"0.10.0-pre.4","@polywrap/ipfs-plugin-js":"0.10.0-pre.4","@polywrap/ipfs-resolver-plugin-js":"0.10.0-pre.4","@polywrap/logger-plugin-js":"0.10.0-pre.4","@polywrap/uri-resolver-extensions-js":"0.10.0-pre.4","@polywrap/uri-resolvers-js":"0.10.0-pre.4"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.1.6"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"readmeFilename":"README.md","readme":"# PolywrapClient Config Builder\n\nA DSL for building the PolywrapClient config object. \n\nSupports building configs using method chaining or imperatively.\n\n```typescript=\nimport { ClientConfigBuilder } from \"@polywrap/client-config-builder-js\";\nimport { PolywrapClient } from \"@polywrap/client-js\";\n\nconst config = new ClientConfigBuilder()\n  .add({\n    envs: [/*...*/],\n    interfaces: [/*...*/],\n    redirects: [/*...*/],\n    wrappers: [/*...*/],\n    packages: [/*...*/],\n    resolvers: [/*...*/],\n  })\n  .add({/*...*/})\n  .build();\n\n// ...\n\nconst builder = new ClientConfigBuilder();\n\nbuilder.addDefaults();\n\nbuilder.add({\n  packages: [/*...*/]\n});\n\nbuilder.add({\n  envs: [/*...*/]\n});\n\nconst config = builder.build();\n\n\n// ...\n\nlet client = new PolywrapClient(config);\n```\n\n## Methods\n\nThe config builder currently supports 3 methods:\n\n#### `add(config: Partial<ClientConfig>)`\nAppends each property of the supplied config object to the corresponding array of the builder's config.\n\n#### `addDefaults()`\nAdds the `defaultClientConfig` object.\n\n#### `build()`\nReturns a sanitized config object from the builder's config.\n","_id":"@polywrap/client-config-builder-js@0.10.0-pre.4","dist":{"shasum":"18123d968ae03dce4c022a8c1e731e3551f4540c","integrity":"sha512-M/v591Ikp0Rrkefn91h+/SC67p239TS89K17cnFRhcpgElDUY6KCrG6iu3x/zpZ70cAcxMKLkbZ1Wb3ai4Ozqw==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0-pre.4.tgz","fileCount":26,"unpackedSize":45705,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIDh3wsfQKS0YPNwZAgy0r9JaPC+nGC6Ia4o+BK7mNvQIgVyscykMot3YrCUCTuXtLyFqHdzNl9H+Xluy7l5N+Ux8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdSrRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrWXA//RFqAIH9P19AxWhxgRgDMQ1aAPxEMPyF9D2Rl/fFT7A2nA5xo\r\n/Z9/HNnSCQEM+MU9XBlA+ISr9oANJODYBFP/9q2g9KUtPQeQK6pf5TQ2yLdV\r\naV/1ifxPaxwfWvBpMkV4F8bKLdFjN6ikuVknxzcw1pzOfAU4UJio2iTLLExw\r\naxBtxe90EdgDTd0Jr6JYm/lRr4UQDEvJjK5lMvJOJrj0iZ70jqHZRvEztOcA\r\nbMNzt4jMlaNBvuJf6URVfAEFk2tm6kp4IbmObtNeRYc5o41+4F96h06AWqKN\r\nLbjKrtNevih8PI2X8bLBhj+o33nR4iPNhjFG5p4CzpNbQGpg0aK2hbsD/f92\r\nmrMHAs6pQsAgYWzgWjpzceB85tfJHhcL0d1GTSV4ZUcbWJQuEMrVl3c2ptYI\r\nF1DfSKbDHxyxOMT0vCvyVYcN0GAluYj3aO+hJJpu6ouckbwmZrTqT19NmToR\r\nxzCnS2XFwKJQjIf3Ng4ly5hPtr+9+63KVoGvpPPrD/27QDK5jSXprG6ADBmp\r\ne+u9mlvYkPVk+eCEqlWzJgV26SYvc5ntc4IHuSBT/8xSqc2so43KgUWOcHwm\r\nh4a3fQesHStahRDvuxb0haoKcK/Il7wycUoudfR2GSrJP81CSXtcASEbZ28r\r\n5tTRahQ/H+/Qc3Gg8p+dHzd1IUTLwH6zt7E=\r\n=blTt\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.10.0-pre.4_1668623056797_0.08547267203551567"},"_hasShrinkwrap":false},"0.10.0-pre.5":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.10.0-pre.5","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.10.0-pre.5","@polywrap/ens-resolver-plugin-js":"0.10.0-pre.5","@polywrap/ethereum-plugin-js":"0.10.0-pre.5","@polywrap/fs-plugin-js":"0.10.0-pre.5","@polywrap/fs-resolver-plugin-js":"0.10.0-pre.5","@polywrap/http-plugin-js":"0.10.0-pre.5","@polywrap/http-resolver-plugin-js":"0.10.0-pre.5","@polywrap/ipfs-plugin-js":"0.10.0-pre.5","@polywrap/ipfs-resolver-plugin-js":"0.10.0-pre.5","@polywrap/logger-plugin-js":"0.10.0-pre.5","@polywrap/uri-resolver-extensions-js":"0.10.0-pre.5","@polywrap/uri-resolvers-js":"0.10.0-pre.5"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.1.6"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"readmeFilename":"README.md","readme":"# PolywrapClient Config Builder\n\nA DSL for building the PolywrapClient config object. \n\nSupports building configs using method chaining or imperatively.\n\n```typescript=\nimport { ClientConfigBuilder } from \"@polywrap/client-config-builder-js\";\nimport { PolywrapClient } from \"@polywrap/client-js\";\n\nconst config = new ClientConfigBuilder()\n  .add({\n    envs: [/*...*/],\n    interfaces: [/*...*/],\n    redirects: [/*...*/],\n    wrappers: [/*...*/],\n    packages: [/*...*/],\n    resolvers: [/*...*/],\n  })\n  .add({/*...*/})\n  .build();\n\n// ...\n\nconst builder = new ClientConfigBuilder();\n\nbuilder.addDefaults();\n\nbuilder.add({\n  packages: [/*...*/]\n});\n\nbuilder.add({\n  envs: [/*...*/]\n});\n\nconst config = builder.build();\n\n\n// ...\n\nlet client = new PolywrapClient(config);\n```\n\n## Methods\n\nThe config builder currently supports 3 methods:\n\n#### `add(config: Partial<ClientConfig>)`\nAppends each property of the supplied config object to the corresponding array of the builder's config.\n\n#### `addDefaults()`\nAdds the `defaultClientConfig` object.\n\n#### `build()`\nReturns a sanitized config object from the builder's config.\n","_id":"@polywrap/client-config-builder-js@0.10.0-pre.5","dist":{"shasum":"82a5a0c6dc6d6ac80f74ba52c90bb2ca8ed6c97a","integrity":"sha512-fC5mwyF1AJ3lkQVQmpeRJudqdGy8S5ObmHJ2FqBMkRYQyJoOOoqowZIvXgnHYm3fDIScxXsPUlFrbDdtYMAuCA==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0-pre.5.tgz","fileCount":26,"unpackedSize":45705,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBFAfP2M5t/s5Alx+Gu+IB+T7asvs36Sw0SSuQDlgmzMAiEAtCWnoV+YmO8OYya0f1V9SVaUMBy3k5zAqeLDj+cjuuk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfFS0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpVOg//Ysx3LqSy5IpaLFcHce6I5a3qJHE+tGxYvwmPhos+a2wJWn53\r\nAJL6Alc+6S4BZREhLaEX/k2uYeOuSLHVh6wRbPZ8SnQAdVTBSoDaoe3auh7P\r\n35Hfg5lbIKIvUJcxo8GycHZnrJSdq0plZLBtTGY50p+K1GyuomVJgD8r3LwN\r\ng2HQ2xJoy8bFyDIfWV4+FaSRGQaGL94izdeY8ZdJvyAihrFloH1lzEKF+/B5\r\nsbtMSPYE/spD6WEkYupNskvrYbav2uymocif2fwqjHVveozDaLh68ak09oNq\r\nEOwGwIClpn9coSnl1NVm4T+WUTwnq9hySxme1CPduQwmVgT7Ee0BaztqaULB\r\nglaGNrp12HTCdiaKlBtD9klHyttQBtDFrneWU5Kjqp6gkgPUKJ1/GIHpyOAN\r\ndrXmaVYThvpu2noZjsu0TFGDIMmBohLjW/hkcUDRsdUTJl0u1thKZWNgM7Ae\r\nglkNj7P0STRCC7FUUETCeXFrErjBdOr7Bq+DYWASDjXaxkxoPQfUQosmhtbs\r\nybxs81lbkSmUZQt53ox0BypnNe087y/c3qqBLDOCQwObQXO00AViJWGHVk/V\r\nZByHf+hfJoxIMLR8UBAYPgkTUFT9PEQQM4/m+uxLfGuz9tdJezukXBqeZU+0\r\n+yW/PPNx+OHcIfF1thMqDvZiMjNRWxgEqxk=\r\n=5gVK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.10.0-pre.5_1669092532545_0.5634730679763471"},"_hasShrinkwrap":false},"0.10.0-pre.6":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.10.0-pre.6","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.10.0-pre.6","@polywrap/ens-resolver-plugin-js":"0.10.0-pre.6","@polywrap/ethereum-plugin-js":"0.10.0-pre.6","@polywrap/fs-plugin-js":"0.10.0-pre.6","@polywrap/fs-resolver-plugin-js":"0.10.0-pre.6","@polywrap/http-plugin-js":"0.10.0-pre.6","@polywrap/http-resolver-plugin-js":"0.10.0-pre.6","@polywrap/ipfs-plugin-js":"0.10.0-pre.6","@polywrap/ipfs-resolver-plugin-js":"0.10.0-pre.6","@polywrap/logger-plugin-js":"0.10.0","@polywrap/uri-resolver-extensions-js":"0.10.0-pre.6","@polywrap/uri-resolvers-js":"0.10.0-pre.6","concurrent-plugin-js":"0.1.1"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.1.6"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"readmeFilename":"README.md","readme":"# PolywrapClient Config Builder\n\nA DSL for building the PolywrapClient config object. \n\nSupports building configs using method chaining or imperatively.\n\n```typescript=\nimport { ClientConfigBuilder } from \"@polywrap/client-config-builder-js\";\nimport { PolywrapClient } from \"@polywrap/client-js\";\n\nconst config = new ClientConfigBuilder()\n  .add({\n    envs: [/*...*/],\n    interfaces: [/*...*/],\n    redirects: [/*...*/],\n    wrappers: [/*...*/],\n    packages: [/*...*/],\n    resolvers: [/*...*/],\n  })\n  .add({/*...*/})\n  .build();\n\n// ...\n\nconst builder = new ClientConfigBuilder();\n\nbuilder.addDefaults();\n\nbuilder.add({\n  packages: [/*...*/]\n});\n\nbuilder.add({\n  envs: [/*...*/]\n});\n\nconst config = builder.build();\n\n\n// ...\n\nlet client = new PolywrapClient(config);\n```\n\n## Methods\n\nThe config builder currently supports 3 methods:\n\n#### `add(config: Partial<ClientConfig>)`\nAppends each property of the supplied config object to the corresponding array of the builder's config.\n\n#### `addDefaults()`\nAdds the `defaultClientConfig` object.\n\n#### `build()`\nReturns a sanitized config object from the builder's config.\n","_id":"@polywrap/client-config-builder-js@0.10.0-pre.6","dist":{"shasum":"1e24ed932c86531b77836c5d948a22374a78e9f2","integrity":"sha512-qZaJN5RkOTT7+QRh9AWEYDr6zLpK6fVCprb8DXNnBB5NIiJ6TcdyUx6mp/aJrFSI7a8/6j0aVb8j6YPownl7yw==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0-pre.6.tgz","fileCount":26,"unpackedSize":46853,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICS+SWE3/fKSyyPlPap8uriptVFsSKqeezZcERKdsMoVAiBUfNZKmAdIzm6gcI+UrAY9P+sC4LheF2DcgEKO2kw4Hg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjoT1HACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrg7w//Q1T1+fuh4f+Eu6tt9ym46W18RCRDJooyeS8fQrWdT5VIUD38\r\nO7x3GptNLi+lqUCOvRRSg/PiOwwSoY9sG9ul1Ouj/IVljlupUcsTrNtIn5aO\r\nMf6aySkm7HBGcUg/j8DAyXv5B4BDBkAcVwxH93odJXUFowyb9Bd+xdEtHont\r\nC/VAH2O1wDI46rNsAHP+EC1Yi++Kw5+z2xFxxo3IRFqgomxr0W11DaQXtH4O\r\np/kKScVumxVkmSNLEQ3wM0/jeW9nAU3H2DJxJvGTBWEXAWqhEB28lAvUppIG\r\n2W6G3WYJhN+HwI3m3Lqjv77/kJ88TI4Z9pCx0EIZHWl38Wu0YUI7GBlSdd9Q\r\nMrs64ZizhpXy3mzxhkKr1BY8CFcOQEz/zTzIvb2lrp53tIx1r+4J7HDpQTQR\r\n/8v+WnyBXu0eB8XLtyy8qcSv83PK8v5/KXk4ral0x4RiURdKX1EPSOP+JYBQ\r\nMl9+qLhXqKhtV6BVZFL4a7qVaVBCmbkL8YFv9VBOL3SdkO0LfPkuL29SUe95\r\n+CFYS7JBdXss7GPlkddDzUHP11BIq0U/c+v6zpOfuUyROPxQCN0s0iT00k5U\r\nhRa1qlcDoXUbX3o+W8rllTi+UkkqdrKHo5ZcXKpQMtjv0+evabzGZpFEBAnP\r\nHRCFr2OmWJ/BHvEw+0zuxCJJ9+zyg43SeBg=\r\n=OQEP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.10.0-pre.6_1671511367085_0.44637445758342587"},"_hasShrinkwrap":false},"0.10.0-pre.7":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.10.0-pre.7","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.10.0-pre.7","@polywrap/ens-resolver-plugin-js":"0.10.0-pre.7","@polywrap/ethereum-plugin-js":"0.10.0-pre.7","@polywrap/fs-plugin-js":"0.10.0-pre.7","@polywrap/fs-resolver-plugin-js":"0.10.0-pre.7","@polywrap/http-plugin-js":"0.10.0-pre.7","@polywrap/http-resolver-plugin-js":"0.10.0-pre.7","@polywrap/ipfs-plugin-js":"0.10.0-pre.7","@polywrap/ipfs-resolver-plugin-js":"0.10.0-pre.7","@polywrap/logger-plugin-js":"0.10.0","@polywrap/uri-resolver-extensions-js":"0.10.0-pre.7","@polywrap/uri-resolvers-js":"0.10.0-pre.7","concurrent-plugin-js":"0.1.1"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.1.6"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"readmeFilename":"README.md","readme":"# PolywrapClient Config Builder\n\nA DSL for building the PolywrapClient config object. \n\nSupports building configs using method chaining or imperatively.\n\n```typescript=\nimport { ClientConfigBuilder } from \"@polywrap/client-config-builder-js\";\nimport { PolywrapClient } from \"@polywrap/client-js\";\n\nconst config = new ClientConfigBuilder()\n  .add({\n    envs: [/*...*/],\n    interfaces: [/*...*/],\n    redirects: [/*...*/],\n    wrappers: [/*...*/],\n    packages: [/*...*/],\n    resolvers: [/*...*/],\n  })\n  .add({/*...*/})\n  .build();\n\n// ...\n\nconst builder = new ClientConfigBuilder();\n\nbuilder.addDefaults();\n\nbuilder.add({\n  packages: [/*...*/]\n});\n\nbuilder.add({\n  envs: [/*...*/]\n});\n\nconst config = builder.build();\n\n\n// ...\n\nlet client = new PolywrapClient(config);\n```\n\n## Methods\n\nThe config builder currently supports 3 methods:\n\n#### `add(config: Partial<ClientConfig>)`\nAppends each property of the supplied config object to the corresponding array of the builder's config.\n\n#### `addDefaults()`\nAdds the `defaultClientConfig` object.\n\n#### `build()`\nReturns a sanitized config object from the builder's config.\n","_id":"@polywrap/client-config-builder-js@0.10.0-pre.7","dist":{"shasum":"b9931a6d20f8f989d5d35376a3886f218f13e711","integrity":"sha512-B/9pbbTVD7Xh+Nq9NtqA9AnGdKOq63oC7OC7KDPtOAy7bQXQLSwIRf4pakVEoWkdG0nxN7tY2/aO6f0HVoEYjA==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0-pre.7.tgz","fileCount":26,"unpackedSize":48548,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4SCIJ3E9S87dl72Wt8NUBDIvuk9h9UjevBQCGt+anaAIhAPmEdSKU0M4J8h3R05x9QvHJJ/zTx1Lzgr1OI/mcrSBL"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvhv0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpdAA/+LZlWLWu9Zzta/xHydLzduFxzjFqfhrK9x/I4zrdSASgytMk2\r\n11bLxUvYRFDSuPpjBGZSUSKP6PukwPq7ic3we3SZWtofo95m8977WKlJOzml\r\nmpLd5Nrc9ER6ffpx5GCdNwg5HsD9Ydp9JhX/Bn8ylPFZKMUvMdKLFgBj3ASS\r\nnD5JbUlX6xqk9DhXdpCl6KvyYgc/CBfiMAuw8TZeeMkGIhkLYxZqsEyb1udb\r\neCF89igBUww3UXpIWunsiLp76ZDt1CIu/9sVedzqjCxDIpFlhrX7GvdNN8s4\r\nBWUc94tv0bCOOHQzVMWuYNplib9AQuoadMoR7IEwYNMvsQPU0N6HcTn06cvw\r\n6nSsAaD2bJb6o1GIWaqrnOvl2FBNXI1uYt7oa8fxNMJFdf/n/+/tqlM+lj2+\r\nIaMHup7gqPktRJ1xOEmJmzQZrCvKMx91smvUWRh0AaOoOK5WqcAxbTsf4OFl\r\ni9GtlrrrCM7CyonZ5BOZ9tLxHnfAld6eTLwzD6Nh/msSzC2XdT+hebJXpuVR\r\n/yCjyI1jMVV+tYn0kfYEIgXlwpcmW4aX+OKODCTI96fzagKSWpsMixFkg2Xg\r\nRlzZ5c7CH5SwEPCBFRW8xoCfVIZZx8/IanBGzgcuMDxveGZOIWYOQZ9hgBlK\r\n8YKPzATO9LQOTszqcqfnH0rujzhrMxuSipQ=\r\n=y56P\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.10.0-pre.7_1673403380227_0.1741261214731047"},"_hasShrinkwrap":false},"0.9.5":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.9.5","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.9.5","@polywrap/ens-resolver-plugin-js":"0.9.5","@polywrap/ethereum-plugin-js":"0.9.5","@polywrap/fs-plugin-js":"0.9.5","@polywrap/fs-resolver-plugin-js":"0.9.5","@polywrap/http-plugin-js":"0.9.5","@polywrap/http-resolver-plugin-js":"0.9.5","@polywrap/ipfs-plugin-js":"0.9.5","@polywrap/ipfs-resolver-plugin-js":"0.9.5","@polywrap/logger-plugin-js":"0.9.5","@polywrap/tracing-js":"0.9.5","@polywrap/uri-resolver-extensions-js":"0.9.5","@polywrap/uri-resolvers-js":"0.9.5","@polywrap/wasm-js":"0.9.5","@polywrap/wrap-manifest-types-js":"0.9.5"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.1.6"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"_id":"@polywrap/client-config-builder-js@0.9.5","dist":{"shasum":"216ca23fbcdc1d8d0088b4fe53f85872cd72ace3","integrity":"sha512-Yaln+LchY108tRpmtEUyVE7z3+kGt6Kv6kKrT8tAdUJCfT015QNAcNd/oMWV70tpQhiC54VpP3kCnxTkFGRPJA==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.9.5.tgz","fileCount":17,"unpackedSize":33688,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmdiVGN5gDbK05zmuVrzXgp8PG77FCDotS+i62bYD58wIhANrCNrWy7+zWKqOGo8WST216LrNDPYXbjOR6Hq96pejd"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5tI4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqU4w/9FnOzYXTJM4i7eIAqhlGF1MsOoTHC82h+LR6pTtNI9nXzSKfU\r\nisxhEXUcPI1UI8iuK6Cx3+umKs+AzAGt2H7WF4PMMX8Z4gM7G4V+xAuMdHwn\r\nh0z1yFIvQyEXbFSrDCwDAYxO1t5stRMrMWy2MZ37EjOLTjwBuBUzSMnQI1DB\r\nt7+mYONC2PMRD6OlTJbDN42Y7Cfuiqs40gGpKOgzL2tj497IFb/e7NAr/lql\r\nbtPKNpO0YyMeFDbQD6czV+XaE3b0ILuZ4kFomk9pSsWrzAS2N4jbhl2l/MfX\r\nkMMZYKYD8y4Gezjgm6SM3Xs5a63XDlVh2uO8U4UE+3WB4omgJSboBqyaz3Jm\r\na8C+xMhHUBi5RybvEKApnuyyZd7SddNFAToF96HKHosgGoDEln6UuJ8V+wJA\r\nIFYDyBofOhHQm4BZj5maya722KLX2vWXR6i0UzsSirZjM/U5kOpXe4s5DtF9\r\nKnHALsQW6ED2/0EVvBKCMpvw8CkNOL04g/9ftk5FJy61HD/QyctwXV+9nkHt\r\nu5EnSsO/kUjaBsU1H1U/dOM/DDQyFGAoORJqtUDNLEaS1VzGuCTGy5X53vEs\r\n/YikSCKsFeQhRZeS82yWBHcRVlUp/rpQhZ4WNVo8K+D3XVmwMXt0g6+2mRYY\r\ndj91qfIfIalt8M/pY4ozU+iT0YGKqw6Im/w=\r\n=YNMM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.9.5_1676071480089_0.9718039366303757"},"_hasShrinkwrap":false},"0.10.0-pre.8":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.10.0-pre.8","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"yarn embed:wrappers && yarn build:fast && yarn build:snippets && yarn build:readme","build:fast":"rimraf ./build && tsc --project tsconfig.build.json","embed:wrappers":"ts-node ./scripts/embed-wrappers.ts","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose","build:snippets":"tsc --project ./examples/tsconfig.examples.json","build:readme":"yarn doc-snippets combine"},"dependencies":{"@polywrap/core-js":"0.10.0-pre.8","@polywrap/ens-resolver-plugin-js":"0.10.0-pre.8","@polywrap/ethereum-plugin-js":"0.10.0-pre.8","@polywrap/fs-plugin-js":"~0.10.0-pre","@polywrap/fs-resolver-plugin-js":"0.10.0-pre.8","@polywrap/http-plugin-js":"~0.10.0-pre","@polywrap/http-resolver-plugin-js":"0.10.0-pre.8","@polywrap/ipfs-plugin-js":"~0.10.0-pre","@polywrap/ipfs-resolver-plugin-js":"~0.10.0-pre","@polywrap/logger-plugin-js":"0.10.0","@polywrap/uri-resolver-extensions-js":"0.10.0-pre.8","@polywrap/uri-resolvers-js":"0.10.0-pre.8","@polywrap/wasm-js":"0.10.0-pre.8","base64-to-uint8array":"1.0.0","concurrent-plugin-js":"0.1.2"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","doc-snippets":"~1.0.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.1.6"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"doc-snippets":{"extract":{"include":["./src/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}","./examples/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}"],"ignore":["./**/node_modules/**","./**/.polywrap/**","./**/__tests__/**"],"dir":"./"},"inject":{"dir":"./readme","include":"./README.md"},"startTokens":[{"pattern":"$start: ","inline":false},{"pattern":"/* $: {SNIPPET_NAME} */","inline":true}],"endTokens":[{"pattern":"$end","inline":false},{"pattern":"/* $ */","inline":true}],"outputDir":"./"},"readmeFilename":"README.md","readme":"# PolywrapClient Config Builder\n\nA utility class for building the PolywrapClient config. \n\nSupports building configs using method chaining or imperatively.\n\n## Quickstart\n\n### Initialize\n\nInitialize a ClientConfigBuilder using the [constructor](#constructor)\n\n```typescript\n  // start with a blank slate (typical usage)\n  const builder = new ClientConfigBuilder();\n```\n\n### Configure\n\nAdd client configuration with [add](#add), or flexibly mix and match builder [configuration methods](#addwrapper) to add and remove configuration items.\n\n```typescript\n  // add multiple items to the configuration using the catch-all `add` method\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add or remove items by chaining method calls\n  builder\n    .addPackage(\"wrap://plugin/package\", httpPlugin({}))\n    .removePackage(\"wrap://plugin/package\")\n    .addPackages(\n      {\n        \"wrap://plugin/http\": httpPlugin({}),\n        \"wrap://plugin/filesystem\": fileSystemPlugin({}),\n      }\n    );\n```\n\nYou can add the entire [default client configuration bundle](#bundle--defaultconfig) at once with [addDefaults](#adddefaults)\n\n```typescript\n  builder.addDefaults();\n```\n\n### Build\n\nFinally, build a ClientConfig or CoreClientConfig to pass to the PolywrapClient constructor.\n\n```typescript\n  // accepted by either the PolywrapClient or the PolywrapCoreClient\n  let coreClientConfig = builder.build();\n\n  // build with a custom cache\n  coreClientConfig = builder.build({\n    wrapperCache: new WrapperCache(),\n  });\n\n  // or build with a custom resolver\n  coreClientConfig = builder.build({\n    resolver: RecursiveResolver.from([]),\n  });\n```\n\n### Example\n\nA complete example using all or most of the available methods.\n\n```typescript=\n  // init\n  const builder = new ClientConfigBuilder();\n\n  // add the default bundle first to override its entries later\n  builder.addDefaults();\n\n  // add many config items at once\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add and remove wrappers\n  builder\n    .addWrapper(\"wrap://ens/wrapper.eth\", await WasmWrapper.from(\n      new Uint8Array([1, 2, 3]),\n      new Uint8Array([1, 2, 3])\n    ))\n    .removeWrapper(\"wrap://ens/wrapper.eth\")\n    .addWrappers({\n      \"wrap://ens/wrapper.eth\": await WasmWrapper.from(\n          new Uint8Array([1, 2, 3]),\n          new Uint8Array([1, 2, 3])\n      )}\n    );\n\n  // add and remove wrap packages\n  builder\n    .addPackage(\"wrap://plugin/package\", httpPlugin({}))\n    .removePackage(\"wrap://plugin/package\")\n    .addPackages({\n      \"wrap://plugin/package\": httpPlugin({})\n    })\n\n  // add and remove Envs\n  builder\n    .addEnv(\"wrap://ens/wrapper.eth\", { key: \"value\" })\n    .removeEnv(\"wrap://ens/wrapper.eth\")\n    .addEnvs({\n      \"wrap://ens/wrapper.eth\": { key: \"value\" },\n    });\n\n  // override existing Env, or add new Env if one is not registered at URI\n  builder.setEnv(\"wrap://ens/wrapper.eth\", { key: \"value\" });\n\n  // add or remove registration for an implementation of an interface\n  builder\n    .addInterfaceImplementation(\n      \"wrap://ens/interface.eth\",\n      \"wrap://ens/wrapper.eth\"\n    )\n    .removeInterfaceImplementation(\n      \"wrap://ens/interface.eth\",\n      \"wrap://ens/wrapper.eth\"\n    )\n    .addInterfaceImplementations(\"wrap://ens/interface.eth\", [\n      \"wrap://ens/wrapper.eth\",\n    ]);\n\n  // add or remove URI redirects\n  builder\n    .addRedirect(\"wrap://ens/from.eth\", \"wrap://ens/to.eth\")\n    .removeRedirect(\"wrap://ens/from.eth\")\n    .addRedirects({\n       \"wrap://ens/from.eth\": \"wrap://ens/to.eth\",\n    });\n\n  // add resolvers\n  builder.addResolver(RecursiveResolver.from([]));\n  builder.addResolvers([]);\n\n  // build\n  const clientConfig = builder.build();\n```\n\n# Reference\n\n## ClientConfigBuilder\n\n### Constructor\n```ts\n  /**\n   * Instantiate a ClientConfigBuilder\n   */\n  constructor() \n```\n\n### add\n```ts\n  /**\n   * Add a partial BuilderConfig\n   * This is equivalent to calling each of the plural add functions: `addEnvs`, `addWrappers`, etc.\n   *\n   * @param config: a partial BuilderConfig\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  add(config: Partial<BuilderConfig>): IClientConfigBuilder;\n```\n\n### addWrapper\n```ts\n  /**\n   * Add an embedded wrapper\n   *\n   * @param uri: uri of wrapper\n   * @param wrapper: wrapper to be added\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addWrapper(uri: string, wrapper: Wrapper): IClientConfigBuilder;\n```\n\n### addWrappers\n```ts\n  /**\n   * Add one or more embedded wrappers.\n   * This is equivalent to calling addWrapper for each wrapper.\n   *\n   * @param uriWrappers: an object where keys are uris and wrappers are value\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addWrappers(uriWrappers: Record<string, Wrapper>): IClientConfigBuilder;\n```\n\n### removeWrapper\n```ts\n  /**\n   * Remove an embedded wrapper\n   *\n   * @param uri: the wrapper's URI\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeWrapper(uri: string): IClientConfigBuilder;\n```\n\n### addPackage\n```ts\n  /**\n   * Add an embedded wrap package\n   *\n   * @param uri: uri of wrapper\n   * @param wrapPackage: package to be added\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addPackage(uri: string, wrapPackage: IWrapPackage): IClientConfigBuilder;\n```\n\n### addPackages\n```ts\n  /**\n   * Add one or more embedded wrap packages\n   * This is equivalent to calling addPackage for each package\n   *\n   * @param uriPackages: an object where keys are uris and packages are value\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addPackages(uriPackages: Record<string, IWrapPackage>): IClientConfigBuilder;\n```\n\n### removePackage\n```ts\n  /**\n   * Remove an embedded wrap package\n   *\n   * @param uri: the package's URI\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removePackage(uri: string): IClientConfigBuilder;\n```\n\n### addEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is modified.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the env variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addEnv(uri: string, env: Record<string, unknown>): IClientConfigBuilder;\n```\n\n### addEnvs\n```ts\n  /**\n   * Add one or more Envs\n   * This is equivalent to calling addEnv for each Env\n   *\n   * @param uriEnvs: and object where key is the uri and value is the another object with the env variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addEnvs(\n    uriEnvs: Record<string, Record<string, unknown>>\n  ): IClientConfigBuilder;\n```\n\n### removeEnv\n```ts\n  /**\n   * Remove an Env\n   *\n   * @param uri: the URI associated with the Env\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeEnv(uri: string): IClientConfigBuilder;\n```\n\n### setEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is replaced.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the environment variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  setEnv(uri: string, env: Record<string, unknown>): IClientConfigBuilder;\n```\n\n### addInterfaceImplementation\n```ts\n  /**\n   * Register an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): IClientConfigBuilder;\n```\n\n### addInterfaceImplementations\n```ts\n  /**\n   * Register one or more implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUris: a list of URIs for the implementations\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementations(\n    interfaceUri: string,\n    implementationUris: Array<string>\n  ): IClientConfigBuilder;\n```\n\n### removeInterfaceImplementation\n```ts\n  /**\n   * Remove an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): IClientConfigBuilder;\n```\n\n### addRedirect\n```ts\n  /**\n   * Add a redirect from one URI to another\n   *\n   * @param from: the URI to redirect from\n   * @param to: the URI to redirect to\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addRedirect(from: string, to: string): IClientConfigBuilder;\n```\n\n### addRedirects\n```ts\n  /**\n   * Add an array of URI redirects\n   *\n   * @param redirects: an object where key is from and value is to\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addRedirects(redirects: Record<string, string>): IClientConfigBuilder;\n```\n\n### removeRedirect\n```ts\n  /**\n   * Remove a URI redirect\n   *\n   * @param from: the URI that is being redirected\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeRedirect(from: string): IClientConfigBuilder;\n```\n\n### addResolver\n```ts\n  /**\n   * Add a URI Resolver, capable of resolving a URI to a wrapper\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolver: A UriResolverLike\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addResolver(resolver: UriResolverLike): IClientConfigBuilder;\n```\n\n### addResolvers\n```ts\n  /**\n   * Add one or more URI Resolvers, capable of resolving URIs to wrappers\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolvers: A list of UriResolverLike\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addResolvers(resolvers: UriResolverLike[]): IClientConfigBuilder;\n```\n\n### addDefaults\n```ts\n  /**\n   * Add the default configuration bundle\n   *\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addDefaults(): IClientConfigBuilder;\n```\n\n### build\n```ts\n  /**\n   * Build a sanitized core client configuration that can be passed to the PolywrapClient or PolywrapCoreClient constructors\n   *\n   * @returns CoreClientConfig that results from applying all the steps in the builder pipeline\n   */\n  build(): CoreClientConfig;\n```\n\n## Bundles\n\n### Bundle: DefaultConfig\n```ts\nexport const defaultIpfsProviders = [\n  \"https://ipfs.wrappers.io\",\n  \"https://ipfs.io\",\n];\n\nexport const defaultEmbeddedPackages = {\n  ipfsHttpClient: (): IWrapPackage => ipfsHttpClient.wasmPackage,\n  ipfsResolver: (): IWrapPackage => ipfsResolver.wasmPackage,\n};\n\nexport const defaultWrappers = {\n  sha3: \"wrap://ens/wrappers.polywrap.eth:sha3@1.0.0\",\n  uts46: \"wrap://ens/wrappers.polywrap.eth:uts46@1.0.0\",\n  graphNode: \"wrap://ens/wrappers.polywrap.eth:graph-node@1.0.0\",\n  ensTextRecordResolver:\n    \"wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY\",\n};\n\nexport const defaultPackages = {\n  ensResolver: \"wrap://package/ens-resolver\",\n  ethereum: \"wrap://ens/ethereum.polywrap.eth\",\n  httpResolver: \"wrap://package/http-resolver\",\n  fileSystemResolver: \"wrap://package/fs-resolver\",\n  ipfsResolver: \"wrap://package/ipfs-resolver\",\n};\n\nexport const defaultInterfaces = {\n  concurrent: \"wrap://ens/wrappers.polywrap.eth:concurrent@1.0.0\",\n  logger: \"wrap://ens/wrappers.polywrap.eth:logger@1.0.0\",\n  http: \"wrap://ens/wrappers.polywrap.eth:http@1.1.0\",\n  fileSystem: \"wrap://ens/wrappers.polywrap.eth:file-system@1.0.0\",\n  ipfsHttpClient: \"wrap://ens/wrappers.polywrap.eth:ipfs-http-client@1.0.0\",\n};\n\nexport const getDefaultPackages = (): Record<string, IWrapPackage> => {\n  return {\n    [defaultInterfaces.ipfsHttpClient]: defaultEmbeddedPackages.ipfsHttpClient(),\n    [defaultPackages.ipfsResolver]: defaultEmbeddedPackages.ipfsResolver(),\n    // ENS is required for resolving domain to IPFS hashes\n    [defaultPackages.ensResolver]: ensResolverPlugin({}),\n    // Ethereum is required for resolving domain to Ethereum addresses\n    [defaultPackages.ethereum]: ethereumPlugin({\n      connections: new Connections({\n        networks: {\n          mainnet: new Connection({\n            provider:\n              \"https://mainnet.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n          }),\n          goerli: new Connection({\n            provider:\n              \"https://goerli.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n          }),\n        },\n      }),\n    }),\n    [defaultInterfaces.http]: httpPlugin({}),\n    [defaultPackages.httpResolver]: httpResolverPlugin({}),\n    [defaultInterfaces.logger]: loggerPlugin({}) as IWrapPackage,\n    [defaultInterfaces.fileSystem]: fileSystemPlugin({}),\n    [defaultPackages.fileSystemResolver]: fileSystemResolverPlugin({}),\n    [defaultInterfaces.concurrent]: concurrentPromisePlugin({}),\n  };\n};\n\nexport const getDefaultConfig = (): BuilderConfig => ({\n  envs: {\n    [defaultPackages.ipfsResolver]: {\n      provider: defaultIpfsProviders[0],\n      fallbackProviders: defaultIpfsProviders.slice(1),\n      retries: { tryResolveUri: 1, getFile: 1 },\n    },\n  },\n  interfaces: {\n    [ExtendableUriResolver.extInterfaceUri.uri]: new Set([\n      defaultPackages.ipfsResolver,\n      defaultPackages.ensResolver,\n      defaultPackages.fileSystemResolver,\n      defaultPackages.httpResolver,\n      defaultWrappers.ensTextRecordResolver,\n    ]),\n    [defaultInterfaces.logger]: new Set([defaultInterfaces.logger]),\n    [defaultInterfaces.concurrent]: new Set([defaultInterfaces.concurrent]),\n    [defaultInterfaces.ipfsHttpClient]: new Set([\n      defaultInterfaces.ipfsHttpClient,\n    ]),\n    [defaultInterfaces.fileSystem]: new Set([defaultInterfaces.fileSystem]),\n    [defaultInterfaces.http]: new Set([defaultInterfaces.http]),\n  },\n  redirects: {\n    // TODO: remove sha3 and uts46 redirects when ethereum wrapper is merged (used by updated ens wrapper)\n    \"wrap://ens/sha3.polywrap.eth\":\n      \"wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5\",\n    \"wrap://ens/uts46.polywrap.eth\":\n      \"wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB\",\n  },\n  wrappers: {},\n  packages: getDefaultPackages(),\n  resolvers: [],\n});\n```","_id":"@polywrap/client-config-builder-js@0.10.0-pre.8","dist":{"shasum":"2d6af1fbe42a5bce370d644d9833f6312ca1ea10","integrity":"sha512-QbnNc15DD2MVila+Ao9uiaqnFiXJ9HvgLPYbHTzpaxnTyUv4TlJT7gsmwtemcJPPqCGIWvIlml8UbJuVjmy3Aw==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0-pre.8.tgz","fileCount":45,"unpackedSize":648820,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhDOyAJ12QxHOYvruy6C6FdtmHRSUdrs4pQJ1/wXl1sAIgIXxK8tvm8XR0vIpgXH5R90Ubxx8/fzAkVQewXWDtNPc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7bUwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpN6Q//VNbWh5XKPZYjEkrxOc449e5eeOLJyeS62jrmV/utJxWdnIf9\r\n0dPYzjlk8CM5YtN+odNal2ycAE55/4TE6TokScbqTBfob6k1IWzzKVA7N3tH\r\nYjLd5Gl/olJfUdeDtR09c+jtnj+G6UaBZ1Jo2+ml5uMIpHtwN/KXa4ATrKrs\r\nX8Vs1VpFlrHPCYwOsAbfnaOItgzLpf0mfK3M41fe5UooCzrOvIDtJP6QkY7I\r\ne/3MekCWdJW1lyx4Hf2sYX/nhCmxChu002o3gbmFXo4wT4IZ3I2ahBzHF8i8\r\nyCySjjUWVrX8Xlxsd9GrU8CHRbcAEjgBnmmW6ECaEPJ9T45rPa/ckRR1w5Rv\r\nRgK7I5YxsFKxH5KAufp7sHItFqnS2lTHnwHvAEvaOm0c+h0KOMCqhpdjZPxt\r\niu7DWscl7WnJ4QpCSLxPiIKT0bo4hbX136v7N5uWMNmE6PYENeFcTuA6U1ax\r\nj2JI3mjzeTg1CkZijq3FMT8x2LbkSiD8v9Z9Ax/qfmfvJlPnNlEX+XxcYtSv\r\nMXChCrMUYICVJz6cNNcIiWc4fzurSaxQfhKJetKhtuQrNpWBjR2uGIDDhmO+\r\nYjVpnntV42bI7jBbTcGbCveEi+Jti5L43FBJ1OQ2OKMCTVbFOpdNywUK3O4f\r\nAhIc4+jhehaHCCvwRmYbFxxS2BeRAgpbZXM=\r\n=LTYt\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.10.0-pre.8_1676522799876_0.925882338456151"},"_hasShrinkwrap":false},"0.9.6":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.9.6","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.9.6","@polywrap/ens-resolver-plugin-js":"0.9.6","@polywrap/ethereum-plugin-js":"0.9.6","@polywrap/fs-plugin-js":"0.9.6","@polywrap/fs-resolver-plugin-js":"0.9.6","@polywrap/http-plugin-js":"0.9.6","@polywrap/http-resolver-plugin-js":"0.9.6","@polywrap/ipfs-plugin-js":"0.9.6","@polywrap/ipfs-resolver-plugin-js":"0.9.6","@polywrap/logger-plugin-js":"0.9.6","@polywrap/tracing-js":"0.9.6","@polywrap/uri-resolver-extensions-js":"0.9.6","@polywrap/uri-resolvers-js":"0.9.6","@polywrap/wasm-js":"0.9.6","@polywrap/wrap-manifest-types-js":"0.9.6"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.1.6"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"_id":"@polywrap/client-config-builder-js@0.9.6","dist":{"shasum":"77cda13c27a7f0dedae8e5d34ea7018f962ba050","integrity":"sha512-9hpZCCo51l2LlSJR7uP4d2bBmQorTvD03llczgi5Tai/NoEXQhsdXabNRJfnOdMKQtujulmeyL2BuBL2xwOKkA==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.9.6.tgz","fileCount":17,"unpackedSize":34041,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2cUDlI27h/dou4k9aaf1hf675FCz0Jz09ZLBaTsQHzgIhAKvBFkYuOhXBqDd+BA3GXpoWMnyYJDH7xuNYVvJPQye1"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj8dNxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpZUw/+KJqizW6R3JtAOsk/Z5ZxrDPVKa8i+3jcT1UgYGNixnsAy7aL\r\ngxD+oxe6PQOIWDpqmGcDy+2Sukr1Q3xBwOVfuuPCpzQV2tt1V026kU6S/ErH\r\n5F1S3tKe0ZsTbd/Co7v2LDXjZwqZP8X8e3slr2IBZPM2pM+x02JpLJlzKhsd\r\npn68hQeQ46PCk1j3vmNzURQyKZ4TAsbpaf2S4Xka17kXbHLIWekNfWrRAHRZ\r\nb1a06aXQzmjnI9GFEN0yQdHOzI0YGT5/STwYXLqfnq8ySXoVeVGKfxFMSq1C\r\nHWWV17D+wUx4s292VGLnqTZOImSo89VAtp0GbIIk1zjLZqRcEED1kfJLtr5Z\r\n6C0cegT4rkR6ObROAaTrOgFnTeNijbdqxcMDvPhlaK0d0SQAo4CShwsHeLd1\r\n62Q2pfdrGlti1TLsaXyIQ0ub701wH7Itra0l0q+5pPQsjiMsyge/lp6QRtZ2\r\nyviEHr9Q0tkxi8T6tPjSqCVeF++6E24XOiYnBapNRa6yUb8YRnm8B6fq0/YT\r\nNkNd8odanJAYMt4bvVuK5fn4iuShQAJL437C45J7iPAVMTLahl7f7/2Rs9rS\r\ng3+Cf2zaV07QFpxjG81Ny2UqCFIW//QXdDC6L0wAkAYqh65dg2FZrbXBy3Cd\r\n8DcZm6peVfKQiFmIUukXPGROBn5CiGDvGHw=\r\n=AlTc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.9.6_1676792689720_0.01002547971650758"},"_hasShrinkwrap":false},"0.10.0-pre.10":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.10.0-pre.10","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"yarn embed:wrappers && yarn build:fast && yarn build:snippets && yarn build:readme","build:fast":"rimraf ./build && tsc --project tsconfig.build.json","embed:wrappers":"ts-node ./scripts/embed-wrappers.ts","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose","build:snippets":"tsc --project ./examples/tsconfig.examples.json","build:readme":"yarn doc-snippets combine"},"dependencies":{"@polywrap/core-js":"0.10.0-pre.10","@polywrap/ens-resolver-plugin-js":"0.10.0-pre.10","@polywrap/fs-plugin-js":"~0.10.0-pre","@polywrap/fs-resolver-plugin-js":"0.10.0-pre.10","@polywrap/http-plugin-js":"~0.10.0-pre","@polywrap/http-resolver-plugin-js":"0.10.0-pre.10","@polywrap/ipfs-plugin-js":"~0.10.0-pre","@polywrap/ipfs-resolver-plugin-js":"~0.10.0-pre","@polywrap/logger-plugin-js":"0.10.0","@polywrap/uri-resolver-extensions-js":"0.10.0-pre.10","@polywrap/uri-resolvers-js":"0.10.0-pre.10","@polywrap/wasm-js":"0.10.0-pre.10","base64-to-uint8array":"1.0.0","concurrent-plugin-js":"0.1.2","ethereum-provider-js":"0.1.7"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","doc-snippets":"~1.0.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"10.9.1","typescript":"4.9.5"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"doc-snippets":{"extract":{"include":["./src/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}","./examples/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}"],"ignore":["./**/node_modules/**","./**/.polywrap/**","./**/__tests__/**"],"dir":"./"},"inject":{"dir":"./readme","include":"./README.md"},"startTokens":[{"pattern":"$start: ","inline":false},{"pattern":"/* $: {SNIPPET_NAME} */","inline":true}],"endTokens":[{"pattern":"$end","inline":false},{"pattern":"/* $ */","inline":true}],"outputDir":"./"},"readmeFilename":"README.md","readme":"# PolywrapClient Config Builder\n\nA utility class for building the PolywrapClient config. \n\nSupports building configs using method chaining or imperatively.\n\n## Quickstart\n\n### Initialize\n\nInitialize a ClientConfigBuilder using the [constructor](#constructor)\n\n```typescript\n  // start with a blank slate (typical usage)\n  const builder = new ClientConfigBuilder();\n```\n\n### Configure\n\nAdd client configuration with [add](#add), or flexibly mix and match builder [configuration methods](#addwrapper) to add and remove configuration items.\n\n```typescript\n  // add multiple items to the configuration using the catch-all `add` method\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add or remove items by chaining method calls\n  builder\n    .addPackage(\"wrap://plugin/package\", httpPlugin({}) as IWrapPackage)\n    .removePackage(\"wrap://plugin/package\")\n    .addPackages(\n      {\n        \"wrap://plugin/http\": httpPlugin({}) as IWrapPackage,\n        \"wrap://plugin/filesystem\": fileSystemPlugin({}) as IWrapPackage,\n      }\n    );\n```\n\nYou can add the entire [default client configuration bundle](#bundle--defaultconfig) at once with [addDefaults](#adddefaults)\n\n```typescript\n  builder.addDefaults();\n```\n\n### Build\n\nFinally, build a ClientConfig or CoreClientConfig to pass to the PolywrapClient constructor.\n\n```typescript\n  // accepted by either the PolywrapClient or the PolywrapCoreClient\n  let coreClientConfig = builder.build();\n\n  // build with a custom cache\n  coreClientConfig = builder.build({\n    wrapperCache: new WrapperCache(),\n  });\n\n  // or build with a custom resolver\n  coreClientConfig = builder.build({\n    resolver: RecursiveResolver.from([]),\n  });\n```\n\n### Example\n\nA complete example using all or most of the available methods.\n\n```typescript=\n  // init\n  const builder = new ClientConfigBuilder();\n\n  // add the default bundle first to override its entries later\n  builder.addDefaults();\n\n  // add many config items at once\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add and remove wrappers\n  builder\n    .addWrapper(\"wrap://ens/wrapper.eth\", await WasmWrapper.from(\n      new Uint8Array([1, 2, 3]),\n      new Uint8Array([1, 2, 3])\n    ))\n    .removeWrapper(\"wrap://ens/wrapper.eth\")\n    .addWrappers({\n      \"wrap://ens/wrapper.eth\": await WasmWrapper.from(\n          new Uint8Array([1, 2, 3]),\n          new Uint8Array([1, 2, 3])\n      )}\n    );\n\n  // add and remove wrap packages\n  builder\n    .addPackage(\"wrap://plugin/package\", httpPlugin({}) as IWrapPackage)\n    .removePackage(\"wrap://plugin/package\")\n    .addPackages({\n      \"wrap://plugin/package\": httpPlugin({}) as IWrapPackage\n    })\n\n  // add and remove Envs\n  builder\n    .addEnv(\"wrap://ens/wrapper.eth\", { key: \"value\" })\n    .removeEnv(\"wrap://ens/wrapper.eth\")\n    .addEnvs({\n      \"wrap://ens/wrapper.eth\": { key: \"value\" },\n    });\n\n  // override existing Env, or add new Env if one is not registered at URI\n  builder.setEnv(\"wrap://ens/wrapper.eth\", { key: \"value\" });\n\n  // add or remove registration for an implementation of an interface\n  builder\n    .addInterfaceImplementation(\n      \"wrap://ens/interface.eth\",\n      \"wrap://ens/wrapper.eth\"\n    )\n    .removeInterfaceImplementation(\n      \"wrap://ens/interface.eth\",\n      \"wrap://ens/wrapper.eth\"\n    )\n    .addInterfaceImplementations(\"wrap://ens/interface.eth\", [\n      \"wrap://ens/wrapper.eth\",\n    ]);\n\n  // add or remove URI redirects\n  builder\n    .addRedirect(\"wrap://ens/from.eth\", \"wrap://ens/to.eth\")\n    .removeRedirect(\"wrap://ens/from.eth\")\n    .addRedirects({\n       \"wrap://ens/from.eth\": \"wrap://ens/to.eth\",\n    });\n\n  // add resolvers\n  builder.addResolver(RecursiveResolver.from([]));\n  builder.addResolvers([]);\n\n  // build\n  const clientConfig = builder.build();\n```\n\n# Reference\n\n## ClientConfigBuilder\n\n### Constructor\n```ts\n  /**\n   * Instantiate a ClientConfigBuilder\n   */\n  constructor() \n```\n\n### add\n```ts\n  /**\n   * Add a partial BuilderConfig\n   * This is equivalent to calling each of the plural add functions: `addEnvs`, `addWrappers`, etc.\n   *\n   * @param config: a partial BuilderConfig\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  add(config: Partial<BuilderConfig>): IClientConfigBuilder;\n```\n\n### addWrapper\n```ts\n  /**\n   * Add an embedded wrapper\n   *\n   * @param uri: uri of wrapper\n   * @param wrapper: wrapper to be added\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addWrapper(uri: string, wrapper: Wrapper): IClientConfigBuilder;\n```\n\n### addWrappers\n```ts\n  /**\n   * Add one or more embedded wrappers.\n   * This is equivalent to calling addWrapper for each wrapper.\n   *\n   * @param uriWrappers: an object where keys are uris and wrappers are value\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addWrappers(uriWrappers: Record<string, Wrapper>): IClientConfigBuilder;\n```\n\n### removeWrapper\n```ts\n  /**\n   * Remove an embedded wrapper\n   *\n   * @param uri: the wrapper's URI\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeWrapper(uri: string): IClientConfigBuilder;\n```\n\n### addPackage\n```ts\n  /**\n   * Add an embedded wrap package\n   *\n   * @param uri: uri of wrapper\n   * @param wrapPackage: package to be added\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addPackage(uri: string, wrapPackage: IWrapPackage): IClientConfigBuilder;\n```\n\n### addPackages\n```ts\n  /**\n   * Add one or more embedded wrap packages\n   * This is equivalent to calling addPackage for each package\n   *\n   * @param uriPackages: an object where keys are uris and packages are value\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addPackages(uriPackages: Record<string, IWrapPackage>): IClientConfigBuilder;\n```\n\n### removePackage\n```ts\n  /**\n   * Remove an embedded wrap package\n   *\n   * @param uri: the package's URI\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removePackage(uri: string): IClientConfigBuilder;\n```\n\n### addEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is modified.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the env variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addEnv(uri: string, env: Record<string, unknown>): IClientConfigBuilder;\n```\n\n### addEnvs\n```ts\n  /**\n   * Add one or more Envs\n   * This is equivalent to calling addEnv for each Env\n   *\n   * @param uriEnvs: and object where key is the uri and value is the another object with the env variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addEnvs(\n    uriEnvs: Record<string, Record<string, unknown>>\n  ): IClientConfigBuilder;\n```\n\n### removeEnv\n```ts\n  /**\n   * Remove an Env\n   *\n   * @param uri: the URI associated with the Env\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeEnv(uri: string): IClientConfigBuilder;\n```\n\n### setEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is replaced.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the environment variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  setEnv(uri: string, env: Record<string, unknown>): IClientConfigBuilder;\n```\n\n### addInterfaceImplementation\n```ts\n  /**\n   * Register an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): IClientConfigBuilder;\n```\n\n### addInterfaceImplementations\n```ts\n  /**\n   * Register one or more implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUris: a list of URIs for the implementations\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementations(\n    interfaceUri: string,\n    implementationUris: Array<string>\n  ): IClientConfigBuilder;\n```\n\n### removeInterfaceImplementation\n```ts\n  /**\n   * Remove an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): IClientConfigBuilder;\n```\n\n### addRedirect\n```ts\n  /**\n   * Add a redirect from one URI to another\n   *\n   * @param from: the URI to redirect from\n   * @param to: the URI to redirect to\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addRedirect(from: string, to: string): IClientConfigBuilder;\n```\n\n### addRedirects\n```ts\n  /**\n   * Add an array of URI redirects\n   *\n   * @param redirects: an object where key is from and value is to\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addRedirects(redirects: Record<string, string>): IClientConfigBuilder;\n```\n\n### removeRedirect\n```ts\n  /**\n   * Remove a URI redirect\n   *\n   * @param from: the URI that is being redirected\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeRedirect(from: string): IClientConfigBuilder;\n```\n\n### addResolver\n```ts\n  /**\n   * Add a URI Resolver, capable of resolving a URI to a wrapper\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolver: A UriResolverLike\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addResolver(resolver: UriResolverLike): IClientConfigBuilder;\n```\n\n### addResolvers\n```ts\n  /**\n   * Add one or more URI Resolvers, capable of resolving URIs to wrappers\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolvers: A list of UriResolverLike\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addResolvers(resolvers: UriResolverLike[]): IClientConfigBuilder;\n```\n\n### addDefaults\n```ts\n  /**\n   * Add the default configuration bundle\n   *\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addDefaults(): IClientConfigBuilder;\n```\n\n### build\n```ts\n  /**\n   * Build a sanitized core client configuration that can be passed to the PolywrapClient or PolywrapCoreClient constructors\n   *\n   * @param options - Use a custom wrapper cache or resolver\n   * @returns CoreClientConfig that results from applying all the steps in the builder pipeline\n   */\n  build(options?: BuildOptions): CoreClientConfig;\n```\n\n## Bundles\n\n### Bundle: DefaultConfig\n```ts\nexport const defaultIpfsProviders = [\n  \"https://ipfs.wrappers.io\",\n  \"https://ipfs.io\",\n];\n\nexport const defaultEmbeddedPackages = {\n  ipfsHttpClient: (): IWrapPackage => ipfsHttpClient.wasmPackage,\n  ipfsResolver: (): IWrapPackage => ipfsResolver.wasmPackage,\n};\n\nexport const defaultWrappers = {\n  sha3: \"wrap://ens/wraps.eth:sha3@1.0.0\",\n  uts46: \"wrap://ens/wraps.eth:uts46@1.0.0\",\n  graphNode: \"wrap://ens/wraps.eth:graph-node@1.0.0\",\n  ensTextRecordResolver:\n    \"wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p\",\n  ethereum: \"wrap://ens/wraps.eth:ethereum@1.0.0\",\n  ens: \"wrap://ens/wraps.eth:ens@1.0.0\",\n};\n\nexport const defaultPackages = {\n  ensResolver: \"wrap://package/ens-resolver\",\n  httpResolver: \"wrap://package/http-resolver\",\n  fileSystemResolver: \"wrap://package/fs-resolver\",\n  ipfsResolver: \"wrap://package/ipfs-resolver\",\n};\n\nexport const defaultInterfaces = {\n  concurrent: \"wrap://ens/wraps.eth:concurrent@1.0.0\",\n  logger: \"wrap://ens/wraps.eth:logger@1.0.0\",\n  http: \"wrap://ens/wraps.eth:http@1.1.0\",\n  fileSystem: \"wrap://ens/wraps.eth:file-system@1.0.0\",\n  ipfsHttpClient: \"wrap://ens/wraps.eth:ipfs-http-client@1.0.0\",\n  ethereumProvider: \"wrap://ens/wraps.eth:ethereum-provider@1.0.0\",\n};\n\nexport const getDefaultPackages = (): Record<string, IWrapPackage> => {\n  const packages: Record<string, IWrapPackage> = {};\n  packages[\n    defaultInterfaces.ipfsHttpClient\n  ] = defaultEmbeddedPackages.ipfsHttpClient();\n  packages[\n    defaultPackages.ipfsResolver\n  ] = defaultEmbeddedPackages.ipfsResolver();\n  // ENS is required for resolving domain to IPFS hashes\n  packages[defaultPackages.ensResolver] = ensResolverPlugin({});\n  // Ethereum is required for resolving domain to Ethereum addresses\n  packages[defaultInterfaces.ethereumProvider] = ethereumProviderPlugin({\n    connections: new Connections({\n      networks: {\n        mainnet: new Connection({\n          provider:\n            \"https://mainnet.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n        }),\n        goerli: new Connection({\n          provider:\n            \"https://goerli.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n        }),\n      },\n    }),\n  });\n  packages[defaultInterfaces.http] = httpPlugin({}) as IWrapPackage;\n  packages[defaultPackages.httpResolver] = httpResolverPlugin({});\n  packages[defaultInterfaces.logger] = loggerPlugin({}) as IWrapPackage;\n  packages[defaultInterfaces.fileSystem] = fileSystemPlugin({}) as IWrapPackage;\n  packages[defaultPackages.fileSystemResolver] = fileSystemResolverPlugin({});\n  packages[defaultInterfaces.concurrent] = concurrentPromisePlugin({});\n  return packages;\n};\n\nexport const getDefaultConfig = (): BuilderConfig => ({\n  envs: {\n    [defaultPackages.ipfsResolver]: {\n      provider: defaultIpfsProviders[0],\n      fallbackProviders: defaultIpfsProviders.slice(1),\n      retries: { tryResolveUri: 2, getFile: 2 },\n    },\n  },\n  interfaces: {\n    [ExtendableUriResolver.extInterfaceUri.uri]: new Set([\n      defaultPackages.ipfsResolver,\n      defaultPackages.ensResolver,\n      defaultPackages.fileSystemResolver,\n      defaultPackages.httpResolver,\n      defaultWrappers.ensTextRecordResolver,\n    ]),\n    [defaultInterfaces.logger]: new Set([defaultInterfaces.logger]),\n    [defaultInterfaces.concurrent]: new Set([defaultInterfaces.concurrent]),\n    [defaultInterfaces.ipfsHttpClient]: new Set([\n      defaultInterfaces.ipfsHttpClient,\n    ]),\n    [defaultInterfaces.fileSystem]: new Set([defaultInterfaces.fileSystem]),\n    [defaultInterfaces.http]: new Set([defaultInterfaces.http]),\n    [defaultInterfaces.ethereumProvider]: new Set([\n      defaultInterfaces.ethereumProvider,\n    ]),\n  },\n  redirects: {},\n  wrappers: {},\n  packages: getDefaultPackages(),\n  resolvers: [],\n});\n```","_id":"@polywrap/client-config-builder-js@0.10.0-pre.10","dist":{"shasum":"6b49bad4e4f07b3b9ae6c87a173c1a3c2d9288f1","integrity":"sha512-HM8LGHZC4QXUOTKWai/Kx0SgsIT4unaSTEtE4hf+rm+5qaZw2abNAqK20HaRpx09lBLcwQk8w89VR/O+TKfpSg==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0-pre.10.tgz","fileCount":48,"unpackedSize":650697,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHBQDLCX1/bQ+gZqjG8K+kaJ9EYu27B+BmZZpEfGXxedAiEAne2sD5xqIwgnsQQPzbhiEFV1/i6+8cCjr7be3w7humM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/sdNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp9WQ//dpAKcw7DzPNxCOiraPzKf5EVJw4vGPRhqDHuAdW9jMsQRvPO\r\n+RFzpa1+SIVZZbRGPpAR1daPqlp5XK6nr4kTm2OKG3dOB6LnljHivz41PY5p\r\nfBb+47TSjwDPYsDCMUpk3PMreonmDbWmUnKTUFV8sbvukv0RM2yAWMjPhpYO\r\nnmjXEKGSdjX6hkl+lvch1NNj2TawMQAPOKiwZvYiLEwTSufQZMHuNh765xrn\r\nCrU3mn03vODxy1bqUG7JgytUximWBy7qOD/J9Gak2IFMGzoWQ6g8kkax8YaI\r\nPX5Xb3eUX0sHMSm5U7t2JJ0Dwb8QUm7ojewfFmVqiIikQqOXfBozlDxBXf47\r\nsCuyGpfSXNmuOTFigPEGJ7wnaU0/e6S+SWF6w4e9m7+DgdepHhaIqfcIa+UC\r\nXWjaxNar97xI85TGdR2amZR9TfAN+IS1sN3o8eMTrjEKipRZXO7ZUBIZ8Gar\r\nnbdd2O9etuJKzaXJuAr64kT30W3WhBaZaTPaDd3TG9xXU4Y0cO7HAHsEU91x\r\nrCeMfEVhP0FPdXfIsIJ0j3Ty9U4igKAZYxvlR3SJiVWcikXbDbjhfrGrp7/0\r\nx+qiXfm26r0fkhXP0y1PbDc+ysId/S+6kng2teffDwOPLbnmr+YebgCDZ987\r\nsmWgB3b/RygLOxAXticCCb9IwLejDtntDe4=\r\n=URz5\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.10.0-pre.10_1677641549424_0.5568929779068428"},"_hasShrinkwrap":false},"0.10.0-pre.11":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.10.0-pre.11","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"yarn embed:wrappers && yarn build:fast && yarn build:snippets && yarn build:readme","build:fast":"rimraf ./build && tsc --project tsconfig.build.json","embed:wrappers":"ts-node ./scripts/embed-wrappers.ts","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose","build:snippets":"tsc --project ./examples/tsconfig.examples.json","build:readme":"yarn doc-snippets combine"},"dependencies":{"@polywrap/concurrent-plugin-js":"~0.10.0-pre","@polywrap/core-js":"0.10.0-pre.11","@polywrap/ethereum-provider-js":"~0.2.3","@polywrap/file-system-plugin-js":"~0.10.0-pre","@polywrap/http-plugin-js":"~0.10.0-pre","@polywrap/logger-plugin-js":"0.10.0-pre.10","@polywrap/plugin-js":"0.10.0-pre.11","@polywrap/uri-resolver-extensions-js":"0.10.0-pre.11","@polywrap/uri-resolvers-js":"0.10.0-pre.11","@polywrap/wasm-js":"0.10.0-pre.11","base64-to-uint8array":"1.0.0"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","doc-snippets":"~1.0.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"10.9.1","typescript":"4.9.5"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"doc-snippets":{"extract":{"include":["./src/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}","./examples/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}"],"ignore":["./**/node_modules/**","./**/.polywrap/**","./**/__tests__/**"],"dir":"./"},"inject":{"dir":"./readme","include":"./README.md"},"startTokens":[{"pattern":"$start: ","inline":false},{"pattern":"/* $: {SNIPPET_NAME} */","inline":true}],"endTokens":[{"pattern":"$end","inline":false},{"pattern":"/* $ */","inline":true}],"outputDir":"./"},"readmeFilename":"README.md","readme":"# PolywrapClient Config Builder\n\nA utility class for building the PolywrapClient config. \n\nSupports building configs using method chaining or imperatively.\n\n## Quickstart\n\n### Initialize\n\nInitialize a ClientConfigBuilder using the [constructor](#constructor)\n\n```typescript\n  // start with a blank slate (typical usage)\n  const builder = new ClientConfigBuilder();\n```\n\n### Configure\n\nAdd client configuration with [add](#add), or flexibly mix and match builder [configuration methods](#addwrapper) to add and remove configuration items.\n\n```typescript\n  // add multiple items to the configuration using the catch-all `add` method\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add or remove items by chaining method calls\n  builder\n    .addPackage(\"wrap://plugin/package\", httpPlugin({}))\n    .removePackage(\"wrap://plugin/package\")\n    .addPackages(\n      {\n        \"wrap://plugin/http\": httpPlugin({}),\n        \"wrap://plugin/filesystem\": fileSystemPlugin({}),\n      }\n    );\n```\n\nYou can add the entire [default client configuration bundle](#bundle--defaultconfig) at once with [addDefaults](#adddefaults)\n\n```typescript\n  builder.addDefaults();\n```\n\n### Build\n\nFinally, build a ClientConfig or CoreClientConfig to pass to the PolywrapClient constructor.\n\n```typescript\n  // accepted by either the PolywrapClient or the PolywrapCoreClient\n  let coreClientConfig = builder.build();\n\n  // build with a custom cache\n  coreClientConfig = builder.build({\n    wrapperCache: new WrapperCache(),\n  });\n\n  // or build with a custom resolver\n  coreClientConfig = builder.build({\n    resolver: RecursiveResolver.from([]),\n  });\n```\n\n### Example\n\nA complete example using all or most of the available methods.\n\n```typescript=\n  // init\n  const builder = new ClientConfigBuilder();\n\n  // add the default bundle first to override its entries later\n  builder.addDefaults();\n\n  // add many config items at once\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add and remove wrappers\n  builder\n    .addWrapper(\"wrap://ens/wrapper.eth\", await WasmWrapper.from(\n      new Uint8Array([1, 2, 3]),\n      new Uint8Array([1, 2, 3])\n    ))\n    .removeWrapper(\"wrap://ens/wrapper.eth\")\n    .addWrappers({\n      \"wrap://ens/wrapper.eth\": await WasmWrapper.from(\n          new Uint8Array([1, 2, 3]),\n          new Uint8Array([1, 2, 3])\n      )}\n    );\n\n  // add and remove wrap packages\n  builder\n    .addPackage(\"wrap://plugin/package\", httpPlugin({}))\n    .removePackage(\"wrap://plugin/package\")\n    .addPackages({\n      \"wrap://plugin/package\": httpPlugin({})\n    })\n\n  // add and remove Envs\n  builder\n    .addEnv(\"wrap://ens/wrapper.eth\", { key: \"value\" })\n    .removeEnv(\"wrap://ens/wrapper.eth\")\n    .addEnvs({\n      \"wrap://ens/wrapper.eth\": { key: \"value\" },\n    });\n\n  // override existing Env, or add new Env if one is not registered at URI\n  builder.setEnv(\"wrap://ens/wrapper.eth\", { key: \"value\" });\n\n  // add or remove registration for an implementation of an interface\n  builder\n    .addInterfaceImplementation(\n      \"wrap://ens/interface.eth\",\n      \"wrap://ens/wrapper.eth\"\n    )\n    .removeInterfaceImplementation(\n      \"wrap://ens/interface.eth\",\n      \"wrap://ens/wrapper.eth\"\n    )\n    .addInterfaceImplementations(\"wrap://ens/interface.eth\", [\n      \"wrap://ens/wrapper.eth\",\n    ]);\n\n  // add or remove URI redirects\n  builder\n    .addRedirect(\"wrap://ens/from.eth\", \"wrap://ens/to.eth\")\n    .removeRedirect(\"wrap://ens/from.eth\")\n    .addRedirects({\n       \"wrap://ens/from.eth\": \"wrap://ens/to.eth\",\n    });\n\n  // add resolvers\n  builder.addResolver(RecursiveResolver.from([]));\n  builder.addResolvers([]);\n\n  // build\n  const clientConfig = builder.build();\n```\n\n# Reference\n\n## ClientConfigBuilder\n\n### Constructor\n```ts\n  /**\n   * Instantiate a ClientConfigBuilder\n   */\n  constructor() \n```\n\n### add\n```ts\n  /**\n   * Add a partial BuilderConfig\n   * This is equivalent to calling each of the plural add functions: `addEnvs`, `addWrappers`, etc.\n   *\n   * @param config: a partial BuilderConfig\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  add(config: Partial<BuilderConfig>): IClientConfigBuilder;\n```\n\n### addWrapper\n```ts\n  /**\n   * Add an embedded wrapper\n   *\n   * @param uri: uri of wrapper\n   * @param wrapper: wrapper to be added\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addWrapper(uri: string, wrapper: Wrapper): IClientConfigBuilder;\n```\n\n### addWrappers\n```ts\n  /**\n   * Add one or more embedded wrappers.\n   * This is equivalent to calling addWrapper for each wrapper.\n   *\n   * @param uriWrappers: an object where keys are uris and wrappers are value\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addWrappers(uriWrappers: Record<string, Wrapper>): IClientConfigBuilder;\n```\n\n### removeWrapper\n```ts\n  /**\n   * Remove an embedded wrapper\n   *\n   * @param uri: the wrapper's URI\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeWrapper(uri: string): IClientConfigBuilder;\n```\n\n### addPackage\n```ts\n  /**\n   * Add an embedded wrap package\n   *\n   * @param uri: uri of wrapper\n   * @param wrapPackage: package to be added\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addPackage(uri: string, wrapPackage: IWrapPackage): IClientConfigBuilder;\n```\n\n### addPackages\n```ts\n  /**\n   * Add one or more embedded wrap packages\n   * This is equivalent to calling addPackage for each package\n   *\n   * @param uriPackages: an object where keys are uris and packages are value\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addPackages(uriPackages: Record<string, IWrapPackage>): IClientConfigBuilder;\n```\n\n### removePackage\n```ts\n  /**\n   * Remove an embedded wrap package\n   *\n   * @param uri: the package's URI\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removePackage(uri: string): IClientConfigBuilder;\n```\n\n### addEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is modified.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the env variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addEnv(uri: string, env: Record<string, unknown>): IClientConfigBuilder;\n```\n\n### addEnvs\n```ts\n  /**\n   * Add one or more Envs\n   * This is equivalent to calling addEnv for each Env\n   *\n   * @param uriEnvs: and object where key is the uri and value is the another object with the env variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addEnvs(\n    uriEnvs: Record<string, Record<string, unknown>>\n  ): IClientConfigBuilder;\n```\n\n### removeEnv\n```ts\n  /**\n   * Remove an Env\n   *\n   * @param uri: the URI associated with the Env\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeEnv(uri: string): IClientConfigBuilder;\n```\n\n### setEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is replaced.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the environment variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  setEnv(uri: string, env: Record<string, unknown>): IClientConfigBuilder;\n```\n\n### addInterfaceImplementation\n```ts\n  /**\n   * Register an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): IClientConfigBuilder;\n```\n\n### addInterfaceImplementations\n```ts\n  /**\n   * Register one or more implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUris: a list of URIs for the implementations\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementations(\n    interfaceUri: string,\n    implementationUris: Array<string>\n  ): IClientConfigBuilder;\n```\n\n### removeInterfaceImplementation\n```ts\n  /**\n   * Remove an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): IClientConfigBuilder;\n```\n\n### addRedirect\n```ts\n  /**\n   * Add a redirect from one URI to another\n   *\n   * @param from: the URI to redirect from\n   * @param to: the URI to redirect to\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addRedirect(from: string, to: string): IClientConfigBuilder;\n```\n\n### addRedirects\n```ts\n  /**\n   * Add an array of URI redirects\n   *\n   * @param redirects: an object where key is from and value is to\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addRedirects(redirects: Record<string, string>): IClientConfigBuilder;\n```\n\n### removeRedirect\n```ts\n  /**\n   * Remove a URI redirect\n   *\n   * @param from: the URI that is being redirected\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeRedirect(from: string): IClientConfigBuilder;\n```\n\n### addResolver\n```ts\n  /**\n   * Add a URI Resolver, capable of resolving a URI to a wrapper\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolver: A UriResolverLike\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addResolver(resolver: UriResolverLike): IClientConfigBuilder;\n```\n\n### addResolvers\n```ts\n  /**\n   * Add one or more URI Resolvers, capable of resolving URIs to wrappers\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolvers: A list of UriResolverLike\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addResolvers(resolvers: UriResolverLike[]): IClientConfigBuilder;\n```\n\n### addDefaults\n```ts\n  /**\n   * Add the default configuration bundle\n   *\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addDefaults(): IClientConfigBuilder;\n```\n\n### build\n```ts\n  /**\n   * Build a sanitized core client configuration that can be passed to the PolywrapClient or PolywrapCoreClient constructors\n   *\n   * @param options - Use a custom wrapper cache or resolver\n   * @returns CoreClientConfig that results from applying all the steps in the builder pipeline\n   */\n  build(options?: BuildOptions): CoreClientConfig;\n```\n\n## Bundles\n\n### Bundle: DefaultConfig\n```ts\nexport const ipfsProviders: string[] = [\n  \"https://ipfs.wrappers.io\",\n  \"https://ipfs.io\",\n];\n\ninterface IDefaultEmbed {\n  uri: Uri;\n  package: IWrapPackage;\n  source: Uri;\n}\n\ninterface IDefaultEmbeds {\n  ipfsHttpClient: IDefaultEmbed;\n  ipfsResolver: IDefaultEmbed;\n}\n\nexport const embeds: IDefaultEmbeds = {\n  ipfsHttpClient: {\n    uri: Uri.from(\"embed/ipfs-http-client@1.0.0\"),\n    package: ipfsHttpClient.wasmPackage,\n    source: Uri.from(\"ens/wraps.eth:ipfs-http-client@1.0.0\"),\n  },\n  ipfsResolver: {\n    uri: Uri.from(\"embed/async-ipfs-uri-resolver-ext@1.0.0\"),\n    package: ipfsResolver.wasmPackage,\n    source: Uri.from(\"ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.0\"),\n  },\n};\n\ntype UriResolverExtBootloader = [IDefaultEmbed, IUriRedirect, ...Uri[]];\n\nexport const uriResolverExts: UriResolverExtBootloader = [\n  embeds.ipfsResolver,\n  {\n    from: Uri.from(\"ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.0\"),\n    to: Uri.from(\"ipfs/QmaM318ABUXDhc5eZGGbmDxkb2ZgnbLxigm5TyZcCsh1Kw\"),\n  },\n  Uri.from(\"ens/wraps.eth:http-uri-resolver-ext@1.0.0\"),\n  Uri.from(\"ens/wraps.eth:file-system-uri-resolver-ext@1.0.0\"),\n  Uri.from(\"ens/wraps.eth:ens-uri-resolver-ext@1.0.0\"),\n  Uri.from(\"ens/wraps.eth:ens-ipfs-contenthash-uri-resolver-ext@1.0.0\"),\n  Uri.from(\"ens/wraps.eth:ens-ocr-contenthash-uri-resolver-ext@1.0.0\"),\n];\n\ninterface IDefaultPlugin {\n  uri: Uri;\n  plugin: PluginPackage<unknown>;\n  implements: Uri[];\n}\n\ninterface IDefaultPlugins {\n  logger: IDefaultPlugin;\n  http: IDefaultPlugin;\n  fileSystem: IDefaultPlugin;\n  concurrent: IDefaultPlugin;\n  ethereumProvider: IDefaultPlugin;\n}\n\nexport const plugins: IDefaultPlugins = {\n  logger: {\n    uri: Uri.from(\"plugin/logger@1.0.0\"),\n    plugin: loggerPlugin({}),\n    implements: [Uri.from(\"ens/wraps.eth:logger@1.0.0\")],\n  },\n  http: {\n    uri: Uri.from(\"plugin/http@1.1.0\"),\n    plugin: httpPlugin({}),\n    implements: [\n      Uri.from(\"ens/wraps.eth:http@1.1.0\"),\n      Uri.from(\"ens/wraps.eth:http@1.0.0\"),\n    ],\n  },\n  fileSystem: {\n    uri: Uri.from(\"plugin/file-system@1.0.0\"),\n    plugin: fileSystemPlugin({}),\n    implements: [Uri.from(\"ens/wraps.eth:file-system@1.0.0\")],\n  },\n  concurrent: {\n    uri: Uri.from(\"plugin/concurrent@1.0.0\"),\n    plugin: concurrentPromisePlugin({}),\n    implements: [Uri.from(\"ens/wraps.eth:concurrent@1.0.0\")],\n  },\n  ethereumProvider: {\n    uri: Uri.from(\"plugin/ethereum-provider@1.1.0\"),\n    plugin: ethereumProviderPlugin({\n      connections: new Connections({\n        networks: {\n          mainnet: new Connection({\n            provider:\n              \"https://mainnet.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n          }),\n          goerli: new Connection({\n            provider:\n              \"https://goerli.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n          }),\n        },\n      }),\n    }),\n    implements: [\n      Uri.from(\"ens/wraps.eth:ethereum-provider@1.1.0\"),\n      Uri.from(\"ens/wraps.eth:ethereum-provider@1.0.0\"),\n    ],\n  },\n};\n\nexport function getConfig(): BuilderConfig {\n  const builder = new ClientConfigBuilder();\n\n  // Add all embedded packages\n  for (const embed of Object.values(embeds)) {\n    builder.addPackage(embed.uri.uri, embed.package);\n\n    // Add source redirect\n    builder.addRedirect(embed.source.uri, embed.uri.uri);\n\n    // Add source implementation\n    builder.addInterfaceImplementation(embed.source.uri, embed.uri.uri);\n  }\n\n  // Add all plugin packages\n  for (const plugin of Object.values(plugins)) {\n    builder.addPackage(plugin.uri.uri, plugin.plugin);\n\n    // Add all interface implementations & redirects\n    for (const interfaceUri of plugin.implements) {\n      builder.addInterfaceImplementation(interfaceUri.uri, plugin.uri.uri);\n      builder.addRedirect(interfaceUri.uri, plugin.uri.uri);\n    }\n  }\n\n  // Add all uri-resolver-ext interface implementations\n  builder.addInterfaceImplementations(\n    ExtendableUriResolver.defaultExtInterfaceUris[0].uri,\n    [\n      uriResolverExts[0].source.uri,\n      uriResolverExts[1].from.uri,\n      ...uriResolverExts.slice(2).map((x: Uri) => x.uri),\n    ]\n  );\n  builder.addRedirect(uriResolverExts[1].from.uri, uriResolverExts[1].to.uri);\n\n  // Configure the ipfs-uri-resolver provider endpoints & retry counts\n  builder.addEnv(embeds.ipfsResolver.source.uri, {\n    provider: ipfsProviders[0],\n    fallbackProviders: ipfsProviders.slice(1),\n    retries: { tryResolveUri: 2, getFile: 2 },\n  });\n\n  return builder.config;\n}\n```","_id":"@polywrap/client-config-builder-js@0.10.0-pre.11","dist":{"shasum":"29786284cb6e07284f7f11bd9b52b40c19d005a9","integrity":"sha512-rDRcvg1J3AckpISBnMCQWP5+MixVNR6LjWDzfbqvWkVBQmGQEjAgAkczU6z78aBLkNiKu/4iTHwOOwStd0V4xQ==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0-pre.11.tgz","fileCount":48,"unpackedSize":656557,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9QcrWypRgVx5uNXKARuJ2un9VRKylzgnwZ+IXToUWxQIhALzDqMETIdPcDyn+qgpmYc5dK/TUqX0A9MrK2tPp6zll"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBmg2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr57g//VKJ9BpZd/KWL77LaNslLsU4tE25qZtyh4v+gYCCpLWqRdDjE\r\njwz5giMqUkFbngQhDwXM5/ZHOAh/sq8cfcwwXLLXqrgOXsHdliT0sWihSKE+\r\njfes8+3xXncYPIEGSKVk7alWC4pqyqaC9DsvE51SBOYs6uYGYShhr8SGVcEF\r\nLmvOulx4z2DPFiSDB4DHmmNp6inRScctReVQO4SzPn50vxAACn7u0KOs7AnV\r\nKYkqarjq+p0ZHjU2VLEK/UmfR7UUVzsXRLqgWhC3Nsr5qO/NoFIBpolkHlRI\r\npqctTDrTnaF+clRLzy3qF+sSpYJU4vZ/J0Q6HgFyJTDFPpSDKgzMJ67YJ9Oa\r\nZNNLAHbfvvB+ykPIU0K/N3cvcv463vknF98MD5hKWw7AjBRnNkEQoonLod0n\r\n+aT+Nv0DmlvOxdiotRf/XXrl+v01+D4oLSzemmzhj0S40R2vaC/rV+FwMgyj\r\neqQdH5A6C5zYJsIICSxQ3PMGGQERHpKn72rHr4Jui5ixuJ8MQXL2gLn2lgC9\r\nHHfVg0+l/cDz+fle49HUl/tRvTgTSR/1yjYQyPFP0Tfr7te88L12O2qbFvPY\r\ny45qSnH44QXCVXR64+3pOGw5gVv4khSnjnrH/EItI80VfTLiEg611muAxowc\r\neM8YKh+YXCow3GR8B1h2UJUu6RncxUjKQmk=\r\n=P9T3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.10.0-pre.11_1678141494441_0.887427285761133"},"_hasShrinkwrap":false},"0.10.0-pre.12":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.10.0-pre.12","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"yarn embed:wrappers && yarn build:fast && yarn build:snippets && yarn build:readme","build:fast":"rimraf ./build && tsc --project tsconfig.build.json","embed:wrappers":"ts-node ./scripts/embed-wrappers.ts","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose","build:snippets":"tsc --project ./examples/tsconfig.examples.json","build:readme":"yarn doc-snippets combine"},"dependencies":{"@polywrap/concurrent-plugin-js":"~0.10.0-pre","@polywrap/core-js":"0.10.0-pre.12","@polywrap/ethereum-provider-js":"~0.2.3","@polywrap/file-system-plugin-js":"~0.10.0-pre","@polywrap/http-plugin-js":"~0.10.0-pre","@polywrap/logger-plugin-js":"0.10.0-pre.10","@polywrap/plugin-js":"0.10.0-pre.12","@polywrap/uri-resolver-extensions-js":"0.10.0-pre.12","@polywrap/uri-resolvers-js":"0.10.0-pre.12","@polywrap/wasm-js":"0.10.0-pre.12","base64-to-uint8array":"1.0.0"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","doc-snippets":"~1.0.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"10.9.1","typescript":"4.9.5"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"doc-snippets":{"extract":{"include":["./src/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}","./examples/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}"],"ignore":["./**/node_modules/**","./**/.polywrap/**","./**/__tests__/**"],"dir":"./"},"inject":{"dir":"./readme","include":"./README.md"},"startTokens":[{"pattern":"$start: ","inline":false},{"pattern":"/* $: {SNIPPET_NAME} */","inline":true}],"endTokens":[{"pattern":"$end","inline":false},{"pattern":"/* $ */","inline":true}],"outputDir":"./"},"readmeFilename":"README.md","readme":"# PolywrapClient Config Builder\n\nA utility class for building the PolywrapClient config. \n\nSupports building configs using method chaining or imperatively.\n\n## Quickstart\n\n### Initialize\n\nInitialize a ClientConfigBuilder using the [constructor](#constructor)\n\n```typescript\n  // start with a blank slate (typical usage)\n  const builder = new ClientConfigBuilder();\n```\n\n### Configure\n\nAdd client configuration with [add](#add), or flexibly mix and match builder [configuration methods](#addwrapper) to add and remove configuration items.\n\n```typescript\n  // add multiple items to the configuration using the catch-all `add` method\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add or remove items by chaining method calls\n  builder\n    .addPackage(\"wrap://plugin/package\", httpPlugin({}))\n    .removePackage(\"wrap://plugin/package\")\n    .addPackages(\n      {\n        \"wrap://plugin/http\": httpPlugin({}),\n        \"wrap://plugin/filesystem\": fileSystemPlugin({}),\n      }\n    );\n```\n\nYou can add the entire [default client configuration bundle](#bundle--defaultconfig) at once with [addDefaults](#adddefaults)\n\n```typescript\n  builder.addDefaults();\n```\n\n### Build\n\nFinally, build a ClientConfig or CoreClientConfig to pass to the PolywrapClient constructor.\n\n```typescript\n  // accepted by either the PolywrapClient or the PolywrapCoreClient\n  let coreClientConfig = builder.build();\n\n  // build with a custom cache\n  coreClientConfig = builder.build({\n    wrapperCache: new WrapperCache(),\n  });\n\n  // or build with a custom resolver\n  coreClientConfig = builder.build({\n    resolver: RecursiveResolver.from([]),\n  });\n```\n\n### Example\n\nA complete example using all or most of the available methods.\n\n```typescript=\n  // init\n  const builder = new ClientConfigBuilder();\n\n  // add the default bundle first to override its entries later\n  builder.addDefaults();\n\n  // add many config items at once\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add and remove wrappers\n  builder\n    .addWrapper(\"wrap://ens/wrapper.eth\", await WasmWrapper.from(\n      new Uint8Array([1, 2, 3]),\n      new Uint8Array([1, 2, 3])\n    ))\n    .removeWrapper(\"wrap://ens/wrapper.eth\")\n    .addWrappers({\n      \"wrap://ens/wrapper.eth\": await WasmWrapper.from(\n          new Uint8Array([1, 2, 3]),\n          new Uint8Array([1, 2, 3])\n      )}\n    );\n\n  // add and remove wrap packages\n  builder\n    .addPackage(\"wrap://plugin/package\", httpPlugin({}))\n    .removePackage(\"wrap://plugin/package\")\n    .addPackages({\n      \"wrap://plugin/package\": httpPlugin({})\n    })\n\n  // add and remove Envs\n  builder\n    .addEnv(\"wrap://ens/wrapper.eth\", { key: \"value\" })\n    .removeEnv(\"wrap://ens/wrapper.eth\")\n    .addEnvs({\n      \"wrap://ens/wrapper.eth\": { key: \"value\" },\n    });\n\n  // override existing Env, or add new Env if one is not registered at URI\n  builder.setEnv(\"wrap://ens/wrapper.eth\", { key: \"value\" });\n\n  // add or remove registration for an implementation of an interface\n  builder\n    .addInterfaceImplementation(\n      \"wrap://ens/interface.eth\",\n      \"wrap://ens/wrapper.eth\"\n    )\n    .removeInterfaceImplementation(\n      \"wrap://ens/interface.eth\",\n      \"wrap://ens/wrapper.eth\"\n    )\n    .addInterfaceImplementations(\"wrap://ens/interface.eth\", [\n      \"wrap://ens/wrapper.eth\",\n    ]);\n\n  // add or remove URI redirects\n  builder\n    .addRedirect(\"wrap://ens/from.eth\", \"wrap://ens/to.eth\")\n    .removeRedirect(\"wrap://ens/from.eth\")\n    .addRedirects({\n       \"wrap://ens/from.eth\": \"wrap://ens/to.eth\",\n    });\n\n  // add resolvers\n  builder.addResolver(RecursiveResolver.from([]));\n  builder.addResolvers([]);\n\n  // build\n  const clientConfig = builder.build();\n```\n\n# Reference\n\n## ClientConfigBuilder\n\n### Constructor\n```ts\n  /**\n   * Instantiate a ClientConfigBuilder\n   */\n  constructor() \n```\n\n### add\n```ts\n  /**\n   * Add a partial BuilderConfig\n   * This is equivalent to calling each of the plural add functions: `addEnvs`, `addWrappers`, etc.\n   *\n   * @param config: a partial BuilderConfig\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  add(config: Partial<BuilderConfig>): IClientConfigBuilder;\n```\n\n### addWrapper\n```ts\n  /**\n   * Add an embedded wrapper\n   *\n   * @param uri: uri of wrapper\n   * @param wrapper: wrapper to be added\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addWrapper(uri: string, wrapper: Wrapper): IClientConfigBuilder;\n```\n\n### addWrappers\n```ts\n  /**\n   * Add one or more embedded wrappers.\n   * This is equivalent to calling addWrapper for each wrapper.\n   *\n   * @param uriWrappers: an object where keys are uris and wrappers are value\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addWrappers(uriWrappers: Record<string, Wrapper>): IClientConfigBuilder;\n```\n\n### removeWrapper\n```ts\n  /**\n   * Remove an embedded wrapper\n   *\n   * @param uri: the wrapper's URI\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeWrapper(uri: string): IClientConfigBuilder;\n```\n\n### addPackage\n```ts\n  /**\n   * Add an embedded wrap package\n   *\n   * @param uri: uri of wrapper\n   * @param wrapPackage: package to be added\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addPackage(uri: string, wrapPackage: IWrapPackage): IClientConfigBuilder;\n```\n\n### addPackages\n```ts\n  /**\n   * Add one or more embedded wrap packages\n   * This is equivalent to calling addPackage for each package\n   *\n   * @param uriPackages: an object where keys are uris and packages are value\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addPackages(uriPackages: Record<string, IWrapPackage>): IClientConfigBuilder;\n```\n\n### removePackage\n```ts\n  /**\n   * Remove an embedded wrap package\n   *\n   * @param uri: the package's URI\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removePackage(uri: string): IClientConfigBuilder;\n```\n\n### addEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is modified.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the env variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addEnv(uri: string, env: Record<string, unknown>): IClientConfigBuilder;\n```\n\n### addEnvs\n```ts\n  /**\n   * Add one or more Envs\n   * This is equivalent to calling addEnv for each Env\n   *\n   * @param uriEnvs: and object where key is the uri and value is the another object with the env variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addEnvs(\n    uriEnvs: Record<string, Record<string, unknown>>\n  ): IClientConfigBuilder;\n```\n\n### removeEnv\n```ts\n  /**\n   * Remove an Env\n   *\n   * @param uri: the URI associated with the Env\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeEnv(uri: string): IClientConfigBuilder;\n```\n\n### setEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is replaced.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the environment variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  setEnv(uri: string, env: Record<string, unknown>): IClientConfigBuilder;\n```\n\n### addInterfaceImplementation\n```ts\n  /**\n   * Register an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): IClientConfigBuilder;\n```\n\n### addInterfaceImplementations\n```ts\n  /**\n   * Register one or more implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUris: a list of URIs for the implementations\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementations(\n    interfaceUri: string,\n    implementationUris: Array<string>\n  ): IClientConfigBuilder;\n```\n\n### removeInterfaceImplementation\n```ts\n  /**\n   * Remove an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): IClientConfigBuilder;\n```\n\n### addRedirect\n```ts\n  /**\n   * Add a redirect from one URI to another\n   *\n   * @param from: the URI to redirect from\n   * @param to: the URI to redirect to\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addRedirect(from: string, to: string): IClientConfigBuilder;\n```\n\n### addRedirects\n```ts\n  /**\n   * Add an array of URI redirects\n   *\n   * @param redirects: an object where key is from and value is to\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addRedirects(redirects: Record<string, string>): IClientConfigBuilder;\n```\n\n### removeRedirect\n```ts\n  /**\n   * Remove a URI redirect\n   *\n   * @param from: the URI that is being redirected\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeRedirect(from: string): IClientConfigBuilder;\n```\n\n### addResolver\n```ts\n  /**\n   * Add a URI Resolver, capable of resolving a URI to a wrapper\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolver: A UriResolverLike\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addResolver(resolver: UriResolverLike): IClientConfigBuilder;\n```\n\n### addResolvers\n```ts\n  /**\n   * Add one or more URI Resolvers, capable of resolving URIs to wrappers\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolvers: A list of UriResolverLike\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addResolvers(resolvers: UriResolverLike[]): IClientConfigBuilder;\n```\n\n### addDefaults\n```ts\n  /**\n   * Add the default configuration bundle\n   *\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addDefaults(): IClientConfigBuilder;\n```\n\n### build\n```ts\n  /**\n   * Build a sanitized core client configuration that can be passed to the PolywrapClient or PolywrapCoreClient constructors\n   *\n   * @param options - Use a custom wrapper cache or resolver\n   * @returns CoreClientConfig that results from applying all the steps in the builder pipeline\n   */\n  build(options?: BuildOptions): CoreClientConfig;\n```\n\n## Bundles\n\n### Bundle: DefaultConfig\n```ts\nexport const ipfsProviders: string[] = [\n  \"https://ipfs.wrappers.io\",\n  \"https://ipfs.io\",\n];\n\ninterface IDefaultEmbed {\n  uri: Uri;\n  package: IWrapPackage;\n  source: Uri;\n}\n\ninterface IDefaultEmbeds {\n  ipfsHttpClient: IDefaultEmbed;\n  ipfsResolver: IDefaultEmbed;\n}\n\nexport const embeds: IDefaultEmbeds = {\n  ipfsHttpClient: {\n    uri: Uri.from(\"embed/ipfs-http-client@1.0.0\"),\n    package: ipfsHttpClient.wasmPackage,\n    source: Uri.from(\"ens/wraps.eth:ipfs-http-client@1.0.0\"),\n  },\n  ipfsResolver: {\n    uri: Uri.from(\"embed/async-ipfs-uri-resolver-ext@1.0.0\"),\n    package: ipfsResolver.wasmPackage,\n    source: Uri.from(\"ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.0\"),\n  },\n};\n\ntype UriResolverExtBootloader = [IDefaultEmbed, IUriRedirect, ...Uri[]];\n\nexport const uriResolverExts: UriResolverExtBootloader = [\n  embeds.ipfsResolver,\n  {\n    from: Uri.from(\"ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.0\"),\n    to: Uri.from(\"ipfs/QmaM318ABUXDhc5eZGGbmDxkb2ZgnbLxigm5TyZcCsh1Kw\"),\n  },\n  Uri.from(\"ens/wraps.eth:http-uri-resolver-ext@1.0.0\"),\n  Uri.from(\"ens/wraps.eth:file-system-uri-resolver-ext@1.0.0\"),\n  Uri.from(\"ens/wraps.eth:ens-uri-resolver-ext@1.0.0\"),\n  Uri.from(\"ens/wraps.eth:ens-ipfs-contenthash-uri-resolver-ext@1.0.0\"),\n  Uri.from(\"ens/wraps.eth:ens-ocr-contenthash-uri-resolver-ext@1.0.0\"),\n];\n\ninterface IDefaultPlugin {\n  uri: Uri;\n  plugin: PluginPackage<unknown>;\n  implements: Uri[];\n}\n\ninterface IDefaultPlugins {\n  logger: IDefaultPlugin;\n  http: IDefaultPlugin;\n  fileSystem: IDefaultPlugin;\n  concurrent: IDefaultPlugin;\n  ethereumProvider: IDefaultPlugin;\n}\n\nexport const plugins: IDefaultPlugins = {\n  logger: {\n    uri: Uri.from(\"plugin/logger@1.0.0\"),\n    plugin: loggerPlugin({}),\n    implements: [Uri.from(\"ens/wraps.eth:logger@1.0.0\")],\n  },\n  http: {\n    uri: Uri.from(\"plugin/http@1.1.0\"),\n    plugin: httpPlugin({}),\n    implements: [\n      Uri.from(\"ens/wraps.eth:http@1.1.0\"),\n      Uri.from(\"ens/wraps.eth:http@1.0.0\"),\n    ],\n  },\n  fileSystem: {\n    uri: Uri.from(\"plugin/file-system@1.0.0\"),\n    plugin: fileSystemPlugin({}),\n    implements: [Uri.from(\"ens/wraps.eth:file-system@1.0.0\")],\n  },\n  concurrent: {\n    uri: Uri.from(\"plugin/concurrent@1.0.0\"),\n    plugin: concurrentPromisePlugin({}),\n    implements: [Uri.from(\"ens/wraps.eth:concurrent@1.0.0\")],\n  },\n  ethereumProvider: {\n    uri: Uri.from(\"plugin/ethereum-provider@1.1.0\"),\n    plugin: ethereumProviderPlugin({\n      connections: new Connections({\n        networks: {\n          mainnet: new Connection({\n            provider:\n              \"https://mainnet.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n          }),\n          goerli: new Connection({\n            provider:\n              \"https://goerli.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n          }),\n        },\n      }),\n    }),\n    implements: [\n      Uri.from(\"ens/wraps.eth:ethereum-provider@1.1.0\"),\n      Uri.from(\"ens/wraps.eth:ethereum-provider@1.0.0\"),\n    ],\n  },\n};\n\nexport function getConfig(): BuilderConfig {\n  const builder = new ClientConfigBuilder();\n\n  // Add all embedded packages\n  for (const embed of Object.values(embeds)) {\n    builder.addPackage(embed.uri.uri, embed.package);\n\n    // Add source redirect\n    builder.addRedirect(embed.source.uri, embed.uri.uri);\n\n    // Add source implementation\n    builder.addInterfaceImplementation(embed.source.uri, embed.uri.uri);\n  }\n\n  // Add all plugin packages\n  for (const plugin of Object.values(plugins)) {\n    builder.addPackage(plugin.uri.uri, plugin.plugin);\n\n    // Add all interface implementations & redirects\n    for (const interfaceUri of plugin.implements) {\n      builder.addInterfaceImplementation(interfaceUri.uri, plugin.uri.uri);\n      builder.addRedirect(interfaceUri.uri, plugin.uri.uri);\n    }\n  }\n\n  // Add all uri-resolver-ext interface implementations\n  builder.addInterfaceImplementations(\n    ExtendableUriResolver.defaultExtInterfaceUris[0].uri,\n    [\n      uriResolverExts[0].source.uri,\n      uriResolverExts[1].from.uri,\n      ...uriResolverExts.slice(2).map((x: Uri) => x.uri),\n    ]\n  );\n  builder.addRedirect(uriResolverExts[1].from.uri, uriResolverExts[1].to.uri);\n\n  // Configure the ipfs-uri-resolver provider endpoints & retry counts\n  builder.addEnv(embeds.ipfsResolver.source.uri, {\n    provider: ipfsProviders[0],\n    fallbackProviders: ipfsProviders.slice(1),\n    retries: { tryResolveUri: 2, getFile: 2 },\n  });\n\n  return builder.config;\n}\n```","_id":"@polywrap/client-config-builder-js@0.10.0-pre.12","dist":{"shasum":"75d1f3e4bd5e2ff2486014a65ff609e7e5b617ed","integrity":"sha512-S9fJ5oVIFa/fTd0V3+Qw8Ss66HrMH6WOKI+s1whjeqL7HYKf4Ktt+bgA/MPfRFP7FgyVFF4mzaeHDWFjNZEaTA==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0-pre.12.tgz","fileCount":48,"unpackedSize":656557,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCOb/Um0FJoyxWL2CjOUrdE8BpsWFEoGZtBM+THnAtHfAIhAN5BL9gTrNOxCPJ8lXVczigSoNqYNjEx7CtNJeuiF5w4"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEAEeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrFRRAAnipenxca+HtiFbmoxmvr3bGO54Bt+bzoNA+dfuQELJUnVyVw\r\nWE0rC+GmszgkeQj+Sr7cJnKxlbjPnViOQ841GhS9nsyZYrfQxKzSGUT7uEQj\r\nLiRYHatPXu/TCkb7v3lPQk9HS0A9Pa89ydSnSujEh/k4iB+of1QLDyq/JjMB\r\nIeM/c9EKIsSCRBsHuKjUJre4aPFkTlh3FAW12+uzjhDqZbi0dVFS6CJ6yYIh\r\ndykuvRHCVn0aVmtsZs2ghLsvsUGnhEwW5gJtCIv6ZDaa34xTvXJ/Ew1qljNY\r\nrluR5PLQEpmYOVoKNL7oEb1qdxq3F8YhvWKnm/D/fHKqRGorCKXHkSAL6jTh\r\nQm/A3FnCt2DMY/aomCWke19ylLVEzz76tBeX/d2wn8K3u8MBlVlqkuimQNr2\r\nOlqliHDMkARQ1yn9Ho7gJU9gAiYTlf0l6K9V9BK3EJO9Jorfd/ZvSrQ6U60x\r\n4uLRbESy5HypE33h5wK/ahEflxNEPUotec6XWlFqARBv2zsbFrnkbjZign7P\r\n0VHc+mC7I+O7zWnuv5wdhmpcIcyZDint8yqgQHWNujpW6Say1mMMzaz4/OPr\r\nfHh3TUSpz5tnbF8QLZ0+6pA9VWJzbgI3Kx14T4BFoi/oUcqJFmSaixypXwlF\r\nwMI+tzAsvmOezuK9pKwKmgP9u26WuRi87GI=\r\n=YUjq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.10.0-pre.12_1678770461916_0.04390075166456664"},"_hasShrinkwrap":false},"0.10.0-pre.13":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.10.0-pre.13","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"yarn embed:wrappers && yarn build:fast && yarn build:snippets && yarn build:readme","build:fast":"rimraf ./build && tsc --project tsconfig.build.json","embed:wrappers":"ts-node ./scripts/embed-wrappers.ts","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose","build:snippets":"tsc --project ./examples/tsconfig.examples.json","build:readme":"yarn doc-snippets combine"},"dependencies":{"@polywrap/concurrent-plugin-js":"~0.10.0-pre","@polywrap/core-js":"0.10.0-pre.13","@polywrap/ethereum-provider-js-v1":"npm:@polywrap/ethereum-provider-js@~0.2.4","@polywrap/ethereum-provider-js-v2":"npm:@polywrap/ethereum-provider-js@~0.3.0","@polywrap/file-system-plugin-js":"~0.10.0-pre","@polywrap/http-plugin-js":"~0.10.0-pre","@polywrap/logger-plugin-js":"0.10.0-pre.10","@polywrap/uri-resolver-extensions-js":"0.10.0-pre.13","@polywrap/uri-resolvers-js":"0.10.0-pre.13","@polywrap/wasm-js":"0.10.0-pre.13","base64-to-uint8array":"1.0.0"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","doc-snippets":"~1.0.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"10.9.1","typescript":"4.9.5"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"doc-snippets":{"extract":{"include":["./src/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}","./examples/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}"],"ignore":["./**/node_modules/**","./**/.polywrap/**","./**/__tests__/**"],"dir":"./"},"inject":{"dir":"./readme","include":"./README.md"},"startTokens":[{"pattern":"$start: ","inline":false},{"pattern":"/* $: {SNIPPET_NAME} */","inline":true}],"endTokens":[{"pattern":"$end","inline":false},{"pattern":"/* $ */","inline":true}],"outputDir":"./"},"readmeFilename":"README.md","readme":"# PolywrapClient Config Builder\n\nA utility class for building the PolywrapClient config. \n\nSupports building configs using method chaining or imperatively.\n\n## Quickstart\n\n### Initialize\n\nInitialize a ClientConfigBuilder using the [constructor](#constructor)\n\n```typescript\n  // start with a blank slate (typical usage)\n  const builder = new ClientConfigBuilder();\n```\n\n### Configure\n\nAdd client configuration with [add](#add), or flexibly mix and match builder [configuration methods](#addwrapper) to add and remove configuration items.\n\n```typescript\n  // add multiple items to the configuration using the catch-all `add` method\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add or remove items by chaining method calls\n  builder\n    .addPackage(\"wrap://plugin/package\", httpPlugin({}))\n    .removePackage(\"wrap://plugin/package\")\n    .addPackages(\n      {\n        \"wrap://plugin/http\": httpPlugin({}),\n        \"wrap://plugin/filesystem\": fileSystemPlugin({}),\n      }\n    );\n```\n\nYou can add the entire [default client configuration bundle](#bundle--defaultconfig) at once with [addDefaults](#adddefaults)\n\n```typescript\n  builder.addDefaults();\n```\n\n### Build\n\nFinally, build a ClientConfig or CoreClientConfig to pass to the PolywrapClient constructor.\n\n```typescript\n  // accepted by either the PolywrapClient or the PolywrapCoreClient\n  let coreClientConfig = builder.build();\n\n  // build with a custom cache\n  coreClientConfig = builder.build({\n    wrapperCache: new WrapperCache(),\n  });\n\n  // or build with a custom resolver\n  coreClientConfig = builder.build({\n    resolver: RecursiveResolver.from([]),\n  });\n```\n\n### Example\n\nA complete example using all or most of the available methods.\n\n```typescript=\n  // init\n  const builder = new ClientConfigBuilder();\n\n  // add the default bundle first to override its entries later\n  builder.addDefaults();\n\n  // add many config items at once\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add and remove wrappers\n  builder\n    .addWrapper(\"wrap://ens/wrapper.eth\", await WasmWrapper.from(\n      new Uint8Array([1, 2, 3]),\n      new Uint8Array([1, 2, 3])\n    ))\n    .removeWrapper(\"wrap://ens/wrapper.eth\")\n    .addWrappers({\n      \"wrap://ens/wrapper.eth\": await WasmWrapper.from(\n          new Uint8Array([1, 2, 3]),\n          new Uint8Array([1, 2, 3])\n      )}\n    );\n\n  // add and remove wrap packages\n  builder\n    .addPackage(\"wrap://plugin/package\", httpPlugin({}))\n    .removePackage(\"wrap://plugin/package\")\n    .addPackages({\n      \"wrap://plugin/package\": httpPlugin({})\n    })\n\n  // add and remove Envs\n  builder\n    .addEnv(\"wrap://ens/wrapper.eth\", { key: \"value\" })\n    .removeEnv(\"wrap://ens/wrapper.eth\")\n    .addEnvs({\n      \"wrap://ens/wrapper.eth\": { key: \"value\" },\n    });\n\n  // override existing Env, or add new Env if one is not registered at URI\n  builder.setEnv(\"wrap://ens/wrapper.eth\", { key: \"value\" });\n\n  // add or remove registration for an implementation of an interface\n  builder\n    .addInterfaceImplementation(\n      \"wrap://ens/interface.eth\",\n      \"wrap://ens/wrapper.eth\"\n    )\n    .removeInterfaceImplementation(\n      \"wrap://ens/interface.eth\",\n      \"wrap://ens/wrapper.eth\"\n    )\n    .addInterfaceImplementations(\"wrap://ens/interface.eth\", [\n      \"wrap://ens/wrapper.eth\",\n    ]);\n\n  // add or remove URI redirects\n  builder\n    .addRedirect(\"wrap://ens/from.eth\", \"wrap://ens/to.eth\")\n    .removeRedirect(\"wrap://ens/from.eth\")\n    .addRedirects({\n       \"wrap://ens/from.eth\": \"wrap://ens/to.eth\",\n    });\n\n  // add resolvers\n  builder.addResolver(RecursiveResolver.from([]));\n  builder.addResolvers([]);\n\n  // build\n  const clientConfig = builder.build();\n```\n\n# Reference\n\n## ClientConfigBuilder\n\n### Constructor\n```ts\n  /**\n   * Instantiate a ClientConfigBuilder\n   */\n  constructor() \n```\n\n### add\n```ts\n  /**\n   * Add a partial BuilderConfig\n   * This is equivalent to calling each of the plural add functions: `addEnvs`, `addWrappers`, etc.\n   *\n   * @param config: a partial BuilderConfig\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  add(config: Partial<BuilderConfig>): IClientConfigBuilder;\n```\n\n### addWrapper\n```ts\n  /**\n   * Add an embedded wrapper\n   *\n   * @param uri: uri of wrapper\n   * @param wrapper: wrapper to be added\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addWrapper(uri: string, wrapper: Wrapper): IClientConfigBuilder;\n```\n\n### addWrappers\n```ts\n  /**\n   * Add one or more embedded wrappers.\n   * This is equivalent to calling addWrapper for each wrapper.\n   *\n   * @param uriWrappers: an object where keys are uris and wrappers are value\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addWrappers(uriWrappers: Record<string, Wrapper>): IClientConfigBuilder;\n```\n\n### removeWrapper\n```ts\n  /**\n   * Remove an embedded wrapper\n   *\n   * @param uri: the wrapper's URI\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeWrapper(uri: string): IClientConfigBuilder;\n```\n\n### addPackage\n```ts\n  /**\n   * Add an embedded wrap package\n   *\n   * @param uri: uri of wrapper\n   * @param wrapPackage: package to be added\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addPackage(uri: string, wrapPackage: IWrapPackage): IClientConfigBuilder;\n```\n\n### addPackages\n```ts\n  /**\n   * Add one or more embedded wrap packages\n   * This is equivalent to calling addPackage for each package\n   *\n   * @param uriPackages: an object where keys are uris and packages are value\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addPackages(uriPackages: Record<string, IWrapPackage>): IClientConfigBuilder;\n```\n\n### removePackage\n```ts\n  /**\n   * Remove an embedded wrap package\n   *\n   * @param uri: the package's URI\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removePackage(uri: string): IClientConfigBuilder;\n```\n\n### addEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is modified.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the env variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addEnv(uri: string, env: Record<string, unknown>): IClientConfigBuilder;\n```\n\n### addEnvs\n```ts\n  /**\n   * Add one or more Envs\n   * This is equivalent to calling addEnv for each Env\n   *\n   * @param uriEnvs: and object where key is the uri and value is the another object with the env variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addEnvs(\n    uriEnvs: Record<string, Record<string, unknown>>\n  ): IClientConfigBuilder;\n```\n\n### removeEnv\n```ts\n  /**\n   * Remove an Env\n   *\n   * @param uri: the URI associated with the Env\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeEnv(uri: string): IClientConfigBuilder;\n```\n\n### setEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is replaced.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the environment variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  setEnv(uri: string, env: Record<string, unknown>): IClientConfigBuilder;\n```\n\n### addInterfaceImplementation\n```ts\n  /**\n   * Register an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): IClientConfigBuilder;\n```\n\n### addInterfaceImplementations\n```ts\n  /**\n   * Register one or more implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUris: a list of URIs for the implementations\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementations(\n    interfaceUri: string,\n    implementationUris: Array<string>\n  ): IClientConfigBuilder;\n```\n\n### removeInterfaceImplementation\n```ts\n  /**\n   * Remove an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): IClientConfigBuilder;\n```\n\n### addRedirect\n```ts\n  /**\n   * Add a redirect from one URI to another\n   *\n   * @param from: the URI to redirect from\n   * @param to: the URI to redirect to\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addRedirect(from: string, to: string): IClientConfigBuilder;\n```\n\n### addRedirects\n```ts\n  /**\n   * Add an array of URI redirects\n   *\n   * @param redirects: an object where key is from and value is to\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addRedirects(redirects: Record<string, string>): IClientConfigBuilder;\n```\n\n### removeRedirect\n```ts\n  /**\n   * Remove a URI redirect\n   *\n   * @param from: the URI that is being redirected\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeRedirect(from: string): IClientConfigBuilder;\n```\n\n### addResolver\n```ts\n  /**\n   * Add a URI Resolver, capable of resolving a URI to a wrapper\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolver: A UriResolverLike\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addResolver(resolver: UriResolverLike): IClientConfigBuilder;\n```\n\n### addResolvers\n```ts\n  /**\n   * Add one or more URI Resolvers, capable of resolving URIs to wrappers\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolvers: A list of UriResolverLike\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addResolvers(resolvers: UriResolverLike[]): IClientConfigBuilder;\n```\n\n### addDefaults\n```ts\n  /**\n   * Add the default configuration bundle\n   *\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addDefaults(): IClientConfigBuilder;\n```\n\n### build\n```ts\n  /**\n   * Build a sanitized core client configuration that can be passed to the PolywrapClient or PolywrapCoreClient constructors\n   *\n   * @param options - Use a custom wrapper cache or resolver\n   * @returns CoreClientConfig that results from applying all the steps in the builder pipeline\n   */\n  build(options?: BuildOptions): CoreClientConfig;\n```\n\n## Bundles\n\n### Bundle: DefaultConfig\n```ts\nexport const ipfsProviders: string[] = [\n  \"https://ipfs.wrappers.io\",\n  \"https://ipfs.io\",\n];\n\ninterface IDefaultEmbed {\n  uri: Uri;\n  package: IWrapPackage;\n  source: Uri;\n}\n\ninterface IDefaultEmbeds {\n  ipfsHttpClient: IDefaultEmbed;\n  ipfsResolver: IDefaultEmbed;\n}\n\nexport const embeds: IDefaultEmbeds = {\n  ipfsHttpClient: {\n    uri: Uri.from(\"embed/ipfs-http-client@1.0.0\"),\n    package: ipfsHttpClient.wasmPackage,\n    source: Uri.from(\"ens/wraps.eth:ipfs-http-client@1.0.0\"),\n  },\n  ipfsResolver: {\n    uri: Uri.from(\"embed/async-ipfs-uri-resolver-ext@1.0.0\"),\n    package: ipfsResolver.wasmPackage,\n    source: Uri.from(\"ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.0\"),\n  },\n};\n\ntype UriResolverExtBootloader = [IDefaultEmbed, IUriRedirect, ...Uri[]];\n\nexport const uriResolverExts: UriResolverExtBootloader = [\n  embeds.ipfsResolver,\n  {\n    from: Uri.from(\"ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.0\"),\n    to: Uri.from(\"ipfs/QmaM318ABUXDhc5eZGGbmDxkb2ZgnbLxigm5TyZcCsh1Kw\"),\n  },\n  Uri.from(\"ens/wraps.eth:http-uri-resolver-ext@1.0.0\"),\n  Uri.from(\"ens/wraps.eth:file-system-uri-resolver-ext@1.0.0\"),\n  Uri.from(\"ens/wraps.eth:ens-uri-resolver-ext@1.0.0\"),\n  Uri.from(\"ens/wraps.eth:ens-ipfs-contenthash-uri-resolver-ext@1.0.0\"),\n  Uri.from(\"ens/wraps.eth:ens-ocr-contenthash-uri-resolver-ext@1.0.0\"),\n];\n\ninterface IDefaultPlugin {\n  uri: Uri;\n  plugin: IWrapPackage;\n  implements: Uri[];\n}\n\ninterface IDefaultPlugins {\n  logger: IDefaultPlugin;\n  http: IDefaultPlugin;\n  fileSystem: IDefaultPlugin;\n  concurrent: IDefaultPlugin;\n  ethereumProviderV1: IDefaultPlugin;\n  ethereumProviderV2: IDefaultPlugin;\n}\n\nexport const plugins: IDefaultPlugins = {\n  logger: {\n    uri: Uri.from(\"plugin/logger@1.0.0\"),\n    plugin: loggerPlugin({}),\n    implements: [Uri.from(\"ens/wraps.eth:logger@1.0.0\")],\n  },\n  http: {\n    uri: Uri.from(\"plugin/http@1.1.0\"),\n    plugin: httpPlugin({}),\n    implements: [\n      Uri.from(\"ens/wraps.eth:http@1.1.0\"),\n      Uri.from(\"ens/wraps.eth:http@1.0.0\"),\n    ],\n  },\n  fileSystem: {\n    uri: Uri.from(\"plugin/file-system@1.0.0\"),\n    plugin: fileSystemPlugin({}),\n    implements: [Uri.from(\"ens/wraps.eth:file-system@1.0.0\")],\n  },\n  concurrent: {\n    uri: Uri.from(\"plugin/concurrent@1.0.0\"),\n    plugin: concurrentPromisePlugin({}),\n    implements: [Uri.from(\"ens/wraps.eth:concurrent@1.0.0\")],\n  },\n  ethereumProviderV1: {\n    uri: Uri.from(\"plugin/ethereum-provider@1.1.0\"),\n    plugin: EthProviderV1.plugin({\n      connections: new EthProviderV1.Connections({\n        networks: {\n          mainnet: new EthProviderV1.Connection({\n            provider:\n              \"https://mainnet.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n          }),\n          goerli: new EthProviderV1.Connection({\n            provider:\n              \"https://goerli.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n          }),\n        },\n      }),\n    }),\n    implements: [\n      Uri.from(\"ens/wraps.eth:ethereum-provider@1.1.0\"),\n      Uri.from(\"ens/wraps.eth:ethereum-provider@1.0.0\"),\n    ],\n  },\n  ethereumProviderV2: {\n    uri: Uri.from(\"plugin/ethereum-provider@2.0.0\"),\n    plugin: EthProviderV2.plugin({\n      connections: new EthProviderV2.Connections({\n        networks: {\n          mainnet: new EthProviderV2.Connection({\n            provider:\n              \"https://mainnet.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n          }),\n          goerli: new EthProviderV2.Connection({\n            provider:\n              \"https://goerli.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n          }),\n        },\n      }),\n    }),\n    implements: [Uri.from(\"ens/wraps.eth:ethereum-provider@2.0.0\")],\n  },\n};\n\nexport function getConfig(): BuilderConfig {\n  const builder = new ClientConfigBuilder();\n\n  // Add all embedded packages\n  for (const embed of Object.values(embeds)) {\n    builder.addPackage(embed.uri.uri, embed.package);\n\n    // Add source redirect\n    builder.addRedirect(embed.source.uri, embed.uri.uri);\n\n    // Add source implementation\n    builder.addInterfaceImplementation(embed.source.uri, embed.uri.uri);\n  }\n\n  // Add all plugin packages\n  for (const plugin of Object.values(plugins)) {\n    builder.addPackage(plugin.uri.uri, plugin.plugin);\n\n    // Add all interface implementations & redirects\n    for (const interfaceUri of plugin.implements) {\n      builder.addInterfaceImplementation(interfaceUri.uri, plugin.uri.uri);\n      builder.addRedirect(interfaceUri.uri, plugin.uri.uri);\n    }\n  }\n\n  // Add all uri-resolver-ext interface implementations\n  builder.addInterfaceImplementations(\n    ExtendableUriResolver.defaultExtInterfaceUris[0].uri,\n    [\n      uriResolverExts[0].source.uri,\n      uriResolverExts[1].from.uri,\n      ...uriResolverExts.slice(2).map((x: Uri) => x.uri),\n    ]\n  );\n  builder.addRedirect(uriResolverExts[1].from.uri, uriResolverExts[1].to.uri);\n\n  // Configure the ipfs-uri-resolver provider endpoints & retry counts\n  builder.addEnv(embeds.ipfsResolver.source.uri, {\n    provider: ipfsProviders[0],\n    fallbackProviders: ipfsProviders.slice(1),\n    retries: { tryResolveUri: 2, getFile: 2 },\n  });\n\n  return builder.config;\n}\n```","_id":"@polywrap/client-config-builder-js@0.10.0-pre.13","dist":{"shasum":"971f5d8f8c8a3a9c292d921c1e91e291b08ff206","integrity":"sha512-BjLm1zaDJLQTbAfWyB7w5WFB5njaDaGQeMZa+tEylWyv7Ztg3crNn2RErwlTBF4PyW8O52bepEy9KrO3ZNPeTQ==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0-pre.13.tgz","fileCount":48,"unpackedSize":659822,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH8yTNKUVfFvY0qt3jxrEl5CSKBnxSGpn7/kn09glTNyAiEA1j7hywfLAGXv927ytXbrdTRNNoMjD6Q7muPry+wNkSU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkFRIiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo2uA/5AGgb1rUCi7tKDarTnDKl9nvuFQIF7xSjLrOE6Fo4C9V7UftW\r\ndtcrfK1qZNbhXhGL1hGVu25chV334E8VH0GhAymH9MVRpgTa3ewjEtKWTCrw\r\nz/j36rJyT5kOHXjKo//22WvnVM1V0vM9H/SIw6nsLm+liiW2db15mMIrN0Cl\r\n5ZiSMptNAV3NiJcpkINjyw6SG5mN3jRKWNQonMXq/CEEsXBqpt/dSu2TCjwK\r\nhbeVOHZyQkTw9H1SGVinjNkK3Rkr/953neAs3EQ1dW50IJvLjOTsTr7Nthg2\r\nkame8Uj4qRl1qSwYAo6WkNJbHlxyIX/A4yT+ZNhl/PbwmC/uky/brgIRkQ2F\r\n+lIGRzeytgVgbzS0x+6MWMk8aZN3iQdBAXDvtpz1YjqTuiOXgJiOiItPtmM6\r\n0YXQIFASyNZ2tKGBSnVODn0H6uvA4ep1rWTedVZpWiZrQdKueiJdhDGP6C8N\r\nm60oKRdnfU3s6ZKtFiC74A3kIZdpIp4qv1SvMs+UV0wk1fKQZZ8XlfXEBdug\r\nlVxpUoEIQQfTXaG+TmDotzG30XVpYvgzuUPkTGjcy74GRn7ornfbDsedEhCZ\r\nUFWBnlGzGtcNW8MEndDv3aK4DnG41QibeKSUHxFQGNuG+9TigtBIu4O7mj2t\r\nWCETKKnVI0PKlhi7L/CtTnWqcRI9Ai7WjFI=\r\n=H5WP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.10.0-pre.13_1679102497899_0.9289211801903998"},"_hasShrinkwrap":false},"0.9.7":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.9.7","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:ci":"jest --passWithNoTests --runInBand --verbose","test:watch":"jest --watch --passWithNoTests --verbose"},"dependencies":{"@polywrap/core-js":"0.9.7","@polywrap/ens-resolver-plugin-js":"0.9.7","@polywrap/ethereum-plugin-js":"0.9.7","@polywrap/fs-plugin-js":"0.9.7","@polywrap/fs-resolver-plugin-js":"0.9.7","@polywrap/http-plugin-js":"0.9.7","@polywrap/http-resolver-plugin-js":"0.9.7","@polywrap/ipfs-plugin-js":"0.9.7","@polywrap/ipfs-resolver-plugin-js":"0.9.7","@polywrap/logger-plugin-js":"0.9.7","@polywrap/tracing-js":"0.9.7","@polywrap/uri-resolver-extensions-js":"0.9.7","@polywrap/uri-resolvers-js":"0.9.7","@polywrap/wasm-js":"0.9.7","@polywrap/wrap-manifest-types-js":"0.9.7"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"8.10.2","typescript":"4.1.6"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"_id":"@polywrap/client-config-builder-js@0.9.7","dist":{"shasum":"39239044ea558c785076e083dfb209c1481dd411","integrity":"sha512-ubgGDKHzAj6bb47Ye5dT1JAqUo9fcT7P3Vmr9oMvGpiXZ754Pqo4/6HdQ1Td35AOzJasK2JoKISmVrndEEtv2A==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.9.7.tgz","fileCount":17,"unpackedSize":34041,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCIG0v3V7cI+9SJq7SiadqzhpHK5tQadDnWFCqQI8xa2YtAh8S2si5043gzIbLe1GAAAN8YRAKLxnrzy5blvgaL6KA"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkI2PMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpTHw/9FEyVeJYAwYeKDxFanpaMxqghl2HiNkj72qPLKta5occuA5o6\r\n+JRtUFUxVSZ9F8y1Jze7QuEN6pGf5GaP+HGCCpkUlz4lWAU3Vo+3ShV7IxcE\r\nsiXyr1NKMnxgEUhJDsrwBMHWzKEst4U0ieAYpojJy7lXKayySGrhmsFg9Ni+\r\nnrK9O2d2MopkROMBQx/lUmHmbwXqPhOehS7stWsXUrnmnq/+yZAFOUqhTw1V\r\nlTk1SQ1vAbQg764y84jVQmsRjjBnJ4nbHAbHXzXA++f7FEvJlL94Ns6fYWdn\r\nwdhS56xCnk6ELmtzqKPw7oBqWxt1/KJYh1Yf41O6wl/Vbm9j8EvJ6dwUcQVM\r\ngXfnfqo9WEYG9xIIyf6S0TJ/0bkAF6+PjvdGqqIutWiQbHfbL31CSw60Md8J\r\ngX/y7tTdYt/t4EMMQyjNzYaQmwU3FcCxa4dmp4YVHNPl/XjhrMMKjqX+EteB\r\nc5KcgjC36X/doeatMdAw5m4c3Pe2tPJUdGzUiepkv3L75b7e4rsBvwVK2D7s\r\nqQsbIFc3jgjpKpZOSXHkOdfzyFtTVPjJFBec0GFlvzqbHgeBu7TNz/NPku/Y\r\nUBqdC95QGUCKIcRYvUNihcZdEACpKBfligwregI/n3eLFynQG8cosLaDXTNd\r\n1A4JqJJbfqqgCvJY5NJFOkXFjvzKLiXNdvM=\r\n=NEnv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.9.7_1680040908417_0.6696005821332021"},"_hasShrinkwrap":false},"0.10.0-pre.14":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.10.0-pre.14","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"yarn embed:wrappers && yarn build:fast","build:docs":"yarn build:snippets && yarn build:readme","build:fast":"rimraf ./build && tsc --project tsconfig.build.json","embed:wrappers":"ts-node ./scripts/embed-wrappers.ts","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:watch":"yarn test -- --watch","build:snippets":"tsc --project ./examples/tsconfig.examples.json","build:readme":"yarn doc-snippets combine"},"dependencies":{"@polywrap/concurrent-plugin-js":"~0.10.0-pre","@polywrap/core-js":"0.10.0-pre.14","@polywrap/ethereum-provider-js-v1":"npm:@polywrap/ethereum-provider-js@~0.2.4","@polywrap/ethereum-provider-js-v2":"npm:@polywrap/ethereum-provider-js@~0.3.0","@polywrap/file-system-plugin-js":"~0.10.0-pre","@polywrap/http-plugin-js":"~0.10.0-pre","@polywrap/logger-plugin-js":"0.10.0-pre.10","@polywrap/uri-resolver-extensions-js":"0.10.0-pre.14","@polywrap/uri-resolvers-js":"0.10.0-pre.14","@polywrap/wasm-js":"0.10.0-pre.14","base64-to-uint8array":"1.0.0"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","doc-snippets":"~1.0.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"10.9.1","typescript":"4.9.5"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"doc-snippets":{"extract":{"include":["./src/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}","./examples/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}"],"ignore":["./**/node_modules/**","./**/.polywrap/**","./**/__tests__/**"],"dir":"./"},"inject":{"dir":"./readme","include":"./README.md"},"startTokens":[{"pattern":"$start: ","inline":false},{"pattern":"/* $: {SNIPPET_NAME} */","inline":true}],"endTokens":[{"pattern":"$end","inline":false},{"pattern":"/* $ */","inline":true}],"outputDir":"./"},"readmeFilename":"README.md","readme":"# PolywrapClient Config Builder\n\nA utility class for building the PolywrapClient config. \n\nSupports building configs using method chaining or imperatively.\n\n## Quickstart\n\n### Initialize\n\nInitialize a ClientConfigBuilder using the [constructor](#constructor)\n\n```typescript\n  // start with a blank slate (typical usage)\n  const builder = new ClientConfigBuilder();\n```\n\n### Configure\n\nAdd client configuration with [add](#add), or flexibly mix and match builder [configuration methods](#addwrapper) to add and remove configuration items.\n\n```typescript\n  // add multiple items to the configuration using the catch-all `add` method\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add or remove items by chaining method calls\n  builder\n    .addPackage(\"wrap://plugin/package\", httpPlugin({}))\n    .removePackage(\"wrap://plugin/package\")\n    .addPackages({\n      \"wrap://plugin/http\": httpPlugin({}),\n      \"wrap://plugin/filesystem\": fileSystemPlugin({}),\n    });\n```\n\nYou can add the entire [default client configuration bundle](#bundle--defaultconfig) at once with [addDefaults](#adddefaults)\n\n```typescript\n  builder.addDefaults();\n```\n\n### Build\n\nFinally, build a ClientConfig or CoreClientConfig to pass to the PolywrapClient constructor.\n\n```typescript\n  // accepted by either the PolywrapClient or the PolywrapCoreClient\n  let coreClientConfig = builder.build();\n\n  // build with a custom cache\n  coreClientConfig = builder.build({\n    resolutionResultCache: new ResolutionResultCache(),\n  });\n\n  // or build with a custom resolver\n  coreClientConfig = builder.build({\n    resolver: RecursiveResolver.from([]),\n  });\n```\n\n### Example\n\nA complete example using all or most of the available methods.\n\n```typescript=\n  // init\n  const builder = new ClientConfigBuilder();\n\n  // add the default bundle first to override its entries later\n  builder.addDefaults();\n\n  // add many config items at once\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add and remove wrappers\n  builder\n    .addWrapper(\n      \"wrap://ens/wrapper.eth\",\n      await WasmWrapper.from(\n        new Uint8Array([1, 2, 3]),\n        new Uint8Array([1, 2, 3])\n      )\n    )\n    .removeWrapper(\"wrap://ens/wrapper.eth\")\n    .addWrappers({\n      \"wrap://ens/wrapper.eth\": await WasmWrapper.from(\n        new Uint8Array([1, 2, 3]),\n        new Uint8Array([1, 2, 3])\n      ),\n    });\n\n  // add and remove wrap packages\n  builder\n    .addPackage(\"wrap://plugin/package\", httpPlugin({}))\n    .removePackage(\"wrap://plugin/package\")\n    .addPackages({\n      \"wrap://plugin/package\": httpPlugin({}),\n    });\n\n  // add and remove Envs\n  builder\n    .addEnv(\"wrap://ens/wrapper.eth\", { key: \"value\" })\n    .removeEnv(\"wrap://ens/wrapper.eth\")\n    .addEnvs({\n      \"wrap://ens/wrapper.eth\": { key: \"value\" },\n    });\n\n  // override existing Env, or add new Env if one is not registered at URI\n  builder.setEnv(\"wrap://ens/wrapper.eth\", { key: \"value\" });\n\n  // add or remove registration for an implementation of an interface\n  builder\n    .addInterfaceImplementation(\n      \"wrap://ens/interface.eth\",\n      \"wrap://ens/wrapper.eth\"\n    )\n    .removeInterfaceImplementation(\n      \"wrap://ens/interface.eth\",\n      \"wrap://ens/wrapper.eth\"\n    )\n    .addInterfaceImplementations(\"wrap://ens/interface.eth\", [\n      \"wrap://ens/wrapper.eth\",\n    ]);\n\n  // add or remove URI redirects\n  builder\n    .addRedirect(\"wrap://ens/from.eth\", \"wrap://ens/to.eth\")\n    .removeRedirect(\"wrap://ens/from.eth\")\n    .addRedirects({\n      \"wrap://ens/from.eth\": \"wrap://ens/to.eth\",\n    });\n\n  // add resolvers\n  builder.addResolver(RecursiveResolver.from([]));\n  builder.addResolvers([]);\n\n  // build\n  const clientConfig = builder.build();\n```\n\n# Reference\n\n## ClientConfigBuilder\n\n### Constructor\n```ts\n  /**\n   * Instantiate a ClientConfigBuilder\n   */\n  constructor() \n```\n\n### add\n```ts\n  /**\n   * Add a partial BuilderConfig\n   * This is equivalent to calling each of the plural add functions: `addEnvs`, `addWrappers`, etc.\n   *\n   * @param config: a partial BuilderConfig\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  add(config: Partial<BuilderConfig>): IClientConfigBuilder;\n```\n\n### addWrapper\n```ts\n  /**\n   * Add an embedded wrapper\n   *\n   * @param uri: uri of wrapper\n   * @param wrapper: wrapper to be added\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addWrapper(uri: string, wrapper: Wrapper): IClientConfigBuilder;\n```\n\n### addWrappers\n```ts\n  /**\n   * Add one or more embedded wrappers.\n   * This is equivalent to calling addWrapper for each wrapper.\n   *\n   * @param uriWrappers: an object where keys are uris and wrappers are value\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addWrappers(uriWrappers: Record<string, Wrapper>): IClientConfigBuilder;\n```\n\n### removeWrapper\n```ts\n  /**\n   * Remove an embedded wrapper\n   *\n   * @param uri: the wrapper's URI\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeWrapper(uri: string): IClientConfigBuilder;\n```\n\n### addPackage\n```ts\n  /**\n   * Add an embedded wrap package\n   *\n   * @param uri: uri of wrapper\n   * @param wrapPackage: package to be added\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addPackage(uri: string, wrapPackage: IWrapPackage): IClientConfigBuilder;\n```\n\n### addPackages\n```ts\n  /**\n   * Add one or more embedded wrap packages\n   * This is equivalent to calling addPackage for each package\n   *\n   * @param uriPackages: an object where keys are uris and packages are value\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addPackages(uriPackages: Record<string, IWrapPackage>): IClientConfigBuilder;\n```\n\n### removePackage\n```ts\n  /**\n   * Remove an embedded wrap package\n   *\n   * @param uri: the package's URI\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removePackage(uri: string): IClientConfigBuilder;\n```\n\n### addEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is modified.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the env variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addEnv(uri: string, env: Record<string, unknown>): IClientConfigBuilder;\n```\n\n### addEnvs\n```ts\n  /**\n   * Add one or more Envs\n   * This is equivalent to calling addEnv for each Env\n   *\n   * @param uriEnvs: and object where key is the uri and value is the another object with the env variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addEnvs(\n    uriEnvs: Record<string, Record<string, unknown>>\n  ): IClientConfigBuilder;\n```\n\n### removeEnv\n```ts\n  /**\n   * Remove an Env\n   *\n   * @param uri: the URI associated with the Env\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeEnv(uri: string): IClientConfigBuilder;\n```\n\n### setEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is replaced.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the environment variables for the uri\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  setEnv(uri: string, env: Record<string, unknown>): IClientConfigBuilder;\n```\n\n### addInterfaceImplementation\n```ts\n  /**\n   * Register an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): IClientConfigBuilder;\n```\n\n### addInterfaceImplementations\n```ts\n  /**\n   * Register one or more implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUris: a list of URIs for the implementations\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementations(\n    interfaceUri: string,\n    implementationUris: Array<string>\n  ): IClientConfigBuilder;\n```\n\n### removeInterfaceImplementation\n```ts\n  /**\n   * Remove an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): IClientConfigBuilder;\n```\n\n### addRedirect\n```ts\n  /**\n   * Add a redirect from one URI to another\n   *\n   * @param from: the URI to redirect from\n   * @param to: the URI to redirect to\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addRedirect(from: string, to: string): IClientConfigBuilder;\n```\n\n### addRedirects\n```ts\n  /**\n   * Add an array of URI redirects\n   *\n   * @param redirects: an object where key is from and value is to\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addRedirects(redirects: Record<string, string>): IClientConfigBuilder;\n```\n\n### removeRedirect\n```ts\n  /**\n   * Remove a URI redirect\n   *\n   * @param from: the URI that is being redirected\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  removeRedirect(from: string): IClientConfigBuilder;\n```\n\n### addResolver\n```ts\n  /**\n   * Add a URI Resolver, capable of resolving a URI to a wrapper\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolver: A UriResolverLike\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addResolver(resolver: UriResolverLike): IClientConfigBuilder;\n```\n\n### addResolvers\n```ts\n  /**\n   * Add one or more URI Resolvers, capable of resolving URIs to wrappers\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolvers: A list of UriResolverLike\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addResolvers(resolvers: UriResolverLike[]): IClientConfigBuilder;\n```\n\n### addDefaults\n```ts\n  /**\n   * Add the default configuration bundle\n   *\n   * @returns IClientConfigBuilder (mutated self)\n   */\n  addDefaults(): IClientConfigBuilder;\n```\n\n### build\n```ts\n  /**\n   * Build a sanitized core client configuration that can be passed to the PolywrapClient or PolywrapCoreClient constructors\n   *\n   * @param options - Use a custom wrapper cache or resolver\n   * @returns CoreClientConfig that results from applying all the steps in the builder pipeline\n   */\n  build(options?: BuildOptions): CoreClientConfig;\n```\n\n## Bundles\n\n### Bundle: DefaultConfig\n```ts\nexport const ipfsProviders: string[] = [\n  \"https://ipfs.wrappers.io\",\n  \"https://ipfs.io\",\n];\n\ninterface IDefaultEmbed {\n  uri: Uri;\n  package: IWrapPackage;\n  source: Uri;\n}\n\ninterface IDefaultEmbeds {\n  ipfsHttpClient: IDefaultEmbed;\n  ipfsResolver: IDefaultEmbed;\n}\n\nexport const embeds: IDefaultEmbeds = {\n  ipfsHttpClient: {\n    uri: Uri.from(\"embed/ipfs-http-client@1.0.0\"),\n    package: ipfsHttpClient.wasmPackage,\n    source: Uri.from(\"ens/wraps.eth:ipfs-http-client@1.0.0\"),\n  },\n  ipfsResolver: {\n    uri: Uri.from(\"embed/async-ipfs-uri-resolver-ext@1.0.1\"),\n    package: ipfsResolver.wasmPackage,\n    source: Uri.from(\"ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1\"),\n  },\n};\n\ntype UriResolverExtBootloader = [IDefaultEmbed, IUriRedirect, ...Uri[]];\n\nexport const uriResolverExts: UriResolverExtBootloader = [\n  embeds.ipfsResolver,\n  {\n    from: Uri.from(\"ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1\"),\n    to: Uri.from(\"ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs\"),\n  },\n  Uri.from(\"ens/wraps.eth:http-uri-resolver-ext@1.0.1\"),\n  Uri.from(\"ens/wraps.eth:file-system-uri-resolver-ext@1.0.1\"),\n  Uri.from(\"ens/wraps.eth:ens-uri-resolver-ext@1.0.1\"),\n  Uri.from(\"ens/wraps.eth:ens-ipfs-contenthash-uri-resolver-ext@1.0.1\"),\n];\n\ninterface IDefaultPlugin {\n  uri: Uri;\n  plugin: IWrapPackage;\n  implements: Uri[];\n}\n\ninterface IDefaultPlugins {\n  logger: IDefaultPlugin;\n  http: IDefaultPlugin;\n  fileSystem: IDefaultPlugin;\n  concurrent: IDefaultPlugin;\n  ethereumProviderV1: IDefaultPlugin;\n  ethereumProviderV2: IDefaultPlugin;\n}\n\nexport const plugins: IDefaultPlugins = {\n  logger: {\n    uri: Uri.from(\"plugin/logger@1.0.0\"),\n    plugin: loggerPlugin({}),\n    implements: [Uri.from(\"ens/wraps.eth:logger@1.0.0\")],\n  },\n  http: {\n    uri: Uri.from(\"plugin/http@1.1.0\"),\n    plugin: httpPlugin({}),\n    implements: [\n      Uri.from(\"ens/wraps.eth:http@1.1.0\"),\n      Uri.from(\"ens/wraps.eth:http@1.0.0\"),\n    ],\n  },\n  fileSystem: {\n    uri: Uri.from(\"plugin/file-system@1.0.0\"),\n    plugin: fileSystemPlugin({}),\n    implements: [Uri.from(\"ens/wraps.eth:file-system@1.0.0\")],\n  },\n  concurrent: {\n    uri: Uri.from(\"plugin/concurrent@1.0.0\"),\n    plugin: concurrentPromisePlugin({}),\n    implements: [Uri.from(\"ens/wraps.eth:concurrent@1.0.0\")],\n  },\n  ethereumProviderV1: {\n    uri: Uri.from(\"plugin/ethereum-provider@1.1.0\"),\n    plugin: EthProviderV1.plugin({\n      connections: new EthProviderV1.Connections({\n        networks: {\n          mainnet: new EthProviderV1.Connection({\n            provider:\n              \"https://mainnet.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n          }),\n          goerli: new EthProviderV1.Connection({\n            provider:\n              \"https://goerli.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n          }),\n        },\n      }),\n    }),\n    implements: [\n      Uri.from(\"ens/wraps.eth:ethereum-provider@1.1.0\"),\n      Uri.from(\"ens/wraps.eth:ethereum-provider@1.0.0\"),\n    ],\n  },\n  ethereumProviderV2: {\n    uri: Uri.from(\"plugin/ethereum-provider@2.0.0\"),\n    plugin: EthProviderV2.plugin({\n      connections: new EthProviderV2.Connections({\n        networks: {\n          mainnet: new EthProviderV2.Connection({\n            provider:\n              \"https://mainnet.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n          }),\n          goerli: new EthProviderV2.Connection({\n            provider:\n              \"https://goerli.infura.io/v3/b00b2c2cc09c487685e9fb061256d6a6\",\n          }),\n        },\n      }),\n    }),\n    implements: [Uri.from(\"ens/wraps.eth:ethereum-provider@2.0.0\")],\n  },\n};\n\nexport function getConfig(): BuilderConfig {\n  const builder = new ClientConfigBuilder();\n\n  // Add all embedded packages\n  for (const embed of Object.values(embeds)) {\n    builder.addPackage(embed.uri.uri, embed.package);\n\n    // Add source redirect\n    builder.addRedirect(embed.source.uri, embed.uri.uri);\n\n    // Add source implementation\n    builder.addInterfaceImplementation(embed.source.uri, embed.uri.uri);\n  }\n\n  // Add all plugin packages\n  for (const plugin of Object.values(plugins)) {\n    builder.addPackage(plugin.uri.uri, plugin.plugin);\n\n    // Add all interface implementations & redirects\n    for (const interfaceUri of plugin.implements) {\n      builder.addInterfaceImplementation(interfaceUri.uri, plugin.uri.uri);\n      builder.addRedirect(interfaceUri.uri, plugin.uri.uri);\n    }\n  }\n\n  // Add all uri-resolver-ext interface implementations\n  builder.addInterfaceImplementations(\n    ExtendableUriResolver.defaultExtInterfaceUris[0].uri,\n    [\n      uriResolverExts[0].source.uri,\n      uriResolverExts[1].from.uri,\n      ...uriResolverExts.slice(2).map((x: Uri) => x.uri),\n    ]\n  );\n  builder.addRedirect(uriResolverExts[1].from.uri, uriResolverExts[1].to.uri);\n\n  // Configure the ipfs-uri-resolver provider endpoints & retry counts\n  builder.addEnv(embeds.ipfsResolver.source.uri, {\n    provider: ipfsProviders[0],\n    fallbackProviders: ipfsProviders.slice(1),\n    retries: { tryResolveUri: 2, getFile: 2 },\n  });\n\n  return builder.config;\n}\n```","_id":"@polywrap/client-config-builder-js@0.10.0-pre.14","dist":{"shasum":"6453796dbcefc48c4715f14e32262b2c7c5a8d85","integrity":"sha512-sDaUyr5hOhiA2yqpN4h96qEpsbgPAcHC7oMuTVnmgDckSvw3peC1nufL/Zp7e1jlpUfHAe7U8aN9zFsSuvx/PA==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0-pre.14.tgz","fileCount":48,"unpackedSize":660065,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHNNgqNKsxAvS7f49zxKunSx97OwOl870w0LAc6yVN5qAiEAztNMRolxb6wNM4L3UU162i5maTBH+hi/e5iPO+iVhZk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkN37rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrRig//QkL2PTIcaeTEa+YcpnDd8xF7FzmCxziFMBjERTpjwiyHPlX9\r\nPyIUbAUDNU0vvOHpFVgVQxJdQL6k1XuRj57mlR5oliBTMG7Nw0MjTkHWO2F1\r\nRCQkFVw/RAkfG3R84lPEllrTeHEa5B7SVAUujwTeecGVDtVYUpPtD4+a8fkl\r\nBmwqJrDiOnOG6dak3yTlnHF+jRo3EzxzxeywUrf+8SqX4WoElqxFzcrwBsK6\r\nA0lueqfY5F34jbcXWCHFfmGMmSd1mAErnY9xc+lNxmy0JkHD7UEFp7bDE0FK\r\ngusvQDXQi0Q9HvZyAgJgWN2+PwCE4wKXwIsy/Xh5YgUFcXTXiYj2ZuRASBQv\r\nXaiPAJ1czdJzs19CiXzKIcMzKy/PMNfCuhXXmy9fJDE8GObKTdao+SLWBnNs\r\nTsXjmE7lyHjlPhJ4a4NZc2LFd1bOoY17+nCscLk3q7IdkK8JSxC5r5ICzLJq\r\nNGuvTsSSOv7F66Gr4MPv1hAjaaxK97UHtlISvo9Q5TL3y8eAt3bwfWYZiNqq\r\n9Hth3N1sL6ISsjFAtPDPVMJZH4zm2m7aU0LHGTGksg1TqaKeST3ljn7u5v6C\r\nbM8G9naJAVMdWyt++BMxQPeczYvrKI43cT3vvhPXOvbbIYSM/G084WRBHoGe\r\nKZg+/gEpf/4GRtYdMq+PcjhclQdsFOZmOVg=\r\n=knq8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.10.0-pre.14_1681358571579_0.2398457432117138"},"_hasShrinkwrap":false},"0.10.0":{"name":"@polywrap/client-config-builder-js","description":"Polywrap Javascript Client configuration","version":"0.10.0","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/monorepo.git"},"main":"build/index.js","scripts":{"build":"yarn embed:wrappers && yarn build:fast","build:docs":"yarn build:snippets && yarn build:readme","build:fast":"rimraf ./build && tsc --project tsconfig.build.json","embed:wrappers":"ts-node ./scripts/embed-wrappers.ts","lint":"eslint --color -c ../../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose","test:watch":"yarn test -- --watch","build:snippets":"tsc --project ./examples/tsconfig.examples.json","build:readme":"yarn doc-snippets combine"},"dependencies":{"@polywrap/concurrent-plugin-js":"~0.10.0-pre","@polywrap/core-js":"0.10.0","@polywrap/ethereum-provider-js":"npm:@polywrap/ethereum-provider-js@~0.3.0","@polywrap/ethereum-provider-js-v1":"npm:@polywrap/ethereum-provider-js@~0.2.4","@polywrap/file-system-plugin-js":"~0.10.0-pre","@polywrap/http-plugin-js":"~0.10.0-pre","@polywrap/logger-plugin-js":"0.10.0-pre.10","@polywrap/uri-resolver-extensions-js":"0.10.0","@polywrap/uri-resolvers-js":"0.10.0","@polywrap/wasm-js":"0.10.0","base64-to-uint8array":"1.0.0"},"devDependencies":{"@types/jest":"26.0.8","@types/prettier":"2.6.0","doc-snippets":"~1.0.0","jest":"26.6.3","rimraf":"3.0.2","ts-jest":"26.5.4","ts-node":"10.9.1","typescript":"4.9.5"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"doc-snippets":{"extract":{"include":["./src/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}","./examples/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}"],"ignore":["./**/node_modules/**","./**/.polywrap/**","./**/__tests__/**"],"dir":"./"},"inject":{"dir":"./readme","include":"./README.md"},"startTokens":[{"pattern":"$start: ","inline":false},{"pattern":"/* $: {SNIPPET_NAME} */","inline":true}],"endTokens":[{"pattern":"$end","inline":false},{"pattern":"/* $ */","inline":true}],"outputDir":"./"},"_id":"@polywrap/client-config-builder-js@0.10.0","dist":{"shasum":"e583f32dca97dfe0b9575db244fdad74a4f42d6f","integrity":"sha512-9hZd5r/5rkLoHdeB76NDUNOYcUCzS+b8WjCI9kv5vNQiOR83dZnW3rTnQmcXOWWErRY70h6xvAQWWQ1WrW/SpQ==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0.tgz","fileCount":48,"unpackedSize":660006,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAL2UQijkiBbbeSrQVK5bRSezrUdLhipm0WDDX1aB5fQIgDhHTBqrNKK2nsneOsLggQIVf7+f5SlgUaJbosicHf2w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOOGGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq8sBAAks2YqMwEytpKZgAxVHvlm1mUDjhLeAy/iQs+EjHkRKEqa+2G\r\n13oWbOKSRcLxgf2ENev56yzxNOhWVYKr3EqQkVKm4FScMv8kpQA44PteywQN\r\nOFwylkJQlkKQpzob/tG5Ku+UhrwvuXRYPHmSqYN4xFNMxS7Z67dYwxVndXFI\r\n2zVg75cAa8oJJZHj/zbO0koAg4KDqxyrGM5sdczHVQnLg7h6xIUSdS/naE3R\r\nx8bpY3UspcLgV2RKttMzg/YA6TUzC470NhNenH4EP3RrsDOKVJWgQ71+EWpf\r\nx3cld3csrDuzakbx1G/SN8HYET4bRzimFf83K5ow81YGNVgW0X8wAAV5oz3W\r\nReBZg0DCp6XZ6Zt6TPV+moJThIRHqBDhd+qwNlhTCUGuw+2AfKrnCttE38oV\r\nhuvTGNXy5pRRuLfV8cTtnUDTXIwjhC1/UIPBoBkdzxMRvrzi4UfW7QWcRj8I\r\no88nx8MKaeGhieiyrg9IXTlAB97K7P/2E7qRyaM/YXWIXJBIRhlJ4+HQ93Rs\r\n0J2vGHLeJ/nehbOdl8SUXIRN8hslXdvMwWaUhqqoMRcGesgfltP4wIMTcTzk\r\n/IHWlL6UU5ic6uXtjlMqJAAHataOie9PTnaPcQjNVhHHONp/6X4Qxd9YJ+GQ\r\nM3guuvJ3yjT6J+HzMmmAO4fKyrHxOw+n4rk=\r\n=5kOY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.10.0_1681449350472_0.5696392047526955"},"_hasShrinkwrap":false},"0.10.1":{"name":"@polywrap/client-config-builder-js","description":"Polywrap JavaScript Client configuration","version":"0.10.1","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/javascript-client.git"},"main":"build/index.js","scripts":{"build":"yarn embed:wrappers && yarn build:fast","build:docs":"yarn build:snippets && yarn build:readme","build:fast":"rimraf ./build && tsc --project tsconfig.build.json","embed:wrappers":"ts-node ./scripts/embed-wrappers.ts","lint":"eslint --color -c ../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose --config ../../jest.config.js --rootDir .","test:watch":"yarn test -- --watch","build:snippets":"tsc --project ./examples/tsconfig.examples.json","build:readme":"yarn doc-snippets combine"},"dependencies":{"@polywrap/concurrent-plugin-js":"~0.10.0","@polywrap/core-js":"0.10.1","@polywrap/ethereum-provider-js":"npm:@polywrap/ethereum-provider-js@~0.3.1","@polywrap/ethereum-provider-js-v1":"npm:@polywrap/ethereum-provider-js@~0.2.4","@polywrap/file-system-plugin-js":"~0.10.0","@polywrap/http-plugin-js":"~0.10.0","@polywrap/logger-plugin-js":"~0.10.1","@polywrap/uri-resolver-extensions-js":"0.10.1","@polywrap/uri-resolvers-js":"0.10.1","@polywrap/wasm-js":"0.10.1","base64-to-uint8array":"1.0.0"},"devDependencies":{"@types/jest":"29.5.0","@types/prettier":"2.6.0","doc-snippets":"~1.0.0","jest":"29.5.0","rimraf":"3.0.2","ts-jest":"29.1.0","ts-node":"10.9.1","typescript":"4.9.5"},"gitHead":"7346adaf5adb7e6bbb70d9247583e995650d390a","publishConfig":{"access":"public"},"doc-snippets":{"extract":{"include":["./src/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}","./examples/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}"],"ignore":["./**/node_modules/**","./**/.polywrap/**","./**/__tests__/**"],"dir":"./"},"inject":{"dir":"./readme","include":"./README.md"},"startTokens":[{"pattern":"$start: ","inline":false},{"pattern":"/* $: {SNIPPET_NAME} */","inline":true}],"endTokens":[{"pattern":"$end","inline":false},{"pattern":"/* $ */","inline":true}],"outputDir":"./"},"_id":"@polywrap/client-config-builder-js@0.10.1","dist":{"shasum":"d52430645b4530b235f97318ccdeef256eb4c425","integrity":"sha512-cXQXe+u+r9WVCovp507FmERWWFa6OJSl8ZQd3QpKnIaNeBmXbAa4WoM5889VTPe2oe5iDgo4jR4U/fHBg8qoyQ==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.1.tgz","fileCount":48,"unpackedSize":659958,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhfvVI8oMjcY7MCgCzB0ixFhR4ExLuLUB4wDF1wUg0xAIgeelVUtjYqPfATamIP7EErHRR1XMnKfV0Xh7/he4mkZU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkTKTUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmom+Q//dAlz6FbbOstvB1vn6tqdRKxNo7HZgcKfamK9yX9Q9kZWlcAt\r\nAQSwqDePx9PHfZtvJYFW7tOC3vAf+c6dKuwA1KR5apmOMQSX62ulH2i8FLKX\r\ntABLuMT3lXnsGk9BFQ4lA86drG4udoEn45VwtEJ5hM+xYKivfyMG4O2rUbo1\r\nWJtdFQppYKOswFqEZifU4ZXGVqmDiLLHwx8Hk0xaao/N+JHeq6iVJ4zCAF9n\r\nfAuZa6HwmikkvTp38gNP9krrQiwCQCfPDE6BeIEwC8OY8WutgpWTYUS9l3ji\r\npMHe9PRcAepsnD3WjE8tgmuzqEnrJ2E09mSJLgld2RL/mp3mPjFNguPmC3PW\r\nVvxxQHN3AouNh8H9N7WbIOToJeMOvVTtGBp8oOEo/3I7QX/bz/tjQUoQxZQY\r\npONiStEVssp6H9xCC7QZF2hAmJUlct1GieL8Bs3Ek1KTl1fpc9BUTzk+e8TP\r\npZYucmPJYoK4v3Oq6gclWw/odFnlIhx637PzLNSsunkCAPhBF6357fvblKKY\r\n0gXKBLXko6gHp1r5MdYWV923pH+uA1uiqtKcbG4ENY0fbAxYgEyDKyp6Ifkd\r\nfeMsrtzOsyFxSZcKjKaZRq3Rrw2hi4mqTGjt4N1QxZBQ7UXgN+5jP1A8uade\r\n4svEDYWTAMR4XO04+jQ+/m42KHmLWZ5+4f4=\r\n=mGxn\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.10.1_1682744532539_0.6467214539926673"},"_hasShrinkwrap":false},"0.11.0":{"name":"@polywrap/client-config-builder-js","description":"Polywrap JavaScript Client configuration","version":"0.11.0","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/javascript-client.git"},"main":"build/index.js","scripts":{"build":"yarn build:fast","build:docs":"yarn build:snippets && yarn build:readme","build:fast":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose --rootDir . --config ../../jest.config.js","test:watch":"yarn test --watch","build:snippets":"tsc --project ./examples/tsconfig.examples.json","build:readme":"yarn doc-snippets combine"},"dependencies":{"@polywrap/config-bundle-types-js":"0.11.0","@polywrap/core-js":"0.11.0","@polywrap/plugin-js":"0.11.0","@polywrap/sys-config-bundle-js":"0.11.0","@polywrap/uri-resolver-extensions-js":"0.11.0","@polywrap/uri-resolvers-js":"0.11.0","@polywrap/wasm-js":"0.11.0","@polywrap/web3-config-bundle-js":"0.11.0"},"devDependencies":{"@types/jest":"29.5.0","@types/prettier":"2.6.0","doc-snippets":"~1.0.0","jest":"29.5.0","rimraf":"3.0.2","ts-jest":"29.1.0","ts-node":"10.9.1","typescript":"4.9.5"},"publishConfig":{"access":"public"},"doc-snippets":{"extract":{"include":["./src/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}","./examples/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}"],"ignore":["./**/node_modules/**","./**/.polywrap/**","./**/__tests__/**"],"dir":"./"},"inject":{"dir":"./readme","include":"./README.md"},"startTokens":[{"pattern":"$start: ","inline":false},{"pattern":"/* $: {SNIPPET_NAME} */","inline":true}],"endTokens":[{"pattern":"$end","inline":false},{"pattern":"/* $ */","inline":true}],"outputDir":"./"},"_id":"@polywrap/client-config-builder-js@0.11.0","dist":{"shasum":"efdc95b24cd434eab40e8010f79c9e57330f6aad","integrity":"sha512-jdw4iv6BHBOlTGgDyK672/uMFxltf9QaqbYB8c38tVaXZlHOYdBf86ez/cBiEMAd7Gomt3aYjSUSunEgYfm2Wg==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.11.0.tgz","fileCount":42,"unpackedSize":65450,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA6AX6JFCu0p7S5jCHkGATeVaHQcHaoY8TBMIaPh/ytbAiA44xKKCszygBzdcmbc2vv+2WyXYDjnkY8thakwOqqSbw=="}]},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.11.0_1687831250420_0.12664017381040882"},"_hasShrinkwrap":false},"0.12.0-pre.1":{"name":"@polywrap/client-config-builder-js","description":"Polywrap JavaScript Client configuration","version":"0.12.0-pre.1","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/javascript-client.git"},"main":"build/index.js","scripts":{"build":"yarn build:fast","build:docs":"yarn build:snippets && yarn build:readme","build:fast":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose --rootDir . --config ../../jest.config.js","test:watch":"yarn test --watch","build:snippets":"tsc --project ./examples/tsconfig.examples.json","build:readme":"yarn doc-snippets combine"},"dependencies":{"@polywrap/config-bundle-types-js":"0.12.0-pre.1","@polywrap/core-js":"0.12.0-pre.1","@polywrap/plugin-js":"0.12.0-pre.1","@polywrap/sys-config-bundle-js":"0.12.0-pre.1","@polywrap/uri-resolver-extensions-js":"0.12.0-pre.1","@polywrap/uri-resolvers-js":"0.12.0-pre.1","@polywrap/wasm-js":"0.12.0-pre.1","@polywrap/web3-config-bundle-js":"0.12.0-pre.1"},"devDependencies":{"@types/jest":"29.5.0","@types/prettier":"2.6.0","doc-snippets":"~1.0.0","jest":"29.5.0","rimraf":"3.0.2","ts-jest":"29.1.0","ts-node":"10.9.1","typescript":"4.9.5"},"publishConfig":{"access":"public"},"doc-snippets":{"extract":{"include":["./src/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}","./examples/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}"],"ignore":["./**/node_modules/**","./**/.polywrap/**","./**/__tests__/**"],"dir":"./"},"inject":{"dir":"./readme","include":"./README.md"},"startTokens":[{"pattern":"$start: ","inline":false},{"pattern":"/* $: {SNIPPET_NAME} */","inline":true}],"endTokens":[{"pattern":"$end","inline":false},{"pattern":"/* $ */","inline":true}],"outputDir":"./"},"readmeFilename":"README.md","readme":"# PolywrapClient Config Builder\n\nA utility class for building the PolywrapClient config. \n\nSupports building configs using method chaining or imperatively.\n\n## Quickstart\n\n### Initialize\n\nInitialize a ClientConfigBuilder using the [constructor](#constructor)\n\n```typescript\n  // start with a blank slate (typical usage)\n  const builder = new PolywrapClientConfigBuilder();\n```\n\n### Configure\n\nAdd client configuration with [add](#add), or flexibly mix and match builder [configuration methods](#setWrapper) to add and remove configuration items.\n\n```typescript\n  // add multiple items to the configuration using the catch-all `add` method\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add or remove items by chaining method calls\n  builder\n    .setPackage(\"wrap://plugin/package\", httpPlugin({}) as IWrapPackage)\n    .removePackage(\"wrap://plugin/package\")\n    .setPackages({\n      \"wrap://plugin/http\": httpPlugin({}) as IWrapPackage,\n      \"wrap://plugin/filesystem\": fileSystemPlugin({}) as IWrapPackage,\n    });\n```\n\nYou can add the entire [default client configuration bundle](#bundle--defaultconfig) at once with [addDefaults](#adddefaults)\n\n```typescript\n  builder.addDefaults();\n```\n\n### Build\n\nFinally, build a ClientConfig or CoreClientConfig to pass to the PolywrapClient constructor.\n\n```typescript\n  // accepted by either the PolywrapClient or the PolywrapCoreClient\n  let coreClientConfig = builder.build();\n\n  // build with a custom cache\n  coreClientConfig = builder.build({\n    resolutionResultCache: new ResolutionResultCache(),\n  });\n\n  // or build with a custom resolver\n  coreClientConfig = builder.build({\n    resolver: RecursiveResolver.from([]),\n  });\n```\n\n### Example\n\nA complete example using all or most of the available methods.\n\n```typescript\n  // init\n  const builder = new PolywrapClientConfigBuilder();\n\n  // add the default bundle first to override its entries later\n  builder.addDefaults();\n\n  // add many config items at once\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add and remove wrappers\n  builder\n    .setWrapper(\n      \"wrap://ens/wrapper.eth\",\n      await WasmWrapper.from(\n        new Uint8Array([1, 2, 3]),\n        new Uint8Array([1, 2, 3])\n      )\n    )\n    .removeWrapper(\"wrap://ens/wrapper.eth\")\n    .setWrappers({\n      \"wrap://ens/wrapper.eth\": await WasmWrapper.from(\n        new Uint8Array([1, 2, 3]),\n        new Uint8Array([1, 2, 3])\n      ),\n    });\n\n  // add and remove wrap packages\n  builder\n    .setPackage(\"wrap://plugin/package\", httpPlugin({}) as IWrapPackage)\n    .removePackage(\"wrap://plugin/package\")\n    .setPackages({\n      \"wrap://plugin/package\": httpPlugin({}) as IWrapPackage,\n    });\n\n  // add and remove Envs\n  builder\n    .addEnv(\"wrap://ens/wrapper.eth\", { key: \"value\" })\n    .removeEnv(\"wrap://ens/wrapper.eth\")\n    .addEnvs({\n      \"wrap://ens/wrapper.eth\": { key: \"value\" },\n    });\n\n  // override existing Env, or add new Env if one is not registered at URI\n  builder.setEnv(\"wrap://ens/wrapper.eth\", { key: \"value\" });\n\n  // add or remove registration for an implementation of an interface\n  builder\n    .addInterfaceImplementation(\n      \"wrap://ens/interface.eth\",\n      \"wrap://ens/wrapper.eth\"\n    )\n    .removeInterfaceImplementation(\n      \"wrap://ens/interface.eth\",\n      \"wrap://ens/wrapper.eth\"\n    )\n    .addInterfaceImplementations(\"wrap://ens/interface.eth\", [\n      \"wrap://ens/wrapper.eth\",\n    ]);\n\n  // add or remove URI redirects\n  builder\n    .setRedirect(\"wrap://ens/from.eth\", \"wrap://ens/to.eth\")\n    .removeRedirect(\"wrap://ens/from.eth\")\n    .setRedirects({\n      \"wrap://ens/from.eth\": \"wrap://ens/to.eth\",\n    });\n\n  // add resolvers\n  builder.addResolver(RecursiveResolver.from([]));\n  builder.addResolvers([]);\n\n  // build\n  const clientConfig = builder.build();\n```\n\n# Reference\n\n## ClientConfigBuilder\n\n### Constructor\n```ts\n  /**\n   * Instantiate a PolywrapClientConfigBuilder\n   */\n  constructor() \n```\n\n### add\n```ts\n  /**\n   * Add a partial BuilderConfig\n   * This is equivalent to calling each of the plural add functions: `addEnvs`, `setWrappers`, etc.\n   *\n   * @param config: a partial BuilderConfig\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  add(config: Partial<BuilderConfig>): ClientConfigBuilder;\n```\n\n### setWrapper\n```ts\n  /**\n   * Add an embedded wrapper\n   *\n   * @param uri: uri of wrapper\n   * @param wrapper: wrapper to be added\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  setWrapper(uri: string, wrapper: Wrapper): ClientConfigBuilder;\n```\n\n### setWrappers\n```ts\n  /**\n   * Add one or more embedded wrappers.\n   * This is equivalent to calling setWrapper for each wrapper.\n   *\n   * @param uriWrappers: an object where keys are uris and wrappers are value\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  setWrappers(uriWrappers: Record<string, Wrapper>): ClientConfigBuilder;\n```\n\n### removeWrapper\n```ts\n  /**\n   * Remove an embedded wrapper\n   *\n   * @param uri: the wrapper's URI\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  removeWrapper(uri: string): ClientConfigBuilder;\n```\n\n### setPackage\n```ts\n  /**\n   * Add an embedded wrap package\n   *\n   * @param uri: uri of wrapper\n   * @param wrapPackage: package to be added\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  setPackage(uri: string, wrapPackage: IWrapPackage): ClientConfigBuilder;\n```\n\n### setPackages\n```ts\n  /**\n   * Add one or more embedded wrap packages\n   * This is equivalent to calling setPackage for each package\n   *\n   * @param uriPackages: an object where keys are uris and packages are value\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  setPackages(uriPackages: Record<string, IWrapPackage>): ClientConfigBuilder;\n```\n\n### removePackage\n```ts\n  /**\n   * Remove an embedded wrap package\n   *\n   * @param uri: the package's URI\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  removePackage(uri: string): ClientConfigBuilder;\n```\n\n### addEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is modified.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the env variables for the uri\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  addEnv(uri: string, env: Record<string, unknown>): ClientConfigBuilder;\n```\n\n### addEnvs\n```ts\n  /**\n   * Add one or more Envs\n   * This is equivalent to calling addEnv for each Env\n   *\n   * @param uriEnvs: and object where key is the uri and value is the another object with the env variables for the uri\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  addEnvs(\n    uriEnvs: Record<string, Record<string, unknown>>\n  ): ClientConfigBuilder;\n```\n\n### removeEnv\n```ts\n  /**\n   * Remove an Env\n   *\n   * @param uri: the URI associated with the Env\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  removeEnv(uri: string): ClientConfigBuilder;\n```\n\n### setEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is replaced.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the environment variables for the uri\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  setEnv(uri: string, env: Record<string, unknown>): ClientConfigBuilder;\n```\n\n### addInterfaceImplementation\n```ts\n  /**\n   * Register an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): ClientConfigBuilder;\n```\n\n### addInterfaceImplementations\n```ts\n  /**\n   * Register one or more implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUris: a list of URIs for the implementations\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementations(\n    interfaceUri: string,\n    implementationUris: Array<string>\n  ): ClientConfigBuilder;\n```\n\n### removeInterfaceImplementation\n```ts\n  /**\n   * Remove an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  removeInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): ClientConfigBuilder;\n```\n\n### setRedirect\n```ts\n  /**\n   * Add a redirect from one URI to another\n   *\n   * @param from: the URI to redirect from\n   * @param to: the URI to redirect to\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  setRedirect(from: string, to: string): ClientConfigBuilder;\n```\n\n### setRedirects\n```ts\n  /**\n   * Add an array of URI redirects\n   *\n   * @param redirects: an object where key is from and value is to\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  setRedirects(redirects: Record<string, string>): ClientConfigBuilder;\n```\n\n### removeRedirect\n```ts\n  /**\n   * Remove a URI redirect\n   *\n   * @param from: the URI that is being redirected\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  removeRedirect(from: string): ClientConfigBuilder;\n```\n\n### addResolver\n```ts\n  /**\n   * Add a URI Resolver, capable of resolving a URI to a wrapper\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolver: A UriResolverLike\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  addResolver(resolver: UriResolverLike): ClientConfigBuilder;\n```\n\n### addResolvers\n```ts\n  /**\n   * Add one or more URI Resolvers, capable of resolving URIs to wrappers\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolvers: A list of UriResolverLike\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  addResolvers(resolvers: UriResolverLike[]): ClientConfigBuilder;\n```\n\n### addDefaults\n```ts\n  /**\n   * Add the default configuration bundle\n   *\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  addDefaults(): ClientConfigBuilder;\n```\n\n### addBundle\n```ts\n  /**\n   * Add a default configuration bundle\n   *\n   * @returns Promise<ClientConfigBuilder> (mutated self)\n   */\n  addBundle(bundle: BundleName): ClientConfigBuilder;\n```\n\n### build\n```ts\n  /**\n   * Build a sanitized core client configuration that can be passed to the PolywrapClient or PolywrapCoreClient constructors\n   *\n   * @param options - Use a custom wrapper cache or resolver\n   * @returns CoreClientConfig that results from applying all the steps in the builder pipeline\n   */\n  build(options?: BuildOptions): CoreClientConfig;\n```\n\n## Bundles\n\n```ts\nexport type BundleName = \"sys\" | \"web3\";\n\n```\n* [sys](https://www.npmjs.com/package/@polywrap/sys-config-bundle-js)\n* [web3](https://www.npmjs.com/package/@polywrap/web3-config-bundle-js)\n","_id":"@polywrap/client-config-builder-js@0.12.0-pre.1","dist":{"shasum":"5fca0bfc216de2978b95bea1fd09b54cf6e40afa","integrity":"sha512-fQ+i3VTyGWBM8eKamD2uLBK1l0/nV5C06GiaMpIGhU6yWL3ZcQBffl8OOU/uM0tdgpaNxdNMR/XcNzHjkVySjQ==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.12.0-pre.1.tgz","fileCount":42,"unpackedSize":65504,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAHmcwF6SzdEjuaZNRUzvgZhaC3oYB1VS20gKO7OLrYcAiA2gy5JYPQNVELr9oFRIW23OSh+3ol8OxKESG2XR3sRmQ=="}]},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.12.0-pre.1_1689178277523_0.9665358665028723"},"_hasShrinkwrap":false},"0.12.0":{"name":"@polywrap/client-config-builder-js","description":"Polywrap JavaScript Client configuration","version":"0.12.0","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/javascript-client.git"},"main":"build/index.js","scripts":{"build":"yarn build:fast","build:docs":"yarn build:snippets && yarn build:readme","build:fast":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose --rootDir . --config ../../jest.config.js","test:watch":"yarn test --watch","build:snippets":"tsc --project ./examples/tsconfig.examples.json","build:readme":"yarn doc-snippets combine"},"dependencies":{"@polywrap/config-bundle-types-js":"0.12.0","@polywrap/core-js":"0.12.0","@polywrap/plugin-js":"0.12.0","@polywrap/sys-config-bundle-js":"0.12.0","@polywrap/uri-resolver-extensions-js":"0.12.0","@polywrap/uri-resolvers-js":"0.12.0","@polywrap/wasm-js":"0.12.0","@polywrap/web3-config-bundle-js":"0.12.0"},"devDependencies":{"@types/jest":"29.5.0","@types/prettier":"2.6.0","doc-snippets":"~1.0.0","jest":"29.5.0","rimraf":"3.0.2","ts-jest":"29.1.0","ts-node":"10.9.1","typescript":"4.9.5"},"publishConfig":{"access":"public"},"doc-snippets":{"extract":{"include":["./src/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}","./examples/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}"],"ignore":["./**/node_modules/**","./**/.polywrap/**","./**/__tests__/**"],"dir":"./"},"inject":{"dir":"./readme","include":"./README.md"},"startTokens":[{"pattern":"$start: ","inline":false},{"pattern":"/* $: {SNIPPET_NAME} */","inline":true}],"endTokens":[{"pattern":"$end","inline":false},{"pattern":"/* $ */","inline":true}],"outputDir":"./"},"_id":"@polywrap/client-config-builder-js@0.12.0","dist":{"shasum":"24dae5e133442a80de84f02d71e171bd5d5389bd","integrity":"sha512-hWs8G0sTBckumvDjsxDymxrE5ggxmYE6kSYoMBtPvPY5Va5y9ElEJAdTtBTlELIugs6/f/3EHLzPyIdwaYaB/Q==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.12.0.tgz","fileCount":42,"unpackedSize":65486,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEqO0JnfV85A0dHI6eUSeYBqg0lAaKZcda2oOFmGAM96AiBlbotAzLWrF+m3d3kHdDX+dJx1ZPuK4ZA32L1qRvblxg=="}]},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.12.0_1690401062273_0.19581727733884602"},"_hasShrinkwrap":false},"0.12.1":{"name":"@polywrap/client-config-builder-js","description":"Polywrap JavaScript Client configuration","version":"0.12.1","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/javascript-client.git"},"main":"build/index.js","scripts":{"build":"yarn build:fast","build:docs":"yarn build:snippets && yarn build:readme","build:fast":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose --rootDir . --config ../../jest.config.js","test:watch":"yarn test --watch","build:snippets":"tsc --project ./examples/tsconfig.examples.json","build:readme":"yarn doc-snippets combine"},"dependencies":{"@polywrap/config-bundle-types-js":"0.12.1","@polywrap/core-js":"0.12.1","@polywrap/plugin-js":"0.12.1","@polywrap/sys-config-bundle-js":"0.12.1","@polywrap/uri-resolver-extensions-js":"0.12.1","@polywrap/uri-resolvers-js":"0.12.1","@polywrap/wasm-js":"0.12.1","@polywrap/web3-config-bundle-js":"0.12.1"},"devDependencies":{"@types/jest":"29.5.0","@types/prettier":"2.6.0","doc-snippets":"~1.0.0","jest":"29.5.0","rimraf":"3.0.2","ts-jest":"29.1.0","ts-node":"10.9.1","typescript":"4.9.5"},"publishConfig":{"access":"public"},"doc-snippets":{"extract":{"include":["./src/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}","./examples/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}"],"ignore":["./**/node_modules/**","./**/.polywrap/**","./**/__tests__/**"],"dir":"./"},"inject":{"dir":"./readme","include":"./README.md"},"startTokens":[{"pattern":"$start: ","inline":false},{"pattern":"/* $: {SNIPPET_NAME} */","inline":true}],"endTokens":[{"pattern":"$end","inline":false},{"pattern":"/* $ */","inline":true}],"outputDir":"./"},"_id":"@polywrap/client-config-builder-js@0.12.1","dist":{"shasum":"fad7459748e6ae14961c77d6e74374159166817b","integrity":"sha512-M7wChjybkamA+57vdMFtVxaPu5BuBmB1vS9MxJ+X2qnoTVeV+9wi2EWXYz1oixmtZ2mXSuXxTnqaBaY5FDTkoA==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.12.1.tgz","fileCount":42,"unpackedSize":65486,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzfqpKtWo4ppuQnq5opBxzBH28c5q7LMNv+JDEmdlJ9QIhAMUvKrweH047q50GoLqFkXinOIJSvz8wKiAT6MQ/Mi3I"}]},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.12.1_1692569168730_0.28225125238047055"},"_hasShrinkwrap":false},"0.12.2":{"name":"@polywrap/client-config-builder-js","description":"Polywrap JavaScript Client configuration","version":"0.12.2","license":"MIT","repository":{"type":"git","url":"https://github.com/polywrap/javascript-client.git"},"main":"build/index.js","scripts":{"build":"yarn build:fast","build:docs":"yarn build:snippets && yarn build:readme","build:fast":"rimraf ./build && tsc --project tsconfig.build.json","lint":"eslint --color -c ../../.eslintrc.js src/","test":"jest --passWithNoTests --runInBand --verbose --rootDir . --config ../../jest.config.js","test:watch":"yarn test --watch","build:snippets":"tsc --project ./examples/tsconfig.examples.json","build:readme":"yarn doc-snippets combine"},"dependencies":{"@polywrap/config-bundle-types-js":"0.12.2","@polywrap/core-js":"0.12.2","@polywrap/plugin-js":"0.12.2","@polywrap/sys-config-bundle-js":"0.12.2","@polywrap/uri-resolver-extensions-js":"0.12.2","@polywrap/uri-resolvers-js":"0.12.2","@polywrap/wasm-js":"0.12.2","@polywrap/web3-config-bundle-js":"0.12.2"},"devDependencies":{"@types/jest":"29.5.0","@types/prettier":"2.6.0","doc-snippets":"~1.0.0","jest":"29.5.0","rimraf":"3.0.2","ts-jest":"29.1.0","ts-node":"10.9.1","typescript":"4.9.5"},"publishConfig":{"access":"public"},"doc-snippets":{"extract":{"include":["./src/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}","./examples/**/*.{ts,tsx,json,yaml,txt,md,graphql,cue}"],"ignore":["./**/node_modules/**","./**/.polywrap/**","./**/__tests__/**"],"dir":"./"},"inject":{"dir":"./readme","include":"./README.md"},"startTokens":[{"pattern":"$start: ","inline":false},{"pattern":"/* $: {SNIPPET_NAME} */","inline":true}],"endTokens":[{"pattern":"$end","inline":false},{"pattern":"/* $ */","inline":true}],"outputDir":"./"},"_id":"@polywrap/client-config-builder-js@0.12.2","dist":{"shasum":"b1c1be1e17bdc43b36df96517460c4860b395aad","integrity":"sha512-N09BTlspeLIahvDeMKBqRtSiWLAUj5RH4aExLy3CiRW1Hdq+Xpt7evxjImK+ugnAFOM3c2L8LK63qou600sRgw==","tarball":"https://registry.npmjs.org/@polywrap/client-config-builder-js/-/client-config-builder-js-0.12.2.tgz","fileCount":59,"unpackedSize":110361,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCat+cSHcRT+AVAC0odPGiNYKMNEMwy6EW8Oj2r3Qu6xwIgKP5uqB1mGj50U+XLtPhBfyiBHXOjDjybuEOL8Z4TvfU="}]},"_npmUser":{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},"directories":{},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-config-builder-js_0.12.2_1692576940023_0.7502535454532466"},"_hasShrinkwrap":false}},"time":{"created":"2022-08-26T22:51:54.240Z","0.5.0":"2022-08-26T22:51:54.444Z","modified":"2023-08-21T00:15:40.444Z","0.6.0":"2022-09-02T16:04:15.385Z","0.7.0":"2022-09-08T16:32:55.668Z","0.8.0":"2022-09-24T18:31:22.709Z","0.9.0":"2022-10-10T09:44:46.054Z","0.9.1":"2022-10-12T22:35:00.054Z","0.9.2":"2022-10-13T22:39:45.586Z","0.9.3":"2022-10-20T10:33:24.402Z","0.9.4":"2022-11-04T01:48:13.518Z","0.10.0-pre.0":"2022-11-05T07:24:21.425Z","0.10.0-pre.1":"2022-11-12T18:01:38.408Z","0.10.0-pre.3":"2022-11-13T00:38:43.163Z","0.10.0-pre.4":"2022-11-16T18:24:17.060Z","0.10.0-pre.5":"2022-11-22T04:48:52.735Z","0.10.0-pre.6":"2022-12-20T04:42:47.248Z","0.10.0-pre.7":"2023-01-11T02:16:20.393Z","0.9.5":"2023-02-10T23:24:40.342Z","0.10.0-pre.8":"2023-02-16T04:46:40.087Z","0.9.6":"2023-02-19T07:44:49.888Z","0.10.0-pre.10":"2023-03-01T03:32:29.581Z","0.10.0-pre.11":"2023-03-06T22:24:54.669Z","0.10.0-pre.12":"2023-03-14T05:07:42.155Z","0.10.0-pre.13":"2023-03-18T01:21:38.162Z","0.9.7":"2023-03-28T22:01:48.593Z","0.10.0-pre.14":"2023-04-13T04:02:51.767Z","0.10.0":"2023-04-14T05:15:50.675Z","0.10.1":"2023-04-29T05:02:12.762Z","0.11.0":"2023-06-27T02:00:50.600Z","0.12.0-pre.1":"2023-07-12T16:11:17.715Z","0.12.0":"2023-07-26T19:51:02.500Z","0.12.1":"2023-08-20T22:06:08.936Z","0.12.2":"2023-08-21T00:15:40.183Z"},"maintainers":[{"name":"polywrap-build-bot","email":"build-bot@polywrap.io"},{"name":"dorgjelli","email":"jelli@dorg.tech"}],"description":"Polywrap JavaScript Client configuration","repository":{"type":"git","url":"https://github.com/polywrap/javascript-client.git"},"license":"MIT","readme":"# PolywrapClient Config Builder\n\nA utility class for building the PolywrapClient config. \n\nSupports building configs using method chaining or imperatively.\n\n## Quickstart\n\n### Initialize\n\nInitialize a ClientConfigBuilder using the [constructor](#constructor)\n\n```typescript\n  // start with a blank slate (typical usage)\n  const builder = new PolywrapClientConfigBuilder();\n```\n\n### Configure\n\nAdd client configuration with [add](#add), or flexibly mix and match builder [configuration methods](#setWrapper) to add and remove configuration items.\n\n```typescript\n  // add multiple items to the configuration using the catch-all `add` method\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add or remove items by chaining method calls\n  builder\n    .setPackage(\"wrap://plugin/package\", httpPlugin({}) as IWrapPackage)\n    .removePackage(\"wrap://plugin/package\")\n    .setPackages({\n      \"wrap://plugin/http\": httpPlugin({}) as IWrapPackage,\n      \"wrap://plugin/filesystem\": fileSystemPlugin({}) as IWrapPackage,\n    });\n```\n\nYou can add the entire [default client configuration bundle](#bundle--defaultconfig) at once with [addDefaults](#adddefaults)\n\n```typescript\n  builder.addDefaults();\n```\n\n### Build\n\nFinally, build a ClientConfig or CoreClientConfig to pass to the PolywrapClient constructor.\n\n```typescript\n  // accepted by either the PolywrapClient or the PolywrapCoreClient\n  let coreClientConfig = builder.build();\n\n  // build with a custom cache\n  coreClientConfig = builder.build({\n    resolutionResultCache: new ResolutionResultCache(),\n  });\n\n  // or build with a custom resolver\n  coreClientConfig = builder.build({\n    resolver: RecursiveResolver.from([]),\n  });\n```\n\n### Example\n\nA complete example using all or most of the available methods.\n\n```typescript\n  // init\n  const builder = new PolywrapClientConfigBuilder();\n\n  // add the default bundle first to override its entries later\n  builder.addDefaults();\n\n  // add many config items at once\n  builder.add({\n    envs: {},\n    interfaces: {},\n    redirects: {},\n    wrappers: {},\n    packages: {},\n    resolvers: [],\n  });\n\n  // add and remove wrappers\n  builder\n    .setWrapper(\n      \"wrap://authority/wrapper\",\n      await WasmWrapper.from(\n        new Uint8Array([1, 2, 3]),\n        new Uint8Array([1, 2, 3])\n      )\n    )\n    .removeWrapper(\"wrap://authority/wrapper\")\n    .setWrappers({\n      \"wrap://authority/wrapper\": await WasmWrapper.from(\n        new Uint8Array([1, 2, 3]),\n        new Uint8Array([1, 2, 3])\n      ),\n    });\n\n  // add and remove wrap packages\n  builder\n    .setPackage(\"wrap://plugin/package\", httpPlugin({}) as IWrapPackage)\n    .removePackage(\"wrap://plugin/package\")\n    .setPackages({\n      \"wrap://plugin/package\": httpPlugin({}) as IWrapPackage,\n    });\n\n  // add and remove Envs\n  builder\n    .addEnv(\"wrap://authority/wrapper\", { key: \"value\" })\n    .removeEnv(\"wrap://authority/wrapper\")\n    .addEnvs({\n      \"wrap://authority/wrapper\": { key: \"value\" },\n    });\n\n  // override existing Env, or add new Env if one is not registered at URI\n  builder.setEnv(\"wrap://authority/wrapper\", { key: \"value\" });\n\n  // add or remove registration for an implementation of an interface\n  builder\n    .addInterfaceImplementation(\n      \"wrap://authority/interface\",\n      \"wrap://authority/wrapper\"\n    )\n    .removeInterfaceImplementation(\n      \"wrap://authority/interface\",\n      \"wrap://authority/wrapper\"\n    )\n    .addInterfaceImplementations(\"wrap://authority/interface\", [\n      \"wrap://authority/wrapper\",\n    ]);\n\n  // add or remove URI redirects\n  builder\n    .setRedirect(\"wrap://authority/from\", \"wrap://authority/to\")\n    .removeRedirect(\"wrap://authority/from\")\n    .setRedirects({\n      \"wrap://authority/from\": \"wrap://authority/to\",\n    });\n\n  // add resolvers\n  builder.addResolver(RecursiveResolver.from([]));\n  builder.addResolvers([]);\n\n  // build\n  const clientConfig = builder.build();\n```\n\n# Reference\n\n## ClientConfigBuilder\n\n### Constructor\n```ts\n  /**\n   * Instantiate a PolywrapClientConfigBuilder\n   */\n  constructor() \n```\n\n### add\n```ts\n  /**\n   * Add a partial BuilderConfig\n   * This is equivalent to calling each of the plural add functions: `addEnvs`, `setWrappers`, etc.\n   *\n   * @param config: a partial BuilderConfig\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  add(config: Partial<BuilderConfig>): ClientConfigBuilder;\n```\n\n### setWrapper\n```ts\n  /**\n   * Add an embedded wrapper\n   *\n   * @param uri: uri of wrapper\n   * @param wrapper: wrapper to be added\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  setWrapper(uri: string, wrapper: Wrapper): ClientConfigBuilder;\n```\n\n### setWrappers\n```ts\n  /**\n   * Add one or more embedded wrappers.\n   * This is equivalent to calling setWrapper for each wrapper.\n   *\n   * @param uriWrappers: an object where keys are uris and wrappers are value\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  setWrappers(uriWrappers: Record<string, Wrapper>): ClientConfigBuilder;\n```\n\n### removeWrapper\n```ts\n  /**\n   * Remove an embedded wrapper\n   *\n   * @param uri: the wrapper's URI\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  removeWrapper(uri: string): ClientConfigBuilder;\n```\n\n### setPackage\n```ts\n  /**\n   * Add an embedded wrap package\n   *\n   * @param uri: uri of wrapper\n   * @param wrapPackage: package to be added\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  setPackage(uri: string, wrapPackage: IWrapPackage): ClientConfigBuilder;\n```\n\n### setPackages\n```ts\n  /**\n   * Add one or more embedded wrap packages\n   * This is equivalent to calling setPackage for each package\n   *\n   * @param uriPackages: an object where keys are uris and packages are value\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  setPackages(uriPackages: Record<string, IWrapPackage>): ClientConfigBuilder;\n```\n\n### removePackage\n```ts\n  /**\n   * Remove an embedded wrap package\n   *\n   * @param uri: the package's URI\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  removePackage(uri: string): ClientConfigBuilder;\n```\n\n### addEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is modified.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the env variables for the uri\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  addEnv(uri: string, env: Record<string, unknown>): ClientConfigBuilder;\n```\n\n### addEnvs\n```ts\n  /**\n   * Add one or more Envs\n   * This is equivalent to calling addEnv for each Env\n   *\n   * @param uriEnvs: and object where key is the uri and value is the another object with the env variables for the uri\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  addEnvs(\n    uriEnvs: Record<string, Record<string, unknown>>\n  ): ClientConfigBuilder;\n```\n\n### removeEnv\n```ts\n  /**\n   * Remove an Env\n   *\n   * @param uri: the URI associated with the Env\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  removeEnv(uri: string): ClientConfigBuilder;\n```\n\n### setEnv\n```ts\n  /**\n   * Add an Env.\n   * If an Env is already associated with the uri, it is replaced.\n   *\n   * @param uri: the wrapper's URI to associate with the Env\n   * @param env: an object with the environment variables for the uri\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  setEnv(uri: string, env: Record<string, unknown>): ClientConfigBuilder;\n```\n\n### addInterfaceImplementation\n```ts\n  /**\n   * Register an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): ClientConfigBuilder;\n```\n\n### addInterfaceImplementations\n```ts\n  /**\n   * Register one or more implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUris: a list of URIs for the implementations\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  addInterfaceImplementations(\n    interfaceUri: string,\n    implementationUris: Array<string>\n  ): ClientConfigBuilder;\n```\n\n### removeInterfaceImplementation\n```ts\n  /**\n   * Remove an implementation of a single interface\n   *\n   * @param interfaceUri: the URI of the interface\n   * @param implementationUri: the URI of the implementation\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  removeInterfaceImplementation(\n    interfaceUri: string,\n    implementationUri: string\n  ): ClientConfigBuilder;\n```\n\n### setRedirect\n```ts\n  /**\n   * Add a redirect from one URI to another\n   *\n   * @param from: the URI to redirect from\n   * @param to: the URI to redirect to\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  setRedirect(from: string, to: string): ClientConfigBuilder;\n```\n\n### setRedirects\n```ts\n  /**\n   * Add an array of URI redirects\n   *\n   * @param redirects: an object where key is from and value is to\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  setRedirects(redirects: Record<string, string>): ClientConfigBuilder;\n```\n\n### removeRedirect\n```ts\n  /**\n   * Remove a URI redirect\n   *\n   * @param from: the URI that is being redirected\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  removeRedirect(from: string): ClientConfigBuilder;\n```\n\n### addResolver\n```ts\n  /**\n   * Add a URI Resolver, capable of resolving a URI to a wrapper\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolver: A UriResolverLike\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  addResolver(resolver: UriResolverLike): ClientConfigBuilder;\n```\n\n### addResolvers\n```ts\n  /**\n   * Add one or more URI Resolvers, capable of resolving URIs to wrappers\n   *\n   * @remarks\n   * A UriResolverLike can be any one of:\n   *     IUriResolver<unknown>\n   *   | IUriRedirect<string>\n   *   | IUriPackage<string>\n   *   | IUriWrapper<string>\n   *   | UriResolverLike[];\n   *\n   * @param resolvers: A list of UriResolverLike\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  addResolvers(resolvers: UriResolverLike[]): ClientConfigBuilder;\n```\n\n### addDefaults\n```ts\n  /**\n   * Add the default configuration bundle\n   *\n   * @returns ClientConfigBuilder (mutated self)\n   */\n  addDefaults(): ClientConfigBuilder;\n```\n\n### addBundle\n```ts\n  /**\n   * Add a default configuration bundle\n   *\n   * @returns Promise<ClientConfigBuilder> (mutated self)\n   */\n  addBundle(bundle: BundleName): ClientConfigBuilder;\n```\n\n### build\n```ts\n  /**\n   * Build a sanitized core client configuration that can be passed to the PolywrapClient or PolywrapCoreClient constructors\n   *\n   * @param options - Use a custom wrapper cache or resolver\n   * @returns CoreClientConfig that results from applying all the steps in the builder pipeline\n   */\n  build(options?: BuildOptions): CoreClientConfig;\n```\n\n## Bundles\n\n```ts\nexport type BundleName = \"sys\" | \"web3\";\n\n```\n* [sys](https://www.npmjs.com/package/@polywrap/sys-config-bundle-js)\n* [web3](https://www.npmjs.com/package/@polywrap/web3-config-bundle-js)\n","readmeFilename":"README.md"}