{"_id":"layerd-unit-codec-parser","_rev":"2-f66d346c646868d73b8e5e22a7a28c1f","name":"layerd-unit-codec-parser","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"layerd-unit-codec-parser","version":"1.0.0","keywords":["aes","aes-gcm","decode","decoder","encode","codec","encryption","postcss","selector","parser","css"],"author":"","license":"ISC","_id":"layerd-unit-codec-parser@1.0.0","maintainers":[{"name":"emalmoduler","email":"emalsafi.heroverse@gmail.com"}],"dist":{"shasum":"edfc09cd61484982b38152df96007d2f27808dac","tarball":"https://registry.npmjs.org/layerd-unit-codec-parser/-/layerd-unit-codec-parser-1.0.0.tgz","fileCount":14,"integrity":"sha512-e0IAZaFV3XQmbNHpvel1QaA6xqoUhlxqtBc3lCKHpNdtIUbXWreMNH/NChBZXPfS5wF6uICCbDrKiyQNSHAk4w==","signatures":[{"sig":"MEUCIEZp97S2PTOsczBFnntaMyK9X6wtX3dl0KOQKV2OVoiNAiEAwEQMJVgJQeCdBgGb0DZZTLgfhzZgT5GVWFpNTk9MTp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22565},"main":"index.js","exports":{".":"./index.js","./cjs-runner":"./cjs-runner.js","./custom-codec":"./src/index.js","./selector-parser":"./src/selector-parser.js"},"scripts":{"test":"node test-aes-encode.js","start":"node runtime/lib.min.js","decode":"node runtime/lib.min.js","example":"node examples/run-custom-flow.js","test:cjs":"node scripts/cjs-runner.js","test:selector":"node test-selector-parser.js"},"_npmUser":{"name":"emalmoduler","email":"emalsafi.heroverse@gmail.com"},"_npmVersion":"11.11.1","description":"Layered custom codec pipeline for position-unit encoding, encode/decode transformations, and AES-GCM encryption.","directories":{},"_nodeVersion":"25.8.2","dependencies":{"encode-decode-codec":"^1.0.3","position-unit-codec":"^1.0.2","postcss-selector-parser":"^7.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/layerd-unit-codec-parser_1.0.0_1782706240133_0.6453382712990583","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"layerd-unit-codec-parser","version":"2.0.0","description":"Layered custom codec pipeline for position-unit encoding, encode/decode transformations, and AES-GCM encryption.","main":"index.js","exports":{".":"./index.js","./custom-codec":"./src/index.js","./selector-parser":"./src/selector-parser.js","./cjs-runner":"./cjs-runner.js"},"scripts":{"start":"node runtime/lib.min.js","decode":"node runtime/lib.min.js","test":"node test-aes-encode.js","test:cjs":"node scripts/cjs-runner.js","test:selector":"node test-selector-parser.js","example":"node examples/run-custom-flow.js"},"keywords":["aes","aes-gcm","decode","decoder","encode","codec","encryption","postcss","selector","parser","css"],"author":"","license":"ISC","dependencies":{"encode-decode-codec":"^1.0.3","position-unit-codec":"^1.0.2","postcss-selector-parser":"^7.1.1"},"_id":"layerd-unit-codec-parser@2.0.0","_nodeVersion":"25.8.2","_npmVersion":"11.11.1","dist":{"integrity":"sha512-vYVOtMEpQKapBFv4A6p4D4TGW3/QVCj2/PUqvZB9bgFcfAdHNy8qHWYJ9Qx8cjMWJz0aqGYraade6JqU5CG5Ng==","shasum":"637478b1d7870481a8439e395be5128ff1f422cb","tarball":"https://registry.npmjs.org/layerd-unit-codec-parser/-/layerd-unit-codec-parser-2.0.0.tgz","fileCount":14,"unpackedSize":22523,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCw1J9K4acv2fQBeS2yzQjZRBcKC4g0Vq8JGnQgMijEzgIgbELFf6rUpQXl2poxjVDcVqUfyFBzD6jpq3tB3jcpqsY="}]},"_npmUser":{"name":"emalmoduler","email":"emalsafi.heroverse@gmail.com"},"directories":{},"maintainers":[{"name":"emalmoduler","email":"emalsafi.heroverse@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/layerd-unit-codec-parser_2.0.0_1782737464629_0.9067108197669487"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-29T04:10:40.047Z","modified":"2026-06-29T12:51:04.849Z","1.0.0":"2026-06-29T04:10:40.277Z","2.0.0":"2026-06-29T12:51:04.758Z"},"license":"ISC","keywords":["aes","aes-gcm","decode","decoder","encode","codec","encryption","postcss","selector","parser","css"],"description":"Layered custom codec pipeline for position-unit encoding, encode/decode transformations, and AES-GCM encryption.","maintainers":[{"name":"emalmoduler","email":"emalsafi.heroverse@gmail.com"}],"readme":"# layerd-unit-codec-parser\n\nA small CommonJS package for parsing, rewriting, and normalizing CSS selectors.\n\nUse it when you want the selector parser API from your own package name, with a\nsimple path for selector whitespace minification.\n\n## Install\n\n```sh\nnpm install layerd-unit-codec-parser\n```\n\n## Minify Selector Whitespace\n\n```js\nconst { selectorParser } = require(\"layerd-unit-codec-parser\");\n\nconst minified = selectorParser().processSync(\"h1, h2, h3\", {\n  lossless: false,\n});\n\nconsole.log(minified); // h1,h2,h3\n```\n\n## Use The Parser API\n\nThe main export provides the full `layerd-unit-codec-parser` selector API.\n\n```js\nconst {\n  selectorParser,\n  className,\n  isSelector,\n} = require(\"layerd-unit-codec-parser\");\n\nconst classNode = className({ value: \"button\" });\n\nconsole.log(classNode.toString()); // .button\nconsole.log(isSelector(selectorParser.selector())); // true\n```\n\nYou can also import the raw parser directly from the subpath export:\n\n```js\nconst selectorParser = require(\"layerd-unit-codec-parser/selector-parser\");\n\nconst result = selectorParser((selectors) => {\n  selectors.walkClasses((node) => {\n    node.value = `x-${node.value}`;\n  });\n}).processSync(\".button.primary\");\n\nconsole.log(result); // .x-button.x-primary\n```\n\nForwarded helpers include builders such as `attribute`, `className`,\n`combinator`, `id`, `pseudo`, `root`, `selector`, and `tag`, plus type helpers\nand constants such as `isSelector`, `isClassName`, `CLASS`, `SELECTOR`, and\n`TAG`.\n\n## Codec Utilities\n\nThis package also keeps the existing custom codec and AES-GCM helpers available\nfrom the main export.\n\n```js\nconst {\n  customEncode,\n  customDecode,\n} = require(\"layerd-unit-codec-parser\");\n\nconst encoded = customEncode('console.log(\"hello\");');\nconst decoded = customDecode(encoded.aesEncoded);\n\nconsole.log(decoded.decodedPlainText);\n```\n","readmeFilename":"README.md"}