{"_id":"canary-js","_rev":"32-a6dfae9e430278cce7c6680f9d16b1fe","name":"canary-js","dist-tags":{"latest":"4.0.0"},"versions":{"0.9.0":{"name":"canary-js","version":"0.9.0","keywords":["functional","javascript","fp","toolkit","canary"],"author":{"name":"Your Name"},"license":"MIT","_id":"canary-js@0.9.0","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"ff1da177383525ee27c7dd4cfa16d99217344ff2","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-0.9.0.tgz","fileCount":3,"integrity":"sha512-MQEkrY62+ZM/mV7XTm8YDEb6NFayT3Rm1TBOcMha3yNVa88qH/ObwK8swtHqa9S9fId/uPhB+1blIvXLYL5mxQ==","signatures":[{"sig":"MEQCICJw2lRUQKJm7WZUHP3zAeM5vKXCdtUJJJzBM2qPTCmpAiAZGWNr+X+hV492YQimD0Mj2IL1XOCjRmueA90j4JB8iA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7725},"main":"index.js","type":"module","exports":"./index.js","gitHead":"f651d4891f606d3416fc8b4fcd3a9b1854697600","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_0.9.0_1750985185332_0.7197514500954438","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"canary-js","version":"0.9.1","keywords":["functional","javascript","fp","toolkit","canary"],"author":{"name":"Your Name"},"license":"MIT","_id":"canary-js@0.9.1","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"1510b5abf9b49a95295a93e01657e0cf5ad3f003","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-0.9.1.tgz","fileCount":3,"integrity":"sha512-pBb4i+sh9Cq2YSDkjqZBfoyyit5MN9Yx1eOUhtqF99XvuKqQN8OSDGnPoivv5xa6ztsy6HBo6IcBXMqlZJkq7A==","signatures":[{"sig":"MEYCIQDOgb2VOJA3H/mw5NdnTs43zOcJXHY4J32ilyPhGAhmiAIhAKMNGpaQRK/85RS0bZ+hf7g4rsPjoF04ZlADmGiNAdot","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7726},"main":"index.js","type":"module","exports":"./index.js","gitHead":"caf6c300fb387731349bc8fbf78afc0cd6e783e0","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_0.9.1_1750985412511_0.32916998917219886","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"canary-js","version":"0.9.2","keywords":["functional","javascript","fp","toolkit","canary"],"author":{"name":"Your Name"},"license":"MIT","_id":"canary-js@0.9.2","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"e85c4339dfae05d2b6dd049b72712f076f4c5e30","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-0.9.2.tgz","fileCount":3,"integrity":"sha512-ALK+4W28j6PjuyPllbQrMYKasGc14kvJH+EDI6n6GakbjbWaRP4wh6dYTPeVgbpRq/1C9Ik4PEJ32Jc7Rblghg==","signatures":[{"sig":"MEUCIQCuZmExVLUHq1TWFf+XpvqaHKTlj4shXFSqR182jH2FlQIgRHe3h5VzeAePRJ+GFK+vrAi2nKT5jqtYPUkfjG8bCik=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7728},"main":"index.js","type":"module","exports":"./index.js","gitHead":"7b4d691ad46369471a08e963aee6d164e8fb7c94","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_0.9.2_1750985596162_0.702913056802394","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"canary-js","version":"0.9.3","keywords":["functional","javascript","fp","toolkit","canary"],"author":{"name":"Your Name"},"license":"MIT","_id":"canary-js@0.9.3","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"2fad6965b57916d3c605ab7820b0f2a8b5981dca","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-0.9.3.tgz","fileCount":4,"integrity":"sha512-tNZC4oHydc/sJlULnDEdNvMzp2MUiVS+EbpdXf8XfRI7ux0PxWcSUlyaorN78DDM8A3O/SULPYTiO+91dIQ7Pg==","signatures":[{"sig":"MEQCIBMw6hvMJmGffUsSn5GulQY/1fPPLkVOV0+FrUYosMMcAiB0niAeWxlLLQlCgWNXmXbv5FcNnglnVPoqBKVhJxeEAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11377},"main":"index.js","type":"module","exports":"./index.js","gitHead":"e90f308bc4fb18795f67a32ced91d1cc1e6ee84b","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_0.9.3_1750988655851_0.7088962306061322","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"canary-js","version":"0.9.4","keywords":["functional","javascript","fp","toolkit","canary"],"author":{"name":"Your Name"},"license":"MIT","_id":"canary-js@0.9.4","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"e13f97ef48be1402e7bc3b35aa5e8aea424c7ee2","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-0.9.4.tgz","fileCount":4,"integrity":"sha512-engcssBogenz9TVKEXtOkryt5QJ3yc0GD5vyLKVA4LC4ulP6723iAaXpFawuyJ4vTD+pvugKyw5Ldha6Dk818A==","signatures":[{"sig":"MEQCIDZ0c9gOTgiVjGtR6gzOt6Hb78BVq1wMrzNvClexrYf3AiAWN0r/9nC9C5mZU5jMyTfUQYztjKzVd2u0AHfzgas0YQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18237},"main":"index.js","type":"module","exports":"./index.js","gitHead":"0d4d4b522a3b208b69d004915a3714543dd6b415","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_0.9.4_1750989346452_0.9067088846648022","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"canary-js","version":"0.9.5","keywords":["functional","javascript","fp","toolkit","canary"],"author":{"name":"Your Name"},"license":"MIT","_id":"canary-js@0.9.5","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"4e39c866e54a22182e1027096c2fc5584b6eb26f","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-0.9.5.tgz","fileCount":5,"integrity":"sha512-F+6JfDoMGPRp+d/O9GqTs/qgXWgbwoWq+nVe54xi3JHUfq+58l2aTlzTnqk4WPlV/d1kzhpj6l63Ei7nSCw2uA==","signatures":[{"sig":"MEYCIQDPk6bDNv79F0isz1QrV5wyf2JfKy6IzqCb0zd8HVXFrgIhAPnc1Vtl1T7CbcaCP89wKUDoJzn5GxFndyGSYybJvrtU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21913},"main":"index.js","type":"module","types":"./index.d.ts","exports":"./index.js","gitHead":"b4ef56c311a19e47e00fe90aabc7b11ec8b65ed5","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_0.9.5_1750990676455_0.5892212187949468","host":"s3://npm-registry-packages-npm-production"}},"0.9.6":{"name":"canary-js","version":"0.9.6","keywords":["functional","javascript","fp","toolkit","canary"],"author":{"name":"Your Name"},"license":"MIT","_id":"canary-js@0.9.6","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"1504b75528697bac5a14e5e36c82bb7694ebe8fe","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-0.9.6.tgz","fileCount":5,"integrity":"sha512-1hpBf+UWdqYzRiZgu1AQmoyg0Qa2zdKWUshZM25BDaR1k3PE1P4tAudMWYGJt4Sz8G4EPGjM1xiv1iN3Jjue+w==","signatures":[{"sig":"MEUCIQCxuX/mIg+oCM4J5+Qz+6SbKMfe2lOuxiVR6uQXKm3VaQIgT12RULhH1LHscQTkjYkTciSbStRTR5kurJSkv26fp/c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21872},"main":"index.js","type":"module","types":"./index.d.ts","exports":"./index.js","gitHead":"86d56001d361c3870519ecb8799d7bf9983b19c2","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_0.9.6_1751031359923_0.45973951047675965","host":"s3://npm-registry-packages-npm-production"}},"0.9.7":{"name":"canary-js","version":"0.9.7","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@0.9.7","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"eaed6b58bade93249db4385f0e06515adf0be028","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-0.9.7.tgz","fileCount":5,"integrity":"sha512-oLpR5tqvytGj6VqsZaOwyOiXfGbnL7O5qrpRptcRl1KMETUfMXpQD3m/XecgwDKDhNeE6qVG9866Pu6zVnduuQ==","signatures":[{"sig":"MEYCIQDDnViSX+PMXCCUDml0yK8KYb4b963mmE/Yh7KPeO07vQIhAP5h7DuIyl/BqcrW34i/qKCgwDoHWN8GhUMWfQHQYfWS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22227},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"fa79f459e3c5b714ccddf74c5bdf5762106d7ab1","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_0.9.7_1751034088140_0.22445630997045973","host":"s3://npm-registry-packages-npm-production"}},"0.9.8":{"name":"canary-js","version":"0.9.8","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@0.9.8","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"cbc91bc35438bd65b0a5d632e630fc4cbd1be5cf","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-0.9.8.tgz","fileCount":5,"integrity":"sha512-LRO7d4iO2oHwHKS1AcWJ0wO3eDWBG+iuEQC7rILJq1QEG+pZfgfXlaQZVjRKDV1QromBpTIqirbLmKc3nTjw6Q==","signatures":[{"sig":"MEQCICbX4pHcK4YW8ky+hPto6YnWjDbbD7HiKfTkHHpKkfP/AiBMyfdNKHLGsStUgR6zu+g8DBXQn9ZjJPfFQ+9XP/2bkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22206},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"cce9573389827d5a5d30323f159bd8a748605a2c","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_0.9.8_1751035088762_0.4039449039767953","host":"s3://npm-registry-packages-npm-production"}},"0.9.9":{"name":"canary-js","version":"0.9.9","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@0.9.9","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"9147cb0caeb43d9a704c015b547d952c988cfe9e","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-0.9.9.tgz","fileCount":5,"integrity":"sha512-Ngu2yaacrf03fZ6zM4LQkl2g3Nq6/2TWmtbUjRUmqO/7zDNmjc1Y4PpL38hRvDMsk5MJ7zclqNVZOP8wvdZMNQ==","signatures":[{"sig":"MEQCIEGQySVe66eaUrOA3UmFqmfO5hW3lVuy0qdtV/5+PxUjAiB+JhAPg5RJP+INNamAyLjP5Qtwk4WlyvbZ9V4SNK3RIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22212},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"0662cd53dd173cd41dc56c8111cba9d776968b52","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_0.9.9_1751038881645_0.20908313250822674","host":"s3://npm-registry-packages-npm-production"}},"0.9.10":{"name":"canary-js","version":"0.9.10","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@0.9.10","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"2536af865a84d3ec9e406ed33753057cd8c7051c","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-0.9.10.tgz","fileCount":5,"integrity":"sha512-l3WFeAI5byCHhHd+SFxQhy/LALKzwPJ8gRtwyoh1RQgnZYcFZYhZv8n6N0ozXW8oVCKdBIBL9PaaCVzcuiEbpQ==","signatures":[{"sig":"MEYCIQDwB85PM1UvDv4CCYtrnQPp4N0RMdJFWRHKWqx/kG77dgIhAPNLODXWHrXT+LQWdQfKt/5csTon+Du3r21Gw9XzMriC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23468},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"92082d4792ff579584a565e02afbdd0cc1f569cd","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_0.9.10_1751041819922_0.2468532727397721","host":"s3://npm-registry-packages-npm-production"}},"0.9.11":{"name":"canary-js","version":"0.9.11","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@0.9.11","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"76105bc57022a9be346f2dfeaec1e14fd92925ff","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-0.9.11.tgz","fileCount":5,"integrity":"sha512-Re+Rfr1q4jb0jZH7b7jYjULnPJ6O9RKTiqwTaglVJ3bjKm6U6eUKxhObxcx7+kMqcp5UE853x3wFIqVXuMaBww==","signatures":[{"sig":"MEQCIAWo5cSWtgLawdFpqqgW1kyiOCprD4UBavwVIfJUJEV3AiB12lhiaF0Hu16OZPpQ0jBsGYNxGPUtOLcUVXG64P8FqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23506},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"6c98c0e544ee019f14b91a54708ea7cb82b2cb12","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_0.9.11_1751045954756_0.3592278434221401","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"canary-js","version":"1.0.0","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@1.0.0","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"5cb56c25e0d348c1667bc6d67e2467ff724ca2f7","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-1.0.0.tgz","fileCount":5,"integrity":"sha512-5pi5Q1DvhBR61/BKKRrnK44PuujyU/QTsRYAWLDjE1T0gmjN8LWubmcKrx8V7LNb2kiAHQiA00dOn2OGuysTHQ==","signatures":[{"sig":"MEUCIQCNlI8Oqy8/MQDGp8ziNoTQBaiIhDtGT3pDkDBfGl7dNwIgA5UJIW7dfXxLod37QkrZ1PPjG/1DDKY4bORqKD5b9oI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23505},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"5fa7a435fb7040258f56f7deaf7e44666527319d","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_1.0.0_1751047248637_0.9339585981433896","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"canary-js","version":"1.0.1","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@1.0.1","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"5e759eb9fc6d9fdc78a210c01bafd85201f44940","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-1.0.1.tgz","fileCount":5,"integrity":"sha512-MsG6ROK12+JTG1ll1riIfFvjfvedcAbPdlutL4dD32PnxW1wJsNxR2M2RQRRRFx5Brn+2FE79R5wz7TomP+qrw==","signatures":[{"sig":"MEQCIBNUk8SYNowkJQMT6Y/0aNW2RRiC85bxCFmj8UaIlEyFAiBn6gh4sSavyijiUzJFYX/sEktMjucs9OmdOtfZNOy4JQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24132},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"c1ac9b7d0dd3ea39621ae3907673e64b5ac50bff","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_1.0.1_1751126066849_0.6674298800833147","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"canary-js","version":"1.0.2","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@1.0.2","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"2c8688dd9deded5c44ce3a8604bcfeaa56d37fa4","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-1.0.2.tgz","fileCount":5,"integrity":"sha512-vCyoNoxW/b3mD3mgLbz0xCm5K/XfmibjUg4cTP0aU8Pg8jx9xDjWu4bUU40HeYUyKmOGcEkq4ip6VP6KOdNj8A==","signatures":[{"sig":"MEQCIEKc43YHarAcMF4BcxA0lzgmUrhnuy0wM0UUSupxVANCAiB40cb80um5my/XJZQdcPyVM11RzfyoFQ981CeA/kYy6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26645},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"11222ce48b96b4e386d6d3ab67b50d04945e6985","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_1.0.2_1751152935992_0.10715572322827227","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"canary-js","version":"1.0.3","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@1.0.3","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"b13fc77a2fef390ce8cd6ad0cf73c3b8385046dd","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-1.0.3.tgz","fileCount":5,"integrity":"sha512-l9MUJOJ2ErwY9ghVBm1ymLkHJRKEVjiOzfkag5MbEJyzWZ9PST2GZ34c377BLqSceISSLGn9TGBI82gGP8FZUA==","signatures":[{"sig":"MEQCID8Z4pyrbbMBtvIj62IuRe9IBEv3DKlh+xNf5BpzTVeqAiAB9TX8BT5KD2+lIBBEqHZugY1kUWdjCQj837xjgR2j9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25788},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"57892a40498b17155216d1f030b908b3bd701464","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_1.0.3_1751158776053_0.8607311829389794","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"canary-js","version":"1.0.4","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@1.0.4","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"17cb404c532a7661a2dd2cb145266a06e6846adf","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-1.0.4.tgz","fileCount":5,"integrity":"sha512-/l0EdFalfUaEI992tH+i9Gt1qmBJ7mEsBqulsPEfhj+YSweFqjg1LdPLRXBnaU7V1mz933bLxDUbt7lggYcjvg==","signatures":[{"sig":"MEQCIAaL5/5NAN03tQDtwyhyltj0y5zXcuCOF0Py2hrjJq/zAiB+fI+V/cG6cz6/bOHti03PAoeiDcJW1PiMioA+JX2TvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26846},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"b62fb7393abc608c6527ba7aa3b6fb7adb8c32c5","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_1.0.4_1751162728020_0.6390709578146967","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"canary-js","version":"1.0.5","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@1.0.5","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"294836739432438554f1d04ae06f46ca34071df2","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-1.0.5.tgz","fileCount":5,"integrity":"sha512-F69gjDs7glGjjKerdpDTQGd+i0h2VeIeXnAnpx/R2lOsHHh4TwLph00Y83SS3Z1nHxQdW2Pfyg9bhTsZRHqSAQ==","signatures":[{"sig":"MEYCIQDp1JzjLlQrIQvOn1yRWDnQpU5Y2wbpPJVBQX8X7thxKgIhANdrH4oMuFQUssTKm14ZQP2JDTssVIkFi8kWmfctJjWU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27549},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"35525ae3d4573d0c7e74b017dc2a6cfdcc0ed6b9","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_1.0.5_1751167691887_0.33866027097605556","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"canary-js","version":"1.0.6","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@1.0.6","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"b4f6650aaef23c82f5b1483d652996e7eccb2659","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-1.0.6.tgz","fileCount":5,"integrity":"sha512-tKo23585RVak9pMj1II81p9QzxkGLBPz4aoDCsR84rAH+nVjamk3Svms+GwWXuaI1JRD6H6nNdL7GrgKrj1VZw==","signatures":[{"sig":"MEUCIQCQ8bBjpHZf7MEm+s0ZduhqRHahyY9WauXpevMgfJUU1wIgNZTCfqIzP2wSoJ2Ng5ZhXz4mXX0vuuvl306MJYCB+Gs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27522},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"ff2e411bce740b14e3e8957795b7ef0b5aa29c9e","_npmUser":{"name":"bmehder","actor":{"name":"bmehder","type":"user","email":"brad@mehder.com"},"email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_1.0.6_1751853319700_0.233195008640245","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"canary-js","version":"1.0.7","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@1.0.7","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"b90007be55583af8d32af5ed70ed1c8af1aad75e","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-1.0.7.tgz","fileCount":5,"integrity":"sha512-6FhJCRH9EUe4JzGlhGuOivrb00rrn+GnvyiUqFhhlVsyW6IEPtQE3TOa6i90P3vw1o82BqnIe1WHg67q8XTh9Q==","signatures":[{"sig":"MEUCIAghA/RoSvWHyxke2F9NIjeMcNzh61/srD64pVsaDGPwAiEA2kwpO2EyKSNPeFr3aQh4hirb/KzBOZPhbQoYKYdGH2M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28398},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"99aebd05a8dd652d5b320b815ede1d6381f459cc","_npmUser":{"name":"bmehder","email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_1.0.7_1752358626188_0.7706389011355697","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"canary-js","version":"2.0.0","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@2.0.0","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"0c0a43f482251a2c1cec12f58717827f4f085650","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-2.0.0.tgz","fileCount":5,"integrity":"sha512-ounR7/91ei9sFrRnmZ6Gp6pkf8X4vcwau3wmwlntlrqud1Z3m7INkKEk3RC/dp/FeCsRYfO79iyJEsR8033ihw==","signatures":[{"sig":"MEQCIGxTLwbQOCUCTPBb3RlwWIa1vnrWxL5Ebpw2Py0l+C1aAiBxEx6lYOF1qv14xscXIoF6o5aO6D1utwozXSmYiqojtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28398},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"2a56a05d151300c7eb99020180461089f561f3aa","_npmUser":{"name":"bmehder","email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_2.0.0_1752447699876_0.8214094757695249","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"canary-js","version":"2.0.1","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@2.0.1","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"bd4009029032f16635101f090ca828b001f4b791","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-2.0.1.tgz","fileCount":5,"integrity":"sha512-YZBncyeLSbdf22i4H71M7B4ZgmNxf58SdwbfEs9l0GMX6lgkoGJGNu1Z/zoU8YHbJGEqZ41ttvZb6CMwym+pzQ==","signatures":[{"sig":"MEQCIAj/z5xtFjES4S33WZosQw6xBLIdnLge1tw8cFPMtjGjAiBRqHgQurQetminmXu5Ew+QpdOq9qp0Na0AsejIIyoTkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28427},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"7ba64ce67787bbb5e022b69bc7d198edc8dc992c","_npmUser":{"name":"bmehder","email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_2.0.1_1752596443829_0.7992538675346774","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"canary-js","version":"2.0.2","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@2.0.2","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"68b1a905d2100e1857653542234f287449c4dc65","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-2.0.2.tgz","fileCount":5,"integrity":"sha512-vLek9JQ7SG6jUVV+CJ/1OYovNE17nu7e4IgGD1+ZN1a/JiPBRke7pF8xYBFvfwrtPepHxEHAuI3XAeVHhmVF5w==","signatures":[{"sig":"MEQCIHGxKRA/QKGGRqp7pc+u1Zirudgw1IuKvIx4ScIufmTzAiAntC13S8NJyvZM/768jHseOaGidACeARlH+oLPDK5zkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28427},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"db400d231804ae2fc47603f6600e9ddbeb931bfc","_npmUser":{"name":"bmehder","email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_2.0.2_1752596717679_0.32812888009669106","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"canary-js","version":"2.0.3","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@2.0.3","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"59b1493026058ca4e1c1690ce67327f70554e3d3","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-2.0.3.tgz","fileCount":5,"integrity":"sha512-BQQfNRZ04xVz7NEkIH7OEU93CvytdCxeRWcMsbxkBoSCm17oUtXfItNcZXlY7GTEMR9awzFLXQWne4F7wuG7Sg==","signatures":[{"sig":"MEUCIGboszS2fwGFN+LIf6R/fUJgy+/tXvPz3FFC51L/hluXAiEAgtHS180OqEVi2Fc2R7qMoz8UKtslRPojf8f5uzxA894=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28724},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"eaa203316a030f81fab275c79e34bc5d747b83f1","_npmUser":{"name":"bmehder","email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_2.0.3_1752605077501_0.935271540435139","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"canary-js","version":"3.0.0","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@3.0.0","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"241a30ac2b22a98109826ffd22e250cc7a2e72e3","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-3.0.0.tgz","fileCount":5,"integrity":"sha512-SoK+PL/BcWzL31e8tZ/26ANTnGulsRgexJL+qXikxwAhDnhvQzzZQ8HnypNV2z9dg8FrkyN+BoHTUhM1LcN78g==","signatures":[{"sig":"MEYCIQDqc5h82S8bQS+1eNbBxZU4wMZ/gWN8OZ7DuBbACA92OAIhAKbirDp7Vg5+3YWsweZvx4IYJlg8qztURdit4DQuANs2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28850},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"538bb527d3969a6296640305ee3646bd978cb909","_npmUser":{"name":"bmehder","email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"10.6.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_3.0.0_1752668352206_0.5175477301553035","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"canary-js","version":"3.1.0","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@3.1.0","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"a8f881ce338061527954d13ed8869890b1115b7a","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-3.1.0.tgz","fileCount":5,"integrity":"sha512-sll6KE5bTLxwWifTotjOQh5jZBWzu4jymVW5rvw0to16Ufp+ZJlWc08OV7EcBNDaPLJBPfLaE0cVNJhVFNOd7g==","signatures":[{"sig":"MEQCIFTzx7yqhdsFfNjQsaAeL2YnCp+EPwNerskVJrOt8zt2AiBPFScOAfOR+f+JUKfBeyK90emk6kByHkICXe4y+vLAPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31614},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"bc1a5c730e917a94bf73084859e6e74838d252aa","_npmUser":{"name":"bmehder","email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"11.6.1","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_3.1.0_1761330997055_0.9584030910577337","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"canary-js","version":"3.1.1","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@3.1.1","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"c454862810bf43d95e496489e6e9076451a09b5b","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-3.1.1.tgz","fileCount":5,"integrity":"sha512-LDV146cHPVFginBds3mtzw6mQBMN7fKRnyFEn97k4nT0sdELDQ2BN+BWNflcbItqxEbfget6983u6FHzH9WprQ==","signatures":[{"sig":"MEQCICssIUnC1lC//QFfjC8YPqeprdqle3EhskCXA74BkhaAAiAq3rG0EEz4/ORkfnMM5h9Hp1WAKsfxcprwhF6cr/PsOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31536},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"e239ba3612f8819593bdebff9b65f38ace9b6167","_npmUser":{"name":"bmehder","email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"11.6.1","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_3.1.1_1761331383377_0.37719282104581353","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"canary-js","version":"3.2.0","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@3.2.0","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"18f5c2f3be96f8a192ddde922ce2c21d3f912174","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-3.2.0.tgz","fileCount":5,"integrity":"sha512-DrXiAf/96iGRDuyNgHpA0Z4eiF7ErHTwJoub6E4SEK4EMYV8BpXLPthrl5dDw+eZd6D24RvL59MOLdLJjoFsyA==","signatures":[{"sig":"MEYCIQCAOhU/dnmzaQqhFYthlpaggsJtN/zq7ZRNPm160UyCxgIhAIcCqGBMPHU4cZUx9a/6dRTOL9q7L75AfRVkon3H5EJs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31162},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"9285478bbd857f7341610d0f75cc1806312c5a55","_npmUser":{"name":"bmehder","email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"11.6.1","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_3.2.0_1761572355042_0.614513496838458","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"canary-js","version":"3.2.1","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@3.2.1","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"ed5ec78bf142abc07bb37af53fe00402913866fd","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-3.2.1.tgz","fileCount":5,"integrity":"sha512-F1wPSa56fqaU1tngoeGWwNJ6Qv5g/n2Pm1K63OSLAoQURqNd1nrgQoUs544b0tsXPtYVYb+Hy15OQKZetz2QdQ==","signatures":[{"sig":"MEUCIQCYM2jVBws9inRv/GhZ4SUtOs4Zx2hZHoiyEHABnXsyBQIgTwlZur+z+bANUxuUrQLmiNMHVRs2vLCoRELyWWaZmMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31818},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"8f0e51af898b0838d96a6fc05542063061178937","_npmUser":{"name":"bmehder","email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"11.6.1","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_3.2.1_1761691854372_0.4756425768811299","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"canary-js","version":"3.3.0","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@3.3.0","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"9594791f732bd7a7b402fcc59cc991dd27f01662","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-3.3.0.tgz","fileCount":5,"integrity":"sha512-smmP50u66pSo3CfRHIpOyMatkO7+Fs9/u3meMiYV0+4zfhfxAGEDhlPaXCAL/R/r5tI2/V/d5mzvnl1o5nby8w==","signatures":[{"sig":"MEQCH0k7AyJMve1wTbAARYM6KPaf7SBYfLwdawI1n3oomtECIQDN/jGwi+3LZvQKp7FPeD2G3QbYT+1i703gT1Cad+FC4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33963},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"85c97504c604580d093ef9a82c5b258292a05da3","_npmUser":{"name":"bmehder","email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"11.6.1","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_3.3.0_1765234502921_0.4258178328008231","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"canary-js","version":"3.3.1","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs","ramda","sanctuary"],"author":{"name":"Brad Mehder"},"license":"MIT","_id":"canary-js@3.3.1","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"homepage":"https://github.com/bmehder/canary-js#readme","bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"dist":{"shasum":"7e44be9b8e9be978a24e610f44e636c89ee1ec8e","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-3.3.1.tgz","fileCount":5,"integrity":"sha512-bG3ypwDKb3zvRrjmsc2opZgCieImnIeaETH4cw/FeVDTlhLXy2oS/orVmclKIBVerXKK6nWUoGR7OleGyTn0aA==","signatures":[{"sig":"MEUCIQDXp25TTl+EHsxT6IERwGfm6fXsYvZwj8czThclI95b5wIgd3iP4HVW8IYcAFlN3FIn9lYOSM+byeDJRpUGS4NBlUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34076},"main":"index.js","type":"module","types":"index.d.ts","exports":"./index.js","gitHead":"191daffdfc566675df7ddc503155cd6a73e2e848","_npmUser":{"name":"bmehder","email":"brad@mehder.com"},"repository":{"url":"git+https://github.com/bmehder/canary-js.git","type":"git"},"_npmVersion":"11.6.1","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canary-js_3.3.1_1765236520352_0.5333635966651484","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"canary-js","version":"4.0.0","description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","main":"index.js","types":"index.d.ts","type":"module","exports":"./index.js","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs"],"author":{"name":"Brad Mehder"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/bmehder/canary-js.git"},"bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"homepage":"https://github.com/bmehder/canary-js#readme","gitHead":"07c8dcb48e36fbbe985ebf6be2e630136e4dc4e8","_id":"canary-js@4.0.0","_nodeVersion":"24.10.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-ThXOLLiED1NxpG4Ug3P0zypH98mFHqVeQ7Tpa11bjpn6LEcpl0/DviOTOjR+ZmI2BL7LmGWyLSQ9jg7Owt9NTg==","shasum":"ec8fca515568f8036cf48909e72f6faf823a5b69","tarball":"https://registry.npmjs.org/canary-js/-/canary-js-4.0.0.tgz","fileCount":5,"unpackedSize":28666,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFgEaEb3YZXKwb/TcpcpnInESp7561Ce4nRuJrWxcnhfAiEAkg9OIBxa6qVMS+097FGch/O+Mx058R5Itkf7EerI7Xw="}]},"_npmUser":{"name":"bmehder","email":"brad@mehder.com"},"directories":{},"maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/canary-js_4.0.0_1771435201601_0.01715820987568084"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-27T00:46:25.331Z","modified":"2026-02-18T17:20:01.909Z","0.9.0":"2025-06-27T00:46:25.487Z","0.9.1":"2025-06-27T00:50:12.675Z","0.9.2":"2025-06-27T00:53:16.358Z","0.9.3":"2025-06-27T01:44:16.081Z","0.9.4":"2025-06-27T01:55:46.610Z","0.9.5":"2025-06-27T02:17:56.632Z","0.9.6":"2025-06-27T13:36:00.119Z","0.9.7":"2025-06-27T14:21:28.316Z","0.9.8":"2025-06-27T14:38:08.993Z","0.9.9":"2025-06-27T15:41:21.841Z","0.9.10":"2025-06-27T16:30:20.117Z","0.9.11":"2025-06-27T17:39:14.934Z","1.0.0":"2025-06-27T18:00:48.815Z","1.0.1":"2025-06-28T15:54:27.055Z","1.0.2":"2025-06-28T23:22:16.231Z","1.0.3":"2025-06-29T00:59:36.224Z","1.0.4":"2025-06-29T02:05:28.220Z","1.0.5":"2025-06-29T03:28:12.088Z","1.0.6":"2025-07-07T01:55:19.889Z","1.0.7":"2025-07-12T22:17:06.369Z","2.0.0":"2025-07-13T23:01:40.062Z","2.0.1":"2025-07-15T16:20:44.008Z","2.0.2":"2025-07-15T16:25:17.877Z","2.0.3":"2025-07-15T18:44:37.673Z","3.0.0":"2025-07-16T12:19:12.439Z","3.1.0":"2025-10-24T18:36:37.258Z","3.1.1":"2025-10-24T18:43:03.581Z","3.2.0":"2025-10-27T13:39:15.251Z","3.2.1":"2025-10-28T22:50:54.591Z","3.3.0":"2025-12-08T22:55:03.077Z","3.3.1":"2025-12-08T23:28:40.505Z","4.0.0":"2026-02-18T17:20:01.780Z"},"bugs":{"url":"https://github.com/bmehder/canary-js/issues"},"author":{"name":"Brad Mehder"},"license":"MIT","homepage":"https://github.com/bmehder/canary-js#readme","keywords":["functional","javascript","fp","toolkit","curried","data-last","canaryjs"],"repository":{"type":"git","url":"git+https://github.com/bmehder/canary-js.git"},"description":"A minimalist, functional JavaScript toolkit for mere mortals. Curried, data-last, and easy to learn.","maintainers":[{"name":"bmehder","email":"brad@mehder.com"}],"readme":"# CanaryJS\n\n[![npm version](https://img.shields.io/npm/v/canary-js)](https://www.npmjs.com/package/canary-js)\n[![License: MIT](https://img.shields.io/npm/l/canary-js)](https://opensource.org/licenses/MIT)\n[![Minified size](https://img.shields.io/bundlephobia/min/canary-js)](https://bundlephobia.com/package/canary-js)\n[![Types](https://badgen.net/npm/types/canary-js)](https://www.npmjs.com/package/canary-js)\n\n_A minimalist, functional JavaScript toolkit for mere mortals._\n\n---\n\n## Why CanaryJS?\n\n> **CanaryJS wraps the JavaScript you already know in a functional overcoat, then offers you a nice cup of tea.**\n>\n> - Includes most built-in JS methods—but curried, data-last, and pleasantly unfussy.\n> - Designed to be simple enough for mortals.\n> - Easy to learn, hard to outgrow.\n> - Works great on its own, or as an on-ramp to Ramda — and for deeper type-driven FP, Sanctuary.\n\nIf you’ve glanced at **lodash/fp** and felt it looked a bit like a supermarket sweep, CanaryJS is the corner shop: just the essentials, nicely arranged.\n\n---\n\n## Installation\n\n```bash\nnpm i canary-js\n```\n\nZero dependencies. ES Module. Tree‑shakable.\n\nAlso available via CDN:\n\n```js\nimport * as C from 'https://esm.sh/canary-js@latest'\n```\n\n---\n\n## Quick Start\n\n```js\nimport * as C from 'canary-js'\n\nconst isEven = C.pipe(C.flip(C.modulo)(2), C.equals(0))\nconst add10 = C.add(10)\n\nconst transform = C.pipe(C.filter(isEven), C.map(add10))\n\nconst result = transform([1, 2, 3, 4])\n\nconsole.log(result) // → [12, 14]\n```\n\n---\n\n## Core Ideas (in excessively tidy bullets)\n\n| Principle                  | What it means                                                                     |\n| -------------------------- | --------------------------------------------------------------------------------- |\n| **Curried & data‑last**    | Functions take arguments one at a time, with data passed last—perfect for `pipe`. |\n| **Pure & predictable**     | No mutation. Functions always return the same output for the same input.          |\n| **Partial application**    | You can pass fewer arguments to get a new function. Build behavior gradually.     |\n| **Built‑ins first**        | Array, String, Number, Object, and Boolean methods                                |\n| **Ramda‑compatible names** | Familiar vocabulary if you move to Ramda.                                         |\n| **Small surface**          | \\~80 functions; your brain remains underwhelmed.                                  |\n\n---\n\n## What’s Inside?\n\n### Arrays\n\n`map`, `filter`, `reduce`, `find`, `findIndex`, `findLast`, `indexOf`, `lastIndexOf`, `some`, `every`, `includes`, `at`, `flat`, `flatMap`, `slice`, `concat`, `join`, `reverse`, `sort`, `length`\n\n### Strings\n\n`split`, `trim`, `trimStart`, `trimEnd`, `repeat`, `toUpper`, `toLower`, `startsWith`, `endsWith`, `padStart`, `padEnd`\n\n### Numbers\n\n`add`, `subtract`, `multiply`, `divide`, `modulo`, `abs`, `floor`, `round`, `ceil`, `pow`\n\n### Objects\n\n`keys`, `values`, `entries`, `fromEntries`, `prop`, `freeze`, `seal`, `is`\n\n### Comparison & Boolean\n\n`equals`, `not`, `negate`, `lt`, `lte`, `gt`, `gte`\n\n### Core Utilities\n\n`identity`, `always`, `converge`, `tap`, `pipe`, `compose`, `curry`, `uncurry`, `addIndex`, `flip`, `binary`, `trinary`\n\n### Control Flow\n\n`ifElse`, `cond`, `tryCatch`\n\n---\n\n## What’s _not_ Inside (and where to find it)\n\n| Feature                                              | Where to look   |\n| ---------------------------------------------------- | --------------- |\n| Placeholders (`__`)                                  | Ramda           |\n| Fancy combinators (`juxt`, `lens`, `zipWith`)        | Ramda           |\n| Maybe, Either, and other Fantasy‑Land‑certified ADTs | SanctuaryJS     |\n| Lenses, traversals, profunctors (brace yourself)     | Ramda & friends |\n\nCanaryJS keeps the water shallow; when you’re ready to dive, Ramda and Sanctuary have the deep end nicely chlorinated.\n\n---\n\n## Naming Aside\n\nWhy _CanaryJS_?\n\nIt’s named after **Canary Wharf in London**, where the idea for the library clicked into place—over a coffee and a long think about functional programming.\n\nThis is a second attempt, after learning firsthand how quickly a utility library can grow too large, while still not quite measuring up to its inspirations. CanaryJS is a fresh start—intentionally small, focused, and designed to help others avoid some of the detours I took along the way.\n\nNothing to do with canaries in mines, alerts, or early warning systems. Probably.\n\n---\n\n## License\n\nMIT © 2025 Brad Mehder\n\n# canary-js\n","readmeFilename":"README.md"}