{"_id":"@ambivio/jsonata","name":"@ambivio/jsonata","dist-tags":{"latest":"2.1.0-ambivio.1"},"versions":{"2.1.0-ambivio.1":{"name":"@ambivio/jsonata","version":"2.1.0-ambivio.1","description":"JSON query and transformation language (Ambivio fork of jsonata with the ?: elvis-operator array-predicate fix; see jsonata-js/jsonata#780)","module":"jsonata.js","main":"jsonata.js","typings":"jsonata.d.ts","homepage":"https://github.com/DevLeoko/jsonata#readme","repository":{"type":"git","url":"git+https://github.com/DevLeoko/jsonata.git"},"bugs":{"url":"https://github.com/DevLeoko/jsonata/issues"},"publishConfig":{"access":"public"},"scripts":{"pretest":"npm run lint","mocha":"nyc ./node_modules/mocha/bin/_mocha -- \"test/**/*.js\"","test":"npm run mocha","posttest":"npm run check-coverage && npm run browserify && npm run minify && npm run build-es5","build-es5":"npm run mkdir-dist && npm run regenerator && npm run browserify-es5 && npm run minify-es5","check-coverage":"nyc check-coverage --statements 100 --branches 100 --functions 100 --lines 100","browserify":"browserify src/jsonata.js --outfile jsonata.js --standalone jsonata","mkdir-dist":"mkdirp ./dist","regenerator":"babel src --out-dir dist --presets=@babel/env","browserify-es5":"regenerator --include-runtime polyfill.js > jsonata-es5.js; browserify dist/jsonata.js --standalone jsonata >> jsonata-es5.js","prepublishOnly":"npm run browserify && npm run minify","lint":"eslint src","doc":"jsdoc --configure jsdoc.json .","cover":"nyc _mocha","minify":"uglifyjs jsonata.js -o jsonata.min.js --compress --mangle","minify-es5":"uglifyjs jsonata-es5.js -o jsonata-es5.min.js --compress --mangle"},"license":"MIT","keywords":["JSON","query","transformation","transform","mapping","path"],"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","browserify":"^16.5.0","chai":"^4.2.0","chai-as-promised":"^7.1.1","eslint":"8.0.0","eslint-plugin-ideal":"^0.1.3","eslint-plugin-promise":"^6.0.0","jsdoc":"^3.6.3","mkdirp":"^1.0.3","mocha":"^7.0.1","mocha-lcov-reporter":"^1.3.0","nyc":"^15.1.0","regenerator":"^0.14.4","request":"^2.88.2","uglify-es":"^3.3.10"},"engines":{"node":">= 8"},"_id":"@ambivio/jsonata@2.1.0-ambivio.1","gitHead":"da84c16f28d80a4e26ff479c7dc691720ea4bfc5","_nodeVersion":"20.12.2","_npmVersion":"10.5.0","dist":{"integrity":"sha512-rjOFoIQojpZZcHGdcPKgDCT+PYkp9jz8Hdhb1r0OotmkM+Vjn7iqWddV6wDnHW8hcM7GcQ0WsNVtTF4OVqXHcA==","shasum":"bdce2f04f654aeec0976dd83f976497d2a1000d2","tarball":"https://registry.npmjs.org/@ambivio/jsonata/-/jsonata-2.1.0-ambivio.1.tgz","fileCount":6,"unpackedSize":384940,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCapbLqvjh0tSzIo4TY4JfTuD/19wrGG8A4+EdJFvtX+gIgZPDOSUF35bcYV+7ie+BdGKTbdDEGNSc+wBm33hanf24="}]},"_npmUser":{"name":"ambivio","email":"admin@ambivio.ai"},"directories":{},"maintainers":[{"name":"ambivio","email":"admin@ambivio.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jsonata_2.1.0-ambivio.1_1776944295879_0.5741793661523709"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-23T11:38:15.782Z","2.1.0-ambivio.1":"2026-04-23T11:38:16.028Z","modified":"2026-04-23T11:38:16.282Z"},"maintainers":[{"name":"ambivio","email":"admin@ambivio.ai"}],"description":"JSON query and transformation language (Ambivio fork of jsonata with the ?: elvis-operator array-predicate fix; see jsonata-js/jsonata#780)","homepage":"https://github.com/DevLeoko/jsonata#readme","keywords":["JSON","query","transformation","transform","mapping","path"],"repository":{"type":"git","url":"git+https://github.com/DevLeoko/jsonata.git"},"bugs":{"url":"https://github.com/DevLeoko/jsonata/issues"},"license":"MIT","readme":"# @ambivio/jsonata\r\n\r\n> **Ambivio fork of [jsonata](https://www.npmjs.com/package/jsonata)** — a drop-in replacement that ships an extra bug-fix:\r\n>\r\n> - **Fix:** the `?:` (elvis/default) operator returned the wrong value when the LHS contained an array predicate (e.g. `[true][-1] ?: \"no\"`, `array[1] ?: \"no\"`) or a negative numeric literal (e.g. `-5 ?: 99`). Upstream PR: [jsonata-js/jsonata#780](https://github.com/jsonata-js/jsonata/pull/780).\r\n>\r\n> Once the upstream PR is merged and released, prefer the official `jsonata` package.\r\n\r\nJSON query and transformation language\r\n\r\nReference implementation of the [JSONata query and transformation language](http://jsonata.org/).\r\n\r\n* [JSONata in 5 minutes](https://www.youtube.com/embed/ZBaK40rtIBM)\r\n* [JSONata language documentation](http://docs.jsonata.org/)\r\n* [Try it out!](http://try.jsonata.org/)\r\n\r\n## Installation\r\n\r\n- `npm install @ambivio/jsonata`\r\n\r\n## Quick start\r\n\r\nIn Node.js:\r\n\r\n```javascript\r\nconst jsonata = require('@ambivio/jsonata');\r\n\r\nconst data = {\r\n    example: [\r\n        {value: 4},\r\n        {value: 7},\r\n        {value: 13}\r\n    ]\r\n};\r\n\r\n(async () => {\r\n    const expression = jsonata('$sum(example.value)');\r\n    const result = await expression.evaluate(data);  // returns 24\r\n})()\r\n```\r\n\r\nIn a browser:\r\n\r\n```html\r\n<!DOCTYPE html>\r\n<html lang=\"en\">\r\n  <head>\r\n    <meta charset=\"UTF-8\">\r\n    <title>JSONata test</title>\r\n    <script src=\"https://cdn.jsdelivr.net/npm/jsonata/jsonata.min.js\"></script>\r\n    <script>\r\n      async function greeting() {\r\n        var json = JSON.parse(document.getElementById('json').value);\r\n        var result = await jsonata('\"Hello, \" & name').evaluate(json);\r\n        document.getElementById('greeting').innerHTML = result;\r\n      }\r\n    </script>\r\n  </head>\r\n  <body>\r\n    <textarea id=\"json\">{ \"name\": \"Wilbur\" }</textarea>\r\n    <button onclick=\"greeting()\">Click me</button>\r\n    <p id=\"greeting\"></p>\r\n  </body>\r\n</html>\r\n```\r\n\r\n## More information\r\n- JSONata [documentation](http://docs.jsonata.org/)\r\n- [JavaScript API](http://docs.jsonata.org/embedding-extending)\r\n- [Intro talk](https://www.youtube.com/watch?v=TDWf6R8aqDo) at London Node User Group\r\n\r\n## Contributing\r\n\r\nSee the [CONTRIBUTING.md](CONTRIBUTING.md) for details of how to contribute to this repo.\r\n","readmeFilename":"README.md","_rev":"1-fb6a34bf01f994bedbfc505b39c44c40"}