{"_id":"@aceflanker/lotide","_rev":"1-1d2ca6576e6aaa33fa5ece31d417634a","name":"@aceflanker/lotide","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@aceflanker/lotide","version":"1.0.0","description":"A mini custom lodash library for practice purposes","main":"assertArraysEqual.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/AceFlanker/lotide.git"},"author":{"name":"Yuan Daniel Li"},"license":"ISC","bugs":{"url":"https://github.com/AceFlanker/lotide/issues"},"homepage":"https://github.com/AceFlanker/lotide#readme","devDependencies":{"chai":"^4.3.4","mocha":"^9.1.0"},"gitHead":"4cb63017cf789248523815c763f9e35ecc9b1d55","_id":"@aceflanker/lotide@1.0.0","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-1eOvg/UgcRA6BMX8O2pUwxXx8CFvaIgu3TJxtNpOWkSPyv5RQUvLJaMrenLwQHLO2S0Cc4lyBBAgl2eSfYvdrA==","shasum":"da824085b376ec1d8cb6af153f028757d488c561","tarball":"https://registry.npmjs.org/@aceflanker/lotide/-/lotide-1.0.0.tgz","fileCount":27,"unpackedSize":27875,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJaFaCRA9TVsSAnZWagAA28EP/0oSGwKVfBJHh6DJ7GVe\nAqFrd02fjioX+SqfyM5zCCMeqlRKnHrpCU1txtdeVKpEFZ7CKx4JOYZe5Fgy\np7E/fxKGJg+0SpP13bScbDc1jIklK9kcNEqhItMOOVBkvifLFPeDrGnuwwm6\nv2WA49fPZ5i7QuNSfWkfn3/937w632Toj2XwBMAfz5sU1EkJBjiY+OSU/tV3\nB1Ox5sIRoz+QgeGeWlC+k2hM8M7FFpAyaDa1gi6dvPbMBHBaROqp/hChstrd\nleghWM1O57z7+i3SJDpPTRUEO85cbPT+VVzOL4Zw3MWad/E87mxep55kbWKv\nJYqVmIx5VcXqPSWYDRf554sX/4ND8KUjCuf39g7ZUKzvg/oiOXe10t3JOgWJ\nT8LaQvjzBxYBb7dWys6avreO1O5N1ZruR8xLBKicK3V0IeeTgQnTGvUfbTVu\n5fUe1IjAEXL4Zx+nwKlq67byFAIcCPayiWj1P42t/xaKFKvJQxNv+hQ1roSl\nQNigVX+PA/k+U+2G+YftIlu/+Ja4LT0gZ2F02/Zbaf1s4exvU+iLnG2DKOKO\nO9puuCjjLroVkfNtdK9b2fHzQHm9Lcth8zHQwp8uxfVvvDoA5OKoUXQcfGCQ\nBnfojAXOgHu+fJOqYsXg8VTj7lFEyTqpuqVoTXPQgG1SGcVuRc8yASRnrv77\nJxnl\r\n=P/NX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJAkQZZRMsRmIOgMeJeXcNugjObvISng2zNC25GjTHtAIgYGUx4766eW2DLQSGhNrQz3HoWIMRxQYBSFQ3MXoe77E="}]},"_npmUser":{"name":"aceflanker","email":"dandanydaniel@yahoo.com"},"maintainers":[{"name":"aceflanker","email":"dandanydaniel@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lotide_1.0.0_1629856090361_0.8404056239230793"},"_hasShrinkwrap":false}},"time":{"created":"2021-08-25T01:48:10.285Z","1.0.0":"2021-08-25T01:48:10.506Z","modified":"2022-04-04T11:10:24.538Z"},"maintainers":[{"name":"aceflanker","email":"dandanydaniel@yahoo.com"}],"description":"A mini custom lodash library for practice purposes","homepage":"https://github.com/AceFlanker/lotide#readme","repository":{"type":"git","url":"git+https://github.com/AceFlanker/lotide.git"},"author":{"name":"Yuan Daniel Li"},"bugs":{"url":"https://github.com/AceFlanker/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 @aceflanker/lotide`\n\n**Require it:**\n\n`const _ = require('@aceflanker/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* `eqArrays(array1, array2)`: Returns true for two identical arrays, false otherwise.\n* `eqObjects(object1, object2)`: Returns true for two identical objects, false otherwise.\n* `flatten(array1)`: Returns a new array with elements of children arrays (one level deep) expanded into the outer array in addition to all other elements of non-objects in the outer array.\n* `without(source, unwantedElements)`: Returns a new array from an argument array with elements removed per the other argument array provided.\n* `head(array1)`: Returns a new array with the element at index 0 of the argument array.\n* `tail(array1)`: Returns a new array with all other elements than the one at index 0 in the argument array.\n* `middle(array1)`: Returns a new array with the element or elements at the halway index or indices in an array of an odd or of an even number of elements, respectively.\n* `countOnly(array1, elementsToCount)`: Returns an object with keys representing the elements needed to account for and values representing their number of occurrences in an array.\n* `countLetters(string1))`: Returns an object with keys representing the characters and values representing their number of occurrences in a string.\n* `letterPositions(string1)`: Returns an object with keys representing the characters and values, as  arrays of numbers representing their indices in a string.\n* `findKeyByValue(object1, wantedProperty)`: Return true a key in an object, if the key contains the  value specified in the corresponding argument, false otherwise.\n* `findKey(object1, callBackFunction)`: Returns the first key whose value matches that specified in the callback function.\n* `map(array1, callBackFunction)`: Returns a new array with results given by a function called back on the arugment array.\n* `takeUntil(array1, callBackFunction)`: Returns a portion of an array as new, starting from the first element to a latter one as specified by the callback function.","readmeFilename":"README.md"}