{"_id":"timeld-gateway","_rev":"27-07cfe01831aaa0a4d4c12871e8211e93","name":"timeld-gateway","dist-tags":{"latest":"0.2.11","edge":"0.3.0-edge.2","prejournal":"0.2.5-prejournal.1","no-ably":"0.2.6-no-ably.0","connector-http-signing":"0.3.1-connector-http-signing.0"},"versions":{"0.1.1-0":{"name":"timeld-gateway","version":"0.1.1-0","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@trycourier/courier":"^3.12.0","@types/restify-errors":"^4.3.4","cryptr":"^6.0.3","jsonwebtoken":"^8.5.1","loglevel":"^1.8.0","restify":"^8.6.1","restify-errors":"^8.0.2","simple-peer":"^9.11.1","timeld-common":"^0.1.0-2","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/restify":"^8.5.4","@types/validator":"^13.7.2","memdown":"^6.1.1","rxjs":"^7.5.5","tmp":"^0.2.1"},"gitHead":"0748b45b99a3bb886834678fca00e9bb0e6c53bc","_id":"timeld-gateway@0.1.1-0","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-YzzBV69kIklMXbrMGZYL+x6FKYi1DnnWEfVMwL/bO+OctOr3bvfEqYi9jdYcqqIs8BxaF2eK6a41hJilntRvrQ==","shasum":"01b8a524307e44f8a2b0ae06ffecfb889d96a744","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.1.1-0.tgz","fileCount":9,"unpackedSize":19110,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjPvr/+hm817df/6HCIPMMQDz6tXI4DCzbk9KWfgZY9gIhAMOmkeKQEC4F9W9xYlO5nbN1gQCEuAgO6J0JJBE5Tk2g"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJilMdqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqwDw//Z80PCF8f1dwpcGWjgpGM5MzhlbZb5w6BeYRHDMqdrvAgtAmN\r\neWpe8JueXSkguVqWtQVDjzBRiNk7dgHWq66Z2mORPYOVp3Qsju5paa9UMf82\r\nuxwvYr/ZG4RqESUO58X9zXPNU+T7VuH6FalM0FZ7AhOGDW08zKIAlitya8In\r\nw9z6xOkN6IW/cgE0I6aZl7QfVNYdVIzfzzFLV5VotZRcrHLFaKbbomzzA+kg\r\nFPWRycuMY78LbPfHlPHmMh7tzE3oCf01iApL7QnITKSF5WmsVeK6k3WYbhdk\r\n+dUmcec6UPuCKqd4iFetMk+/drFENumcx+9M/LRpk07Lh9zn1B/GLKpVGroz\r\nzdFYVH1uhLJCC3JhhjOO/J4m1YaOiovm6BaV1q4TBTdGbx+tkz53hQTVCi9J\r\nk0feKayaOvzr3qDaA5zgno2DYjLsFWrDtv6G19HYKnpJoEyb70GgVAFBxvWt\r\njy0itbP+b83CqBGcvtOji++kLuMhEq7D7lYZQYL1kWjbAudruc9J19XhrC6q\r\nVN8WPObmROgukW24SpZ8orinldAAorwqZq5qY2hg2embl62TpJbUIPAem1Xa\r\nRN/of2yr+mW7/yb2ZMWBIH+5S/rrjpjVIyGEiDUK4ctdBKkBKWaw2JBhUnej\r\nEQ4iwfRJUufYPhS9F3h063JMKjH4Js0azHY=\r\n=UbIX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.1.1-0_1653917546784_0.4878256939687775"},"_hasShrinkwrap":false},"0.1.1-1":{"name":"timeld-gateway","version":"0.1.1-1","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@trycourier/courier":"^3.12.0","cryptr":"^6.0.3","jsonwebtoken":"^8.5.1","loglevel":"^1.8.0","restify":"^8.6.1","restify-errors":"^8.0.2","simple-peer":"^9.11.1","timeld-common":"^0.1.0-8","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/restify":"^8.5.4","@types/restify-errors":"^4.3.4","@types/validator":"^13.7.2","memdown":"^6.1.1","rxjs":"^7.5.5","tmp":"^0.2.1"},"gitHead":"a4b012748d2777cdbd1b3bbe714869cbb268e915","_id":"timeld-gateway@0.1.1-1","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-rlZus3qJpwa6svvNTIGBmDRqcVafdZEnhNW0gkCg0j5hbliWKNL8AMrWBueYRvZ9lP97Gra9q8sHdtOGLIpw+A==","shasum":"26cf0082908825e10fa635b6f085169f2daf42a6","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.1.1-1.tgz","fileCount":9,"unpackedSize":21981,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGiLvNljbxsthggxKnK33g9pP5HgyuGWtBkKlM/eu0BAIhAPrgq01lOhlmMsxbnaCJcEHko+HTxW+akUoOfUQFhEgs"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimdKPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpTog//Sy5MS0sriFuyuM4VcW8Zb8inqb4UwPRN0VupM/iPyLtfTUdk\r\nJARUfjV2m6/ch4ppKwhDVE/N/XDlezMaAg4HTZEFh/br7dEIrqg/74DCCq5v\r\nKCZ7x8gIAxmpzvkG3Nx9IiPl5KIQFUvaSoC5Mem+jH5XHrj33Sm7ZzKh66qH\r\nuFOIy0PPvj79aDWwRdpBOgMeCBfBXRbwgRdrM9gR55QpR/xYqmECLuNesF+h\r\nmHnbqXua7Az4fi4C4YuqWYUfU5YLJoDHWoYL1dgwrt3NyJxJJDPD+Tpk1857\r\ndKwcmfmkcZRkTm3uL6WzA16UXm0bbIdDB7mkQSHirV92gWKq0sGd9p4H52z9\r\ngy2bAL5iLYoWfrDwApQacOIQCXBNkZBScfJTVfLiymi0gEq+iDm4ETMIFKzg\r\nM6TPpllkTUy8ULQQEIIJaFBIJtsd920Tw7YWRst0c9cWtZJY99sLfRoBDbLl\r\nTHhnETMfin8rcCBZ/AgYReVfetHBwq7S89vDK3kGsobBZH6WpYyzqWySmaID\r\nivmJXAzZi24HGOWQBAS9QnrNzF6rzAC0+1LIJVKRMWFDMEE/2nfnsKrgRl/B\r\n7F0okAR5tep2B1/zVuoQjZC/a5VEHtJnfaokyn29rDWfSBL7X4OJqnx0Yr8U\r\nNgmkqTAdJTusEvORgLmyf4y7GXab1Ww+a4U=\r\n=8eGZ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.1.1-1_1654248079759_0.7699820668374695"},"_hasShrinkwrap":false},"0.1.1-2":{"name":"timeld-gateway","version":"0.1.1-2","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@trycourier/courier":"^3.12.0","cryptr":"^6.0.3","jsonwebtoken":"^8.5.1","loglevel":"^1.8.0","restify":"^8.6.1","restify-errors":"^8.0.2","simple-peer":"^9.11.1","timeld-common":"^0.1.0-9","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/restify":"^8.5.4","@types/restify-errors":"^4.3.4","@types/validator":"^13.7.2","memdown":"^6.1.1","rxjs":"^7.5.5","tmp":"^0.2.1"},"gitHead":"777d0253dd7fe14a079b0d172c14ed31426173e6","_id":"timeld-gateway@0.1.1-2","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-km/2OCGDTVm+gnT3c6j88bkB8VaiaYPshBhLyKoTRQjnrv+YMN6T1eNPFEs09gMxaCH28wMDy/h/1ogM6cjVHg==","shasum":"80fe63fb6c81ac9f85eaeea2ebe9fb59a10cdc5c","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.1.1-2.tgz","fileCount":9,"unpackedSize":22781,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICCaBmsw3IHIEcLZ9dMWm6Ywp/pbM1kjqpZgdOJNo2ZnAiEAtPA42XvhiCxj5G9q+kuwE/WvGMC4tjVhf4PHSuOIl3U="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiodrHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrBSw/9GUEFggRH0e3jG4Ry7RarhJOJyAl08pdmyqYYmMjHwgErytV5\r\nRNQgh4Res2nvD3EtXjmbhCRm4W9B8LWENXFRwBFuhhsfIEPWP8htLMQY4PGV\r\nb+tmj+nw+WS7mj1uXvuxJTfMfNBwg9Q2C6OIre3DsxwLqw3AZjgUwxPw0eLY\r\nRym38dp0iEO6/h7dFhO0zFDYh5fMxwy37QTZ6VZMsA5gGy/rnmDjXXjfgf9n\r\nIuXkhpIHq4Yxs6/6tjliEdOg6I1dx1pukcRE60+7XRXxwHc8Mp4D6hrAfk1H\r\nCRzusABABuihrjbDb1sQhXwnhz/6RWmM+eZTBtbG0lUeSFStmzjlQSZ2XPEz\r\nYU46liddp6J0IgGr9yyFb2SYJUO1GSEqRdIYgwUhBCu9tZzbGzlN37yy9RiJ\r\nFKQPUNfK6dI+4HD/EouJJ62ajgm2vEU7xUOBdqg+4NbG8f7U5DoDoJB27hpY\r\nSBgIQdG+iGrG3ta6KQiRbK6lMjlXn/U+HGU+FY9s6bV11XfqCb3w+DF1Kg/6\r\nY4cX0SZ4fBgJQr9iK3X7rJohcyiYMdBnv8j4uJMarpdKOiQzGBuFvpXligUD\r\nc8Nq2c6Ov5RKBM4eiaYhjnd8CKVLIztV87kNhl1RChnBFTEyYc/hCOQnDynS\r\nAb4mTobEydVr8w0prctuqdApeWdLtk+Vh28=\r\n=c/n7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.1.1-2_1654774471271_0.3196445857676846"},"_hasShrinkwrap":false},"0.1.1-3":{"name":"timeld-gateway","version":"0.1.1-3","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@trycourier/courier":"^3.13.1","cryptr":"^6.0.3","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.1","rxjs":"^7.5.5","simple-peer":"^9.11.1","timeld-common":"^0.1.0-10","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/restify":"^8.5.4","@types/restify-errors":"^4.3.4","@types/validator":"^13.7.3","memdown":"^6.1.1","tmp":"^0.2.1"},"gitHead":"e31b4c44f87e88e3c1835d1e637967d7b44bcf0b","_id":"timeld-gateway@0.1.1-3","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-dYsEVnXnFq9y35OW8YS1p6AfcjcHpjbqSc16AXuI1DbnqfK3METsLfcbY3SntbQqJB5PyPYFAUqhUi8fPajzIg==","shasum":"b7de0596c123184da55649932321897df9a52317","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.1.1-3.tgz","fileCount":13,"unpackedSize":39258,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2HxAemRFqOxl9nvjTZT61+WPQ+xTMeUjXm0d3/lmcvAIgHxz9Yb+iq0YTvy7VkIWhz6Ggfj/qpaMfW7J/tBWueJI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiscCXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpFZg/9EJTYRyn/lrOsGN7O0pIz23HtnUjuh+g93zH3jjMa2U+s7ydn\r\nJKN3oV+WMDvqkh60vBKoODDgbE1yybYzD4AQdv1XL68GSv9CQi9rAyLCVCyx\r\nHHH+m1uycAlWnsqueeLmb6YXn3kSJKP1hwAV1rhi153u9jLcGWWb6ai0sHvR\r\nTvWjm/s1Ev81qX06Db1wQTPRk25nVjMXEc7C81f0EmdSeVpO17NH/bzZV2kd\r\n/swltyUUmv9VKUn8gd66NY+4aC1BJq6Ub84nvPZU5FoEuQ9g94kXrPlXHRpi\r\n9Uzbz0lVj+cSRAaZSQ97rTbxjxxXB++XXD0IhwQk6P1SDoAt/2BeiaK9yE2a\r\ntvww9am1if0oudicC3tcsSlsh850IQggjE8Aw5YkKOKULxGe8nVASxhTKMOY\r\nVYFdmfntdyd9fw37XNgV26+DVpS+cm5eKECIZsTWMInBKleKNgp9xGAmanAQ\r\nvMBpWNxaSE14Cq0sIzUeAuzXswC0ypapICs0gmDd8/7sm1dA/Wl/FlsDqLXn\r\nWIhIqGet3nLZOtA1q/e97mNUeXGVD7EkEO3z3KBayjyPyC2bzOw/FFMTd8Oc\r\n/V41a5gKjBRGTX9kxR5lVTRhM//9rfHDOAmXS+YJ5Wpn174Z/MutDt3eiy3c\r\nHp2LAoZDWY2AKB55uwzuIFeOev7S3zj7lVA=\r\n=9A7X\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.1.1-3_1655816343093_0.8425247176804425"},"_hasShrinkwrap":false},"0.1.1-4":{"name":"timeld-gateway","version":"0.1.1-4","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@trycourier/courier":"^3.13.1","cryptr":"^6.0.3","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.1","rxjs":"^7.5.5","simple-peer":"^9.11.1","timeld-common":"^0.1.0-11","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/restify":"^8.5.4","@types/restify-errors":"^4.3.4","@types/validator":"^13.7.3","memdown":"^6.1.1","tmp":"^0.2.1"},"gitHead":"0d80e6a384bc46b289c2f7c82aec51e6465d7beb","_id":"timeld-gateway@0.1.1-4","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-RnXh2fb00wn6Sv0LGy6J5n7kL1tQ5+s2SmyUazWQ7XnhZxE/WDL/7VT2JuKvhmgK6BwcnPTCXYOy+JE8rBqLWA==","shasum":"95ea26ca870aa4487f4e94f2eb10310b75f18f21","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.1.1-4.tgz","fileCount":13,"unpackedSize":43421,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCguokZdscIQv2V3r1V92ZlYXWi0sRz//xHl1QGRTZcogIhAPcgaAyUPpNFKX9BSX1N+by+048dhp9m6jSts11VHJBN"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitYRhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoAtw/8DcNy9kIta2eMwOl1U6sP8vImpfwiNH518QHVKcW9q3ZQ/ehd\r\n6kTunjKO8cYqTzZr+7PmBfpE00B4YMuyiVLvFLZcwDRMT/agzu8WfuTndEo2\r\nxKiJ13GWtPhoKgM8ZWZI8KpCO/8H9RoWNiqVBvoiJVQmr8Iqh06IVUPsLHRa\r\nT+rcJak27DmKYioNy2BywgbsWNY6zjZ5gbetefXo2Pm/u4P6Ls+X27GiVf9Y\r\nWHuGrEd+X/aHW/cMH5ecJuGwigaZ6LqWIHmw0N/jD8hLtgfAiYEodWmjbp8/\r\nX2OBu9ITgiaQXfGKRXnqnZO4X86qTOyRtGPGYnfpbrB+s9txIhdrWMVzWr3S\r\nnwi9chYZe20PIlqb51juJCpDWo18FF9qSLLEvkCcx3F0W/JOkj3GOtSSdvvx\r\nJQrofGjIdgcu00eH+lTqDsQkdXIiHKBH7MB5L5bdWApP4eaCjx7CfnZD4lzO\r\nof46KxM+mnq8ZWhh0Uvr8M58cynPdJWkcOLnIctrQdqYTh9UbYUFQzVBv0CE\r\nokfurWGxviC/gfVJigrl7jTn4FIa9HDg85UhsQOot+pyTyrkaN4zXPkgFW2Q\r\ng0THXlyqY9rbs7Tk4+0dVQuxLIkFs5Pw4LVM+eiNHyLCarCaXUiriEabhkqv\r\nXtetJQ8bURkER9oCkfPoWLY5PDHZ6LavJN4=\r\n=h2P3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.1.1-4_1656063073715_0.6210112700082906"},"_hasShrinkwrap":false},"0.1.1-5":{"name":"timeld-gateway","version":"0.1.1-5","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@trycourier/courier":"^3.13.1","cryptr":"^6.0.3","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.1","rxjs":"^7.5.5","simple-peer":"^9.11.1","timeld-common":"^0.1.0-12","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/restify":"^8.5.4","@types/restify-errors":"^4.3.4","@types/validator":"^13.7.3","memdown":"^6.1.1","tmp":"^0.2.1"},"gitHead":"08bebd471907684a22f40416b3e0dfcbc00186f4","_id":"timeld-gateway@0.1.1-5","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-Ri7Dhh9CmhDegwXcnswg7iGrtd3OeCq+IJ9b8mUx1UuR00aQRQwKi1jyIAv5x1b+LSz+mqZ6YslxE1qPya+lmA==","shasum":"47c300a61b182a57d5b8f66d547cec76a77c1509","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.1.1-5.tgz","fileCount":13,"unpackedSize":45973,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgWCt5CPxBrwc9yfjyChzJuyegJcniHKNa3z88SF5ZAgIhAOHBSHW3tzxZ4N2DAb7bOsvzjPtKWew6e5miexF0eDDT"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJit0ZMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvnA//fTrNEM/u1QxMBSrTVbGk+Nqxv7FoebzMYd0boFVkrcIW+w0n\r\n2sX79TWrKJsv5ozbAqy0XSWM2UYCFm5stWxwug1Opgoz0mt5gPGteLs5G5iU\r\noMnhmN3+xHGfMeX0q+7h40jysa1ctjvbaI+nRU5rwKZJKREazRBNPSyzPRkT\r\nNgIPNJp+OdNu3IEyHAwrx8JPnsXsekC7+bFRPDicN5qpBIZGlErrUOVasXKv\r\nRdb+u8KwK4K6FdifYWuHyVM2E0wXmdrJbZy4SjrXVVqieDpGQdlLF3cZbBPE\r\njjgJLjcIDasGDNb/K6F2kLM4PuiJaj2uajPOnqXWq+KHZBveExd1YXPEqbzx\r\n+pW7eBbrDlzKOChYtXx6xaVaordF92usSloDExMroRdV8XXNGjHEkfRVYwQc\r\n5v15wTQjjDp2pbvQdYwNT+D6wDTmpJtdbImFr4QWjXqjXTBG12wogn7fHx6V\r\nbcusIqS0T4ewtALduBg8MpgZkLUdq4w1RWAJ9x/Vnvvi60C/4Z8TaRytE9Ja\r\nXzULEHy7N4/p4NCgputU574o8Y8fIpUijRyzJZESIzIsgciYzDQ57l4erROe\r\nc9WbuVNPkw3L5FZfLtFM7GCE2seT/PhlV1HWHRbaCV+kZGssvKaoHNt3DtT/\r\n48XZWm/zfZ4UGzm9cGXTdsXIZ0VleBZoZkc=\r\n=QkFZ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.1.1-5_1656178251866_0.08536540790351621"},"_hasShrinkwrap":false},"0.2.0":{"name":"timeld-gateway","version":"0.2.0","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.8.2","@trycourier/courier":"^3.13.1","cryptr":"^6.0.3","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","ndjson":"^2.0.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.1","rxjs":"^7.5.5","simple-peer":"^9.11.1","timeld-common":"^0.1.0","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/restify":"^8.5.4","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.3","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"gitHead":"862417e56b85688b83c57d58dc6179672be5f7fd","_id":"timeld-gateway@0.2.0","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-a4YRuVzjhi9PAMlYBkNykuGvwpmnnGn6tjlvLh5fVSETmmTP/m7yOXbNgtC8H4/0CjX0W4JFAPQ6ZYAYK+L5hg==","shasum":"37c17558b6eaf44706c812bf2f0ec93760b2004b","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.2.0.tgz","fileCount":16,"unpackedSize":52514,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEF37S0Ygt9cOC/dd/p+6ADr13SS9q7Q66m3+rOZsTFxAiASeSjO8wMzYEOSjOhjwJAk+r4AjB9xVyCtIImHWZEcGw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiw+4oACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoUZBAAgKD8dT2xcppOQIZdVWLlcPV/fXzylr1pEiG0bRK24fYaVC/3\r\nfE8OaoQrz77CWAjVtAnoMFiOp8EowNPQjm1AfpnhxMgIazIL2A+Tr/EsBdxs\r\nJoXgBSmdHZb/l8r2oA236GaovAvn7uYRSnzNnfuX+GGQrO80nb08UJhdKRht\r\nXpsAfLVUJBnIe+zBGW1bANuF/ehl+bcl3OYDqGly96AOhyK3TlVeYfWINyII\r\nSu7Isb2AgB1Bvfb3WxO0wjdm3C42dTwSGGq3W5ArMlbsvbRpZs5WBfSvFrGP\r\nPF9QK4575PGMcHdlmzhDyCfiRhYNufeL+ltnLCLwnPr/nJw+bTyq6PMNrt0B\r\n1wKyFQRwNi504GXXleWUIbyvgPa/CTMpu4Ps0pThp0UgemwZ6q75lpgrLvZJ\r\nR7fj0aXks55bKbBhP0XsaidfpWzymGf3MdPf/0x2qpeIl0SwXiM2ua7cXjcJ\r\nWdQHDggYoPLvgKOLfTRRozcYUKQloFztyf01Plhz6zBmQSiNPCAD80gu4nce\r\n3VzVut4l/0XM2ZkbG2yNzxIoo14yDWN1BoGzSVbDg+kgGefRPBBfoLUyvt70\r\nr/u/axkIWRtUZcxso+hYTAfVqrIrGl46S126mxH8m4nFj0Q9HZno8myzib1j\r\nY/9iVihxC0NiFwHCTgK6PvxRXwN5/T4LXd8=\r\n=ukyz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.2.0_1657007655790_0.9295808229820808"},"_hasShrinkwrap":false},"0.2.1":{"name":"timeld-gateway","version":"0.2.1","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.8.2","@trycourier/courier":"^3.13.1","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.7","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","ndjson":"^2.0.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.1","rxjs":"^7.5.5","simple-peer":"^9.11.1","timeld-common":"^0.1.0","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/restify":"^8.5.4","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.3","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"gitHead":"fc28c209545ca598076c75fdcbd08c3a3f137e6a","_id":"timeld-gateway@0.2.1","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-/gn4v51aYn3S5s2btoMqKb+WSNx9NpyMn6ipiu4Xo9Kb7C+fapzcEbWPoHCrLa3SbJkZ4wLkndJEnnxUZEcoGg==","shasum":"a4cc983def7df828ac8e4f8d57be6e1e282a4f41","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.2.1.tgz","fileCount":16,"unpackedSize":52740,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGbXncY0dirs52DwMlBoLkYCnJbriqW0n7tVL6vEp74QIgPfJ+i5RTHYRL6k1D2kamHkWd1W419FMjA73S1yM7wEQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixC0vACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrINQ//V+hIlOUxEjUeNZrEsuhygal94Zl3LtvfpQ7rqgOBabv8a0X/\r\n4NDnHObrwwOpDKnNztTV6J5O7++VYNVs1e2hqsKUdi4e5mwCJtmj+JGqvJZA\r\nijprzzBDwJWxX4e7dtONVM+uX1rhMLSJ6NjrlYWvTwpjq7X4vutKvf9xQf0h\r\n0WbV97D2VbDvUF60fD1tOj/+zNBvwyj2S7NvItfiWHDfeMeicBbLh31NWaCX\r\n2qXXYXFfBsyZrX4pth56TzL5iVRotgRs4cDujH+QLAdNKWugCr/MeoCJCzhP\r\n9ZM2pVlwXKHw2NU3jxJJENR03nvWveFLV4VxIN1wHa63ACdMQCawMc2rwWS3\r\nMW+JTbM+BncTQjCJiCkMSSshdNf3Kjodu20A8E4X75Ca6u7BYyrLqvdR5Tyl\r\nMFvIZoDeSYBkKizqW3fHrWTUTlIdt0cR5tzuiINTDaPOTLMj7JAzZq3ea1mI\r\nQDGgdPKwEd4HOhSIPu7PFv3nryOfZgjKtWizJJY4PVnv3pvxTHm3o7R6gXFS\r\ng4EL8UqhQE7r77n7oRbBz3b+0Nvc6d2mxlUYfMS2KPTLMHQQwTYl4b1ZhlB2\r\nQFx9HkcSg/9bE/dIN2tlXjozN0Tfm/BQ4duTblcSD3z3txhQwipZqiEy4Pzy\r\ngoaFfVb/g0Q0aBfQRQGbaKTjilKpBYSKNrg=\r\n=Fa+X\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.2.1_1657023790925_0.7514066853010888"},"_hasShrinkwrap":false},"0.2.2-0":{"name":"timeld-gateway","version":"0.2.2-0","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.8.2","@trycourier/courier":"^3.13.1","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.7","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","ndjson":"^2.0.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.1","rxjs":"^7.5.5","simple-peer":"^9.11.1","timeld-common":"^0.1.0","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/restify":"^8.5.4","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.3","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"gitHead":"b06560ce821e4d688022e5df03d0b625603b01a9","_id":"timeld-gateway@0.2.2-0","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-8jQVWgGalCMwkA3GdP4thE2NZGFbCXWkDVvXvmanG28ODeeWVp4Fb1uIKmpkF4upDBpKUxz0p2HgW0g9NyFXPQ==","shasum":"711e54907ca883b74a4edfc1fd1c7b4284d1864d","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.2.2-0.tgz","fileCount":17,"unpackedSize":53205,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOOPb0gECwBuLg+mueHVyrHwORj3vJQlDFVgYGwtLhLgIgJiSrE1NRov96+bdJNwipP5Bwg7JrqwLJzju01o6aI8w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixXANACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqC1w//XLbjzlTP8GHN5AH218D+sP+jdsgUo6KVinKnLSrWzUxmT/wr\r\nYN1sJkc7V5097aw8Orbbg+e/FVPkhWFIrH7y2pmEOs7RY3XOWAXHzEX7VC52\r\nD/56wtovnt+rKbXg8ivinGMuGPYe1fQEmZjm+2s+p8Y/4zXtrgJtnVbzIHBD\r\n2OmSP+9a40AnLxW5rCQCvtNnbN1AnkhF2FHiZLlRcLfvZIvyt+lw01LBMRmG\r\nTsnnvtqENcYSJKqxqiBDns9SBJAJlDzAaH+ih8hvo2oX6qWr7Dpq7Q15g6Gc\r\ne+TNP3TaXyDgMCFCdrm+bkpLst0SZ3vzQt+3eiupPFR2DWzrX3sljNqCN8WA\r\nU1mldTfKsGplbsBZNCs01rJI3bTUpsVRGL/VLrBggo1pPxYGCPjhEXFSG7UA\r\nofk+AWa2gYdUDFXjSUm2HHgnMGGvvxUaVMIGM0CHWdEfNLe444S6Pjmz1miz\r\nvSxQ9CB5l6x+0Z2rzSLFAGrh+3HEAtgPqtRwm0/qxFNhtj51Cj/QB+Mqa7yQ\r\n8xUDOPt8SCkoiPpytuEqGt8gIAQmwKkx/odVaejuEA8+ll1H+05JLDPevE2m\r\n3awyugGHVruvdJHCriJNfuJuiRfGV1EhPsQmhmVmVHU13SsW1/OzdKBpt8+6\r\nui089EgiSw8PYIJ5ol2DhhlBUUc4GWmOTdE=\r\n=8jpc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.2.2-0_1657106445651_0.029878062089793156"},"_hasShrinkwrap":false},"0.2.2":{"name":"timeld-gateway","version":"0.2.2","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.8.2","@trycourier/courier":"^3.13.1","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.7","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","ndjson":"^2.0.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.1","rxjs":"^7.5.5","simple-peer":"^9.11.1","timeld-common":"^0.1.1","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/restify":"^8.5.4","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.3","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"gitHead":"40deea2e951d23083c8180c899402690cd9b6a1e","_id":"timeld-gateway@0.2.2","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-ZWG9BQuogcfJqWKSJZCB9DxgrdbG2yNlCsU5JyjXdPr9zbM20OQBoOIeV27htsLOGJl2l9NSxZUW1OTVD8wyzg==","shasum":"3af57a5aa60a6d8acfe9c815f822999d95638a2a","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.2.2.tgz","fileCount":17,"unpackedSize":53954,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA9XEgkpUREin4ICTV+TT3JpDJ7AQF49aahN1hRpCc67AiBf0gO4OfgGajJ2EvoI/yrjEf93OKc9rAO2EztlBURGIQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJizUTkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqfMA//R9MQYN5crLELyl1g4d7dINNgQUv6QQWXBg7sxnrjV6+XNN6H\r\ntOmjUgqUhIdogmirZ38t+YgRIRkQu1KvkkjZ9dQu90rmBgl5MLyosOkPFaiS\r\ncQfn09U92XeG4MxH5/JZ3Nb1MCaB1ByiAwP2mJ6cndMaUCSnRk4EdRcxxZ/N\r\n2/jLmDqA3q6/HksFwcqTEDxnf1NiTKZ5Av09XWf4AfXng7CDzszrqop59uRM\r\n/Mqj1yANi/7cuN5fzLwkgi/MOzfXudbx1qlpZzLhhqLZEJnsHbD4xQHocySg\r\nqC/qeBISSS97aX6Lfzw3IR7pf1FdCbI4uMBQYA8Axpw8PYjrhIVgnq3NVSRz\r\npY2gDao74RaeNyNhWH9v0DdhdvKUQTgyigK2qxrChx5kYzn6nqAj00dRqwzP\r\nuiqeMOV+OMNspC4Eh+0Gi/YGZ+knOjFAfR40Xz7wf9PrvLhI/92v38P/x4LF\r\nK6doOdBhi73gn8PowUvQihgO6xdd5VVqyyanqNWs7a86muWgorIAPje4PX2W\r\nvHYnVPLWNOOs+yJfnK1rUmddRm/OTdPf8n8LD1m++Ys9m0xiRkD5GI5x/qfa\r\n4nAqcKlXyfNmB/LPk0RfrM6KwSOYq52i0MLWF/mrDbhgRVoXjP0DHiJWVNk1\r\nu6t2dtFnb7O3yR2IteFPEfbsZAwZcU/kKyc=\r\n=lmEY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.2.2_1657619684314_0.6960929922451198"},"_hasShrinkwrap":false},"0.2.3":{"name":"timeld-gateway","version":"0.2.3","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.8.2","@trycourier/courier":"^3.13.1","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.7","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","ndjson":"^2.0.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.1","rxjs":"^7.5.5","simple-peer":"^9.11.1","timeld-common":"^0.1.2","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/restify":"^8.5.4","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.3","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"gitHead":"164aad922cffdee23bad535fd0892736df8b0ae4","_id":"timeld-gateway@0.2.3","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-dAy0/uGJwZK5mQCivybgA5BquO+2NgQqZKcK/ScYrfR2KH9Pvs4E3rIqmIenASWgpR4Ezvyrutz37wUaVyCoXA==","shasum":"e0fbd504626fe49653e1699a553b0e2f64e6d74d","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.2.3.tgz","fileCount":17,"unpackedSize":54144,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCoVw/rfaHzQGbBDaqmt3xT/YdNrBnpdeeYldGD6lsvhgIhAKm05X6xigamcbEddh5ME+P6fWI/qNlQDcAt/SHAN3X0"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6qasACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmriww/7Be5/yJMRQlteHUCaZDf6pcvWBcau+TpJBbDGo9gh0bNgS9m+\r\nRkrTfX9pDWB2X4saweklvuU8ByAcn6p1jU8g1bonXimoj3m/3O/2+bYmZ27n\r\nZuTCxjVzRIMXBlKxeep0lIZ37mLfw5TINGM3EetTBMKHNo6Gpjz6AgzwpfdY\r\nXUbs5qiZwhihUlN5ROMGbdyz66o0DOMJZMyYzuvIfmvKspJRDRP8racuziyw\r\nmc1iIjWg/j23djvz+ytL85jcoBhSTxWwRTdTyt8VMctebMYoOdzuGqgZro++\r\nuz+TysyBdEBQNy5FezVsUyXuVjDOxfSYiOv3N440c8JTzjMvyNotvtthRMR4\r\nPJ53uM7jhmN3s41ebGLPsmla/3STDHxanol35Ri8dTO+fCBkKAyPytBJCVkc\r\n55aARJVZOf4pEKsaNtLGJTLPFNxcYZgBCKi181pYLv7JyqX/N7dofRGAHr9F\r\nJneG7XgIuoKN6FeCcCol/+4u1HjxbRk2K8mYDgMZClwJiTFBNDvk0Ms66fA+\r\nov+LQXmK7GkSc6UJ2ZgzeWYCw0xACADUXgT6hbR4Qjc+Nxs8K1kphLCZnhlC\r\noPVwpQWpmQ2FeuO5MozpHWTSRwlaPTh3QkK/AvvbguQGTe275n8ZOM4MOEul\r\nZ9/atsInStzo+W7blEM7FCzxm6LPNIfPg/U=\r\n=GaQd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.2.3_1659545260016_0.6116858091965802"},"_hasShrinkwrap":false},"0.3.0-edge.0":{"name":"timeld-gateway","version":"0.3.0-edge.0","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.9.0-5","@trycourier/courier":"^3.13.1","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.7","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","logzio-nodejs":"^2.1.4","ndjson":"^2.0.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.1","rxjs":"^7.5.5","simple-peer":"^9.11.1","timeld-common":"^0.2.0-edge.0","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/restify":"^8.5.4","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.3","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"readme":"![stability-wip](https://img.shields.io/badge/stability-work_in_progress-lightgrey.svg)\n\n# timeld Gateway\n\nThe timeld Gateway is a service to manage timeld accounts and persist timesheets safely. It can be deployed and scaled easily on a cloud platform.\n\n## Fly.io Deployment Notes\n\n### app\n\nDecide your app name.\n\n```shell\nflyctl apps create timeld\n```\n\nIf developing off the `main` branch, the deploy script (below) will use your current branch name as a suffix; in preparation you should run the above command with the suffixed name e.g. `timeld-edge`.\n\n### volumes\n\nA volume is required for clone persistence (Gateway and Timesheet domains).\n\n_NB: The `-a` parameter must match your app name._\n\n```shell\nflyctl volumes create timeld_data --region lhr -a timeld\n```\n\n\n> NB: \"A volume is directly associated with only one app and exists in only one region.\"\n>\n> Each _instance_ of an app must have dedicated storage. So we can either:\n> - [x] set `fly scale ... --max-per-region=1` (limits scaling), or\n> - [ ] create a directory under `/data` per [allocation ID](https://fly.io/docs/reference/runtime-environment/#fly_alloc_id) – (creates a garbage collection problem with rolling redeploy)\n\n### secrets\n\n```shell\nflyctl secrets import < .env -a timeld\n```\n\nWhere the .env file contains:\n- `TIMELD_GATEWAY_ABLY__KEY={your root ably key}`\n- `TIMELD_GATEWAY_ABLY__API_KEY={your ably control API key}`\n- `TIMELD_GATEWAY_COURIER__AUTHORIZATION_TOKEN={your courier auth token}`\n- `TIMELD_GATEWAY_COURIER__ACTIVATION_TEMPLATE={courier activation email template ID}`\n\n### deploy\n\n_NB: If you have made any changes to timeld-common, it needs to be published first._\n\nA script is provided to generate, and optionally run, the correct deploy command.\n\n```shell\nchmod +x deploy.sh\n./deploy.sh\n```\n\n`deploy.sh` takes three optional arguments:\n1. app name (root); defaults to `timeld`\n2. app name suffix; defaults to git branch name e.g. `timeld-edge`. If `main`, no suffix is used, i.e. just `timeld`.\n3. `genesis` (if used, the 1st two arguments must also be given)\n\nThe first deployment of a new Gateway **must** be started with the `genesis` flag.\n\n### random\n\n- `engines.node` is set to 16.x in `package.json` due to a [bug in Restify](https://github.com/restify/node-restify/issues/1888).\n- `simple-peer` is a dependency even if we don't use WebRTC (a bug in m-ld-js/ext/ably).","readmeFilename":"README.md","gitHead":"03f416b6048ba4c755e4170631f78e3964396a03","_id":"timeld-gateway@0.3.0-edge.0","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-t3w01OHBNq0yvEwBl6nG+8Sjcb33Y6PIP4MCSJJz9LVU53dYPP9tirGZEGvOwhgKdzh3OQ8czCPdAS2TR/Ju6g==","shasum":"d57545f43fcc0506784826a3f27992ffcaafab7f","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.3.0-edge.0.tgz","fileCount":19,"unpackedSize":59702,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDp6NrCl/zmMmZU0gNjfja+yDWHXx+A3/cy0gVPtevmFwIgGQk0QCbY2Q+ewGuyCYQant/5GNPj+Y7wjbfujcOo1Ik="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi77R6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr8pg//fxgynyzq9+0ONdpwjlxVWfQNXexbfcdMLKihmq+2HaiCe/3C\r\nSusgbODPlHmKFILXDvyF/c9HbBnDmGTSNlWgOlhO457hbPZ+CjTnL8Cc6Ke0\r\nOkMvIWQf/Kmrg80u0kEWVYP3H2ljOxtLG6VSNz4gfmbobcvy6V8VVr31+AOf\r\noIfPMrZ1oPIZxE08C4yqg1yITfyre2Y1MUXKaJT2+yFtyfeM/wB38mE5pe/a\r\nG4i/FmkBnScR2WCsctFIDKNiuvpJXKAJAM2x2QozqCZhqECjNGn7P7enjNjN\r\n7TkR2skYsqmUoULrjLZUhCL+5GFg6qlSVvnGQ4yMXg1bhZJout1OjCS3D0Bq\r\n1tSp5CCdJXSXTmIV2ipYwUvP0zr10v7F/AJr5FCmEpM3oIWdAqR+LhQAqki8\r\n+dwpjnGmBccNz68e4j4QvvwQg6nPflCYyYqN4TLI0Y+5F3BPsN4gaHeSRoiB\r\nD5xGt4SKubojKR1McB7VB0rFMMaQHoJSw5jiIspY2kRSBheJLNu8WGa0vwM6\r\nydw068mXwwLdPTCd/avT107TVpLAWJ8HBhBSHslI7du+5QeaQ/1nT0SlM2A3\r\npgxTZkj+osWcaswMLtgVREi8oRLya4cGPsgzERapljJ5mbLKVVGkuiP5Dgjf\r\n+/jVZif7T31La5YhwGQlhDKJaPcBy/sa+NU=\r\n=tpU+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.3.0-edge.0_1659876473854_0.46911015607713846"},"_hasShrinkwrap":false},"0.3.0-edge.1":{"name":"timeld-gateway","version":"0.3.0-edge.1","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.9.0-5","@trycourier/courier":"^3.13.1","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.7","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","logzio-nodejs":"^2.1.4","ndjson":"^2.0.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.1","rxjs":"^7.5.5","simple-peer":"^9.11.1","timeld-common":"^0.2.0-edge.1","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/restify":"^8.5.4","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.3","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"readme":"![stability-wip](https://img.shields.io/badge/stability-work_in_progress-lightgrey.svg)\n\n# timeld Gateway\n\nThe timeld Gateway is a service to manage timeld accounts and persist timesheets safely. It can be deployed and scaled easily on a cloud platform.\n\n## Fly.io Deployment Notes\n\n### app\n\nDecide your app name.\n\n```shell\nflyctl apps create timeld\n```\n\nIf developing off the `main` branch, the deploy script (below) will use your current branch name as a suffix; in preparation you should run the above command with the suffixed name e.g. `timeld-edge`.\n\n### volumes\n\nA volume is required for clone persistence (Gateway and Timesheet domains).\n\n_NB: The `-a` parameter must match your app name._\n\n```shell\nflyctl volumes create timeld_data --region lhr -a timeld\n```\n\n\n> NB: \"A volume is directly associated with only one app and exists in only one region.\"\n>\n> Each _instance_ of an app must have dedicated storage. So we can either:\n> - [x] set `fly scale ... --max-per-region=1` (limits scaling), or\n> - [ ] create a directory under `/data` per [allocation ID](https://fly.io/docs/reference/runtime-environment/#fly_alloc_id) – (creates a garbage collection problem with rolling redeploy)\n\n### secrets\n\n```shell\nflyctl secrets import < .env -a timeld\n```\n\nWhere the .env file contains:\n- `TIMELD_GATEWAY_ABLY__KEY={your root ably key}`\n- `TIMELD_GATEWAY_ABLY__API_KEY={your ably control API key}`\n- `TIMELD_GATEWAY_COURIER__AUTHORIZATION_TOKEN={your courier auth token}`\n- `TIMELD_GATEWAY_COURIER__ACTIVATION_TEMPLATE={courier activation email template ID}`\n\n### deploy\n\n_NB: If you have made any changes to timeld-common, it needs to be published first._\n\nA script is provided to generate, and optionally run, the correct deploy command.\n\n```shell\nchmod +x deploy.sh\n./deploy.sh\n```\n\n`deploy.sh` takes three optional arguments:\n1. app name (root); defaults to `timeld`\n2. app name suffix; defaults to git branch name e.g. `timeld-edge`. If `main`, no suffix is used, i.e. just `timeld`.\n3. `genesis` (if used, the 1st two arguments must also be given)\n\nThe first deployment of a new Gateway **must** be started with the `genesis` flag.\n\n### random\n\n- `engines.node` is set to 16.x in `package.json` due to a [bug in Restify](https://github.com/restify/node-restify/issues/1888).\n- `simple-peer` is a dependency even if we don't use WebRTC (a bug in m-ld-js/ext/ably).","readmeFilename":"README.md","gitHead":"971f9cb56caafd8280af60f6f014e4b59ebdadb8","_id":"timeld-gateway@0.3.0-edge.1","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-SrAOn966iBv0nIk9uFdVzxu1OYTwrnPE6SXZJAGlKomnoipNCaNOh8+pBdp/fe4mxkEfYQ3Xp2YifiIwB9QNug==","shasum":"b51593124a0fcdc2fb58747f769391d083d2d56a","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.3.0-edge.1.tgz","fileCount":19,"unpackedSize":59715,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBcsLKhKUAIZT74EScOhndIPNqX9D7GmOaGd7ZfPOVSAIhAJEMYtiGzmlY5wtbVwjtI7vjmMyQkJjIC1DGozy/hQDM"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi79PvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmorhBAAgKHUNEozJCggs/N2XZqsbOKbJGiwNKj0V05ynYU34hOw/e98\r\n4e27G9GqEC9k+X+7jlq5jteENwoN2IK09uRU18JCnFBoQ6IzeMYQqMNzHkBN\r\n9xJkqY42RqDbG1MlrwNXQRwlQHmolPcQnIJR8lcQQRDZoT5Uw0wZzexDSEe9\r\nkaredcksqLLNAUps3Py9e39eJ2fjZR+yfr0RSWH2UQiZJ5MHJOKALW84V0gl\r\ncj8eSH6bn82a34mwa8/62dG0UY8gI3JCsBOQyB+ExbePxKnw0lXh8tJkyeKM\r\nXUoDJlBkYN1Plvu36Wiv0EVsYzt53CnkTD0OcEKAOrbsOhYZdtnY4zXWCxKR\r\n+CADVyscYWeFL0kVgGLS8Wh9SJOWYEdfBMaobARGVeF/3apYw5ga71DHvUPG\r\nu4wpj8XD7tYsY8TXMdCxQL77z/QaPQw0i7Tm6Sg1TdyMmemERIxGvZ1KA4il\r\nYX6KjxGNYvVj0SXSK7503Om7diclaG3fdQUMZbC1pkEJpYnHbKheRMRW22z4\r\nANLAXOS8+n8AOvgMZnRgg/q8oMaEGAArU7RzJXoKDQmXjlUSIwECOt6IPvip\r\n8qyFXf7MmY5aC33kvnbtOuYVDNPwQWKNt2Tmj4V8Cr1Y8eNGT5UGktTHDSpE\r\nzX1GyklNtIQJXZHF1xqvxl6H4iWLbomRI3I=\r\n=RYPV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.3.0-edge.1_1659884527171_0.7148302724804041"},"_hasShrinkwrap":false},"0.2.4":{"name":"timeld-gateway","version":"0.2.4","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.8.2","@trycourier/courier":"^3.13.1","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.7","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","ndjson":"^2.0.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.1","rxjs":"^7.5.5","simple-peer":"^9.11.1","timeld-common":"^0.1.3","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/restify":"^8.5.4","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.3","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"gitHead":"7be27a099b1803218e544c6ecd0110bbb34d2231","_id":"timeld-gateway@0.2.4","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-C9y/qG29XCQfnoVS5nVqS3RD2U4AQpXyvb+8IcFH1d1RG4f3adZho7idr0atjXzpMO0DDzCi/lcFKO/ekDSKKg==","shasum":"8212f4aadc302fbfa9544f0db2f97028d53e83d1","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.2.4.tgz","fileCount":18,"unpackedSize":57082,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBud1UVZLNVvubiJeiXwg4R+9GGZcXFzDVZrdf5kOFBcAiEA4+JkRczcnWi30Ld7UEI9rBoIPgaeppA9cmI7+Qswfs0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi92PsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr7mA//TVYMBzO0gi4qFFIxWlzIfUWCRpSp5PifZL67+6gcjg5C650Y\r\n1J1bKnBWwf21vz6vSM/8Z7k9n9c/QGN+VaVPuAaKkFhbZ5hvjI5b/skNhmOn\r\niknZ7DtYX6q12D4ka2/K5S+TA/lRG8Sh00MzOsNlGQaRUOIYY2eLhwbvlP6C\r\nOFs+k+gEl8c+8bziVnJRl3qAMPbiE9GFjwzIQRfnGbt5Ktyy7maVXAS0oSgy\r\nmFhAsti1XeZDGSxc1PVqlyxF9ZXx44X/UCauZtFz6tY6U6qqgALG31JVIiiP\r\ncuFHWScKdmmzfO+Mmi8a9KZVr07dqQvTXA7nqqtOSvyneE4PG3cF/urWhGpj\r\n3LbrYvhP+8Lu6LgcWvYUM5tA72SnZugG3H8A8N+DRu2jDrhNOdD4ZE2Uq4yr\r\nKGXDP1UzTSeFs/63sLitS1H+pzuzPw8KnFZeada2kP0VqjuHPvNoxULshGmE\r\n1WgcwDmlWNVpxAkPFbeuX/2T8hAPrbxM0WtsoMSem1czArFlpofXCfjLOLE5\r\nXzcRl84NuM2aXj/vwF1rZarWbbB4jVKmMfoff6mNK2GM8x+/lyyQP90eGRD1\r\npDkVYcJ/bdF5SUcbWpAxMhTkcqNI0Uys1SNvFosCLUCneRvbpK1gOpGEbW/8\r\nQUp0V7QispY5cgyE1XctffSBr/kXj0wwkyw=\r\n=yi7m\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.2.4_1660380140296_0.9798063422749088"},"_hasShrinkwrap":false},"0.2.5-prejournal.1":{"name":"timeld-gateway","version":"0.2.5-prejournal.1","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.8.2","@trycourier/courier":"^3.15.0","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.8","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","ndjson":"^2.0.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.2","rxjs":"^7.5.6","simple-peer":"^9.11.1","timeld-common":"^0.1.4-prejournal.1","timeld-prejournal":"^0.1.1-prejournal.1","timeld-tiki":"^0.1.1-prejournal.1","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/restify":"^8.5.5","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.5","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"readme":"![stability-wip](https://img.shields.io/badge/stability-work_in_progress-lightgrey.svg)\n\n# timeld Gateway\n\nThe timeld Gateway is a service to manage timeld accounts and persist timesheets safely. It can be deployed and scaled easily on a cloud platform.\n\n## Fly.io Deployment Notes\n\n### prerequisites\n\n```bash\ngit clone https://github.com/m-ld/timeld\ncd timeld/packages/gateway\n```\n\n1. Create a [fly.io](https://fly.io) account (requires a credit card) and install `flyctl`.\n2. Sign up for [Ably](https://ably.com/), create an app in the Ably dashboard, and look for the root key and the api key.\n3. Sign up for [Courier](https://www.courier.com/) and copy the authorization token that gets generated.\n4. Decide your app name!\n\n```shell\nflyctl apps create {your great name}\n```\n\nIf developing off the `main` branch, the deploy script (below) will use your current branch name as a suffix; in preparation you should run the above command with the suffixed name e.g. `timeld-edge`.\n\n### volumes\n\nA volume is required for clone persistence (Gateway and Timesheet domains).\n\n_NB: The `-a` parameter must match your app name._\n\n```shell\nflyctl volumes create timeld_data --region lhr -a timeld\n```\n\n\n> NB: \"A volume is directly associated with only one app and exists in only one region.\"\n>\n> Each _instance_ of an app must have dedicated storage. So we can either:\n> - [x] set `fly scale ... --max-per-region=1` (limits scaling), or\n> - [ ] create a directory under `/data` per [allocation ID](https://fly.io/docs/reference/runtime-environment/#fly_alloc_id) – (creates a garbage collection problem with rolling redeploy)\n\n### deploy\n\n_NB: If you have made any changes to timeld-common, it needs to be published first._\n\nA script is provided to generate, and optionally run, the correct deploy command.\n\n```shell\nchmod +x deploy.sh\n```\n\nIn preparation for a first deployment (\"genesis\") you need a local `.env` file (in this directory or in the repo root), containing:\n\n- `TIMELD_GATEWAY_ABLY__KEY={your root ably key}`\n- `TIMELD_GATEWAY_ABLY__API_KEY={your ably control API key}`\n- `TIMELD_GATEWAY_COURIER__AUTHORIZATION_TOKEN={your courier auth token}`\n- `TIMELD_GATEWAY_COURIER__ACTIVATION_TEMPLATE={courier activation email template ID}`\n\n`deploy.sh` takes three optional arguments:\n1. app name (root); defaults to `timeld`\n2. app name suffix; defaults to git branch name e.g. `timeld-edge`. If `main`, no suffix is used, i.e. just `timeld`.\n3. `genesis` (if used, the 1st two arguments must also be given, and the secrets will be pushed to fly.io)\n\n```shell\n./deploy.sh timeld main genesis\n```\n\n### random\n\n- `engines.node` is set to 16.x in `package.json` due to a [bug in Restify](https://github.com/restify/node-restify/issues/1888).\n- `simple-peer` is a dependency even if we don't use WebRTC (a bug in m-ld-js/ext/ably).","readmeFilename":"README.md","gitHead":"13545a7f062bb9e7612b2729c8439adeb16b6b2c","_id":"timeld-gateway@0.2.5-prejournal.1","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-sT7EHqDxXPr15k++gO+k33AcdVHdHZ97TzLuY7AwFzbM0Y7Sz+SOh+XvyuGNPw6rX+f90s04kNeHRf02qPxYig==","shasum":"eaffbcd56608d4a2629225412e120f1c558a4e47","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.2.5-prejournal.1.tgz","fileCount":19,"unpackedSize":69031,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGcE6/CF61n4/w6IvrLwD4ytypF+zc1J7op+NDX7xzL3AiAxgQc5zml9Ra9lnmqh6KMa83H5zOjiKrRJxH4HxwP4ew=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/4CaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmriTQ//YEgyjN/L4xw1LyJ8r/qQRJx6WWv8xZciQYWGCGNFnG6iqgf/\r\n+qVvNRz4xdjmMO3B4I5Axj+3smAKLqLgUpgHha9nNnz/oxMecwi4MOc0GLNj\r\nsK8Vkr7h7YHPdHUBgnqpUHQ94MDVtGifN0/oP/3d4pmjmKuNhyd9DFUgWd+c\r\nvmedXISyjAVPkIP4tmF5EaBsIr1ao5udXRcpuRp2rlfxlY6IjZE7oYMPyP87\r\nldkvx+2RN16qghg6CZu3egNKtiN/ydnF6Gg27V86nVtlkfxsjDdk9BYg+l2q\r\nySRajlAgIROb3u9Q1kSnNfyrGxoeu1sLsD/uWfjD/GWFdQ5M2D+zTxnlylKf\r\n1R/VmIs3mcBPcHW/T80pix0y6RvONuAUcQ1xZh1G8fPruzgFrQYRd7o6I9DL\r\nhXJBRD52Mz5Ry1llq5aBxs9srttoQkwq651K04ixCTIcpQc98yYU0/CKgwjg\r\nAVVZfnOjUdV4KJPFvQx7DvdLak8HUgAv0bF+qyOPXju2NcN+kjmOjFlz7dB7\r\nTyEtZkcv+kts5rAk6VEeLtqtPYHgPd0Y3p78lnmvTuwKd0XMmIrPpFrxjqF1\r\nv/x9XMrN3fbUHZzL+zy7yxaL1hHDNM4RpgrAi535M4YhbgCX7QRGvvN1b9qx\r\n2XpRcxg+mA9kcZGkecLMgERBPprGKEiYgmc=\r\n=PCz1\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.2.5-prejournal.1_1660911770338_0.7156993139129013"},"_hasShrinkwrap":false},"0.2.5":{"name":"timeld-gateway","version":"0.2.5","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.8.2","@trycourier/courier":"^3.15.0","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.8","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","ndjson":"^2.0.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.2","rxjs":"^7.5.6","simple-peer":"^9.11.1","timeld-common":"^0.1.4","timeld-prejournal":"^0.1.1","timeld-tiki":"^0.1.1","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/restify":"^8.5.5","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.5","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"gitHead":"e2ca3dba51e45ea608e70de0054fdf923690a0f6","_id":"timeld-gateway@0.2.5","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-zZgfWjTGBwPOVqQ+b2+0Qx5Df3Uw1sm9yWw9inPH9K+gG1dqRIPWUIXsPzCZItiUQzaTQsqAstEA36F9Nt8dMQ==","shasum":"b73f52e1fc9c341ba7bc62da672d975a02cce811","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.2.5.tgz","fileCount":19,"unpackedSize":69358,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNAmGGeo01/Ygu5XiQlAwAv0DkdjiYxAnO8VuW5llm+gIhALrP4dgiOpVA6++j7drV7nj/QCdwGLoEC/95ppBeEkDm"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDIPAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr6Zw/9E8/EgxFZSkNZqjbubL+vFk9wq6H71GC4WzU4t70uH76jYoUv\r\nrSXYKWvckWj2OyrPpZAxu+ZGkLy+BJVMB/UE2iIU+p1Q18/8lXjyefH2ABAz\r\n1Xh94ogjqWsZZpi53pwBE6YexXo5os+8Xtw18cAP6jg8gSBKTW8qy3JSJOgz\r\nJ0WC/3hfhEQZqBu5ZO6JZipMsqEZXzrXyFlxPJB+Av5jLk4NzpIeERd6vSCB\r\nH6lQl3oPE+nrSRKGn1+DeiIKYD2exrg9blCZcKHVDn45EpZpnbK+EpF0Yceb\r\np7nq3oE4goSavdXGZWnstq5fVfQnaHqRR8CQekKn1YerbA8qK4ZiDz35d0EG\r\nuc2BZQ7PEOIWZgOFFAr4qo+WwImKORgRAlQ2r35VEGBNitXUx3gVt8T9Tex/\r\nh3NkWQr1pTN7F9o9tm+sWqoLTZ4NQLvk0HhPgtC7y5EIFBhTUcjBuo7+R9aZ\r\n+1srs+56P8RGA0J/TSHF22Qf264CnRYxOKoFO+Eq9FrZSyHyEcgODS9Rdiit\r\nKDAlesVXnDkeoU6WUVl3FgdM8mu2bYK+JCRRiXwfPym+6cHuAhq4/0kMwTYz\r\nJdOu9tLC6Z1BhrPRWm1Dswz6aMieoVkMyN+zYZkI1jtS7n6keTpYUJtPjx08\r\nQKMdygFFFcUnvrKmAvNzizsJFD6b663j0sw=\r\n=QJl2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.2.5_1661764543857_0.49157141796921167"},"_hasShrinkwrap":false},"0.2.6-no-ably.0":{"name":"timeld-gateway","version":"0.2.6-no-ably.0","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.8.2","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.8","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","ndjson":"^2.0.0","nodemailer":"^6.7.8","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.2","rxjs":"^7.5.6","simple-peer":"^9.11.1","socket.io":"^4.5.1","socket.io-client":"^4.5.1","timeld-common":"^0.1.5-no-ably.0","timeld-prejournal":"^0.1.2-no-ably.0","timeld-tiki":"^0.1.2-no-ably.0","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/nodemailer":"^6.4.5","@types/restify":"^8.5.5","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.5","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"readme":"![stability-wip](https://img.shields.io/badge/stability-work_in_progress-lightgrey.svg)\n\n# timeld Gateway\n\nThe timeld Gateway is a service to manage timeld accounts and persist timesheets safely. It can be deployed and scaled easily on a cloud platform.\n\n## Fly.io Deployment Notes\n\n### prerequisites\n\n```bash\ngit clone https://github.com/m-ld/timeld\ncd timeld/packages/gateway\n```\n\nYou will need:\n1. A [fly.io](https://fly.io) account (requires a credit card); and install `flyctl`.\n3. An SMTP service and account, for sending activation codes.\n4. An app name!\n\n```shell\nflyctl apps create {your great name}\n```\n\nIf developing off the `main` branch, the deploy script (below) will use your current branch name as a suffix; in preparation you should run the above command with the suffixed name e.g. `timeld-edge`.\n\n### volumes\n\nA volume is required for clone persistence (Gateway and Timesheet domains).\n\n_NB: The `-a` parameter must match your app name._\n\n```shell\nflyctl volumes create timeld_data --region lhr -a timeld\n```\n\n\n> NB: \"A volume is directly associated with only one app and exists in only one region.\"\n>\n> Each _instance_ of an app must have dedicated storage. So we can either:\n> - [x] set `fly scale ... --max-per-region=1` (limits scaling), or\n> - [ ] create a directory under `/data` per [allocation ID](https://fly.io/docs/reference/runtime-environment/#fly_alloc_id) – (creates a garbage collection problem with rolling redeploy)\n\n### deploy\n\n_NB: If you have made any changes to timeld-common, it needs to be published first._\n\nA script is provided to generate, and optionally run, the correct deploy command.\n\n```shell\nchmod +x deploy.sh\n```\n\nIn preparation for a first deployment (\"genesis\") you need a local `.env` file (in this directory or in the repo root), containing:\n\n- `TIMELD_GATEWAY_AUTH__KEY={some root access key, you choose}`\n- `TIMELD_GATEWAY_SMTP__HOST={your SMTP host}`\n- `TIMELD_GATEWAY_SMTP__FROM={an email account to send activation codes}`\n- `TIMELD_GATEWAY_SMTP__AUTH__USER={your SMTP account}`\n- `TIMELD_GATEWAY_SMTP__AUTH__PASS={your SMTP account password}`\n- Any additional secrets for extensions, e.g. see ../prejournal/secrets.mjs\n\n`deploy.sh` takes three optional arguments:\n1. app name (root); defaults to `timeld`\n2. app name suffix; defaults to git branch name e.g. `timeld-edge`. If `main`, no suffix is used, i.e. just `timeld`.\n3. `genesis` (if used, the 1st two arguments must also be given, and the secrets will be pushed to fly.io)\n\n```shell\n./deploy.sh timeld main genesis\n```\n\n### random\n\n- `engines.node` is set to 16.x in `package.json` due to a [bug in Restify](https://github.com/restify/node-restify/issues/1888).\n- `simple-peer` is a dependency even if we don't use WebRTC (a bug in m-ld-js/ext/ably).","readmeFilename":"README.md","gitHead":"097044183f1ffa1e97095dc90dc5b125c8bbe5f8","_id":"timeld-gateway@0.2.6-no-ably.0","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-uatsmpjCUU4hwCIBQKS2sLZb3O35RwuTahmDQahHMY8svXbCfIq882CLi77Xe3P71RUEZdMwhE0lWk06v1itUA==","shasum":"a91cc6a75e6cd4f2d0993a3677d282c14eaea33d","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.2.6-no-ably.0.tgz","fileCount":19,"unpackedSize":68649,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxIjrEmeqXpQoGQ0BixwVf4RdhG0glsJRV+Dq9KkTCWQIgbeHCxIy1nrQt5lbgE4RPfcAvMRCCd2HCTd8WHfTQrps="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjEwYDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqfaQ/+KqgkdY1UmBEXht6qC2sEKhi+5z2GZ2aw9VmZnvuIW2tVzloG\r\naxKO+wPSVHxgx/N4QQzWPpa16jZ08vfZISVxuOmxn+35qEIdimakIRANHnQu\r\nkYX3T9XUfeNHcyqHl/C1/dAZIilDhpy+GG0oj0+k5M8UuYEyA9i7qVuaOoqs\r\nt333O5zgl3LLw2Lg/t+/gpy9FElPEc7t/CqMkbmcHU7icFzfdSux6UvhP6Yg\r\nD31lPeW8Z6hl7GrFEYqEYhL7U4CRBtFPqCnxOeiZ31qEbFsMB7CVMg7xiJdl\r\nSEKO7AHPQGOTsBYeJhuRuc8t5bZC89sGbaY90EmmTT3oaPP4UyI0a+1fJUJA\r\n8MMfH4v5a8sHIOSOcaQoh0SGFU0VUcg9d9Cpk4cyihmLismAi2cpb3InNWlP\r\nT7gDR3SSrCW6yGWU6+vsZxzTjuS/iGXarA8ar+0Z9fsaoqmw55CQ1f25ffzi\r\nWwCQuFtAyPXkxUJXJvlWUyonjQyTQvt878frjRu/ivjZseajOUHHanHDy8ek\r\nlIqudxxDWxnxV+nglzvH1/zbGDFAqFepKtDUOCMvhhr80NZdrCY7SxwDLSIy\r\nxNYDQqE9GaoLRTo/sVlDnNdMupEQxuBeh2tx65Sb0Xud2Mhntg4TnHmXo7N0\r\nXRVQ1Mdp2aEtnbhQ9ZRnkwmHObY2JwDhIzc=\r\n=QBYE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.2.6-no-ably.0_1662191106871_0.7546361538077218"},"_hasShrinkwrap":false},"0.2.6":{"name":"timeld-gateway","version":"0.2.6","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.8.2","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.8","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","ndjson":"^2.0.0","nodemailer":"^6.7.8","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.2","rxjs":"^7.5.6","simple-peer":"^9.11.1","socket.io":"^4.5.1","socket.io-client":"^4.5.1","timeld-common":"^0.1.5","timeld-prejournal":"^0.1.2","timeld-tiki":"^0.1.2","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/nodemailer":"^6.4.5","@types/restify":"^8.5.5","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.5","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"gitHead":"d00eda1088a04cd39c403b8f3b47466273d98284","_id":"timeld-gateway@0.2.6","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-8vBfRczIKG5StA4PnbvnXYmzBVcQFyDXpf/8uvnZTib81ANvVA0/mfmFr+iKiUAgja17ZXjQ0VXafG84FoPTrw==","shasum":"5129ea3636b8d0199967261eacf18be43772d1f3","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.2.6.tgz","fileCount":19,"unpackedSize":69023,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEF5eV700IisGq75Nij0oEZK6TiQhPZvfI8CdauckfQpAiAdx3kVSFuARp8H8haETGPPCYAr3C1DN+of7R/x9WGAXA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFGhqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpjRQ//QmO10VW5uJ+zTcd2IC6FRJVHLyjXMWFjxk1Pj7RaS4O6hu0S\r\nJe4O7JWl6CsWyeL/6znr0MThvVNQmqfmqs/xngtCQFds8iogbNjvLwI07h15\r\n3unPdssrNocJz+WKMBeCp1kEYrs0fF9mGWuFjeztqslZgP9baLr5r1Vo7qeH\r\nmUfS+P3SxGyLtQeRsjlUlfksFSVf48AimBUJuBcoimOs6cpFdPJR/degHD5O\r\nleTVUL/LotU+m27ttfezNGu7r9s15ZGp+SCeMNNWL/Ft5gMc6h4AQ2dSFwYj\r\nIlwDRo+0F8Se6IoIb7QHr5YNPWNNQ2zh+Xl2bZU4OzoaYSOxhGz0SBASd3Zc\r\n2er2vyah3HHbtXAvotC3e+SqvG4jfkMQkU4oD86NgArZcjI7J+E1ONBpKSE+\r\nePKUnfPg8/lFIR+cIBCtirX37HWFi1l+yOod2vjtVw/vWxskWOyrvg989/Iz\r\n3JwQ5wyPF74Y0aT27hBf0heRAfCThzBPhiL1d5q65/DhrU8USiq492bb6MC5\r\noguaSfydSeZOxit5xLzaIZosHX9vd371PGc59AG4cRCb7fRuqsKi2GIyp9ag\r\nSd6jiDKPDQSXbpUIZHCA0J2Me6n/b0LhxNF56jfK/PNt8c/XPARE1pd10A8d\r\n2u6TBwxRCnc5s55Vo9pr/3ydSOcsxvLi8F0=\r\n=l1iU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.2.6_1662281834373_0.2834390759642291"},"_hasShrinkwrap":false},"0.2.7":{"name":"timeld-gateway","version":"0.2.7","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.8.2","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.8","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","ndjson":"^2.0.0","nodemailer":"^6.7.8","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.2","rxjs":"^7.5.6","simple-peer":"^9.11.1","socket.io":"^4.5.1","socket.io-client":"^4.5.1","timeld-common":"^0.1.5","timeld-prejournal":"^0.1.2","timeld-tiki":"^0.1.2","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/nodemailer":"^6.4.5","@types/restify":"^8.5.5","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.5","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"gitHead":"c7a12fbd25d5d41415fcd3ea8572288fe06ac7ca","_id":"timeld-gateway@0.2.7","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-cnZgx9kIsMGXXwbsAJA6i61zJfaPGNkDhUdQXMDlp8PleEhtTnEnP+eIbVdiZxDVm/Ak85X8FGvvUAbxz1jKnQ==","shasum":"4d080c845bea30d43ee33bb7d5047307d48ea122","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.2.7.tgz","fileCount":19,"unpackedSize":69178,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8a1vUGB1lxi/7FRjHm+X0b8RXwTmRH+RTtYqtBFID6AIhAOE/mxU58ZXxZPrU4HWN24P0SgutPnAXQU5bSNqSQlM0"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFHtHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoLYQ//YV9D8PInQ5LBU2Ewwtl3AQMVVZP199PDYWy2ISj4jrepoTIu\r\n8LzIaoPDlUTucQv1VkQQg6Asv8/VaKfQdorJ56KU53Rrj1gUdDGkvywwNSk0\r\n+rcVvlAHlZaO2a7geDtY7kiBafptwHTBvVNntFPLh2CcHijWyLrbR327xUGP\r\n2Hb2R+WKErXXTnLN1owSZXWBIUGra2sFVzjIAUmSKkVetWTOwIlsQ2KpEm8u\r\ngGvBlNEq0YmMFetqPaDYokzPy+suceXVGn2WKaXz1xlq348ZCNA2+yelXDHK\r\nDJPfqIVfExeEWF61VUjlu7LO6dNnZXo+1NOeBfBi7zXJiicbrbqSyZ/hZXyw\r\nOD0qHbCrfX07lbh1SDdUpW4RK5ZdbtUBaS9TwtcGzPRFJP8akhqpR4BC3q5S\r\nD2MHeOBVi/bxI/CLRV9M2W1xgGJZb6AaY0KilXDMjzc4oIbv5FPazpIvJW9z\r\nzwg02zMOx0C1Xi/Wfm6IXgHpP1y/ikjZNyIwntMMK0aXL3tYUmXd2HnRIF1O\r\n09NGl9VipRAcTrVruN+aXUCHzU3t0wA4dR/796AqHlAlbtb3RuBJoHR1f15b\r\nYieXueUdd53oommj305ygfPz9Sgf+wCvJ+LalaMkgecdViRIBB5a2StQz7OW\r\nVWSh6pzyTB/SPrIoDAQtmjCB3xJ8tbI0Ulg=\r\n=f7My\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.2.7_1662286663705_0.7992607467156585"},"_hasShrinkwrap":false},"0.2.8":{"name":"timeld-gateway","version":"0.2.8","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.8.2","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.8","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","ndjson":"^2.0.0","nodemailer":"^6.7.8","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.2","rxjs":"^7.5.6","simple-peer":"^9.11.1","socket.io":"^4.5.1","socket.io-client":"^4.5.1","timeld-caldav":"^0.1.1","timeld-common":"^0.1.6","timeld-prejournal":"^0.1.3","timeld-tiki":"^0.1.3","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/nodemailer":"^6.4.5","@types/restify":"^8.5.5","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.5","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"gitHead":"4c53edea31462473e197b3ba2df3995dd0837d23","_id":"timeld-gateway@0.2.8","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-EZjf/4EQrUiuvE/I7iE4hM7GTGGbrZrvTUwHN+6iLDA7YTXVnwXVYPQ7pVzROAVJHMBPgTXBZ84rK54vFrybvg==","shasum":"d742070e8a5b1f67d28192a066551b9bf21635f0","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.2.8.tgz","fileCount":19,"unpackedSize":71665,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC70IsWocbiftRuxQ0S5uQ9NyOJGKYoR+adGA1nazK3XgIhAM7l1ZA6smuiRp79g6768FLO2wGeVC1nQwcJ/mwWZtgd"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjHD2/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmogwRAAgwkohqnDt/PfcvdIeLo9ikYv+AMnhOJJxB107AZYha5akLG4\r\nUhbt21PJkaEtkcsRDtP0frr/KMKQbne1xWczlMY+DnMz17ddR+kGAIOpQFTg\r\n7VkZl4J/DNmUxHOteX6V6CC+s5Bworw3EKqfP2osDq7irc1RXML3zY0T7Zqj\r\nAG9yd9WLJtYrLi5SFzHHrekwJ1CsRB/8Qfr6tU1Fmmn01SG3ORZPCKbKOI3T\r\nV2Oi+gMbQfP6lJOs8xeGjfnZKWxNNbJOH9LYENxXBXjDPPlHD1pGP7E5C/2J\r\nN15m+a0+BR/cZPz77cmyevIqxVIKjKCpUf1M9CQArpkTz5FRefl0guuyBU5x\r\nqfbge2USN6xIQXO4mDczDAO5XcUPnEVM+4IS64yjrmt6i5CtwVzEua1FJOhE\r\niFcLQYdQgSnQ1INipug+GDDcaMxMrkVCklh2rKYaTC/qe8kFuhGVnC1eEJ2C\r\nKZekyTjwsrrR631WSjHR7dXVcx2wstJhnT3HmFuyjuUDaKoMgjlYanwVhQ3B\r\n+gyTVVEpZ7evohLU+9YadUb9OWN1PktgjcDZ3XmINmWuucgtma4iSmVfEqmP\r\nKFdWCYOB4lPYbQ28fR9AR59UvisXcKRk5DroUM2qLC+qYP1Y/PNla5rM0DX7\r\nN4jL6TUFgWNiC5LLTg72drA5qnnbv8BvsSw=\r\n=l+Dp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.2.8_1662795199422_0.6659476108300768"},"_hasShrinkwrap":false},"0.2.9":{"name":"timeld-gateway","version":"0.2.9","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.8.2","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.8","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","ndjson":"^2.0.0","nodemailer":"^6.7.8","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.2","rxjs":"^7.5.6","simple-peer":"^9.11.1","socket.io":"^4.5.1","socket.io-client":"^4.5.1","timeld-caldav":"^0.1.1","timeld-common":"^0.1.6","timeld-prejournal":"^0.1.3","timeld-tiki":"^0.1.3","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/nodemailer":"^6.4.5","@types/restify":"^8.5.5","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.5","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"gitHead":"4c53edea31462473e197b3ba2df3995dd0837d23","_id":"timeld-gateway@0.2.9","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-kx3OWQfaMz38317U5B7g3VjRzAD/OQ3UMWWbkXpYf0bzfqfgxlaWdQGg0H07jGNb9g5x62xnYte4nW/0N13C+w==","shasum":"a45292419bf1db442fac1269262b723b738e0c2f","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.2.9.tgz","fileCount":19,"unpackedSize":71665,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1pb5p4Pwdei8U8ZJQyo5OchoGvacIKzBBseT2c6OULwIgRYRL4H7rSRRmqMAeFl9cKLUKI/SDhRHj1btGV77od+k="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjHL3CACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoJxhAAkjJVIk5AiDPmKPGgXz6afy0v8ETKRNbHbfCWTwiLjDepKE6C\r\n5PcWxwAPw2vKisavwtYg8Y0RcHd2b1jYjBtdmt4YOzOSVcLBqAzFG3JY+CeA\r\nwwzFODW5SnxTUSyks9nBpF5DhW+ldifFyhpSgO0H2bdVpVJph4yCRmYuSEv9\r\nWZLG6Im9gxxMJ2SHsTWTf7ubNm6t1zTbGENepAnmkv8YuHpCHz6eH4DYnrTe\r\n3tnuDeQN/LGz6OCnqh4QtJAoD42G9CohVcLFoWty9iCqVYJEiXkaAuIsBi2L\r\nARVLPAjpzYlBVg6dFM96Nj3jO0gGvDOAf1//vrtGNMFXJMmuY1k12rU8EOEa\r\nTIPNwv9/L/NCj3CpoUabPGul7UgTTQCoGVMIrinkRk/O78QoE3RvmfZStF0z\r\nx0DkfzMmHgMWL5xXPDaCDPIQzzJc6AYcTuRfjC3Ue/uEeowDKC+NIvbnRgLF\r\nwYls7UcK6r4le6rxyaCbXubdbpbfWslWIi4vST7OP9pBzD9IE6+sHm2nHLkq\r\no0uQ9LgEVSoY3T7UoQBqAwLAlQ336f4SGU40UmNpHPlKye3tquzeJwDtONUf\r\n9aA9YoqiZqPpxZAlJcuvKIn/MM5I8jmkUFk7/RW2mMFtXg6px0XsWVnFcEIj\r\nepeYb+VF/W4tq7nN5dNG6U9nmZfIspRWxuc=\r\n=s3Tf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.2.9_1662827970361_0.30802211058954243"},"_hasShrinkwrap":false},"0.2.10":{"name":"timeld-gateway","version":"0.2.10","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.8.2","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.8","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","ndjson":"^2.0.0","nodemailer":"^6.7.8","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.2","rxjs":"^7.5.6","simple-peer":"^9.11.1","socket.io":"^4.5.1","socket.io-client":"^4.5.1","timeld-caldav":"^0.1.1","timeld-common":"^0.1.6","timeld-prejournal":"^0.1.3","timeld-tiki":"^0.1.3","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/nodemailer":"^6.4.5","@types/restify":"^8.5.5","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.5","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"gitHead":"bc3ade84a13880638b9fb55e2989dfbab5b22e16","_id":"timeld-gateway@0.2.10","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-9boBF94p1IJwOQbu0LkogMB2v8EOFHXtq8mJR6glO+Sj+iJOsi93GzyaoNKX8iUaGMC5ZQPOtiHBsdooydTafg==","shasum":"73f9812999019eac280991c56085d4d45ee8125d","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.2.10.tgz","fileCount":19,"unpackedSize":71784,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHWvizT2Qz8imzP4zutmrO31GyDifn2UOLJaWnAtB+NKAiA5rZWM2eOo7OdCALkmWShlnP3ry0dLM+0ry45bcUuhEA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjHL5XACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrYHA//WHXid0Aebo90N+8HDBW+RALHfYgkNq0puTRQNrQ+XeaA2MRL\r\n6AaflZrKsj7BXdeJFUux46pHeVJ1vwq2CI2qOYj5FVvSMZc3vqZ1fDi50TJL\r\nObeI5cyhKIVvT5d3T3XGrdrpvyevu2HtpyDDckez8dEhqVj9dCrxBrajwn+4\r\nLsRRgqhfZqMxKx0MpBl3sw3nzHe+eZCEogrlrU3Hh5IZNFuFH7fw0nUvh8PI\r\nOfm7L61nk2bbDXS5t/fX8VDYJqktyW3vR9I/22qwTJ0IXn56D2I1lnQ421Vr\r\ndtrCuzAakDniEohCS5i38lX/nrNNvpr1a6s/NAFeLwrEuZlEcfsXvLk1JsXS\r\nb12buoV60Kp2oXDYpNHl4al3IWxyZBtdoouvBgrS+OykVQotXvnIQGII/NVN\r\n2mG6Cfzm6WzImd2PRMDx0PZBU5YM2z1UqwrZ99MJGeJU/2oZi1OLCZ/YI+TU\r\nmXLhX/7g8Sir2jxycJ6p5ODehZYhxbhkSt5l9r42zT8x8kYTQ9A40/0q9xU/\r\nsyTY/nt+NDjrjACw+sFoFT6/Kav+RWVIOWuo7wGOIEP8MLWyj6RR0irrOXPz\r\nmAroD6NhTaoi0nsHvYmii7k8cYr7vNX/eSWkSrdKjaW+GPhJgmYRv7aI5nBv\r\n5qovENmujfz4bObSc3LWpOqgK1x3w2AC6Fg=\r\n=2RDs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.2.10_1662828119178_0.765717036294645"},"_hasShrinkwrap":false},"0.3.0-edge.2":{"name":"timeld-gateway","version":"0.3.0-edge.2","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs","ver":"echo $npm_package_version"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2","@m-ld/m-ld":"^0.9.1","cryptr":"^6.1.0","http-graceful-shutdown":"^3.1.12","jtd":"^0.1.1","loglevel":"^1.8.1","ndjson":"^2.0.0","nodemailer":"^6.8.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.2","rxjs":"^7.8.0","simple-peer":"^9.11.1","socket.io":"^4.5.4","socket.io-client":"^4.5.4","timeld-caldav":"^0.2.0-edge.0","timeld-common":"^0.2.0-edge.2","timeld-prejournal":"^0.2.0-edge.0","timeld-tiki":"^0.2.0-edge.0","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.9","@types/nodemailer":"^6.4.7","@types/restify":"^8.5.5","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.10","memory-level":"^1.0.0","supertest":"^6.3.3","tmp":"^0.2.1"},"readme":"![stability-wip](https://img.shields.io/badge/stability-work_in_progress-lightgrey.svg)\n\n# timeld Gateway\n\nThe timeld Gateway is a service to manage timeld accounts and persist timesheets safely. It can be deployed conventionally or in a Docker container - to a local machine, an on-premises server, or cloud platform - and scaled easily.\n\n## Common prerequisites\nRegardless of the target deployment environment, you need the following:\n\n1. Account credentials for an SMTP service (for sending activation codes to timeld clients); and\n2. A local clone of the [timeld repo](https://github.com/m-ld/timeld).\n\nTo obtain 2., enter the following in a terminal / shell / PowerShell session:\n```bash\ngit clone https://github.com/m-ld/timeld\ncd timeld/packages/gateway\n```\n## Deployment to a Docker container\nYou can either use the container image published to Docker Hub for the timeld Gateway, or build your own.  For further instructions, see the [README for timeld Gateway Docker deployment](../../deploy/docker).\n\n\n## Deployment to Fly.io\n\n### prerequisites\n\nIn addition to the **Common prerequisites** above, you will need:\n1. A [fly.io](https://fly.io) account (requires a credit card);\n2. To install the [`flyctl`](https://fly.io/docs/flyctl/installing/) command-line utility for working with fly.io.\n3. An app name!\n\n```\nflyctl apps create ≪your-great-name≫\n```\n\nIf developing off the `main` branch, the deploy script (below) will use your current branch name as a suffix; in preparation you should run the above command with the suffixed name e.g. `timeld-edge`.\n\n### volumes\n\nA volume is required for clone persistence (Gateway and Timesheet domains).\n\n_NB: The `-a` parameter must match your app name._\n\n```shell\nflyctl volumes create timeld_data --region lhr -a timeld\n```\n\n\n> NB: \"A volume is directly associated with only one app and exists in only one region.\"\n>\n> Each _instance_ of an app must have dedicated storage. So we can either:\n> - [x] set `fly scale ... --max-per-region=1` (limits scaling), or\n> - [ ] create a directory under `/data` per [allocation ID](https://fly.io/docs/reference/runtime-environment/#fly_alloc_id) – (creates a garbage collection problem with rolling redeploy)\n\n### deploy\n\n_NB: If you have made any changes to timeld-common, it needs to be published first._\n\nA script is provided to generate, and optionally run, the correct deploy command.\n\n```shell\nchmod +x deploy.sh\n```\n\nIn preparation for a first deployment (\"genesis\") you need a local `.env` file (in this directory or in the repo root), containing:\n\n- `TIMELD_GATEWAY_AUTH__KEY=≪some-root-access-key≫` (see below)\n- `TIMELD_GATEWAY_SMTP__HOST=≪your-smtp-host≫`\n- `TIMELD_GATEWAY_SMTP__FROM=≪an-email-account-to-send-activation-codes≫`\n- `TIMELD_GATEWAY_SMTP__AUTH__USER=≪your-smtp-account≫`\n- `TIMELD_GATEWAY_SMTP__AUTH__PASS=≪your-smtp-account-password≫`\n- Any additional configuration secrets for extensions, e.g. see ../prejournal/index.mjs\n\nThe root access key is invented by you; it must be of the form `≪appid≫.≪keyid≫:≪secret≫`, where:\n- `appid` is some application identifier (the app name will do)\n- `keyid` is the key identifier (at least 5 characters), used for logging\n- `secret` is the secret key material (at least 20 characters)\n\ne.g. `timeld.rootkey:123456789abcdefghijk`\n\n`deploy.sh` takes three optional arguments:\n1. app name (root); defaults to `timeld`\n2. app name suffix; defaults to git branch name e.g. `timeld-edge`. If `main`, no suffix is used, i.e. just `timeld`.\n3. `genesis` (if used, the 1st two arguments must also be given, and the secrets will be pushed to fly.io)\n\n```shell\n./deploy.sh timeld main genesis\n```\n\n### random\n\n- `engines.node` is set to 16.x in `package.json` due to a [bug in Restify](https://github.com/restify/node-restify/issues/1888).\n- When using Ably, `simple-peer` is a dependency even if we don't use WebRTC (a bug in m-ld-js/ext/ably).","readmeFilename":"README.md","gitHead":"bbb8a25ca396e45d539136c8d5dc016d7b3c83eb","_id":"timeld-gateway@0.3.0-edge.2","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-AttAs+HqAV3LcuEEpc/H25VkwgqH/iyaKe+/oMLJbqoI9QJDbnDxxhorysKgm5t9jopl6lK+178HHRuAud/xwg==","shasum":"ad5b34f17fede2a3366c7b0b4359c704c66b0e73","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.3.0-edge.2.tgz","fileCount":21,"unpackedSize":79026,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGfwJgjVNaiKiImcnK3x8Oj4vgCLO+hW+unY5MChyyw/AiAXzRk/Qpa/F0M5AGbWfcYKVPa7DUmFRz/LkdT+5zzYxA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJju8sAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqAKA//XAD20ikGYXLeAkTLOX079YVRLvvSai1f2ZHcu2WdXYtTN8eY\r\n7H+6VMaZvLjVrobvwbaWsXfLMO6Y8xiNVd791y9Ie6gzbFmfJVg9uv7vh4Zq\r\nV5NnE1LGqw4rx0XKssziLoOtbkxvPHvUEvN9WSdCqKZKSaTDpO6nK/sJLkmt\r\nfZRvg74jWookZmSlTn9NTpXpQ9B3pDIFwZkiHQVr2F7IGGO9uqDbeqAvUU02\r\n+tIoCgwcXdn9D6a8OseLChTCXiazBLfyx1phW97h5aG/T1cPMaELeNhlFmZf\r\nYVT1A+oOWEm9yTuCayrFttIYW3PNC//JCDBP29VMuwnx1FWYbEAdOxj/JcJP\r\nJNiTOoaLneL3rWgZa7gWWY5urB2CDX6GLnBhttIAg9hLaQZiPdiXMwG+OYtc\r\nAaLiQSboGU7AQhUe+l6EQVCVFDnXlSBZXWejy2UtGqya6RfIywR/2pq8N9EC\r\nLMgvzpe62Po8U8c2891gVBtCMnI2azAL4Ni4vulpYBhHW0SoL5ERgNOQ4MdA\r\nO7y1CfZlL4daPd2o34JJcx8Cszln6/oOaZclvB1ru0ODehZEQAV1vwphdA4A\r\nOKt5ZGLAqx4TknM2MlxSZI/dUVaKn2hvNKc/NhGhbvaGq/QzzOEkZ77eaHs5\r\ncUy1nNfiDMlV/dvjBOdLSZ2VLcTRKT+ecaI=\r\n=+x/v\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.3.0-edge.2_1673251584124_0.8371744470403848"},"_hasShrinkwrap":false},"0.2.11":{"name":"timeld-gateway","version":"0.2.11","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@m-ld/io-web-runtime":"^0.2.2-2","@m-ld/m-ld":"^0.8.2","cryptr":"^6.0.3","http-graceful-shutdown":"^3.1.8","jsonwebtoken":"^8.5.1","jtd":"^0.1.1","loglevel":"^1.8.0","ndjson":"^2.0.0","nodemailer":"^6.7.8","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.2","rxjs":"^7.5.6","simple-peer":"^9.11.1","socket.io":"^4.5.1","socket.io-client":"^4.5.1","timeld-caldav":"^0.1.2","timeld-common":"^0.1.7","timeld-prejournal":"^0.1.5","timeld-tiki":"^0.1.4","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.8","@types/nodemailer":"^6.4.5","@types/restify":"^8.5.5","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.5","memdown":"^6.1.1","supertest":"^6.2.4","tmp":"^0.2.1"},"gitHead":"4cc7461a8affe319247235130302f54b68913aa9","_id":"timeld-gateway@0.2.11","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-k5I24i704GdTPPsV51X8z7ZROB4RQ6KYn8SPMNKAcd9Fu0IKvjIMcT8NccTCJvhzTTyR3cYGtU1xzetwfeuUJg==","shasum":"4ab32187373f94440249ce679642842077c264ba","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.2.11.tgz","fileCount":19,"unpackedSize":73412,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDQ1+9HLJ9fBwpjwad7ejFR+TqiGu/De4sK/2jUUlKxCAiEA9m5K6QpuPW06XrLGaXRPkvkCwcNM9/F2Mp3zBEONuTU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvqg8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp3iw//VuiYqBi1C8/ViUxwNwAFRjWiwQDuMBXau0vIdv69AlxTubp+\r\nVdOX//3CaHbZj7KzE1i/ngx0qbVyShkxttc5PIqbCdnuy5QY87LUB+EsDVnz\r\nADmX44eawa5fp5O/YKPKasXUvVJAh/knKgGRTXCpH+wO9qyBiVBT5FsjXGCd\r\nz6ZIupbDeMx/5bqlsnocfCZePpq3xDBd3HwJEbig4mC9d0bm5Ou57bXOluOn\r\n5qk5SSbYixCzrlZWqcp8SRZS6T43jYdLr4/zzVRHk95X+xO3o5xFZkMoPykB\r\nCqsLPSL8Y6eGbZFUO/sZrihJWOxM/65TyOwverURzkTGqI/KiXOOLlczkMpL\r\n70YnAoIvwYEzlqQGt8oQ1GIcpiwaS2FrXI2a+1dDF/BiWrt96QCRQjUvV5j3\r\nO2kylKxS9pBMAjGGIKrugIAPqUdyUi1Ca27E/doDFFnmCZqXXWeyd/ZG73Vj\r\n+Fv2wg1cgpm5NZlVYzWOCEGFzsmqkdOhINIJok5kROYZ5AtAxl/icMQh5If/\r\nVXJBA0uxgfhicJELYAx4AETEF1LoKM3FHgBhHPAaUZ1GFCkRCqHm+Ie8S6yQ\r\n2KuQ2UGCuT6240f+MXXXm+9Nw2og5OC7SKizoFZcjER3z1+x1Z+FPauF4VcN\r\n2eI8PwIZSUvXN8+t+EIvHTFk1/ZyR2R4JnM=\r\n=4qC8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.2.11_1673439292275_0.4727705796852595"},"_hasShrinkwrap":false},"0.3.0-connector-http-signing.0":{"name":"timeld-gateway","version":"0.3.0-connector-http-signing.0","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs","ver":"echo $npm_package_version"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@digitalbazaar/http-digest-header":"^2.0.0","@m-ld/io-web-runtime":"^0.2.2","@m-ld/m-ld":"^0.9.1","cryptr":"^6.1.0","http-graceful-shutdown":"^3.1.12","http-message-signatures":"^0.1.2","jtd":"^0.1.1","loglevel":"^1.8.1","ndjson":"^2.0.0","nodemailer":"^6.8.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.2","rxjs":"^7.8.0","simple-peer":"^9.11.1","socket.io":"^4.5.4","socket.io-client":"^4.5.4","timeld-caldav":"^0.2.0-edge.0","timeld-common":"^0.2.0-edge.2","timeld-prejournal":"^0.2.0-connector-http-signing.0","timeld-tiki":"^0.2.0-connector-http-signing.0","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.9","@types/nodemailer":"^6.4.7","@types/restify":"^8.5.5","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.10","memory-level":"^1.0.0","supertest":"^6.3.3","tmp":"^0.2.1"},"readme":"![stability-wip](https://img.shields.io/badge/stability-work_in_progress-lightgrey.svg)\n\n# timeld Gateway\n\nThe timeld Gateway is a service to manage timeld accounts and persist timesheets safely. It can be deployed conventionally or in a Docker container - to a local machine, an on-premises server, or cloud platform - and scaled easily.\n\n## Common prerequisites\nRegardless of the target deployment environment, you need the following:\n\n1. Account credentials for an SMTP service (for sending activation codes to timeld clients); and\n2. A local clone of the [timeld repo](https://github.com/m-ld/timeld).\n\nTo obtain 2., enter the following in a terminal / shell / PowerShell session:\n```bash\ngit clone https://github.com/m-ld/timeld\ncd timeld/packages/gateway\n```\n## Deployment to a Docker container\nYou can either use the container image published to Docker Hub for the timeld Gateway, or build your own.  For further instructions, see the [README for timeld Gateway Docker deployment](../../deploy/docker).\n\n\n## Deployment to Fly.io\n\n### prerequisites\n\nIn addition to the **Common prerequisites** above, you will need:\n1. A [fly.io](https://fly.io) account (requires a credit card);\n2. To install the [`flyctl`](https://fly.io/docs/flyctl/installing/) command-line utility for working with fly.io.\n3. An app name!\n\n```\nflyctl apps create ≪your-great-name≫\n```\n\nIf developing off the `main` branch, the deploy script (below) will use your current branch name as a suffix; in preparation you should run the above command with the suffixed name e.g. `timeld-edge`.\n\n### volumes\n\nA volume is required for clone persistence (Gateway and Timesheet domains).\n\n_NB: The `-a` parameter must match your app name._\n\n```shell\nflyctl volumes create timeld_data --region lhr -a timeld\n```\n\n\n> NB: \"A volume is directly associated with only one app and exists in only one region.\"\n>\n> Each _instance_ of an app must have dedicated storage. So we can either:\n> - [x] set `fly scale ... --max-per-region=1` (limits scaling), or\n> - [ ] create a directory under `/data` per [allocation ID](https://fly.io/docs/reference/runtime-environment/#fly_alloc_id) – (creates a garbage collection problem with rolling redeploy)\n\n### deploy\n\n_NB: If you have made any changes to timeld-common, it needs to be published first._\n\nA script is provided to generate, and optionally run, the correct deploy command.\n\n```shell\nchmod +x deploy.sh\n```\n\nIn preparation for a first deployment (\"genesis\") you need a local `.env` file (in this directory or in the repo root), containing:\n\n- `TIMELD_GATEWAY_SMTP__HOST=≪your-smtp-host≫`\n- `TIMELD_GATEWAY_SMTP__FROM=≪an-email-account-to-send-activation-codes≫`\n- `TIMELD_GATEWAY_SMTP__AUTH__USER=≪your-smtp-account≫`\n- `TIMELD_GATEWAY_SMTP__AUTH__PASS=≪your-smtp-account-password≫`\n- Any additional configuration secrets for extensions, e.g. see ../prejournal/index.mjs\n\nIn addition to the above, a set of [root access keys](./keyformat.md) must be provided, comprising a secret (auth) key and a public/private key pair. These should be different for every gateway deployment.\n\nTo assist creating keys in the correct format, a utility script is provided in this repository.\n1. Ensure that npm dependencies have been installed, with `npm install` in the project root.\n2. In the gateway directory, run `node ./genkey.mjs >> .env` to append generated keys to the env file.\n\n`deploy.sh` takes three optional arguments:\n1. app name (root); defaults to `timeld`\n2. app name suffix; defaults to git branch name e.g. `timeld-edge`. If `main`, no suffix is used, i.e. just `timeld`.\n3. `genesis` (if used, the 1st two arguments must also be given, and the secrets will be pushed to fly.io)\n\n```shell\n./deploy.sh timeld main genesis\n```\n\n### random\n\n- `engines.node` is set to 16.x in `package.json` due to a [bug in Restify](https://github.com/restify/node-restify/issues/1888).\n- When using Ably, `simple-peer` is a dependency even if we don't use WebRTC (a bug in m-ld-js/ext/ably).","readmeFilename":"README.md","gitHead":"1a5627aecb3b242abff88520f319fdc2efe56450","_id":"timeld-gateway@0.3.0-connector-http-signing.0","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-qDocTLyngeq2odI8mdtBVxJARInw1JEPpzXCCiv4Pb+nUBTqq/De+m3hpY8fLn9qYPvs8JNEqVMSU0P3Qk3goQ==","shasum":"3be1cece0ee56ac3a3ab44ebe89fa629836c7310","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.3.0-connector-http-signing.0.tgz","fileCount":22,"unpackedSize":82598,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdY1+/CM6MO+GoKUnPGINhk3aIUg5ZVVgPjOAlfEDQnQIhAIo+YhrxYNhUlRiTzsQBoRhcceurdRPlINhExlK06pUx"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvrJCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrBIw//WsgNH/DcUKdG5kkxT8Batte3xqCAvaaeziJl+blegE3N8y6R\r\nFM3uLrOPjCD2gQ4CSq8KyW7hmSrk6fidrGSx32S9f+WWV4RS+uIqUiiPXN6+\r\nXkeKRRWiW2Sq/nR+U1Z5f+XpWkk5ZhjkCMdZyno72FIIWhVUKMAu+rIzrh7H\r\nVmAwvnjjStBV4c5rM3eyOZVFs32CQi37qDyYx0sw9ukqbFXZVMWdqyPm1j+J\r\n29/Iy76oyqC5oV7Pq2vQq2pqHgjujPQzXV8h2fJMApXZB2Q/16z0HEazkShq\r\nAwyXQx5R65tysYcpo7MkLwH0wpHbej/vq0O9AIJ7LeYEsHxu4HQwDpvHtNsI\r\nNb2Se3imc8XyEjwfmRZp0lPJjSe0+t8bf2394X6cxm9KK9Y+jKNCu0rC9k4T\r\nGxy3/8GNoYs0ns+hVmIVBY+Rj3i1HApH/18VhG//hKxtQCVWSvJVbE6FCKeq\r\nWx6/KJ7XDh7vUxc/w/LYU1MdKe4xas6aYgGZBRo0a5quCnq79gCwinvc0Thd\r\nqje+A6d8eS/NFR0IpqD5M5xwdt+9VKCzg+cFC1jAhYVHJsxM38SK5Z3EYg+i\r\nLkK9gSF5sPYvsOhwdtPCw8l1XTLbW44wKaZFEyaXXk5SGIIOIETk+A6WAz47\r\n+u1h8628aESMy6vvDECu52I7D0GrJbngw2Y=\r\n=aXbh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.3.0-connector-http-signing.0_1673441857869_0.14398184119205792"},"_hasShrinkwrap":false},"0.3.1-connector-http-signing.0":{"name":"timeld-gateway","version":"0.3.1-connector-http-signing.0","description":"Timeld Gateway server","main":"server.mjs","scripts":{"start":"node server.mjs","ver":"echo $npm_package_version"},"engines":{"node":"16.x"},"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"keywords":["m-ld","timesheets"],"author":{"name":"m-ld.io Ltd."},"license":"MIT","bugs":{"url":"https://github.com/m-ld/timeld/issues"},"homepage":"https://github.com/m-ld/timeld#readme","dependencies":{"@digitalbazaar/http-digest-header":"^2.0.0","@m-ld/io-web-runtime":"^0.2.2","@m-ld/m-ld":"^0.9.1","cryptr":"^6.1.0","http-graceful-shutdown":"^3.1.12","http-message-signatures":"^0.1.2","jtd":"^0.1.1","loglevel":"^1.8.1","ndjson":"^2.0.0","nodemailer":"^6.8.0","restify":"^8.6.1","restify-errors":"^8.0.2","rx-flowable":"^0.1.2","rxjs":"^7.8.0","simple-peer":"^9.11.1","socket.io":"^4.5.4","socket.io-client":"^4.5.4","timeld-caldav":"^0.2.1-connector-http-signing.0","timeld-common":"^0.2.1-connector-http-signing.0","timeld-prejournal":"^0.2.1-connector-http-signing.0","timeld-tiki":"^0.2.1-connector-http-signing.0","validator":"^13.7.0"},"devDependencies":{"@types/cryptr":"^4.0.1","@types/jsonwebtoken":"^8.5.9","@types/nodemailer":"^6.4.7","@types/restify":"^8.5.5","@types/restify-errors":"^4.3.4","@types/supertest":"^2.0.12","@types/validator":"^13.7.10","memory-level":"^1.0.0","supertest":"^6.3.3","tmp":"^0.2.1"},"readme":"![stability-wip](https://img.shields.io/badge/stability-work_in_progress-lightgrey.svg)\n\n# timeld Gateway\n\nThe timeld Gateway is a service to manage timeld accounts and persist timesheets safely. It can be deployed conventionally or in a Docker container - to a local machine, an on-premises server, or cloud platform - and scaled easily.\n\n## Common prerequisites\nRegardless of the target deployment environment, you need the following:\n\n1. Account credentials for an SMTP service (for sending activation codes to timeld clients); and\n2. A local clone of the [timeld repo](https://github.com/m-ld/timeld).\n\nTo obtain 2., enter the following in a terminal / shell / PowerShell session:\n```bash\ngit clone https://github.com/m-ld/timeld\ncd timeld/packages/gateway\n```\n## Deployment to a Docker container\nYou can either use the container image published to Docker Hub for the timeld Gateway, or build your own.  For further instructions, see the [README for timeld Gateway Docker deployment](../../deploy/docker).\n\n\n## Deployment to Fly.io\n\n### prerequisites\n\nIn addition to the **Common prerequisites** above, you will need:\n1. A [fly.io](https://fly.io) account (requires a credit card);\n2. To install the [`flyctl`](https://fly.io/docs/flyctl/installing/) command-line utility for working with fly.io.\n3. An app name!\n\n```\nflyctl apps create ≪your-great-name≫\n```\n\nIf developing off the `main` branch, the deploy script (below) will use your current branch name as a suffix; in preparation you should run the above command with the suffixed name e.g. `timeld-edge`.\n\n### volumes\n\nA volume is required for clone persistence (Gateway and Timesheet domains).\n\n_NB: The `-a` parameter must match your app name._\n\n```shell\nflyctl volumes create timeld_data --region lhr -a timeld\n```\n\n\n> NB: \"A volume is directly associated with only one app and exists in only one region.\"\n>\n> Each _instance_ of an app must have dedicated storage. So we can either:\n> - [x] set `fly scale ... --max-per-region=1` (limits scaling), or\n> - [ ] create a directory under `/data` per [allocation ID](https://fly.io/docs/reference/runtime-environment/#fly_alloc_id) – (creates a garbage collection problem with rolling redeploy)\n\n### deploy\n\n_NB: If you have made any changes to timeld-common, it needs to be published first._\n\nA script is provided to generate, and optionally run, the correct deploy command.\n\n```shell\nchmod +x deploy.sh\n```\n\nIn preparation for a first deployment (\"genesis\") you need a local `.env` file (in this directory or in the repo root), containing:\n\n- `TIMELD_GATEWAY_SMTP__HOST=≪your-smtp-host≫`\n- `TIMELD_GATEWAY_SMTP__FROM=≪an-email-account-to-send-activation-codes≫`\n- `TIMELD_GATEWAY_SMTP__AUTH__USER=≪your-smtp-account≫`\n- `TIMELD_GATEWAY_SMTP__AUTH__PASS=≪your-smtp-account-password≫`\n- Any additional configuration secrets for extensions, e.g. see ../prejournal/index.mjs\n\nIn addition to the above, a set of [root access keys](./keyformat.md) must be provided, comprising a secret (auth) key and a public/private key pair. These should be different for every gateway deployment.\n\nTo assist creating keys in the correct format, a utility script is provided in this repository.\n1. Ensure that npm dependencies have been installed, with `npm install` in the project root.\n2. In the gateway directory, run `node ./genkey.mjs >> .env` to append generated keys to the env file.\n\n`deploy.sh` takes three optional arguments:\n1. app name (root); defaults to `timeld`\n2. app name suffix; defaults to git branch name e.g. `timeld-edge`. If `main`, no suffix is used, i.e. just `timeld`.\n3. `genesis` (if used, the 1st two arguments must also be given, and the secrets will be pushed to fly.io)\n\n```shell\n./deploy.sh timeld main genesis\n```\n\n### random\n\n- `engines.node` is set to 16.x in `package.json` due to a [bug in Restify](https://github.com/restify/node-restify/issues/1888).\n- When using Ably, `simple-peer` is a dependency even if we don't use WebRTC (a bug in m-ld-js/ext/ably).","readmeFilename":"README.md","gitHead":"0a76f52270471ab607eecd1c6ff7ba3298c3362f","_id":"timeld-gateway@0.3.1-connector-http-signing.0","_nodeVersion":"16.13.1","_npmVersion":"8.10.0","dist":{"integrity":"sha512-EriH1MUQMDCHXpYt3cIhz1HvH0My58P8IL4NGUpxH0mQNF1aIBp6Z/sPkw3oLF6lJMsZ0vs8yD+UHbt7lXb+5g==","shasum":"ed43da35d97d70853e90b1948f115a9fd6c683d6","tarball":"https://registry.npmjs.org/timeld-gateway/-/timeld-gateway-0.3.1-connector-http-signing.0.tgz","fileCount":22,"unpackedSize":82634,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlx6AnFQrv4CQQ6VDmBO+N5XevkjRdKCLpQeXOz1/NDgIgAe5zlJKbjxfdf9iCIdJi1tbZeIiniauaOBAuCY6XaqM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvrZFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/YA//X7sxPAlyo05aDyDRYkxQUMgypKaqSDF9tG9ogfp9ram8PStz\r\n5twYSeSDuHmPVxtABKNNe9iAiQ6zL4otLiIRLMq1kmKArifQuQoYr5wpNpN/\r\nEOHgyBNfKhjsyMf+ddMMILEPT4gEirK6JcEe00vq3qJB6R/A61y+zin8LmOp\r\ntYGbPjyHHh69AHQUjoPLq2H/MSUoyeDeqv3gWx9IZ8V1WHNCWlXunnB7Tfin\r\nODf4Pn3eHu0SK134zR1BtgAOx1smZdvVnVSISvj09SNFdHM7Byn0kO5acJyo\r\npoz9p98+USdWpGic1C2GSkLOwuS5EIrt499zKTm0nTtkFA2beDbMGb5nrFKd\r\np+/CHYjb2s6oX8nN05kt0pXNI9+o3WTBd9XLMwxgXROwsKni0/RX4wgle+ZC\r\nCYUeAKJm5+0V7fvfNQ1wSsZPV8Ue6FSjm/3LqFI3RVt12jQZw8kubTH3pMJO\r\nimyKoZwEo7rN5VXtQQqPGuplIF741yV8tQy1nMoefupRpehPUeU8YxeQiund\r\nhQ++WqQqJ0XwMhdudbeL4/hM3vHGWyyUr2hDt2v7m5ViwlJbCdBNsfVVRnXF\r\nB5N72b9QmG4gb3StcanyMsVxBk9bZL8cgG6QCJFHL2M9MhO0vx/gw4+pdJDd\r\nTyTpCh227QXGCE5itAh3qMutgYHDEYKq1Ew=\r\n=yZSv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gsvarovsky","email":"george@m-ld.io"},"directories":{},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/timeld-gateway_0.3.1-connector-http-signing.0_1673442885423_0.42770167173968754"},"_hasShrinkwrap":false}},"time":{"created":"2022-05-30T13:32:26.784Z","0.1.1-0":"2022-05-30T13:32:26.953Z","modified":"2023-01-11T13:14:45.655Z","0.1.1-1":"2022-06-03T09:21:19.947Z","0.1.1-2":"2022-06-09T11:34:31.440Z","0.1.1-3":"2022-06-21T12:59:03.227Z","0.1.1-4":"2022-06-24T09:31:13.906Z","0.1.1-5":"2022-06-25T17:30:52.002Z","0.2.0":"2022-07-05T07:54:15.995Z","0.2.1":"2022-07-05T12:23:11.072Z","0.2.2-0":"2022-07-06T11:20:45.806Z","0.2.2":"2022-07-12T09:54:44.550Z","0.2.3":"2022-08-03T16:47:40.178Z","0.3.0-edge.0":"2022-08-07T12:47:54.032Z","0.3.0-edge.1":"2022-08-07T15:02:07.393Z","0.2.4":"2022-08-13T08:42:20.430Z","0.2.5-prejournal.1":"2022-08-19T12:22:50.499Z","0.2.5":"2022-08-29T09:15:44.013Z","0.2.6-no-ably.0":"2022-09-03T07:45:07.042Z","0.2.6":"2022-09-04T08:57:14.518Z","0.2.7":"2022-09-04T10:17:43.906Z","0.2.8":"2022-09-10T07:33:19.890Z","0.2.9":"2022-09-10T16:39:30.509Z","0.2.10":"2022-09-10T16:41:59.370Z","0.3.0-edge.2":"2023-01-09T08:06:24.302Z","0.2.11":"2023-01-11T12:14:52.426Z","0.3.0-connector-http-signing.0":"2023-01-11T12:57:38.121Z","0.3.1-connector-http-signing.0":"2023-01-11T13:14:45.589Z"},"maintainers":[{"name":"gsvarovsky","email":"george@m-ld.io"}],"description":"Timeld Gateway server","homepage":"https://github.com/m-ld/timeld#readme","keywords":["m-ld","timesheets"],"repository":{"type":"git","url":"git+https://github.com/m-ld/timeld.git"},"author":{"name":"m-ld.io Ltd."},"bugs":{"url":"https://github.com/m-ld/timeld/issues"},"license":"MIT","readme":"","readmeFilename":""}