{"_id":"@bpmn-io/feelin","_rev":"7-4bb3271ccc4fa82ff90657f322685ada","name":"@bpmn-io/feelin","dist-tags":{"latest":"7.0.0"},"versions":{"6.1.0":{"name":"@bpmn-io/feelin","version":"6.1.0","author":{"name":"Nico Rehwaldt","email":"git_nikku@nixis.de"},"license":"MIT","_id":"@bpmn-io/feelin@6.1.0","maintainers":[{"name":"bpmn-io-admin","email":"bpmnio@camunda.com"},{"name":"nikku","email":"git_nikku@nixis.de"},{"name":"barmac","email":"maciejbarel@gmail.com"},{"name":"philippfromme","email":"philippfromme@outlook.com"},{"name":"maxtru","email":"maximilian.trumpf@camunda.com"},{"name":"skaiir-camunda","email":"valentin.serra@camunda.com"},{"name":"vsgoulart","email":"vinicius@vsgoulart.com"},{"name":"barinali","email":"ali.barin53@gmail.com"},{"name":"jarekdanielak","email":"jarek.danielak@camunda.com"},{"name":"alekseymanetov","email":"alekseyManetov@gmail.com"},{"name":"simon-steinruecken-camunda","email":"simon.steinruecken@camunda.com"}],"homepage":"https://github.com/bpmn-io/feelin#readme","bugs":{"url":"https://github.com/bpmn-io/feelin/issues"},"dist":{"shasum":"f612f8784ce5badfa9a31b974a705fb7b3ef8759","tarball":"https://registry.npmjs.org/@bpmn-io/feelin/-/feelin-6.1.0.tgz","fileCount":12,"integrity":"sha512-nqmmlHRD9tl0ZcpYTEkZdpc/rAMoYc+ct0SOg9fFIFWRaEApme3DuXC7v9AMA5g+upGCKd6cUc3t97y+unpfMw==","signatures":[{"sig":"MEYCIQDReJ+yxL+RoG1GC27kRuMMY8A2bmdYYbpguYPeKgYGmQIhAJLmaBmA/VLXrw2vz85fQ72ElpJpW0n8+Z8E284HMI4E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252855},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","source":"./src/index.ts","engines":{"node":">= 20.12.0"},"exports":{".":"./dist/index.js","./package.json":"./package.json"},"gitHead":"194e531212cd15e091eb1d63eba7ca469fbb8f6b","scripts":{"all":"run-s lint build generate-typings test lint:types","dev":"run-p *:dev","tck":"run-s tck:extract tck:test","lint":"eslint .","test":"mocha -r source-map-support/register test/*-spec.js test/*-spec.cjs","build":"rollup -c --bundleConfigAsCjs","prepare":"run-s build generate-typings","tck:test":"mocha --reporter=test/reporters/tck.cjs -r source-map-support/register test/tck/*.js","test:dev":"chokidar '{dist,test}/**/*.js' -c 'npm test'","build:dev":"npm run build -- --watch","lint:types":"tsc --noEmit --lib es2019 test/types.ts","tck:extract":"node tasks/extract-tck-tests.js","generate-typings":"tsc --emitDeclarationOnly --declaration --outDir dist"},"_npmUser":{"name":"nikku","email":"git_nikku@nixis.de"},"repository":{"url":"git+https://github.com/bpmn-io/feelin.git","type":"git"},"_npmVersion":"11.6.2","description":"A FEEL parser and interpreter","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"luxon":"^3.7.2","min-dash":"^5.0.0","@lezer/common":"^1.5.0","@bpmn-io/lezer-feel":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.2","mocha":"^11.7.5","saxen":"^11.0.0","tslib":"^2.8.1","eslint":"^9.39.1","rollup":"^4.53.3","fast-glob":"^3.3.3","typescript":"^5.9.3","@types/luxon":"^3.7.1","@types/mocha":"^10.0.10","chokidar-cli":"^3.0.0","npm-run-all2":"^8.0.4","strip-indent":"^4.1.1","typescript-eslint":"^8.48.0","source-map-support":"^0.5.21","@rollup/plugin-terser":"^0.4.4","eslint-plugin-bpmn-io":"^2.2.0","@rollup/plugin-typescript":"^12.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feelin_6.1.0_1770205265801_0.693422814711153","host":"s3://npm-registry-packages-npm-production"}},"6.1.1":{"name":"@bpmn-io/feelin","version":"6.1.1","author":{"name":"Nico Rehwaldt","email":"git_nikku@nixis.de"},"license":"MIT","_id":"@bpmn-io/feelin@6.1.1","maintainers":[{"name":"bpmn-io-admin","email":"bpmnio@camunda.com"},{"name":"nikku","email":"git_nikku@nixis.de"},{"name":"barmac","email":"maciejbarel@gmail.com"},{"name":"philippfromme","email":"philippfromme@outlook.com"},{"name":"maxtru","email":"maximilian.trumpf@camunda.com"},{"name":"skaiir-camunda","email":"valentin.serra@camunda.com"},{"name":"vsgoulart","email":"vinicius@vsgoulart.com"},{"name":"barinali","email":"ali.barin53@gmail.com"},{"name":"ev-camunda","email":"ev.bilske@camunda.com"},{"name":"jarekdanielak","email":"jarek.danielak@camunda.com"},{"name":"alekseymanetov","email":"alekseyManetov@gmail.com"}],"homepage":"https://github.com/bpmn-io/feelin#readme","bugs":{"url":"https://github.com/bpmn-io/feelin/issues"},"dist":{"shasum":"75b71a663e249880f7875d94535d7335698d23a7","tarball":"https://registry.npmjs.org/@bpmn-io/feelin/-/feelin-6.1.1.tgz","fileCount":12,"integrity":"sha512-wqNYDjPvSIS6nnTuNzmUYY/oT2+hjMz60aBRgGKgXEfnrs3OxQntCgRnvHRzg3SMhFNSMUQ+qfQfLckchmSXtQ==","signatures":[{"sig":"MEUCIDvdBKbv3YXjJ5VAbu5xlEpY/0Lw/peh/4p7hlum7hauAiEA0d4qqdAMfFrpSCabhOSZn2U9OYY+XPuqvpErS3z3itE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDrlM43T8VakhqhLGoQbuL2VV0oTleKAr9/PlUB9H0QSwIhAITK2vOtwBTIgpEn1/tJo0qqdQP/1WTHqJ+iE8BbOyRo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255415},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","source":"./src/index.ts","engines":{"node":">= 20.12.0"},"exports":{".":"./dist/index.js","./package.json":"./package.json"},"gitHead":"e1640d0d1356b34f04550d4f235d914ac14359b8","scripts":{"all":"run-s lint build generate-typings test lint:types","dev":"run-p *:dev","tck":"run-s tck:extract tck:test","lint":"eslint .","test":"mocha -r source-map-support/register test/*-spec.js test/*-spec.cjs","build":"rollup -c --bundleConfigAsCjs","prepare":"run-s build generate-typings","tck:test":"mocha --reporter=test/reporters/tck.cjs -r source-map-support/register test/tck/*.js","test:dev":"chokidar '{dist,test}/**/*.js' -c 'npm test'","build:dev":"npm run build -- --watch","lint:types":"tsc --noEmit --lib es2019 test/types.ts","tck:extract":"node tasks/extract-tck-tests.js","generate-typings":"tsc --emitDeclarationOnly --declaration --outDir dist"},"_npmUser":{"name":"barmac","email":"maciejbarel@gmail.com"},"repository":{"url":"git+https://github.com/bpmn-io/feelin.git","type":"git"},"_npmVersion":"11.17.0","description":"A FEEL parser and interpreter","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"luxon":"^3.7.2","min-dash":"^5.0.0","@lezer/common":"^1.5.0","@bpmn-io/lezer-feel":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.2","mocha":"^11.7.5","saxen":"^11.0.0","tslib":"^2.8.1","eslint":"^9.39.1","rollup":"^4.53.3","fast-glob":"^3.3.3","typescript":"^5.9.3","@types/luxon":"^3.7.1","@types/mocha":"^10.0.10","chokidar-cli":"^3.0.0","npm-run-all2":"^8.0.4","strip-indent":"^4.1.1","typescript-eslint":"^8.48.0","source-map-support":"^0.5.21","@rollup/plugin-terser":"^0.4.4","eslint-plugin-bpmn-io":"^2.2.0","@rollup/plugin-typescript":"^12.3.0"},"_npmOperationalInternal":{"tmp":"tmp/feelin_6.1.1_1789567893827_0.008946027316882876","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"_id":"@bpmn-io/feelin@7.0.0","bugs":{"url":"https://github.com/bpmn-io/feelin/issues"},"dist":{"shasum":"9ba49276fa475a184b87727d00a6b9e69aadb078","tarball":"https://registry.npmjs.org/@bpmn-io/feelin/-/feelin-7.0.0.tgz","fileCount":14,"integrity":"sha512-7GLTDKagCtK5kMXE/5Vj8mcPczHEwu7NkR29sl0y+8LSG/CAtUI0ZlEDo0Ca3U9qty1bAxi0gTjh+Pb4tKaH6g==","signatures":[{"sig":"MEYCIQCTrXpqaK5AMJ/3V7cbm4+TrIFxXFFvHLpvBb3L/pvdUQIhAKk/LJk3Q7nO4WZ4kVoxcueLYIN/zgLnNEhxB5C4x9I1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFg3Ur4j4ln/H4r2z9YT0Z/QDGnMR0g8NTMcLhFNgdxqAiA1DlxFPq623sza1KT3lC0FdR5zAqpgHsNTtXOoLKNCXw=="}],"unpackedSize":390161},"main":"./dist/index.js","name":"@bpmn-io/feelin","type":"module","types":"./dist/index.d.ts","author":{"name":"Nico Rehwaldt","email":"git_nikku@nixis.de"},"source":"./src/index.ts","engines":{"node":">= 20.12.0"},"exports":{".":"./dist/index.js","./package.json":"./package.json"},"gitHead":"d0e0244e5e6adc45592cf0e3fe96dbd7e38e9547","license":"MIT","scripts":{"all":"run-s lint test generate-typings lint:types","dev":"run-p *:dev","tck":"run-s tck:extract tck:test","lint":"eslint .","test":"npm run test:exec","build":"rollup -c --bundleConfigAsCjs","prepare":"run-s build generate-typings","pretest":"npm run build","tck:test":"mocha --reporter=test/reporters/tck.cjs -r source-map-support/register test/tck/*.js","test:dev":"chokidar '{dist,test}/**/*.js' -c 'npm run test:exec'","build:dev":"npm run build -- --watch","test:exec":"mocha -r source-map-support/register test/*-spec.js test/*-spec.cjs","lint:types":"tsc --noEmit --skipLibCheck --lib es2019 test/types.ts","tck:extract":"node tasks/extract-tck-tests.js","generate-typings":"tsc --emitDeclarationOnly --declaration --outDir dist"},"version":"7.0.0","_npmUser":{"name":"barmac","email":"maciejbarel@gmail.com"},"homepage":"https://github.com/bpmn-io/feelin#readme","repository":{"url":"git+https://github.com/bpmn-io/feelin.git","type":"git"},"_npmVersion":"11.17.0","description":"A FEEL parser and interpreter","directories":{},"maintainers":[{"name":"bpmn-io-admin","email":"bpmnio@camunda.com"},{"name":"nikku","email":"git_nikku@nixis.de"},{"name":"barmac","email":"maciejbarel@gmail.com"},{"name":"philippfromme","email":"philippfromme@outlook.com"},{"name":"maxtru","email":"maximilian.trumpf@camunda.com"},{"name":"skaiir-camunda","email":"valentin.serra@camunda.com"},{"name":"vsgoulart","email":"vinicius@vsgoulart.com"},{"name":"barinali","email":"ali.barin53@gmail.com"},{"name":"ev-camunda","email":"ev.bilske@camunda.com"},{"name":"jarekdanielak","email":"jarek.danielak@camunda.com"},{"name":"alekseymanetov","email":"alekseyManetov@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"unrs-resolver@1.12.2":true},"dependencies":{"min-dash":"^5.1.0","@lezer/common":"^1.5.2","temporal-polyfill":"^1.0.4","@bpmn-io/lezer-feel":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.2","mocha":"^12.0.0","saxen":"^11.1.1","tslib":"^2.8.1","eslint":"^9.39.5","rollup":"^4.63.1","fast-glob":"^3.3.3","typescript":"^5.9.3","@types/mocha":"^10.0.10","chokidar-cli":"^3.0.0","npm-run-all2":"^9.0.3","strip-indent":"^4.1.1","typescript-eslint":"^8.69.0","source-map-support":"^0.5.21","@rollup/plugin-terser":"^1.0.0","eslint-plugin-bpmn-io":"^2.4.0","@rollup/plugin-typescript":"^12.3.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/feelin_7.0.0_1790074815718_0.7456147824393926"}}},"time":{"created":"2026-02-04T11:41:05.654Z","modified":"2026-09-22T11:00:16.046Z","6.1.0":"2026-02-04T11:41:05.952Z","6.1.1":"2026-09-16T14:11:33.982Z","7.0.0":"2026-09-22T11:00:15.842Z"},"bugs":{"url":"https://github.com/bpmn-io/feelin/issues"},"author":{"name":"Nico Rehwaldt","email":"git_nikku@nixis.de"},"license":"MIT","homepage":"https://github.com/bpmn-io/feelin#readme","repository":{"url":"git+https://github.com/bpmn-io/feelin.git","type":"git"},"description":"A FEEL parser and interpreter","maintainers":[{"name":"bpmn-io-admin","email":"bpmnio@camunda.com"},{"name":"nikku","email":"git_nikku@nixis.de"},{"name":"barmac","email":"maciejbarel@gmail.com"},{"name":"philippfromme","email":"philippfromme@outlook.com"},{"name":"maxtru","email":"maximilian.trumpf@camunda.com"},{"name":"skaiir-camunda","email":"valentin.serra@camunda.com"},{"name":"vsgoulart","email":"vinicius@vsgoulart.com"},{"name":"barinali","email":"ali.barin53@gmail.com"},{"name":"ev-camunda","email":"ev.bilske@camunda.com"},{"name":"jarekdanielak","email":"jarek.danielak@camunda.com"},{"name":"alekseymanetov","email":"alekseyManetov@gmail.com"}],"readme":"# @bpmn-io/feelin\n\n[![CI](https://github.com/bpmn-io/feelin/actions/workflows/CI.yml/badge.svg)](https://github.com/bpmn-io/feelin/actions/workflows/CI.yml)\n\n> [!NOTE]\n> This is a fork of [feelin](https://github.com/nikku/feelin)\n\nA [DMN](https://www.omg.org/spec/DMN/) FEEL parser and interpreter written in JavaScript. [__:arrow_right: Try it out__](https://nikku.github.io/feel-playground).\n\n\n## Usage\n\n```javascript\nimport {\n  unaryTest,\n  evaluate\n} from '@bpmn-io/feelin';\n\nunaryTest('1', { '?': 1 }); // { value: true, warnings: [] }\nunaryTest('[1..end]', { '?': 1, end: 10 }); // { value: true, warnings: [] }\n\nevaluate(\"Mike's daughter.name\", {\n  'Mike\\'s daughter.name': 'Lisa'\n}); // { value: 'Lisa', warnings: [] }\n\nevaluate('for a in [1, 2, 3] return a * 2'); // { value: [ 2, 4, 6 ], ... }\n\nevaluate('every rate in rates() satisfies rate < 10', {\n  rates() {\n    return [ 10, 20 ];\n  }\n}); // { value: false, warnings: [] }\n```\n\nTo understand `null` conversions due to errors, inspect `warnings` returned:\n\n```javascript\nconst { value, warnings } = evaluate('x');\n\nconsole.log(warnings);\n// [\n//   {\n//     message: \"Variable 'x' not found\",\n//     type: 'NO_VARIABLE_FOUND',\n//     position: { from: 0, to: 1 },\n//   }\n// ]\n```\n\n## Features\n\n* [x] Recognizes full FEEL grammar\n* [x] Context sensitive (incl. names with spaces)\n* [x] Recovers on errors\n* [x] Temporal types and operations\n* [x] Built-in FEEL functions\n* [ ] Full [DMN TCK](https://github.com/dmn-tck/tck) compliance (cf. [coverage](./docs/DMN_TCK.md))\n\n\n## Build and Run\n\n```sh\n# build the library and run all tests\nnpm run all\n\n# spin up for local development\nnpm run dev\n\n# execute FEEL tests in DMN TCK\nnpm run tck\n```\n\n\n## Related\n\n* [lezer-feel](https://github.com/nikku/lezer-feel) - FEEL language definition for the [Lezer](https://lezer.codemirror.net/) parser system\n* [feel-playground](https://github.com/nikku/feel-playground) - Interactive playground to learn the FEEL language\n\n\n## License\n\nMIT\n","readmeFilename":"README.md"}