{"_id":"@reapptor/ts-linq","_rev":"29-6f85dcac81eb0f2b98db12b8df853638","name":"@reapptor/ts-linq","dist-tags":{"latest":"1.0.48"},"versions":{"1.0.20":{"name":"@reapptor/ts-linq","version":"1.0.20","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.20","maintainers":[{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"dist":{"shasum":"3719ddad2a28103fb3854366cd8f5fa41dc84d48","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.20.tgz","fileCount":8,"integrity":"sha512-iewKtRb6dNZUikxSPQZGq+t/hrlPqLYB5tTrYzcihvORpG8DgE/+1Lb4vj90a7aVJFJlv2wloYhyOv1lgLlA6w==","signatures":[{"sig":"MEQCIA9Bvf8Qvf3cFwHlNNwIAeQAEM95qrZTP4yDPddayKrSAiApXUBKUOvvHUCaA3uP3+fq0D4qrFSIfA6KyNzCypXptg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61519,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBd6kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr5nQ//R0ccFiJLOSTrmcAe6iDbU3t3dehsxJ1A8v8BC6q+jUgJQgTh\r\nk1ynqdHPT6tXp3ST6931+IyUFj/WJ022qZEm4L4p+TqqY4Px73vKlUAllpDI\r\nPpCGkpR3Zjapwb7dKhtSar7rYhk0BWagQbzJSt3EG2cqtNJIzAQNZInEyynT\r\n1LqrKT4hwlcChxtqBEDD7ycPC4ZjzaMuw4+92WGRYFl8CC7nqTTreGAzE5+P\r\nXc3o/Mv8zs83WicFmc2l+IbbURPtAQeVZ4iw5zsyLIFOrDc3tMMWOtJEh6HX\r\n+U78W4bZjCDHf4GKWVgRVTE7Vm/BPslmUSazBjJRgiD7pSSZD+klXEEZHL3q\r\nFW/QsXkpYNWN/37xpO7768EdPM/XbAMFMITX9YP8zx9Z8JGnmAJTs+NOFaWv\r\ndiBn8f5VThPc8PH5dFKh+qsQ81PZVSpsVrzebVB86aHor3enjcBjqWniCiUz\r\nhXpdAav8AtXHng0m+PX1E737QwtU95AEVQI5IArY9URlBjA1XX0bbXmNRgvT\r\n+qxxfftFxY+chm65bgnOUCLPp1EiMSnqT3xQ0H0FUAeMKd8Xl47NLOBinOoH\r\nwtKLsYnGzH66lnhVD0GwmEfP8Ytd0U/K1rDJR2D81lPwt2a4+B4rr0UPwKd+\r\n14SydJOpN7Ajx3I8hU3LgsfhAtLxsazHdjw=\r\n=TfYd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"9ccc9aadc7ae2afbcc68c8d0802cfc74664b5417","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","publishConfig":{"access":"public","registry":"https://registry.npmjs.org","@reapptor:registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.20_1678106276609_0.3147096536853575","host":"s3://npm-registry-packages"}},"1.0.21":{"name":"@reapptor/ts-linq","version":"1.0.21","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.21","maintainers":[{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"dist":{"shasum":"aa4b8b02c9a5d60fd77c583a5d3f4a32fd41436a","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.21.tgz","fileCount":8,"integrity":"sha512-9pERcA8jC0TA8ClpsYG0rx1uW1qTMES89Ew02Hp3UPe1+vUxs6LbddemGjt5/88z0JuNcoES37xSG3HCxa9MwQ==","signatures":[{"sig":"MEYCIQD+EYfHkj3nMMQ9DB9S2X4qjvcdkl8RvqQW89c06x/uvQIhAIdKyLnVwxE0YveThqwTHVSrACoDEvyucjT72RZ3Ees4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61368,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBeCLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqu0g//S9W3P0AmbwZj5COW/OmFHxoOKigmav/wNnRft0MXKaJETT+5\r\nSbLlfIVrAL9+4WhOCmcLFyI1npzbQwLfmAdJp/ha1UPkVO8R+MgW9UpN85Cf\r\nlD9VusOw5ei3e9VmQFjmjGQOndPUOyEYxpJCz6teN9y5f3RnlS6ahLgz3z7b\r\nNn0iC9aUyCIjTimFphilIzap8JBcIEQ9zZEVcJkLnAI0wBM2xfbaqEW2+CHG\r\nZnMCEmuOSJbviOCE6WsA8CzgPTnELuMdym5MWdyxC2yJLucqC6o/fTZOPfAe\r\nu73k4bKUFKBvpREY4KfOY/cBZBy8rPNgMIzHqRQ5TAJ5ewqNMACaaqMa7TG3\r\n5iEeMNNQdTEFdB2OSPaAcjvfybLuD+Y0P7sXRv+QV2d3H8IBE44LS3IVfx0n\r\nv9Sd7FhQEzwgHlP0uId/14hzxRsjd8WZynoHjju3wQm1yn2Mgx5MiOPkbgVZ\r\nMgOpKzFR0jRnjysriWfFDFcttB3VcAIC5IO/Z4Ml5QGSVO9zz1pksAa3WSyq\r\n1QUD/0oY7T9DJW1N/n2RrDK/V30eLM7To6azRpKijtBazMafEBq3/g4BRiBL\r\nOhlVq0SNk3Tj2GPvslkAmRLeDu69Yg1ttq+Sfd0YIPWjLQc+aTJQhrIoOPOw\r\ncqWAvxCK9wIlLQJWbL+v8I+sEReTb5G3MwU=\r\n=p+VP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"9ccc9aadc7ae2afbcc68c8d0802cfc74664b5417","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.21_1678106763288_0.9084371671992817","host":"s3://npm-registry-packages"}},"1.0.22":{"name":"@reapptor/ts-linq","version":"1.0.22","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.22","maintainers":[{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues"},"dist":{"shasum":"3beeb19d1729b4300e13423a7700e57ee4541112","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.22.tgz","fileCount":8,"integrity":"sha512-6UqFrgH5HlYFLPOy62d8fC2NVA2FpmdJnGxnQ8y0ZjsFyPmCBUS3EaffXU4K04TbESq/T0SlD/mAN6Auga3+vA==","signatures":[{"sig":"MEUCIQCCLooiX5z9X26lorp3yaB+C26Px8z/H2N3WQyKAqnrhgIgWojFNGIfSkagRT0B2lRU/PnUiBMLTQb22rpibniY1FI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61546,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBePsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpFVA/9G+z9s4IiFeByyQ6JXa+8Jy044HA10xu3QyOI53ABENLYA/x7\r\nEJw86oTgUrt3EjJgDruPMlfkMiRk1fMfAWYswVWEbYn4iO1+zOpkG7GdbuI8\r\n9mQr/3JZbbQIDjbW6sAYz7ewR6Y6vavf2YjQQ8+D0D7v0o8j6M7b2+eD8cXW\r\nu8zzKocmVZ9IjN7kmZULS5Z4JpgdwY6S/qTVEZyj07RYjEnTtLkWnFxQdYrZ\r\nKwG/KBw+gxMA1O9+BXnig4+n4xa8vSfeh0WAQs0FSHl79lXh2ulUzGQDq07/\r\nkyRQE+CeTfhdATS9RnMwrKSjDBH1KNvW4D+jTNCNBPMsX8IWdAPS33MNAAG9\r\nChlX1ghrwFIh9ctvzrzagVIcZ9tlhGiL7VDJNjXk1RM1e5Vsx4z1TWeeLnyG\r\nUB8L0EEEGVffBFfpBfvoe6PP7sfhrxP6iC1S0URIDG0a8Hw39yQ7l7bekLpk\r\nJxKk0BOscmxJ4lLjYDj24p4uyn7foIBhmJjot0J/tWSdyO59kmGcSbuNfBrY\r\nQU2WUjhFnfdmii4NwoDE6v4O34542sBHww3af6Mg735TAX/2TcgcfkI9fF+n\r\nAF1DawiZiZ6FEvTjBpB7l6H9VA/rQq3cL1Bwa/K7AIsbppbq7im99/W5/wXy\r\nI0saRYsg9INcYSwXx7wI4Whol1yJwARVojs=\r\n=S5zP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"9ccc9aadc7ae2afbcc68c8d0802cfc74664b5417","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.22_1678107628306_0.20496042404915982","host":"s3://npm-registry-packages"}},"1.0.23":{"name":"@reapptor/ts-linq","version":"1.0.23","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.23","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"4b6662a495a70a4f94f3b281cfe96017c12a23b2","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.23.tgz","fileCount":8,"integrity":"sha512-cSi9WVASkv/cZQlH2GoB54VxrR+rRVdIXCAwfuThCHH63Pvf++SRCePq55p6ktn2VVqma6Kts/JQUnZKt/JBXw==","signatures":[{"sig":"MEYCIQCXWrsoLkwij+1jQIlEBaZ+MEqbvcdKwL5kI4DCkglZEQIhAM9SC7zeLSgskkECZzeXYTKnsBjjJUU1GeHaF7jFgM9W","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64967,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkB4hQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmry/xAAotArEuLGEdbqjbevvCEo3nczWmTz1rpDEzUYQJevtC25+Rn9\r\nh3FKePdh3gTDa/FfoppRrjrt1jDyuKnSafK5CYhVMqgQF9htImAY0FUxi0Od\r\nTplMu3LsNDDFvdd9zgFh7yT1eU0glV9F6iImF/QDJRzjN4wiySkDLIn+Uyfk\r\nzI0llJLqGhYtb6bv2zyxBEIDgvTd19/D2XcUphsmh9XbJMOKrnEmXGQMRT+8\r\nLXqt10/49Y8nWdpHZvvigI9eTeRJzy0RVY2ItO8wHRHCPhStGKqneTpR1lo9\r\n+aUGzOK1Mwnj3GuV8ew5BTf/jk49Lb5hPXoBV7G2acPsGI7oCX5dUo5j0vXJ\r\nUNdkGsuZONNLTluZzUNjsSCPuO1V6VAHCIQW17XgZNZIHBnqKLX8BOoevpbV\r\naZJTl4K4ukaK3fhEWzHE0Oio9D4qW2gDp94OVVJskCBXFnUZVCIzG1uPdYW4\r\nK68edCQ5i0z4Gxiv4pLWXz35/3pAq5Iw1Qs7mAF3gj/TGm19Xyd18moiVXuk\r\nrRbwrCz79t/EL9iQAl14Z3o/y/fIYoPHgVp7vrBsY4tiUsHLZyVtmzFv2Q98\r\nmQBm22H360VYxHNANjMw1J89AlkiBG3cqg6i7R/nPkTrNROFd5k8EAUrByac\r\ni8Vb+vBH26ObAv2sinHFAeYrFpgdlck32Xw=\r\n=Vfp1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"e1b204aaf865edd763bd64eb9ece598c7c79f447","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.23_1678215247980_0.6317656414351136","host":"s3://npm-registry-packages"}},"1.0.24":{"name":"@reapptor/ts-linq","version":"1.0.24","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.24","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"d31c21e71d93e2af69487519f7514f62be5bda42","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.24.tgz","fileCount":8,"integrity":"sha512-TjVyk/aMPyV93CDBFt1g92wW746s8fQ+mJWPQRmompbIvRXL1GQ1KKLGlMRZfncImX2XMgt2NRhrRg9PNslfaA==","signatures":[{"sig":"MEQCIG6lRZt+s8fE8tUgPwUr7yKTASh5J8zHPBcWUQx6CoJ1AiBBdQmn17nkwkzlYTIGhGF6j/57ZgIB4wgdb3dBUfRyRw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68057,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCJY1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqH8hAAo7sDDNP3c50WrrpriYOqkcPS+qpjZ4hVbtS5xrHDrstkfvhJ\r\n0iAOQm5TVUmB3RisgQLLucEKOiWLYSNU5lqMGZSH9jDdqjdME13enMbcmqwQ\r\nd/h2+wRxlgYcEnZ97xtlaAKJA53DbJ++PDS0/w6JbihvJUfq0v9joOo2tWIh\r\n1591d/hDafomWcgOz6FKVifAcXaC6P6yhtQnrIr/ylaJe6F53C4vo9DnPVrT\r\nKDNiyRGjo/gLLz0uNTcXjHj87MnBu17GGByZRec0pcipBTIFrr14KbuKL7AX\r\n/4xAYL1NmiJbWgUp6izddfqsANGR5ROvo3KpsfST05Fh5w957T6RIhCcfgtu\r\nxr6dlM5Vr6+43dDjsJbhYIMgCjuM4po86Rm78Tpom0TEm6vUtl3V3IDTCmCQ\r\nf7Emy70GZhUkXr7YYwf3Amuqz+NqUPhVwVIQWXSQplwv4mct+K+uSL9ZQgql\r\nTjRSS41rNY2SZedI4oITF89jaGaM0iPtTx9rWjKB/a4iR/72cMhOmDZe70Sh\r\n/PciHavPtdXTTjRKucfBw+Hkd6CKyjcnJHf15lqiBZ4zMT+rFlyJV6LYDb0Y\r\nzU6XA9w9hB+X/sWlR20CYG90WXz+jQYA3Ru3KetuKMEBwQC4zWVpkJOP9W8C\r\nQXs/cku3sdHISladtal7mzc2wgX9H811tY0=\r\n=8mfj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"3e38047d8463b0531525a3921aff67767320029c","private":false,"_npmUser":{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.4.0","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"19.6.0","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.24_1678284341721_0.02049792927056715","host":"s3://npm-registry-packages"}},"1.0.25":{"name":"@reapptor/ts-linq","version":"1.0.25","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.25","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"bdd531313c3fad3d0cd7231e716d047fd7a12803","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.25.tgz","fileCount":8,"integrity":"sha512-OITgNAJdJ6g8pBdVC3LnP0SrhI3Rgte4kPOj2ZjfhkN+5RhEGwIOBS5II0UjMYTZbswbf1Itj+c1BkO5W+dMBA==","signatures":[{"sig":"MEUCIBnB/Ey1e5KA0t4HpTlz3Opmr0eiUk93d69P2qK80tjPAiEAgdrMic5tDaL3wlqQx/WmgvOoav6AuxZhewOeXQRu6iE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68912,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCMHgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqsrg/+IMknt2f93Lb8H0crovlDMyHgzty85DumMB3hU+GiOOSDkL1R\r\nBPY6pLajTfAb1DBCWk9w7qGG/raPn0V1REaZrr8+4+Yod8yCX8V2QW8UZzxY\r\n1Ro6bjYmkG12zha2fTpFabEAw0fOHppM5Ig5Goy/Fl0D9mqb1PvwsRu8WRq4\r\n5npwi5rA+EODeGZtE6jTyDvv1tXMEb+KG7DNQl4OZ+zUL+EmvDkITt2meLa3\r\nil13NBCGfNbrcROljoElGHpGWBGQMrSHk4BLGSiUm54vDWmtq6Anu3ofDaDg\r\nzxg6Yl/tuYoMBg4m1B160rECDzwwKuYU2tf74U+9UkJSeqcZvcAdOCHbVaAC\r\nDhMxpgsxAKmrcCHdopRbTMYFd6pP1E1P+SygSUtTend0cKFIpfXj2/iIZTmL\r\nIXsomvwLWehgGv+Kq3ayyqthPp+zwhYBX8SRJEIig9nc2Zg5lXlDvIS4VMbO\r\nl8TuIZfy2xsAomq2gfhu6idambORYRT2QBB1yjzzfAmIUTCdTyC1bX7UBq0T\r\nNXUxxTmIoVH3N0QD/TwuZvxmm6e5pmaVfwKiwPiabbiHjAAeDSg2wrhMz5CW\r\n8dqZSjwvkLAmbz2yjio66HcfhZkkxHqh4S7HICHumwpg98Z6O3MG1y1d20YB\r\nPLhGObM7fYVSzN7LXBYJtvKtnOt+GrylrnQ=\r\n=zeHZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"e0556b45e33ebe966e9077819e4d3b9112c73002","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.25_1678295520660_0.46352987109680877","host":"s3://npm-registry-packages"}},"1.0.26":{"name":"@reapptor/ts-linq","version":"1.0.26","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.26","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"54cd1dfdea99745fb1f26be8a14b0f8ac741b835","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.26.tgz","fileCount":8,"integrity":"sha512-U6vIzP61a3siVft1gF1HRKgaC8T2eY+03oePvoaydg4mRWXsGLAAur0HpdTc6Tt9JlP6w/4XFV/30en4EkfJ/g==","signatures":[{"sig":"MEUCIQCt4mHWP2rEyfeHT+Hbe6tq5OeUxF1hgXtujTtwWyQ+KAIgHgj6VM3hk7LGYEjueCKfkbqG+1d68XtvDLakznJ2M1E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":69290,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCa/BACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpqEw//VTmhjS2c2ucFFJdfC774iW2ZEjW1foXQHW70Z66eBgEhSKwC\r\nNYdoc9Eh1XVfjeBODR4IcutueZJoU3oC4xf8QJ5vSfvHOr8MTxJd5gMIGOfb\r\nmUNFH6rUDHf+FIBN6sCUwChDekJiaP5WT1BSwwNM+ogY4GWlpJKsc9ISUm1q\r\nRQDrLuSDsZ8nzR1fUTfI+EQZamieuGLoTkmEU8mNFhHL9d1XoCNBN/3l3BuV\r\nL4IgcnKmNpcBYgyvyqknzrvvudeVEED93vX01OjyJ6kMP/ulvWqEiUvkVjVW\r\nGmcZ9tCnzUm0KqK/lbHTf8lg5kT1VKMLuxcsiwytR+B8K0PiYN3H+vzT9CfU\r\nwFuTWJ4j9viuOiVuhc6fBCsecNUZ9B0oxQg5jFG9a5LvNDgkkdV6vWbDNpEi\r\n8/cH7Ir2tEoMnPsbcgAS2acXr83IxqoWMt+4lXzfFQXbtp0oBOYTphlkgK27\r\n4Tm/n3xLqrjiUuztFa+GSOnPeI8y/JRYFxuqvvHqFnDzO/pp6qlzfeuYTcqI\r\n6UTKm1CN+BlXC+2wM9jNIwogpWwZi51mqzH6Bt1AUB5iUi4StzMQUgyv5djC\r\n7b5t6MYJWzaOeQnJwPK8cIVEcvXGdGtHG+os+nsupfh2cHiN0CqZydANvttD\r\nTR37gE3EulxAK+MwkPieN2OCgCZvuEiACt0=\r\n=G/du\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"97cb05e640edcc8e607b3a535c01d0490ebb8ac6","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.26_1678356416940_0.19906705800119773","host":"s3://npm-registry-packages"}},"1.0.27":{"name":"@reapptor/ts-linq","version":"1.0.27","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.27","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"deda56a6c629b06d4bf5830a3e2da06c9ea03309","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.27.tgz","fileCount":8,"integrity":"sha512-0A3FSzLRpxD2y0eG177eZRpF+1HC0yFGZRlLABsDj4pqqzTK0aJtDQTmvXsUMjcDLrdEG7Eq5nO6vzhwpOaboQ==","signatures":[{"sig":"MEQCIBkMN/JJa7262K/QBPHvLHYcVJZ7plmicPf2nWrwRMC4AiBtJ9Yy3yXlDSMyAOyeTqGUTJ92LJuWqx1g1eDY87pXag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70354,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCcMEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqc0A//boSMVISsGivnXbHv6iXp12Kwjm8MfDtx2dmAnzAfDtX5zwKv\r\nA45jzHfq37KNJSwpzadraOqjh2xhM/bNmV7rIYOYuRNmvseYLrC+oa1hhG+2\r\n7TDQQkVgoiU7iWNjLZdxGv8S89nLYhUsvAMM+RpN4Xlf1Lx7HQFEAEUhvc0+\r\nOjuK8/AVgrvs06637RTCQ+PsgVLjj23w9gCd/pyZFbmA1XxxEKwdvPxiTlWc\r\nwPlejQBAiCktjBxLJeWADXe+3/WfPZkSlsA2DYXHoyqJihx4/8NePdjlA027\r\nBC/gtutlDNN67l4B9m9N57xeZ/s4BjqcUH5PU3wki0ZXUzd7iwM6PfMTmhqn\r\nl6le/LY+QfrwdbwuW8a7mKVXKKkR5D0yWI1SUqYJap6Uuxs8zEHhgCRXk1Qn\r\ninI1JST7i4nWmddmGq0s2z8cVfojVvAHaXo+Ujh9+LF66sQsX2+fooZw/eGt\r\nRXYxUPUa8TxoZ6xE5rJcqUspZs1zuJUtCZ+kSdVy+TZfYwTy+OjZaU8VlBe4\r\nuo2OXGXvEsLK8QI5yhE2tU4pFO3AlZ6l7LfCifNUv57L5G9fCFpxpaUc6Dzj\r\nFNlCxKAP9LAuOLhgSIZKFZr9WkQaSrLZMLGLdbOFR48LAQrSPJw+97GgoqWf\r\nbDxeVcgPTe1JwCzYYpYNlOyGz2TuAtuJn5E=\r\n=zJfd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"481e0973750857d7d84ab9cfa4d353052974bc0e","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.27_1678361348142_0.7874453609832202","host":"s3://npm-registry-packages"}},"1.0.28":{"name":"@reapptor/ts-linq","version":"1.0.28","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.28","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"f31a19880a0ed84d183dc632f2b54d911479a894","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.28.tgz","fileCount":8,"integrity":"sha512-WwF+Kq2pmv5sNMLN5eG6Zoi1wJEZkRcml4bftHxpEd6hVumJK7hMjIXDBxeWwcdSKgx8+QjkQG6j1MKgREaY3w==","signatures":[{"sig":"MEUCICHOO41h8E5RinHfxmQnf+1kPAZ9D4q2/3mp66fjjS2kAiEAiMOuXRKhrllNYEEFdxsHvGxe/cA/zneCAUn8pBOv89s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74338,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDH0qACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoLiw/9EnTOf2dbbU5m6gVGfpfWR3/T/udKQTEZjUHxeLkWtEz9vVlF\r\nSrF6SV0/5FbxPrdgDNJDCEO/XhCrSJ3UAz6kij+T5gaf6/7hDfE/VJ+yfA7P\r\nSy9ngRmVpzAW12iGn8RWBs+sioFCsDchOI0RRKKiyfxyeaJGDAIqu4wrzu4C\r\n8V6XvM2sw9/IbkGuqxPzQXKqwPyclaUMazXgnHpCMur+a47dakHKsHG2uXCV\r\nm6Lc3fBZGBOzveWehdfxD11/dmxXG2da+QWhxzmQP2zmDSnO29Z9pTV7oTNl\r\nqY2y6g9TPPfedwVlaOQPsBZhg/bxmI3dby13hz7GYmH13sQXqrz0K/KG35vL\r\nfeI7H+lXOlb68F/GzKxw1wicWbJxAZsm5CdfmEHQmeRpEXbtR4CIgV82+Z5d\r\nRjx2AFbqA56p81lrPm47WjlU99UasPOV3e4N2ufBfguLJMK2DhyKZLmsmrCG\r\ncNA3RcEZP1CsOAi2TElt7mvlabaYrl2lxvViHN2R92lhRlzb6oNFYTSgAPGM\r\nlYhTHcpLMWOxd/tlD20HMhtzD/sphLpvPbjaVBZQqIkEhrIQqLDgvRtmeKom\r\nUNkBrWMm4zkKYWOuvnCwPAaEe0low76X0M1vIBzcLrttnc5kjHjGa7rc6mAS\r\nijwxwygLSffatQJU1L1T4oKzVLL9/GIpmHw=\r\n=ft/E\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"ea0ed9ab30a793f9b484a97e0665842552911b6e","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.28_1678540073949_0.4083110595513444","host":"s3://npm-registry-packages"}},"1.0.29":{"name":"@reapptor/ts-linq","version":"1.0.29","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.29","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"f6dcc2e91d0ad85da482c7d9b4c26bda22757abd","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.29.tgz","fileCount":8,"integrity":"sha512-qxsTQhNmRWRdKQKpeeZAbskGQh/DthGU29VN5LG7iYJdhvKTzyt/76jRoWi2GXb/5RADfXuoVB55gZFa9SqtVw==","signatures":[{"sig":"MEYCIQDLGsNOCLCk1RXBL9GRL39CcKf6g6FC8MgSnIP9OEC4XgIhAI4xP6DikYc2PM/icL9bXASHOZmpdro6QlSpWRVjxw4q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":76002,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDITMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqetQ//XUbtWNHZh8jLILYNW6JocsYu1C9kb/dzHaVmUAdH1izSbbmE\r\njrF7Ggskz4QDRRH2g8/CFXjrl1zTpnjTy+2m29R/LNx5JMVffPvgZVsm7WcE\r\nVyBMHEqSB1yUQ9r/VQKcKKDCYZHsxIHZcM+yZmGEZ2DVo8IQ+HZUkgyBS4Xw\r\nQn+8zy1KZwu1MXjrHAbcvH4qkAsckIxonOt36BM171Hth1r/kPr5GmbB5pB3\r\nLvCBRt6/9GW3Vm5BQs8zmJxTR2HeuZYCoco3e1FGDT6/YAKDxFwUVQmKZ4gc\r\n/P5F65H+FXSakZoNVFFjwNACh2mNnH34mhxdkW+oNjl0pViWK3txYSwA36Ar\r\nGg8iC/uvLE1gxsiJRyDtBmhd2c7Xe2ud2k/W0p55ASKyUlY/ImzF56SAe/6K\r\nwDWvb5djkKlh/0makNbR/5l4AEB54JqTJjCdDNVPMWFwQ8U/w4b8V16RpLIs\r\nDOCwSC/NX8kZyGmyg8Yfoyq5eQwfEwp0mb3WDWvbWZp2ddXELIB1mlVC070D\r\n1SMB0aARXijjTxcGjnke73+GTl0DVtpZPIRvRaqVxFdr58o/LjWoAzYfRhtH\r\nC7LDXms5qUaoRCiJvBgS2Mu5kFkDAv5RLUw7D3InxttHYfiRZd12/NqvMPw1\r\nqZCgzlgZvioMDhXi7Rk2qZ/WrQI7A8DZrIs=\r\n=YQLg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"a286f77f881983f301dcacfe459c826a3e27ca94","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.29_1678542028748_0.42997355743378307","host":"s3://npm-registry-packages"}},"1.0.30":{"name":"@reapptor/ts-linq","version":"1.0.30","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.30","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"ed7439a7d9142696d3c4cec672a1c1bab2f7768c","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.30.tgz","fileCount":8,"integrity":"sha512-wtLdQ2Kk8ffWw9jwm8rWEsXGEoTaZffqSzyyW5u8ABbMkKYTUv48brtFnSsmL9ePmkREfWptDqcT7Z0BTuuyDA==","signatures":[{"sig":"MEYCIQC4oIu+laruKVGgrQ3teKR+5lZ5PbsVlMplRuuHEJiGFwIhAJAUiNl1BCpIze5jpI+iTHzv5en8jZ06WQUBqMNSgOnH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":77624,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDJJDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrZOA//TphTwUn5iVQEQTCZpr7WoQGoaDUWRK9ljlUvZf4mRj//Q3/F\r\ndbkxzqrIDB4JXL4nduN+fVqYKbGbuWk/tAo/VgvZ/p+nk87VQSZ2aOCOQ5HC\r\nVTBwfndKYeeUABL44TsnoGmeLs2XGkEXNBIMAWLrXGeYjVD9UTmh4yQaSham\r\nrx5kdK1PsGPYo4OgPQ5NpHOA/zaHGoLVPXbJkKFr2q8rcGuaypcR9hhlaS2U\r\nMi6JWpD4n29CBuRTfAn4LWua7xlPm/x0Ab3oSd582VCszk943OE1HR2fnCr0\r\nVEusgd27uNNVC0O40vNRRcoMhk/XA4WvbQ1UB/P/zQQCeSzLAftFRziC0mHK\r\nWw2GypfFTGmZP/j87Ww5o9zbNLzGuJ/LzUVaNNY6tlUxtYym9rbZNNY90lXn\r\n8iavkBPaN+fhbOallJLF5Jym9ecmGWka+ykdzismenG1pmnCZoHjVscjt3gI\r\ntqsoeI0+A5uTPvlMMfhQNiwm6uHv+jZN6PmwMVN8cXp+XfhZd+7x56AyZChX\r\nMR/h8K1BuFWhIJlFA/KMt4dNYsvEQfTTVzcUagqpC4BZVqLElw+6BnWXdxDf\r\nTM/buQxphSgzOzo1NufDDDDqBpB9Evj6t5bFoHeSrdJcXW+7/6K6NDn+6PXB\r\n2N/a2zhnng+aETdRTuFJlhBHiWXI/P4SyIA=\r\n=K+C1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"690cf048d21a6d4ca61ebcb4638bbe90a0397fd9","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.30_1678545475555_0.25910250961344206","host":"s3://npm-registry-packages"}},"1.0.31":{"name":"@reapptor/ts-linq","version":"1.0.31","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.31","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"b9c228ebd7d54179add480024d58d59058083534","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.31.tgz","fileCount":8,"integrity":"sha512-9XkLTY8bL8MVvJPnFs47lnuGmcz0fqeOR4Oyu++RgpUgMJNlxg8o1jwthmNpB3PJDsFqlg60gSe+zycTcpuUfA==","signatures":[{"sig":"MEUCICWdqt8mI6Mierh9WPunR1uPrFDtcT6PMAyDcCFEfhzyAiEAlzKqVA/8vAjSY8N+wbSKrimjVMnr7zfbA/p17eVdrAA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":79099,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEDRdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmowpA//b2e/4qVkWG97FpkG62os4iLqFmj4+kWaJHhaNjvC4IsGb2J7\r\nPpR1uSCQJH5B2bOJWcVUt2C/95uH7BB44to684zO8zEwc4dordfX6z/AN04j\r\nducz4xUa4g5ITOAs91ty6PH1mcYksZaPqK7smozz64lIyx4GrQW1eMeuhAMz\r\nYXnYF+PHj2APNUvxxoZX+FEzEl0ddXKdQbDmmuqfVQtYEIkc/oiz2FvPkMHH\r\nsSoCaCEI7yppGmWSzlGvxiiFiK4ts1p2jH5pkv4LW73GsRmD73+iZKPYfHnB\r\nNhUK5F4i+F9wyMu9f/eTjS/vMOJaB3jp1vOQguh0iVt9mn3C1rtydJNCmQZL\r\nEDRjpDIt+8bgiD6SncSZTlRJaJly1AFje7BbswkqmrXo4Z3p3OmjwX8uN3gz\r\nrDsQ+iWynyBdTtZuUc49IHBm7MTJVGJhAUgAMZojWs7ENcEyrSiCXnzqYwgY\r\nYHY+EjWyRLRmb1Y6UwtijwjAuAN5XC9bege2k7K9znZmR9pYLQMa36HxPazv\r\n+2wUWpyTSmOPpklN8tit9/l2eG9D7EQYjlcrCi2Uhl4uMMkUTjf5NhzBM2H+\r\nWuujPxgVIrzhWibwcOxUgI4T1+rktkW+OmsYnL38awNPYdQ7G5fdfqTZWSYG\r\nG7ImjfGSyAJuvn5NfltclRPd+89Xxr7GQmc=\r\n=PrIN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"740d36ef6a836bddb767c7386f409e5b2915ec25","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.31_1678783581208_0.24255316025418994","host":"s3://npm-registry-packages"}},"1.0.32":{"name":"@reapptor/ts-linq","version":"1.0.32","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.32","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"ef0e1bc2471d3cbd8ebfe66f206bd2e75aad6007","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.32.tgz","fileCount":8,"integrity":"sha512-XfvccPkrD8BrlP20/3QXBUvKq3C3D5WZhY0rXbI9p0Uec0gyfVXNT22jOp2iDI29c25rnQkJEOSUc2p99h6HcA==","signatures":[{"sig":"MEYCIQC1JpgyAe0voB1QYzZVjmZ2K/7+cdUvG4/ZJpTex9KRCAIhAN5mvuPA0XgJJ53APIR6CYH2N3IY9e6VEwDje3q9Ty+K","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":81150,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEipTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr/0xAAm7jDnhdBBm6h5jcftJdj3mvoOOXy3CGNqgu/JkL3IrIezYwG\r\n+oAhBRUil34dlf9joCbOnfcfEdLwe2Pf2E7SvFR3hQtxu5vxjFd5S5f3ibXv\r\nK4tZZWCPIOclTzPGUMhp28NPC2YlHCLYyK3R50oTaGzudTuuA5qUHs2C+PLL\r\nRIQ249V9VPfGXNRINy9D8yAaydjvNImMAksc9osrTvlXqpneb7WpGg4co7CV\r\nYGhs6xyiCyBM9nZ5LMJNQ5RuU2fRpU3dF4B0NKb/jviu+8F5oTZ4dtOU42iy\r\nuH77JvI4OaOiPwHp9THLC4lhNPtsHtLQOTljjmawx7a+x6gu/2scXXH3n/gx\r\nuu7anAMTW99V3i4NN6iOxkMMtRDxKrgQnoQ7mrwj/3Kym11TMoBONY1cFMVX\r\nuD+Iolg9WsWJ9dP7689rvb/r/6Ry2QmsY9eL1WQrfn0nWU5Hq12gUBxc/dQn\r\n+ZXV4rwyzzOaaEMPeTIPnbNrIsg3d75OT47pVnY5O3h6iZwb7JExPibfVDMo\r\n24lFp8MfuMZXvl3WBQEgR6czQg2DO/A9loY8xntgREouKrWGfN26omM72Noq\r\nF5HiMGtsDH1abSfmQWl1KuCMo4KbUAB8WyH8juL69R3FvZD37mfjTGUUn0LF\r\nSXak5+E9XpQ2zCeBd4nC+cJ6Ja6En9Zo0nk=\r\n=WLLT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"709d6a92f64c8cc35ed64c272dd57d7fddc26c75","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.32_1678912083028_0.8726114781153609","host":"s3://npm-registry-packages"}},"1.0.33":{"name":"@reapptor/ts-linq","version":"1.0.33","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.33","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"87e054bbbc5ed248451c70e3b02191f278cdcee1","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.33.tgz","fileCount":8,"integrity":"sha512-SNWTA+Mj4wdC9PMWJ8gRPj80DTT71rJdQc+HcRGmIQm11N8pjLqfVcz+jqLVk2CYrZP7LhjrVRAwqwUuCN69aw==","signatures":[{"sig":"MEUCIQDB6bjIS8KnjeIZJ2nkLyuxWH9xNA+r7Kh/8rSW1paJgAIgSZ1TXdwPgaQj+p3Mnd2kZuWkOLhVpmpMPHLJCRGeZN8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":81862,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEzEQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrUCQ//fZhtPuohFkSMd2+WqepOvn9UlJU7gxkkN/t8AQZIG8PAck+g\r\nC846sqDZN43PqGOktVw80CPWrRPh5AeaTNNyHe8GSb01DGG1ON3Q/KyyL+eV\r\nBXlhddP3Pswx7j3SN1tcj8wmOGxlK7anZ4+bTpKO1b4YqxSz145CSJjX1QC1\r\nqnGSZ9W11PaMhKO7bCuTF3/jnGKJOuqiqUSIXqWFM1FsazdW6shYRj2Z+u7V\r\nxUdYASC+cboQInrP7uQq/pIBSRe+GEJrL/czhmj0KetXci3M5MGnd/Klhof2\r\nJ16rud2nBojeqPsEOVZh2E2e3B2VobDNRmPVD9CkMH4fGArmm7gsS/nB/uxU\r\n1u0ssKNhH2i+chrvEiyNqM5jaXnPJI/NgR56oCOOD6fFr3934Q5cc33xq+y1\r\n9N0beEjQr98wZwd1lzjpFyhSKkRaHKRQxMe5XZVjsPwxiBcbBjOzRDKZNUKO\r\nAFsKHobqBAvNSKrwmval+3w+w4cGdHYC/yrwDk7rOcgus4zVxWpsMxQQidJS\r\n8e/1NS6E2Dj9q6IakSDEWW80zXT0mk5pbNLkO+N7LxuoMf+aZcZ8I0q0qosk\r\nQPzlEeMKT/hG2N6e9Ucx+UbFOjjU1wy+ccbiuwssDq9hqFMKBK/gDFZKSq2M\r\n1g/Aqy8ECKBiT6pJebeXG+ZuRy7CalPWUn0=\r\n=sKhs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"ab78a3ee4569013f8fe9166529b424bb2b91329f","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.33_1678979344133_0.18197587752879518","host":"s3://npm-registry-packages"}},"1.0.34":{"name":"@reapptor/ts-linq","version":"1.0.34","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.34","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"d87541d6bbf07cd714a5cef79e35f155f906d20f","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.34.tgz","fileCount":8,"integrity":"sha512-yROZElcVMY15rL7DPM9nMZ1EQ2Lz1QGa1pbXvOgG7I/0eMBe2SQEGdpmjEyGcYmnGyFzY9rOAkkaZXgZDscgQw==","signatures":[{"sig":"MEUCIAyAjNtPg16s6OQzVdBDRbrt+xG/Vo3r52iN7XxWdoBKAiEAnk2ktAjts9OweAjNlkOrj81D24c9gAvEN52vB5FLu+s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":82990,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkE3kpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmompg//bYtfRajntkstwDZY5y90/lPyMO6BPv2LohMzkU2/k87xOBsb\r\nsnX5FBrc7BMWuo+GN+dSYcm+hlv4T6XAs9WRg85VIf+aCPjRMLBuWi2kW5z+\r\n8KM8MUJWrWl54Wc8aI1NDPVhGIs5BiwPaFyt5CaHq5m8tGGsO+Ho6EGzif8y\r\niqr/5Fa3JGeLvLYTGkQ6M8RjeGDBQ8uOJ25/fqlKmAvzI7r0reik3MNWMtby\r\nZCUF7eEYVTAkWBEArFNqDl2XwGCtGebzgbLSyGqsPI4aC7JaMFR0GMhCFIOL\r\nW6X8vZoE/sBRtz3vSiBNQPDHRrQQZgZQmi2k5xWBUKSVSEf9J5VH8bZk6MGM\r\n5sDA+GJXOQPQqOzwq4dQre5bu5UBTYj49WGdCavsuWWrgLV7uTp5ZnATu3Cs\r\nW4U+2Dr3eFGPcU22S148pY3Ak7aLxMGJEU1U1HG39xa6MKwldh7b0qVVHlcH\r\nlPVrFt3amGMoKWeKJGJhcDXOm6GE2EBTEni5mHb68EAxC0x69a+buPxQ0Z9y\r\nzu+82Ad+YGxWQ5Ix3G3K9fZ+GAjXwpEXnfEctOcm0x4sU3N1gzfkJ3fsy0Zz\r\nQUIxvAFL+zg34H9Icz/GdRdjPUH/yta+f/eyBfa6zIgVSAUjfqm7HTnWO5WJ\r\nndGDnbniVlUlyB9citOUNS9lJwBb/OmOGYM=\r\n=7uHS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"d6c9dac79dec716cf657bfa34b09a9c05c947ba9","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.34_1678997800895_0.5413856053577324","host":"s3://npm-registry-packages"}},"1.0.35":{"name":"@reapptor/ts-linq","version":"1.0.35","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.35","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"c4511f1dd32d19d9bc7a8a8e7be4725016b4ac51","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.35.tgz","fileCount":8,"integrity":"sha512-L1JFEcTzinfWGhVXoQM4YmQvOub+G2fSXizzvIlV7FK0Y9ANPzrJbKa2rTp/b7ixEwVDLdTxqpZ2B+Pfvc8YLQ==","signatures":[{"sig":"MEYCIQDg8XgqOsbBOYJPbKynVoZlzZ/Z5Sa4jPsxlRASh84neQIhAL7IJHzvdiisvSJSpPCkplBJc2gHKrVa40Zq6iZ722ef","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":85495,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkE3mSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpcMw/+LWiZVw3D6oXXLxIDn/L+0tkwzIo/ObsKGxRTtUK41Ql54UgD\r\nGQuefQcgjOF8mFVxfSLM+lFBZgfIuO/ucOdSNpNRts76Ob7lwEu8kos/Jmo0\r\nRohMjnudXktTIeib2q8lbEpIYq1GpwXyH5mpONLqOsZwIoW9iliyD3vTBGOP\r\njcSTyNKQO8WP9FRo0DC8Y2KYvZ5gqQTuiMbECNpLgqu/6wRRsmEY85EFU8xY\r\n+lJ+IpHU2He39fzNtw+Tcf+Dthzsxs1DQKnF91cwKp5Kkiof67+qQabIlysG\r\nBs/+Dz0nOmCvVlnV+acAEWYEObPkfYkKSGZPV7UPutLolfkICt/l87yK0AeY\r\nf/ykg7eCKky7kjaofWWAaxN84jnLwTcaklF2c/CeFaRVayfz6ubqIh7D9/fC\r\nI7v6ROxrDzIyNau3wOCynUgwr/+2n87pTvzsQaXmzx34oVfsJNj8DyJVzOm6\r\n7N2ZNtlChcIBKb4F6ny7wYCVoC1hFqI7OTk2DoKhPYShrQBbjFKdAkAS/4Gw\r\n/6Rl3FyY1C3uCGqA18yRFUvnHDCLHUL0O4pVS1D/CT4PBEBOlNrKlMaYXPtO\r\nk/bUTTf4vyYuHcT6/vLJAcY+3OAYJJaAaJMGBr3uY66kdJClbjK7Bx29dWjN\r\nRJv7cJ3yU4+UpRhWajhYtUVPLWpTBBNrcdM=\r\n=kscI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"bedf684eb57feacc72b172088bdcc9b1a68fee65","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.35_1678997906103_0.2513833414372275","host":"s3://npm-registry-packages"}},"1.0.36":{"name":"@reapptor/ts-linq","version":"1.0.36","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.36","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"d4ac7c5afcceaaaa1cbf5eaf6a3068f2819a33ce","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.36.tgz","fileCount":8,"integrity":"sha512-aKTPcyVyoOQZ0kLz2PvTpdeA3Nf51LPqEk5fXXQlXqpoWSrEUUTHysBTqK/oXSLdqTPNsx8nY1p1a9qnBj8d1Q==","signatures":[{"sig":"MEQCIGWM3NlFbOT91eS/HcMpNWpqWgXG9zyWUn/m+u/jPBILAiBAEqQ54XlJEGrr2/onTrZbUeEgaErebb3O1FuHsnaqbA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":85826,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkFaToACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmogGg/+Ogmm/aK0CREM9zjWoTtKYpnzs4swK6bd82ID5TubyUP85d25\r\nk3sw3tPaBFfIGIBI6l6M8R37BbXOfzukDePs1S3caL4S3sLzPyKhhcfLkqU/\r\nZlv8THrSB+lwzIWfy/V6oTblfYKHhtYd35MkLUogWYI9xtkgnsaOiTNHETQI\r\n4I3PVDY/QxUXiADB/BCA9U/xUW7VpmeY2Go8jeJ+/zQhKMinH0acmEldDJRp\r\nnAkBtdtesQatGeMLUSnmSLqW8pr83a+pFxmqtcJLfUTDFEHycqBW3SvYDRh2\r\n1KiE7d7kG9b3VSMEwBKU/rF1ovNn72L1G+xXOqaOhfrTmA+uA6UfOkkE5Su4\r\ngxbTfRF9ykN0tlFZ3YIlvPsgVwA0AyRgeA+0u8F1MPLzMvN6Go2Jf3oXY4fR\r\nxD7+1vwV380G4Zm9imTQChPOVvpuimpO51rAzdXGxaWT/ChHDAaHTvjrgIcm\r\nk3C7/Z6pxkh3WGK11jEoAYMuf1JtLJhNidLAUGnQnJDKV9Av6q32d86CCDlq\r\n47NsDApP/nWLEjxPhEOu8lJh/NsW3s/yiPeYcxrNaz9TkjFPn7qWT7SuWwf0\r\nuxEC02QTXDc0agVvKZdhVSS1uQxT+pJIyD0hg1J5QNfzonw5JNkn2jotIwuF\r\nuB9f3o5MSCxOjX3dcnyT8UcM/SV5OQp0ZE0=\r\n=C3kK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"df852e30f32158efd878c453c5bbfbf95aca15bc","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.36_1679140072529_0.29738920539682456","host":"s3://npm-registry-packages"}},"1.0.37":{"name":"@reapptor/ts-linq","version":"1.0.37","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.37","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"8b6b92e12c13496801975f1d94aa862516af301b","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.37.tgz","fileCount":8,"integrity":"sha512-Y50rG3F62X+BGu8x9ivuRqI+EjOKAVbXGo4GW8B82T524D1NNFNDbI4d+6f6jaJeCaQSOgQzahlaaW5FGX6tkA==","signatures":[{"sig":"MEYCIQD2RKo9hfLRtrCw4et8EVwKy88Dsv8kD/cmnC8wZ26SKAIhAKmkkz2V038OjquAzP0uqZ0z/zf7WLkwx50lTT+7pUpq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":84864,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkFah9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrMtw/8C+59hZw5auaQKPzd+TwSWd8y+fYbmT/293g0x30FGuzBXINd\r\naqmOBum1HSBGeSRYxEMzAaBUDptl1hqFyR44zLowmQJtZaw6+oMJnl5cHBDr\r\ndHP5YaEIy9HpCLH+bNTb+xJiaqf9yGG7Z9eGgyZEX4SG7BPVw/mIWiyHr2t5\r\nhaHw/QiFtejdiBi2SarEz9r+Ln2ZllyghuP6GDlcUdKlBSud7L5y0LWQY0aw\r\npEs33pvo92bm5vIXMUfxrfxI15CtV337ovL+mgzsIBDcqerh1SNzY7TlrApm\r\nLDOOtv1qTgIozKgRdi5TwP33EOLmZyJVA5YrhbuQOCNfaUaJOQFgWAQbz9aU\r\nqZKIYV1aK19fMnRr9+gImToM8hmBWEHVYl416ybP2cwyq0sl7PONc7a9U8Vk\r\nRXl4zAwS5z1pXy+XMH05UIst6wDGLJci3PLPdgMJ9FQWe2s5atCe3CYAb1om\r\nS6BKFLBnnXAG+qen43Ojc71KFm+NYEAX9gL7mQaUvQiXI7cC1zuVkH3LfAUf\r\nqDZGUa4a1bzSHXcU7/NhOGN+v72bkylpH4GUEpXnS0NwtSmlm9oaUywegCox\r\nIWqMeKC+O3itahlLcEHAnseIguQrQ8cZbERLzLnG0wZDE6hpMZ0kAJpYbeLg\r\nObBwqM7reZcLasUt6oVYePpFOAIQcsbXZ9c=\r\n=qG2q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"813a0d13e4fa53aa93a99fcaf46547010f9c67d0","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.37_1679140989675_0.3943009708022238","host":"s3://npm-registry-packages"}},"1.0.38":{"name":"@reapptor/ts-linq","version":"1.0.38","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.38","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"d07d53d8fed117c2a3b7395316052f4bbda526d7","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.38.tgz","fileCount":8,"integrity":"sha512-csJvzcqhj/89xS9Wwo1yA6K0LaqxnHnNuVO8iMrU2q8XpA9VSwV8Ndj86LLGH6F601Pcg6u7TbIUz5GpA/0Oyg==","signatures":[{"sig":"MEUCIG99thM7mGBEXKCO8sujUIS7TDAnbSxyjQG2Bb8ytUc8AiEArFhN3n7AKt8WwmKu0tHhxatSd33ASoQ86xOEdF8/RLo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":84404,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkG2L9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQGQ/+PeDFuy5o1YoPj2izK+kLDLAOUoA9WdZHxXi4XM8EsnOlagSa\r\nE5JoA0Yaia7mF7503MwD9Wm7NmCnsWBja9MiN2J2bvONrzliHdqCCcfL0bbk\r\ntKQQ4TFT9HJ+JoyxSwj8NZZEfWnbUQAFFgCpxIoChNpoDEndA6oqshMeXIWl\r\nwggMNKEJcY1xX07nbivbynb48/YHSu+QpSgPhoTelI1aLlajpeAdXuOtsDNp\r\n+qG5TTND37My1LmFTlThwUG9+OMU8TVNELkhpVfpu3eboiYnThqNEEGDHTX3\r\noxbonGci5fY0VXfNjgie7xkYgI5r9CUZIkRfYaJxzqa1yIVZyFgBMmMwquio\r\n9SwE7phFAInllIHb1/S6vRsWRbhCC62jUons3HBhrPl2jjvoFFZbxb62VmjN\r\n8+PTV4Buu4ssC1VbUX1huYaG2Ovr1d3KYe+g6cnRHcyZIsl+79DB/sPBJ/LC\r\nGFxsNQ3LvAqo0l/QejCBdtxKxne4iRIsj7orNvO0cdu61XFyp4VmMyaTZxhj\r\nuNxsERCpE6WUcWrCqJ+s9PzobHP03vbi8czSQfNshp2j4RAcUBEOR64zu+Ao\r\nbKfwBnE1VyJl+5qwSpML8wMwi3noryyNxo1BfU9/fi56O9fxzwL8dEfEUZjf\r\n069eIF0C9i4Csu+KFLdRFueQKrKhxeTQw7E=\r\n=eGsq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"f084a2a874734aefb1ddf1194f4b9350136834ab","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.38_1679516413540_0.2909571966550992","host":"s3://npm-registry-packages"}},"1.0.39":{"name":"@reapptor/ts-linq","version":"1.0.39","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.39","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"a4db4731f4ece68f620efdf673f5b7361dc7e6bb","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.39.tgz","fileCount":8,"integrity":"sha512-skD9e86UuoAgB/2dOkSdLoECdg8LmFPgFILNyaykOFb5DXScRrBC+n6crV5d2jbPI4oXCZpU2utoqJYosyq38w==","signatures":[{"sig":"MEUCIFHDY8zqysqtK0U7mbAfVxTpAidbujFk9NY3vbQOuB1sAiEAmOHVh6yfWoAo+5hC8TomwwIUk5cTr3Y+YpM51BcuOKU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":84404,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIU/JACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp4fBAAoDgK8xhEdoPa6Rl4ON3D0VstUWP9DXSrQ5IcXGRJcPQF+Yeo\r\nae/QSQvQpREstZUpUzxpzTTGiXwSi9TkPAhnmCro8u8OnjhKruk7XZBkYqjd\r\npN7I7+P0XSxwwQS7uft0GsqxuIDMEtiNWSyous4kzlbrUREGc3O2XHG4ACMy\r\nZVP2c/KzSjaYwHxVNXx6fQVAyiPRym6IFdLH+JmhskM7hq8iyCplMW+gEZLU\r\nlnJl8V1YCyt+us6YqelrfHYNtkiv235F5kWCG0hwsC5wVsSC1zrV4yh3TY3b\r\nHF7B0vruFBEIl0H/6ubbf0XnIgN3rrWD8h+31qXTO0EEaX3stVRjMKFoeBHZ\r\nVkA/zOlk4oKau6mvgsvBAj4+Aj/6aQBJeRLUbvJIXenzO0XEGiE/322lJemr\r\nqia9PCBg1ZTp2GKKH8BgeE/Mv1wGGUYzvEEPAfpjfwjBFpcAviV8CJTtO+ct\r\n3Y/uqcU8Pvr7XfblG7kHcHI8IzyxR1SteSSbfXMLs5TYbXGy+2uKte3BUdM/\r\nJU/6Y900+vnHaXEi6qEOLN8weI5el9qMe/tKpWNCpuxlK+zaikTwPY3lWEz8\r\nMkPIlWEarcrPQ0DouLk1ZmBleo87Vh1zmWOeWnQcXindErvRXKoqvxk/HjrD\r\nckN/eBI5IM69sPRhkVbw3D3lTi/NILVVxRY=\r\n=Xu4k\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"d4b8aba1479d4a270dac603d87e2ac212c40e656","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.39_1679904712928_0.16962233205582344","host":"s3://npm-registry-packages"}},"1.0.40":{"name":"@reapptor/ts-linq","version":"1.0.40","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.40","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"c67b9c70e6638e0ab4a17748efabd24212a2bd8b","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.40.tgz","fileCount":8,"integrity":"sha512-FTP+qD8++Ivrtqa5aeDrjLLX4S2I2kRL8C9sQQXzklX4SJS/UHSPH7n7e3O2TrJVW6w5ynJ71P+C8HKdQpU5Bg==","signatures":[{"sig":"MEQCIGw+aAUnm2ew5E5uqjphdOAkaA+cKC3AMB73aCl1/8OBAiBahwvWHh56vfXDMteLL4qu64cWmuoFd8CdnrGvheFgCQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":84834,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIzugACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoblhAAiHqyS0HI5lSWR7GU6X+boPhGPDa8U6OlMR5Lxo4A69entiuu\r\ngRK5H4rdbdO7fpg7AuMdGyQGMLRG0xeF2Tp7bdheknq64xj6p35IN1XB6E/+\r\nYpO7H3TwY0KUzSBDGll7Km8Ya3YRCMmupsqZqP00TZPoYRQggHaT4Tn5kLFr\r\nvIrVe2xe92j7pZuv5SNAn0BoQMQEmoW3pltvBY5K+hlSl6T6B3iUssxck9VN\r\nf/G6Rrp/LJ/p4rVNFbik0Se3vISrxI6AS9rUbrtghmWFqNyJnceKlraPxGYg\r\ndNHGIs1APJs30Bg8iMFj1pQh+Z7ixHO7tLwhEjroK+Qog1zPNBad0xQxPg2O\r\nqh3kHakV0pjmjyBw+cMJwTRXgKIqc4R3OVOWaNNVmNkw0PLr/zTS8ttI+6Hh\r\nWRc5b8GBBKS2e3UwrI2OL5k9lf85bxzv+omAbvYQhKzFev/ppuYPFcQCo/TW\r\nTVfigmr1xLKzcqMZoFEV/dCshRQUBFlya9njzrHLLs4h8aGb4H0LtljO3ZLn\r\np5De/iqRKfbFYD79k3rH+NYAicZPe51BH+LiUkS5bVkVZHDEqWLZCr5qeQyN\r\n+fp931rPr/hp7Xkng+wylEqSF1NCqAwwvnub80MU3TONhAPZd6V8yoDyn25W\r\nki/VQwwiWo1dFKhvvuE8CL3hT77Apu56Om8=\r\n=42dt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"c640a160f9f8d106468e81938350bbf548b908a6","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.40_1680030624657_0.28828408059032706","host":"s3://npm-registry-packages"}},"1.0.41":{"name":"@reapptor/ts-linq","version":"1.0.41","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension","npm","github"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.41","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"31aa24b635cc18a2d9dba617a0571b2bfbce1ddc","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.41.tgz","fileCount":8,"integrity":"sha512-YcBLhIEadHDPyPmJxiKJBj4fUnrTCoATQaFKfrxIvg2aJHIW85q3kH6id9GieX4NIADx3YJcnGQBEz+fimNWIQ==","signatures":[{"sig":"MEQCIE1dfbpmyeZyJZe03TL5wO5kW7kEPNHCCDu9XGEs5p4hAiB6ymSy8RtHoslik+v5xQKMntMKpxm0waycM7mP9pkPaA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":84977,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJbFIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpKiw//dQaMlvgpg/fO00SQxj+HOFoh6hSqJzfjdEmxE8zMp7jrLbM6\r\nEhyUf0AGj8rA6fd/i5X9ua9Cbf9f6MjbZ1IuZMI+o2EZlVIZh2vWQnVMT4PO\r\nKM3+WZIzRsolwy9JBc+Qfb8/WQTwrC9E9BrvMKB7o8+fhMoTNe74PyvdaMl/\r\nHBqQtZ0C/ugPbDDjhSZxo3Py2A0iAL2McAL6Ej+fiqkb/56sI2KdcE3ZdfC3\r\n7fKeNKDtQbZRZ7z6y5q2xsonzp6wyy+x9RcdHGBerRVZ0XofTo7/EwSDoCZZ\r\nMu89vVZDv3M/rCJq8QigJKB6ZfKNxKFPIkKnXcE0QXtCy713K6nzMM7pNJCO\r\nEP3sBDk8Rw8CeuwlSxxzKg95mjTMjWF4+0XkSQNCf2Y81qX4E8JLh2kuqx3L\r\nZ624i6fgKfzZMoRAtIHSzUoqijlfb5+x6+g132+ALSfx4gLKC01Nya50KEeu\r\nxly1kJiYPaFdAbo2V2/aOBAaJNowAP6HzBTI0NFmZ/OvGq1FRZz2HvSDbZDe\r\nbCtw4iJW3nxNyrUQwpthJz2B9NVv3f19B5H5uywZ0IDhw+S4mQ5UqIfwNXgK\r\nfQZ6WnWnEU7NGf+NRpWZc2EZAYEhQIvduFb9sY/+D2cyJ7/Oy6WBtq5/TE53\r\n8S/7N/E7aGXoe/Nsdl06yYv/rE6KXRp4hmk=\r\n=fUi5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"7110e3b7c4083927c4158e6e6c85c6d180dc0bb7","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.41_1680191815901_0.1610853999962456","host":"s3://npm-registry-packages"}},"1.0.43":{"name":"@reapptor/ts-linq","version":"1.0.43","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension","npm","github"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.43","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"751fa678e349a1e6e9c5e8885b0e0ec98ae24634","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.43.tgz","fileCount":8,"integrity":"sha512-tEQd02alO/6EJ657MadZBLF0qqdt8X1Vti24ifkcn5tqC/TVYQaITnP0ctFSOySaaKIziGPdTYN5s7G5tZm5Uw==","signatures":[{"sig":"MEQCICvBecLYVdAr2Fx+9dM8AHNwZ06ns4ptl1+MrVZbV2lNAiBlyt6dGGk94bq/3kcdJlkTac5d3Z+MWT/5SXdKz5dpCg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkKDIqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrbzg//WoLRMHWEVLh54sdMeUmZC+eniKjbHMVBSXnJTlRwOvzZaEzs\r\npPriPmB8TQUUA+s1V0HHMsHhYEk+hlZvK6UrjhactXGN5Q8K0UoId+jfqL52\r\nEdQt/mZI0OZ6JaU0Gd1WUvFjAX8GJydob/YR70SNNcPg0+efh4ZNx0NqWLkY\r\nSMQqeuWTf8FQKbKsPL2rNPK0Y+HXRPbBZlvqfTPTl4e2jzs9HNpe/tsCmN66\r\nddY5vHhLOn+YalOmsMeu4sAM9ArCWNOxDAy8OhFYk0sxQkTqV8Om0THKePGa\r\n3CvA5GSj/1O1A/6YVoVKIDDOAELd4wXBvWbkHJcOyT3qcmIdMyhh9xCiBtgb\r\ntODVwvzqrtaRI2xtYRTyyTMXIITWLKSRGiH72TUCsc0qwHaACBS4P7RiWxDB\r\ni37maw/i9LRc3a+5lGz8IpwE7/Ch6hwLc+XIq/XtjQPOrTShFRJPwvEWIZQk\r\nJn7VICy0Xc+kbne+f5LhroVkYDOfFjd4Akgn1Xl9up4Qo0OT+rtj4EV3HJNX\r\nKi5pV4npMpPI8bHamtOe7sJUJp4ti1WG2804vfb8DwNI5FeNNHoRom6XWzOs\r\nl0EgzwzRJPq7hblIK1Wo2zjsUhXD0iLH6/euzODw5I8VsIxXVK+kIQqcsBi7\r\ntRynVjmMQoPF53rkhRn1cBX7Jk1QfbcoaYw=\r\n=WUvW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"eb227a6b803fbd0ebd79277faa88d9df6127d719","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.43_1680355882262_0.8338714554946236","host":"s3://npm-registry-packages"}},"1.0.44":{"name":"@reapptor/ts-linq","version":"1.0.44","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension","npm","github"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.44","maintainers":[{"name":"romanglnd","email":"bazuka278@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"1f40b8f09c445a067e69e5cf86be0b5afd756c10","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.44.tgz","fileCount":8,"integrity":"sha512-v4agyb7zqUfYIG/QEUP+uyRt66kmIw4mc4vFszqmAATkLKKo+bhF/GZW7eJ9v1MxzcLuUDZ+WUJ1WKLH1hA88g==","signatures":[{"sig":"MEQCIHJguEAZQju/qgB78G69jhKL68dGlatzHhuLVuibewMcAiBs6myqO7CZkirOBbUVTVyB7gjySFPjMZkrEh/LQsrpFg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92211},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"d4126f12d006f2928ba32d5c438ed0a7854513f1","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"9.1.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.44_1687686878314_0.9664862319146108","host":"s3://npm-registry-packages"}},"1.0.45":{"name":"@reapptor/ts-linq","version":"1.0.45","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension","npm","github"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.45","maintainers":[{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"romanglnd","email":"bazuka278@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"b88d7af9b74bba010ff3289ad257a88932ff9507","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.45.tgz","fileCount":10,"integrity":"sha512-Gczb+sxDR42NdczwgeRim7L/xJVJFy/mk3KdUl5bASVdow2U531YFqrNI9DOd0Lnvq1JaNiH7CRbNoEW9SFAPQ==","signatures":[{"sig":"MEQCIHm9u31Ce4qRgEmXbU6US9NLy59hc1As/ElAG2MZ/r6dAiAX8ydOUFHKwHlUYXWQH3qd+NAS84PTOZmkjH8wDdyOlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126202},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"404e4b613cf45e8b0cacb2830cea573680a7bf6f","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"10.8.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.45_1787682476696_0.4996521276076169","host":"s3://npm-registry-packages-npm-production"}},"1.0.46":{"name":"@reapptor/ts-linq","version":"1.0.46","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension","npm","github"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.46","maintainers":[{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"romanglnd","email":"bazuka278@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"9ed01722d06498676888598902c2347922fd4244","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.46.tgz","fileCount":10,"integrity":"sha512-1DtL0jJ6p6sM9WmhvOdA5HqpDbtaqetjEOBv4Wt73sZzTdS3oU9RY7yUn1tAuxiThR5lz6Zs1BVolZTRkj4tIA==","signatures":[{"sig":"MEUCIQCeqhyDOhUzzRUk6Fdn0Vfjhz7x/4/cKcjdwFhZX66J1gIgO9RN4XfW57JJuC6p0nZxoajV3ltddL3yUNDMF8k06l0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126202},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"50bbb5ea2dfaeb38ed300e4f900332b753e16983","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"10.8.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.46_1787685033677_0.9630031013884659","host":"s3://npm-registry-packages-npm-production"}},"1.0.47":{"name":"@reapptor/ts-linq","version":"1.0.47","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension","npm","github"],"author":{"name":"ReApptor"},"license":"MIT","_id":"@reapptor/ts-linq@1.0.47","maintainers":[{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"romanglnd","email":"bazuka278@gmail.com"}],"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"dist":{"shasum":"e5024f503538a59bd37a0829ba085c39d73fc0dd","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.47.tgz","fileCount":10,"integrity":"sha512-hWmKtGJlnonMhYQpLQFEH+ldhshoq8vdgxs7BcThXU72mItm+vFQWIUYS4blm30uwt94aYs7ku+5almV3YeNIQ==","signatures":[{"sig":"MEUCIGC2kA0Y8ZOD0yvsB15U3ZQQhTn4eOp9J9ai4ojgVh4fAiEAqK8uVWVmt4a0RgPSLus9txP4aOnKI+KbRPLbAQaML+c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138294},"main":"./index.js","type":"module","types":"./src/index.d.ts","module":"./index.js","gitHead":"5ef6e9d5fd8e2d49f8e3ca12fa3652f1d2e033e0","private":false,"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"repository":{"url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git","type":"git"},"_npmVersion":"10.8.2","description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/ts-linq_1.0.47_1787761412842_0.4979491292734959","host":"s3://npm-registry-packages-npm-production"}},"1.0.48":{"name":"@reapptor/ts-linq","license":"MIT","version":"1.0.48","type":"module","repository":{"type":"git","url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git"},"author":{"name":"ReApptor"},"description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension","npm","github"],"peerDependencies":{},"private":false,"homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"module":"./index.js","main":"./index.js","types":"./src/index.d.ts","_id":"@reapptor/ts-linq@1.0.48","gitHead":"3a18ae4d15c806aed2adea61b19fe5102056ccee","_nodeVersion":"20.17.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-EkMbLpxM2+OpsTmycWdYmb7OsPVM9bRMHCmwJMpreZ8Nplkfbyws8zBodK4OjDBW0qwpfaI/fAqf3+qvV2iOUg==","shasum":"39013d8e5a9577390852ac795eee05c43e5633a5","tarball":"https://registry.npmjs.org/@reapptor/ts-linq/-/ts-linq-1.0.48.tgz","fileCount":10,"unpackedSize":139249,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG2109I0YhGyS13ogmJdk0YDNPZwRMEfIOGObPiVLc60AiBSCtXwRtuL1Z/jEller85X/4bwwuynhJxC/BjguH0ExA=="}]},"_npmUser":{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},"directories":{},"maintainers":[{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"romanglnd","email":"bazuka278@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ts-linq_1.0.48_1787761885861_0.6958975937800713"},"_hasShrinkwrap":false}},"time":{"created":"2023-03-06T12:37:56.551Z","modified":"2026-08-26T16:31:26.270Z","1.0.20":"2023-03-06T12:37:56.779Z","1.0.21":"2023-03-06T12:46:03.461Z","1.0.22":"2023-03-06T13:00:28.506Z","1.0.23":"2023-03-07T18:54:08.169Z","1.0.24":"2023-03-08T14:05:41.903Z","1.0.25":"2023-03-08T17:12:00.832Z","1.0.26":"2023-03-09T10:06:57.096Z","1.0.27":"2023-03-09T11:29:08.280Z","1.0.28":"2023-03-11T13:07:54.219Z","1.0.29":"2023-03-11T13:40:28.908Z","1.0.30":"2023-03-11T14:37:55.726Z","1.0.31":"2023-03-14T08:46:21.390Z","1.0.32":"2023-03-15T20:28:03.270Z","1.0.33":"2023-03-16T15:09:04.358Z","1.0.34":"2023-03-16T20:16:41.091Z","1.0.35":"2023-03-16T20:18:26.304Z","1.0.36":"2023-03-18T11:47:52.744Z","1.0.37":"2023-03-18T12:03:09.828Z","1.0.38":"2023-03-22T20:20:13.696Z","1.0.39":"2023-03-27T08:11:53.142Z","1.0.40":"2023-03-28T19:10:24.883Z","1.0.41":"2023-03-30T15:56:56.105Z","1.0.43":"2023-04-01T13:31:22.472Z","1.0.44":"2023-06-25T09:54:38.484Z","1.0.45":"2026-08-25T18:27:56.844Z","1.0.46":"2026-08-25T19:10:33.854Z","1.0.47":"2026-08-26T16:23:32.974Z","1.0.48":"2026-08-26T16:31:25.989Z"},"bugs":{"url":"https://github.com/ReApptor/ReApptor.TypeScript.Linq/issues","email":"contact@reapptor.com"},"author":{"name":"ReApptor"},"license":"MIT","homepage":"https://reapptor.github.io/ReApptor.TypeScript.Linq/","keywords":["linq","language-integrated query","ts","typescript","array extension","collection extension","npm","github"],"repository":{"type":"git","url":"git+https://github.com/ReApptor/ReApptor.TypeScript.Linq.git"},"description":"It is a complete, fully tested analog of C# Language-Integrated Query (LINQ) written in TypeScript. LINQ package generally operates on the collection types and comes as extension methods serving a variety of purposes in working with collections of types.","maintainers":[{"name":"mrartemnefodov","email":"mr.artem.nefodov@gmail.com"},{"name":"oleksandrnefodov","email":"oleksandr.nefodov@weare.fi"},{"name":"yw5kcmv5","email":"andrey.popov.spb@gmail.com"},{"name":"ericaska","email":"ericaskari@gmail.com"},{"name":"romanglnd","email":"bazuka278@gmail.com"}],"readme":"![ReApptor](https://raw.githubusercontent.com/ReApptor/ReApptor.TypeScript.Linq/main/ReApptor.png)\n# ReApptor TypeScript LINQ\n\nIt is a complete, fully tested analog of [C# Language-Integrated Query (LINQ)](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable?view=net-7.0)\nwritten in [TypeScript](https://www.typescriptlang.org/).\n\nLINQ package generally operates on the collection types and comes as\nextension methods serving a variety of\npurposes in working with collections of types.\n\nIt's a simple, lightweight, intuitive set of features with good\ndocumentation and examples.\\\nNo complicated or superfluous interfaces, structures, or logic.\\\nNo additional or external types or objects.\n\nThe original idea behind this package is to make TypeScript syntax look\nlike C# to ease the work for developers using both C# and TypeScript\nin their day-to-day work.\n\n## Installation\n\nInstall from the command line:\n\n```npm\nnpm install @reapptor/ts-linq\n```\n\nInstall via package.json:\n\n```npm\n\"@reapptor/ts-linq\": \"^1.*\"\n```\n\n## Usage\n\nAdd `import \"@reapptor/ts-linq\";` into the main project file (i.e. index.ts) to register extensions.\n\n## License\n\nThe ReApptor TypeScript LINQ package is licensed under the terms of the [MIT license](https://raw.githubusercontent.com/ReApptor/ReApptor.TypeScript.Linq/main/LICENSE.md) and is available for free.\n\n## Testing\n\nThe code is <b>100%</b> covered by the JEST tests.\\\nThe generated coverage result is here:\\\n[Coverage Summary](https://raw.githubusercontent.com/ReApptor/ReApptor.TypeScript.Linq/main/coverage/coverage-summary.json)\n\n## Links\n- [Overview](https://reapptor.github.io/ReApptor.TypeScript.Linq/)\n- [Source code](https://github.com/ReApptor/ReApptor.TypeScript.Linq)\n- [Package (GitHub)](https://github.com/ReApptor/ReApptor.TypeScript.Linq/pkgs/npm/ts-linq)\n- [Package (NPM)](https://www.npmjs.com/package/@reapptor/ts-linq)\n- [Discussions](https://github.com/ReApptor/ReApptor.TypeScript.Linq/discussions)\n- [About ReApptor](https://www.reapptor.com)\n- [ReApptor on GitHub](https://github.com/ReApptor)\n- [ReApptor in LinkedIn](https://www.linkedin.com/company/reapptor/)\n\n## Other projects\n- [ReApptor.TypeScript.PagedList](https://reapptor.github.io/ReApptor.TypeScript.PagedList/)\n  [<small>@reapptor/ts-paged-list</small>](https://github.com/ReApptor/ReApptor.TypeScript.Linq/pkgs/npm/ts-paged-list)\\\n  <small>It is a complete, fully tested pagination library for splitting the array into pages and selecting a specific page by an index.</small>\n\n## IList functions\n\n* [`Remove`](#Remove)\n* [`RemoveAt`](#RemoveAt)\n* [`Insert`](#Insert)\n\n## LINQ (IEnumerable) functions\n\n* [`All`](#All)\n* [`Any`](#Any)\n* [`Average`](#Average)\n* [`Chunk`](#Chunk)\n* [`Concat`](#Concat)\n* [`Contains`](#Contains)\n* [`Count`](#Count)\n* [`Distinct`](#Distinct)\n* [`Except`](#Except)\n* [`First`](#First)\n* [`FirstOrDefault`](#FirstOrDefault)\n* [`GroupBy`](#GroupBy)\n* [`Intersect`](#Intersect)\n* [`Last`](#Last)\n* [`LastOrDefault`](#LastOrDefault)\n* [`Max`](#Max)\n* [`Min`](#Min)\n* [`OrderBy`](#OrderBy)\n* [`OrderByDescending`](#OrderByDescending)\n* [`Repeat`](#Repeat)\n* [`Reverse`](#Reverse)\n* [`Select`](#Select)\n* [`SelectMany`](#SelectMany)\n* [`Single`](#Single)\n* [`SingleOrDefault`](#SingleOrDefault)\n* [`Skip`](#Skip)\n* [`SkipLast`](#SkipLast)\n* [`SkipWhile`](#SkipWhile)\n* [`SortBy`](#SortBy)\n* [`Sum`](#Sum)\n* [`Take`](#Take)\n* [`TakeLast`](#TakeLast)\n* [`TakeWhile`](#TakeWhile)\n* [`ToDictionary`](#ToDictionary)\n* [`ToHashSet`](#ToHashSet)\n* [`Union`](#Union)\n* [`Where`](#Where)\n\n## Async functions\n\n* [`ForEachAsync`](#ForEachAsync)\n* [`WhereAsync`](#WhereAsync)\n\n### Remove\n#### [MSDN: System.Collections.Generic.IList.Remove](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.remove?view=net-8.0)\n\nRemoves the first occurrence of a specific object from the Array<T>.\n```typescript\n/**\n * @param item - The object(s) to remove from the Array<T>. The value can be null for reference types.\n * @returns boolean - true if item is successfully removed; otherwise, false. This method also returns false if item was not found in the Array<T>.\n */\nremove(item: T | readonly T[]): void;\n```\n#### Example #1\nRemoves a single occurrence of an item from the array.\n```typescript\nconst items: number[] = [1, 2, 3, 4, 5];\n\nitems.remove(3);\n\nconsole.log(items);\n```\n#### Code produces the following output:\n```\n[1, 2, 4, 5] \n``````\n#### Example #2\nRemoves all specified items from the array.\n```typescript\nconst items: number[] = [1, 2, 3, 4, 5];\n\nitems.remove([2, 4]);\n\nconsole.log(items);\n```\n#### Code produces the following output:\n```\n[1, 3, 5] \n`````````\n#### Example #3\nRemoves nothing if the specified item is not in the array.\n```typescript\nconst items: number[] = [1, 2, 3, 4, 5];\n\nitems.remove(6);\n\nconsole.log(items);\n```\n#### Code produces the following output:\n```\n[1, 2, 3, 4, 5]\n```\n***\n\n### RemoveAt\n#### [MSDN: System.Collections.Generic.IList.RemoveAt](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.removeat?view=net-8.0)\n\nRemoves the element at the specified index of the Array<T>.\n```typescript\n/**\n * @param index - The zero-based index of the element to remove.\n * @exception ArgumentOutOfRangeException - index is less than 0 -or- index is equal to or greater than Count.\n */\nremoveAt(index: number): void;\n```\n#### Example #1\nRemoves the item at index 2.\n\n```typescript\nconst items: string[] = [\"a\", \"b\", \"c\", \"d\", \"e\"];\n\nitems.removeAt(2);\n\nconsole.log(items);\n```\n#### Code produces the following output:\n```\n[\"a\", \"b\", \"d\", \"e\"]\n`````````\n#### Example #2\nRemoves an item at an index that is less than 0 or greater than or \nequal to the length of the array.\n\n```typescript\nconst items: string[] = [\"a\", \"b\", \"c\", \"d\", \"e\"];\n\ntry {\n  items.removeAt(-1)\n} catch (error: any) {\n  console.log(error.message);\n}\n```\n#### Code produces the following output:\n```\n\"Array index \\\"-1\\\" out of range, can be in [0..5].\"\n``````\n#### Example #2\nRemoving an item at an index that is less than 0 or greater than or \nequal to the length of the array throws error.\n\n```typescript\nconst items: string[] = [\"a\", \"b\", \"c\", \"d\", \"e\"];\n\ntry {\n  items.removeAt(-1)\n} catch (error: any) {\n  console.log(error.message);\n}\n```\n#### Code produces the following output:\n```\n\"Array index \\\"-1\\\" out of range, can be in [0..5].\"\n``````\n#### Example #3\nRemoving an item at index 0 on empty array throws error.\n\n```typescript\nconst items: string[] = [];\n\ntry {\n  items.removeAt(0)\n} catch (error: any) {\n  console.log(error.message);\n}\n```\n#### Code produces the following output:\n```\n\"Array index \"0\" out of range, array is empty.\"\n``````\n***\n\n### Insert\n#### [MSDN: System.Collections.Generic.IList.Insert](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.insert?view=net-8.0)\n\nInserts an element into the Array<T> at the specified index.\n```typescript\n /**\n * @param item - The object to insert.\n * @param index - The zero-based index at which item should be inserted.\n */\ninsert(item: T | readonly T[], index?: number | null): void;\n```\n#### Example #1\nInserting one array to another array.\n\n```typescript\nconst items: number[] = [1];\n\nitems.insert([2, 3]);\n```\n#### Code produces the following output:\n```\n[2, 3, 1]\n`````````\n#### Example #2\nInserting an item into array.\n\n```typescript\nconst items: number[] = [1];\n\nitems.insert(2);\n```\n#### Code produces the following output:\n```\n[2, 1]\n`````````\n#### Example #3\nInserting an item 2 into a 1 index of an array.\n\n```typescript\nconst items: number[] = [1, 3];\n\nitems.insert(2, 1);\n```\n#### Code produces the following output:\n```\n[1, 2, 3]\n`````````\n#### Example #4\nInserting an array into a 1 index of another array.\n\n```typescript\nconst items: number[] = [1, 4];\n\nitems.insert([2, 3], 1);\n```\n#### Code produces the following output:\n```\n[1, 2, 3, 4]\n`````````\n***\n\n### All\n#### [MSDN: System.Linq.Enumerable.All](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.all?view=net-7.0)\n\nDetermines whether all elements of a sequence satisfy a condition.\n```typescript\n/**\n * @param predicate - A function to test each element for a condition.\n * @returns boolean - true if every element of the source sequence passes the test in the specified predicate, or if the sequence is empty; otherwise, false.\n */\nall(predicate: (item: T, index: number) => boolean): boolean;\n```\n#### Example\nThe following code examples demonstrates how to use All to determine whether all the elements in\na sequence satisfy a condition. The result is true if every element of the source sequence\npasses the test in the specified predicate, or if the sequence is empty; otherwise, false.\n```typescript\nconst numbers: number[] = [1, 2, 3];\n\nconst empty: number[] = [];\n\nconst allFive: number[] = [5, 5, 5];\n\nconst hasAllTwo: boolean = numbers.all(item => item == 2);\nconsole.log(\"hasAllTwo = \", hasAllTwo);\n\nconst hasAllOnEmpty: boolean = empty.all(item => item == 1);\nconsole.log(\"hasAllOnEmpty = \", hasAllOnEmpty);\n\nconst hasAllFive: boolean = allFive.all(item => item == 5);\nconsole.log(\"hasAllFive = \", hasAllFive);\n```\n#### Code produces the following output:\n```\nhasAllTwo = false;\n\nhasAllOnEmpty = true;\n\nhasAllFive = true;\n\n```\n***\n\n### Any\n#### [MSDN: System.Linq.Enumerable.Any](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.any?view=net-7.0)\nDetermines whether a sequence contains any elements in the collection,\nwhich satisfies an optional condition. If no condition is provided,\nthe method just returns if the collection is empty or not.\n```typescript\n/**\n * @param predicate - A function to test each element for a condition.\n * @returns boolean - true if every element of the source sequence passes the test in the specified predicate, or if the sequence is empty; otherwise, false.\n */\nany(predicate?: (item: T, index: number) => boolean): boolean;\n```\n#### Example\nThe following code example demonstrates how to use Any to determine whether a sequence contains any elements.\n```typescript\nconst numbers: number[] = [1, 2, 3];\n\nconst empty: number[] = [];\n\nconst hasSecond: boolean = numbers.any(item => item == 2);\nconsole.log(\"hasSecond = \", hasSecond);\n\nconst hasFifth: boolean = numbers.any(item => item == 5);\nconsole.log(\"hasFifth = \", hasFifth);\n\nconst hasAnyNumber: boolean = numbers.any();\nconsole.log(\"hasAnyNumber = \", hasAnyNumber);\n\nconst hasEmptyAnyNumber: boolean = empty.any();\nconsole.log(\"hasEmptyAnyNumber = \", hasEmptyAnyNumber);\n```\n\n#### Code produces the following output:\n```\nhasSecond = true;\n\nhasFifth = false;\n\nhasAny = true;\n\nhasEmptyAnyNumber = false;\n```\n***\n\n### Average\n#### [MSDN: System.Linq.Enumerable.Average](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.average?view=net-7.0)\nComputes the average of a sequence of numeric values.\n```typescript\n/**\n * Computes the sum of a sequence of nullable number values.\n * @param selector - A transform function to apply to each element.\n * @returns number - the sum of the values in the sequence.\n */\naverage(selector?: ((item: T) => number | null | undefined) | null): number;\n```\n#### Example\nThe following code example demonstrates how to use Any to determine whether a sequence contains any elements.\n```typescript\nconst numbers: number[] = [1, 2, 3];\n\nconst average1: number = numbers.average();\nconsole.log(\"average1 = \", average);\n\nconst average2: number = numbers.average(item => item);\nconsole.log(\"average2 = \", average2);\n```\n\n#### Code produces the following output:\n```\naverage1 = 2;\n\naverage2 = 2;\n```\n***\n\n### Chunk\n#### [MSDN: System.Linq.Enumerable.Chunk](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.chunk?view=net-7.0)\nSplits the elements of a sequence into chunks of the parameter size at most size.\n```typescript\n/**\n * @param size - The maximum size of each chunk.\n * @returns Array<T>[] - An Array<T> that contains the elements the input sequence split into chunks of size size.\n */\nchunk(size: number): T[][];\n```\n#### Example\nThe following code example demonstrates how to use Chunk on a sequence.\nEach chunk except the last one will be of size size.\nThe last chunk will contain the remaining elements and may be of a smaller size.\n```typescript\nconst numbers: number[] = [1, 2, 3, 4];\n\nlet size: number = 1;\nconst chunkedNumbersSize1 = numbers.chunk(size);\nconsole.log(\"[1, 2, 3, 4] chunk with size of 1 = \", chunkedNumbersSize1);\n\nsize = 10;\nconst chunkedNumbersSize10 = numbers.chunk(size);\nconsole.log(\"[1, 2, 3, 4] chunk with size of 10 = \", chunkedNumbersSize10);\n\nconst empty: number[] = [];\nconst chunkedOnEmpty = numbers.chunk(size);\nconsole.log(\"[] chunk with size of 10 = \", chunkedOnEmpty);\n\n```\n\n#### Code produces the following output:\n```\n[1, 2, 3, 4] chunk with size of 1 =  [ [ 1 ], [ 2 ], [ 3 ], [ 4 ] ]\n\n[1, 2, 3, 4] chunk with size of 10 =  [ [ 1, 2, 3, 4 ] ]\n\n[] chunk with size of 10 =  []\n```\n***\n\n#### Exceptions\nParameter size is below 1.\n\n```typescript\nconst numbers: number[] = [1, 2, 3, 4];\n\nlet size: number = 0;\ntry {\n    const chunkedNumbers = numbers.chunk(0);\n} catch (e: any) {\n    console.log(e.message);\n}\n```\n#### Code produces the following output:\n```\nSize \"0\" out of range, must be at least 1 or greater.\n```\n\n***\n### Concat\nNative function (ES5).\n### Count\n#### [MSDN: System.Linq.Enumerable.Count](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.count?view=net-7.0)\nReturns the number of elements in a sequence.\n```typescript\n/**\n * @param predicate - A function to test each element for a condition.\n * @returns number - The number of elements in the input sequence if the predicate is not specified or, otherwise, the number of elements source that passes the test, specified by the predicate.\n */\ncount(predicate?: ((item: T, index: number) => boolean) | null): number;\n```\n#### Example\nThe following code example demonstrates how to use Count to count the elements in an array.\n```typescript\nconst numbers: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n\nconst count = numbers.count();\n\nconsole.log(`There are ${count} numbers in the collection`);\n```\n\n#### Code produces the following output:\n```\nThere are 10 numbers in the collection\n```\n\n***\n### Contains\n#### [MSDN: System.Linq.Enumerable.Contains](https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.contains?view=net-8.0)\n\nDetermines whether a sequence contains a specified element by using the default equality comparer.\n```typescript\n/**\n * @param value - The value to locate in the sequence.\n * @returns boolean - true if the source sequence contains an element that has the specified value; otherwise, false.\n */\ncontains(value: T): boolean;\n```\n#### Example\nChecks whether the array contains the specified value.\n```typescript\nconst numbers: number[] = [1, 2, 3];\n\nconst result: boolean = numbers.contains(2);\n\nconsole.log(result);\n```\n#### Code produces the following output:\n```\ntrue\n```\n\n***\n### Distinct\n#### [MSDN: System.Linq.Enumerable.Distinct](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.distinct?view=net-7.0)\nReturns distinct elements from a sequence.\n```typescript\n /**\n * @param predicate - A predicate function to get comparable value.\n * @returns Array<T> - An Array<T> that contains distinct elements from the source sequence.\n */\ndistinct(predicate?: ((item: T) => any) | null): T[];\n\n```\n#### Examples\nThe following code examples demonstrates how to use Count to count the elements in an array.\n\n###### Example #1\n```typescript\nconst values: any[] = [1, 1, \"red\", 2, 3, 3, 4, \"green\", 5, 6, 10, \"green\"];\nconst distinctValues = values.distinct();\nconsole.log(\"distinctValues = \", distinctValues);\n```\n\n###### Example #1 produces the following output:\n```\ndistinctValues = [ 1, 'red', 2, 3, 4, 'green', 5, 6, 10 ]\n```\n***\n\n###### Example #2\n```typescript\nclass Human {\n    constructor(name: string, age: number) {\n        this.name = name;\n        this.age = age;\n    }\n\n    public name: string;\n    public age: number;\n}\n\nconst aleks: Human = new Human(\"Aleks\", 23);\nconst youngJack: Human = new Human(\"Jack\", 14);\nconst oldJack: Human = new Human(\"Jack\", 64);\n\nconst distinctNameHumans = humans.distinct(item => item.name);\nconsole.log(\"distinctNameHumans = \", distinctNameHumans);\n\nconst distinctAgeHumans = humans.distinct(item => item.age);\nconsole.log(\"distinctAgeHumans = \", distinctAgeHumans);\n```\n\n###### Example #2 produces the following output:\n```\ndistinctValues = [ 1, 'red', 2, 3, 4, 'green', 5, 6, 10 ]\n \ndistinctNameHumans =  [ \n    Human { name: 'Aleks', age: 23 }, \n    Human { name: 'Jack', age: 64 } \n]\n \ndistinctAgeHumans =  [\n    Human { name: 'Aleks', age: 23 },\n    Human { name: 'Jack', age: 14 },\n    Human { name: 'Jack', age: 64 }\n]\n```\n***\n### First\n#### [MSDN: System.Linq.Enumerable.First](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.first?view=net-7.0)\nReturns the first element of a sequence, or a default value if no element is found, or throw error if no default element is not specified.\n```typescript\n/**\n * @param predicate - A function to test each element for a condition.\n * @param defaultValue - The default value to return if the sequence is empty.\n * @returns T - defaultValue if source is empty or if no element passes the test specified by predicate; otherwise, the first element in source that passes the test specified by predicate.\n */\nfirst(predicate?: ((item: T) => boolean) | null, defaultValue?: T | null): T;\n```\n#### Example\nThe following code examples demonstrates how to use First\nto return the first element of an array that satisfies\na condition, first or default.\n\n###### Return first element in the sequence\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\nconst first: number = numbers.first();\nconsole.log(\"First = \", first);\n```\n###### Return first element in the sequence that satisfies a condition\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\nconst firstGreaterThan80: number = numbers.first(item => item > 80);\nconsole.log(\"First number in the sequence greater than 80 = \", first);\n```\n###### Return a default value if none of the elements in the sequence satisfies a condition\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\nconst defaultValue: number = numbers.first(item => item == 1, -1);\nconsole.log(\"Default value = \", defaultValue);\n```\n#### Code produces the following output:\n```\nFirst = 9\nFirst number in the sequence greater than 80 = 92\nDefault value = -1\n```\n\n#### Exceptions\nSequence has none elements matching the predicate.\n\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\n\ntry {\n    const firstGreaterThan80: number = numbers.first(item => item == 1);\n} catch (e: any) {\n    console.log(e.message);\n}\n```\n#### Code produces the following output:\n```\nNo item found matching the specified predicate.\n```\n\n***\n### Except\n#### [MSDN: System.Linq.Enumerable.Except](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.except?view=net-7.0)\nProduces the set difference of two sequences (the elements from the source collection not existing in the excepted collection).\n```typescript\n/**\n * @param except - An Array<T> whose elements that also occur in the source sequence will cause those elements to be removed from the returned sequence.\n * @param comparer - A function to compare values.\n * @returns T[] - An Array<T> sequence that contains the set difference of the elements of two sequences.\n */\nexcept(except: readonly T[], comparer?: ((x: T, y: T) => boolean) | null): T[];\n```\n#### Examples\n\nThe following code exampled demonstrates how to use the \nmethod to compare two sequences of numbers and return first sequence elements that don't \nappear in the second sequence.\n\n###### Returns first sequence elements excluding elements from the second sequence if appears\n```typescript\nconst numbers1: number[] = [9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\nconst numbers2: number[] = [87, 3];\n\nconst result: number[] = numbers1.except(numbers2);\n\nconsole.log(result);\n```\n\n#### Code produces the following output:\n```\n[9, 34, 65, 92, 87, 435, 54, 83, 23, 435, 67, 12, 19]\n```\n###### Returns first sequence elements excluding elements from the second sequence utilizing custom comparer\n\n```typescript\nconst numbers: number[] = [1, 2, 3];\n\nconst result = numbers.except([2], (x: number, y: number) => x === y);\n\n\nconsole.log(result);\n```\n\n#### Code produces the following output:\n```\n[1, 3]\n```\n\nThe following code example demonstrates how to use the \nmethod with the comparer to compare two sequences of human objects and produce a sequence of humans\nwhose age differs from the age of humans from the second sequence.\n\n###### Returns first sequence elements excluding elements from the second sequence utilizing custom comparer\n\n```typescript\n\nclass Human {\n  constructor(name: string, age: number) {\n    this.name = name;\n    this.age = age;\n  }\n  name: string;\n  age: number;\n}\n\nconst aleks: Human = new Human(\"Aleks\", 25);\nconst andrey: Human = new Human(\"Andrey\", 21);\nconst artem: Human = new Human(\"Artem\", 25);\n\nconst anastasiia: Human = new Human(\"Anastasiia\", 21);\nconst maria: Human = new Human(\"Maria\", 23);\n\nconst comparer = (x: Human, y: Human): boolean => {\n  return (x.age == y.age);\n}\n\nconst boys: Human[] = [aleks, andrey, artem];\nconst girls: Human[] = [anastasiia, maria];\n\nconst humansExceptSameAge: Human[] = boys.except(girls, comparer);\n\nconst result: string[] = humansExceptSameAge.select(human => human.name);\n\nconsole.log(result)\n```\n\n#### Code produces the following output:\n```\n[\"Aleks\", \"Artem\"]\n```\n\n***\n### Intersect\n#### [MSDN: System.Linq.Enumerable.Intersect](https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.intersect?view=net-8.0)\n\nProduces the set intersection of two sequences.\n```typescript\n/**\n * @param second - An Array<T> whose distinct elements that also occur in the source sequence will be returned.\n * @returns T[] - An Array<T> that contains the elements that appear in both sequences.\n */\nintersect(second: readonly T[]): T[];\n```\n#### Example #1\nReturns distinct values that appear in both arrays.\n```typescript\nconst first: number[] = [1, 2, 2, 3, 4];\nconst second: number[] = [2, 3, 5];\n\nconst result: number[] = first.intersect(second);\n\nconsole.log(result);\n```\n#### Code produces the following output:\n```\n[2, 3]\n```\n\n#### Example #2\nKeeps the order of the first array.\n```typescript\nconst first: number[] = [3, 1, 2];\nconst second: number[] = [2, 3];\n\nconst result: number[] = first.intersect(second);\n\nconsole.log(result);\n```\n#### Code produces the following output:\n```\n[3, 2]\n```\n\n***\n### Union\n#### [MSDN: System.Linq.Enumerable.Union](https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.union?view=net-8.0)\n\nProduces the set union of two sequences.\n```typescript\n/**\n * @param second - An Array<T> whose distinct elements form the second set for the union.\n * @returns T[] - An Array<T> that contains distinct elements from both input sequences.\n */\nunion(second: readonly T[]): T[];\n```\n#### Example #1\nReturns distinct values from both arrays.\n```typescript\nconst first: number[] = [1, 2, 3];\nconst second: number[] = [3, 4, 5];\n\nconst result: number[] = first.union(second);\n\nconsole.log(result);\n```\n#### Code produces the following output:\n```\n[1, 2, 3, 4, 5]\n```\n\n#### Example #2\nKeeps the first array order and appends new values from the second array.\n```typescript\nconst first: number[] = [3, 1, 2];\nconst second: number[] = [2, 4, 1];\n\nconst result: number[] = first.union(second);\n\nconsole.log(result);\n```\n#### Code produces the following output:\n```\n[3, 1, 2, 4]\n```\n\n***\n### Where\n#### [MSDN: System.Linq.Enumerable.Where](https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.where?view=net-8.0)\n\nFilters a sequence of values based on a predicate.\n```typescript\n/**\n * @param predicate - A function to test each element for a condition.\n * @returns Array<T> - An Array<T> that contains elements from the input sequence that satisfy the condition.\n */\nwhere(predicate: (item: T, index: number) => boolean): T[];\n```\n#### Example\nReturns values that satisfy the specified predicate.\n```typescript\nconst numbers: number[] = [1, 2, 3, 4, 5];\n\nconst result: number[] = numbers.where(item => item > 2);\n\nconsole.log(result);\n```\n#### Code produces the following output:\n```\n[3, 4, 5]\n```\n\n***\n### FirstOrDefault\n#### [MSDN: System.Linq.Enumerable.FirstOrDefault](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.firstOrDefault?view=net-7.0)\nReturns the first element of a sequence, or a default value if no element is found.\n```typescript\n/**\n * @param callback - A function to test each element for a condition.\n * @param defaultValue - The default value to return if the sequence is empty.\n * @returns T - defaultValue if source is empty or if no element passes the test specified by predicate; otherwise, the first element in source that passes the test specified by predicate.\n */\nfirstOrDefault(callback?: ((item: T) => boolean) | null, defaultValue?: T | null): T | null;\n```\n#### Example\nThe following code examples demonstrates how to use FirstOrDefault\nto return the first element of an array that satisfies\na condition or a default value if the defaultValue parameter is specified, otherwise null.\n\n###### Return first element in the sequence\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\nconst firstInSequence: number | null = numbers.firstOrDefault();\nconsole.log(\"First in the sequence = \", firstInSequence);\n```\n###### Return first element in the sequence that satisfies a condition\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\nconst firstMatching: number | null = numbers.firstOrDefault(item => item > 435);\nconsole.log(\"First in the sequence that is greater than 400 = \", firstMatching);\n```\n###### None of the elements in the sequence satisfies a condition\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\nconst defaultIfNotFound: number = numbers.firstOrDefault(item => item == -1);\nconsole.log(\"None of the items matching the predicate. The return value = \", defaultIfNotFound);\n```\n\n###### Specified default value if none of the elements in the sequence satisfies a condition\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\nconst defaultProvidedIfNotFound: number = numbers.firstOrDefault(item => item > 1000, -1);\nconsole.log(\"Default value is -1 if none of the elements matching the predicate. The return value = \", defaultProvidedIfNotFound);\n```\n#### Code produces the following output:\n```\nFirst in the sequence = 9\nFirst in the sequence that is greater than 400 = 435\nNone of the items matching the predicate. The return value = null\nReturn -1 if none of the elements matching the predicate. The return value = -1\n```\n***\n### Last\n#### [MSDN: System.Linq.Enumerable.Last](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.last?view=net-7.0)\nReturns the last element of a sequence, or a default value if no element is found, or throw error if no default element is not specified.\n```typescript\n/**\n * @param predicate - A function to test each element for a condition.\n * @param defaultValue - The default value to return if the sequence is empty.\n * @returns T - defaultValue if source is empty or if no element passes the test specified by predicate; otherwise, the last element in source that passes the test specified by predicate.\n */\nlast(predicate?: ((item: T) => boolean) | null, defaultValue?: T | null): T;\n```\n#### Example\nThe following code example demonstrates how to use Last to return\nthe last element of an array that satisfies a condition, last or default.\n\n###### Return last element in the sequence\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\nconst last: number = numbers.last();\nconsole.log(\"Last = \", last);\n```\n###### Return last element in the sequence that satisfies a condition\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\nconst lastGreaterThan80: number = numbers.last(item => item > 80);\nconsole.log(\"Last number in the sequence greater than 80 = \", last);\n```\n###### Return a default value if none of the elements in the sequence satisfies a condition\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\nconst defaultValue: number = numbers.last(item => item == 1, -1);\nconsole.log(\"Default value = \", defaultValue);\n```\n#### Code produces the following output:\n```\nLast = 19\nLast number in the sequence greater than 80 = 435\nDefault value = -1\n```\n\n#### Exceptions\nSequence has none elements matching the predicate.\n\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\n\ntry {\n    const lastGreaterThan80: number = numbers.last(item => item == 1);\n} catch (e: any) {\n    console.log(e.message);\n}\n```\n#### Code produces the following output:\n```\nNo item found matching the specified predicate.\n```\n***\n### LastOrDefault\n#### [MSDN: System.Linq.Enumerable.LastOrDefault](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.lastOrDefault?view=net-7.0)\nReturns the last element of a sequence, or a specified default value if the sequence contains no elements.\n```typescript\n/**\n * @param predicate - A function to test each element for a condition.\n * @param defaultValue - The default value to return if the sequence is empty.\n * @returns T - defaultValue if source is empty or if no element passes the test specified by predicate; otherwise, the last element in source that passes the test specified by predicate.\n */\nlastOrDefault(predicate?: ((item: T) => boolean) | null, defaultValue?: T | null): T | null;\n```\n#### Example\nThe following code examples demonstrates how to use LastOrDefault\nto return the last element of an array that satisfies\na condition or a default value if the defaultValue parameter is specified, otherwise null.\n\n###### Return last element in the sequence\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\nconst lastInSequence: number | null = numbers.lastOrDefault();\nconsole.log(\"Last in the sequence = \", lastInSequence);\n```\n###### Return last element in the sequence that satisfies a condition\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\nconst lastMatching: number | null = numbers.lastOrDefault(item => item > 435);\nconsole.log(\"Last in the sequence that is greater than 400 = \", lastMatching);\n```\n###### None of the elements in the sequence satisfies a condition\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\nconst defaultIfNotFound: number = numbers.lastOrDefault(item => item == -1);\nconsole.log(\"None of the items matching the predicate. The return value = \", defaultIfNotFound);\n```\n\n###### Specified default value if none of the elements in the sequence satisfies a condition\n```typescript\nconst numbers: number[] = [ 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19];\nconst defaultProvidedIfNotFound: number = numbers.lastOrDefault(item => item > 1000, -1);\nconsole.log(\"Default value is -1 if none of the elements matching the predicate. The return value = \", defaultProvidedIfNotFound);\n```\n#### Code produces the following output:\n```\nLast in the sequence = 19\nLast in the sequence that is greater than 400 = 435\nNone of the items matching the predicate. The return value = null\nReturn -1 if none of the elements matching the predicate. The return value = -1\n```\n***\n### Max\n#### [MSDN: System.Linq.Enumerable.Max](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.max?view=net-7.0)\nReturns the maximum value in a sequence of values.\n```typescript\n/**\n * @param predicate - A function to test each element for a condition.\n * @returns T - The maximum value in the sequence.\n */\nmax(predicate: ((item: T) => number) | null): T;\n```\n#### Example\nThe following code example demonstrates how to use Max to determine the maximum value in a sequence.\n\n```typescript\nconst values: any[] = [null, 1.5E+104, 9E+103, -2E+103];\n\nconst max = values.max();\n\nconsole.log(`The largest number is ${max}`);\n```\n#### Code produces the following output:\n```\nThe largest number is 1.5e+104\n```\n***\n### Min\n#### [MSDN: System.Linq.Enumerable.Min](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.min?view=net-7.0)\nReturns the minimum value in a sequence of values.\n```typescript\n/**\n * @param predicate - A function to test each element for a condition.\n * @returns T - The minimum value in the sequence.\n */\nmin(predicate: ((item: T) => number) | null): T;\n```\n#### Example\nThe following code example demonstrates how to use Min to determine the minimum value in a sequence.\n\n```typescript\nconst grades: any[] = [78, 92, null, 99, 37, 81];\n\nconst min = values.min();\n\nconsole.log(`The lowest grade is ${min}`);\n```\n#### Code produces the following output:\n```\nThe lowest grade is 37\n```\n\n***\n### Repeat\n#### [MSDN: System.Linq.Enumerable.Repeat](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.repeat?view=net-7.0)\nGenerates a sequence that contains one repeated value.\n```typescript\n/**\n * @param element - The value to be repeated.\n * @param count - The number of times to repeat the value in the generated sequence.\n * @returns T[] - An Array<T> that contains a repeated value.\n */\nrepeat(element: T, count: number): T[];\n```\n#### Example\nThe following code example demonstrates how to use Repeat to generate a sequence of a repeated value.\n\n```typescript\nconst values: string[] = Array.prototype.repeat(\"I like programming.\", 5);\n\nfor (let i = 0; i < values.length; i ++) {\n    console.log(values[i]);\n}\n```\n#### Code produces the following output:\n```\nI like programming.\nI like programming.\nI like programming.\nI like programming.\nI like programming.\n```\n***\n### Reverse\nNative function (ES5)\n### Select\nDocumentation is under construction and upcoming soon.\\\n<i>Use the built-in code comment instead.</i>\n### SelectMany\nProjects each element of a sequence to an Array<T> and flattens the resulting sequences into one sequence.\n```typescript\n/**\n * @param collectionSelector - A transform function to apply to each element of the input sequence.\n * @returns Array<TOut> - An Array<TOut> whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of source and then mapping each of those sequence elements and their corresponding source element to a result element.\n */\nselectMany<TOut>(collectionSelector: (item: T) => TOut[]): TOut[];\n```\n#### Example\nThe following code example demonstrates how to use SelectMany\nto perform a one-to-many projection over an array.\n\n```typescript\nclass PetOwner\n{\n    constructor(name: string, pets: string[]) {\n        this.name = name;\n        this.pets = pets;\n    }\n\n    public name: string;\n    public pets: string[];\n}\n\nconst higa = new PetOwner(\"Higa\", [\"Scruffy\", \"Sam\"]);\nconst ashkenazi = new PetOwner(\"Ashkenazi\", [\"Walker\", \"Sugar\"]);\nconst price = new PetOwner(\"Price\", [\"Scratches\", \"Diesel\"]);\nconst hines = new PetOwner(\"Hines\", [\"Dusty\"]);\n\nconst petOwners: PetOwner[] = [higa, ashkenazi, price, hines];\n\nconst query = petOwners\n    .selectMany(petOwner => petOwner.pets)\n    .where(ownerAndPet => ownerAndPet.startsWith(\"S\"));\n\nconsole.log(query);\n```\n#### Code produces the following output:\n```\n[ 'Scruffy', 'Sam', 'Sugar', 'Scratches' ]\n```\n***\n### Single\nDocumentation is under construction and upcoming soon.\\\n<i>Use the built-in code comment instead.</i>\n### SingleOrDefault\nDocumentation is under construction and upcoming soon.\\\n<i>Use the built-in code comment instead.</i>\n### Skip\n#### [MSDN: System.Linq.Enumerable.Skip](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.skip?view=net-7.0)\nBypasses a specified number of elements in a sequence and then returns the remaining elements.\n```typescript\n/**\n * @param count - A function to test each element for a condition.\n * @returns Array<T> - An Array<T> that contains the elements that occur after the specified index in the input sequence.\n */\nskip(count: number): T[];\n```\n#### Example\nThe following code example demonstrates how to use Skip to skip a\nspecified number of elements in a sorted array and return the remaining\nelements.\n\n```typescript\nconst grades: number[] = [ 59, 82, 70, 56, 92, 98, 85 ];\n\ngrades.order(item => item);\n\nconst skipped3Grades: number[] = grades.skip(3);\n\nconsole.log(\"All grades except the top three are:\", skippedGrades);\n```\n#### Code produces the following output:\n```\nAll grades except the top three are: [ 82, 85, 92, 98 ]\n```\n***\n### SkipLast\nDocumentation is under construction and upcoming soon.\\\n<i>Use the built-in code comment instead.</i>\n### SkipWhile\nDocumentation is under construction and upcoming soon.\\\n<i>Use the built-in code comment instead.</i>\n### Sum\n#### [MSDN: System.Linq.Enumerable.Sum](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.sum?view=net-7.0)\nComputes the sum of a sequence of numeric values.\n```typescript\n/**\n * @param predicate - A function to test each element for a condition.\n * @returns number - The sum of the values in the sequence.\n */\nsum(predicate: (item: T) => number | null | undefined): number;\n```\n#### Example\nThe following code example demonstrates how to use Sum\nto sum the values of a sequence.\n\n```typescript\nconst grades: number[] = [ 43.68, 1.25, 583.7, 6.5 ];\n\nconst sum: number = grades.sum(item => item);\n\nconsole.log(`The sum of the numbers is ${sum}.`);\n```\n#### Code produces the following output:\n```\nThe sum of the numbers is 635.13.\n```\n***\n### Take\n#### [MSDN: System.Linq.Enumerable.Take](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.take?view=net-7.0)\nReturns a specified number of contiguous elements from the start of a sequence.\n```typescript\n/**\n * @param count - The number of elements to return.\n * @returns Array<T> - An Array<T> that contains the specified number of elements from the start of the input sequence.\n */\ntake(count: number): T[];\n```\n#### Example\nThe following code example demonstrates how to use Take to\nreturn elements from the start of a sequence.\n\n```typescript\nconst grades: number[] = [ 59, 82, 70, 56, 92, 98, 85 ];\n\ngrades.sort((a, b) => b - a);\n\nconst top3Grades: number[] = grades.take(3);\n\nconsole.log(`The top three grades are:${top3Grades}`);\n```\n#### Code produces the following output:\n```\nThe top three grades are:98,92,85\n```\n***\n### TakeLast\n#### [MSDN: System.Linq.Enumerable.TakeLast](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.takeLast?view=net-7.0)\nReturns a new array that contains the last count elements from source.\n```typescript\n/**\n * @param count - The number of elements to take from the end of the collection.\n * @returns Array<T> - A new array that contains the last count elements from source.\n */\ntakeLast(count: number): T[];\n```\n#### Example\nThe following code example demonstrates how to use TakeLast to\nreturn elements from the start of a sequence.\n\n```typescript\nconst grades: number[] = [ 59, 82, 70, 56, 92, 98, 85 ];\n\ngrades.sort((a, b) => b - a);\n\nconst worst3Grades: number[] = grades.takeLast(3);\n\nconsole.log(`The worst three grades are:${worst3Grades}`);\n```\n#### Code produces the following output:\n```\nThe worst three grades are:70,59,56\n```\n***\n### TakeWhile\n#### [MSDN: System.Linq.Enumerable.TakeWhile](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.takeWhile?view=net-7.0)\nReturns elements from an array as long as a specified condition is true.\n```typescript\n/**\n * @param predicate - A function to test each element for a condition.\n * @returns Array<T> - An new array that contains the elements from the input sequence that occur before the element at which the test no longer passes.\n */\ntakeWhile(predicate: (item: T, index: number) => boolean): T[];\n```\n#### Example\nThe following code example demonstrates how to use TakeWhile\nto return elements from the start of a sequence as long as a condition\nis true.\n\n```typescript\nconst fruits: string[] = [ \"apple\", \"banana\", \"mango\", \"orange\", \"passionfruit\", \"grape\" ];\n\nconst query = fruits.takeWhile(fruit => fruit != \"orange\");\n\nconsole.log(query);\n```\n#### Code produces the following output:\n```\n[ 'apple', 'banana', 'mango' ]\n```\n***\n### ToDictionary\nDocumentation is under construction and upcoming soon.\\\n<i>Use the built-in code comment instead.</i>\n### ToHashSet\nDocumentation is under construction and upcoming soon.\\\n<i>Use the built-in code comment instead.</i>\n### GroupBy\n#### [MSDN: System.Linq.Enumerable.GroupBy](https://learn.microsoft.com/en-us/dotnet/api/System.Linq.Enumerable.groupBy?view=net-7.0)\nGroups the elements of a sequence according to a key selector function. The keys are compared by using a comparer and each group's elements are projected by using a specified function.\n```typescript\n /**\n * Groups the elements of a sequence according to a key selector function. The keys are compared by using a comparer and each group's elements are projected by using a specified function.\n * @param keySelector - An optional function to extract the key for each element.\n * @param elementSelector - An optional function to map each source element to an element in the result grouped element.\n * @returns Array<TElement[]> - An array of grouped objects of type TElement.\n */\ngroupBy<TKey = T, TElement = TKey>(keySelector?: ((item: T, index: number) => TKey) | null, elementSelector?: ((item: T, index: number) => TElement) | null): TElement[][];\n```\n#### Examples\n\n###### Example #1\nThe following code example method groups the items by the specified property.\nIt creates an array of objects with the name and age properties and calls\nthe groupBy method on it with the callback function that groups the objects\nby their age.\\\nThe expected result is an array with two sub-arrays, where each sub-array\ncontains objects with the same age.\n\n```typescript\nconst items: {name: string, age: number}[] = [\n    { name: \"Sam\", age: 30 },\n    { name: \"Jack\", age: 25 },\n    { name: \"Richard\", age: 30 },\n    { name: \"Helen\", age: 25 },\n];\n\nconst result: {name: string, age: number}[][] = items.groupBy(item => item.age);\n\nconsole.log(result);\n```\n#### Code produces the following output:\n```\n [{ name: \"Sam\", age: 30 }, { name: \"Richard\", age: 30 }],\n [{ name: \"Jack\", age: 25 }, { name: \"Helen\", age: 25 }],\n```\n###### Example #2\nThe following code example method groups the items into a single group if \nthe callback is not specified.It creates an array of numbers and calls \nthe groupBy method on it without specifying the callback function.\\\nThe expected result is an array with a single sub-array that contains all the numbers.\n```typescript\n const items: number[] = [1, 1, 2, 2, 2];\n const result: number[][] = items.groupBy();\n \n console.log(result);\n```\n#### Code produces the following output:\n```\n [[1, 1], [2, 2, 2]]\n```\n\n###### Example #3\nThe following code example method groups the items into a single group \nif the callback is not specified. It creates an array of numbers and calls \nthe groupBy method on it without specifying the callback function.\\\nThe expected result is an array with a single sub-array that contains all \nthe numbers.\n```typescript\n const items: number[] = [1, 2, 3, 4, 5];\n const result: number[][] = items.groupBy(() => null);\n \n console.log(result);\n```\n#### Code produces the following output:\n```\n [[1, 2, 3, 4, 5]]\n```\n###### Example #4\nThe following code example method returns an empty array if the input \narray is empty. It creates an empty array and calls the groupBy method on \nit with a callback function that groups the items based on whether they are\neven or odd./\nThe expected result is an empty array since there are no items to group.\n```typescript\n const items: number[] = [];\n const result: number[][] = items.groupBy(item => item % 2 === 0);\n \n console.log(result);\n```\n#### Code produces the following output:\n```\n []\n```\n\n\n***\n### OrderBy\n#### [MSDN: System.Linq.Enumerable.OrderBy](https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.orderby?view=net-8.0)\n\nSorts the elements of a sequence in ascending order according to a key.\nThe source array is not changed. Use `toArray()` to create the sorted array.\n```typescript\n/**\n * @param keySelector - A function to extract a key from an element.\n * @returns IOrdered<T> - An ordered sequence whose elements are sorted according to a key.\n */\norderBy<TKey>(keySelector: (item: T) => TKey): IOrdered<T>;\n```\n#### IOrdered\nRepresents an ordered sequence returned by `orderBy`, `orderByDescending`, `thenBy`, and `thenByDescending`.\n```typescript\ninterface IOrdered<T> {\n    thenBy<TKey>(keySelector: (item: T) => TKey): IOrdered<T>;\n    thenByDescending<TKey>(keySelector: (item: T) => TKey): IOrdered<T>;\n    where(predicate: (item: T, index: number) => boolean): T[];\n    take(count: number): T[];\n    skip(count: number): T[];\n    select<TResult>(selector: (item: T, index: number) => TResult): TResult[];\n    selectMany<TOut>(collectionSelector: (item: T) => TOut[]): TOut[];\n    first(predicate?: ((item: T) => boolean) | null, defaultValue?: T | null): T;\n    firstOrDefault(predicate?: ((item: T) => boolean) | null, defaultValue?: T | null): T | null;\n    last(predicate?: ((item: T) => boolean) | null, defaultValue?: T | null): T;\n    lastOrDefault(predicate?: ((item: T) => boolean) | null, defaultValue?: T | null): T | null;\n    toArray(): T[];\n}\n```\n#### Example #1\nSorts people by age.\n```typescript\nconst people: Person[] = [\n    { name: \"Theodore\", age: 30 },\n    { name: \"Lucas\", age: 25 },\n    { name: \"Mia\", age: 35 },\n    { name: \"Charlotte\", age: 40 },\n];\n\nconst ordered: Person[] = people\n    .orderBy(person => person.age)\n    .toArray();\n\nconsole.log(ordered);\n```\n#### Code produces the following output:\n```\n[\n    { name: \"Lucas\", age: 25 },\n    { name: \"Theodore\", age: 30 },\n    { name: \"Mia\", age: 35 },\n    { name: \"Charlotte\", age: 40 },\n]\n```\n\n#### Example #2\nSorts people by group and then by name.\n```typescript\nconst people: Person[] = [\n    { name: \"Mia\", group: 2 },\n    { name: \"Lucas\", group: 1 },\n    { name: \"Charlotte\", group: 1 },\n    { name: \"Theodore\", group: 2 },\n];\n\nconst ordered: Person[] = people\n    .orderBy(person => person.group)\n    .thenBy(person => person.name)\n    .toArray();\n\nconsole.log(ordered);\n```\n#### Code produces the following output:\n```\n[\n    { name: \"Charlotte\", group: 1 },\n    { name: \"Lucas\", group: 1 },\n    { name: \"Mia\", group: 2 },\n    { name: \"Theodore\", group: 2 },\n]\n```\n\n#### Example #3\nApplies LINQ operations directly to an ordered sequence.\n```typescript\nconst people: Person[] = [\n    { name: \"Mia\", group: 2, age: 35 },\n    { name: \"Lucas\", group: 1, age: 25 },\n    { name: \"Charlotte\", group: 1, age: 40 },\n    { name: \"Theodore\", group: 2, age: 30 },\n];\n\nconst first: Person | null = people\n    .orderBy(person => person.group)\n    .thenBy(person => person.name)\n    .firstOrDefault();\n\nconst names: string[] = people\n    .orderBy(person => person.group)\n    .thenBy(person => person.name)\n    .where(person => person.age > 30)\n    .select(person => person.name);\n\nconsole.log(first);\nconsole.log(names);\n```\n#### Code produces the following output:\n```\n{ name: \"Charlotte\", group: 1, age: 40 }\n[\"Charlotte\", \"Mia\"]\n```\n***\n\n### OrderByDescending\n#### [MSDN: System.Linq.Enumerable.OrderByDescending](https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.orderbydescending?view=net-8.0)\n\nSorts the elements of a sequence in descending order according to a key.\nThe source array is not changed. Use `toArray()` to create the sorted array.\n```typescript\n/**\n * @param keySelector - A function to extract a key from an element.\n * @returns IOrdered<T> - An ordered sequence whose elements are sorted according to a key.\n */\norderByDescending<TKey>(keySelector: (item: T) => TKey): IOrdered<T>;\n```\n#### Example #1\nSorts people by age in descending order.\n```typescript\nconst people: Person[] = [\n    { name: \"Theodore\", age: 30 },\n    { name: \"Lucas\", age: 25 },\n    { name: \"Mia\", age: 35 },\n    { name: \"Charlotte\", age: 40 },\n];\n\nconst ordered: Person[] = people\n    .orderByDescending(person => person.age)\n    .toArray();\n\nconsole.log(ordered);\n```\n#### Code produces the following output:\n```\n[\n    { name: \"Charlotte\", age: 40 },\n    { name: \"Mia\", age: 35 },\n    { name: \"Theodore\", age: 30 },\n    { name: \"Lucas\", age: 25 },\n]\n```\n\n#### Example #2\nSorts people by group in descending order and then by name in descending order.\n```typescript\nconst people: Person[] = [\n    { name: \"Mia\", group: 2 },\n    { name: \"Lucas\", group: 1 },\n    { name: \"Charlotte\", group: 1 },\n    { name: \"Theodore\", group: 2 },\n];\n\nconst ordered: Person[] = people\n    .orderByDescending(person => person.group)\n    .thenByDescending(person => person.name)\n    .toArray();\n\nconsole.log(ordered);\n```\n#### Code produces the following output:\n```\n[\n    { name: \"Theodore\", group: 2 },\n    { name: \"Mia\", group: 2 },\n    { name: \"Lucas\", group: 1 },\n    { name: \"Charlotte\", group: 1 },\n]\n```\n***\n\n### SortBy\n\nSorts an array in ascending order.\n```typescript\n /**\n * @param keySelector1..keySelectorN - A function to extract the key for each element.\n */\nsortBy<TKey1, TKey2, TKey3, TKey4, TKey5, TKey6>(keySelector1?: ((item: T) => TKey1) | null,\n    keySelector2?: ((item: T) => TKey2) | null,\n    keySelector3?: ((item: T) => TKey3) | null,\n    keySelector4?: ((item: T) => TKey4) | null,\n    keySelector5?: ((item: T) => TKey5) | null,\n    keySelector6?: ((item: T) => TKey6) | null): void;\n```\n#### Examples\n\n###### Example #1\nArray is sorted in ascending order by default when the \"sortBy\" method is \ncalled with only one sorting function.\n\n```typescript\n const people: Person[] = [\n    { name: \"Theodore\", age: 30 },\n    { name: \"Lucas\", age: 25 },\n    { name: \"Mia\", age: 35 },\n    { name: \"Charlotte\", age: 40 },\n ];\n\n people.sortBy(person => person.age);\n\n console.log(people);\n```\n#### Code produces the following output:\n```\n[\n    { name: \"Lucas\", age: 25 },\n    { name: \"Theodore\", age: 30 },\n    { name: \"Mia\", age: 35 },\n    { name: \"Charlotte\", age: 40 },\n]\n```\n###### Example #2\nArray is sorted in ascending order by the first \"key\"\nwhen the \"sortBy\" method is called with two sorting functions.\n```typescript\n const people: Person[] = [\n    { name: \"Theodore\", age: 30 },\n    { name: \"Lucas\", age: 25 },\n    { name: \"Mia\", age: 35 },\n    { name: \"Charlotte\", age: 40 },\n ];\n\n people.sortBy(person => person.name, person => person.age);\n \n console.log(people);\n```\n#### Code produces the following output:\n```\n[\n    { name: \"Charlotte\", age: 40 },\n    { name: \"Lucas\", age: 25 },\n    { name: \"Mia\", age: 35 },\n    { name: \"Theodore\", age: 30 },\n]\n```\n\n###### Example #3\nArray is sorted in ascending order by the second \"key\"\nwhen the \"sortBy\" method is called with a \"null\" first sorting function\nand a second sorting function.\n```typescript\n const people: Person[] = [\n    { name: \"Theodore\", age: 30 },\n    { name: \"Lucas\", age: 25 },\n    { name: \"Mia\", age: 35 },\n    { name: \"Charlotte\", age: 40 },\n ];\n\n people.sortBy(null, person => person.name);\n \n console.log(people);\n```\n#### Code produces the following output:\n```\n [\n    { name: \"Charlotte\", age: 40 },\n    { name: \"Lucas\", age: 25 },\n    { name: \"Mia\", age: 35 },\n    { name: \"Theodore\", age: 30 },\n]\n```\n###### Example #4\nArray of dates is sorted in ascending order.\n```typescript\n const date0 = new Date(Date.UTC(2023, 0, 0));\n const date1 = new Date(Date.UTC(2023, 0, 1));\n const date2 = new Date(Date.UTC(2023, 0, 2));\n const date3 = new Date(Date.UTC(2023, 1, 2));\n const date4 = new Date(Date.UTC(2023, 1, 3));\n const date5 = new Date(Date.UTC(2024, 1, 3));\n const date6 = new Date(Date.UTC(2025, 0, 0));\n\n const items: Date[] = [date1, date0, date2, date3, date6, date5, date4];\n \n items.sortBy();\n \n console.log(items);\n```\n#### Code produces the following output:\n```\n [date0, date1, date2, date3, date4, date5, date6]\n```\n### ForEachAsync\nDocumentation is under construction and upcoming soon.\\\n<i>Use the built-in code comment instead.</i>\n### WhereAsync\nDocumentation is under construction and upcoming soon.\\\n<i>Use the built-in code comment instead.</i>\n\n## Hashtags\n\n#linq #language-integrated-query #ts #typescripts #array-extension #collection-extension #npm #github\n","readmeFilename":"README.md"}