{"_id":"@drakkar.software/anchor-adapter-web","_rev":"6-de16083dcbb6a0079c2d6d35fee5f3c8","name":"@drakkar.software/anchor-adapter-web","dist-tags":{"latest":"3.4.1"},"versions":{"1.2.0":{"name":"@drakkar.software/anchor-adapter-web","version":"1.2.0","license":"MIT","_id":"@drakkar.software/anchor-adapter-web@1.2.0","maintainers":[{"name":"drakkarsoftware","email":"drakkar.software@protonmail.com"}],"homepage":"https://github.com/Drakkar-Software/Anchor#readme","bugs":{"url":"https://github.com/Drakkar-Software/Anchor/issues"},"dist":{"shasum":"7e08a27255286ba7adaabb3107b79431d7283de7","tarball":"https://registry.npmjs.org/@drakkar.software/anchor-adapter-web/-/anchor-adapter-web-1.2.0.tgz","fileCount":7,"integrity":"sha512-fipurPoNSIOpiGBdUd/FMy4n1QU4rT98sGxvZHU7Jq3LfU7lPFzd4xl6OrBTgL6yoRpGPkfl61C55pOjWoxzxg==","signatures":[{"sig":"MEQCIF45Bd0optiN0uZOcUipxts9LUaeryqrkR6G6Hk5hyOqAiBj+8UvMd6JMFf3vq4VKLMn/uuHgLw+IIBu9nXZSCfonQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37440},"main":"./dist/index.js","_from":"file:drakkar.software-anchor-adapter-web-1.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"drakkarsoftware","email":"drakkar.software@protonmail.com"},"_resolved":"/private/var/folders/fh/gdlxlc450tv5gmfshth92tn00000gn/T/86cfbd55a8f84e7f857b0ed8262921f0/drakkar.software-anchor-adapter-web-1.2.0.tgz","_integrity":"sha512-fipurPoNSIOpiGBdUd/FMy4n1QU4rT98sGxvZHU7Jq3LfU7lPFzd4xl6OrBTgL6yoRpGPkfl61C55pOjWoxzxg==","repository":{"url":"git+https://github.com/Drakkar-Software/Anchor.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.8.0","description":"Web platform adapters for Anchor (localStorage, IndexedDB)","directories":{},"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.7.0","@drakkar.software/anchor":"1.2.0"},"peerDependencies":{"@drakkar.software/anchor":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/anchor-adapter-web_1.2.0_1775637089689_0.07890674642268336","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@drakkar.software/anchor-adapter-web","version":"2.0.0","license":"MIT","_id":"@drakkar.software/anchor-adapter-web@2.0.0","maintainers":[{"name":"drakkarsoftware","email":"drakkar.software@protonmail.com"}],"homepage":"https://github.com/Drakkar-Software/Anchor#readme","bugs":{"url":"https://github.com/Drakkar-Software/Anchor/issues"},"dist":{"shasum":"445ed31c1528afe1d7de152c238e7bdb3d1d86c8","tarball":"https://registry.npmjs.org/@drakkar.software/anchor-adapter-web/-/anchor-adapter-web-2.0.0.tgz","fileCount":8,"integrity":"sha512-uR8DH+GMxZDKtEzF721B4CNB0644em54l76yGcmf7cFcYN1IGClGz7r9gn6OgBibU04TS+4qxOmck0v0pSZUlQ==","signatures":[{"sig":"MEYCIQC7qo4jSY2K5eGNaW9Am3eFjPNLJwFcJmA4aQhchbJrlwIhALlqC+ERslupUVfostJhEnhG7WhUdh6CWfg5limF9L9C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40796},"main":"./dist/index.js","_from":"file:drakkar.software-anchor-adapter-web-2.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"drakkarsoftware","email":"drakkar.software@protonmail.com"},"_resolved":"/private/var/folders/p3/00tjd9p12zvdhhq9w1ph2l6h0000gn/T/f7d1ff8bb0fa2907de436f1d3a6ca8f4/drakkar.software-anchor-adapter-web-2.0.0.tgz","_integrity":"sha512-uR8DH+GMxZDKtEzF721B4CNB0644em54l76yGcmf7cFcYN1IGClGz7r9gn6OgBibU04TS+4qxOmck0v0pSZUlQ==","repository":{"url":"git+https://github.com/Drakkar-Software/Anchor.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.17.0","description":"Web platform adapters for Anchor (localStorage, IndexedDB)","directories":{},"_nodeVersion":"24.10.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^6.0.3","@drakkar.software/anchor":"2.0.0"},"peerDependencies":{"@drakkar.software/anchor":">=2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/anchor-adapter-web_2.0.0_1786484763600_0.2869159459841992","host":"s3://npm-registry-packages-npm-production"}},"2.2.3":{"name":"@drakkar.software/anchor-adapter-web","version":"2.2.3","license":"MIT","_id":"@drakkar.software/anchor-adapter-web@2.2.3","maintainers":[{"name":"drakkarsoftware","email":"drakkar.software@protonmail.com"}],"homepage":"https://github.com/Drakkar-Software/Anchor#readme","bugs":{"url":"https://github.com/Drakkar-Software/Anchor/issues"},"dist":{"shasum":"c120eb20bb74ab989c5bcbcf89b420fa33b24053","tarball":"https://registry.npmjs.org/@drakkar.software/anchor-adapter-web/-/anchor-adapter-web-2.2.3.tgz","fileCount":8,"integrity":"sha512-2ldMtoz3JEk+zH0m9tLwO9RpAxWKK/kAHnWq81r/x3i/jF4J5bYepMhHQyj2B9JDmqt/JPx3ryDN2T+t3pnbLg==","signatures":[{"sig":"MEUCIBPlbL6fK7FRTXAlBkO4MBWmIMjgghuL4KJO81qACdbCAiEAuenQqFr8Z/ecVfrDOE9vegkSap5siNZlpjoWOwsGEr0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40796},"main":"./dist/index.js","_from":"file:drakkar.software-anchor-adapter-web-2.2.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"drakkarsoftware","email":"drakkar.software@protonmail.com"},"_resolved":"/private/var/folders/fh/gdlxlc450tv5gmfshth92tn00000gn/T/32718ad7c7106464fa125f8862651de8/drakkar.software-anchor-adapter-web-2.2.3.tgz","_integrity":"sha512-2ldMtoz3JEk+zH0m9tLwO9RpAxWKK/kAHnWq81r/x3i/jF4J5bYepMhHQyj2B9JDmqt/JPx3ryDN2T+t3pnbLg==","repository":{"url":"git+https://github.com/Drakkar-Software/Anchor.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.8.0","description":"Web platform adapters for Anchor (localStorage, IndexedDB)","directories":{},"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^6.0.3","@drakkar.software/anchor":"2.2.3"},"peerDependencies":{"@drakkar.software/anchor":">=2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/anchor-adapter-web_2.2.3_1786801161350_0.057497377049859466","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@drakkar.software/anchor-adapter-web","version":"3.0.0","license":"MIT","_id":"@drakkar.software/anchor-adapter-web@3.0.0","maintainers":[{"name":"drakkarsoftware","email":"drakkar.software@protonmail.com"}],"homepage":"https://github.com/Drakkar-Software/Anchor#readme","bugs":{"url":"https://github.com/Drakkar-Software/Anchor/issues"},"dist":{"shasum":"9b272e30430befba6a1e96dec384d61084506049","tarball":"https://registry.npmjs.org/@drakkar.software/anchor-adapter-web/-/anchor-adapter-web-3.0.0.tgz","fileCount":8,"integrity":"sha512-io+YWTLI9W5zrqPE+40FumPwfVLL7xfXAf0hjmv7ZK/wkCyQEY5wKFOHtsVLeN4bEEfuPrVvaUMgTiClYEtO9Q==","signatures":[{"sig":"MEUCIQCPi1a3H0TClTTyOaCsHfDiEpkpLDuyzcnnhaga+gXxOwIgferHNQlNZEK5K1CNCZ2GQ8yJ3Nwq1XPoDsDGzJ72i6k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40898},"main":"./dist/index.js","_from":"file:drakkar.software-anchor-adapter-web-3.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"drakkarsoftware","email":"drakkar.software@protonmail.com"},"_resolved":"/private/var/folders/fh/gdlxlc450tv5gmfshth92tn00000gn/T/d1e8a6329f381071dfdf57678ec16c93/drakkar.software-anchor-adapter-web-3.0.0.tgz","_integrity":"sha512-io+YWTLI9W5zrqPE+40FumPwfVLL7xfXAf0hjmv7ZK/wkCyQEY5wKFOHtsVLeN4bEEfuPrVvaUMgTiClYEtO9Q==","repository":{"url":"git+https://github.com/Drakkar-Software/Anchor.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.8.0","description":"Web platform adapters for Anchor (localStorage, IndexedDB)","directories":{},"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^30.0.1","vitest":"^4.1.9","typescript":"^6.0.3","@drakkar.software/anchor":"3.0.0"},"peerDependencies":{"@drakkar.software/anchor":">=3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/anchor-adapter-web_3.0.0_1786806310122_0.9927286904537","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@drakkar.software/anchor-adapter-web","version":"3.1.0","license":"MIT","_id":"@drakkar.software/anchor-adapter-web@3.1.0","maintainers":[{"name":"drakkarsoftware","email":"drakkar.software@protonmail.com"}],"homepage":"https://github.com/Drakkar-Software/Anchor#readme","bugs":{"url":"https://github.com/Drakkar-Software/Anchor/issues"},"dist":{"shasum":"33abacb63b6265a42912cef6566c09e4680cfcbb","tarball":"https://registry.npmjs.org/@drakkar.software/anchor-adapter-web/-/anchor-adapter-web-3.1.0.tgz","fileCount":8,"integrity":"sha512-gWWv6AGj19IdmeQPiIQs8UdbOrF6e4iNZqNL/cgn8+rKufUbUxqWi01ohOp7LyLv+VYXy2xo99W0c7ZmMHgJ5A==","signatures":[{"sig":"MEUCIH9QFwvttUZvY1Rf3BdA/LQ6kcRysYCopkyaw+OPEfY7AiEAz3hcju/vL65awVu4KRJAJQO2iP5DP4Nnt3AwfnNEdck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40898},"main":"./dist/index.js","_from":"file:drakkar.software-anchor-adapter-web-3.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"drakkarsoftware","email":"drakkar.software@protonmail.com"},"_resolved":"/private/var/folders/fh/gdlxlc450tv5gmfshth92tn00000gn/T/500f90b9a03f025e3efcc2f0b0bdd9cb/drakkar.software-anchor-adapter-web-3.1.0.tgz","_integrity":"sha512-gWWv6AGj19IdmeQPiIQs8UdbOrF6e4iNZqNL/cgn8+rKufUbUxqWi01ohOp7LyLv+VYXy2xo99W0c7ZmMHgJ5A==","repository":{"url":"git+https://github.com/Drakkar-Software/Anchor.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"11.8.0","description":"Web platform adapters for Anchor (localStorage, IndexedDB)","directories":{},"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^30.0.1","vitest":"^4.1.9","typescript":"^6.0.3","@drakkar.software/anchor":"3.1.0"},"peerDependencies":{"@drakkar.software/anchor":">=3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/anchor-adapter-web_3.1.0_1786893213424_0.05514991622694532","host":"s3://npm-registry-packages-npm-production"}},"3.4.1":{"_id":"@drakkar.software/anchor-adapter-web@3.4.1","bugs":{"url":"https://github.com/Drakkar-Software/Anchor/issues"},"dist":{"shasum":"f9554e0886506b209079bc8731ecbca77bf55717","tarball":"https://registry.npmjs.org/@drakkar.software/anchor-adapter-web/-/anchor-adapter-web-3.4.1.tgz","fileCount":8,"integrity":"sha512-jwz6AITD0wzKF3zlhm5GYDzAHuuCTtrcKqgX/ysDYrQZcYszcCQprEHG8IYizSpui5gcYdgpz7MxiU9fa3DD3A==","signatures":[{"sig":"MEQCIFtfnnW5S02b2WYemtbZJK97Meb0q4gK1t6lHobawB9eAiBxmxz+fO5UhlvQKEmHzoMZyaGLbWYAqA0/snBkcXVRcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIARyYV04QioWzU+iGxWmNi7KSAslejS5a3L5QTFuRqeTAiAZDkr+Gx2qpCezfktca2+o22ri+arZhfFABShzcaqN7Q=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@drakkar.software%2fanchor-adapter-web@3.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43816},"main":"./dist/index.js","name":"@drakkar.software/anchor-adapter-web","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"ded0b1dc14a21297d97afe30651e821e355e51b5","license":"MIT","scripts":{"dev":"tsup --watch","lint":"eslint --ext .ts,.tsx,.js,.cjs,.mjs .","test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"version":"3.4.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c25dc42d-fdb4-473f-88df-63d854119d9f"}},"homepage":"https://github.com/Drakkar-Software/Anchor#readme","repository":{"url":"git+https://github.com/Drakkar-Software/Anchor.git","type":"git","directory":"packages/adapter-web"},"_npmVersion":"12.0.2","description":"Web platform adapters for Anchor (localStorage, IndexedDB)","directories":{},"maintainers":[{"name":"drakkarsoftware","email":"drakkar.software@protonmail.com"}],"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^30.0.1","vitest":"^4.1.9","typescript":"^6.0.3","@drakkar.software/anchor":"workspace:*"},"peerDependencies":{"@drakkar.software/anchor":">=3.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/anchor-adapter-web_3.4.1_1789572049310_0.6490911308027689"}}},"time":{"created":"2026-04-08T08:31:29.538Z","modified":"2026-09-16T15:20:49.942Z","1.2.0":"2026-04-08T08:31:29.825Z","2.0.0":"2026-08-11T21:46:03.751Z","2.2.3":"2026-08-15T13:39:21.497Z","3.0.0":"2026-08-15T15:05:10.251Z","3.1.0":"2026-08-16T15:13:33.556Z","3.4.1":"2026-09-16T15:20:49.397Z"},"bugs":{"url":"https://github.com/Drakkar-Software/Anchor/issues"},"license":"MIT","homepage":"https://github.com/Drakkar-Software/Anchor#readme","repository":{"url":"git+https://github.com/Drakkar-Software/Anchor.git","type":"git","directory":"packages/adapter-web"},"description":"Web platform adapters for Anchor (localStorage, IndexedDB)","maintainers":[{"name":"drakkarsoftware","email":"drakkar.software@protonmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/Drakkar-Software/Anchor/main/logo.png\" alt=\"Anchor\" width=\"200\" />\n</p>\n\n<h1 align=\"center\">Anchor - Web Adapter</h1>\n\n<p align=\"center\">Web platform adapters for <a href=\"https://www.npmjs.com/package/@drakkar.software/anchor\">Anchor</a> (localStorage, IndexedDB, network & lifecycle detection).</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@drakkar.software/anchor-adapter-web\"><img src=\"https://img.shields.io/npm/v/@drakkar.software/anchor-adapter-web\" alt=\"npm\" /></a>\n  <a href=\"https://github.com/Drakkar-Software/Anchor/blob/main/LICENSE\"><img src=\"https://img.shields.io/npm/l/@drakkar.software/anchor-adapter-web\" alt=\"license\" /></a>\n</p>\n\n## Installation\n\n```bash\nnpm install @drakkar.software/anchor @drakkar.software/anchor-adapter-web zustand @supabase/supabase-js\n```\n\n## Adapters\n\n### `LocalStorageAdapter`\n\nPersistence adapter backed by `localStorage`. Best for small datasets (<5 MB).\n\n```typescript\nimport { LocalStorageAdapter } from '@drakkar.software/anchor-adapter-web'\n\ncreateSupabaseStores({\n  persistence: { adapter: new LocalStorageAdapter() },\n})\n```\n\n### `IndexedDBAdapter`\n\nPersistence adapter backed by IndexedDB. Recommended for larger datasets.\n\n```typescript\nimport { IndexedDBAdapter } from '@drakkar.software/anchor-adapter-web'\n\ncreateSupabaseStores({\n  persistence: { adapter: new IndexedDBAdapter() },\n})\n```\n\n### `WebNetworkStatus`\n\nDetects online/offline state using `navigator.onLine` and network events. Enables automatic offline queue flush on reconnect.\n\n```typescript\nimport { WebNetworkStatus } from '@drakkar.software/anchor-adapter-web'\n\ncreateSupabaseStores({\n  network: new WebNetworkStatus(),\n})\n```\n\n### `WebAppLifecycle`\n\nDetects foreground/background transitions using the Page Visibility API. Enables auto-revalidation and queue flush when the app returns to the foreground.\n\n```typescript\nimport { WebAppLifecycle } from '@drakkar.software/anchor-adapter-web'\nimport { setupAppLifecycle } from '@drakkar.software/anchor'\n\nsetupAppLifecycle({\n  adapter: new WebAppLifecycle(),\n  stores: [stores.todos, stores.profiles],\n})\n```\n\n## Full Example\n\n```typescript\nimport { createClient } from '@supabase/supabase-js'\nimport { createSupabaseStores } from '@drakkar.software/anchor'\nimport { LocalStorageAdapter, WebNetworkStatus } from '@drakkar.software/anchor-adapter-web'\nimport type { Database } from './database.types'\n\n// SUPABASE_PUBLISHABLE_KEY: sb_publishable_... (new format) or the legacy anon key\nconst supabase = createClient<Database>(SUPABASE_URL, SUPABASE_PUBLISHABLE_KEY)\n\nconst stores = createSupabaseStores<Database>({\n  supabase,\n  tables: ['todos', 'profiles'],\n  persistence: { adapter: new LocalStorageAdapter() },\n  network: new WebNetworkStatus(),\n  realtime: { enabled: true },\n})\n```\n\n## Related Packages\n\n| Package | Description |\n|---------|-------------|\n| [`@drakkar.software/anchor`](https://www.npmjs.com/package/@drakkar.software/anchor) | Core library |\n| [`@drakkar.software/anchor-adapter-react-native`](https://www.npmjs.com/package/@drakkar.software/anchor-adapter-react-native) | React Native adapters |\n\n## Documentation\n\nFull documentation: [github.com/Drakkar-Software/Anchor](https://github.com/Drakkar-Software/Anchor)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}