{"_id":"@bernierllc/nevar-operator-registry","_rev":"5-5a24d53a0d0183173a667abbfedcc3a8","name":"@bernierllc/nevar-operator-registry","dist-tags":{"latest":"0.5.0"},"versions":{"0.0.1":{"name":"@bernierllc/nevar-operator-registry","version":"0.0.1","keywords":["oidc","trusted-publishing","setup"],"_id":"@bernierllc/nevar-operator-registry@0.0.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"f0803621a55059ecab13a7fa13e8e257b32106c2","tarball":"https://registry.npmjs.org/@bernierllc/nevar-operator-registry/-/nevar-operator-registry-0.0.1.tgz","fileCount":2,"integrity":"sha512-Wpy3ircE3R0ggr1u0R/IYOriFGE1v8EiGZpCoSXvSmQCMwvkDrcCTvezNGna8hw66jIoK7oSSLcU6ZhxQAkxTA==","signatures":[{"sig":"MEUCIQCTD398fyl5BN0b+xd6DM4kiyTXczRiD2ZTTnFkYnfsSAIgRYitWwp8MbkBB2toAOAZdf2jXsLEdQ3Fr4R1j4kXwQg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2103},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_npmVersion":"11.11.0","description":"OIDC trusted publishing setup package for @bernierllc/nevar-operator-registry","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nevar-operator-registry_0.0.1_1774655811365_0.9279955887979203","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@bernierllc/nevar-operator-registry","version":"0.1.0","author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/nevar-operator-registry@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":"4f3b37c255120a2bb67c78c59dc89c11cb84451b","tarball":"https://registry.npmjs.org/@bernierllc/nevar-operator-registry/-/nevar-operator-registry-0.1.0.tgz","fileCount":9,"integrity":"sha512-OxlUnsTcOkU7v4FN8sCu8F1vL09tkevrrk9Blqtij9lB3rYskTFh8DNGUENR75QJN3tW2MeJfuh6WXiQsuc1Vg==","signatures":[{"sig":"MEYCIQDNeQIdnh6YYbsKrUSfoaAe4fhBXk36jUtuZO3blaszIAIhAI8IiuUE8n5TJE3lt68IFMrfmfbp2PWcV79wWpdOb4yg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14623},"main":"dist/index.js","_from":"file:bernierllc-nevar-operator-registry-0.1.0.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest --watch","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:bb55b838-c149-49d2-9749-d88f72a88483"}},"_resolved":"/home/runner/work/tools/tools/packages/core/nevar-operator-registry/bernierllc-nevar-operator-registry-0.1.0.tgz","_integrity":"sha512-OxlUnsTcOkU7v4FN8sCu8F1vL09tkevrrk9Blqtij9lB3rYskTFh8DNGUENR75QJN3tW2MeJfuh6WXiQsuc1Vg==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/nevar-operator-registry"},"_npmVersion":"11.12.1","description":"Operator registry with 12 built-in operators for the Nevar rules engine","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^3.22.0","@bernierllc/nevar-types":"0.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nevar-operator-registry_0.1.0_1774888580269_0.8560122100294423","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bernierllc/nevar-operator-registry","version":"0.2.0","author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/nevar-operator-registry@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":"0c8c2f9db505e3063588101e623cb5b47bea5d5d","tarball":"https://registry.npmjs.org/@bernierllc/nevar-operator-registry/-/nevar-operator-registry-0.2.0.tgz","fileCount":9,"integrity":"sha512-988NlG1ygQrX/y3IQTXmOqXP0S9NxxdbEN03DouctIBkOrIRnHf2MBfhN3Uj8K38NB4x39wlRMgEnjY6GgG8Dw==","signatures":[{"sig":"MEYCIQCoRvDQjhzFFl26tpMvtCG6MrB/0MBwgN2Iv1z9sy2PaAIhAJKWau9fXfwyIUxs9HyXTfPx2a2sbJzrl5mwhbePO7Dp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14623},"main":"dist/index.js","_from":"file:bernierllc-nevar-operator-registry-0.2.0.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest --watch","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:bb55b838-c149-49d2-9749-d88f72a88483"}},"_resolved":"/home/runner/work/tools/tools/packages/core/nevar-operator-registry/bernierllc-nevar-operator-registry-0.2.0.tgz","_integrity":"sha512-988NlG1ygQrX/y3IQTXmOqXP0S9NxxdbEN03DouctIBkOrIRnHf2MBfhN3Uj8K38NB4x39wlRMgEnjY6GgG8Dw==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/nevar-operator-registry"},"_npmVersion":"11.14.1","description":"Operator registry with 12 built-in operators for the Nevar rules engine","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","@bernierllc/nevar-types":"0.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nevar-operator-registry_0.2.0_1779133555195_0.5785141803927629","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bernierllc/nevar-operator-registry","version":"0.4.0","author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/nevar-operator-registry@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":"0f0501708ff54f7df2fe5af174a3397aa1b40f0e","tarball":"https://registry.npmjs.org/@bernierllc/nevar-operator-registry/-/nevar-operator-registry-0.4.0.tgz","fileCount":11,"integrity":"sha512-fw0SrZLcTBbgJ8ahMEb2cyzI+LbT8qJeOBRhIQLObKPT/QIVXMcSoWiPYWVRK19Ekusc9s8A3acW2gAwc5hI7g==","signatures":[{"sig":"MEUCIQDcHTtx/VLDBX+GXrWR9jKFG3ga2bDUVSJQ0+6J9+AC4AIgbLlBhQcJ0yl9b7Z+PCfURAu5WdlnsgBd4ncmwu6P0N8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16503},"main":"dist/index.js","_from":"file:bernierllc-nevar-operator-registry-0.4.0.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"jest --watch","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:bb55b838-c149-49d2-9749-d88f72a88483"}},"_resolved":"/home/runner/work/tools/tools/packages/core/nevar-operator-registry/bernierllc-nevar-operator-registry-0.4.0.tgz","_integrity":"sha512-fw0SrZLcTBbgJ8ahMEb2cyzI+LbT8qJeOBRhIQLObKPT/QIVXMcSoWiPYWVRK19Ekusc9s8A3acW2gAwc5hI7g==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/nevar-operator-registry"},"_npmVersion":"11.14.1","description":"Operator registry with 12 built-in operators for the Nevar rules engine","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","@bernierllc/nevar-types":"0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nevar-operator-registry_0.4.0_1779241281311_0.789792436844678","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@bernierllc/nevar-operator-registry","version":"0.5.0","description":"Operator registry with 12 built-in operators for the Nevar rules engine","main":"dist/index.js","types":"dist/index.d.ts","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-operator-registry"},"dependencies":{"zod":"^3.22.0","@bernierllc/nevar-types":"0.4.0"},"scripts":{"build":"tsc","prebuild":"npm run clean","clean":"rimraf dist","test":"jest --watch","test:run":"jest","test:coverage":"jest --coverage","lint":"eslint src __tests__ --ext .ts"},"_id":"@bernierllc/nevar-operator-registry@0.5.0","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"homepage":"https://github.com/bernierllc/tools#readme","_integrity":"sha512-xfxl7d2cBxctmIrOs3E652MLRIb3/XAJpLGwvXJchFLdByCq+UUNd9KfgNM9S7lVTvDjsN5HATMCQ+ziUoNDrw==","_resolved":"/home/runner/work/tools/tools/packages/core/nevar-operator-registry/bernierllc-nevar-operator-registry-0.5.0.tgz","_from":"file:bernierllc-nevar-operator-registry-0.5.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"11.14.1","dist":{"integrity":"sha512-xfxl7d2cBxctmIrOs3E652MLRIb3/XAJpLGwvXJchFLdByCq+UUNd9KfgNM9S7lVTvDjsN5HATMCQ+ziUoNDrw==","shasum":"78dc041c0b4306b8af80863a258b1c63bfb86247","tarball":"https://registry.npmjs.org/@bernierllc/nevar-operator-registry/-/nevar-operator-registry-0.5.0.tgz","fileCount":11,"unpackedSize":16503,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBuZ9M3GqrPE39pDE46VzQnsxo2W+gatoL8u13e3VjJTAiEA2bFIXM/YuwHxlDRqwyAexnOVLt5gEvxM0eTIwEYjKFE="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bb55b838-c149-49d2-9749-d88f72a88483"}},"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-operator-registry_0.5.0_1779250032216_0.25556609238534067"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-27T23:56:51.208Z","modified":"2026-05-20T04:07:12.474Z","0.0.1":"2026-03-27T23:56:51.496Z","0.1.0":"2026-03-30T16:36:20.414Z","0.2.0":"2026-05-18T19:45:55.332Z","0.4.0":"2026-05-20T01:41:21.477Z","0.5.0":"2026-05-20T04:07:12.356Z"},"bugs":{"url":"https://github.com/bernierllc/tools/issues"},"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","homepage":"https://github.com/bernierllc/tools#readme","repository":{"type":"git","url":"git+https://github.com/bernierllc/tools.git","directory":"packages/core/nevar-operator-registry"},"description":"Operator registry with 12 built-in operators for the Nevar rules engine","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/nevar-operator-registry\n\nOperator registry with 12 built-in operators for the Nevar rules engine.\n\n## Installation\n\n```bash\nnpm install @bernierllc/nevar-operator-registry\n```\n\n## Usage\n\n```typescript\nimport { OperatorRegistry } from '@bernierllc/nevar-operator-registry';\n\nconst registry = new OperatorRegistry();\n\n// All 12 built-in operators are pre-registered\nregistry.evaluate('eq', 'hello', 'hello'); // true\nregistry.evaluate('gt', 10, 5);            // true\nregistry.evaluate('in', 'a', ['a', 'b']);  // true\nregistry.evaluate('is_true', true, null);  // true\n\n// List all operators\nconst operators = registry.list();\n\n// Filter by category\nconst comparisons = registry.getByCategory('comparison');\n\n// Register custom operators\nregistry.register('starts_with', {\n  label: 'Starts With',\n  category: 'string',\n  evaluate: (field, target) => String(field).startsWith(String(target)),\n  schema: z.string(),\n  fieldTypes: ['string'],\n});\n```\n\n## Built-in Operators\n\n| Operator | Category | Description |\n|----------|----------|-------------|\n| eq | comparison | Equal to |\n| neq | comparison | Not equal to |\n| gt | comparison | Greater than |\n| gte | comparison | Greater than or equal |\n| lt | comparison | Less than |\n| lte | comparison | Less than or equal |\n| in | membership | Value is in array |\n| not_in | membership | Value is not in array |\n| contains | membership | Array/string contains value |\n| not_contains | membership | Array/string does not contain value |\n| is_true | boolean | Value is truthy |\n| is_false | boolean | Value is falsy |\n\n## API\n\n### `OperatorRegistry`\n\nRegistry for managing built-in and custom operators. All 12 built-in operators are pre-registered on construction.\n\n**Constructor:** `new OperatorRegistry()`\n\n- `register(name, definition)` - Registers a custom operator. Throws `NevarValidationError` if the name is already registered\n- `get(name)` - Returns the `OperatorDefinition` for the given name, or `undefined`\n- `has(name)` - Returns `true` if the operator is registered\n- `list()` - Returns all operators as serializable `OperatorInfo[]` (without evaluate functions)\n- `getByCategory(category)` - Returns operators filtered by category\n- `evaluate(name, fieldValue, targetValue)` - Evaluates a field value against a target using the named operator. Throws `NevarEvaluationError` for unknown operators\n\n### `builtInOperators`\n\nExported map of the 12 built-in operator definitions, useful for inspection or testing.\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"}