{"_id":"@caravan/descriptors","_rev":"10-565e6dcc84b38365aa9ec5bad99ccbb2","name":"@caravan/descriptors","dist-tags":{"latest":"0.2.0"},"versions":{"0.0.1":{"name":"@caravan/descriptors","version":"0.0.1","author":{"name":"Unchained Capital"},"_id":"@caravan/descriptors@0.0.1","maintainers":[{"name":"bucko","email":"buck.perley@protonmail.com"}],"dist":{"shasum":"209c904d1a1465c8ecf9b2981688a73c892c8554","tarball":"https://registry.npmjs.org/@caravan/descriptors/-/descriptors-0.0.1.tgz","fileCount":1058,"integrity":"sha512-AtYrwo+ccDg1UkXsBUdbiy0MwISJtes8Sc8eTDA9aowGN3z9MuBm/6xWLioukz3tyI65xNB8k1I9Vs8xS2uDCQ==","signatures":[{"sig":"MEUCIQCl5z9Ybto1bmrkV/qyCGuIQj8xajcrhoiZ5i6fjoq7CAIgBojGIITwLCfhFa6wQ7tH/pUiC7nMhYqYjVtxrx6hZKg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":267585156},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"gitHead":"2842590bb62e851e5316b5e6774dce4493feb28a","private":false,"scripts":{"ci":"npm run build && npm run lint && npm run test","dev":"npm run build -- --watch","lint":"eslint src","test":"npm run build && jest src","build":"npm run build:rs && npm run build:ts && npm run copy-wasm","clean":"rm -rf dist/","build:rs":"cd caravan-rs && wasm-pack build -t web --out-dir pkg-web && wasm-pack build --target nodejs --out-dir pkg-nodejs","build:ts":"tsc","copy-wasm":"shx mkdir -p dist/caravan-rs/pkg-web && shx mkdir -p dist/caravan-rs/pkg-nodejs && shx cp -R caravan-rs/pkg-web/* dist/caravan-rs/pkg-web/ && shx cp -R caravan-rs/pkg-nodejs/* dist/caravan-rs/pkg-nodejs/","test:debug":"node --inspect-brk ../../node_modules/.bin/jest --runInBand","test:watch":"jest --watch src"},"_npmUser":{"name":"bucko","email":"buck.perley@protonmail.com"},"_npmVersion":"10.2.4","description":"A library for parsing and encoding descriptor strings using bdk","directories":{},"_nodeVersion":"20.11.0","dependencies":{"@caravan/bitcoin":"*"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4"},"_npmOperationalInternal":{"tmp":"tmp/descriptors_0.0.1_1708733264173_0.2887195680814003","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@caravan/descriptors","version":"0.0.2","author":{"name":"Unchained Capital"},"_id":"@caravan/descriptors@0.0.2","maintainers":[{"name":"bucko","email":"buck.perley@protonmail.com"}],"dist":{"shasum":"4dbb66394c43e57aa773d816b9f35e2b2d524968","tarball":"https://registry.npmjs.org/@caravan/descriptors/-/descriptors-0.0.2.tgz","fileCount":27,"integrity":"sha512-d5kW0c9SBqQAS1GHclO3dAx3596AOzVKkZnVuP5DYnTvgbo2rg6Dc7g+rxx0L1V6Uskw2V+UcH/vpzkXxbn5aw==","signatures":[{"sig":"MEYCIQDRSJ/H3iz2T8NQJAuLKAsXLfrntiFb207PcH0etTSlEwIhAKS3x6BCqX3G7iHZ82bBMPJ1ily2h4buPtOU1Rqim5kv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":131596},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"gitHead":"2f9f8be45603232c4d6d83b6b244ae2a9b6ea42d","private":false,"scripts":{"ci":"npm run build && npm run lint && npm run test","dev":"npm run build -- --watch","lint":"eslint src","test":"npm run build && jest src","build":"npm run build:rs && npm run build:ts && npm run copy-wasm","clean":"rm -rf dist/","release":"changeset publish","version":"changeset version","build:rs":"cd caravan-rs && wasm-pack build -t web --out-dir pkg-web && wasm-pack build --target nodejs --out-dir pkg-nodejs","build:ts":"tsc","changeset":"changeset","copy-wasm":"shx mkdir -p dist/caravan-rs/pkg-web && shx mkdir -p dist/caravan-rs/pkg-nodejs && shx cp -R caravan-rs/pkg-web/* dist/caravan-rs/pkg-web/ && shx cp -R caravan-rs/pkg-nodejs/* dist/caravan-rs/pkg-nodejs/","test:debug":"node --inspect-brk ../../node_modules/.bin/jest --runInBand","test:watch":"jest --watch src"},"_npmUser":{"name":"bucko","email":"buck.perley@protonmail.com"},"_npmVersion":"10.2.4","description":"A library for parsing and encoding descriptor strings using bdk","directories":{},"_nodeVersion":"20.11.1","dependencies":{"@caravan/bitcoin":"^0.0.3","@caravan/wallets":"^0.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.3.3","@types/jest":"^29.5.12","@changesets/cli":"^2.27.1","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","eslint-plugin-only-warn":"^1.1.0","@typescript-eslint/parser":"^7.1.0","@changesets/changelog-github":"^0.5.0","@typescript-eslint/eslint-plugin":"^7.1.0","eslint-import-resolver-typescript":"^3.6.1"},"_npmOperationalInternal":{"tmp":"tmp/descriptors_0.0.2_1709004289305_0.3135676614933405","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@caravan/descriptors","version":"0.0.3","author":{"name":"Unchained Capital"},"_id":"@caravan/descriptors@0.0.3","maintainers":[{"name":"bucko","email":"buck.perley@protonmail.com"}],"dist":{"shasum":"09cb90bda6156b824ae15ad7251867f221f3ad96","tarball":"https://registry.npmjs.org/@caravan/descriptors/-/descriptors-0.0.3.tgz","fileCount":3,"integrity":"sha512-QYWnpCGP2D1VXlrH+LCupvYbkcdCsoV5hcOhipqjZ47sfv6LZAy+7+N49Ebnof2JbtzkCThjzqgZVuqgyZospg==","signatures":[{"sig":"MEUCICXkQG5m2FX4lHLT4edZgChRAX8sUu+9wJTP9aPZyH0IAiEAxCGbZyIxFpcZq0hVulvLh8hg439/Htjkww4I47sotgY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5735},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"gitHead":"435d6db41249d9092e2b1f800bf94894f12df6cd","private":false,"scripts":{"ci":"npm run lint && npm run test","dev":"npm run build -- --watch","lint":"eslint src","test":"jest src","build":"npm run build:rs && npm run build:ts && npm run copy-wasm","clean":"rm -rf dist/","release":"changeset publish","version":"changeset version","build:rs":"cd caravan-rs && wasm-pack build -t web --out-dir pkg-web && wasm-pack build --target nodejs --out-dir pkg-nodejs","build:ts":"tsc","changeset":"changeset","copy-wasm":"shx mkdir -p dist/caravan-rs/pkg-web && shx mkdir -p dist/caravan-rs/pkg-nodejs && shx cp -R caravan-rs/pkg-web/* dist/caravan-rs/pkg-web/ && shx cp -R caravan-rs/pkg-nodejs/* dist/caravan-rs/pkg-nodejs/","test:debug":"node --inspect-brk ../../node_modules/.bin/jest --runInBand","test:watch":"jest --watch src"},"_npmUser":{"name":"bucko","email":"buck.perley@protonmail.com"},"_npmVersion":"10.2.4","description":"A library for parsing and encoding descriptor strings using bdk","directories":{},"_nodeVersion":"20.11.1","dependencies":{"@caravan/bitcoin":"^0.0.3","@caravan/wallets":"^0.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.3.3","@types/jest":"^29.5.12","@changesets/cli":"^2.27.1","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","eslint-plugin-only-warn":"^1.1.0","@typescript-eslint/parser":"^7.1.0","@changesets/changelog-github":"^0.5.0","@typescript-eslint/eslint-plugin":"^7.1.0","eslint-import-resolver-typescript":"^3.6.1"},"_npmOperationalInternal":{"tmp":"tmp/descriptors_0.0.3_1709006801654_0.9879122273792618","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@caravan/descriptors","version":"0.0.4","author":{"name":"Unchained Capital"},"_id":"@caravan/descriptors@0.0.4","maintainers":[{"name":"bucko","email":"buck.perley@protonmail.com"}],"dist":{"shasum":"f458c715303fc8916dc65451297d117b139aae64","tarball":"https://registry.npmjs.org/@caravan/descriptors/-/descriptors-0.0.4.tgz","fileCount":3,"integrity":"sha512-tNCz0v+cqnKO4jQ185IBGj/XUNM+tjaRUJiMOc8a7v4UvX/RTaX7yRHq432Zsdc+yg0rH9lV4E6BpmA8HPLS8A==","signatures":[{"sig":"MEUCIHucKk8zsU/mXRdk+p+bdXfei0Xt8AMHIqs1lEctUGOvAiEA+ypWoX5PeC+YOr+3jAOr3FvR5jtYQ0GKqVNaYDQIXyg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5762},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"gitHead":"60437d4b00eda17d5778df3d3a1f8f36c3790890","private":false,"scripts":{"ci":"npm run lint && npm run test","dev":"npm run build -- --watch","lint":"tsc && eslint 'src/**/*.{ts,js,json}'","test":"jest src","build":"npm run build:rs && npm run build:ts && npm run copy-wasm","clean":"rm -rf dist/","release":"changeset publish","version":"changeset version","build:rs":"cd caravan-rs && wasm-pack build -t web --out-dir pkg-web && wasm-pack build --target nodejs --out-dir pkg-nodejs","build:ts":"tsc","changeset":"changeset","copy-wasm":"shx mkdir -p dist/caravan-rs/pkg-web && shx mkdir -p dist/caravan-rs/pkg-nodejs && shx cp -R caravan-rs/pkg-web/* dist/caravan-rs/pkg-web/ && shx cp -R caravan-rs/pkg-nodejs/* dist/caravan-rs/pkg-nodejs/","test:debug":"node --inspect-brk ../../node_modules/.bin/jest --runInBand","test:watch":"jest --watch src"},"_npmUser":{"name":"bucko","email":"buck.perley@protonmail.com"},"_npmVersion":"10.2.4","description":"A library for parsing and encoding descriptor strings using bdk","directories":{},"_nodeVersion":"20.11.1","dependencies":{"@caravan/bitcoin":"^0.0.3","@caravan/wallets":"^0.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.3.3","@types/jest":"^29.5.12","@changesets/cli":"^2.27.1","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","eslint-plugin-only-warn":"^1.1.0","@typescript-eslint/parser":"^7.1.0","@changesets/changelog-github":"^0.5.0","@typescript-eslint/eslint-plugin":"^7.1.0","eslint-import-resolver-typescript":"^3.6.1"},"_npmOperationalInternal":{"tmp":"tmp/descriptors_0.0.4_1709008172187_0.12189608719173362","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"@caravan/descriptors","version":"0.0.5","author":{"name":"Unchained Capital"},"_id":"@caravan/descriptors@0.0.5","maintainers":[{"name":"bucko","email":"buck.perley@protonmail.com"}],"dist":{"shasum":"17a4c33b025be6a9433a805c4dd3408a80f8849b","tarball":"https://registry.npmjs.org/@caravan/descriptors/-/descriptors-0.0.5.tgz","fileCount":3,"integrity":"sha512-16UN6oz2dc3xNPlQJocSueoYtmruMc+JxSH8i45AP9+YmOrAo0Rh7bk5LXOQEsvCQ7JHb+10YeZ1y2xQWmSC8A==","signatures":[{"sig":"MEUCIQDu20XC67SdhYDv0gEyjqozHcuTScWw/+TRV0gEdLpXfQIgElLHT9hoEVpnndROHD7UszbH3qddtahp/ptRwGvvaBY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5723},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"gitHead":"dea1f677b5036f9b63c9dd37eacdae956b9aa70c","private":false,"scripts":{"ci":"npm run lint && npm run test","dev":"npm run build -- --watch","lint":"tsc && eslint 'src/**/*.{ts,js,json}'","test":"jest src","build":"npm run build:rs && npm run build:ts && npm run copy-wasm","clean":"rm -rf dist/","release":"changeset publish","version":"changeset version","build:rs":"cd caravan-rs && wasm-pack build -t web --out-dir pkg-web && wasm-pack build --target nodejs --out-dir pkg-nodejs","build:ts":"tsc","changeset":"changeset","copy-wasm":"shx mkdir -p dist/caravan-rs/pkg-web && shx mkdir -p dist/caravan-rs/pkg-nodejs && shx cp -R caravan-rs/pkg-web/* dist/caravan-rs/pkg-web/ && shx cp -R caravan-rs/pkg-nodejs/* dist/caravan-rs/pkg-nodejs/","test:debug":"node --inspect-brk ../../node_modules/.bin/jest --runInBand","test:watch":"jest --watch src"},"_npmUser":{"name":"bucko","email":"buck.perley@protonmail.com"},"_npmVersion":"10.2.4","description":"A library for parsing and encoding descriptor strings using bdk","directories":{},"_nodeVersion":"20.11.1","dependencies":{"@caravan/bitcoin":"^0.0.3","@caravan/wallets":"^0.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.3.3","@types/jest":"^29.5.12","@changesets/cli":"^2.27.1","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","eslint-plugin-only-warn":"^1.1.0","@typescript-eslint/parser":"^7.1.0","@changesets/changelog-github":"^0.5.0","@typescript-eslint/eslint-plugin":"^7.1.0","eslint-import-resolver-typescript":"^3.6.1"},"_npmOperationalInternal":{"tmp":"tmp/descriptors_0.0.5_1709009045421_0.936224100085729","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"@caravan/descriptors","version":"0.0.6","author":{"name":"Unchained Capital"},"_id":"@caravan/descriptors@0.0.6","maintainers":[{"name":"bucko","email":"buck.perley@protonmail.com"}],"dist":{"shasum":"f58ec04f5a281bb5dbbd2d1e6b8515dc714ecafe","tarball":"https://registry.npmjs.org/@caravan/descriptors/-/descriptors-0.0.6.tgz","fileCount":27,"integrity":"sha512-bhF4atXWCKwHL/KRLjbyyn2cMc5xMhkOdbA+TUtSDamti2vq1GmM69zJRhlBqCgETmtp1rZCfEw2r4qcCCNVqg==","signatures":[{"sig":"MEUCIQCCCnmSQouMmEo2S6BbLsCPhYGdp0aTMup3MnT76QCpMgIgRkSV110BO8pZ27aipnWpfpaUNxAtA/PNQw0AUu8mRhk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3538825},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"gitHead":"7566e1acbf95a902e8d4f5588a06d62ac6570719","private":false,"scripts":{"ci":"npm run lint && npm run test","dev":"npm run build -- --watch","lint":"tsc && eslint 'src/**/*.{ts,js,json}'","test":"jest src","build":"npm run build:rs && npm run build:ts && npm run copy-wasm","clean":"rm -rf dist/","release":"npm run build && changeset publish","version":"changeset version","build:rs":"cd caravan-rs && wasm-pack build -t web --out-dir pkg-web && wasm-pack build --target nodejs --out-dir pkg-nodejs","build:ts":"tsc","changeset":"changeset","copy-wasm":"shx mkdir -p dist/caravan-rs/pkg-web && shx mkdir -p dist/caravan-rs/pkg-nodejs && shx cp -R caravan-rs/pkg-web/* dist/caravan-rs/pkg-web/ && shx cp -R caravan-rs/pkg-nodejs/* dist/caravan-rs/pkg-nodejs/","test:debug":"node --inspect-brk ../../node_modules/.bin/jest --runInBand","test:watch":"jest --watch src"},"_npmUser":{"name":"bucko","email":"buck.perley@protonmail.com"},"_npmVersion":"10.2.4","description":"A library for parsing and encoding descriptor strings using bdk","directories":{},"_nodeVersion":"20.11.0","dependencies":{"@caravan/bitcoin":"^0.0.3","@caravan/wallets":"^0.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.3.3","@types/jest":"^29.5.12","@changesets/cli":"^2.27.1","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","eslint-plugin-only-warn":"^1.1.0","@typescript-eslint/parser":"^7.1.0","@changesets/changelog-github":"^0.5.0","@typescript-eslint/eslint-plugin":"^7.1.0","eslint-import-resolver-typescript":"^3.6.1"},"_npmOperationalInternal":{"tmp":"tmp/descriptors_0.0.6_1709009945796_0.5305834322839253","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"@caravan/descriptors","version":"0.1.0","author":{"name":"Unchained Capital"},"_id":"@caravan/descriptors@0.1.0","maintainers":[{"name":"bucko","email":"buck.perley@protonmail.com"}],"dist":{"shasum":"48369b1183ee33d603748fdc65abae55e93fa64e","tarball":"https://registry.npmjs.org/@caravan/descriptors/-/descriptors-0.1.0.tgz","fileCount":27,"integrity":"sha512-FI7nWfKej70QGID3FnVLIFB7LfcDSYVPNdCAWNf6hvLk/26xE/ps7DlKe6oBRysOnvNu+IlXbvALHbNdlId9iA==","signatures":[{"sig":"MEQCIGZpVeqpNaPtW64XUJ4eDZ7PurBS8ltuvmCcxxJ6i/pZAiAJbRPI7gwei1R95NicaBjRovB18Lean1PlNUoHsXCXUQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3549321},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"gitHead":"fb16cee5303428a0b13cdfedfd799fa19809fd04","private":false,"scripts":{"ci":"npm run lint && npm run test","dev":"npm run build -- --watch","lint":"tsc && eslint 'src/**/*.{ts,js,json}'","test":"jest src","build":"npm run build:rs && npm run build:ts && npm run copy-wasm","clean":"rm -rf dist/","release":"npm run build && changeset publish","version":"changeset version","build:rs":"cd caravan-rs && wasm-pack build -t web --out-dir pkg-web && wasm-pack build --target nodejs --out-dir pkg-nodejs","build:ts":"tsc","changeset":"changeset","copy-wasm":"shx mkdir -p dist/caravan-rs/pkg-web && shx mkdir -p dist/caravan-rs/pkg-nodejs && shx cp -R caravan-rs/pkg-web/* dist/caravan-rs/pkg-web/ && shx cp -R caravan-rs/pkg-nodejs/* dist/caravan-rs/pkg-nodejs/","test:debug":"node --inspect-brk ../../node_modules/.bin/jest --runInBand","test:watch":"jest --watch src"},"_npmUser":{"name":"bucko","email":"buck.perley@protonmail.com"},"_npmVersion":"10.5.2","description":"A library for parsing and encoding descriptor strings using bdk","directories":{},"_nodeVersion":"20.13.1","dependencies":{"@caravan/bitcoin":"^0.0.3","@caravan/wallets":"^0.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.3.3","@types/jest":"^29.5.12","@changesets/cli":"^2.27.1","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","eslint-plugin-only-warn":"^1.1.0","@typescript-eslint/parser":"^7.1.0","@changesets/changelog-github":"^0.5.0","@typescript-eslint/eslint-plugin":"^7.1.0","eslint-import-resolver-typescript":"^3.6.1"},"_npmOperationalInternal":{"tmp":"tmp/descriptors_0.1.0_1716425090227_0.1159113749159606","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@caravan/descriptors","version":"0.1.1","author":{"name":"Unchained Capital"},"_id":"@caravan/descriptors@0.1.1","maintainers":[{"name":"bucko","email":"buck.perley@protonmail.com"}],"dist":{"shasum":"fd964df4453dae5d29cb36fa013585f9d437b9d7","tarball":"https://registry.npmjs.org/@caravan/descriptors/-/descriptors-0.1.1.tgz","fileCount":27,"integrity":"sha512-GZS4x++pMk5D+fYMnvgaFTAE3rSlP8UwJzhGdgJJUR/Q+ntDH9YsXE3vbAk0NtyyLAyjz8NyqoN+vW57VOp7eQ==","signatures":[{"sig":"MEQCIGHV/MGXCx3IDd49weJyo++rKz987TYtpT2LAIDBdyQeAiANuCTE8AuHFMe70xSFOjrt6YUqbZoCYaBiKBOOFHn+5g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3549393},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"gitHead":"bed5a464289ed1d11e3fae16e258f87e4326a338","private":false,"scripts":{"ci":"npm run lint && npm run test","dev":"npm run build -- --watch","lint":"tsc && eslint 'src/**/*.{ts,js,json}'","test":"jest src","build":"npm run build:rs && npm run build:ts && npm run copy-wasm","clean":"rm -rf dist/","release":"npm run build && changeset publish","version":"changeset version","build:rs":"cd caravan-rs && wasm-pack build -t web --out-dir pkg-web && wasm-pack build --target nodejs --out-dir pkg-nodejs","build:ts":"tsc","changeset":"changeset","copy-wasm":"shx mkdir -p dist/caravan-rs/pkg-web && shx mkdir -p dist/caravan-rs/pkg-nodejs && shx cp -R caravan-rs/pkg-web/* dist/caravan-rs/pkg-web/ && shx cp -R caravan-rs/pkg-nodejs/* dist/caravan-rs/pkg-nodejs/","test:debug":"node --inspect-brk ../../node_modules/.bin/jest --runInBand","test:watch":"jest --watch src"},"_npmUser":{"name":"bucko","email":"buck.perley@protonmail.com"},"_npmVersion":"10.5.2","description":"A library for parsing and encoding descriptor strings using bdk","directories":{},"_nodeVersion":"20.13.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.3.3","@types/jest":"^29.5.12","@changesets/cli":"^2.27.1","@caravan/bitcoin":"^0.1.0","@caravan/wallets":"^0.1.0","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","eslint-plugin-only-warn":"^1.1.0","@typescript-eslint/parser":"^7.1.0","@changesets/changelog-github":"^0.5.0","@typescript-eslint/eslint-plugin":"^7.1.0","eslint-import-resolver-typescript":"^3.6.1"},"peerDependencies":{"@caravan/bitcoin":"^0.1.0","@caravan/wallets":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/descriptors_0.1.1_1716437734045_0.15640652091721075","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@caravan/descriptors","version":"0.2.0","author":{"name":"Unchained Capital"},"_id":"@caravan/descriptors@0.2.0","maintainers":[{"name":"bucko","email":"buck.perley@protonmail.com"}],"homepage":"https://github.com/caravan-bitcoin/descriptors#readme","bugs":{"url":"https://github.com/caravan-bitcoin/descriptors/issues"},"dist":{"shasum":"b6e203f542272b037ab3fd245bb0b6d1ed2aac66","tarball":"https://registry.npmjs.org/@caravan/descriptors/-/descriptors-0.2.0.tgz","fileCount":42,"integrity":"sha512-4dW33X+soUqadCR6dIReIV+6sSjsXZ3q2i33xN7DlAQkKO257wYbEghE4Yxx4/e33zgF7my8z5qAjkIMtu+V/Q==","signatures":[{"sig":"MEUCIQDC7gGnnLx/722Wp/Pgxc7JOloPk5CIgzAP+qDefZJlAgIgNK8CmQXWleZ+yzhZrlqadu+hg1df5isXGWjLk8MuKMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@caravan%2fdescriptors@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3577771},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","engines":{"node":">=20"},"gitHead":"8df51db508226f10fd5e80fd2279d645a6ec34eb","private":false,"scripts":{"ci":"npm run lint && npm run test","dev":"npm run build -- --watch","lint":"tsc && eslint 'src/**/*.{ts,js,json}'","test":"jest src","build":"npm run build:rs && npm run build:ts && npm run copy-wasm","clean":"rm -rf dist/","release":"npm run build && changeset publish","version":"changeset version","build:rs":"cd caravan-rs && wasm-pack build -t web --out-dir pkg-web && wasm-pack build --target nodejs --out-dir pkg-nodejs","build:ts":"tsc","changeset":"changeset","copy-wasm":"shx mkdir -p dist/caravan-rs/pkg-web && shx mkdir -p dist/caravan-rs/pkg-nodejs && shx cp -R caravan-rs/pkg-web/* dist/caravan-rs/pkg-web/ && shx cp -R caravan-rs/pkg-nodejs/* dist/caravan-rs/pkg-nodejs/","test:debug":"node --inspect-brk ../../node_modules/.bin/jest --runInBand","test:watch":"jest --watch src"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:47a31b58-51c6-44a5-9566-371a0b33312d"}},"repository":{"url":"git+https://github.com/caravan-bitcoin/descriptors.git","type":"git"},"_npmVersion":"11.6.2","description":"A library for parsing and encoding descriptor strings using bdk","directories":{},"_nodeVersion":"24.12.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.3.3","@types/jest":"^29.5.12","@changesets/cli":"^2.27.1","@caravan/bitcoin":"^0.1.0","@caravan/wallets":"^0.1.0","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","eslint-plugin-only-warn":"^1.1.0","@typescript-eslint/parser":"^7.1.0","@changesets/changelog-github":"^0.5.0","@typescript-eslint/eslint-plugin":"^7.1.0","eslint-import-resolver-typescript":"^3.6.1"},"peerDependencies":{"@caravan/bitcoin":">=0.1.0","@caravan/wallets":">=0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/descriptors_0.2.0_1767043348164_0.854699148924785","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2024-02-24T00:07:44.082Z","modified":"2026-04-17T19:41:19.540Z","0.0.1":"2024-02-24T00:07:45.283Z","0.0.2":"2024-02-27T03:24:49.469Z","0.0.3":"2024-02-27T04:06:41.798Z","0.0.4":"2024-02-27T04:29:32.332Z","0.0.5":"2024-02-27T04:44:05.570Z","0.0.6":"2024-02-27T04:59:05.998Z","0.1.0":"2024-05-23T00:44:50.504Z","0.1.1":"2024-05-23T04:15:34.249Z","0.2.0":"2025-12-29T21:22:28.431Z"},"bugs":{"url":"https://github.com/caravan-bitcoin/descriptors/issues"},"author":{"name":"Unchained Capital"},"homepage":"https://github.com/caravan-bitcoin/descriptors#readme","repository":{"url":"git+https://github.com/caravan-bitcoin/descriptors.git","type":"git"},"description":"A library for parsing and encoding descriptor strings using bdk","maintainers":[],"readme":"[![tests](https://github.com/caravan-bitcoin/descriptors/actions/workflows/ci.yml/badge.svg)](https://github.com/caravan-bitcoin/descriptors/actions/workflows/ci.yml)\n[![Release](https://github.com/caravan-bitcoin/descriptors/actions/workflows/release.yml/badge.svg)](https://github.com/caravan-bitcoin/descriptors/actions/workflows/release.yml)\n[![npm](https://img.shields.io/npm/v/@caravan/descriptors)](https://www.npmjs.com/package/@caravan/descriptors)\n\n# Caravan Descriptors\n\n## Installation\n\n@caravan/descriptors is built on top of bdk which is written in Rust. In order to leverage\nbdk as the reference code, there are wasm bindings provided.\n\nIn order to build these, you will need Rust and wasm-pack. You may also need to install llvm/clang\n\n```shell\n$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # https://www.rust-lang.org/tools/install\n$ cargo install wasm-pack\n```\n\nYou may also need to export some paths to build libsecp:\n\n```shell\n$ $ export PATH=\"/opt/homebrew/opt/llvm/bin:$PATH\" \\\n# for older homebrew installs \\\n# export PATH=\"/usr/local/opt/llvm/bin:$PATH\"\nexport CC=/opt/homebrew/opt/llvm/bin/clang \\\nexport AR=/opt/homebrew/opt/llvm/bin/llvm-ar\n```\n\n## Usage\n\nYou can use npm scripts from the main directory to do all building\n\n```shell\n$ npm run build\n```\n\nThis will cd into the rust directory, build packages for web and node\ntargets, and then build the artifacts for the js library to be packaged\nand used.\n\n```shell\n$ npm run test\n```\n\nThis will run the TypeScript tests only.\n\n### Web\n\nYou'll need to make sure that the web environment this is used in\nsupports wasm. For example, if you're using in a vite.js project\nyou'll need the `vite-plugin-wasm` plugin.\n\nAlso note that all functions exported are async and need to be awaited\nsince they will load up the wasm modules to be used (this way consumers\nof the library don't have to worry about loading up the modules themselves)\n\n## Development\n\nMake sure any PRs pass linting and tests. Changes that impact the API\nwill require a [changeset](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md)\nin order to be merged.\n\nThe following command will launch the changeset cli:\n\n```shell\n$ npm run changeset\n```\n\n## API\n\n### encodeDescriptors\n\nTakes a config for a multisig wallet and encodes it into\nthe two corresponding descriptors (external/receive and internal/change).\n\n```typescript\nimport { encodeDescriptors } from \"@caravan/descriptors\";\n\nconst config = {\n  requiredSigners: 2,\n  addressType: \"P2SH\",\n  keyOrigins: [...],\n  network: \"bitcoin\"\n};\n\nconst { receive, change } = await encodeDescriptors(config);\n// receive: \"sh(sortedmulti(2,[...]/0/*,...))#checksum\"\n// change: \"sh(sortedmulti(2,[...]/1/*,...))#checksum\"\n```\n\n### encodeDescriptorWithMultipath\n\nTakes a config for a multisig wallet and encodes it into a single\nBIP389 multipath descriptor that covers both external and internal paths.\n\n**Note:** Only `<0;1>/*` tuples are supported (not arbitrary tuples like `<1;2;3>/*`).\n\n```typescript\nimport { encodeDescriptorWithMultipath } from \"@caravan/descriptors\";\n\nconst config = {\n  requiredSigners: 2,\n  addressType: \"P2WSH\",\n  keyOrigins: [...],\n  network: \"bitcoin\"\n};\n\nconst multipathDescriptor = await encodeDescriptorWithMultipath(config);\n// \"wsh(sortedmulti(2,[...]/<0;1>/*,...))#checksum\"\n// This single descriptor represents both receive (0/*) and change (1/*) paths\n```\n\n### decodeDescriptors\n\nTake two descriptors and convert them into a multisig wallet\nconfig object. This will make it possible to determine and parse the wallet type\n(e.g. P2SH) and the key origins.\n\n```typescript\nimport { decodeDescriptors } from \"@caravan/descriptors\";\n\nconst external = \"sh(sortedmulti(2,[...]/0/*,...))#checksum\";\nconst internal = \"sh(sortedmulti(2,[...]/1/*,...))#checksum\";\n\nconst config = await decodeDescriptors(internal, external);\n// Returns: { requiredSigners, addressType, keyOrigins, network }\n```\n\n### getWalletFromDescriptor\n\nTakes a single descriptor (multipath or traditional) and converts it\ninto a multisig wallet config. Supports BIP389 multipath notation\n(`/<0;1>/*`) and traditional notation (`/0/*` or `/1/*`).\n\n**Note:** Only `<0;1>/*` multipath tuples are supported (not arbitrary tuples).\n\n```typescript\nimport { getWalletFromDescriptor } from \"@caravan/descriptors\";\n\n// Multipath descriptor (<0;1>/* only)\nconst multipathDesc = \"wsh(sortedmulti(2,[...]/<0;1>/*,...))#checksum\";\nconst config = await getWalletFromDescriptor(multipathDesc);\n\n// Traditional descriptor\nconst traditionalDesc = \"wsh(sortedmulti(2,[...]/0/*,...))#checksum\";\nconst config2 = await getWalletFromDescriptor(traditionalDesc);\n```\n\n### calculateChecksum\n\nCalculates the BIP-380 checksum for a descriptor string using BDK's Rust implementation via WASM.\nThe checksum is an 8-character string that validates the integrity of the descriptor.\n\n**Note:** The descriptor string can include or exclude an existing checksum (it will be ignored if present).\n\n```typescript\nimport { calculateChecksum } from \"@caravan/descriptors\";\n\nconst descriptor = \"wsh(sortedmulti(2,[...]/<0;1>/*,...))\";\nconst checksum = await calculateChecksum(descriptor);\n// Returns: \"8-character checksum string\"\n\n// Use it to create a full descriptor with checksum\nconst descriptorWithChecksum = `${descriptor}#${checksum}`;\n```\n\n## BIP389 Multipath Descriptor Support\n\nThis library supports [BIP389](https://bips.dev/389/) multipath descriptor notation\nfor the `<0;1>/*` tuple case, which allows a single descriptor to represent both\nexternal (receive) and internal (change) derivation paths.\n\n**Note:** This implementation supports the `<0;1>/*` tuple format specifically,\nwhich covers the primary wallet use case. BIP389 allows arbitrary tuples like\n`<1;2;3>/*` or `<2147483647h;0;5>/*`, but those are not currently supported.\n\n### Features\n\n- ✅ **BIP389 Subset Compliant**: Full support for `<0;1>/*` multipath notation\n- ✅ **Hardened Paths**: Supports hardened derivation indicators (`h`, `H`, `'`)\n- ✅ **Validation**: Comprehensive BIP389 constraint validation for `<0;1>` tuples\n- ✅ **Backwards Compatible**: Still supports traditional `/0/*` and `/1/*` notation\n\n### Example: Multipath Descriptor\n\n```typescript\n// Single descriptor covering both receive and change paths\nconst multipathDescriptor =\n  \"wsh(sortedmulti(2,[d52d08fc/48h/1h/0h/2h]tpubXXX/<0;1>/*,[85b4d568/48h/1h/0h/2h]tpubYYY/<0;1>/*))#checksum\";\n\n// Parse into separate external and internal descriptors\nimport { getWalletFromDescriptor } from \"@caravan/descriptors\";\nconst config = await getWalletFromDescriptor(multipathDescriptor);\n```\n\n### Example: Creating Multipath Descriptor\n\n```typescript\nimport { encodeDescriptorWithMultipath } from \"@caravan/descriptors\";\n\nconst walletConfig = {\n  requiredSigners: 2,\n  addressType: \"P2WSH\",\n  keyOrigins: [\n    {\n      xfp: \"d52d08fc\",\n      bip32Path: \"m/48'/1'/0'/2'\",\n      xpub: \"tpubXXX...\",\n    },\n    {\n      xfp: \"85b4d568\",\n      bip32Path: \"m/48'/1'/0'/2'\",\n      xpub: \"tpubYYY...\",\n    },\n  ],\n  network: \"testnet\",\n};\n\n// Creates: \"wsh(sortedmulti(2,[...]/<0;1>/*,...))#checksum\"\nconst multipathDesc = await encodeDescriptorWithMultipath(walletConfig);\n```\n","readmeFilename":"README.md"}