{"_id":"@apso/better-auth-adapter","_rev":"15-caab9ed3f64a741218fac01caef7ba34","name":"@apso/better-auth-adapter","dist-tags":{"latest":"2.0.18"},"versions":{"2.0.0":{"name":"@apso/better-auth-adapter","version":"2.0.0","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"author":{"name":"Mavric Team"},"license":"MIT","_id":"@apso/better-auth-adapter@2.0.0","maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"homepage":"https://github.com/apsoai/better-auth#readme","bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"dist":{"shasum":"6e7c95c5b6084f2d08cfb24484d7eed21167bfb6","tarball":"https://registry.npmjs.org/@apso/better-auth-adapter/-/better-auth-adapter-2.0.0.tgz","fileCount":95,"integrity":"sha512-xLNaJDZvpaqK3+7XHhRqKYuoDyXReTbASpur5yy5cLHZ9iXfgKM6TBwI3wXX8i0KAG+hjv4KvPpstIHn65Ugpw==","signatures":[{"sig":"MEUCIButtqF/geSIFeMl4WKhJneAvorvMysysWVXottF0Q1GAiEAkdKLA9BRbPweaI5ZNHCPBhrqq7b+RrMiqFwI8SPnhXk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":880940},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"415022043e406b8a8f6fdc1aa6ba53cec830b751","scripts":{"ci":"npm run lint && npm run typecheck && npm run test && npm run build","dev":"tsc --watch","lint":"eslint src tests --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","release":"npm run ci","lint:fix":"eslint src tests --ext .ts --fix","test:unit":"jest --selectProjects unit","typecheck":"tsc --noEmit","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","semantic-release":"semantic-release","test:conformance":"jest --testPathPattern=conformance","test:integration":"INTEGRATION_TESTS=true jest --selectProjects integration","test:performance":"jest --selectProjects performance --passWithNoTests","test:all-integration":"INTEGRATION_TESTS=true jest --selectProjects integration performance","test:integration:with-env":"jest --selectProjects integration"},"_npmUser":{"name":"cultron","email":"mcullerton@gmail.com"},"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@apso/sdk":"file:../apso-sdk"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.7","better-auth":"^1.3.0","semantic-release":"^22.0.12","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^7.8.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^7.8.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"peerDependencies":{"better-auth":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-adapter_2.0.0_1762545642267_0.6130234211247485","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@apso/better-auth-adapter","version":"2.0.1","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"author":{"name":"Mavric Team"},"license":"MIT","_id":"@apso/better-auth-adapter@2.0.1","maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"homepage":"https://github.com/apsoai/better-auth#readme","bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"dist":{"shasum":"b6d80c7cd3640b634f18f51b39412666f1861b3f","tarball":"https://registry.npmjs.org/@apso/better-auth-adapter/-/better-auth-adapter-2.0.1.tgz","fileCount":95,"integrity":"sha512-9QPJlfRDABDhIGNGVjaoQ79QVA8SQms1W6Pub1LKXYEQ53csPcUDD6I9wyOrpIBAiceGNUB2/WFK3KMgleQIsQ==","signatures":[{"sig":"MEYCIQDqMQFWDSk9cnf6dC4l0vlpVR2/uH/laDo2gEtNT5MJAQIhAJwp7PsKau9C4N2AZvxnVteAYwqrnwFmt2wSWjfO/IQ3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":890220},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"12e373a84177517fcb12984e0ba1afbb6d00233c","scripts":{"ci":"npm run lint && npm run typecheck && npm run test && npm run build","dev":"tsc --watch","lint":"eslint src tests --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","release":"npm run ci","lint:fix":"eslint src tests --ext .ts --fix","test:unit":"jest --selectProjects unit","typecheck":"tsc --noEmit","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","semantic-release":"semantic-release","test:conformance":"jest --testPathPattern=conformance","test:integration":"INTEGRATION_TESTS=true jest --selectProjects integration","test:performance":"jest --selectProjects performance --passWithNoTests","test:all-integration":"INTEGRATION_TESTS=true jest --selectProjects integration performance","test:integration:with-env":"jest --selectProjects integration"},"_npmUser":{"name":"cultron","email":"mcullerton@gmail.com"},"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"_npmVersion":"11.6.4","description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","directories":{},"_nodeVersion":"22.21.1","dependencies":{"tslib":"^2.8.1","@apso/sdk":"file:../apso-sdk"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.7","better-auth":"^1.3.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^7.8.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^7.8.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"peerDependencies":{"better-auth":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-adapter_2.0.1_1764433778048_0.16475062652800765","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@apso/better-auth-adapter","version":"2.0.2","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"author":{"name":"Mavric Team"},"license":"MIT","_id":"@apso/better-auth-adapter@2.0.2","maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"homepage":"https://github.com/apsoai/better-auth#readme","bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"dist":{"shasum":"e46d824b3a1d26f19882e290c2c7c39f1d67e27e","tarball":"https://registry.npmjs.org/@apso/better-auth-adapter/-/better-auth-adapter-2.0.2.tgz","fileCount":95,"integrity":"sha512-rCbsUFCFs8urIETYPqZM3VZh1ghhtMDjPZE6KiuYY9y6d7XI1JSDpxAno8lGiGrYxi7DBACq0cj+HVdCkT7zfA==","signatures":[{"sig":"MEQCIDenJIU+Sdqg/QY2/jv/5N7tRWlWpNeBwxnsIaCH/kESAiApqtVx47ajo4r82QPVxAMOtuS+O24hDaD+wIbaClnBRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":890145},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"ac85c82c402b6a5b3438ed935f349087c7dcc2e1","scripts":{"ci":"npm run lint && npm run typecheck && npm run test && npm run build","dev":"tsc --watch","lint":"eslint src tests --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","release":"npm run ci","lint:fix":"eslint src tests --ext .ts --fix","test:unit":"jest --selectProjects unit","typecheck":"tsc --noEmit","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","semantic-release":"semantic-release","test:conformance":"jest --testPathPattern=conformance","test:integration":"INTEGRATION_TESTS=true jest --selectProjects integration","test:performance":"jest --selectProjects performance --passWithNoTests","test:all-integration":"INTEGRATION_TESTS=true jest --selectProjects integration performance","test:integration:with-env":"jest --selectProjects integration"},"_npmUser":{"name":"cultron","email":"mcullerton@gmail.com"},"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"_npmVersion":"11.6.4","description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","directories":{},"_nodeVersion":"22.21.1","dependencies":{"tslib":"^2.8.1","@apso/sdk":"file:../apso-sdk"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.7","better-auth":"^1.3.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^7.8.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^7.8.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"peerDependencies":{"better-auth":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-adapter_2.0.2_1764435110769_0.7737612727827634","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@apso/better-auth-adapter","version":"2.0.3","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"author":{"name":"Mavric Team"},"license":"MIT","_id":"@apso/better-auth-adapter@2.0.3","maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"homepage":"https://github.com/apsoai/better-auth#readme","bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"dist":{"shasum":"feccb0df28e82f7b74023f67c2c6225a6e74ac68","tarball":"https://registry.npmjs.org/@apso/better-auth-adapter/-/better-auth-adapter-2.0.3.tgz","fileCount":95,"integrity":"sha512-+6jL/7CAW+jTFJWE1koysMzJIWHDtG1+lFabGmSmwc0mZWbCgHB84mI3b28SW7Db1L9FlXm1GlZrJUnsc/zXGw==","signatures":[{"sig":"MEUCIQDBm5aY1Y7EKF9jsDZ+YApEwPLkVV6DGbRqi8ub8flftAIgHwhWG2mSqrxfR+Jij9rnB29UVM6QpyCcd8HcIiYtxO4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":901900},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"877cc1f860e4d6853a0c539cdae2af772acc01ab","scripts":{"ci":"npm run lint && npm run typecheck && npm run test && npm run build","dev":"tsc --watch","lint":"eslint src tests --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","release":"npm run ci","lint:fix":"eslint src tests --ext .ts --fix","test:unit":"jest --selectProjects unit","typecheck":"tsc --noEmit","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","semantic-release":"semantic-release","test:conformance":"jest --testPathPattern=conformance","test:integration":"INTEGRATION_TESTS=true jest --selectProjects integration","test:performance":"jest --selectProjects performance --passWithNoTests","test:all-integration":"INTEGRATION_TESTS=true jest --selectProjects integration performance","test:integration:with-env":"jest --selectProjects integration"},"_npmUser":{"name":"cultron","email":"mcullerton@gmail.com"},"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tslib":"^2.8.1","@apso/sdk":"file:../apso-sdk"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.7","better-auth":"^1.3.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^7.8.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^7.8.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"peerDependencies":{"better-auth":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-adapter_2.0.3_1767642018340_0.10479254897292956","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@apso/better-auth-adapter","version":"2.0.4","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"author":{"name":"Mavric Team"},"license":"MIT","_id":"@apso/better-auth-adapter@2.0.4","maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"homepage":"https://github.com/apsoai/better-auth#readme","bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"dist":{"shasum":"03da93b49cd89687f4ed58db4d13f6a23f80ee06","tarball":"https://registry.npmjs.org/@apso/better-auth-adapter/-/better-auth-adapter-2.0.4.tgz","fileCount":95,"integrity":"sha512-OP8qNrwDIB1352lA/vWM98FAFJqX6sHcV8DlwU+iFGWLYfD2V6IAEe3kh7iC0Icv6gdTFg6hF/Tpc/1HGzAveg==","signatures":[{"sig":"MEQCICMqngh8PG3+z+aLpN/bNHMuqLsfzuK+sTySO5IW9FUdAiAKEgVpmqDQIa2V1+7bofKXCZiCucuzEAgf6NbbbKScRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":902661},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"877cc1f860e4d6853a0c539cdae2af772acc01ab","scripts":{"ci":"npm run lint && npm run typecheck && npm run test && npm run build","dev":"tsc --watch","lint":"eslint src tests --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","release":"npm run ci","lint:fix":"eslint src tests --ext .ts --fix","test:unit":"jest --selectProjects unit","typecheck":"tsc --noEmit","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","semantic-release":"semantic-release","test:conformance":"jest --testPathPattern=conformance","test:integration":"INTEGRATION_TESTS=true jest --selectProjects integration","test:performance":"jest --selectProjects performance --passWithNoTests","test:all-integration":"INTEGRATION_TESTS=true jest --selectProjects integration performance","test:integration:with-env":"jest --selectProjects integration"},"_npmUser":{"name":"cultron","email":"mcullerton@gmail.com"},"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tslib":"^2.8.1","@apso/sdk":"file:../apso-sdk"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.7","better-auth":"^1.3.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^7.8.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^7.8.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"peerDependencies":{"better-auth":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-adapter_2.0.4_1767675547697_0.5994071380885879","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@apso/better-auth-adapter","version":"2.0.5","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"author":{"name":"Mavric Team"},"license":"MIT","_id":"@apso/better-auth-adapter@2.0.5","maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"homepage":"https://github.com/apsoai/better-auth#readme","bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"dist":{"shasum":"3a937a8c3bde2b32752ca53cd422c6bd6e044be8","tarball":"https://registry.npmjs.org/@apso/better-auth-adapter/-/better-auth-adapter-2.0.5.tgz","fileCount":95,"integrity":"sha512-5mQx7ymty39e1L2WrkG24Irn5g2B6QxQ9FvvnbbMOVH1LNDmeFEAJZV4Y7JriRlUmxfiKA3rUD18OejisYQpWQ==","signatures":[{"sig":"MEUCIAFxDN+1RGDXs0FpJa+6N1PBqupMNfBH79MEraXlBqCdAiEA/4DH2w/AGFQCBReUHR5GYGmI3NjXAAt4vtsvCyVegNg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":909484},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"877cc1f860e4d6853a0c539cdae2af772acc01ab","scripts":{"ci":"npm run lint && npm run typecheck && npm run test && npm run build","dev":"tsc --watch","lint":"eslint src tests --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","release":"npm run ci","lint:fix":"eslint src tests --ext .ts --fix","test:unit":"jest --selectProjects unit","typecheck":"tsc --noEmit","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","semantic-release":"semantic-release","test:conformance":"jest --testPathPattern=conformance","test:integration":"INTEGRATION_TESTS=true jest --selectProjects integration","test:performance":"jest --selectProjects performance --passWithNoTests","test:all-integration":"INTEGRATION_TESTS=true jest --selectProjects integration performance","test:integration:with-env":"jest --selectProjects integration"},"_npmUser":{"name":"cultron","email":"mcullerton@gmail.com"},"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tslib":"^2.8.1","@apso/sdk":"file:../apso-sdk"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.7","better-auth":"^1.3.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^7.8.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^7.8.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"peerDependencies":{"better-auth":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-adapter_2.0.5_1767714862938_0.9853015179880531","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@apso/better-auth-adapter","version":"2.0.6","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"author":{"name":"Mavric Team"},"license":"MIT","_id":"@apso/better-auth-adapter@2.0.6","maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"homepage":"https://github.com/apsoai/better-auth#readme","bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"dist":{"shasum":"469721f74f7195bcea37cc40b93be731657c0a2a","tarball":"https://registry.npmjs.org/@apso/better-auth-adapter/-/better-auth-adapter-2.0.6.tgz","fileCount":95,"integrity":"sha512-+PpTHZ1sTB1TYTD9OGfLNMcZhXnuAiq/LlfTXhtSykHiD5uzuzo4vAxaK8q3Be3NvgF1JMJnVbTtolTz5dRjMw==","signatures":[{"sig":"MEUCIQDzMOpH8fV8PtPtkimTIwPP3qXHIfay8N607CKGHJam1AIgf5hAlaacgKDw2SOSaIZGlHd9OpYXymx+4g2jxR96Nuw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":928269},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"877cc1f860e4d6853a0c539cdae2af772acc01ab","scripts":{"ci":"npm run lint && npm run typecheck && npm run test && npm run build","dev":"tsc --watch","lint":"eslint src tests --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","release":"npm run ci","lint:fix":"eslint src tests --ext .ts --fix","test:unit":"jest --selectProjects unit","typecheck":"tsc --noEmit","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","semantic-release":"semantic-release","test:conformance":"jest --testPathPattern=conformance","test:integration":"INTEGRATION_TESTS=true jest --selectProjects integration","test:performance":"jest --selectProjects performance --passWithNoTests","test:all-integration":"INTEGRATION_TESTS=true jest --selectProjects integration performance","test:integration:with-env":"jest --selectProjects integration"},"_npmUser":{"name":"cultron","email":"mcullerton@gmail.com"},"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tslib":"^2.8.1","@apso/sdk":"file:../apso-sdk"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.7","better-auth":"^1.3.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^7.8.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^7.8.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"peerDependencies":{"better-auth":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-adapter_2.0.6_1767738672123_0.8609595538122143","host":"s3://npm-registry-packages-npm-production"}},"2.0.8":{"name":"@apso/better-auth-adapter","version":"2.0.8","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"author":{"name":"Mavric Team"},"license":"MIT","_id":"@apso/better-auth-adapter@2.0.8","maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"homepage":"https://github.com/apsoai/better-auth#readme","bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"dist":{"shasum":"debec34f819865a9e508bf3ff34d04ee158dcd8e","tarball":"https://registry.npmjs.org/@apso/better-auth-adapter/-/better-auth-adapter-2.0.8.tgz","fileCount":95,"integrity":"sha512-+9x0P+llXnJgKyB2lh/xnDOLk7DXePRyA/10sZ8Mlvsgp3/RsD84hDCk+2TJxJAb8A/LT0h4eX2DwTitn2mNxA==","signatures":[{"sig":"MEYCIQC5hF5Z4X6vcAL+BAhQ1pw3UBTtIoyesskmmiSd4Wb3hwIhAIIdcQIab37+ivbyjBPUULfd6dzUNLcVy4Y+1JMPgQm/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":926080},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"a166dc8fd382ae35c4d9b201b7e5665aa9ac3e6b","scripts":{"ci":"npm run lint && npm run typecheck && npm run test && npm run build","dev":"tsc --watch","lint":"eslint src tests --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","release":"npm run ci","lint:fix":"eslint src tests --ext .ts --fix","test:unit":"jest --selectProjects unit","typecheck":"tsc --noEmit","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","semantic-release":"semantic-release","test:conformance":"jest --testPathPattern=conformance","test:integration":"INTEGRATION_TESTS=true jest --selectProjects integration","test:performance":"jest --selectProjects performance --passWithNoTests","test:all-integration":"INTEGRATION_TESTS=true jest --selectProjects integration performance","test:integration:with-env":"jest --selectProjects integration"},"_npmUser":{"name":"cultron","email":"mcullerton@gmail.com"},"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tslib":"^2.8.1","@apso/sdk":"file:../apso-sdk"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.7","better-auth":"^1.3.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^7.8.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^7.8.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"peerDependencies":{"better-auth":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-adapter_2.0.8_1767740914683_0.9701525402641811","host":"s3://npm-registry-packages-npm-production"}},"2.0.9":{"name":"@apso/better-auth-adapter","version":"2.0.9","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"author":{"name":"Mavric Team"},"license":"MIT","_id":"@apso/better-auth-adapter@2.0.9","maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"homepage":"https://github.com/apsoai/better-auth#readme","bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"dist":{"shasum":"418d670d48a6edf5ee71b206018d4c46a32c088b","tarball":"https://registry.npmjs.org/@apso/better-auth-adapter/-/better-auth-adapter-2.0.9.tgz","fileCount":95,"integrity":"sha512-YySKLME7Bd5/5PPuqCnUbxC64Kxav3gJml7NithRkLW67SzG86SdajLsAQyk77XDtT2AeUp91dgk+yDlrZyqYQ==","signatures":[{"sig":"MEQCIBDt12Vu9dOcr+q8ySAYIRUHs60VwxWwNr27Wh62ZuW4AiAjteuZauCguFDsLdfNgGbF4+4hbPCNLzi1DeF8FZHRHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":926158},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"af1240cc12837e476d42b75300be5834b6f52881","scripts":{"ci":"npm run lint && npm run typecheck && npm run test && npm run build","dev":"tsc --watch","lint":"eslint src tests --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","release":"npm run ci","lint:fix":"eslint src tests --ext .ts --fix","test:unit":"jest --selectProjects unit","typecheck":"tsc --noEmit","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","semantic-release":"semantic-release","test:conformance":"jest --testPathPattern=conformance","test:integration":"INTEGRATION_TESTS=true jest --selectProjects integration","test:performance":"jest --selectProjects performance --passWithNoTests","test:all-integration":"INTEGRATION_TESTS=true jest --selectProjects integration performance","test:integration:with-env":"jest --selectProjects integration"},"_npmUser":{"name":"cultron","email":"mcullerton@gmail.com"},"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tslib":"^2.8.1","@apso/sdk":"file:../apso-sdk"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.7","better-auth":"^1.3.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^7.8.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^7.8.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"peerDependencies":{"better-auth":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-adapter_2.0.9_1767741540970_0.6131711431030118","host":"s3://npm-registry-packages-npm-production"}},"2.0.10":{"name":"@apso/better-auth-adapter","version":"2.0.10","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"author":{"name":"Mavric Team"},"license":"MIT","_id":"@apso/better-auth-adapter@2.0.10","maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"homepage":"https://github.com/apsoai/better-auth#readme","bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"dist":{"shasum":"30817a2be0994f6e7797137ef6d08a38b7b0fb88","tarball":"https://registry.npmjs.org/@apso/better-auth-adapter/-/better-auth-adapter-2.0.10.tgz","fileCount":95,"integrity":"sha512-BlvMHmv+caR8Z4yW0RGCkcedILnFHzstXhnx67YH3DqKJoRu2MPfGp9TFsbf8N7+eANLxgv6RPetdVo+TBtVmg==","signatures":[{"sig":"MEUCIDdIM0eaht2nxrfjJbdI3orBEiZapMp1qRIdOR4HGb4aAiEAqQx58ZMcMcgmkxv/eRPrxzVmmQAwbi8dYDp0qGJFn34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":901309},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"9b20dc09398ac52d1fe18bb5fa69b86eeafcf488","scripts":{"ci":"npm run lint && npm run typecheck && npm run test && npm run build","dev":"tsc --watch","lint":"eslint src tests --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","release":"npm run ci","lint:fix":"eslint src tests --ext .ts --fix","test:unit":"jest --selectProjects unit","typecheck":"tsc --noEmit","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","semantic-release":"semantic-release","test:conformance":"jest --testPathPattern=conformance","test:integration":"INTEGRATION_TESTS=true jest --selectProjects integration","test:performance":"jest --selectProjects performance --passWithNoTests","test:all-integration":"INTEGRATION_TESTS=true jest --selectProjects integration performance","test:integration:with-env":"jest --selectProjects integration"},"_npmUser":{"name":"cultron","email":"mcullerton@gmail.com"},"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tslib":"^2.8.1","@apso/sdk":"file:../apso-sdk"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.7","better-auth":"^1.3.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^7.8.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^7.8.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"peerDependencies":{"better-auth":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-adapter_2.0.10_1767753922008_0.6176559741107361","host":"s3://npm-registry-packages-npm-production"}},"2.0.11":{"name":"@apso/better-auth-adapter","version":"2.0.11","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"author":{"name":"Mavric Team"},"license":"MIT","_id":"@apso/better-auth-adapter@2.0.11","maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"homepage":"https://github.com/apsoai/better-auth#readme","bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"dist":{"shasum":"10c69c2acb44eceee0cd232a1e5b5f72f3d6a3d9","tarball":"https://registry.npmjs.org/@apso/better-auth-adapter/-/better-auth-adapter-2.0.11.tgz","fileCount":95,"integrity":"sha512-C5aBhcx7wqWQV48Wx1EIto2DX9ZNfbH2FvCEIxqREMjqMH0s+ZA2XEnDCDsRAuhyoBopu9acxXaOcQo1HiVsuA==","signatures":[{"sig":"MEYCIQC+1kBKwNz6QsOiQKioClYIm18BgDxPcnS+1EQNYdujHAIhALEL0Ukji//bebjQcXv0r5GtDHmUA/LqyDMo7BiHo2UF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":901391},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"516bcd1fc6277b912111621bbec203c3b97b1a7f","scripts":{"ci":"npm run lint && npm run typecheck && npm run test && npm run build","dev":"tsc --watch","lint":"eslint src tests --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","release":"npm run ci","lint:fix":"eslint src tests --ext .ts --fix","test:unit":"jest --selectProjects unit","typecheck":"tsc --noEmit","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","semantic-release":"semantic-release","test:conformance":"jest --testPathPattern=conformance","test:integration":"INTEGRATION_TESTS=true jest --selectProjects integration","test:performance":"jest --selectProjects performance --passWithNoTests","test:all-integration":"INTEGRATION_TESTS=true jest --selectProjects integration performance","test:integration:with-env":"jest --selectProjects integration"},"_npmUser":{"name":"cultron","email":"mcullerton@gmail.com"},"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tslib":"^2.8.1","@apso/sdk":"file:../apso-sdk"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.7","better-auth":"^1.3.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^7.8.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^7.8.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"peerDependencies":{"better-auth":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-adapter_2.0.11_1767755164113_0.5466674516871959","host":"s3://npm-registry-packages-npm-production"}},"2.0.15":{"name":"@apso/better-auth-adapter","version":"2.0.15","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"author":{"name":"Mavric Team"},"license":"MIT","_id":"@apso/better-auth-adapter@2.0.15","maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"homepage":"https://github.com/apsoai/better-auth#readme","bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"dist":{"shasum":"4ef4765ca92fafeb040939b94b7da8ddb1453801","tarball":"https://registry.npmjs.org/@apso/better-auth-adapter/-/better-auth-adapter-2.0.15.tgz","fileCount":95,"integrity":"sha512-cua1glXnC8YTnmYNJMQQ7Hn6NSuZIP8Q7l3c2fWrbTKeAqW6Lyf1sfQvo+XIGlKzO5gjByKdXTPQJT2guUFEUA==","signatures":[{"sig":"MEQCIELT6s2uAtE1/vWcYT5jQPzIg3OB6EbFcXfU+oOOCrVgAiAu0oybNkInvlzfIW6Pfu/n4cvMN3KLPuymwmzBDm69FA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":902623},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5f8a00c2a027718c24bd1a6a10c4bc490a55fede","scripts":{"ci":"npm run lint && npm run typecheck && npm run test && npm run build","dev":"tsc --watch","lint":"eslint src tests --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","release":"npm run ci","lint:fix":"eslint src tests --ext .ts --fix","test:unit":"jest --selectProjects unit","typecheck":"tsc --noEmit","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","semantic-release":"semantic-release","test:conformance":"jest --testPathPattern=conformance","test:integration":"INTEGRATION_TESTS=true jest --selectProjects integration","test:performance":"jest --selectProjects performance --passWithNoTests","test:all-integration":"INTEGRATION_TESTS=true jest --selectProjects integration performance","test:integration:with-env":"jest --selectProjects integration"},"_npmUser":{"name":"cultron","email":"mcullerton@gmail.com"},"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tslib":"^2.8.1","@apso/sdk":"^1.0.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.7","better-auth":"^1.3.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^7.8.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^7.8.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"peerDependencies":{"better-auth":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-adapter_2.0.15_1767759219167_0.45993198296824245","host":"s3://npm-registry-packages-npm-production"}},"2.0.16":{"name":"@apso/better-auth-adapter","version":"2.0.16","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"author":{"name":"Mavric Team"},"license":"MIT","_id":"@apso/better-auth-adapter@2.0.16","maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"homepage":"https://github.com/apsoai/better-auth#readme","bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"dist":{"shasum":"179ca31e785f4e625a215e00f70bf1e3a647e618","tarball":"https://registry.npmjs.org/@apso/better-auth-adapter/-/better-auth-adapter-2.0.16.tgz","fileCount":95,"integrity":"sha512-HXrQJMfSWnYjXyC2q2dSwnBjCV3/EkS9+lAAht1S1W38OyZBhXfD3a9pSTlqFV9E6zSmcrKarsnaYKaIq6eBYA==","signatures":[{"sig":"MEUCIBxRfiPIDbxJNxQ6Md6AKQ8ZTqU2QxH1D+iRcdyKq3ndAiEAoEEDWIu0Zt7VP+krj/Kd6R4J4BpP0b0VdJUWGNS3e+A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":925404},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"825082e61648d5990519b01695064eac53925501","scripts":{"ci":"npm run lint && npm run typecheck && npm run test && npm run build","dev":"tsc --watch","lint":"eslint src tests --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","release":"npm run ci","lint:fix":"eslint src tests --ext .ts --fix","test:unit":"jest --selectProjects unit","typecheck":"tsc --noEmit","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","semantic-release":"semantic-release","test:conformance":"jest --testPathPattern=conformance","test:integration":"INTEGRATION_TESTS=true jest --selectProjects integration","test:performance":"jest --selectProjects performance --passWithNoTests","test:all-integration":"INTEGRATION_TESTS=true jest --selectProjects integration performance","test:integration:with-env":"jest --selectProjects integration"},"_npmUser":{"name":"cultron","email":"mcullerton@gmail.com"},"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"_npmVersion":"10.9.3","description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tslib":"^2.8.1","@apso/sdk":"^1.0.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.7","better-auth":"^1.3.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^7.8.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^7.8.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"peerDependencies":{"better-auth":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-adapter_2.0.16_1767763078405_0.28918716555902235","host":"s3://npm-registry-packages-npm-production"}},"2.0.17":{"name":"@apso/better-auth-adapter","version":"2.0.17","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"author":{"name":"Mavric Team"},"license":"Apache-2.0","_id":"@apso/better-auth-adapter@2.0.17","maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"homepage":"https://github.com/apsoai/better-auth#readme","bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"dist":{"shasum":"cb4200c9837333020bfe17b56b62206dadbc75eb","tarball":"https://registry.npmjs.org/@apso/better-auth-adapter/-/better-auth-adapter-2.0.17.tgz","fileCount":95,"integrity":"sha512-bspJ2QYL08Ms+XunH0s1zKl+BcgrW9IrWIa6QcvRceKP51sLmsJCtMQ/kQPt+xu17PRKA4QgOj7uaSLcYndmfg==","signatures":[{"sig":"MEQCIHgthvMQgHpnBQfYKjzIG+VniHsCzUukqso8sIzKmyDoAiA7QRy/M+ecUUQYjl2bywLxiL6pnAA0mop8ro6WJXottw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":937611},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"91c084fcddb2575e6276cf00b1c5e320f0f7cf4d","scripts":{"ci":"npm run lint && npm run typecheck && npm run test && npm run build","dev":"tsc --watch","lint":"eslint src tests --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","release":"npm run ci","lint:fix":"eslint src tests --ext .ts --fix","test:unit":"jest --selectProjects unit","typecheck":"tsc --noEmit","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","semantic-release":"semantic-release","test:conformance":"jest --testPathPattern=conformance","test:integration":"INTEGRATION_TESTS=true jest --selectProjects integration","test:performance":"jest --selectProjects performance --passWithNoTests","test:all-integration":"INTEGRATION_TESTS=true jest --selectProjects integration performance","test:integration:with-env":"jest --selectProjects integration"},"_npmUser":{"name":"cultron","email":"mcullerton@gmail.com"},"overrides":{"minimatch@3":"^3.1.5","minimatch@9":"^9.0.9","minimatch@10":"10.2.6","brace-expansion@1":"^1.1.16","brace-expansion@2":"^2.1.3","brace-expansion@5":"5.0.8","@isaacs/brace-expansion":"^5.0.8"},"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"_npmVersion":"11.18.0","description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","directories":{},"_nodeVersion":"22.23.1","dependencies":{"tslib":"^2.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.7","better-auth":"^1.3.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.9","@typescript-eslint/parser":"^7.8.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^7.8.0","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.1","conventional-changelog-conventionalcommits":"^10.2.1"},"peerDependencies":{"better-auth":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/better-auth-adapter_2.0.17_1785361058295_0.9164645926519353","host":"s3://npm-registry-packages-npm-production"}},"2.0.18":{"_id":"@apso/better-auth-adapter@2.0.18","bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"dist":{"shasum":"2f60eb4db2aeb53a4fca1f921e857ea36ab077b8","tarball":"https://registry.npmjs.org/@apso/better-auth-adapter/-/better-auth-adapter-2.0.18.tgz","fileCount":95,"integrity":"sha512-JmvH7tt2+CRe9Ug+ZgH/1r2+odpS/b6sfKiBtVAMEoE0T8DALQ+xpPyhxpBWKYWfoDAUzKKDBSmmRXZg+eVN+g==","signatures":[{"sig":"MEUCIGMoJ4NNYenS1dUhCfoRXVfz7mIxn+pjr0CGs+E+wikhAiEAnj916RwX+EhmlnOK1z58AWk/TEq+9K7rZmDV1zjmB5A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDSsc+1UXrBFlvtIOwwPDc20LSUxDajbI7xtOgA2u9y0AiEAzWu73rYCdl2zOA3g3OBXc4HszI8E1vcwuSdeOlQljh8="}],"unpackedSize":924174},"main":"dist/index.js","name":"@apso/better-auth-adapter","types":"dist/index.d.ts","author":{"name":"Mavric Team"},"engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"903501c2b604d56074f59a9d4050d9a6579eaceb","license":"Apache-2.0","scripts":{"ci":"npm run lint && npm run typecheck && npm run test && npm run build","dev":"tsc --watch","lint":"eslint src tests --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","release":"npm run ci","lint:fix":"eslint src tests --ext .ts --fix","test:unit":"jest --selectProjects unit","typecheck":"tsc --noEmit","test:watch":"jest --watch","build:watch":"tsc --watch","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build && npm run test","semantic-release":"semantic-release","test:conformance":"jest --testPathPattern=conformance","test:integration":"INTEGRATION_TESTS=true jest --selectProjects integration","test:performance":"jest --selectProjects performance --passWithNoTests","test:all-integration":"INTEGRATION_TESTS=true jest --selectProjects integration performance","test:integration:with-env":"jest --selectProjects integration"},"version":"2.0.18","_npmUser":{"name":"cultron","email":"mcullerton@gmail.com"},"homepage":"https://github.com/apsoai/better-auth#readme","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"overrides":{"minimatch@3":"^3.1.5","minimatch@9":"^9.0.9","minimatch@10":"10.2.6","brace-expansion@1":"^1.1.16","brace-expansion@2":"^2.1.3","brace-expansion@5":"5.0.8","@isaacs/brace-expansion":"^5.0.8"},"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"_npmVersion":"11.18.0","description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","directories":{},"maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"tslib":"^2.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.12.7","better-auth":"^1.3.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@semantic-release/github":"^12.0.9","@typescript-eslint/parser":"^7.8.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^7.8.0","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.1","conventional-changelog-conventionalcommits":"^10.2.1"},"peerDependencies":{"better-auth":"^1.3.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/better-auth-adapter_2.0.18_1790782031920_0.23610895720937997"}}},"time":{"created":"2025-11-07T20:00:42.094Z","modified":"2026-09-30T15:27:12.376Z","2.0.0":"2025-11-07T20:00:42.477Z","2.0.1":"2025-11-29T16:29:38.286Z","2.0.2":"2025-11-29T16:51:50.977Z","2.0.3":"2026-01-05T19:40:18.514Z","2.0.4":"2026-01-06T04:59:07.858Z","2.0.5":"2026-01-06T15:54:23.112Z","2.0.6":"2026-01-06T22:31:12.309Z","2.0.8":"2026-01-06T23:08:34.875Z","2.0.9":"2026-01-06T23:19:01.179Z","2.0.10":"2026-01-07T02:45:22.227Z","2.0.11":"2026-01-07T03:06:04.320Z","2.0.15":"2026-01-07T04:13:39.339Z","2.0.16":"2026-01-07T05:17:58.621Z","2.0.17":"2026-07-29T21:37:38.442Z","2.0.18":"2026-09-30T15:27:12.141Z"},"bugs":{"url":"https://github.com/apsoai/better-auth/issues"},"author":{"name":"Mavric Team"},"license":"Apache-2.0","homepage":"https://github.com/apsoai/better-auth#readme","keywords":["better-auth","adapter","apso","database","authentication","crud","rest-api","typescript"],"repository":{"url":"git+https://github.com/apsoai/better-auth.git","type":"git"},"description":"Better Auth database adapter that interfaces with Apso-generated CRUD REST endpoints","maintainers":[{"name":"cultron","email":"mcullerton@gmail.com"}],"readme":"# Better Auth Apso Adapter\n\n[![CI/CD Pipeline](https://github.com/your-org/apso/actions/workflows/ci-cd.yml/badge.svg)](https://github.com/your-org/apso/actions/workflows/ci-cd.yml)\n[![npm version](https://badge.fury.io/js/%40apso%2Fbetter-auth-apso-adapter.svg)](https://badge.fury.io/js/%40apso%2Fbetter-auth-apso-adapter)\n[![codecov](https://codecov.io/gh/your-org/apso/branch/main/graph/badge.svg)](https://codecov.io/gh/your-org/apso)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/)\n[![npm downloads](https://img.shields.io/npm/dm/@apso/better-auth-adapter.svg)](https://www.npmjs.com/package/@apso/better-auth-adapter)\n\nA production-ready database adapter for [Better Auth](https://better-auth.com) that seamlessly interfaces with Apso-generated CRUD REST endpoints. This adapter enables Better Auth to work with any REST API following Apso/nestjsx/crud conventions, providing enterprise-grade authentication for modern applications.\n\n## Key Features\n\n- **🔒 Complete Better Auth Integration** - Full compliance with Better Auth adapter interface\n- **🚀 Production-Ready** - Built-in retry logic, circuit breakers, and connection pooling\n- **⚡ High Performance** - Optimized for speed with caching and batch operations\n- **🔧 TypeScript First** - Comprehensive type definitions and strict type checking\n- **📧 Email Normalization** - Automatic email processing and validation\n- **🏗️ Multi-Tenant Support** - Built-in multi-tenancy with scope isolation\n- **📊 Observability** - Comprehensive metrics, tracing, and logging\n- **🛡️ Security Focused** - Input validation, sanitization, and secure defaults\n- **🔄 Flexible Configuration** - Extensive customization options\n- **📈 Scalable** - Connection pooling and bulk operations for high throughput\n\n## Installation\n\n```bash\nnpm install @apso/better-auth-adapter\n```\n\n```bash\nyarn add @apso/better-auth-adapter\n```\n\n```bash\npnpm add @apso/better-auth-adapter\n```\n\n## Quick Start\n\n```typescript\nimport { betterAuth } from 'better-auth';\nimport { apsoAdapter } from '@apso/better-auth-adapter';\n\nexport const auth = betterAuth({\n  database: apsoAdapter({\n    baseUrl: process.env.APSO_BASE_URL!,\n    apiKey: process.env.APSO_API_KEY,\n  }),\n  emailAndPassword: {\n    enabled: true,\n  },\n  session: {\n    expiresIn: 60 * 60 * 24 * 7, // 7 days\n  },\n});\n```\n\n### Environment Variables\n\nCreate a `.env.local` file in your project root:\n\n```env\nAPSO_BASE_URL=https://your-apso-api.com\nAPSO_API_KEY=your-secret-api-key\n```\n\n## Advanced Configuration\n\n### Production Setup\n\n```typescript\nimport { apsoAdapter } from '@apso/better-auth-adapter';\n\nconst adapter = apsoAdapter({\n  baseUrl: process.env.APSO_BASE_URL!,\n  apiKey: process.env.APSO_API_KEY,\n  \n  // Retry configuration for resilience\n  retryConfig: {\n    maxRetries: 3,\n    initialDelayMs: 1000,\n    maxDelayMs: 10000,\n    retryableStatuses: [429, 500, 502, 503, 504],\n  },\n  \n  // Performance optimization\n  cacheConfig: {\n    enabled: true,\n    ttlMs: 300000, // 5 minutes\n    maxSize: 1000,\n  },\n  \n  // Batch operations\n  batchConfig: {\n    batchSize: 100,\n    concurrency: 5,\n    delayBetweenBatches: 100,\n  },\n  \n  // Request timeout\n  timeout: 30000, // 30 seconds\n  \n  // Email normalization\n  emailNormalization: true,\n  \n  // Observability\n  observability: {\n    metricsEnabled: true,\n    tracingEnabled: true,\n    logLevel: 'info',\n  },\n});\n```\n\n### Multi-Tenant Configuration\n\n```typescript\nconst adapter = apsoAdapter({\n  baseUrl: process.env.APSO_BASE_URL!,\n  apiKey: process.env.APSO_API_KEY,\n  \n  multiTenancy: {\n    enabled: true,\n    scopeField: 'tenantId',\n    getScopeValue: async () => {\n      // Get tenant ID from context, headers, etc.\n      return getCurrentTenantId();\n    },\n  },\n});\n```\n\n### High-Throughput Setup\n\n```typescript\nimport { createHighThroughputApsoAdapter } from '@apso/better-auth-adapter';\n\nconst adapter = createHighThroughputApsoAdapter({\n  baseUrl: process.env.APSO_BASE_URL!,\n  apiKey: process.env.APSO_API_KEY,\n  \n  // Optimized for high volume\n  batchConfig: {\n    batchSize: 500,\n    concurrency: 10,\n  },\n  \n  // Connection pooling\n  fetchImpl: new HttpClient({\n    connectionPool: {\n      maxConnections: 100,\n      maxConnectionsPerHost: 20,\n      keepAlive: true,\n    },\n  }),\n});\n```\n\n## Framework Integration\n\n### Next.js App Router\n\n```typescript\n// app/lib/auth.ts\nimport { betterAuth } from 'better-auth';\nimport { apsoAdapter } from '@apso/better-auth-adapter';\n\nexport const auth = betterAuth({\n  database: apsoAdapter({\n    baseUrl: process.env.APSO_BASE_URL!,\n    apiKey: process.env.APSO_API_KEY,\n  }),\n  emailAndPassword: {\n    enabled: true,\n  },\n  trustedOrigins: [process.env.NEXT_PUBLIC_APP_URL!],\n});\n```\n\n```typescript\n// app/api/auth/[...auth]/route.ts\nimport { auth } from '@/lib/auth';\n\nexport const { GET, POST } = auth.handler;\n```\n\n### Express.js\n\n```typescript\n// server.ts\nimport express from 'express';\nimport { betterAuth } from 'better-auth';\nimport { apsoAdapter } from '@apso/better-auth-adapter';\n\nconst app = express();\n\nconst auth = betterAuth({\n  database: apsoAdapter({\n    baseUrl: process.env.APSO_BASE_URL!,\n    apiKey: process.env.APSO_API_KEY,\n  }),\n  emailAndPassword: {\n    enabled: true,\n  },\n});\n\napp.use('/api/auth/*', auth.handler);\n```\n\n## API Reference\n\n### `apsoAdapter(config: ApsoAdapterConfig)`\n\nCreates a Better Auth adapter that interfaces with Apso CRUD APIs.\n\n#### Parameters\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `baseUrl` | `string` | ✅ | Base URL of your Apso API |\n| `apiKey` | `string` | ❌ | API key for authentication |\n| `timeout` | `number` | ❌ | Request timeout in milliseconds (default: 10000) |\n| `retryConfig` | `RetryConfig` | ❌ | Retry configuration for failed requests |\n| `cacheConfig` | `CacheConfig` | ❌ | Response caching configuration |\n| `batchConfig` | `BatchConfig` | ❌ | Batch operations configuration |\n| `multiTenancy` | `MultiTenancyConfig` | ❌ | Multi-tenancy settings |\n| `observability` | `ObservabilityConfig` | ❌ | Metrics and tracing configuration |\n| `emailNormalization` | `boolean` | ❌ | Enable email normalization (default: true) |\n| `debugMode` | `boolean` | ❌ | Enable debug logging (default: false) |\n\n### Specialized Adapters\n\n```typescript\n// Reliable adapter with enhanced retry logic\nconst reliableAdapter = createReliableApsoAdapter(config);\n\n// High-throughput adapter optimized for performance\nconst fastAdapter = createHighThroughputApsoAdapter(config);\n```\n\n### Health Monitoring\n\n```typescript\n// Check adapter health\nconst isHealthy = await checkAdapterHealth(adapter);\n\n// Get adapter metrics\nconst metrics = adapter.getMetrics();\nconsole.log(`Success rate: ${metrics.successfulRequests / metrics.totalRequests * 100}%`);\n\n// Close all adapters (useful for graceful shutdown)\nawait closeAllAdapters();\n```\n\n## Authentication Flows\n\n### Email/Password Sign Up\n\n```typescript\nimport { auth } from './lib/auth';\n\n// Sign up new user\nconst result = await auth.api.signUpEmail({\n  body: {\n    email: 'user@example.com',\n    password: 'securePassword123',\n    name: 'John Doe',\n  },\n});\n\nif (result.data?.user) {\n  console.log('User created:', result.data.user.id);\n}\n```\n\n### Email/Password Sign In\n\n```typescript\n// Sign in user\nconst result = await auth.api.signInEmail({\n  body: {\n    email: 'user@example.com',\n    password: 'securePassword123',\n  },\n});\n\nif (result.data?.session) {\n  console.log('Session created:', result.data.session.token);\n}\n```\n\n### Password Reset Flow\n\n```typescript\n// Request password reset\nawait auth.api.forgetPassword({\n  body: {\n    email: 'user@example.com',\n    redirectTo: 'https://yourdomain.com/reset-password',\n  },\n});\n\n// Reset password with token\nawait auth.api.resetPassword({\n  body: {\n    token: 'reset-token',\n    password: 'newSecurePassword123',\n  },\n});\n```\n\n## Error Handling\n\nThe adapter provides comprehensive error handling with specific error codes:\n\n```typescript\nimport { AdapterError, AdapterErrorCode } from '@apso/better-auth-adapter';\n\ntry {\n  await auth.api.signInEmail({\n    body: { email: 'invalid', password: 'wrong' }\n  });\n} catch (error) {\n  if (error instanceof AdapterError) {\n    switch (error.code) {\n      case AdapterErrorCode.VALIDATION_ERROR:\n        console.error('Invalid input:', error.details);\n        break;\n      case AdapterErrorCode.NOT_FOUND:\n        console.error('User not found');\n        break;\n      case AdapterErrorCode.UNAUTHORIZED:\n        console.error('Invalid credentials');\n        break;\n      case AdapterErrorCode.RATE_LIMIT:\n        console.error('Too many requests, retry after:', error.details.retryAfter);\n        break;\n      default:\n        console.error('Unexpected error:', error.message);\n    }\n  }\n}\n```\n\n## Performance Optimization\n\n### Caching Strategy\n\n```typescript\nconst adapter = apsoAdapter({\n  baseUrl: process.env.APSO_BASE_URL!,\n  cacheConfig: {\n    enabled: true,\n    ttlMs: 600000, // 10 minutes\n    maxSize: 2000,\n  },\n});\n\n// Clear cache when needed\nadapter.clearCache();\n```\n\n### Batch Operations\n\n```typescript\n// Batch create users\nconst users = await adapter.createMany({\n  model: 'user',\n  data: [\n    { email: 'user1@example.com', name: 'User 1' },\n    { email: 'user2@example.com', name: 'User 2' },\n    { email: 'user3@example.com', name: 'User 3' },\n  ],\n});\n```\n\n### Connection Pooling\n\n```typescript\nimport { HttpClient } from '@apso/better-auth-adapter';\n\nconst httpClient = new HttpClient({\n  connectionPool: {\n    maxConnections: 50,\n    maxConnectionsPerHost: 10,\n    keepAlive: true,\n    keepAliveTimeout: 30000,\n  },\n});\n\nconst adapter = apsoAdapter({\n  baseUrl: process.env.APSO_BASE_URL!,\n  fetchImpl: httpClient,\n});\n```\n\n## Security Best Practices\n\n### Environment Variables\n\nNever hardcode sensitive values. Always use environment variables:\n\n```typescript\n// ✅ Good\nconst adapter = apsoAdapter({\n  baseUrl: process.env.APSO_BASE_URL!,\n  apiKey: process.env.APSO_API_KEY,\n});\n\n// ❌ Bad\nconst adapter = apsoAdapter({\n  baseUrl: 'https://api.example.com',\n  apiKey: 'secret-key-123',\n});\n```\n\n### Input Validation\n\nThe adapter automatically validates and sanitizes all inputs:\n\n```typescript\n// Email normalization is enabled by default\nconst adapter = apsoAdapter({\n  baseUrl: process.env.APSO_BASE_URL!,\n  emailNormalization: true, // Converts emails to lowercase, trims whitespace\n});\n```\n\n### HTTPS Only\n\nAlways use HTTPS endpoints in production:\n\n```typescript\n// ✅ Good\nconst adapter = apsoAdapter({\n  baseUrl: 'https://api.example.com',\n});\n\n// ❌ Bad (HTTP in production)\nconst adapter = apsoAdapter({\n  baseUrl: 'http://api.example.com',\n});\n```\n\n## Monitoring and Observability\n\n### Metrics Collection\n\n```typescript\nconst adapter = apsoAdapter({\n  baseUrl: process.env.APSO_BASE_URL!,\n  observability: {\n    metricsEnabled: true,\n    tracingEnabled: true,\n    logLevel: 'info',\n  },\n});\n\n// Get detailed metrics\nconst metrics = adapter.getMetrics();\nconsole.log({\n  totalRequests: metrics.totalRequests,\n  successRate: metrics.successfulRequests / metrics.totalRequests,\n  averageLatency: metrics.averageLatency,\n  p95Latency: metrics.p95Latency,\n  cacheHitRate: metrics.cacheHitRate,\n});\n```\n\n### Custom Logger\n\n```typescript\nimport { Logger } from '@apso/better-auth-adapter';\n\nconst customLogger: Logger = {\n  debug: (message, meta) => console.debug(message, meta),\n  info: (message, meta) => console.info(message, meta),\n  warn: (message, meta) => console.warn(message, meta),\n  error: (message, meta) => console.error(message, meta),\n};\n\nconst adapter = apsoAdapter({\n  baseUrl: process.env.APSO_BASE_URL!,\n  logger: customLogger,\n});\n```\n\n## Migration Guide\n\nSee our comprehensive [Migration Guide](./docs/migration.md) for detailed instructions on:\n\n- Migrating from AWS Cognito\n- Migrating from Prisma adapter\n- Migrating from Drizzle adapter\n- Data export and import procedures\n\n## Troubleshooting\n\nCommon issues and solutions can be found in our [Troubleshooting Guide](./docs/troubleshooting.md).\n\n### Quick Fixes\n\n**Connection timeout errors:**\n```typescript\nconst adapter = apsoAdapter({\n  baseUrl: process.env.APSO_BASE_URL!,\n  timeout: 30000, // Increase timeout to 30 seconds\n});\n```\n\n**Rate limiting issues:**\n```typescript\nconst adapter = apsoAdapter({\n  baseUrl: process.env.APSO_BASE_URL!,\n  retryConfig: {\n    maxRetries: 5,\n    initialDelayMs: 2000,\n    maxDelayMs: 30000,\n  },\n});\n```\n\n## Examples\n\nFor complete working examples, see:\n\n- [Next.js App Router Example](./docs/examples.md#nextjs-app-router)\n- [Next.js Pages Router Example](./docs/examples.md#nextjs-pages-router)\n- [Express.js Example](./docs/examples.md#expressjs)\n- [Multi-tenant Application](./docs/examples.md#multi-tenant)\n- [High-Performance Setup](./docs/examples.md#high-performance)\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](./CONTRIBUTING.md) for details on:\n\n- Setting up the development environment\n- Running tests and code quality checks\n- Submitting pull requests\n- Code style guidelines\n\n## Changelog\n\nSee [CHANGELOG.md](./CHANGELOG.md) for a detailed history of changes.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.\n\n## Support\n\n- **Documentation**: [Full API Reference](./docs/api-reference.md)\n- **Configuration**: [Configuration Guide](./docs/configuration.md)\n- **Examples**: [Usage Examples](./docs/examples.md)\n- **Issues**: [GitHub Issues](https://github.com/your-org/apso/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/your-org/apso/discussions)\n\n## Related Projects\n\n- [Better Auth](https://better-auth.com) - Modern authentication library\n- [Apso SDK](https://github.com/your-org/apso/tree/main/packages/apso-sdk) - TypeScript SDK for Apso APIs\n- [nestjsx/crud](https://github.com/nestjsx/crud) - CRUD operations for NestJS applications\n\n---\n\n**Made with ❤️ by the Mavric Team**","readmeFilename":"README.md"}