{"_id":"@focuson-nw/fetcher","_rev":"36-bd4c70c27f6b9fd3c784f24ac1c4c44a","name":"@focuson-nw/fetcher","dist-tags":{"latest":"2.0.37"},"versions":{"1.44.0":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"1.44.0","@focuson-nw/template":"1.44.0","@focuson-nw/state":"1.44.0"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"1.44.0","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@1.44.0","dist":{"shasum":"3f362ca279920cff73b2971d289ea801611a50c7","integrity":"sha512-Bv7T8Y8+NCzMhnbOdeH0tim+zNWUrhRTfLHFu1NZbcbty1suvxcww6M9JLID3fo3EkNc9eBaPlf/aj0bc/1kUA==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-1.44.0.tgz","fileCount":23,"unpackedSize":66522,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCo3rhlDsyTFyhqWNyF33h7YoTyRvzmTmQpA18VkdCxowIgJprRl9fi7Og5lBClergNUbQUJLG+YLKelxIHV0+Rexc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjkyFWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo5KRAApHHmMzbgVYpk1BqqZ8zqwRdGMVt6859IcGAkp1SFGAWnl8kK\r\nBRvSelHuU9KFw6Ufqu9VrtUZ4b8ZBLyNo4zMrKvtK9IXgyWs6/hN6dvSQ4ok\r\nI8RnczoR4BP7y626FBatJZ94D9y8aZP62Fy0imcCyYML/3R8Mxx7o5KYXXVm\r\n/Q+Zo9hNcoIRguQNfPJWU3pjrhV5ydUSIxevz0NF1xixiLZzTZlGFuSYKuHo\r\nbGLUGs3fSkqgi5P9WvscedPqWeHX8M7ta58glR7XtX8ohccibZAL8eTJbHjd\r\nMrVMIex+7s73xDhg6kSc2LNhK1AoMa/Ls4hFznz/768CsPujM4+6MRV+gRio\r\nZCCvupE2gpoZVev+g/9x730vONIiAQKVfMbe6/yVF8NaLzFqacRgP95xlYib\r\nOJMyhz3U4W4+OtM0Bi+aMLNEXHL8FtPhZSZlmjJknkwCfTXGL9CrEQ2KHhjU\r\nvx0wG9HrcMNt5GJF9kJwMLqNPkdRVuHj5rew+Z01F/4yL5F86RElWYvi5sDm\r\nUYtmfx7uwMEByyJfVyy9r1nU6POBO/bytYa6+/+Rm/F1QjTpEltAl/X8owd7\r\nCk5xYfP83IW6+SC67y6hyZ7jgtpi7MRRqQqdzhjYlZ/5lsmKYrLIKq7IOXxH\r\nueZvllRdmnX6/HTrRwgGjrD6ygNpw5RxiNI=\r\n=qRIS\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_1.44.0_1670586710333_0.19245816664732396"},"_hasShrinkwrap":false},"2.0.1":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.1","@focuson-nw/template":"2.0.1","@focuson-nw/state":"2.0.1"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.1","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.1","dist":{"shasum":"4352438940afce95da71dad32ba60a8000511c84","integrity":"sha512-eqmq31iKnotEbqoxow3766CDKTBCl05w4ep7+3JeXIyYAhGG8iVLwtQ/gpvR6y0cqjY5VPNnMa4LaEGjYlulTg==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.1.tgz","fileCount":23,"unpackedSize":66453,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCerVI8+uhSsJ55cVjrXi4CDn5NhhpqCAgWKAX1MJfkSgIgUK2E4F5f5I829b67d7urlBSgY6IydLfYVPCXstQCBZc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvVmrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo5wRAAjAj3QuOAPu9a4rTxfMHTIXq2afrx168bsmgwos2UvNwEQU7b\r\nFD59vcAwqQP1XsXNW5P56xHfBmvdBGpSfdOE5m1i89jpSA+uI++i+ccHfxdx\r\njGGmI5b9z29THWnwApWtKRb1rsDJs6bkIP28qQodpotk7hRHM9P2tfTUol8f\r\nyFkXDDGpFxHDXYMKBN6hscA5YRM0NTwAvMObJ1molQPWIOHhSVtRNlnwxyuL\r\nnkORuT5xKMOZvXAn+R/h5DjkOvVJxIluLqqOEiB/VBK4fadzYgfYjR1LFo8M\r\n+/DfGjlfrRIshskvQejkvX6tAs35zDS6nM9GQMo7wb0Zu4L5q8nvRJ2VCg0+\r\nxXrkiMBQDu+OCjXyewbr1hj2IKmA/og9byVelXN0NHl6lATlo/YUWLmEPNBu\r\niiBESrihUF+CMG+G0Z6cwg+poB2MsPbQuGdg9Bu4qIeFBDIICPRzSIpeZ6iW\r\nv6iVUyPt1FdxP+1R6OlqmykSpodnf/obY8DPUbZ/+knj7rw/wVc4LkCeUes1\r\nuJpH/3k4TQQ+dHTiYuOgKy0F/qedGIFpCDlJ9uT+CcZk8cUILmab+dvf60cZ\r\nlaRMlcN/wXBUeCeSHywL9H2oRZN+NgyijgQH3fL14O4H5nSpjcefXyy3PRSa\r\nXYodH1Th6UKsKL6cDBOMkJ712ArX0t70Ba0=\r\n=lMIu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.1_1673353643098_0.5945817040592294"},"_hasShrinkwrap":false},"2.0.2":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.2","@focuson-nw/template":"2.0.2","@focuson-nw/state":"2.0.2"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.2","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.2","dist":{"shasum":"295f40f43420faa00c88907e2e5c52a3a49885a7","integrity":"sha512-6YVH+Iz9ag+kfuSkbTzVClxHqSdHTXFUg7d3v080Kl+zWeXzFXmqBTo4LNNH1I966yHbq+ZymTViZixq4pjYwA==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.2.tgz","fileCount":23,"unpackedSize":66453,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuy3S1ql9b1iAn9iDywnGm0edKHD4yCXfDmj9MxbRb0AIgL4WkvuMVBW1vFdZM/e318NXFsjcC+1lTqgUmyopGVxE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvX3BACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp5vg/7BoDaqpGSfUtX7nTHu2Uz0rBIdfGa0XL2E9b2ME2ayz2qLfqF\r\nXGU0CXdH1YnzUbeuYkPakMOTR1J5NzCp+m3X/K/x8Wy/XqvLS/ZQZq8xn4ED\r\nogBXwfehNsQULnPeDS1Bh7aubUnWhXPuw3lXQCOJyb8Cx2ce8wGrICwbS0q/\r\n27t0o/L5icg9kH6er2dZWEh86/K0e26BMJYR0rqxiEWu1AcI+yVFvlzKA5T8\r\njETBb+wiWPfQAUkvvZ9NFmCZ/z7BobqZRO8fnshdRIEARm02vBi6mdKmSmTf\r\n2Y1Ae3nIrSsVdzOxeQpD6tltTzIM3Kn8NrAx2e8/Q45YoJUziZyyOJ5xrgHb\r\nMEX/VJlXWSxJ2F579KgbuhJ3ZCesM2ZCDU6OFUBh36n4yOactAbT0X70FuL3\r\nh24Q5jJqclvI36y2d4+ygOVCRYrIFWgkoKF+Y4oTMUoTH/eFdgya1bavEVKY\r\no8jgYJ7KMnwNUKZN8jp62BF6f1+F6sx16zhf8ZWo0RPsq944UxOkgkTe2iXW\r\nncdj2tf1B41nQCdHnYRHYAgkbZdu29AzsMdAAV+khVUt6+DLS3tq/4jLhxuq\r\nEdTXhScZ8e7TgWmEzfyzXbHiBxTgbwr53BIGLCjg3wHzweRKF+wGJcxBMb4d\r\nVr2G1acFs54804S0XpDElc/7E0Hp8FCkt6I=\r\n=F6UO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.2_1673362881618_0.4537720651689996"},"_hasShrinkwrap":false},"2.0.3":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.3","@focuson-nw/template":"2.0.3","@focuson-nw/state":"2.0.3"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.3","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.3","dist":{"shasum":"d0dfcc394025f0b9155ddd8b1654db8da21b98df","integrity":"sha512-zwoxLDX7LY9y8p1cXBrNeeupgDiqfSbDK32vBg+roJEos1kNhJfZ6n9WE/sIo/qeeaBw6IdU1TO07S9nHFKwfg==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.3.tgz","fileCount":23,"unpackedSize":66453,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/Qx99gc17RHNhKc6yADpDNazfPCf7bjT11AiDn7bUJwIgYxVppRwPV8OwdV1M/WdbhPu6IqhzliqhTfvCwmvWupM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwWraACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmowPBAAj8vQbnntsGLbKHh7N+1zyewVFNJOcn7bJmy3wJNiJnLRV2QD\r\nBPN+ElPVatkGEQpjYAUiuHq/NACz0PPvJWM4GuoXfqRtzocQ1DYrn9ctVk09\r\nW5+N0ex0YFSUYcEsLviMrXXCvvSstGb4QL0SAZitu/Dc1o9ACo7wygD3uF3c\r\nHXRoGI+9gZ9NNyIS6mqOMoz3NlnH5iBaHz6tH+gZAlvIL+yGXQ7UxBO+qGkj\r\nEDXqX+SMGXeyPGTgzh1d39DR5+xjCWBkgdHIBMXrzc1RhpZfIO8qwytvhfPF\r\nkSNHph8h1xs+RR2dvPXd4B9AwGL4+nyYwqaR0gJoPxmRkzXrGZoSEivr5ypV\r\npnDJlbxU0nrmvRODube6MUStHSsjEabs8MbtLNE05tcPaxBDaTG4E23asH31\r\nfy8UIlCYZU6erRozEGp0peCKPhfmi+IwWuhXRsifmupROnhx2aVWOlzSi+N0\r\nJJmmy/NkRHXgUQ3pMORvbRIwcwOp0tAqq6z+m48NOBSYFOrg1skq3dkpYt5U\r\nomlffmVlc3twSfc+I1Y56Dq4622ofUHrYwttrYHOqxwe+IqbUXANZpIStYmv\r\n/djb48hF+YC8MyB3ABk/sxcNsktvAZ04II5wioD7P1cmLaqE0ZDOUvOW24zc\r\n3/vLizUcgtzvkrzCREXrLcwTGffwu1o8hd0=\r\n=JcnO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.3_1673620186529_0.08545539861943596"},"_hasShrinkwrap":false},"2.0.4":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.4","@focuson-nw/template":"2.0.4","@focuson-nw/state":"2.0.4"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.4","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.4","dist":{"shasum":"40ba56367bd8775cd5707538e153542875ff2f20","integrity":"sha512-W8phRyj8W2HifXqTE4rZXnfjZmy9GOfN6yZ6fQ+5vLIFFa38dp134w931Hy5ylioAyF6jx6C12sc9BWnbeCxlw==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.4.tgz","fileCount":23,"unpackedSize":66453,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGI/1OBtqDlH7AHfCz5FFZlfzrYNy7DSgajGYfL1ElVcAiEAnIJBzATi5IFVdWhI+M0X3razVP/DcVtMpLEjC001LGo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjxWePACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpUxQ//aZr9kOI4aO2R6g8TUzQPebL9kl0XIt+nEQ1luok+7NCsMADa\r\ndEEwknslIDbcIuUcB2CsYinxuAUUoozD4CBrzFGvakrCL/hWXpYF3G+TAtO4\r\n1ggkIi1fcHMuPJzx1RvpgzFnFAgZj2+sO3wBVgXwyJAmIL7pBmHCgaKiR0Ls\r\ngTNbyelgRQGOdqJnyO5Oc1JA828c8au69XxAYjnEaD+VP7EfFtSK1wQK6dyQ\r\nR+8a97kh0Pju6BqDRIVTTqMESvx3lACvNt0Yftmqj11cu/TxdAVrxTdFnhPM\r\nADKhq2vz8RcMBeqvv6cohw9aMDVhPdyVdC5XOQuSlfctm/iUKKhkoFyKbuKD\r\ntNb9i7OAbnUcPl+wkIlYdk2uSLkEZoKRujUgdtLSE4BKM3UMhRPKlDNukOHi\r\nzfy4CW+u8bVuoTK3LNS/OBr9GxWuBals4iHeOyN1HVrQbC4bDS/B5qKmf3VO\r\nubb2CA4zAWy9RUsfR2AYpmub30BW8vKNrHZReJ27U3zpeAcbiXrPp15eQp8H\r\nuznD5wl19EgyZ8ujZ6h8NUy0Meuw96XpYw2gbEUiLwUPSaTA4SJ4ncYjaDzE\r\nkhcZPpi0XTtE7f4T6f2Of/TgoaWQGNFD1+rsqCOmS1Dkqz8ekacBhH/BLncY\r\nVFAAhgdd1yWyOggh8XpdqFvGCG5DQDTp6xg=\r\n=baKz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.4_1673881487517_0.7603067009146616"},"_hasShrinkwrap":false},"2.0.5":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.5","@focuson-nw/template":"2.0.5","@focuson-nw/state":"2.0.5"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.5","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.5","dist":{"shasum":"a62f65b717443f8522fdc2d6a91a33afe131b4ca","integrity":"sha512-pA+kDMWjidSrR+Qgf5nV9THLDOd8pFz22KkGqsWilLsMOswxQ1pNUZbVBWW/R/js8XRQW4gTemOJXWeNGT0iRQ==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.5.tgz","fileCount":23,"unpackedSize":66453,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAxI0AVIGmiAJ7NgV+fP8ITWI6VbUCuKDtoEtvPQfJxTAiAV1RcdT291x1V5qYNq8bzG5zeIfMb9vN0UmX3P5hCSMQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjx9/3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvSw//W8F79wXCRluFQujWHDwPaakmP5po7Wxqq+XJYpPssJT1XQkp\r\nAVTMvpUPhkCjmbDZEUkBPKbfZlZV11XlR/9Ryyr0rPdBKaZvw5j6hdw1gRRg\r\nDHyGgZGfCMfsbta1nf+48orsLq+nSKXJ5KXRQb33WjYHxWYmuNFY3s1DSb+8\r\nxGna2ZhjrGfEeFw7isqHT7jAxz4BZOkd8WScUY3jMv4+EBd20+VE277ZJC1x\r\n0N/ubLPwzfV1huFPNNpQ+tEH7b/Nc/c8qtw+krS6hHQUh1PT6uWoTFu2GsZP\r\nMF4RPFeLXYvB03+79SH8cffpiltI0kAyo7R48ac7c4WhB6VaeKsK6Edf0RUR\r\nh5Lm8Af+GwGuUG+jiHRnG1hSvZS3UbRaqKVRfklYPmruApdQMue278UDzTEQ\r\nKZQF1F5J+aKHN3fwXgeytqS6MpfhutzqX3YedAbUguWrF19jeUfwOLQDk6L8\r\n0T7XPGk3J9A974ovfXR35bLsbn2K2beeOcnCh23TouuXOUrErfrJb3BvXBOO\r\ngPp253de8sKadtQay0xCeOTS2t7ENiBbphJQSrPlkQMsG6FKVQbT6lHSOujd\r\nQxAaLxsS4vGMv+kgcpMKzRm8o6eNqST/vClsD2oArOuh7B7hNTgqdr/4oZYM\r\n4CnL7TdbNSoSz3sbN7OmhIH2wOdQBQ8q2LI=\r\n=Pysm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.5_1674043383004_0.8892168679139849"},"_hasShrinkwrap":false},"2.0.6":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.6","@focuson-nw/template":"2.0.6","@focuson-nw/state":"2.0.6"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.6","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.6","dist":{"shasum":"d2173019599a010ab84c22737d3a8a4cb7c02b85","integrity":"sha512-NM8WO0dBrM4gvJiKahVdvzSeWVFKI3eOh8GSpfb/PPpBOYrybTdsRuo181nMXtIa/3SSSvhyB1CJ1kH5N+nN1g==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.6.tgz","fileCount":23,"unpackedSize":66453,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGJudocqYA3ym7lW6v7IYGcNUqg4D4z+BCcYcnv/4lA8AiEAsrNvC2t6NlL2VjQqdPzXB6abTV9/5m1du+xYSA6SHiI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjx/J0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoWmw//TqZWz9T0PtfUmfLUxBs6sYf4G8VGaDjqQJyrQr6MY2LoDDtT\r\nfcslR/5JnfVtIe0JNkl4fYoCVvhYLm4fVsOe/fliPQ3CvhuD9KIzuMCmMNqR\r\nuPHIgQ5NK508CVjn0tya4262k/U0KK6M2gG9Jdu/DKx1SZW9ELrizLqXq4R4\r\nW+TAMNBe8XE9/TdpM7XLcwNuoRTS53kr5KjAu2y516DSePvncMI2AFV8zMtr\r\n655N2LJEK7U3lzWNpC5JzAa0QWI4zQvvIWfHh8QDjj6T9ht6Kug+k9e2eLGO\r\nqUxdr+jUogI97yXKIdaHPKfIkYIGj/6cMXN/y3oGcVoW4zngApctFObrmzE7\r\nGavVPDRNB+MnfSkYw2Hf4VpG7klqMNDz2ytjMtU7qLc+T7By7tRrWs0jL9/P\r\nOtTWZqyGxaCOPSpNP7UCyf/f+HoDv1FvqV0+NthtKvvbi8r82au+TLG9BbS/\r\nTg6xm1cCw37iOgoD1QxOj2C/cfLvQ5k/pgyfR9l+QAjI8I6Btz9gJG1Kxxw+\r\nqbxihjoB5iQ0w/OSLTZ4cU90pdzdkkaVBzNbAMv7tHzgEn7LrK3tCbFMNKxI\r\npt5jZy+IT1qeX25COJuraOiK+LaM3x/goyi/aaOpct6ab9J/JgN/3x6EMHVO\r\nfuOksU8J6P50xIT8b7Rhjaa1eAElxeebg/E=\r\n=p+1m\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.6_1674048115948_0.5244145694913853"},"_hasShrinkwrap":false},"2.0.7":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.7","@focuson-nw/template":"2.0.7","@focuson-nw/state":"2.0.7"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.7","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.7","dist":{"shasum":"cfa80d498a6209c1a46d3a83ff41001c354457a0","integrity":"sha512-SFoPLT6evKqLKEyI7ZHeJeje5uy+wSZkzfOfGfHJte53RZ2UfkW/9ak6a5sJ5aRtdBz584VBH/aqxNg207/vZA==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.7.tgz","fileCount":23,"unpackedSize":66453,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCn03LAc6wJr8xC0YQOFE3J2qVxxz/ekr+WlktGXF7qfAIgLlAdKaVpBWWBogR1XzUSgH4GKzrbF7SYXxEBpswp9yc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjx/TBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrC/RAAkWdNv4X3PzKbbXXMBBvCDHgD6RrYsbN4SeHVUBuFztCK/NLf\r\nlZPdBn9c+MRTRdR88iXeo6TW7YEHlkoSy33MlE4DPBFkYKGHzazknWR9XEyE\r\nOgJbXbpSLHnuzYUvh8KnZAb8hwyLorvfLnvk/3Vzhv9un42lJzwrG3c/LjxG\r\nQXqewPK1Noz+KHfA3+TGJ7NlXf51galtpLuM9nwS50uo9nXawTOR7eDbfwzC\r\nbUyaReO94gwd/OEmgRTzmv6ROnmuCYzUdavCSAQDmKvBPI6LbuWBQIwi4L6T\r\nFUMdo6Z5v8wWjwuIYP8bN7y8lozzFncP8c8LzW9IaIvJI3maKWKtT8oic0yG\r\nZJwXSULqsaGnS5k9zEKsdOQ0Y+QFNxRWCPHQj7UCEh5z8QLyvoWZWXwXJySX\r\n5kqL2lgYoVG7eRsjPgfJjDat036FjIt1VO7154QmV6+/X4aYEWZxfmsyuxJo\r\ntubciZ9pQRQ2uaHpprb05kkDcwA+g8OwgD29y+LXJlafEgF7R1RwVW+B7kqE\r\n/Ac/gCCZXPLWWoHE6HqYDnDxTkjF5E6oPjAGS4Umu2zwJHZYpKR0suCWu7/D\r\n/vCLBEIgF2Ge4jkZnehYWinnD+sGtp+vjwGhoT6skLxuzGcP+Atkf8imgc+3\r\nLQfoQR3BKq5mdzqDYZESrPT7NCnD812q090=\r\n=St64\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.7_1674048705557_0.34393348478754415"},"_hasShrinkwrap":false},"2.0.8":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.8","@focuson-nw/template":"2.0.8","@focuson-nw/state":"2.0.8"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.8","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.8","dist":{"shasum":"a3ecda1c95366aa20783032d0f69fda2408f2f64","integrity":"sha512-s2C2udyYloruXKmDnUjHTZvPNo522J31tbPZ4ZQ1gquRx2p30v33yBvq5rvnJ9FuKvkFr1nG7yBvCS3bMY2XiQ==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.8.tgz","fileCount":23,"unpackedSize":66453,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgld2pmtiSaLhDQlpWoG4sGUq/Qt5dypuDEAbc87ErVAIhAJZbTIScf4ikpDskVsdDq/7+7KWOdj2XDkeP7OLGofIK"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjx/d/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqa4w/+NP7Bu0exJal1XxqZs2sA4Gt2RCs9Z0EPQsOH1WgQGojQuTlw\r\n/F6q4o8WxYIzs+eOozCNK9j75EJq6RrCD+JF/s1uKqS+0/xrD/zWEDU5nbCP\r\nu37bRov5NwcpOsdeNmQ/GuNTQHYqzcykgEhlkVipyhU0iKC40OLs7H6Vp6pw\r\nn7mP37AafXrHXAZulNWZMgrXxvk/fMWptN1VCe9u/lvX+7YuRGnWJ81M2pBT\r\nRGNmVSJBJLyC5IQWHRYT8el+5mp4LVWIoFh0Ceueh8Y1v4RXh6cVitS/wkN3\r\nKgfcKFIveTP6/thYDQLd9p0wECHm/U9ajrlZaDp5hsUFkYof+aMCKL/yD7Jt\r\nGHv1TBuPiDrdioKNebUIaKfIbtcAIp8UQwjLHW5nt8T+F3grAgXYn4FSfsxm\r\ne/Utb0F8QBC6DQvGRSn3pZbcG7D89ihJGfFXqFbZnMDvm1MT1tvza2rk8nVI\r\ndO4lswAidN+whvxEuLwYjzhDK63NwWJ/3Vyg+zwRvNSFKoyUlyKmIQ8LNxO2\r\nmbfiQtNGuWrOQYrp1m35xZAfPtrkJgLkHT2l7i2Idqfq+IQE1FR6Q/bHyAut\r\nxmQHhHavo5syPCDXQiaW1a7gPxBpDmov7/3J4ZJRRqEZdNXeOGH4NTNPuEYt\r\nlWEab7ur0U60bewv2TYMHuJs0aqk8wZvCZU=\r\n=feS+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.8_1674049407378_0.4654374240630088"},"_hasShrinkwrap":false},"2.0.9":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.9","@focuson-nw/template":"2.0.9","@focuson-nw/state":"2.0.9"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.9","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.9","dist":{"shasum":"7889236eee733d67132311e9dd40570d61cecdd2","integrity":"sha512-wrqLm8xfupJYW9b5ZB6C7zetWQXTKZxi6eKXdaI4S1BQr+/K/BhUbEch1AnbjYLNI57rR0zMrA7WAV4Dmx8Ydg==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.9.tgz","fileCount":23,"unpackedSize":66453,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHzyxD6HoYbx5eJ9mnioXbK20cC8zBHXXYay6c2+LyQmAiEA05LdbR9wID6c5mPJatmHybeQEJ/UTJOnYVmjASZHRrY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjyAeSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmosAQ//d8ED4yzjizRQ4zgpkozgKoulx0F1RbAXzvwveLmfqiNDbENl\r\nf5WxOHPpYhUjBvCslHkwXlOC+go70nRhA70q29EdtFQkqsl1DHciDvRZiok1\r\nie/xC30R0KVSRrS5BY49YZ68VPwfkvAF0ZUhiWSDG4leLZbzFzh2l4FxEVUO\r\nwVVatRQ1qVrEqT5BTjpOD6MB513HqL0ZgIZ0eGgz/woO24ybCN8xI5tXoPJZ\r\n5VpyxEYgMYF+NJFJwaehDLt0OE6rKdpdBdXjMwgZe0i6VVOVbvWuPU//ACMR\r\nzeTP5lZVC/v/NgqGagkieDvG5Glh3G0jKUwNkGom1t2zE+tgfX4ruLQlQtDr\r\njyrBG5SQon0zX5W9BdPmGB8BYEGYIbSvUQzVlpaCPRnQCM8jlgkltQquLkjI\r\n0pW+TMLtB4mlMr7Xh5AMXPhSgiEqoFvUbsEYyCD04DMBXLKcy10IbC10BA76\r\nDkKurGdHIdu1S//2kmkK/E5e/GZGFwFoHgzYisrZ6BMllRuJcNQZGUGSP3vi\r\nZNkemV6e5uuJnPb3/pFSpBKpMAY2sRJZGXdWqmW4hhCmCTbQY4Cy3XM0bBU2\r\nF+EV6eAcfospRKLnoPibN94Ua9OgmKX1fsD8cP0lXKiDbDgn3uLqzOPqh9Jm\r\nxp8kSSltprV4hK+TWLQhtjNQ33Bxm2ne0mI=\r\n=dljo\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.9_1674053522627_0.436087871298233"},"_hasShrinkwrap":false},"2.0.10":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.10","@focuson-nw/template":"2.0.10","@focuson-nw/state":"2.0.10"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.10","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.10","dist":{"shasum":"0eccd5cdaee37095e13aa71fb1e45838d01f0dba","integrity":"sha512-hG6W3Id+IeNIvndWkjGKJAAnZA2nZ4nPsfGqUh62R6uIIjMbh83tyiHU3j8zFismxZ0yR/VpB+69Sj6VajNDyA==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.10.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqrdmlRQzw1EiUbD6JWB4XYEGCojbwlCmV0fZQW3pGpgIhALMUCKF95UmDNs2HTvvdyHaTcefme2F8/X7yHls5mIx1"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0mZJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqtrg/+JW0HisS9F2NLTNxLy/MOjJs6p+j95nZJq/O6kj9AkFwMw8Oy\r\nYHTuh9UDkBkyEEMq1kaw+kqzQeiEZEzQ+/FB2T3Vf0VX57by9FxFviD1g7Kh\r\nuREe7c1L3LUm0booiECW4SWBb+nGSkLdV0U6b2Uc+yTydGEop/mlczYtj3ht\r\nKSuo5j31sMGrE5zHsRC8TT71IIi/bBh7Uqw4zBHS4bjkXiNOk/fOj2zgnuxi\r\nMTq4fh4xxJyxJPCbWMpIwCDgeMb8rK7LG+a8k800/mmKisT0u4UPAOCI8xTR\r\nmWbapJdxyyzjwlWHHbEuQS7h3IQqiw/cALxHhT9OXIXQAykcztw47s7ciEIJ\r\ngPcdmlpsuy5UPXEXFYu/kXpgyofpTJzAk0WZTthP/CaNuGcrr2/veMYj9xKP\r\n/gXFcHoybAxpWEqIh5FN3KyuDPmnMfksp8ubwrd4Mvy1y7ugbJtsu156wWEY\r\n+2QbvuwSpe8rMy0826ScmQUMoJfj3LvPyptTWFmJGgirSNqaA3smVSuNKu3V\r\nHWf8fjk2Khz8cuNMf2XJH1UqQsG7QRtSqYaEiIPTT/iWyiV7bnBNNQiCjTMx\r\nvYo19h9481yXtbvTs+xgY8X+VLHU37YQ0eTbbe5dc1di78OwbLnZA4IzAiPy\r\njCZGHYdE4fXcHVCuLwv+VkgXcr9vWeiXSbc=\r\n=k7hU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.10_1674733128984_0.3522865978071541"},"_hasShrinkwrap":false},"2.0.11":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.11","@focuson-nw/template":"2.0.11","@focuson-nw/state":"2.0.11"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.11","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.11","dist":{"shasum":"0c294bb14ac991fc58a6d5b88b527035b1216a01","integrity":"sha512-rWDjfUUsU329uF+HdqBq8b19IXMwL3nOvA0NewI+sKaE46d2UKdiaNclAmpOl5fwJHCra4Scv2TFwfrrxQkFwA==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.11.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDWNZ/VB5/6U5vtZlsfufMvyFl2pjmyvBsrTAvOPkqoGAiEA1s3QBUQC2PHPuEA4JVuqJxjvx3EErG/3p0onZQDDkfM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0/4FACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp0dBAAk87I5loAS/DBMhDY5oX0KopNwH/8SFk3r068QtngMA+1Do7y\r\nqFGyiyTNpXufrlyOFj4bKYM1tM8CyrYKfq8IIneZhW79z1Zwut6R8LQ6Z4k6\r\nfbdW+BI8H7iVRfuCQ/hP6RXqOXEZW7Zdqtw6GSHMyZheIeKDY9PpLGC89XUK\r\ngXclZ8aW6u6M7c+DnkqtAWoACu8HW1LpSKYL4iM6ngjTL+2Z2pC9SjdIIVga\r\nnF1qdrCUH2j0frgZCmNJVTf4PolcS+vQxUfKojInzSaRdcT6hTXgCc4hpkAR\r\n2I3lRu4VIWjvBQ8gP81J/ooEpiOiRV6uzEmHK3M0nBG4bkf03JopPu1ZDN/o\r\nwwo60Gg162bpUODQdJXLrRxYcI8CM+vHib2Z+ijSVPvFFkkMdF2b+f7IWSlK\r\nomEXYjhBLsQ5l3ORcdSOQPxs8tKUwPJoIgF6y0oB3fhBo7UTEv6Cj4uhz2pS\r\nImzm7DdD2kLxZgeSKaqocHubOJJMzw1Gdg+eLYGvzwm76M2fjnA66cYjJakR\r\nXkMH+hZt16zspEGFSeZOrAY292yQMbN/AS2taztN1U6mNcychH2RH/1yKssS\r\nM5ew0sXe2FF4ie9zj6Ghm14cF9WQDQlU24lGYELgEWIp7uwJZ4BJT2NjoDbf\r\nkfkiSVEkNRDO6CJX/PyqkMoV3ML3U2d0CSk=\r\n=mYyz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.11_1674837509219_0.3668576368026073"},"_hasShrinkwrap":false},"2.0.12":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.12","@focuson-nw/template":"2.0.12","@focuson-nw/state":"2.0.12"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.12","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.12","dist":{"shasum":"0056397a791bd1061dd9b92cd2db382e48c79876","integrity":"sha512-DV0ozqD0PZOg9gp3DzRLFu62t4lZZv4QvJCRxTb3pW8/4zsi8XWjK0afcRfQcbgnoEIR2ZlKzYFdHTZacj6LwA==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.12.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOwuSde6xf3nvLYldcdbly/HvqjU+Pnv2uXUdbc5poLQIgHYvXHN2ihWRRiwl4v+G7kW5u3PQMwMrCqsEqV7vaOq4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj177YACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq9Pw//YsVS2WB/sjYkDIfsRAhbzsaWN3n2KXfU4ejN5gtroxOETK0W\r\n49ZEq5/pVSUyvB/xtDL8JEu/AXpKJ7mqYNFkgGUvcr9t7U1OD6GbaiBaXhwK\r\nZ5keqqo1LkfQ+ZnDCBbC7d8KCA1NTml96kVSxcXiaV6Kq7USqOwuO+Bb5BPU\r\nDieoBke1oSsN7urQPQaHqfc6d1RyNlbVDxg06K9w0lVEiukchOPOVkxcpFQ6\r\nhGmiKnaAs1gI9QJI5HDlDg57B6xj0mRmSx/DTdiTaUKgvHnTilN8/xnBE7nb\r\nKqnJlKcpdHSuyJTaZXc0A3fbQVrLgFZ2RXSQXSwd2blsL+6YvuttV6L6eYQc\r\nhoM2Oi+Fkig8TDZmyDncqq19G4YhTlssRUEndd2LM0Wr2Ou04Um28EZ/ps/z\r\nGXE09LmBo8+l1Gk/Hhm4RUg47PQZUZ9kP+mbdlzaiMOaeSfqE4kUAOLUyYyt\r\nz3dVz9J0gaJIiUXbFssudZe1oF3DFHYxaM7Vqu6QJvYv6cyJ+2hXOegx9Rkf\r\nVFOmBrMZrtmPYJdPOn85ewrRrduZI1pz5rqEiyivCJrXyS4qMGmPcgKThms6\r\nLQlZSwVCRDqGYQ+PH/lAnlbe1T0P/vNoaFq3il5rxW3FKNje/S45C6DMA8oT\r\nglmfBHw7GRj8/D6N0FRLYgtxEtRODhEyQXE=\r\n=NGVF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.12_1675083480217_0.5197366510809522"},"_hasShrinkwrap":false},"2.0.13":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.13","@focuson-nw/template":"2.0.13","@focuson-nw/state":"2.0.13"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.13","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.13","dist":{"shasum":"b70ea390ad2eb169ba32c98735fb24ee00573d01","integrity":"sha512-tVTaAq42LmS3N4IRrkBN7FXg/aKyX5Rci10ZrnkAagxB7FpRgBl2S0Mh+OBVGhW+Fa7zFjDvIVmQxVc8GuwPug==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.13.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3PWo/vDcNdzUuIe77E/MQHw3zeLZ2bVLbWjzzwTGYhgIhAJoVD7geNeR9OeIaZcktmc4Fcbb+kiHlHr8mllDev0QC"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2owwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpqSw//SyjPhylEL3KbTxuKAz2eBcXE1nyDhsr193Oi4DcifTOaI3S4\r\nTMkZpoPUa9nlz+5C/7TjZtIfSgrqIetMr+QiSaXpCLsSBTuuZjkS2NvwuhMz\r\n3DDyGvsTTYb4cz0NLs/npOQgyiZAVJe7eaUmC9ASUmkWynppydXC/Kr103GE\r\nTti0rtsqIoFSROVW1xUu+qVT/nJG9Xz3pwcq1GM3Qkarqt0VgPX0lrbrFtKB\r\nJyYP3p4D3+1l3iRXvKwNIodGvbRJdEhLdBXFTvI8VvmxzOFEv8Kt8xcJtk2F\r\n5RhETux/ddl7sWJgBdK8wtP0o/QaQ0UzpsxQldFWYUfhV3hHmfXVcCX0aZFi\r\nFM/7SjLj6s+8GD0gF+3xbeLUYWXog2M+PyswVjFg/hjzieemQBQCEjF7XfdJ\r\nwcyQfNDsNsOYcqwwHmwZP9u/5WgfP7yQF7Ie+vpsOt0agaY549ExdY+AQ7kS\r\nMlvCh0I4bp4NH3OarnYihE4eOzoE9JhtUOSrzC5n6C/X0hpEiPXyVuMnfBPf\r\nO+GvUQZcjlcULgkN7NOFBagKMLO9RYQkB6jkbuDyFZerPsKtbr8WwXy7nsLl\r\nPtWbQ1q+aIjEoKRnLQJ83N+CzxP4WjMB3orobZnUhlFKMzrKNzzLWtBJ+z3x\r\nqRsnN9ngJlexRat1C+10tv+Yl/9T3NAkjZ0=\r\n=y1Wm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.13_1675267120376_0.9250674001951336"},"_hasShrinkwrap":false},"2.0.14":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.14","@focuson-nw/template":"2.0.14","@focuson-nw/state":"2.0.14"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.14","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.14","dist":{"shasum":"c175d5de6422cefa433abf327dbf3704cdf605e6","integrity":"sha512-lWYAAeouTbDj4cDOCgr9Wez8KFFV2tTrOY0U4T5g7IjhNV5W1by2T/DS+zVxCPOIqzLCQaEnAiMMtU+/WV0GKA==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.14.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA84e/ChLFYh4ojrJieCwMnNOJ8XXiiP9mu0FkqcmxIlAiEAjtGXHfQBBTWFa1a8uyizITCpaKl7PwDDrX3X1ELuxgU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2o7XACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp9ZA/8CDnVT+pW1oyVQ3IVf4xhcq5eOqWb4hlNKblzwsS50jjrUxmB\r\nRudSGIxAZwNPPAJZbdqkduyUw3q88EuccgSnYsIPzLAoa3vXLK3OMeUortri\r\n5sEG5vNg0lCvTMbQ8ICGbSkE6lRCK0f1lNh9XEpy1rNg5v+peZ4w2uhlCq1O\r\n4gAFNhi/FECKNRWKu78VrN9K7eLv57AfN7bHUNY8XbjUf83uDp95RTmQvD3R\r\nrrpPL7PtV/jFDOSSnr+yQf0Blqk/82c6eEsPJkD+rYYmVKzrdHl425Ac5Jkv\r\ndBj3tKp7eDIQgxvdk3B9zUjqdduo7ShORxeR8XxkitB2gMdrPZ4JitFrt7MR\r\nj9gDLyp7wIIHMt5or/gY9yowTW34yz3HhVp0X0jwCeqS/r7dHG0UZ181MJx7\r\n2jO2BJJTAE8xdBnz9saYrtazvM4KdMnT2Pd1t9rBKMLo/s+QhMEMWYGSTOt5\r\n2zC82E5mHlbQXEt5uK2s0eErKduL5kUBHqp10n2fsWwwuJ2z14f7ZGiFuPi5\r\nNF2us6nTk80+WHR76hh4ROzCPpfJWcvhyjn9z/l9KhbByAV3qP+XCRdxn8dK\r\nCMedw0yYtK1DKQJpAlqqAKKC/bJHlBpoCNBHwSSMnA1Mif+IiQ2cHgocNKzP\r\nYQNMOb3iAx7Zp2EhhOH5zf+Ni0x5QPSBVHg=\r\n=Gwvf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.14_1675267798723_0.40378538761983185"},"_hasShrinkwrap":false},"2.0.15":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.15","@focuson-nw/template":"2.0.15","@focuson-nw/state":"2.0.15"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.15","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.15","dist":{"shasum":"e83bc3f235c1178d9c0462c727dfc09c6038bf34","integrity":"sha512-XCBNBrazcjiS6GW3D9/00L0iIm4dO3JGKoxpyeAPokxGdT57dTv6DGVxROnYpZBh1+p1YKvCt4cmdmO8HWlQzA==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.15.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpXeHTNA4i0OizSsXUdTmo2AaCa53qZf8gRGPrB+0suAIhALLJa2pHSMRbaSneKMNIiTEor+SqMs2U2y80/BMBUUxW"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj660bACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqnlxAAoEmUL+mUMWbhrYHS6zk2eU2c4p5V61vyW6WKUiTapcggFxAT\r\noac3ty8G//owCIXayioc97euPPv08P9l+ME+ukNLMRgw2pQH3hL1EhpaZvbs\r\ncTl+pa9ShjzPWIIJxYYvmzM2XQJvZW++KiNt0EO7VBabvXBBj91GaNtlbEYi\r\nueorC2HdVKNSdYO1fJiqwqKOMBaOJlFm5cg2ttBGMiL858gJEachWP+jsDY8\r\nbcyhu5n/C2bWl5qoB0soQaWeJhDXKFMCs0bOoHpwbvBZ08stju5oKJFpW4PA\r\nVPlHxY/wUXvSexhzRJRTDm/LHHh58RnGbbIMdjkd92hGD9bVDJxGWsiVxJoW\r\n72vx6Osq7km/Lu4Ps1QbMC7lgIMgsW7MgS/uriG8RdHjRDrhO30vPyiszg0e\r\n8fz+xLC1QqzHPdLRlYlQacuCblRdEfbPwPPj/3aDZ5J/bzDMjUuId3sHw8EL\r\nVLk9Wk7440W2Abqu91GArLFirlXstuk4R7hiJIGsgx/UmYA1rj3YF/Y2Vtho\r\njaPCJ2GCrz6KEOY5e9pmMa2xMWOgnnstTqn6Cxfth0CSc8bXV9naHEds+vmY\r\nDAAUxzrAPMbpmKb/8tDUPALXYlxSf1zwaIyV305Rt3JEQtQAfFjS2yVQd8Jd\r\n8p2BytR9PDmnZewKDH0C30AsChu+yJpqfWQ=\r\n=AKye\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.15_1676389658961_0.16787717140428748"},"_hasShrinkwrap":false},"2.0.16":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.16","@focuson-nw/template":"2.0.16","@focuson-nw/state":"2.0.16"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.16","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.16","dist":{"shasum":"417121b416efe570c6e3de73f195df6ba191e7b0","integrity":"sha512-/gOy1vfbhK4mGiaz+VxICVXUxsbCy8Rywnx+imROUVQWZEgdD1g21bzu+HWmRkvSyqLBe7/op82n95Gwiy0ocw==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.16.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8BEU03z9hLCDTpykBd7Cyb5FTYnft1EpDHzxmCR2o0gIgBHq4j7ersqYwUCM2elbducOTBDbW0nrLd7q5kw6xs0Q="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkHa1xACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqPdhAAmYKDHTNUnscM6pb9joqN/a1DtZ8ewEufD6wVy3PHTSi76ps9\r\nONP1L26yktTLnmxXQZsy2tRj3N40iJhYYKqVBvo7dpClY9vtkIEeQ7EWPL/9\r\nyATYRSydB6S9gHQna3RHlG9r4FIWRityYdP/NfQDHT2HuaLpWziYJUZrq4xG\r\nnr1ImxeGmPRXWathTd7WJJEU31ZsKFX8AQA1ibfrRMbkVV5VNuEv8DUUxwRH\r\nQSxEMfXkSg+Xj8DhCeZTq+SirC8VTVLKmS3MWllocXVfEi/dixvOXo6upzo/\r\nzTDyQ6OWSMd3VvBSJgMC4aLWbZelrfw+KvDs9g+wqtQNI62WFrca+ZrO1iAG\r\nyXFWTBMTa4/0Jpiyio4+pCFPhGP2seNmYXvb3er087JUed1FhkhyKKOtIDdS\r\nzYtx05OMRcVMmSydW5It0Il9RsWYDq3bO5Kf/9tLCnd6lDVSWALzPBbEzDpL\r\nuByFm9uQWGFv5K76FNxCeRXs6+VTcfblM9a93r203i9XvZdIFXP1cgmwFc/q\r\nr26S0ilycYcpXC5/hOQCc4XuXVf0gyj9poeFI8Fc/8Xj8bWWQwR1s8DxPlGl\r\n8vfjvzqieSLPRQCPWPX/qsYwbxFM1j43BSwW2lF46XHSzwpVTYkFt9/RUDzj\r\noyRkVGz42XUlspgp5dUin9BREi2S2bUVbA8=\r\n=Jn/3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.16_1679666545215_0.21442002351947065"},"_hasShrinkwrap":false},"2.0.17":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.17","@focuson-nw/template":"2.0.17","@focuson-nw/state":"2.0.17"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.17","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.17","dist":{"shasum":"987102cdface4c8bad4168f78138da4e65e3f715","integrity":"sha512-O6zPAp69Z6B5rAIvAusQkiMgHDvOK+KWMDGIr6nRqRygNZ5nkVub0852OaFxgIqvMyRM2X6Ttuarem931nzmFw==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.17.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCLnTSm4gX09xDQ0Y402GwKINJurtTWp97ToAw3Xa8TwIhAP8Xx3arYVn9lgoiZI87gsxa7obZYE2wFPQINngB04N5"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkHb4cACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmruag//TWs06Lh9s9CTFcfRgqukeEv9jv5r7FDnn+weyvjqGun5rySf\r\nahCwSlMylBhpRO3+t+iXc4sLqQozH0oE/WsUJc2H087sr1NlQmmDSlrUGlve\r\n0/WR7tTk8J+DaEPHUhzFechZ9dH0y840Ivq3jlYqKPBEny5xjeBcHFdF5BgN\r\nmattgU1UGD14JrVeCKYfM1T/9I2/Yjpd+o0j/OFzN2ZycApwz928cqzEzBBV\r\nfGeSSWCx6KI/8B+pqBQDPaD9IDklXjVX1hca+73nNTlSfo9NkwZkemGTMZJ3\r\nZf6TmGcWd2ConOL1y8+4ZUn4SM9m/TTYR0C/7qlqNoAzW2CfjoACOVA4wlPj\r\n4TvySMsuYHwAU74H0XmRYEg9HFIw4G4zEh+ugMQ+aHimum2eQ5PExF0Ei/B8\r\nytTbHDrGru/GD4dDJASsVoYjTBu65d2o+PswCtspuVKd2gbI8DE36U221QIJ\r\nTgxAeeGDWSuS1GVxuX4QdPbyJcGZzYNitAPkqBt6RaGIljg67K+4Vg/1wz5q\r\nEmuUw9tQAtk1RBajNw1vEEpVosy6HYtZ13G2D/ZizUW0pzns/EMDH+hC7Uzg\r\nXcy+bDccQPLfc+m1kRjd4UWgiWv78Xp/01QKe35XXpHVEQaMiMXN9sGYZ/sL\r\nqGrFXlw/lHdj7YM7fHPY9BWU6Ex22Dhxmwk=\r\n=xnzY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.17_1679670812084_0.6106812601702789"},"_hasShrinkwrap":false},"2.0.18":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.18","@focuson-nw/template":"2.0.18","@focuson-nw/state":"2.0.18"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.18","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.18","dist":{"shasum":"92c9736e116a58c79eafd79be0120a261bf68e82","integrity":"sha512-i2VD1ogXu5MKXfyXTMgv2DJ7mlHSg3JVJ5nbkwULjQYM9b1VKZyH0K1rWvMNZasqARTSpDBE+o5U59Z5D+6KLg==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.18.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPoZZ2ErQWtU5LNq62P4ZDgw6C8CtRowZ7WBBGOtnW+wIhAOApo+FM1hQLuc52u6Eo0XbtqqskpVLJPk09eosrRBZM"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkHb55ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpYgRAAjm9WOabO5xcZLh6JtMN38DYsBNPCOI/xFm0tcikpHA2ncNk8\r\nIxCNqfof/TLZdz/VEAaFbUiXgv+7MNaMz6I6njv3SIpk2EmstrDbwTf2j5hL\r\n3NN65tocVRSmREBMiGnWPiVXReDvpSJsXek/3pyu+JLJxGE61K/IE2e0N9B+\r\nh3cO7DirtN4TmJbce4YHqoBPj0LJ5gCTewDJmpqBqk+GYXdiSrXA6zzlFK/A\r\n97Wc4YB7a4kCHD1gj2ksp6cmb2X1O/19I5YHF8er1ncrHsNb4/IkJ+sFOVgp\r\nuVftS3TFs7JhqglETsoofXGm7QP2FhR8kYsCd+gHfPADKkLsOSJEpkMXmMxS\r\nDlLHatQ2xF7k4Aec9liheUGRAsgspxOaKFvomDr+wNOj5+uTdPGqxvAsgIDw\r\ne+KQf9k3r4+SxJkeImQeGxQcxOP7PFsFvlHdBrylM8EZDpXItjw0xXSPFMEp\r\nu16dd5nD/R/IpztETKNwINuNzX0UDfZJH2Em1PIJm0drI8MTrXk3jLeuBBb6\r\n9pJaiL8ZsiXpY3YU9WzD0AZ1dFFWEfDS8QvcKwTzBtPneajM2VZjYcR6nAxS\r\nImMAuczoTA843Amlafcc1bXNsLUsOlMgxqlcP3X0lcSuLbD5Blh9rjM4stnV\r\n83Ad4eLMZ/aZK3e9bfE7/N/cEqu1gCDl0TM=\r\n=+qXd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.18_1679670905315_0.9376024316590663"},"_hasShrinkwrap":false},"2.0.20":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.20","@focuson-nw/template":"2.0.20","@focuson-nw/state":"2.0.20"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.20","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.20","dist":{"shasum":"15e8a2256ed234711ffe8c2b8eea30360fdd771e","integrity":"sha512-0mWPMo0n5j/eetDKLL1F+pLljrRjW3olLHma1SOgj0Cpvmp+dibU2+QOkHQloCFHWHT5zMlY0NWJaQdNIJ49KA==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.20.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClMqI5aoqRAHt+v+GjyhkpuSSwaeIncPWO3+wF0Zw4HwIgNTgKty6u1vV7iDvoI1OGLrZvSsBXekj9GuYox5OUBpU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIXNuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp71Q//Soa/0VJU0ik7rCwcFOb3qZ2BJt68qKYfzb7bX9M79ZnMZa4m\r\noL69bID7T4j0pgvnbBw2DuaW3Q7p4MFvi+5Esa0UaY+O7hOJom7GJL4DzaKG\r\ntVSmmLGYYQyxD+FZmB/HLo8ff1PVtwvQe9yk1w7rXTANk9l5gc7ogq+z1UDZ\r\neUFwr3R2PZPXJrGvKW27fIS/TBTCO/WnJyCrHiw0IW/5pOd1W0FmRErcbW7t\r\nColdcvg8br/0l3123ma3xQLqx3rtN1yJUo1fH6Jfu5K1h2tmDibTXXdhvw3Y\r\n81c3SYMVX/p9ok+XCWjG0btSAoKyKOUkvc0/h12zmPaZ1QWB5JQFvkNd+xTL\r\n/WpINQN98UdF/10HGuSypbHI0IqYMP7/KcZSqNIkfsIqa6rlLsRZNiiAVBef\r\ntSRQFsNfa8zGr88cMgtdLJfXTf0kXVt0OjlcmTWmiKB0pnTVuH1COil6wIag\r\ngkZ1eesd8grYdmKD0QxXRxHGpqOEF6BfJdhG2ThKumiBTNydfTM9/7hGn1qN\r\n5TX7bmnTsRPVs52dX76dhW0WcMIgtJ4yuXAxAvYEgAnHgs3pt6qSXXi9zLFL\r\nrpwBoR1hKWaLpBj7wuV37IymsF/y3vYQNtIG7cfncJ+kITvWv2aloJVE0mLS\r\nTIZMVuw1wP9egHNftwe/RbqW3koX4KU0Q/8=\r\n=/Xnb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.20_1679913837909_0.7434027749745356"},"_hasShrinkwrap":false},"2.0.21":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.21","@focuson-nw/template":"2.0.21","@focuson-nw/state":"2.0.21"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.21","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.21","dist":{"shasum":"ce8512a4a1624da44cf67cf704f784e07aa824d8","integrity":"sha512-a2kSnLtl0/9436YVrStyCcfgbCEk2VgG4CQxuwJ2KRrSy+0vx0Zc2TLUPfAJuyKpdj7PwcWu+YT2xbbIztM29w==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.21.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH+gbbA+1O69dpgCUmpHL/7ka0C1qbBlGB0someaa/mxAiEAsZrEyhs42u8akB3sqSgRDZcc6Fzw3Ooy/8vvZNkFaYk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLA9TACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp5/Q//SEMV8tRndOFEjTZTWHsK6sAHEjMenzyJ+nKxfhh9x1Gta7Zk\r\nMOYRYXt7W1u5B1LuP/W2z2HXwg/QMR6T+ipMtQYLrEXj4fAnRP9TgTwDv4fu\r\nCO90XcL4R3L38Q44lDwfq26zq0Ky9QQ0Xn/v3NL3zbnd40mNcuQiQcU31qgk\r\n1dhdaj8cs1c1luzo3X6OelIqouqog1ZrEOwPz+C+WvIdwWUo2i/EyMSYT9Cj\r\netcgVz24RE7zs4ouVvKykbJHXgWRILoZYo3TLy0+GZyFBFTQ6CWkP5DtB+f0\r\n/z4BnlLjk1m9tYomn++9uTZQQIOETpyN4aJukviEHutAnFkQtzIbney4ntoZ\r\nPqwVbZfKl8wPjtB8GjTT9kMx68xHcjoy/aLIUZXjSwkzYpze7kf0rlw20X4y\r\nJbQcrzEWABY4yMgP9rP0LYdi+iUUVgm2y2/zIdrzp2XdL3rzo5ZDD2hsqZp0\r\nyWOzqSMDO+xmDHI/5Bytsl80ozC0m36kX7rkjKOkRqWoyI9HSIWa9owVIw1v\r\nLyZKpZs5ywNqmar99/E41DHwBkQ6XFENg1/PNO2tinx/qWvbfyku6kHflNNG\r\nhn3n+k48GpG+KngLvm2OBPkBxgNmNv8XkkEStVwJBcuyJauh6XpCY/6PouRQ\r\noiktPOHoQPUgSilNxxwyoTWNrJrI9t+kKWA=\r\n=xRDj\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.21_1680609107768_0.19122194863108266"},"_hasShrinkwrap":false},"2.0.22":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.22","@focuson-nw/template":"2.0.22","@focuson-nw/state":"2.0.22"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.22","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.22","dist":{"shasum":"10ec903bd5d002c0bcc962457bdf7a1d14c76468","integrity":"sha512-p9TFwyVArN1mBcukD8eBp80l7e5DhWSL9zY2il8TlRtfiKdqqpch1z8ipHylVHlr/ioa9MOuHonG7ecdBhcb0w==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.22.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIATJeq/rrz19ev65pwc/UeOEk2M8X466W38NXlXLMffHAiBLnuZBsRyfMUcsANqyAzmmzfrRat/sPBiEH1yeqHc6ig=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLofGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpAUg//SEZnBbUkkBZiXrN1eGLZAfVwNlyHCLnAuvoIoILOcFXw1YYg\r\n4W8LDsRUt5ZsbJK2SReRC3sPChTwidXgfRCaDirQDC6ktdM2Z4zyfTO383uC\r\nrAaLIg1vSugpuWNlgOEULVbCNQRqIvibMJTe9TUABWrTaHppsW0TtPMxwU5W\r\nm0APdjoJlbM3tttBAiWTWhWZoujpS6EPYssqNB7CFiiHsAx4ZujK0BWIkSYj\r\n2vwAwkwDymI8NyZho5iMapQbbKKBli43EozPoHybeLuiX6KpKwKPg+iOQIgo\r\nF8ggIy9Tlwi1qG55YJGPh3vr9/jsnhI5zWoCWy/ExL3kMpJS8kJLMjLdTQXA\r\n1XkeGAsMJnBefMvppT5+qN8KV49aaUKZYBHvlHWFHwHT5hXajR80KB1zFsR/\r\nt753bAtyycjsZj1gq9Z5tyKO4T8gaEpskhqmq6AhxLD4iXJWEWDKTutIs0AV\r\nBztMlGJmkbruTVpvF6borLjet/833YoyU0ofEXF6KNQEsSxasCi9MFNw29SW\r\nH95AuLLoGzmCohYPp1w68WP/30dvFB4lbCCYqsVcX+Pna3CjIAl1G+B3lsNf\r\nzkPpM1YBWFxufVWjnLVtCQ9omu/W9xSW6g+Yec2LbGWnAn++ofRioMeDNsrd\r\nk5CTEZmvpNHLtjdUsFzK5ZJemipk59tVT8A=\r\n=xbsP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.22_1680771014009_0.701353606781371"},"_hasShrinkwrap":false},"2.0.23":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.23","@focuson-nw/template":"2.0.23","@focuson-nw/state":"2.0.23"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.23","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.23","dist":{"shasum":"4874286bf54e314095933d3c5bb85d938560a9fe","integrity":"sha512-3bmNyslL6MO9R0Bh29B9wiiJQIB97oubYJsTacif0V58eSuO4OTfKMZlSagERMeMG/FVMC6wdnKkst0YNIgaCA==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.23.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVrMZAS4MP+GX9qnJ0SJH2EKnufKG3oPfu3gHtVB0ZOgIhAN5+7VJPmyh9jRQ0X/DwJOxtNVhgLhB1CifrYWd99VDu"}]},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.23_1690381008620_0.5406589708109266"},"_hasShrinkwrap":false},"2.0.24":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.24","@focuson-nw/template":"2.0.24","@focuson-nw/state":"2.0.24"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.24","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.24","dist":{"shasum":"18dca578598ce51011d26d520dd70e54b0df3a8e","integrity":"sha512-+/YfeZ3rNBnPEcQW8Al3s97pgcnuvqEGi7ThXv+o3uZ/2p/C3g2vvqD8mPep2ZX5B1t3LLrnfcKoJAmi0NL+lw==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.24.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHh/yAD1YmWEq0nU39uo1f1OuQpq1I2BfBXlwj+q9eMQAiB5c7WUlUMVR7TUnvPVCo4vnu4Zn+TgvgM0Qekk6OBBVw=="}]},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.24_1690383778951_0.9748685697269186"},"_hasShrinkwrap":false},"2.0.25":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.25","@focuson-nw/template":"2.0.25","@focuson-nw/state":"2.0.25"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.25","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.25","dist":{"shasum":"8c24bd8dc454395b9a9c52dd44744d4875a3f5e5","integrity":"sha512-RntOsF1ACTfop5H9OFVyyw5+r2kx14kLsm8YengQ/NDEKH7PcQElOUCxHeCDYX+mTIEZhEbi8qB7VzpUkR8XhA==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.25.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFFiltP7lsmkou8DtvrCI2EGT0rXkk+dYImQUUslOo0+AiAkwVYfNPmjzLgr13aBndKSxdZXE2OyuvQSXu7Xs+fg4A=="}]},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.25_1690391798664_0.6736269992216537"},"_hasShrinkwrap":false},"2.0.26":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.26","@focuson-nw/template":"2.0.26","@focuson-nw/state":"2.0.26"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.26","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.26","dist":{"shasum":"edf532fb5a856cc1d93e04a195fa7a2d7c87cc0b","integrity":"sha512-3b46/RhzzunHJl544QtfPQlVRLkw9n38CGMH3i1xmLvigGS347FfJ44StTTPZiZ3TzdlNdpCSSQidLDyTgSXyg==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.26.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDongyy9+rSq47Zlp9syr7RifacZzZ/RqSIReBVFdDkKAiB+lD054HL8tIwW2rBPQTKGoSYSCsF3fgzTfI15/vGnoA=="}]},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.26_1690651199564_0.3309847962575223"},"_hasShrinkwrap":false},"2.0.27":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.27","@focuson-nw/template":"2.0.27","@focuson-nw/state":"2.0.27"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.27","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.27","dist":{"shasum":"cb5902c9bf37b583d5221f356e155eb704bde007","integrity":"sha512-0wYyV1YkzKYL0oYyDTz0/UCFa+BQ04v3y09fIx0eaFECkXQBvNFvpkGvPCUIJZzOMQLSXIeBDRJGjJZE6bwuew==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.27.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGux7b1H7rnEnjBVTfOzGPYvdEaSDN0c7F/6OcOwA09pAiB+qHZqBooKW4NOPt+MgYQw7eoCkZ7N9OItzeoF4EAdXw=="}]},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.27_1690652487658_0.21544902427745716"},"_hasShrinkwrap":false},"2.0.28":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.28","@focuson-nw/template":"2.0.28","@focuson-nw/state":"2.0.28"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.28","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.28","dist":{"shasum":"1d6cb3ac8ff8bf31f2a4d86ad5e88f2491f0072f","integrity":"sha512-XKGXKQJdvYgzwuhglV1udgI9TI/WC578O2OS96I2TsYIa9Hd796AuR7TVQgRLDu8V+zujL5n94tSk68aU6bnDQ==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.28.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDG8xBjFeydyPI9zEl4qp3iSNBy5jpj3s+vLR1xKYo+wIhANUWL1gy8EhxlI8QF3ga5kuKTZmYXD0gOYoGXn0CHc1w"}]},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.28_1691759194267_0.41194012326719354"},"_hasShrinkwrap":false},"2.0.29":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.29","@focuson-nw/template":"2.0.29","@focuson-nw/state":"2.0.29"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.29","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.29","dist":{"shasum":"148be00f133c8c335d0279e88b315a540457ce4f","integrity":"sha512-3macDvoh9RDpG1POvOy4UBnJ87uqJH4/h5Xt32B4GUXDmxI0v4HDsqLoy0tvsw+8uvM4EosuekoVtc4HJcbJZQ==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.29.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjyoVK9wQpS9IPAeoikV1iWmKnPy1iO8OJG727m4Vk+wIhANpzDHJN7AGpLQoCMqikDKpUD3drJQb7T6OBKbbXY6Jr"}]},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.29_1692181273620_0.41679634409536503"},"_hasShrinkwrap":false},"2.0.30":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.30","@focuson-nw/template":"2.0.30","@focuson-nw/state":"2.0.30"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.30","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.30","dist":{"shasum":"54e4d93a9e2c24eef4ec157667639b94b0cc4b20","integrity":"sha512-twZB1A+DukPxjubns1JiBpsK/OF7BbI6hzkd3vJ/1TF4ET7EWuJZcyjNq01ndZLkB83cKE9HtTtcNfwzsOF1eA==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.30.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIET0OK0hOHuLS8suru1P7ghYuuWCkxDRB/srdzbbCPZSAiEAgK7qXIENQkX21LQRTafZpY9KTzhnAMuztgVzMTPu9+Y="}]},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.30_1692281291457_0.3827244976166366"},"_hasShrinkwrap":false},"2.0.31":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.31","@focuson-nw/template":"2.0.31","@focuson-nw/state":"2.0.31"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.31","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.31","dist":{"shasum":"2579906e1a57949c089344291576b7cc7a4347c7","integrity":"sha512-FR8g1nINs3DoSJ+e4KZ1gcRRLO0uxyFRcBMoxvBsma2NRPXRLsPbTqvwlejybRH0PMTCawisx24eWKOmIOhKkA==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.31.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBAkTt2QOhX0jHhz89xFOUkq7HOaHoCZynaO0A7Q87WAAiA1DVrIkd/0SBGXA+E1qiEM/n6MEzu+myNGfRB7jfUhzg=="}]},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.31_1692295838591_0.5659576642387034"},"_hasShrinkwrap":false},"2.0.32":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.32","@focuson-nw/template":"2.0.32","@focuson-nw/state":"2.0.32"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.32","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.32","dist":{"shasum":"7cfa5a250b7427ebae45fe54cc1d4792bdaf6383","integrity":"sha512-dbvoMjdGteZIyqKakSPcU5fdf4CFwbFKshYw+KORWxO09JQu1XgNtstr9NElahATl/74ZbVSskE4K/tJYzkPMg==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.32.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFuSXn0+4DU+A6vKCcnw67jRr1PqBii1nax0yuCXLrGAIhAI+YhK4c3fIy6b6wq/QZvqCW6ZYhirtRBtGMFm0DvP8r"}]},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.32_1692374406796_0.3311586563643052"},"_hasShrinkwrap":false},"2.0.33":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.33","@focuson-nw/template":"2.0.33","@focuson-nw/state":"2.0.33"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.33","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.33","dist":{"shasum":"826cfb5d19c6bfd9853c85d0a307d0e5bc7e817c","integrity":"sha512-cM3Q8tp93m6XS70GzVP/imimJqPRXXnfrShqgZPaNrbPeeNPIAvnkQi/IZ9EHYnfoey/gIT8EbSpltfHyJnANg==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.33.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICpn7sBQ7CAAdYY7WXj/t5mZzWjYDcSt0asARFHUDqRwAiEA22vptA6lqbHSrQpz2RVKJTdNTgqZSRYKUJWOivJkKMw="}]},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.33_1692700524516_0.646713227980686"},"_hasShrinkwrap":false},"2.0.34":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.34","@focuson-nw/template":"2.0.34","@focuson-nw/state":"2.0.34"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.34","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.34","dist":{"shasum":"cd3837d09b7a90316cae2ba3c2196a5a77dd3286","integrity":"sha512-jdMa4LYoTiPuHxJfTQunTQdN/3jS2z4Gz0eCnQe8WPejkuDQ91uIi4EKUD3Xca77kyb3R29SNob2EA6it91bgw==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.34.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDd5ItxKev+lHMFVnB3c4js2hreBTZ03fYmXJ97Zz88gAIgQ1tJEaN7YXWEoP7yyOU8ZzFda3rMCPJkDvFXN43DFTA="}]},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.34_1692782403634_0.2639746725058385"},"_hasShrinkwrap":false},"2.0.35":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.35","@focuson-nw/template":"2.0.35","@focuson-nw/state":"2.0.35"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.35","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.35","dist":{"shasum":"b4a67c6e6f5791523f2a822ea147017e0d4c3216","integrity":"sha512-iKszy4aj0yQ4eMLapxnkQ/STn9P5g8crLkH7A5+Y5th2s1WY5hUTgGO3C/SSW7WFk+x7DFb8yrgdco02m5XOcQ==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.35.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDjbe3hw6nuZZRzDXBHGddYYR/LmHbMUp2gYgmkEGK20AiBn6FRxLVRPGqSqzmzecUmhdjOEfRjqRY8UCpN2hbfVGg=="}]},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.35_1693491693658_0.6526419356013238"},"_hasShrinkwrap":false},"2.0.36":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.36","@focuson-nw/template":"2.0.36","@focuson-nw/state":"2.0.36"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.36","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.36","dist":{"shasum":"e0d4203cf28a27e493ddcc0af6b68cbfd80e5dec","integrity":"sha512-RoMOVzYfz10vq4GBKyBweh2CqIswECqLTuq7/+s+Io5KAKtKK7tfdRR3b6QM2VjzL4J9oIrKGM9UmAjCZBMe8A==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.36.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGIa8iKZYZnGfxnYcW/SkVV5c63G43En5leXlnOyP8tuAiAuru+vv7UjaSSlOAo4/p89aMYoroBP8HE4zK+VadpdqQ=="}]},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.36_1698333374285_0.9691003065207697"},"_hasShrinkwrap":false},"2.0.37":{"browserslist":{"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"],"production":[">0.2%","not dead","not op_mini all"]},"dependencies":{"@focuson-nw/lens":"2.0.37","@focuson-nw/template":"2.0.37","@focuson-nw/state":"2.0.37"},"devDependencies":{"@types/node":"^14.14.7","npm-check-updates":"^10.0.0","typescript":"^4.1.5","@testing-library/jest-dom":"^5.11.5","@testing-library/user-event":"^12.2.0","@types/jest":"^26.0.15","jest":"^26.6.0","ts-jest":"^26.4.4"},"keywords":["functionalprogramming","lens","optics"],"license":"MIT","main":"dist/index","types":"dist/index","repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"scripts":{"test":"jest --config jest.config.json","test:watch":"npm run test -- --watch"},"version":"2.0.37","template":"noreact","description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","details":{"ideify":true,"publish":true,"links":["@focuson-nw/lens","@focuson-nw/template","@focuson-nw/state"],"extraDeps":{},"extraDevDeps":{},"tsc":true},"name":"@focuson-nw/fetcher","_id":"@focuson-nw/fetcher@2.0.37","dist":{"shasum":"9f704eeab4f056c7f8d407f575cec50eca240bb3","integrity":"sha512-B8w0VYu7s14LH6MFf3ln1yJCBfUOKmSD1DV+z40N2zzfJyy3sPiHexcp29Iy3FFmjJGNIlPIztI24bgITD6ijg==","tarball":"https://registry.npmjs.org/@focuson-nw/fetcher/-/fetcher-2.0.37.tgz","fileCount":23,"unpackedSize":66457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJDxvRJUE9gooo/7I9fbu5ITzF8aO7TdM+eVt9YAXTGgIhANqMWeDnHQ310zqk0zOSSZteyD3Cg5A+B95VAdFBTgmQ"}]},"_npmUser":{"name":"lt543","email":"lewisthornton@btinternet.com"},"directories":{},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fetcher_2.0.37_1698683493559_0.5405722103540445"},"_hasShrinkwrap":false}},"time":{"created":"2022-12-09T11:51:50.235Z","1.44.0":"2022-12-09T11:51:50.546Z","modified":"2023-10-30T16:31:34.038Z","2.0.1":"2023-01-10T12:27:23.290Z","2.0.2":"2023-01-10T15:01:21.778Z","2.0.3":"2023-01-13T14:29:46.711Z","2.0.4":"2023-01-16T15:04:47.696Z","2.0.5":"2023-01-18T12:03:03.157Z","2.0.6":"2023-01-18T13:21:56.204Z","2.0.7":"2023-01-18T13:31:45.724Z","2.0.8":"2023-01-18T13:43:27.596Z","2.0.9":"2023-01-18T14:52:02.797Z","2.0.10":"2023-01-26T11:38:49.121Z","2.0.11":"2023-01-27T16:38:29.405Z","2.0.12":"2023-01-30T12:58:00.395Z","2.0.13":"2023-02-01T15:58:40.570Z","2.0.14":"2023-02-01T16:09:58.965Z","2.0.15":"2023-02-14T15:47:39.106Z","2.0.16":"2023-03-24T14:02:25.421Z","2.0.17":"2023-03-24T15:13:32.248Z","2.0.18":"2023-03-24T15:15:05.551Z","2.0.20":"2023-03-27T10:43:58.033Z","2.0.21":"2023-04-04T11:51:47.930Z","2.0.22":"2023-04-06T08:50:14.207Z","2.0.23":"2023-07-26T14:16:48.851Z","2.0.24":"2023-07-26T15:02:59.098Z","2.0.25":"2023-07-26T17:16:38.819Z","2.0.26":"2023-07-29T17:19:59.720Z","2.0.27":"2023-07-29T17:41:27.807Z","2.0.28":"2023-08-11T13:06:34.616Z","2.0.29":"2023-08-16T10:21:13.825Z","2.0.30":"2023-08-17T14:08:11.638Z","2.0.31":"2023-08-17T18:10:38.819Z","2.0.32":"2023-08-18T16:00:07.069Z","2.0.33":"2023-08-22T10:35:24.664Z","2.0.34":"2023-08-23T09:20:03.871Z","2.0.35":"2023-08-31T14:21:33.820Z","2.0.36":"2023-10-26T15:16:14.526Z","2.0.37":"2023-10-30T16:31:33.759Z"},"maintainers":[{"name":"jitarani","email":"jitarani.panigrahi@infosys.com"},{"name":"phil-rice","email":"phil.rice@validoc.org"},{"name":"lt543","email":"lewisthornton@btinternet.com"}],"description":"Used when we want to fetch data from APIs in order to display it. This provides a declarative and composable approach to state management","keywords":["functionalprogramming","lens","optics"],"repository":{"type":"git","url":"https://github.com/LewisT543/focuson-nw.git"},"license":"MIT","readme":"# State fetch\n\nA common pattern in GUIs is 'showing the data revealed by an API'. For example we might show the data in shopping site,\nor show account data about customers.\n\nWhen doing this typically there is a navigation area which determines what is being looked at, and then multiple places\nthat show information about what is being looked at. Each time the state is changed a decision needs to be made about\nwhether to get more information from the backing API(s).\n\nThe core idea is to have all this done as part of the 'flux loop'. So the components communicating by setting parameters\nin the state such as 'the selected thing' and possible a 'tag' that explains how to load the data. Thus the components\ndon't 'call actions' or anything\n\nThis is currently under heavy development: fetchers are being added, signatures being changed, in order to make the\nlibrary 'more polished'\n\n# Key Concepts\n\n## State\n\nThe state is just a blob of Json. It can come from anywhere. It could easily be the state of the '@focuson-nw/state'\nproject, but can also be 'just a javascript object'.\n\nIn the state we record 'what we want to be loaded' and 'what we have loaded'. The job of this project is to make that '\ndeclarative'. So we just 'change what we want to be loaded' and the correct things are loaded.\n\n## Fetchers\n\nA Fetcher is responsible for describing what will be fetched from the back end. It doesn't actually fetch it, but the\nmethod applyFetchers(...)\nwill go and do the fetching. This separation makes it really easy to test what is going to happen.\n\n```typescript\n/** The fetcher is responsible for modifying state. It is effectively a PartialFunction */\nexport interface Fetcher<State, T> {\n    /** This works out if we need to load. Typically is a strategy */\n    shouldLoad: (newState: State | undefined) => boolean,\n    /** This provides the info that we need to load. The first two parameters can be passed to fetch, and the third is how we process the result. Note that it is hard to guarantee that the json is a T, so you might want to check it!*/\n    load: LoadFn<State, T>,\n    /** For debugging and testing. It's idiomatically normal to make this the variable name of your fetcher, or some other description that makes sense to you */\n    description: string\n}\n\nexport interface LoadFn<State, T> {(newState: State | undefined): LoadInfo<State, T>}\nexport type LoadInfo<State, T> = [RequestInfo, RequestInit | undefined, MutateFn<State, T>]\nexport interface MutateFn<State, T> {(s: State | undefined): (status: number, json: T) => State}\n```\n\nA PartialFunction is a function that might not be callable. You need to call the 'shouldLoad' method first to see if the\nload function is safe or sensible to load.\n\n* shouldLoad. Given a state will determine whether this fetcher should say 'load it'\n* load. Returns a function that has three results. The first two can be passed as in to 'fetch' and the last one is 'how\n  do I update the state with the results of the loaded data'\n\n# Fetchers\n\n## How to use fetchers\n\nTypically if you are using react you have a 'start react place' where you define what is renderered. You include in this\na fetcherTree which is effectively a collection of fetchers, and this method ochestrates things. So mostly you don't '\nuse' fetchers. You 'set them up to describe how to load stuff' and then have some selection state that you 'set' in your\ncomponents. The infrastructure works out what to be loaded in the same way that the react infrastructure is given a\ndescription of what to display and works out what to actually change\n\n# How to test fetchers\n\n## Low level 'what would load tests'\n\nFor many fetchers we will have a test that says 'given this state the fetcher would load this', and other tests that\nsay 'given this state the fetcher doesn't load. Often these tests are one line long.\n\n## Mid level 'what would load tests' on the fetcher graph\n\nAgain typically we have fetcher graph. We write tests that 'set up a state' and then ask the question 'what would be\nloaded'. These are our 'unit tests' which are cheap to write, quick to execute and read good. They allow us to check all\nthe permutations we are interested in. These test things like\n'do we load from the correct url', 'are we only loading things when we need to load them', 'is the thing we are loading\nbeing added to the correct place.'\n\n## Contract tests\n\nI test to have a contract test for each 'url pattern' that I use that checks it actually loads what we want. (i.e. 'load\nthis resource', 'list this resource').\n\n## Smoke tests\n\nI'll have a very small number of smoke tests that run against 'the real world' which can either be an acceptance\nenvironment, or against the current production systems (that's a policy decision that the project makes. Which ever\nchoice they make they typically regard the other choice with horror). In a payment application they might log in, move\none euro from an account to another... but no permutations or unhappy paths. These are just checking that the\nconnectivity and the most critical paths work. The permutations and contracts are validated by much lower level, faster,\ncheaper and better tests.\n\n# Predefined fetchers\n\n## Fetcher when undefined\n\n```typescript\nexport function fetcherWhenUndefined<State, Child>(optional: Optional<State, Child>,\n                                                   reqFn: ReqFn<State>,\n                                                   description?: string): Fetcher<State, Child> { /* */\n}\n\nexport interface ReqFn<State> {\n    (newState: State | undefined): [RequestInfo, RequestInit | undefined] | undefined\n}\n```\n\nThis is a simple fetcher that uses the parameter 'lens' to focus in on a child and if that child is not present will\nload it. This is a great fetcher to use when you just 'need some data at the start' such as 'reference data'. The\nparameter 'optional' points at the item that is to be loaded. The RegFn returns the url and any other 'stuff' (such as\nmethod or headers) needed to load the data. As every the description is for debugging and tests.\n\n### Example\n\n```typescript\ninterface State {\n    initialData?: Data\n}\n\nconst loadInitialData = fetcherWhenUndefined<State, Data>(identityOptics<State>().focusQuery('initialData'), s => [\"http://the/url\", {}])\n```\n\nOften applications I work with have a 'sitemap' end point that details how to find things. To use it\n\n```typescript\nconst loadSiteMapF = fetcherWhenUndefined<State, SiteMap>(\n    stateToSiteMapL,\n    (s) => [\"someSitemapUrl\", undefined], \"loadSiteMapF\");\n```\n\n## fetchAndMutate\n\nThis is a 'composed fetcher'. You give it a fetcher and a function, and it first does whatever the raw fetcher would do,\nand if the fetcher goes to get data, it is mutated by the function.\n\nExamples of where you might want to use this\n\n* You want to load something but it is in the wrong format, so the mutate function puts it in the right state\n* You want to load a thing that can be navigated (a sitemap, a list of products...) and then want to set up the\n  selection state so that the first thing is the selected thing\n* Every time you load a new user you clear down the state. This is great with 'login' logic.\n\n## loadSelectedFetcher\n\n```typescript\n\nexport const loadSelectedFetcher = <State, Holder, T>(tagFn: (s: State) => (string | undefined)[],\n                                                      holderPrism: DirtyPrism<Holder, [string [], T]>,\n                                                      target: Optional<State, Holder>,\n                                                      reqFn: ReqFn<State>,\n                                                      description?: string): Fetcher<State, T>\n{}\n```\n\nImagine we have a shopping application. We have things like 'the selected department - books/washing machines/...',\nand 'the selected product'. In this world we want to have a selection state that details these things, and a place in\nthe state that is our selected item (the target). This fetcher is responsible for loading the target when the selection\nstate varies.\n\n### Generics\n\n* `State` is the type of the full state. This fetcher know nothing about it, other than 'there is one'\n* `Holder` When we load the thing, we need to store things about it (such as the current value of the tags). This is\n  stored in a Holder. There is a 'default holder' called `Holder<T>` but you can use your own to make the names nicer\n* `T` The type that will be fetched.\n\n### Parameters\n\n* `holderPrism: DirtyPrism<Holder, [string [], T]>`. DirtyPrisms 'Look scary' but this is actually just a\n  constructor/destructor. Given a `Holder` it know how to rip it apart into the list of tags and a T, and given a list\n  of tags and a T it knows how to make the holder.\n* `tagFn: (s: State) => (string | undefined)[]` given a State, this rips out the bits of data that we care about. If\n  they change then the `loadSelectedFetcher` will fetch something. In the example we are discussing this would\n  return `['selectedDepartmentId', 'selectedProductId'`. Note that it returns the current values of these, not their\n  names\n* `target: Optional<State, Holder>` where to put the loaded target\n* `reqFn: ReqFn<State>` how to load the target\n* `description` for tests and debugging\n\n### Example\n\n```typescript\nconst loadApiF: Fetcher<State, Api> = loadSelectedFetcher<State, ApiData, Api>\n((s: State) => [s.selState?.selectedEntity, s.selState?.selectedApi],\n    stateL.focusQuery('apiData'),\n    apiDataHolder('H/ApiData'),\n    s => [`http//someDomain/api/${s.selState.selectedEntity}/api/${s.selState.selectedApi}`],\n    \"loadApiF\")\n\nexport interface State {\n    selState: SelectionState\n    apiData?: ApiData,\n}\n\nexport interface SelectionState {\n    selectedEntity?: string,\n    selectedThing?: string,\n    selectedApi?: string\n}\n\nexport interface ApiData {\n    tags: string[]\n    api: Api, //the item being loaded\n    source?: string[], //other data we might want to load in the future that is about the api\n    status?: string,\n    desc?: string\n}\n\nfunction apiDataHolder(description: string): DirtyPrism<ApiData, [string[], Api]> {\n    return dirtyPrism(ad => [ad.tags, ad.api], ([tags, api]) => ({tags: tags, api: api}))\n}\n```\n\nTo use this you just need to set the selection state, and the infrastructure does the rest. If the\ntags (`selectedEntity` & `selectedApi`) change then in the main state the `apiData` will be reloaded. Note the pattern\nthan dependant data about the api (metadata that will be loaded by other fetchers if needed)\nis part of the ApiData so that it is always cleared if a new api is loaded.\n\n\n## ifEEqualsFetcher\n\nWe often only want data fetched if we are displaying it. Examples of this include 'status data', 'the selected item', 'the user history'. For\nthis kind of scenario we have the 'ifEqualsFetcher'.\n\n```typescript\nexport function ifEEqualsFetcher<State>(condition: (s: State) => boolean, fetcher: Fetcher<State, any>, description?: string): Fetcher<State, any> {}\n```\nThe fetcher is only invoked if the condition is true. Often the condition will be something like 'is the selected radio button equal to someValue'.\n\n\n## radioButtonFetcher\n@Deprecated\n\nWe will probably delete this as the ifEqualsFetcher seems to do this job better and simple\n\n```typescript\nfunction radioButtonFetcher<State>(\n    desiredRadioButton: (s: State) => (string | undefined),//The desired tag.\n    actualRadioButton: Optional<State, string>, // this is the tag that names the currently actually selected radio button\n    whichFetcher: (tag: string) => Fetcher<State, any>,\n    description?: string\n): Fetcher<State, T>\n```\n\nOften our gui wants to load different aspects of a thing. For example when looking at a user we might want to go get\ntheir profile, their order history, their favourite list. In this scenario only one is being shown at once so we have\na `radioButtonFetcher` that works out what to show based on the desiredTag.\n\nThe react code that displays the component would be using the 'actual radio button' to select which view to show\n\n### generics\n\n* `State` The `main state`. The fetcher knows nothing about this, other than that it exists\n\n### Parameters\n\n* `desiredRadioButton: (s: State) => (string | undefined)` A function that given a state tells the fetcher what radio\n  button the user wants\n* `actualRadioButton: Optional<State, string>` This is the radio button that is 'currently loaded'. It is compared with\n  the desiredRadioButton\n* `whichFetcher: (radioButton: string) => Fetcher<State, any>` Given a radio button\n* `description?: string`\n\n### Example\n\n```typescript\nconst loadApiChild = radioButtonFetcher<State>(\n    s => s.selState?.selectedRadioButton,\n    identityOptics<State>().focusQuery('radioButton'),\n    fromTaggedFetcher({'desc': loadApiDescF, 'src': loadApiSrc, 'status': loadApiStatus}),\n    \"loadApiChild\")\n\nexport interface State {\n    apiData?: ApiData,\n    selState: SelectionState,\n    radioButton?: 'desc' | 'src' | 'status'\n}\n\nexport interface SelectionState {\n    selectedRadioButton?: string,\n}\n```\n\nIn this example when the code sets the `s.selState?.selectedRadioButton` this is compared with the `s.radioButton` and\nif it varies the appropriate\n`fromTaggedFetcher({'desc': loadApiDescF, 'src': loadApiSrc, 'status': loadApiStatus}),` is fetched.\n\n# FetcherTree\n\n```typescript\ninterface FetcherTree<State> {\n    fetcher: Fetcher<State, any>,\n    children: FetcherChildLink<State, any>[]\n}\n\ninterface FetcherChildLink<State, Child> {\n    lens: Lens<State, Child>,\n    child: FetcherTree<Child>\n}\n```\n\nOne fetcher on its own is usually not very useful. Typically we have to get all sorts of things from the back end. To\nhandle this we put fetchers into a fetcherTree. This is just a collection of fetchers with the nice feature that it\ncontrols the order the fetchers are checked. Things higher up the tree are checked (and therefore loaded) before things\nlower down the tree. The lens in the `FetcherChildLink` is just a way to compose and reuse fetchers: usually it is the '\nidentity lens' as often all fetchers are based of 'State'.\n\nIn simple applications we probably have a single fetcher tree. In complex ones we will often make subtrees and stich\nthem together. This allows the tests for the subtrees to be independent of the rest of the world.\n\n## Example\n\n```typescript\n\n\nconst loadApiF: Fetcher<State, Api> = loadSelectedFetcher<State, SelectionState, ApiData, Api>(\n    stateL.focusOn('selState'), apiDataHolder('H/ApiData'))((sel: SelectionState) => [sel?.selectedEntity, sel?.selectedApi],\n    stateL.focusQuery('apiData'),\n    loadFromSiteMap((siteMap, sel) =>\n        sel.selectedEntity && sel.selectedApi && siteMap[sel.selectedEntity].api[sel.selectedApi]._links.self),\n    \"loadApiF\")\n\n\nconst loadThingF: Fetcher<State, Thing> = loadSelectedFetcher<State, SelectionState, Holder<Thing>, Thing>(\n    stateL.focusOn('selState'), holderIso<Thing>('H/Thing'))(s => [s.selectedEntity, s.selectedThing],\n    stateL.focusQuery('thing'),\n    loadFromSiteMap((siteMap, sel) => sel.selectedEntity && sel.selectedThing && siteMap[sel.selectedEntity].things[sel.selectedThing].href),\n    'LoadThingF')\n\nlet apiDataL: Optional<State, ApiData> = stateL.focusQuery('apiData')\n\nconst loadApiDescF: Fetcher<State, string> = fetcherWhenUndefined<State, string>(\n    apiDataL.focusQuery('desc'),\n    loadFromSiteMap((siteMap, sel) => sel.selectedEntity && sel.selectedApi && siteMap[sel.selectedEntity].api[sel.selectedApi]._links.description),\n    \"loadApiDescF\")\n\nconst loadApiStatus: Fetcher<State, string> = fetcherWhenUndefined<State, string>(\n    apiDataL.focusQuery('status'),\n    loadFromSiteMap((siteMap, sel) => sel.selectedEntity && sel.selectedApi && siteMap[sel.selectedEntity].api[sel.selectedApi]._links.status),\n    \"loadApiStatus\")\n\nconst loadApiSrc: Fetcher<State, string[]> = fetcherWhenUndefined<State, string[]>(\n    apiDataL.focusQuery(\"source\"),\n    loadFromSiteMap((siteMap, sel) => sel.selectedEntity && sel.selectedApi && siteMap[sel.selectedEntity].api[sel.selectedApi]._links.source),\n    \"loadApiSrc\")\n\n\nconst loadApiChild = radioButtonFetcher<State, ApiData>(\n    s => s.selState?.selectedRadioButton,\n    identityOptics<State>().focusQuery('radioButton'),\n    fromTaggedFetcher({'desc': loadApiDescF, 'src': loadApiSrc, 'status': loadApiStatus}),\n    \"loadApiChild\")\n\n\nconst demoTree: FetcherTree<State> = fetcherTree(\n    loadSiteMapF,\n    child(loadThingF),\n    child(loadApiF,\n        child(loadApiChild)))\n```\n\n### Testing\n\nThe key to testing is the `wouldLoad` function\n\n```typescript\nfunction wouldLoad<T>(ft: FetcherTree<T>, state: T | undefined, depth?: number): WouldLoad[] \n```\n\nThis is fantastic in tests\n\n```typescript\n    it(\"when sitemap loaded and api not loaded but radio selected\", () => {\n    expect(wouldLoad(demoTree, {\n        sitemap: exampleSiteMap,\n        selState: {selectedEntity: \"be\", selectedApi: \"a1\", selectedRadioButton: \"src\"}\n    })).toEqual([\n            {fetcher: loadSiteMapF, load: false},\n            {fetcher: loadThingF, load: false},\n            {fetcher: loadApiF, load: true, reqData: [\"/be/a1/api\", {}]},\n            {fetcher: loadApiChild, load: true, reqData: [\"/be/a1/source\", {}]}\n        ]\n    )\n})\n```\n\nHere we have our `fetcherTree` called `demoTree`. We give it a state and `wouldLoad` tells us what it would load.\n\n`WouldLoad` allows us to worry about 'what should happen'. If we have tested the individual fetchers, we can now test\nthe orchestration of those fetchers assuming that they work. This allows us to write lots of permutations covering lots\nof possibility cheaply and quickly without worry about test data management.\n\nNote that when you use this recommended style of testing, you do need to test the fetchers as well\n","readmeFilename":"README.md"}