{"_id":"@314e-react-awesome-query-builder/core","_rev":"2-b852c2c26d5320fc9d7ad9e2d9dd837a","name":"@314e-react-awesome-query-builder/core","dist-tags":{"latest":"6.4.1"},"versions":{"6.4.1":{"name":"@314e-react-awesome-query-builder/core","version":"6.4.1","description":"User-friendly query builder for React. Core","keywords":["query-builder","query","builder","query builder","where","clause","operators","expression","condition","configurable","logic"],"homepage":"https://github.com/ukrbublik/react-awesome-query-builder","bugs":{"url":"https://github.com/ukrbublik/react-awesome-query-builder/issues"},"repository":{"type":"git","url":"git+https://github.com/ukrbublik/react-awesome-query-builder.git","directory":"packages/core"},"license":"MIT","author":{"name":"Denis Oblogin","email":"ukrbublik@gmail.com","url":"https://github.com/ukrbublik"},"exports":{".":{"types":"./modules/index.d.ts","import":"./esm/index.js","require":"./cjs/index.js"},"./package.json":"./package.json"},"main":"./cjs/index.js","module":"./esm/index.js","types":"./modules/index.d.ts","dependencies":{"clone":"^2.1.2","immutable":"^3.8.2","json-logic-js":"^2.0.2","lodash":"^4.17.21","moment":"^2.29.4","spel2js":"^0.2.8","sqlstring":"^2.3.3"},"devDependencies":{"@babel/cli":"^7.22.5","@babel/core":"^7.22.5","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-private-methods":"^7.18.6","@babel/plugin-proposal-private-property-in-object":"^7.21.11","@babel/plugin-transform-modules-commonjs":"^7.22.5","@babel/plugin-transform-runtime":"^7.22.5","@babel/preset-env":"^7.22.5","@babel/preset-react":"^7.22.5","@babel/preset-typescript":"^7.22.5","@babel/runtime":"^7.22.5","@types/clone":"^2.1.1","@types/lodash":"^4.14.170","@types/node":"^18.15.0","@types/react":"^17.0.39"},"scripts":{"build":"sh ./scripts/build-npm.sh","eslint":"eslint --ext .js --ext .ts  ./modules/","lint":"npm run eslint && npm run tsc","lint-fix":"eslint --ext .js --ext .ts --fix  ./modules/","tsc":"tsc -p . --noEmit"},"_id":"@314e-react-awesome-query-builder/core@6.4.1","_integrity":"sha512-/8hfpHgjwJxCMaCwzz3sptkQoxJEhLWhP4iHiTKiOibOH4ISzwZ/z8K592pdYDXiHqT2HXrBaJcKdTEtrTQshQ==","_resolved":"/tmp/f68e55ab6cc03256acef632ffe94d120/314e-react-awesome-query-builder-core-6.4.1.tgz","_from":"file:314e-react-awesome-query-builder-core-6.4.1.tgz","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-/8hfpHgjwJxCMaCwzz3sptkQoxJEhLWhP4iHiTKiOibOH4ISzwZ/z8K592pdYDXiHqT2HXrBaJcKdTEtrTQshQ==","shasum":"e13f80a850fdf9b7fa0cef210b0da6cb84c37683","tarball":"https://registry.npmjs.org/@314e-react-awesome-query-builder/core/-/core-6.4.1.tgz","fileCount":123,"unpackedSize":1661004,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCp9YkEgd9dk3mz7e7CAG5yHLpgLi1ZYF4KjFhQHJwsYgIgGCMz4qs1WyLjGaJQRAO1CMlXKR71GDMtU2LNgZbkQSE="}]},"_npmUser":{"name":"harsh_raj","email":"hraj1187@gmail.com"},"directories":{},"maintainers":[{"name":"harsh_raj","email":"hraj1187@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_6.4.1_1695823689124_0.8036926163048086"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2023-09-27T14:08:09.003Z","6.4.1":"2023-09-27T14:08:09.402Z","modified":"2023-09-28T10:24:01.711Z"},"maintainers":[{"email":"support@npmjs.com","name":"npm-support"}],"description":"User-friendly query builder for React. Core","homepage":"https://github.com/ukrbublik/react-awesome-query-builder","keywords":["query-builder","query","builder","query builder","where","clause","operators","expression","condition","configurable","logic"],"repository":{"type":"git","url":"git+https://github.com/ukrbublik/react-awesome-query-builder.git","directory":"packages/core"},"author":{"name":"Denis Oblogin","email":"ukrbublik@gmail.com","url":"https://github.com/ukrbublik"},"bugs":{"url":"https://github.com/ukrbublik/react-awesome-query-builder/issues"},"license":"MIT","readme":"# @314e-react-awesome-query-builder/core\n\n[![npm](https://img.shields.io/npm/v/@314e-react-awesome-query-builder/core.svg)](https://www.npmjs.com/package/@314e-react-awesome-query-builder/core)\n\nThis package has core functionality to import/export/store query, provides utils and core config. \nCan be used on server-side, does not require React.\n\n## Installation\n\n```\nnpm i @314e-react-awesome-query-builder/core --save\n```\n\n## Usage\n\n```js\nimport {\n  CoreConfig, Utils,\n  // types\n  TreeStore, TreeState, TreeActions, InputAction, JsonTree\n} from '@314e-react-awesome-query-builder/core';\n\n// config\nconst config = {\n  ...CoreConfig,\n  fields: {\n    name: {\n      label: 'Name',\n      type: 'text',\n    },\n    age: {\n      label: 'Age',\n      type: 'number',\n    }\n  }\n};\n\n// load from JSON\nconst initialTree = Utils.loadTree({\n  id: '00001',\n  type: 'group',\n  children1: [\n    {\n      id: '00002',\n      type: 'rule',\n      properties: {\n        field: 'age',\n        operator: 'greater_or_equal',\n        value: [18],\n        valueSrc: ['value']\n      }\n    }\n  ]\n});\n// or import from jsonLogic\n// const initialTree = Utils.loadFromJsonLogic({\n//   'and': [\n//     {\n//       '<=': [\n//         {var: 'age'},\n//         18\n//       ]\n//     }\n//   ]\n// }, config);\n\n// create store to manipulate tree on backend\nconst reducer = TreeStore(config);\nlet state: TreeState = reducer({tree: initialTree});\n\n// add rule `name == 'denis'`\nconst rootPath = [ state.tree.get('id') as string ];\nconst action = TreeActions.tree.addRule(config, rootPath, {\n  field: 'name',\n  operator: 'equal',\n  value: ['denis'],\n  valueSrc: ['value'],\n  valueType: ['text']\n});\nstate = reducer(state, action);\n\n// export\nconst tree = Utils.getTree(state.tree);\nconst { logic } = Utils.jsonLogicFormat(state.tree, config);\nconst sql = Utils.sqlFormat(state.tree, config);\nconst spel = Utils.sqlFormat(state.tree, config);\nconst mongo = Utils.mongodbFormat(state.tree, config);\nconst elastic = Utils.elasticSearchFormat(state.tree, config);\nconsole.log({ tree, logic, sql, spel, mongo, elastic });\n\n```\n","readmeFilename":"README.md"}