{"_id":"browser-cookie-utils","_rev":"3-e75a165ca0450eefcd76b1c290a67ac6","name":"browser-cookie-utils","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.0":{"name":"browser-cookie-utils","version":"1.0.0","keywords":["cookie","browser","utils"],"author":{"name":"Sami Ahmed Siddiqui","email":"samiahmedsiddiqui91@gmail.com"},"license":"MIT","_id":"browser-cookie-utils@1.0.0","maintainers":[{"name":"samiahmedsiddiqui","email":"sami@trunkcode.com"}],"homepage":"https://github.com/samiahmedsiddiqui/browser-cookie-utils#readme","bugs":{"url":"https://github.com/samiahmedsiddiqui/browser-cookie-utils/issues"},"dist":{"shasum":"550fead253472659b9bf3206baec20e792ad9569","tarball":"https://registry.npmjs.org/browser-cookie-utils/-/browser-cookie-utils-1.0.0.tgz","fileCount":7,"integrity":"sha512-XJMvgybzel8raevQNmPmmJLci3hukMVoMP4O6S6R/RjWjlq/eDsLl8IafpHHyAnxEkcNRBImuLHV+JXZMhPN2w==","signatures":[{"sig":"MEUCIFU7gtzkJG45iLtrU2p85RwlWeQlUKNTwVh/0zsSCF6GAiEAvv5cLMq0/bc43MfIK4XKKGkVtiNkbl6cTt+W43Mxl0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10998},"main":"dist/browser-cookie-utils.min.js","type":"module","gitHead":"b09f9016ee611fefe27fa415c3c144a4167fc6a3","scripts":{"lint":"eslint .","build":"node build.js","format":"prettier --write src/**/*.js","lint:fix":"eslint . --fix"},"_npmUser":{"name":"samiahmedsiddiqui","email":"sami@trunkcode.com"},"repository":{"url":"git+https://github.com/samiahmedsiddiqui/browser-cookie-utils.git","type":"git"},"_npmVersion":"11.5.1","description":"Lightweight, dependency-free JavaScript helpers for getting, setting, and deleting browser cookies safely and consistently.","directories":{},"_nodeVersion":"24.6.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.2","terser":"5.44.1","prettier":"3.7.4","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/browser-cookie-utils_1.0.0_1766150496704_0.7399251827747695","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"browser-cookie-utils","version":"2.0.0","keywords":["cookie","cookies","browser","utils","samesite","secure","frontend","web"],"author":{"name":"Sami Ahmed Siddiqui","email":"samiahmedsiddiqui91@gmail.com"},"license":"MIT","_id":"browser-cookie-utils@2.0.0","maintainers":[{"name":"samiahmedsiddiqui","email":"sami@trunkcode.com"}],"homepage":"https://github.com/samiahmedsiddiqui/browser-cookie-utils#readme","bugs":{"url":"https://github.com/samiahmedsiddiqui/browser-cookie-utils/issues"},"dist":{"shasum":"a3becf418da92d18bf0912b488c36f064ee47626","tarball":"https://registry.npmjs.org/browser-cookie-utils/-/browser-cookie-utils-2.0.0.tgz","fileCount":10,"integrity":"sha512-RWBWml8Ho0SJXJFVHIjj5wGT6o9L8nhkqA48uQrkxBWLZjx2UQz5zB0a0HBSH7iZDcuVDHu7Cf0LrLOmAc6Bcw==","signatures":[{"sig":"MEUCIQCnb+HbnnlxHh/tixu0Qi7PdzdP7gD3QpQ7JQqg0NJRmgIgL/LA02Du2c0T3eF3TEbRy7caeS0SanaIXdx7igLBv64=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23861},"main":"dist/browser-cookie-utils.cjs.min.js","type":"module","module":"dist/browser-cookie-utils.min.js","exports":{".":{"import":"./dist/browser-cookie-utils.min.js","require":"./dist/browser-cookie-utils.cjs.min.js"}},"gitHead":"bbfe07c8c95af99066e9b16053cefb7f24c4da42","scripts":{"lint":"eslint .","build":"node build.js","format":"prettier --write src/**/*.js","lint:fix":"eslint . --fix"},"_npmUser":{"name":"samiahmedsiddiqui","email":"sami@trunkcode.com"},"repository":{"url":"git+https://github.com/samiahmedsiddiqui/browser-cookie-utils.git","type":"git"},"_npmVersion":"11.6.2","description":"Lightweight, dependency-free JavaScript helpers for getting, setting, and deleting browser cookies with modern browser support.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.2","terser":"5.44.1","prettier":"3.7.4","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/browser-cookie-utils_2.0.0_1767602243783_0.2657611773799917","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"browser-cookie-utils","version":"2.0.1","description":"Lightweight, dependency-free JavaScript helpers for getting, setting, and deleting browser cookies with modern browser support.","type":"module","main":"dist/browser-cookie-utils.cjs.min.js","module":"dist/browser-cookie-utils.min.js","exports":{".":{"import":"./dist/browser-cookie-utils.min.js","require":"./dist/browser-cookie-utils.cjs.min.js"}},"sideEffects":false,"scripts":{"lint":"eslint .","lint:fix":"eslint . --fix","format":"prettier --write src/**/*.js","build":"node build.js"},"repository":{"type":"git","url":"git+https://github.com/samiahmedsiddiqui/browser-cookie-utils.git"},"keywords":["cookie","cookies","browser","utils","samesite","secure","frontend","web"],"author":{"name":"Sami Ahmed Siddiqui","email":"samiahmedsiddiqui91@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/samiahmedsiddiqui/browser-cookie-utils/issues"},"homepage":"https://github.com/samiahmedsiddiqui/browser-cookie-utils#readme","devDependencies":{"eslint":"9.39.2","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.4","prettier":"3.7.4","terser":"5.44.1"},"gitHead":"4bf9e9f359b674b691a184b5561a306b550402b2","_id":"browser-cookie-utils@2.0.1","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-vKuYhw790h9x62BsuU0fFoSLYQq6dJI6w7lzr/YSSD/0ALD5pC/1HYh8Oa+pt/yWtN+p3x1fiQnoHC1TZUTvOw==","shasum":"b33afc05947ecf1797030173ab2ca6e6c5def9ab","tarball":"https://registry.npmjs.org/browser-cookie-utils/-/browser-cookie-utils-2.0.1.tgz","fileCount":10,"unpackedSize":24127,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDq8mhOp+fA078YLLaft0IcUMBqLSQYlaoaFbX+3rOb7AIgYypHP3hucb0aYhC/7ZeZJ0/HG+l49m/PBaKACeGvNeE="}]},"_npmUser":{"name":"samiahmedsiddiqui","email":"sami@trunkcode.com"},"directories":{},"maintainers":[{"name":"samiahmedsiddiqui","email":"sami@trunkcode.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/browser-cookie-utils_2.0.1_1769014407455_0.11253788007985821"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-19T13:21:36.703Z","modified":"2026-01-21T16:53:27.706Z","1.0.0":"2025-12-19T13:21:36.844Z","2.0.0":"2026-01-05T08:37:23.937Z","2.0.1":"2026-01-21T16:53:27.591Z"},"bugs":{"url":"https://github.com/samiahmedsiddiqui/browser-cookie-utils/issues"},"author":{"name":"Sami Ahmed Siddiqui","email":"samiahmedsiddiqui91@gmail.com"},"license":"MIT","homepage":"https://github.com/samiahmedsiddiqui/browser-cookie-utils#readme","keywords":["cookie","cookies","browser","utils","samesite","secure","frontend","web"],"repository":{"type":"git","url":"git+https://github.com/samiahmedsiddiqui/browser-cookie-utils.git"},"description":"Lightweight, dependency-free JavaScript helpers for getting, setting, and deleting browser cookies with modern browser support.","maintainers":[{"name":"samiahmedsiddiqui","email":"sami@trunkcode.com"}],"readme":"# browser-cookie-utils\n\n[![License: MIT][license-image]][license-url]\n[![NPM version][npm-image]][npm-url]\n[![Build][build-image]][build-url]\n[![Downloads][jsdelivr-image]][jsdelivr-url]\n\nLightweight, dependency-free JavaScript helpers for getting, setting, and deleting browser cookies safely and consistently in modern browsers.\n\n## Features\n\n- Zero runtime dependencies\n- Browser-only (no Node.js required in production)\n- Simple, ergonomic API\n- Cookie expiration with time units\n- Multi-domain cookie support\n- Automatic Secure flag on HTTPS\n- SameSite support (`Lax`, `Strict`, `None`)\n- Path customization\n- Safe encoding / decoding\n\n## Installation\n\n### NPM (Modern ESM / CJS)\n\n```sh\nnpm install browser-cookie-utils@2\n```\n\n#### ESM import (modern bundlers):\n\n```js\nimport { setCookie, getCookie, deleteCookie } from 'browser-cookie-utils';\n```\n\n#### CJS import (Node.js / legacy bundlers):\n\n```js\nconst { getCookie, setCookie, deleteCookie } = require('browser-cookie-utils');\n```\n\n### Browser (UMD / CDN)\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/browser-cookie-utils/dist/browser-cookie-utils.umd.js\"></script>\n```\n\n### Available Builds\n\n| File                              | Format     | Notes                                   |\n| --------------------------------- | ---------- | --------------------------------------- |\n| `browser-cookie-utils.js`         | ESM        | Non-minified, modern bundlers           |\n| `browser-cookie-utils.min.js`     | ESM        | Minified, production-ready (ES module)  |\n| `browser-cookie-utils.cjs.js`     | CJS        | Non-minified, Node.js / CommonJS        |\n| `browser-cookie-utils.cjs.min.js` | CJS        | Minified, production-ready              |\n| `browser-cookie-utils.umd.js`     | UMD        | Legacy browsers / script tag & CommonJS |\n| `browser-cookie-utils.min.js.map` | Source map | For minified ESM                        |\n\n> **Note:** The library attaches itself to `window.browserCookieUtils` in the browser.\n\n## Usage by environment\n\n### ES Modules (recommended)\n\n```js\nimport { getCookie, setCookie, deleteCookie } from 'browser-cookie-utils';\n\nsetCookie('theme', 'dark');\n```\n\n### CommonJS\n\n```js\nconst { getCookie, setCookie, deleteCookie } = require('browser-cookie-utils');\n\nsetCookie('theme', 'dark');\n```\n\n### Browser (script tag / CDN)\n\n```js\n<script src=\"https://cdn.jsdelivr.net/npm/browser-cookie-utils/dist/browser-cookie-utils.umd.js\"></script>\n<script>\n  browserCookieUtils.setCookie('theme', 'dark');\n</script>\n```\n\n> The global `browserCookieUtils` is available only when using the UMD build.\n\n## API Usage\n\n### Set a cookie (basic)\n\n```js\nimport { setCookie } from 'browser-cookie-utils';\n\nsetCookie('theme', 'dark');\n```\n\nCreates a cookie with:\n\n- 1 hour expiration\n- `path=/`\n- `SameSite=Lax`\n- `Secure` (automatically on HTTPS)\n\n---\n\n### Set a cookie with options\n\n```js\nimport { setCookie } from 'browser-cookie-utils';\n\nsetCookie('session', 'abc123', {\n  timeToLive: 2,\n  unit: 'hour'\n});\n```\n\nSupported units:\n\n- `hour`\n- `day`\n- `month` (30 days)\n\n---\n\n### Set cookie with full configuration\n\n```js\nimport { setCookie } from 'browser-cookie-utils';\n\nsetCookie('user', 'sami', {\n  timeToLive: 7,\n  unit: 'day',\n  domains: ['example.com', '.example.org'],\n  path: '/',\n  sameSite: 'Lax',\n  secure: true\n});\n```\n\n#### Available options\n\n| Option       | Type       | Default          | Description              |\n| ------------ | ---------- | ---------------- | ------------------------ |\n| `timeToLive` | `number`   | `1`              | Expiration duration      |\n| `unit`       | `string`   | `hour`           | `hour`, `day`, `month`   |\n| `domains`    | `string[]` | current hostname | Domains to set cookie on |\n| `path`       | `string`   | `/`              | Cookie path              |\n| `sameSite`   | `string`   | `Lax`            | `Lax`, `Strict`, `None`  |\n| `secure`     | `boolean`  | auto             | Forced Secure flag       |\n\n### Cross-site cookies (SameSite=None)\n\n```js\nimport { setCookie } from 'browser-cookie-utils';\n\nsetCookie('crossSite', 'true', {\n  sameSite: 'None',\n  secure: true\n});\n```\n\n> ⚠️ Browsers **require `Secure`** when using `SameSite=None`.\n\n## Get a cookie\n\n```js\nimport { getCookie } from 'browser-cookie-utils';\n\nconst theme = getCookie('theme');\n```\n\nReturns:\n\n- `string` if found\n- `null` if not found\n\n## Delete a cookie\n\n```js\nimport { deleteCookie } from 'browser-cookie-utils';\n\ndeleteCookie('theme');\n```\n\n### Delete with options (recommended)\n\n```js\nimport { deleteCookie } from 'browser-cookie-utils';\n\ndeleteCookie('user', {\n  domains: ['example.com'],\n  path: '/',\n  sameSite: 'Lax',\n  secure: true\n});\n```\n\n> ⚠️ For deletion to succeed, `domain`, `path`, `secure`, and `sameSite` **must match** the original cookie.\n\n> **Browser (UMD) usage:**\n> When using the UMD build via a `<script>` tag, replace imported functions with\n> `browserCookieUtils.*`.\n\n\n## Migration Guide (v1.x → v2.0.0)\n\nVersion `2.0.0` introduces a **breaking API change** to improve flexibility and align with modern browser cookie requirements.\n\n### What changed?\n\nThe `setCookie` and `deleteCookie` functions now accept an **options object** instead of positional arguments.\n\n---\n\n### `setCookie` migration\n\n#### Before (v1.x):\n\n```js\nbrowserCookieUtils.setCookie('theme', 'dark', 2, 'day', ['.example.com']);\n```\n\n#### After (v2.0.0):\n\n```js\nbrowserCookieUtils.setCookie('theme', 'dark', {\n  timeToLive: 2,\n  unit: 'day',\n  domains: ['.example.com']\n});\n```\n\n### `deleteCookie` migration\n\n#### Before (v1.x):\n\n```js\nbrowserCookieUtils.deleteCookie('theme', ['.example.com']);\n```\n\n#### After (v2.0.0):\n\n```js\nbrowserCookieUtils.deleteCookie('theme', {\n  domains: ['.example.com']\n});\n```\n\n### Why the change?\n\n- Clearer, self-documenting API\n- Easier future extensions\n- Better alignment with modern cookie attributes (SameSite, Secure, path)\n\nIf you need the old behavior, continue using `v1.x`, which remains stable.\n\n## Security behavior\n\n- Automatically adds `Secure` on HTTPS\n- Supports modern `SameSite` rules\n- Uses `encodeURIComponent` / `decodeURIComponent`\n- Sets `path=/` by default\n- Does **not** set `HttpOnly` (not possible via JavaScript)\n\n## Browser support\n\n- All modern evergreen browsers\n- Works without polyfills\n- No reliance on deprecated APIs\n\n## License\n\nMIT © [Sami Ahmed Siddiqui](https://github.com/samiahmedsiddiqui)\n\n[build-image]: https://img.shields.io/github/actions/workflow/status/samiahmedsiddiqui/browser-cookie-utils/ci.yml\n[build-url]: https://github.com/samiahmedsiddiqui/browser-cookie-utils/actions\n[npm-image]: https://img.shields.io/npm/v/browser-cookie-utils.svg\n[npm-url]: https://www.npmjs.com/package/browser-cookie-utils\n[license-image]: https://img.shields.io/badge/License-MIT-green.svg\n[license-url]: LICENSE\n[jsdelivr-image]: https://img.shields.io/jsdelivr/npm/hm/browser-cookie-utils\n[jsdelivr-url]: https://www.jsdelivr.com/package/npm/browser-cookie-utils\n","readmeFilename":"README.md"}