{"_id":"@appium/css-locator-to-native","_rev":"8-ebb14f0462f0a35c6f5fe42284a0effe","name":"@appium/css-locator-to-native","dist-tags":{"latest":"1.0.7"},"versions":{"1.0.0":{"name":"@appium/css-locator-to-native","version":"1.0.0","author":{"name":"Appium Contributors"},"license":"Apache-2.0","_id":"@appium/css-locator-to-native@1.0.0","maintainers":[{"name":"jlipps","email":"jlipps@gmail.com"},{"name":"nick.mokhnach","email":"mokhnach@gmail.com"},{"name":"kazucocoa","email":"fly.49.89.over@gmail.com"}],"homepage":"https://github.com/appium/css-locator-to-native#readme","bugs":{"url":"https://github.com/appium/css-locator-to-native/issues"},"dist":{"shasum":"108863ea467829f4871e59714d574608a7f02945","tarball":"https://registry.npmjs.org/@appium/css-locator-to-native/-/css-locator-to-native-1.0.0.tgz","fileCount":14,"integrity":"sha512-Q4pl++UawvTApSGAumg27ew6LvRbOClDe0yIs2Jj8Vj4foi41BcujMerQLhoWKyCtzZYEBGozyqeueraY+iJvg==","signatures":[{"sig":"MEUCIQCxY+wklDdM8EsaTRVoHJcJXIPAdZdG8IT2ewNHShKjpgIgUt583K/sXt4gJK+e5GgbZ6UoKIvTEM8GbSi6I21UbQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40199},"type":"module","engines":{"npm":">=10","node":"^20.19.0 || ^22.12.0 || >=24.0.0"},"exports":{".":{"types":"./build/lib/index.d.ts","import":"./build/lib/index.js"}},"gitHead":"58adc7f9ee607b0c05fd5d4fa6d7571ffed6fde8","scripts":{"dev":"tsc -p tsconfig.json --watch","lint":"eslint .","test":"mocha","build":"tsc -p tsconfig.json","clean":"rm -rf build","format":"prettier -w ./lib ./test","prepare":"npm run build","pretest":"npm run build","rebuild":"npm run clean && npm run build","lint:fix":"npm run lint -- --fix","typecheck":"tsc -p tsconfig.json --noEmit","format:check":"prettier --check ./lib ./test"},"_npmUser":{"name":"nick.mokhnach","email":"mokhnach@gmail.com"},"prettier":{"printWidth":100,"singleQuote":true,"bracketSpacing":false},"repository":{"url":"git+https://github.com/appium/css-locator-to-native.git","type":"git"},"_npmVersion":"11.12.1","description":"Platform-agnostic CSS selector parsing and normalization for native locator transformation","directories":{},"_nodeVersion":"24.10.0","dependencies":{"css-selector-parser":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^6.0.0","mocha":"^11.0.1","prettier":"^3.0.0","typescript":"^6.0.3","@types/chai":"^5.2.3","@types/node":"^25.9.2","@types/mocha":"^10.0.1","@appium/types":"^1.0.0-rc.1","@appium/tsconfig":"^1.1.2","chai-as-promised":"^8.0.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@types/chai-as-promised":"^8.0.2","@semantic-release/changelog":"^6.0.1","@appium/eslint-config-appium-ts":"^3.0.1","conventional-changelog-conventionalcommits":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/css-locator-to-native_1.0.0_1780857193346_0.32446923306003717","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@appium/css-locator-to-native","version":"1.0.1","author":{"name":"Appium Contributors"},"license":"Apache-2.0","_id":"@appium/css-locator-to-native@1.0.1","maintainers":[{"name":"jlipps","email":"jlipps@gmail.com"},{"name":"nick.mokhnach","email":"mokhnach@gmail.com"},{"name":"kazucocoa","email":"fly.49.89.over@gmail.com"}],"homepage":"https://github.com/appium/css-locator-to-native#readme","bugs":{"url":"https://github.com/appium/css-locator-to-native/issues"},"dist":{"shasum":"4be4c23fe3a7587c0406fc56ec22dc90b20ee8ff","tarball":"https://registry.npmjs.org/@appium/css-locator-to-native/-/css-locator-to-native-1.0.1.tgz","fileCount":54,"integrity":"sha512-FIKjakA2E1WB6xneBlXYgUcsDqO/dwD4zXJxGE5DwkOUwvGXZ8HdLEvvQruoPRD4C2mYmn+/r89BZcXU5QMZPw==","signatures":[{"sig":"MEUCIQCKYT3wSUGURZWmdN//QenIBcaQWB9WIA5Q5F5Ugi9xJQIgUcay8SD3r2uW1nRCGvNe/SXM1knPg6RfVdW8ZUdhX+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@appium%2fcss-locator-to-native@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84900},"type":"module","engines":{"npm":">=10","node":"^20.19.0 || ^22.12.0 || >=24.0.0"},"exports":{".":{"types":"./build/lib/index.d.ts","import":"./build/lib/index.js"}},"gitHead":"4ffcd508674aa971fe4bc9203aea4dcbe3330d44","scripts":{"dev":"tsc -p tsconfig.json --watch","lint":"eslint .","test":"mocha","build":"tsc -p tsconfig.json","clean":"rm -rf build","format":"prettier -w ./lib ./test","prepare":"npm run build","pretest":"npm run build","rebuild":"npm run clean && npm run build","lint:fix":"npm run lint -- --fix","typecheck":"tsc -p tsconfig.json --noEmit","format:check":"prettier --check ./lib ./test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:069851b0-bd1a-4d7f-98d8-048007cfb01c"}},"prettier":{"printWidth":100,"singleQuote":true,"bracketSpacing":false},"repository":{"url":"git+https://github.com/appium/css-locator-to-native.git","type":"git"},"_npmVersion":"11.16.0","description":"Platform-agnostic CSS selector parsing and normalization for native locator transformation","directories":{},"_nodeVersion":"24.16.0","dependencies":{"css-selector-parser":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^6.0.0","mocha":"^11.0.1","prettier":"^3.0.0","typescript":"^6.0.3","@types/chai":"^5.2.3","@types/node":"^25.9.2","@types/mocha":"^10.0.1","@appium/types":"^1.0.0-rc.1","@appium/tsconfig":"^1.1.2","chai-as-promised":"^8.0.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@types/chai-as-promised":"^8.0.2","@semantic-release/changelog":"^6.0.1","@appium/eslint-config-appium-ts":"^3.0.1","conventional-changelog-conventionalcommits":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/css-locator-to-native_1.0.1_1780858326662_0.14359616106044237","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@appium/css-locator-to-native","version":"1.0.2","author":{"name":"Appium Contributors"},"license":"Apache-2.0","_id":"@appium/css-locator-to-native@1.0.2","maintainers":[{"name":"jlipps","email":"jlipps@gmail.com"},{"name":"nick.mokhnach","email":"mokhnach@gmail.com"},{"name":"kazucocoa","email":"fly.49.89.over@gmail.com"}],"homepage":"https://github.com/appium/css-locator-to-native#readme","bugs":{"url":"https://github.com/appium/css-locator-to-native/issues"},"dist":{"shasum":"1cc1f9487cacdda07ac067c2a77e9f50bf800daf","tarball":"https://registry.npmjs.org/@appium/css-locator-to-native/-/css-locator-to-native-1.0.2.tgz","fileCount":54,"integrity":"sha512-MuKPaXo9k2qpZkLCTutYkNp2hAFXJzHgHUG1FvHVN2x8yyc9Lppr0vWJT7Gryjqn1prGagInD8buSkL5lmKaGQ==","signatures":[{"sig":"MEUCIDqpE2LGj/p5ySKz12i3demnwz1A8kCXZq6fBB1A60yzAiEA63FqoCL47ypOtuvUijO/6YJ08kG2MiP53asB/IiVadg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@appium%2fcss-locator-to-native@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85245},"type":"module","engines":{"npm":">=10","node":"^20.19.0 || ^22.12.0 || >=24.0.0"},"exports":{".":{"types":"./build/lib/index.d.ts","import":"./build/lib/index.js"}},"gitHead":"74e496b4209455ec8a10e85c5645f6b12f6fe2c2","scripts":{"dev":"tsc -p tsconfig.json --watch","lint":"eslint .","test":"mocha","build":"tsc -p tsconfig.json","clean":"rm -rf build","format":"prettier -w ./lib ./test","prepare":"npm run build","pretest":"npm run build","rebuild":"npm run clean && npm run build","lint:fix":"npm run lint -- --fix","typecheck":"tsc -p tsconfig.json --noEmit","format:check":"prettier --check ./lib ./test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:069851b0-bd1a-4d7f-98d8-048007cfb01c"}},"prettier":{"printWidth":100,"singleQuote":true,"bracketSpacing":false},"repository":{"url":"git+https://github.com/appium/css-locator-to-native.git","type":"git"},"_npmVersion":"11.18.0","description":"Platform-agnostic CSS selector parsing and normalization for native locator transformation","directories":{},"_nodeVersion":"24.18.0","dependencies":{"css-selector-parser":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^6.0.0","mocha":"^11.0.1","prettier":"^3.0.0","typescript":"^6.0.3","@types/chai":"^5.2.3","@types/node":"^25.9.2","@types/mocha":"^10.0.1","@appium/types":"^1.0.0-rc.1","@appium/tsconfig":"^1.1.2","chai-as-promised":"^8.0.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@types/chai-as-promised":"^8.0.2","@semantic-release/changelog":"^6.0.1","@appium/eslint-config-appium-ts":"^3.0.1","conventional-changelog-conventionalcommits":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/css-locator-to-native_1.0.2_1782995325086_0.3382364566496976","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@appium/css-locator-to-native","version":"1.0.3","author":{"name":"Appium Contributors"},"license":"Apache-2.0","_id":"@appium/css-locator-to-native@1.0.3","maintainers":[{"name":"jlipps","email":"jlipps@gmail.com"},{"name":"nick.mokhnach","email":"mokhnach@gmail.com"},{"name":"kazucocoa","email":"fly.49.89.over@gmail.com"}],"homepage":"https://github.com/appium/css-locator-to-native#readme","bugs":{"url":"https://github.com/appium/css-locator-to-native/issues"},"dist":{"shasum":"eef1e6cd72119f0d219b5ca6821a737899a04128","tarball":"https://registry.npmjs.org/@appium/css-locator-to-native/-/css-locator-to-native-1.0.3.tgz","fileCount":54,"integrity":"sha512-/g+hkuev9Sw+7BJvRK4GgpXuO1EzZUggbK1Bxm61R21Q8sgpJSK/AsvN9jl2Q4AXfE3xzDfgS5rI/yVlEC4EDg==","signatures":[{"sig":"MEUCIQCmVProoqIcz8labMIqGq+11oT0OEcJGHbltMANucZYbgIgL+zPIxV9R20mbZtPOD7+xi7ijcxjJLvNLU0B0KMpS3g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@appium%2fcss-locator-to-native@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85599},"type":"module","engines":{"npm":">=10","node":"^20.19.0 || ^22.12.0 || >=24.0.0"},"exports":{".":{"types":"./build/lib/index.d.ts","import":"./build/lib/index.js"}},"gitHead":"4ac1bf53889334133f4c93b840a68fccf3f836c2","scripts":{"dev":"tsc -p tsconfig.json --watch","lint":"eslint .","test":"mocha","build":"tsc -p tsconfig.json","clean":"rm -rf build","format":"prettier -w ./lib ./test","prepare":"npm run build","pretest":"npm run build","rebuild":"npm run clean && npm run build","lint:fix":"npm run lint -- --fix","typecheck":"tsc -p tsconfig.json --noEmit","format:check":"prettier --check ./lib ./test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:069851b0-bd1a-4d7f-98d8-048007cfb01c"}},"prettier":{"printWidth":100,"singleQuote":true,"bracketSpacing":false},"repository":{"url":"git+https://github.com/appium/css-locator-to-native.git","type":"git"},"_npmVersion":"11.18.0","description":"Platform-agnostic CSS selector parsing and normalization for native locator transformation","directories":{},"_nodeVersion":"24.18.0","dependencies":{"css-selector-parser":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^6.0.0","mocha":"^11.0.1","prettier":"^3.0.0","typescript":"^6.0.3","@types/chai":"^5.2.3","@types/node":"^26.1.0","@types/mocha":"^10.0.1","@appium/types":"^1.0.0-rc.1","@appium/tsconfig":"^1.1.2","chai-as-promised":"^8.0.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@types/chai-as-promised":"^8.0.2","@semantic-release/changelog":"^6.0.1","@appium/eslint-config-appium-ts":"^3.0.1","conventional-changelog-conventionalcommits":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/css-locator-to-native_1.0.3_1782998287637_0.3484857344016543","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@appium/css-locator-to-native","version":"1.0.4","author":{"name":"Appium Contributors"},"license":"Apache-2.0","_id":"@appium/css-locator-to-native@1.0.4","maintainers":[{"name":"jlipps","email":"jlipps@gmail.com"},{"name":"nick.mokhnach","email":"mokhnach@gmail.com"},{"name":"kazucocoa","email":"fly.49.89.over@gmail.com"}],"homepage":"https://github.com/appium/css-locator-to-native#readme","bugs":{"url":"https://github.com/appium/css-locator-to-native/issues"},"dist":{"shasum":"e4f40d7ea578bc6286704670550ab4cbdbd32ec1","tarball":"https://registry.npmjs.org/@appium/css-locator-to-native/-/css-locator-to-native-1.0.4.tgz","fileCount":54,"integrity":"sha512-VIwEGZmgSV/e0JOUVzI44Svx2f0BBlCwQmA6QWzhTh10QwRSQUFvuGZ8p7Pcp9KDPcWZAUiomYfMtySFgWyLSw==","signatures":[{"sig":"MEYCIQD/6h33Lx1MjMzdWrD0oPUWlbs0nvZazLSMvdeVdB+TwgIhAK6iRB9cD2AfAjr8W6QRC/mR4BToAKzLog7HBzBZfXqG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@appium%2fcss-locator-to-native@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85709},"type":"module","engines":{"npm":">=10","node":"^20.19.0 || ^22.12.0 || >=24.0.0"},"exports":{".":{"types":"./build/lib/index.d.ts","import":"./build/lib/index.js"}},"gitHead":"74fd2429fc6200148baf132ea2cf4d3f16fa468c","scripts":{"dev":"tsc -p tsconfig.json --watch","lint":"eslint .","test":"node --test ./build/test/**/*.spec.js","build":"tsc -p tsconfig.json","clean":"rm -rf build","format":"prettier -w ./lib ./test","rebuild":"npm run clean && npm run build","lint:fix":"npm run lint -- --fix","typecheck":"tsc -p tsconfig.json --noEmit","format:check":"prettier --check ./lib ./test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:069851b0-bd1a-4d7f-98d8-048007cfb01c"}},"prettier":{"printWidth":100,"singleQuote":true,"bracketSpacing":false},"repository":{"url":"git+https://github.com/appium/css-locator-to-native.git","type":"git"},"_npmVersion":"11.18.0","description":"Platform-agnostic CSS selector parsing and normalization for native locator transformation","directories":{},"_nodeVersion":"24.18.0","dependencies":{"css-selector-parser":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.0.0","typescript":"^6.0.3","@types/node":"^26.1.0","@appium/types":"^1.0.0-rc.1","@appium/tsconfig":"^1.1.2","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.1","@appium/eslint-config-appium-ts":"^3.0.1","conventional-changelog-conventionalcommits":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/css-locator-to-native_1.0.4_1783355230819_0.9993802782962384","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@appium/css-locator-to-native","version":"1.0.5","author":{"name":"Appium Contributors"},"license":"Apache-2.0","_id":"@appium/css-locator-to-native@1.0.5","maintainers":[{"name":"jlipps","email":"jlipps@gmail.com"},{"name":"nick.mokhnach","email":"mokhnach@gmail.com"},{"name":"kazucocoa","email":"fly.49.89.over@gmail.com"}],"homepage":"https://github.com/appium/css-locator-to-native#readme","bugs":{"url":"https://github.com/appium/css-locator-to-native/issues"},"dist":{"shasum":"2bec44ff00671001b1ac0687dfb95e838ee98c66","tarball":"https://registry.npmjs.org/@appium/css-locator-to-native/-/css-locator-to-native-1.0.5.tgz","fileCount":54,"integrity":"sha512-9CmPR0U7vAnKuHDX/Z57joXTlfRcWmFAclInsftSw2v+sspMUZokKTKxs198RAS0/+6a3U7734AfsJlE0EwO/A==","signatures":[{"sig":"MEYCIQCIhB11htBUVv4lybnMc3x4tGQdMtlWhib90gjmOVYWdgIhALWsFw3alkcGI20zDN2rbbwApKhQcOdilzAuVr90senr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@appium%2fcss-locator-to-native@1.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86056},"type":"module","engines":{"npm":">=10","node":"^20.19.0 || ^22.12.0 || >=24.0.0"},"exports":{".":{"types":"./build/lib/index.d.ts","import":"./build/lib/index.js"}},"gitHead":"9aabf14828e55ebbe679c792cd67b9ac6edea183","scripts":{"dev":"tsc -p tsconfig.json --watch","lint":"eslint .","test":"node --test ./build/test/**/*.spec.js","build":"tsc -p tsconfig.json","clean":"rm -rf build","format":"prettier -w ./lib ./test","prepare":"npm run build","rebuild":"npm run clean && npm run build","lint:fix":"npm run lint -- --fix","typecheck":"tsc -p tsconfig.json --noEmit","format:check":"prettier --check ./lib ./test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:069851b0-bd1a-4d7f-98d8-048007cfb01c"}},"prettier":{"printWidth":100,"singleQuote":true,"bracketSpacing":false},"repository":{"url":"git+https://github.com/appium/css-locator-to-native.git","type":"git"},"_npmVersion":"11.18.0","description":"Platform-agnostic CSS selector parsing and normalization for native locator transformation","directories":{},"_nodeVersion":"24.18.0","dependencies":{"css-selector-parser":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.0.0","typescript":"^6.0.3","@types/node":"^26.1.0","@appium/types":"^1.0.0-rc.1","@appium/tsconfig":"^1.1.2","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.1","@appium/eslint-config-appium-ts":"^3.0.1","conventional-changelog-conventionalcommits":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/css-locator-to-native_1.0.5_1783364269069_0.5267346007127929","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@appium/css-locator-to-native","version":"1.0.6","author":{"name":"Appium Contributors"},"license":"Apache-2.0","_id":"@appium/css-locator-to-native@1.0.6","maintainers":[{"name":"jlipps","email":"jlipps@gmail.com"},{"name":"nick.mokhnach","email":"mokhnach@gmail.com"},{"name":"kazucocoa","email":"fly.49.89.over@gmail.com"}],"homepage":"https://github.com/appium/css-locator-to-native#readme","bugs":{"url":"https://github.com/appium/css-locator-to-native/issues"},"dist":{"shasum":"2da85ef2b9488490f6519f96ced144d673a49126","tarball":"https://registry.npmjs.org/@appium/css-locator-to-native/-/css-locator-to-native-1.0.6.tgz","fileCount":54,"integrity":"sha512-65UfoooziCETtDWZZ7Tb+MC8YEjJK5iKsGks4Cn/rJAwWFLjlRkW/pdK0Kr1Lf25Mo/JnB1bk7PEes/clvdMhA==","signatures":[{"sig":"MEQCICvnIKRnksDoPgl7nFqUrtXTWBGyw/14zDra5E17CX9cAiBZjALgy6BOTU9AfixpmZPIZ1fd2HnaBqXLdSP0mHaIIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@appium%2fcss-locator-to-native@1.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85923},"type":"module","engines":{"npm":">=10","node":"^20.19.0 || ^22.12.0 || >=24.0.0"},"exports":{".":{"types":"./build/lib/index.d.ts","import":"./build/lib/index.js"}},"gitHead":"bf195af926038aefe92ef22675deffeae2338e39","scripts":{"dev":"tsc -p tsconfig.json --watch","lint":"oxlint -c oxlint.config.mjs .","test":"node --test ./build/test/**/*.spec.js","build":"tsc -p tsconfig.json","clean":"rm -rf build","format":"oxfmt -c oxfmt.config.mjs .","prepare":"npm run build","rebuild":"npm run clean && npm run build","lint:fix":"oxlint -c oxlint.config.mjs --fix .","typecheck":"tsc -p tsconfig.json --noEmit","format:check":"oxfmt -c oxfmt.config.mjs --check ."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:069851b0-bd1a-4d7f-98d8-048007cfb01c"}},"repository":{"url":"git+https://github.com/appium/css-locator-to-native.git","type":"git"},"_npmVersion":"11.18.0","description":"Platform-agnostic CSS selector parsing and normalization for native locator transformation","directories":{},"_nodeVersion":"24.18.0","dependencies":{"css-selector-parser":"^3.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.0","@appium/types":"^1.0.0-rc.1","@appium/tsconfig":"^1.2.0","@appium/oxc-config":"^1.1.0","@appium/semantic-release-config":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/css-locator-to-native_1.0.6_1785265314022_0.7170687976677423","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@appium/css-locator-to-native","version":"1.0.7","description":"Platform-agnostic CSS selector parsing and normalization for native locator transformation","homepage":"https://github.com/appium/css-locator-to-native#readme","bugs":{"url":"https://github.com/appium/css-locator-to-native/issues"},"license":"Apache-2.0","author":{"name":"Appium Contributors"},"repository":{"type":"git","url":"git+https://github.com/appium/css-locator-to-native.git"},"type":"module","exports":{".":{"types":"./build/lib/index.d.ts","import":"./build/lib/index.js"}},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.json","clean":"rm -rf build","dev":"tsc -p tsconfig.json --watch","format:check":"oxfmt -c oxfmt.config.mjs --check .","format":"oxfmt -c oxfmt.config.mjs .","lint:fix":"oxlint -c oxlint.config.mjs --fix .","lint":"oxlint -c oxlint.config.mjs .","prepare":"npm run build","rebuild":"npm run clean && npm run build","test":"node --test ./build/test/**/*.spec.js","typecheck":"tsc -p tsconfig.json --noEmit"},"dependencies":{"css-selector-parser":"^3.3.0"},"devDependencies":{"@appium/oxc-config":"^1.1.0","@appium/semantic-release-config":"^1.1.0","@appium/tsconfig":"^1.2.0","@appium/types":"^1.0.0-rc.1","@types/node":"^26.1.0"},"engines":{"node":"^20.19.0 || ^22.12.0 || >=24.0.0","npm":">=10"},"gitHead":"fbc451e4b763f2e05dc1639ba3c724c87b8e761a","_id":"@appium/css-locator-to-native@1.0.7","_nodeVersion":"24.20.0","_npmVersion":"11.19.1","dist":{"integrity":"sha512-1yc/fd+fMFQ4HuDRc4QrkCpLierydK7+i4Y3NBcowOuFRxkO+RHmbIEDNYJfmbl/r7aZW8+okXNZHWTMSZdTGA==","shasum":"c20db4e4cdcbb669852514ddc8df16b2d495f0c8","tarball":"https://registry.npmjs.org/@appium/css-locator-to-native/-/css-locator-to-native-1.0.7.tgz","fileCount":54,"unpackedSize":86272,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@appium%2fcss-locator-to-native@1.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEkG4YvuCoorwj8Hl2JVt2NaJrKFKjZpSgiOhcMSeKoIAiBb7312lrKCDEIgyj+qH+K5hTw8JSCmExpN8FWZMMIVCA=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:069851b0-bd1a-4d7f-98d8-048007cfb01c"}},"directories":{},"maintainers":[{"name":"jlipps","email":"jlipps@gmail.com"},{"name":"nick.mokhnach","email":"mokhnach@gmail.com"},{"name":"kazucocoa","email":"fly.49.89.over@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/css-locator-to-native_1.0.7_1788267396677_0.6446616931097864"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-07T18:33:13.204Z","modified":"2026-09-01T12:56:37.210Z","1.0.0":"2026-06-07T18:33:13.496Z","1.0.1":"2026-06-07T18:52:06.800Z","1.0.2":"2026-07-02T12:28:45.244Z","1.0.3":"2026-07-02T13:18:07.798Z","1.0.4":"2026-07-06T16:27:10.951Z","1.0.5":"2026-07-06T18:57:49.233Z","1.0.6":"2026-07-28T19:01:54.199Z","1.0.7":"2026-09-01T12:56:36.813Z"},"bugs":{"url":"https://github.com/appium/css-locator-to-native/issues"},"author":{"name":"Appium Contributors"},"license":"Apache-2.0","homepage":"https://github.com/appium/css-locator-to-native#readme","repository":{"type":"git","url":"git+https://github.com/appium/css-locator-to-native.git"},"description":"Platform-agnostic CSS selector parsing and normalization for native locator transformation","maintainers":[{"name":"jlipps","email":"jlipps@gmail.com"},{"name":"nick.mokhnach","email":"mokhnach@gmail.com"},{"name":"kazucocoa","email":"fly.49.89.over@gmail.com"}],"readme":"# @appium/css-locator-to-native\n\nPlatform-agnostic CSS selector parsing and normalization for native locator transformation.\n\n## Installation\n\n```bash\nnpm install @appium/css-locator-to-native\n```\n\n## Quick start\n\n```typescript\nimport {\n  createCssTransformer,\n  type AttributeSchema,\n  type ParsedSelector,\n  type StrategyKey,\n} from '@appium/css-locator-to-native';\n\nconst schema: AttributeSchema = {\n  attributes: {\n    visible: {type: 'boolean'},\n    name: {type: 'string', aliases: ['id']},\n    index: {type: 'numeric', aliases: ['nth-child']},\n  },\n  booleanFormat: 'zero-one',\n};\n\nconst emitters = {\n  native: {\n    strategy: 'my-native-strategy',\n    emit(parsed: ParsedSelector) {\n      // Map ParsedSelector IR to your platform's selector syntax\n      return parsed.rule.tag ?? '*';\n    },\n  },\n};\n\nconst transformCss = createCssTransformer({\n  schema,\n  emitters,\n  resolveStrategy(): StrategyKey<typeof emitters> {\n    return 'native';\n  },\n});\n\nconst {strategy, selector} = transformCss('window#foo[visible]');\n// => { strategy: 'my-native-strategy', selector: '...' }\n```\n\n## API\n\nEverything is exported from a single entry point:\n\n| Export | Description |\n|---|---|\n| `normalizeCssSelector(css, schema)` | Parse and normalize a CSS selector into a `ParsedSelector` IR |\n| `createCssTransformer(config)` | Returns a function that parses CSS and produces a `NativeLocator` |\n| `InvalidSelectorError` | CSS syntax cannot be parsed |\n| `UnsupportedSelectorError` | Parsed CSS uses unsupported features or unknown attributes |\n| `UnresolvedStrategyError` | No matching emitter for the resolved strategy key |\n\n### ParsedSelector IR\n\nNormalization produces a platform-agnostic intermediate representation. The IR captures CSS structure — tags, classes, `#id`, attributes, pseudos, combinators — validated against your schema. It does **not** encode iOS class chain, UiAutomator, or any other native syntax.\n\n```typescript\ninterface ParsedSelector {\n  rule: ParsedRule; // first comma-separated rule only\n}\n\ninterface ParsedRule {\n  combinator?: 'descendant' | 'child';\n  tag?: string;           // raw CSS tag (may be '*')\n  classes: string[];      // raw class tokens\n  id?: string;            // raw #id value\n  attributes: ParsedAttribute[];\n  pseudos: ParsedAttribute[];\n  nested?: ParsedRule;\n}\n```\n\n### Attribute schemas\n\nDrivers declare which CSS attributes are valid and how booleans are coerced:\n\n```typescript\ninterface AttributeSchema {\n  attributes: Record<string, {type: 'boolean' | 'string' | 'numeric'; aliases?: string[]}>;\n  booleanFormat?: 'zero-one' | 'true-false' | 'literal';\n}\n```\n\n- **`zero-one`** — `true`/`1`/empty → `'1'`, `false`/`0` → `'0'`\n- **`true-false`** — `true`/empty → `'true'`, `false` → `'false'`\n- **`literal`** (default) — keep the raw attribute value unchanged; implicit booleans (no value) stay unset\n\nTag, class, and `#id` mapping (e.g. `XCUIElementType*` prefixing, `resourceId` prefixing) is entirely the driver's responsibility in emitters.\n\n### Multi-strategy routing\n\n`createCssTransformer` requires a registry of `StrategyEmitter`s and a `resolveStrategy` callback. The resolver picks which emitter to use based on selector shape; the transformer returns both the target strategy name and the native selector string.\n\n```typescript\ninterface NativeLocator {\n  strategy: string;\n  selector: string;\n}\n```\n\nA driver with a single target strategy uses a one-entry registry and a trivial resolver.\n\n## Driver integration pattern\n\nPlatform logic stays in the driver. A typical layout:\n\n```\nlib/css/\n  schema.ts          # AttributeSchema for the platform\n  *-emitter.ts       # StrategyEmitter implementations\n  resolve-helpers.ts # isSimpleIdSelector, etc.\n  index.ts           # createCssTransformer wrapper\n```\n\nIn `find` commands, use the strategy from the transform result instead of hardcoding it:\n\n```typescript\nif (strategy === 'css selector') {\n  ({strategy, selector} = cssToNativeLocator(selector));\n}\n```\n\n## Supported CSS subset\n\nMatches the subset accepted by existing Appium drivers:\n\n- Tags (including `*`), `#id`, classes, attribute selectors (`=`, `*=`, `^=`, `$=`, `~=`)\n- Child (`>`) and descendant (space) combinators\n- Pseudo-classes accepted as attributes per schema (e.g. `:visible`, `:nth-child(2)`)\n- First comma-separated rule only (additional rules are ignored)\n- Unsupported: `+` / `~` combinators, pseudo-elements, nesting (`&`), namespaces\n\n## Development\n\n```bash\nnpm install --no-package-lock\nnpm run typecheck   # type-check lib + test\nnpm run build       # compile to build/\nnpm test            # unit tests (compiled ESM)\nnpm run lint\nnpm run format:check\n```\n\n## Requirements\n\n- Node.js `^20.19.0 || ^22.12.0 || >=24.0.0`\n- npm `>=10`\n\n## License\n\n[Apache-2.0](LICENSE)\n","readmeFilename":"README.md"}