{"_id":"collect-your-stuff","_rev":"30-3562c85358f641bc5cdc2488c9794a85","name":"collect-your-stuff","dist-tags":{"latest":"2.1.2"},"versions":{"1.0.0":{"name":"collect-your-stuff","version":"1.0.0","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.0.0","maintainers":[{"name":"joshuah13","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"060e7272cb08d644da0f439633cb8e82873a591e","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.0.0.tgz","fileCount":35,"integrity":"sha512-3aOROad+HxRKw+uc/4IfA3VDkIqDjLyUTYdHWnxWfCim7bO0PV32/+3q3124vT9ejknsTjWI02tk+fELZneFfg==","signatures":[{"sig":"MEQCIBlq0UnBkDyEGEnHTNqgTTcmUeBMJv37QQKWrGRP4DHtAiA6T5qKhLofkGDsCV9z1LOhQl85JVfyzXXFt9kuRxbBjQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1284524},"main":"dist/main.js","gitHead":"507301ffc172102770b18b0e366018d7d44b59b0","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"joshuah13","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.2.1","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^2.2.8"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.0.0_1698602154414_0.35039332733061257","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"collect-your-stuff","version":"1.1.0","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.1.0","maintainers":[{"name":"joshuah13","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"99fb6be8cd50f150b48a4f629f6f42d654d2ecd8","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.1.0.tgz","fileCount":89,"integrity":"sha512-u7vf2IvEC3so8VKhZCNEdt31B2v9a7WFEfbqodKuV5bWHivX7VKURHKAJdqTypHkdQuLDkV5HmJZquttqOXtog==","signatures":[{"sig":"MEYCIQCaZ8JFGmj2Gh7mbvMpWnvhnak+rdtvBVKWVe6DgfqSyQIhAJf33xz2LGbYsw+vm+XdPC1VVIs7+qZQXNrEGbSVZUTl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1450792},"main":"dist/main.js","types":"./dist/main.d.ts","gitHead":"535b9e1c00c49046da4e4a69172abc3443f5bc43","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"joshuah13","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.2.1","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^2.2.9"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.1.0_1699768728637_0.7529971348168321","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"collect-your-stuff","version":"1.1.1","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.1.1","maintainers":[{"name":"joshuah13","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"46b76d7d4c5902af83a3c9c671e3d31aef610801","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.1.1.tgz","fileCount":89,"integrity":"sha512-EjEXhvJCZZGhBxm1FnzlJy7zf0RJoMrU7GhEwh+RPlJtoh59+v7JNMNIsVjKsb6ZVn+8SPUcjdkTV0xvf4md/g==","signatures":[{"sig":"MEYCIQCq+r1Ohc1Kf7pjKf65vNkB/T9x1TqmQQVZlLX8ccZJSwIhAMA195G/z46B2erivqxlIF8DDN50xyDG+6jrEI1+Vk5f","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1435018},"main":"dist/main.js","types":"./dist/main.d.ts","gitHead":"9f16ffb9f5eca437e7956b7a79dcd775dcd59eac","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"joshuah13","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.2.1","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^2.2.9"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.1.1_1700078287454_0.6261599568106879","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"collect-your-stuff","version":"1.1.2","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.1.2","maintainers":[{"name":"joshuah13","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"624fdf44802848df6451384c1c87dd988ba90613","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.1.2.tgz","fileCount":89,"integrity":"sha512-N0Mt3nXX0uMoSKw95BJiXf3OioFyZ76q8sJY8VuxKmktVgol4B+LPNYBtMNcJKJlQFnRDDRlAA0A2ZfBsBwsSQ==","signatures":[{"sig":"MEUCIQCIJFV9ZxCzDhw9ydeu+/9+SbxPo88GVv7c6Yeu4qshdAIgOvQ9ADHVfm6KU7eBMX3mjo9z+zE8iK/kC1JjKknsrkQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1433511},"main":"dist/main.js","types":"./dist/main.d.ts","gitHead":"461fea77033cc690e278e614080326eb7b19793d","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"joshuah13","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.2.1","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^2.2.11"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.1.2_1702005294412_0.893718656478405","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"collect-your-stuff","version":"1.1.3","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.1.3","maintainers":[{"name":"joshuah13","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"9dd31c6be285bdcc45a446719f6c672152f434db","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.1.3.tgz","fileCount":89,"integrity":"sha512-4o4o/s1yQE7oFD/+JFi6gGLGgZdeofyekOIVxt6b7UZbFwGVfNC03tM2dOwPXYcvDK2W3Hwho13odDiew4vwqw==","signatures":[{"sig":"MEUCIQDFZw4Vu+XG/MkdEJ2hbKY5i7gr+vpRfvlkvxfcJFO0IQIgKBk/6IP4siPcZyX6qs0pJiX9/vLwvUB40b28Ptxk9hE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1434638},"main":"dist/main.js","types":"./dist/main.d.ts","gitHead":"a4c6f70d4d5b3a6966697d5bf0c11555d10a2ede","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"joshuah13","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.2.1","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^2.2.11"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.1.3_1703007048085_0.03805908805893066","host":"s3://npm-registry-packages"}},"1.1.4":{"name":"collect-your-stuff","version":"1.1.4","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.1.4","maintainers":[{"name":"joshuah13","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"f3e7809a7c637843f6a46306ce9e9832cdbd3ecb","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.1.4.tgz","fileCount":89,"integrity":"sha512-/+bEArlxMbMCymA8riefjmnwDl+sqIqjoxKYb82qxVDT2aVmpa7A526KfkXlGjTSNrJ6eNnEediCj3Jv0Y7daw==","signatures":[{"sig":"MEUCIQD1+Wv5Uio36LWYAEQOamYVRBbfkWmPHT4ADjFFW3wjWwIgBHq/AlTG710BQZU9grb/UoTHC+pkD9Nq9SakNpPJtE8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1434703},"main":"dist/main.js","types":"./dist/main.d.ts","gitHead":"e9fc64f457adc5ddb71b1a43c7d7cd3c871151b0","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"joshuah13","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.2.1","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^2.2.11"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.1.4_1703017020691_0.9259681369551527","host":"s3://npm-registry-packages"}},"1.1.5":{"name":"collect-your-stuff","version":"1.1.5","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.1.5","maintainers":[{"name":"joshuah13","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"03e1330dec3573929c67819263633ffdcd8bbb7c","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.1.5.tgz","fileCount":89,"integrity":"sha512-Mjz7Xv1IHZ/jb4L3vdReVl2dOEQ37B5nlQuKloGOq4J+hpILSZUj6oa7OoTGxBrEH47W+wEgYyGVA5IRk/0qAw==","signatures":[{"sig":"MEUCIFNEOMu2ergDZ0WwPgepP5bGr9Nn9wmGsD+GvNRgob21AiEA/Jz/WihtP696AdQ/ETqSOPMKIlV1Y1MC9ySwjRbCkAk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1431523},"main":"dist/main.js","types":"./dist/main.d.ts","gitHead":"7d50b037fe57f2f0b1bf05de74ce4ae3bfea744f","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"joshuah13","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.2.1","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^2.2.12"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.1.5_1704218860859_0.36245467475734006","host":"s3://npm-registry-packages"}},"1.1.6":{"name":"collect-your-stuff","version":"1.1.6","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.1.6","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"1ae06e3d956542126515aa674e5b91546da297bd","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.1.6.tgz","fileCount":89,"integrity":"sha512-8wNOtFKd4qtK4Mgp92EsGuVQz8be2P99uk5F/lOzcuO9hnjVWFa6p/R1nKS69fWh5ty0ipihjctk+TdvM3qVNg==","signatures":[{"sig":"MEQCIC/8nrHiXKzvHqGRwZUwnKTXNyWeCdbdQmNw9quMS9VwAiANkMtiK+ciTHnudLsep1wKmWMAucsw5uOsKxneF6e8Yg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1428022},"main":"dist/main.js","types":"./dist/main.d.ts","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.4.0","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.1.6_1707759780503_0.368048740603917","host":"s3://npm-registry-packages"}},"1.1.7":{"name":"collect-your-stuff","version":"1.1.7","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.1.7","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"d66624b54577078286904d85456e19fc7e046ed6","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.1.7.tgz","fileCount":89,"integrity":"sha512-8fq5/76+zF0mIk+0ucuUIJNw6pNHzRX17n72PecMoQ39q9SGgSAbmuxAPHNosgOZH5KbDhPSFgqhLfpGUAPxdA==","signatures":[{"sig":"MEUCIQDBz+upcqJxImxegk2fbcZLySc6l2JYCxotx9BXY5SsQQIgZqLHtjlKrLdC0qk3eyDwMf2zav3agszCfM9RDYYfbTg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1428052},"main":"dist/main.js","types":"dist/main.d.ts","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.4.0","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.1.7_1707850349480_0.4293638284726975","host":"s3://npm-registry-packages"}},"1.1.8":{"name":"collect-your-stuff","version":"1.1.8","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.1.8","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"981c7e292d1a7cb28d1180d7804a8327ff7c55c9","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.1.8.tgz","fileCount":89,"integrity":"sha512-5TuwwzMiESyxnEM757PXR9WLYcOz9cT6zERuDG1Bfll2s4UHywtcU4OAT/yF2QW3Py7HJ4mrEuIuxd+JjhgPNA==","signatures":[{"sig":"MEUCIC7DFzspYQcRTbA8MvNJ0JmFILda3vn6jTIve2+WA6loAiEApMC2u1pc93VNvdEWLk2elv5bMkOKi1f5Na4CaO6ZSZs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1439415},"main":"dist/main.js","types":"dist/main.d.ts","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.4.0","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.1.8_1709335939809_0.5011471980232696","host":"s3://npm-registry-packages"}},"1.1.9":{"name":"collect-your-stuff","version":"1.1.9","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.1.9","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"57be343032171d4bf395c759c5055733d34bfbf8","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.1.9.tgz","fileCount":89,"integrity":"sha512-yI1lDWkl/6bGiSKEljVwb3769HJqRoDF3bDGm3OA5qJFRkWqyFGP8iYu//aA3WSEZSFDehYy/uhW2ejjcHJZcQ==","signatures":[{"sig":"MEYCIQCxdaLu1lK8jISePjUo42eqeHO+ykrxglIO90fa84CF0wIhAN66xFKJKYC52OKgk/c1f5fpN5qogiVjV5HcQk7lr43c","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1439415},"main":"dist/main.js","types":"dist/main.d.ts","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.5.0","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^3.0.4"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.1.9_1710784631002_0.08770518036585484","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"collect-your-stuff","version":"1.2.0","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.2.0","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"1aff99b6b0d6f7d11017d6b0cdeb52099bd5000a","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.2.0.tgz","fileCount":89,"integrity":"sha512-E0rqm+5b2Q/lwFfO2ZMOsf75GI4Ihe8xZofWPDCDNtrUr99NRp6rKmQgDoOAkP/sjKfIUQWZ+RDhUyJCbVo7Eg==","signatures":[{"sig":"MEUCIQDxUArjFTjA/8UO0kIEH1vvn1kBYR5mr9kVmtIyjrNrzAIgBbgorcOEwvOSXXG7Z3sB8BpZzs9m9zDpj5xhpogoiR4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1475861},"main":"dist/main.js","types":"dist/main.d.ts","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.5.0","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^3.0.4"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.2.0_1711938281580_0.1696763908128489","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"collect-your-stuff","version":"1.2.1","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.2.1","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"8ee51de4ebb9c83ec5d19c42760d66c38a48733e","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.2.1.tgz","fileCount":89,"integrity":"sha512-rN5BjMzyBv6tagi7J+akiO9f2yIA6iWBJ56/wc2SftsZ4j8axZQDjp4ntj76UChLkV5TxSkeHEB7uty7CpFKeQ==","signatures":[{"sig":"MEQCICIcrAjk9NTTumQ4EVHxC/h8tHLML050U1IQAjpXs4sDAiAfbC0vWAnsamKUD7mWU6tyiOPNH0/S84exLtAdbXKlvg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1504112},"main":"dist/main.js","types":"dist/main.d.ts","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.8.1","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.2.1_1717446338430_0.6700757105979696","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"collect-your-stuff","version":"1.2.2","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.2.2","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"ef6f36b14e26d7401c2ec353d43b279d35a3053b","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.2.2.tgz","fileCount":89,"integrity":"sha512-VN7JmyDO3tL28746Gt7gpLhG87omE2DJUjARMClCNA53vIrfDKBk1yshItDuIfYdn9HhVKBM3pLbMPEgsDfAfg==","signatures":[{"sig":"MEUCIFZcrdDlKlN8QzAh6e/USG2oAoMNtcIdjEd8wiqw65crAiEA4qkRgU3suW25AAjj/3IV0BN8h6drgASK0nlyFQhmXGU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1508636},"main":"dist/main.js","types":"dist/main.d.ts","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.8.1","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^4.0.4"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.2.2_1723169535860_0.6158071708679753","host":"s3://npm-registry-packages"}},"1.2.3":{"name":"collect-your-stuff","version":"1.2.3","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.2.3","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"0772c90d8915ccd3a24ca7d270c760cab26e44b5","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.2.3.tgz","fileCount":89,"integrity":"sha512-WKFbDbNzGGekcZ+uR2cpHnVzUKu2TQOLEixlDYWWHAf5T7HaGd8+81t3j2HB6YZGNoibB6+VDkhalXkMl+zHCw==","signatures":[{"sig":"MEQCIGBRVKN7bpYT30B+i6BEeAl2ViW8hIE1l9Pz3bLoRmVJAiB6Xh33zS3cOcunp9q1IWHA0JTEY2kmXF9XTG1gAqH3ag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1512377},"main":"dist/main.js","types":"dist/main.d.ts","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.8.2","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^4.0.7"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.2.3_1729889065620_0.17191855161036496","host":"s3://npm-registry-packages"}},"1.2.4":{"name":"collect-your-stuff","version":"1.2.4","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.2.4","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"ba28c3fabc2ee05df400accab6b6031b649ffc0f","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.2.4.tgz","fileCount":89,"integrity":"sha512-LwCqN73u9gPqJB0T8oFKkaM4pK7W8sbEseQQ6+sOSpyiVzzIBLpE3npNIATS/EmLcKu2yUHP/YDsLAJx4Pjkjw==","signatures":[{"sig":"MEQCIGDkF6qrRP4IBvSN51Ms7UfQg9Ac8GTbp0J0jVJhDHHfAiBX7sVbwHFdfiKWBnU6JxvH4CRMLGmLKoyJQORwTwjYQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1646014},"main":"dist/main.js","types":"dist/main.d.ts","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.8.2","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.2.4_1757204184538_0.48615610937357534","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"collect-your-stuff","version":"1.2.5","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.2.5","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"9ce79161e4374219c256edc6034aad6e527204bf","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.2.5.tgz","fileCount":89,"integrity":"sha512-moEoeztBHJHZBxqVHfknkdLqogZwifNZ0xLWp0x6OIrKcUksCi2p/fkkM4YtkpxTCxjiiv/fb8+mSeSNy0mbQw==","signatures":[{"sig":"MEQCIC2FtGD02alsNYBUbZJLf1sqmDQEK0ENDrJIPLZqN4/HAiBUTtLK6Bi8pC9/Cw7ESSC9fVIQm20v9X5tD7g14cAzzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1705348},"main":"dist/main.js","types":"dist/main.d.ts","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.8.2","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^4.0.10"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.2.5_1782762571783_0.3235809053755052","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"collect-your-stuff","version":"1.2.6","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.2.6","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"4b3fe9a4f4af41500f1d879aec78a233cfb9ff9b","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.2.6.tgz","fileCount":89,"integrity":"sha512-25iJj04HPfGJfDcEaERRArQPkyfa9TrRrCNfVeKYHnB5iun0O2jQIcSzTz8MwO67GbAKsCPr8+qR6or5UW19sQ==","signatures":[{"sig":"MEQCIGM0MDF7VdbsC7cRaiCqc0EaNSJFN9GrpYyh/BbtLomLAiAJ1SncIuh6k56WwpSIYkLlvQpTwmVIBr+cRwbIuPd2kg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1705348},"main":"dist/main.js","types":"dist/main.d.ts","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.8.2","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^4.0.12"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.2.6_1784305541327_0.4385092042186025","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"collect-your-stuff","version":"1.2.7","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.2.7","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"5950805b285d17c33ffcf900478c533415895dd6","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.2.7.tgz","fileCount":89,"integrity":"sha512-SCo2YxI6iRP46uZAyVwuEHn83FzPaaEHWd2wFQfurX+iU4ptmE1NeG19gScvnA/XzjJDEgiMOT2hV8hLS116rA==","signatures":[{"sig":"MEUCIFc5Yqx2SIMCMIwxk9/SzbOGn0Su8R3vrdX5XdVN16haAiEAnI05VUik1XlY94Wn/sCR/9k2EvKsGIjcEAG517RXZ9Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBfZifkOCAYdSFjeONbTRCNvja4XlXcI+bhbQUD44ELWAiA5VYbg3kP7PcKUKyW1M7hjtLCzMVjyjGMp+uYydFItnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1680811},"main":"dist/main.js","types":"dist/main.d.ts","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"10.8.2","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.2.7_1789764357431_0.33927271868648745","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"collect-your-stuff","version":"1.2.8","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.2.8","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"6336c7a55d7022943c78eb72c9b9e3c305fe2b2e","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.2.8.tgz","fileCount":89,"integrity":"sha512-ojIaDaSwbjOn8jpZI5mMaRyMaJkLuUdh9aTo7Yyo9wmP9qqkDgs6SGlNnS6XeekXsqeOo+tiq6qcKOq258G1Qg==","signatures":[{"sig":"MEQCIHivS4hQI0p3jrPKvfGakeoHMF88IAfkzEl830YAVlt+AiB3OtA0i9cNor/VSai2F8psNDMcC4ewIpYOjL5cRfWHRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDw3TTamRv6PJinjDUH1VUP9GtvJPxH9YmGLc6OrJjv1AIhAPBIDSrdTFU3cHPyXI2aa/9qIP96NcTqc9vfpBAexJ5M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1710241},"main":"dist/main.js","types":"dist/main.d.ts","gitHead":"030798b1f00d48241387d7c79d1019194b6811bd","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"11.19.0","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.2.8_1790004624046_0.7332743936441679","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"collect-your-stuff","version":"1.2.9","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.2.9","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"dd6ed8411fc0a0e889cd98daaf98d6c8b67b2f35","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.2.9.tgz","fileCount":89,"integrity":"sha512-JZ5JwTVtBrqAwxyEPwDKDvRS70VLzVXmHoA/uj95drqayDurSjq8HZ+vDGSjA9iXb/9v2xAQ5BgzSJA2L4Meow==","signatures":[{"sig":"MEQCICR4Ufj9JLj1hjPkxL43KFpY+MlvmJNiX+QdHvg3LaIUAiBo7Eo/5IHyoi1e5GwQUv5MSF7GSeXTuM/phSLjjmzLDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHK8wKx6VkPAuGshngkeqO86/cK+PcCvMEdZskVEJtpEAiAJ7sOrR0qp34QF0Z+zvxp8W6pCu52jsMoUmlkC0KYeuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1710294},"main":"dist/main.js","types":"dist/main.d.ts","gitHead":"aa5d21784c49be068b873d08bd196cc94d4ce553","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"11.19.0","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"core-js":"^3.50.0"},"_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.2.9_1790006631331_0.9628403877651568","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"collect-your-stuff","version":"1.3.0","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.3.0","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"5eb85004291b7105dfce41081a0d171b38dc82c3","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.3.0.tgz","fileCount":89,"integrity":"sha512-j9jVZek7HohNvRutSEG7qbPrarX9NtAeO5mLUZiHtzeYqBnUGHOeAJMg42/Ni6jL59A2mXWojhygCzqmySrNdg==","signatures":[{"sig":"MEUCIQCEMJtItdPFtdmkywbX6/XQVa6Zd8H3hR20Y3sJQ6bZYQIgJSyGS7aLyagMxhAqznJbyxWi2MRTTVd+3O3OVsuqvAA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIF3WP7xxMJP/eI7GvYtdsf+Kjuu1ovLHfSLslSQ8dpOcAiEA/xMeDsVVMhS+GRO1wTX+QUoolpu0zFLopTQHFzonZLM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1716423},"main":"dist/main.js","types":"dist/main.d.ts","gitHead":"c91937f056f5b5b84a1e2d497f5cfc85a8370e73","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"11.19.0","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"core-js":"^3.50.0"},"_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.3.0_1790008388421_0.7711287096687227","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"collect-your-stuff","version":"1.3.2","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.3.2","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"cadf52d5ae74a440c147a22ff445d7bef66db3bc","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.3.2.tgz","fileCount":89,"integrity":"sha512-ipyIMqJQR+OGEg2G2tr4+c1Gn+w5eiiC5ebanw19h0cUTAC1cgW6fGW5W8UMx0HuriBs+EoqyBu0ZXEzttiYhA==","signatures":[{"sig":"MEYCIQCFU0Q6W/8Ki6A/VcsSjrmEB86fczcxzVu23xZd49KzUwIhAPx/8Ail9z0pl042nYXmmXg+oZaaItrXm1tU0HWIKWXt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC885WwLeH8zpFruQwPvFVZpn569OyZV/ysmmkZV81V3QIhAJE5dDXE2iwFIPjiuiPzYq82k8v5yZWkVpQQCO/z29bu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1764234},"main":"dist/main.js","types":"dist/main.d.ts","gitHead":"c4812e8ca2eef5d53ee04a03549e2ecd0e19261f","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","typecheck":"tsc --noEmit -p tsconfig.json","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"11.19.0","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"core-js":"^3.50.0"},"_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.3.2_1790010215890_0.4416429692057737","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"collect-your-stuff","version":"1.4.0","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@1.4.0","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"310514e21f72883c4b1bf6100d2cb79563eb4545","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-1.4.0.tgz","fileCount":89,"integrity":"sha512-e3YYyjYzjLUyNbPrItRPGp0TkX5ANExexiLAylx/mi2bKctuLLlADTyjwW9YEo5qIR7yWKWi1+boel3HXWe4QQ==","signatures":[{"sig":"MEQCIHQipfGV7fEXdO6dGOVE1xX/X6xwoLF7awJmB9TPIoQaAiAr064nTOzQH1e1dh/7fX1QX+lhooIlJ4Mzo0/tDYOhtw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCfENythGYE9ZWYEXI0LMfyAsQ5h62o841m6gu/IPOCPAIgWkQa8sJTsT3au1d0453h3/giFV7yU2JOFyo9VDWl19Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1772658},"main":"dist/main.js","types":"dist/main.d.ts","gitHead":"b0032af814028cdb955a8c44bbf8a2dc7ca5c03c","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","typecheck":"tsc --noEmit -p tsconfig.json","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"11.19.0","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"core-js":"^3.50.0"},"_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_1.4.0_1790011634680_0.07066012303672609","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"collect-your-stuff","version":"2.0.0","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@2.0.0","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"c86072dfe5f83bcc3f2d5f7142edff7ef2c2db66","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-2.0.0.tgz","fileCount":101,"integrity":"sha512-N/jQ7cuhGY+Jzwzi6sQXk6M9AGLriPdW0cmycPjRcM3MV5JeB9Auk6EoZm9HUqKKLP3gLx3gUeZuFnxDAvmETw==","signatures":[{"sig":"MEQCICcRQpO2MAGEikIcZ0F1T8+UwTe2aJnZ0zqMrcNGmccQAiB4efZCZxfDuRncK4UQTQ4A1qXaxEtzQDMQUKyGgFHTNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFUig9E5wNeBrEfG/8xzJjqXEtWBYwFO4GL/G2KZOKdJAiAwzqHF8G5xh72IBwzL/asn0nTClijD38hlZguhYne8SQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1792715},"main":"dist/main.js","types":"dist/main.d.ts","gitHead":"f775c12558db2904511ba7c518cbed1778c37ef6","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","typecheck":"tsc --noEmit -p tsconfig.json","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"11.19.0","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"core-js":"^3.50.0"},"_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_2.0.0_1790020518745_0.3736454783181391","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"collect-your-stuff","version":"2.1.0","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@2.1.0","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"2cc30d1b7d527e15cf43f7e3da93e68d5a33a67d","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-2.1.0.tgz","fileCount":101,"integrity":"sha512-8+mJc2XrSxN/Ux8oixsoGjDlMq2I26fpvr1KfMnWOaONmY1WPl3NK3nCchHuOoP3aYyz64j6hoEiw6Ai12qWEg==","signatures":[{"sig":"MEQCIGRaIlk3m96E7ao8HkpUwhOtosofVPhG2qWiqLCZ9CxCAiBJe1f64tpjm4w0BzS4Rtf897YE/5v/U74VlzJ6o+XJ7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDH2GDueI05Jq65WOP48HDAPgVirGRwaP6uzdSiRm35qAIgB1EzC16CcRrtjRU5cF0WhKVqOr1tlYnsa64KHPhmyFA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1799010},"main":"dist/main.js","types":"dist/main.d.ts","gitHead":"de537869145623452c34d9bb5a6a54c0501154f0","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","typecheck":"tsc --noEmit -p tsconfig.json","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"11.19.0","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"core-js":"^3.50.0"},"_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_2.1.0_1790021624192_0.9000459588555516","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"collect-your-stuff","version":"2.1.1","keywords":["collections","linkedlist","map","nodelist","arraylist"],"author":{"name":"Joshua Heagle"},"license":"GNU","_id":"collect-your-stuff@2.1.1","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"homepage":"https://github.com/jheagle/collections#readme","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"bd36999093611a86c477f853ff8c1e520e937c74","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-2.1.1.tgz","fileCount":101,"integrity":"sha512-9aI8Q4LTG9eXW2vKkQi2eXYJJeB4pTy8oLCMYRElBOjoxYC9OAC9IzjVz4JF6KZ/0ew6ZRBe5ikql+FT5/OL3A==","signatures":[{"sig":"MEUCIB7Bghz1Ek3YYaejtfZaOKMm2HF/jd17qucrF4WZnnpwAiEAocWZK2n2hzYjfCQTg39VyDUM56OdAtFtDbO/ZdWvLT8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAQRkHN9YDZHGKmAFx+Sh/5czPcyFrQngkU/QKldutwBAiBOP+oTrIeS3HC1HjS91V3DinxGsInV/PrPJXrdq3dSIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620784},"main":"dist/main.js","types":"dist/main.d.ts","gitHead":"f186b0fc18d6d0ae368dff5e3b449716a0919ca3","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","typecheck":"tsc --noEmit -p tsconfig.json","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"11.19.0","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"core-js":"^3.50.0"},"_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/collect-your-stuff_2.1.1_1790037739720_0.4709297009285347","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"_id":"collect-your-stuff@2.1.2","bugs":{"url":"https://github.com/jheagle/collections/issues"},"dist":{"shasum":"52eebb634d26518331bdf1ed8d2e93a526531234","tarball":"https://registry.npmjs.org/collect-your-stuff/-/collect-your-stuff-2.1.2.tgz","fileCount":101,"integrity":"sha512-terW+dJor56eqkYFpt+63JR5kvEfNjlnbyYSb/5HqDvdf28cSk3YnQGtQEQjbQ899Lcwcfbz1ARx21p47UTYzQ==","signatures":[{"sig":"MEYCIQD+IYnNgo9Q4iXTg7RSKpJGf0Sfl2lH3++H0yDCivMXMwIhAKrcgWTwPVSGrxeUhE0BqSiP/BDzjFczHSPJA42e58/+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCbZRq002JOhmK+g2rxplsHwjfxDgoRrndgFppT/fnB/gIhALPSIMtAJVC73yNRW0fsX6ww0aTkJZRc3rhhWZLaWX4O"}],"unpackedSize":656401},"main":"dist/main.js","name":"collect-your-stuff","types":"dist/main.d.ts","author":{"name":"Joshua Heagle"},"license":"GNU","scripts":{"dev":"gulp","test":"gulp testFull","build":"gulp build","watch":"gulp watchFull","readme":"gulp readme","htmldocs":"jsdoc -R MAIN.md -c ./.jsdoc.conf.js -d docs","typecheck":"tsc --noEmit -p tsconfig.json","test:quick":"gulp testQuick","watch:test":"gulp watchTest"},"version":"2.1.2","_npmUser":{"name":"jheagle","email":"joshuaheagle@gmail.com"},"homepage":"https://github.com/jheagle/collections#readme","keywords":["collections","linkedlist","map","nodelist","arraylist"],"standard":{"env":["jest"]},"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"_npmVersion":"11.19.0","description":"Use a variety of collections to collect your stuff when building code.","directories":{},"maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"core-js":"^3.50.0"},"_hasShrinkwrap":false,"devDependencies":{"js-build-tools":"^5.2.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/collect-your-stuff_2.1.2_1790122555048_0.7523017700442027"}}},"time":{"created":"2023-10-29T17:55:54.413Z","modified":"2026-09-23T00:15:55.337Z","1.0.0":"2023-10-29T17:55:54.651Z","1.1.0":"2023-11-12T05:58:48.881Z","1.1.1":"2023-11-15T19:58:07.725Z","1.1.2":"2023-12-08T03:14:54.655Z","1.1.3":"2023-12-19T17:30:48.396Z","1.1.4":"2023-12-19T20:17:00.987Z","1.1.5":"2024-01-02T18:07:41.031Z","1.1.6":"2024-02-12T17:43:00.691Z","1.1.7":"2024-02-13T18:52:29.716Z","1.1.8":"2024-03-01T23:32:20.031Z","1.1.9":"2024-03-18T17:57:11.215Z","1.2.0":"2024-04-01T02:24:41.805Z","1.2.1":"2024-06-03T20:25:38.698Z","1.2.2":"2024-08-09T02:12:16.158Z","1.2.3":"2024-10-25T20:44:25.908Z","1.2.4":"2025-09-07T00:16:24.821Z","1.2.5":"2026-06-29T19:49:31.986Z","1.2.6":"2026-07-17T16:25:41.536Z","1.2.7":"2026-09-18T20:45:57.520Z","1.2.8":"2026-09-21T15:30:24.172Z","1.2.9":"2026-09-21T16:03:51.425Z","1.3.0":"2026-09-21T16:33:08.532Z","1.3.2":"2026-09-21T17:03:36.046Z","1.4.0":"2026-09-21T17:27:14.788Z","2.0.0":"2026-09-21T19:55:18.837Z","2.1.0":"2026-09-21T20:13:44.332Z","2.1.1":"2026-09-22T00:42:19.804Z","2.1.2":"2026-09-23T00:15:55.176Z"},"bugs":{"url":"https://github.com/jheagle/collections/issues"},"author":{"name":"Joshua Heagle"},"license":"GNU","homepage":"https://github.com/jheagle/collections#readme","keywords":["collections","linkedlist","map","nodelist","arraylist"],"repository":{"url":"git+https://github.com/jheagle/collections.git","type":"git"},"description":"Use a variety of collections to collect your stuff when building code.","maintainers":[{"name":"jheagle","email":"joshuaheagle@gmail.com"}],"readme":"# Collect your stuff (and go)!\r\n\r\nData allocation and manipulation.\r\n\r\n## Modules\r\n\r\n<dl>\r\n<dt><a href=\"#module_collect-your-stuff\">collect-your-stuff</a></dt>\r\n<dd><p>All of the collections available.</p>\r\n</dd>\r\n</dl>\r\n\r\n## Classes\r\n\r\n<dl>\r\n<dt><a href=\"#TreeLinkerIterator\">TreeLinkerIterator</a></dt>\r\n<dd><p>Class TreeLinkerIterator returns the next value taking a left-first approach down a tree.</p>\r\n</dd>\r\n<dt><a href=\"#Runnable\">Runnable</a></dt>\r\n<dd><p>Identify a class that can be run.</p>\r\n</dd>\r\n<dt><a href=\"#LinkerIterator\">LinkerIterator</a></dt>\r\n<dd><p>Class LinkerIterator returns the next value when using linkers of linked type lists.</p>\r\n</dd>\r\n<dt><a href=\"#DoubleLinkerIterator\">DoubleLinkerIterator</a></dt>\r\n<dd><p>Class DoubleLinkerIterator returns the next value when using linkers of linked type lists.</p>\r\n</dd>\r\n<dt><a href=\"#ArrayIterator\">ArrayIterator</a></dt>\r\n<dd><p>Class ArrayIterator returns the next value when using elements of array type list.</p>\r\n</dd>\r\n<dt><a href=\"#TaskStack\">TaskStack</a></dt>\r\n<dd><p>Store a collection of tasks (Stackables) which can only be inserted and removed from the top: pop() takes the task from\r\nthe top and RUNS it. For a plain last-in-first-out collection of items use Stack.</p>\r\n</dd>\r\n<dt><a href=\"#Stackable\">Stackable</a> ⇐ <code><a href=\"#Linker\">Linker</a></code></dt>\r\n<dd><p>Stackable represents a runnable entry in stack.</p>\r\n</dd>\r\n<dt><a href=\"#Stack\">Stack</a></dt>\r\n<dd><p>A last-in-first-out collection: items are added to the top with push and taken from the top with pop. Any value can\r\nbe stacked (it is stored as it is, whether it is a function, an object or null), and adding and taking are constant\r\ntime. To stack tasks which are run as they are taken use TaskStack.</p>\r\n</dd>\r\n<dt><a href=\"#TaskQueue\">TaskQueue</a></dt>\r\n<dd><p>Maintain a series of queued tasks (Queueables): dequeue() takes the next task from the front and RUNS it, giving each\r\ntask in turn a chance to run (a task which is not ready, or which has not finished, is placed at the back again).\r\nThis is a task scheduler, for a plain first-in-first-out collection of items use Queue.</p>\r\n</dd>\r\n<dt><a href=\"#Queueable\">Queueable</a> ⇐ <code><a href=\"#Linker\">Linker</a></code></dt>\r\n<dd><p>Queueable represents a runnable entry in a queue.</p>\r\n</dd>\r\n<dt><a href=\"#Queue\">Queue</a></dt>\r\n<dd><p>A first-in-first-out collection: items are added to the back with enqueue and taken from the front with dequeue.\r\nAny value can be queued (it is stored as it is, whether it is a function, an object or null), and adding and taking\r\nare constant time. To queue tasks which are run as they are taken use TaskQueue.</p>\r\n</dd>\r\n<dt><a href=\"#TreeLinker\">TreeLinker</a> ⇐ <code><a href=\"#DoubleLinker\">DoubleLinker</a></code></dt>\r\n<dd><p>TreeLinker represents a node in a LinkedTreeList having a parent (or root) and child nodes.</p>\r\n</dd>\r\n<dt><a href=\"#LinkedTreeList\">LinkedTreeList</a> ⇐ <code><a href=\"#DoublyLinkedList\">DoublyLinkedList</a></code></dt>\r\n<dd><p>LinkedTreeList represents a collection stored with a root and spreading in branching (tree) formation.</p>\r\n</dd>\r\n<dt><a href=\"#Linker\">Linker</a> ⇐ <code><a href=\"#ArrayElement\">ArrayElement</a></code></dt>\r\n<dd><p>Linker represents a node in a LinkedList.</p>\r\n</dd>\r\n<dt><a href=\"#LinkedList\">LinkedList</a> ⇐ <code><a href=\"#Arrayable\">Arrayable</a></code></dt>\r\n<dd><p>LinkedList represents a collection stored as a LinkedList with next references.</p>\r\n</dd>\r\n<dt><a href=\"#DoublyLinkedList\">DoublyLinkedList</a> ⇐ <code><a href=\"#LinkedList\">LinkedList</a></code></dt>\r\n<dd><p>DoublyLinkedList represents a collection stored as a LinkedList with prev and next references.</p>\r\n</dd>\r\n<dt><a href=\"#DoubleLinker\">DoubleLinker</a> ⇐ <code><a href=\"#Linker\">Linker</a></code></dt>\r\n<dd><p>DoubleLinker represents a node in a DoublyLinkedList which is chained by next and prev.</p>\r\n</dd>\r\n<dt><a href=\"#Arrayable\">Arrayable</a></dt>\r\n<dd><p>Arrayable represents a collection stored as an array.</p>\r\n</dd>\r\n<dt><a href=\"#ArrayElement\">ArrayElement</a></dt>\r\n<dd><p>Element represents a node in an Arrayable.</p>\r\n</dd>\r\n</dl>\r\n\r\n## Members\r\n\r\n<dl>\r\n<dt><a href=\"#TaskStack\">TaskStack</a> ⇒ <code><a href=\"#TaskStack\">TaskStack</a></code></dt>\r\n<dd><p>Convert an array to a TaskStack.</p>\r\n</dd>\r\n<dt><a href=\"#Stackable\">Stackable</a> ⇒ <code><a href=\"#Stackable\">Stackable</a></code></dt>\r\n<dd><p>Make a new Stackable from the data given if it is not already a valid Stackable.</p>\r\n</dd>\r\n<dt><a href=\"#Stack\">Stack</a> ⇒ <code><a href=\"#Stack\">Stack</a></code></dt>\r\n<dd><p>Convert an array to a Stack by pushing each value in turn, so the last value is on the top.</p>\r\n</dd>\r\n<dt><a href=\"#TaskQueue\">TaskQueue</a> ⇒ <code><a href=\"#TaskQueue\">TaskQueue</a></code></dt>\r\n<dd><p>Convert an array to a TaskQueue.</p>\r\n</dd>\r\n<dt><a href=\"#Queueable\">Queueable</a> ⇒ <code><a href=\"#Queueable\">Queueable</a></code></dt>\r\n<dd><p>Make a new Queueable from the data given if it is not already a valid Queueable.</p>\r\n</dd>\r\n<dt><a href=\"#Queue\">Queue</a> ⇒ <code><a href=\"#Queue\">Queue</a></code></dt>\r\n<dd><p>Convert an array to a Queue, the first value is at the front.</p>\r\n</dd>\r\n<dt><a href=\"#TreeLinker\">TreeLinker</a> ⇒ <code><a href=\"#TreeLinker\">TreeLinker</a></code></dt>\r\n<dd><p>Make a new DoubleLinker from the data given if it is not already a valid Linker.</p>\r\n</dd>\r\n<dt><a href=\"#LinkedTreeList\">LinkedTreeList</a> ⇒ <code><a href=\"#LinkedTreeList\">LinkedTreeList</a></code></dt>\r\n<dd><p>Convert an array into a LinkedTreeList instance, return the new instance.</p>\r\n</dd>\r\n<dt><a href=\"#Linker\">Linker</a> ⇒ <code><a href=\"#Linker\">Linker</a></code></dt>\r\n<dd><p>Make a new Linker from the data given if it is not already a valid Linker.</p>\r\n</dd>\r\n<dt><a href=\"#LinkedList\">LinkedList</a> ⇒ <code><a href=\"#LinkedList\">LinkedList</a></code></dt>\r\n<dd><p>Convert an array to a LinkedList.</p>\r\n</dd>\r\n<dt><a href=\"#DoublyLinkedList\">DoublyLinkedList</a> ⇒ <code><a href=\"#DoublyLinkedList\">DoublyLinkedList</a></code></dt>\r\n<dd><p>Convert an array into a DoublyLinkedList instance, return the new instance.</p>\r\n</dd>\r\n<dt><a href=\"#DoubleLinker\">DoubleLinker</a> ⇒ <code><a href=\"#DoubleLinker\">DoubleLinker</a></code></dt>\r\n<dd><p>Make a new DoubleLinker from the data given if it is not already a valid Linker.</p>\r\n</dd>\r\n<dt><a href=\"#Arrayable\">Arrayable</a> ⇒ <code><a href=\"#Arrayable\">Arrayable</a></code></dt>\r\n<dd><p>Convert an array to an Arrayable.</p>\r\n</dd>\r\n<dt><a href=\"#ArrayElement\">ArrayElement</a> ⇒ <code><a href=\"#ArrayElement\">ArrayElement</a></code></dt>\r\n<dd><p>Make a new Element from the data given if it is not already a valid Element.</p>\r\n</dd>\r\n</dl>\r\n\r\n## Constants\r\n\r\n<dl>\r\n<dt><a href=\"#services\">services</a></dt>\r\n<dd><p>List helpful functions when dealing with collections.</p>\r\n</dd>\r\n<dt><a href=\"#recipes\">recipes</a></dt>\r\n<dd><p>List of class declarations that can be used to specify attributes for a style of object / class.</p>\r\n</dd>\r\n</dl>\r\n\r\n## Functions\r\n\r\n<dl>\r\n<dt><a href=\"#parseTreeNext\">parseTreeNext(treeNode, [boundaryParent])</a> ⇒ <code>IsTreeNode</code> | <code>null</code></dt>\r\n<dd><p>Be able to parse over every node in a tree.</p>\r\n<ol>\r\n<li>Start at root (get root parent)</li>\r\n<li>Get first child (repeat until no children)</li>\r\n<li>Check next child</li>\r\n<li>Repeat 2</li>\r\n<li>Repeat 3</li>\r\n<li>If no next child, return to parent and repeat 3</li>\r\n<li>Stop at root (next is null and parent is null\r\nA boundary can be given to parse only part of a tree: going back up to the parents stops at the boundary, so the\r\nparsing stays within the nodes whose parent is the boundary (and everything below them).</li>\r\n</ol>\r\n</dd>\r\n<dt><a href=\"#parseTree\">parseTree(tree, callback)</a> ⇒ <code>IsArrayable.&lt;IsTreeNode&gt;</code></dt>\r\n<dd><p>Loop over all the nodes in a tree starting from left and apply a callback for each</p>\r\n</dd>\r\n<dt><a href=\"#borrowedGetter\">borrowedGetter(name, list)</a> ⇒ <code>*</code></dt>\r\n<dd><p>Use one of the accessors of DoublyLinkedList (which keeps track of the head, tail and length) for a LinkedTreeList.</p>\r\n</dd>\r\n</dl>\r\n\r\n<a name=\"module_collect-your-stuff\"></a>\r\n\r\n## collect-your-stuff\r\nAll of the collections available.\r\n\r\n**Version**: 1.0.0  \r\n**Author**: Joshua Heagle <joshuaheagle@gmail.com>  \r\n<a name=\"module_collect-your-stuff..collectYourStuff\"></a>\r\n\r\n### collect-your-stuff~collectYourStuff\r\nAll methods exported from this module are encapsulated within collect-your-stuff (this default export is the same\r\nset of classes as the named exports).\r\n\r\n**Kind**: inner constant of [<code>collect-your-stuff</code>](#module_collect-your-stuff)  \r\n<a name=\"TreeLinkerIterator\"></a>\r\n\r\n## TreeLinkerIterator\r\nClass TreeLinkerIterator returns the next value taking a left-first approach down a tree.\r\n\r\n**Kind**: global class  \r\n\r\n* [TreeLinkerIterator](#TreeLinkerIterator)\r\n    * [new TreeLinkerIterator(current, [boundaryParent])](#new_TreeLinkerIterator_new)\r\n    * [.next([value])](#TreeLinkerIterator+next) ⇒ <code>IteratorResult.&lt;IsTreeNode&gt;</code>\r\n\r\n<a name=\"new_TreeLinkerIterator_new\"></a>\r\n\r\n### new TreeLinkerIterator(current, [boundaryParent])\r\nCreate an iterator starting at the given item.\r\n\r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| current | <code>IsTreeNode</code> | The item to start from. |\r\n| [boundaryParent] | <code>IsTreeNode</code> \\| <code>null</code> | The parent of the nodes to stay within (null for the top of a tree), the whole tree when not given. |\r\n\r\n<a name=\"TreeLinkerIterator+next\"></a>\r\n\r\n### treeLinkerIterator.next([value]) ⇒ <code>IteratorResult.&lt;IsTreeNode&gt;</code>\r\nGet the current item and move on to the following one (left-first, down each branch).\r\n\r\n**Kind**: instance method of [<code>TreeLinkerIterator</code>](#TreeLinkerIterator)  \r\n**Returns**: <code>IteratorResult.&lt;IsTreeNode&gt;</code> - The current item, or done when there are no more.  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| [value] | <code>\\*</code> | Not used, present to match the Iterator interface. |\r\n\r\n<a name=\"Runnable\"></a>\r\n\r\n## Runnable\r\nIdentify a class that can be run.\r\n\r\n**Kind**: global class  \r\n\r\n* [Runnable](#Runnable)\r\n    * [new Runnable([data])](#new_Runnable_new)\r\n    * _instance_\r\n        * [.data](#Runnable+data)\r\n        * [.task](#Runnable+task) ⇒ <code>function</code>\r\n        * [.run()](#Runnable+run) ⇒ <code>\\*</code>\r\n    * _static_\r\n        * [.isRunnable(thing)](#Runnable.isRunnable) ⇒ <code>boolean</code>\r\n\r\n<a name=\"new_Runnable_new\"></a>\r\n\r\n### new Runnable([data])\r\nInstantiate a Runnable class.\r\n\r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| [data] | <code>\\*</code> | <code></code> | The task (a function) or the data which the task returns. |\r\n\r\n<a name=\"Runnable+data\"></a>\r\n\r\n### runnable.data\r\nThe task (or data) this runnable holds.\r\n\r\n**Kind**: instance property of [<code>Runnable</code>](#Runnable)  \r\n<a name=\"Runnable+task\"></a>\r\n\r\n### runnable.task ⇒ <code>function</code>\r\nRetrieve the data which should be formed as a task.\r\n\r\n**Kind**: instance property of [<code>Runnable</code>](#Runnable)  \r\n<a name=\"Runnable+run\"></a>\r\n\r\n### runnable.run() ⇒ <code>\\*</code>\r\nRun the runnable task.\r\n\r\n**Kind**: instance method of [<code>Runnable</code>](#Runnable)  \r\n<a name=\"Runnable.isRunnable\"></a>\r\n\r\n### Runnable.isRunnable(thing) ⇒ <code>boolean</code>\r\nCheck if a given thing is Runnable\r\n\r\n**Kind**: static method of [<code>Runnable</code>](#Runnable)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| thing | <code>\\*</code> | The value to check, or nothing to check whether this class is Runnable. |\r\n\r\n<a name=\"LinkerIterator\"></a>\r\n\r\n## LinkerIterator\r\nClass LinkerIterator returns the next value when using linkers of linked type lists.\r\n\r\n**Kind**: global class  \r\n\r\n* [LinkerIterator](#LinkerIterator)\r\n    * [new LinkerIterator(current)](#new_LinkerIterator_new)\r\n    * [.next([value])](#LinkerIterator+next) ⇒ <code>IteratorResult.&lt;IsLinker&gt;</code>\r\n\r\n<a name=\"new_LinkerIterator_new\"></a>\r\n\r\n### new LinkerIterator(current)\r\nCreate an iterator starting at the given item.\r\n\r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| current | <code>IsLinker</code> | The item to start from. |\r\n\r\n<a name=\"LinkerIterator+next\"></a>\r\n\r\n### linkerIterator.next([value]) ⇒ <code>IteratorResult.&lt;IsLinker&gt;</code>\r\nGet the current item and move on to the following one.\r\n\r\n**Kind**: instance method of [<code>LinkerIterator</code>](#LinkerIterator)  \r\n**Returns**: <code>IteratorResult.&lt;IsLinker&gt;</code> - The current item, or done when there are no more.  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| [value] | <code>\\*</code> | Not used, present to match the Iterator interface. |\r\n\r\n<a name=\"DoubleLinkerIterator\"></a>\r\n\r\n## DoubleLinkerIterator\r\nClass DoubleLinkerIterator returns the next value when using linkers of linked type lists.\r\n\r\n**Kind**: global class  \r\n\r\n* [DoubleLinkerIterator](#DoubleLinkerIterator)\r\n    * [new DoubleLinkerIterator(current)](#new_DoubleLinkerIterator_new)\r\n    * [.next([value])](#DoubleLinkerIterator+next) ⇒ <code>IteratorResult.&lt;IsDoubleLinker&gt;</code>\r\n\r\n<a name=\"new_DoubleLinkerIterator_new\"></a>\r\n\r\n### new DoubleLinkerIterator(current)\r\nCreate an iterator starting at the given item.\r\n\r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| current | <code>IsDoubleLinker</code> | The item to start from. |\r\n\r\n<a name=\"DoubleLinkerIterator+next\"></a>\r\n\r\n### doubleLinkerIterator.next([value]) ⇒ <code>IteratorResult.&lt;IsDoubleLinker&gt;</code>\r\nGet the current item and move on to the following one.\r\n\r\n**Kind**: instance method of [<code>DoubleLinkerIterator</code>](#DoubleLinkerIterator)  \r\n**Returns**: <code>IteratorResult.&lt;IsDoubleLinker&gt;</code> - The current item, or done when there are no more.  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| [value] | <code>\\*</code> | Not used, present to match the Iterator interface. |\r\n\r\n<a name=\"ArrayIterator\"></a>\r\n\r\n## ArrayIterator\r\nClass ArrayIterator returns the next value when using elements of array type list.\r\n\r\n**Kind**: global class  \r\n\r\n* [ArrayIterator](#ArrayIterator)\r\n    * [new ArrayIterator(innerList, [index])](#new_ArrayIterator_new)\r\n    * [.next([value])](#ArrayIterator+next) ⇒ <code>IteratorResult.&lt;IsElement&gt;</code>\r\n\r\n<a name=\"new_ArrayIterator_new\"></a>\r\n\r\n### new ArrayIterator(innerList, [index])\r\nCreate an iterator over the given array.\r\n\r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| innerList | <code>Array.&lt;IsElement&gt;</code> |  | The elements to iterate over. |\r\n| [index] | <code>number</code> | <code>0</code> | The position to start from. |\r\n\r\n<a name=\"ArrayIterator+next\"></a>\r\n\r\n### arrayIterator.next([value]) ⇒ <code>IteratorResult.&lt;IsElement&gt;</code>\r\nGet the next element, moving the iterator forward.\r\n\r\n**Kind**: instance method of [<code>ArrayIterator</code>](#ArrayIterator)  \r\n**Returns**: <code>IteratorResult.&lt;IsElement&gt;</code> - The next element, or done when there are no more.  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| [value] | <code>\\*</code> | Not used, present to match the Iterator interface. |\r\n\r\n<a name=\"TaskStack\"></a>\r\n\r\n## TaskStack\r\nStore a collection of tasks (Stackables) which can only be inserted and removed from the top: pop() takes the task from\r\nthe top and RUNS it. For a plain last-in-first-out collection of items use Stack.\r\n\r\n**Kind**: global class  \r\n\r\n* [TaskStack](#TaskStack)\r\n    * [new TaskStack([stackedList], [listClass], [stackableClass])](#new_TaskStack_new)\r\n    * [.empty()](#TaskStack+empty) ⇒ <code>boolean</code>\r\n    * [.top()](#TaskStack+top) ⇒ [<code>Stackable</code>](#Stackable)\r\n    * [.pop()](#TaskStack+pop) ⇒ [<code>Stackable</code>](#Stackable) \\| <code>null</code>\r\n    * [.push(stackable)](#TaskStack+push)\r\n    * [.remove()](#TaskStack+remove) ⇒ [<code>Stackable</code>](#Stackable) \\| <code>null</code>\r\n    * [.size()](#TaskStack+size) ⇒ <code>number</code>\r\n\r\n<a name=\"new_TaskStack_new\"></a>\r\n\r\n### new TaskStack([stackedList], [listClass], [stackableClass])\r\nInstantiate the state with the starter stacked list.\r\n\r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| [stackedList] | <code>Iterable</code> \\| [<code>LinkedList</code>](#LinkedList) | <code></code> | The list of stackables to start in this stack. |\r\n| [listClass] | <code>IsArrayable</code> | <code>LinkedList</code> | The type of list to create when no stacked list is given. |\r\n| [stackableClass] | [<code>Stackable</code>](#Stackable) | <code>Stackable</code> | The class used to wrap stacked items. |\r\n\r\n<a name=\"TaskStack+empty\"></a>\r\n\r\n### taskStack.empty() ⇒ <code>boolean</code>\r\nReturn true if the stack is empty (there are no tasks in the stacked list)\r\n\r\n**Kind**: instance method of [<code>TaskStack</code>](#TaskStack)  \r\n<a name=\"TaskStack+top\"></a>\r\n\r\n### taskStack.top() ⇒ [<code>Stackable</code>](#Stackable)\r\nTake a look at the next stacked task\r\n\r\n**Kind**: instance method of [<code>TaskStack</code>](#TaskStack)  \r\n<a name=\"TaskStack+pop\"></a>\r\n\r\n### taskStack.pop() ⇒ [<code>Stackable</code>](#Stackable) \\| <code>null</code>\r\nRemove the next stacked task and return it.\r\n\r\n**Kind**: instance method of [<code>TaskStack</code>](#TaskStack)  \r\n<a name=\"TaskStack+push\"></a>\r\n\r\n### taskStack.push(stackable)\r\nPush a stackable task to the top of the stack.\r\n\r\n**Kind**: instance method of [<code>TaskStack</code>](#TaskStack)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| stackable | [<code>Stackable</code>](#Stackable) \\| <code>\\*</code> | Add a new stackable to the top of the stack |\r\n\r\n<a name=\"TaskStack+remove\"></a>\r\n\r\n### taskStack.remove() ⇒ [<code>Stackable</code>](#Stackable) \\| <code>null</code>\r\nRemove the next stacked task and return it.\r\n\r\n**Kind**: instance method of [<code>TaskStack</code>](#TaskStack)  \r\n<a name=\"TaskStack+size\"></a>\r\n\r\n### taskStack.size() ⇒ <code>number</code>\r\nGet the size of the current stack.\r\n\r\n**Kind**: instance method of [<code>TaskStack</code>](#TaskStack)  \r\n<a name=\"Stackable\"></a>\r\n\r\n## Stackable ⇐ [<code>Linker</code>](#Linker)\r\nStackable represents a runnable entry in stack.\r\n\r\n**Kind**: global class  \r\n**Extends**: [<code>Linker</code>](#Linker)  \r\n\r\n* [Stackable](#Stackable) ⇐ [<code>Linker</code>](#Linker)\r\n    * [new Stackable([stackData])](#new_Stackable_new)\r\n    * _instance_\r\n        * [.data](#Stackable+data)\r\n        * [.next](#Stackable+next)\r\n        * [.task](#Stackable+task) ⇒ <code>\\*</code>\r\n        * [.classType](#Linker+classType)\r\n        * [.run()](#Stackable+run) ⇒ <code>\\*</code>\r\n    * _static_\r\n        * [.fromArray([values], [classType])](#Stackable.fromArray) ⇒ <code>Object</code>\r\n\r\n<a name=\"new_Stackable_new\"></a>\r\n\r\n### new Stackable([stackData])\r\nCreate a stackable item that can be used in a stack.\r\n\r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| [stackData] | <code>Object</code> | <code>{}</code> | The settings for the new stackable. |\r\n| [stackData.task] | <code>\\*</code> | <code></code> | The data to be stored in this stackable |\r\n| [stackData.next] | [<code>Stackable</code>](#Stackable) \\| <code>null</code> | <code></code> | The reference to the next stackable if any |\r\n| [stackData.ready] | <code>boolean</code> \\| <code>function</code> | <code>false</code> | Indicate if the stackable is ready to run |\r\n\r\n<a name=\"Stackable+data\"></a>\r\n\r\n### stackable.data\r\nThe task (or data) this stackable holds.\r\n\r\n**Kind**: instance property of [<code>Stackable</code>](#Stackable)  \r\n**Overrides**: [<code>data</code>](#Linker+data)  \r\n<a name=\"Stackable+next\"></a>\r\n\r\n### stackable.next\r\nThe stackable below this one, or null when this is the bottom.\r\n\r\n**Kind**: instance property of [<code>Stackable</code>](#Stackable)  \r\n**Overrides**: [<code>next</code>](#Linker+next)  \r\n<a name=\"Stackable+task\"></a>\r\n\r\n### stackable.task ⇒ <code>\\*</code>\r\nRetrieve the data which should be formed as a task.\r\n\r\n**Kind**: instance property of [<code>Stackable</code>](#Stackable)  \r\n<a name=\"Linker+classType\"></a>\r\n\r\n### stackable.classType\r\nThe class used to create this instance, so that it can be recognized as valid without an instanceof check.\r\n\r\n**Kind**: instance property of [<code>Stackable</code>](#Stackable)  \r\n**Overrides**: [<code>classType</code>](#Linker+classType)  \r\n<a name=\"Stackable+run\"></a>\r\n\r\n### stackable.run() ⇒ <code>\\*</code>\r\nRun the stacked task.\r\n\r\n**Kind**: instance method of [<code>Stackable</code>](#Stackable)  \r\n<a name=\"Stackable.fromArray\"></a>\r\n\r\n### Stackable.fromArray([values], [classType]) ⇒ <code>Object</code>\r\nConvert an array into Stackable instances, return the head and tail Stackables.\r\n\r\n**Kind**: static method of [<code>Stackable</code>](#Stackable)  \r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| [values] | <code>Array</code> | <code>[]</code> | Provide an array of data that will be converted to a chain of stackable linkers. |\r\n| [classType] | <code>IsLinker</code> | <code>Stackable</code> | Provide the type of IsLinker to use. |\r\n\r\n<a name=\"Stack\"></a>\r\n\r\n## Stack\r\nA last-in-first-out collection: items are added to the top with push and taken from the top with pop. Any value can\r\nbe stacked (it is stored as it is, whether it is a function, an object or null), and adding and taking are constant\r\ntime. To stack tasks which are run as they are taken use TaskStack.\r\n\r\n**Kind**: global class  \r\n\r\n* [Stack](#Stack)\r\n    * [new Stack([stackedList], [listClass], [linkerClass])](#new_Stack_new)\r\n    * [.empty()](#Stack+empty) ⇒ <code>boolean</code>\r\n    * [.peek()](#Stack+peek) ⇒ <code>\\*</code> \\| <code>null</code>\r\n    * [.pop()](#Stack+pop) ⇒ <code>\\*</code> \\| <code>null</code>\r\n    * [.push(data)](#Stack+push) ⇒ [<code>Stack</code>](#Stack)\r\n    * [.size()](#Stack+size) ⇒ <code>number</code>\r\n    * [.top()](#Stack+top) ⇒ <code>\\*</code> \\| <code>null</code>\r\n\r\n<a name=\"new_Stack_new\"></a>\r\n\r\n### new Stack([stackedList], [listClass], [linkerClass])\r\nInstantiate the stack, optionally with a list of items to start from.\r\n\r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| [stackedList] | <code>IsArrayable</code> \\| <code>null</code> | <code></code> | The list of linkers to start in this stack (the first is the top) |\r\n| [listClass] | <code>IsArrayable</code> | <code>LinkedList</code> | The type of list to create when no stacked list is given |\r\n| [linkerClass] | [<code>Linker</code>](#Linker) | <code>Linker</code> | The class used to hold each stacked item |\r\n\r\n<a name=\"Stack+empty\"></a>\r\n\r\n### stack.empty() ⇒ <code>boolean</code>\r\nCheck whether the stack has no items.\r\n\r\n**Kind**: instance method of [<code>Stack</code>](#Stack)  \r\n<a name=\"Stack+peek\"></a>\r\n\r\n### stack.peek() ⇒ <code>\\*</code> \\| <code>null</code>\r\nLook at the item on the top of the stack, without removing it.\r\n\r\n**Kind**: instance method of [<code>Stack</code>](#Stack)  \r\n**Returns**: <code>\\*</code> \\| <code>null</code> - The item, or null when the stack is empty  \r\n<a name=\"Stack+pop\"></a>\r\n\r\n### stack.pop() ⇒ <code>\\*</code> \\| <code>null</code>\r\nTake the item from the top of the stack.\r\n\r\n**Kind**: instance method of [<code>Stack</code>](#Stack)  \r\n**Returns**: <code>\\*</code> \\| <code>null</code> - The item, or null when the stack is empty  \r\n<a name=\"Stack+push\"></a>\r\n\r\n### stack.push(data) ⇒ [<code>Stack</code>](#Stack)\r\nAdd an item to the top of the stack.\r\n\r\n**Kind**: instance method of [<code>Stack</code>](#Stack)  \r\n**Returns**: [<code>Stack</code>](#Stack) - This stack, so that adding can be chained  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| data | <code>\\*</code> | The item to add |\r\n\r\n<a name=\"Stack+size\"></a>\r\n\r\n### stack.size() ⇒ <code>number</code>\r\nCount the items in the stack.\r\n\r\n**Kind**: instance method of [<code>Stack</code>](#Stack)  \r\n<a name=\"Stack+top\"></a>\r\n\r\n### stack.top() ⇒ <code>\\*</code> \\| <code>null</code>\r\nThe item on the top of the stack (the same as peek).\r\n\r\n**Kind**: instance method of [<code>Stack</code>](#Stack)  \r\n**Returns**: <code>\\*</code> \\| <code>null</code> - The item, or null when the stack is empty  \r\n<a name=\"TaskQueue\"></a>\r\n\r\n## TaskQueue\r\nMaintain a series of queued tasks (Queueables): dequeue() takes the next task from the front and RUNS it, giving each\r\ntask in turn a chance to run (a task which is not ready, or which has not finished, is placed at the back again).\r\nThis is a task scheduler, for a plain first-in-first-out collection of items use Queue.\r\n\r\n**Kind**: global class  \r\n\r\n* [TaskQueue](#TaskQueue)\r\n    * [new TaskQueue(queuedList, [listClass], [queueableClass])](#new_TaskQueue_new)\r\n    * [.dequeue()](#TaskQueue+dequeue) ⇒ <code>completeResponse</code> \\| <code>\\*</code>\r\n    * [.empty()](#TaskQueue+empty) ⇒ <code>boolean</code>\r\n    * [.enqueue(queueable)](#TaskQueue+enqueue)\r\n    * [.peek()](#TaskQueue+peek) ⇒ [<code>Queueable</code>](#Queueable)\r\n    * [.remove()](#TaskQueue+remove) ⇒ [<code>Queueable</code>](#Queueable) \\| <code>null</code>\r\n    * [.size()](#TaskQueue+size) ⇒ <code>number</code>\r\n\r\n<a name=\"new_TaskQueue_new\"></a>\r\n\r\n### new TaskQueue(queuedList, [listClass], [queueableClass])\r\nInstantiate the queue with the given queue list.\r\n\r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| queuedList | <code>Iterable</code> \\| [<code>LinkedList</code>](#LinkedList) | <code></code> | Give the list of queueables to start in this queue. |\r\n| [listClass] | <code>IsArrayable</code> | <code>LinkedList</code> | The type of list to create when no queued list is given. |\r\n| [queueableClass] | [<code>Queueable</code>](#Queueable) | <code>Queueable</code> | The class used to wrap queued items. |\r\n\r\n<a name=\"TaskQueue+dequeue\"></a>\r\n\r\n### taskQueue.dequeue() ⇒ <code>completeResponse</code> \\| <code>\\*</code>\r\nTake a queued task from the front of the queue and run it if ready. A task which is not ready yet is kept in the\r\nqueue (never dropped), a task which is still running is reported as blocking and left to finish on its own, and\r\ncompleted tasks are discarded.\r\n\r\n**Kind**: instance method of [<code>TaskQueue</code>](#TaskQueue)  \r\n<a name=\"TaskQueue+empty\"></a>\r\n\r\n### taskQueue.empty() ⇒ <code>boolean</code>\r\nReturn true if the queue is empty (there are no tasks in the queue list)\r\n\r\n**Kind**: instance method of [<code>TaskQueue</code>](#TaskQueue)  \r\n<a name=\"TaskQueue+enqueue\"></a>\r\n\r\n### taskQueue.enqueue(queueable)\r\nAdd a queued task to the end of the queue\r\n\r\n**Kind**: instance method of [<code>TaskQueue</code>](#TaskQueue)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| queueable | [<code>Queueable</code>](#Queueable) | Add a new queueable to the end of the queue |\r\n\r\n<a name=\"TaskQueue+peek\"></a>\r\n\r\n### taskQueue.peek() ⇒ [<code>Queueable</code>](#Queueable)\r\nTake a look at the next queued task\r\n\r\n**Kind**: instance method of [<code>TaskQueue</code>](#TaskQueue)  \r\n<a name=\"TaskQueue+remove\"></a>\r\n\r\n### taskQueue.remove() ⇒ [<code>Queueable</code>](#Queueable) \\| <code>null</code>\r\nRemove the next queued item and return it.\r\n\r\n**Kind**: instance method of [<code>TaskQueue</code>](#TaskQueue)  \r\n<a name=\"TaskQueue+size\"></a>\r\n\r\n### taskQueue.size() ⇒ <code>number</code>\r\nGet the length of the current queue.\r\n\r\n**Kind**: instance method of [<code>TaskQueue</code>](#TaskQueue)  \r\n<a name=\"Queueable\"></a>\r\n\r\n## Queueable ⇐ [<code>Linker</code>](#Linker)\r\nQueueable represents a runnable entry in a queue.\r\n\r\n**Kind**: global class  \r\n**Extends**: [<code>Linker</code>](#Linker)  \r\n\r\n* [Queueable](#Queueable) ⇐ [<code>Linker</code>](#Linker)\r\n    * [new Queueable([queueableData])](#new_Queueable_new)\r\n    * _instance_\r\n        * [.data](#Queueable+data)\r\n        * [.next](#Queueable+next)\r\n        * [.complete](#Queueable+complete)\r\n        * [.ready](#Queueable+ready)\r\n        * [.running](#Queueable+running)\r\n        * [.isReady](#Queueable+isReady) ⇒ <code>boolean</code>\r\n        * [.task](#Queueable+task) ⇒ <code>\\*</code>\r\n        * [.classType](#Linker+classType)\r\n        * [.markCompleted([completeResponse])](#Queueable+markCompleted) ⇒ <code>completeResponse</code>\r\n        * [.run()](#Queueable+run) ⇒ <code>completeResponse</code>\r\n    * _static_\r\n        * [.fromArray(values, [classType])](#Queueable.fromArray) ⇒ <code>Object</code>\r\n\r\n<a name=\"new_Queueable_new\"></a>\r\n\r\n### new Queueable([queueableData])\r\nCreate a queueable item that can be used in a queue.\r\n\r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| [queueableData] | <code>Object</code> | <code>{}</code> | The settings for the new queueable. |\r\n| [queueableData.task] | <code>\\*</code> | <code></code> | The data to be stored in this queueable |\r\n| [queueableData.next] | [<code>Queueable</code>](#Queueable) \\| <code>null</code> | <code></code> | The reference to the next queueable if any |\r\n| [queueableData.ready] | <code>boolean</code> \\| <code>function</code> | <code>false</code> | Indicate if the queueable is ready to run |\r\n\r\n<a name=\"Queueable+data\"></a>\r\n\r\n### queueable.data\r\nThe task (or data) this queueable holds.\r\n\r\n**Kind**: instance property of [<code>Queueable</code>](#Queueable)  \r\n**Overrides**: [<code>data</code>](#Linker+data)  \r\n<a name=\"Queueable+next\"></a>\r\n\r\n### queueable.next\r\nThe queueable after this one, or null when this is the last.\r\n\r\n**Kind**: instance property of [<code>Queueable</code>](#Queueable)  \r\n**Overrides**: [<code>next</code>](#Linker+next)  \r\n<a name=\"Queueable+complete\"></a>\r\n\r\n### queueable.complete\r\nWhether this queueable has been run to completion.\r\n\r\n**Kind**: instance property of [<code>Queueable</code>](#Queueable)  \r\n<a name=\"Queueable+ready\"></a>\r\n\r\n### queueable.ready\r\nWhether this queueable may run, or a function which answers that when asked.\r\n\r\n**Kind**: instance property of [<code>Queueable</code>](#Queueable)  \r\n<a name=\"Queueable+running\"></a>\r\n\r\n### queueable.running\r\nWhether this queueable is running right now.\r\n\r\n**Kind**: instance property of [<code>Queueable</code>](#Queueable)  \r\n<a name=\"Queueable+isReady\"></a>\r\n\r\n### queueable.isReady ⇒ <code>boolean</code>\r\nCheck ready state.\r\n\r\n**Kind**: instance property of [<code>Queueable</code>](#Queueable)  \r\n<a name=\"Queueable+task\"></a>\r\n\r\n### queueable.task ⇒ <code>\\*</code>\r\nRetrieve the data which should be formed as a task.\r\n\r\n**Kind**: instance property of [<code>Queueable</code>](#Queueable)  \r\n<a name=\"Linker+classType\"></a>\r\n\r\n### queueable.classType\r\nThe class used to create this instance, so that it can be recognized as valid without an instanceof check.\r\n\r\n**Kind**: instance property of [<code>Queueable</code>](#Queueable)  \r\n**Overrides**: [<code>classType</code>](#Linker+classType)  \r\n<a name=\"Queueable+markCompleted\"></a>\r\n\r\n### queueable.markCompleted([completeResponse]) ⇒ <code>completeResponse</code>\r\nSet this queueable as completed.\r\n\r\n**Kind**: instance method of [<code>Queueable</code>](#Queueable)  \r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| [completeResponse] | <code>Object</code> | <code>{}</code> | The result to report for the task. |\r\n| [completeResponse.success] | <code>\\*</code> | <code>true</code> | Indicate when the task failed (use false) or give a success message |\r\n| [completeResponse.error] | <code>\\*</code> | <code>false</code> | Indicate a task was error-free (use false) or give an error message |\r\n| [completeResponse.context] | <code>\\*</code> | <code></code> | Provide additional data in the response |\r\n\r\n<a name=\"Queueable+run\"></a>\r\n\r\n### queueable.run() ⇒ <code>completeResponse</code>\r\nIntend to run the queued task when it is ready. If ready, mark this task as running and run the task.\r\n\r\n**Kind**: instance method of [<code>Queueable</code>](#Queueable)  \r\n<a name=\"Queueable.fromArray\"></a>\r\n\r\n### Queueable.fromArray(values, [classType]) ⇒ <code>Object</code>\r\nConvert an array into Queueable instances, return the head and tail Queueables.\r\n\r\n**Kind**: static method of [<code>Queueable</code>](#Queueable)  \r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| values | <code>Array</code> |  | Provide an array of data that will be converted to a chain of queueable linkers. |\r\n| [classType] | <code>IsLinker</code> | <code>Queueable</code> | Provide the type of IsLinker to use. |\r\n\r\n<a name=\"Queue\"></a>\r\n\r\n## Queue\r\nA first-in-first-out collection: items are added to the back with enqueue and taken from the front with dequeue.\r\nAny value can be queued (it is stored as it is, whether it is a function, an object or null), and adding and taking\r\nare constant time. To queue tasks which are run as they are taken use TaskQueue.\r\n\r\n**Kind**: global class  \r\n\r\n* [Queue](#Queue)\r\n    * [new Queue([queuedList], [listClass], [linkerClass])](#new_Queue_new)\r\n    * [.dequeue()](#Queue+dequeue) ⇒ <code>\\*</code> \\| <code>null</code>\r\n    * [.empty()](#Queue+empty) ⇒ <code>boolean</code>\r\n    * [.enqueue(data)](#Queue+enqueue) ⇒ [<code>Queue</code>](#Queue)\r\n    * [.peek()](#Queue+peek) ⇒ <code>\\*</code> \\| <code>null</code>\r\n    * [.size()](#Queue+size) ⇒ <code>number</code>\r\n\r\n<a name=\"new_Queue_new\"></a>\r\n\r\n### new Queue([queuedList], [listClass], [linkerClass])\r\nInstantiate the queue, optionally with a list of items to start from.\r\n\r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| [queuedList] | <code>IsArrayable</code> \\| <code>null</code> | <code></code> | The list of linkers to start in this queue (the first is the front) |\r\n| [listClass] | <code>IsArrayable</code> | <code>LinkedList</code> | The type of list to create when no queued list is given |\r\n| [linkerClass] | [<code>Linker</code>](#Linker) | <code>Linker</code> | The class used to hold each queued item |\r\n\r\n<a name=\"Queue+dequeue\"></a>\r\n\r\n### queue.dequeue() ⇒ <code>\\*</code> \\| <code>null</code>\r\nTake the item from the front of the queue.\r\n\r\n**Kind**: instance method of [<code>Queue</code>](#Queue)  \r\n**Returns**: <code>\\*</code> \\| <code>null</code> - The item, or null when the queue is empty  \r\n<a name=\"Queue+empty\"></a>\r\n\r\n### queue.empty() ⇒ <code>boolean</code>\r\nCheck whether the queue has no items.\r\n\r\n**Kind**: instance method of [<code>Queue</code>](#Queue)  \r\n<a name=\"Queue+enqueue\"></a>\r\n\r\n### queue.enqueue(data) ⇒ [<code>Queue</code>](#Queue)\r\nAdd an item to the back of the queue.\r\n\r\n**Kind**: instance method of [<code>Queue</code>](#Queue)  \r\n**Returns**: [<code>Queue</code>](#Queue) - This queue, so that adding can be chained  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| data | <code>\\*</code> | The item to add |\r\n\r\n<a name=\"Queue+peek\"></a>\r\n\r\n### queue.peek() ⇒ <code>\\*</code> \\| <code>null</code>\r\nLook at the item at the front of the queue, without removing it.\r\n\r\n**Kind**: instance method of [<code>Queue</code>](#Queue)  \r\n**Returns**: <code>\\*</code> \\| <code>null</code> - The item, or null when the queue is empty  \r\n<a name=\"Queue+size\"></a>\r\n\r\n### queue.size() ⇒ <code>number</code>\r\nCount the items in the queue.\r\n\r\n**Kind**: instance method of [<code>Queue</code>](#Queue)  \r\n<a name=\"TreeLinker\"></a>\r\n\r\n## TreeLinker ⇐ [<code>DoubleLinker</code>](#DoubleLinker)\r\nTreeLinker represents a node in a LinkedTreeList having a parent (or root) and child nodes.\r\n\r\n**Kind**: global class  \r\n**Extends**: [<code>DoubleLinker</code>](#DoubleLinker)  \r\n\r\n* [TreeLinker](#TreeLinker) ⇐ [<code>DoubleLinker</code>](#DoubleLinker)\r\n    * [new TreeLinker([settings], listClass)](#new_TreeLinker_new)\r\n    * _instance_\r\n        * [.classType](#TreeLinker+classType)\r\n        * [.data](#TreeLinker+data)\r\n        * [.next](#TreeLinker+next)\r\n        * [.prev](#TreeLinker+prev)\r\n        * [.parent](#TreeLinker+parent)\r\n        * [.children](#TreeLinker+children)\r\n        * [.childrenFromArray(children, listClass)](#TreeLinker+childrenFromArray) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList) \\| <code>null</code>\r\n    * _static_\r\n        * [.fromArray([values], [classType])](#TreeLinker.fromArray) ⇒ <code>Object</code>\r\n\r\n<a name=\"new_TreeLinker_new\"></a>\r\n\r\n### new TreeLinker([settings], listClass)\r\nCreate the new TreeLinker instance, provide the data and optionally set references for next, prev, parent, or children.\r\n\r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| [settings] | <code>Object</code> | <code>{}</code> | The settings for the new tree node. |\r\n| [settings.data] | <code>\\*</code> | <code></code> | The data to be stored in this tree node |\r\n| [settings.next] | [<code>TreeLinker</code>](#TreeLinker) | <code></code> | The reference to the next linker if any |\r\n| [settings.prev] | [<code>TreeLinker</code>](#TreeLinker) | <code></code> | The reference to the previous linker if any |\r\n| [settings.children] | [<code>LinkedTreeList</code>](#LinkedTreeList) | <code></code> | The references to child linkers if any |\r\n| [settings.parent] | [<code>TreeLinker</code>](#TreeLinker) | <code></code> | The reference to a parent linker if any |\r\n| listClass | <code>IsArrayable.&lt;IsTreeNode&gt;</code> |  | Give the type of list to use for storing the children |\r\n\r\n<a name=\"TreeLinker+classType\"></a>\r\n\r\n### treeLinker.classType\r\nThe class used to create this instance, so that it can be recognized as valid without an instanceof check.\r\n\r\n**Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)  \r\n**Overrides**: [<code>classType</code>](#DoubleLinker+classType)  \r\n<a name=\"TreeLinker+data\"></a>\r\n\r\n### treeLinker.data\r\nThe data stored in this tree node.\r\n\r\n**Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)  \r\n**Overrides**: [<code>data</code>](#DoubleLinker+data)  \r\n<a name=\"TreeLinker+next\"></a>\r\n\r\n### treeLinker.next\r\nThe sibling after this node, or null when this is the last child.\r\n\r\n**Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)  \r\n**Overrides**: [<code>next</code>](#DoubleLinker+next)  \r\n<a name=\"TreeLinker+prev\"></a>\r\n\r\n### treeLinker.prev\r\nThe sibling before this node, or null when this is the first child.\r\n\r\n**Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)  \r\n**Overrides**: [<code>prev</code>](#DoubleLinker+prev)  \r\n<a name=\"TreeLinker+parent\"></a>\r\n\r\n### treeLinker.parent\r\nThe node this node is a child of, or null for a root node.\r\n\r\n**Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)  \r\n<a name=\"TreeLinker+children\"></a>\r\n\r\n### treeLinker.children\r\nThe list of the children of this node, or null when it has none.\r\n\r\n**Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)  \r\n<a name=\"TreeLinker+childrenFromArray\"></a>\r\n\r\n### treeLinker.childrenFromArray(children, listClass) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList) \\| <code>null</code>\r\nCreate the children for this tree from an array. Each child becomes a tree linker with this node as its parent: an\r\nexisting linker is kept as it is, an object with a data property gives the settings of the linker, and anything\r\nelse is the data of the linker.\r\n\r\n**Kind**: instance method of [<code>TreeLinker</code>](#TreeLinker)  \r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| children | <code>Array</code> \\| <code>null</code> | <code></code> | Provide an array of data / linker references to be children of this tree node. |\r\n| listClass | <code>IsArrayable.&lt;IsTreeNode&gt;</code> |  | Give the type of list to use for storing the children |\r\n\r\n<a name=\"TreeLinker.fromArray\"></a>\r\n\r\n### TreeLinker.fromArray([values], [classType]) ⇒ <code>Object</code>\r\nConvert an array into DoubleLinker instances, return the head and tail DoubleLinkers.\r\n\r\n**Kind**: static method of [<code>TreeLinker</code>](#TreeLinker)  \r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| [values] | <code>Array</code> | <code>[]</code> | Provide an array of data that will be converted to a chain of tree-linkers. |\r\n| [classType] | <code>IsTreeNode</code> | <code>TreeLinker</code> | Provide the type of IsTreeNode to use. |\r\n\r\n<a name=\"LinkedTreeList\"></a>\r\n\r\n## LinkedTreeList ⇐ [<code>DoublyLinkedList</code>](#DoublyLinkedList)\r\nLinkedTreeList represents a collection stored with a root and spreading in branching (tree) formation.\r\n\r\n**Kind**: global class  \r\n**Extends**: [<code>DoublyLinkedList</code>](#DoublyLinkedList)  \r\n\r\n* [LinkedTreeList](#LinkedTreeList) ⇐ [<code>DoublyLinkedList</code>](#DoublyLinkedList)\r\n    * [new LinkedTreeList([linkerClass])](#new_LinkedTreeList_new)\r\n    * [.classType](#LinkedTreeList+classType)\r\n    * [.innerList](#LinkedTreeList+innerList)\r\n    * [.initialized](#LinkedTreeList+initialized)\r\n    * [.tailCache](#LinkedTreeList+tailCache)\r\n    * [.countCache](#LinkedTreeList+countCache)\r\n    * [.ownerNode](#LinkedTreeList+ownerNode)\r\n    * [.list](#LinkedTreeList+list) ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\n    * [.first](#LinkedTreeList+first) ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\n    * [.last](#LinkedTreeList+last) ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\n    * [.length](#LinkedTreeList+length) ⇒ <code>number</code>\r\n    * [.parent](#LinkedTreeList+parent) ⇒ [<code>TreeLinker</code>](#TreeLinker) \\| <code>null</code>\r\n    * [.parent](#LinkedTreeList+parent)\r\n    * [.rootParent](#LinkedTreeList+rootParent) ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\n    * [.initialize(initialList)](#LinkedTreeList+initialize) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList)\r\n    * [.setChildren(item, [children])](#LinkedTreeList+setChildren)\r\n    * [.adopt(newNode)](#LinkedTreeList+adopt) ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\n    * [.insertAfter(node, newNode)](#LinkedTreeList+insertAfter) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList)\r\n    * [.insertBefore(node, newNode)](#LinkedTreeList+insertBefore) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList)\r\n    * [.append(node, after)](#LinkedTreeList+append) ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\n    * [.prepend(node, before)](#LinkedTreeList+prepend) ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\n    * [.remove(node)](#LinkedTreeList+remove) ⇒ [<code>TreeLinker</code>](#TreeLinker) \\| <code>null</code>\r\n    * [.reset()](#LinkedTreeList+reset) ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\n    * [.item(index)](#LinkedTreeList+item) ⇒ [<code>TreeLinker</code>](#TreeLinker) \\| <code>null</code>\r\n    * [.forEach(callback, thisArg)](#LinkedTreeList+forEach) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList)\r\n    * [.indexOfElement(node)](#Arrayable+indexOfElement) ⇒ <code>number</code>\r\n\r\n<a name=\"new_LinkedTreeList_new\"></a>\r\n\r\n### new LinkedTreeList([linkerClass])\r\nCreate the new LinkedTreeList instance, configure the list class.\r\n\r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| [linkerClass] | [<code>TreeLinker</code>](#TreeLinker) | <code>TreeLinker</code> | The class used to wrap given data as tree linkers. |\r\n\r\n<a name=\"LinkedTreeList+classType\"></a>\r\n\r\n### linkedTreeList.classType\r\nThe class used to create this instance, so that it can be recognized as valid without an instanceof check.\r\n\r\n**Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>classType</code>](#DoublyLinkedList+classType)  \r\n<a name=\"LinkedTreeList+innerList\"></a>\r\n\r\n### linkedTreeList.innerList\r\nA linker of the list (null when the list is empty); the head is found by walking back from it.\r\n\r\n**Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>innerList</code>](#DoublyLinkedList+innerList)  \r\n<a name=\"LinkedTreeList+initialized\"></a>\r\n\r\n### linkedTreeList.initialized\r\nWhether the inner list has been initialized (it can only be initialized once).\r\n\r\n**Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>initialized</code>](#DoublyLinkedList+initialized)  \r\n<a name=\"LinkedTreeList+tailCache\"></a>\r\n\r\n### linkedTreeList.tailCache\r\nThe last linker, remembered so that adding to the end does not need to walk the whole list (null when not known yet).\r\n\r\n**Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>tailCache</code>](#DoublyLinkedList+tailCache)  \r\n<a name=\"LinkedTreeList+countCache\"></a>\r\n\r\n### linkedTreeList.countCache\r\nThe number of linkers, kept up to date by the list's own methods so that the length does not need to walk the whole list (null when not known yet).\r\n\r\n**Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>countCache</code>](#DoublyLinkedList+countCache)  \r\n<a name=\"LinkedTreeList+ownerNode\"></a>\r\n\r\n### linkedTreeList.ownerNode\r\nThe node these linkers are the children of, remembered so that it is known even while the list is empty (undefined until it is known).\r\n\r\n**Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n<a name=\"LinkedTreeList+list\"></a>\r\n\r\n### linkedTreeList.list ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\nRetrieve the innerList used (the list itself, not a copy).\r\n\r\n**Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>list</code>](#DoublyLinkedList+list)  \r\n<a name=\"LinkedTreeList+first\"></a>\r\n\r\n### linkedTreeList.first ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\nRetrieve the first TreeLinker in the list.\r\n\r\n**Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>first</code>](#DoublyLinkedList+first)  \r\n<a name=\"LinkedTreeList+last\"></a>\r\n\r\n### linkedTreeList.last ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\nRetrieve the last TreeLinker in the list. The end is remembered, so this does not walk the list.\r\n\r\n**Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>last</code>](#DoublyLinkedList+last)  \r\n<a name=\"LinkedTreeList+length\"></a>\r\n\r\n### linkedTreeList.length ⇒ <code>number</code>\r\nReturn the length of the list. It is kept up to date by the list's own methods, so this does not walk the list\r\n(call reset() after linkers were changed directly).\r\n\r\n**Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>length</code>](#DoublyLinkedList+length)  \r\n<a name=\"LinkedTreeList+parent\"></a>\r\n\r\n### linkedTreeList.parent ⇒ [<code>TreeLinker</code>](#TreeLinker) \\| <code>null</code>\r\nGet the parent of this tree list: the node these linkers are the children of (remembered even while the list is\r\nempty), or null for the linkers at the top of a tree.\r\n\r\n**Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n<a name=\"LinkedTreeList+parent\"></a>\r\n\r\n### linkedTreeList.parent\r\nSet the parent of this tree list: every linker in it gets the node as its parent, and the node gets this list as its\r\nchildren. Linkers added to the list later get this parent too.\r\n\r\n**Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| parent | [<code>TreeLinker</code>](#TreeLinker) \\| <code>null</code> | The new node to use as the parent for this group of children |\r\n\r\n<a name=\"LinkedTreeList+rootParent\"></a>\r\n\r\n### linkedTreeList.rootParent ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\nReturn the root parent of the entire tree.\r\n\r\n**Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n<a name=\"LinkedTreeList+initialize\"></a>\r\n\r\n### linkedTreeList.initialize(initialList) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList)\r\nInitialize the inner list, should only run once.\r\n\r\n**Kind**: instance method of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>initialize</code>](#DoublyLinkedList+initialize)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| initialList | [<code>TreeLinker</code>](#TreeLinker) | Give the list of tree-linkers to start in this linked-tree-list. |\r\n\r\n<a name=\"LinkedTreeList+setChildren\"></a>\r\n\r\n### linkedTreeList.setChildren(item, [children])\r\nSet the children on a parent item.\r\n\r\n**Kind**: instance method of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Throws**:\r\n\r\n- <code>Error</code> When the item is not one of the linkers of this list\r\n\r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| item | [<code>TreeLinker</code>](#TreeLinker) |  | The TreeLinker node (one of the linkers of this list) that will be the parent of the children |\r\n| [children] | [<code>LinkedTreeList</code>](#LinkedTreeList) \\| <code>null</code> | <code></code> | The LinkedTreeList which has the child nodes to use, or null to remove the children of the item |\r\n\r\n<a name=\"LinkedTreeList+adopt\"></a>\r\n\r\n### linkedTreeList.adopt(newNode) ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\nMake a linker of the given node (or data) and make this list's parent its parent.\r\n\r\n**Kind**: instance method of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| newNode | [<code>TreeLinker</code>](#TreeLinker) \\| <code>\\*</code> | The node (or data) which is being added to this list |\r\n\r\n<a name=\"LinkedTreeList+insertAfter\"></a>\r\n\r\n### linkedTreeList.insertAfter(node, newNode) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList)\r\nInsert a new node (or data) after a node. The new node gets the parent of this list.\r\n\r\n**Kind**: instance method of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>insertAfter</code>](#DoublyLinkedList+insertAfter)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| node | [<code>TreeLinker</code>](#TreeLinker) \\| <code>\\*</code> | The existing node as reference, or null to insert at the start of the list |\r\n| newNode | [<code>TreeLinker</code>](#TreeLinker) \\| <code>\\*</code> | The new node to go after the existing node |\r\n\r\n<a name=\"LinkedTreeList+insertBefore\"></a>\r\n\r\n### linkedTreeList.insertBefore(node, newNode) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList)\r\nInsert a new node (or data) before a node. The new node gets the parent of this list.\r\n\r\n**Kind**: instance method of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>insertBefore</code>](#DoublyLinkedList+insertBefore)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| node | [<code>TreeLinker</code>](#TreeLinker) \\| <code>\\*</code> | The existing node as reference, or null to insert at the end of the list |\r\n| newNode | [<code>TreeLinker</code>](#TreeLinker) \\| <code>\\*</code> | The new node to go before the existing node |\r\n\r\n<a name=\"LinkedTreeList+append\"></a>\r\n\r\n### linkedTreeList.append(node, after) ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\nAdd a node (or data) after the given (or last) node in the list.\r\n\r\n**Kind**: instance method of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>append</code>](#DoublyLinkedList+append)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| node | [<code>TreeLinker</code>](#TreeLinker) \\| <code>\\*</code> | The new node to add to the end of the list |\r\n| after | [<code>TreeLinker</code>](#TreeLinker) | The existing last node |\r\n\r\n<a name=\"LinkedTreeList+prepend\"></a>\r\n\r\n### linkedTreeList.prepend(node, before) ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\nAdd a node (or data) before the given (or first) node in the list.\r\n\r\n**Kind**: instance method of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>prepend</code>](#DoublyLinkedList+prepend)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| node | [<code>TreeLinker</code>](#TreeLinker) \\| <code>\\*</code> | The new node to add to the start of the list |\r\n| before | [<code>TreeLinker</code>](#TreeLinker) | The existing first node |\r\n\r\n<a name=\"LinkedTreeList+remove\"></a>\r\n\r\n### linkedTreeList.remove(node) ⇒ [<code>TreeLinker</code>](#TreeLinker) \\| <code>null</code>\r\nRemove a linker from this linked list. The removed node no longer has a parent.\r\n\r\n**Kind**: instance method of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>remove</code>](#DoublyLinkedList+remove)  \r\n**Returns**: [<code>TreeLinker</code>](#TreeLinker) \\| <code>null</code> - The removed node, or null when there was nothing to remove  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| node | [<code>TreeLinker</code>](#TreeLinker) | The node we wish to remove (and it will be returned after removal) |\r\n\r\n<a name=\"LinkedTreeList+reset\"></a>\r\n\r\n### linkedTreeList.reset() ⇒ [<code>TreeLinker</code>](#TreeLinker)\r\nRefresh all references (the head, the end and the length) by walking the list once, and return the head. The\r\nlist's own methods keep these up to date, so this is only needed after linkers were changed directly.\r\n\r\n**Kind**: instance method of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>reset</code>](#DoublyLinkedList+reset)  \r\n<a name=\"LinkedTreeList+item\"></a>\r\n\r\n### linkedTreeList.item(index) ⇒ [<code>TreeLinker</code>](#TreeLinker) \\| <code>null</code>\r\nRetrieve a TreeLinker item from this list by numeric index, otherwise return null.\r\n\r\n**Kind**: instance method of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>item</code>](#DoublyLinkedList+item)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| index | <code>number</code> | The integer number for retrieving a node by position. |\r\n\r\n<a name=\"LinkedTreeList+forEach\"></a>\r\n\r\n### linkedTreeList.forEach(callback, thisArg) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList)\r\nBe able to run forEach on this LinkedTreeList to iterate over the TreeLinker Items.\r\n\r\n**Kind**: instance method of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>forEach</code>](#DoublyLinkedList+forEach)  \r\n**Returns**: [<code>LinkedTreeList</code>](#LinkedTreeList) - The list which was iterated.  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| callback | <code>forEachCallback</code> | The function to call for-each tree node |\r\n| thisArg | [<code>LinkedTreeList</code>](#LinkedTreeList) | Optional, 'this' reference |\r\n\r\n<a name=\"Arrayable+indexOfElement\"></a>\r\n\r\n### linkedTreeList.indexOfElement(node) ⇒ <code>number</code>\r\nFind the position of an element which must be in this list.\r\n\r\n**Kind**: instance method of [<code>LinkedTreeList</code>](#LinkedTreeList)  \r\n**Overrides**: [<code>indexOfElement</code>](#Arrayable+indexOfElement)  \r\n**Throws**:\r\n\r\n- <code>Error</code> When the element is not in this list\r\n\r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| node | [<code>ArrayElement</code>](#ArrayElement) | The element to find |\r\n\r\n<a name=\"Linker\"></a>\r\n\r\n## Linker ⇐ [<code>ArrayElement</code>](#ArrayElement)\r\nLinker represents a node in a LinkedList.\r\n\r\n**Kind**: global class  \r\n**Extends**: [<code>ArrayElement</code>](#ArrayElement)  \r\n\r\n* [Linker](#Linker) ⇐ [<code>ArrayElement</code>](#ArrayElement)\r\n    * [new Linker([nodeData])](#new_Linker_new)\r\n    * _instance_\r\n        * [.classType](#Linker+classType)\r\n        * [.data](#Linker+data)\r\n        * [.next](#Linker+next)\r\n    * _static_\r\n        * [.fromArray([values], [classType])](#Linker.fromArray) ⇒ <code>Object</code>\r\n\r\n<a name=\"new_Linker_new\"></a>\r\n\r\n### new Linker([nodeData])\r\nCreate the new Linker instance, provide the data and optionally give the next Linker.\r\n\r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| [nodeData] | <code>Object</code> | <code>{}</code> | The settings for the new linker. |\r\n| [nodeData.data] | <code>\\*</code> | <code></code> | The data to be stored in this linker |\r\n| [nodeData.next] | [<code>Linker</code>](#Linker) \\| <code>null</code> | <code></code> | The reference to the next linker if any |\r\n\r\n<a name=\"Linker+classType\"></a>\r\n\r\n### linker.classType\r\nThe class used to create this instance, so that it can be recognized as valid without an instanceof check.\r\n\r\n**Kind**: instance property of [<code>Linker</code>](#Linker)  \r\n**Overrides**: [<code>classType</code>](#ArrayElement+classType)  \r\n<a name=\"Linker+data\"></a>\r\n\r\n### linker.data\r\nThe data stored in this linker.\r\n\r\n**Kind**: instance property of [<code>Linker</code>](#Linker)  \r\n**Overrides**: [<code>data</code>](#ArrayElement+data)  \r\n<a name=\"Linker+next\"></a>\r\n\r\n### linker.next\r\nThe linker after this one, or null when this is the last.\r\n\r\n**Kind**: instance property of [<code>Linker</code>](#Linker)  \r\n<a name=\"Linker.fromArray\"></a>\r\n\r\n### Linker.fromArray([values], [classType]) ⇒ <code>Object</code>\r\nConvert an array into Linker instances, return the head and tail Linkers.\r\n\r\n**Kind**: static method of [<code>Linker</code>](#Linker)  \r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| [values] | <code>Array</code> | <code>[]</code> | Provide an array of data that will be converted to a chain of linkers. |\r\n| [classType] | <code>IsLinker</code> | <code>Linker</code> | Provide the type of IsLinker to use. |\r\n\r\n<a name=\"LinkedList\"></a>\r\n\r\n## LinkedList ⇐ [<code>Arrayable</code>](#Arrayable)\r\nLinkedList represents a collection stored as a LinkedList with next references.\r\n\r\n**Kind**: global class  \r\n**Extends**: [<code>Arrayable</code>](#Arrayable)  \r\n\r\n* [LinkedList](#LinkedList) ⇐ [<code>Arrayable</code>](#Arrayable)\r\n    * [new LinkedList([linkerClass])](#new_LinkedList_new)\r\n    * [.classType](#LinkedList+classType)\r\n    * [.innerList](#LinkedList+innerList)\r\n    * [.initialized](#LinkedList+initialized)\r\n    * [.tailCache](#LinkedList+tailCache)\r\n    * [.countCache](#LinkedList+countCache)\r\n    * [.list](#LinkedList+list) ⇒ [<code>Linker</code>](#Linker)\r\n    * [.first](#LinkedList+first) ⇒ [<code>Linker</code>](#Linker)\r\n    * [.last](#LinkedList+last) ⇒ [<code>Linker</code>](#Linker)\r\n    * [.length](#LinkedList+length) ⇒ <code>number</code>\r\n    * [.initialize(initialList)](#LinkedList+initialize) ⇒ [<code>LinkedList</code>](#LinkedList)\r\n    * [.insertAfter(node, newNode)](#LinkedList+insertAfter) ⇒ [<code>LinkedList</code>](#LinkedList)\r\n    * [.insertBefore(node, newNode)](#LinkedList+insertBefore) ⇒ [<code>LinkedList</code>](#LinkedList)\r\n    * [.append(node, after)](#LinkedList+append) ⇒ [<code>Linker</code>](#Linker)\r\n    * [.prepend(node, before)](#LinkedList+prepend) ⇒ [<code>Linker</code>](#Linker)\r\n    * [.remove(node)](#LinkedList+remove) ⇒ [<code>Linker</code>](#Linker) \\| <code>null</code>\r\n    * [.reset()](#LinkedList+reset) ⇒ [<code>Linker</code>](#Linker) \\| <code>null</code>\r\n    * [.item(index)](#LinkedList+item) ⇒ [<code>Linker</code>](#Linker) \\| <code>null</code>\r\n    * [.forEach(callback, thisArg)](#LinkedList+forEach) ⇒ [<code>LinkedList</code>](#LinkedList)\r\n    * [.indexOfElement(node)](#Arrayable+indexOfElement) ⇒ <code>number</code>\r\n\r\n<a name=\"new_LinkedList_new\"></a>\r\n\r\n### new LinkedList([linkerClass])\r\nCreate the new LinkedList instance.\r\n\r\n\r\n| Param | Type | Default | Description |\r\n| --- | --- | --- | --- |\r\n| [linkerClass] | [<code>Linker</code>](#Linker) | <code>Linker</code> | The class used to wrap given data as linkers. |\r\n\r\n<a name=\"LinkedList+classType\"></a>\r\n\r\n### linkedList.classType\r\nThe class used to create this instance, so that it can be recognized as valid without an instanceof check.\r\n\r\n**Kind**: instance property of [<code>LinkedList</code>](#LinkedList)  \r\n**Overrides**: [<code>classType</code>](#Arrayable+classType)  \r\n<a name=\"LinkedList+innerList\"></a>\r\n\r\n### linkedList.innerList\r\nThe first linker of the list (null when the list is empty), from which the whole list is reached.\r\n\r\n**Kind**: instance property of [<code>LinkedList</code>](#LinkedList)  \r\n**Overrides**: [<code>innerList</code>](#Arrayable+innerList)  \r\n<a name=\"LinkedList+initialized\"></a>\r\n\r\n### linkedList.initialized\r\nWhether the inner list has been initialized (it can only be initialized once).\r\n\r\n**Kind**: instance property of [<code>LinkedList</code>](#LinkedList)  \r\n**Overrides**: [<code>initialized</code>](#Arrayable+initialized)  \r\n<a name=\"LinkedList+tailCache\"></a>\r\n\r\n### linkedList.tailCache\r\nThe last linker, remembered so that adding to the end does not need to walk the whole list (null when not known yet).\r\n\r\n**Kind**: instance property of [<code>LinkedList</code>](#LinkedList)  \r\n<a name=\"LinkedList+countCache\"></a>\r\n\r\n### linkedList.countCache\r\nThe number of linkers, kept up to date by the list's own methods so that the length does not need to walk the whole list (null when not known yet).\r\n\r\n**Kind**: instance property of [<code>LinkedList</code>](#LinkedList)  \r\n<a name=\"LinkedList+list\"></a>\r\n\r\n### linkedList.list ⇒ [<code>Linker</code>](#Linker)\r\nRetrieve the innerList used (the list itself, not a copy).\r\n\r\n**Kind**: instance property of [<code>LinkedList</code>](#LinkedList)  \r\n**Overrides**: [<code>list</code>](#Arrayable+list)  \r\n<a name=\"LinkedList+first\"></a>\r\n\r\n### linkedList.first ⇒ [<code>Linker</code>](#Linker)\r\nRetrieve the first Linker in the list.\r\n\r\n**Kind**: instance property of [<code>LinkedList</code>](#LinkedList)  \r\n**Overrides**: [<code>first</code>](#Arrayable+first)  \r\n<a name=\"LinkedList+last\"></a>\r\n\r\n### linkedList.last ⇒ [<code>Linker</code>](#Linker)\r\nRetrieve the last Linker in the list. The end is remembered, so this does not walk the list.\r\n\r\n**Kind**: instance property of [<code>LinkedList</code>](#LinkedList)  \r\n**Overrides**: [<code>last</code>](#Arrayable+last)  \r\n<a name=\"LinkedList+length\"></a>\r\n\r\n### linkedList.length ⇒ <code>number</code>\r\nReturn the length of the list. It is kept up to date by the list's own methods, so this does not walk the list\r\n(call reset() after linkers were changed directly).\r\n\r\n**Kind**: instance property of [<code>LinkedList</code>](#LinkedList)  \r\n**Overrides**: [<code>length</code>](#Arrayable+length)  \r\n<a name=\"LinkedList+initialize\"></a>\r\n\r\n### linkedList.initialize(initialList) ⇒ [<code>LinkedList</code>](#LinkedList)\r\nInitialize the inner list, should only run once.\r\n\r\n**Kind**: instance method of [<code>LinkedList</code>](#LinkedList)  \r\n**Overrides**: [<code>initialize</code>](#Arrayable+initialize)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| initialList | [<code>Linker</code>](#Linker) \\| <code>Array</code> | Give the list of linkers to start in this linked-list. |\r\n\r\n<a name=\"LinkedList+insertAfter\"></a>\r\n\r\n### linkedList.insertAfter(node, newNode) ⇒ [<code>LinkedList</code>](#LinkedList)\r\nInsert a new node (or data) after a node.\r\n\r\n**Kind**: instance method of [<code>LinkedList</code>](#LinkedList)  \r\n**Overrides**: [<code>insertAfter</code>](#Arrayable+insertAfter)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| node | [<code>Linker</code>](#Linker) \\| <code>\\*</code> | The existing node as reference, or null to insert at the start of the list |\r\n| newNode | [<code>Linker</code>](#Linker) \\| <code>\\*</code> | The new node to go after the existing node |\r\n\r\n<a name=\"LinkedList+insertBefore\"></a>\r\n\r\n### linkedList.insertBefore(node, newNode) ⇒ [<code>LinkedList</code>](#LinkedList)\r\nInsert a new node (or data) before a node.\r\n\r\n**Kind**: instance method of [<code>LinkedList</code>](#LinkedList)  \r\n**Overrides**: [<code>insertBefore</code>](#Arrayable+insertBefore)  \r\n**Throws**:\r\n\r\n- <code>Error</code> When the reference node is not in this list\r\n\r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| node | [<code>Linker</code>](#Linker) \\| <code>\\*</code> | The existing node as reference, or null to insert at the end of the list |\r\n| newNode | [<code>Linker</code>](#Linker) \\| <code>\\*</code> | The new node to go before the existing node |\r\n\r\n<a name=\"LinkedList+append\"></a>\r\n\r\n### linkedList.append(node, after) ⇒ [<code>Linker</code>](#Linker)\r\nAdd a node (or data) after the given (or last) node in the list.\r\n\r\n**Kind**: instance method of [<code>LinkedList</code>](#LinkedList)  \r\n**Overrides**: [<code>append</code>](#Arrayable+append)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| node | [<code>Linker</code>](#Linker) \\| <code>\\*</code> | The new node to add to the end of the list |\r\n| after | [<code>Linker</code>](#Linker) | The existing last node |\r\n\r\n<a name=\"LinkedList+prepend\"></a>\r\n\r\n### linkedList.prepend(node, before) ⇒ [<code>Linker</code>](#Linker)\r\nAdd a node (or data) before the given (or first) node in the list.\r\n\r\n**Kind**: instance method of [<code>LinkedList</code>](#LinkedList)  \r\n**Overrides**: [<code>prepend</code>](#Arrayable+prepend)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| node | [<code>Linker</code>](#Linker) \\| <code>\\*</code> | The new node to add to the start of the list |\r\n| before | [<code>Linker</code>](#Linker) | The existing first node |\r\n\r\n<a name=\"LinkedList+remove\"></a>\r\n\r\n### linkedList.remove(node) ⇒ [<code>Linker</code>](#Linker) \\| <code>null</code>\r\nRemove a linker from this linked list.\r\n\r\n**Kind**: instance method of [<code>LinkedList</code>](#LinkedList)  \r\n**Overrides**: [<code>remove</code>](#Arrayable+remove)  \r\n**Returns**: [<code>Linker</code>](#Linker) \\| <code>null</code> - The removed node, or null when it was not in this list (nothing is removed)  \r\n\r\n| Param | Type | Description |\r\n| --- | --- | --- |\r\n| node | [<code>Linker</code>](#Linker) | The node we wish to remove (and it will be returned after removal) |\r\n\r\n<a name=\"LinkedList+reset\"></a>\r\n\r\n### linkedList.reset() ⇒ [<code>Linker</code>](#Linker) \\| <code>null</code>\r\nRefresh the remembered end and length of the list by walking it once. The list's own methods keep these up to date,\r\nso this is only needed af","readmeFilename":"README.md"}