{"_id":"@bernierllc/nevar-nextjs","_rev":"6-62097956c18f0f58fc766128b2632e1a","name":"@bernierllc/nevar-nextjs","dist-tags":{"latest":"0.4.1"},"versions":{"0.0.1":{"name":"@bernierllc/nevar-nextjs","version":"0.0.1","keywords":["oidc","trusted-publishing","setup"],"_id":"@bernierllc/nevar-nextjs@0.0.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"a7cc77225967deb95b547c4abdda8204c925dd91","tarball":"https://registry.npmjs.org/@bernierllc/nevar-nextjs/-/nevar-nextjs-0.0.1.tgz","fileCount":2,"integrity":"sha512-3+M5t/9E4b2kfqsI+5J1zxVsGtR7vRHSoL17dR1gC3Nx4xVon2hgyIBapcgL6zy+NbvTt1C8tsmcuQY+zunX4w==","signatures":[{"sig":"MEQCID/D0uIa6DMJnvkFXRVT71OWcdcM2okWTT47kZhSUkHfAiB+4m+wRc6O9cPeaXCxW1Ek8WlBJsUTFLFDcoqsaad7og==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2059},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_npmVersion":"11.11.0","description":"OIDC trusted publishing setup package for @bernierllc/nevar-nextjs","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nevar-nextjs_0.0.1_1774655953407_0.019570242652978687","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@bernierllc/nevar-nextjs","version":"0.1.0","keywords":["nevar","rules-engine","nextjs","middleware","api-routes","discovery"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/nevar-nextjs@0.1.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"8bc83f46c210ef0c72021485f8ee15f96abf1e18","tarball":"https://registry.npmjs.org/@bernierllc/nevar-nextjs/-/nevar-nextjs-0.1.0.tgz","fileCount":19,"integrity":"sha512-pYKHfuapqZcGwMxH9VvNplrCODpnHdaf/u+Jx5U0QZIN64hgzHZTcr7M0sQuGRpHH/KkSXJLse6OrRsEEcpdrA==","signatures":[{"sig":"MEYCIQDzOqaz5/Y+u2rckdjexAiBCoac97xB7OUm2yXqo+spJwIhAITNVFGH0b72KVQOyXF3amiGiVc399d4mX3Ewc6cjS3Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30386},"main":"dist/index.js","_from":"file:bernierllc-nevar-nextjs-0.1.0.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ec5ebf4-50c8-405c-83ff-b8cd3be07c3d"}},"_resolved":"/home/runner/work/tools/tools/packages/service/nevar-nextjs/bernierllc-nevar-nextjs-0.1.0.tgz","_integrity":"sha512-pYKHfuapqZcGwMxH9VvNplrCODpnHdaf/u+Jx5U0QZIN64hgzHZTcr7M0sQuGRpHH/KkSXJLse6OrRsEEcpdrA==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/nevar-nextjs"},"_npmVersion":"11.12.1","description":"Next.js middleware, route handler wrapper, API routes, and discovery endpoints for the Nevar rules engine","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@bernierllc/nevar-types":"0.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"next":">=13.0.0"},"peerDependenciesMeta":{"next":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/nevar-nextjs_0.1.0_1774899180029_0.20747204164376365","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bernierllc/nevar-nextjs","version":"0.2.0","keywords":["nevar","rules-engine","nextjs","middleware","api-routes","discovery"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/nevar-nextjs@0.2.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"743069c167a810168905a249a33479995ead0356","tarball":"https://registry.npmjs.org/@bernierllc/nevar-nextjs/-/nevar-nextjs-0.2.0.tgz","fileCount":19,"integrity":"sha512-EcsITSwq3hzYpNDVpA2W48fAtx8D8iqaO3hI1JfKHQAHIFkKRROMxnW/PBpaLbx6k5mtMJlNUSacTcA72UFZEA==","signatures":[{"sig":"MEUCIQCH0kxf8hAeoiE7eW7DCJpWZgCBOM4m24GlLyvZiqpvQQIgfxMB5UhOtAMOkn4jdobVviQ0GNqt7g0WkQhHRBKi+0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30386},"main":"dist/index.js","_from":"file:bernierllc-nevar-nextjs-0.2.0.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ec5ebf4-50c8-405c-83ff-b8cd3be07c3d"}},"_resolved":"/home/runner/work/tools/tools/packages/service/nevar-nextjs/bernierllc-nevar-nextjs-0.2.0.tgz","_integrity":"sha512-EcsITSwq3hzYpNDVpA2W48fAtx8D8iqaO3hI1JfKHQAHIFkKRROMxnW/PBpaLbx6k5mtMJlNUSacTcA72UFZEA==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/nevar-nextjs"},"_npmVersion":"11.14.1","description":"Next.js middleware, route handler wrapper, API routes, and discovery endpoints for the Nevar rules engine","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/nevar-types":"0.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"next":">=13.0.0"},"peerDependenciesMeta":{"next":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/nevar-nextjs_0.2.0_1779133876380_0.058156834096554144","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bernierllc/nevar-nextjs","version":"0.3.0","keywords":["nevar","rules-engine","nextjs","middleware","api-routes","discovery"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/nevar-nextjs@0.3.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"e08bdb3879ca33648ac608b3df9ee5e6d1e05332","tarball":"https://registry.npmjs.org/@bernierllc/nevar-nextjs/-/nevar-nextjs-0.3.0.tgz","fileCount":19,"integrity":"sha512-U/2ZqrHO8Vx/Yk9+t/vcIKRw1dvNYmzbkVzCT6rdzRwW0Qde+2UbqNmuNXTAuiQkSgta/Ge1ShjrVSi/dfedHw==","signatures":[{"sig":"MEUCIQDDLJCFwqVmGCDns5/w6uR4Cjl7dBHoYMJXgf/tgiYupwIgD3WIcYJCfgodqI0MO6KxkhAUSloPEDr7M/dcFs68i6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30386},"main":"dist/index.js","_from":"file:bernierllc-nevar-nextjs-0.3.0.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ec5ebf4-50c8-405c-83ff-b8cd3be07c3d"}},"_resolved":"/home/runner/work/tools/tools/packages/service/nevar-nextjs/bernierllc-nevar-nextjs-0.3.0.tgz","_integrity":"sha512-U/2ZqrHO8Vx/Yk9+t/vcIKRw1dvNYmzbkVzCT6rdzRwW0Qde+2UbqNmuNXTAuiQkSgta/Ge1ShjrVSi/dfedHw==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/nevar-nextjs"},"_npmVersion":"11.14.1","description":"Next.js middleware, route handler wrapper, API routes, and discovery endpoints for the Nevar rules engine","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/nevar-types":"0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"next":">=13.0.0"},"peerDependenciesMeta":{"next":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/nevar-nextjs_0.3.0_1779241780028_0.2853982426421955","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bernierllc/nevar-nextjs","version":"0.4.0","keywords":["nevar","rules-engine","nextjs","middleware","api-routes","discovery"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/nevar-nextjs@0.4.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"148d4e6838c17cb034c9606d6d3adba100a53455","tarball":"https://registry.npmjs.org/@bernierllc/nevar-nextjs/-/nevar-nextjs-0.4.0.tgz","fileCount":19,"integrity":"sha512-iOToDi80Jm2yM0EWYsl+ZTwdRvSsol8CrSFbx80TBoNXYturDugd1gwlUtWAHOZnT+ryCFL5vUYzWzEsb2RKWQ==","signatures":[{"sig":"MEUCIQCKKkR2poQnCMn4yAObjSk7SlHg5hU8li4wL9i1nUNBgwIgZQ1G2mHZY2DUpMwTGMunNmsIO15f6S8VngkonUIC4T0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30386},"main":"dist/index.js","_from":"file:bernierllc-nevar-nextjs-0.4.0.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ec5ebf4-50c8-405c-83ff-b8cd3be07c3d"}},"_resolved":"/home/runner/work/tools/tools/packages/service/nevar-nextjs/bernierllc-nevar-nextjs-0.4.0.tgz","_integrity":"sha512-iOToDi80Jm2yM0EWYsl+ZTwdRvSsol8CrSFbx80TBoNXYturDugd1gwlUtWAHOZnT+ryCFL5vUYzWzEsb2RKWQ==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/nevar-nextjs"},"_npmVersion":"11.14.1","description":"Next.js middleware, route handler wrapper, API routes, and discovery endpoints for the Nevar rules engine","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/nevar-types":"0.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"next":">=13.0.0"},"peerDependenciesMeta":{"next":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/nevar-nextjs_0.4.0_1779250528484_0.10496787453570455","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"_id":"@bernierllc/nevar-nextjs@0.4.1","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"a5200af570256b8d848e87fa8661e897840f6e25","tarball":"https://registry.npmjs.org/@bernierllc/nevar-nextjs/-/nevar-nextjs-0.4.1.tgz","fileCount":19,"integrity":"sha512-kcyekC5AFt04P86F3r08o+/kL+nj6oY8ftv3fRAQLdXfVsYIP6+R7uDMldIFKE7ZtrAeDBqOhEX1DippMVHQgw==","signatures":[{"sig":"MEQCIHwRy9awUjVF9xX0bU8d2rdGKbfHQa1mC42UBfYzK+jDAiA09iFDDfb9N6hJ/84RbcNCexJRCyJ3pYWZcZDs3Un8Xw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE3vy8eAdJNY+k+C/bkljEtuumMqouDXRktDFkaLuG5hAiEAmiU8LSoGyGOSycCMsBRWzf5/168WXEGXz60h4LHK+oA="}],"unpackedSize":30387},"main":"dist/index.js","name":"@bernierllc/nevar-nextjs","_from":"file:bernierllc-nevar-nextjs-0.4.1.tgz","types":"dist/index.d.ts","author":{"name":"Bernier LLC"},"engines":{"node":">=16.0.0"},"license":"SEE LICENSE IN LICENSE","scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest","test:coverage":"jest --coverage"},"version":"0.4.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8ec5ebf4-50c8-405c-83ff-b8cd3be07c3d"}},"homepage":"https://github.com/bernierllc/tools#readme","keywords":["nevar","rules-engine","nextjs","middleware","api-routes","discovery"],"_resolved":"/home/runner/work/tools/tools/packages/service/nevar-nextjs/bernierllc-nevar-nextjs-0.4.1.tgz","_integrity":"sha512-kcyekC5AFt04P86F3r08o+/kL+nj6oY8ftv3fRAQLdXfVsYIP6+R7uDMldIFKE7ZtrAeDBqOhEX1DippMVHQgw==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/nevar-nextjs"},"_npmVersion":"12.2.0","description":"Next.js middleware, route handler wrapper, API routes, and discovery endpoints for the Nevar rules engine","directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"@bernierllc/nevar-types":"^0.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"next":">=13.0.0"},"peerDependenciesMeta":{"next":{"optional":false}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nevar-nextjs_0.4.1_1790884570575_0.8907838508160917"}}},"time":{"created":"2026-03-27T23:59:13.334Z","modified":"2026-10-01T19:56:13.628Z","0.0.1":"2026-03-27T23:59:13.551Z","0.1.0":"2026-03-30T19:33:00.176Z","0.2.0":"2026-05-18T19:51:16.535Z","0.3.0":"2026-05-20T01:49:40.186Z","0.4.0":"2026-05-20T04:15:28.654Z","0.4.1":"2026-10-01T19:56:10.662Z"},"bugs":{"url":"https://github.com/bernierllc/tools/issues"},"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","homepage":"https://github.com/bernierllc/tools#readme","keywords":["nevar","rules-engine","nextjs","middleware","api-routes","discovery"],"repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/service/nevar-nextjs"},"description":"Next.js middleware, route handler wrapper, API routes, and discovery endpoints for the Nevar rules engine","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/nevar-nextjs\n\nNext.js middleware, route handler wrapper, API routes, and discovery endpoints for the Nevar rules engine.\n\n## Installation\n\n```bash\nnpm install @bernierllc/nevar-nextjs\n```\n\n## Usage\n\n### Middleware\n\nAuto-emit Nevar triggers on matching routes:\n\n```typescript\nimport { createNevarMiddleware } from '@bernierllc/nevar-nextjs';\n\nconst middleware = createNevarMiddleware(nevar, {\n  routes: {\n    '/api/checkout': { triggerKey: 'checkout.started' },\n    '/api/signup': {\n      triggerKey: 'user.signup',\n      payloadExtractor: (req) => ({ url: req.url }),\n    },\n  },\n});\n```\n\n### withNevar\n\nWrap a route handler with Nevar context:\n\n```typescript\nimport { withNevar } from '@bernierllc/nevar-nextjs';\n\nexport const POST = withNevar(nevar, async (req, { emit, preview }) => {\n  const body = await req.json();\n  const result = await emit('order.placed', body);\n  return new Response(JSON.stringify(result));\n});\n```\n\n### API Routes\n\nCreate CRUD endpoints for rules:\n\n```typescript\nimport { createNevarApiRoutes } from '@bernierllc/nevar-nextjs';\n\nconst { GET, POST, PATCH, DELETE } = createNevarApiRoutes(nevar, {\n  auth: async (req) => checkApiKey(req.headers),\n});\n\nexport { GET, POST, PATCH, DELETE };\n```\n\n### Discovery Routes\n\nExpose operators, triggers, and actions for UI consumption:\n\n```typescript\nimport { createDiscoveryRoutes } from '@bernierllc/nevar-nextjs';\n\nconst discovery = createDiscoveryRoutes(nevar);\n\n// Mount at /api/nevar/operators, /api/nevar/triggers, /api/nevar/actions\nexport const operators = discovery.operators;\nexport const triggers = discovery.triggers;\nexport const actions = discovery.actions;\n```\n\n## API\n\n### `createNevarMiddleware(engine, config)`\n\nCreates Next.js middleware that auto-emits Nevar triggers on matching routes. Configure route-to-trigger mappings and optional payload extractors.\n\n### `withNevar(engine, handler)`\n\nWraps a Next.js route handler with Nevar context, injecting `emit` and `preview` helpers into the handler's second argument.\n\n### `createNevarApiRoutes(engine, options?)`\n\nCreates CRUD route handlers (`GET`, `POST`, `PATCH`, `DELETE`) for managing rules via REST. Supports an optional `auth` callback for request authentication.\n\n### `createDiscoveryRoutes(engine)`\n\nCreates route handlers that expose registered operators, triggers, and actions for UI consumption. Returns `{ operators, triggers, actions }` handlers.\n\n### Utilities\n\n- `extractPathname(req)` - Extract the pathname from a request URL\n- `extractIdFromUrl(req)` - Extract a resource ID from a request URL\n- `jsonResponse(data, status?)` - Create a JSON Response object\n\n### Error Classes\n\n- `NevarNextjsError` - Base error for the package\n- `NevarMiddlewareError` - Thrown during middleware execution failures\n- `NevarApiRouteError` - Thrown during API route handler failures\n- `NevarAuthError` - Thrown when authentication fails\n\n## Integration Documentation\n\n### Logger Integration\n\nThis package integrates with `@bernierllc/logger` for structured logging. Middleware and route handlers log request processing, trigger emissions, and error conditions. Use logger for observability into request-level rule evaluation.\n\n### NeverHub Integration\n\nThis package supports optional integration with `@bernierllc/neverhub-adapter`. When NeverHub is available, the Next.js integration can register its middleware and API routes for discovery and monitoring. Graceful degradation is supported when NeverHub is not present.\n\n## License\n\nCopyright (c) 2025 Bernier LLC. All rights reserved.\n","readmeFilename":"README.md"}