{"_id":"najm-auth","_rev":"97-cb5a1cfccbe481a290be8501c7b6685e","name":"najm-auth","dist-tags":{"latest":"4.2.3"},"versions":{"1.1.1":{"name":"najm-auth","version":"1.1.1","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.1","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"e5f6ac46b923c855ab86b4381e66eeefbdc6fbac","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.1.tgz","fileCount":9,"integrity":"sha512-HHWzVzgFeo1bwZ4ng5W+BxVkKIUKiijHj5czuTo2jxEZ3oOrrUDB4ynuuud4ld4hBnKzh3CMYnD0EFBt7ZsjBA==","signatures":[{"sig":"MEQCIF7JaA09vLsgD/t4oh8G8ukORRcuvwLuNhYHz18z0V8pAiAa9GkWyIlO82siCmPVoVxS1cl6OGgy9Wh2wcGttOvXdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315988},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ff17c418ccaceffdda6181af86f0e38b5ffe4127","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.3","postgres":"^3.4.7","najm-core":"^1.1.1","najm-i18n":"^1.1.1","najm-rate":"^1.1.1","jwt-decode":"^4.0.0","najm-cache":"^1.1.1","najm-email":"^1.1.1","najm-guard":"^1.1.1","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.1","najm-database":"^1.1.1","lodash.isempty":"^4.4.0","najm-validation":"^1.1.1","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/bcryptjs":"^3.0.0","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","drizzle-orm":"^0.45.1"},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.1_1771633254828_0.6861232568183109","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"najm-auth","version":"1.1.2","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.2","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"16fed22b506b09b6c32d3689c714e346aaf99e45","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.2.tgz","fileCount":5,"integrity":"sha512-EITFCMiEXvEbwe+Rcfrcw1ELakvLRRJhSq6jVlYlNddWb0mKou7iZJD4hw6h60c5VU95JzPTFsR4rrSBdOAfPw==","signatures":[{"sig":"MEQCIE25htHZIXGyv+TgjZizwTM9cCiuglDm8djph0ExR5bEAiB24avFHAMG+gLtXkjLkuJUkaZy6m0LxsP5EXeG+xgDIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130196},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"1d826a069087ac4ebf9e8635f49c9c472168a604","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.3","postgres":"^3.4.7","najm-core":"^1.1.1","najm-i18n":"^1.1.1","najm-rate":"^1.1.1","jwt-decode":"^4.0.0","najm-cache":"^1.1.1","najm-email":"^1.1.1","najm-guard":"^1.1.1","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.1","najm-database":"^1.1.2","lodash.isempty":"^4.4.0","najm-validation":"^1.1.1","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/bcryptjs":"^3.0.0","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","drizzle-orm":"^0.45.1"},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.2_1772882119630_0.4554569712390053","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"najm-auth","version":"1.1.3","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.3","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"bcff5881718aa77c5f4e78c8f734ec3dfd113e8b","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.3.tgz","fileCount":9,"integrity":"sha512-gb+o0XjwJJ+p0F43H+/16qqU3ijzEDEpdmoQkyGaO/Wc+a2ERhJRzBVQM2mi5fl85L6MDNO57ljtk4Ne1hgWZQ==","signatures":[{"sig":"MEUCIDIHLSHWwTzivFFOYDFMhGg3ZHPZAbCOM3RLJuKtD9m3AiEA/QC5k/7gLjcw1471TXo/l6efX9ZSPegbqLFF48ifrNg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329843},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.3","postgres":"^3.4.7","najm-core":"^1.1.1","najm-i18n":"^1.1.1","najm-rate":"^1.1.1","jwt-decode":"^4.0.0","najm-cache":"^1.1.1","najm-email":"^1.1.1","najm-guard":"^1.1.1","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.1","najm-database":"^1.1.2","lodash.isempty":"^4.4.0","najm-validation":"^1.1.1","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/bcryptjs":"^3.0.0","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","drizzle-orm":"^0.45.1"},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.3_1773437331300_0.8273943120493445","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"najm-auth","version":"1.1.4","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.4","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"bada7f41811a90ad964539a0e3ebf5feee550131","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.4.tgz","fileCount":9,"integrity":"sha512-bkI6qFvNcNIfCepni869pzhgDFIpG2r5R/DrdpG2eX8RKRCKlk8WeruO3E+Mt9OWz/k7piirg0oVoJi6XuglWw==","signatures":[{"sig":"MEUCIGeppjHpM3PpRtcXp4bm9U/oMKGCy76J8yzmZ+6uu0ifAiEAt8O+UeMXteew9fFyeM0UDSTt0/k7U6L8enGNl9jzg9M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333985},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.3","postgres":"^3.4.7","najm-core":"workspace:*","najm-i18n":"workspace:*","najm-rate":"workspace:*","jwt-decode":"^4.0.0","najm-cache":"workspace:*","najm-email":"workspace:*","najm-guard":"workspace:*","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"workspace:*","najm-database":"workspace:*","lodash.isempty":"^4.4.0","najm-validation":"workspace:*","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/bcryptjs":"^3.0.0","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","drizzle-orm":"^0.45.1"},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.4_1773481298708_0.200595489562164","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"najm-auth","version":"1.1.5","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.5","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"2efe84704490847f3f997a0feee2341a9936c240","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.5.tgz","fileCount":10,"integrity":"sha512-4FPxH3AXqDsWD64T8zDT+tttI1zR9CSik0GjhXy2Hv6jg4p+Ffxa3lhTFlICHi0x8jg+ASZR0TaWFOGfV+BE5Q==","signatures":[{"sig":"MEYCIQDgVDIfqPhYDtiOHLOa01OOzFBmYcfwUi1rimb0tiTfXAIhAL6g2/tX5h7eX0X8Yu1toVFh/fnduEdtFU8VpxLZNHPh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":362044},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.3","postgres":"^3.4.7","najm-core":"workspace:*","najm-i18n":"workspace:*","najm-rate":"workspace:*","jwt-decode":"^4.0.0","najm-cache":"workspace:*","najm-email":"workspace:*","najm-guard":"workspace:*","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"workspace:*","najm-database":"workspace:*","lodash.isempty":"^4.4.0","najm-validation":"workspace:*","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/bcryptjs":"^3.0.0","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","drizzle-orm":"^0.45.1"},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.5_1773695267666_0.27851810597597204","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"najm-auth","version":"1.1.6","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.6","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"1eeb638092b8bad8e37d1725b313ac033b3c12e4","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.6.tgz","fileCount":10,"integrity":"sha512-uVRAVbJ8sXzBtZQHHLFkfttLVEGI5lDRQs36k/NT+cMJ1SuhKBVqZkL/kP7opMwjgxLxqXiml9R7zLYM7B8hwg==","signatures":[{"sig":"MEYCIQCZVSoi15QFMGiIidSytH4RjCjzJn5sdgCdg9uJAubk7wIhAMVleqRtt5YwsQq3qbXMwM5RbaQsrKV8gbs+uZzYSz5d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":361909},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.3","postgres":"^3.4.7","najm-core":"^1.1.1","najm-i18n":"^1.1.1","najm-rate":"^1.1.1","jwt-decode":"^4.0.0","najm-cache":"^1.1.1","najm-email":"^1.1.1","najm-guard":"^1.1.1","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.1","najm-database":"^1.1.2","lodash.isempty":"^4.4.0","najm-validation":"^1.1.1","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/bcryptjs":"^3.0.0","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","drizzle-orm":"^0.45.1"},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.6_1773701049732_0.29953787581072056","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"najm-auth","version":"1.1.7","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.7","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"d0f173d45b3d80a3a9466a1003976f13c4ad1d79","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.7.tgz","fileCount":10,"integrity":"sha512-pZCenXOvo6L8oZHRk1h36JVphYMIPam/Vqu4W4Nq9wA6oYbTDsBxxQBXFoMuhTUHy21lCqlc91+HXDAwmHcoDQ==","signatures":[{"sig":"MEQCIHza0IhIyEffqvBMQYrdjmLlpfNzOGoXvCY/eWtATegFAiBuWiypOV2zMAboy7riqXLq0htzErz6MZMhSIr3FXcslA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363980},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.3","postgres":"^3.4.7","najm-core":"^1.1.1","najm-i18n":"^1.1.1","najm-rate":"^1.1.1","jwt-decode":"^4.0.0","najm-cache":"^1.1.1","najm-email":"^1.1.1","najm-guard":"^1.1.1","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.1","najm-database":"^1.1.2","lodash.isempty":"^4.4.0","najm-validation":"^1.1.1","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/bcryptjs":"^3.0.0","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","drizzle-orm":"^0.45.1"},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.7_1773793241585_0.38987752415933485","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"najm-auth","version":"1.1.8","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.8","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"29a5768723fc561e88ac5883b96743972b08e8fc","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.8.tgz","fileCount":10,"integrity":"sha512-9x3qAn4QT9/gHkJHLkCygQltc5xjhygHFxWhgkAyRXyLhNFMjnx4hG+Br3TM3OnMGOimrolS2gj1cBuZ6nTgMQ==","signatures":[{"sig":"MEYCIQDfpMHTklq1TwuYDNVKj/3c/hU7Gq4CWPEV3OkYcmJvYgIhANVIFzgKOxS0xjKPlwUqL8Rs8p806crAqY79sVPK7LX8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366726},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.3","postgres":"^3.4.7","najm-core":"^1.1.2","najm-i18n":"^1.1.2","najm-rate":"^1.1.2","jwt-decode":"^4.0.0","najm-cache":"^1.1.2","najm-email":"^1.1.2","najm-guard":"^1.1.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.2","najm-database":"^1.1.3","lodash.isempty":"^4.4.0","najm-validation":"^1.1.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/bcryptjs":"^3.0.0","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","drizzle-orm":"^0.45.1"},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.8_1775244060946_0.909742917785934","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"najm-auth","version":"1.1.9","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.9","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"4386d0e5598b77d4d4a5ba3b47ed22757203e8f3","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.9.tgz","fileCount":10,"integrity":"sha512-e0vvHylebfBC2mYGvWtSAI+HtECaTYJSwL/0Jez7beTR8hWDRQvYNSLI2rdYGcMYZbIuzvrpIKpfMAwSV5w9lA==","signatures":[{"sig":"MEUCIF9vmnPZvF+9GCy+Q+2rywZkVrJ/1RhGchTCjeE//Uz8AiEAk3c98Ydyo2wesH/Bh67pONOKSXEwFSIO4rUQqKzPOeM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366740},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.3","postgres":"^3.4.7","najm-core":"^1.1.3","najm-i18n":"^1.1.3","najm-rate":"^1.1.3","jwt-decode":"^4.0.0","najm-cache":"^1.1.3","najm-email":"^1.1.3","najm-guard":"^1.1.3","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.3","najm-database":"^1.1.4","lodash.isempty":"^4.4.0","najm-validation":"^1.1.3","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/bcryptjs":"^3.0.0","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","drizzle-orm":"^0.45.1"},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.9_1775245083679_0.31424709882028656","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"najm-auth","version":"1.1.10","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.10","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"117fbfd0a9f4cdd335eda50f51fa7b94d68c4f7d","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.10.tgz","fileCount":10,"integrity":"sha512-rESiSfnRppV/9Ja11AvIjd9wPTGfTSxuoAvlhlOO2VLhjh8csLmcq7vHmyHR4NgJVi6C4cbjyRif/QIozXCZPw==","signatures":[{"sig":"MEUCIQCf1eMdb5OTvIPj7gLuNMBoK349QNUm6/GLTsBSIqpc8wIgMVYTxfL27De627wOtovvRx5F8AihOMBchi2edR3K8TY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":367955},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.3","postgres":"^3.4.7","najm-core":"^1.1.4","najm-i18n":"^1.1.3","najm-rate":"^1.1.3","jwt-decode":"^4.0.0","najm-cache":"^1.1.3","najm-email":"^1.1.3","najm-guard":"^1.1.3","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.3","najm-database":"^1.1.4","lodash.isempty":"^4.4.0","najm-validation":"^1.1.3","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/bcryptjs":"^3.0.0","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","drizzle-orm":"^0.45.1"},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.10_1775248770707_0.1909197040267323","host":"s3://npm-registry-packages-npm-production"}},"1.1.11":{"name":"najm-auth","version":"1.1.11","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.11","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"c65f59e15a2f18182fae739da400d9d0ec44f554","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.11.tgz","fileCount":10,"integrity":"sha512-P939H2TKoevMilOFpCpcu8ieicHa/5jUk6osoof83oaRUdKbpf5M+w4Ksvl6OEvwEFv/rPq5Ms/SsG4t1DOr3A==","signatures":[{"sig":"MEYCIQCmk+O5rtbE31C8Nckg8vqjBmSxg6Ra6dmeekSMimQ/YAIhAINFb/B8fx8Q49g4ReZx45Jk1oqyVUpd/D7Nae8u+X4L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363098},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.3","postgres":"^3.4.7","najm-core":"workspace:*","najm-i18n":"workspace:*","najm-rate":"workspace:*","jwt-decode":"^4.0.0","najm-cache":"workspace:*","najm-email":"workspace:*","najm-guard":"workspace:*","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"workspace:*","najm-database":"workspace:*","lodash.isempty":"^4.4.0","najm-validation":"workspace:*","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/bcryptjs":"^3.0.0","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","drizzle-orm":"^0.45.1"},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.11_1775277846838_0.6398194496100422","host":"s3://npm-registry-packages-npm-production"}},"1.1.12":{"name":"najm-auth","version":"1.1.12","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.12","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"e12943a7b1b9d1011cd87eb2fedc3819f2b6692c","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.12.tgz","fileCount":10,"integrity":"sha512-VkvYdM7MKK2LMbfXD/53QnJ+E5JMEXbSHgzUCzLcUKEFOo4d5sGeH8PHAIhyDg+JifPMvEW8QDHxbypPVwU9Kw==","signatures":[{"sig":"MEUCIQD0yp/XJOQlWMLT2grKxtFM13LeRYq5r+Je9AJGhZr3cwIgDz2PNUbXqEnvLX4WwCaL6BQBzKm+VCbGh7q//VCt6YA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363525},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.3","postgres":"^3.4.7","najm-core":"workspace:*","najm-i18n":"workspace:*","najm-rate":"workspace:*","jwt-decode":"^4.0.0","najm-cache":"workspace:*","najm-email":"workspace:*","najm-guard":"workspace:*","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"workspace:*","najm-database":"workspace:*","lodash.isempty":"^4.4.0","najm-validation":"workspace:*","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/bcryptjs":"^3.0.0","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","drizzle-orm":"^0.45.1"},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.12_1775470617918_0.40197284684871826","host":"s3://npm-registry-packages-npm-production"}},"1.1.13":{"name":"najm-auth","version":"1.1.13","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.13","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"5ff8918e1f0edee8b1ad40054b4860495786c4c9","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.13.tgz","fileCount":10,"integrity":"sha512-xJYsdj3WFOBjVp2vocQ1AS3LkQPcCJbcekTMa+0+SpxR/jyYyLg1Xj9bMA4EJRwSTnkBYVdnfAbti/XgMKDwNQ==","signatures":[{"sig":"MEYCIQCzADtCVZA1FmYg+2Advqh2zaiikNrSoK3pPdevRYWpgQIhAMXWRMdVfCv43Ul/KAU8U7LAZZCWHDfM2V+BmxOinaWe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363394},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"0bd9ab17b7bf83a50b90235289906d5c1f40cbd3","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.3","postgres":"^3.4.7","najm-core":"^1.2.1","najm-i18n":"^1.1.4","najm-rate":"^1.1.4","jwt-decode":"^4.0.0","najm-cache":"^1.2.1","najm-email":"^1.1.4","najm-guard":"^1.1.4","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.4","najm-database":"^1.1.5","lodash.isempty":"^4.4.0","najm-validation":"^1.1.4","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/bcryptjs":"^3.0.0","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","drizzle-orm":"^0.45.1"},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.13_1775480518663_0.455213307646807","host":"s3://npm-registry-packages-npm-production"}},"1.1.14":{"name":"najm-auth","version":"1.1.14","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.14","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"38039053ad431050eddf85f0592724440cc80847","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.14.tgz","fileCount":10,"integrity":"sha512-Dt1PazutWFL4oyIFdGBLIl8c81DYuKj4WVF+WRcBLb2Lvnn4vkbD7RJLBmgOvBLsJ7i6WuLSnDmM85JBCtDZVA==","signatures":[{"sig":"MEQCICsjpmdaSJcJWCqSmUwEPWO5k3ba/pHTx8HrhBUDTqqNAiAsbIkH+oonEf5xNNQ6cYRVeTRCYfsn0hsrh+gELfBP+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363455},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.3","postgres":"^3.4.7","najm-core":"^1.2.2","najm-i18n":"^1.1.5","najm-rate":"^1.1.5","jwt-decode":"^4.0.0","najm-cache":"^1.2.2","najm-email":"^1.1.5","najm-guard":"^1.1.5","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.5","najm-database":"^1.1.6","lodash.isempty":"^4.4.0","najm-validation":"^1.1.6","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/bcryptjs":"^3.0.0","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","drizzle-orm":"^0.45.1"},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.14_1775505829759_0.2331226955491681","host":"s3://npm-registry-packages-npm-production"}},"1.1.15":{"name":"najm-auth","version":"1.1.15","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.15","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"204ee921e013204ff4e87619a73b2feb29224e0d","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.15.tgz","fileCount":18,"integrity":"sha512-KntWnR0g6LEISwN/QYrVmmUc9sy+bcf/UOLomPvmpm+ck4kMBzJs/6UKvWEnTOty7KQ/BOQUVmCpbh6xJJ+GMg==","signatures":[{"sig":"MEYCIQDa66JtdswV7z7jDNjKjOdm5ENjCA7bBCOGkqmeGqRf1wIhAOp+BvmegRx4NcT1A/48HTP2a4wUHgW2P0FXmSe78Bj3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":439750},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","postgres":"^3.4.7","najm-core":"^1.2.3","najm-i18n":"^1.1.6","najm-rate":"^1.1.6","najm-cache":"^1.2.3","najm-email":"^1.1.6","najm-guard":"^1.1.6","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.6","najm-database":"^1.1.7","lodash.isempty":"^4.4.0","najm-validation":"^1.1.7","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.15_1775680929722_0.18021910857313306","host":"s3://npm-registry-packages-npm-production"}},"1.1.16":{"name":"najm-auth","version":"1.1.16","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.16","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"291717cbaf9dcf9f684b1539be4d7ab63aa6c0ae","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.16.tgz","fileCount":18,"integrity":"sha512-EgsoZRrJLWYQ+Kq4UW50vhy3Bgc0q3qd6A9WLbqXyKGFctS+93oftaEy2lHL/y5Iak+/QZUzCU0XKBpst3vyqg==","signatures":[{"sig":"MEUCIQCsdF/sncXHlKiX8TP2QlLMJ+nThPAmlMLvSfIyr7ssYwIgf9k+nWQ7GNXBB0nc56ooR4GWRnRp8Uwcmd2Ge2p+17k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473680},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.3","najm-i18n":"^1.1.6","najm-rate":"^1.1.6","najm-cache":"^1.2.3","najm-email":"^1.1.6","najm-guard":"^1.1.6","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.6","najm-database":"^1.1.7","lodash.isempty":"^4.4.0","najm-validation":"^1.1.7","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.16_1775766425266_0.763718374742165","host":"s3://npm-registry-packages-npm-production"}},"1.1.17":{"name":"najm-auth","version":"1.1.17","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.17","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"0663a94deaf47c1f357bee60e8d2b1661a3de603","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.17.tgz","fileCount":18,"integrity":"sha512-KFSoO8wt97nyrsK82CMNKO/sQ/TkjVNkTYOwzAuWuVay28g5tVovTYAqu0l+hQR1pG8FoHx2joluqbP+dhwybw==","signatures":[{"sig":"MEUCIGPK+dgcuBREsbOMFIXmuf1FvzkzzXZo4yYMoKChWfExAiEA+UHa5rH3LYc4uSGAV6RhKJbF5IkN/9enDbI5acb8qDQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473674},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.3","najm-i18n":"^1.1.6","najm-rate":"^1.1.6","najm-cache":"^1.2.3","najm-email":"^1.1.6","najm-guard":"^1.1.6","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.6","najm-database":"^1.1.7","lodash.isempty":"^4.4.0","najm-validation":"^1.1.7","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.17_1775771216353_0.8275728749314648","host":"s3://npm-registry-packages-npm-production"}},"1.1.19":{"name":"najm-auth","version":"1.1.19","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.19","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"30aa8b3a869f485cf3681204f5895ed58ae95236","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.19.tgz","fileCount":18,"integrity":"sha512-lHdpQSa+9S/LfOm/6QC7yU1jH9Zu2RNRjkd8rfPn7PKKL3UsRoI1W52XbPRHolwf60QN4Cmzu9ctlVfLwrS1dw==","signatures":[{"sig":"MEUCIQD20mxAeLVXUASLXYJM5yN3JfOM/PNZJYkZ+A+Mqt/KUQIgGm5tfoxnjjMERFURIj+iLHdHWaz+gzVR85DNWwA3bwc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475247},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.3","najm-i18n":"^1.1.6","najm-rate":"^1.1.6","najm-cache":"^1.2.3","najm-email":"^1.1.6","najm-guard":"^1.1.6","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.6","najm-database":"^1.1.7","lodash.isempty":"^4.4.0","najm-validation":"^1.1.7","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.19_1775777206451_0.005557536304266808","host":"s3://npm-registry-packages-npm-production"}},"1.1.20":{"name":"najm-auth","version":"1.1.20","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.20","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"10d5fea28210ffeff1cb4c866491f94e5dc2b663","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.20.tgz","fileCount":18,"integrity":"sha512-qa0ZFbcV1BC9S3jNoU41iQM0UsyM1qT1z7IX1e9my7t7BDiJxhGqELkDtN31zvtcqWHCL6IhxZlNtW173kRWpQ==","signatures":[{"sig":"MEUCIFA5hO92qnQq0w5vQyqUYSTgtct54qo0hOVw9Ogx2ZemAiEAy9Qn6ZikqPPgZ0fL+r05tJnm/5OC5wHUp+YncYLl6V0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475506},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.3","najm-i18n":"^1.1.6","najm-rate":"^1.1.6","najm-cache":"^1.2.3","najm-email":"^1.1.6","najm-guard":"^1.1.6","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.6","najm-database":"^1.1.7","lodash.isempty":"^4.4.0","najm-validation":"^1.1.7","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.20_1775777758823_0.5570060482062942","host":"s3://npm-registry-packages-npm-production"}},"1.1.21":{"name":"najm-auth","version":"1.1.21","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.21","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"440c3af46daa67973aa7456e3db9b29ea075f0de","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.21.tgz","fileCount":18,"integrity":"sha512-/wR4vOSgUR3PFn21vmeOaqUmVZ3Ka6xyiYAJ3piT7n+jJHwfqNXHZKSj0vwSe4YOGsxaeDeEuZD5uPGMTXBocg==","signatures":[{"sig":"MEYCIQCiNLWb+AtGAVfhU7VwqEeHMzg2STI+OfhiY/u0OHiZ9wIhAOqEeyHhJhoTXHkIhWVq0PtGz2PuYNSpx5NCkuzIktR3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":498942},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.3","najm-i18n":"^1.1.6","najm-rate":"^1.1.6","najm-cache":"^1.2.3","najm-email":"^1.1.6","najm-guard":"^1.1.6","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.6","najm-database":"^1.1.7","lodash.isempty":"^4.4.0","najm-validation":"^1.1.7","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.21_1775862272861_0.33487755449895706","host":"s3://npm-registry-packages-npm-production"}},"1.1.23":{"name":"najm-auth","version":"1.1.23","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.23","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"3f6b6fb8da960213ad9ce23572c29332ebd3bbc1","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.23.tgz","fileCount":18,"integrity":"sha512-kcxKfxV/OiGoT+4M9WJ2OIa4EAdjE7rO+eSMYqptkVweM0nSN0LnzCF5m0LVtYsh0/GpHQLmgXpgUgAic2nHdw==","signatures":[{"sig":"MEYCIQDt7yzXZ5L9r1c1MyBxOSg5I+/BRY9wMR78mGhQzgHJfAIhALUx60RWwRm9c+Jtuqix1pW8qZUWEnZhjrsl4xMGLI0I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":498942},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.3","najm-i18n":"^1.1.6","najm-rate":"^1.1.6","najm-cache":"^1.2.3","najm-email":"^1.1.6","najm-guard":"^1.1.6","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.6","najm-database":"^1.1.7","lodash.isempty":"^4.4.0","najm-validation":"^1.1.7","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.23_1775867072723_0.6563608029124648","host":"s3://npm-registry-packages-npm-production"}},"1.1.24":{"name":"najm-auth","version":"1.1.24","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.24","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"2a5c5ff9631809001082b01da51d815c307d6a2e","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.24.tgz","fileCount":17,"integrity":"sha512-qTJ9Y+zeOYbKBARdvu7jXDCyxTTj3a9BWekvNzYxDyBXzjffblU2vIxeqNTzhGyaSvPFeZ8S5moRqcrV/uL1tw==","signatures":[{"sig":"MEUCIBXyguK+LviYzMpwANWRivw9+GlZUT6xZ0iXI7L954nBAiEAmNmgDBrbTvPHiQJGSYPE5GnajeJJFcJOfrqWyse28ns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":512610},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.3","najm-i18n":"^1.1.6","najm-rate":"^1.1.6","najm-cache":"^1.2.3","najm-email":"^1.1.6","najm-guard":"^1.1.6","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.6","najm-database":"^1.1.7","lodash.isempty":"^4.4.0","najm-validation":"^1.1.7","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.24_1775869594986_0.14246292726403653","host":"s3://npm-registry-packages-npm-production"}},"1.1.25":{"name":"najm-auth","version":"1.1.25","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.25","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"2011982f43c45fe015f0048c3a11dbb0efc6d9c5","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.25.tgz","fileCount":17,"integrity":"sha512-demEKzGiFWOZlkaCC9qAV0lHdCekduhCoo434Kxw7zbMRX/Eh/IxfNDqJqB9Qw6wGNtUqNS9094gN4bB1fRCaA==","signatures":[{"sig":"MEUCIQDmIT+izBe8A9Fi1ayCyfBAP6XmDP//oDIXGEe3txDiVwIgLmHh2dWcjyindHe5nP0rHgEqJ/sSF1Vt9OWLsPHeXIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":512610},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.3","najm-i18n":"^1.1.6","najm-rate":"^1.1.6","najm-cache":"^1.2.3","najm-email":"^1.1.6","najm-guard":"^1.1.6","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.6","najm-database":"^1.1.7","lodash.isempty":"^4.4.0","najm-validation":"^1.1.7","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.25_1775899534522_0.6218128518659916","host":"s3://npm-registry-packages-npm-production"}},"1.1.26":{"name":"najm-auth","version":"1.1.26","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.26","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"2907702b9617a44ab282219c514135d6cf3262e2","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.26.tgz","fileCount":17,"integrity":"sha512-KKCd8PbbrCvoNhHWgiDWGQ9regvsQ9lks5m5HF6RCudIYqRdJVLPHKvOcMHoqTw+WhoINAF3HBXpm7KRyXLVpw==","signatures":[{"sig":"MEUCIEBzlG/XMS7eJEJ0BDRhUej2u0P8FamAZktMsc8w7re0AiEA7PmGlmV0LC9jiUlHxtMpo0G6Q4wCrqmGOFlhNeKd0tI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":512900},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.3","najm-i18n":"^1.1.6","najm-rate":"^1.1.6","najm-cache":"^1.2.3","najm-email":"^1.1.6","najm-guard":"^1.1.6","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.6","najm-database":"^1.1.7","lodash.isempty":"^4.4.0","najm-validation":"^1.1.7","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.26_1775941397094_0.3989214276480273","host":"s3://npm-registry-packages-npm-production"}},"1.1.27":{"name":"najm-auth","version":"1.1.27","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.27","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"912542d12a486f549f0cfe773fed577bf5fd4b1b","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.27.tgz","fileCount":17,"integrity":"sha512-u5IRodamnWhSykP0E/Fx75N1c7QGp5aQ+1DfBfRfUq/1W+JdK5WtLKnRkrZz+BFmBTa8QfII7+pVimHH870isQ==","signatures":[{"sig":"MEQCIAyt1nAtJBG3FSspm/91u7BBIpSlTO8oO3KdEo3mSzWyAiButloj1J5Ey7dENFhkBPmskYeLhfYHWZCtLmzV/LmPwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":527459},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.3","najm-i18n":"^1.1.6","najm-rate":"^1.1.6","najm-cache":"^1.2.3","najm-email":"^1.1.6","najm-guard":"^1.1.6","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.6","najm-database":"^1.1.7","lodash.isempty":"^4.4.0","najm-validation":"^1.1.7","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.27_1775947996122_0.9477041586963955","host":"s3://npm-registry-packages-npm-production"}},"1.1.29":{"name":"najm-auth","version":"1.1.29","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.29","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"b0262a7b86e662a08265c4e6964737af9fda5dbf","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.29.tgz","fileCount":17,"integrity":"sha512-YbXsyb4BQmrPzYrpRg/S0vi00LtYkw/zueUE0HtljSzvlhyanddxdv+AZ+CPjg7ikv/FbLVNLHSetjfbgKNGhA==","signatures":[{"sig":"MEUCIQDkOLSOdewxeyv+QEVtI+u68O1TsRlwW1aRbDkD1lsyzAIgBe16f3DmXw9Wjf0yoU4mbin9nelDOw3hyDPLxSYVQyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":527361},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.3","najm-i18n":"^1.1.6","najm-rate":"^1.1.6","najm-cache":"^1.2.3","najm-email":"^1.1.6","najm-guard":"^1.1.6","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.6","najm-database":"^1.1.7","lodash.isempty":"^4.4.0","najm-validation":"^1.1.7","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.29_1775989247444_0.2836843287598181","host":"s3://npm-registry-packages-npm-production"}},"1.1.30":{"name":"najm-auth","version":"1.1.30","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.30","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"0a43ec6d812c0144b3f192910c033bc44ece22a9","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.30.tgz","fileCount":17,"integrity":"sha512-OAxZ7DWmGQoMjk3bfmv/4r3HFolf5LC7XIqiVq6q8q4X1xMDIbuPtXoA3GmF/YF5k1AClILBbelVHRYuVFF9Vw==","signatures":[{"sig":"MEQCIHidsBsbCAzp801+hWEzrTp9gD3sxK6wfPPya4ggJd/bAiBUTJ6ipFEGR3KRLM7TRfUAOLSCvTIy5y8TaKBmM51jQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":528475},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.3","najm-i18n":"^1.1.6","najm-rate":"^1.1.6","najm-cache":"^1.2.3","najm-email":"^1.1.6","najm-guard":"^1.1.6","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.6","najm-database":"^1.1.7","lodash.isempty":"^4.4.0","najm-validation":"^1.1.7","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.30_1776546635460_0.7247247159349266","host":"s3://npm-registry-packages-npm-production"}},"1.1.31":{"name":"najm-auth","version":"1.1.31","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.31","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"5e9e7566991ccbd8927bd61b7d181872110626d7","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.31.tgz","fileCount":17,"integrity":"sha512-h1RQMUiDWtS2ZwoGijB54DejD5NaBwtbQ8kGSs1r2SwIGKpxSXmESCISriLyFGTO9E26NsU2Xnkl3+vmesCe4A==","signatures":[{"sig":"MEYCIQCvN7vmmP4riU+h0MG8Wj9szwJGEnxgsP7+/PrBac2uygIhAPItpkUbAPPjDgZQQ0ca/8sD49B4h1AUE0qjxceRRs7P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":530235},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.3","najm-i18n":"^1.1.6","najm-rate":"^1.1.6","najm-cache":"^1.2.3","najm-email":"^1.1.6","najm-guard":"^1.1.6","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.6","najm-database":"^1.1.7","lodash.isempty":"^4.4.0","najm-validation":"^1.1.7","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.31_1776623723799_0.8494708718180897","host":"s3://npm-registry-packages-npm-production"}},"1.1.32":{"name":"najm-auth","version":"1.1.32","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.32","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"a43b507ba7644808ed944166ffe1c3578fa2adf7","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.32.tgz","fileCount":17,"integrity":"sha512-Y6IWQbRrzLZBWzgGpyKGzOEmP/g7Mzna5qEMDU8/UvJr9A4mBrX5wgMD5cCrgQFGcfdRSWTJl3QVn0V+pmTS6A==","signatures":[{"sig":"MEUCIQDt6OoZQcOCVWgKbVa1u6FfYmK2smzUS1UpM4PVD/6o5AIgCB+qzofuyDcloxcfqsI8ynQy2Cnb9YDrA0ZxTa7Hkiw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":530294},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.3","najm-i18n":"^1.1.6","najm-rate":"^1.1.6","najm-cache":"^1.2.3","najm-email":"^1.1.6","najm-guard":"^1.1.6","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.6","najm-database":"^1.1.7","lodash.isempty":"^4.4.0","najm-validation":"^1.1.7","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.32_1776624759970_0.9505576918729748","host":"s3://npm-registry-packages-npm-production"}},"1.1.33":{"name":"najm-auth","version":"1.1.33","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.33","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"10fb243655516acf99c39f952aac3a5059c73a62","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.33.tgz","fileCount":17,"integrity":"sha512-/WV4I3xdTy9QmoMhXDr4NWFD9UUXqv0hF88qGa13WHWFeOk/5KxTn3FdyMKQ3JPwm1liJN59CKimivTkHPI+3Q==","signatures":[{"sig":"MEUCICyIQswqMhN8O6bpUWePLT5mF9v+PIECgbyTMIK+bi6QAiEA9Scmb1yNV3lLnNa4Qg6swVNUlEa2viDedk4NEH5ZHFQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":542602},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.4","najm-i18n":"^1.1.7","najm-rate":"^1.1.7","najm-cache":"^1.2.4","najm-email":"^1.1.7","najm-guard":"^1.1.7","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.7","najm-database":"^1.1.8","lodash.isempty":"^4.4.0","najm-validation":"^1.1.8","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.33_1776978994779_0.2575120413606373","host":"s3://npm-registry-packages-npm-production"}},"1.1.34":{"name":"najm-auth","version":"1.1.34","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.34","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"54228281eb23d92ad708aab80c3c9a7fcf40aff2","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.34.tgz","fileCount":17,"integrity":"sha512-QFDAZ0KdlI0ChL0rFU2lD7A0JIJlkGwo46ED0ZWf82kgwqzTvlL4OPqpnBRyMGQ05a+zjWlfb7S8NAQ9Nc/Akg==","signatures":[{"sig":"MEUCIQCc808xxXhHT5mS37ReG0Mw6AeaTbpgeH4YSdryfrMdXQIgWg5vMQoneLE8n1sDrkyUMHQPZHiVzgusPt/b5q+o9WE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":542603},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"8e2c58b93387647f796ff44a772aeb4b4c639fe5","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.6","najm-i18n":"^1.1.8","najm-rate":"^1.1.8","najm-cache":"^1.2.5","najm-email":"^1.1.8","najm-guard":"^1.1.8","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.8","najm-database":"^1.1.10","lodash.isempty":"^4.4.0","najm-validation":"^1.1.9","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.34_1778194362904_0.7545279649557548","host":"s3://npm-registry-packages-npm-production"}},"1.1.35":{"name":"najm-auth","version":"1.1.35","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.35","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"d98e5b855e0ca35a7a72dd3063270647943f8f74","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.35.tgz","fileCount":17,"integrity":"sha512-kUIS6t9nfcgSLVrZErhfGWVFTL2LwBElzVs3M7N3BGDziFHbC51c8lIe+2dlDeOY62W1JHXht7BcLBf8jf0Gjw==","signatures":[{"sig":"MEUCIFPrFBGx+yT4Q7I+dapnwVzNLqi8SDueTgQ6fw4NhTa5AiEAxMqCWxzPfkmewkWRwP3J2ye7T5/s8mAwpIqj81yZMjo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":542604},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"8e2c58b93387647f796ff44a772aeb4b4c639fe5","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.7","najm-i18n":"^1.1.9","najm-rate":"^1.1.9","najm-cache":"^1.2.6","najm-email":"^1.1.9","najm-guard":"^1.1.9","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.9","najm-database":"^1.1.11","lodash.isempty":"^4.4.0","najm-validation":"^1.1.10","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.35_1778194647002_0.8196539122992639","host":"s3://npm-registry-packages-npm-production"}},"1.1.36":{"name":"najm-auth","version":"1.1.36","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.36","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"b78f73829cc1ac8e02eca04878e6dcad5624cb1b","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.36.tgz","fileCount":17,"integrity":"sha512-uZxrbblAO0kLbRWBOeub2jiKrBJtJy+bdjmLFi03RyfLOg9dZTwce4jS7hskwJtey8gxn1GpBZA/bYOY9fJZVw==","signatures":[{"sig":"MEUCIFSnTGzA/V9GEhesMczg0xqzMl3Brpn8k7mMV7vzCVepAiEA2ShBbI+XEiYYLIPsk3Ukk7m53sFlrq/kEUyLCjo0Fw0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":542609},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"0a7c265de2d7708e8454e4b54ca99e4fce38e2e0","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.8","najm-i18n":"^1.1.10","najm-rate":"^1.1.10","najm-cache":"^1.2.7","najm-email":"^1.1.10","najm-guard":"^1.1.10","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.10","najm-database":"^1.1.12","lodash.isempty":"^4.4.0","najm-validation":"^1.1.11","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.36_1778660465060_0.02549516336163693","host":"s3://npm-registry-packages-npm-production"}},"1.1.38":{"name":"najm-auth","version":"1.1.38","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.38","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"ca56654b1fcccf2c5e1fef1684530a78af1860d3","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.38.tgz","fileCount":19,"integrity":"sha512-kLXGNOR/eoUlJmK8sW+IjF7GeJz08YwXxBGsZZ+r/dL3AgJnMu1Je6nV7uIjWKczIg07wTuV7AKe98NAawVvOg==","signatures":[{"sig":"MEUCIQCyP7GhPwrMN1hLclxqJ6cSWW6qQR/FE2/yb+3I64KYPQIgAZB3jlJsEjsEKGY+Z9IiOprYh8iWZu5VRHLTn1nK+Y0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":546117},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"cab272e3042a756316ed943546f91400275974e9","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","hono":"^4.0.0","pino":"^10.1.0","nanoid":"^5.1.6","bcryptjs":"^3.0.2","postgres":"^3.4.7","najm-core":"^1.2.10","najm-i18n":"^1.1.12","najm-rate":"^1.1.12","najm-cache":"^1.2.9","najm-email":"^1.1.12","najm-guard":"^1.1.12","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.12","najm-database":"^1.1.14","lodash.isempty":"^4.4.0","najm-validation":"^1.1.13","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.38_1780437702284_0.2082676658798932","host":"s3://npm-registry-packages-npm-production"}},"1.1.39":{"name":"najm-auth","version":"1.1.39","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.39","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"3d70de282f7a7d6210a8b96361159a786fc589f3","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.39.tgz","fileCount":19,"integrity":"sha512-wLba58CIl+gSY9Vqc0fDC65LJCVHQgi6oIq6wNpbsxehex396nvvD2W6keTjMkVx8a2gszIVtufX1ZN7eCW2CA==","signatures":[{"sig":"MEQCICAICNYm/2ozlOnrJ89XCry/A8eUeHKfwVXI9G/LjRiPAiA8V0Qo0IOzo+qWZ2W0XbF08uEFoXWc97QMxrgO3yaouA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":551479},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"8b9c2bacf60c75c5b42747b258290bb65a0896f9","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^1.2.11","najm-i18n":"^1.1.13","najm-rate":"^1.1.13","najm-cache":"^1.2.10","najm-email":"^1.1.13","najm-guard":"^1.1.13","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.13","najm-database":"^1.1.15","lodash.isempty":"^4.4.0","najm-validation":"^1.1.14","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.39_1781366362949_0.7744566890784195","host":"s3://npm-registry-packages-npm-production"}},"1.1.41":{"name":"najm-auth","version":"1.1.41","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.41","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"65ce67e7ebeadd0c28db2111f577a434f9aa5a77","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.41.tgz","fileCount":17,"integrity":"sha512-Rc/tJMuOQI8QLTawkRYMDUUiSrXcsWt1sZbUKH78ioV0g40zOherQOU+TmGcDKva6TbyYBcZaofhxNC16czEUA==","signatures":[{"sig":"MEQCIHLPPk9HQH0qd8sFgsIF/BWguKaOiLdku56IbloRni53AiBL62NBwbkp+KloYSb1P7kONM9mY7e710Y+ljP+rBCIFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":497609},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"064f25b375f606c276a5651ea316714354a2a4a4","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^1.2.12","najm-i18n":"^1.1.14","najm-rate":"^1.1.14","najm-cache":"^1.2.11","najm-email":"^1.1.14","najm-guard":"^1.1.14","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.14","najm-database":"^1.1.16","lodash.isempty":"^4.4.0","najm-validation":"^1.1.15","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.41_1782078142729_0.4963833398773356","host":"s3://npm-registry-packages-npm-production"}},"1.1.42":{"name":"najm-auth","version":"1.1.42","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.42","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"b30ca0fcf572386695441faa169404fe2bd9412a","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.42.tgz","fileCount":17,"integrity":"sha512-5cOzHewnwKCdlAtzo4u6zlhCahKgVKetPMRBwb3TVDjn0HKGp5h8juNxQyPMDVtFPfQA/iqCN6ZxpnBI5XZk8w==","signatures":[{"sig":"MEYCIQD69500vF+ieAZIbXpbL0eI7cv7Q/bpGlgySZrSclL7qgIhAORKBVXRTj8UZnZe+bqazSfvzUSW1yyFE9+ZTaVVLwU3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":502462},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"064f25b375f606c276a5651ea316714354a2a4a4","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^1.2.14","najm-i18n":"^1.1.14","najm-rate":"^1.1.14","najm-cache":"^1.2.11","najm-email":"^1.1.15","najm-guard":"^1.1.14","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.14","najm-database":"^1.1.16","lodash.isempty":"^4.4.0","najm-validation":"^1.1.15","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.42_1782752150026_0.5017580434250779","host":"s3://npm-registry-packages-npm-production"}},"1.1.43":{"name":"najm-auth","version":"1.1.43","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.43","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"2200e847598633ebe84384c7fddf58a5a80205b1","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.43.tgz","fileCount":17,"integrity":"sha512-52r8KVmxYKJLCaFBAaPlUUuEf1EN9sovkNBx0OSEU/GFCwPrY5b1pXJhRqLbDkkFMXaQc6ODMJZPb2QVsBObsQ==","signatures":[{"sig":"MEUCIQCAEV3YHrCaq0H1ceU/+RiBxi+oZgKOY5/9nDGHw0bcSgIgAQMJTjVEkBtGdvR1ABVCWOAibpkSovmCVMQzZXCiqjk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":504202},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"064f25b375f606c276a5651ea316714354a2a4a4","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^1.2.14","najm-i18n":"^1.1.14","najm-rate":"^1.1.14","najm-cache":"^1.2.11","najm-email":"^1.1.15","najm-guard":"^1.1.14","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.14","najm-database":"^1.1.16","lodash.isempty":"^4.4.0","najm-validation":"^1.1.15","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.43_1782755841743_0.6756053826967352","host":"s3://npm-registry-packages-npm-production"}},"1.1.44":{"name":"najm-auth","version":"1.1.44","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@1.1.44","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"2866e89b33bd7150ed59ce53fea70abb2ed4757d","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-1.1.44.tgz","fileCount":17,"integrity":"sha512-xLbbXox5S1gZZn6r3T3/CtrUNXRk4WAEWBcz2aDKCkOmF1TlAQe6DS0hMjO+VIgUolVKS7CjwabJvRu3cfzA9g==","signatures":[{"sig":"MEUCIB/gbQKUrx+2ppeWGCkS++r7nqeStnaF8XBisonLDeQsAiEArBl6GF/92s3LcgguaBuxxGcst51xSBCrwGEslxUHFlo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":505033},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"064f25b375f606c276a5651ea316714354a2a4a4","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"23.9.0","dependencies":{"zod":"^4.2.1","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^1.2.14","najm-i18n":"^1.1.14","najm-rate":"^1.1.14","najm-cache":"^1.2.11","najm-email":"^1.1.15","najm-guard":"^1.1.14","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^1.1.14","najm-database":"^1.1.16","lodash.isempty":"^4.4.0","najm-validation":"^1.1.15","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_1.1.44_1782993232022_0.8485494762205439","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"najm-auth","version":"2.0.1","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@2.0.1","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"f2f407c9ddd02b5f25208a19b15e5a7b00c7e9ff","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-2.0.1.tgz","fileCount":17,"integrity":"sha512-dA5d7JL0q2oNZdQMYLvQZPggIMCny8RIzeDXnuQv+VKEk5xl1I27/VuhbrzBBWOb0XVMWycZeHXN9SrOk/bjsQ==","signatures":[{"sig":"MEQCIC1+T+MPbYcIl/yl1REd70D3MFOFIQsnwfuIhsEg38/aAiBUxnusdPN1NNgTgt21glX5C1EBBB9hg0hMyNKSPwNJVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":511319},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"bc3594d46998492318e804ff7f9389b1c7934a43","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.16.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.2.1","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.1","najm-i18n":"^2.0.1","najm-rate":"^2.0.1","najm-cache":"^2.0.1","najm-email":"^2.0.1","najm-guard":"^2.0.1","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.1","najm-database":"^2.0.1","lodash.isempty":"^4.4.0","najm-validation":"^2.0.1","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_2.0.1_1783690041436_0.5128946752033534","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"najm-auth","version":"2.0.2","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@2.0.2","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"343fe530edd30beafba6f5ef2652dc88f4799c5a","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-2.0.2.tgz","fileCount":17,"integrity":"sha512-9qLRrGg5rRh5ODJQrMErIYcdaOcAml4KlInWI+fqLwBE6wjGJNXYRVlDH3HmotfXfNKCduVuhqJew5ME1qOzaw==","signatures":[{"sig":"MEQCIHHj0+IMksPwwjVuzg53PnvqJS41XP35dJDUC9ExOcjgAiAt2wLAX04I/Fa28zsQ4Qoxp8xDvhrCy1mY9OslH3ph3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":581373},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.3","najm-i18n":"^2.0.2","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.2","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","happy-dom":"^17.6.3","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_2.0.2_1784718959803_0.11231517138898361","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"najm-auth","version":"2.0.3","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@2.0.3","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"6cc8d3135b0bab8098b552f2017c7934711b65bc","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-2.0.3.tgz","fileCount":17,"integrity":"sha512-Nx5Xltv2YuNHgP3apJILPGImgR76C7NP63kpT6RD6CcFyqJs5K1SyNyV7P2MeJhixI0kry0JEa14nF2uVYycRg==","signatures":[{"sig":"MEQCIHwcq/Xg9Eq/UACJFEx2DljVNAh9kZGwbGhzUal+8A1zAiAv50Co4TJ0+a+QEMEG3+GCbb1VemZkOz9add39hAaBUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":581379},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.4","najm-i18n":"^2.0.2","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","happy-dom":"^17.6.3","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_2.0.3_1784769756053_0.2800340840181226","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"najm-auth","version":"2.0.4","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@2.0.4","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"f3c3739c160d5d0c8903d0f1100e984f86e74d65","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-2.0.4.tgz","fileCount":17,"integrity":"sha512-XKkfq9QRiCp/bjyo/UUnlfxMQKA7Hz6mEXC0u1/Ufr8RKwxoPbAQYDBJu5e5I54VStTuw7uCGJiB5oz/t+NaIw==","signatures":[{"sig":"MEUCIQCM6F9h1oKKV3gMdAroY3cLEM0dT+Z4i5KGoyVVAcXVnAIgcxMmndKtxL2DZ90GtJwx+DDkciQyn3z2tSgk71Rryls=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":588911},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"8ede7b57a7f59c37e8bf1dab12632facad022cbf","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.4","najm-i18n":"^2.0.2","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","happy-dom":"^17.6.3","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_2.0.4_1784805869841_0.43030834479078606","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"najm-auth","version":"2.0.5","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@2.0.5","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"cba1ee8b6d6a9b372d6f448b7b592f9ae05087af","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-2.0.5.tgz","fileCount":17,"integrity":"sha512-dQWGEs3jjj/qPbfC6EsjNd8yoHQuNHVSMQAQYos/tnq7AFevWr+M6TCIWkeOSjbrfaIHuSRI0/JBRIC4vfyjIw==","signatures":[{"sig":"MEUCIQD3bqPEnRbfolqc5oQjnXFx8Z9/fmTVfrguU5flQMXizgIgD+qLu48/iJD1H4AYEkz9+1VeinAlkiV8z2GLGczO2yM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":603116},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"297f7d3faeef06f225dd9a1809bf21e34339d2ed","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.4","najm-i18n":"^2.0.2","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","happy-dom":"^17.6.3","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.1","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.0.0","next":">=14","react":">=18","drizzle-orm":"^0.45.1"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_2.0.5_1784810686574_0.7741701635662162","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"najm-auth","version":"2.0.6","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@2.0.6","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"333cb43b816f67f67a5465f73f9c732f03500561","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-2.0.6.tgz","fileCount":17,"integrity":"sha512-wJRj0RtRw109CZjOFjSk3ovBoIG18hyoySC365OFTdeh1hDA+DV2nMSuIPVSBy+uR9MecoShfxrMQaLapp00wQ==","signatures":[{"sig":"MEUCICq+xaxUFYFN4FSdwHJU3S3orBqFJmk9JHqROVpcz2vQAiEA4HLNnVokhzJg4Vf3Wa1PCwv+9jjmBgYRNW9hk8fIx3w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":604532},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"b2f08511b9eef9e351baedb7be6cb8d2d3b369d1","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.4","najm-i18n":"^2.0.2","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_2.0.6_1784832364227_0.2226717423030904","host":"s3://npm-registry-packages-npm-production"}},"2.0.9":{"name":"najm-auth","version":"2.0.9","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@2.0.9","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"aa0312e3a3e27956ac631dd7b91f9cf5d55a8184","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-2.0.9.tgz","fileCount":17,"integrity":"sha512-uefgb68+Au/T+dEU9uqn+ju5k10wGL5K2EPYdCTLBBatkc2oEbqTlFWtrACITv0JQcWoJQjvX8cZenrWwkFBKA==","signatures":[{"sig":"MEUCIF02wnXUuGY8J0r25AYOy6PCkoZq48JDey/nETN5iwulAiEA+KiOK2iuT9WJkGWLFLU0unYE1d4qbxAdhBxTQM9Mv/k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":614757},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"fa1feed80f3978f78a03a8246eeefb0d2316f29f","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.4","najm-i18n":"^2.0.2","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_2.0.9_1784840475607_0.16430065444587005","host":"s3://npm-registry-packages-npm-production"}},"2.0.10":{"name":"najm-auth","version":"2.0.10","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@2.0.10","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"12e3525873dfd2ce3875d0ad83ae20b598b4dcba","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-2.0.10.tgz","fileCount":17,"integrity":"sha512-xiK2HHT1HjK7thXimUQibDA8IZ1pL9uB83hLkR9pQGkB1ElKviD05czddFwo34AAMGhwDvSqgM1S0Q5lnam3Nw==","signatures":[{"sig":"MEUCIF//R2i9eEHBXGuiaYq2HXwqRrocR1k+kNo540LtP/OMAiEAi74Z5jUX4bIpkkqV59RY86U5kGuwATJpFjS2Ow7IkFY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620523},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"f809f1f8423a86fd9010d844f6ca0f7e504da381","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.4","najm-i18n":"^2.0.2","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_2.0.10_1784848105755_0.24931167250752795","host":"s3://npm-registry-packages-npm-production"}},"2.0.11":{"name":"najm-auth","version":"2.0.11","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@2.0.11","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"e13426b6531a89702270b92d28aae88117a64241","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-2.0.11.tgz","fileCount":17,"integrity":"sha512-u2wtO7/XmB5/NwmmlOZqOuiAURCzfE8ovAeiZFlC+fDpHXS/lUL4HH3v+FqFsRwPz34csGI0bnTPP8rDJjfp/A==","signatures":[{"sig":"MEUCIQCuPCwDiWyUBKB6g/vdQma63ymey7jwsl1hu36GHdwcXAIgRAGkWjPggWn9DSH9BzbjESki5/w05L1lwD8jbfBMu/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620961},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"67256321c3ad25b0c4cd7fff2d2b9d011beca55b","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.4","najm-i18n":"^2.0.2","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_2.0.11_1785159250855_0.5299861380201776","host":"s3://npm-registry-packages-npm-production"}},"2.0.12":{"name":"najm-auth","version":"2.0.12","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@2.0.12","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"952f4dbda01b1b5aba28dbd9515c26b22ef6b282","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-2.0.12.tgz","fileCount":17,"integrity":"sha512-Kiu4nPNXKxx1PW3QtcFIMoI6khPDXue6fFOLDBOqcOvjyFgC4lAszvijlEs84fyllyzqu8J6oeZb+UULouaegg==","signatures":[{"sig":"MEQCIFgG1nB8zAx8dGTU4OKgmXyDM5pAUz7Wg/FRs+aq/M9rAiA2md6i2XJ/1H8Gx+Z0SAk90y3p4FzjK1GBS3Xl3bN7NQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":665711},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"45e3f181f1f8933b1e0bac4b1d491669b628a4f0","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.4","najm-i18n":"^2.0.2","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_2.0.12_1785608694052_0.7059927681504772","host":"s3://npm-registry-packages-npm-production"}},"2.0.13":{"name":"najm-auth","version":"2.0.13","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@2.0.13","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"c322aeedf998e6086f92fbe4e2e3fa3b0595421c","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-2.0.13.tgz","fileCount":17,"integrity":"sha512-te36XvoiSFi4wCQCY1h+JEvVlUgD/uOavQCEmC1a6MHSAVcBmJGB4p1Vud29f6Arpnw+87l9LzOycsDAHjlq3w==","signatures":[{"sig":"MEQCIDygW2cghOpl1n3UaqioyCzfYILvzkWuUmv0uy+ZrKYOAiB9/7zBASPkSzEAUGOUqLCtFYPA2xaV2JJLRsbGCBMSNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":667249},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"45e3f181f1f8933b1e0bac4b1d491669b628a4f0","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.4","najm-i18n":"^2.0.2","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_2.0.13_1785638266080_0.5460981943724834","host":"s3://npm-registry-packages-npm-production"}},"2.0.14":{"name":"najm-auth","version":"2.0.14","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@2.0.14","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"f453c02f8380ee50fe7c0353a78e07c4da2393eb","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-2.0.14.tgz","fileCount":17,"integrity":"sha512-44T/m/6TppfAvBcP+dAE9qbFKm88uRlWBhQMzOmAkbpnIcgTspgQKGnSUcGZTnsC61hvweLkuu93btUjld0Sjw==","signatures":[{"sig":"MEQCICtJMRmbUh5yf+Y+HezQm/P+toDCjKrMTdn2xPwKUP61AiBnrWAY/hZSJ6peZ9XDOifZQ8e6coeKKR0its+jaoK0TQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":668627},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"a31f92ae585b8644b7e04189bf1c11f5d5f30481","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.5","najm-i18n":"^2.0.3","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_2.0.14_1786100296466_0.14065565251908652","host":"s3://npm-registry-packages-npm-production"}},"2.0.15":{"name":"najm-auth","version":"2.0.15","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@2.0.15","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"887938e53c83a34e444f40ce980d79c2109eae3a","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-2.0.15.tgz","fileCount":17,"integrity":"sha512-JZU9rV5okPAxYD5+63ryWKy1sAR4iQCaMtndKzphMY/JavgXWgn6nfCwuMRcuxmFXOS/0hdmJar0gqyc5nnkrw==","signatures":[{"sig":"MEYCIQCAMAhojxQNxAH+3UqldvbJ2+0gGwrs30RS5kOH7mhIdgIhAIQnZCo7aewMCrP2Z6cNB+xRIgKOLjVzG0kOm/Stgc2D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":679020},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"gitHead":"6482af67907cfbe0dadf28b42c23b5ab7e12802b","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.5","najm-i18n":"^2.0.3","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_2.0.15_1786151723645_0.7843353038370418","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"najm-auth","version":"3.0.0","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@3.0.0","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"d13698e8aebd6a014c70f00c0409225a073cac72","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-3.0.0.tgz","fileCount":20,"integrity":"sha512-PcUP1rJKm3OPnFUHzSokOF3LkUHZYKLZCVmOk9npwo7t04849P7kGuwpejrcDnhiMh+d6JmPRcrNtOkFKuW2Tw==","signatures":[{"sig":"MEUCIF8NxqEQ8ZwttcyLXk7mOowBvYdOp0b6b1njw4pHLplsAiEAj6e0z4Ftv+LeXtdzHl2UCOYpI/MDsy8GsnkZwxz5o6k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":770894},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm/dist-publish/najm-auth-3.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"}},"scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm\\dist-publish\\najm-auth-3.0.0.tgz","_integrity":"sha512-PcUP1rJKm3OPnFUHzSokOF3LkUHZYKLZCVmOk9npwo7t04849P7kGuwpejrcDnhiMh+d6JmPRcrNtOkFKuW2Tw==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.5","najm-i18n":"^2.0.3","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_3.0.0_1786206917451_0.29295898737219983","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"najm-auth","version":"3.1.0","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@3.1.0","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"c4d5a5cd826a0d6484f4a049a698d79c8122c14d","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-3.1.0.tgz","fileCount":27,"integrity":"sha512-9WqojpPQ9dNf5Fsthlk4i16R1FV+pQ1U7nqyvHxDB/mBt5sEV+q/sg1xzBM+9QJkgt74RGFgz78vyVuQAt3+QA==","signatures":[{"sig":"MEUCIQDpAHu18ctT3B9HO6BtWCZMVXBaZNkW+mbtLEfPpDFfwQIgZHGaaEzdhLU65bKfTRjlJG8V/YfictEC/3fdlDl6Wss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":782619},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"gitHead":"af02f20013e78bd7ce49ffba0b12012554400d9f","scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.5","najm-i18n":"^2.0.3","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_3.1.0_1786232903944_0.29639702234553567","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"najm-auth","version":"3.1.1","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@3.1.1","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"b4242c58dc77a886fcdfd64811797157f879f9f3","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-3.1.1.tgz","fileCount":27,"integrity":"sha512-YKSaZiVgc9Qsk/jPc0iQENeFaACaUej+IF2gF/lkGRLygla7yxYp9/jIaYu50EgWHjIr/T8B28e2RNxuNXe1qA==","signatures":[{"sig":"MEQCIDMdDv5idUeDe9VuWezNXyJXd3ODxN9lX1syid3MBzvLAiBWXwA3FQaKkHe8zAQSYGAgFm47KqaabNclaO3VlwgV9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":785986},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"gitHead":"90624dc9bf2f7c8901c2bf75fa871f34e37135f9","scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.5","najm-i18n":"^2.0.3","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_3.1.1_1786282066245_0.5976017790145707","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"name":"najm-auth","version":"3.1.2","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@3.1.2","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"a78f8db11dcb6f557f2abb5b539f05e059b13d61","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-3.1.2.tgz","fileCount":27,"integrity":"sha512-engioy+DuKkqz9DaqutpPvPnkseVx2YYKT5iQJM8Sy6/zFnE0nmyGzj7/EK0JdpoZ7vHisEokUY07iT9C/OaAw==","signatures":[{"sig":"MEQCIETc8CX7Hija/EMGX2lyFk7KsgsedaTvxNaZ7mjMX0x0AiAJ7+bWwRB68YOtV7GgFEaMs4CPAp7YyFcmAqPDXLAZAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":795519},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm/dist-publish/najm-auth-3.1.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm\\dist-publish\\najm-auth-3.1.2.tgz","_integrity":"sha512-engioy+DuKkqz9DaqutpPvPnkseVx2YYKT5iQJM8Sy6/zFnE0nmyGzj7/EK0JdpoZ7vHisEokUY07iT9C/OaAw==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.5","najm-i18n":"^2.0.3","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_3.1.2_1786559570969_0.1181243176272746","host":"s3://npm-registry-packages-npm-production"}},"3.1.3":{"name":"najm-auth","version":"3.1.3","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@3.1.3","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"9ab9b9689d5684e303463d9ee9ef1dd1c969ee07","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-3.1.3.tgz","fileCount":27,"integrity":"sha512-8duYX+rU8Y0DT90pUAwjR7nCXVWLgnfrq2yNTI/VXdoZc+f7Hofd6BYyQ1PaTUXfUlN+Csg/Ie1IiOxE2kvQnA==","signatures":[{"sig":"MEUCIGegZcbSsHZQjbIfgL6bZQheNACSRxPaffjHlLBJu3txAiEA40BNVTggqmHYsq/gG+ZNe5nBZyV8EHms3ZNilEfawkU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":795669},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm/dist-publish/najm-auth-3.1.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm\\dist-publish\\najm-auth-3.1.3.tgz","_integrity":"sha512-8duYX+rU8Y0DT90pUAwjR7nCXVWLgnfrq2yNTI/VXdoZc+f7Hofd6BYyQ1PaTUXfUlN+Csg/Ie1IiOxE2kvQnA==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.5","najm-i18n":"^2.0.3","najm-rate":"^2.0.2","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_3.1.3_1786560972203_0.1731341670037656","host":"s3://npm-registry-packages-npm-production"}},"3.1.4":{"name":"najm-auth","version":"3.1.4","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@3.1.4","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"54e95e50a0674853a08c76a7d49d2b7c0a2b70f2","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-3.1.4.tgz","fileCount":27,"integrity":"sha512-ERsqmZvez+QmcZV72g7KydaZMHg4OWmqRIF3sMzsIBfb1j0RqWQP4FrHshIxr0pVqTxoPyPLPfSsETl1A2BVDQ==","signatures":[{"sig":"MEUCIQD5gwt2rBIl2upVFe7iUTxvDLOvVBf6YhaVSP/VLu3w9wIgGbmHqpDdcAgz2bnY6ZL0ic0SEWXWw6uP366inNeWelE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":799611},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm/dist-publish/najm-auth-3.1.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm\\dist-publish\\najm-auth-3.1.4.tgz","_integrity":"sha512-ERsqmZvez+QmcZV72g7KydaZMHg4OWmqRIF3sMzsIBfb1j0RqWQP4FrHshIxr0pVqTxoPyPLPfSsETl1A2BVDQ==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.5","najm-i18n":"^2.0.3","najm-rate":"^2.0.3","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_3.1.4_1786713995333_0.8617098556107066","host":"s3://npm-registry-packages-npm-production"}},"3.1.5":{"name":"najm-auth","version":"3.1.5","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@3.1.5","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"3886c229ebdc3359a4881c03858242ce65785be1","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-3.1.5.tgz","fileCount":27,"integrity":"sha512-AzMrWvOZSLGDfIhF54AmO98Qk4lBxFp5O+E4Qe1d8uhKL33Bcd2+UjmVWekC0W5QtTmanWB8a8MJUDZX2ApAXg==","signatures":[{"sig":"MEUCIQCL+PgKtoeerJq2lIabVTSfNFJ3mxzUtJcaVYdfC2eg8QIgHLytC0pI/4KxVvcl7Ce1Ih525Lw6vuHya1jk1pU/lvg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":800754},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/AppData/Local/Temp/najm-auth-release-c9e37c3/dist-publish/najm-auth-3.1.5.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\AppData\\Local\\Temp\\najm-auth-release-c9e37c3\\dist-publish\\najm-auth-3.1.5.tgz","_integrity":"sha512-AzMrWvOZSLGDfIhF54AmO98Qk4lBxFp5O+E4Qe1d8uhKL33Bcd2+UjmVWekC0W5QtTmanWB8a8MJUDZX2ApAXg==","_npmVersion":"11.16.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.5","najm-i18n":"^2.0.3","najm-rate":"^2.0.3","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_3.1.5_1787871696647_0.5045870298102477","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"najm-auth","version":"3.2.0","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@3.2.0","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"7804b81ff267bba63436a9dbee70825954cb2ebd","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-3.2.0.tgz","fileCount":27,"integrity":"sha512-375QTRcIs8gTwFWkWdleQR3wvne75DjN2Onm2YMtnEnnCwnrybntvDbzh2yUtRM9t+l9JJDXUcvi4A/q35cmxg==","signatures":[{"sig":"MEUCIQDyUJGBZct8whxvs1SzvF0Oton23CNrHYWLTknc5Jtb4gIgKvSS3ZvBXqqGw3UcO0DP19lpTA5uadO+OpTtj+ca/l8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":805018},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/AppData/Local/Temp/najm-auth-release-3.2.0/dist-publish/najm-auth-3.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\AppData\\Local\\Temp\\najm-auth-release-3.2.0\\dist-publish\\najm-auth-3.2.0.tgz","_integrity":"sha512-375QTRcIs8gTwFWkWdleQR3wvne75DjN2Onm2YMtnEnnCwnrybntvDbzh2yUtRM9t+l9JJDXUcvi4A/q35cmxg==","_npmVersion":"11.16.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.5","najm-i18n":"^2.0.3","najm-rate":"^2.0.3","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_3.2.0_1788008678089_0.7583207460871084","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"najm-auth","version":"3.2.1","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@3.2.1","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"080720d8adf123906c754109ccb5d55b1faa4b28","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-3.2.1.tgz","fileCount":27,"integrity":"sha512-IRHAPi9t0B+dPoDuE1qlgea1xJ6oA4YrTTy7JHRs4wtyJGX9ZWl7oDsGNKeMdvQEcNXye4c2cetO8ublJ8MQFg==","signatures":[{"sig":"MEUCIEi64OFYwZ+DIEHGs//9riAgDyJrGldT/nXLMAfapyu3AiEA3SM2KsXMYaAuO5f3qgFIeHIsfmDvVhGdmAN9nGOrvs4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":808460},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/AppData/Local/Temp/najm-release-2c87be6/najm-auth-3.2.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\AppData\\Local\\Temp\\najm-release-2c87be6\\najm-auth-3.2.1.tgz","_integrity":"sha512-IRHAPi9t0B+dPoDuE1qlgea1xJ6oA4YrTTy7JHRs4wtyJGX9ZWl7oDsGNKeMdvQEcNXye4c2cetO8ublJ8MQFg==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.5","najm-i18n":"^2.0.3","najm-rate":"^2.0.3","najm-cache":"^2.0.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_3.2.1_1788436607515_0.08815322740669407","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"najm-auth","version":"3.3.0","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@3.3.0","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"1f6f5efb4dfec996b5c95a06bf892d608c7b6151","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-3.3.0.tgz","fileCount":27,"integrity":"sha512-ssYQb+CCNtDaRdnD4dVXZhn/7LlSueDHY/FnzAknx3REqw+2a2MLgy8ngIC4h8oaQpALp3GJcfI6MKWJ5TO/yw==","signatures":[{"sig":"MEQCIGjPJjOe1N7Yx39wkHQAEQKE5Em4TtHaO7xsXmRZKF8eAiBygfuTNS5BnnTLctVxCaqy0vmKDaTyyYaFoPxdXbGHlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":808714},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm/dist-publish/najm-auth-3.3.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm\\dist-publish\\najm-auth-3.3.0.tgz","_integrity":"sha512-ssYQb+CCNtDaRdnD4dVXZhn/7LlSueDHY/FnzAknx3REqw+2a2MLgy8ngIC4h8oaQpALp3GJcfI6MKWJ5TO/yw==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.5","najm-i18n":"^2.0.3","najm-rate":"^2.1.0","najm-cache":"^2.1.0","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.3","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_3.3.0_1788481006706_0.09176292026402466","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"najm-auth","version":"3.3.1","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@3.3.1","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"0f384bda5bc1b4ad10f7bdb055da749b44d2203d","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-3.3.1.tgz","fileCount":27,"integrity":"sha512-OZN+W6wTREFYXYsh7O1C1kzUvkht6pljPfVnyQ03Rf3zRCn6euDG03CyQf/uFtjN8iTQAd9aIWKcBa27oi8HgQ==","signatures":[{"sig":"MEQCIHQy2gVWpboLSG6HmSy4MnqdhsDqKwsNGeN5ScLwG0RfAiAkbzE0FUxb32RULJRNnujKe880iJ3ahjHhqjfKQSRanw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":809025},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm/dist-publish/najm-auth-3.3.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm\\dist-publish\\najm-auth-3.3.1.tgz","_integrity":"sha512-OZN+W6wTREFYXYsh7O1C1kzUvkht6pljPfVnyQ03Rf3zRCn6euDG03CyQf/uFtjN8iTQAd9aIWKcBa27oi8HgQ==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.6","najm-i18n":"^2.1.1","najm-rate":"^2.1.1","najm-cache":"^2.1.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_3.3.1_1788529609763_0.7333977781091829","host":"s3://npm-registry-packages-npm-production"}},"3.3.2":{"name":"najm-auth","version":"3.3.2","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@3.3.2","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"ec7722f7211ed4ba723fd662a73311f8d0cc9fe4","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-3.3.2.tgz","fileCount":27,"integrity":"sha512-Hgtj0ySDxVmg7LE7veXSPeXvfYqPOIyu+OAXFPkpADd65b26nH6gK6KTIxxk5K/qjGggUL/WxeF0RK4sZxcisw==","signatures":[{"sig":"MEUCIHILNVL/qNhujT1D8tlLMVUzaMM3HxQ9e9EZpDYCRLHpAiEAvbaN81WBardDdwQKQBicCEBSFS5T08RuXr+f4sogbTM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":809390},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm/dist-publish/najm-auth-3.3.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm\\dist-publish\\najm-auth-3.3.2.tgz","_integrity":"sha512-Hgtj0ySDxVmg7LE7veXSPeXvfYqPOIyu+OAXFPkpADd65b26nH6gK6KTIxxk5K/qjGggUL/WxeF0RK4sZxcisw==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.6","najm-i18n":"^2.1.1","najm-rate":"^2.1.1","najm-cache":"^2.1.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_3.3.2_1788531622170_0.43282607886031865","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"najm-auth","version":"3.4.0","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@3.4.0","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"ebaa7d92426544f7fdb9f4e72e80975cf9b144eb","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-3.4.0.tgz","fileCount":27,"integrity":"sha512-n7WeG5Dxz/LGQFcS1uHwu0+Pw5SOGEJ76o/YLLWaYWda+Eqn1Z0CnD4osIL8lwTy/dMssxsevHWB+g+Md0Nn7g==","signatures":[{"sig":"MEYCIQCcKyIBhkZ8CW5H16ccr5dIG40FD8NAD938XzpQ11OFmwIhAMJIRNKUM2Z1VIaeDMo9mOkTJxJcjtw0j1DEyHPBpRkS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":825844},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"gitHead":"26be4565e648ec619f3625f9659e31c45f8f6ffb","scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.6","bcryptjs":"^3.0.2","najm-core":"^2.0.6","najm-i18n":"^2.1.1","najm-rate":"^2.1.1","najm-cache":"^2.1.2","najm-email":"^2.0.2","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_3.4.0_1788558537403_0.3133751669575795","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"najm-auth","version":"4.0.0","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@4.0.0","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"f8677c17298deb7ad728432c837ed2443e90b92a","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-4.0.0.tgz","fileCount":27,"integrity":"sha512-eqGKz9DOYts9W3W+oulR0gC6M5BU30pXkmqL38QSpjUouaMpVuB/axU36wP0yo2qNwD4i2EAsmh5Kq+iR6Kkeg==","signatures":[{"sig":"MEUCIQCxKhQ1s6MLY2Ya3b/N6zX444/alTzrvg95tPx/DLoxXQIgQwoWyLxxUIkgxjGBGNTlVZPsNwr9kZhcHBwXhZpC0OA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":860628},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm-release-auth-security/dist-publish/security-release/najm-auth-4.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts","test:real-infra":"bun test test/real-postgres-redis-security.test.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm-release-auth-security\\dist-publish\\security-release\\najm-auth-4.0.0.tgz","_integrity":"sha512-eqGKz9DOYts9W3W+oulR0gC6M5BU30pXkmqL38QSpjUouaMpVuB/axU36wP0yo2qNwD4i2EAsmh5Kq+iR6Kkeg==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.16","bcryptjs":"^3.0.2","najm-core":"^2.0.6","najm-i18n":"^2.1.2","najm-rate":"^2.1.1","najm-cache":"^2.2.0","najm-email":"^2.0.3","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_4.0.0_1788621863858_0.8103571040674271","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"najm-auth","version":"4.0.1","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@4.0.1","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"9f3f2c23b1c7c5e378d3cef6229b1702071a72f8","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-4.0.1.tgz","fileCount":27,"integrity":"sha512-gfuz4kjKkeRnH26FQhFFCYdHZxXlqGcP/Nn2QtDw6ag6BSW/J4hEiqadXninR0s7Z31rBEeYQBY0EUZaydVCrg==","signatures":[{"sig":"MEUCICQKyEElhxuu+erf5eKy8qVUt1gU/mOoPWMsvxpMchAwAiEA/s3d6Zc86aWRS+f6wkF+MMpa1E/MCvspcRUC1MWLPL4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":862219},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm-auth-4.0.1-release/dist-publish/najm-auth-4.0.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts","test:real-infra":"bun test test/real-postgres-redis-security.test.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm-auth-4.0.1-release\\dist-publish\\najm-auth-4.0.1.tgz","_integrity":"sha512-gfuz4kjKkeRnH26FQhFFCYdHZxXlqGcP/Nn2QtDw6ag6BSW/J4hEiqadXninR0s7Z31rBEeYQBY0EUZaydVCrg==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.16","bcryptjs":"^3.0.2","najm-core":"^2.0.6","najm-i18n":"^2.1.2","najm-rate":"^2.1.1","najm-cache":"^2.2.0","najm-email":"^2.0.3","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_4.0.1_1788692553087_0.5052191000935176","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"najm-auth","version":"4.0.2","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@4.0.2","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"75cb700c3e8cf545b75e2a358b33a71407e0172c","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-4.0.2.tgz","fileCount":27,"integrity":"sha512-QtemIBgejquvH+6CGNQ/AmKhTcioOTi9j3PGSonhym3R82x/Beki8HRrlTiYeRQxIR0TmvzUOCtrutOPDjfi7w==","signatures":[{"sig":"MEYCIQC5Y7L4QHo4KTkGf7rsuId0xENlrKl7ZWe7Gv+eLzvUWQIhAJM3bEiqMuONEp9MrIGE03Xo6hV+8RENUBDXyxVq2mq6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":863461},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/AppData/Local/Temp/najm-email-branding-20260906/dist-publish/najm-auth-4.0.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts","test:real-infra":"bun test test/real-postgres-redis-security.test.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\AppData\\Local\\Temp\\najm-email-branding-20260906\\dist-publish\\najm-auth-4.0.2.tgz","_integrity":"sha512-QtemIBgejquvH+6CGNQ/AmKhTcioOTi9j3PGSonhym3R82x/Beki8HRrlTiYeRQxIR0TmvzUOCtrutOPDjfi7w==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.16","bcryptjs":"^3.0.2","najm-core":"^2.0.6","najm-i18n":"^2.1.2","najm-rate":"^2.1.1","najm-cache":"^2.2.0","najm-email":"^2.0.4","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_4.0.2_1788699159644_0.6543233648256399","host":"s3://npm-registry-packages-npm-production"}},"4.0.3":{"name":"najm-auth","version":"4.0.3","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@4.0.3","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"30c2ffb7d80d7917edf23776f71cc25373f8a65c","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-4.0.3.tgz","fileCount":27,"integrity":"sha512-i2c3fuQ8JHPL4dVS9ElwyR/tzcWMOZLx5YbG8GkTYEVQblBq7cu8Ppt5XmkP2XBlVgFNhd5+G4/atnPhadgIUA==","signatures":[{"sig":"MEQCIAwUbVHgPJ1ym5cZ8UoyE7ZJ2ErM+355NRx0380TOMysAiAF7KNhC7iR5nztudyRbESbjrOTb9CB71PP0bX/nKaBgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCwxrdoUjSFVPAoK6o0tTSgN0VWMKaDfqOHvMQR4Gtb9wIgbXKq0ZkkLiIheu9uos9CuHtO9k4isaV0D6KKMqZr/A4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":862690},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm/dist-publish/najm-auth-4.0.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts","test:real-infra":"bun test test/real-postgres-redis-security.test.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm\\dist-publish\\najm-auth-4.0.3.tgz","_integrity":"sha512-i2c3fuQ8JHPL4dVS9ElwyR/tzcWMOZLx5YbG8GkTYEVQblBq7cu8Ppt5XmkP2XBlVgFNhd5+G4/atnPhadgIUA==","deprecated":"Superseded by 4.0.4; 4.0.3 omitted account invitation branding contracts.","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.16","bcryptjs":"^3.0.2","najm-core":"^2.0.6","najm-i18n":"^2.1.2","najm-rate":"^2.1.1","najm-cache":"^2.2.0","najm-email":"^2.0.3","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_4.0.3_1789291824004_0.9010081263110647","host":"s3://npm-registry-packages-npm-production"}},"4.0.4":{"name":"najm-auth","version":"4.0.4","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@4.0.4","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"54bf3b806bf5e7b34e960bc8a37043732af7444e","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-4.0.4.tgz","fileCount":27,"integrity":"sha512-559UKeS4TCiT6t5l2GSQtOadXUPTRpYBRxNWhI7C3W9ojMGkuKDsK9JnPFr4CpC2EP+ZhFvnACD1Qh9nluiAeQ==","signatures":[{"sig":"MEQCIGHXIKtCHfuU9StV4wEQ/jIW+wQjeV1KxeWsO33eOnJfAiA5/lxJggWc1QFClUNZ3qf36oiBF6kzhiiLzZYVLJ7aTQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDYeif8+GF6VuVvxN/Hw8VXdLBcphxkbV4Ut0ma38L7VAIgUYPkt20ApsHUnfw2+yatmOpXVzXnSgDfz96w6JXBC5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":865407},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm/dist-publish/najm-auth-4.0.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts","test:real-infra":"bun test test/real-postgres-redis-security.test.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm\\dist-publish\\najm-auth-4.0.4.tgz","_integrity":"sha512-559UKeS4TCiT6t5l2GSQtOadXUPTRpYBRxNWhI7C3W9ojMGkuKDsK9JnPFr4CpC2EP+ZhFvnACD1Qh9nluiAeQ==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.16","bcryptjs":"^3.0.2","najm-core":"^2.0.6","najm-i18n":"^2.1.2","najm-rate":"^2.1.1","najm-cache":"^2.2.0","najm-email":"^2.0.4","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_4.0.4_1789292805117_0.9297915561325065","host":"s3://npm-registry-packages-npm-production"}},"4.0.5":{"name":"najm-auth","version":"4.0.5","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@4.0.5","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"c5db5929987e531e98d0eecf4f425f71a91e4f16","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-4.0.5.tgz","fileCount":27,"integrity":"sha512-+uK3Ni+zOuSHQMtJwv6ct6n2KRxp0XrLJICnjXwJvwf1xU5JoFSu2A3/5c2Ki2uphX61RmR/89qUulF0DLAcIg==","signatures":[{"sig":"MEYCIQDvda6/7Y1Al0t4FnaiPR/HBkwVl84RgjJRp5nrF12+RgIhAK+IqPdvufkwoyq5/4BZcJHgFjrAHlt0YM3TqibRf1ku","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCE2ZUFuaviNvmlEC0qUzBZabxhZXkDbrGwtG9X8NpCFAIgMHZzabHmz1MersWeneDqWgmFS2cNisROqXJocVmFf2c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":869465},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm-auth-release-405/dist-publish/najm-auth-4.0.5.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts","test:real-infra":"bun test test/real-postgres-redis-security.test.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm-auth-release-405\\dist-publish\\najm-auth-4.0.5.tgz","_integrity":"sha512-+uK3Ni+zOuSHQMtJwv6ct6n2KRxp0XrLJICnjXwJvwf1xU5JoFSu2A3/5c2Ki2uphX61RmR/89qUulF0DLAcIg==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.16","bcryptjs":"^3.0.2","najm-core":"^2.0.6","najm-i18n":"^2.1.2","najm-rate":"^2.1.1","najm-cache":"^2.2.0","najm-email":"^2.0.4","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_4.0.5_1789808305466_0.2551814187456911","host":"s3://npm-registry-packages-npm-production"}},"4.0.6":{"name":"najm-auth","version":"4.0.6","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@4.0.6","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"ba7b3832900390eeb21ec495ffdcfaf64a56e828","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-4.0.6.tgz","fileCount":27,"integrity":"sha512-q/n7xS34GwdqBD7ybccaiyzaBcCQLmcWxPJDoJWdZBzj2dRv7b+5UKZuQ7drGvLHcOFmLFFLP4J/8jkxi7jgQA==","signatures":[{"sig":"MEQCIHMrtu16iqlz3yhxynvxO4SRBi/jv30XyLv6AjAiSAoNAiAFRV1gXJ8+VwUP7KrPTPWXqP6vMag9MylnoBp8G8aEqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHBBQv74qdWBerPaUmFqy9WLFJlGaMdCF2Ox5ZHKiwGAAiEAjk7urLgTHFPZWIS7UFKoCiRpBasEblBNt4k2t5OdH2s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":868330},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm/dist-publish/najm-auth-4.0.6.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts","test:real-infra":"bun test test/real-postgres-redis-security.test.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm\\dist-publish\\najm-auth-4.0.6.tgz","_integrity":"sha512-q/n7xS34GwdqBD7ybccaiyzaBcCQLmcWxPJDoJWdZBzj2dRv7b+5UKZuQ7drGvLHcOFmLFFLP4J/8jkxi7jgQA==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.16","bcryptjs":"^3.0.2","najm-core":"^2.0.6","najm-i18n":"^2.1.2","najm-rate":"^2.1.1","najm-cache":"^2.2.0","najm-email":"^2.0.4","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_4.0.6_1789839483204_0.9481509773958405","host":"s3://npm-registry-packages-npm-production"}},"4.0.7":{"name":"najm-auth","version":"4.0.7","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@4.0.7","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"ff9f06c3c37b0960466c132d2c514feb0f2e8a14","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-4.0.7.tgz","fileCount":27,"integrity":"sha512-NvR2Nir23kdPVRuRNtpxIaMErCgnwAy3Zu3dwYyh8aVW6GXHT0mbSmP/2dMDEsGe6wQVvQK1IiKjrZ77IfFvVA==","signatures":[{"sig":"MEUCIBhDdPQT4CN3hCR0LPIYg8RMZb33xpSNt0AkteEGv7i2AiEA2S2sI2G+WFG8xk4x477njIixHZuzI3pJYo+u4VUif0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCc1/eEICduseME/Z7QnRFD2vIiM79rwD73GKE62wkjXAIhAKbAzuzjrhTxNPoHKBdY2sLDs6+Al/e6SX6eycTH3mXe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":881177},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm/dist-publish/najm-auth-4.0.7.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts","test:real-infra":"bun test test/real-postgres-redis-security.test.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm\\dist-publish\\najm-auth-4.0.7.tgz","_integrity":"sha512-NvR2Nir23kdPVRuRNtpxIaMErCgnwAy3Zu3dwYyh8aVW6GXHT0mbSmP/2dMDEsGe6wQVvQK1IiKjrZ77IfFvVA==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.16","bcryptjs":"^3.0.2","najm-core":"^2.0.6","najm-i18n":"^2.1.2","najm-rate":"^2.1.1","najm-cache":"^2.2.0","najm-email":"^2.0.4","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_4.0.7_1789927786812_0.48842416974245273","host":"s3://npm-registry-packages-npm-production"}},"4.0.8":{"name":"najm-auth","version":"4.0.8","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@4.0.8","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"bff4aca7af75df1be7255550184a3c836ea2f023","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-4.0.8.tgz","fileCount":27,"integrity":"sha512-Wmq7bPchADz1jkToYlBD6BYr+WFHCo5KQJrjyLCYT0+bDaeYavwK/kWwlRDsReOQ/zqQdCxVrEAtNyc7MPNNSw==","signatures":[{"sig":"MEYCIQCRRKl4ChnLL5XdLdqT8T9IkvfCA9BVhO4jDNm1XLPeLgIhAKwjh8gQRtFrz50+7el44QKGpHvPmQIamA6ub01wJlzq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIARlIzyr+WPp1kbMZsYaqTUsat2DebrNQEWdNpGe0PI6AiEAlCxLrKXm1mWPDSIxZoafiWiqVoLfJCy4CzmNRU/V5is=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":882590},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm/dist-publish/najm-auth-4.0.8.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts","test:real-infra":"bun test test/real-postgres-redis-security.test.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm\\dist-publish\\najm-auth-4.0.8.tgz","_integrity":"sha512-Wmq7bPchADz1jkToYlBD6BYr+WFHCo5KQJrjyLCYT0+bDaeYavwK/kWwlRDsReOQ/zqQdCxVrEAtNyc7MPNNSw==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.16","bcryptjs":"^3.0.2","najm-core":"^2.0.6","najm-i18n":"^2.1.2","najm-rate":"^2.1.1","najm-cache":"^2.2.0","najm-email":"^2.0.4","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_4.0.8_1789935281310_0.22925994636090574","host":"s3://npm-registry-packages-npm-production"}},"4.0.9":{"name":"najm-auth","version":"4.0.9","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@4.0.9","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"9e44e7af32abba5f9ff822ae7b9723a76fa2e15b","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-4.0.9.tgz","fileCount":27,"integrity":"sha512-6sMq0t+PdAlfS7kXDBvz5BDqAdj5MUh8YLhmvXuhJoey9OvBxcsdu0WaaXwTM2j6G4hTfg9BslyZXHfuScjzwg==","signatures":[{"sig":"MEYCIQCfxUDsbAiX2byVoiAlKBlyTCoUHWqZhGPp5rcdjnsRWwIhAP2GEbbrvwtggqxDKRWqdV3HeKL/0pW7/rhY2qGH2PxA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHf9PQVWwXhC90RUxypkZBsCuZq7pBmXmJAfwJUbjnvbAiBUtXroAMdRfPq2bxAWgCPrQUm5mn1cF2neQM35+UsVww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":882550},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm/dist-publish/najm-auth-4.0.9.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts","test:real-infra":"bun test test/real-postgres-redis-security.test.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm\\dist-publish\\najm-auth-4.0.9.tgz","_integrity":"sha512-6sMq0t+PdAlfS7kXDBvz5BDqAdj5MUh8YLhmvXuhJoey9OvBxcsdu0WaaXwTM2j6G4hTfg9BslyZXHfuScjzwg==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.16","bcryptjs":"^3.0.2","najm-core":"^2.0.6","najm-i18n":"^2.1.2","najm-rate":"^2.1.1","najm-cache":"^2.2.0","najm-email":"^2.0.4","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_4.0.9_1790187556910_0.7207074774832123","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"najm-auth","version":"4.1.0","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@4.1.0","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"633102d4406fd35fc89c186d4365bb9ed5dd9ec7","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-4.1.0.tgz","fileCount":27,"integrity":"sha512-k4dGtN35Q4S701QfVtIyenvaYFe3cHeInjS0qsZBEW9hZt9dPwfL+XapRfPpnd5It6W8J8q6THgBB3iwmdnOBg==","signatures":[{"sig":"MEQCIB0HQwbYN9SlMWSBc0zqcZqicPk0PdksTZx2weCSgMlLAiBsV1yba+3VPjmsT+1t/dOXmR6VnELbWJ851XPJ0qMoPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDwMDXSjpdNhbEa6nmyhnR0HBs/VO6TmJ2l7oN8iCA1DAiEA68EK+EKxDhj5VZ8jVnE4oE1GfZXOLxv21EZamwTSAGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":887716},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm/dist-publish/najm-auth-4.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts","test:real-infra":"bun test test/real-postgres-redis-security.test.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm\\dist-publish\\najm-auth-4.1.0.tgz","_integrity":"sha512-k4dGtN35Q4S701QfVtIyenvaYFe3cHeInjS0qsZBEW9hZt9dPwfL+XapRfPpnd5It6W8J8q6THgBB3iwmdnOBg==","_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.16","bcryptjs":"^3.0.2","najm-core":"^2.0.6","najm-i18n":"^2.1.2","najm-rate":"^2.1.1","najm-cache":"^2.2.0","najm-email":"^2.0.4","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_4.1.0_1790383480204_0.4858203711628697","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"najm-auth","version":"4.2.0","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@4.2.0","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"238706a5cc54f5486ef7436a372c8f74aaa9d4e3","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-4.2.0.tgz","fileCount":27,"integrity":"sha512-90GEH6oNzldlEIVgeY7Z6q8ZQm4ZA38bfCLom1iG5xEFq1PXpCkvDXduQib99NNbmCI+vzvuuaNhcacDH5nfHw==","signatures":[{"sig":"MEQCIBhvYm2Duy/Q7hapcBJfcLcFdv/yefh/0+RB9f58f1r+AiA/1kKHdi4S/1LhQ33nmsYE/gmgpLK0b8Tgkx09Waw3NQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFqG7uWUg6tYlQ0ilxWAR2q41cbqXYV3cKXkyYaxzhYDAiAExl1zJvfIkJpw7bycdSh17WCDf5WtSEtXAadk0PT8XQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":890851},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"gitHead":"ce7a5b90b1fc396725a7722b5165ba4d52bcd768","scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts","test:real-infra":"bun test test/real-postgres-redis-security.test.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.16","bcryptjs":"^3.0.2","najm-core":"^2.1.0","najm-i18n":"^2.1.2","najm-rate":"^2.1.1","najm-cache":"^2.2.0","najm-email":"^2.0.4","najm-guard":"^2.0.2","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_4.2.0_1790611614420_0.0872724326328167","host":"s3://npm-registry-packages-npm-production"}},"4.2.1":{"name":"najm-auth","version":"4.2.1","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@4.2.1","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"3ba52efead7bde6bef62a28e5bee8623b8d9b4a4","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-4.2.1.tgz","fileCount":27,"integrity":"sha512-etC8724EIxHznIWtQ2v7DCptHr3l0OnAv481YMxWwtsKo+XnbRAXPLYaAlWDVVxHGZrmx2m0WHEyJD0gWDkl9Q==","signatures":[{"sig":"MEUCIQC7ojESAGK0iMjDzjN62N1IlAYBTZh1yfbulj+Id1aOHQIgLOvTfDnmpFMKvrNUn283dGjzfgEkoWKOR34LYtI3DlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEvbvlCpEGjfFGYjrJfdlPcLbEcV0bNH9chQHgXv93yDAiAjUl6urbK9Q+qAv8qBXeEDz/UonSAitHJDiqM1ENYmyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":891641},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"gitHead":"8d9c2c83cc6467bbef4f93a897966da9e501e763","scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts","test:real-infra":"bun test test/real-postgres-redis-security.test.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.16","bcryptjs":"^3.0.2","najm-core":"^3.0.0","najm-i18n":"^2.1.2","najm-rate":"^2.1.1","najm-cache":"^2.2.0","najm-email":"^2.0.4","najm-guard":"^2.1.0","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_4.2.1_1790641046115_0.22900159926179198","host":"s3://npm-registry-packages-npm-production"}},"4.2.2":{"name":"najm-auth","version":"4.2.2","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"author":"","license":"MIT","_id":"najm-auth@4.2.2","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"9f36d05f54c893424575efaaaeb1fdfa292bfd32","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-4.2.2.tgz","fileCount":27,"integrity":"sha512-eHcfXgPhcADuuJakgaGobHC290hbeP+VsWfFc1MRYWv0Rw0OOnu5BzU1LaJLC4z6mu6qZS5MzVUv3rDP0wbMOw==","signatures":[{"sig":"MEYCIQCs3sepfmiGQ7uVEcizGkmNwRr9Gi/ZT+GWM5CgpmNUogIhALcTOAlIGgVncWxR31iiRyNcNGPK9Q77OS2mY9xzwrhI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICZaEYQ99enSxjOFexRiJcw6ip47Y1xhQMdCd6uyJAy3AiEAn9AsPWJ+um4phMo6HitnOPGKoL70RxUUhWWIL4mOa7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":892198},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"gitHead":"500005565960a0e79e420610b44effd161b8eeec","scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts","test:real-infra":"bun test test/real-postgres-redis-security.test.ts"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.16","bcryptjs":"^3.0.2","najm-core":"^3.0.0","najm-i18n":"^2.1.2","najm-rate":"^2.1.1","najm-cache":"^2.2.0","najm-email":"^2.0.4","najm-guard":"^2.1.0","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-auth_4.2.2_1790706819950_0.8822832164499128","host":"s3://npm-registry-packages-npm-production"}},"4.2.3":{"_id":"najm-auth@4.2.3","dist":{"shasum":"dff40202d152bb186797eecfabad26f1fb60ba40","tarball":"https://registry.npmjs.org/najm-auth/-/najm-auth-4.2.3.tgz","fileCount":27,"integrity":"sha512-iBkhKp7x6sqtWDzbH67zRY5OovrxqQOKb45Ydr0MhwPD273+XUDMCMBC7I081IvoiTtMJxzVH7y0kvnSf/zvLw==","signatures":[{"sig":"MEYCIQDC34BR2v8Dw7CzKs1WhgXp2sQNmey71ehscVq05HxtqAIhAPDGtkr7QaXhGdpy5U6ZqGAfpyctvjMklACcLADmu+Ff","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD31ot7gyGPro6+GaZgcydK1pMxj6rQXUB9AH/749PWIAIgH4EZ/fQzoijn2Luu7mcBOVDXjm3eI3Z0cQHWHmWd6qs="}],"unpackedSize":897283},"main":"./dist/index.js","name":"najm-auth","type":"module","types":"./dist/index.d.ts","author":"","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./client/edge":{"types":"./dist/client/edge.d.ts","import":"./dist/client/edge.js","default":"./dist/client/edge.js"},"./identity/ma":{"types":"./dist/identity/ma.d.ts","import":"./dist/identity/ma.js","default":"./dist/identity/ma.js"},"./client/react":{"types":"./dist/client/react/index.d.ts","import":"./dist/client/react/index.js","default":"./dist/client/react/index.js"},"./client/server":{"types":"./dist/client/server/index.d.ts","import":"./dist/client/server/index.js","default":"./dist/client/server/index.js"},"./client/server/react":{"types":"./dist/client/server/react.d.ts","import":"./dist/client/server/react.js","browser":"./dist/client/server/reactClientGuard.js","default":"./dist/client/server/react.js","react-server":"./dist/client/server/react.js"}},"gitHead":"bef574d3afa57c03937abc4a1f0d9767655c5337","license":"MIT","scripts":{"test":"bun test && bun run test:rsc","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","start":"bun --watch src/main.ts","test:rsc":"bun test --conditions react-server test/react-server-auth.test.ts","test:watch":"bun test --watch","test:next16":"bun run build && bun integration/next16-proxy/run.ts","test:real-infra":"bun test test/real-postgres-redis-security.test.ts"},"version":"4.2.3","_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"_npmVersion":"11.13.0","description":"Authentication and authorization library for najm framework","directories":{},"maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.2.1","jose":"^6.1.3","nanoid":"^5.1.16","bcryptjs":"^3.0.2","najm-core":"^3.0.0","najm-i18n":"^2.1.2","najm-rate":"^2.1.1","najm-cache":"^2.2.0","najm-email":"^2.0.4","najm-guard":"^2.1.0","timestring":"^7.0.0","jsonwebtoken":"^9.0.3","najm-cookies":"^2.0.2","najm-database":"^2.0.4","lodash.isempty":"^4.4.0","najm-validation":"^2.0.2","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.11","tsup":"^8.5.1","happy-dom":"^20.11.1","typescript":"^5.9.3","@types/node":"^25.0.2","drizzle-kit":"^0.31.10","drizzle-orm":"^0.45.2","@types/jsonwebtoken":"^9.0.10","@testing-library/react":"^16.3.2"},"peerDependencies":{"hono":"^4.12.18","next":">=14","react":">=18","drizzle-orm":"^0.45.2"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/najm-auth_4.2.3_1790714186609_0.6540945091361965"}}},"time":{"created":"2026-02-21T00:20:54.734Z","modified":"2026-09-29T20:36:26.868Z","0.1.1":"2025-12-15T22:27:39.192Z","0.1.2":"2025-12-15T22:47:25.314Z","0.1.3":"2025-12-15T23:09:10.528Z","0.1.4":"2025-12-16T16:53:44.489Z","0.1.6":"2025-12-16T17:32:52.108Z","0.1.7":"2025-12-16T17:40:16.219Z","0.1.8":"2025-12-16T17:47:28.445Z","0.1.9":"2025-12-16T19:23:11.498Z","0.1.10":"2025-12-16T20:05:37.047Z","0.1.11":"2025-12-16T20:25:15.927Z","0.1.12":"2025-12-16T22:26:08.406Z","0.1.13":"2026-02-17T14:06:56.111Z","0.1.14":"2026-02-17T23:43:34.916Z","0.1.15":"2026-02-18T12:05:15.441Z","0.1.16":"2026-02-18T23:12:36.011Z","1.1.1":"2026-02-21T00:20:54.976Z","1.1.2":"2026-03-07T11:15:19.780Z","1.1.3":"2026-03-13T21:28:51.455Z","1.1.4":"2026-03-14T09:41:38.863Z","1.1.5":"2026-03-16T21:07:47.836Z","1.1.6":"2026-03-16T22:44:09.897Z","1.1.7":"2026-03-18T00:20:41.739Z","1.1.8":"2026-04-03T19:21:01.109Z","1.1.9":"2026-04-03T19:38:03.836Z","1.1.10":"2026-04-03T20:39:30.907Z","1.1.11":"2026-04-04T04:44:06.991Z","1.1.12":"2026-04-06T10:16:58.091Z","1.1.13":"2026-04-06T13:01:58.837Z","1.1.14":"2026-04-06T20:03:49.892Z","1.1.15":"2026-04-08T20:42:09.901Z","1.1.16":"2026-04-09T20:27:05.425Z","1.1.17":"2026-04-09T21:46:56.554Z","1.1.19":"2026-04-09T23:26:46.639Z","1.1.20":"2026-04-09T23:35:58.960Z","1.1.21":"2026-04-10T23:04:33.020Z","1.1.23":"2026-04-11T00:24:32.892Z","1.1.24":"2026-04-11T01:06:35.137Z","1.1.25":"2026-04-11T09:25:34.705Z","1.1.26":"2026-04-11T21:03:17.269Z","1.1.27":"2026-04-11T22:53:16.299Z","1.1.29":"2026-04-12T10:20:47.658Z","1.1.30":"2026-04-18T21:10:35.601Z","1.1.31":"2026-04-19T18:35:23.943Z","1.1.32":"2026-04-19T18:52:40.117Z","1.1.33":"2026-04-23T21:16:34.944Z","1.1.34":"2026-05-07T22:52:43.056Z","1.1.35":"2026-05-07T22:57:27.139Z","1.1.36":"2026-05-13T08:21:05.202Z","1.1.38":"2026-06-02T22:01:42.450Z","1.1.39":"2026-06-13T15:59:23.134Z","1.1.41":"2026-06-21T21:42:22.859Z","1.1.42":"2026-06-29T16:55:50.175Z","1.1.43":"2026-06-29T17:57:21.874Z","1.1.44":"2026-07-02T11:53:52.188Z","2.0.1":"2026-07-10T13:27:21.585Z","2.0.2":"2026-07-22T11:15:59.936Z","2.0.3":"2026-07-23T01:22:36.184Z","2.0.4":"2026-07-23T11:24:29.973Z","2.0.5":"2026-07-23T12:44:46.713Z","2.0.6":"2026-07-23T18:46:04.392Z","2.0.9":"2026-07-23T21:01:15.745Z","2.0.10":"2026-07-23T23:08:25.887Z","2.0.11":"2026-07-27T13:34:10.996Z","2.0.12":"2026-08-01T18:24:54.201Z","2.0.13":"2026-08-02T02:37:46.230Z","2.0.14":"2026-08-07T10:58:16.617Z","2.0.15":"2026-08-08T01:15:23.819Z","3.0.0":"2026-08-08T16:35:17.626Z","3.1.0":"2026-08-08T23:48:24.138Z","3.1.1":"2026-08-09T13:27:46.485Z","3.1.2":"2026-08-12T18:32:51.167Z","3.1.3":"2026-08-12T18:56:12.340Z","3.1.4":"2026-08-14T13:26:35.513Z","3.1.5":"2026-08-27T23:01:36.797Z","3.2.0":"2026-08-29T13:04:38.272Z","3.2.1":"2026-09-03T11:56:47.652Z","3.3.0":"2026-09-04T00:16:46.868Z","3.3.1":"2026-09-04T13:46:49.936Z","3.3.2":"2026-09-04T14:20:22.306Z","3.4.0":"2026-09-04T21:48:57.542Z","4.0.0":"2026-09-05T15:24:23.981Z","4.0.1":"2026-09-06T11:02:33.244Z","4.0.2":"2026-09-06T12:52:39.782Z","4.0.3":"2026-09-13T09:30:24.093Z","4.0.4":"2026-09-13T09:46:45.208Z","4.0.5":"2026-09-19T08:58:25.564Z","4.0.6":"2026-09-19T17:38:03.288Z","4.0.7":"2026-09-20T18:09:46.892Z","4.0.8":"2026-09-20T20:14:41.390Z","4.0.9":"2026-09-23T18:19:17.008Z","4.1.0":"2026-09-26T00:44:40.332Z","4.2.0":"2026-09-28T16:06:54.515Z","4.2.1":"2026-09-29T00:17:26.227Z","4.2.2":"2026-09-29T18:33:40.098Z","4.2.3":"2026-09-29T20:36:26.699Z"},"license":"MIT","keywords":["authentication","authorization","jwt","oauth","session","decorators","typescript"],"description":"Authentication and authorization library for najm framework","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"readme":"# najm-auth\n\nProduction-ready authentication and authorization library for the Najm framework. Provides JWT-based authentication, role-based access control (RBAC), permission-based access control (PBAC), and row-level ownership scoping.\n\n**Features:**\n- ✅ JWT authentication (access + refresh token strategy)\n- ✅ Automatic token rotation and blacklist-based revocation\n- ✅ Role-based access control (RBAC) with hierarchies\n- ✅ Permission-based access control (PBAC) with wildcards\n- ✅ Row-level ownership scoping for multi-tenant apps\n- ✅ Built-in password reset flow with email support\n- ✅ Forced first-login credential setup for provisioned accounts\n- ✅ Country identity presets so `06…` and `+2126…` resolve to one account\n- ✅ Multi-dialect support (PostgreSQL, SQLite)\n- ✅ Type-safe decorators with TypeScript\n- ✅ Rate limiting on auth endpoints\n- ✅ Internationalization (i18n) for all messages\n- ✅ Google OpenID Connect sign-in with PKCE and explicit account linking\n\n---\n\n## Installation\n\n```bash\nbun add najm-auth\n# Peer dependencies\nbun add hono drizzle-orm reflect-metadata\n```\n\n---\n\n## Quick Setup\n\n### 1. Initialize Database\n\n```typescript\n// src/database/schema.ts\nimport { authSchema } from 'najm-auth';\nimport { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core';\n\n// Your app tables\nexport const products = sqliteTable('products', {\n  id: text('id').primaryKey(),\n  name: text('name').notNull(),\n  userId: text('userId').notNull(),\n});\n\n// Combined schema (always include authSchema)\nexport const schema = {\n  ...authSchema,  // includes users, tokens, and credentialSetupSessions\n  products,\n};\n\n// src/database/index.ts\nimport { drizzle } from 'drizzle-orm/bun-sqlite';\nimport { Database } from 'bun:sqlite';\nimport { schema } from './schema';\n\nconst sqlite = new Database('./app.db');\nexport const db = drizzle(sqlite, { schema });\n```\n\n### 2. Configure Auth Plugin\n\n```typescript\n// src/main.ts\nimport 'reflect-metadata';\nimport { Server } from 'najm-core';\nimport { database } from 'najm-database';\nimport { auth } from 'najm-auth';\nimport { db } from './database';\n\nconst server = new Server()\n  .use(database({ default: db }))  // Required: database must be registered first\n  .use(auth({\n    dialect: 'sqlite',  // Auto-selects SQLite schema\n    jwt: {\n      accessSecret: process.env.JWT_ACCESS_SECRET!,    // Required\n      refreshSecret: process.env.JWT_REFRESH_SECRET!,  // Required\n      accessExpiresIn: '15m',       // Optional, default: 1h\n      refreshExpiresIn: '7d',       // Optional, default: 7d\n    },\n    frontendUrl: process.env.FRONTEND_URL || 'http://localhost:3000',  // For password reset links\n  }))\n  .load(/* your controllers and services */)\n  .listen(3000);\n```\n\n### 3. Set Environment Variables\n\n```bash\n# .env\nJWT_ACCESS_SECRET=<32-character-minimum-secret>\nJWT_REFRESH_SECRET=<32-character-minimum-secret>\nFRONTEND_URL=https://app.example.com\n# Optional Google sign-in\nGOOGLE_CLIENT_ID=<google-web-client-id>\nGOOGLE_CLIENT_SECRET=<google-web-client-secret>\n# Optional for a split frontend/API deployment. Otherwise FRONTEND_URL is used.\nGOOGLE_CALLBACK_URL=https://app.example.com/api/auth/oauth/google/callback\n# Optional GitHub sign-in\nGITHUB_CLIENT_ID=<github-oauth-app-client-id>\nGITHUB_CLIENT_SECRET=<github-oauth-app-client-secret>\nGITHUB_CALLBACK_URL=https://app.example.com/api/auth/oauth/github/callback\n```\n\n> ⚠️ **Security:** Generate secrets with `openssl rand -base64 32`\n\n---\n\n## Configuration Reference\n\n### AuthPluginConfig\n\n```typescript\nauth({\n  // Database\n  dialect?: 'pg' | 'sqlite'              // Default: 'pg' (RETURNING-capable engines only)\n  schema?: AuthSchema                      // Override dialect schema\n\n  // JWT\n  jwt?: {\n    accessSecret: string                   // Required, min 32 chars\n    accessExpiresIn?: string               // Default: 1h\n    refreshSecret: string                  // Required, min 32 chars\n    refreshExpiresIn?: string              // Default: 7d\n  }\n\n  // Cookies\n  refreshCookieName?: string               // Default: 'refreshToken'\n\n  // Database\n  database?: string                        // Default: 'default'\n  blacklistPrefix?: string                 // Default: 'auth:blacklist:'\n\n  // Registration\n  defaultRole?: string | null              // Auto-assign role to new users\n  publicRegistration?: boolean             // Default: true; mounts POST /auth/register\n  bcryptRounds?: number                    // Default: 10 (valid: 4-31)\n\n  // Frontend\n  frontendUrl?: string                     // Password reset link base URL\n  appName?: string                         // Security email brand (default: 'Your app')\n  accountInviteLogo?: {                    // Optional CID-backed inline mark\n    alt?: string\n    contentBase64: string\n    contentType: string\n    filename: string\n  }\n\n  // Login identifier normalization (see \"Identity presets\")\n  identity?: {\n    preset?: 'ma' | 'tn' | IdentityPreset | null   // Default: 'ma'\n    extend?: IdentityNormalizer[]                  // Runs before the preset\n  }\n\n  // Credential setup policy overrides (the flow itself is always on)\n  credentialSetup?: {\n    password?: {\n      passwordSchema?: ZodType<string>     // Default: 8-72 bytes, a letter and a digit\n      ttlMs?: number                       // Default: 600000 (10 minutes)\n      cookieName?: string                  // Default: 'najm.credential-setup'\n    }\n  }\n\n  // Optional external identity providers\n  oauth?: {\n    google?: true | {\n      clientId?: string                    // Or GOOGLE_CLIENT_ID\n      clientSecret?: string                // Or GOOGLE_CLIENT_SECRET\n      callbackUrl?: string                 // Or GOOGLE_CALLBACK_URL; otherwise frontendUrl + /api/auth/oauth/google/callback\n      frontendCallbackPath?: string        // Default: /auth/oauth/callback\n      errorRedirectPath?: string           // Default: /login\n      allowSignup?: boolean                // Default: true\n      autoLinkVerifiedEmail?: boolean      // Default: false\n      allowedHostedDomains?: string[]      // Validates the Google hd claim\n    }\n    github?: true | {\n      clientId?: string                    // Or GITHUB_CLIENT_ID\n      clientSecret?: string                // Or GITHUB_CLIENT_SECRET\n      callbackUrl?: string                 // Or GITHUB_CALLBACK_URL\n      frontendCallbackPath?: string        // Default: /auth/oauth/callback\n      errorRedirectPath?: string           // Default: /login\n      allowSignup?: boolean                // Default: true\n      autoLinkVerifiedEmail?: boolean      // Default: false\n    }\n  }\n\n  // Dependencies (forwarded to plugins)\n  validation?: ValidationPluginConfig\n  rateLimit?: RateLimitPluginConfig\n})\n```\n\n---\n\n## Auto-Registered Routes\n\nAll routes are prefixed with `/auth` and auto-registered by the plugin.\n\n### Authentication Routes\n\n| Method | Path | Description | Auth |\n|--------|------|-------------|------|\n| `POST` | `/auth/register` | Register new user (omitted when `publicRegistration: false`) | None |\n| `POST` | `/auth/login` | Login with email/password | None |\n| `POST` | `/auth/refresh` | Refresh access token (cookie) | None (uses refresh cookie) |\n| `POST` | `/auth/session/recover` | Reissue signed session without token rotation | Refresh cookie + recovery header |\n| `POST` | `/auth/logout` | Logout and revoke tokens | ✅ Required |\n| `GET` | `/auth/me` | Get current user profile | ✅ Required |\n| `POST` | `/auth/forgot-password` | Request password reset | None |\n| `POST` | `/auth/reset-password` | Confirm password reset | None |\n| `GET` | `/auth/oauth/google/start` | Start Google sign-in | None |\n| `GET` | `/auth/oauth/google/callback` | Verify Google callback and create Najm session | None |\n| `POST` | `/auth/oauth/google/link` | Link Google to the current user | ✅ Required |\n| `GET` | `/auth/credential-setup/setup` | Read the pending setup session | Setup cookie |\n| `POST` | `/auth/credential-setup/change` | Replace the temporary credential | Setup cookie |\n| `POST` | `/auth/credential-setup/cancel` | Abandon the setup session | Setup cookie |\n\nApplications with an approval-owned onboarding flow should set\n`publicRegistration: false`. This removes the unauthenticated route while\nretaining `AuthService.registerUser()`, `provisionUser()`, and other internal\naccount-management APIs for trusted application services. The registration\ncontroller also answers 404 when disabled if an older core mounts it anyway.\n\n### Identity presets\n\nLogin lookup, lockout accounting, and rate-limit bucketing all normalize the\nsubmitted identifier the same way. The pipeline is: email (lowercased) →\nproject extensions → the country preset → generic E.164.\n\nThe resolved pipeline belongs to the specific `auth()` plugin/server instance.\nMultiple isolated Najm servers can therefore use different country presets in\none process without replacing each other's login or rate-limit behavior.\n\nMorocco is the default, so `0612345678`, `212612345678`, and `+212612345678`\nall resolve to `+212612345678` with no configuration.\n\n```typescript\nauth();                                                  // preset: 'ma'\nauth({ identity: { extend: [employeeNumberNormalizer] } });\nauth({ identity: { preset: 'tn' } });                    // replaces Morocco\nauth({ identity: { preset: null, extend: [custom] } });  // generic only\n```\n\nLocal numbers are country-ambiguous, so presets **replace** each other rather\nthan stacking — two presets claiming `06…` would resolve one raw input to two\ndifferent accounts.\n\n### First-login credential setup\n\nProvision an account with a temporary credential and Najm refuses it a normal\nsession until the holder replaces it:\n\n```typescript\nimport { moroccanCinTemporaryCredential } from 'najm-auth/identity/ma';\n\nawait authService.provisionUser({\n  email: guardian.email,\n  phone: guardian.phone,\n  role: 'family',\n  temporaryCredential: moroccanCinTemporaryCredential(guardian.cin),\n  requireCredentialSetup: 'password',\n});\n```\n\n`temporaryCredential` also accepts a plain string, compared exactly and\ncase-sensitively — enough for a student or registration number:\n\n```typescript\nawait authService.provisionUser({\n  email: student.schoolEmail,\n  role: 'student',\n  temporaryCredential: student.registrationNumber,\n  requireCredentialSetup: 'password',\n});\n```\n\nSupplying both `password` and `temporaryCredential` is rejected, so an account\ncan never hold a permanent password that something also treats as temporary.\nTyped helpers such as `moroccanCinTemporaryCredential()` validate their value,\nand every temporary credential remains limited to bcrypt's 72-byte boundary.\n\nLogin then answers a discriminated result instead of a token pair:\n\n```typescript\nconst result = await auth.client.login({ identifier, password, rememberMe });\n\nif (result.nextStep === 'credential_setup') {\n  router.push('/change-password');   // no tokens were issued\n} else {\n  router.push('/dashboard');\n}\n```\n\nThe requirement is enforced at every session-establishment path — password\nlogin, `AuthSessionService.establish()`, Google OAuth (which redirects with\n`oauthError=oauth_credential_setup_required`), refresh, and signed-session\nrecovery — so verified-email OAuth linking cannot skip it. Marking a new\nrequirement also revokes the user's current sessions.\n\n`withAuthCookiePersistence` recognizes logout and setup boundaries on its own.\nAfter a successful logout it drops stale auth-cookie issuances and guarantees\nexactly one deletion for each configured auth cookie. It preserves a valid\nupstream deletion (including a custom cookie path), or synthesizes a canonical\ndeletion when one is missing. A setup response gets the same auth-cookie\ndeletions, clears the remembered preference, and leaves the opaque setup cookie\nalone.\n\n### Google Sign-In\n\nGoogle sign-in uses the server-side OpenID Connect authorization-code flow.\nNajm creates state, nonce, and PKCE values, verifies Google's signed ID token,\nthen issues the same Najm JWT, refresh token, and session cookie as password\nlogin. Google tokens are discarded and are never stored.\n\n```ts\nauth({\n  dialect: 'pg',\n  frontendUrl: 'https://app.example.com',\n  oauth: { google: true },\n})\n```\n\nWith `google: true`, credentials come from `GOOGLE_CLIENT_ID` and\n`GOOGLE_CLIENT_SECRET`; the callback defaults to\n`${FRONTEND_URL}/api/auth/oauth/google/callback`. Register that value exactly\nas an authorized redirect URI in Google Cloud. Set `GOOGLE_CALLBACK_URL` or\n`google: { callbackUrl: '...' }` when the API runs on a different origin.\nProduction callback URLs must use HTTPS; HTTP is accepted only for localhost.\n\nMount the browser completion route configured by `frontendCallbackPath`:\n\n```tsx\n'use client';\n\nimport { OAuthCallback } from 'najm-auth/client/react';\n\nexport default function OAuthCallbackPage() {\n  return <OAuthCallback fallback={<p>Finishing sign-in...</p>} />;\n}\n```\n\nThen use the headless button anywhere below `AuthProvider`:\n\n```tsx\nimport { GoogleLoginButton } from 'najm-auth/client/react';\n\n<GoogleLoginButton returnTo=\"/dashboard\">\n  <button type=\"button\">Continue with Google</button>\n</GoogleLoginButton>\n```\n\nGoogle accounts are keyed by Google's stable `sub` claim. If an existing Najm\nuser has the same email but is not linked, sign-in fails with\n`oauth_account_link_required` by default. After password login, call\n`client.linkOAuthAccount('google')` to prove control of both accounts. Setting\n`autoLinkVerifiedEmail: true` opts into verified-email linking.\n\n### GitHub Sign-In\n\nEnable GitHub with `oauth: { github: true }`. Credentials come from\n`GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET`; the callback defaults to\n`${FRONTEND_URL}/api/auth/oauth/github/callback`. Register that exact callback\non the GitHub OAuth App, and set `GITHUB_CALLBACK_URL` only for a split-origin\ndeployment. GitHub login uses authorization code plus PKCE, requests\n`user:email`, requires a verified primary email, and keys the durable provider\nlink by GitHub's numeric user ID.\n\nThe client exposes `loginWithGitHub()`, `useGitHubLogin()`, and the headless\n`GitHubLoginButton`; the generic `linkOAuthAccount('github')` method links an\nauthenticated Najm user.\n\n### Admin Routes (all require `@isAdmin()`)\n\n| Method | Path | Description |\n|--------|------|-------------|\n| `GET` | `/users?limit=50&offset=0` | List users (limit 1-100) |\n| `GET` | `/users/:id` | Get user by ID |\n| `POST` | `/users` | Create new user |\n| `PUT` | `/users/:id` | Update user |\n| `DELETE` | `/users/:id` | Delete user |\n| `GET` | `/roles` | List all roles |\n| `GET` | `/roles/:id` | Get role by ID |\n| `POST` | `/roles` | Create new role |\n| `PUT` | `/roles/:id` | Update role |\n| `DELETE` | `/roles/:id` | Delete role |\n| `GET` | `/permissions` | List all permissions |\n| `GET` | `/permissions/:id` | Get permission by ID |\n| `POST` | `/permissions` | Create new permission |\n| `PUT` | `/permissions/:id` | Update permission |\n| `DELETE` | `/permissions/:id` | Delete permission |\n| `POST` | `/permissions/assign/:roleId/:permissionId` | Assign permission to role |\n| `DELETE` | `/permissions/remove/:roleId/:permissionId` | Remove permission from role |\n\n---\n\n## Guards Reference\n\n### Authentication Guard\n\n```typescript\nimport { isAuth } from 'najm-auth';\n\n@Controller('/api/posts')\nclass PostController {\n  @Get('/')                    // Public\n  getAll() { }\n\n  @Post('/')\n  @isAuth()                    // Requires valid JWT\n  create(@Body() data: any) { }\n}\n```\n\n### Role Guards\n\n```typescript\nimport { defineRoles } from 'najm-auth';\n\nconst roles = defineRoles({\n  ADMIN: 'admin',\n  MODERATOR: 'moderator',\n  USER: 'user',\n}, {\n  superRoles: ['ADMIN'],       // admin also passes moderator/user role guards\n});\n\nexport const { isAdmin, isModerator, isUser } = roles;\n\n@Controller('/admin')\n@isAdmin()                     // All methods require admin role\nclass AdminController {\n  @Get('/users')\n  getUsers() { }\n}\n\n@Controller('/api/posts')\nclass PostController {\n  @Delete('/:id')\n  @isModerator()               // Method-level guard\n  deletePost() { }\n}\n```\n\n### Permission Guards\n\n```typescript\nimport { Can, canRead, canCreate, canUpdate, canDelete } from 'najm-auth';\n\n@Controller('/api/posts')\nclass PostController {\n  @Get('/')\n  @canRead('posts')            // Requires 'read:posts' permission\n  getAll() { }\n\n  @Post('/')\n  @canCreate('posts')          // Requires 'create:posts' permission\n  create(@Body() data: any) { }\n\n  @Put('/:id')\n  @canUpdate('posts')          // Requires 'update:posts' permission\n  update() { }\n\n  @Delete('/:id')\n  @canDelete('posts')          // Requires 'delete:posts' permission\n  delete() { }\n\n  @Post('/:id/publish')\n  @Can('publish:posts')        // Custom permission\n  publish() { }\n}\n```\n\n**Permission Wildcards:**\n- `*:*` — All actions on all resources\n- `create:*` — Create action on any resource\n- `*:posts` — Any action on posts\n\n### Combined Guards\n\n```typescript\n@Controller('/admin/reports')\n@isAdmin()                     // Require admin role\nclass ReportController {\n  @Get('/financial')\n  @Can('view:financial')       // AND require financial view permission\n  getFinancial() { }\n}\n```\n\n---\n\n## Ownership System\n\nControl row-level access based on ownership (e.g., users see only their own data).\n\n### Declaring Ownership Rules\n\n```typescript\nimport { own, join, where } from 'najm-auth';\nimport { schema } from '../database/schema';\n\nconst { products, users } = schema;\nconst _users = alias(users, '_u');\n\nexport const Product = own(products)\n  .for('user',\n    join(products.userId, _users.id),\n    where(_users.id)\n  )\n  .writeBy(products.userId);  // Metadata for consumers; not an automatic write guard\n```\n\n### Using @Policy and @Owned\n\n```typescript\nimport { Owned, Policy, CanList, CanRead, CanCreate, CanUpdate, CanDelete } from 'najm-auth';\nimport { and, eq, type SQL } from 'drizzle-orm';\n\n@Policy(Product)\n@Controller('/api/products')\nexport class ProductController {\n  @Get('/')\n  @CanList()                   // Checks read permission; repository scopes rows\n  getAll() { /* delegate to a scoped service/repository read */ }\n\n  @Get('/:id')\n  @CanRead()                   // Checks read permission; lookup must scope the ID\n  getOne() { }\n\n  @Post('/')\n  @CanCreate()                 // Service must validate/assign ownership\n  create(@Body() data: any) { }\n\n  @Put('/:id')\n  @CanUpdate()                 // Service must load an owned record before writing\n  update(@Body() data: any) { }\n\n  @Delete('/:id')\n  @CanDelete()                 // Service must load an owned record before deleting\n  delete() { }\n}\n\n@Repository('default')\n@Owned(Product)\nexport class ProductRepository {\n  @DB() db!: Database;\n\n  // These methods are supplied by @Owned; do not define recursive wrappers.\n  declare ownershipCondition: () => SQL | undefined;\n  declare findMany: (opts?: { where?: SQL; limit?: number }) => Promise<ProductRow[]>;\n  declare findOne: (opts: { where: SQL }) => Promise<ProductRow | null>;\n\n  async getById(id: string) {\n    const [row] = await this.db.select().from(products)\n      .where(and(this.ownershipCondition(), eq(products.id, id))).limit(1);\n    return row ?? null;\n  }\n}\n```\n\n### Composable ownership (4.1+)\n\nFor custom queries, the property form puts the rules and type together:\n\n```typescript\nimport { Owned, type OwnedWhere } from 'najm-auth';\n\n@Repository('default')\nexport class ProductRepository {\n  @DB() db!: Database;\n\n  @Owned(Product, SharedProduct)\n  private ownedWhere!: OwnedWhere;\n\n  async getById(id: string) {\n    const [row] = await this.db.select().from(products)\n      .where(and(this.ownedWhere(), eq(products.id, id))).limit(1);\n    return row ?? null;\n  }\n}\n```\n\nUse any instance property name; `OwnedWhere` is the shared function type.\nResolve the repository through Najm's container before calling it. Context\ninjection installs the function after construction, including when TypeScript\nemits native class fields. The function reads the current request on every call,\nso a singleton repository can safely serve different actors. Multiple decorated\nproperties may use independent rules, including on inherited repositories.\nThe class form and its `ownershipCondition`, `findMany`, `findOne`, and\n`scopedQuery` helpers remain available. The property form supplies only the\ndecorated predicate; it does not rewrite queries or add CRUD helpers.\n\n`@Owned(Product)` now provides `ownershipCondition()` for custom queries.\nIt returns a parameterized `id IN (authorized IDs)` predicate; join-based rules\ndo not multiply outer rows. Combine it with filters in one\n`.where(and(this.ownershipCondition(), filter))`. The owned table must have an\n`id` column. A standalone `ownershipCondition(db, tokens, context)` and the\n`OwnershipReadContext` / `OwnershipConditionMethods` types are also exported.\n\n`@Owned(Product, SharedProduct)` grants either rule (OR), then your query's\nfilters apply (AND). Every alternative must reference the same table object.\nAlternatives work with `ownershipCondition`, `findMany`, `findOne`, and\n`scopedQuery`. Single-token helpers retain their existing behavior.\n\nConfigure school-wide, tenant-wide, or other privileged roles in the app:\n\n```typescript\nconst Product = own(products, { adminRoles: ['admin', 'operations'] })\n  .for('member', where(products.userId));\n```\n\nThose roles bypass row ownership only; route permissions still apply. Unknown\nroles and anonymous active requests get no rows. Outside request context,\nseed/job reads remain unscoped for compatibility; never treat a manually\nconstructed repository without request injection as an authenticated boundary.\n\n**Migrating custom queries:** replace `this.scope(query).where(filter)` with\n`query.where(and(this.ownershipCondition(), filter))`. Drizzle replaces an\nearlier WHERE when another `.where()` is called. The legacy `scope()` and\n`scopedQuery()` APIs remain for compatibility, but their result must not be\nfollowed by `.where()`; for simple reads use `findMany({ where: filter })`.\nAn upgrade alone does not rewrite unsafe queries in consumers. Keep role\nand cross-user integration tests in each app. `@Policy` and `@CanRead` check\npermissions, not the ownership of a requested record ID.\n\n### Advanced Ownership: Multi-Role Scoping\n\n```typescript\nconst Grade = own(grades)\n  // Teachers see students' grades\n  .for('teacher',\n    join(grades.studentId, _s.id),\n    join(_s.id, _t.studentId),\n    where(_t.userId)\n  )\n  // Parents see only their child's grades\n  .for('parent',\n    join(grades.studentId, _s.id),\n    join(_s.id, _p.studentId),\n    where(_p.userId)\n  );\n```\n\n---\n\n## Database Schema\n\n### Tables\n\n```\nusers\n├── id (string, primary key)\n├── email (string, unique)\n├── password (string, hashed)\n├── emailVerified (boolean, default: false)\n├── image (string, nullable)\n├── status (enum: ACTIVE, INACTIVE)\n├── roleId (string, FK → roles.id)\n├── lastLogin (timestamp, nullable)\n├── createdAt (timestamp)\n└── updatedAt (timestamp)\n\nroles\n├── id (string, primary key)\n├── name (string, unique — `roles_name_unique` in both dialects)\n├── description (string, nullable)\n├── createdAt (timestamp)\n└── updatedAt (timestamp)\n\npermissions\n├── id (string, primary key)\n├── name (string, unique)\n├── description (string, nullable)\n├── resource (string)\n├── action (string)\n├── createdAt (timestamp)\n└── updatedAt (timestamp)\n\ntokens\n├── id (string, primary key)\n├── userId (string, FK → users.id, unique)\n├── token (string, hashed)\n├── type (enum: REFRESH, RESET)\n├── status (enum: ACTIVE, REVOKED)\n├── expiresAt (timestamp)\n├── createdAt (timestamp)\n└── updatedAt (timestamp)\n\nrole_permissions\n├── id (string, primary key)\n├── roleId (string, FK → roles.id)\n├── permissionId (string, FK → permissions.id)\n├── createdAt (timestamp)\n└── updatedAt (timestamp)\n\noauth_accounts\n├── id (string, primary key)\n├── userId (string, FK → users.id, cascade delete)\n├── provider (string; `google` in this release)\n├── providerAccountId (Google `sub`)\n├── unique(provider, providerAccountId)\n└── unique(userId, provider)\n\ncredential_setup_sessions\n├── id (string, primary key)\n├── userId (string, FK → users.id, cascade delete)\n├── purpose (string)\n├── tokenHash (string, unique — SHA-256 of the browser cookie)\n├── expiresAt (timestamp)\n├── consumedAt (timestamp, nullable)\n└── revokedAt (timestamp, nullable)\n\ncredential_setup_requirements\n├── userId (string, FK → users.id, cascade delete)\n├── purpose (string; `password` for the built-in flow)\n├── temporaryCredentialKind (string, nullable; `exact` or `ma-cin`)\n├── required (boolean, default: true)\n├── completedAt (timestamp, nullable)\n└── primary key (userId, purpose)\n```\n\n`credential_setup_requirements` is keyed on `(userId, purpose)` rather than\n`userId` alone, so one user can owe more than one future setup purpose.\n\nExisting databases must generate and run a migration after upgrading so the\nnew `oauth_accounts`, `credential_setup_sessions`, and\n`credential_setup_requirements` tables exist. Custom `AuthSchema` objects may\nomit `oauthAccounts` while OAuth is disabled, but provider configuration fails\nfast unless the custom schema supplies it. Both credential-setup tables are\nrequired of a custom schema, because the setup flow is always mounted.\n\n### ID Strategy\n\nUses `nanoid` with short lengths for efficient storage:\n- Users: 8 characters\n- Roles: 5 characters\n- Permissions: 5 characters\n- Tokens: 10 characters\n\nTo use UUIDs instead, customize the schema:\n\n```typescript\nimport { customAlphabet } from 'nanoid';\nimport { uuid } from 'uuid';\n\n// Use UUID for larger ID space\nconst customUsers = sqliteTable('users', {\n  id: text('id').primaryKey().$defaultFn(() => crypto.randomUUID()),\n  // ...\n});\n```\n\n---\n\n## Seeding\n\nRole names are database-enforced identities. `authSeed()` reconciles the `roles`\nentry **by name**, not by the primary key it proposes, so a role that already\nexists under a legacy or randomly generated ID is reused rather than inserted a\nsecond time. Downstream resolvers receive the row the database actually holds,\nwhich keeps `users.role_id` and `role_permissions.role_id` pointing at the live\nID. Repeat seeding is idempotent and never rewrites a role's primary key —\n`users.role_id` carries no `ON UPDATE CASCADE` contract.\n\n> **Adopting this from an earlier version:** the unique index is a persistence\n> invariant, not only a validation change. Consolidate any duplicate role names\n> **before** you apply a migration that adds it, or the migration fails. Consumer\n> migrations are application-owned; this package ships the schema declaration,\n> not your migration.\n\n\n### Low-Level Seeding (authSeed)\n\n```typescript\nimport { authSeed } from 'najm-auth';\nimport { SeedService } from 'najm-database';\n\n@Service()\nclass SetupService {\n  constructor(private seeder: SeedService) {}\n\n  async seed() {\n    const entries = authSeed({\n      adminEmail: 'admin@app.com',\n      adminPass: 'AdminPass123!',\n      roles: [\n        { name: 'editor', description: 'Can edit content' },\n        { name: 'viewer', description: 'Can view only' },\n      ],\n      permissions: [\n        { name: 'read:posts', resource: 'posts', action: 'read' },\n        { name: 'create:posts', resource: 'posts', action: 'create' },\n      ],\n      additionalUsers: [\n        { email: 'user@app.com', password: 'User123!', roleName: 'viewer' },\n      ]\n    });\n\n    await this.seeder.run(entries);\n  }\n}\n```\n\n### High-Level Seeding (seedAuthData)\n\n```typescript\nimport { seedAuthData } from 'najm-auth';\n\nawait seedAuthData({\n  db,\n  adminEmail: process.env.ADMIN_EMAIL!,\n  adminPassword: process.env.ADMIN_PASSWORD!,\n  roles: [\n    { name: 'moderator', description: 'Content moderator' },\n  ],\n  users: [\n    { email: 'mod@app.com', password: 'Mod123!' , roleName: 'moderator' },\n  ],\n  verbose: true\n});\n\n// Note: Return type has empty users[] and roles[] arrays\n// Query the database directly to retrieve inserted records\n```\n\n---\n\n## Rate Limiting\n\nAuth routes have built-in rate limiting to prevent brute force attacks.\nThe auth plugin registers `najm-rate` as a dependency, so these decorator-level\nlimits are active when `auth()` is registered.\n\n| Route | Limit | Window | Key Strategy |\n|-------|-------|--------|--------------|\n| `POST /auth/register` | 5 | 15 minutes | IP |\n| `POST /auth/login` | 8 | 10 minutes | IP + hashed normalized identity |\n| `POST /auth/refresh` | 15 | 15 minutes | Cookie fingerprint |\n| `POST /auth/session/recover` | 120 | 1 minute | Cookie fingerprint |\n| `POST /auth/logout` | 10 | 15 minutes | User ID |\n| `GET /auth/me` | 30 | 1 minute | User ID |\n| `POST /auth/forgot-password` | 3 | 15 minutes | IP |\n| `POST /auth/reset-password` | 5 | 15 minutes | IP |\n\n### Customizing Rate Limits\n\nThe login route has strict environment overrides. Values are read when the\nserver imports `najm-auth`, so restart the process after changing them. Invalid\nvalues fail startup rather than silently weakening the limiter.\n\n```bash\nNAJM_AUTH_LOGIN_RATE_LIMIT_ENABLED=true\nNAJM_AUTH_LOGIN_RATE_LIMIT=8\nNAJM_AUTH_LOGIN_RATE_WINDOW=10m\n```\n\n`NAJM_AUTH_LOGIN_RATE_LIMIT_ENABLED=false` disables only the login-route\nlimiter. Keep it enabled on public production deployments; a shorter window is\nthe safer setting for a disposable production-built demo.\n\nThe generic plugin configuration remains available for global limits and skip\nrules:\n\n```typescript\nauth({\n  rateLimit: {\n    keyGenerator: 'ip',        // or 'user', 'api-key', 'user+ip'\n    defaultWindow: '10m',\n    skip: (ctx) => ctx.path === '/health'  // Skip for certain routes\n  }\n})\n```\n\n---\n\n## Next.js App Router Structure\n\nEvery App Router application keeps the same four files. Copying more than this\nbetween apps means logic that belongs in the package has leaked into them.\n\n```text\nsrc/lib/auth.ts     defineAuth() configuration — browser, server, and proxy safe\nsrc/lib/session.ts  one createReactServerAuth() instance for Server Components\nsrc/proxy.ts        exports auth.proxy plus Next's required static matcher\nsrc/app/api/[...route]/route.ts  binds the server through auth.routeHandlers()\n```\n\n```typescript\n// src/lib/auth.ts\nimport { defineAuth } from 'najm-auth/client/server';\n\nexport const auth = defineAuth({\n  apiBaseURL: '/api',\n  loginRoute: '/login',\n  forbiddenRoute: '/forbidden',\n  publicRoutes: ['/', '/login'],\n  protectedRoutes: ['/dashboard/:path*', '/admin/:path*'],\n  roleRoutes: { '/admin/:path*': ['admin'] },\n  proxySessionMode: 'optimistic',\n});\n```\n\n```typescript\n// src/lib/session.ts\nimport 'server-only';\n\nimport { createReactServerAuth } from 'najm-auth/client/server/react';\n\nimport { auth } from './auth';\n\nexport const serverAuth = createReactServerAuth(auth);\n```\n\n```typescript\n// src/proxy.ts\nimport { auth } from './lib/auth';\n\nexport default auth.proxy;\nexport const config = {\n  matcher: ['/((?!api|_next/static|_next/image|favicon.ico).*)'],\n};\n```\n\nNext.js 16 requires the exported Proxy `config` to be a statically analyzable\nobject literal. Turbopack rejects `export const config = auth.config`, so the\nmatcher is the one integration value that cannot be composed at runtime.\n\nWhen a Proxy generates request-scoped headers for the downstream render, pass\nonly the overrides as the optional second argument. Najm merges them over the\nincoming request and preserves them when session recovery replaces the cookie.\nThe application still owns any matching response header:\n\n```typescript\nexport default async function proxy(request: Request) {\n  const nonce = btoa(globalThis.crypto.randomUUID());\n  const policy = `script-src 'self' 'nonce-${nonce}' 'strict-dynamic'`;\n  const response = await auth.proxy(request, {\n    requestHeaders: {\n      'content-security-policy': policy,\n      'x-nonce': nonce,\n    },\n  });\n  response.headers.set('Content-Security-Policy', policy);\n  return response;\n}\n```\n\nAuthentication reads the original request. `requestHeaders` controls only what\nthe successful Next.js render receives. Attempts to override `cookie` or\n`authorization` fail closed; only Najm's validated recovery path may replace\nthe cookie after it authorizes the recovered session.\n\nSpeculative/prefetch requests (`next-router-prefetch`, `purpose: prefetch`,\n`sec-purpose` containing `prefetch`, `next-router-state-tree` metadata-only)\nreceive the same treatment as direct navigation: a valid signed snapshot or\nnon-rotating `/session/recover` validation is still required. Refresh-cookie\npresence is never authorization, so do not bypass `auth.proxy` when a refresh\ncookie is present on a prefetch. Recovery never rotates refresh tokens.\n\n```typescript\n// src/app/api/[...route]/route.ts\nimport { handle } from 'najm-core';\nimport server from '@app/server';\n\nimport { auth } from '../../../lib/auth';\n\nconst handlers = auth.routeHandlers(handle(server));\nexport const { GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS } = handlers;\n```\n\n`auth.routeHandlers()` applies the remember-me lifecycle to login, refresh,\ncredential setup, and logout for every supported Next.js verb. It automatically\nuses the refresh and signed-session cookie names from `defineAuth()`; an app only\npasses an option when it intentionally customizes behavior, such as\n`{ rememberCookieName: 'school.remember' }`.\n\n### Why `session.ts` exists\n\nA Next.js page is not one function. The root layout, each nested layout, and the\npage render separately, and each one that asks for the session pays for its own\ncookie verification and possibly its own recovery round trip. React's `cache()`\ncollapses those into one — but only for callers that go through the *same*\nmemoized function, which means the application has to own one module that\ncreates it. `session.ts` is that module and nothing else; strictness, redirect\ntargets, role fallback, and error classification all stay in the package.\n\n```tsx\n// Root layout, nested layout, and page: one resolution between them.\nconst session = await serverAuth.getSession();      // null when anonymous\nconst session = await serverAuth.requireSession();  // redirects to loginRoute\nconst session = await serverAuth.requireRole(['admin', 'operator']);\n```\n\n- `requireSession()` redirects to `loginRoute` when the visitor is missing,\n  invalid, or revoked. An unreachable recovery endpoint or an unset session\n  secret is an operational fault, not an anonymous visitor: those stay visible\n  errors instead of becoming a login redirect that hides the outage.\n- `requireRole()` redirects to `forbiddenRoute`, never to login — the visitor is\n  already authenticated, so signing in again cannot change the answer.\n- `session.roles` is authoritative when present, with `user.role` as the\n  single-role fallback.\n\n### Scope and limits\n\n- **React Server Components only.** Route handlers, server actions, proxy/Edge\n  code, and scripts keep using `auth.getSession()`, `auth.requireSession()`, and\n  `auth.requireRole()`. Outside a render there is no request cache for `cache()`\n  to write to, so the adapter would resolve the session again on every call.\n- **Call the factory once, at module scope.** Calling it inside a layout, page,\n  or component builds a fresh memoized resolver per call and shares nothing.\n- **The snapshot is stable for one render.** Code that mutates authentication\n  must redirect or refresh into a new render to observe the result.\n- **Requests never share.** The cache is React's per-request cache — no module\n  map, no global, no Redis, no `unstable_cache`, no `\"use cache\"`.\n- **Requires React 18.3 or newer** (the first version exporting `cache()`); the\n  factory throws a named error on older versions. The subpath is opt-in, so\n  non-React consumers of `najm-auth` are unaffected. Importing it from a Client\n  Component or the Edge runtime fails at build time.\n\n### `auth.ts` and `session.ts` cannot be merged\n\nTwo files looks like one too many until you try it. Both directions fail, for\nthe same reason in mirror image:\n\n| Module | Must be reachable from | Must never be reachable from |\n|---|---|---|\n| the `defineAuth()` module | browser, Edge, server | — |\n| the `createReactServerAuth()` module | server only | browser, Edge |\n\n`auth.client` and `auth.api` are what Client Components call, and\n`auth.proxy` is what the Edge proxy calls, so the `defineAuth()` module is\nalways in the browser and Edge graphs. The adapter must never be. Putting both\nin one file puts the adapter everywhere `auth` already is, and the `browser`\nexport condition — which exists precisely to catch this — resolves to a module\nthat throws:\n\n```text\nThe export createReactServerAuth was not found in module\n  …/najm-auth/dist/client/server/reactClientGuard.js [app-client]\n\nImport traces:\n  Middleware:               ./src/lib/auth.ts → ./src/proxy.ts\n  Client Component Browser: ./src/lib/auth.ts → … → ./src/app/dashboard/page.tsx\n  Client Component SSR:     ./src/lib/auth.ts → … → ./src/app/dashboard/page.tsx\n  Server Component:         ./src/lib/auth.ts → ./src/lib/session.ts → layout.tsx\n```\n\nRenaming the files changes nothing; there simply have to be two. This is a\nproperty of the runtime boundary, not of the package.\n\n### Protected trees must opt out of prerendering\n\n`requireSession()` reads a per-request cookie. A route Next.js tries to\nprerender has no request, so the read fails and the guard reports a\nconfiguration error — correct behavior, wrong context. Mark the protected\nsegment dynamic:\n\n```tsx\n// src/app/(dashboard)/layout.tsx\nexport const dynamic = 'force-dynamic';\n\nexport default async function DashboardLayout({ children }) {\n  await serverAuth.requireSession();\n  return <Shell>{children}</Shell>;\n}\n```\n\n`getSession()` needs no such opt-out — it returns `null` rather than throwing,\nso a prerendered public page renders anonymous. Do not \"fix\" a prerender failure\nby wrapping a strict guard in `.catch(() => null)`; that turns a real outage\ninto a silently anonymous page.\n\n### What the app owns, what the package owns\n\n| App, via `defineAuth()` | Package |\n|---|---|\n| `loginRoute`, `forbiddenRoute`, route matchers, `roleRoutes` | when to redirect where |\n| cookie names, `apiBaseURL`, `authPrefix`, recovery URL | request memoization |\n| `refreshThreshold`, `tabSync`, `proxySessionMode` | strict vs optional semantics |\n| — | `session.roles` / `user.role` fallback |\n| — | error classification |\n\nIf a new app has to copy anything beyond the four files above, that logic\nbelongs in the package instead.\n\n`proxySessionMode: 'optimistic'` is the default and locally verifies the signed\nsnapshot, matching Next.js guidance that Proxy is an optimistic routing boundary.\nUse `'authoritative'` only when every protected navigation must also validate\nrefresh-session state. The older `verifyAlways` option and `auth.middleware`\nproperty remain as deprecated compatibility aliases.\n\n### What a new app must prove\n\nAt its real Next.js production boundary, not with mocks:\n\n- two concurrent renders never observe each other's session;\n- root layout, nested layout, and page resolve once per render — measurable by\n  counting recovery round trips;\n- anonymous navigation to a protected route redirects to `loginRoute`;\n- an authenticated role mismatch reaches `forbiddenRoute` without a login loop;\n- an unset session secret or an unreachable recovery endpoint stays a visible\n  failure rather than a login redirect;\n- the Edge/proxy bundle builds without pulling in React.\n\n---\n\n## TypeScript Types\n\n```typescript\nimport type {\n  AuthUser,           // { id, email, name?, role?, permissions? }\n  TokenPair,          // { accessToken, refreshToken, expiresAt? }\n  JwtPayload,         // { userId, jti, exp?, iat? }\n  AuthConfig,         // Full resolved config\n  AuthPluginConfig,   // User-facing config\n} from 'najm-auth';\n```\n\n---\n\n## Error Handling\n\nAll errors are i18n-based. Error messages are automatically localized.\n\n### Common Error Codes\n\n| HTTP | Scenario |\n|------|----------|\n| 400 | Invalid input (bad email format, weak password) |\n| 401 | Missing or invalid authentication (bad token, no header) |\n| 403 | Forbidden (lacks required role/permission) |\n| 409 | Conflict (email already registered) |\n| 429 | Rate limited (too many requests) |\n| 500 | Server error (email send failure, DB error) |\n\n### Examples\n\n```typescript\n// Invalid credentials\nthrow new HttpError(401, 'Invalid email or password');\n\n// User already exists\nthrow new HttpError(409, 'Email already registered');\n\n// Insufficient permissions\nthrow new HttpError(403, 'Insufficient permissions for this action');\n```\n\n---\n\n## Security Considerations\n\n### Security Defaults\n\n- JWT access and refresh secrets are required and must pass minimum strength\n  checks.\n- Refresh tokens rotate by session family and suspected family compromise does\n  not revoke unrelated user sessions.\n- Password reset and password change revoke existing user sessions.\n- Login uses a dummy password hash for missing users to reduce timing leaks.\n- Forgot-password responses avoid email enumeration.\n- Auth routes register `najm-rate` and ship route-level brute-force limits.\n- Session cookies are signed, short-lived, and bound to their refresh-token\n  family; server auth resolution checks both the session version and positive\n  family liveness.\n- Expired signed sessions recover through authoritative, non-rotating refresh\n  validation; middleware verifies the reissued HMAC before using its claims.\n- Server-side recovery sends only the configured refresh cookie and accepts\n  relative or exact same-origin endpoints. URL credentials and any\n  scheme/hostname/port change are rejected before the network request.\n- Self-hosted apps may explicitly use a loopback-only `internalRecoveryURL`\n  when their public reverse-proxy origin is not reachable from the app process.\n- `onRecoveryFailure` exposes structured, secret-free recovery diagnostics\n  without logging anything by default.\n- `proxySessionMode: 'authoritative'` forces that check on every protected\n  request; the default `'optimistic'` mode bounds cached role/status staleness\n  to `session.maxAge`. The deprecated `verifyAlways` flag maps to the same\n  behavior for existing applications.\n\n### Next.js 16 Reverse-Proxy Recovery\n\nWhen a self-hosted Next.js proxy cannot safely call its own public\nreverse-proxy origin while handling that same request, configure the exact\nloopback recovery endpoint:\n\n```env\nNAJM_AUTH_INTERNAL_URL=http://127.0.0.1:3000/api/auth/session/recover\n```\n\n`defineAuth()` reads this environment variable automatically. An explicit\n`internalRecoveryURL` option takes precedence. The internal URL must use HTTP\nor HTTPS, contain no URL credentials, and resolve to `localhost`, `127.0.0.1`,\nor `::1`; Najm never guesses a loopback endpoint. Relative and exact\nsame-origin `recoveryURL` values remain supported.\n\nThe recovery request forwards only the configured refresh cookie, requires\n`X-Najm-Session-Recovery: 1`, never rotates the refresh token, HMAC-verifies\nthe returned session cookie, and fails closed. `onRecoveryFailure` receives\nonly a structured reason and bounded, sanitized fetch-error metadata; callback\nerrors cannot change the authentication result.\n\n### Password Reset Tokens\n\nReset and invite links are signed JWTs whose `jti` is stored in the configured\ncache with the same expiry. `consumeSetPasswordToken()` atomically compares and\ndeletes that value while preserving whether the token was a reset or invite;\nthe backward-compatible `verifyResetToken()` returns only the user id. Exactly\none concurrent caller can consume a link, and a stale link cannot delete the\nvalue for a newer one.\n\n`AuthService.resetPassword()` validates the replacement password before\nconsumption. Once consumed, a token stays consumed even if the later user\nmutation fails; restoring it would make the link replayable, so the user must\nrequest a new one.\n\nAccepting an account invitation also marks the destination email verified and\nactivates the account when its status is `pending`. An ordinary password reset\nchanges neither verification nor lifecycle status, and an explicitly inactive\ninvited account remains inactive.\n\nSet `appName` on `auth()` to brand the invitation subject and email card. The\nprovisioned role is presented as the account type, so a sponsor invitation can\nsay “Activate your sponsor account” without application-owned HTML. The shared\ntemplate uses inline critical styles for Gmail and keeps the raw token URL out\nof visible fallback copy.\n\nFor a branded mark that works in email clients without a public asset URL, set\n`accountInviteLogo` to base64 content plus its MIME type and filename. Najm\nattaches it inline and points the shared template at a stable CID; when omitted,\nthe template renders `appName` as text.\n\nThe built-in memory and Redis drivers implement the required atomic primitive.\nA custom cache driver may omit `compareAndDelete()` for compatibility with\nunrelated cache usage, but reset and invite consumption then fails closed. Do\nnot emulate this operation with separate `get()` and `del()` calls.\n\n### Purpose-Bound Credential Setup\n\nUse `CredentialSetupService` when valid credentials should open only a\nshort-lived setup flow, not a complete application session. The default auth\nschema includes the durable `credential_setup_sessions` table for PostgreSQL\nand SQLite; generate and apply a consumer migration after upgrading.\n\n```typescript\nimport { AuthService, CredentialSetupService } from 'najm-auth';\n\nconst options = {\n  purpose: 'password-setup',\n  cookieName: 'my-app.password-setup',\n  ttlMs: 10 * 60 * 1000,\n};\n\n// Verify the password without minting access/refresh tokens.\nconst user = await authService.verifyCredentials({ identifier, password });\n\n// Or narrowly accept only an unverified pending account with one exact role.\nconst pendingSponsor = await authService.verifyPendingCredentials(\n  { identifier, password },\n  'sponsor',\n);\n\nif (await appRequiresPasswordSetup(user.id)) {\n  // Revokes normal sessions and writes only an HttpOnly, SameSite=Strict,\n  // browser-session cookie. The database stores only its SHA-256 hash.\n  return credentialSetup.begin(user.id, options);\n}\n\nreturn authService.establishSession(user);\n\n// Complete an app-owned mutation in the same transaction as one-time\n// consumption. If the callback fails, token consumption rolls back.\nawait credentialSetup.consume(options, async ({ userId }) => {\n  await replaceApplicationCredential(userId, newCredential);\n});\n```\n\nSetup tokens are bound to a server-owned purpose, expire automatically, are\nreplaced when the same user starts that purpose again, and can be cancelled or\nconsumed exactly once. `require()` validates the current setup cookie without\nconsuming it; `cancel()` revokes it and clears the cookie.\n\n### Session Management\n\n- Sessions are multi-device: the token table stores one refresh row per login session (keyed by a unique `tokenFamily`), so a user can stay logged in on several devices at once. Logout and rotation are scoped to the current session; password change/reset revoke every session\n- Revocation changes the refresh row to a durable `revoked` tombstone until its original expiry. Active-session reads and rotations require `status = active`, so losing Redis cannot revive a logged-out database session; expired tombstones are removed by normal session cleanup\n- A stale refresh token presented after the 120-second rotation grace window revokes only that session's family as reuse protection\n- The signed session cookie is accepted on the fast path only while Redis positively identifies its family as live and owned by the same user; an unknown cache state falls back to authoritative refresh-row recovery\n- Use `@RateLimit` on logout for DDoS protection\n\n### Token Blacklist\n\n- Built-in cache-based blacklist for immediate revocation\n- Supports Redis via `cache()` plugin configuration\n- Default: in-memory store (development/single-process only; entries are lost on restart)\n- Use Redis in production when immediate revocation must survive restarts or propagate across instances\n- Session-version revocation keys are cache-backed and TTL-bound to active access tokens\n\n### Timing Attack Prevention\n\n- Dummy hash used for missing users in login\n- Constant-time password comparison\n- Same response for forgot-password (prevents email enumeration)\n\n---\n\n## Testing\n\n```bash\nbun run test      # Run all tests\nbun run test:auth # Run auth tests only\nbun run --cwd packages/najm-auth test:real-infra # Opt-in PostgreSQL + Redis races\nbun packages/najm-auth/integration/mailpit-forgot-password/run.ts # Loopback Redis + Mailpit HTTP acceptance\n```\n\nThe real-infrastructure suite runs only with `NAJM_AUTH_REAL_INFRA=1`. Supply\nloopback-only `NAJM_AUTH_REAL_POSTGRES_URL` and `NAJM_AUTH_REAL_REDIS_URL` (or\nthe conventional `DATABASE_URL` and `REDIS_URL`). It creates and drops its own\nrandomly named PostgreSQL database and cleans only its unique Redis key prefix;\nremote endpoints fail before either service is touched.\n\nThe Mailpit acceptance runner requires Redis on `127.0.0.1:6399`, Mailpit SMTP\non `127.0.0.1:1025`, and the Mailpit API on `127.0.0.1:8025` by default. It\nboots the real auth plugin over HTTP with an ephemeral SQLite fixture, proves\nignored fields and spoofed forwarding headers cannot buy more reset emails,\nand removes only its run-specific messages and Redis keys. The three endpoints\ncan be changed with the `NAJM_AUTH_MAILPIT_*` variables, but non-loopback\nvalues fail before the fixture is created.\n\nTest files include:\n- `schema.test.ts` — Schema exports validation\n- `auth.test.ts` — Authentication flow\n- `user.test.ts` — User CRUD\n- `role.test.ts` — Role management\n- `permission.test.ts` — Permission guards\n- `guards.test.ts` — Guard composability\n- `ownership.test.ts` — Row-level scoping\n- `integration.test.ts` — Multi-role scenarios\n\n---\n\n## Production Checklist\n\n- ✅ Use strong JWT secrets (32+ chars, generated with `openssl rand -base64 32`)\n- ✅ Set `FRONTEND_URL` environment variable\n- ✅ Enable HTTPS in production\n- ✅ Store secrets in environment variables (never in code)\n- ✅ Use Redis for token blacklist/session-version revocation in production and distributed systems\n- ✅ Trust forwarded IP headers only behind a known proxy; otherwise provide a custom rate-limit key generator\n- ✅ Login/register rate keys hash normalized email or international-phone identifiers; passwords and request bodies never appear in cache keys\n- ✅ Enable rate limiting on all auth routes\n- ✅ Log authentication events for audit trails\n- ✅ Test ownership scoping rules with multi-user scenarios\n- ✅ Run full test suite before deploying\n\n---\n\n## Migration Guide\n\n### From v1.0 to v1.1\n\n- `FRONTEND_URL` now part of `AuthPluginConfig` (falls back to env var)\n- New: Rate limiting on `/auth/logout` and `/auth/me`\n- New: `configureOwnership()` for advanced scoping\n- New: `@Policy` and `@Owned` decorators\n\n---\n\n## Support & Contributing\n\nFor issues, feature requests, or contributions, please refer to the main Najm repository: https://github.com/najm/najm-api\n","readmeFilename":"README.md"}