{"bugs":{"url":"https://github.com/monet/monet.js/issues"},"dist":{"shasum":"b61b4e66b4df3c6de1b6d2b7cc13d21e002f6da6","tarball":"https://registry.npmjs.org/monet/-/monet-0.9.3-483.tgz","fileCount":10,"integrity":"sha512-okTUFCBR6ObUcsznf5Ce5x9D0yKl7ebfmxjftMeL53pUdOkAHCTtylmy/5kehnH0SIhlp2OOwIiRuYmV9/Vrsg==","signatures":[{"sig":"MEQCIGZy8TaIDozKiZ3MhgkSPIo2321bcz7+5qfdrE36Kq3hAiBWJXk4P4Km+CzuTXqC0hIX1MJ1smMpj2JXbHKWO5fxRw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":80429,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhlz1xCRA9TVsSAnZWagAAcA0QAJ9CoZuqZZdatUZFc8i+\nrVjE5S9yK8cQjxHeMk4W6OQ37ohwlu94u7UzwzqwwtPhsQWQGyJQWybCxS25\njdLLkEq8yeikMH01Z13XtiorxmwxGdBkxvXNVpMBqAbbJxykR2TH+wLqqKKA\nhghJ5q8YqWALChhFw/QFOxK1SblyZfqOBpl0FnkEwQj4f7GA2Dgjg4ZyCKyL\ns9V9fgx9y5IZDuS5Yjfz74PMd2BFGxVRwCd21AREzCIacuex8Yp1DtJ/c5/4\n4XOzVI1gwqMwbkG0wtCtuJpnvz2i+L02Fn2JqZ9JyeikHbwH1YTXUKHKvyLB\nh9ihRXMUPt+EWQjU1asES5aq2jKiwG7bY13YkPD3OLr5WpzP3rS5CujWiFLp\n7uC7rk8IW+AL2Dczu2AQUweKQr77u/6iYiQOAvvhfxO02uvzEqlledJpMos/\n0HM1MJncv0bxTEo8qWoTHMBWIA2fZmTRqqlt9b15nouZjjQ3e82szY3zGR9v\nQmt0Ariv2rerZScs/BKLJwVVVoPcMggBy5+PIhJJV+ia9LvPV4FaR13hkT2A\n/DUe0/g3WEp4VDxSnMkHnBv41+lemxiDMzS/5+jmaPYPDqg3INmP92DHnYOg\nlI9jmXkPGjDjf5aLHv3AVXN2tA47us8g2OzjC8EADsX3AYVSI6NU9e/XjsDY\nqrQc\r\n=mk+T\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/monet.js","name":"monet","author":{"name":"Chris Myers"},"readme":"# monet.js\n\nFor people who wish they didn't have to program in JavaScript. [documentation](https://github.com/monet/monet.js/tree/master/docs/README.md)\n\n## Introduction\n\nMonet is a library designed to bring great power to your JavaScript programming. It is a tool bag that assists Functional Programming by providing a rich set of Monads and other useful functions.\n\nThis library is inspired by those that have come before, especially the [FunctionalJava][functionalJava] and [Scalaz][scalaz] projects.\n\nWhile functional programming may be alien to you, this library is a simple way to introduce monads and pure functional programming into your daily practices.\n\n## Documentation\n\nFull detailed documentation can be found [here](https://github.com/monet/monet.js/tree/master/docs/README.md)\n\n## Installation\n\n### NPM\n\n```bash\nnpm install monet --save\n\n# or to install a specific version\nnpm install monet@0.9.3\n```\n\n### Download\n\nDownload the [zip][gitZip] or [tar][gitTar] ball.\n\n### Browser\n\nSimply download and add to your html pages. You can also include `monet-pimp.js` which contains extra functions on the `Object.prototype` for creating monads.\n\n```html\n<script src=\"monet.js\"></script>\n<!-- Optionally -->\n<script src=\"monet-pimp.js\"></script>\n```\n\n## Contents\n\n### [Maybe](https://github.com/monet/monet.js/tree/master/docs/MAYBE.md)\n\nThe `Maybe` type is the most common way of representing *nothingness* (or the `null` type) with making the possibilities of `NullPointer` issues disappear.\n\n`Maybe` is effectively abstract and has two concrete subtypes: `Some` (also `Just`) and `None` (also `Nothing`).\n\n### [Either](https://github.com/monet/monet.js/tree/master/docs/EITHER.md)\n\nEither (or the disjunct union) is a type that can either hold a value of type `A` or a value of type `B` but never at the same time. Typically it is used to represent computations that can fail with an error. Think of it as a better way to handle exceptions. We think of an `Either` as having two sides, the success is held on the right and the failure on the left. This is a right biased either which means that `map` and `flatMap` (`bind`) will operate on the right side of the either.\n\n### [Validation](https://github.com/monet/monet.js/tree/master/docs/VALIDATION.md)\n\nValidation is not quite a monad as it [doesn't quite follow the monad rules](http://stackoverflow.com/questions/12211776/why-isnt-validation-a-monad-scalaz7), even though it has the monad methods. It that can hold either a success value or a failure value (i.e. an error message or some other failure object) and has methods for accumulating errors. We will represent a Validation like this: `Validation[E,A]` where `E` represents the error type and `A` represents the success type.\n\n### [Immutable lists](https://github.com/monet/monet.js/tree/master/docs/LIST.md)\n\nAn immutable list is a list that has a head element and a tail. A tail is another list. The empty list is represented by the `Nil` constructor. An immutable list is also known as a \"cons\" list. Whenever an element is added to the list a new list is created which is essentially a new head with a pointer to the existing list.\n\n### [Non Empty Lists](https://github.com/monet/monet.js/tree/master/docs/NEL.md)\n\nMuch like the immutable list, a Non Empty List can never be empty. It implements the `comonad` pattern. It has a guaranteed head (total)\nand a guaranteed (total) tail.\n\n### [IO](https://github.com/monet/monet.js/tree/master/docs/IO.md)\n\nThe `IO` monad is for isolating effects to maintain referential transparency in your software. Essentially you create a description of your effects of which is performed as the last action in your programme. The IO is lazy and will not be evaluated until the `perform` (*alias* `run`) method is called.\n\n### [Reader](https://github.com/monet/monet.js/tree/master/docs/READER.md)\n\nThe `Reader` monad is a wonderful solution to inject dependencies into your functions. There are plenty of great resources to get your\nteeth into the `Reader` monad such as [these great talks](http://functionaltalks.org/tags/#reader%20monad).\n\nThe `Reader` monad provides a way to \"weave\" your configuration throughout your programme.\n\n### [Free](https://github.com/monet/monet.js/tree/master/docs/FREE.md)\n\nThe `Free` monad is a monad that is able to separate instructions from their interpreter. There are many applications for this monad, and one of them is for implementing Trampolines, (which is a way to make recursion constant stack for languages that don't support tail call elimination, like JavaScript!).\n\nPlease see [Ken Scambler](http://twitter.com/KenScambler)'s [excellent talk](http://www.slideshare.net/kenbot/running-free-with-the-monads) and [example project](https://github.com/kenbot/free) to get an in-depth understanding of this very useful monad.\n\n## Author\n\nWritten and maintained by Chris Myers [@cwmyers](https://twitter.com/cwmyers) and Jakub Strojewski [@ulfryk](https://twitter.com/ulfryk). Follow Monet.js at [@monetjs](http://twitter.com/monetjs).\n\n[functionalJava]: http://functionaljava.org/\n[gitZip]: https://github.com/monet/monet.js/archive/v0.9.3.zip\n[gitTar]: https://github.com/monet/monet.js/archive/v0.9.3.tar.gz\n[npm]: https://www.npmjs.com/\n[scalaz]: https://github.com/scalaz/scalaz\n","engines":{"npm":">=6","node":">=12"},"gitHead":"62d65ba5b0d9e7bdf24edab9b0b49409400c0286","license":"MIT","scripts":{"tdd":"karma start --auto-watch --no-single-run","copy":"npm run copy:monet && npm run copy:monet-pimp && npm run copy:types","lint":"eslint -c .config/eslintrc.json --env browser,node './src/**/*.js'","test":"npm run test:karma && npm run test:node && npm run test:typings && npm run lint && npm run test:build","build":"rm -Rf ./dist && mkdir dist/ && npm run copy && npm run minify","minify":"npm run minify:monet && npm run minify:monet-pimp","tdd-full":"karma start --auto-watch --no-single-run --browsers Chrome,Firefox,PhantomJS","test:node":"jasmine --config=.config/jasmine.json","copy:monet":"uglifyjs src/monet.js -o dist/monet.js --comments -b braces=true","copy:types":"cp src/monet.d.ts dist/","test:build":"npm run build && npm run test:prepublish && rm -Rf ./dist","test:karma":"karma start .config/karma.conf.js","minify:monet":"uglifyjs dist/monet.js -o dist/monet.min.js --source-map filename=dist/monet.min.js.map -m -c unsafe -v --comments --keep-fnames","tdd-full-osx":"karma start --auto-watch --no-single-run --browsers Chrome,Firefox,PhantomJS,Safari","test:typings":"tsc -p .config/tsconfig.json -m system","prepublishOnly":"npm run build","copy:monet-pimp":"uglifyjs src/monet-pimp.js -o dist/monet-pimp.js --comments -b braces=true","test:prepublish":"npm run test:prepublish:node && npm run test:prepublish:browser","minify:monet-pimp":"uglifyjs dist/monet-pimp.js -o dist/monet-pimp.min.js --source-map filename=dist/monet-pimp.min.js.map -m -c unsafe -v --comments --keep-fnames","test:prepublish:node":"jasmine --config=.config/jasmine-prepublish-global.json && jasmine --config=.config/jasmine-prepublish.json","test:prepublish:browser":"karma start .config/karma-prepublish-browser.conf.js"},"typings":"dist/monet.d.ts","_npmUser":{"name":"ulfryk","email":"ulfryk@gmail.com"},"homepage":"https://monet.github.io/monet.js/","repository":{"url":"git+ssh://git@github.com/monet/monet.js.git","type":"git"},"_npmVersion":"6.14.15","description":"Monadic types library for JavaScript","directories":{},"maintainers":[{"name":"cwmyers","email":"monet@chrisandjo.com"},{"name":"ulfryk","email":"ulfryk@gmail.com"}],"_nodeVersion":"14.18.1","contributors":[{"name":"Jakub Strojewski","email":"ulfryk@gmail.com"},{"name":"emmanueltouzery"},{"name":"tomecko"},{"name":"WojciechP"},{"name":"wookieb"},{"name":"rparree"},{"name":"customcommander"}],"dependencies":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"karma":"6.1.1","eslint":"7.21.0","core-js":"3.9.1","jasmine":"3.6.4","uglify-js":"3.13.0","typescript":"4.2.2","jasmine-core":"3.6.0","karma-jasmine":"4.0.1","karma-mocha-reporter":"2.2.5","karma-chrome-launcher":"3.1.0","karma-firefox-launcher":"2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/monet_0.9.3-483_1637301617835_0.41280823952724677","host":"s3://npm-registry-packages"},"_id":"monet@0.9.3-483","version":"0.9.3-483"}