{"_id":"@dhis2/app-service-datastore","_rev":"19-8ec09646c0d029c5642478cce96dce20","name":"@dhis2/app-service-datastore","dist-tags":{"alpha":"1.0.0-alpha.1","latest":"1.0.0-beta.3"},"versions":{"1.0.0-alpha.1":{"name":"@dhis2/app-service-datastore","version":"1.0.0-alpha.1","description":"> \\*\\*NOTE: THIS IS STILL AN UNPUBLISHED WORK-IN-PROGRESS!","main":"build/cjs/lib.js","module":"build/es/lib.js","types":"build/types/index.d.ts","license":"BSD-3-Clause","publishConfig":{"access":"public"},"scripts":{"build:types":"tsc --emitDeclarationOnly --outDir ./build/types","build:package":"d2-app-scripts build","build":"concurrently -n build,types \"yarn build:package\" \"yarn build:types\"","watch":"NODE_ENV=development concurrently -n build,types \"yarn build:package --watch\" \"yarn build:types --watch\"","type-check":"tsc --noEmit --allowJs --checkJs","type-check:watch":"yarn type-check --watch","test":"echo 'No tests yet :-('","coverage":"yarn test --coverage","prepublishOnly":"yarn build","lint":"d2-style js check && d2-style text check","format":"d2-style js apply --all --no-stage && d2-style text apply --all --no-stage"},"devDependencies":{"@dhis2/cli-app-scripts":"^4.0.8","@dhis2/cli-style":"^7.0.0","@types/jest":"^24.9.0","@types/node":"^13.1.8","@types/react":"^16.9.18","@types/uuid":"^8.0.0","@typescript-eslint/parser":"^3.3.0","concurrently":"^5.2.0","eslint-plugin-react-hooks":"^4.0.4","typescript":"^3.9.5"},"dependencies":{"uuid":"^8.1.0"},"peerDependencies":{"@dhis2/app-service-data":"^2.1.1","react":"^16.12.0","react-dom":"^16.12.0"},"gitHead":"4c672ef1bd912fb7f58aef43ae7e416d04f46097","_id":"@dhis2/app-service-datastore@1.0.0-alpha.1","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-SGtD4j+3MrikUGY9rugu6ACAWRUT6oogp54Cst6MrueTI8pbINeQxNa7VCXX00Mv+B4yFs4AfNDkz0LXANj6oQ==","shasum":"1d27b7d1461e47a1a30fce8c7b3d1408d84e1b02","tarball":"https://registry.npmjs.org/@dhis2/app-service-datastore/-/app-service-datastore-1.0.0-alpha.1.tgz","fileCount":42,"unpackedSize":210373,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe654ICRA9TVsSAnZWagAACKwQAI4MTjhCJSmKLAcpyRRJ\ndzdqsyys87F3rkCXUK8BEpEGVzx7V5Ld2DKybUYBVsEGMoNwjQJ3z4cB3Esc\nTsuuTTsuo7vxu5gQB9S9XPkQAIrZjJxcXe1Cl8Up8WN2d2GsFcITsqKZYMMF\nWfsu1jfmf0WcNqlez8+UgMbhN+356KkYgkJEGR1xlG9B5Tn3hdMUzE/enWLN\nmNQLp4Qh/zHfEJenqi2uP7Pwfvr3EAc0rAZTqt4Ksp7dWQUyzynSBtMmwtI6\n3QNDxwV6Xsg9d2zEaXJ8/GpFIgqe8QUOB2AqzpQJblHkpOeE0SqAXbpvYtBx\nHwITKK8bbW5ege97lB/+CdQj4gwno7Gpwz2ronmm3HR0tYpyZaRFNjcWTJ00\nvNs7pJmNdUp8rXmiElY0my6wjv4y54PfHMmVPg3xePjEFMWxTvqWONnzw3wE\nF7+WS49UJPoh8q0tWYRNkWDyD6gJBfh86V5+C0f3IaAq5Xyn4V6PcQ38Bfgg\nz8yD/vBzZPnaf7xXEuhBl8XJ2+1hc0nKg0J8TJWPMLClvX5jydCjUWRczlIC\n3YQp0jEzQpvRWxhYi1mwXklk2EvHvt2/mzuVfH4U1vPu2Kiy4XW3N1ViNpQ1\n3iQthY50OmUSdG0mXz/llOvuTBPlx4JedpmFPRzbGhIhOBLzm2YfDeuyT3Rq\neZl4\r\n=wRJg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH072qcIip/yjZs6QqBrXBmUMKwH+9q2ReuOjpkwK2WBAiEAqFPnDJyltv5odEIkLEoafWpRUxzrKnOOvQG0KWcs8UA="}]},"maintainers":[{"name":"martinkrulltott","email":"martin@moid.se"},{"name":"dhis2-bot","email":"apps@dhis2.org"},{"name":"ismay","email":"ismay@wolffsoftwareengineering.nl"},{"name":"joakimia","email":"joakimamundsen91@gmail.com"},{"name":"amcgee","email":"npm-noreply@austinmcgee.net"},{"name":"neeilya","email":"neeilya@mail.ru"},{"name":"varl","email":"varl@vlv.io"},{"name":"jenniferjonesarnesen","email":"jjarnesen@gmail.com"},{"name":"hendrikdegraaf_dhis2","email":"hendrik@dhis2.org"},{"name":"travis4dhis2","email":"deployment@dhis2.org"},{"name":"turban","email":"bjorn@mastermaps.com"},{"name":"janhenrikoverland","email":"janhenrik.overland@gmail.com"},{"name":"jason.p.pickering","email":"jason.p.pickering@gmail.com"},{"name":"edoardo.sabadelli","email":"edoardo@dhis2.org"},{"name":"joakim_sm","email":"joakim.melseth@gmail.com"}],"_npmUser":{"name":"dhis2-bot","email":"apps@dhis2.org"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-service-datastore_1.0.0-alpha.1_1592499719431_0.605685929848006"},"_hasShrinkwrap":false},"1.0.0-alpha.2":{"name":"@dhis2/app-service-datastore","version":"1.0.0-alpha.2","description":"> **WARNING**: THIS SERVICE IS STILL A WORK-IN-PROGRESS, THE API WILL PROBABLY CHANGE!","main":"build/cjs/lib.js","module":"build/es/lib.js","types":"build/types/index.d.ts","license":"BSD-3-Clause","private":false,"publishConfig":{"access":"public"},"scripts":{"build:types":"tsc --emitDeclarationOnly --outDir ./build/types","build:package":"d2-app-scripts build","build":"concurrently -n build,types \"yarn build:package\" \"yarn build:types\"","watch":"NODE_ENV=development concurrently -n build,types \"yarn build:package --watch\" \"yarn build:types --watch\"","type-check":"tsc --noEmit --allowJs --checkJs","type-check:watch":"yarn type-check --watch","test":"d2-app-scripts test","coverage":"yarn test --coverage","prepublishOnly":"yarn build"},"devDependencies":{"@dhis2/cli-app-scripts":"^4.0.0","@types/jest":"^24.9.0","@types/node":"^13.1.8","@types/react":"^16.9.18","@types/uuid":"^8.0.0","concurrently":"^5.2.0"},"dependencies":{"@dhis2/app-service-data":"^2.1.1","uuid":"^8.1.0"},"peerDependencies":{"react":"^16.12.0","react-dom":"^16.12.0"},"gitHead":"baa0e1932b2c750c48e2634cfc10377bb0ff47c5","_id":"@dhis2/app-service-datastore@1.0.0-alpha.2","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-7HuFngvDvTLE7CqMJGwumE3aBO7smChLEXnn/cZkFCEp58aZkKgaPVOYzhR4Ao6icOTM0JY6Z2y4eMXRnS5+fw==","shasum":"727ca8e0ecb7d7425b84217b16c651e4d7dda476","tarball":"https://registry.npmjs.org/@dhis2/app-service-datastore/-/app-service-datastore-1.0.0-alpha.2.tgz","fileCount":36,"unpackedSize":215461,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkkZHCRA9TVsSAnZWagAAvG0P/1SvsVYhq+Tl8KFJq/qf\nh+bIxJG51inh/wKELWxIXUSeF2HpFlqDr7vOeg0acjJ56ScK3kfgAJGGPnGJ\nqC735tQef9lW2O96IONEeCGrjSIKa2AoOi8bkgthJIKNYTVlY7m4zphBWbWk\ntx4Yb0y+AIbh+VOZAePRVrOdCsf87QXDCxHxdHa05x5gQO9sgPWgID0y9YPU\npoFMbZEaioSHbQIppWCxAMkyhcvb93OAeM1VThohutZyl/uf1unMyZeE7s9Y\nmGTX30no8B9AYsBCTDcqHzle901hvN7tUPQi6lQ+EHvYakcCvKeipl2huEDA\nwJSojFv3ZrdxR0EY/WLGdZ+xoh5Xw7/IGiPiDRVsahZKYqn1h852vEFN28ba\nNXe0ducpy30uGBMpRgKCpkRhLfcNjwT5Nunx4A1d5UkmfF+5UZvqYTSjeneG\nMQGkooZuSogA19VhWUUJH0/dtlVHINdazOE2OBmnqI5uB95wns58QP/vLgTk\nzszthHwLADQVdf03adt8aGSdx80sUA/5qpfz1uNhxsX/SC9MGPDGOS5G5rab\nDdjrnZ3zl0mx1T/Cpum5jj/cA9H++lpGr+61a/BPU2sZsGap4BvAJ3TLDVXP\nqEjb5JZB9A9UZQ/vF4tk2aQmDu4/qcFhduhrDuswhChePLwMc1yoFMNcnTyF\nRFgL\r\n=h0Ij\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBd2q9tkJdL6pakQdb1cnU+3xKSd7Kicl+SA4CpmWXXlAiEAnGoAl4QOAkHFert/8X5XZGIeOZSnkXAorNIUcLHY75w="}]},"_npmUser":{"name":"amcgee","email":"npm-noreply@austinmcgee.net"},"directories":{},"maintainers":[{"name":"birk","email":"birk@dhis2.org"},{"name":"varl","email":"varl@vlv.io"},{"name":"jenniferjonesarnesen","email":"jjarnesen@gmail.com"},{"name":"hendrikdegraaf_dhis2","email":"hendrik@dhis2.org"},{"name":"travis4dhis2","email":"deployment@dhis2.org"},{"name":"turban","email":"bjorn@mastermaps.com"},{"name":"janhenrikoverland","email":"janhenrik.overland@gmail.com"},{"name":"jason.p.pickering","email":"jason.p.pickering@gmail.com"},{"name":"edoardo.sabadelli","email":"edoardo@dhis2.org"},{"name":"joakim_sm","email":"joakim.melseth@gmail.com"},{"name":"amcgee","email":"npm-noreply@austinmcgee.net"},{"name":"ismay","email":"ismay@wolffsoftwareengineering.nl"},{"name":"dhis2-bot","email":"apps@dhis2.org"},{"name":"martinkrulltott","email":"martin@moid.se"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-service-datastore_1.0.0-alpha.2_1620198982919_0.23437616959952767"},"_hasShrinkwrap":false},"1.0.0-beta.1":{"name":"@dhis2/app-service-datastore","version":"1.0.0-beta.1","description":"> **WARNING**: THIS SERVICE IS STILL A WORK-IN-PROGRESS, THE API WILL PROBABLY CHANGE!","main":"build/cjs/lib.js","module":"build/es/lib.js","types":"build/types/index.d.ts","license":"BSD-3-Clause","publishConfig":{"access":"public"},"scripts":{"build:types":"tsc --emitDeclarationOnly --outDir ./build/types","build:package":"d2-app-scripts build","build":"concurrently -n build,types \"yarn build:package\" \"yarn build:types\"","watch":"NODE_ENV=development concurrently -n build,types \"yarn build:package --watch\" \"yarn build:types --watch\"","type-check":"tsc --noEmit --allowJs --checkJs","type-check:watch":"yarn type-check --watch","test":"d2-app-scripts test","coverage":"yarn test --coverage","prepublishOnly":"yarn build"},"devDependencies":{"@dhis2/cli-app-scripts":"^4.0.0","@types/jest":"^24.9.0","@types/node":"^13.1.8","@types/react":"^16.9.18","@types/uuid":"^8.0.0","concurrently":"^5.2.0"},"dependencies":{"@dhis2/app-service-data":"^2.1.1","uuid":"^8.1.0"},"peerDependencies":{"react":"^16.12.0","react-dom":"^16.12.0"},"_id":"@dhis2/app-service-datastore@1.0.0-beta.1","dist":{"shasum":"456d4d8ba9a86cb28bdaeae1af000d387583d043","integrity":"sha512-plO5+YodFkRWX1b8gJFgrSiODz0dLZOP72+ZezXK9K8+ruSsvno31nQl5jQ6hmHhTA/SjTWSUC9aBd5kHSmRcw==","tarball":"https://registry.npmjs.org/@dhis2/app-service-datastore/-/app-service-datastore-1.0.0-beta.1.tgz","fileCount":27,"unpackedSize":38157,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA4qYf+xaLJgUyT0SXRIWSQHe3pdm24HI3SDgdX7NomnAiEA/eJ0ArWcvJO2vEwwaMnPSmDgFIJjWJRqbPoHfy0Bq3A="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifKw0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr2IBAAjiM01N2bq0UDrbsplug14VzXS59Upnb9M9W6rPjfggT5GPsE\r\n1unEnClv7AFVNvUYPqLAg7jAmbt1Kw+4PT10wCBxzm9ssvwmJquilK2S3IRY\r\nyt0lSnkVfebihuS2T+0Z49I6aNd69p1iOMDntSK3JU2Jm8IKR0E+HkaRGzLR\r\nkNx1dW0Et4K/pNtbZasjgcqgVr1PFwR0qw5xeNImpT+96jnnTX2ygaSrZnQ9\r\nRT6a9/aQWr0IwW6JDpr3Zy79xRGLiy9M+LZAeSrbe36WDfpIDXG8NVmo3UIe\r\nVR1jA8DTg+wb/SW+EI3jeCd/jlEwf/A0LI+lOXAnJOhyXCiWuXbbLopngeku\r\nTWDI29BPMXClILfv/p41QlqdaPVaRFqbEtc3mVTjyDxbcdd2PFpkw+QRBJk2\r\nDk/l7jr/tinAptT7jALTH5xwNjrhmBCM4uMtzJBC7mWChJQitKdlaPRRkUuF\r\nO0/nXAVnimiQvG+0aPIT0O5vism6tZu6ZnDe5ksIkPSew+NDzFRrCXOx5mjv\r\nKZouXoLLUo3mOy1nV3r0GxGQZGJ6YttCXaK7nalMr4P2SffXYe9e6aEj1avu\r\nFDKc+QS25h6A+tdCcMLEH1CIVipfuQGKSwV89da/HC6XzoqYG03M8Wc1PfXE\r\nA7265YtldhGkKulURbx25zUPTassIPhpODg=\r\n=AS3c\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"amcgee","email":"npm-noreply@austinmcgee.net"},"directories":{},"maintainers":[{"name":"edoardo.sabadelli","email":"edoardo@dhis2.org"},{"name":"varl","email":"varl@vlv.io"},{"name":"amcgee","email":"npm-noreply@austinmcgee.net"},{"name":"ismay","email":"npmjs.j0ut8@simplelogin.co"},{"name":"dhis2-bot","email":"apps@dhis2.org"},{"name":"martinkrulltott","email":"martin@moid.se"},{"name":"birk","email":"birk@dhis2.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-service-datastore_1.0.0-beta.1_1652337715775_0.8180467615651634"},"_hasShrinkwrap":false},"1.0.0-beta.2":{"name":"@dhis2/app-service-datastore","version":"1.0.0-beta.2","description":"> **WARNING**: THIS SERVICE IS STILL A WORK-IN-PROGRESS, THE API WILL PROBABLY CHANGE!","main":"build/cjs/lib.js","module":"build/es/lib.js","types":"build/types/index.d.ts","license":"BSD-3-Clause","publishConfig":{"access":"public"},"scripts":{"build:types":"tsc --emitDeclarationOnly --outDir ./build/types","build:package":"d2-app-scripts build","build":"concurrently -n build,types \"yarn build:package\" \"yarn build:types\"","watch":"NODE_ENV=development concurrently -n build,types \"yarn build:package --watch\" \"yarn build:types --watch\"","type-check":"tsc --noEmit --allowJs --checkJs","type-check:watch":"yarn type-check --watch","test":"d2-app-scripts test","coverage":"yarn test --coverage","prepublishOnly":"yarn build"},"devDependencies":{"@dhis2/cli-app-scripts":"^4.0.0","@types/jest":"^24.9.0","@types/node":"^13.1.8","@types/react":"^16.9.18","@types/uuid":"^8.0.0","concurrently":"^5.2.0"},"dependencies":{"@dhis2/app-service-data":"^2.1.1","uuid":"^8.1.0"},"peerDependencies":{"react":"^16.12.0","react-dom":"^16.12.0"},"_id":"@dhis2/app-service-datastore@1.0.0-beta.2","dist":{"shasum":"14f6f59795a6c268f76a17d2f84f25c581318637","integrity":"sha512-jYTTeRXVae/svtUzV9np9cIaQSdnwvyWwg7RFmpcrzKTsXXAxPxVIP3s4Yyag15bfJn8Q5RqDE8ppBHXs3BtpQ==","tarball":"https://registry.npmjs.org/@dhis2/app-service-datastore/-/app-service-datastore-1.0.0-beta.2.tgz","fileCount":27,"unpackedSize":38157,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC+cRjQvjJRum6314diisqASh0Bf02/l3bfT/uo7CFT2AiBHSJtk+TLbQX6qAabYadZ4Z6Gp1t6DX6gDw10CrlMBxg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiofhOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqexw/+PAobE5S+M8Idgxw6ANMF+j1q2Z5spbc78CAyMG/4GSYoeWvD\r\nGfDDmu+gnP2TZsIyTFW+JWdu9F8Ypn5AMwuv2o1Zudq4yT3xvpsPlIWGu4Q3\r\nSo0zlfat+VPQuUwBxhPT9TR9/zy2k064cJA3WgFHGf/jsRECcYqtb6G5AvPq\r\nDyYH7WXUwfJqjQLdk0bwe0+fMrLX8NIny8G3BycXVP0buPBMZK+VGs8kUX+j\r\nem+9IBqeYlqJji+Hlv7A5MMTOOLMBWec4JswRHUtP3ueWncKGLVxZnPjbc77\r\nhHYyTUnwpAjGaxo6WWVzwdmEevJrhp8d8nW+l37fwJfK2no7F+9o2235ujVB\r\nTW75yKUYrTGdks1FOv6It+XO/nkGETGROUWVujNGkN4OHabhFtQgRDQ/5YDr\r\nLn6dsksL9nxfueQwd/UcN4K8YYJAWEdWPoINwlyfj8TbI0w6pof1m/8Lm/zW\r\nNLutWhGE93SbYuoJDJh9yzm4eqD0j0MiAJisNOQDOHPI4m2k5NIO02m/WCyo\r\nSNpyEt1pX4WZnXaerkt4uG+rXc+rrLiJs2GZc+3bRS2pJCLUnScR7EZ8MZIK\r\nEwNmw1MeUqsdTh+9kjdqsmL0n1FHKYdmceqcPY9iToyrIeZ/hieLTfbhRVor\r\nViFkDY4lsbYF8gTxy04lP3x1kQ+Ixwd7ZUk=\r\n=O3g+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"amcgee","email":"npm-noreply@austinmcgee.net"},"directories":{},"maintainers":[{"name":"edoardo.sabadelli","email":"edoardo@dhis2.org"},{"name":"varl","email":"varl@vlv.io"},{"name":"amcgee","email":"npm-noreply@austinmcgee.net"},{"name":"ismay","email":"npmjs.j0ut8@simplelogin.co"},{"name":"dhis2-bot","email":"apps@dhis2.org"},{"name":"martinkrulltott","email":"martin@moid.se"},{"name":"birk","email":"birk@dhis2.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-service-datastore_1.0.0-beta.2_1654782030739_0.4341033472893172"},"_hasShrinkwrap":false},"1.0.0-beta.3":{"name":"@dhis2/app-service-datastore","version":"1.0.0-beta.3","description":"> **WARNING**: THIS SERVICE IS STILL A WORK-IN-PROGRESS, THE API WILL PROBABLY CHANGE!","main":"build/cjs/lib.js","module":"build/es/lib.js","types":"build/types/index.d.ts","license":"BSD-3-Clause","publishConfig":{"access":"public"},"scripts":{"build:types":"tsc --emitDeclarationOnly --outDir ./build/types","build:package":"d2-app-scripts build","build":"concurrently -n build,types \"yarn build:package\" \"yarn build:types\"","watch":"NODE_ENV=development concurrently -n build,types \"yarn build:package --watch\" \"yarn build:types --watch\"","type-check":"tsc --noEmit --allowJs --checkJs","type-check:watch":"yarn type-check --watch","test":"d2-app-scripts test","coverage":"yarn test --coverage","prepublishOnly":"yarn build"},"devDependencies":{"@dhis2/cli-app-scripts":"^4.0.0","@types/jest":"^24.9.0","@types/node":"^13.1.8","@types/react":"^16.9.18","@types/uuid":"^8.0.0","concurrently":"^5.2.0"},"dependencies":{"@dhis2/app-service-data":"^2.1.1","uuid":"^8.1.0"},"peerDependencies":{"react":"^16.12.0","react-dom":"^16.12.0"},"_id":"@dhis2/app-service-datastore@1.0.0-beta.3","dist":{"shasum":"22b858c950d16e7813a8eed953d6556802b1ad1f","integrity":"sha512-CGXpa9YZvtifwxbyBwYp/ZeWffreQX5G8Jloq34xmiAEFgesYZIM7w5bTvS0XuzOb2p1S6Duh+iPxgBgegGiNA==","tarball":"https://registry.npmjs.org/@dhis2/app-service-datastore/-/app-service-datastore-1.0.0-beta.3.tgz","fileCount":26,"unpackedSize":197396,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxQ3BvkIXCzXH5h9DL3Xw+Wpjbh0fMly/UhNp1C1EQxAIhAPFi49sqMx3i5Zbp7TznKThW5QnXL/vSDXF6mF2XTxZU"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiofv4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqwuw//ewP0BIKyzInNsEMxmntGCYnzzrtw072E9scTBFAivrhsvcbz\r\nsi+TICCdZt/psxc18lE5T3BliXb+gVryhykTxz4NCrsGC2KZw5y32hSkvJ5y\r\n8CfF1J3GSsZc+LF4Q/mpJxA9zXU85OfqXbf3jlwtGc8JPJkIv8SH3CFkLFH8\r\nzUWTVh2YUCDomGzSrEkDEil2HkHI+N1aBq7AA6kQ+YldCxfkllibd0PuRML+\r\n8dVD8ZBw6rWi/dolB7JrjTb2OzaiPowIOpIok5189Nnp4V450yU6eA+PQz1e\r\nEpGwu3bt0ksrc0v4HXHkIps5Z+YZeDOy7pJ6RTLxJ80IsRhm2OaDoQbr1ZJA\r\ng0OJxWRsn2nBu6rqvruYHDUopJD4++mzAZdEsyKB/44YxNoq5KjOyVDHPaX5\r\n0TlqBVFQPl+a4VzVVn7gRsZEq7cfRTpqddndCC9cxMcOC4wF+Rgj1KaE/WeF\r\n8NQ/G2fnfI0Jh1k7h1xwjM2NAkEyWyJx/PeW5G7KAQwUL5cqxUosFR24dJlu\r\nApTyk8LYP0qnwJkkJu7X4cIS3lLMWtZSNNQiHwccygq8NlFNH7vbOrZzJ70y\r\nxCeV4mpUPdWfXn+v3IH1ut7YcxeZpRFak0uBpBIVHlVBHOpvVA1Wvb167Lks\r\nJNaR2LdX9YC9dJLE3kES4J65z9S6oRD8LUY=\r\n=zivb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"amcgee","email":"npm-noreply@austinmcgee.net"},"directories":{},"maintainers":[{"name":"edoardo.sabadelli","email":"edoardo@dhis2.org"},{"name":"varl","email":"varl@vlv.io"},{"name":"amcgee","email":"npm-noreply@austinmcgee.net"},{"name":"ismay","email":"npmjs.j0ut8@simplelogin.co"},{"name":"dhis2-bot","email":"apps@dhis2.org"},{"name":"martinkrulltott","email":"martin@moid.se"},{"name":"birk","email":"birk@dhis2.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-service-datastore_1.0.0-beta.3_1654782968688_0.3948153016321745"},"_hasShrinkwrap":false}},"time":{"created":"2020-06-18T17:01:59.077Z","1.0.0-alpha.1":"2020-06-18T17:01:59.614Z","modified":"2024-01-03T16:28:14.264Z","1.0.0-alpha.2":"2021-05-05T07:16:23.054Z","1.0.0-beta.1":"2022-05-12T06:41:56.012Z","1.0.0-beta.2":"2022-06-09T13:40:30.966Z","1.0.0-beta.3":"2022-06-09T13:56:08.892Z"},"maintainers":[{"email":"npm-noreply@austinmcgee.net","name":"amcgee"},{"email":"apps@dhis2.org","name":"dhis2-bot"}],"description":"> **WARNING**: THIS SERVICE IS STILL A WORK-IN-PROGRESS, THE API WILL PROBABLY CHANGE!","license":"BSD-3-Clause","readme":"# DataStore App Service\n\n> **WARNING**: THIS SERVICE IS STILL A WORK-IN-PROGRESS, THE API WILL PROBABLY CHANGE!\n\nThis DataStore app service support persistent user and global application settings as well as saved (and sharable) objects, such as visualization configurations.\n\nThis library was bootstrapped with [DHIS2 Application Platform](https://github.com/dhis2/app-platform).\n\n## Installation\n\n```sh\nyarn add @dhis2/app-service-datastore\n```\n\n## Features\n\n- Save and load application settings from a well-known dataStore (or userDataStore) key\n- Create, read, update, and delete saved objects (i.e. `visualizations`) from a managed key-value store in the dataStore or userDataStore\n- Client-side syncronized state - automatically re-render all components which use a setting or object when that setting or object is updated somewhere else in the application (no refetch required)\n- Optimistic updates - propagate \"provisional\" data to all consumers while mutation is in-transit, roll back changes if the mutation fails\n- Optionally encrypt settings data at rest\n\n## API\n\n### DataStoreProvider props\n\n| **Name**              | **Type**          | **Required** | **Default** | **Description**                                                                  |\n| --------------------- | ----------------- | ------------ | ----------- | -------------------------------------------------------------------------------- |\n| namespace             | _Boolean_         | **REQUIRED** |             | The namespace to use                                                             |\n| loadingComponent      | _React Component_ |              | null        | A component to render during initial load                                        |\n| defaultGlobalSettings | _Object_          |              | {}          | Default settings to save in the dataStore                                        |\n| defaultUserSettings   | _Object_          |              | {}          | Default settings to save in the userDataStore                                    |\n| encryptSettings       | _boolean_         |              | false       | If true, encrypt all settings at rest (important if credentials could be stored) |\n\n### Hooks\n\nThis library provides four main hooks:\n\n```ts\ntype useSetting = (\n  id: string,\n  options?: HookOptions\n) => [value: any, { set: (newValue: any) => Promise<void> }];\n\ntype useAllSettings = (\n  options?: HookOptions\n) => [\n  settings: Record<string, any>,\n  { set: (key: string, value: any) => Promise<void> }\n];\n\ntype useSavedObject = (\n  id: string,\n  options?: HookOptions\n) => [\n  obj: object,\n  {\n    update: (obj: object) => Promise<object>;\n    replace: (obj: object) => Promise<void>;\n    remove: () => Promise<void>;\n  }\n];\n\ntype useSavedObjectList = (\n  options?: HookOptions\n) => [\n  list: object[],\n  {\n    add: (obj: object) => Promise<void>;\n    update: (id: string, obj: object) => Promise<object>;\n    replace: (id: string, obj: object) => Promise<void>;\n    remove: (id: string) => Promise<void>;\n  }\n];\n```\n\nEach of the hooks accepts an optional options object:\n\n```ts\ntype HookOptions = {\n  // If true, store this setting or object in the dataStore instead of userDataStore\n  global: boolean;\n\n  // If true, do NOT rerender this component when the value is changed somewhere else in the application\n  ignoreUpdates: boolean;\n};\n```\n\nThere is one additional hook which exposes the DataStore controller for imperative access (advanced):\n\n```ts\ntype useDataStore = () => DataStore;\n```\n\n## Usage\n\n### Wrap the application in a DataStore provider\n\n```jsx\nimport React from \"react\";\nimport { DataStoreProvider } from \"@dhis2/app-service-datastore\";\nimport AppRouter from \"./AppRouter\";\n\nconst App = () => (\n  <DataStoreProvider namespace=\"myAppName\">\n    <AppRouter />\n  </DataStoreProvider>\n);\n\nexport default App;\n```\n\n### Reading settings\n\n```jsx\nimport React from \"react\";\nimport { useSetting, useAllSettings } from \"@dhis2/app-service-datastore\";\n\nconst MyComponent = () => {\n  // All data-store settings for the current user\n  const [allUserSettings] = useAllSettings();\n  // All data-store settings within the namespace\n  const [allGlobalSettings] = useAllSettings({ global: true });\n  // A specific setting for the current user\n  const [aUserSetting] = useSetting(\"id-1\");\n  // A specific global setting\n  const [aGlobalSetting] = useSetting(\"id-1\", { global: true });\n\n  return \"Something\";\n};\n\nexport default MyComponent;\n```\n\n### Reading saved objects\n\n```jsx\nimport React from \"react\";\nimport {\n  useSavedObject,\n  useSavedObjectList,\n} from \"@dhis2/app-service-datastore\";\n\nconst MyComponent = () => {\n  // All saved objects for the current user\n  const [allUserSavedObjects] = useSavedObjectList();\n  // All saved objects within the namespace\n  const [allGlobalSavedObjects] = useSavedObjectList({ global: true });\n  // A specific saved object for the current user\n  const [aUserSavedObject] = useSavedObject(\"id-1\");\n  // A specific global saved object\n  const [aGlobalSavedObject] = useSavedObject(\"id-1\", { global: true });\n\n  return \"Something\";\n};\n\nexport default MyComponent;\n```\n\n### Mutating settings and saved objects\n\n```jsx\nimport React from \"react\";\nimport {\n  useSavedObject,\n  useSavedObjectList,\n  useSetting,\n  useAllSettings,\n} from \"@dhis2/app-service-datastore\";\n\nconst MyComponent = () => {\n  // A setting for the current user\n  const [userSetting, { set }] = useSetting(\"id-1\");\n\n  // All settings for the current user\n  const [userSettings, { set }] = useAllSettings();\n\n  // A saved object for the current user\n  const [savedObject, { update, replace, remove }] = useSavedObject(\"id-1\");\n\n  // All saved objects for the current user\n  const [\n    allUserSavedObjects,\n    { add, update, replace, remove },\n  ] = useSavedObjectList();\n\n  return \"Something\";\n};\n```\n\n## Report an issue\n\nThe issue tracker can be found in [DHIS2 JIRA](https://jira.dhis2.org)\nunder the [LIBS](https://jira.dhis2.org/projects/LIBS) project.\n\nDeep links:\n\n- [Bug](https://jira.dhis2.org/secure/CreateIssueDetails!init.jspa?pid=10700&issuetype=10006&components=11027)\n- [Feature](https://jira.dhis2.org/secure/CreateIssueDetails!init.jspa?pid=10700&issuetype=10300&components=11027)\n- [Task](https://jira.dhis2.org/secure/CreateIssueDetails!init.jspa?pid=10700&issuetype=10003&components=11027)\n","readmeFilename":"README.md"}