{"_id":"@bitcoinerlab/miniscript","_rev":"15-df48dbc910344597426f9072a33e716d","name":"@bitcoinerlab/miniscript","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"@bitcoinerlab/miniscript","version":"1.0.0","keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","_id":"@bitcoinerlab/miniscript@1.0.0","maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"homepage":"https://bitcoinerlab.com/miniscript","bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"dist":{"shasum":"9de3bc50ed641340d02e37e4226701ef773bda19","tarball":"https://registry.npmjs.org/@bitcoinerlab/miniscript/-/miniscript-1.0.0.tgz","fileCount":16,"integrity":"sha512-G1CNR+3LaBZQzYegNvnRycDu2mW0ViMoYcgB9x62WWA3vroK3IG67XlQrNCgNoB1GOmbsa8ZIBxSVDtNzjyqew==","signatures":[{"sig":"MEYCIQCX/wlXznAtmPfScD5Go2JmkOwagDqYISRgHPiYxo8vUAIhAJ4AM1mZtvg0h++dYbvJQijC2UPOGjWr53W50UPfxnYg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":93655,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjqCIJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmokRg/+JrwMSqCse01i0KC3GipADM68fkqoLrf5ltN24Re8BVXjVXvt\r\nODp+UbKmpkg6JzgHekw1Xp49RjamPiXi4ca90WdrnPdtq+Iaub6rOrv45J5s\r\nlW9HZ6kHq9g/L7U3DxFv93mRfP8wFKMFv+ioJJN/B4I3HylXPTz0TFZpyMJk\r\nJxK3QRdqTcPfaPUhJgouuTIjk9Pa26Rmu21AZ5ahfhD6jJUUGuwgYPCmdb+z\r\nReobqkiyRdcgd0yuw11scCXBQ/s9LX6dtLzuQO2TacPww7hmElm42R4HeuSz\r\nMvxmSRQqujeIv4D935FQ5hflg5B1mRSf8QyK4XHjUoi+fr4B/CzPLDsV9lqd\r\n9Ct1B77akPvpVIvBd5M04UW/DbFU/9U67je1o4Y6EbSbKkupoxvvLhmQvhyL\r\n+Eb97b7ELzZAkh0fU9sMspgqotCZcLV2H6Fm0EBuLIi2JelFSKD+v/MHPJIB\r\n1LuTwqASn7g5CP4dpwcy+1+is8wJufO1pmpYGvWIXQ+NMk1pD6Buhpb39iX5\r\nqN+U72+e9gAqq20OkpXcLKblYuQDLMz2Lgv0USd5G6xPdjLuHOTEw+GpAn7g\r\nbatrtzsHtA48IWfbEazEPYdriGc5ppNUwuiz5dhILdKy6xHgFD8Cop8VO4DI\r\noPprFpZr/6zEpmmrpSUI8BTYbtKltbfmeeI=\r\n=hu/v\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","babel":{"env":{"test":{"plugins":["@babel/plugin-transform-modules-commonjs","babel-plugin-transform-import-meta"]}}},"gitHead":"91a108b0f810b3d659105f4871b20642c847e719","scripts":{"docs":"jsdoc -c jsdoc.json","test":"jest","build":"rollup -c --bundleConfigAsCjs","example":"node ./example.js","prepublishOnly":"npm run build && make && npm test"},"_npmUser":{"name":"jl.landabaso","email":"landabaso@gmail.com"},"repository":{"url":"git+https://github.com/bitcoinerlab/miniscript.git","type":"git"},"_npmVersion":"8.11.0","description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a Policy and Miniscript compiler, as well as a Satisfier for generating expressive witness scripts.","directories":{},"_nodeVersion":"17.9.1","dependencies":{"bip68":"^1.0.4"},"COMMENT_babel":"Babel plugins are are only needed for the jest testing environment. Jest needs to use commonjs. Also, jest cannot handle ESM converted code, since it uses 'import.meta.url'. See src/bindings.js. babel-plugin-transform-import-meta fixes it.","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","jsdoc":"^4.0.0","rollup":"^3.7.0","rollup-plugin-commonjs":"^10.1.0","babel-plugin-transform-import-meta":"^2.2.0","@babel/plugin-transform-modules-commonjs":"^7.19.6"},"_npmOperationalInternal":{"tmp":"tmp/miniscript_1.0.0_1671963145776_0.7268753582721295","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@bitcoinerlab/miniscript","version":"1.0.1","keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","_id":"@bitcoinerlab/miniscript@1.0.1","maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"homepage":"https://bitcoinerlab.com/miniscript","bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"dist":{"shasum":"335917b754a55ab67bc33d5c26f03b71ed26c34c","tarball":"https://registry.npmjs.org/@bitcoinerlab/miniscript/-/miniscript-1.0.1.tgz","fileCount":17,"integrity":"sha512-syn3k9b3o4Y742nBgINX+Akl5Tinpy2Qt94zGu3W3tJ1uUdYJqHkhf3Zr/gETvkMK50+dKeXchQ2kkX2uzir2g==","signatures":[{"sig":"MEYCIQDWirQq5brCnkg+dHRmHV6mLiAC3KLd2P62iAM8/1qbhgIhAMGA82XWQ2F8rEu/6Vnun7Bn57T4baTtptLsBDlOujAS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":910401,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjqCPPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqAgQ//ZWUue9YG+ceuArbII71gxewl3jPkHo0YpM1Hhhj+WjaXzt0l\r\n4HNA+gBFkTtd4Jlna+C7DF3q0UbdU6RZ22FNnAAlvWH1h/EturdMCKbk8k1E\r\nWIXxPEYuSJNsYaFmKe4ipLFbmbBKfHHtKn5hJrAeF2ZVjDloll37x/sYznva\r\nLYe98ZueZHv9cHpzVc20rqki09xGLZ/FeMLVkiI9g2wpzNlfMJAS81u6q4vf\r\n/jiE0JRZjDtz9BTLMAzdeYTDvb7obrJKgL1abHlp8FXTh+w9Qm1QX6lRTQEA\r\nbOMKXqAcvG26g/lkUcgLiq+edsF5Q2n+y8QzOY+sj2RFoV0UUucHaYF/cYAZ\r\ns92odlKa2hs9Smh8ZaMYafvmCWJzPTWUN8NRnFNbxk08tHJ4/KAsjB8q+NAj\r\n6j5vF4vBaAwcBPiLxxMimxuOK8ZWaO4FyWa2XJTKNUdftlWoeumh6+kXoC+7\r\nggneDnHaklrjO000Cma7y+G8JRO1sT2uulLVGTVhrhf09wZy2xOHTYQjCYLR\r\nyNvzrXHH6YiN8R9jWk+sazjS2Pb9hxPyRqCX1cXn2i44+T8lg3fQRWh9MVCI\r\n4GAJYg2plub9FmpJ+/glQC/vpUSX5SLdGt1Jm7CWAD6kkrF43+cyaPGuBChW\r\nJ1oEfpySv1vw2kliIP9f7F52PIPkSEXS3iQ=\r\n=HRLo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","babel":{"env":{"test":{"plugins":["@babel/plugin-transform-modules-commonjs","babel-plugin-transform-import-meta"]}}},"gitHead":"60bdb85f97b399c359cd8b6b360c9932104ae662","scripts":{"docs":"jsdoc -c jsdoc.json","test":"jest","build":"rollup -c --bundleConfigAsCjs","example":"node ./example.js","prepublishOnly":"npm run build && make && npm test"},"_npmUser":{"name":"jl.landabaso","email":"landabaso@gmail.com"},"repository":{"url":"git+https://github.com/bitcoinerlab/miniscript.git","type":"git"},"_npmVersion":"8.11.0","description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a Policy and Miniscript compiler, as well as a Satisfier for generating expressive witness scripts.","directories":{},"_nodeVersion":"17.9.1","dependencies":{"bip68":"^1.0.4"},"COMMENT_babel":"Babel plugins are are only needed for the jest testing environment. Jest needs to use commonjs. Also, jest cannot handle ESM converted code, since it uses 'import.meta.url'. See src/bindings.js. babel-plugin-transform-import-meta fixes it.","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","jsdoc":"^4.0.0","rollup":"^3.7.0","rollup-plugin-commonjs":"^10.1.0","babel-plugin-transform-import-meta":"^2.2.0","@babel/plugin-transform-modules-commonjs":"^7.19.6"},"_npmOperationalInternal":{"tmp":"tmp/miniscript_1.0.1_1671963598767_0.046238080827248895","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@bitcoinerlab/miniscript","version":"1.0.2","keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","_id":"@bitcoinerlab/miniscript@1.0.2","maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"homepage":"https://bitcoinerlab.com/miniscript","bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"dist":{"shasum":"760461241c8ef28f8ca8d90bb37a8d67adedbc39","tarball":"https://registry.npmjs.org/@bitcoinerlab/miniscript/-/miniscript-1.0.2.tgz","fileCount":17,"integrity":"sha512-P7RIKuvXB3pHEc7RcudMXcIZAz/2L9OxIXCmlxeQuthwnmVMRkEHIFBDboz7MI77KENDEL6OmmLYV8AgrzLdEA==","signatures":[{"sig":"MEQCIAc9Xn/4KAsamve8gRLwBWb9a2GW71w4p7ME64biD84AAiBORHi+5XHJxZVx1B93rK5WlBlsrLpgzfYyfImK7lJmLg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":911394,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjqskfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqHPRAAoCrnmKEUXdHUdgx/3RQmlVq8EecuM1/u/GkATatY9PYyKg7M\r\njPklUnlVa9ztMt+Rwm25ggp/N+GvMX9ajTxcuC7GbDF9KDi39/YDVOuNx0PC\r\njI1xvM5/uasZx8aEA47w7aIDR2xwrmU2tFujokwUvm2zRMm95MnNuuACuwaM\r\necqAVkdANMn60zGXUvw0zYWxs/LKKZSATdyjJuVtlODBODAliJyWQ1TvZR7j\r\njeHqCgy/mFeF946nBcJRuHyc7g4wGWo/HEye6kunucxG7GfkeJi1D4Vugvv3\r\no7Y07bFPsFwks6ryNY1aJDlUVCPwmCq5i2LagofllWQ3Xn5DIXJ6MFiw5rnQ\r\nXMNrwmzRFAwZLtawWIi4o9wFxUZA5EtAO9q67nl/xrtzDB0oCjVc7cAIJV75\r\nlSPmegW/RUXr3AicAWFxxKZ7TPmtmTfRkEHb/8pbbRp6DDlTKLW8OOH/fLRI\r\nGIL/qcqqtJw7FewwmO4ZsN59c17GA/4LH6sfVgrun1L+O5pJRcVdaPvCLSPz\r\nQQ/uL+X7sP2O+JhMhcK+XhWFB9hR2xBCz2Acy1kCY2eG7uTJ/aM4Mw29p36J\r\n+7LJhj9QtG/EQa+zqOC+CLKTEJlhXe92n2GwaDhVepW+qkW26AaqY5OMC99J\r\no1hGw4dhKqAILsl7DSza2J+iigOrAWRGHJI=\r\n=SU3a\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","babel":{"env":{"test":{"plugins":["@babel/plugin-transform-modules-commonjs","babel-plugin-transform-import-meta"]}}},"gitHead":"f2b3bb25723939ab70b919a72394b3224139af7d","scripts":{"docs":"jsdoc -c jsdoc.json","test":"jest","build":"rollup -c --bundleConfigAsCjs","example":"node ./example.js","prepublishOnly":"npm run build && make && npm test"},"_npmUser":{"name":"jl.landabaso","email":"landabaso@gmail.com"},"repository":{"url":"git+https://github.com/bitcoinerlab/miniscript.git","type":"git"},"_npmVersion":"8.11.0","description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a Policy and Miniscript compiler, as well as a Satisfier for generating expressive witness scripts.","directories":{},"_nodeVersion":"17.9.1","dependencies":{"bip68":"^1.0.4"},"COMMENT_babel":"Babel plugins are are only needed for the jest testing environment. Jest needs to use commonjs. Also, jest cannot handle ESM converted code, since it uses 'import.meta.url'. See src/bindings.js. babel-plugin-transform-import-meta fixes it.","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","jsdoc":"^4.0.0","rollup":"^3.7.0","rollup-plugin-commonjs":"^10.1.0","babel-plugin-transform-import-meta":"^2.2.0","@babel/plugin-transform-modules-commonjs":"^7.19.6"},"_npmOperationalInternal":{"tmp":"tmp/miniscript_1.0.2_1672136991504_0.2982179584216813","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@bitcoinerlab/miniscript","version":"1.0.3","keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","_id":"@bitcoinerlab/miniscript@1.0.3","maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"homepage":"https://bitcoinerlab.com/modules/miniscript","bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"dist":{"shasum":"cf2b6f233d9fc754ced2986bb2c7a2f7333e4f78","tarball":"https://registry.npmjs.org/@bitcoinerlab/miniscript/-/miniscript-1.0.3.tgz","fileCount":17,"integrity":"sha512-T1PhN6s2EE70tISNL9w/9H5l+WUndoHq6+E/Nhjni8ow+pR3v+ZDaNH9kZh+ACTTet4yAHWGa78aFZO6Gx8bcQ==","signatures":[{"sig":"MEQCIGxGtEItsjzxgrFYWpTKGvvAS5BVV9dC4IqqpEPurocTAiBCNQiEj0yf3qBrYLWh6Wiq1eceSu2P07Md0jz6w8GfhA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":912969,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrV6ZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoTbRAAiGkVt9xPd3lFgKfC6SaP6hJjSI4OjLZWyBOCP/z9Yd2PXAFa\r\nJ57p+998vVY8F1NqN3AMJEmEruaXukOBAB9RwQKRv1ZDbp52UfzxVHBxDoL+\r\ni8r7iNZbyW+KhIwQI5vpllhW9Z0BXzrMl8zp5/stRwWM2g/ZWN8S+wjGSPMU\r\nbHTwi0ewxezHjP0fpbvRa5brTVZG3u6nCXmJqjxfPETJmNGP9Uq+ZtXgGpds\r\nbZqfLGadvboRnBXAo4asEcoL9wL6UKZqnp14lTW2PcJrb0zkdndw8Xuvxvwh\r\nXuTufcI8PYPjvnLmKrsLR/t4RGg6cNhHld5QkB8MWT/S0oO3LZyoOb1ijGBQ\r\n/VaZoZ563gMqNS4WAomuY7STezbLIEh7Ularlj7ZEZXE5I+1GQJjhe+Hz2zr\r\nuYSbBmCCVNsttpFrt0M7hhbvDSxOd+eRM4YA41B/26Q7j8S1QmSjqeRlFtzl\r\nWGPsgHW5/F/8b2sH1LdOAidVTKEJz464PxGHhwD3WvrHAGKrsgEuzaUm3c9s\r\nwYvTuJEsSfj1mm3xenajSv0yPc2KgHYDIxuPPKY0X5X+aXJfygdR2bZ0JHHc\r\ncvbkslyUxSvo/8/ckD8cXL4AYQDkQWa7XxGpA6qwSvNM/fBKjfHnI7gDWtQh\r\nk/F3LkipcaK0Jay+8AqEuQ1DJ9w7RnV++I4=\r\n=NZGQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","babel":{"env":{"test":{"plugins":["@babel/plugin-transform-modules-commonjs","babel-plugin-transform-import-meta"]}}},"gitHead":"78cade877da163ae24439003fc02d50ea4ba022a","scripts":{"docs":"jsdoc -c jsdoc.json","test":"jest","build":"rollup -c --bundleConfigAsCjs","example":"node ./example.js","prepublishOnly":"npm run build && make && npm test"},"_npmUser":{"name":"jl.landabaso","email":"landabaso@gmail.com"},"repository":{"url":"git+https://github.com/bitcoinerlab/miniscript.git","type":"git"},"_npmVersion":"8.11.0","description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a Policy and Miniscript compiler, as well as a novel Satisfier for generating expressive witness scripts.","directories":{},"_nodeVersion":"17.9.1","dependencies":{"bip68":"^1.0.4"},"COMMENT_babel":"Babel plugins are are only needed for the jest testing environment. Jest needs to use commonjs. Also, jest cannot handle ESM converted code, since it uses 'import.meta.url'. See src/bindings.js. babel-plugin-transform-import-meta fixes it.","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","jsdoc":"^4.0.0","rollup":"^3.7.0","rollup-plugin-commonjs":"^10.1.0","babel-plugin-transform-import-meta":"^2.2.0","@babel/plugin-transform-modules-commonjs":"^7.19.6"},"_npmOperationalInternal":{"tmp":"tmp/miniscript_1.0.3_1672306328713_0.5844388282577115","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@bitcoinerlab/miniscript","version":"1.0.4","keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","_id":"@bitcoinerlab/miniscript@1.0.4","maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"homepage":"https://bitcoinerlab.com/modules/miniscript","bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"dist":{"shasum":"9cd53d096b54f4fa0afdb2ba5a900d70a693ad12","tarball":"https://registry.npmjs.org/@bitcoinerlab/miniscript/-/miniscript-1.0.4.tgz","fileCount":18,"integrity":"sha512-PNCCySsbFCusaCeblnSOruIOiT8eYrS9+xH4ZG79XqJHScOWwmYQ2nMS9z3OSy7v68mD7ZVwO9vKs73Ivxx6KQ==","signatures":[{"sig":"MEYCIQDD89D45z2N3xia8yKUPedKbcP/mLmoX+6amkRLG+UVtgIhANzMH3fgqsgc4Ew7h4iVZjBaIpnlSvJPs9eukIwQtH4Z","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":867926,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjz3ugACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq2OQ//Q4WAKgnjKY0hiNNw/XcKGdLgR4qsd6WzEn+4dx5eZGOwOwxV\r\nSRuUHv8DPIorV0wOdc8nNx8N+1Kgzx/uJ20+TBAzIxEIrnQvsnb94Rzqcjsi\r\n1a2exnd7jdWSobIiiA8Cw+RV+Swph5o3tYrnHz+lRoDYKCFsiuN0rXdQt2uz\r\nyOhZmhI/JyiWtugEZ8jpqszjouhoIQwG9JozEP72yN+5AqhWlpWsSzx4EdDD\r\nLafpuQyUSMkbfKurS3m1Gc8aCN7GgDrMvEl1bkfv7k+iGkXbNDG++Qc2t0ae\r\nfMXWoxM4nLV9IXQ4U4JLuXNDZHmxiJFkgw32t+Yc3PxsrFselJ1CokX0dipp\r\nACKNi/4aWWj8DiDgV5G/bOOSZPqJ0Jr/Jgm+RNHkY4wWJuLZ8n3w5UBfa1aU\r\n2AtUAmUvorAO5uwl7EqHmbu+pI3lRbi4v6IsiuUKbL/XiZ0I6h4OXKpgqBpJ\r\nCCSp+jFp5avnirixaT5eF2zb1hmg+Az1a1JHcmLJa3IfNPxZqM6z8rTNkEUw\r\nz+BsI3jjuEA++nktmdchLMBN189eT7LRGiIJg2cl4mAxXfQ9GLGpCT1/dZQO\r\nt/+m+8CyYFCbHnAcR4GOuFF5BWS7m98rbjPu4HJNFi0mKujQKHCDaCCAiRJI\r\nMYbnaegB43HNgoowGluCCgOfD7shq0DqBc4=\r\n=Pg8P\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","babel":{"env":{"test":{"plugins":["@babel/plugin-transform-modules-commonjs","babel-plugin-transform-import-meta"]}}},"gitHead":"a06d0aac14d66400dfc5e20d3f7a677580b476d1","scripts":{"docs":"jsdoc -c jsdoc.json","test":"jest","build":"rollup -c --bundleConfigAsCjs","example":"node ./example.js","build:prod":"NODE_ENV=production rollup -c --bundleConfigAsCjs","prepublishOnly":"npm run build:prod && make clean && make && npm test"},"_npmUser":{"name":"jl.landabaso","email":"landabaso@gmail.com"},"repository":{"url":"git+https://github.com/bitcoinerlab/miniscript.git","type":"git"},"_npmVersion":"8.11.0","description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a Policy and Miniscript compiler, as well as a novel Satisfier for generating expressive witness scripts.","directories":{},"_nodeVersion":"17.9.1","dependencies":{"bip68":"^1.0.4"},"COMMENT_babel":"Babel plugins are are only needed for the jest testing environment. Jest needs to use commonjs. Also, jest cannot handle ESM converted code, since it uses 'import.meta.url'. See src/bindings.js. babel-plugin-transform-import-meta fixes it.","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","jsdoc":"^4.0.0","rollup":"^3.7.0","@rollup/plugin-terser":"^0.2.1","rollup-plugin-commonjs":"^10.1.0","babel-plugin-transform-import-meta":"^2.2.0","@babel/plugin-transform-modules-commonjs":"^7.19.6"},"_npmOperationalInternal":{"tmp":"tmp/miniscript_1.0.4_1674541983784_0.6621532584140408","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@bitcoinerlab/miniscript","version":"1.0.5","keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","_id":"@bitcoinerlab/miniscript@1.0.5","maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"homepage":"https://bitcoinerlab.com/modules/miniscript","bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"dist":{"shasum":"5b88fb7b1a81ec03c92d971c224e2e84265eb9af","tarball":"https://registry.npmjs.org/@bitcoinerlab/miniscript/-/miniscript-1.0.5.tgz","fileCount":18,"integrity":"sha512-kDyWMXsDlDCrkYiGAHNyXfVNig08WaV6B1yqgAS9ABKPTN+ZD6CSXYSuyP3+Kn8Smyny0/7kJ3JbJ7yNxDWheA==","signatures":[{"sig":"MEUCIQDstBdfFGLqJeqnvt9q4BiNrPg743WDKOjWoslqT5MUgAIgVxrAZgfVtNHfaMXzhzS7siv6tLPC3l6/j1O0PV7qiqA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":956535,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0RAvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqmBw/+NoMz/F/ADJtU57DGEiGjD5r0164t7dU6gWFtrqxL4XCGJVr0\r\nmiENbkmdoFquoxGC1nzdEYEHB/s9xe92iNWpta0bb0yhJmMWCAMF2FZhT39D\r\nWx8bYy25CLfmC87WjjVynrhZVRNfzBIAxNp/sY55E78hX0By30O0DShZDpRL\r\npD1Pc7XsH6CriLqQMbhZL+mvt4Qh7ns7FrVLVty94iHFM1AHjw2uLmOhTvTy\r\nDKzB6Xwqni9S2E7koLC3SjebyJZXQG8triHIRuOJ563Nu9GPje7TvH6C5yWN\r\nkE+u8vz62hhr/Z1mYpEb9qapXJYcIb1k2ehcQLYdd3XsfyrRMU0TYfLCE4j9\r\nFlCmiQjOEgU7fo2meTzICjGZGEFAl4jT9c8/gxIqLF3e5byzheVaDCPyz27m\r\nA5RwsC0Kiqzrdt0rvmyPGAGE50JHyuoRclrSjNfWrnth9Algv1d14Cm9wCrU\r\nw7mxiC2TS/+BiJ0KMf6draAE7QbP0aGtww6cWyZFQIpqAml6K3fxZFrQA1M+\r\nUfZHaGdhAJrR6sY0/DuWVqFmy7oZpB2PzPkvy6+nMFUpXegAQciwbAhA0U/r\r\nYo08eSV/tfia9kCxFxibVVPc8fdR6FggUIPt+W1fr8OpDEYOdMVHOzdbWHFy\r\nJWQIMBMeZyJTx9llZMoC2qUnftOzQNsaqCs=\r\n=5x0H\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","babel":{"env":{"test":{"plugins":["@babel/plugin-transform-modules-commonjs","babel-plugin-transform-import-meta"]}}},"gitHead":"2784ec6a01764f96bc854e9594c3939ed8ffd547","scripts":{"docs":"jsdoc -c jsdoc.json","test":"jest","build":"rollup -c --bundleConfigAsCjs","example":"node ./example.js","build:prod":"NODE_ENV=production rollup -c --bundleConfigAsCjs","prepublishOnly":"npm run build:prod && make clean && make && npm test"},"_npmUser":{"name":"jl.landabaso","email":"landabaso@gmail.com"},"repository":{"url":"git+https://github.com/bitcoinerlab/miniscript.git","type":"git"},"_npmVersion":"8.11.0","description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a Policy and Miniscript compiler, as well as a novel Satisfier for generating expressive witness scripts.","directories":{},"_nodeVersion":"17.9.1","dependencies":{"bip68":"^1.0.4"},"COMMENT_babel":"Babel plugins are are only needed for the jest testing environment. Jest needs to use commonjs. Also, jest cannot handle ESM converted code, since it uses 'import.meta.url'. See src/bindings.js. babel-plugin-transform-import-meta fixes it.","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","jsdoc":"^4.0.0","rollup":"^3.7.0","rollup-plugin-commonjs":"^10.1.0","babel-plugin-transform-import-meta":"^2.2.0","@babel/plugin-transform-modules-commonjs":"^7.19.6"},"_npmOperationalInternal":{"tmp":"tmp/miniscript_1.0.5_1674645551292_0.13766144555909876","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"@bitcoinerlab/miniscript","version":"1.0.6","keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","_id":"@bitcoinerlab/miniscript@1.0.6","maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"homepage":"https://bitcoinerlab.com/modules/miniscript","bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"dist":{"shasum":"22c3d60df540ee6d7ca981ac8b4ef39fa751574e","tarball":"https://registry.npmjs.org/@bitcoinerlab/miniscript/-/miniscript-1.0.6.tgz","fileCount":19,"integrity":"sha512-s998UNRu+TfQMCZevD6MZBiZDmyDXTRvpP7VNArXvkaCrhWAEg3k3va5XPYOKUYWpDF+3oLPBmBGyKFPoghECA==","signatures":[{"sig":"MEQCID7CYKH2C0BKAzShnjsCsi67q7KGjJWPMferKEd2HUpuAiBS/FPGg4At/irpE2TKQ4E/pGRwoN0c+1u4ARMgc2uQwA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":957238,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj14nlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrhAA//VQBcUy8DA5bnY+Xp5d1t+ezJ/24Yq4LHOVC+UbyHk7gWm+aO\r\n5957VRnGOJIZWX2Op6jHT6xBPFPkrs44w6goc2Y+OR6dIQGIC39uWIjKDucp\r\nZaqY5UUQK66sIwmmIRg1O+4z4R5XYjHZ2hmN11xVGmF+isIeK59pCOgpYS4X\r\ndI5WuAW3gFrtp5TNI3WLcN8V6kq4Mf3JbPqdb+wTsIERpv+iUF4L7K+cv2fs\r\nWiuFDDeqThECkLO+/n4O6kTzmBynAxOTPMontobm+oLndHmPA9u3ax17Ff6u\r\nlplf/6QI4XcB4cTyJRsntiv5aT8Qu8uJrbQo58Pg44JiePLEj6Fcy8t5uHs0\r\nLMPmWnosMnRfs0362E2sBWAzdNRaMmxsYgC7UR+ttYGFnLjQRfparvC/pZm7\r\n0tRNKVucUF3+RM/nW9DKMn4vHXKNRO9i9bi+vrhzBuP5FtiFtw+PTdSoNQ1k\r\nHGAPkZCWdBBkDnZuEA2JZVYyzxV5hsk1rd8HRRc11FJeeNLeN/7G0dXlcrbr\r\n8kQmhg04VJ7opTx0PGcMYWMc/UZjsYhxR5rkDPL8iInqqN+Qo1mMfHkw/F+R\r\nNlx0BwHeKomYULJb4pWB2EMbqmB1w6IT1wJFuuwDpDiYb0/FYbzR/YsHOknk\r\nmRCTbsriMLaP6OnspI58Tty8+LJkJJYQIiI=\r\n=ky/9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","babel":{"env":{"test":{"plugins":["@babel/plugin-transform-modules-commonjs","babel-plugin-transform-import-meta"]}}},"types":"types/index.d.ts","gitHead":"a99e8532d35a7593374ed372b838fecb175ff901","scripts":{"docs":"jsdoc -c jsdoc.json","test":"jest","build":"rollup -c --bundleConfigAsCjs","example":"node ./example.js","build:prod":"NODE_ENV=production rollup -c --bundleConfigAsCjs","prepublishOnly":"npm run build:prod && make clean && make && npm test"},"_npmUser":{"name":"jl.landabaso","email":"landabaso@gmail.com"},"repository":{"url":"git+https://github.com/bitcoinerlab/miniscript.git","type":"git"},"_npmVersion":"8.11.0","description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a Policy and Miniscript compiler, as well as a novel Satisfier for generating expressive witness scripts.","directories":{},"_nodeVersion":"17.9.1","dependencies":{"bip68":"^1.0.4"},"COMMENT_babel":"Babel plugins are are only needed for the jest testing environment. Jest needs to use commonjs. Also, jest cannot handle ESM converted code, since it uses 'import.meta.url'. See src/bindings.js. babel-plugin-transform-import-meta fixes it.","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","jsdoc":"^4.0.0","rollup":"^3.7.0","rollup-plugin-commonjs":"^10.1.0","babel-plugin-transform-import-meta":"^2.2.0","@babel/plugin-transform-modules-commonjs":"^7.19.6"},"_npmOperationalInternal":{"tmp":"tmp/miniscript_1.0.6_1675069924920_0.02766028704495782","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@bitcoinerlab/miniscript","version":"1.1.0","keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","_id":"@bitcoinerlab/miniscript@1.1.0","maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"homepage":"https://bitcoinerlab.com/modules/miniscript","bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"dist":{"shasum":"486a01a0c12c40c98bfcc63f82c28fc794753f04","tarball":"https://registry.npmjs.org/@bitcoinerlab/miniscript/-/miniscript-1.1.0.tgz","fileCount":19,"integrity":"sha512-nbvxV7+fXrl36Vvwg5EVPJ0E7NTtqLSCxFQGjuIQmFaZeHrxupiN4Z+qvBjfkcZqr4fFCPGM2ZFs8RiarsPKhw==","signatures":[{"sig":"MEUCIBFLQ9l/fB7r/2eylto3J8Rxu8u82MDXJQL5pTyxz4wDAiEAhMGiIU2a6uHUJ57eq02fS88CF6bOZxQgjWMHkWToi0k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":956093,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2n6MACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpITQ//ZihKJnzwZ5RVRwnmh9qspGhyVYL6yNwQ5/ZcyOnHTcyy2Lj1\r\nVjJmQtxK5O8vwAknId2rfJDQ28e9xlGOxJ7FcGC/BgpwSiPwzEWC+tVP0aMv\r\nJ+OFGPq7nYFT9VxEjjop7OAntS+hg9hmpGfPYmXiW2z8O77ml7rBJ4AhGIFW\r\nQKYE2E/W4PNGBBSY9Py67ApKKkXf+fTo5Sljl2E27504yblpqrcXABlfIU0L\r\nFNAVOWmkZXR7YTWpEUdBp4Fap6QZD+6zuv8YBrOakpzUYmP0tNgjunj1+RcA\r\nl8Uh2MZf/MZCPOCsLGP2hZEaZehFd2PS8kMz8gIpUJaM8nXrrjZ/20jv1mUC\r\naVfjBpRvoupKzLsBV/fnaeNjlafVw8xFw6Ecwfb6fHmPmxxlsgagimv4qvaD\r\nh0TQy87XdXbLGYtbE3P5mm843eUB+uMMBlUD0xE6S8tPlFDfDqAkzZAPcPUp\r\n4knBTzNax83l7/8zOUw2f+PClPNJbb4Hw2MjBzgMtuGJfpEnM1xLQuWgY07a\r\n589iJDcKxNrdLe6mCLvCxf3B90fH9f+iqRIw+yNZvIOeD59GnIWNe5Ji/zdV\r\nfyQOWkabyQ4tscvEVnH/jVol9saWI/xbv9LkeFsXMWLoDDe5iHYofmQ39j6w\r\ns93c7z/gg4Sq0BJlJbM0UEoDkOdbQR59gbs=\r\n=IzqV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","babel":{"env":{"test":{"plugins":["@babel/plugin-transform-modules-commonjs","babel-plugin-transform-import-meta"]}}},"types":"types/index.d.ts","gitHead":"a12cdc87b6753b42a561549b00319b24f4db8bb3","scripts":{"docs":"jsdoc -c jsdoc.json","test":"jest","build":"rollup -c --bundleConfigAsCjs","example":"node ./example.js","build:prod":"NODE_ENV=production rollup -c --bundleConfigAsCjs","prepublishOnly":"npm run build:prod && make clean && make && npm test"},"_npmUser":{"name":"jl.landabaso","email":"landabaso@gmail.com"},"repository":{"url":"git+https://github.com/bitcoinerlab/miniscript.git","type":"git"},"_npmVersion":"8.11.0","description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a Policy and Miniscript compiler, as well as a novel Satisfier for generating expressive witness scripts.","directories":{},"_nodeVersion":"17.9.1","dependencies":{"bip68":"^1.0.4"},"COMMENT_babel":"Babel plugins are are only needed for the jest testing environment. Jest needs to use commonjs. Also, jest cannot handle ESM converted code, since it uses 'import.meta.url'. See src/bindings.js. babel-plugin-transform-import-meta fixes it.","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","jsdoc":"^4.0.0","rollup":"^3.7.0","rollup-plugin-commonjs":"^10.1.0","babel-plugin-transform-import-meta":"^2.2.0","@babel/plugin-transform-modules-commonjs":"^7.19.6"},"_npmOperationalInternal":{"tmp":"tmp/miniscript_1.1.0_1675263628199_0.45282008893085424","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@bitcoinerlab/miniscript","version":"1.1.1","keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","_id":"@bitcoinerlab/miniscript@1.1.1","maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"homepage":"https://bitcoinerlab.com/modules/miniscript","bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"dist":{"shasum":"645e4c20fa0cfd8f0a115658a60a8a3ea69dd5b6","tarball":"https://registry.npmjs.org/@bitcoinerlab/miniscript/-/miniscript-1.1.1.tgz","fileCount":19,"integrity":"sha512-ieW5A80iB1v7vjf4Enb2TOvs0wirlA3bIKC4WITiIPr7dOLjypy5pWjhirHA3NRICZ8R3+oqaIMOHv3eXgDOqA==","signatures":[{"sig":"MEUCIQCklepKRazxEbGrgrCEfIrSr+bQDh9EOuv/5BwhvUJnaQIgDwaRw+p3LlKlInqhFS+7xmhu5bRJqRUVsqJ+E6J0Muw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":956650,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2pMsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQkQ//crbCMqNeG04zlxzKPbtaC1CohBtZljnHIQ/hoDQcxFfbbwxU\r\nPBdOYy39vJFobtCfctSofPrdt7I7etv+GmI9SAaibMWhBkkQVyHF2xiywEnq\r\neVKgUTSQulnkv7AEplp5XbyRXBS7b3ifjazSet8otSN0McxzMybr7YWHxQ8N\r\nIdAwCFdMSyt5P7nHnvgVe+03wkknUQp3ZucGYYI2MrKD779y7bAcRfFcguYm\r\nigaDj67PCPe4rY45ar+Ch4Rqs4LtPe0RoCKH2K7Ree7Bk08L7woXS1+PQPaZ\r\nxfbm+nxNf+q6Lf4lJ+FUum8T7XNwvumsPLMECjqq1BguM6zLJhi9t9lFcDTj\r\nsexGBK1E2V9a+xs31F7p1OpA1A73bzwd1nLBCLTCFnKJSOZ2Vgg2gKsbDRee\r\nTGa7LCt+VhnrwPMXMaA3MOjYjM7FXYb1Xmk60KvBIsRLFWsum0X/CooR6KuU\r\nkWqReMpiOJxoUIx7xTnWO8dxUM1bGvMjWodlonCEO4w3U5aBpMfTr3qgCLMX\r\neH+BrGkd+rMHaRm05vep4rEpMGpJMLZjK8e+OV/Dj4PB6y67DCL3XbzYIi6i\r\nj5yi1G4u8L9EQCojBacxlwg0x2exBf9dcT4aKLZ7uw2BW8Mq1p2op3S+KLRL\r\nRPvkU1jfg6hBg3TxnScB3ZTMcNl7zM3n9Js=\r\n=JaFo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","babel":{"env":{"test":{"plugins":["@babel/plugin-transform-modules-commonjs","babel-plugin-transform-import-meta"]}}},"types":"types/index.d.ts","gitHead":"421e618ec7fe7e13fafa117703c279ab19e7ab50","scripts":{"docs":"jsdoc -c jsdoc.json","test":"jest","build":"rollup -c --bundleConfigAsCjs","example":"node ./example.js","build:prod":"NODE_ENV=production rollup -c --bundleConfigAsCjs","prepublishOnly":"npm run build:prod && make clean && make && npm test"},"_npmUser":{"name":"jl.landabaso","email":"landabaso@gmail.com"},"repository":{"url":"git+https://github.com/bitcoinerlab/miniscript.git","type":"git"},"_npmVersion":"8.11.0","description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a Policy and Miniscript compiler, as well as a novel Satisfier for generating expressive witness scripts.","directories":{},"_nodeVersion":"17.9.1","dependencies":{"bip68":"^1.0.4"},"COMMENT_babel":"Babel plugins are are only needed for the jest testing environment. Jest needs to use commonjs. Also, jest cannot handle ESM converted code, since it uses 'import.meta.url'. See src/bindings.js. babel-plugin-transform-import-meta fixes it.","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","jsdoc":"^4.0.0","rollup":"^3.7.0","rollup-plugin-commonjs":"^10.1.0","babel-plugin-transform-import-meta":"^2.2.0","@babel/plugin-transform-modules-commonjs":"^7.19.6"},"_npmOperationalInternal":{"tmp":"tmp/miniscript_1.1.1_1675268908717_0.09199503705812262","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@bitcoinerlab/miniscript","version":"1.2.0","keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","_id":"@bitcoinerlab/miniscript@1.2.0","maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"homepage":"https://bitcoinerlab.com/modules/miniscript","bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"dist":{"shasum":"4183327e15f1bdebd2f0ce4062f043215f56ad70","tarball":"https://registry.npmjs.org/@bitcoinerlab/miniscript/-/miniscript-1.2.0.tgz","fileCount":19,"integrity":"sha512-YCU+f7HHhrYhVgu6m9R/fxW25fRFondiI/OU7xqutmd8Vy1b2NndTIB/gqiGmaHgmO1kzcGWaT0kDOikiSt/AQ==","signatures":[{"sig":"MEUCIQCZl65kqwv6GM3Y57FpdMuB+ImfBchhjAj0cO5LBQosnQIgRQ38Kcmyam5W2gFXw8ttj9lME5bpEcwOoMRw6Lse3Xw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":962583,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2+IcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpS4Q//Z1WWzLvPnldEFTkKYoWbR6d7HPf4vqVavnjBJDY72j3Amoa1\r\nfrppf0zDndHKyB/BQGzgEZGvbZYXCDPd/e974oEOjImEK+s+t/6Focl7l1YO\r\ntAfqwpZpsbakAhZwNRzgh6W3OyWr3kCRgUX/Ke1xAlYHqlRI9kZh4IxnZBdK\r\naFR5JLez7TJaB3wZHPGiGGLNM1UJNN/L358QcZFCpptOBrcjQT84DXXoVZxp\r\n7P2f8Q/kTmBTEk7VJTIcZsNEeNQx3uImipcdd2wtcfZZ2FG5gNOYcCpOcsY4\r\n84QkKf5RIfxr2DvtNqshZnysoLxHV4G14dmhmDV5ZEHKxUoed+bhn+OUHC+Q\r\n4UhmCc1ICC+Lcn6ZLxQLDXpFz5WvQi5kXHGWKQHyAUpvnib+jzYw7Bsy/Dhl\r\nJYuuQfJCMBS5fYZUgR0000rMONbR02V75q3/Tsd/RUlelaj79r7V4Im1YIbq\r\n8CdsgWQiC2QbHdOYA3w+tbZS5Z84siXUM2v7ZycIrPU5w/jDpr2PFK4emBTb\r\nUDx7PEajldRFKXwmP/vCknCvh5jQU+tG3fQPtSV7OvorslD7uFIWVwaWSLQl\r\nnvnDCLLeT07N7btgxjlwd4x0vR92qQql8vED3j4JHxQSW11Kl/dAioBcVCsc\r\nYSCFAerEVsYoTZ5peiTWvXKa6aRq+mEwvMM=\r\n=zU+O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","babel":{"env":{"test":{"plugins":["@babel/plugin-transform-modules-commonjs","babel-plugin-transform-import-meta"]}}},"types":"types/index.d.ts","gitHead":"421e618ec7fe7e13fafa117703c279ab19e7ab50","scripts":{"docs":"jsdoc -c jsdoc.json","test":"jest","build":"rollup -c --bundleConfigAsCjs","example":"node ./example.js","build:prod":"NODE_ENV=production rollup -c --bundleConfigAsCjs","prepublishOnly":"npm run build:prod && make clean && make && npm test"},"_npmUser":{"name":"jl.landabaso","email":"landabaso@gmail.com"},"repository":{"url":"git+https://github.com/bitcoinerlab/miniscript.git","type":"git"},"_npmVersion":"8.11.0","description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a Policy and Miniscript compiler, as well as a novel Satisfier for generating expressive witness scripts.","directories":{},"_nodeVersion":"17.9.1","dependencies":{"bip68":"^1.0.4"},"COMMENT_babel":"Babel plugins are are only needed for the jest testing environment. Jest needs to use commonjs. Also, jest cannot handle ESM converted code, since it uses 'import.meta.url'. See src/bindings.js. babel-plugin-transform-import-meta fixes it.","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","jsdoc":"^4.0.0","rollup":"^3.7.0","rollup-plugin-commonjs":"^10.1.0","babel-plugin-transform-import-meta":"^2.2.0","@babel/plugin-transform-modules-commonjs":"^7.19.6"},"_npmOperationalInternal":{"tmp":"tmp/miniscript_1.2.0_1675354652473_0.7958715908025811","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"@bitcoinerlab/miniscript","version":"1.2.1","keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","_id":"@bitcoinerlab/miniscript@1.2.1","maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"homepage":"https://bitcoinerlab.com/modules/miniscript","bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"dist":{"shasum":"63983d2f5d43faf132f2b0ce90cbc88737275c2b","tarball":"https://registry.npmjs.org/@bitcoinerlab/miniscript/-/miniscript-1.2.1.tgz","fileCount":19,"integrity":"sha512-2Pkan4Vvq7afQNeveakFM/Np9D+DhlPtKITO/hTgKjPsPnLWqdOVyja1u/Qhr7Voi2bW9Tor6hLOYTw84QQKQQ==","signatures":[{"sig":"MEYCIQDsHBrDncCAJO2UnY6my3vpXVdiSc2Qv+iGJV0gZ1aMVwIhAKx4r7FmhVzVxM391r7pU9C4Sos7P/e6pUPUSicx6aRS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":962584,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2+a0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrJNA/+IpPEk7ViDOyIEanrWIAiKmhdidL/+mJ+bAu5oazeWDmDV8pT\r\nOLo0IuOXH8waIw/PKdEoYAnYaVSAjqBALLHFjw6nDgx5tfwreazOHO1d1yrO\r\nOW51/9qNVc1Ko0gRZsBiI6pk+y8/PD641SVh2WG96e5Bb5hIdC1g9Fc5lnS1\r\nLM+e0XSTe132iV2yrtNi1zQXOhnnfBp0d3ly7pv3CAK2mQjuGWjP1ba6TbE6\r\nzvHOU1hdBIyyQv/lf6amKg6W4X3Zr240z6xJtLzqnPQicrIu9+gErhMGLKrs\r\n343EIzpzLHZ5e0VTRP0v1RflRKyOMNOK2Ysmfg40ejTjgEZZo0m+eN9OpYaU\r\nYto5wTieMNxMXZjlgWdEBxDCQQFRiSwU0GD/B8NX92KPkN2PYF2Dcwb+XGBZ\r\njhfWNkHe2cpFouUuyA62LeaADSrKms6fhQxjPFYNx3P4k2hkoeRliMyNVtlI\r\n9cLDnrzNYTYsgAkr7ktOP5APLzYyMY1+YbBpgS2l4QKAVpn1DBuy5ZG5GhF6\r\nW+alF1dI/CDwXfe45IxKPw4iaWHOhkycySFIdItFGB1Y/cazPbLDw4iZcskw\r\nRQsERHz9IEWa2q/xBRq2E0W/2VOd4tN88TQKxk2tSxymQX9l90Z+dMv65f8h\r\nU/mSm4FX+jLtvO34iOhguiEhs8aB4oJIA5o=\r\n=LuPo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","babel":{"env":{"test":{"plugins":["@babel/plugin-transform-modules-commonjs","babel-plugin-transform-import-meta"]}}},"types":"types/index.d.ts","gitHead":"90e04d668872efdc77a4f8cc640681293ba9772a","scripts":{"docs":"jsdoc -c jsdoc.json","test":"jest","build":"rollup -c --bundleConfigAsCjs","example":"node ./example.js","build:prod":"NODE_ENV=production rollup -c --bundleConfigAsCjs","prepublishOnly":"npm run build:prod && make clean && make && npm test"},"_npmUser":{"name":"jl.landabaso","email":"landabaso@gmail.com"},"repository":{"url":"git+https://github.com/bitcoinerlab/miniscript.git","type":"git"},"_npmVersion":"8.11.0","description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a Policy and Miniscript compiler, as well as a novel Satisfier for generating expressive witness scripts.","directories":{},"_nodeVersion":"17.9.1","dependencies":{"bip68":"^1.0.4"},"COMMENT_babel":"Babel plugins are are only needed for the jest testing environment. Jest needs to use commonjs. Also, jest cannot handle ESM converted code, since it uses 'import.meta.url'. See src/bindings.js. babel-plugin-transform-import-meta fixes it.","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","jsdoc":"^4.0.0","rollup":"^3.7.0","rollup-plugin-commonjs":"^10.1.0","babel-plugin-transform-import-meta":"^2.2.0","@babel/plugin-transform-modules-commonjs":"^7.19.6"},"_npmOperationalInternal":{"tmp":"tmp/miniscript_1.2.1_1675355827874_0.8839666798115959","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@bitcoinerlab/miniscript","version":"1.4.0","keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","_id":"@bitcoinerlab/miniscript@1.4.0","maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"homepage":"https://bitcoinerlab.com/modules/miniscript","bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"dist":{"shasum":"9beda21d4dadb1cb806de6f846470927cfd96f6c","tarball":"https://registry.npmjs.org/@bitcoinerlab/miniscript/-/miniscript-1.4.0.tgz","fileCount":18,"integrity":"sha512-BsG3dmwQmgKHnRZecDgUsPjwcpnf1wgaZbolcMTByS10k1zYzIx97W51LzG7GvokRJ+wnzTX/GhC8Y3L2X0CQA==","signatures":[{"sig":"MEUCIH0mNOHRUop6HemCKPT2Rvq/KTvuNo4P68Ew/TK4ecUFAiEAhsgkVT4LmbrZOJHcni0zcWArAyKSJMpr4vAvj7iitG0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":961652},"main":"dist/index.js","babel":{"env":{"test":{"plugins":["@babel/plugin-transform-modules-commonjs","babel-plugin-transform-import-meta"]}}},"types":"types/index.d.ts","gitHead":"d420729aa46d8ea785e69e6d0548386bda6774d0","scripts":{"docs":"typedoc --options ./node_modules/@bitcoinerlab/configs/js_typedoc.json","test":"jest","build":"rollup -c --bundleConfigAsCjs","example":"node ./example.js","webdocs":"typedoc --options ./node_modules/@bitcoinerlab/configs/js_webtypedoc.json","build:prod":"NODE_ENV=production rollup -c --bundleConfigAsCjs","prepublishOnly":"make clean && make && npm run build:prod && npm test"},"_npmUser":{"name":"jl.landabaso","email":"landabaso@gmail.com"},"repository":{"url":"git+https://github.com/bitcoinerlab/miniscript.git","type":"git"},"_npmVersion":"8.11.0","description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a Policy and Miniscript compiler, as well as a novel Satisfier for generating expressive witness scripts.","directories":{},"_nodeVersion":"17.9.1","dependencies":{"bip68":"^1.0.4"},"COMMENT_babel":"Babel plugins are are only needed for the jest testing environment. Jest needs to use commonjs. Also, jest cannot handle ESM converted code, since it uses 'import.meta.url'. See src/bindings.js. babel-plugin-transform-import-meta fixes it.","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rollup":"^3.7.0","@bitcoinerlab/configs":"github:bitcoinerlab/configs","rollup-plugin-commonjs":"^10.1.0","babel-plugin-transform-import-meta":"^2.2.0","@babel/plugin-transform-modules-commonjs":"^7.19.6"},"_npmOperationalInternal":{"tmp":"tmp/miniscript_1.4.0_1694590370466_0.9623220511611212","host":"s3://npm-registry-packages"}},"1.4.2":{"name":"@bitcoinerlab/miniscript","version":"1.4.2","keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","_id":"@bitcoinerlab/miniscript@1.4.2","maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"homepage":"https://bitcoinerlab.com/modules/miniscript","bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"dist":{"shasum":"860e11b2c2956dd7c9bdea13feba78076d0daf12","tarball":"https://registry.npmjs.org/@bitcoinerlab/miniscript/-/miniscript-1.4.2.tgz","fileCount":18,"integrity":"sha512-q1HVHFRX8Nc9SyKj82vy3o8vu2sRCSU6+wZusNt9oJEtoir24TS6+voIO3bqsV18XaXNUCJOKHjvpe68CpTTew==","signatures":[{"sig":"MEYCIQDepZ5pE6ioF6Aj6KhX5900Y/30Pq7gM64ibcsgMNRn5gIhAMb6QecKqIiH1PfUA9NcPUdlM08q+j9SsrH1oG9SMI/V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":962000},"main":"dist/index.js","babel":{"env":{"test":{"plugins":["@babel/plugin-transform-modules-commonjs","babel-plugin-transform-import-meta"]}}},"types":"types/index.d.ts","gitHead":"af8f0761344c19c0fffb7be4587d3f8f592e1271","scripts":{"docs":"typedoc --options ./node_modules/@bitcoinerlab/configs/js_typedoc.json","test":"make clean && make && npm run build:prod && jest","build":"rollup -c --bundleConfigAsCjs","example":"node ./example.js","webdocs":"typedoc --options ./node_modules/@bitcoinerlab/configs/js_webtypedoc.json","build:prod":"NODE_ENV=production rollup -c --bundleConfigAsCjs","prepublishOnly":"npm test"},"_npmUser":{"name":"jl.landabaso","email":"landabaso@gmail.com"},"repository":{"url":"git+https://github.com/bitcoinerlab/miniscript.git","type":"git"},"_npmVersion":"10.8.2","description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a Policy and Miniscript compiler, as well as a novel Satisfier for generating expressive witness scripts.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"bip68":"^1.0.4"},"COMMENT_babel":"Babel plugins are are only needed for the jest testing environment. Jest needs to use commonjs. Also, jest cannot handle ESM converted code, since it uses 'import.meta.url'. See src/bindings.js. babel-plugin-transform-import-meta fixes it.","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rollup":"^3.7.0","@bitcoinerlab/configs":"^1.3.1","rollup-plugin-commonjs":"^10.1.0","babel-plugin-transform-import-meta":"^2.2.0","@babel/plugin-transform-modules-commonjs":"^7.19.6"},"_npmOperationalInternal":{"tmp":"tmp/miniscript_1.4.2_1761834483667_0.3703115521175282","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@bitcoinerlab/miniscript","version":"1.4.3","keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","_id":"@bitcoinerlab/miniscript@1.4.3","maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"homepage":"https://bitcoinerlab.com/modules/miniscript","bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"dist":{"shasum":"edc8900fcfd91d642e3b5b1a8dbd4e8048f8bff0","tarball":"https://registry.npmjs.org/@bitcoinerlab/miniscript/-/miniscript-1.4.3.tgz","fileCount":18,"integrity":"sha512-gf7WK4dKJJJl+IgLGmkTOxXQLiCje9c9y4wTLC+cyt0tBDTiSXgsG0X8FFaXf4d+34b8B5p/EJGvRd7mEYB6mQ==","signatures":[{"sig":"MEUCIQCMmnuuTnkEcZYFG1cuYT9DCB617B0CyoCNaBKQUc0HTwIgAupyZ/vI6lXzQ+WakQT92qOVikVFhytx4M25zn58RHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":962765},"main":"dist/index.js","babel":{"env":{"test":{"plugins":["@babel/plugin-transform-modules-commonjs","babel-plugin-transform-import-meta"]}}},"types":"types/index.d.ts","gitHead":"6914b5cf221022f8ba7e91afd3e05a45403e4eec","scripts":{"docs":"typedoc --options ./node_modules/@bitcoinerlab/configs/js_typedoc.json","test":"make clean && make && npm run build:prod && jest","build":"rollup -c --bundleConfigAsCjs","example":"node ./example.js","webdocs":"typedoc --options ./node_modules/@bitcoinerlab/configs/js_webtypedoc.json","build:prod":"NODE_ENV=production rollup -c --bundleConfigAsCjs","prepublishOnly":"npm test"},"_npmUser":{"name":"jl.landabaso","email":"landabaso@gmail.com"},"repository":{"url":"git+https://github.com/bitcoinerlab/miniscript.git","type":"git"},"_npmVersion":"10.8.2","description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a Policy and Miniscript compiler, as well as a novel Satisfier for generating expressive witness scripts.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"bip68":"^1.0.4"},"COMMENT_babel":"Babel plugins are are only needed for the jest testing environment. Jest needs to use commonjs. Also, jest cannot handle ESM converted code, since it uses 'import.meta.url'. See src/bindings.js. babel-plugin-transform-import-meta fixes it.","_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.29.5","@bitcoinerlab/configs":"^2.0.0","@rollup/plugin-commonjs":"^29.0.0","babel-plugin-transform-import-meta":"^2.2.0","@babel/plugin-transform-modules-commonjs":"^7.19.6"},"_npmOperationalInternal":{"tmp":"tmp/miniscript_1.4.3_1762426541655_0.2321112471989104","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@bitcoinerlab/miniscript","description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a compiler/analyzer with a signer‑agnostic satisfier that derives symbolic witnesses (e.g., <sig(key)>).","homepage":"https://bitcoinerlab.com/modules/miniscript","version":"2.0.0","author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/bitcoinerlab/miniscript.git"},"keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"main":"dist/index.js","types":"dist/index.d.ts","prettier":"@bitcoinerlab/configs/prettierConfig.json","eslintConfig":{"extends":"./node_modules/@bitcoinerlab/configs/eslintConfig"},"jest":{"preset":"@bitcoinerlab/configs"},"scripts":{"webdocs":"typedoc --options ./node_modules/@bitcoinerlab/configs/webtypedoc.json","docs":"typedoc --options ./node_modules/@bitcoinerlab/configs/typedoc.json","build:src":"tsc --project ./node_modules/@bitcoinerlab/configs/tsconfig.src.json","build:test":"tsc --project ./node_modules/@bitcoinerlab/configs/tsconfig.test.json","build":"npm run build:src && npm run build:test","lint":"./node_modules/@bitcoinerlab/configs/scripts/lint.sh","test:unit":"jest --verbose","test":"npm run lint && npm run build && npm run test:unit","prepublishOnly":"npm test"},"dependencies":{"bip68":"^1.0.4"},"devDependencies":{"@bitcoinerlab/configs":"^2.0.0"},"_id":"@bitcoinerlab/miniscript@2.0.0","gitHead":"1dae3936a9779e1b99fd8b024dd109ac675e6144","_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-P8yyubPf6lphmIZfyD/ZbhT/umJX7zH1mKjGql7z0Qt+xuffnz2AueQqq2/01VE2rTIq80VM0oRFdJClGBYx/g==","shasum":"1d6516bf5be580e1a1890d33a7b44dd3cb8c10f0","tarball":"https://registry.npmjs.org/@bitcoinerlab/miniscript/-/miniscript-2.0.0.tgz","fileCount":36,"unpackedSize":214266,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIH0ElnjKPvht9DznJOhJ0J1g9Y7R4YaBYgCEH0NjjCZ4AiEA4LsRWtStmpsJ7Jg1NWt4mIFtARwojM2A/T/OKseinLk="}]},"_npmUser":{"name":"jl.landabaso","email":"landabaso@gmail.com"},"directories":{},"maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/miniscript_2.0.0_1769771745379_0.4444871696664996"},"_hasShrinkwrap":false}},"time":{"created":"2022-12-25T10:12:25.697Z","modified":"2026-01-30T11:15:45.650Z","1.0.0":"2022-12-25T10:12:25.961Z","1.0.1":"2022-12-25T10:19:58.993Z","1.0.2":"2022-12-27T10:29:51.751Z","1.0.3":"2022-12-29T09:32:09.033Z","1.0.4":"2023-01-24T06:33:04.036Z","1.0.5":"2023-01-25T11:19:11.529Z","1.0.6":"2023-01-30T09:12:05.143Z","1.1.0":"2023-02-01T15:00:28.624Z","1.1.1":"2023-02-01T16:28:28.955Z","1.2.0":"2023-02-02T16:17:32.712Z","1.2.1":"2023-02-02T16:37:08.085Z","1.4.0":"2023-09-13T07:32:50.721Z","1.4.2":"2025-10-30T14:28:03.884Z","1.4.3":"2025-11-06T10:55:41.846Z","2.0.0":"2026-01-30T11:15:45.514Z"},"bugs":{"url":"https://github.com/bitcoinerlab/miniscript/issues"},"author":{"name":"Jose-Luis Landabaso","email":"landabaso@gmail.com"},"license":"MIT","homepage":"https://bitcoinerlab.com/modules/miniscript","keywords":["miniscript","satisfier","bitcoin","policy","asm","descriptors"],"repository":{"type":"git","url":"git+https://github.com/bitcoinerlab/miniscript.git"},"description":"Bitcoin Miniscript, a high-level language for describing Bitcoin spending conditions. It includes a compiler/analyzer with a signer‑agnostic satisfier that derives symbolic witnesses (e.g., <sig(key)>).","maintainers":[{"name":"jl.landabaso","email":"landabaso@gmail.com"}],"readme":"# Bitcoin Miniscript\n\nMiniscript is a structured, human-friendly way to express Bitcoin spending\nconditions, making scripts easier to reason about and analyze, while providing\nsafety guarantees around spending behavior.\n\nThis package provides a TypeScript implementation for compiling and analyzing\nminiscript and for deriving witnesses (the data a spending transaction must\nprovide to unlock an output). The satisfier is signer-agnostic: it derives\nsymbolic witness stacks using placeholders like `<sig(key)>` and preimage\nmarkers, so you can reason about satisfactions without private keys.\n\n## Installation\n\nTo install the package, use npm:\n\n```bash\nnpm install @bitcoinerlab/miniscript\n```\n\n## Usage\n\nYou can test the examples in this section using the online playground demo available at <https://bitcoinerlab.com/modules/miniscript>.\n\n### Compiling Policies into Miniscript and Bitcoin script\n\nPolicies are a higher-level, human-readable language for describing spending\nconditions (for example: and/or clauses, timelocks and key checks). Policy\ncompilation is provided by the companion package\n[`@bitcoinerlab/miniscript-policies`](https://github.com/bitcoinerlab/miniscript-policies).\n\n```javascript\nconst { compilePolicy } = require('@bitcoinerlab/miniscript-policies');\n\nconst policy = 'or(and(pk(A),older(8640)),pk(B))';\nconst { miniscript } = compilePolicy(policy);\n```\n\n### Compiling Miniscript into Bitcoin script\n\nTo compile a Miniscript into Bitcoin ASM you can use the `compileMiniscript` function:\n\n```javascript\nconst { compileMiniscript } = require('@bitcoinerlab/miniscript');\n\nconst miniscript = 'and_v(v:pk(key),or_b(l:after(100),al:after(200)))';\nconst { asm } = compileMiniscript(miniscript);\n```\n\n### Generating script witnesses\n\nTo generate script witnesses from a Miniscript, you can use the `satisfier` function.\n\nThe `satisfier` runs the Miniscript [static type\nsystem](https://bitcoin.sipa.be/miniscript/) analysis and throws when a\nminiscript is not sane. A sane miniscript follows consensus and standardness\nrules: it avoids malleable-only paths (more on that later), does not mix\ntimelock units on a single branch and does not contain duplicate keys.\n\nWitnesses are derived and returned in symbolic form (e.g., `<sig(key)>`,\n`<sha256_preimage(H)>`), so you can analyze solutions even without a signer:\n\n```javascript\nconst miniscript =\n  'c:or_i(andor(c:pk_h(key1),pk_h(key2),pk_h(key3)),pk_k(key4))';\n\nconst { nonMalleableSats } = satisfier(miniscript);\n```\n\nIn the example above `nonMalleableSats` is:\n\n```javascript\nnonMalleableSats: [\n  {asm: \"<sig(key4)> 0\"}\n  {asm: \"<sig(key3)> <key3> 0 <key1> 1\"}\n  {asm: \"<sig(key2)> <key2> <sig(key1)> <key1> 1\"}\n]\n```\n\n, where satisfactions are ordered in ascending Weight Unit size, so you can\nchoose the smallest witness and pay less in fees.\n\nIn addition to `asm`, returned solutions may carry timelock requirements when\nneeded:\n\n```typescript\n{\n  asm: string;\n  nSequence?: number;\n  nLockTime?: number;\n}\n```\n\nIf a solution includes `nSequence` or `nLockTime`, the spending transaction must\nset those fields at the input or transaction level (CSV uses `nSequence` per\ninput; CLTV uses `nLockTime` for the transaction).\n\n**Dealing with malleability**\n\nSegWit eliminated classic txid malleability, but witness malleability still\nexists: a spend can have multiple valid witness stacks that keep the txid\nunchanged while changing the transaction weight and fee rate. An attacker could\nswap a valid witness for another and make the transaction larger or smaller,\nwhich can affect fee policies or mempool acceptance. The satisfier therefore\nseparates non-malleable solutions (stable, unique witnesses) from malleable ones\n(alternate valid witnesses that can change weight). **Use only the non‑malleable\nset when constructing spends.**\n\n```javascript\nconst { malleableSats, nonMalleableSats } = satisfier(miniscript);\n```\n\n**Managing Satisfactions Growth**\n\nSome scripts can generate many satisfactions, which can make computation\nexpensive or even infeasible. To keep this manageable, the satisfier enforces a\ndefault cap of `1000` solutions. The cap counts all derived solutions, including\nintermediate combinations and throws once exceeded. You can raise it\nor disable it with `satisfier(miniscript, { maxSolutions: null});`.\n\nHowever, the recommended way to avoid exponential blow-ups is to prune using\n`unknowns`. Pass `unknowns` with the pieces of information that are not\navailable, e.g., `<sig(key)>` for signatures or preimage markers like\n`<ripemd160_preimage(H)>`.\n\nFor example:\n\n```javascript\nconst miniscript =\n  'c:or_i(andor(c:pk_h(key1),pk_h(key2),pk_h(key3)),pk_k(key4))';\nconst unknowns = ['<sig(key1)>', '<sig(key2)>'];\n\nconst { nonMalleableSats, malleableSats } = satisfier(miniscript, { unknowns });\n```\n\nproduces:\n\n```javascript\nnonMalleableSats: [\n  {asm: \"<sig(key4)> 0\"}\n  {asm: \"<sig(key3)> <key3> 0 <key1> 1\"}\n]\n```\n\nand discards:\n\n```javascript\n{\n  asm: '<sig(key2)> <key2> <sig(key1)> <key1> 1'\n}\n```\n\nAs a reference point, `multi(2,key1,...,key20)` produces 190 satisfactions and\ncompletes in about 200ms on a laptop, while `multi(4,key1,...,key20)` yields\n4,845 satisfactions and takes around 6 seconds.\n\nIf only six signatures are known, pruning yields 15 satisfactions (`C(6,4) =\n15`) and completes almost instantly.\n\nInstead of `unknowns`, the user has the option to provide the complementary\nargument `knowns`: `satisfier(miniscript, { knowns })`. This argument\ncorresponds to the only pieces of information that are known. It's important to\nnote that either `knowns` or `unknowns` must be provided, but not both. If\nneither argument is provided, it's assumed that all signatures and preimages are\nknown.\n\nWhen modeling adversaries, include in `knowns` everything an attacker might\nalso possess, not only your own secrets. If you leave attacker material out of\n`knowns`, you can mistakenly classify a malleable path as safe. A safe pattern\nis to include all attacker-accessible material in `knowns`, then pick a\nnon-malleable satisfaction that uses only your own material.\n\nFor debugging or educational purposes, you can compute the discarded unknown\nsatisfactions by setting `computeUnknowns: true`. This populates `unknownSats`\nwith the solutions that contain unknown data:\n\n```javascript\nconst { nonMalleableSats, unknownSats } = satisfier(miniscript, {\n  unknowns,\n  computeUnknowns: true\n});\n\nnonMalleableSats: [\n  {asm: \"<sig(key4)> 0\"}\n  {asm: \"<sig(key3)> <key3> 0 <key1> 1\"}\n]\nunknownSats: [ {asm: \"<sig(key2)> <key2> <sig(key1)> <key1> 1\"} ]\n```\n\nBy default `computeUnknowns` is disabled to keep the number of solutions manageable, so\nunknown satisfactions are pruned and `unknownSats` is not returned.\n\n### Tapscript context\n\nMiniscript validity depends on the script context. In tapscript, two key rules\nchange:\n\n1) `MINIMALIF` is consensus, so the `d:X` wrapper becomes unit.\n2) Multisig uses `multi_a` (CHECKSIGADD) instead of `multi` (CHECKMULTISIG).\n\nBecause the satisfier runs the static analyzer first, you must pass\n`tapscript: true` when working with tapscript miniscripts:\n\n```javascript\nconst miniscript = 'multi_a(2,key1,key2,key3)';\nconst { nonMalleableSats } = satisfier(miniscript, { tapscript: true });\n```\n\nSome scripts are only sane under tapscript. For example,\n`and_v(v:pk(key1),or_d(d:v:1,pk(key2)))` is not sane in SegWit v0 (P2WSH),\nbut it becomes valid in tapscript because `d:v:1` is unit under `MINIMALIF`.\n\n## TL;DR; Recommended usage\n\n- Call `analyzeMiniscript` (or inspect `issane` from `compileMiniscript`) to\nensure the miniscript is sane before deriving witnesses.\n- When spending, construct witnesses **only** from `nonMalleableSats`.\n- Treat `malleableSats` (and `unknownSats` when enabled) as diagnostics and\nnever use them for production spends.\n\nTip: use `unknowns`/`knowns` to keep satisfactions tractable, especially for\nmulti(4,20)‑style scripts (see \"Managing Satisfactions Growth\"). Enable\n`computeUnknowns` only to inspect discarded solutions.\n\n## Authors and Contributors\n\nThe project was initially developed and is currently maintained by [Jose-Luis Landabaso](https://github.com/landabaso). Contributions and help from other developers are welcome.\n\nHere are some resources to help you get started with contributing:\n\n### Building from source\n\nTo download the source code and build the project, follow these steps:\n\n1. Clone the repository:\n\n```\ngit clone https://github.com/bitcoinerlab/miniscript.git\n```\n\n2. Install the dependencies:\n\n```\nnpm install\n```\n\n3. Build the project:\n\n```\nnpm run build\n```\n\n4. Run the test suite:\n\n```\nnpm test\n```\n\nThis will build the project and generate the necessary files in the `dist` directory.\n\n### Documentation\n\nTo generate the programmers's documentation, which describes the library's programming interface, use the following command:\n\n```\nnpm run docs\n```\n\nThis will generate the documentation in the `docs` directory.\n\n### Testing\n\nBefore committing any code, make sure it passes all tests by running:\n\n```\nnpm run tests\n```\n\n## License\n\nThis project is licensed under the MIT License.\n","readmeFilename":"README.md"}