{"versions":{"1.0.0":{"name":"@swaggerexpert/cookie","publishConfig":{"access":"public"},"version":"1.0.0","description":"RFC 6265 compliant cookie parser, validator and serializer.","main":"./cjs/index.cjs","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./es/index.mjs","require":"./cjs/index.cjs"},"./package.json":"./package.json","./grammar.bnf":"./src/grammar.bnf"},"watch":{"test":"{src,test}/*.js"},"scripts":{"prepublishOnly":"npm run build","grammar:compile":"node ./scripts/apg-js.js --lite --in=./src/grammar.bnf --out=./src/grammar.js && cd ./src","build":"npm run grammar:compile && npm run build:es && npm run build:cjs && npm run build:cjs:apg-lite","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --extensions '.js' --out-file-extension '.mjs'","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.js' --out-file-extension '.cjs'","build:cjs:apg-lite":"cross-env BABEL_ENV=cjs babel node_modules/apg-lite/lib/parser.js --out-file ./cjs/apg-lite.cjs","test":"mocha","test:watch":"npm-watch test","watch":"npm-watch"},"engines":{"node":">=12.20.0"},"type":"module","repository":{"type":"git","url":"git+https://github.com/swaggerexpert/cookie.git"},"keywords":["cookie","parser","validator","serializer","cookies","rfc6265"],"author":{"name":"Vladimír Gorej","email":"vladimir.gorej@gmail.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/swaggerexpert/cookie/issues"},"homepage":"https://github.com/swaggerexpert/cookie#readme","dependencies":{"apg-lite":"^1.0.3"},"devDependencies":{"@babel/cli":"=7.26.4","@babel/core":"=7.26.0","@babel/preset-env":"=7.26.0","@commitlint/cli":"=19.6.0","@commitlint/config-conventional":"=19.6.0","apg-js":"^4.4.0","babel-plugin-module-resolver":"^5.0.2","chai":"=5.1.2","cross-env":"^7.0.3","husky":"=9.1.7","mocha":"=11.0.1","npm-watch":"^0.13.0","prettier":"^3.1.1"},"_id":"@swaggerexpert/cookie@1.0.0","gitHead":"827aec13f9bef3ca161346bcc17d99b1b345251a","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-KctiXDoDPL4bI4Ysw6BrgpEcpR0sHrFH7Yxe5ElSpyuPD3eLDKuWm3FoCSlhQ5igwBMeGq8hodSt6H+CZCRIrA==","shasum":"ddc93efed16e0c7ea7077272ff3024c314fde4cb","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@swaggerexpert/cookie/-/cookie-1.0.0.tgz","fileCount":21,"unpackedSize":86959,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzoboX7UFVJsK5gEKWXp06EE06Wy9YvUg/UxWV7bkTAwIhAPGU/kvogS7nbcKaEYcZKyjD0emEcTQcwqGUcZpSj8/G"}],"size":20083},"_npmUser":{"name":"anonymous","email":"vladimir.gorej@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"vladimir.gorej@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cookie_1.0.0_1734201970330_0.158733160717639"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-12-14T18:46:10.557Z","publish_time":1734201970557,"_source_registry_name":"default","contributors":[]},"1.1.0":{"name":"@swaggerexpert/cookie","publishConfig":{"access":"public"},"version":"1.1.0","description":"RFC 6265 compliant cookie parser, validator and serializer.","main":"./cjs/index.cjs","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./es/index.mjs","require":"./cjs/index.cjs"},"./package.json":"./package.json","./grammar.bnf":"./src/grammar.bnf"},"watch":{"test":"{src,test}/*.js"},"scripts":{"prepublishOnly":"npm run build","grammar:compile":"node ./scripts/apg-js.js --lite --in=./src/grammar.bnf --out=./src/grammar.js && cd ./src","build":"npm run grammar:compile && npm run build:es && npm run build:cjs && npm run build:cjs:apg-lite","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --extensions '.js' --out-file-extension '.mjs'","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.js' --out-file-extension '.cjs'","build:cjs:apg-lite":"cross-env BABEL_ENV=cjs babel node_modules/apg-lite/lib/parser.js --out-file ./cjs/apg-lite.cjs","test":"mocha","test:watch":"npm-watch test","watch":"npm-watch"},"engines":{"node":">=12.20.0"},"type":"module","repository":{"type":"git","url":"git+https://github.com/swaggerexpert/cookie.git"},"keywords":["cookie","parser","validator","serializer","cookies","rfc6265"],"author":{"name":"Vladimír Gorej","email":"vladimir.gorej@gmail.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/swaggerexpert/cookie/issues"},"homepage":"https://github.com/swaggerexpert/cookie#readme","dependencies":{"apg-lite":"^1.0.3"},"devDependencies":{"@babel/cli":"=7.26.4","@babel/core":"=7.26.0","@babel/preset-env":"=7.26.0","@commitlint/cli":"=19.6.0","@commitlint/config-conventional":"=19.6.0","apg-js":"^4.4.0","babel-plugin-module-resolver":"^5.0.2","chai":"=5.1.2","cross-env":"^7.0.3","husky":"=9.1.7","mocha":"=11.0.1","npm-watch":"^0.13.0","prettier":"^3.1.1"},"_id":"@swaggerexpert/cookie@1.1.0","gitHead":"5331a09ef7cea59b0e20b4af235a16b313362561","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-HmhDzDCJ8MMGyYG8SlHLCX04sXWfQJhy/trgyWmdueoID/sVCgyMbtcdWe+KHhVmFE/xNTInJYOKOMlVotR/og==","shasum":"a7af350ce92ffe583d7d05139ca00a48c03f8ff7","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@swaggerexpert/cookie/-/cookie-1.1.0.tgz","fileCount":21,"unpackedSize":104908,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEiFW4fzbp5lRzEHocYWKEK5na439Bm5QQIoQDgn5CNGAiEAqU4YBZYV+FC627GCV/qMnnUfHaYcxb441tOkFqs9Xrw="}],"size":24025},"_npmUser":{"name":"anonymous","email":"vladimir.gorej@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"vladimir.gorej@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cookie_1.1.0_1734269958725_0.5450101608807594"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-12-15T13:39:18.964Z","publish_time":1734269958964,"_source_registry_name":"default","contributors":[]},"1.2.0":{"name":"@swaggerexpert/cookie","publishConfig":{"access":"public"},"version":"1.2.0","description":"RFC 6265 compliant cookie parser, validator and serializer.","main":"./cjs/index.cjs","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./es/index.mjs","require":"./cjs/index.cjs"},"./package.json":"./package.json","./grammar.bnf":"./src/grammar.bnf"},"watch":{"test":"{src,test}/*.js"},"scripts":{"prepublishOnly":"npm run build","grammar:compile":"node ./scripts/apg-js.js --lite --in=./src/grammar.bnf --out=./src/grammar.js && cd ./src","build":"npm run grammar:compile && npm run build:es && npm run build:cjs && npm run build:cjs:apg-lite","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --extensions '.js' --out-file-extension '.mjs'","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.js' --out-file-extension '.cjs'","build:cjs:apg-lite":"cross-env BABEL_ENV=cjs babel node_modules/apg-lite/lib/parser.js --out-file ./cjs/apg-lite.cjs","test":"mocha","test:watch":"npm-watch test","watch":"npm-watch"},"engines":{"node":">=12.20.0"},"type":"module","repository":{"type":"git","url":"git+https://github.com/swaggerexpert/cookie.git"},"keywords":["cookie","parser","validator","serializer","cookies","rfc6265"],"author":{"name":"Vladimír Gorej","email":"vladimir.gorej@gmail.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/swaggerexpert/cookie/issues"},"homepage":"https://github.com/swaggerexpert/cookie#readme","dependencies":{"apg-lite":"^1.0.3","cookie":"^1.0.2"},"devDependencies":{"@babel/cli":"=7.26.4","@babel/core":"=7.26.0","@babel/preset-env":"=7.26.0","@commitlint/cli":"=19.6.1","@commitlint/config-conventional":"=19.6.0","apg-js":"^4.4.0","babel-plugin-module-resolver":"^5.0.2","chai":"=5.1.2","cross-env":"^7.0.3","husky":"=9.1.7","mocha":"=11.0.1","npm-watch":"^0.13.0","prettier":"^3.1.1"},"_id":"@swaggerexpert/cookie@1.2.0","gitHead":"100e0e874955f015b5f09b69bd8cd43b1267d487","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-tP9mBoBvg+HHcjaKhZ4nMTYCR4Ul82Q7rNXThMIS/K4x2S6ZbVpLH00cSmq7TS0nsAIq9qn17/PlPLyAPpEO+w==","shasum":"e95fd95814593b8a87332cde662398e5463979f6","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@swaggerexpert/cookie/-/cookie-1.2.0.tgz","fileCount":21,"unpackedSize":110834,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICZMLc1n3kdC++0CSkmZhia4IZzt2H7yxUxwaFgd72NpAiEAxuBjC/37Bdi6QZRhvNczMUGg968Io4qM3Cw/yvvB7E4="}],"size":24900},"_npmUser":{"name":"anonymous","email":"vladimir.gorej@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"vladimir.gorej@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cookie_1.2.0_1735374632554_0.6967731166381521"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-12-28T08:30:32.740Z","publish_time":1735374632740,"_source_registry_name":"default","contributors":[]},"1.2.1":{"name":"@swaggerexpert/cookie","publishConfig":{"access":"public"},"version":"1.2.1","description":"RFC 6265 compliant cookie parser, validator and serializer.","main":"./cjs/index.cjs","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./es/index.mjs","require":"./cjs/index.cjs"},"./package.json":"./package.json","./grammar.bnf":"./src/grammar.bnf"},"watch":{"test":"{src,test}/*.js"},"scripts":{"prepublishOnly":"npm run build","grammar:compile":"node ./scripts/apg-js.js --lite --in=./src/grammar.bnf --out=./src/grammar.js && cd ./src","build":"npm run grammar:compile && npm run build:es && npm run build:cjs && npm run build:cjs:apg-lite","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --extensions '.js' --out-file-extension '.mjs'","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.js' --out-file-extension '.cjs'","build:cjs:apg-lite":"cross-env BABEL_ENV=cjs babel node_modules/apg-lite/lib/parser.js --out-file ./cjs/apg-lite.cjs","test":"mocha","test:watch":"npm-watch test","watch":"npm-watch"},"engines":{"node":">=12.20.0"},"type":"module","repository":{"type":"git","url":"git+https://github.com/swaggerexpert/cookie.git"},"keywords":["cookie","parser","validator","serializer","cookies","rfc6265"],"author":{"name":"Vladimír Gorej","email":"vladimir.gorej@gmail.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/swaggerexpert/cookie/issues"},"homepage":"https://github.com/swaggerexpert/cookie#readme","dependencies":{"apg-lite":"^1.0.3"},"devDependencies":{"@babel/cli":"=7.26.4","@babel/core":"=7.26.0","@babel/preset-env":"=7.26.0","@commitlint/cli":"=19.6.1","@commitlint/config-conventional":"=19.6.0","apg-js":"^4.4.0","babel-plugin-module-resolver":"^5.0.2","chai":"=5.1.2","cross-env":"^7.0.3","husky":"=9.1.7","mocha":"=11.0.1","npm-watch":"^0.13.0","prettier":"^3.1.1"},"_id":"@swaggerexpert/cookie@1.2.1","gitHead":"6ac7ec8f2117260df667585f8df8adb5bfb65aa5","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-AuFI080WReDTNKjj0+x4f8nVlg+41sDJBp9Wg3yROyK5mbRdCilK8tquiPwwJuejnlUocijSNhzo65fcUAY3DA==","shasum":"334ba79936a68e8c596fa6b5277bde797ee98a3c","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@swaggerexpert/cookie/-/cookie-1.2.1.tgz","fileCount":21,"unpackedSize":110810,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCT2WeX0M3gk4TH2W6vtNht/9ykCMffhPcqsbTS4t7ZOwIgGNWW4/OBSs+lD+h2iCvUVRfHfd8vhSLH8GyYzAh20H8="}],"size":24903},"_npmUser":{"name":"anonymous","email":"vladimir.gorej@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"vladimir.gorej@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cookie_1.2.1_1735374947549_0.4540276952546771"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-12-28T08:35:47.728Z","publish_time":1735374947728,"_source_registry_name":"default","contributors":[]},"1.3.0":{"name":"@swaggerexpert/cookie","publishConfig":{"access":"public"},"version":"1.3.0","description":"RFC 6265 compliant cookie parser, validator and serializer.","main":"./cjs/index.cjs","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./es/index.mjs","require":"./cjs/index.cjs"},"./package.json":"./package.json","./grammar.bnf":"./src/grammar.bnf"},"watch":{"test":"{src,test}/*.js"},"scripts":{"prepublishOnly":"npm run build","grammar:compile":"node ./scripts/apg-js.js --lite --in=./src/grammar.bnf --out=./src/grammar.js && cd ./src","build":"npm run grammar:compile && npm run build:es && npm run build:cjs && npm run build:cjs:apg-lite","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --extensions '.js' --out-file-extension '.mjs'","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.js' --out-file-extension '.cjs'","build:cjs:apg-lite":"cross-env BABEL_ENV=cjs babel node_modules/apg-lite/lib/parser.js --out-file ./cjs/apg-lite.cjs","test":"mocha","test:watch":"npm-watch test","watch":"npm-watch"},"engines":{"node":">=12.20.0"},"type":"module","repository":{"type":"git","url":"git+https://github.com/swaggerexpert/cookie.git"},"keywords":["cookie","parser","validator","serializer","cookies","rfc6265"],"author":{"name":"Vladimír Gorej","email":"vladimir.gorej@gmail.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/swaggerexpert/cookie/issues"},"homepage":"https://github.com/swaggerexpert/cookie#readme","dependencies":{"apg-lite":"^1.0.3"},"devDependencies":{"@babel/cli":"=7.26.4","@babel/core":"=7.26.0","@babel/preset-env":"=7.26.0","@commitlint/cli":"=19.6.1","@commitlint/config-conventional":"=19.6.0","apg-js":"^4.4.0","babel-plugin-module-resolver":"^5.0.2","chai":"=5.1.2","cross-env":"^7.0.3","husky":"=9.1.7","mocha":"=11.0.1","npm-watch":"^0.13.0","prettier":"^3.1.1"},"_id":"@swaggerexpert/cookie@1.3.0","gitHead":"310d80afee0083d4e4a1fdadb15a94d1df69ffcf","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-UL2QX5KDS5SgQzZNGYWon3eRTQ0n+4996Jvf87NhOCzwkLjve/AvhTvc2zduNGuB+xUNZ64LrfL4ySX76ao/xA==","shasum":"5fb2d7ab04cdc5c3dfe1efb3de9e0c44be95853c","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@swaggerexpert/cookie/-/cookie-1.3.0.tgz","fileCount":21,"unpackedSize":112506,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDF6LeTcaH6BWdXcKBgF2Ra6CAFkeJgBIF1AqENzZT3XwIgb3LsXb9cDgALRYgkxTQdMyq+3MfSx2He4yELH1kiRQU="}],"size":25092},"_npmUser":{"name":"anonymous","email":"vladimir.gorej@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"vladimir.gorej@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cookie_1.3.0_1735996719359_0.557871687031368"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-01-04T13:18:39.643Z","publish_time":1735996719643,"_source_registry_name":"default","contributors":[]},"1.4.0":{"name":"@swaggerexpert/cookie","publishConfig":{"access":"public"},"version":"1.4.0","description":"RFC 6265 compliant cookie parser, validator and serializer.","main":"./cjs/index.cjs","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./es/index.mjs","require":"./cjs/index.cjs"},"./package.json":"./package.json","./grammar.bnf":"./src/grammar.bnf"},"watch":{"test":"{src,test}/*.js"},"scripts":{"prepublishOnly":"npm run build","grammar:compile":"node ./scripts/apg-js.js --lite --in=./src/grammar.bnf --out=./src/grammar.js && cd ./src","build":"npm run grammar:compile && npm run build:es && npm run build:cjs && npm run build:cjs:apg-lite","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --extensions '.js' --out-file-extension '.mjs'","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.js' --out-file-extension '.cjs'","build:cjs:apg-lite":"cross-env BABEL_ENV=cjs babel node_modules/apg-lite/lib/parser.js --out-file ./cjs/apg-lite.cjs","test":"mocha","test:watch":"npm-watch test","watch":"npm-watch"},"engines":{"node":">=12.20.0"},"type":"module","repository":{"type":"git","url":"git+https://github.com/swaggerexpert/cookie.git"},"keywords":["cookie","parser","validator","serializer","cookies","rfc6265"],"author":{"name":"Vladimír Gorej","email":"vladimir.gorej@gmail.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/swaggerexpert/cookie/issues"},"homepage":"https://github.com/swaggerexpert/cookie#readme","dependencies":{"apg-lite":"^1.0.3"},"devDependencies":{"@babel/cli":"=7.26.4","@babel/core":"=7.26.0","@babel/preset-env":"=7.26.0","@commitlint/cli":"=19.6.1","@commitlint/config-conventional":"=19.6.0","apg-js":"^4.4.0","babel-plugin-module-resolver":"^5.0.2","chai":"=5.1.2","cross-env":"^7.0.3","husky":"=9.1.7","mocha":"=11.0.1","npm-watch":"^0.13.0","prettier":"^3.1.1"},"_id":"@swaggerexpert/cookie@1.4.0","gitHead":"df64b62f3924e2f9ab09e20fb8a449d8bfb08c64","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-3UTd0axm0hrIg2PTQvySeEmC7e7QZtrCJhHO22XfZzUNnFn4rS2klpisBb2W3qMSAo3M+Ze2OgOq5xc+91ZOIQ==","shasum":"e326a751183d8a37089df66be5fd5965b8f4341d","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@swaggerexpert/cookie/-/cookie-1.4.0.tgz","fileCount":47,"unpackedSize":140673,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHOzqDqfDrQL3DNRJdUjQRQSuuXATzqH//MXYt50cWXdAiEA9sfC9MONIaRXOiKQmzMuUr08dvmogYDAg285iflZ8xA="}],"size":31466},"_npmUser":{"name":"anonymous","email":"vladimir.gorej@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"vladimir.gorej@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cookie_1.4.0_1736184442907_0.5095323289944267"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-01-06T17:27:23.086Z","publish_time":1736184443086,"_source_registry_name":"default","contributors":[]},"1.4.1":{"name":"@swaggerexpert/cookie","publishConfig":{"access":"public"},"version":"1.4.1","description":"RFC 6265 compliant cookie parser, validator and serializer.","main":"./cjs/index.cjs","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./es/index.mjs","require":"./cjs/index.cjs"},"./package.json":"./package.json","./grammar.bnf":"./src/grammar.bnf"},"watch":{"test":"{src,test}/*.js"},"scripts":{"prepublishOnly":"npm run build","grammar:compile":"node ./scripts/apg-js.js --lite --in=./src/grammar.bnf --out=./src/grammar.js && cd ./src","build":"npm run grammar:compile && npm run build:es && npm run build:cjs && npm run build:cjs:apg-lite","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --extensions '.js' --out-file-extension '.mjs'","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.js' --out-file-extension '.cjs'","build:cjs:apg-lite":"cross-env BABEL_ENV=cjs babel node_modules/apg-lite/lib/parser.js --out-file ./cjs/apg-lite.cjs","test":"mocha","test:watch":"npm-watch test","watch":"npm-watch"},"engines":{"node":">=12.20.0"},"type":"module","repository":{"type":"git","url":"git+https://github.com/swaggerexpert/cookie.git"},"keywords":["cookie","parser","validator","serializer","cookies","rfc6265"],"author":{"name":"Vladimír Gorej","email":"vladimir.gorej@gmail.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/swaggerexpert/cookie/issues"},"homepage":"https://github.com/swaggerexpert/cookie#readme","dependencies":{"apg-lite":"^1.0.3"},"devDependencies":{"@babel/cli":"=7.26.4","@babel/core":"=7.26.0","@babel/preset-env":"=7.26.0","@commitlint/cli":"=19.6.1","@commitlint/config-conventional":"=19.6.0","apg-js":"^4.4.0","babel-plugin-module-resolver":"^5.0.2","chai":"=5.1.2","cross-env":"^7.0.3","husky":"=9.1.7","mocha":"=11.0.1","npm-watch":"^0.13.0","prettier":"^3.1.1"},"_id":"@swaggerexpert/cookie@1.4.1","gitHead":"cccc00df3edf2b11ec63af51d3fa5f0c82fec819","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-ZRbRC2017wMs+uZeIOC55ghwgbTxeolo+s6I0njzqina7MTrOhz8WMfTj0KGk3hfBUO/yhTQD/aQZ0lQHEIKxQ==","shasum":"339d5e80581143a101700858d47f57d1fbd8606c","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@swaggerexpert/cookie/-/cookie-1.4.1.tgz","fileCount":47,"unpackedSize":140737,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDv8+c//K/pRB/DbXNl1/uvlTSvslXHeQ9cSvGFMpA86gIhAOAHCLSTxa0DH+DkYs93NA+SoZWPuhFeI0Kqt8DW2Kb4"}],"size":31468},"_npmUser":{"name":"anonymous","email":"vladimir.gorej@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"vladimir.gorej@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cookie_1.4.1_1736186879357_0.8975416359701935"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-01-06T18:07:59.560Z","publish_time":1736186879560,"_source_registry_name":"default","contributors":[]},"2.0.0":{"name":"@swaggerexpert/cookie","publishConfig":{"access":"public"},"version":"2.0.0","description":"RFC 6265 compliant cookie parser, validator and serializer.","browser":{"./cjs/set-cookie/serialize/encoders/base64.node.cjs":"./cjs/set-cookie/serialize/encoders/base64.browser.cjs","./es/set-cookie/serialize/encoders/base64.node.mjs":"./es/set-cookie/serialize/encoders/base64.browser.mjs","./cjs/set-cookie/serialize/encoders/base64url.node.cjs":"./cjs/set-cookie/serialize/encoders/base64url.browser.cjs","./es/set-cookie/serialize/encoders/base64url.node.mjs":"./es/set-cookie/serialize/encoders/base64url.browser.mjs","./cjs/set-cookie/parse/decoders/base64.node.cjs":"./cjs/set-cookie/parse/decoders/base64.browser.cjs","./es/set-cookie/parse/decoders/base64.node.mjs":"./es/set-cookie/parse/decoders/base64.browser.mjs","./cjs/set-cookie/parse/decoders/base64url.node.cjs":"./cjs/set-cookie/parse/decoders/base64url.browser.cjs","./es/set-cookie/parse/decoders/base64url.node.mjs":"./es/set-cookie/parse/decoders/base64url.browser.mjs"},"main":"./cjs/index.cjs","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./es/index.mjs","require":"./cjs/index.cjs"},"./package.json":"./package.json","./grammar.bnf":"./src/grammar.bnf"},"watch":{"test":"{src,test}/*.js"},"scripts":{"prepublishOnly":"npm run build","grammar:compile":"node ./scripts/apg-js.js --lite --in=./src/grammar.bnf --out=./src/grammar.js && cd ./src","build":"npm run grammar:compile && npm run build:es && npm run build:cjs && npm run build:cjs:apg-lite","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --extensions '.js' --out-file-extension '.mjs'","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.js' --out-file-extension '.cjs'","build:cjs:apg-lite":"cross-env BABEL_ENV=cjs babel node_modules/apg-lite/lib/parser.js --out-file ./cjs/apg-lite.cjs","test":"mocha","test:watch":"npm-watch test","watch":"npm-watch"},"engines":{"node":">=12.20.0"},"type":"module","repository":{"type":"git","url":"git+https://github.com/swaggerexpert/cookie.git"},"keywords":["cookie","parser","validator","serializer","cookies","rfc6265"],"author":{"name":"Vladimír Gorej","email":"vladimir.gorej@gmail.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/swaggerexpert/cookie/issues"},"homepage":"https://github.com/swaggerexpert/cookie#readme","dependencies":{"apg-lite":"^1.0.3"},"devDependencies":{"@babel/cli":"=7.26.4","@babel/core":"=7.26.7","@babel/preset-env":"=7.26.7","@commitlint/cli":"=19.7.1","@commitlint/config-conventional":"=19.7.1","apg-js":"^4.4.0","babel-plugin-module-resolver":"^5.0.2","chai":"=5.1.2","cross-env":"^7.0.3","husky":"=9.1.7","mocha":"=11.1.0","npm-watch":"^0.13.0","prettier":"^3.1.1"},"_id":"@swaggerexpert/cookie@2.0.0","gitHead":"6cdbbfe9dc6e3add2382d7fd0b6a892ffd936b89","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-VdgKPxEEVa5xFuizGsW1roVuLNiQJf2G79sV44VUA8qaEeHcxyiWYDe2yKaS78Hy/SwxxSquzOXFb6Y+9Yf/Mw==","shasum":"1f04111b7c191ae0d281adcc5fec7b153d599dd0","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@swaggerexpert/cookie/-/cookie-2.0.0.tgz","fileCount":71,"unpackedSize":160934,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDueDkukYsESg+LPeU+W97YAmh+6Y293/3+AUKLe9s7BAIhAJmMnsSj1HyFs0PWF1lsQAxJdjluTy2S3C9Ve8ZdCPV0"}],"size":34943},"_npmUser":{"name":"anonymous","email":"vladimir.gorej@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"vladimir.gorej@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cookie_2.0.0_1739023103379_0.830902380840465"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-02-08T13:58:23.558Z","publish_time":1739023103558,"_source_registry_name":"default","contributors":[]},"2.0.1":{"name":"@swaggerexpert/cookie","publishConfig":{"access":"public"},"version":"2.0.1","description":"RFC 6265 compliant cookie parser, validator and serializer.","browser":{"./cjs/set-cookie/serialize/encoders/base64.node.cjs":"./cjs/set-cookie/serialize/encoders/base64.browser.cjs","./es/set-cookie/serialize/encoders/base64.node.mjs":"./es/set-cookie/serialize/encoders/base64.browser.mjs","./cjs/set-cookie/serialize/encoders/base64url.node.cjs":"./cjs/set-cookie/serialize/encoders/base64url.browser.cjs","./es/set-cookie/serialize/encoders/base64url.node.mjs":"./es/set-cookie/serialize/encoders/base64url.browser.mjs","./cjs/set-cookie/parse/decoders/base64.node.cjs":"./cjs/set-cookie/parse/decoders/base64.browser.cjs","./es/set-cookie/parse/decoders/base64.node.mjs":"./es/set-cookie/parse/decoders/base64.browser.mjs","./cjs/set-cookie/parse/decoders/base64url.node.cjs":"./cjs/set-cookie/parse/decoders/base64url.browser.cjs","./es/set-cookie/parse/decoders/base64url.node.mjs":"./es/set-cookie/parse/decoders/base64url.browser.mjs"},"main":"./cjs/index.cjs","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./es/index.mjs","require":"./cjs/index.cjs"},"./package.json":"./package.json","./grammar.bnf":"./src/grammar.bnf"},"watch":{"test":"{src,test}/*.js"},"scripts":{"prepublishOnly":"npm run build","grammar:compile":"node ./scripts/apg-js.js --lite --in=./src/grammar.bnf --out=./src/grammar.js && cd ./src","build":"npm run grammar:compile && npm run build:es && npm run build:cjs && npm run build:cjs:apg-lite","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --extensions '.js' --out-file-extension '.mjs'","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.js' --out-file-extension '.cjs'","build:cjs:apg-lite":"cross-env BABEL_ENV=cjs babel node_modules/apg-lite/lib/parser.js --out-file ./cjs/apg-lite.cjs","test":"mocha","test:watch":"npm-watch test","watch":"npm-watch"},"engines":{"node":">=12.20.0"},"type":"module","repository":{"type":"git","url":"git+https://github.com/swaggerexpert/cookie.git"},"keywords":["cookie","parser","validator","serializer","cookies","rfc6265"],"author":{"name":"Vladimír Gorej","email":"vladimir.gorej@gmail.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/swaggerexpert/cookie/issues"},"homepage":"https://github.com/swaggerexpert/cookie#readme","dependencies":{"apg-lite":"^1.0.3"},"devDependencies":{"@babel/cli":"=7.26.4","@babel/core":"=7.26.7","@babel/preset-env":"=7.26.7","@commitlint/cli":"=19.7.1","@commitlint/config-conventional":"=19.7.1","apg-js":"^4.4.0","babel-plugin-module-resolver":"^5.0.2","chai":"=5.1.2","cross-env":"^7.0.3","husky":"=9.1.7","mocha":"=11.1.0","npm-watch":"^0.13.0","prettier":"^3.1.1"},"_id":"@swaggerexpert/cookie@2.0.1","gitHead":"1139fae39d2bac0e1d06699fcf872bd9ec79378d","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-O/8rjBqqUrwUkxyV4jaNkoJPO9AuCuXF7kDCKnrmCaIcdqjiO3MqR8ryH7O9i6nJxaS8rr4Z3sXyaM+vfGpAfg==","shasum":"8fd99b9ebc1ef8bfc3787305ead3887b7a1996a8","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@swaggerexpert/cookie/-/cookie-2.0.1.tgz","fileCount":71,"unpackedSize":161354,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAwWlOscSxmmSzBxmYGVq98foFKTWo5VpCulM8Iaa1+RAiAfDGikMcMmfWztspgAutZC20JyAxj1AMDJugfhS1NO5w=="}],"size":34996},"_npmUser":{"name":"anonymous","email":"vladimir.gorej@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"vladimir.gorej@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cookie_2.0.1_1739094562018_0.20131086223807815"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-02-09T09:49:22.210Z","publish_time":1739094562210,"_source_registry_name":"default","contributors":[]},"2.0.2":{"name":"@swaggerexpert/cookie","publishConfig":{"access":"public"},"version":"2.0.2","description":"RFC 6265 compliant cookie parser, validator and serializer.","browser":{"./cjs/set-cookie/serialize/encoders/base64.node.cjs":"./cjs/set-cookie/serialize/encoders/base64.browser.cjs","./es/set-cookie/serialize/encoders/base64.node.mjs":"./es/set-cookie/serialize/encoders/base64.browser.mjs","./cjs/set-cookie/serialize/encoders/base64url.node.cjs":"./cjs/set-cookie/serialize/encoders/base64url.browser.cjs","./es/set-cookie/serialize/encoders/base64url.node.mjs":"./es/set-cookie/serialize/encoders/base64url.browser.mjs","./cjs/set-cookie/parse/decoders/base64.node.cjs":"./cjs/set-cookie/parse/decoders/base64.browser.cjs","./es/set-cookie/parse/decoders/base64.node.mjs":"./es/set-cookie/parse/decoders/base64.browser.mjs","./cjs/set-cookie/parse/decoders/base64url.node.cjs":"./cjs/set-cookie/parse/decoders/base64url.browser.cjs","./es/set-cookie/parse/decoders/base64url.node.mjs":"./es/set-cookie/parse/decoders/base64url.browser.mjs"},"main":"./cjs/index.cjs","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./es/index.mjs","require":"./cjs/index.cjs"},"./package.json":"./package.json","./grammar.bnf":"./src/grammar.bnf"},"watch":{"test":"{src,test}/*.js"},"scripts":{"prepublishOnly":"npm run build","grammar:compile":"node ./scripts/apg-js.js --lite --in=./src/grammar.bnf --out=./src/grammar.js && cd ./src","build":"npm run grammar:compile && npm run build:es && npm run build:cjs && npm run build:cjs:apg-lite","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --extensions '.js' --out-file-extension '.mjs'","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.js' --out-file-extension '.cjs'","build:cjs:apg-lite":"cross-env BABEL_ENV=cjs babel node_modules/apg-lite/lib/parser.js --out-file ./cjs/apg-lite.cjs","test":"mocha","test:watch":"npm-watch test","watch":"npm-watch"},"engines":{"node":">=12.20.0"},"type":"module","repository":{"type":"git","url":"git+https://github.com/swaggerexpert/cookie.git"},"keywords":["cookie","parser","validator","serializer","cookies","rfc6265"],"author":{"name":"Vladimír Gorej","email":"vladimir.gorej@gmail.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/swaggerexpert/cookie/issues"},"homepage":"https://github.com/swaggerexpert/cookie#readme","dependencies":{"apg-lite":"^1.0.3"},"devDependencies":{"@babel/cli":"=7.26.4","@babel/core":"=7.26.7","@babel/preset-env":"=7.26.7","@commitlint/cli":"=19.7.1","@commitlint/config-conventional":"=19.7.1","apg-js":"^4.4.0","babel-plugin-module-resolver":"^5.0.2","chai":"=5.1.2","cross-env":"^7.0.3","husky":"=9.1.7","mocha":"=11.1.0","npm-watch":"^0.13.0","prettier":"^3.1.1"},"_id":"@swaggerexpert/cookie@2.0.2","gitHead":"76b3988bec8f002db40cca3d00a5c9ca5f509c6c","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-DPI8YJ0Vznk4CT+ekn3rcFNq1uQwvUHZhH6WvTSPD0YKBIlMS9ur2RYKghXuxxOiqOam/i4lHJH4xTIiTgs3Mg==","shasum":"2b1bc2b5082955372539ce3f2b52c35831b32ef8","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@swaggerexpert/cookie/-/cookie-2.0.2.tgz","fileCount":71,"unpackedSize":161466,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBeK+ecXa//7hDwTYODt795EO3zUdQv+zXi+l1WEl3+mAiEAlqshlhrdQD8WVEtiPru2gTJLyFKLTNGYAYjzkr4g/sQ="}],"size":35011},"_npmUser":{"name":"anonymous","email":"vladimir.gorej@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"vladimir.gorej@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cookie_2.0.2_1739098064409_0.06535186534194226"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-02-09T10:47:44.630Z","publish_time":1739098064630,"_source_registry_name":"default","contributors":[]}},"dist-tags":{"latest":"2.0.2"},"name":"@swaggerexpert/cookie","time":{"created":"2024-12-14T18:46:44.930Z","modified":"2025-02-09T10:48:22.418Z","1.0.0":"2024-12-14T18:46:10.557Z","1.1.0":"2024-12-15T13:39:18.964Z","1.2.0":"2024-12-28T08:30:32.740Z","1.2.1":"2024-12-28T08:35:47.728Z","1.3.0":"2025-01-04T13:18:39.643Z","1.4.0":"2025-01-06T17:27:23.086Z","1.4.1":"2025-01-06T18:07:59.560Z","2.0.0":"2025-02-08T13:58:23.558Z","2.0.1":"2025-02-09T09:49:22.210Z","2.0.2":"2025-02-09T10:47:44.630Z"},"readme":"# @swaggerexpert/cookie\n\n[![npmversion](https://badge.fury.io/js/@swaggerexpert%2Fcookie.svg)](https://www.npmjs.com/package/@swaggerexpert/cookie)\n[![npm](https://img.shields.io/npm/dm/@swaggerexpert/cookie)](https://www.npmjs.com/package/@swaggerexpert/cookie)\n[![Test workflow](https://github.com/swaggerexpert/cookie/actions/workflows/test.yml/badge.svg)](https://github.com/swaggerexpert/cookie/actions)\n[![Dependabot enabled](https://img.shields.io/badge/Dependabot-enabled-blue.svg)](https://dependabot.com/)\n[![try on RunKit](https://img.shields.io/badge/try%20on-RunKit-brightgreen.svg?style=flat)](https://npm.runkit.com/@swaggerexpert/cookie)\n[![Tidelift](https://tidelift.com/badges/package/npm/@swaggerexpert%2Fcookie)](https://tidelift.com/subscription/pkg/npm-.swaggerexpert-cookie?utm_source=npm-swaggerexpert-cookie&utm_medium=referral&utm_campaign=readme)\n\n`@swaggerexpert/cookie` is [RFC 6265](https://datatracker.ietf.org/doc/html/rfc6265) compliant cookie `parser`, `validator` and `serializer`.\n\n<table>\n  <tr>\n    <td align=\"right\" valign=\"middle\">\n        <img src=\"https://cdn2.hubspot.net/hubfs/4008838/website/logos/logos_for_download/Tidelift_primary-shorthand-logo.png\" alt=\"Tidelift\" width=\"60\" />\n      </td>\n      <td valign=\"middle\">\n        <a href=\"https://tidelift.com/subscription/pkg/npm-.swaggerexpert-cookie?utm_source=npm-swaggerexpert-cookie&utm_medium=referral&utm_campaign=readme\">\n            Get professionally supported @swaggerexpert/cookie with Tidelift Subscription.\n        </a>\n      </td>\n  </tr>\n</table>\n\n## Table of Contents\n\n- [Getting started](#getting-started)\n  - [Installation](#installation)\n  - [Usage](#usage)\n    - [Cookie](#cookie)\n      - [Parsing cookie](#parsing-cookie)\n      - [Serializing cookie](#serializing-cookie)\n    - [Encoders](#encoders)\n      - [Cookie Name encoders](#cookie-name-encoders)\n      - [Cookie Value encoders](#cookie-value-encoders)\n    - [Validators](#validators)\n      - [Cookie Name validators](#cookie-name-validators)\n      - [Cookie Value validators](#cookie-value-validators)\n    - [Grammar](#grammar)\n- [More about RFC 6265](#more-about-rfc-6265)\n- [License](#license)\n\n## Getting started\n\n### Installation\n\nYou can install `@swaggerexpert/cookie` using `npm`:\n\n```sh\n $ npm install @swaggerexpert/cookie\n```\n\n### Usage\n\n`@swaggerexpert/cookie` currently supports **parsing**, **validation** and **serialization**.\nParser is based on a superset of [ABNF](https://www.rfc-editor.org/rfc/rfc5234) ([SABNF](https://cs.github.com/ldthomas/apg-js2/blob/master/SABNF.md))\nand uses [apg-lite](https://github.com/ldthomas/apg-lite) parser generator.\n\n#### Cookie\n\nThe `Cookie` header is an HTTP header used to send cookies from the client (e.g., a browser) to the server.\nThe `Cookie` header is sent in HTTP requests and contains one or more cookies that the server previously set\nvia the `Set-Cookie` header. Cookies are formatted as key-value pairs, separated by semicolons (`;`),\nand do not include metadata like `Path`, `Domain`, or `HttpOnly`.\n\n##### Parsing Cookie\n\nParsing a cookie is as simple as importing the **parseCookie** function and calling it.\n\n```js\nimport { parseCookie } from '@swaggerexpert/cookie';\n\nconst parseResult = parseCookie('foo=bar');\nparseResult.result.success; // => true\n```\n\nThe **lenient** mode for cookie parsing is designed to handle and extract valid\ncookie-pairs from potentially malformed or non-standard cookie strings.\nIt focuses on maintaining compatibility with real-world scenarios where cookie\nheaders may deviate from strict compliance with RFC 6265.\n\n```js\nimport { parseCookie } from '@swaggerexpert/cookie';\n\n/**\n * All of the following parse successfully.\n */\n\nparseCookie('foo1=bar;  foo2=baz', { strict: false });\nparseCookie('foo1=bar;foo2=baz', { strict: false });\nparseCookie('FOO    = bar;   baz  =   raz', { strict: false });\nparseCookie('foo=\"bar=123456789&name=Magic+Mouse\"', { strict: false });\nparseCookie('foo  =  \"bar\"', { strict: false });\nparseCookie('foo  =  bar  ;  fizz  =  buzz', { strict: false });\nparseCookie('foo =', { strict: false });\nparseCookie('\\tfoo\\t=\\tbar\\t', { strict: false });\nparseCookie('foo1=bar;foo2=baz', { strict: false });\nparseCookie('foo1=bar;  foo2=baz', { strict: false });\nparseCookie('foo=bar; fizz; buzz', { strict: false });\nparseCookie('fizz; buzz; foo=bar', { strict: false });\nparseCookie('name=name=3', { strict: false });\nparseCookie('name:name=3', { strict: false });\n```\n\n**ParseResult** returned by the parser has the following shape:\n\n```\n{\n  result: {\n    success: true,\n    state: 101,\n    stateName: 'MATCH',\n    length: 7,\n    matched: 7,\n    maxMatched: 7,\n    maxTreeDepth: 9,\n    nodeHits: 71\n  },\n  ast: fnast {\n    callbacks: [\n      'cookie-string': [Function: cookieString],\n      'cookie-pair': [Function: cookiePair],\n      'cookie-name': [Function: cookieName],\n      'cookie-value': [Function: cookieValue]\n    ],\n    init: [Function (anonymous)],\n    ruleDefined: [Function (anonymous)],\n    udtDefined: [Function (anonymous)],\n    down: [Function (anonymous)],\n    up: [Function (anonymous)],\n    translate: [Function (anonymous)],\n    setLength: [Function (anonymous)],\n    getLength: [Function (anonymous)],\n    toXml: [Function (anonymous)]\n  }\n}\n```\n\n###### Interpreting AST as list of entries\n\n```js\nimport { parseCookie } from '@swaggerexpert/cookie';\n\nconst parseResult = parse('foo=bar');\nconst parts = [];\n\nparseResult.ast.translate(parts);\n```\n\nAfter running the above code, **parts** variable has the following shape:\n\n```js\n[\n  ['cookie-string', 'foo=bar'],\n  ['cookie-pair', 'foo=bar'],\n  ['cookie-name', 'foo'],\n  ['cookie-value', 'bar'],\n]\n```\n\n###### Interpreting AST as XML\n\n```js\nimport { parseCookie } from '@swaggerexpert/cookie';\n\nconst parseResult = parseCookie('foo=bar');\nconst xml = parseResult.ast.toXml();\n```\n\nAfter running the above code, **xml** variable has the following content:\n\n```xml\n<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root nodes=\"4\" characters=\"7\">\n  <!-- input string -->\n  foo=bar\n  <node name=\"cookie-string\" index=\"0\" length=\"7\">\n    foo=bar\n    <node name=\"cookie-pair\" index=\"0\" length=\"7\">\n      foo=bar\n      <node name=\"cookie-name\" index=\"0\" length=\"3\">\n        foo\n      </node><!-- name=\"cookie-name\" -->\n      <node name=\"cookie-value\" index=\"4\" length=\"3\">\n        bar\n      </node><!-- name=\"cookie-value\" -->\n    </node><!-- name=\"cookie-pair\" -->\n  </node><!-- name=\"cookie-string\" -->\n</root>\n```\n\n> NOTE: AST can also be traversed in classical way using [depth first traversal](https://www.tutorialspoint.com/data_structures_algorithms/depth_first_traversal.htm). For more information about this option please refer to [apg-js](https://github.com/ldthomas/apg-js) and [apg-js-examples](https://github.com/ldthomas/apg-js-examples).\n\n##### Serializing Cookie\n\nSerializing a cookie is as simple as importing the **serializeCookie** function and calling it.\n\n**Serializing object**:\n\n```js\nimport { serializeCookie } from '@swaggerexpert/cookie';\n\nserializeCookie({ foo: 'bar' }); // => 'foo=bar'\nserializeCookie({ foo: 'bar', baz: 'raz' }); // => 'foo=bar; baz=raz'\n```\n\n**Serializing entries**:\n\nBy using entries (list of key-value pairs), this function supports creating cookies\nwith duplicate names—a common scenario when sending multiple values for the same cookie name.\n\n```js\nimport { serializeCookie } from '@swaggerexpert/cookie';\n\nserializeCookie([['foo',  'bar']]); // => 'foo=bar'\nserializeCookie([[ 'foo', 'bar'], ['baz', 'raz' ]]); // => 'foo=bar; baz=raz'\nserializeCookie([[ 'foo', 'bar'], ['baz', 'raz' ], ['foo', 'boo']]); // => 'foo=bar; baz=raz; foo=boo'\n```\n\n**Options**\n\nThe `serializeCookie` function provides a powerful and flexible API for serializing cookies,\nenabling the implementation of various scenarios. By default, it uses a set of sensible options\nto ensure compliance with cookie standards. However, its behavior can be customized by overriding these defaults.\n\n**Default Options**\n\n[Encoders](#encoders) transform cookie names and values during serialization to ensure they meet encoding requirements.\n[Validators](#validators) ensure that cookie names and values conform to the required standards. If validation fails, an error is thrown.\nValidators are executed **after** encoders, ensuring that values are first transformed before being validated.\n\nThe default options for `serializeCookie` ensure strict compliance with cookie standards by applying\nno encoding for cookie names, RFC compliant encoding for values, and robust validation for\nboth names and values according to [RFC 6265](https://datatracker.ietf.org/doc/html/rfc6265).\n\n```js\n{\n  encoders: {\n    name: identity,\n    value: cookieValueStrictBase64urlEncoder\n  },\n  validators: {\n    name: cookieNameStrictValidator,\n    value: cookieValueStrictValidator,\n  }\n}\n```\n\n**Customizing serialization**\n\nYou can customize `serializeCookie` behavior by providing your own [encoders](#encoders) or [validators](#validators):\n\n```js\nimport { serializeCookie } from '@swaggerexpert/cookie';\n\nserializeCookie({ foo: 'bar' }, {\n  encoders: {\n    name: (name) => name.toUpperCase(), // custom name encoder\n    value: (value) => encodeURIComponent(value), // custom value encoder\n  },\n  validators: {\n    name: (name) => {\n      if (!/^[a-zA-Z]+$/.test(name)) {\n        throw new TypeError('Custom validation failed for cookie name');\n      }\n    },\n    value: (value) => {\n      if (value.includes(';')) {\n        throw new TypeError('Custom validation failed for cookie value');\n      }\n    },\n  },\n});\n```\n\nCompletely **bypassing** encoding and validation is possible as well:\n\n```js\nimport { serializeCookie, identity, noop } from '@swaggerexpert/cookie';\n\nserializeCookie({ foo: ';' }, {\n  encoders: {  name: identity, value: identity },\n  validators: { name: noop, value: noop },\n}); // => \"foo=;\"\n```\n\n#### Encoders\n\nThe `@swaggerexpert/cookie` library provides a suite of encoders designed to handle cookie names and values during **serialization**.\nEach encoder adheres to specific rules for encoding characters, ensuring compatibility with cookie-related standards.\nBelow is a detailed overview of the available encoders.\n\n##### Generic Encoders\n\nGeneric encoders can be used both for cookie names and values.\n\n**base64**\n\nEncodes a string using the [Base64](https://datatracker.ietf.org/doc/html/rfc4648) algorithm. Base64 encoding\nis explicitly mentioned in [RFC 6265, section 4.1.1](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1) as an example of appropriate encoding for cookie values.\n\n```js\nimport { base64Encoder } from '@swaggerexpert/cookie';\n\nbase64Encoder('foo<'); // => 'Zm9vPA=='\n```\n\n**base64url**\n\nEncodes a string using the [base64url](https://datatracker.ietf.org/doc/html/rfc4648#section-5) algorithm.\nThis encoding consists of Base64 Encoding with URL and Filename Safe Alphabet.\n\n```js\nimport { base64urlEncoder } from '@swaggerexpert/cookie';\n\nbase64urlEncoder('foo<'); // => 'Zm9vPA'\n```\n\n##### Cookie Name Encoders\n\n**cookieNameStrictPercentEncoder**\n\nPercent-encodes characters that fall outside the allowable set defined by the `cookie-name` rule in [RFC 6265](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1).\n\n- **Use Case**: Ensures that the cookie name strictly adheres to the `cookie-name` non-terminal rule.\n\n```js\nimport { cookieNameStrictPercentEncoder } from '@swaggerexpert/cookie';\n\ncookieNameStrictPercentEncoder('foo<'); // => 'foo%3C'\n```\n\n**cookieNameLenientPercentEncoder**\n\nPercent-encodes characters that fall outside the allowable set defined by the `lenient-cookie-name` rule.\nThis allows for a more lenient interpretation of cookie names.\n\n- **Use Case**: Useful in scenarios where broader compatibility is required, or when leniency in cookie names is acceptable.\n\n```js\nimport { cookieNameLenientPercentEncoder } from '@swaggerexpert/cookie';\n\ncookieNameLenientPercentEncoder('foo<'); // => 'foo<'\n```\n\n##### Cookie Value Encoders\n\n**cookieValueStrictBase64Encoder**\n\nApplies [Base64](https://datatracker.ietf.org/doc/html/rfc4648) encoding to a cookie value if any of its characters fall outside the allowable set defined by the `cookie-value` rule in  [RFC 6265](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1).\n\n- **Use Case**: To achieve the best compatibility, Base64 encoding is mentioned by RFC 6265 as an example of appropriate encoding to use. Ensures strict compliance with the `cookie-value` non-terminal rule.\n\n```js\nimport { cookieValueStrictBase64Encoder } from '@swaggerexpert/cookie';\n\ncookieValueStrictBase64Encoder(';'); // => Ow==\ncookieValueStrictBase64Encoder('\";\"'); // => \"Ow==\"\n```\n\n**cookieValueStrictBase64urlEncoder**\n\nApplies [base64url](https://datatracker.ietf.org/doc/html/rfc4648#section-5) encoding to a cookie value if any of its characters fall outside the allowable set defined by the `cookie-value` rule in  [RFC 6265](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1).\n\n- **Use Case**: More appropriate for modern tooling, it ensures strict compliance with the `cookie-value` non-terminal rule by producing encoded value with URL and Filename Safe Alphabet.\n\n```js\nimport { cookieValueStrictBase64Encoder } from '@swaggerexpert/cookie';\n\ncookieValueStrictBase64Encoder(';'); // => Ow\ncookieValueStrictBase64Encoder('\";\"'); // => \"Ow\"\n```\n\n**cookieValueStrictPercentEncoder**\n\nPercent-encodes characters that fall outside the allowable set defined by the `cookie-value` rule in [RFC 6265](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1).\n\n- **Use Case**: Ensures strict compliance with the `cookie-value` non-terminal rule, encoding characters such as `;` and `,`.\n\n```js\nimport { cookieValueStrictPercentEncoder } from '@swaggerexpert/cookie';\n\ncookieValueStrictPercentEncoder(';'); // => '%3B'\n```\n\n**cookieValueLenientBase64Encoder**\n\nApplies [Base64](https://datatracker.ietf.org/doc/html/rfc4648) encoding to a cookie value if any of its characters fall outside the allowable set defined by the `lenient-cookie-value`.\n\n- **Use Case**: To achieve the best compatibility, Base64 encoding is mentioned by RFC 6265 as an example of appropriate encoding to use. Useful when broader compatibility is needed, and when leniency in cookie values is acceptable.\n\n```js\nimport { cookieValueLenientBase64Encoder } from '@swaggerexpert/cookie';\n\ncookieValueLenientBase64Encoder(';'); // => Ow==\ncookieValueLenientBase64Encoder('\";\"'); // => \"Ow==\"\n```\n\n**cookieValueLenientBase64urlEncoder**\n\nApplies [base64url](https://datatracker.ietf.org/doc/html/rfc4648#section-5) encoding to a cookie value if any of its characters fall outside the allowable set defined by the `lenient-cookie-value`.\n\n- **Use Case**: More appropriate for modern tooling. Useful when producing encoded value with URL and Filename Safe Alphabet, and leniency in cookie values is acceptable.\n-\n\n```js\nimport { cookieValueLenientBase64urlEncoder } from '@swaggerexpert/cookie';\n\ncookieValueLenientBase64urlEncoder(';'); // => Ow\ncookieValueLenientBase64urlEncoder('\";\"'); // => \"Ow\"\n```\n\n**cookieValueLenientPercentEncoder**\n\nPercent-encodes characters that fall outside the allowable set defined by the `lenient-cookie-value` rule.\nThis allows for a more permissive interpretation of cookie values.\n\n- **Use Case**: Useful when broader compatibility is needed, and when leniency in cookie values is acceptable.\n\n```js\nimport { cookieValueLenientPercentEncoder } from '@swaggerexpert/cookie';\n\ncookieValueLenientPercentEncoder('\"'); // => '\"'\n```\n\n#### Validators\n\nThe `@swaggerexpert/cookie` library provides a suite of validators designed to ensure that cookie names and values\ncomply with the necessary standards during **serialization**. These validators are strict about adherence to the rules\nwhile offering flexibility with both strict and lenient validation modes. Validators focus on validating input and\nthrowing descriptive errors for invalid values.\n\n##### Cookie Name Validators\n\n**cookieNameStrictValidator**\n\nValidates cookie names based on the `cookie-name` rule defined in [RFC 6265](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1).\n\n```js\nimport { cookieNameStrictValidator } from '@swaggerexpert/cookie';\n\ncookieNameStrictValidator('ValidName'); // passes\ncookieNameStrictValidator('InvalidName<'); // throws: Invalid cookie name\n```\n\n\n**cookieNameLenientValidator**\n\nValidates cookie names based on the `lenient-cookie-name` rules Allows a broader range of characters than the strict validator.\n\n```js\nimport { cookieNameLenientValidator } from '@swaggerexpert/cookie';\n\ncookieNameLenientValidator('ValidLenientName'); // passes\ncookieNameLenientValidator('\\tInvalidLenientName'); // throws: Invalid cookie name\n```\n\n##### Cookie Value Validators\n\n**cookieValueStrictValidator**\n\nValidates cookie values according to the `cookie-value` rules in [RFC 6265](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1).\n\n```js\nimport { cookieValueStrictValidator } from '@swaggerexpert/cookie';\n\ncookieValueStrictValidator('\"validValue\"'); // passes\ncookieValueStrictValidator('invalid\\\\value'); // throws: Invalid cookie value\n```\n\n**cookieValueLenientValidator**\n\nValidates cookie values according to `lenient-cookie-value` rules. Accepts a broader range of characters,\nincluding some that are disallowed in strict mode.\n\n```js\nimport { cookieValueLenientValidator } from '@swaggerexpert/cookie';\n\ncookieValueLenientValidator('\"lenient;value\"'); // passes\ncookieValueLenientValidator('invalid value'); // throws: Invalid cookie value\n```\n\n#### Grammar\n\nNew grammar instance can be created in following way:\n\n```js\nimport { Grammar } from '@swaggerexpert/cookie';\n\nconst grammar = new Grammar();\n```\n\nTo obtain original ABNF (SABNF) grammar as a string:\n\n```js\nimport { Grammar } from '@swaggerexpert/cookie';\n\nconst grammar = new Grammar();\n\ngrammar.toString();\n// or\nString(grammar);\n```\n\n## More about RFC 6265\n\nThe cookie is defined by the following [ABNF](https://tools.ietf.org/html/rfc5234) syntax\n\n```abnf\n; Lenient version of https://datatracker.ietf.org/doc/html/rfc6265#section-4.2.1\nlenient-cookie-string        = lenient-cookie-entry *( \";\" OWS lenient-cookie-entry )\nlenient-cookie-entry         = lenient-cookie-pair / lenient-cookie-pair-invalid\nlenient-cookie-pair          = OWS lenient-cookie-name OWS \"=\" OWS lenient-cookie-value OWS\nlenient-cookie-pair-invalid  = OWS 1*tchar OWS ; Allow for standalone entries like \"fizz\" to be ignored\nlenient-cookie-name          = 1*( %x21-3A / %x3C / %x3E-7E ) ; Allow all printable US-ASCII except \"=\"\nlenient-cookie-value         = lenient-quoted-value [ *lenient-cookie-octet ] / *lenient-cookie-octet\nlenient-quoted-value         = DQUOTE *( lenient-quoted-char ) DQUOTE\nlenient-quoted-char          = %x20-21 / %x23-7E ; Allow all printable US-ASCII except DQUOTE\nlenient-cookie-octet         = %x21-2B / %x2D-3A / %x3C-7E\n                             ; Allow all printable characters except CTLs, semicolon and SP\n\n; https://datatracker.ietf.org/doc/html/rfc6265#section-4.2.1\ncookie-string     = cookie-pair *( \";\" SP cookie-pair )\n\n; https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1\n; https://www.rfc-editor.org/errata/eid5518\ncookie-pair       = cookie-name \"=\" cookie-value\ncookie-name       = token\ncookie-value      = ( DQUOTE *cookie-octet DQUOTE ) / *cookie-octet\n                  ; https://www.rfc-editor.org/errata/eid8242\ncookie-octet      = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n                       ; US-ASCII characters excluding CTLs,\n                       ; whitespace, DQUOTE, comma, semicolon,\n                       ; and backslash\n\n; https://datatracker.ietf.org/doc/html/rfc6265#section-2.2\nOWS            = *( [ CRLF ] WSP ) ; \"optional\" whitespace\n\n; https://datatracker.ietf.org/doc/html/rfc9110#section-5.6.2\ntoken          = 1*(tchar)\ntchar          = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n                 / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n                 / DIGIT / ALPHA\n                 ; any VCHAR, except delimiters\n\n; https://datatracker.ietf.org/doc/html/rfc2616#section-2.2\nCHAR           = %x01-7F ; any US-ASCII character (octets 0 - 127)\nCTL            = %x00-1F / %x7F ; any US-ASCII control character\nseparators     = \"(\" / \")\" / \"<\" / \">\" / \"@\" / \",\" / \";\" / \":\" / \"\\\" / %x22 / \"/\" / \"[\" / \"]\" / \"?\" / \"=\" / \"{\" / \"}\" / SP / HT\nSP             = %x20 ; US-ASCII SP, space (32)\nHT             = %x09 ; US-ASCII HT, horizontal-tab (9)\n\n; https://datatracker.ietf.org/doc/html/rfc5234#appendix-B.1\nALPHA          =  %x41-5A / %x61-7A ; A-Z / a-z\nDIGIT          =  %x30-39 ; 0-9\nDQUOTE         =  %x22 ; \" (Double Quote)\nWSP            =  SP / HTAB ; white space\nHTAB           =  %x09 ; horizontal tab\nCRLF           =  CR LF ; Internet standard newline\nCR             =  %x0D ; carriage return\nLF             =  %x0A ; linefeed\n```\n\n## License\n\n`@swaggerexpert/cookie` is licensed under [Apache 2.0 license](https://github.com/swaggerexpert/cookie/blob/main/LICENSE).\n`@swaggerexpert/cookie` comes with an explicit [NOTICE](https://github.com/swaggerexpert/cookie/blob/main/NOTICE) file\ncontaining additional legal notices and information.","users":{}}