{"_id":"css-selector-parser","_rev":"4337510","name":"css-selector-parser","description":"Powerful and compliant CSS selector parser.","dist-tags":{"latest":"3.3.0"},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"time":{"modified":"2026-04-08T09:55:36.000Z","created":"2013-02-22T09:13:36.048Z","3.3.0":"2025-12-14T21:49:12.852Z","3.2.0":"2025-11-17T17:57:15.650Z","3.1.3":"2025-06-23T13:00:42.173Z","3.1.2":"2025-04-13T20:42:27.514Z","3.1.1":"2025-03-16T22:45:47.329Z","3.1.0":"2025-03-16T22:41:43.549Z","3.0.5":"2024-03-02T22:27:41.460Z","3.0.4":"2023-12-15T23:37:21.328Z","3.0.3":"2023-12-08T11:38:23.240Z","3.0.2":"2023-11-21T19:24:49.160Z","3.0.1":"2023-11-20T13:21:35.315Z","3.0.0":"2023-10-02T10:27:05.720Z","2.3.2":"2023-06-25T13:15:29.120Z","2.3.1":"2023-06-24T21:58:59.141Z","2.3.0":"2023-06-24T21:55:21.446Z","2.2.3":"2023-06-16T09:00:35.349Z","2.2.2":"2023-06-13T09:45:31.222Z","2.2.1":"2023-06-13T08:56:58.518Z","2.2.0":"2023-06-12T22:17:50.920Z","2.1.0":"2023-06-12T19:55:32.502Z","2.0.0":"2023-06-12T19:27:23.988Z","1.4.1":"2020-04-11T19:39:56.729Z","1.4.0":"2020-04-11T13:43:18.438Z","1.3.0":"2016-11-29T17:22:01.386Z","1.2.0":"2016-09-26T09:37:50.427Z","1.1.0":"2015-06-16T13:50:40.720Z","1.0.4":"2014-12-22T15:45:20.373Z","1.0.3":"2013-02-23T16:42:21.439Z","1.0.2":"2013-02-22T09:58:12.014Z","1.0.1":"2013-02-22T09:55:44.197Z","1.0.0":"2013-02-22T09:13:36.048Z"},"users":{"paxidently":true,"andrezsanchez":true,"ashleylupita":true,"eklem":true,"qddegtya":true},"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"versions":{"3.3.0":{"name":"css-selector-parser","version":"3.3.0","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^7.1.0","@typescript-eslint/parser":"^7.1.0","eslint":"^8.43.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^5.1.3","husky":"^4.3.8","jest":"^29.5.0","jest-ts-webcompat-resolver":"^1.0.0","prettier":"^3.2.5","standard-version":"^9.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./dist/cjs/index.js","module":"./dist/mjs/index.js","sideEffects":false,"exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"typings":"./dist/cjs/index","types":"./dist/cjs/index","license":"MIT","scripts":{"build":"rm -Rf dist && tsc -p tsconfig.json && tsc -p tsconfig.mjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && echo '{\"type\": \"module\"}' > dist/mjs/package.json","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:watch":"jest --watch test","test:dist":"TEST_DIST=cjs npm run test","lint":"eslint {src,test,benchmark}/**.ts","lint:fix":"eslint --fix {src,test,benchmark}/**.ts","benchmark":"ts-node benchmark/benchmark.ts","release":"standard-version","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[2,"never",["start-case","pascal-case"]]}},"_id":"css-selector-parser@3.3.0","gitHead":"764df0c40a9df3d056ea1bde28ffbb3c163ffbdd","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"shasum":"1a34220d76762c929ae99993df5a60721f505082","size":25472,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-3.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-3.3.0.tgz"},"_npmUser":{"name":"mdevils","email":"npmjs@maratd.com"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/css-selector-parser_3.3.0_1765748952690_0.7205557063212968"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-14T21:49:12.852Z","publish_time":1765748952852,"_source_registry_name":"default","_cnpm_publish_time":1765748952852},"3.2.0":{"name":"css-selector-parser","version":"3.2.0","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^7.1.0","@typescript-eslint/parser":"^7.1.0","eslint":"^8.43.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^5.1.3","husky":"^4.3.8","jest":"^29.5.0","jest-ts-webcompat-resolver":"^1.0.0","prettier":"^3.2.5","standard-version":"^9.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./dist/cjs/index.js","module":"./dist/mjs/index.js","sideEffects":false,"exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"typings":"./dist/cjs/index","types":"./dist/cjs/index","license":"MIT","scripts":{"build":"rm -Rf dist && tsc -p tsconfig.json && tsc -p tsconfig.mjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && echo '{\"type\": \"module\"}' > dist/mjs/package.json","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:watch":"jest --watch test","test:dist":"TEST_DIST=cjs npm run test","lint":"eslint {src,test,benchmark}/**.ts","lint:fix":"eslint --fix {src,test,benchmark}/**.ts","benchmark":"ts-node benchmark/benchmark.ts","release":"standard-version","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[2,"never",["start-case","pascal-case"]]}},"gitHead":"f04297f6a9dada7590052df3d82ef475a97806f1","_id":"css-selector-parser@3.2.0","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_nodeVersion":"25.1.0","_npmVersion":"11.6.2","dist":{"shasum":"ca18669ea5e9e1ea4187df627c0f8b29632e7eb1","size":22635,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-3.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-3.2.0.tgz"},"_npmUser":{"name":"mdevils","email":"npmjs@maratd.com"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/css-selector-parser_3.2.0_1763402235447_0.9790513920959021"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-11-17T17:57:15.650Z","publish_time":1763402235650,"_source_registry_name":"default","_cnpm_publish_time":1763402235650},"3.1.3":{"name":"css-selector-parser","version":"3.1.3","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^7.1.0","@typescript-eslint/parser":"^7.1.0","eslint":"^8.43.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^5.1.3","husky":"^4.3.8","jest":"^29.5.0","jest-ts-webcompat-resolver":"^1.0.0","prettier":"^3.2.5","standard-version":"^9.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./dist/cjs/index.js","module":"./dist/mjs/index.js","sideEffects":false,"exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"typings":"./dist/cjs/index","types":"./dist/cjs/index","license":"MIT","scripts":{"build":"rm -Rf dist && tsc -p tsconfig.json && tsc -p tsconfig.mjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && echo '{\"type\": \"module\"}' > dist/mjs/package.json","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:watch":"jest --watch test","test:dist":"TEST_DIST=cjs npm run test","lint":"eslint {src,test,benchmark}/**.ts","lint:fix":"eslint --fix {src,test,benchmark}/**.ts","benchmark":"ts-node benchmark/benchmark.ts","release":"standard-version","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[2,"never",["start-case","pascal-case"]]}},"_id":"css-selector-parser@3.1.3","gitHead":"3225295f21d0fe7c5d876c75ccf8e0b311e46c5d","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_nodeVersion":"20.11.0","_npmVersion":"10.2.4","dist":{"shasum":"fb1ba303cfa00e0a7b7a49ede46c12e1b87a081f","size":22376,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-3.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-3.1.3.tgz"},"_npmUser":{"name":"mdevils","email":"npmjs@maratd.com","actor":{"name":"mdevils","email":"npmjs@maratd.com","type":"user"}},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/css-selector-parser_3.1.3_1750683642007_0.9633165577899403"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-23T13:00:42.173Z","publish_time":1750683642173,"_source_registry_name":"default","_cnpm_publish_time":1750683642173},"3.1.2":{"name":"css-selector-parser","version":"3.1.2","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^7.1.0","@typescript-eslint/parser":"^7.1.0","eslint":"^8.43.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^5.1.3","husky":"^4.3.8","jest":"^29.5.0","jest-ts-webcompat-resolver":"^1.0.0","prettier":"^3.2.5","standard-version":"^9.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./dist/cjs/index.js","module":"./dist/mjs/index.js","sideEffects":false,"exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"typings":"./dist/cjs/index","types":"./dist/cjs/index","license":"MIT","scripts":{"build":"rm -Rf dist && tsc -p tsconfig.json && tsc -p tsconfig.mjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && echo '{\"type\": \"module\"}' > dist/mjs/package.json","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:watch":"jest --watch test","test:dist":"TEST_DIST=cjs npm run test","lint":"eslint {src,test,benchmark}/**.ts","lint:fix":"eslint --fix {src,test,benchmark}/**.ts","benchmark":"ts-node benchmark/benchmark.ts","release":"standard-version","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[2,"never",["start-case","pascal-case"]]}},"_id":"css-selector-parser@3.1.2","gitHead":"c537d2c927d0f1362015c2e4c0673ded3e787e95","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_nodeVersion":"20.11.0","_npmVersion":"10.2.4","dist":{"shasum":"181106cc2acc9fa74f0dbd6860c3305202284c81","size":22377,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-3.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-3.1.2.tgz"},"_npmUser":{"name":"mdevils","email":"npmjs@maratd.com"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/css-selector-parser_3.1.2_1744576947267_0.6938498302721938"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-04-13T20:42:27.514Z","publish_time":1744576947514,"_source_registry_name":"default","_cnpm_publish_time":1744576947514},"3.1.1":{"name":"css-selector-parser","version":"3.1.1","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^7.1.0","@typescript-eslint/parser":"^7.1.0","eslint":"^8.43.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^5.1.3","husky":"^4.3.8","jest":"^29.5.0","jest-ts-webcompat-resolver":"^1.0.0","prettier":"^3.2.5","standard-version":"^9.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./dist/cjs/index.js","module":"./dist/mjs/index.js","sideEffects":false,"exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"typings":"./dist/cjs/index","types":"./dist/cjs/index","license":"MIT","scripts":{"build":"rm -Rf dist && tsc -p tsconfig.json && tsc -p tsconfig.mjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && echo '{\"type\": \"module\"}' > dist/mjs/package.json","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:watch":"jest --watch test","test:dist":"TEST_DIST=cjs npm run test","lint":"eslint {src,test,benchmark}/**.ts","lint:fix":"eslint --fix {src,test,benchmark}/**.ts","benchmark":"ts-node benchmark/benchmark.ts","release":"standard-version","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[2,"never",["start-case","pascal-case"]]}},"_id":"css-selector-parser@3.1.1","gitHead":"d0401907f3d023da48ae2c40cb29f43646a25642","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_nodeVersion":"20.11.0","_npmVersion":"10.2.4","dist":{"shasum":"d6635dad07e54d0985884c148d8c35e404b0a2a6","size":21876,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-3.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-3.1.1.tgz"},"_npmUser":{"name":"mdevils","email":"npmjs@maratd.com"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/css-selector-parser_3.1.1_1742165147114_0.8790955362027082"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-03-16T22:45:47.329Z","publish_time":1742165147329,"_source_registry_name":"default","_cnpm_publish_time":1742165147329},"3.1.0":{"name":"css-selector-parser","version":"3.1.0","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^7.1.0","@typescript-eslint/parser":"^7.1.0","eslint":"^8.43.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^5.1.3","husky":"^4.3.8","jest":"^29.5.0","jest-ts-webcompat-resolver":"^1.0.0","prettier":"^3.2.5","standard-version":"^9.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./dist/cjs/index.js","module":"./dist/mjs/index.js","exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"typings":"./dist/cjs/index","types":"./dist/cjs/index","license":"MIT","scripts":{"build":"rm -Rf dist && tsc -p tsconfig.json && tsc -p tsconfig.mjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && echo '{\"type\": \"module\"}' > dist/mjs/package.json","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:watch":"jest --watch test","test:dist":"TEST_DIST=cjs npm run test","lint":"eslint {src,test,benchmark}/**.ts","lint:fix":"eslint --fix {src,test,benchmark}/**.ts","benchmark":"ts-node benchmark/benchmark.ts","release":"standard-version","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[2,"never",["start-case","pascal-case"]]}},"_id":"css-selector-parser@3.1.0","gitHead":"83609c6401044f6a398fca6a8c992480b5e4ed5a","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_nodeVersion":"20.11.0","_npmVersion":"10.2.4","dist":{"shasum":"ac1f4162b4f82fdb7468ea11622efb001c1b03d9","size":21863,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-3.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-3.1.0.tgz"},"_npmUser":{"name":"mdevils","email":"npmjs@maratd.com"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/css-selector-parser_3.1.0_1742164903366_0.4697321406393036"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-03-16T22:41:43.549Z","publish_time":1742164903549,"_source_registry_name":"default","_cnpm_publish_time":1742164903549},"3.0.5":{"name":"css-selector-parser","version":"3.0.5","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^7.1.0","@typescript-eslint/parser":"^7.1.0","eslint":"^8.43.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^5.1.3","husky":"^4.3.8","jest":"^29.5.0","jest-ts-webcompat-resolver":"^1.0.0","prettier":"^3.2.5","standard-version":"^9.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./dist/cjs/index.js","module":"./dist/mjs/index.js","exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"typings":"./dist/cjs/index","types":"./dist/cjs/index","license":"MIT","scripts":{"build":"rm -Rf dist && tsc -p tsconfig.json && tsc -p tsconfig.mjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && echo '{\"type\": \"module\"}' > dist/mjs/package.json","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:watch":"jest --watch test","test:dist":"TEST_DIST=cjs npm run test","lint":"eslint {src,test,benchmark}/**.ts","lint:fix":"eslint --fix {src,test,benchmark}/**.ts","benchmark":"ts-node benchmark/benchmark.ts","release":"standard-version","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[2,"never",["start-case","pascal-case"]]}},"_id":"css-selector-parser@3.0.5","gitHead":"fb2559f06095db508b06f5f48d2badde5e55b608","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_nodeVersion":"21.6.1","_npmVersion":"10.2.4","dist":{"shasum":"9b636ebccf7c4bcce5c1ac21ae27de9f01180ae9","size":19171,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-3.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-3.0.5.tgz"},"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_3.0.5_1709418461321_0.862384331696076"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-03-02T22:27:41.460Z","publish_time":1709418461460,"_source_registry_name":"default","_cnpm_publish_time":1709418461460},"3.0.4":{"name":"css-selector-parser","version":"3.0.4","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^5.60.0","@typescript-eslint/parser":"^5.60.0","eslint":"^8.43.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^4.2.1","husky":"^4.3.8","jest":"^29.5.0","jest-ts-webcompat-resolver":"^1.0.0","prettier":"^2.2.1","standard-version":"^9.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./dist/cjs/index.js","module":"./dist/mjs/index.js","exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"typings":"./dist/cjs/index","types":"./dist/cjs/index","license":"MIT","scripts":{"build":"rm -Rf dist && tsc -p tsconfig.json && tsc -p tsconfig.mjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && echo '{\"type\": \"module\"}' > dist/mjs/package.json","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:watch":"jest --watch test","test:dist":"TEST_DIST=cjs npm run test","lint":"eslint {src,test,benchmark}/**.ts","lint:fix":"eslint --fix {src,test,benchmark}/**.ts","benchmark":"ts-node benchmark/benchmark.ts","release":"standard-version","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[2,"never",["start-case","pascal-case"]]}},"gitHead":"bda08ccbaed02823b6af197dc777c44d2dc328af","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_id":"css-selector-parser@3.0.4","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"shasum":"1cabd23f3d83ebd5a752c1c9e72a2f37f6d904fa","size":19144,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-3.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-3.0.4.tgz"},"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_3.0.4_1702683441112_0.5984213197950801"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-12-15T23:37:21.328Z","publish_time":1702683441328,"_source_registry_name":"default","_cnpm_publish_time":1702683441328},"3.0.3":{"name":"css-selector-parser","version":"3.0.3","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^5.60.0","@typescript-eslint/parser":"^5.60.0","eslint":"^8.43.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^4.2.1","husky":"^4.3.8","jest":"^29.5.0","jest-ts-webcompat-resolver":"^1.0.0","prettier":"^2.2.1","standard-version":"^9.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./dist/cjs/index.js","module":"./dist/mjs/index.js","exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"typings":"./dist/cjs/index","types":"./dist/cjs/index","license":"MIT","scripts":{"build":"rm -Rf dist && tsc -p tsconfig.json && tsc -p tsconfig.mjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && echo '{\"type\": \"module\"}' > dist/mjs/package.json","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:watch":"jest --watch test","test:dist":"TEST_DIST=cjs npm run test","lint":"eslint {src,test,benchmark}/**.ts","lint:fix":"eslint --fix {src,test,benchmark}/**.ts","benchmark":"ts-node benchmark/benchmark.ts","release":"standard-version","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[2,"never",["start-case","pascal-case"]]}},"gitHead":"33413e8de91fdeb08d364fdb5862819739bca0ed","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_id":"css-selector-parser@3.0.3","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"shasum":"f5f309a8ad5f4bf97994f24e5d3a40261bcb9de2","size":19002,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-3.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-3.0.3.tgz"},"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_3.0.3_1702035503011_0.12513337665904056"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-12-08T11:38:23.240Z","publish_time":1702035503240,"_source_registry_name":"default","_cnpm_publish_time":1702035503240},"3.0.2":{"name":"css-selector-parser","version":"3.0.2","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^5.60.0","@typescript-eslint/parser":"^5.60.0","eslint":"^8.43.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^4.2.1","husky":"^4.3.8","jest":"^29.5.0","jest-ts-webcompat-resolver":"^1.0.0","prettier":"^2.2.1","standard-version":"^9.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./dist/cjs/index.js","module":"./dist/mjs/index.js","exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"typings":"./dist/cjs/index","types":"./dist/cjs/index","license":"MIT","scripts":{"build":"rm -Rf dist && tsc -p tsconfig.json && tsc -p tsconfig.mjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && echo '{\"type\": \"module\"}' > dist/mjs/package.json","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:watch":"jest --watch test","test:dist":"TEST_DIST=cjs npm run test","lint":"eslint {src,test,benchmark}/**.ts","lint:fix":"eslint --fix {src,test,benchmark}/**.ts","benchmark":"ts-node benchmark/benchmark.ts","release":"standard-version","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[2,"never",["start-case","pascal-case"]]}},"gitHead":"927cebfd71d11aedf287334451de47a18f4eed2f","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_id":"css-selector-parser@3.0.2","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"shasum":"23bcc08cfcd2d407e987786f6626b5e5db939e4b","size":18845,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-3.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-3.0.2.tgz"},"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_3.0.2_1700594688970_0.045220029094051206"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-11-21T19:24:49.160Z","publish_time":1700594689160,"_source_registry_name":"default","_cnpm_publish_time":1700594689160},"3.0.1":{"name":"css-selector-parser","version":"3.0.1","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^5.60.0","@typescript-eslint/parser":"^5.60.0","eslint":"^8.43.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^4.2.1","husky":"^4.3.8","jest":"^29.5.0","jest-ts-webcompat-resolver":"^1.0.0","prettier":"^2.2.1","standard-version":"^9.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./dist/cjs/index.js","module":"./dist/mjs/index.js","exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"typings":"./dist/cjs/index","types":"./dist/cjs/index","license":"MIT","scripts":{"build":"rm -Rf dist && tsc -p tsconfig.json && tsc -p tsconfig.mjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && echo '{\"type\": \"module\"}' > dist/mjs/package.json","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:watch":"jest --watch test","test:dist":"TEST_DIST=cjs npm run test","lint":"eslint {src,test,benchmark}/**.ts","lint:fix":"eslint --fix {src,test,benchmark}/**.ts","benchmark":"ts-node benchmark/benchmark.ts","release":"standard-version","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[2,"never",["start-case","pascal-case"]]}},"gitHead":"de9a3edb6964299d7ae2509364028a9a111cc9c4","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_id":"css-selector-parser@3.0.1","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"shasum":"9325c448d595480c51772041c5e2c4cf6f2f6186","size":18713,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-3.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-3.0.1.tgz"},"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_3.0.1_1700486495160_0.9100144319621088"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-11-20T13:21:35.315Z","publish_time":1700486495315,"_source_registry_name":"default","_cnpm_publish_time":1700486495315},"3.0.0":{"name":"css-selector-parser","version":"3.0.0","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^5.60.0","@typescript-eslint/parser":"^5.60.0","eslint":"^8.43.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^4.2.1","husky":"^4.3.8","jest":"^29.5.0","jest-ts-webcompat-resolver":"^1.0.0","prettier":"^2.2.1","standard-version":"^9.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./dist/cjs/index.js","module":"./dist/mjs/index.js","exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"typings":"./dist/cjs/index","types":"./dist/cjs/index","license":"MIT","scripts":{"build":"rm -Rf dist && tsc -p tsconfig.json && tsc -p tsconfig.mjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && echo '{\"type\": \"module\"}' > dist/mjs/package.json","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:watch":"jest --watch test","test:dist":"TEST_DIST=cjs npm run test","lint":"eslint {src,test,benchmark}/**.ts","lint:fix":"eslint --fix {src,test,benchmark}/**.ts","benchmark":"ts-node benchmark/benchmark.ts","release":"standard-version","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[2,"never",["start-case","pascal-case"]]}},"gitHead":"d0d4b840de018237a2a39de1c8eebb30adefe0f1","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_id":"css-selector-parser@3.0.0","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"shasum":"25c3da2ed85f8f78c6e6684c168a71ddea81918c","size":19964,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-3.0.0.tgz"},"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_3.0.0_1696242425511_0.844026654783117"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-10-02T10:27:05.720Z","publish_time":1696242425720,"_source_registry_name":"default","_cnpm_publish_time":1696242425720},"2.3.2":{"name":"css-selector-parser","version":"2.3.2","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^5.60.0","@typescript-eslint/parser":"^5.60.0","eslint":"^8.43.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^4.2.1","husky":"^4.3.8","jest":"^29.5.0","jest-ts-webcompat-resolver":"^1.0.0","prettier":"^2.2.1","standard-version":"^9.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./dist/cjs/index.js","module":"./dist/mjs/index.js","exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"typings":"./dist/cjs/index","types":"./dist/cjs/index","license":"MIT","scripts":{"build":"rm -Rf dist && tsc -p tsconfig.json && tsc -p tsconfig.mjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && echo '{\"type\": \"module\"}' > dist/mjs/package.json","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:watch":"jest --watch test","test:dist":"TEST_DIST=cjs npm run test","lint":"eslint {src,test,benchmark}/**.ts","lint:fix":"eslint --fix {src,test,benchmark}/**.ts","benchmark":"ts-node benchmark/benchmark.ts","release":"standard-version","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[2,"never",["start-case","pascal-case"]]}},"gitHead":"f079d9875cea1030e088350734d0c55ff9a51cfc","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_id":"css-selector-parser@2.3.2","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"shasum":"99215b06573073f202521422bdb4f881338a33b2","size":19758,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-2.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-2.3.2.tgz"},"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_2.3.2_1687698928949_0.0489129530112129"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-06-25T13:15:29.120Z","publish_time":1687698929120,"_source_registry_name":"default","_cnpm_publish_time":1687698929120},"2.3.1":{"name":"css-selector-parser","version":"2.3.1","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^5.60.0","@typescript-eslint/parser":"^5.60.0","eslint":"^8.43.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^4.2.1","husky":"^4.3.8","jest":"^29.5.0","prettier":"^2.2.1","standard-version":"^9.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./dist/cjs/index.js","module":"./dist/mjs/index.js","exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"typings":"./dist/cjs/index","types":"./dist/cjs/index","license":"MIT","scripts":{"build":"rm -Rf dist && tsc -p tsconfig.json && tsc -p tsconfig.mjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && echo '{\"type\": \"module\"}' > dist/mjs/package.json","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:dist":"TEST_DIST=cjs npm run test","lint":"eslint src/**.ts","lint:fix":"eslint --fix src/**.ts","benchmark":"ts-node benchmark/benchmark.ts","release":"standard-version","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[2,"never",["start-case","pascal-case"]]}},"gitHead":"ebd073522544417ac138ba9e02cae3cd53a2cad5","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_id":"css-selector-parser@2.3.1","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"shasum":"c236b1ad67cb8220ea309034707597fbb8d69c85","size":19617,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-2.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-2.3.1.tgz"},"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_2.3.1_1687643938936_0.8962264363317904"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-06-24T21:58:59.141Z","publish_time":1687643939141,"_source_registry_name":"default","_cnpm_publish_time":1687643939141},"2.3.0":{"name":"css-selector-parser","version":"2.3.0","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^5.60.0","@typescript-eslint/parser":"^5.60.0","eslint":"^8.43.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^4.2.1","husky":"^4.3.8","jest":"^29.5.0","prettier":"^2.2.1","standard-version":"^9.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.9.0"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./dist/cjs/index.js","module":"./dist/mjs/index.js","exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"typings":"./dist/cjs/index","types":"./dist/cjs/index","license":"MIT","scripts":{"build":"rm -Rf dist && tsc -p tsconfig.json && tsc -p tsconfig.mjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json && echo '{\"type\": \"module\"}' > dist/mjs/package.json","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:dist":"TEST_DIST=cjs npm run test","lint":"eslint src/**.ts","lint:fix":"eslint --fix src/**.ts","benchmark":"ts-node benchmark/benchmark.ts","release":"standard-version","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test","commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},"commitlint":{"extends":["@commitlint/config-conventional"],"rules":{"subject-case":[2,"never",["start-case","pascal-case"]]}},"gitHead":"7fa7b7dcc2c23783c45e36a9cbab245ff1288e39","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_id":"css-selector-parser@2.3.0","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"shasum":"cfed63ab343366a3023769568c3fff0546104878","size":2925,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-2.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-2.3.0.tgz"},"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_2.3.0_1687643721264_0.12672353268518455"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-06-24T21:55:21.446Z","publish_time":1687643721446,"_source_registry_name":"default","deprecated":"version was incorrectly published","_cnpm_publish_time":1687643721446},"2.2.3":{"name":"css-selector-parser","version":"2.2.3","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@types/colors":"^1.2.1","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^4.11.1","@typescript-eslint/parser":"^4.11.1","colors":"*","eslint":"^7.16.0","eslint-config-prettier":"^7.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.3.0","husky":"^4.3.8","jest":"^29.5.0","prettier":"^2.2.1","ts-jest":"^29.1.0","ts-node":"^8.8.2","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.1.3"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./lib/index.js","typings":"./lib/index","types":"./lib/index","license":"MIT","scripts":{"build":"tsc","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:lib":"TEST_LIB=1 npm run test","lint":"eslint src/**.ts","lint:fix":"eslint --fix src/**.ts","benchmark":"ts-node benchmark/benchmark.ts","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test"}},"gitHead":"3c4152e5fb46d5cbb1bf7bb748e925d6fbeb8296","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_id":"css-selector-parser@2.2.3","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"shasum":"0e1a05e258844ae909fced5a7779e7c5322ee829","size":16319,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-2.2.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-2.2.3.tgz"},"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_2.2.3_1686906035134_0.7755170926668653"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-06-16T09:00:35.349Z","publish_time":1686906035349,"_source_registry_name":"default","_cnpm_publish_time":1686906035349},"2.2.2":{"name":"css-selector-parser","version":"2.2.2","description":"Powerful and compliant CSS selector parser.","keywords":["css","css selector","css selector parser","pseudo-classes","pseudo-elements","css attributes","css tags","css classes"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"funding":[{"type":"github","url":"https://github.com/sponsors/mdevils"},{"type":"patreon","url":"https://patreon.com/mdevils"}],"devDependencies":{"@types/colors":"^1.2.1","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^4.11.1","@typescript-eslint/parser":"^4.11.1","colors":"*","eslint":"^7.16.0","eslint-config-prettier":"^7.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.3.0","husky":"^4.3.8","jest":"^29.5.0","prettier":"^2.2.1","ts-jest":"^29.1.0","ts-node":"^8.8.2","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.1.3"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./lib/index.js","typings":"./lib/index","types":"./lib/index","license":"MIT","scripts":{"build":"tsc","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:lib":"TEST_LIB=1 npm run test","lint":"eslint src/**.ts","lint:fix":"eslint --fix src/**.ts","benchmark":"ts-node benchmark/benchmark.ts","prepublishOnly":"npm run build"},"husky":{"hooks":{"pre-commit":"npm run lint && npm run test"}},"gitHead":"7a56022fe48d88b071370d5e8bb372a69c99df05","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_id":"css-selector-parser@2.2.2","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"shasum":"4c07218a18fc03e0c8d4439cf16c75dbd678a692","size":16274,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-2.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-2.2.2.tgz"},"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_2.2.2_1686649531028_0.6861715611143437"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-06-13T09:45:31.222Z","publish_time":1686649531222,"_source_registry_name":"default","_cnpm_publish_time":1686649531222},"2.2.1":{"name":"css-selector-parser","version":"2.2.1","description":"Just a CSS selector parser.","keywords":["css","css selector","css selector parser"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"devDependencies":{"@types/colors":"^1.2.1","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^4.11.1","@typescript-eslint/parser":"^4.11.1","colors":"*","eslint":"^7.16.0","eslint-config-prettier":"^7.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.3.0","jest":"^29.5.0","prettier":"^2.2.1","ts-jest":"^29.1.0","ts-node":"^8.8.2","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.1.3"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./lib/index.js","typings":"./lib/index","types":"./lib/index","license":"MIT","scripts":{"build":"tsc","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:lib":"TEST_LIB=1 npm run test","lint":"eslint src/**.ts","lint:fix":"eslint --fix src/**.ts","benchmark":"ts-node benchmark/benchmark.ts","prepublishOnly":"npm run build"},"gitHead":"90688459b76b606f925f8c6bf5b675a784ae6e86","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_id":"css-selector-parser@2.2.1","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"shasum":"d69e963fef22db92eb8cb55da88cd49e4ea50ccc","size":16162,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-2.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-2.2.1.tgz"},"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_2.2.1_1686646618336_0.7514985923206632"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-06-13T08:56:58.518Z","publish_time":1686646618518,"_source_registry_name":"default","_cnpm_publish_time":1686646618518},"2.2.0":{"name":"css-selector-parser","version":"2.2.0","description":"Just a CSS selector parser.","keywords":["css","css selector","css selector parser"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"devDependencies":{"@types/colors":"^1.2.1","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^4.11.1","@typescript-eslint/parser":"^4.11.1","colors":"*","eslint":"^7.16.0","eslint-config-prettier":"^7.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.3.0","jest":"^29.5.0","prettier":"^2.2.1","ts-jest":"^29.1.0","ts-node":"^8.8.2","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.1.3"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./lib/index.js","typings":"./lib/index","types":"./lib/index","license":"MIT","scripts":{"build":"tsc","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --readme tools/README.md --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:lib":"TEST_LIB=1 npm run test","lint":"eslint src/**.ts","lint:fix":"eslint --fix src/**.ts","benchmark":"ts-node benchmark/benchmark.ts","prepublishOnly":"npm run build"},"gitHead":"ba5d75f2dddcbbb95f421ce59011e5134920ff91","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_id":"css-selector-parser@2.2.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"shasum":"374adde0241c09b06ff17e78c0cc1e75517b0baf","size":16186,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-2.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-2.2.0.tgz"},"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_2.2.0_1686608270693_0.8057556331644495"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-06-12T22:17:50.920Z","publish_time":1686608270920,"_source_registry_name":"default","_cnpm_publish_time":1686608270920},"2.1.0":{"name":"css-selector-parser","version":"2.1.0","description":"Just a CSS selector parser.","keywords":["css","css selector","css selector parser"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"devDependencies":{"@types/colors":"^1.2.1","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^4.11.1","@typescript-eslint/parser":"^4.11.1","colors":"*","eslint":"^7.16.0","eslint-config-prettier":"^7.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.3.0","jest":"^29.5.0","prettier":"^2.2.1","ts-jest":"^29.1.0","ts-node":"^8.8.2","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.1.3"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./lib/index.js","typings":"./lib/index","types":"./lib/index","license":"MIT","scripts":{"build":"tsc","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --readme tools/README.md --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:lib":"TEST_LIB=1 npm run test","lint":"eslint src/**.ts","lint:fix":"eslint --fix src/**.ts","benchmark":"ts-node benchmark/benchmark.ts","prepublishOnly":"npm run build"},"gitHead":"e09900087373cb1287ca4b3237b4def050ba5fc1","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_id":"css-selector-parser@2.1.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"shasum":"6d88ef78d350c18d0d6d83c62e5a2489cb1311b6","size":16142,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-2.1.0.tgz"},"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_2.1.0_1686599732331_0.02363715005150513"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-06-12T19:55:32.502Z","publish_time":1686599732502,"_source_registry_name":"default","_cnpm_publish_time":1686599732502},"2.0.0":{"name":"css-selector-parser","version":"2.0.0","description":"Just a CSS selector parser.","keywords":["css","css selector","css selector parser"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"devDependencies":{"@types/colors":"^1.2.1","@types/jest":"^29.5.2","@typescript-eslint/eslint-plugin":"^4.11.1","@typescript-eslint/parser":"^4.11.1","colors":"*","eslint":"^7.16.0","eslint-config-prettier":"^7.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.3.0","jest":"^29.5.0","prettier":"^2.2.1","ts-jest":"^29.1.0","ts-node":"^8.8.2","typedoc":"^0.24.8","typedoc-plugin-markdown":"^3.15.3","typescript":"^4.1.3"},"repository":{"type":"git","url":"git+https://github.com/mdevils/css-selector-parser.git"},"main":"./lib/index.js","typings":"./lib/index","types":"./lib/index","license":"MIT","scripts":{"build":"tsc","build:docs":"rm -Rf docs && typedoc --excludeInternal --excludeExternals --disableSources --plugin typedoc-plugin-markdown --readme tools/README.md --entryDocument ../README.md --out docs src/index.ts && ts-node tools/cleanup-docs.ts","test":"jest test","test:lib":"TEST_LIB=1 npm run test","lint":"eslint src/**.ts","lint:fix":"eslint --fix src/**.ts","benchmark":"ts-node benchmark/benchmark.ts","prepublishOnly":"npm run build"},"gitHead":"0e517dc411b050964f2a291dcbe2218df9f1ef28","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"homepage":"https://github.com/mdevils/css-selector-parser#readme","_id":"css-selector-parser@2.0.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"shasum":"706f3da56b7d24f1022f6862265f2e2947051af6","size":16160,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-2.0.0.tgz"},"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_2.0.0_1686598043739_0.11614743649379489"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-06-12T19:27:23.988Z","publish_time":1686598043988,"_source_registry_name":"default","deprecated":"this package version has been deprecated","_cnpm_publish_time":1686598043988},"1.4.1":{"name":"css-selector-parser","version":"1.4.1","description":"Just a CSS selector parser.","keywords":["css","css selector","css selector parser"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"dependencies":{},"devDependencies":{"@types/colors":"^1.2.1","colors":"*","ts-node":"^8.8.2","typescript":"^3.8.3"},"repository":{"type":"git","url":"https://github.com/mdevils/css-selector-parser.git"},"main":"./lib/index.js","typings":"./lib/index","types":"./lib/index","license":"MIT","scripts":{"build":"tsc","test":"ts-node test/test.ts","benchmark":"ts-node benchmark/benchmark.ts","prepublishOnly":"yarn build"},"licenseText":"Copyright (c) 2013 Dulin Marat\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.","_id":"css-selector-parser@1.4.1","dist":{"shasum":"03f9cb8a81c3e5ab2c51684557d5aaf6d2569759","size":9080,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-1.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-1.4.1.tgz"},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_1.4.1_1586633996622_0.9436676519899321"},"_hasShrinkwrap":false,"publish_time":1586633996729,"_cnpm_publish_time":1586633996729},"1.4.0":{"name":"css-selector-parser","version":"1.4.0","description":"Just a CSS selector parser.","keywords":["css","css selector","css selector parser"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"dependencies":{},"devDependencies":{"@types/colors":"^1.2.1","colors":"*","ts-node":"^8.8.2","typescript":"^3.8.3"},"repository":{"type":"git","url":"https://github.com/mdevils/css-selector-parser.git"},"main":"./lib/index.js","typings":"./lib/index","types":"./lib/index","license":"MIT","scripts":{"build":"tsc","test":"ts-node test/test.ts","benchmark":"ts-node benchmark/benchmark.ts","prepublishOnly":"yarn build"},"licenseText":"Copyright (c) 2013 Dulin Marat\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.","_id":"css-selector-parser@1.4.0","dist":{"shasum":"b843d6bedb9a4abe192a96116818ee8609f4cf73","size":9020,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-1.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-1.4.0.tgz"},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/css-selector-parser_1.4.0_1586612598289_0.633976988328824"},"_hasShrinkwrap":false,"publish_time":1586612598438,"_cnpm_publish_time":1586612598438},"1.3.0":{"name":"css-selector-parser","version":"1.3.0","description":"Just a CSS selector parser.","keywords":["css","css selector","css selector parser"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"dependencies":{},"devDependencies":{"coffee-script":"^1.9.3","colors":"*"},"repository":{"type":"git","url":"git+https://github.com/mdevils/node-css-selector-parser.git"},"main":"index","engines":["node >= 0.4.0"],"license":"MIT","scripts":{"test":"node test/test.js","benchmark":"node benchmark/benchmark.js"},"gitHead":"a5e7546cdf6ddfa3ba8b7789c37ff65a2a90bacd","bugs":{"url":"https://github.com/mdevils/node-css-selector-parser/issues"},"homepage":"https://github.com/mdevils/node-css-selector-parser#readme","_id":"css-selector-parser@1.3.0","_shasum":"5f1ad43e2d8eefbfdc304fcd39a521664943e3eb","_from":".","_npmVersion":"2.14.20","_nodeVersion":"5.7.0","_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"dist":{"shasum":"5f1ad43e2d8eefbfdc304fcd39a521664943e3eb","size":9085,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-1.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-1.3.0.tgz"},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/css-selector-parser-1.3.0.tgz_1480440119538_0.3651726385578513"},"directories":{},"publish_time":1480440121386,"_cnpm_publish_time":1480440121386,"_hasShrinkwrap":false},"1.2.0":{"name":"css-selector-parser","version":"1.2.0","description":"Just a CSS selector parser.","keywords":["css","css selector","css selector parser"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"dependencies":{},"devDependencies":{"coffee-script":"^1.9.3","colors":"*"},"repository":{"type":"git","url":"git+https://github.com/mdevils/node-css-selector-parser.git"},"main":"index","engines":["node >= 0.4.0"],"license":"MIT","scripts":{"test":"node test/test.js","benchmark":"node benchmark/benchmark.js"},"gitHead":"9c0aef203ae388aca164a2522e6f59e7bc6f8230","bugs":{"url":"https://github.com/mdevils/node-css-selector-parser/issues"},"homepage":"https://github.com/mdevils/node-css-selector-parser#readme","_id":"css-selector-parser@1.2.0","_shasum":"82daaff4f69c4a776721b3b6beedd7f1f509cc94","_from":".","_npmVersion":"2.14.20","_nodeVersion":"5.7.0","_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"dist":{"shasum":"82daaff4f69c4a776721b3b6beedd7f1f509cc94","size":9233,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-1.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-1.2.0.tgz"},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/css-selector-parser-1.2.0.tgz_1474882669209_0.8807479459792376"},"directories":{},"publish_time":1474882670427,"_cnpm_publish_time":1474882670427,"_hasShrinkwrap":false},"1.1.0":{"name":"css-selector-parser","version":"1.1.0","description":"Just a CSS selector parser.","keywords":["css","css selector","css selector parser"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"dependencies":{},"devDependencies":{"coffee-script":"^1.9.3","colors":"*"},"repository":{"type":"git","url":"https://github.com/mdevils/node-css-selector-parser.git"},"main":"index","engines":["node >= 0.4.0"],"license":"MIT","scripts":{"test":"npm run build && coffee test/test.coffee","build":"coffee -o lib -c src/*.coffee","benchmark":"npm run build && coffee benchmark/benchmark.coffee"},"gitHead":"3cbd7fcabf9addacd62c1548e47bc0bcb59c25f4","bugs":{"url":"https://github.com/mdevils/node-css-selector-parser/issues"},"homepage":"https://github.com/mdevils/node-css-selector-parser","_id":"css-selector-parser@1.1.0","_shasum":"ffbdbf19b381fa332178c423b768b291e240d799","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"dist":{"shasum":"ffbdbf19b381fa332178c423b768b291e240d799","size":5415,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-1.1.0.tgz"},"directories":{},"publish_time":1434462640720,"_cnpm_publish_time":1434462640720,"_hasShrinkwrap":false},"1.0.4":{"name":"css-selector-parser","version":"1.0.4","description":"Just a CSS selector parser.","keywords":["css","css selector","css selector parser"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"dependencies":{},"devDependencies":{"colors":"*"},"repository":{"type":"git","url":"https://github.com/mdevils/node-css-selector-parser.git"},"main":"index","engines":["node >= 0.4.0"],"license":"MIT","gitHead":"de87ed5c979d398a03c8dbd89fd9c58b0ed85745","bugs":{"url":"https://github.com/mdevils/node-css-selector-parser/issues"},"homepage":"https://github.com/mdevils/node-css-selector-parser","_id":"css-selector-parser@1.0.4","scripts":{},"_shasum":"65dfe614bd5fd175b64a0a3f193b870fc5790773","_from":".","_npmVersion":"1.4.16","_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"dist":{"shasum":"65dfe614bd5fd175b64a0a3f193b870fc5790773","size":5803,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-1.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-1.0.4.tgz"},"directories":{},"publish_time":1419263120373,"_cnpm_publish_time":1419263120373,"_hasShrinkwrap":false},"1.0.3":{"name":"css-selector-parser","version":"1.0.3","description":"Just a CSS selector parser.","keywords":["css","css selector","css selector parser"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"dependencies":{},"devDependencies":{"colors":"*"},"repository":{"type":"git","url":"https://github.com/mdevils/node-css-selector-parser.git"},"main":"index","engines":["node >= 0.4.0"],"license":"MIT","_id":"css-selector-parser@1.0.3","dist":{"shasum":"0019845f6461d2f19dcf38eb59f9177affadd156","size":5093,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-1.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-1.0.3.tgz"},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"directories":{},"publish_time":1361637741439,"_cnpm_publish_time":1361637741439,"_hasShrinkwrap":false},"1.0.2":{"name":"css-selector-parser","version":"1.0.2","description":"Just a CSS selector parser.","keywords":["css","css selector","css selector parser"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"dependencies":{},"devDependencies":{"colors":"*"},"repository":{"type":"git","url":"https://github.com/mdevils/node-css-selector-parser.git"},"main":"index","engines":["node >= 0.4.0"],"license":"MIT","_id":"css-selector-parser@1.0.2","dist":{"shasum":"39311069fd57ce9651facac67fe87226a152ea3c","size":5052,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-1.0.2.tgz"},"_npmVersion":"1.1.59","_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"directories":{},"publish_time":1361527092014,"_cnpm_publish_time":1361527092014,"_hasShrinkwrap":false},"1.0.1":{"name":"css-selector-parser","version":"1.0.1","description":"Just a CSS selector parser.","keywords":["css","css selector","css selector parser"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"dependencies":{},"devDependencies":{"colors":"*"},"repository":{"type":"git","url":"https://github.com/mdevils/node-css-selector-parser.git"},"main":"index","engines":["node >= 0.4.0"],"license":"MIT","_id":"css-selector-parser@1.0.1","dist":{"shasum":"0b7ed6d769790106899ace8a205bea2c865b2c55","size":5042,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-1.0.1.tgz"},"_npmVersion":"1.1.59","_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"directories":{},"publish_time":1361526944197,"_cnpm_publish_time":1361526944197,"_hasShrinkwrap":false},"1.0.0":{"name":"css-selector-parser","version":"1.0.0","description":"Just a CSS selector parser.","keywords":["css","css selector","css selector parser"],"author":{"name":"Marat Dulin","email":"mdevils@yandex.ru"},"dependencies":{},"devDependencies":{"colors":"*"},"repository":{"type":"git","url":"https://github.com/mdevils/node-css-selector-parser.git"},"main":"index","engines":["node >= 0.4.0"],"license":"MIT","_id":"css-selector-parser@1.0.0","dist":{"shasum":"9c787aa7900e38f38a460fbabf8954de1e8517bf","size":4246,"noattachment":false,"key":"/css-selector-parser/-/css-selector-parser-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/css-selector-parser/download/css-selector-parser-1.0.0.tgz"},"_npmVersion":"1.1.59","_npmUser":{"name":"mdevils","email":"mdevils@yandex.ru"},"maintainers":[{"name":"mdevils","email":"mdevils@yandex.ru"}],"directories":{},"publish_time":1361524416048,"_cnpm_publish_time":1361524416048,"_hasShrinkwrap":false}},"readme":"# css-selector-parser\n\n[![npm](https://img.shields.io/npm/v/css-selector-parser)](https://www.npmjs.com/package/css-selector-parser)\n[![npm bundle size](https://img.shields.io/bundlephobia/minzip/css-selector-parser)](https://bundlephobia.com/package/css-selector-parser)\n[![NPM License](https://img.shields.io/npm/l/css-selector-parser)](https://github.com/mdevils/css-selector-parser/blob/master/LICENSE)\n[![GitHub stars](https://img.shields.io/github/stars/mdevils/css-selector-parser)](https://github.com/mdevils/css-selector-parser/stargazers)\n\nA high-performance CSS selector parser with advanced features for modern web development.\n\n## Features\n\n- ???? **Fast and memory-efficient** parsing for all CSS selectors\n- ???? **AST-based** object model for programmatic manipulation\n- ???? **AST traversal** with visitor pattern for analyzing and transforming selectors\n- ???? **Full compliance** with all CSS selector specifications\n- ???? **Comprehensive test coverage**\n- ???? **Well-documented API** with TypeScript support\n- ???? **Two-way conversion** between CSS selectors and AST\n- ???? **Modular support** for various CSS specifications\n- ???? **[Interactive Playground](https://mdevils.github.io/css-selector-parser/)** - Try it in your browser!\n\n## Playground\n\n**[???? Launch Interactive Playground](https://mdevils.github.io/css-selector-parser/)**\n\nTest CSS selectors in your browser with syntax highlighting, real-time AST visualization, and configurable parser options.\n\n## Supported CSS Selector Standards\n\n- `css1`: [W3C CSS1 Specification](https://www.w3.org/TR/CSS1/)\n- `css2`: [W3C CSS2 Specification](https://www.w3.org/TR/CSS2/)\n- `css3`/`selectors-3`: [W3C Selectors Level 3](https://www.w3.org/TR/selectors-3/)\n- `selectors-4`: [W3C Selectors Level 4](https://www.w3.org/TR/selectors-4/)\n- `latest`: refers to `selectors-4`\n- `progressive`: `latest` + accepts unknown pseudo-classes, pseudo-elements and attribute case sensitivity modifiers\n\n## Migration Guides\n\n- [Migrating from 1.x to 3.x](CHANGELOG.md#migrating-from-1x-to-3x)\n- [Migrating from 2.x to 3.x](CHANGELOG.md#migrating-from-2x-to-3x)\n- [Migrating from 1.x to 2.x](CHANGELOG.md#220)\n\nSee [Changelog](CHANGELOG.md) for release details.\n\n## Installation\n\n```bash\nnpm install css-selector-parser\n# or\nyarn add css-selector-parser\n# or\npnpm add css-selector-parser\n```\n\n## Usage\n\n### Parsing Selectors\n\n```javascript\nimport { createParser } from 'css-selector-parser';\n\nconst parse = createParser();\nconst selector = parse('a[href^=\"/\"], .container:has(nav) > a[href]:nth-child(2)::before');\n\nconsole.log(selector);\n```\n\nThis produces an AST (Abstract Syntax Tree) output:\n\n```javascript\n({\n    type: 'Selector',\n    rules: [\n        {\n            type: 'Rule',\n            items: [\n                { type: 'TagName', name: 'a' },\n                {\n                    type: 'Attribute',\n                    name: 'href',\n                    operator: '^=',\n                    value: { type: 'String', value: '/' }\n                }\n            ]\n        },\n        {\n            type: 'Rule',\n            items: [\n                { type: 'ClassName', name: 'container' },\n                {\n                    type: 'PseudoClass',\n                    name: 'has',\n                    argument: {\n                        type: 'Selector',\n                        rules: [\n                            {\n                                type: 'Rule',\n                                items: [ { type: 'TagName', name: 'nav' } ]\n                            }\n                        ]\n                    }\n                }\n            ],\n            nestedRule: {\n                type: 'Rule',\n                items: [\n                    { type: 'TagName', name: 'a' },\n                    { type: 'Attribute', name: 'href' },\n                    {\n                        type: 'PseudoClass',\n                        name: 'nth-child',\n                        argument: { type: 'Formula', a: 0, b: 2 }\n                    },\n                    {\n                        type: 'PseudoElement',\n                        name: 'before'\n                    }\n                ],\n                combinator: '>'\n            }\n        }\n    ]\n})\n```\n\n### Building and Rendering Selectors\n\n```javascript\nimport { ast, render } from 'css-selector-parser';\n\nconst selector = ast.selector({\n    rules: [\n        ast.rule({\n            items: [\n                ast.tagName({name: 'a'}),\n                ast.attribute({name: 'href', operator: '^=', value: ast.string({value: '/'})})\n            ]\n        }),\n        ast.rule({\n            items: [\n                ast.className({name: 'container'}),\n                ast.pseudoClass({\n                    name: 'has',\n                    argument: ast.selector({\n                        rules: [ast.rule({items: [ast.tagName({name: 'nav'})]})]\n                    })\n                })\n            ],\n            nestedRule: ast.rule({\n                combinator: '>',\n                items: [\n                    ast.tagName({name: 'a'}),\n                    ast.attribute({name: 'href'}),\n                    ast.pseudoClass({\n                        name: 'nth-child',\n                        argument: ast.formula({a: 0, b: 2})\n                    }),\n                    ast.pseudoElement({name: 'before'})\n                ]\n            })\n        })\n    ]\n});\n\nconsole.log(render(selector)); // a[href^=\"/\"], .container:has(nav) > a[href]:nth-child(2)::before\n```\n\n### Traversing the AST\n\nThe `traverse` function allows you to walk through the AST and visit each node, making it easy to analyze or transform selectors.\n\n```javascript\nimport { createParser, traverse } from 'css-selector-parser';\n\nconst parse = createParser();\nconst selector = parse('div.foo > span#bar:hover::before');\n\n// Simple visitor function - called for each node\ntraverse(selector, (node, context) => {\n    console.log(node.type, context.parents.length);\n});\n\n// Visitor with enter/exit hooks\ntraverse(selector, {\n    enter(node, context) {\n        console.log('Entering:', node.type);\n        if (node.type === 'ClassName') {\n            console.log('Found class:', node.name);\n        }\n    },\n    exit(node, context) {\n        console.log('Leaving:', node.type);\n    }\n});\n\n// Skip visiting children of specific nodes\ntraverse(selector, (node) => {\n    if (node.type === 'PseudoClass') {\n        // Don't visit children of pseudo-classes\n        return false;\n    }\n});\n\n// Practical example: collect all class names\nconst classNames = [];\ntraverse(selector, (node) => {\n    if (node.type === 'ClassName') {\n        classNames.push(node.name);\n    }\n});\nconsole.log(classNames); // ['foo']\n\n// Access parent information\ntraverse(selector, (node, context) => {\n    console.log({\n        type: node.type,\n        parent: context.parent?.type,\n        depth: context.parents.length,\n        key: context.key,\n        index: context.index\n    });\n});\n```\n\nThe traversal context provides:\n- `node`: The current AST node being visited\n- `parent`: The parent node (undefined for root)\n- `parents`: Array of all ancestor nodes from root to current\n- `key`: Property name in parent that references this node\n- `index`: Array index if this node is in an array\n\n## CSS Modules Support\n\nCSS Modules are specifications that add new selectors or modify existing ones. This parser supports various CSS modules that can be included in your syntax definition:\n\n```javascript\nimport { createParser } from 'css-selector-parser';\n\n// Create a parser with specific CSS modules enabled\nconst parse = createParser({\n    syntax: 'selectors-4',\n    modules: ['css-position-3', 'css-scoping-1']\n});\n```\n\n### Supported CSS Modules\n\n| Module | Description |\n|--------|-------------|\n| `css-position-1/2/3/4` | Position-related pseudo-classes |\n| `css-scoping-1` | Shadow DOM selectors (`:host`, `:host-context()`, `::slotted()`) |\n| `css-pseudo-4` | Modern pseudo-elements (`::selection`, `::backdrop`, etc.) |\n| `css-shadow-parts-1` | `::part()` for styling shadow DOM components |\n| `css-nesting-1` | CSS Nesting selector (`&`) |\n\nThe `latest` syntax automatically includes all modules marked as current specifications.\n\n## API Documentation\n\n- [Complete API Documentation](docs/modules.md)\n- [Parsing CSS Selectors](docs/modules.md#createParser)\n- [Constructing CSS AST](docs/modules.md#ast)\n- [Rendering CSS AST](docs/modules.md#render)\n- [Traversing CSS AST](docs/modules.md#traverse)\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nMIT\n\n## Security Contact\n\nTo report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.\n\n## Sponsorship\n\nIf you find this project useful, please consider [sponsoring the developer](https://github.com/sponsors/mdevils) or [supporting on Patreon](https://patreon.com/mdevils).\n","_attachments":{},"homepage":"https://github.com/mdevils/css-selector-parser#readme","bugs":{"url":"https://github.com/mdevils/css-selector-parser/issues"},"license":"MIT"}