{"_id":"@aarijanwer/lotide","_rev":"1-2945d6ae0c2b73c1cc1ff8c0c1260c35","name":"@aarijanwer/lotide","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@aarijanwer/lotide","version":"1.0.0","description":"A mini clone of the [Lodash](https://lodash.com) library","main":"assertEqual.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/aarij-anwer/lotide.git"},"author":{"name":"Aarij Anwer","email":"aarij.anwer@gmail.com"},"license":"ISC","bugs":{"url":"https://github.com/aarij-anwer/lotide/issues"},"homepage":"https://github.com/aarij-anwer/lotide#readme","devDependencies":{"chai":"^4.3.7","mocha":"^9.2.2"},"gitHead":"d1dd6ecfbc6e7d100405a90d4c2bd7a0a6079f0a","_id":"@aarijanwer/lotide@1.0.0","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-JAUsIdJXsyQSlE5VbkQ2tXoZ/Wcj25zwPtvHj42cE/ElL5bofVDhGoRFYqt8cv/4QzLp9aoUlk4zUalF2oApgA==","shasum":"52ef488866dc839139f654243d13d689f476c281","tarball":"https://registry.npmjs.org/@aarijanwer/lotide/-/lotide-1.0.0.tgz","fileCount":26,"unpackedSize":21861,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHap5lcTk0YVSNpnTKxSxlMEUivaTWfByPi8OzfgxE/wAiB/5MokdGmbmgVV/EbVWyuUcKQsLyfzQU8bgQvBIEQs9A=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjcDSuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpx5Q//fi5JDtAUKEztcXJq1xDJXXMauSKijq/zoFkKaGo8M6RC5BzT\r\n6LzAYIgs16xJKwELK+WA/VY4ezD80DMvNJ3Tw1SzOZFxtzoUFS4viP0S+4NR\r\nOROnuHn6Vrsybl9SUpUHJMaxR8PB5eHErm5Jl11PsAK1tRrH6un8g0swRGl+\r\nmuauw/D2mXQtJmO3tajIz2fxvY7hI4uIigzVMZ8gSPAEkjkDVqgKfWGBaHDZ\r\nCNF+tvAtn2jZV6pR8mcNXJDAPloWXs+m0fLRHwga8+D2peFRq0gG6Nm+3LnU\r\n2Cgg32i2yr02z/+ZinCSdBHjOC4LwdLywrV5I48TdDZIOIjsrwUkRtKPRacZ\r\nxs+D+CbUXzlJ2ob4mepNGshwNk412Q0+CG0/FKDApgDwI9fF1tAyPlsncVV5\r\nsDXpe+U/BWyNjo5o9SvDPUqfQtRQwwI9IzJIuIeOyOQ87/Trhr50vJRr1+pw\r\nEniBEr6ncqTCLV1ftqeMDN4wyboe1NH/pAvZ+7og9VGuHlmrSe2M9Dv0Y78j\r\nH2sHj3OQANv8eXah7VkRCy1mTHG37Lk88bJuN+0UCv/vfUvWPR0HsI0GIqrw\r\nzYX8vTJEMqoKp/bCa88xx+t0cx8zPEUTuN7TpJtWHw/ln9gZqqiVWsXWP1VI\r\n3yrjgLOaUN5g1AgoDNOQGpHTo2uxVvrQBSU=\r\n=r56g\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"aarijanwer","email":"aarij.anwer@gmail.com"},"maintainers":[{"name":"aarijanwer","email":"aarij.anwer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lotide_1.0.0_1668297902529_0.5051243651482382"},"_hasShrinkwrap":false},"1.0.1":{"name":"@aarijanwer/lotide","version":"1.0.1","description":"A mini clone of the [Lodash](https://lodash.com) library","main":"index.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/aarij-anwer/lotide.git"},"author":{"name":"Aarij Anwer","email":"aarij.anwer@gmail.com"},"license":"ISC","bugs":{"url":"https://github.com/aarij-anwer/lotide/issues"},"homepage":"https://github.com/aarij-anwer/lotide#readme","devDependencies":{"chai":"^4.3.7","mocha":"^9.2.2"},"gitHead":"dee53373275f1aeaf2c3a415f7a699d42c3c98bd","_id":"@aarijanwer/lotide@1.0.1","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-GJIUuSCnY8YJsRpj4uot+kfhIFT5znTELfsN6QYDof8B/NQ629wYOJcalydBrT3orqyGg56mNxaqKNYqf30nkw==","shasum":"92cbebe1c4feb1a18049eb8ce32fd981e781b61e","tarball":"https://registry.npmjs.org/@aarijanwer/lotide/-/lotide-1.0.1.tgz","fileCount":31,"unpackedSize":21436,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDOiiEtN0jw9V3TrY1IBWncXNPxTgW63zbFXbyWPkJUNAiEAtwBeOxYNPREF1lvV7H9p+OBafgB+RCIbKC22JYmKrYI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjcHdOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoX0A/9EiRTzSl7o2ISwrfLT2FpAVL+FrpfpJgJ0WGtmjyvyTrc2uPR\r\n6/of+fhJW+fSkKzl8sM1EpZrce0dXdZiUvvExfurWayPwz52HhFAWr3S8YpT\r\nIJJVV/9W2cnPx4FkY0nz5OE6Aus02f5tCWW0Oufrd1KCwa/M5vbByrwiRpiH\r\nObCoFceNm2xE6uMGtv/sALI5Ammd4wH/aU4WHADrdnAHeXbuKPDlooJyvL+l\r\nebow1VwKfRKm+Np8RRxPI5CNvf6dpRdNB6b8gxroU4+cxUswiJ+fpwPOibmj\r\nLTtR7as1PlGED+7MrjP/KzcIZUFeqXKucWyh3Cavy5Dc4N1I0HaMym4U5xqX\r\nevlN0R3xxHAYcBbtFEYSUyq1EQtd8/3DCGgkZFRWJ3SYMDz9Sd8C1jSR5FrO\r\nQVdiW1KMZbLZV2q0PrG4NmdPom9hMMdN+mzkeFAv4u/q58K5Lb7kHxof4aFK\r\nPimbWJtsNYA7QOM3Z48dnZoAPMtouxH+dfeNqEhQPmYmbspoTqmn+IAj5BW6\r\nx28M3wHOLOCsJDV8PFg25ObLjgM3sI4CetP0vFK31AVeAe/t8CVESd4FXtGQ\r\nbG6PhvOOSZyzFOQy7BW3+wJQCaAPg1JoHcCowd0XrhZkuf2ktGv6GR+Uyjpq\r\nRxDoxANnavhajPZxiUHt28S56i3hq/PRn7I=\r\n=jwF6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"aarijanwer","email":"aarij.anwer@gmail.com"},"maintainers":[{"name":"aarijanwer","email":"aarij.anwer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lotide_1.0.1_1668314958502_0.6833663993669252"},"_hasShrinkwrap":false}},"time":{"created":"2022-11-13T00:05:02.475Z","1.0.0":"2022-11-13T00:05:02.851Z","modified":"2022-11-13T04:49:18.728Z","1.0.1":"2022-11-13T04:49:18.659Z"},"maintainers":[{"name":"aarijanwer","email":"aarij.anwer@gmail.com"}],"description":"A mini clone of the [Lodash](https://lodash.com) library","homepage":"https://github.com/aarij-anwer/lotide#readme","repository":{"type":"git","url":"git+https://github.com/aarij-anwer/lotide.git"},"author":{"name":"Aarij Anwer","email":"aarij.anwer@gmail.com"},"bugs":{"url":"https://github.com/aarij-anwer/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 @aarijanwer/lotide`\n\n**Require it:**\n\n`const _ = require('@aarijanwer/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* `head(array)`: returns `array[0]` as the head\n* `tail(array)`: returns all itmes after the head of `array` as an array\n* `middle(array)`: returns the middle of `array` (one item if odd, two items if even, none if `array.length <=2`)\n* `assertArraysEqual(actual, expected)`: assert function checking if arrays `actual` === `expected`, doesn't return only prints to console.log\n* `assertEqual(actual, expected)`: assert function checking if primitive data types `actual` === `expected`, doesn't return only prints to console.log\n* `assertObjectsEqual(actual, expected)`: assert function checking if objects `actual` === `expected`, doesn't return only prints to console.log\n* `countLetters(phrase)`: return an object that enumerates each letter of the string `phrase`\n* `countOnly(allItems, itemsToCount)`: given an array `allItems` and an object `itemsToCount`, it will return an object containing counts of everything that the input object listed.\n* `eqArrays(array1, array2)`: returns true if `array1` and `array2` have the exact same contents and same length\n* `eqObjects(object1, object2)`: returns true if `object1` and `object2` have the exact same key-value pairs\n* `findKey(object, callback)`: scans `object` and returns the first key for which `callback` returns a truthy value. If no key is found, returns `undefined`.\n* `findKeyByValue((obj, value)`: searches for a key on an object where its value matches a given value\n* `flatten(array)`: takes `array` with other arrays inside and returns a single-level array\n* `letterPositions(sentence)`: returns all the indices (zero-based positions) in the string where each character is found\n* `map(array, callback)`: returns a new array based on the results of the callback function\n* `takeUntil(array, callback)`: returns a slice of the array with elements taken from the beginning\n* `without(array1, array2)`: returns a subset `array1`, removing from it the elements from `array2`.\n","readmeFilename":"README.md"}