{"_id":"selderee","_rev":"8-87f6b9aaac469ae04e4fefd1e53c5ca6","name":"selderee","dist-tags":{"latest":"0.11.0"},"versions":{"0.5.0":{"name":"selderee","version":"0.5.0","description":"Selectors decision tree - choose matching selectors, fast","keywords":["CSS","selectors","decision tree","match"],"repository":{"type":"git","url":"git+https://github.com/mxxii/selderee.git"},"bugs":{"url":"https://github.com/mxxii/selderee/issues"},"homepage":"https://github.com/mxxii/selderee","author":{"name":"KillyMXI"},"funding":"https://ko-fi.com/killymxi","license":"MIT","exports":{"import":"./lib/selderee.mjs","require":"./lib/selderee.cjs"},"type":"module","main":"./lib/selderee.cjs","module":"./lib/selderee.mjs","types":"./lib/selderee.d.ts","scripts":{"build:rollup":"rollup -c","build:types":"tsc -d --emitDeclarationOnly --declarationDir ./lib","build":"npm run clean && npm run build:rollup && npm run build:types","clean":"rimraf lib"},"dependencies":{"parseley":"^0.7.0"},"_id":"selderee@0.5.0","_nodeVersion":"10.24.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-fA4clu3BvOooLJ/xINJfAcxHTJAkBqBCWmj3pdk5C8PUXDnXdF+5LxgPajFR0b8pczy97ag3eM4agnMpHZ10hw==","shasum":"061742d5fbf9fb77d9bb3a8c85ad3a3ee4b6fd40","tarball":"https://registry.npmjs.org/selderee/-/selderee-0.5.0.tgz","fileCount":12,"unpackedSize":45875,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgk/xQCRA9TVsSAnZWagAArjIP/0KSkcurpKCL3raxQEEx\nC1eG12p+Bs6p4WKslV+scB0sptlKicRBCEYdXs/UDA9AmWB1sJRHNESxMAZO\nr6HXwD8LsyJ94jLNi1IAfd8NUz9HKwULrGXzpau+6SmSMEfO53X6afUWRAXA\ntLoDC+5T/T5QGbWk4fDFZ3dwsXfgc/zH8GVT8KKS63P3I7RPJ0VUID+16D+/\nsmPOlsgsbEjcK4F4g1/WQJyh0Cc/B7CtM8c8QcePK5F7LTaPQLE/TOF14Fix\nLXgzlxqfoYtZbgW3OBPCKjP5AsAOkgs/zB9p5/IeSDpqzpX6g3IRpnsnX8Nt\nmtAbZH4yPUYvdlcfBhJ3pqyr7WCzTYLM7/Sm4rApWikeYX4AkK5MYhpaAQ5e\n+K3Snujkn8uzpvflHnx5XUqBBVbtXT8+fZW/mTQrhAOqIHZOUT/KkLq3eDZP\n3t0dsvg8lNjCmGbsmffk/AUrlzv1fCYPXyTw+I87u6aYa3hCDCQW3lTpEk63\nH1BZCHuc4W57+kUZuEbGm9HsYnmNls+H+Di5SidaYMNzXgcSnEuF5XxxYz13\nK44ohdvD49iPxKYiasQb2lpGE5xM8q7XHJUhhW3CnXqnZAXryCbJaXE/laT5\nxhomH/ic74aPo9o2Kf/7jeWpR8hEbh8ZQZIYhO44+SEP83NPmYDIQ2v4D7Z9\ns9X4\r\n=OUor\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAhBWSC67k0VhSlvreiIpppR1/XgLLO4fcDUqT4WQXYOAiEAtF3S5SVzAFdS9LcdignWGcCFc0m/VKDcA+l1Xqc4pjU="}]},"_npmUser":{"name":"killy.mxi","email":"killy.mxi@gmail.com"},"directories":{},"maintainers":[{"name":"killy.mxi","email":"killy.mxi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/selderee_0.5.0_1620311120244_0.8434911105664527"},"_hasShrinkwrap":false},"0.6.0":{"name":"selderee","version":"0.6.0","description":"Selectors decision tree - choose matching selectors, fast","keywords":["CSS","selectors","decision tree","match"],"repository":{"type":"git","url":"git+https://github.com/mxxii/selderee.git"},"bugs":{"url":"https://github.com/mxxii/selderee/issues"},"homepage":"https://github.com/mxxii/selderee","author":{"name":"KillyMXI"},"funding":"https://ko-fi.com/killymxi","license":"MIT","exports":{"import":"./lib/selderee.mjs","require":"./lib/selderee.cjs"},"type":"module","main":"./lib/selderee.cjs","module":"./lib/selderee.mjs","types":"./lib/selderee.d.ts","scripts":{"build:rollup":"rollup -c","build:types":"tsc -d --emitDeclarationOnly --declarationDir ./lib","build":"npm run clean && npm run build:rollup && npm run build:types","clean":"rimraf lib"},"dependencies":{"parseley":"^0.7.0"},"_id":"selderee@0.6.0","_nodeVersion":"10.23.2","_npmVersion":"7.11.2","dist":{"integrity":"sha512-ibqWGV5aChDvfVdqNYuaJP/HnVBhlRGSRrlbttmlMpHcLuTqqbMH36QkSs9GEgj5M88JDYLI8eyP94JaQ8xRlg==","shasum":"f3bee66cfebcb6f33df98e4a1df77388b42a96f7","tarball":"https://registry.npmjs.org/selderee/-/selderee-0.6.0.tgz","fileCount":12,"unpackedSize":50140,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmWXrCRA9TVsSAnZWagAAXL8P/2LA4mW9vSeCnmfjwUPk\nEWYAzL49pnblgY9RNbr9dimewZdSgdc0sVbCyIFHY/bQtvtXC6bM2GeMuo7N\nUnqPrDLijyvpd+lROEi5UPQ6p1iDcWs64V68hzridnNu4E0eZBIvtyJG4+as\n5iP8h34+qNcZ68i3m1CQs4f1T/UCoiNW/rzHHTxFDk0wCicIu/hiy0xizlVm\nX9LhH64N1k9NdCo/A6yTVOaOpHuvkaZ8L+Q5EdhL6g443Zn2GmNKTuXGNSan\nxnUpr0VoB5gZ5sKB4MjdbI4VvFY5JTu4OLTxQfPE+/f+R3PTbYTdgKkNwbYx\nt/hTSAD2UqLFZZ5fJ88oWwc5YRjKcTt1JUf7/xTdXvUFt06xm2o2pPfmbJDl\ns+CKB7KJHmcoZAxrqNgimNm96QrR04ZJ44btTVP+MeKOLXk4M/XipY/hUXQu\nTTirg1Edu76BU1sS2BurEIxjUHtCt0G4cw1SOe3zeRKAvjAzjCq+UiguEJ+w\nbFGdBPX3jJ42OyifZTskfO0N4vVRdfpcNo5gpGoVG6nWBZjeyB6Q62SlWEe1\nQXRpJf32a1+NQJgB07btbJbU+y7JM3X7F8DeKHtc5dBZa+pMDwN7ezWdO8Y8\n4hYWx3WOZFYmCtFgobB2hWDfRX4kfpr4l/7hnKVB+zRwDpSRso+U0X24tWar\ndQYK\r\n=PIsY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFMPWAuiYQB1vKCVvZ20AuPFYGTdA1OyLYrZ7m3rbdKIAiEA/WSjxECJ+JWSsDcJXXub9lpEG3uYRG034pMSc5zOo3E="}]},"_npmUser":{"name":"killy.mxi","email":"killy.mxi@gmail.com"},"directories":{},"maintainers":[{"name":"killy.mxi","email":"killy.mxi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/selderee_0.6.0_1620665834651_0.6650116888104542"},"_hasShrinkwrap":false},"0.7.0":{"name":"selderee","version":"0.7.0","description":"Selectors decision tree - choose matching selectors, fast","keywords":["CSS","selectors","decision tree","match"],"repository":{"type":"git","url":"git+https://github.com/mxxii/selderee.git"},"bugs":{"url":"https://github.com/mxxii/selderee/issues"},"homepage":"https://github.com/mxxii/selderee","author":{"name":"KillyMXI"},"funding":"https://ko-fi.com/killymxi","license":"MIT","exports":{"import":"./lib/selderee.mjs","require":"./lib/selderee.cjs"},"type":"module","main":"./lib/selderee.cjs","module":"./lib/selderee.mjs","types":"./lib/selderee.d.ts","scripts":{"build:rollup":"rollup -c","build:types":"tsc -d --emitDeclarationOnly --declarationDir ./lib","build":"npm run clean && npm run build:rollup && npm run build:types","clean":"rimraf lib"},"dependencies":{"parseley":"^0.8.0"},"_id":"selderee@0.7.0","_nodeVersion":"12.22.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-kcPBgfZ95lAo/ca8AdFoTAJ3F5kHjquLr2J1melK8TOOKvE8jTbIcZ1Su9sZk3BKaufrv/pBwP28Qdc626upXw==","shasum":"bd5a30c989e2238bc17fc1a18623aecd7526f2bb","tarball":"https://registry.npmjs.org/selderee/-/selderee-0.7.0.tgz","fileCount":12,"unpackedSize":50391,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAKtEu9Fv0KGRbknITJ3Pm+HvWwtvuiWgeRuoNADL43IAiEA7u+cdzh9aIpoytGEV7tFenUs80ZhGtvlgV2AtpTnVPw="}]},"_npmUser":{"name":"killy.mxi","email":"killy.mxi@gmail.com"},"directories":{},"maintainers":[{"name":"killy.mxi","email":"killy.mxi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/selderee_0.7.0_1636585509407_0.6024082943777067"},"_hasShrinkwrap":false},"0.8.0":{"name":"selderee","version":"0.8.0","description":"Selectors decision tree - choose matching selectors, fast","keywords":["CSS","selectors","decision tree","match"],"repository":{"type":"git","url":"git+https://github.com/mxxii/selderee.git"},"bugs":{"url":"https://github.com/mxxii/selderee/issues"},"homepage":"https://github.com/mxxii/selderee","author":{"name":"KillyMXI"},"funding":"https://ko-fi.com/killymxi","license":"MIT","exports":{"import":"./lib/selderee.mjs","require":"./lib/selderee.cjs"},"type":"module","main":"./lib/selderee.cjs","module":"./lib/selderee.mjs","types":"./lib/selderee.d.ts","sideEffects":false,"scripts":{"build:rollup":"rollup -c","build:types":"tsc -d --emitDeclarationOnly --declarationDir ./lib","build":"npm run clean && npm run build:rollup && npm run build:types","clean":"rimraf lib"},"dependencies":{"parseley":"^0.9.0"},"_id":"selderee@0.8.0","_nodeVersion":"12.22.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-d+8R+EYT69xreidSzxfrvy9M6sEeHZhNJrwTRL2dGD1YeF9TCmp54C4GdRgH4iMeavdO7b1eildI5yhuWYxyrA==","shasum":"9b9290171c675b16945476333fd99483e41e7329","tarball":"https://registry.npmjs.org/selderee/-/selderee-0.8.0.tgz","fileCount":12,"unpackedSize":28168,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhrTLYCRA9TVsSAnZWagAA6eUP/iyWqa5dY+7BZ3w+dQeu\nMF2k+KWBX5JV191l5cBbJC/36LiMVZASsmJMSKoyXvrb6UgQ1sGaX0goX7nh\nbkki2B1SxDJfJSSldP2j8g/kr626a2zE+mWKlKa1ExS8BCnQpDia1+2MK7G/\nYptY+u3wFn7U/9mBJn+rcbuElnv9Tyqi5xMVjGzODpXjj2cn/I9O3myv2ttw\n1AYUVxb44ZkuR8VC15kZMp8B9oK767VoxMyz3Rtk4ncxY5HMcgrqTX0b5W5x\nh+PF61WOeKWvUpc4mqbCBN44gLfF4q8A9g5sjhlhxm/ukTE66GiRJPRero2t\neLgVoB0fO6jZHCGD8ThdAZdKKu8LUxMvanlDYIhmPV6iSgs+yOgkGD6RRzej\nf/tqqiAPuAvmUd17vyhes+5iLD9NJSb+WPQffP9pOcwukw6svn8hgApgiG20\ngGp6BMwpeiAb+m3za8bpITBWm8vEKrFbP8EulvtveR6rR139HD1pe5a1kK/e\nkWnaC3zNOfRUMe5GG+2PkJ3QTKE37UC+wePGaXf/ikUQFpPZNqI38Z6SZgXs\n9viTpgvvelNCUdD505rigHWxPitJMeVteH9nfMry6t4/F9cb6rwv5rTI1Kvx\n+WldNOBHh2KAnwHZL/AiCTUWZsgjuOmcRH49J0qtlpqW0SEgXNa6eNcdGdWV\nZrgH\r\n=Ksex\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC2x9ZlmU7FiSsv/qOiTHPwBImPnIoE2cDtp5hqga4urAiEAxLUg7g+rU37eWv3m/s1/31rFFH4rJDynIQeWoM8lfVk="}]},"_npmUser":{"name":"killy.mxi","email":"killy.mxi@gmail.com"},"directories":{},"maintainers":[{"name":"killy.mxi","email":"killy.mxi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/selderee_0.8.0_1638740696734_0.9248772880487899"},"_hasShrinkwrap":false},"0.8.1":{"name":"selderee","version":"0.8.1","description":"Selectors decision tree - choose matching selectors, fast","keywords":["CSS","selectors","decision tree","match"],"repository":{"type":"git","url":"git+https://github.com/mxxii/selderee.git"},"bugs":{"url":"https://github.com/mxxii/selderee/issues"},"homepage":"https://github.com/mxxii/selderee","author":{"name":"KillyMXI"},"funding":"https://ko-fi.com/killymxi","license":"MIT","exports":{"import":"./lib/selderee.mjs","require":"./lib/selderee.cjs"},"type":"module","main":"./lib/selderee.cjs","module":"./lib/selderee.mjs","types":"./lib/selderee.d.ts","sideEffects":false,"scripts":{"build:rollup":"rollup -c","build:types":"tsc -d --emitDeclarationOnly --declarationDir ./lib","build":"npm run clean && npm run build:rollup && npm run build:types","clean":"rimraf lib"},"dependencies":{"parseley":"^0.9.1"},"_id":"selderee@0.8.1","_nodeVersion":"12.22.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-4pyzRjM9qVe3cCXoZM8w9xb2JTjJjhBbPN4izSqu/1OPu3rjyOa7t9WYaipBEuNwPGCQaPmUSPbNgTxjfL9oOw==","shasum":"994681a5a144c191699433e34639d48c49c8ddf3","tarball":"https://registry.npmjs.org/selderee/-/selderee-0.8.1.tgz","fileCount":12,"unpackedSize":44127,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhrkN7CRA9TVsSAnZWagAA4eYP/RDz8avOCMJwk+58iXXR\nCBWydASSq0Yp6KzGHG/OCpCCaz0VaGZLM/8fy1pUkSthAffvlHwg3Q4vIEpO\ncQrKYiB7AHBuj+mWt3DF5dDrGSFOoVtDBWnsPubjJFo9XS3lpkm7Yy8hQgzj\n1fQAR5lvOoQgvpHGmu//u/JEsRsodYLKbDcVNYLLJAcbRX4iYGyiRIhc9eee\n9xR1GJUoj+iuYbfrGLe1z3elCfzkLPuPKSCLpSmobhOH3PSA4YQl7BlfuqhS\n20Z4k13KTqtaqUZD0k4zQSB/L/XbzFAX47bgagpmgNDbNRK3jcnr90ibBYln\nBgMDmmrT254yBxm3kcxk5UmeWo/nT5ko5+fPWtm3VMlFaa5dWxVtOzlg91CU\nPG/PBm2AAIAewFLTfiGRPFtTZz7hISb/x/VgTp/Ax4jSKtOwCrMN37IUNWIr\nY+YfrWRshbYO00rgi5H/ZkUVlcshsNkl4XsNGCD4QLiC8InXoj7BA9rbEivP\nq1vG2K6gPqb0jTnIvVPOSfTy/iVnyBMfPPks8kmseI2XoxpNF12GkltYwrH0\nNDr/EvEEmmK6TE1628jknpPbNjqMJWmz9S02L+gRtQR6/77G+4ySt6Max1BA\n2AhmcAr6Z6J98/NUYBIN65k020rA1hUjdE2AydfTYgr3mfnUWqQVDT7NMJMB\na1KK\r\n=BQw/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID7+DIIdmavp4cmJwzM3unCRQz1yEYZGFQQfktYQC4uTAiAtMG1/EFK2x2Svljtskg2siBim9Y+9Q/2OnjDhAfsz0A=="}]},"_npmUser":{"name":"killy.mxi","email":"killy.mxi@gmail.com"},"directories":{},"maintainers":[{"name":"killy.mxi","email":"killy.mxi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/selderee_0.8.1_1638810491110_0.21670678463912307"},"_hasShrinkwrap":false},"0.9.0":{"name":"selderee","version":"0.9.0","description":"Selectors decision tree - choose matching selectors, fast","keywords":["CSS","selectors","decision tree","match"],"repository":{"type":"git","url":"git+https://github.com/mxxii/selderee.git"},"bugs":{"url":"https://github.com/mxxii/selderee/issues"},"homepage":"https://github.com/mxxii/selderee","author":{"name":"KillyMXI"},"funding":"https://ko-fi.com/killymxi","license":"MIT","exports":{"import":"./lib/selderee.mjs","require":"./lib/selderee.cjs"},"type":"module","main":"./lib/selderee.cjs","module":"./lib/selderee.mjs","types":"./lib/selderee.d.ts","typedocMain":"./src/selderee.ts","sideEffects":false,"scripts":{"build:rollup":"rollup -c","build:types":"tsc -d --emitDeclarationOnly --declarationDir ./lib","build":"npm run clean && npm run build:rollup && npm run build:types","clean":"rimraf lib"},"dependencies":{"parseley":"^0.10.0"},"gitHead":"af663f6947d2661e3f39471b4ef1976eca779cd6","_id":"selderee@0.9.0","_nodeVersion":"12.22.7","_npmVersion":"7.24.2","dist":{"integrity":"sha512-Zsg9YrMit8Z2u4L/f4oGuVjreT3KRml2Ak2aUKr4S+an3vy6ntGv7MLUs4i2hN6bz9b9DcDMl2fS4r1obhDMJA==","shasum":"31b5d7b4dac0a51bb2bbfeaf5487ac2ce1604fa4","tarball":"https://registry.npmjs.org/selderee/-/selderee-0.9.0.tgz","fileCount":11,"unpackedSize":43507,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/FoFCRA9TVsSAnZWagAAVuIP/iO8V+cH/apY1itmxwT+\nWsQlJLGXdjLgzva5PXNgJkT6Ys3WI98ncwc9W2Mo65m+G9UMKdEeo1ZSVYuF\n/zV+iuGEwjwwbwJ17aTjaObXLPWuvsBWvYVBjzSMiMWV0IlXtDotbh/oVonx\nG7XyBvK+lh3dGwI/Tvb3SQFGj3s6mbp4ZN0Xegp+K2qg4TNZO0TRhjziUcKj\ns8dOwQlnTlfRyYX3aLRbiJy1skmpFtPAwxqGjSjixu30u4P+DKTvpM/koFkC\nHwmqhaNGQtPnmZvH7Er9UdGDJluOEQ5ZnAg5A2T4veF2IQQZrmgNplgjxuvE\n43ePr7C6Ts9pCJHiT1zQ2LUrZOQcqFmsGxqLVkXPBtSaKg73z1IspoGxuoxA\nuEz+ilcatCDJnZQLeWvk6UJHqAwIycujbpA/+/y3k+BldbzIVle+W+9ZHhSy\nTGZeuMpE0dwj02NDdFwTlyV83CPPWljC/so5OwEAyfrsPW9pd0mS9Pg99Pm5\nJmUnL8GHbLQh3hW9eJTPSlCPUpJlUsB6iig4S+eb56NMI8ETU+yjBXHa8feV\n+EMUwl/qDX86DVZZXjlWHmLqz2rCn/v5jeS7+M0xbGL5JUhWHA3I99Z7cqXv\nNFipE0TXzBJRsGhWigHciZQcRYb927XDfkWpRhC7Mv/oYWXEJrL1zAvSNjUu\nQsH2\r\n=qCdd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIChS5ifeta0stuO8MSFSVXzY/GUUHyO3bmwXGgAF3bBAAiAHkDafhwu/mtRZ+h99YXIp6cQDSGOGcAK34X89Y+AA1Q=="}]},"_npmUser":{"name":"killy.mxi","email":"killy.mxi@gmail.com"},"directories":{},"maintainers":[{"name":"killy.mxi","email":"killy.mxi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/selderee_0.9.0_1643928069495_0.9741988475371555"},"_hasShrinkwrap":false},"0.10.0":{"name":"selderee","version":"0.10.0","description":"Selectors decision tree - choose matching selectors, fast","keywords":["CSS","selectors","decision tree","match"],"repository":{"type":"git","url":"git+https://github.com/mxxii/selderee.git"},"bugs":{"url":"https://github.com/mxxii/selderee/issues"},"homepage":"https://github.com/mxxii/selderee","author":{"name":"KillyMXI"},"funding":"https://ko-fi.com/killymxi","license":"MIT","exports":{"import":"./lib/selderee.mjs","require":"./lib/selderee.cjs"},"type":"module","main":"./lib/selderee.cjs","module":"./lib/selderee.mjs","types":"./lib/selderee.d.ts","typedocMain":"./src/selderee.ts","sideEffects":false,"scripts":{"build:rollup":"rollup -c","build:types":"tsc -d --emitDeclarationOnly --declarationDir ./lib","build":"npm run clean && npm run build:rollup && npm run build:types","clean":"rimraf lib"},"dependencies":{"parseley":"^0.11.0"},"_id":"selderee@0.10.0","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-DEL/RW/f4qLw/NrVg97xKaEBC8IpzIG2fvxnzCp3Z4yk4jQ3MXom+Imav9wApjxX2dfS3eW7x0DXafJr85i39A==","shasum":"ec83d6044d9026668dc9bd2561acfde99a4e3a1c","tarball":"https://registry.npmjs.org/selderee/-/selderee-0.10.0.tgz","fileCount":12,"unpackedSize":44461,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9GRDcMdYbxRMsjNIss4z4YFLxanzpOyAwNg2E8uFiogIgEA2BgaiZ2NSpG6v9tj3zmzRuv3/5XMnMVvsTS9F3MJc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjikwbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqk0A//UC5mKUhzOl3bCh6Q50xdOuPGjavlKUwDXX5mjUC4D+8TuwBS\r\nUHCpj675SpROcctOJJDqpzNJVgsiPs/tUMn+OIRVwkt5T9CgfeePDwbByhmT\r\ndzUC+9hEXTS6GJqXrxNlO1NpQA/xnpxhdWzNftdQVhMJ6Jo6EHXLdaGEUmwP\r\nqZQQv3zNQr+CbpO/fuOepUUmd8ORpUDKwTegTNhEOANdyiU6fkY34gUFgZrG\r\n5y6CICflZsHyHblijh5x9sgPCAJhOPKMb42Nt/omIvkuiq0VunRBo7nc1QEU\r\nB++oT7SrwP16Rp9jwQNa62giLV3eSWwN2P/q+BLE0XOvllTjJvddtnhtg/Na\r\nzy6iLRVFyc+UtNb6CR7ENRvAbtD2lb6Vpl0JZ8Di7aAtrQzMh5emC8VySNzI\r\n/32f3N8U4z/splc5M8xgn6RFIjtZPtCOrhlHztALlkU2zbOQe7Vfzlff/V7z\r\nvXB4d+7r3v5rR/T5o3xZ78+RJALMHn5P9Br6neDKICw5xeCzDn0fL1TogO0B\r\nu7cJwPQN74plHh91KO5gK/8terAFKi6K9zazmzsQNC3lJgmqZxPzeO58yQzF\r\nVncwLHRUkUHHbvtslZ6eYa1D9P2Q+jyM3L3Z6xzt3/UPQEmTLhSZYLSeeAOe\r\nKIe0/P02mjS3IxCCkjMG8ESbaMsv2hGC2gA=\r\n=qXjM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"killy.mxi","email":"killy.mxi@gmail.com"},"directories":{},"maintainers":[{"name":"killy.mxi","email":"killy.mxi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/selderee_0.10.0_1670007834940_0.5202512844788336"},"_hasShrinkwrap":false},"0.11.0":{"name":"selderee","version":"0.11.0","description":"Selectors decision tree - choose matching selectors, fast","keywords":["CSS","selectors","decision tree","match"],"repository":{"type":"git","url":"git+https://github.com/mxxii/selderee.git"},"bugs":{"url":"https://github.com/mxxii/selderee/issues"},"homepage":"https://github.com/mxxii/selderee","author":{"name":"KillyMXI"},"funding":"https://ko-fi.com/killymxi","license":"MIT","exports":{"import":"./lib/selderee.mjs","require":"./lib/selderee.cjs"},"type":"module","main":"./lib/selderee.cjs","module":"./lib/selderee.mjs","types":"./lib/selderee.d.ts","typedocMain":"./src/selderee.ts","sideEffects":false,"scripts":{"build:rollup":"rollup -c","build:types":"tsc -d --emitDeclarationOnly --declarationDir ./lib","build":"npm run clean && npm run build:rollup && npm run build:types","clean":"rimraf lib"},"dependencies":{"parseley":"^0.12.0"},"_id":"selderee@0.11.0","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==","shasum":"6af0c7983e073ad3e35787ffe20cefd9daf0ec8a","tarball":"https://registry.npmjs.org/selderee/-/selderee-0.11.0.tgz","fileCount":12,"unpackedSize":44636,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+aHZtDMojYjcNEgSmZfyi01EjPfR9vSOSkJC5kGgLXgIgaeuQuLye+Ggld58+uLkLRgGAdjQlSXLu0N3BmWR9m1U="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj98QrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoTaRAAiZTtXVigb10RZtjyF3eMDnKx7m30VgL+774usMGl2f9aZSQ3\r\n86iodFK8w0OErIvZp3kgDQ9Q6lrzIOr+Y0l8UuDbRodoijws0YeyIr20/xuj\r\n4/cPQ4YFxZUs7v0VhfP54vrmauEt595YQIJlq7+x9+qGJ97R0vxCRpKFKVwd\r\niPZTjDaD7cJ0PqmdalqzUcZEuFADZQYVwbgFHt/MDZtiHItGJllc2Gsni09R\r\nhhgi8U2n8gZgyzu6jQltgKCNXjUk0XVIuVgaJjO9Cao4YZ654bfz9FZI4imH\r\nVP+aNVXtqwsMjwUA+Ab3bAzCO+7geXgR5sEkbSSHR9/WnR8/iV6pZ9eLLL2K\r\nB6+l+Yk1JxZiuwSFUiUMdLVMC1DdPUIBMsjsxspMnD+pCHFhRhxwt4bW/0rQ\r\nqCFhTW0D+v3yW0kcNc6/68hOOaotFj1HhVOKqKxIdqVHcg+DD/pS59APvPLV\r\nranI+oXzFsrcpzh9+CNgTcUzlf2+ck5/Nu1R5Z3JRopT/u+WRvpP3TQNZMDA\r\ny61Yin3UZs7Rn/goFG1gtuml8qKprTzJjjOmAw8/jav60bxySKdVss0+kjK+\r\nNJjHcC4Wlc1uB9nrgH4Ao6QaD0G8Al+S/gVuMoXPrI4bAeCikbD9YKlwcSwY\r\ndKv/jkiba2WXzkEMxoo9tbn8t0YCAjCHW+4=\r\n=gr0L\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"killy.mxi","email":"killy.mxi@gmail.com"},"directories":{},"maintainers":[{"name":"killy.mxi","email":"killy.mxi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/selderee_0.11.0_1677181995433_0.9286500989388797"},"_hasShrinkwrap":false}},"time":{"created":"2021-05-06T14:25:20.243Z","0.5.0":"2021-05-06T14:25:20.370Z","modified":"2023-02-23T19:53:15.752Z","0.6.0":"2021-05-10T16:57:14.798Z","0.7.0":"2021-11-10T23:05:09.589Z","0.8.0":"2021-12-05T21:44:56.871Z","0.8.1":"2021-12-06T17:08:11.270Z","0.9.0":"2022-02-03T22:41:09.631Z","0.10.0":"2022-12-02T19:03:55.216Z","0.11.0":"2023-02-23T19:53:15.635Z"},"maintainers":[{"name":"killy.mxi","email":"killy.mxi@gmail.com"}],"description":"Selectors decision tree - choose matching selectors, fast","homepage":"https://github.com/mxxii/selderee","keywords":["CSS","selectors","decision tree","match"],"repository":{"type":"git","url":"git+https://github.com/mxxii/selderee.git"},"author":{"name":"KillyMXI"},"bugs":{"url":"https://github.com/mxxii/selderee/issues"},"license":"MIT","readme":"# selderee\n\n![lint status badge](https://github.com/mxxii/selderee/workflows/lint/badge.svg)\n![test status badge](https://github.com/mxxii/selderee/workflows/test/badge.svg)\n[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/mxxii/selderee/blob/main/LICENSE)\n[![npm](https://img.shields.io/npm/dw/selderee?color=informational&logo=npm)](https://www.npmjs.com/package/selderee)\n\n**Sel**ectors **de**cision t**ree** - pick matching selectors, fast.\n\n----\n\n\n## What is it for\n\nThe problem statement: there are multiple CSS selectors with attached handlers, and a HTML DOM to process. For each HTML Element a matching handler has to be found and applied.\n\nThe naive approach is to walk through the DOM and test each and every selector against each Element. This means *O(n\\*m)* complexity.\n\nIt is pretty clear though that if we have selectors that share something in common then we can reduce the number of checks.\n\nThe main `selderee` package offers the selectors tree structure. Runnable decision functions for specific DOM implementations are built via plugins.\n\n\n## Limitations\n\n- Pseudo-classes and pseudo-elements are not supported by the underlying library [parseley](https://github.com/mxxii/parseley) (yet?);\n- General siblings (`~`), descendants (` `) and same column combinators (`||`) are also not supported.\n\n\n## `selderee` vs `css-select`\n\n[css-select](https://github.com/fb55/css-select) - a CSS selector compiler & engine.\n\n| Feature | `selderee` | `css-select` |\n| ------------------------------------- | :--------: | :----------: |\n| Support for `htmlparser2` DOM AST | plugin | + |\n| \"Compiles\" into a function | + | + |\n| Pick selector(s) for a given Element | + | |\n| Query Element(s) for a given selector | | + |\n\n\n## Packages\n\n| Package | Version | Folder | Changelog |\n| --------- | --------- | --------- | --------- |\n| [selderee](https://www.npmjs.com/package/selderee) | [![npm](https://img.shields.io/npm/v/selderee?logo=npm)](https://www.npmjs.com/package/selderee) | [/packages/selderee](https://github.com/mxxii/selderee/tree/main/packages/selderee/) | [changelog](https://github.com/mxxii/selderee/blob/main/packages/selderee/CHANGELOG.md) |\n| [@selderee/plugin-htmlparser2](https://www.npmjs.com/package/@selderee/plugin-htmlparser2) | [![npm](https://img.shields.io/npm/v/@selderee/plugin-htmlparser2?logo=npm)](https://www.npmjs.com/package/@selderee/plugin-htmlparser2) | [/packages/plugin-htmlparser2](https://github.com/mxxii/selderee/tree/main/packages/plugin-htmlparser2/) | [changelog](https://github.com/mxxii/selderee/blob/main/packages/plugin-htmlparser2/CHANGELOG.md) |\n\n\n## Install\n\n```shell\n> npm i selderee @selderee/plugin-htmlparser2\n```\n\n\n## Documentation\n\n- [API](https://github.com/mxxii/selderee/blob/main/docs/index.md)\n\n\n## Usage example\n\n```js\nconst htmlparser2 = require('htmlparser2');\nconst util = require('util');\n\nconst { DecisionTree, Treeify } = require('selderee');\nconst { hp2Builder } = require('@selderee/plugin-htmlparser2');\n\nconst selectorValuePairs = [\n ['p', 'A'],\n ['p.foo[bar]', 'B'],\n ['p[class~=foo]', 'C'],\n ['div.foo', 'D'],\n ['div > p.foo', 'E'],\n ['div > p', 'F'],\n ['#baz', 'G']\n];\n\n// Make a tree structure from all given selectors.\nconst selectorsDecisionTree = new DecisionTree(selectorValuePairs);\n\n// `treeify` builder produces a string output for testing and debug purposes.\n// `treeify` expects string values attached to each selector.\nconst prettyTree = selectorsDecisionTree.build(Treeify.treeify);\nconsole.log(prettyTree);\n\nconst html = /*html*/`\n

second

\n`;\nconst dom = htmlparser2.parseDocument(html);\nconst element = dom.children[0].children[0].children[1].children[0];\n\n// `hp2Builder` produces a picker that can pick values\n// from the selectors tree.\nconst picker = selectorsDecisionTree.build(hp2Builder);\n\n// Get all matches\nconst allMatches = picker.pickAll(element);\nconsole.log(util.inspect(allMatches, { breakLength: 70, depth: null }));\n\n// or get the value from the most specific match.\nconst bestMatch = picker.pick1(element);\nconsole.log(`Best matched value: ${bestMatch}`);\n```\n\n
Example output\n\n```text\n▽\n├─◻ Tag name\n│ ╟─◇ = p\n│ ║ ┠─▣ Attr value: class\n│ ║ ┃ ╙─◈ ~= \"foo\"\n│ ║ ┃ ┠─◨ Attr presence: bar\n│ ║ ┃ ┃ ┖─◁ #1 [0,2,1] B\n│ ║ ┃ ┠─◁ #2 [0,1,1] C\n│ ║ ┃ ┖─◉ Push element: >\n│ ║ ┃ └─◻ Tag name\n│ ║ ┃ ╙─◇ = div\n│ ║ ┃ ┖─◁ #4 [0,1,2] E\n│ ║ ┠─◁ #0 [0,0,1] A\n│ ║ ┖─◉ Push element: >\n│ ║ └─◻ Tag name\n│ ║ ╙─◇ = div\n│ ║ ┖─◁ #5 [0,0,2] F\n│ ╙─◇ = div\n│ ┖─▣ Attr value: class\n│ ╙─◈ ~= \"foo\"\n│ ┖─◁ #3 [0,1,1] D\n└─▣ Attr value: id\n ╙─◈ = \"baz\"\n ┖─◁ #6 [1,0,0] G\n[ { index: 2, value: 'C', specificity: [ 0, 1, 1 ] },\n { index: 4, value: 'E', specificity: [ 0, 1, 2 ] },\n { index: 0, value: 'A', specificity: [ 0, 0, 1 ] },\n { index: 5, value: 'F', specificity: [ 0, 0, 2 ] } ]\nBest matched value: E\n```\n\n*Some gotcha: you may notice the check for `#baz` has to be performed every time the decision tree is called. If it happens to be `p#baz` or `div#baz` or even `.foo#baz` - it would be much better to write it like this. Deeper, narrower tree means less checks on average. (in case of `.foo#baz` the class check might finally outweigh the tag name check and rebalance the tree.)*\n\n
\n\n\n## Development\n\nTargeting Node.js version >=14.\n\nMonorepo uses NPM v7 workspaces (make sure v7 is installed when used with Node.js v14.)\n","readmeFilename":"README.md"}