{"_id":"@42sol/js-data-grouper","_rev":"7-438a37f6a4988d07b2878b778df9a5a5","name":"@42sol/js-data-grouper","dist-tags":{"latest":"0.1.2"},"versions":{"0.0.0":{"name":"@42sol/js-data-grouper","version":"0.0.0","_id":"@42sol/js-data-grouper@0.0.0","maintainers":[{"name":"dmrompav","email":"dm.rom.pav@gmail.com"},{"name":"disaipe","email":"disaipe@gmail.com"}],"dist":{"shasum":"35b9bb779ea0f8c241941ff91380f68aa41b13af","tarball":"https://registry.npmjs.org/@42sol/js-data-grouper/-/js-data-grouper-0.0.0.tgz","fileCount":27,"integrity":"sha512-c3Ojkqb36FCZYwgnPUUcv9qYPdUy0EQdLub7esaQfg2mjaj9bLq0hpatIguruEUZ2J/iYHJe6dV360ImaH9HlA==","signatures":[{"sig":"MEUCIFRCmNqYJ+HxOZ5R+S3NgzjsDqkG1vPNMcdeBpdb+8XXAiEAr8A6XM7TtDahrQnjMHrE77Yx0aQX+uI3GC3S0WA8Qk0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27249,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9a+kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+ag//VKOFJnBK9LoPQIl6nTJTgIyKoHYHk14mJ04yJniszf81C7Pj\r\nokg9+Et5dDUDjURc94OMOZo8yzz9k8/NLngVeEyZh+b2/PGAllq0YQPrDTkn\r\n0POrP4IV3QVMNfcDBfRMfjr8vCiqs26Na6Iw0EbCGykowklWHAATrQ++qh+m\r\nmBik3WtFLDLRyakiQf3fTOthqdWRMCX3pj9TSiZhd71hkXwtYWdNOGyI7tbU\r\nEFcV2+5eRyn/a+tOF/fdLzs/rcJ1CYlN37Mhw52vFAIeoLYoZhAYjUdu2t+D\r\nMEwnGAAGEBgk3io4gofq4NaLUZS5z/6WZRIgOWWcwsKIQiE+dFAAfLD8FRDW\r\ndqyMlOrGfKeG/gtPyjD/i0aZtP5LxTRKJmSjTHenCEm1v8Tr+QPlc9uIC0nj\r\n+bug/GZajrUGqrh1vKcCL4qznfkMZwYO/lNr2Q1SzkYRACVu+eZSpIkxEU0+\r\nnuhfjrju6f8WbOHIExUBUyEWCQC98Tx1osft5PnQfvHlp10PJ2ZE25tMp4Bo\r\nXVrgnLpOYnQw36vTfE5Hf298Y3dxc1Ugi+B/GrJNpyaSZfrCzK1CrDw5MnG0\r\ngOUCr+pK/SjtZWC9fuawAQ9VyYjl4oiHry9hrcw7ltaQCd4mzW8BO8DTuAOO\r\nnzvPa/1TNa9VoWkg9EeivKdEsSVMoHxRM9U=\r\n=0qaC\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","gitHead":"ea3631bb68b2fc45327a1940fb898b9234f45b43","scripts":{"dev":"vite","lint":"eslint \"src\" --ext .js,.ts","build":"yarn run clean && tsc && cp -r src/core dist/ts","clean":"rm -rf dist","lint:fix":"yarn run lint --fix"},"_npmUser":{"name":"dmrompav","email":"dm.rom.pav@gmail.com"},"_npmVersion":"9.1.2","description":"## Install ```bash npm install @42sol/js-data-grouper","directories":{},"_nodeVersion":"16.16.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.0","eslint":"^8.33.0","typescript":"^4.9.3","@typescript-eslint/parser":"^5.51.0","@typescript-eslint/eslint-plugin":"^5.51.0"},"_npmOperationalInternal":{"tmp":"tmp/js-data-grouper_0.0.0_1677045667969_0.48638784581690486","host":"s3://npm-registry-packages"}},"0.0.1":{"name":"@42sol/js-data-grouper","version":"0.0.1","keywords":["data-grouper","data group","data grouper","grouper","tree"],"_id":"@42sol/js-data-grouper@0.0.1","maintainers":[{"name":"dmrompav","email":"dm.rom.pav@gmail.com"},{"name":"disaipe","email":"disaipe@gmail.com"}],"homepage":"https://github.com/42-sol/js-data-grouper/settings","dist":{"shasum":"c4823b3bb5112ca1ff87a5cd475c16afe7a63344","tarball":"https://registry.npmjs.org/@42sol/js-data-grouper/-/js-data-grouper-0.0.1.tgz","fileCount":27,"integrity":"sha512-xbvaH/ghWBOmyGmVcyyDpqzL51hd3gkRrNuW6Xh4dWRVpkLw56SgRodM4elYVGuonwFoFnI00+06CRZP71OvPQ==","signatures":[{"sig":"MEYCIQCPpzs2f9giOSK8S1onI35AdETT5haJsqL2smmiuutpTwIhAKKiu4RygeHrdTef/3xhjFGKFU1Wn+mnGERUfBCz3FXJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27929,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9fKlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpfyw//Ux1FU+NSoyashgFtMPDC+XYuXUl2ms45cw6xJTm/c9eL8ZqY\r\nyPVncWgPSNgka207K09L7VksndK6geKd5zxM3V6cJ4Gzvl6mmyAhg/OuWij5\r\nvpp668Iqs1eGlJrj4+ybus3A6vv2w3u38CmImBtsbtAPAiKAprhLe6Td3CZM\r\nW+G/+xVrqyInyeLCJJOSAp2ASNGRLJwywh7jv3wmvxdzWwEHnI9+Z4c79Khi\r\nA75mXPxoO+Tk/Yf7zOLBs0P9JuQZ76COS1cXpSDRjP4/14ezjVHIcDup1fr9\r\n/MNwTwB2h/uLMp0FtK6+bBBvAwcaF75yxor9TmJcOW9Ak6blTOIu38QX7hpZ\r\nmogsc28xm/avdn4jsVDLsqniR9xVqGC5u6k+EbZM/S9x7wPJFL2drT3By9by\r\noa4//p5f4xHIRXq+jtLXbsZArxesLvHnCzYsHnzO30TkGHtP6E5cjpJd2HmB\r\nmzStILPY04T9+0srFg0YjJpY74bDFJSVYtISjqPIzgfbAR/9g3yUZJk8HgTS\r\nuvOFbYB27hl5gV4ce90pYa4HHmbjSs22AY7OlgR5QUwyOd6ynzS9b9nQFi3A\r\nvfy0isZ8BOy0qrXTFaCNOtogb6EDQ6q5msw2hmlv/0SBa5eMq9QaBsCwKOQY\r\nzuGLwLIwdWuwIbXPAKaxFoMOF04oPDajRGM=\r\n=NNXP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","type":"module","gitHead":"94c4285eefd744e900882ce9194a5463b592154d","scripts":{"dev":"vite","lint":"eslint \"src\" --ext .js,.ts","build":"yarn run clean && tsc && cp -r src/core dist/ts","clean":"rm -rf dist","lint:fix":"yarn run lint --fix"},"_npmUser":{"name":"dmrompav","email":"dm.rom.pav@gmail.com"},"repository":{"url":"https://github.com/42-sol/js-data-grouper/settings","type":"git"},"_npmVersion":"9.1.2","description":"## DEV ```shell # to run test page npm run dev # to show lint warns or fix them npm run lint npm run lint:fix # to compile dist/ npm run build ```","directories":{},"_nodeVersion":"16.16.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.0","eslint":"^8.33.0","typescript":"^4.9.3","@typescript-eslint/parser":"^5.51.0","@typescript-eslint/eslint-plugin":"^5.51.0"},"_npmOperationalInternal":{"tmp":"tmp/js-data-grouper_0.0.1_1677062821012_0.7817284556285464","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@42sol/js-data-grouper","version":"0.0.2","keywords":["data-grouper","data group","data grouper","grouper","tree"],"_id":"@42sol/js-data-grouper@0.0.2","maintainers":[{"name":"dmrompav","email":"dm.rom.pav@gmail.com"},{"name":"disaipe","email":"disaipe@gmail.com"}],"homepage":"https://github.com/42-sol/js-data-grouper/settings","dist":{"shasum":"a084e8ce0fe37f5be0b76bf5dd0a2fbb55978bd4","tarball":"https://registry.npmjs.org/@42sol/js-data-grouper/-/js-data-grouper-0.0.2.tgz","fileCount":27,"integrity":"sha512-6VMGKBPkWt/0YCHo0ytDAjfx0MaDp2FPQiuVMQWeTO9Z1I1Sdjv0FQJu626lOhqXr/6AA0gw00ONnmJoUWVKNQ==","signatures":[{"sig":"MEYCIQC9/OHA5pMrJPp+51EBMqcCHB+yF9RMVJEkLTxWEik02gIhAKXE3zVcmsAlW6nrbOMAtCrJJzQui6XFhqqlxsv8/ys/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27909,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9g9kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmosbQ//WsZHTOI/BjR0gVF6MKoIw/Zrr5H97VUIdz+EXjji3IIF2LW9\r\ncocQGjzDiV1FGQLRz1KcE0TxX4nDZ3FIuwlXlcV0wnuevsYeSEHtOOK841cy\r\niL5uG2qvWvtqjG1wWbPzl/tvsiItQSYUw7w5HlhOjQfauHIam9T44VAMu0Q+\r\n8205RbzKNxkPQPWmCjwoF1DXMgWnNg1xPvthraClo7s3gmIwtl9MCVsu7gcr\r\nav2Oszl6i3J353+dnAZf6+cZkBZFWcvrSU+pGN+L01sTw7SW3tla4EjKJQym\r\ngUst2XA5Ja9QaDqushKvYjMJ5nATTRTTrU8u98D5MWZZORtYBPeYuZp4PM/A\r\nZbIhoZlqI2uxmIZcE2CPpyI9whhvKgtWg7cC8ux4pJAVlMByWdU9IAPk1dtr\r\ndeO5Aou9Wtma3+q9t81YW25Y2NV6n2lUUzxmEIgaQ0Sj3zlSzlq5e+u+7NvM\r\nBpEyT9m+lJjrHWFb+F3vt48aGmEOjYUt+ubGEtweh30rtgYKR6wrqkYKpqkL\r\nvzfuyN+HCGHN7XXOuf14iKZFPNWS+QQWAP7W3ogtQ7Tfe8q/Zc/cF8XNYsVl\r\nrWpLk4W40ZCEfqPUjmwleBfNE6Lq591pUcq99g3OehAku17mZ4qdkOQFekkC\r\n2xVDM2ZEzxxDne/ggQnn/xTQv7LtbjB2N8o=\r\n=7yaA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","gitHead":"f2bc80d2b335975dd5b9ad30da6a0c5b1f381f6f","scripts":{"dev":"vite","lint":"eslint \"src\" --ext .js,.ts","build":"yarn run clean && tsc && cp -r src/core dist/ts","clean":"rm -rf dist","lint:fix":"yarn run lint --fix"},"_npmUser":{"name":"dmrompav","email":"dm.rom.pav@gmail.com"},"repository":{"url":"https://github.com/42-sol/js-data-grouper/settings","type":"git"},"_npmVersion":"9.1.2","description":"## DEV ```shell # to run test page npm run dev # to show lint warns or fix them npm run lint npm run lint:fix # to compile dist/ npm run build ```","directories":{},"_nodeVersion":"16.16.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.0","eslint":"^8.33.0","typescript":"^4.9.3","@typescript-eslint/parser":"^5.51.0","@typescript-eslint/eslint-plugin":"^5.51.0"},"_npmOperationalInternal":{"tmp":"tmp/js-data-grouper_0.0.2_1677070180357_0.18889102079530984","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@42sol/js-data-grouper","version":"0.0.3","keywords":["data-grouper","data group","data grouper","grouper","tree"],"_id":"@42sol/js-data-grouper@0.0.3","maintainers":[{"name":"dmrompav","email":"dm.rom.pav@gmail.com"},{"name":"disaipe","email":"disaipe@gmail.com"}],"homepage":"https://github.com/42-sol/js-data-grouper/settings","dist":{"shasum":"1e9ff882ad5a2df904d51b3d307d4e69af4d44e9","tarball":"https://registry.npmjs.org/@42sol/js-data-grouper/-/js-data-grouper-0.0.3.tgz","fileCount":27,"integrity":"sha512-sXotT/FpjO8S/oOeZ9550t+mXwlp+xOhZAtXoKR5djdH3e9ZrpI895UAs9wk7/cBvMR1LxAYKYOShdfjbJ/k3w==","signatures":[{"sig":"MEUCIAm+c5vTW++4XMmYAvzKV1pnLRAMFspRqtT66h5+QmIZAiEA/UNvCfy8LTBKF4RJGudUZZhqp6//wkc9Rh1SlzV/Zlc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27965,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9hIdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmojtw//bGRCEGXRQHIiAIxSn1Wik2EAPe5OYHimlVpfg3cqg+Kf4pF4\r\naaEdvHq6pBGdlMNTV7aq4KroiEzQ/9SK2nDCI7Fg4uar6zp/w2D2P9k7NpOv\r\ndTsgSMJT5eOm19BGrBS7mvzDVzwA+YKtV4E+lvnd9QJ+5fOMUcqzeaVLUGkZ\r\nK6/0qBW7qIBm6dhpIaAuO9Al3NqIatjsyk0mq2y7O8h/8BhMvj2qRn/UT/w8\r\nFidN57fg3140THHPyHIstXnj2+2nBy69X6/k91A0YHXQulOjNpwlZiQ5HqlZ\r\nMLKCx3JwFEEZ/c7xBU+24ZE2SbuHJi5Bf3c7L3mEEVz0XGWs6+Idfqqps5ZT\r\n5Xkym9sXKbct5hMK5/GwocF7n/AqPpZds6kGqW76+YiEVAOkhWoi8g1uEPB1\r\nQDQwBUkDUN5CbdQy3kNp6fM/O85rkceh0COO/kIf2Ux5zQiIxt5jq+Xgjilp\r\n1egQK2U85lB2pyRplFNQJY8yEilV2ZH1bUA0QtXrT7Qk2i2YTpXho+doEgtk\r\nf/8BrA9eBqQN03YuZ03OIuxcYkoAgd9cyIS/Lo168mX/jioJ44sxm2BAvc7V\r\n31qTzka8Rxe7NVRQiT2D2bqb6e3Z/JYCWYjdd3ZUKOJa/EcWJu/9SWR6LjJW\r\nFi3VJOBRvaz2pWdwyHyLNVh2suyarw6LAU8=\r\n=UdLY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","type":"commonjs","gitHead":"6224c43066b2be4691233fb951d3e86c4fdac783","scripts":{"dev":"vite","lint":"eslint \"src\" --ext .js,.ts","build":"yarn run clean && tsc && cp -r src/core dist/ts","clean":"rm -rf dist","lint:fix":"yarn run lint --fix"},"_npmUser":{"name":"dmrompav","email":"dm.rom.pav@gmail.com"},"repository":{"url":"https://github.com/42-sol/js-data-grouper/settings","type":"git"},"_npmVersion":"9.1.2","description":"## DEV ```shell # to run test page npm run dev # to show lint warns or fix them npm run lint npm run lint:fix # to compile dist/ npm run build ```","directories":{},"_nodeVersion":"16.16.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.0","eslint":"^8.33.0","typescript":"^4.9.3","@typescript-eslint/parser":"^5.51.0","@typescript-eslint/eslint-plugin":"^5.51.0"},"_npmOperationalInternal":{"tmp":"tmp/js-data-grouper_0.0.3_1677070877726_0.02389750490496012","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"@42sol/js-data-grouper","version":"0.1.0","keywords":["data-grouper","data group","data grouper","grouper","tree"],"author":{"name":"Dmitrii Pavlov","email":"dm.rom.pav@gmail.com"},"_id":"@42sol/js-data-grouper@0.1.0","maintainers":[{"name":"dmrompav","email":"dm.rom.pav@gmail.com"},{"name":"disaipe","email":"disaipe@gmail.com"}],"homepage":"https://github.com/42-sol/js-data-grouper","bugs":{"url":"https://github.com/42-sol/js-data-grouper/issues"},"dist":{"shasum":"a0c0ff2993fc9570ac0a29c8b561eebf6678689b","tarball":"https://registry.npmjs.org/@42sol/js-data-grouper/-/js-data-grouper-0.1.0.tgz","fileCount":17,"integrity":"sha512-TLddcRrmKb2wuXi98aJx+LHYCjribiqdJsQCcmDwo5BA7zqMtr8d9zGp3SPygGHDl6nao+EM+B+8F4LXc0Dq4A==","signatures":[{"sig":"MEQCIBFtllEU8oJ15Xco2VgZl/frSeEGx0v51LOPeKPOicyWAiBoFlL9jn4A4sf/bwkHC/1LD1hwm9Fxxx1N/MsFq4Aa2A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23303,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/Oz9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpkeg/+JGdsXwaJ54USiQOAvco2T7RVyGHaNLZGUTCRIyWIRggY8tIx\r\npLUZ8gjBebU5+1KE5qL1ZgUB9vPB/PoY1B8QODgZbz6gsXjtN2HykdS8S+gB\r\na5iMqfipyYeUimnaj1FT3qlmLLuEZ6j2HXy+u8qd/RHi0rM8Ke3635/yKDp6\r\nG89mC44WbS5tkgxBTSLe2C3UQWVYRy90x8onzbfewBJo7ZlTWc/W+VZrjbK5\r\nGcSISOIo0OpRFAl49liWz6lZCYWxvMJysRfQggEWkXO9YZ84IdYt+Efz7AN+\r\nVLCCRPBlv7+PCeAshfVo4Lw5Jr1X+Qy9Jd3d6+HrZ8pycBNSN1uJQlIPSZN8\r\nsg05K5qsve+zNdCvtCThvSxaLa3/9nOYMzXd4c5+goTgwvxZeGPc8VjwmU7j\r\nZkfvESF78lI3YaYqXQydgYy50k1ysqYEEAC1E8k9H1NjMojqz9Q4jx4u4Irp\r\nLpo85/HSI0fCFxTqagkNcqZZYAVfyNTKt9FqzjtEw8nQiKMoGgdgEntp5J31\r\nGOW7f59xB3v5y3H3fG8L3G50QzDvQoHbvSdV1dxou3rMe2at2b09etQsNZ4/\r\nDyUdY6wqqJFunskH5celXUkA7yIJosYglYF5L0Yanrs+ebHznE64dFnl/jLo\r\nk3xSj1UbGT7uJ6Vyu5O09EVx3yWYsGv4JwI=\r\n=GcVj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","type":"module","gitHead":"5cca8f0b407c7349551edcab4d20386b67ce3ea7","scripts":{"lint":"eslint \"src\" --ext .js,.ts","pack":"yarn run clean && tsc && yarn run add-ts","test":"jest","clean":"rm -rf dist","add-ts":"rsync -av --exclude '*.test.ts' src/ dist/ts","lint:fix":"yarn run lint --fix"},"_npmUser":{"name":"dmrompav","email":"dm.rom.pav@gmail.com"},"repository":{"url":"git+https://github.com/42-sol/js-data-grouper.git","type":"git"},"_npmVersion":"9.1.2","description":"A functions to make data tree-structures","directories":{},"_nodeVersion":"16.16.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.3","eslint":"^8.33.0","ts-jest":"^29.0.5","typescript":"^4.9.3","@types/jest":"^29.4.0","@typescript-eslint/parser":"^5.51.0","@typescript-eslint/eslint-plugin":"^5.51.0"},"_npmOperationalInternal":{"tmp":"tmp/js-data-grouper_0.1.0_1677520125574_0.6036930912701179","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@42sol/js-data-grouper","version":"0.1.1","keywords":["data-grouper","data group","data grouper","grouper","tree"],"author":{"name":"Dmitrii Pavlov","email":"dm.rom.pav@gmail.com"},"_id":"@42sol/js-data-grouper@0.1.1","maintainers":[{"name":"dmrompav","email":"dm.rom.pav@gmail.com"},{"name":"disaipe","email":"disaipe@gmail.com"}],"homepage":"https://github.com/42-sol/js-data-grouper","bugs":{"url":"https://github.com/42-sol/js-data-grouper/issues"},"dist":{"shasum":"61140213fa6459c424280ad39a77f601864cbdec","tarball":"https://registry.npmjs.org/@42sol/js-data-grouper/-/js-data-grouper-0.1.1.tgz","fileCount":7,"integrity":"sha512-nL1i2BBkmXta5lykNU3LPVVZdl9/1DE3xghd0m1UJH/DZ1oat0a6NxTY93EFEiqmd9jaciQZSZ5Z0lDdfPc9TA==","signatures":[{"sig":"MEUCIFR7WtANHgP1iM8QBqKDeVBvyGqrUF0EfbLeqWUlzSCSAiEA8UPw5hOL/U3/MMugeaNdks+l1kY8l8bveWujbiJHN5Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10637},"main":"dist/index.js","type":"module","gitHead":"fd26dd202c697cf563a3f3791761b3e4f6504f4b","scripts":{"lint":"eslint \"src\" --ext .js,.ts","pack":"yarn run clean && tsc && yarn run add-ts","test":"jest","clean":"rm -rf dist","add-ts":"rsync -av --exclude '*.test.ts' src/ dist/ts","lint:fix":"yarn run lint --fix"},"_npmUser":{"name":"dmrompav","email":"dm.rom.pav@gmail.com"},"repository":{"url":"git+https://github.com/42-sol/js-data-grouper.git","type":"git"},"_npmVersion":"9.5.1","description":"A functions to make data tree-structures","directories":{},"_nodeVersion":"18.16.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.3","eslint":"^8.33.0","ts-jest":"^29.0.5","typescript":"^4.9.3","@types/jest":"^29.4.0","@typescript-eslint/parser":"^5.51.0","@typescript-eslint/eslint-plugin":"^5.51.0"},"_npmOperationalInternal":{"tmp":"tmp/js-data-grouper_0.1.1_1690860323753_0.7251454995952133","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@42sol/js-data-grouper","version":"0.1.2","keywords":["data-grouper","data group","data grouper","grouper","tree"],"author":{"name":"Dmitrii Pavlov","email":"dm.rom.pav@gmail.com"},"_id":"@42sol/js-data-grouper@0.1.2","maintainers":[{"name":"dmrompav","email":"dm.rom.pav@gmail.com"},{"name":"disaipe","email":"disaipe@gmail.com"}],"homepage":"https://github.com/42-sol/js-data-grouper","bugs":{"url":"https://github.com/42-sol/js-data-grouper/issues"},"dist":{"shasum":"7310f06689866daec02896497fe04a82fc4b15a7","tarball":"https://registry.npmjs.org/@42sol/js-data-grouper/-/js-data-grouper-0.1.2.tgz","fileCount":17,"integrity":"sha512-ZGG0faQEFInTcf+ADImx3+CeGYohfcrhL5yza0qmpDzOSKIlB67tGyuQUC5Jh30IIbaxbS/aH2hHuSlzF3T1nA==","signatures":[{"sig":"MEQCIDOzS3G1FRjF9PV5HavMZMy0mk156RVxeO9snSDAsULzAiBSzUQmA7hsvYgR+Hdb+dAT0HfdPkKChfp6PzABZ7siRQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23417},"main":"dist/index.js","type":"module","gitHead":"fd26dd202c697cf563a3f3791761b3e4f6504f4b","scripts":{"lint":"eslint \"src\" --ext .js,.ts","pack":"yarn run clean && tsc && yarn run add-ts","test":"jest","build":"yarn run clean && tsc && cp -r src dist/ts","clean":"rm -rf dist","add-ts":"rsync -av --exclude '*.test.ts' src/ dist/ts","lint:fix":"yarn run lint --fix"},"_npmUser":{"name":"dmrompav","email":"dm.rom.pav@gmail.com"},"repository":{"url":"git+https://github.com/42-sol/js-data-grouper.git","type":"git"},"_npmVersion":"9.5.1","description":"A functions to make data tree-structures","directories":{},"_nodeVersion":"18.16.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.4.3","eslint":"^8.33.0","ts-jest":"^29.0.5","typescript":"^4.9.3","@types/jest":"^29.4.0","@typescript-eslint/parser":"^5.51.0","@typescript-eslint/eslint-plugin":"^5.51.0"},"_npmOperationalInternal":{"tmp":"tmp/js-data-grouper_0.1.2_1690860987357_0.23195243100664586","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-02-22T06:01:07.884Z","modified":"2025-02-11T14:48:20.141Z","0.0.0":"2023-02-22T06:01:08.166Z","0.0.1":"2023-02-22T10:47:01.169Z","0.0.2":"2023-02-22T12:49:40.514Z","0.0.3":"2023-02-22T13:01:17.962Z","0.1.0":"2023-02-27T17:48:45.717Z","0.1.1":"2023-08-01T03:25:23.914Z","0.1.2":"2023-08-01T03:36:27.472Z"},"bugs":{"url":"https://github.com/42-sol/js-data-grouper/issues"},"author":{"name":"Dmitrii Pavlov","email":"dm.rom.pav@gmail.com"},"homepage":"https://github.com/42-sol/js-data-grouper","keywords":["data-grouper","data group","data grouper","grouper","tree"],"repository":{"url":"git+https://github.com/42-sol/js-data-grouper.git","type":"git"},"description":"A functions to make data tree-structures","maintainers":[{"email":"disaipe@gmail.com","name":"disaipe"}],"readme":"# JSDataGrouper (42sol, LLC)\nA functions to make data tree-structures\n\n<img src='./logo.svg'>\n\n## Install\n```shell\nnpm install @42sol/js-data-grouper\n# or\nyarn add @42sol/js-data-grouper\n```\n\n## Why?\nImagine you need to make a tree structure by arrays of companies and it's employees.\n\n```javascript\n// nodeItems - data to create nodes of structure\nconst companies = [\n  { id: 1, parentId: null, name: 'Meta' },\n  { id: 2, parentId: 1, name: 'Instagram' },\n  { id: 3, parentId: null, name: \"IBM\" },\n  { id: 4, parentId: null, name: \"IBM\" }\n];\n\n// data which should be grouped\nconst employees = [\n  { id: 1, parentId: null, name: \"Isabel\", job_start: \"2020-01-01\", company: 'Instagram' },\n  { id: 2, parentId: 1, name: \"John\", job_start: \"2020-01-01\", company: 'Instagram' },\n  { id: 3, parentId: 2, name: \"Bill\", job_start: \"2020-02-01\", company: 'Meta' },\n  { id: 4, parentId: null, name: \"Paula\", job_start: \"2020-03-01\", company: 'IBM' }\n];\n```\n\n```json\n// result graph\n[\n  {\n    \"$nodeName\": \"Meta\",\n    \"children\": [\n      {\n        \"$nodeName\": \"Instagram\",\n        \"children\": [\n          {\n            \"$nodeName\": \"2020-01-01\",\n            \"children\": [\n              { \"name\": \"Isabel\", \"job_start\": \"2020-01-01\", \"company_id\": 2},\n              { \"name\": \"John\", \"job_start\": \"2020-01-01\", \"company_id\": 2 }\n            ]\n          }\n        ]\n      },\n\n      {\n        \"$nodeName\": \"2020-02-01\",\n        \"children\": [\n          { \"name\": \"Bill\", \"job_start\": \"2020-02-01\", \"company_id\": 1 }\n        ]\n      }\n    ]\n  },\n  //...\n]\n```\n\n## Usage\n\n```javascript\nimport { groupData } from '@42sol/js-data-grouper';\n\nconst hierarchy = [\n  {\n    nodeData: ({ item }) => companies,\n    nodeItem: ({ item, nodeData }) => nodeData.find((_) => _.id === item.company_id),\n    nodeTitle: ({ item ,nodeData, nodeItem }) => nodeItem.name,\n  },\n  {\n    nodeTitle: ({ item ,nodeData, nodeItem }) => item.job_start\n  }\n];\n\nconst tree = groupData(employees, hierarchy);\n```\n\nIn this example you could use 'item', 'nodeData', 'nodeItem'.\n- item - one of employees (this is used on employees' iteration)\n- nodeData - array you should define earlier\n- nodeItem - one of nodeData (this is used on inner recursive iterations)\n\n## API\n### *main methods:*\n<table>\n  <tr><th>Name</th><th>Params</th><th>Return</th><th>Description</th></tr>\n  <tr><td>groupData</td><td>Params</td><td>Return</td><td></td></tr>\n  <tr><td>makePatentTree</td><td>Params</td><td>Return</td><td></td></tr>\n</table>\n\n### *grouping hierarchy config:*\n<table>\n  <tr><th>Name</th><th>Params</th><th>Type</th><th>Description</th></tr>\n  <tr><td>nodeData</td><td>Params</td><td>Type</td><td></td></tr>\n  <tr><td>nodeItem</td><td>Params</td><td>Type</td><td></td></tr>\n  <tr><td>nodeTitle</td><td>Params</td><td>Type</td><td></td></tr>\n  <tr><td>maxParentalDepth</td><td>Params</td><td>Type</td><td></td></tr>\n</table>\n\n## DEV\n```shell\n# to run test page\nnpm run dev\n# to show lint warns or fix them\nnpm run lint\nnpm run lint:fix\n# to compile dist/\nnpm run build\n```\n","readmeFilename":"README.md"}