{"_id":"@bernierllc/nevar-context-builder","_rev":"5-5099cc3dd3d4166c87d6917dc0bf1ae2","name":"@bernierllc/nevar-context-builder","dist-tags":{"latest":"0.5.0"},"versions":{"0.0.1":{"name":"@bernierllc/nevar-context-builder","version":"0.0.1","keywords":["oidc","trusted-publishing","setup"],"_id":"@bernierllc/nevar-context-builder@0.0.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"9e23a165b8222fbfbfb1e2c0665a5518a253b15c","tarball":"https://registry.npmjs.org/@bernierllc/nevar-context-builder/-/nevar-context-builder-0.0.1.tgz","fileCount":2,"integrity":"sha512-AOZLxITU6wz0usv5y+2K+II2K1KG8qcGyT2rRuyHwuyInBvTAJzhIbLkcTSF8S5sOLplxLHYc53L4q1l55YhsA==","signatures":[{"sig":"MEYCIQCugpHr99jMG/QV3LTjcFgjT2wHFopoy3tdAD3K4dmXiQIhALg2g8gbDzc2cXrGHeamKC9E6QB+rnsVxB9vOchcA7lI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2095},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_npmVersion":"11.11.0","description":"OIDC trusted publishing setup package for @bernierllc/nevar-context-builder","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nevar-context-builder_0.0.1_1774655719085_0.4601444389643774","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@bernierllc/nevar-context-builder","version":"0.1.0","keywords":["nevar","rules-engine","context","context-builder","evaluation-context"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/nevar-context-builder@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":"a4fb30f163bc77a247064a390c909872aace8d0e","tarball":"https://registry.npmjs.org/@bernierllc/nevar-context-builder/-/nevar-context-builder-0.1.0.tgz","fileCount":7,"integrity":"sha512-IJfPhtyJKTpU2fXi6vS7hMCOwNUSS0iP7dkpOUkuIYna3Q3OaOxLYpWxfx1PZf0opku4Km0BchxbqDbE/iOZRA==","signatures":[{"sig":"MEUCIFzmOpsx68eqCC2RjQo/HtfkuJBXLBK6mAb+h8aSF+A0AiEAjQTnjEbXqD+bhuTIMJSmtnMtKjbSraTxWjYY1rTI6w8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11520},"main":"dist/index.js","_from":"file:bernierllc-nevar-context-builder-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:6831f806-2e40-4b1b-a9e6-54bb33cff630"}},"_resolved":"/home/runner/work/tools/tools/packages/core/nevar-context-builder/bernierllc-nevar-context-builder-0.1.0.tgz","_integrity":"sha512-IJfPhtyJKTpU2fXi6vS7hMCOwNUSS0iP7dkpOUkuIYna3Q3OaOxLYpWxfx1PZf0opku4Km0BchxbqDbE/iOZRA==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/nevar-context-builder"},"_npmVersion":"11.12.1","description":"Builds flat key-value evaluation context from trigger payload and registered context providers 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"},"_npmOperationalInternal":{"tmp":"tmp/nevar-context-builder_0.1.0_1774889019351_0.09355407368362312","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bernierllc/nevar-context-builder","version":"0.2.0","keywords":["nevar","rules-engine","context","context-builder","evaluation-context"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/nevar-context-builder@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":"70a2f386f36d87579d862ba4dd7fbb2d4b583277","tarball":"https://registry.npmjs.org/@bernierllc/nevar-context-builder/-/nevar-context-builder-0.2.0.tgz","fileCount":7,"integrity":"sha512-HKKq4XYL2IrAkz4vfwat8Vz8tcSlNmlV5JihkxaEkHTvjq8D6Gkt7y7P0jaK2yu/i+1GOaMvxjvfO2cJT+9g2w==","signatures":[{"sig":"MEUCIG8H9e8Lx1YDnK18qQEfXdGL6jhy8rUQn8w1PCEiioMdAiEA97Q1qHFa5FZVloMksVQyOYZzjeU3V2F573dmXLDtack=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11520},"main":"dist/index.js","_from":"file:bernierllc-nevar-context-builder-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:6831f806-2e40-4b1b-a9e6-54bb33cff630"}},"_resolved":"/home/runner/work/tools/tools/packages/core/nevar-context-builder/bernierllc-nevar-context-builder-0.2.0.tgz","_integrity":"sha512-HKKq4XYL2IrAkz4vfwat8Vz8tcSlNmlV5JihkxaEkHTvjq8D6Gkt7y7P0jaK2yu/i+1GOaMvxjvfO2cJT+9g2w==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/nevar-context-builder"},"_npmVersion":"11.14.1","description":"Builds flat key-value evaluation context from trigger payload and registered context providers 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"},"_npmOperationalInternal":{"tmp":"tmp/nevar-context-builder_0.2.0_1779133531939_0.5799600795106206","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bernierllc/nevar-context-builder","version":"0.4.0","keywords":["nevar","rules-engine","context","context-builder","evaluation-context"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/nevar-context-builder@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":"df2f4f464ea290efbdd1cc2e4b8fd2a815f3c7e1","tarball":"https://registry.npmjs.org/@bernierllc/nevar-context-builder/-/nevar-context-builder-0.4.0.tgz","fileCount":9,"integrity":"sha512-uxlltGVVnX9lN0Jwp3oDJUmzOxGeL6AuxL6BTnVx1Mlcq357Z41EZsFD8Oeyv+GPXwQ0PrRfSdDPN4+EXSaJ8g==","signatures":[{"sig":"MEUCIQDUJW+1LZe507H8+r5RsMtFklQk7x236S9AzzBMw59W6QIgaKFt+TefjBG3NT/EOqVUwdSIqYNWIyB+p/L7l0NGi68=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13362},"main":"dist/index.js","_from":"file:bernierllc-nevar-context-builder-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:6831f806-2e40-4b1b-a9e6-54bb33cff630"}},"_resolved":"/home/runner/work/tools/tools/packages/core/nevar-context-builder/bernierllc-nevar-context-builder-0.4.0.tgz","_integrity":"sha512-uxlltGVVnX9lN0Jwp3oDJUmzOxGeL6AuxL6BTnVx1Mlcq357Z41EZsFD8Oeyv+GPXwQ0PrRfSdDPN4+EXSaJ8g==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/nevar-context-builder"},"_npmVersion":"11.14.1","description":"Builds flat key-value evaluation context from trigger payload and registered context providers 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"},"_npmOperationalInternal":{"tmp":"tmp/nevar-context-builder_0.4.0_1779241261134_0.6110572970595114","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@bernierllc/nevar-context-builder","version":"0.5.0","description":"Builds flat key-value evaluation context from trigger payload and registered context providers for the Nevar rules engine","main":"dist/index.js","types":"dist/index.d.ts","keywords":["nevar","rules-engine","context","context-builder","evaluation-context"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/bernierllc/tools.git","directory":"packages/core/nevar-context-builder"},"dependencies":{"@bernierllc/nevar-types":"0.4.0"},"devDependencies":{"@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.0.0","jest":"^29.5.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0"},"scripts":{"build":"tsc","prebuild":"npm run clean","clean":"rimraf dist","test":"jest","test:run":"jest","test:coverage":"jest --coverage","lint":"eslint src __tests__ --ext .ts"},"_id":"@bernierllc/nevar-context-builder@0.5.0","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"homepage":"https://github.com/bernierllc/tools#readme","_integrity":"sha512-32LJPHIuP0hoZMQUiM2Xt+7ANpB494zmkAieb8PnbfYSaYBQtTIuc2LxaM8cEZOh/fKUBTmkfI7T3fMfXw6jvw==","_resolved":"/home/runner/work/tools/tools/packages/core/nevar-context-builder/bernierllc-nevar-context-builder-0.5.0.tgz","_from":"file:bernierllc-nevar-context-builder-0.5.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"11.14.1","dist":{"integrity":"sha512-32LJPHIuP0hoZMQUiM2Xt+7ANpB494zmkAieb8PnbfYSaYBQtTIuc2LxaM8cEZOh/fKUBTmkfI7T3fMfXw6jvw==","shasum":"47c6a0217eec14c0cb79471de1be5f29a979f5c4","tarball":"https://registry.npmjs.org/@bernierllc/nevar-context-builder/-/nevar-context-builder-0.5.0.tgz","fileCount":9,"unpackedSize":13362,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBj/ZT/Ni0LEdyDWcxmEVj3gvMr6lBfnEGGngESvoFh5AiANUjgOaXsKJEGuzRNiL3QKVCnBTmHYFjTOQMPgfCix3A=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6831f806-2e40-4b1b-a9e6-54bb33cff630"}},"directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nevar-context-builder_0.5.0_1779250011212_0.19234926278143427"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-27T23:55:19.022Z","modified":"2026-05-20T04:06:51.492Z","0.0.1":"2026-03-27T23:55:19.249Z","0.1.0":"2026-03-30T16:43:39.641Z","0.2.0":"2026-05-18T19:45:32.097Z","0.4.0":"2026-05-20T01:41:01.309Z","0.5.0":"2026-05-20T04:06:51.344Z"},"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","context","context-builder","evaluation-context"],"repository":{"type":"git","url":"git+https://github.com/bernierllc/tools.git","directory":"packages/core/nevar-context-builder"},"description":"Builds flat key-value evaluation context from trigger payload and registered context providers for the Nevar rules engine","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/nevar-context-builder\n\nBuilds flat key-value evaluation context from trigger payload and registered context providers for the Nevar rules engine.\n\n## Installation\n\n```bash\nnpm install @bernierllc/nevar-context-builder\n```\n\n## Usage\n\n```typescript\nimport { ContextBuilder } from '@bernierllc/nevar-context-builder';\n\nconst builder = new ContextBuilder();\n\n// Register a context provider\nbuilder.registerProvider('user', async (payload) => {\n  const userId = payload.userId as string;\n  return { name: 'Alice', role: 'admin' };\n});\n\n// Build context from trigger payload\nconst context = await builder.build('order.created', { orderId: '123', userId: 'u1' }, ['user.name', 'user.role']);\n// Result:\n// {\n//   'trigger.key': 'order.created',\n//   'trigger.orderId': '123',\n//   'trigger.userId': 'u1',\n//   'user.name': 'Alice',\n//   'user.role': 'admin'\n// }\n```\n\n## API\n\n### `ContextBuilder`\n\nBuilds flat key-value evaluation context from trigger payloads and registered context providers. Providers are only invoked when their prefix appears in the required fields list.\n\n**Constructor:** `new ContextBuilder()`\n\n- `registerProvider(prefix, providerFn)` - Registers a context provider under a prefix. The `\"trigger\"` prefix is reserved. Throws `NevarEvaluationError` on empty prefix, reserved prefix, or duplicate registration\n- `build(triggerKey, payload, requiredFields)` - Builds the evaluation context. Auto-prefixes payload fields with `trigger.*`, sets `trigger.key`, and invokes only the providers whose prefixes appear in `requiredFields`. Returns `Promise<Record<string, unknown>>`\n- `listProviders()` - Returns array of registered provider prefixes\n- `hasProvider(prefix)` - Returns `true` if a provider is registered under the given prefix\n\n## Integration Documentation\n\n### Logger Integration\nThis package does not integrate with `@bernierllc/logger`. As a core package, logger integration is optional and not included by default. Consumers should handle logging at the service layer.\n\n### NeverHub Integration\nThis package does not integrate with `@bernierllc/neverhub-adapter`. As a core package, NeverHub integration is not applicable. NeverHub registration should be handled by service-layer packages that compose this package.\n\n## License\n\nCopyright (c) 2025 Bernier LLC. All rights reserved.\n","readmeFilename":"README.md"}