{"_id":"@ahmeds.gaafer/js-data-structures","_rev":"7-ae8f33580249a7727460123b384cf3c2","name":"@ahmeds.gaafer/js-data-structures","dist-tags":{"latest":"1.2.1"},"versions":{"1.0.0":{"name":"@ahmeds.gaafer/js-data-structures","version":"1.0.0","description":"a light weight libirary for JS Data structures","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/ahmedgaafer/JS-Data-Structures.git"},"author":{"name":"AhmedS.Gaafer"},"license":"MIT","bugs":{"url":"https://github.com/ahmedgaafer/JS-Data-Structures/issues"},"homepage":"https://github.com/ahmedgaafer/JS-Data-Structures#readme","gitHead":"d2c78bcf1db66c6e7aacd7607dffa132eb8ccf26","_id":"@ahmeds.gaafer/js-data-structures@1.0.0","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-klW2GcaO4U+IBLYU4o/y1LoMmGsoWMczAcuYTOruuv8pUgczAuxBZkjZH7hhv12jUponu/FUR/HmUtxUcREZxQ==","shasum":"ed5f243944858bf9d58222413a7ab2f20e9434c0","tarball":"https://registry.npmjs.org/@ahmeds.gaafer/js-data-structures/-/js-data-structures-1.0.0.tgz","fileCount":19,"unpackedSize":24573,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjfiOCRA9TVsSAnZWagAA1mgP/jH/tGHyE3bZ0CXN7OdI\n897+2wkZPRQW2W6a+Ld+5F7SdPDQftcBDNJ/rbaS73FOCJxP1tH2rv0vhRNx\nV3LEk9VV2bIQbPltLYHvJ8O0nxorQStrEQfo3hYX+QZ3gRCmlL/IBEqNO47y\n65O7cTI9K7KYfhUBpiVM3vvze2K8k1zYycWAzqdFTTxDmuzdJa6VX962Ytqg\nooD2Y2LOx14y8SZpDVCo55i+Z+XX4yQQBXbapAI/rNF30cwViRAW99i5cmE4\nnfNr8LIYq4e2uWJqld9mz9g8cKJmBpbnhnYOpRolABRfZXqyLO0o4NTS1oHA\nkof7ExEmw8FS1FEwSkEwxiWv6GHpQIrt3CNs4r2GcrPsS+uWEQgwE+Cb9eIE\nGpHJ7XzeYY5f5mPu4Z/9ecwh9Iro6CE3e2JPPf3Gz1axza478dYcPeV6xPIE\n5JXwRwxOvJtv9ptcWR0gtcRrY4M882KCcioBmDZgaqE7B8WnTb1QcY+QM+FN\nc3YVHXWhJYJcMA3Z/bediCve7fEOnnw4iACq/oAJTXuxJzraf8TsdPzJPQMJ\nIv2o/f9QZxM0YismQgPeJCtQuDcXDpwhHOfQHynvT0f5s+4AjWsN0Ai4Ry6H\nuUNgnwGMJxAWiSIrWA1AUh7DjGAdRJePfiMXtvtj0MFRzNJPpR+szxlxw5Bz\nxJ9B\r\n=rhrb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcvlii43yz/lp9P3XUeahrH3NLtpHu0Nl1QmhYOr8DlgIgLiqOkuaFZOIh7M5CGirXlwUI+sG0jcDGZvGwrlSJG70="}]},"maintainers":[{"name":"ahmedgaafer","email":"ahmeds.gaafer@gmail.com"}],"_npmUser":{"name":"ahmedgaafer","email":"ahmeds.gaafer@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-data-structures_1.0.0_1603139725859_0.9464536636115948"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.1":{"name":"@ahmeds.gaafer/js-data-structures","version":"1.0.1","description":"a light weight libirary for JS Data structures","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/ahmedgaafer/JS-Data-Structures.git"},"author":{"name":"AhmedS.Gaafer"},"license":"MIT","bugs":{"url":"https://github.com/ahmedgaafer/JS-Data-Structures/issues"},"homepage":"https://github.com/ahmedgaafer/JS-Data-Structures#readme","gitHead":"a890ff67f4a67875a07e49b8f56a21cfd0ce37c0","_id":"@ahmeds.gaafer/js-data-structures@1.0.1","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-fsgiRUMr3JBDi1lWQ5emi9dkDeJe5xE8gO5VVRwqnTdSU6RxLITj/WVNIu+kJvi6hTiA4ArSLQ7/6tQLnB6IRw==","shasum":"bf1376b50a17f3ceb7b0b9a6aefc7bf8aa434f0f","tarball":"https://registry.npmjs.org/@ahmeds.gaafer/js-data-structures/-/js-data-structures-1.0.1.tgz","fileCount":20,"unpackedSize":25921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjf9HCRA9TVsSAnZWagAAfnkP/jvzvcY1DeLstzC7nfsQ\nV4MUXENcHnvyDD1QEZersTGkR40rvs7aqwArnGwqRG2/G2UVwaGZdstQSMG/\ngGfTmHMNkBd2Y58SdnAZbhnKSJYRTAOUuEuv14jIn4kt/lh/2LuWzqDK8uoW\n8AhB9GsNaTK6VxMYogVA/qhdzGJEVCI1WKG4GuhP+unfx9v9NgYDW/Lm9/lR\n21USH3Rml2+GO5hHLZfmYr9vKdF5HA42H9WPOzo1sTxaDDx4P2UUE3jjy5ID\nTFQftMpVskx+RrETYxrl6hIe6x6EgoMdwrgMjfMeSrEDKF67NRwvgoYD7kXJ\ncvcXbxE6ymvcQpvUivdSasZp4AIIuOgz/diy6RjJRBKNJtf3rNx7p+vG6GsK\nDh/OAijqSxXU4o4jaN+5BtmvQVl/hlqGEhdi3YIuYINt5LNIJByYIJSiz4PR\npimBs8SSQVOjUNSVmgxGx2qEp41yYRLFrPulruUAMTg1HWyWhgVzZMLG67vf\n4GxBY2cqIl6brRmTEyh6C1BKKMcZqDsuipnIIqf9sU+GuqoTCE0h3aRmOGlz\nmp6FZ1siXx8c/RSS87LQ9ELJPPdTquqa0SZZBVAo4kTLxJihVBcDtj0ud57h\nAcKYeLz54yBJ+5zKWlmV0yiZpFkOYrTWJM3VEgzQmAtouE//QuWgdg7SapfH\nyYXX\r\n=aYvT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiwHwRitzxV+wT6eHVsAvXDVRdIo6Z4VsJYa/N6dJDnwIhALPW+GKX9geZ9y9M0CwH68Rr5R5MIPk7M3K1k1g4OU90"}]},"maintainers":[{"name":"ahmedgaafer","email":"ahmeds.gaafer@gmail.com"}],"_npmUser":{"name":"ahmedgaafer","email":"ahmeds.gaafer@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-data-structures_1.0.1_1603141446810_0.17773837261656888"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.2":{"name":"@ahmeds.gaafer/js-data-structures","version":"1.0.2","description":"a light weight libirary for JS Data structures","main":"index.js","dependencies":{},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/ahmedgaafer/JS-Data-Structures.git"},"author":{"name":"AhmedS.Gaafer"},"license":"MIT","bugs":{"url":"https://github.com/ahmedgaafer/JS-Data-Structures/issues"},"homepage":"https://github.com/ahmedgaafer/JS-Data-Structures#readme","gitHead":"421db4e11869bca9ed325384601a50f11f98b4af","_id":"@ahmeds.gaafer/js-data-structures@1.0.2","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-zQGeJdNsowMxQOQI6HeB3DQe2+f22c8ov812ZS2tCo3EErxhnVOQiIpm4ywbMpzXGH0LPrA9/nqCvvM6jnA4TQ==","shasum":"9257ae8ee9e274847390d2ce4ac6149f59c745a3","tarball":"https://registry.npmjs.org/@ahmeds.gaafer/js-data-structures/-/js-data-structures-1.0.2.tgz","fileCount":20,"unpackedSize":26876,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjgmKCRA9TVsSAnZWagAAOfwP/15yyHuYMBWF8n85Cr6A\nebkAqwuZpBq1F2gjQ/TnExm3jiESDMh1wH7rWzwsjjLzrQlgilBHJMYzK6Yr\njSZ1nXViAHtffmMZEOYw9hAESX6ACTQ2pQ2VQjDMzkiwN1aTTsSdcjOZNiar\nO3RUg54ebhX9oTPpvUJVTE9KRtNNca6XOQYR8YkZhtP6NPHc3enDwLeO4Ffk\nbYqw1BVgEM4J+Bb9n6tmYddhzx8IEZwPNGULKtruf8zBoTMic068NvS89ktG\noGXX9xKkhZL53wR08d4DGVvFzwgg1mmG4fq6bT2GG+m1EiYTeCm4GYeil75J\nyqxbp+a+DF2yv0D0jp02/UyT3+BXoOknQsay9dCd3kXmyyBpvNyBUoKS8eSY\nAZy6Cwzb2bhXbihDfKaKVrzwNQfqb1QX3/cqK8/DLnIZQpea93eWEv7nq8+J\nRV+e5rMna1g4+mwJh5lbWlZhtbwSXyWPYOTKdnEdU1d3TOPvRD2Wioh8CIvS\nbHfSAf39V1r18ajm96OsWtLTJuuOeW1EyJmqEtvjbq912DbABXDJFgGuy9S3\nkNRpawWHSyHIfvrqZeEQYRC71ZNwSO+gGfuZ/ZVWKTZqlEtVxnmDY8MDAtXS\nqskaefJnybPsfzMcmEGZOJliDE1EmIdT2MDtEslOwodcNApJZKNIt9OCzXfU\nbJ1o\r\n=Remd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDn2T8J7G2OZmlMjoWzcMh7viYVU1a07bgbzdnjqRGb0gIhAKWVPJLT5tNpWmYOOneH5qdaOv66OtHUPo4kmkt17b7q"}]},"maintainers":[{"name":"ahmedgaafer","email":"ahmeds.gaafer@gmail.com"}],"_npmUser":{"name":"ahmedgaafer","email":"ahmeds.gaafer@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-data-structures_1.0.2_1603144074482_0.36574812365137377"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.1.0":{"name":"@ahmeds.gaafer/js-data-structures","version":"1.1.0","description":"a light weight libirary for JS Data structures","main":"index.js","dependencies":{},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/ahmedgaafer/JS-Data-Structures.git"},"author":{"name":"AhmedS.Gaafer"},"license":"MIT","bugs":{"url":"https://github.com/ahmedgaafer/JS-Data-Structures/issues"},"homepage":"https://github.com/ahmedgaafer/JS-Data-Structures#readme","gitHead":"fdef34f19cb9a132708d12a72df2e688fc5317dd","_id":"@ahmeds.gaafer/js-data-structures@1.1.0","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-20xEqDiHrug+jhH0YdlYS260wmw3RxtU1y4/EKpAhg+lcH/nK8sWQGJgmU/c0dTP+wF3CEqODYYwQB3m/z4aOQ==","shasum":"7f7a44e5d8019bf4cba30d2e97d076352ebdb972","tarball":"https://registry.npmjs.org/@ahmeds.gaafer/js-data-structures/-/js-data-structures-1.1.0.tgz","fileCount":20,"unpackedSize":31189,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjjKwCRA9TVsSAnZWagAAeXEP/ik66s0vAcaGV5H9bReL\nwBOF3g0kfgLmPaODQQC2/Nj1FL7PVn0x0DAXPoxj1T/CcR77XFF2q32VeU8O\ni5SO8dAv7YSe56oB0qrh/QZOQasasdvOfNKeVU+yqIK7lamSGHZlOV5RltmF\nGPXOq0I+JwBrNTuEFZNukeAimvQ5wBDmv/xZBBE52ZoGdwzMyZ1/65ZrxUex\nn2e+CyjJSm0Am3pKPuU5Cdx+tG7enm152bMr4ih3xU1Js8ICc6asHTbuB2GJ\nyAPfndFj3KXKDnxccdrFN61ucA3KAx53VAMMeh8CDjxh39HfEi4XhgcfQukZ\njvJ6WzKvD87h+W6ZoyJfuJ9O3I2dCIRczP/6VVHUOpobkgwDAuRyWfELXTnn\nVi7rlXtGwkOxJG1a2NpVreiOzvgWNOZV46OOi4xE84tfa+hPUsxB3HBsKSMS\nm51k2BMr6/t9F3/AbAnk07ao9IPAQ0Vd+VobqwmOslMwapQ0gojbNdefBrhH\nThxeZX2CJDZV7CgO6x4RtBqUm6M4LkjNi3UHgjgtO2K8mIO6xTb592sV0yi6\ncLjzzmA3ms6ErhNhNeq6xzSehhSyPL3xiE3vfNwSJWERqGE2UaKVvpQ4atzL\np6nBislvMlWXqkrgMnVGoiS6yOSwvHu5PkogGaA91nx2IfvaLEN5CyzhOpEu\netHV\r\n=iPJZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTaQ52VuTxZdAeD8F/I/ZETIc9sR7+Fv0g5jrR5MA0bQIgXizooN02ShItsWKnSXzp/h8P4RLNlCmN1x+OIx+RzFc="}]},"maintainers":[{"name":"ahmedgaafer","email":"ahmeds.gaafer@gmail.com"}],"_npmUser":{"name":"ahmedgaafer","email":"ahmeds.gaafer@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-data-structures_1.1.0_1603154608171_0.5546318474211511"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.2.0":{"name":"@ahmeds.gaafer/js-data-structures","version":"1.2.0","description":"a light weight libirary for JS Data structures","main":"index.js","dependencies":{},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/ahmedgaafer/JS-Data-Structures.git"},"author":{"name":"AhmedS.Gaafer"},"license":"MIT","bugs":{"url":"https://github.com/ahmedgaafer/JS-Data-Structures/issues"},"homepage":"https://github.com/ahmedgaafer/JS-Data-Structures#readme","gitHead":"bf9bbd8b853a5a61e2b2240730057d0ebb47f5d3","_id":"@ahmeds.gaafer/js-data-structures@1.2.0","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-FSghrhDlg8Qh3g0C2rjXz9S6KJPjN8VTgcgv6TMsgGeXsIb8WuBaIuTjLGv1kqBbNr4+aFp3Fvc5DSrLb+QkwA==","shasum":"3de4539fab517368ac0d49b8bcfc582bcf47098c","tarball":"https://registry.npmjs.org/@ahmeds.gaafer/js-data-structures/-/js-data-structures-1.2.0.tgz","fileCount":22,"unpackedSize":36434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkeB1CRA9TVsSAnZWagAAvH8P/RO/yymixxVByBlB+Sty\n1RivxZyR26kel11wOm+lndgAhBGxBl8l2XyR7Jv+i9bBuJJXb3hhZXNA+++v\nHhEoT+PhVz5+5iK2M8+7hMJ7azIPSGJFPNGr4XK2D8UH1+uImzMy94Kcv3Q8\n6culasLcPkyghaCqyHPWwXqnIvbA19Oi94o8zuytdC6VCT0X86R2/xOUCLGD\nrGXU/sfJnHaOJ4cIOPh+GNf6dvZslB5jKEfuclbxvmhjH/7YRICYyCCkZ9ez\niyB+NXgvUjyc32NL6qOTqtfGnlsJlsIE7AxGq7s7xpJoPfd8kPti9C4Deni1\nZemBVNsNaL13vps/npKbJfiOrqrIoFcB/Jfd3BqUs2Ao6CR0bj812y2//esL\nf6x5T06LSPvSsCLNEs5HMet0N7DfTOjz2W2hXAfW5mPcVDgoji8pNY04d5gX\n8O0d56qTFDTyUJpML2cNLpJ/Tg+5otE90gYumtqze3QhSde4CQS7cmD+uZTC\nZ2uJ+f2uBHgKnEPavJAcy21a8vLpAHzGrE0hzG1Vmdv4FGViDRtzZ6Ve2bxj\njdMUlyzVFas4tNQC66Kk2ht34IxzR0DSevq62hHPhDQ/cVkiKLV1aJ6dh23p\nSgayPoYzzVtFuRwydRYcFxRjnkfAuVn0xsiWrA2RiUTEnD7+MZtrkb019wb3\neGo0\r\n=pKs1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDVETZnCpxM+wFIgSbPNAZY3YiqXiWmG3cXWU+srTfSPAiEAqsADp+u/tQttjhtRF4BqgYOcJNWbi4uJdUoidcNz/tQ="}]},"maintainers":[{"name":"ahmedgaafer","email":"ahmeds.gaafer@gmail.com"}],"_npmUser":{"name":"ahmedgaafer","email":"ahmeds.gaafer@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-data-structures_1.2.0_1603395701449_0.27742462884487273"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.2.1":{"name":"@ahmeds.gaafer/js-data-structures","version":"1.2.1","description":"a light weight libirary for JS Data structures","main":"index.js","dependencies":{},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/ahmedgaafer/JS-Data-Structures.git"},"author":{"name":"AhmedS.Gaafer"},"license":"MIT","bugs":{"url":"https://github.com/ahmedgaafer/JS-Data-Structures/issues"},"homepage":"https://github.com/ahmedgaafer/JS-Data-Structures#readme","gitHead":"6e3f6f704d8c18c00b0f6c96646fe86a0f35be34","_id":"@ahmeds.gaafer/js-data-structures@1.2.1","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-6s4uedTofTwdNa21zZ8685+TVctp7nMcqi4kRacalo8nC1ffeURF7g8ncKL0H2Qt5NhCxvjTgHTdwoR4Xk4NCw==","shasum":"39cf75fda8fc1fb7748c748d43023bf4e1bf0bb2","tarball":"https://registry.npmjs.org/@ahmeds.gaafer/js-data-structures/-/js-data-structures-1.2.1.tgz","fileCount":22,"unpackedSize":36457,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvjICCRA9TVsSAnZWagAAdv8P/13H+xfwbGPqSHJDbfhq\nO70soZkmQX7u6/xNMyAk9lYcf5JJBDIRAgTDz+2Kad08NRRnhP9XgRB+ItSK\ndyUk6kOjF04D2wjDJmeh2oI5z8HBRBZ1N6qn4V8i7Mq4yVceBBf9j9U34EAQ\niy0412KN/6wUhwdIaxcA00ie8e2sar+OYjkYeKrLgRmdSjPiWX/KlLBQT8Sk\nLPJ2dsZyLqP2lSYT4yXFdj/t+69aww5iZZmeRYN/aiCMAki9QkkKgVoDF2i5\nl6F/EmTQxyXOG3Cdv+rU+WkbH9voKwxJpmFoFfHXaCa8S5nc8XZQYW8TAq3u\nyENp/ZVOCWNPw805QshgAD/R142AhfhYTQdlHcDKZDP0JpocBKFa7ojX/U14\nPP9zRmQWdBLs71ksuqFC6t41Gk+c49/ej+NrCZbhaCCtTrU6AS0XFtFnW4MM\nqFtA4ZHCMAEkB1roZuaZptTWekFCABy2GUgsQYtzKoribOoqB9Kvt1Uf1rha\nz4ttfJcox90w5rg6V44CbiU8NgjTwdbHbVzRlw3FU47+ClRgXdRlrtZi0E3v\nuWD08Y2mIh+NcQXaKeFfSz5aCGBtsalvDFvchkqN/GVHrgo6j+4QZlbRtT2g\nYY+Il1THdgIaneB/YeRT//8AL72ru23sfcKNIhM3+rNXAWySP+5IFJQC5BDg\nwc/3\r\n=n7sY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAVmAKzYtxOjGFyk42NPuk5NO9FwzeGNXRqLG3ASB6B6AiBxyonmtVK+CFhwUXBi9JLniiaOHzWbx7yi7lydloDT+A=="}]},"_npmUser":{"name":"ahmedgaafer","email":"ahmeds.gaafer@gmail.com"},"directories":{},"maintainers":[{"name":"ahmedgaafer","email":"ahmeds.gaafer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-data-structures_1.2.1_1606300161848_0.7378463382807459"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2020-10-19T20:35:25.559Z","1.0.0":"2020-10-19T20:35:26.046Z","modified":"2022-11-08T22:37:17.171Z","1.0.1":"2020-10-19T21:04:06.936Z","1.0.2":"2020-10-19T21:47:54.648Z","1.1.0":"2020-10-20T00:43:28.326Z","1.2.0":"2020-10-22T19:41:41.675Z","1.2.1":"2020-11-25T10:29:22.070Z"},"maintainers":[{"name":"ahmedgaafer","email":"ahmeds.gaafer@gmail.com"}],"description":"a light weight libirary for JS Data structures","homepage":"https://github.com/ahmedgaafer/JS-Data-Structures#readme","repository":{"type":"git","url":"git+https://github.com/ahmedgaafer/JS-Data-Structures.git"},"author":{"name":"AhmedS.Gaafer"},"bugs":{"url":"https://github.com/ahmedgaafer/JS-Data-Structures/issues"},"license":"MIT","readme":"# JavaScript Data Structures\r\n<p align=\"\">\r\n  <a href=\"https://www.npmjs.com/package/@ahmeds.gaafer/js-data-structures\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@ahmeds.gaafer/js-data-structures\"></a>\r\n  <a href=\"https://www.npmjs.com/package/@ahmeds.gaafer/js-data-structures\" target=\"_blank\"><img src=\"https://img.shields.io/bundlephobia/min/@ahmeds.gaafer/js-data-structures\" ></a>\r\n  <a href=\"https://codeclimate.com/github/ahmedgaafer/JS-Data-Structures\"><img src=\"https://img.shields.io/codeclimate/maintainability-percentage/ahmedgaafer/JS-Data-Structures\"></a>\r\n  <a href=\"https://david-dm.org/ahmedgaafer/js-data-structures\" title=\"dependencies status\"><img src=\"https://david-dm.org/ahmedgaafer/js-data-structures/status.svg?style=flat-square\"/></a>\r\n  <a href=\"#\"> <img src=\"https://img.shields.io/badge/testing-false-red\"> </a>\r\n</p>  \r\n<p align=\"\">\r\n  <a href=\"https://discord.gg/TgVpvUN\" target=\"_blank\"><img src=\"https://img.shields.io/discord/712223278844084275?label=Discord&style=for-the-badge\"></a>\r\n</p>\r\n\r\n\r\nData Structures made by Vanilla JS.\r\n\r\n## Install\r\n\r\n```bash\r\n$ npm install @ahmeds.gaafer/js-data-structures --save\r\n```\r\n\r\n## Data Structure list:\r\n\r\n- [x] Singly Linked List\r\n- [x] Doubly Linked List\r\n- [x] Queue\r\n- [x] Stack\r\n- [x] Heap\r\n- [x] Graph\r\n\r\n## Usage\r\n\r\n### Singly Linked List:\r\n\r\n```JS\r\nconst { SinglyLinkedList } = require('@ahmeds.gaafer/js-data-structures');\r\n\r\n// The constructor can accept an array as an input and it will transform the array to the linked list\r\nconst arr = [1, 2, 3];\r\nconst list = new SinglyLinkedList(arr);\r\n\r\nlist.push(1); \r\n\r\nlist.view();\r\n\r\n// You can chain methods that does not return a value\r\n\r\nlist.popStart().pop().view(); // vaild\r\n\r\nlist.getHead().view(); // invalid\r\n\r\n```\r\nfunctions:\r\n\r\n- ***.insert(data, pos)*** => Insert data to certian position.\r\n- ***.pushStart(data)*** => Insert data at the head position.\r\n- ***.push(data)*** => Insert data at tail position.\r\n- ***.delete(pos)*** => Delete element at a certian position.\r\n- ***.pop()*** => Delete element from the end of the tail.\r\n- ***.popStart()*** => Delte element from the head.\r\n- ***.getHead()*** => Returns a copy of the head node.\r\n- ***.getTail()*** => Returns a copy of the tail node.\r\n- ***.view()*** => Prints a visual dispaly of the linked list.\r\n- ***.toArray()*** => Returns the linked list as an array\r\n\r\n\r\n### Doubly Linked List:\r\n\r\n```JS\r\nconst { DoublyLinkedList } = require('@ahmeds.gaafer/js-data-structures');\r\n\r\n// The constructor can accept an array as an input and it will transform the array to the linked list\r\nconst arr = [1, 2, 3];\r\nconst list = new DoublyLinkedList(arr);\r\n\r\nlist.push(1); \r\n\r\nlist.view();\r\n\r\n// You can chain methods that does not return a value\r\n\r\nlist.popStart().pop().view(); // vaild\r\n\r\nlist.getHead().view(); // invalid\r\n\r\n```\r\nfunctions:\r\n\r\n- ***.insert(data, pos)*** => Insert data to certian position.\r\n- ***.pushStart(data)*** => Insert data at the head position.\r\n- ***.push(data)*** => Insert data at tail position.\r\n- ***.delete(pos)*** => Delete element at a certian position.\r\n- ***.pop()*** => Delete element from the end of the tail.\r\n- ***.popStart()*** => Delte element from the head.\r\n- ***.getHead()*** => Returns a copy of the head node.\r\n- ***.getTail()*** => Returns a copy of the tail node.\r\n- ***.view()*** => Prints a visual dispaly of the linked list.\r\n- ***.toArray()*** => Returns the linked list as an array.\r\n\r\n### Queue:\r\n\r\n```JS\r\nconst { Queue } = require('@ahmeds.gaafer/js-data-structures');\r\n\r\n// The constructor can accept an array as an input and it will transform the array to the Queue\r\nconst arr = [1, 2, 3];\r\nconst queue = new Queue(arr);\r\n\r\nqueue.enqueue(5);\r\nqueue.deqeue();\r\n\r\n// You can chain methods that does not return a value\r\nqueue.enqueue(5).dequeue().view(); //vaild\r\n\r\nqueue.peak().view(); // invalid\r\n\r\n```\r\n\r\nfunctions:\r\n\r\n- ***.enqueue(data)*** => Add data to the end of the queue.\r\n- ***.dequeue()*** => Remove first element of the queue.\r\n- ***.peak()*** => Returns the first element in the queue.\r\n- ***.getSize()*** => Returns the size of the queue.\r\n- ***.view()*** => Prints a visual dispaly of the queue.\r\n\r\n### Stack:\r\n\r\n```JS\r\nconst { Stack } = require('@ahmeds.gaafer/js-data-structures');\r\n// The constructor can accept an array as an input and it will transform the array to the Heap\r\n\r\nconst arr = [1, 2, 3];\r\n\r\nconst stack = new Stack(arr);\r\n\r\nstack.push(1);\r\n\r\n\r\n// You can chain methods that does not return a value\r\nstack.push(1).push(2).pop() // vaild\r\nstack.peak().push(1); // invalid\r\n\r\n```\r\nfunctions:\r\n\r\n- ***.push(data)*** => Inserts data to top of stack.\r\n- ***.pop()*** => Removes the item on the top of the stack.\r\n- ***.peak()*** => Returns the item on the top of the stack.\r\n- ***.getSize()*** =>Returns the size of the stack;\r\n- ***.view()*** => Prints a visual display of the stack.\r\n\r\n\r\n### Heap:\r\n\r\n```JS\r\nconst { Heap } = require('@ahmeds.gaafer/js-data-structures');\r\n\r\n// The constructor can accept an array as an input and it will transform the array to the Heap\r\n\r\nconst arr = [1, 2, 3];\r\n\r\n//min heap\r\nconst minHeap = new Heap(arr);\r\n\r\n//max heap\r\nconst maxHeap = new Heap(arr, true);\r\n\r\n/// or \r\nconst maxHeap = new Heap([], true);\r\n\r\nmaxHeap.push(5);\r\n\r\n// You can chain methods that does not return a value\r\nminHeap.push(1).push(2) // vaild\r\nminHeap.peak().push(1); // invalid\r\n\r\n\r\n\r\n```\r\n\r\nfunctions:\r\n\r\n- ***.push(data)*** => Insert a data to the heap.\r\n- ***.pop()*** => Removes the root of the heap and fixes the the heap.\r\n- ***.peak()*** => Returns the value of the root of the heap.\r\n- ***.getSize()*** => Returns the size of the heap;\r\n- ***.view()*** => Prints the array of the heap;\r\n\r\n### Graph:\r\n\r\n```JS\r\nconst { Graph } = require('@ahmeds.gaafer/js-data-structures');\r\n\r\n//The graph can has 2 arguments that are set to false by default.\r\n//The first argument is \"isUniDirectional\" if you set it to true the graph will be a directed graph.\r\n//The second argument is \"isWeighted\" if you set it to true the graph will be weighted.\r\n\r\nconst g = new Graph();// un-directed un-weighted graph\r\n//or\r\nconst g = new Graph(true, false); // directed un-weighted graph.\r\n//or\r\nconst g = new Graph(false, true); // un-directed  weighted graph.\r\n//or\r\nconst g = new Graph(true, true); // directed weighted graph\r\n\r\ng.addVertex(1);\r\ng.addVertex(2);\r\n\r\n\r\n// You can chain methods that does not return a value\r\n\r\ng.addVertex(1).addVertex(2); // valid\r\n\r\ng.getNeighbours(1).addVertex(3); // invalid\r\n\r\n\r\n// if you write a code that can brake the logic of the graph it will log an error message but will nor stop the whole execution of the program.\r\n\r\n//Ex\r\n\r\ng.addVertex(1);\r\ng.addVertex(1); // add same vertex twice\r\n\r\ng.removeVertex(5)// remove a non-existant vertex\r\n\r\n// etc...\r\n\r\n```\r\n\r\nfunctions:\r\n\r\n- ***.addVertex(v)*** => Adds vertex to the graph.\r\n- ***.addEdge(u, v, w: conditional)*** => Add edge between vertex \"u\" and vertex \"v\" . weight of the edge \"w\" is valid if only the graph is set to be weighted.\r\n- ***.removeVertex(v)*** => Removes the vertex from the graph and removes all of the linked edges to it.\r\n- ***.removeEdge(u, v)*** => Removes edge between vertex \"u\" and \"v\".\r\n- ***.getVerticesNumbers()*** => Returns the number of vertcies in the Graph.\r\n- ***.getNeighbours(v)*** => Returns a the list of neighbours of vertex v\r\n- ***.view()*** => Display a visual display of the graphs adjacency list.\r\n\r\n\r\n\r\n# Important Note:\r\n\r\n> ***Any usage of the functions not mentioned in the functions above might lead to un-expected behaviour.***","readmeFilename":"README.md"}