{"_id":"@amphibian/server-lilypads","_rev":"24-8d3544a8e08c6c380d626309a46bd91b","name":"@amphibian/server-lilypads","description":"blazing fast @amphibian/server requests","dist-tags":{"latest":"3.1.0"},"versions":{"1.0.0":{"name":"@amphibian/server-lilypads","version":"1.0.0","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"378e0f3085db03ffa6c83c90a046587bf192d853","_id":"@amphibian/server-lilypads@1.0.0","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-i3m5Ic1cL+h17qogc+zbHHDdA6R1s0UY1OmOcBmMHRwIfxFivnwsGTCUB6H8S7wGszHiE08h6rD71I3syaxn/Q==","shasum":"eecb815272cce3a82c7f85785c42ba31b7952cf7","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-1.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDANFxrzCMecZMpms3ZpV6q5pGHr/WAjWZnIcqV75uIHwIgdrrtczvtC1v+k/IVJo+w/i4w9OBHOSb814P3risMB6w="}]},"maintainers":[{"name":"thomaslindstr_m","email":"t@hom.as"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads-1.0.0.tgz_1509614349115_0.49588343338109553"},"directories":{}},"1.0.1":{"name":"@amphibian/server-lilypads","version":"1.0.1","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"192133da500de2c24876bc8e2a7108c43288795c","_id":"@amphibian/server-lilypads@1.0.1","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-ruDafxcIisZYfAU1/4K6jYQMFnM7Ru45K6Ysz9koUMIdWIITewsE0HVbU7qFNHHG3nDGVVbldw504urp+de/3A==","shasum":"cf1ceaf5cc647eb905829782c9c656839986a0c0","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-1.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIES3Z+sBe0DDDKUmPbHwDOzcE1GonZ2JMhMjKqsA4rx7AiEA5U9HsnmyKAy+e1fgRsWfNChiwWEDi1o9abVZJIdb0/A="}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m2"},{"email":"t@hom.as","name":"thomaslindstr_m"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads-1.0.1.tgz_1509616900040_0.8561396920122206"},"directories":{}},"1.0.2":{"name":"@amphibian/server-lilypads","version":"1.0.2","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"8e827872022062b1c6b4d1868b9cd3ebeb2d6ee0","_id":"@amphibian/server-lilypads@1.0.2","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-r1QULSThnX/9i34u1fOMlG5tamNMiWuD6iqWATYOL0QcF1ckS+wFe+98tP2QvOxqn49g/azQNWKv8N6ce+wZcA==","shasum":"0f407a051c8d01aba8b7f9168ca8d525528652d3","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-1.0.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdfJqlVN9OqOIO4qWwn490OAFLV9qSK6558RdHh4FErgIgBJ43n7K4ykW9xFbaGGI8UWsitaWaYRDXJU7fsKdj2E0="}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m2"},{"email":"t@hom.as","name":"thomaslindstr_m"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads-1.0.2.tgz_1509625905914_0.8670912857633084"},"directories":{}},"1.0.3":{"name":"@amphibian/server-lilypads","version":"1.0.3","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"c32bbabf7c5a2c848d782e9a7818f7d68a86087d","_id":"@amphibian/server-lilypads@1.0.3","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-5Is+1Gw8EJJj0Er3MaHrTbbxeYTn7n/VmVJ895Z3/G8cBvTSX6ujaeudhIb9OSDq40b08X+KmygxEIHcSx7lwA==","shasum":"928e060c0160a0535b599292df1a55b2a534e1cb","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-1.0.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAnCz6KzHszqOI7Ny2hZnUNwFf5ai3ArXt1J4frN7/hgIgQdcx4v/ib/BoR/M4FHMM7UK/jbM/WkxwMuArCT3Sdic="}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m2"},{"email":"t@hom.as","name":"thomaslindstr_m"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads-1.0.3.tgz_1509626577099_0.20864907349459827"},"directories":{}},"1.0.4":{"name":"@amphibian/server-lilypads","version":"1.0.4","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"d17cc17ba3ba2ee8457d329679a28a5eb4a2c7c8","_id":"@amphibian/server-lilypads@1.0.4","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-KBflsEMHH8LI9TJBTI/Z55Mwko+bEOuMabAgXL81AabJA2febnLQdjnlKFLEb1a0dE4jth2BIAkzGYgHyQFULA==","shasum":"67ecc4e27f08ea10b2523af28cfa5257b60df7a0","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-1.0.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJzgIm48XeSSIUn4ogL1/DyUb5RRov533Dmo9nDoNhrgIhAIFuFzPRQa/oqz9LVdisZ8T9bKIEXQX+vxaRKHwIp3nE"}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m2"},{"email":"t@hom.as","name":"thomaslindstr_m"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads-1.0.4.tgz_1509718033196_0.7407901419792324"},"directories":{}},"1.0.5":{"name":"@amphibian/server-lilypads","version":"1.0.5","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"a88dd19b3634a05141d6ea4ca2fd4ac3fea86c52","_id":"@amphibian/server-lilypads@1.0.5","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-vHUuy0nOQfBAbYbzlNhyJRSXpfKIeRFxHk1m9iPr9pCCGfNEzcJ6VO2GNzFNk9ly6TZdF4Ox6Q7bKje/C810cg==","shasum":"e72de68b0d38753f7ef8093a213d802677c48423","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-1.0.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDd2xqLwe+nmgbW6KTfDsmtWEwD6yr9MaI8QRSDMhyOJAIhAKYPwFkKNpNVmQgHoaRWP0zz+V6aBiI5BqBIAWCOyfZy"}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m2"},{"email":"t@hom.as","name":"thomaslindstr_m"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads-1.0.5.tgz_1509832920968_0.37431828980334103"},"directories":{}},"1.0.6":{"name":"@amphibian/server-lilypads","version":"1.0.6","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"38e316f0e9606f098fce4df6afe09d50d9f05515","_id":"@amphibian/server-lilypads@1.0.6","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-/Ad+0rdOXpN6nb3am3Ul/z6yAjMFd0HhqLnmFc1BBQA/qftCkyR7PkRwreRcrRbd3iYHuAaPahj18jwJpMDnOQ==","shasum":"1b0d76681ee3b473e8c93525dae0c37054b0adfa","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-1.0.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFpexzPqruq1yseIrgEYaHmzaiWTfAwuAAeGLA3WbpWVAiBvaCfwpwxZ0XNYjzcgWYESnkXKB5NT5NFTMFvI/jthJA=="}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m2"},{"email":"t@hom.as","name":"thomaslindstr_m"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads-1.0.6.tgz_1510190718619_0.16166708758100867"},"directories":{}},"1.0.7":{"name":"@amphibian/server-lilypads","version":"1.0.7","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"621a71ef49aaddba23acf636251a5cc755fdd00b","_id":"@amphibian/server-lilypads@1.0.7","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-FW0IxMEhoE9QWhhJ7q5Xl7UvcfBpkw4XzoWbnQ2tsmDHPZV3x56c1Go3oHIorZLtdHl005L7V5wV9k66crpoQw==","shasum":"e0d106ff87fa27c525c036ce1b17a439f1a3d1ed","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-1.0.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBUvxs0QfniaWN7/l/qdW+jgNCl4brcVOiqTKR/jGpYFAiBGooQKaYuwqKPdbAk2cjHal574bnUENtezKB+zebeWqA=="}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m2"},{"email":"t@hom.as","name":"thomaslindstr_m"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads-1.0.7.tgz_1512514570177_0.15935800224542618"},"directories":{}},"1.1.0":{"name":"@amphibian/server-lilypads","version":"1.1.0","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"89328d4dbfe8bb8c4c4e997850e70182b0f5b665","_id":"@amphibian/server-lilypads@1.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-yqsRUcYYl0Okc3oH9bf93/elIyZ73gcU0x6Q5TBJvtLoqnwXFKV+qu931Xob7DC8CV64fld8UgO3TUiPQgI6Sg==","shasum":"a875f45cdfe267a4a3199f7f63bb57526347d0f8","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-1.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmbMiCDmLE5uvKwB5+jZASbnWPkFcMqvR4BdJ56CVzjAIge/paFjuN1PREcicQLUHLwYWbFnM2tHYAqqLhNGC9n6o="}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m2"},{"email":"t@hom.as","name":"thomaslindstr_m"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads-1.1.0.tgz_1517249937225_0.5713895238004625"},"directories":{}},"1.2.0":{"name":"@amphibian/server-lilypads","version":"1.2.0","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"0a53f6ff16594bedbdded4fb13640f74b85c1c4c","_id":"@amphibian/server-lilypads@1.2.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-5g5wQ665DLHPDsD8fES+w99vN2K1bxBFBCexL0YY+nQb4jLK9f7mY7ypq6EvJH/2CtWQOelHxmCXfaNG8N3DCw==","shasum":"da7510fad117d39d59c367de73a3ed884218aedf","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-1.2.0.tgz","fileCount":8,"unpackedSize":141741,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEbwgr49PIhKi+6FQUe7nKXMR+yzycAAah+JefEc+cLDAiEA+wxYiIr3UGJrEBK9NcZ8llNie5uDSx58assQyYYrcjY="}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m"},{"email":"t@hom.as","name":"thomaslindstr_m2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads_1.2.0_1519074279694_0.8673489890512973"},"_hasShrinkwrap":false},"1.3.0":{"name":"@amphibian/server-lilypads","version":"1.3.0","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"3c1e429b13c5496e25854654b751d8698fad0547","_id":"@amphibian/server-lilypads@1.3.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-hzxBJCvuYa6lzbdTVdqGCaujeDFTrJqwJN9U31nIYh+L+MnZmrAmVfPz+tibkgWfOhOZRwcYf5t8Xvi8LNLKSw==","shasum":"cdf90f381d014440977f517fd33fe69dcdc9e374","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-1.3.0.tgz","fileCount":8,"unpackedSize":144457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA9V+j4m/MMl81ynkFGTRhsgP5ZJVSGdUY2qdhZGArsIAiEA08WbWAzKT8uTEhZMENNaQw6mQm87dZOhjqF4r2hgfVw="}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m"},{"email":"t@hom.as","name":"thomaslindstr_m2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads_1.3.0_1519084145428_0.9552833572512844"},"_hasShrinkwrap":false},"1.3.1":{"name":"@amphibian/server-lilypads","version":"1.3.1","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"4ed5b2c3b7ac8d77366de9fe7c4be427e97f216d","_id":"@amphibian/server-lilypads@1.3.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-B1fdVMMQFBWwvSmWGqpoFbudGIIdXWImLDwkNcn+5O8qjSTWsZEi11TDku3X03XVZAAXHT/VEUViI3Un5zLXRQ==","shasum":"5abc11c741e58219c66711592e1342be2b65e6c4","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-1.3.1.tgz","fileCount":8,"unpackedSize":144474,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmcFGluB43eLWe/D1//H9BX3COSzlOzhogCPMtlRwrmAIgXDNadRAbmZ9VJ3uqssQaOUJX8g52KKP1E0pFApyqpXA="}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m"},{"email":"t@hom.as","name":"thomaslindstr_m2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads_1.3.1_1519084315281_0.6403311654728172"},"_hasShrinkwrap":false},"1.3.2":{"name":"@amphibian/server-lilypads","version":"1.3.2","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"a2e575041ed9b4a7e5aacde6079555504a8ab94d","_id":"@amphibian/server-lilypads@1.3.2","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-Vri3tL2KWRW3oZTTFJY3SvtCZRiIPngpRK+smPHZmXIJYro88j9D0AXl+nSjjacZjV495EusRsSRqa3kBomxUw==","shasum":"91992c45e95901671db3e7e331ee6b08efda8589","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-1.3.2.tgz","fileCount":8,"unpackedSize":145676,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFHMZKiQxmj62ToEBCmD5MPsMwX75G2ORMfJOKlMwStXAiAoJxG7Wd+2JR85JYc5px39ReGza41vWmdVWsjNlV1hEA=="}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m"},{"email":"t@hom.as","name":"thomaslindstr_m2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads_1.3.2_1519084601479_0.01772653530199575"},"_hasShrinkwrap":false},"1.3.3":{"name":"@amphibian/server-lilypads","version":"1.3.3","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"e8debeac49427e323df11df0e957d89f97e0c95c","_id":"@amphibian/server-lilypads@1.3.3","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-3igvIRWDFchWv8q6lly+Dgei+3uWFSvxh+MoIeAjmWnlIaaG9Uja88+NiUIMP3+mf3XY9s/Pt8Bmyzzzz3Nqag==","shasum":"e95cdd785979de965b85dafecdb03f97084b60a3","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-1.3.3.tgz","fileCount":8,"unpackedSize":145765,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSAaABMTEqRLbT6IIHLevtqjOSQeFC/7XM6k2ap9BrrQIgXANKk48m8pZMEUDr4HJRXfuuUMbL54B1TS6jQURakI4="}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m"},{"email":"t@hom.as","name":"thomaslindstr_m2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads_1.3.3_1519128773660_0.08522599907460737"},"_hasShrinkwrap":false},"1.4.0":{"name":"@amphibian/server-lilypads","version":"1.4.0","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"33a66a1dbca3523de6818e02c79caf9c32de2420","_id":"@amphibian/server-lilypads@1.4.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-OcrRs5H1tybmRvj1ApQRBl+bK38IwkNwraSRNCIboGVQnk4PB7JE8btwur1n6k6IZwfA5Gh80svnigdAR5OQ6A==","shasum":"d9618f6f06c352c20d68095cea4135aff829859a","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-1.4.0.tgz","fileCount":8,"unpackedSize":146386,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDW4EEXR8eRzakubZrITuvRp9XC8cbKmwGtg80IbUle6AIhAMWXXcq5nW1fNFcmBwkcb3HXvOzfMplAFsqfMyrXmBhW"}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m"},{"email":"t@hom.as","name":"thomaslindstr_m2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads_1.4.0_1519777299906_0.1650245576085796"},"_hasShrinkwrap":false},"2.0.0":{"name":"@amphibian/server-lilypads","version":"2.0.0","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^1.3.1","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.4.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"1891d92f52c3b150a672130943da17768bf2b75f","_id":"@amphibian/server-lilypads@2.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-6TAXyrY3oNb9/Grkz6zkx6vG0nuis9yqof/qXz9v3ISBYLa2gJqfe05bOtglBfd1lpu7sW+4KDtFNMR0YYxkzQ==","shasum":"2259fb340268fe880728ee144fae279fbb6b529b","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-2.0.0.tgz","fileCount":8,"unpackedSize":148205,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH9NGNmHCXyiBhJY/Y9NYDY2om9cmYqkCNdlPZwn47kZAiAsDq4aiBwj9CZO1jt29gjJrsfoY7nRaSiW3iQYbBIwlA=="}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m"},{"email":"t@hom.as","name":"thomaslindstr_m2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads_2.0.0_1521550744008_0.7733467677331645"},"_hasShrinkwrap":false},"2.0.1":{"name":"@amphibian/server-lilypads","version":"2.0.1","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^2.0.0","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.6.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"777f134afdf46fc6454cb074caadaab2cd791f6d","_id":"@amphibian/server-lilypads@2.0.1","_npmVersion":"6.1.0","_nodeVersion":"8.11.2","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-L36fXnlwpB1R96e5CoYLS88sU9ijeXtfkWpPHPmCcoGiUBiUlyKUGvTrAgLokGpgswoBcB3Eq/3+8rskx7Yzfw==","shasum":"bd2e541dd1c046e4d46365b6ab1fa3d6449596a1","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-2.0.1.tgz","fileCount":8,"unpackedSize":162088,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbLLpMCRA9TVsSAnZWagAABcgQAKGyj/5JstjPgDCwnDAK\nwNYFTSdBnmfSReKun0x2hJQ2xQZOnn/YA8Bbfas4gWqNNTBVlSYOgphJ1Km6\ncZnaTleHRR9Xo09mmsgg7bMCN474Mt7f7KD3Qc5fg7Czw41NdQBIRLn+/ran\nxYmjIoA9PRaYfOTU/bZSxT1mXDKLvK0vZLeYhhpqo/Ky3VLZ8iznhVRv0OKy\nLNwyMLmsxjw0FQh9j5wwlz3x7jVA5ZRG0hMWDj+IzpoGVYvSaouw1B9dIP8y\nrCPt0NQMWDqbAuCWPgQhmx6fRw1epSM6PgBH/ozG2skjO77DINxrW7hWmkOq\niSrcOjDESnE/50PjF3jbuh/Ei7uTDGQ5TJ41tIUsr4z8wsBku7aFQAiWOba2\nlheDtUK31v2zAyJCibgV0uQaFgyj3dosrxPlt7X0866YJErCoQ+PuE9g9QK6\nYHZjHN+PB5CAhgxReF8B2EkaRNRLBAcOIAiA8+OsTwVTQ27yFFcTkQ2hB4M6\n+2GgUn2X5U8B4qkR+iYkM1m2H+l9L2zTY7r6HAoyVaxRkuDOHnSjrp//YXWa\n6ECBPdR0VC4gehxGxED6reh3x3sYuO793qLXaE7BlUnJXjwop8j+qecyGmFZ\niMgWSlzA99JkX9vWOzSOo+Cf4zfUI4yjWRZAFoymFPHMYwFniwlXYqh1Hp3g\nNXXl\r\n=zv4X\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBxiJF1oQdsIQcvwoGZ7flghWWNPlYxDt8yp77FHGsBhAiAOvCNmHNaZ8pt0agmgyoIN06HS2UwRscNssuKmV2mahQ=="}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m"},{"email":"t@hom.as","name":"thomaslindstr_m2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads_2.0.1_1529657932655_0.15321177274707276"},"_hasShrinkwrap":false},"2.0.2":{"name":"@amphibian/server-lilypads","version":"2.0.2","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^2.0.0","@amphibian/errors":"^2.0.0","@amphibian/for-own":"^1.0.14","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.0","@amphibian/validate":"^1.6.0","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"96adee2c0f81f61fa371974f60702d2b13f0ab76","_id":"@amphibian/server-lilypads@2.0.2","_npmVersion":"6.1.0","_nodeVersion":"8.11.2","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-UueAEbMYz1DfM2HANnVVwzqrJjhT8eh4OALx0u8v4tlAMVwPzg/xCYFArGz088PTu8mnU01rco+6u89CfcfI0g==","shasum":"24358b20fd8baecc841e9b318ee7b5b39e615030","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-2.0.2.tgz","fileCount":8,"unpackedSize":162170,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbLMeGCRA9TVsSAnZWagAA4acP/3Q7PVP5041kQXbzAzT1\nu/t6nRdF7SUPTvEEAAUwoyG8IPo1nWWiKk1tvqI7JqiZh76Zuq5WMjIWuRcZ\nmQejVzxexkDLiFliKJeibLxXw+qiKWoTNUtb5qE7LOalsGGiumWhYzeSdgL+\nYKivl99xIh8eVLmVqPLl6OjUKPVkA1IEVgetBNcXrj71Un79IMBKGKlROEV3\nMTF6uPkAwlij3Da2HoYEwomNIkSTedXRm5aaiikfRyorf07z+bXMF8oi3Jpe\nUTD8veJL583i6mLt9FUwl+Nsyfb+c6DHrNF1lZ91Mr2X566hyhxRSRtQksxY\nYj8gKafVKudCieh7csulLXvJTeZKKgK4XblXQBpIAFAKDQQtZ1Yhskj3bz97\nWdE4Jli55OMB/3nGn/ZJzeOB6E5sspvv3AOuV0LJGpNxsGe01QSaBRrkpLT4\nbVsEc6LnU80BxVeW5pehXnpwbQW4lfvPk8UShpQ8tNbfSRZS4RriPpFaEIpM\nFnQDducp65vkua2ZguJ+6fBd1hiT7+GS1d6q5b+M7n628oxWbZNJ/I+A/kVk\nL7K6m8wGlRbdeA+ETOA/HBSuVU8WgW+IqvRR02VwokHcxNwvXm8jTuZhw70G\nDStwTRjLYabpK0GcPXPA67hIeGZPaLZQXiTFGeMfNRPqe4E2bytGCwGwb/Dc\n97Ik\r\n=gEgO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTUpMG6OP+RU+mWYLK/FlqmtzDRFccpfsSEm3fGVPz+wIhAIUu964HAsz57ar+O3zH7c1mSts4b/Tog8eKixRoEgx+"}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m"},{"email":"t@hom.as","name":"thomaslindstr_m2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads_2.0.2_1529661318033_0.05255739870656084"},"_hasShrinkwrap":false},"3.0.0":{"name":"@amphibian/server-lilypads","version":"3.0.0","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^2.1.2","@amphibian/errors":"^2.0.0","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.1","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"0da51bc0272474fe3da13a314f25161e87068ed8","_id":"@amphibian/server-lilypads@3.0.0","_npmVersion":"6.1.0","_nodeVersion":"8.11.2","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-12KLkeyqelqD2lhdBkW884ItNNTp71VHAM8C0dK1BFbJLgewxgIeG6F4WK+iGvirV6HNDG2booaku6YaOZZknA==","shasum":"97e860478f9095f100c98aed54854d5dae780dd3","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-3.0.0.tgz","fileCount":8,"unpackedSize":158166,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbd3WKCRA9TVsSAnZWagAAZhgP/09+Q+WIk8Pe3fetKWE4\nsIVZtfmeAKPlTPHn6IQuFo7OquQFyZJr4cpSV1bUkz6nl9ooxRPfB4nivcqg\nSXWH+b5KdCtGRBSTwBPcmfPaklO3GNy3+Zmf4tXH5PkwhPtSZIrfZxzhM/VC\nr7lDqF45NsPWTr0253Btu0IopJRbysGlNo3vaPpe+aRpDotGRJgqXGX9Y6rb\nBIJD11N3xSUPg1MXnkO6QrRYyAbwguGTstAIMDTLROKSqgjzYfIZvlA78oPA\nzU8ZRxTMZ7/WzfrpzskC8jeEBDddREFOsjwMsPSz8YHhCwLV146tVePMxgvW\n0kGTzIivB5cB/vzZSaKUPQWtx7fK+BDsJJGOLcbDi24+avag5E2TwZvTu9oz\nOSlA8JSz5/94Mhom+QICjkesHdxEp0ctZ1TCzs9aUOQYaXnO6azVBBZSIf5d\nAGphlyjUjf7AgG6LCAx9RIxPgdWbYo5aRmSpl5lbW0BOye0GWOPD87+7dOjf\nB18BpET1+Z9mwOZ74vyraLEm1nD9+J8RdorPTrXzLF2np22SKdoxGSI7vbVR\nzZSohZSupURxckM3/FldTP9GYTGCf38Fl7S2JIMswT3fcnaL+avys191lIv1\n7sEFylNZndPCpsVhjjBR9sB9HgGcuAq4rFfsaTB+/Wjg2ppQSX7XdmTty1Z9\n2Rbu\r\n=9I+H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqGgjXSttQW7cdG74bVJAbgRACaBoY9M7Xzbznz/86sAIhAOhJzFId8uXYrhd3nhDKea7q7GR24Gh7bleOlYg+VsXm"}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m"},{"email":"t@hom.as","name":"thomaslindstr_m2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads_3.0.0_1534555529349_0.8397434973358788"},"_hasShrinkwrap":false},"3.0.1":{"name":"@amphibian/server-lilypads","version":"3.0.1","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^2.1.3","@amphibian/errors":"^2.0.0","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.2","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"9d311ec942c121e9450c0453feb62aa1232b96e3","_id":"@amphibian/server-lilypads@3.0.1","_npmVersion":"6.4.1","_nodeVersion":"8.11.2","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-zkR2TbUoo88M+/t7hbCIEeG8YQIroCZ8bF048IOc8N3zPn1/VDtg7JOjjQe09chqff47vIx4iELJiueu6tbNdw==","shasum":"45f8723a93e96ed7b2eb5dafb62435bc99935167","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-3.0.1.tgz","fileCount":8,"unpackedSize":153903,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbpBhZCRA9TVsSAnZWagAAQtIP/0BYUTcg6b4jwJ/qz9V7\nvslmJz4BLi27H56A/HjxZ8cVj9g+LwTRgglpIIuLP5owEk9mdUKgGNzn3hc5\n1J1EfKFEbUXgO2aU7d4ZwtL7PEznKwD5POS5v7xnEKOErb4iVyNMGM+WDZo9\nWotE24RbCfXsAjSlSWh0RPQd8uP+k9TWrj/RMQ2sswGucXyUSaSH4rti6WLY\nIggKtUKF99xx/GdaoU8iTIwKFqo6QgDjJZWCFTHUrmHz/Y3/V85fSaAQU/ZP\nLdNT2Wlfw+r1104knMwo3d8MbkJGRvPpJFxyI7iQopwuqVdXfCvYT3hjSPL0\ndYIZgjCzn+DwiT7g6xqKrHrDeOyTJAKtDvwWA9FqTgKe5yQD9T2PYv4NWitu\nZAtM002EZUnWC6Zjv2x4uFwYKSwBG10QJHmUxlGDfpIMgizQ67L+l2+8qViH\nv41YX7cNXDwaObfDJR1tz1ZmXxRry9K5mxrEyvJAov22NmPrZoNBgoYP5Elj\nPA3yJRO7xk/nYgSezTfP/RGynKujRZ30TRC/HMKc+xMSGAQ/qeozMToA0qZr\nKnvUjHxyOMfy+i0iEQDDBg7PA++ggE1IuURmd6xtGD0AlRcPCSC7db1DTZxK\nQhQAcjohmeIFwjPpsikBBSElv5X/3P9q4cDExSBUpnRd1Q9tqiCLmGKft3uV\nnDPO\r\n=Ypxh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlPDXfTcdcESc+e1O1Ne723dZeq/5JFhpmVvVr+gD23QIgNHPd8IoYwB/F75XQwLiVDvNqMSNW5J/FjCCDBO2m2oo="}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m"},{"email":"t@hom.as","name":"thomaslindstr_m2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads_3.0.1_1537480792588_0.2801651099234881"},"_hasShrinkwrap":false},"3.1.0":{"name":"@amphibian/server-lilypads","version":"3.1.0","description":"blazing fast @amphibian/server requests","engines":{"node":">=8.0.0"},"main":"index.js","scripts":{"test":"npm run lint && npm run jest","lint":"eslint --format=./node_modules/eslint-formatter-pretty --ext .js,.jsx .","jest":"jest --coverage --bail --forceExit"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"license":"ISC","bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","dependencies":{"@amphibian/cache":"^2.1.3","@amphibian/errors":"^2.0.0","@amphibian/in-array":"^1.0.4","@amphibian/is-number":"^1.0.1","@amphibian/is-object":"^1.0.5","@amphibian/is-string":"^1.0.2","@amphibian/object-has-property":"^1.0.1","@amphibian/party":"^1.0.2","iltorb":"^2.0.2"},"devDependencies":{"babel-eslint":"^8.0.1","eslint":"^4.10.0","eslint-config-airbnb":"^16.1.0","eslint-formatter-pretty":"^1.3.0","eslint-plugin-import":"^2.8.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","jest":"^21.2.1","pify":"^3.0.0"},"gitHead":"1d4e1bf4717f860e2bd8edddcc9fbb4c79270ebb","_id":"@amphibian/server-lilypads@3.1.0","_npmVersion":"6.4.1","_nodeVersion":"8.11.2","_npmUser":{"name":"thomaslindstr_m","email":"t@hom.as"},"dist":{"integrity":"sha512-kd3gYB/NiewTVUmdu66P6yOuwhYz/5HSj6SpvIKV46e8/QFDjjOG/FccXZP5fdUjr04Y+3BS1L4MtfXqPZopsw==","shasum":"113eff462b541acab65ac33ee5717d4fd04072ee","tarball":"https://registry.npmjs.org/@amphibian/server-lilypads/-/server-lilypads-3.1.0.tgz","fileCount":8,"unpackedSize":154164,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbs1vYCRA9TVsSAnZWagAAF/AP/1/ce9WaoUb3fKCNMIv6\nMbuw6xGU+F7xIIeSmKKqcZ16wJB77ye6sEAJPg+kAYCC9L657lcPk4ueU9rM\nZBp8/wXjN2O0LgDFQiDU3Qfx9fyr/nCUX11lg9j+uWy91TnQ0ZtY51znTM22\nWlO0bN/pcGn/uzBmI5Twq9v0L/ZdF9tN7bGu+upy/nQm6lXh6KopMqutDS1Y\nqdsMlUvDHdvx6hQBNKVh8nJjG6SPXXcByXalJMwoKO+C+gCGEf1t9B55ITLr\nzSBPG5uj3oOG7VaurIGeBrP87Xy+W6aBrGOcMM9SvfP4RasI/4tOVk6y4dJi\nkn0XBWbmfjP2cWVgiOVrR/N90Z8/npuXHTeF70LlIW4iyZ3iZzIlHK3oU8Z9\nOCp6CI1r1SX6xo2aZSqiyQZuL+Hni0WqyF8cNxnbcZG4nUBXQcoDti6j+AXu\nwh0fGDsb5ehokSMF+RUCw1DImBoIUvgyz6/z2GuswXTHLisnr5mBb3U3Jpk/\nMe5NrKSg3GDey1ic6ArxeVZv7o1JOzO1GNq95+mSfuCmmxGkRVZ9r7ZQQz+I\nTddMY109mVkFXFYlL6ScXsBHQwXN3OZ3rKeBwLXSSa4P6rLF6Eueh5LMlxS2\nWI6zeOgsVeWRzPtI4ownfJK6PJFo/hTYT9vf8jGjia/0t/9SYGtBBcS9Y8Qb\nwzTG\r\n=rzPG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGpxe8gnaKrRRXq9/LliU6GROGVQpoyTK6v7TacfHrSIAiEAjztOjKkZjrOK/351ebB/DLR09cbr7Ty4rIDuQqVCQbM="}]},"maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m"},{"email":"t@hom.as","name":"thomaslindstr_m2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/server-lilypads_3.1.0_1538481112230_0.30634008118244327"},"_hasShrinkwrap":false}},"readme":"# server-lilypads\n\n[![build status](https://gitlab.com/thomaslindstr_m/server-lilypads/badges/master/build.svg)](https://gitlab.com/thomaslindstr_m/server-lilypads/commits/master)\n\nblazing fast @amphibian/server requests\n\n```\nnpm install @amphibian/server-lilypads\n```\n\n## Why, and what it does\n\nI found myself writing a lot of _optimised handler functions_ that were repeating a lot of the optimization techniques over and over again. This module does it for you.\n\nProvided a unique `id`, `lilypads` will, after the first request, ensure immediate responses from the server.\n\nUpon an initial first request with the `id` `user-34134-data`, it will get the data from the provided `responder` function. However, next time the same request is made, `lilypads` will naively, immediately, send the same result as it got from the `responder` function earlier. `lilypads` immediately starts compressing results with `iltorb`, and will serve a compressed response if compression is finished.\n\nIn addition to this, `lilypads` has `@amphibian/party` built in, which ensures multiple requests to what would give the same response only trigger the `responder` function once.\n\n### Headers\n\n`lilypads` will automatically set the `last-modified` header and respond with `304` provided a later or equal `if-modified-since` date. To set custom headers, see the example below.\n\n### Step by step\n\nAssume a request to resource `user-34134-data`:\n\n#### First request\n\n1. Calls the `responder` function.\n2. Serves the response.\n\n#### Second request, assuming compression isn't done\n\nImmediately serves the previous result of the `responder` function.\n\n#### Third request, assuming compression is done\n\nImmediately serves the previous result, compressed.\n\n#### Fourth request, assuming provided `lifetime` has expired\n\n1. Immediately serves the previous result (compressed if compression is done).\n2. In the background, calls the `responder` function and swaps the current cache with the new one.\n\n## Usage\n\nThe simplest example possible looks like this:\n\n```javascript\nimport createServer from '@amphibian/server';\nimport {lilypads} from '@amphibian/server-lilypads';\n\nconst server = createServer({port: 4000});\n\nasync function indexGetHandler(context) {\n    return lilypads(context, {id: 'index'}, () => ({\n        success: true\n    }));\n}\n\nserver.registerRouteHandler(indexGetHandler, {method: 'get', path: '/'});\n```\n\nHowever, optimizing a persistent response is not where the big savings can be made.\n\n```javascript\nimport createServer from '@amphibian/server';\nimport {lilypads} from '@amphibian/server-lilypads';\n\nimport {getUserData} from './interfaces/user';\n\nconst server = createServer({port: 4000});\n\nasync function userGetHandler(context) {\n    const {userId} = context.args;\n\n    return lilypads(context, {\n        id: `userGetHandler/${userId}`,\n        lifetime: 5 * 60 * 1000 // 5 minutes\n    }, async () => ({\n        success: true,\n        user: await getUserData(userId)\n    }));\n}\n\nserver.registerRouteHandler(userGetHandler, {\n    method: 'get',\n    path: '/user/:userId'\n});\n```\n\n#### A note on custom `headers`\n\nSetting custom headers should be done _after_ the `lilypads` function has been called. If the `responder` function throws an error, you'd most likely not want the custom headers you would like for a response. For example, it doesn't make sense to cache an error for as long as a successful response.\n\n```javascript\nasync function userGetHandler(context) {\n    const {userId} = context.args;\n\n    await lilypads(context, {\n        id: `userGetHandler/${userId}`,\n        lifetime: 5 * 60 * 1000 // 5 minutes\n    }, async () => ({\n        success: true,\n        user: await getUserData(userId) // this function might throw an error\n    }));\n\n    context.set('cache-control', 'public, max-age=180');\n}\n```\n\n#### A note on error handling\n\nIf the `lilypads` `responder` encounters an error the first time it runs, it will throw an error. However, if it has already been run successfully, `lilypads` will swallow the error and send it to the optional `errorHandler` you can provide.\n\nConsider the following code:\n\n```javascript\nlet shouldError = false;\n\nfunction getUserData(userId) {\n    if (shouldError) {\n        throw new Error();\n    }\n\n    shouldError = true;\n    return {user: 'test'};\n}\n\nasync function userGetHandler(context) {\n    const {userId} = context.args;\n\n    await lilypads(context, {id: `userGetHandler/${userId}`}, () => ({\n        success: true,\n        user: getUserData(userId)\n    }));\n}\n\n(async () => {\n    await userGetHandler({args: {userId: '1'}});\n    await userGetHandler({args: {userId: '1'}});\n})();\n```\n\nNo errors will be thrown because the `responder` function has already had a successful run. The error can be retrieved by implementing an `errorHandler`:\n\n```javascript\n// ...\n\nawait lilypads(context, {id: `userGetHandler/${userId}`}, () => ({\n    success: true,\n    user: getUserData(userId)\n}), (error) => {\n    console.error('This error happened:', error);\n});\n\n// ...\n```\n\nHowever, if the error is thrown _before the `responder` has been run once, successfully_, the error is thrown “as normal”:\n\n```javascript\n// ...\n\ntry {\n    await lilypads(context, {id: `userGetHandler/${userId}`}, () => ({\n        success: true,\n        user: getUserData(userId)\n    }), (error) => {\n        console.error('This error happened:', error);\n    });\n} catch (error) {\n    console.error('This error happened:', error);\n}\n\n// ...\n```\n\n#### A note on cache invalidation\n\nSometimes you make changes in your database that you would like to reflect immediately. Whether you're using `lilypads`, or `leap` directly, there's an option to force update a `lilypad` in the `options` object: `forceUpdate`.\n\nIt should be set to either `sync` or `async` depending on the desired effect. If you make a change that does not need immediate reflection, use `async`. If not, use `sync`.\n\n```javascript\n// ...\n\nfunction getUser(userId, options) {\n    const lilypad = await leap({\n        ...options,\n        id: `getUser/${userId}`\n    }, async() => ({\n        success: true,\n        user: await getUserDataFromDatabase(userId)\n    }));\n\n    return lilypad.original;\n}\n\nfunction updateUser(userId) {\n    await updateUserInDatabase(userId, {email: 'test@bazinga.com'});\n    return getUser(userId, {forceUpdate: 'sync'});\n}\n\n// ...\n```\n\n`forceUpdate` should only be set on the `lilpad` or `leap` call _when you know there's been a change_.\n\n### `lilypads`\n\n```javascript\nlilypads(context, options, responder);\n```\n\n#### `context` _(`Object`)_\n\nThe request context object.\n\n#### `options` _(`Object`)_\n\nThe options.\n\n##### `options.id` _(`String`)_ **Required.**\n\nShould be _unique_, yet the same for requests that expect the same response. Function arguments used within `responder` should probably be represented here in some way. For example:\n\n- `user-34134`\n- `article-213`\n\n##### `options.lifetime` _(`Number`)_\n\nHow long each `responder` result will live in milliseconds. If `undefined`, the result lives forever. If set to, eg., `3000`, `lilypads` will get a new version after `3000`ms. But it won't throw out the old one until the new one is ready.\n\n##### `options.disableCompression` _(`Boolean`)_\n\nTo disable `lilypads` compression, set `disableCompression` to `true`.\n\n##### `options.forceUpdate` _(`String`)_: `sync`|`async`\n\nTo force update the `lilypad`, set `forceUpdate` to either `sync` or `async`. This will ensure the `responder` function is called.\n\nYou have two choices:\n\n###### `sync`\n\nThe `lilypad` will call the `responder` function and resolve upon its completion.\n\n###### `async`\n\nThe `lilypad` will resolve immediately, as normal, with the “old” `responder` result (if any) – but will, in the background, call the `responder` function to update the `lilypad` upon its completion.\n\n#### `responder` _(`Function`)_\n\nThe function that returns the request response. It is given no arguments when called. Can return a `Promise`.\n\n#### `errorHandler` _(`Function`)_\n\nThe function that is given any error encountered running the `responder` function.\n\n## Multiple layers of `lilypads`\n\nBehind the scenes, the `lilypads` function is the layer of code that, primarily, interacts with the provided `context` object.\n\nSometimes it might be beneficial to add multiple layers of `lilypads`, without necessarily serving the final response to the `context` object.\n\nOne such scenario is batched requests. Imagine you have an API endpoint that can get the data of multiple user IDs. Given _one_ `lilypad`, we'd cache _that one request_ where the combination of user IDs was, eg., `123` and `124`. In the future, we'd, naturally, like to avoid going to the database to get `123` and `124` when we know we already have them – but on a different `lilypad`.\n\nYou'd solve this if you had multiple layers of `lilypads`, and this is where `leap` comes into play.\n\n### `leap`\n\n`leap` is the underlying functionality that caches, compresses, invalidates, and immediately returns responses if there were previous versions of it.\n\n#### Example\n\nImagine you have an API endpoint that accepts everything from _one_ to _Infinity_ user IDs.\n\n```javascript\nasync function getUserData(id) {\n    const lilypad = await leap({\n        id: `getUserData/${id}`,\n        lifetime: 5 * 60 * 1000 // 5 minutes\n    }, () => userDatabase.get(id));\n\n    return lilypad.original;\n}\n\n/**\n * Handler that can get multiple user IDs separated by a plus sign\n**/\nasync function userGetHandler(context) {\n    const {userId} = context.args;\n    const lilypadsOptions = {\n        id: `userGetHandler/${userId}`,\n        lifetime: 5 * 60 * 1000 // 5 minutes\n    };\n\n    const userIds = userId.split('+');\n\n    if (userIds.length === 1) {\n        return lilypads(context, lilypadsOptions, async () => ({\n            success: true,\n            user: await getUserData(userId)\n        }));\n    }\n\n    return lilypads(context, lilypadsOptions, async () => ({\n        success: true,\n        users: await Promise.all(userIds.map((id) => getUserData(id)))\n    }));\n}\n\nserver.registerRouteHandler(userGetHandler, {\n    method: 'get',\n    path: '/user/:userId'\n});\n```\n\nIt is also possible to get the `lilypad` without providing a `responder` function. Assuming the `lilypad` already exists, of course.\n\n```javascript\nconst id = 'test';\nconst lilypad = await leap({id}, () => 'my-content');\n\n// No `responder` is provided. This, however, would throw, if lifetime is expired\nconsole.log((await leap({id})).original); // > 'my-content'\n```\n\n#### Usage\n\n```javascript\nleap(options, responder);\n```\n\n##### `options` _(`Object`)_ **Required.**\n\n###### `options.id` _(`String`)_ **Required.**\n\nShould be _unique_, yet the same for requests that expect the same response. Function arguments used within `responder` should probably be represented here in some way. For example:\n\n- `user-34134`\n- `article-213`\n\n###### `options.encodings` _(`Array`)_\n\nSuperfluous for the use case in the example above (and should probably be avoided), but given an array of encodings, `leap` will encode the response, and return that as the body when it's ready.\n\nCurrently, `br` (brotli), is the only accepted compression algorithm.\n\n###### `options.lifetime` _(`Number`)_\n\nHow long each `responder` result will live in milliseconds. If `undefined`, the result lives forever. If set to, eg., `3000`, `leap` will get a new version after `3000`ms. But it won't throw out the old one until the new one is ready.\n\n##### `responder` _(`Function`)_\n\nThe function that returns the request response. It is given no arguments when called. Can return a `Promise`.\n\n##### `errorHandler` _(`Function`)_\n\nThe function that is given any error encountered running the `responder` function.\n\n#### Returns `lilypad` _(`Object`)_\n\n##### `lilypad.timestamp` _(`Number`)_\n\nWhen the current `lilypad` was created.\n\n##### `lilypad.headers` _(`Object`)_\n\nContains the HTTP headers that _should_ go with a response.\n\n##### `lilypad.body`\n\nContains the output body. _Might_ be a compressed `Buffer`.\n\n##### `lilypad.original`\n\nContains the original response. Not compressed.\n\n##### `lilypad.isResolved` _(`Boolean`)_\n\nTrue if the lilypad was resolved. False if an error is thrown the first time it was run, but true otherwise.\n\n##### `lilypad.isCached` _(`Boolean`)_\n\nTrue if this version is served from cache.\n\n##### `lilypad.isCompressed` _(`Boolean`)_\n\nTrue if `lilypad.body` is compressed.\n\n##### `lilypad.getCompressedOutput` _(`Function`)_\n\nFunction that returns a `Promise` that resolves with the compressed output when compressed output is available.\n","maintainers":[{"email":"t@hom.as","name":"thomaslindstr_m"}],"time":{"modified":"2022-04-04T13:51:43.850Z","created":"2017-11-02T09:19:10.132Z","1.0.0":"2017-11-02T09:19:10.132Z","1.0.1":"2017-11-02T10:01:41.095Z","1.0.2":"2017-11-02T12:31:47.036Z","1.0.3":"2017-11-02T12:42:58.186Z","1.0.4":"2017-11-03T14:07:13.296Z","1.0.5":"2017-11-04T22:02:02.010Z","1.0.6":"2017-11-09T01:25:19.789Z","1.0.7":"2017-12-05T22:56:10.261Z","1.1.0":"2018-01-29T18:18:58.329Z","1.2.0":"2018-02-19T21:04:39.763Z","1.3.0":"2018-02-19T23:49:05.576Z","1.3.1":"2018-02-19T23:51:55.380Z","1.3.2":"2018-02-19T23:56:41.635Z","1.3.3":"2018-02-20T12:12:53.732Z","1.4.0":"2018-02-28T00:21:40.019Z","2.0.0":"2018-03-20T12:59:04.061Z","2.0.1":"2018-06-22T08:58:52.864Z","2.0.2":"2018-06-22T09:55:18.138Z","3.0.0":"2018-08-18T01:25:29.460Z","3.0.1":"2018-09-20T21:59:52.769Z","3.1.0":"2018-10-02T11:51:52.369Z"},"homepage":"https://gitlab.com/thomaslindstr_m/server-lilypads#README","repository":{"type":"git","url":"git+ssh://git@gitlab.com/thomaslindstr_m/server-lilypads.git"},"author":{"name":"Thomas Lindstrøm","email":"t@hom.as"},"bugs":{"url":"https://gitlab.com/thomaslindstr_m/server-lilypads/issues"},"license":"ISC","readmeFilename":"readme.md"}