{"_id":"@aegis-v/browser","_rev":"2-463def83c4e518c8eeb3c0057273ef37","name":"@aegis-v/browser","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@aegis-v/browser","version":"0.1.0","keywords":["authorization","permissions","wasm","browser","offline","indexeddb","rebac"],"author":{"name":"Aegis Authors"},"license":"MIT","_id":"@aegis-v/browser@0.1.0","maintainers":[{"name":"parv_68","email":"parvruhil68@gmail.com"}],"homepage":"https://github.com/aegis-auth/aegis/packages/aegis-browser","bugs":{"url":"https://github.com/aegis-auth/aegis/issues"},"dist":{"shasum":"8beb6a104cb715b1e61ad14528a33d7092d49f0d","tarball":"https://registry.npmjs.org/@aegis-v/browser/-/browser-0.1.0.tgz","fileCount":14,"integrity":"sha512-i0M0KHGaYO1k7tW652+QpEP1mEefEJ/20rvalU0HgEfNGzGM1KRIleAUMqVNMEHf8lUUlHxrdbN1KIYKqvfRaw==","signatures":[{"sig":"MEYCIQCzMgmxqxHGaeQuqwOzTiIZFMUATxsVtJKGMPZuQuNZeAIhAJrT42KwJPsXjIBpBl8JZs74F5GOp4AwiuuybmCkZstu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79625},"main":"dist/index.js","types":"dist/index.d.ts","browser":{"./pkg/aegis_browser.js":"./pkg/aegis_browser.js","./pkg/aegis_browser_bg.wasm":"./pkg/aegis_browser_bg.wasm"},"gitHead":"308d5e14b91cef41f01788b0eee820c13d894da1","scripts":{"test":"wasm-pack test --chrome --headless","build":"npm run build:rust && npm run build:ts","build:ts":"tsc","optimize":"wasm-opt -Oz -o pkg/aegis_browser_bg.wasm pkg/aegis_browser_bg.wasm || echo \"wasm-opt not available, skipping\"","build:rust":"cd rust && wasm-pack build --target web --out-dir ../pkg && cd ..","prepublishOnly":"npm run build && npm run optimize"},"_npmUser":{"name":"parv_68","email":"parvruhil68@gmail.com"},"repository":{"url":"git+https://github.com/aegis-auth/aegis.git","type":"git"},"_npmVersion":"11.12.1","description":"Aegis authorization engine for browser — check, write, delete permissions with full offline support","directories":{},"_nodeVersion":"25.9.0","dependencies":{"typescript":"^6.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/browser_0.1.0_1781887745087_0.0912693650870573","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aegis-v/browser","version":"0.2.0","description":"Aegis authorization engine for browser — check, write, delete permissions with full offline support","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/ParvLab/AEGIS.git"},"homepage":"https://github.com/ParvLab/AEGIS/packages/aegis-browser","author":{"name":"Aegis Authors"},"scripts":{"build:rust":"cd rust && wasm-pack build --target web --out-dir ../pkg && cd ..","build:ts":"tsc","build":"npm run build:rust && npm run build:ts","optimize":"wasm-opt -Oz -o pkg/aegis_browser_bg.wasm pkg/aegis_browser_bg.wasm || echo \"wasm-opt not available, skipping\"","test":"wasm-pack test --chrome --headless","prepublishOnly":"npm run build && npm run optimize && node -e \"const fs = require('fs'); if (fs.existsSync('pkg/.gitignore')) fs.unlinkSync('pkg/.gitignore')\""},"browser":{"./pkg/aegis_browser.js":"./pkg/aegis_browser.js","./pkg/aegis_browser_bg.wasm":"./pkg/aegis_browser_bg.wasm"},"keywords":["authorization","permissions","wasm","browser","offline","indexeddb","rebac"],"license":"MIT","dependencies":{"typescript":"^6.0.3"},"gitHead":"77da3a0f75297cef1c188e4837a911981b48790a","_id":"@aegis-v/browser@0.2.0","bugs":{"url":"https://github.com/ParvLab/AEGIS/issues"},"_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-5RGw2nAQqa/E92STqedgQ13bEuSbbwyUdgGEPo0FYFOox731vRNaGBnVPUYOzODPFO0AgBpmYFc4Ye3pTwiPLg==","shasum":"d557d5c695b49462085e52020a01118fa21fea9b","tarball":"https://registry.npmjs.org/@aegis-v/browser/-/browser-0.2.0.tgz","fileCount":19,"unpackedSize":829687,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFsiAbGBlyUzQ83h55YElf+2nspcvnNbUghQh5JJXdVYAiAuTVo1AAr0PAKgOgBo8FGVchUIFW0qHf5qXsl/RbI8fQ=="}]},"_npmUser":{"name":"parv_68","email":"parvruhil68@gmail.com"},"directories":{},"maintainers":[{"name":"parv_68","email":"parvruhil68@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/browser_0.2.0_1782204427453_0.576314268698829"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-19T16:49:04.938Z","modified":"2026-06-23T08:47:07.718Z","0.1.0":"2026-06-19T16:49:05.249Z","0.2.0":"2026-06-23T08:47:07.604Z"},"bugs":{"url":"https://github.com/ParvLab/AEGIS/issues"},"author":{"name":"Aegis Authors"},"license":"MIT","homepage":"https://github.com/ParvLab/AEGIS/packages/aegis-browser","keywords":["authorization","permissions","wasm","browser","offline","indexeddb","rebac"],"repository":{"type":"git","url":"git+https://github.com/ParvLab/AEGIS.git"},"description":"Aegis authorization engine for browser — check, write, delete permissions with full offline support","maintainers":[{"name":"parv_68","email":"parvruhil68@gmail.com"}],"readme":"# @aegis-v/browser\n\nAegis authorization engine compiled to WASM for browser environments.\nCheck permissions, write/delete relations, and export/import data — all offline.\n\n## Install\n\n```bash\nnpm install @aegis-v/browser\n```\n\n## Quick Example\n\n```typescript\nimport init, * as wasm from '@aegis-v/browser/pkg/aegis_browser.js';\n\nconst schema = JSON.stringify({\n  namespaces: [{ name: \"doc\", relations: { owner: {}, writer: { union: [\"owner\"] }, reader: { union: [\"writer\"] } } }]\n});\n\nawait init();\nwasm.init_sync(schema, true);\nwasm.write_relation(\"user:alice\", \"reader\", \"doc:report\");\nconst allowed = wasm.check(\"user:alice\", \"read\", \"doc:report\"); // true\n```\n\n## Features\n\n- **Offline-first**: All data persists in IndexedDB. Service worker precaches WASM.\n- **ReBAC-native**: Supports ReBAC, RBAC, ACL, ABAC from the same engine.\n- **Web Worker**: Offload check/write to a dedicated thread (non-blocking UI).\n- **Small bundle**: ~155 KB gzipped.\n\n## API\n\n| Function | Description |\n|----------|-------------|\n| `init_sync(schema, inMemory)` | Initialize sync engine (InMemoryStorage) |\n| `init_async(schema)` | Initialize async engine (IndexedDbStorage) |\n| `check(subject, permission, resource)` | Check permission → `boolean` |\n| `write_relation(subject, relation, resource)` | Add tuple → revision string |\n| `delete_relation(subject, relation, resource)` | Remove tuple → revision string |\n| `list_by_object(resource)` | List tuples for object → JSON string |\n| `list_by_subject(subject)` | List tuples for subject → JSON string |\n| `export_json()` | Export all tuples → JSON string |\n| `import_json(json)` | Import tuples from JSON string |\n\n## Docs\n\n- [Architecture](docs/architecture.md)\n- [Getting Started Guide](docs/guide.md)\n- [Unsupported Features](docs/unsupported.md)\n- [Runtime Contract](docs/runtime.md)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}