{"_id":"@andrewbradt/lotide","_rev":"2-32f2e139ad3b4ec584d2ec705100260a","name":"@andrewbradt/lotide","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@andrewbradt/lotide","version":"1.0.0","description":"A mini clone of the Lodash library.","main":"assertArraysEqual.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/andrew-bradt/lotide.git"},"keywords":[],"author":{"name":"Andrew Bradt"},"license":"ISC","bugs":{"url":"https://github.com/andrew-bradt/lotide/issues"},"homepage":"https://github.com/andrew-bradt/lotide#readme","devDependencies":{"chai":"^4.3.6","mocha":"^9.2.0"},"gitHead":"787ddb702030429703cdc0ec1c4a89f1e2816b64","_id":"@andrewbradt/lotide@1.0.0","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-LWzVIH5K6ra46NrBEQTAVroi6g3RIrrX/2OvgkAlm8KHjPG2ucQSiyjWd+lCVoIbT3DTQjpBVx5bu7O9FIAKbw==","shasum":"b5781f5cc19f893acd904815a1883754785d024c","tarball":"https://registry.npmjs.org/@andrewbradt/lotide/-/lotide-1.0.0.tgz","fileCount":33,"unpackedSize":16951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCs6GCRA9TVsSAnZWagAAPLEP/3PPRlshY+UrF9J/0gfh\n2XztKCCL8paDXQMle4TVxzhdhP9i7QKVxuHK0n+W6+SBIZkBSHV2n4r+ANkE\n7EMwLsYPXphmaxmAqUKKnsO+5MHxMUk7U5ohMmTpJ6qJ4nRXMPXjYdMtAXSa\nhrqU+Bk1u2jgMKJSyQryeX++a7FxZOXjQO5ZumcdTC4ljDlm3WNLUpoRiINs\nd9obUmrsT0TAWeSACvcLlbOr/7r3Ur4uTwIf0Ak2OrKB+s3+m4oC7As25ndX\nAqxPWAN2MTOlQ0/ui9ubwNoereFjc5tHDM7/9IP35RoikOaKTnPxyv5yHTA5\nLeQHTQrHCs6PPes3e94Vvs6JIvFBB6RlieD8qvGRMQai4tflwE8A1xEshbv4\nioAglD9o8b9fS81SpNSs/78GIxPfOS17mftUVSAxaGxB/W40rSTZ++ciJtHF\nu+5Vvq5+JsJPOTm+JjtExdFXY+N+10nJ9oHvxrmmu3oaaPd/A29fE6IpW/bW\narI88lo1nBriYj/Xp4XC+hhLOzqbjRfAXU3yt4QLZrrGoh/1wOLBLOr/aGNm\n0vrRoA50Tf+mHZEm66sCcHI/e/lifLMsgajp17qcbf6OF6znibOAslfyHinv\nMFFYPLC1WuC6UTs6P6gZ69YwzCNVpscQJv1HWGJ5l6zSY6H04up3ueZ5FajU\nCZ5d\r\n=PhSk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCi1UNL/8oqQ0Av+S3VOKupbfp3TTyiZ60io5AKw3VvpAIhAKCVwW3YwGpwBaQFvt1e7zPVc/YFtJ8363iIFNACUPly"}]},"_npmUser":{"name":"andrewbradt","email":"andrewjbradt@gmail.com"},"maintainers":[{"name":"andrewbradt","email":"andrewjbradt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lotide_1.0.0_1644875398570_0.7339985192887897"},"_hasShrinkwrap":false},"1.0.1":{"name":"@andrewbradt/lotide","version":"1.0.1","description":"A mini clone of the Lodash library.","main":"assertArraysEqual.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/andrew-bradt/lotide.git"},"keywords":[],"author":{"name":"Andrew Bradt"},"license":"ISC","bugs":{"url":"https://github.com/andrew-bradt/lotide/issues"},"homepage":"https://github.com/andrew-bradt/lotide#readme","devDependencies":{"chai":"^4.3.6","mocha":"^9.2.0"},"gitHead":"030c097dbdab404a54b49b3ec23626dffcb9e9af","_id":"@andrewbradt/lotide@1.0.1","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-3/lq0jygBakvOGFE5rFHRqQR8G1uzxniU56RrwZgBn5fGooF9dTh9gl7vPIcvfbhrN9WEJxLIFxn4BL2oalJTQ==","shasum":"6e7a0a976d68654095fe4548a3de6e3b523789e9","tarball":"https://registry.npmjs.org/@andrewbradt/lotide/-/lotide-1.0.1.tgz","fileCount":34,"unpackedSize":18241,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiDA1ACRA9TVsSAnZWagAAqZIP/2bHo8Wl7bD1WnnWjjvd\n9kkRqjXKAKCfmH1jsxMZPTnUNWULBzWXc2UVfc6/MyPw9H7j+9gvN4EZmoZr\nuaQwKCEl5Ol4E+/YQ2y0LBD2loqL468QVwRl5jY5L3D0FuyIs2pp+/Fwvfzx\n0+ZAplppV72Js3PTuggPnPyN/IYSVFYbXgSglzFGyMUl5T0nSoHwM0+KQ/xI\n+JPnGGfU7kufAKslau9DkuJCp8m5kyY+eSdgUTmIi8AC7GF5uJz0ehHZ4lJ6\npVARNKYHvsXfBWGzoLF2XvTCbJL590xkQ1DjmyEZGCwjqYCdnJ0zn/P8VqXZ\nyLGRye5KWj34YddPHbQ491UPpRCZKsedu4i4ejLMVR/3vOdeLcSE/+7NKlDO\nriENbx7Ytmqdu9vZmH9tXq+Hlc1d/OGMcxOquaOd8pfr9JmfLGdryPrq+zmJ\nv0A4NmRgKliQgAxv8oivx5PdlPzKhRKtHiR/Q8oSPItJcJlOGuupigOl5oIB\nDikIFWHgRx8lQRr6x35Q9SSNlV5pKXuDNaGgEr1Jy3q6n8Q+IkIkLKtmJOoH\ndb3UdHiM+WoVmJqXTLVKLbpM8NDeRE+V7Frl3FEwfUyiqmlGu6I06dvhuiil\nQigV7K4/zHXgr0BX2amHU68gHbMv1aSCaukMdP5wA7xOpTInKourZXSMygAB\nC0wu\r\n=mvXO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBGqSZg60nMIbJ+8u9tzml8mRwgzGXbC/eOqtITkHPydAiEAjLhQ9FjH8LzpUfsGYhyQQ2OPs0V125w5Ip3do8rXkH4="}]},"_npmUser":{"name":"andrewbradt","email":"andrewjbradt@gmail.com"},"maintainers":[{"name":"andrewbradt","email":"andrewjbradt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lotide_1.0.1_1644956992028_0.5312119970140126"},"_hasShrinkwrap":false}},"time":{"created":"2022-02-14T21:49:58.519Z","1.0.0":"2022-02-14T21:49:58.724Z","modified":"2022-04-04T14:01:19.672Z","1.0.1":"2022-02-15T20:29:52.169Z"},"maintainers":[{"name":"andrewbradt","email":"andrewjbradt@gmail.com"}],"description":"A mini clone of the Lodash library.","homepage":"https://github.com/andrew-bradt/lotide#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/andrew-bradt/lotide.git"},"author":{"name":"Andrew Bradt"},"bugs":{"url":"https://github.com/andrew-bradt/lotide/issues"},"license":"ISC","readme":"# Lotide\n\nA mini clone of the [Lodash](https://lodash.com) library.\n\n## Purpose\n\n**_BEWARE:_ This library was published for learning purposes. It is _not_ intended for use in production-grade software.**\n\nThis project was created and published by me as part of my learnings at Lighthouse Labs. \n\n## Usage\n\n**Install it:**\n\n`npm install @andrewbradt/lotide`\n\n**Require it:**\n\n`const _ = require('@andrewbradt/lotide');`\n\n**Call it:**\n\n`const results = _.tail([1, 2, 3]) // => [2, 3]`\n\n## Documentation\n\nThe following functions are currently implemented:\n\n* `countLetters(string)`: Converts the string argument to lowercase and returns an object containing key/value pairs of unique occurring characters and number of occurrences.\n* `head(array)`: Returns the first element of an array. \n* `middle(array)`: Returns a new array containing the middle element(s).  If the array contains an even number of elements, two elements are returned.\n* `tail(array)`: Returns a new array without the first element of the array passed as an argument.\n* `countOnly(allItems, itemsToCount)` : Returns a new object with properties for each item in the array ```allItems``` and corresponding property with a truthy value in ```itemsToCount```. The value of each property will be the number of occurrences a given key appears in ```allItems```.\n* `eqArrays(array1, array2)` : Compares two one-dimensional arrays for strict equality and returns a boolean value.\n* `eqObjects(object1, object2)` : Recursively compares two objects for strict equality and returns a boolean value. Nested array comparison TBD. \n* `findKey(object, callback)` : Iterates over the object providing a property's value as the argument to the provided callback. Returns the key of the first value which caused the callback to return a truthy value. \n* `findKeyByValue(object, matchingVal)` : Iterates over the provided object and returns the first key whose value strictly matches ```matchingVal```. \n* `flatten(array)` : Creates a one-dimensional copy of the input array.  Currently supports two-dimensional arrays.\n* `letterPositions(string)` : Converts the ```string``` argument to lowercase and returns an object containing key/value pairs of unique occurring characters and an array of indices at which they occur.\n*  `map(array, callback)` : Iterates over the array and uses the current element as an argument to the provided callback function.  Returns a new array where each element is the return value of the callback. \n* `takeUntil(array, callback)` : Iterates over the array invoking the callback for each element in the uppermost level of the array until the callback function returns a truthy value.  When the callback returns a falsey value, the current element is pushed into a new array.  Returns a subset of the array passed into the function. \n* `without(source, itemsToRemove)` : Returns a new array which contains elements from the ```source``` array which do not appear in the ```itemsToRemove``` array.  Currently supports one or two-dimensional arrays.","readmeFilename":"README.md"}